diff options
author | Erwin Lansing <erwin@FreeBSD.org> | 2015-10-01 07:47:44 +0000 |
---|---|---|
committer | Erwin Lansing <erwin@FreeBSD.org> | 2015-10-01 07:47:44 +0000 |
commit | ff14d03521a89636be959e65a21374951fe699ba (patch) | |
tree | f50c4271d12b6939db067758ade30df93a038a91 | |
parent | b04f5d3d3ff49c604e768add0cf35600b9eee074 (diff) |
Vendor import of BIND 9.9.8vendor/bind9/9.9.8
Sponsored by: DK Hostmaster A/S
Notes
Notes:
svn path=/vendor/bind9/dist/; revision=288438
svn path=/vendor/bind9/9.9.8/; revision=288439; tag=vendor/bind9/9.9.8
310 files changed, 20451 insertions, 15111 deletions
@@ -1,14 +1,318 @@ - --- 9.9.7-P2 released --- + --- 9.9.8 released --- + + --- 9.9.8rc1 released --- + +4193. [bug] Handle broken servers that return BADVERS incorrectly. + [RT #40427] + +4192. [bug] The default rrset-order of random was not always being + applied. [RT #40456] + +4191. [protocol] Accept DNS-SD non LDH PTR records in reverse zones + as per RFC 6763. [RT #37889] + +4190. [protocol] Accept Active Diretory gc._msdcs.<forest> name as + valid with check-names. <forest> still needs to be + LDH. [RT #40399] + +4189. [cleanup] Don't exit on overly long tokens in named.conf. + [RT #40418] + +4188. [bug] Support HTTP/1.0 client properly on the statistics + channel. [RT #40261] + +4187. [func] When any RR type implementation doesn't + implement totext() for the RDATA's wire + representation and returns ISC_R_NOTIMPLEMENTED, + such RDATA is now printed in unknown + presentation format (RFC 3597). RR types affected + include LOC(29) and APL(42). [RT #40317]. + +4183. [cleanup] Use timing-safe memory comparisons in cryptographic + code. Also, the timing-safe comparison functions have + been renamed to avoid possible confusion with + memcmp(). Thanks to Loganaden Velvindron of + AFRINIC. [RT #40148] + +4182. [cleanup] Use mnemonics for RR class and type comparisons. + [RT #40297] + +4181. [bug] Queued notify messages could be dequeued from the + wrong rate limiter queue. [RT #40350] + +4179. [bug] Fix double frees in getaddrinfo() in libirs. + [RT #40209] + +4178. [bug] Fix assertion failure in parsing UNSPEC(103) RR from + text. [RT #40274] + +4177. [bug] Fix assertion failure in parsing NSAP records from + text. [RT #40285] + +4176. [bug] Address race issues with lwresd. [RT #40284] + +4175. [bug] TKEY with GSS-API keys needed bigger buffers. + [RT #40333] + +4174. [bug] "dnssec-coverage -r" didn't handle time unit + suffixes correctly. [RT #38444] + +4173. [bug] dig +sigchase was not properly matching the trusted + key. [RT #40188] + +4172. [bug] Named / named-checkconf didn't handle a view of CLASS0. + [RT #40265] + +4171. [bug] Fixed incorrect class checks in TSIG RR + implementation. [RT #40287] + +4170. [security] An incorrect boundary check in the OPENPGPKEY + rdatatype could trigger an assertion failure. + (CVE-2015-5986) [RT #40286] + +4169. [test] Added a 'wire_test -d' option to read input as + raw binary data, for use as a fuzzing harness. + [RT #40312] + +4168. [security] A buffer accounting error could trigger an + assertion failure when parsing certain malformed + DNSSEC keys. (CVE-2015-5722) [RT #40212] + + --- 9.9.8b1 released --- 4165. [security] A failure to reset a value to NULL in tkey.c could result in an assertion failure. (CVE-2015-5477) [RT #40046] - --- 9.9.7-P1 released --- +4164. [bug] Don't rename slave files and journals on out of memory. + [RT #40033] + +4163. [bug] Address compiler warnings. [RT #40024] + +4162. [bug] httpdmgr->flags was not being initialized. [RT #40017] + +4159. [cleanup] Alphabetize dig's help output. [RT #39966] + +4158. [protocol] Support the printing of EDNS COOKIE and EXPIRE options. + [RT #39928] + +4154. [bug] A OPT record should be included with the FORMERR + response when there is a malformed EDNS option. + [RT #39647] + +4153. [bug] Check that non significant ECS bits are zero on + receipt. [RT #39647] + +4151. [bug] 'rndc flush' could cause a deadlock. [RT #39835] + +4150. [bug] win32: listen-on-v6 { any; }; was not working. Apply + minimal fix. [RT #39667] + +4149. [bug] Fixed a race condition in the getaddrinfo() + implementation in libirs. [RT #39899] + +4148. [bug] Fix a bug when printing zone names with '/' character + in XML and JSON statistics output. [RT #39873] + +4147. [bug] Filter-aaaa / filter-aaaa-on-v4 / filter-aaaa-on-v6 + was returning referrals rather than nodata responses + when the AAAA records were filtered. [RT #39843] -4138. [bug] An uninitialized value in validator.c could result +4146. [bug] Address reference leak that could prevent a clean + shutdown. [RT #37125] + +4145. [bug] Not all unassociated adb entries where being printed. + [RT #37125] + +4143. [bug] serial-query-rate was not effective for notify. + [RT #39858] + +4142. [bug] rndc addzone with view specified saved NZF config + that could not be read back by named. This has now + been fixed. [RT #39845] + +4138. [security] An uninitialized value in validator.c could result in an assertion failure. (CVE-2015-4620) [RT #39795] +4137. [bug] Make rndc reconfig report configuration errors the + same way rndc reload does. [RT #39635] + +4132. [cleanup] dig: added +rd as a synonym for +recurse, + added +class as an unabbreviated alternative + to +cl. [RT #39686] + +4130. [bug] The compatibility shim for *printf() misprinted some + large numbers. [RT #39586] + +4129. [port] Address API changes in OpenSSL 1.1.0. [RT #39532] + +4128. [bug] Address issues raised by Coverity 7.6. [RT #39537] + +4127. [protocol] CDS and CDNSKEY need to be signed by the key signing + key as per RFC 7344, Section 4.1. [RT #37215] + +4123. [port] Added %z (size_t) format options to the portable + internal printf/sprintf implementation. [RT #39586] + +4118. [bug] Teach isc-config.sh about irs. [RT #39213] + +4117. [protocol] Add EMPTY.AS112.ARPA as per RFC 7534. + +4113. [test] Check for Net::DNS is some system test + prerequisites. [RT #39369] + +4112. [bug] Named failed to load when "root-delegation-only" + was used without a list of domains to exclude. + [RT #39380] + +4111. [doc] Alphabetize rndc man page. [RT #39360] + +4110. [bug] Address memory leaks / null pointer dereferences + on out of memory. [RT #39310] + +4109. [port] linux: support reading the local port range from + net.ipv4.ip_local_port_range. [RT # 39379] + +4107. [bug] Address potential deadlock when updating zone content. + [RT #39269] + +4106. [port] Improve readline support. [RT #38938] + +4105. [port] Misc fixes for Microsoft Visual Studio + 2015 CTP6 in 64 bit mode. [RT #39308] + +4104. [bug] Address uninitialized elements. [RT #39252] + +4102. [bug] Fix a use after free bug introduced in change + #4094. [RT #39281] + +4101. [bug] dig: the +split option didn't work with +short. + [RT #39291] + +4100. [bug] Inherited owernames on the line immediately following + a $INCLUDE were not working. [RT #39268] + +4099. [port] clang: make unknown commandline options hard errors + when determining what options are supported. + [RT #39273] + +4098. [bug] Address use-after-free issue when using a + predecessor key with dnssec-settime. [RT #39272] + +4097. [func] Add additional logging about xfrin transfer status. + [RT #39170] + +4096. [bug] Fix a use after free of query->sendevent. + [RT #39132] + +4094. [bug] A race during shutdown or reconfiguration could + cause an assertion in mem.c. [RT #38979] + +4091. [cleanup] Some cleanups in isc mem code. [RT #38896] + +4090. [bug] Fix a crash while parsing malformed CAA RRs in + presentation format, i.e., from text such as + from master files. Thanks to John Van de + Meulebrouck Brendgard for discovering and + reporting this problem. [RT #39003] + +4089. [bug] Send notifies immediately for slave zones during + startup. [RT #38843] + +4088. [port] Fixed errors when building with libressl. [RT #38899] + +4087. [bug] Fix a crash due to use-after-free due to sequencing + of tasks actions. [RT #38495] + +4085. [bug] ISC_PLATFORM_HAVEXADDQ could be inconsistently set. + [RT #38828] + +4084. [bug] Fix a possible race in updating stats counters. + [RT #38826] + +4082. [bug] Incrementally sign large inline zone deltas. + [RT #37927] + +4081. [cleanup] Use dns_rdatalist_init consistently. [RT #38759] + +4077. [test] Add static-stub regression test for DS NXDOMAIN + return making the static stub disappear. [RT #38564] + +4076. [bug] Named could crash on shutdown with outstanding + reload / reconfig events. [RT #38622] + +4075. [bug] Increase nsupdate's input buffer to accomodate + very large RRs. [RT #38689] + +4074. [cleanup] Cleaned up more warnings from gcc -Wshadow. [RT #38708] + +4073. [cleanup] Add libjson-c version number reporting to + "named -V"; normalize version number formatting. + [RT #38056] + +4072. [func] Add a --enable-querytrace configure switch for + very verbose query trace logging. (This option + has a negative performance impact and should be + used only for debugging.) [RT #37520] + +4070. [bug] Fix a segfault in nslookup in a query such as + "nslookup isc.org AMS.SNS-PB.ISC.ORG -all". + [RT #38548] + +4069. [doc] Reorganize options in the nsupdate man page. + [RT #38515] + +4067. [cleanup] Reduce noise from RRL when query logging is + disabled. [RT #38648] + +4066. [doc] Reorganize options in the dig man page. [RT #38516] + +4064. [contrib] dnssec-keyset.sh: Generates a specified number + of DNSSEC keys with timing set to implement a + pre-publication key rollover strategy. Thanks + to Jeffry A. Spain. [RT #38459] + +4063. [bug] Asynchronous zone loads were not handled + correctly when the zone load was already in + progress; this could trigger a crash in zt.c. + [RT #37573] + +4062. [bug] Fix an out-of-bounds read in RPZ code. If the + read succeeded, it doesn't result in a bug + during operation. If the read failed, named + could segfault. [RT #38559] + +3938. [func] Added quotas to be used in recursive resolvers + that are under high query load for names in zones + whose authoritative servers are nonresponsive or + are experiencing a denial of service attack. + + - "fetches-per-server" limits the number of + simultaneous queries that can be sent to any + single authoritative server. The configured + value is a starting point; it is automatically + adjusted downward if the server is partially or + completely non-responsive. The algorithm used to + adjust the quota can be configured via the + "fetch-quota-params" option. + - "fetches-per-zone" limits the number of + simultaneous queries that can be sent for names + within a single domain. (Note: Unlike + "fetches-per-server", this value is not + self-tuning.) + - New stats counters have been added to count + queries spilled due to these quotas. + + These options are not available by default; + use "configure --enable-fetchlimit" (or + --enable-developer) to include them in the build. + + See the ARM for details of these options. [RT #37125] + +3937. [func] Added some debug logging to better indicate the + conditions causing SERVFAILs when resolving. + [RT #35538] + --- 9.9.7 released --- --- 9.9.7rc2 released --- @@ -16,7 +320,7 @@ 4061. [bug] Handle timeout in legacy system test. [RT #38573] 4060. [bug] dns_rdata_freestruct could be called on a - uninitialised structure when handling a error. + uninitialized structure when handling a error. [RT #38568] 4059. [bug] Addressed valgrind warnings. [RT #38549] @@ -51,15 +51,35 @@ BIND 9 For up-to-date release notes and errata, see http://www.isc.org/software/bind9/releasenotes -BIND 9.9.7-P2 - - BIND 9.9.7-P1 is a security release addressing the flaw - described in CVE-2015-5477. - -BIND 9.9.7-P1 - - BIND 9.9.7-P1 is a security release addressing the flaw - described in CVE-2015-4620. +BIND 9.9.8 + + BIND 9.9.8 is a maintenance release and addresses bugs + found in BIND 9.9.7 and earlier, as well as the security + flaws described in CVE-2015-4620, CVE-2015-5477, + CVE-2015-5722, and CVE-2015-5986. + + It also makes the following new features available via a + compile-time option: + + - New "fetchlimit" quotas are now available for the use of + recursive resolvers that are are under high query load for + domains whose authoritative servers are nonresponsive or are + experiencing a denial of service attack. + + + "fetches-per-server" limits the number of simultaneous queries + that can be sent to any single authoritative server. The + configured value is a starting point; it is automatically + adjusted downward if the server is partially or completely + non-responsive. The algorithm used to adjust the quota can be + configured via the "fetch-quota-params" option. + + "fetches-per-zone" limits the number of simultaneous queries + that can be sent for names within a single domain. (Note: + Unlike "fetches-per-server", this value is not self-tuning.) + + New stats counters have been added to count + queries spilled due to these quotas. + + NOTE: These options are NOT built in by default; use + "configure --enable-fetchlimit" to enable them. BIND 9.9.7 diff --git a/bin/check/check-tool.c b/bin/check/check-tool.c index 1e534071d0c8..bb51fd360ff9 100644 --- a/bin/check/check-tool.c +++ b/bin/check/check-tool.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -33,6 +33,7 @@ #include <isc/mem.h> #include <isc/netdb.h> #include <isc/net.h> +#include <isc/print.h> #include <isc/region.h> #include <isc/stdio.h> #include <isc/string.h> diff --git a/bin/check/named-checkconf.c b/bin/check/named-checkconf.c index 18cfdddc98bd..a2a0856de475 100644 --- a/bin/check/named-checkconf.c +++ b/bin/check/named-checkconf.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2009-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2009-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -31,6 +31,7 @@ #include <isc/hash.h> #include <isc/log.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/result.h> #include <isc/string.h> #include <isc/util.h> diff --git a/bin/check/named-checkzone.c b/bin/check/named-checkzone.c index 7e779c2d17f8..b1b871d09bd8 100644 --- a/bin/check/named-checkzone.c +++ b/bin/check/named-checkzone.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -30,6 +30,7 @@ #include <isc/hash.h> #include <isc/log.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/socket.h> #include <isc/string.h> #include <isc/task.h> diff --git a/bin/confgen/keygen.c b/bin/confgen/keygen.c index d0cdafed364b..3c0507f7ce0f 100644 --- a/bin/confgen/keygen.c +++ b/bin/confgen/keygen.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2012, 2013, 2015 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 @@ -29,6 +29,7 @@ #include <isc/file.h> #include <isc/keyboard.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/result.h> #include <isc/string.h> diff --git a/bin/confgen/util.c b/bin/confgen/util.c index 5f5f817a5d3d..a3e21b5155af 100644 --- a/bin/confgen/util.c +++ b/bin/confgen/util.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2015 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 @@ -25,6 +25,7 @@ #include <stdio.h> #include <isc/boolean.h> +#include <isc/print.h> #include "util.h" diff --git a/bin/dig/dig.1 b/bin/dig/dig.1 index b492ee71fd58..f78d556bfbd7 100644 --- a/bin/dig/dig.1 +++ b/bin/dig/dig.1 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2004-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2004-2011, 2013-2015 Internet Systems Consortium, Inc. ("ISC") .\" Copyright (C) 2000-2003 Internet Software Consortium. .\" .\" Permission to use, copy, modify, and/or distribute this software for any @@ -130,77 +130,97 @@ will perform a lookup for an A record. .RE .SH "OPTIONS" .PP -The -\fB\-b\fR -option sets the source IP address of the query to -\fIaddress\fR. This must be a valid address on one of the host's network interfaces or "0.0.0.0" or "::". An optional port may be specified by appending "#<port>" +\-4 +.RS 4 +Use IPv4 only. +.RE .PP -The default query class (IN for internet) is overridden by the -\fB\-c\fR -option. +\-6 +.RS 4 +Use IPv6 only. +.RE +.PP +\-b \fIaddress\fR\fI[#port]\fR +.RS 4 +Set the source IP address of the query. The +\fIaddress\fR +must be a valid address on one of the host's network interfaces, or "0.0.0.0" or "::". An optional port may be specified by appending "#<port>" +.RE +.PP +\-c \fIclass\fR +.RS 4 +Set the query class. The default \fIclass\fR -is any valid class, such as HS for Hesiod records or CH for Chaosnet records. +is IN; other classes are HS for Hesiod records or CH for Chaosnet records. +.RE .PP -The -\fB\-f\fR -option makes -\fBdig \fR -operate in batch mode by reading a list of lookup requests to process from the file -\fIfilename\fR. The file contains a number of queries, one per line. Each entry in the file should be organized in the same way they would be presented as queries to +\-f \fIfile\fR +.RS 4 +Batch mode: +\fBdig\fR +reads a list of lookup requests to process from the given +\fIfile\fR. Each line in the file should be organized in the same way they would be presented as queries to \fBdig\fR using the command\-line interface. +.RE .PP -The -\fB\-m\fR -option enables memory usage debugging. +\-i +.RS 4 +Do reverse IPv6 lookups using the obsolete RFC1886 IP6.INT domain, which is no longer in use. Obsolete bit string label queries (RFC2874) are not attempted. +.RE .PP -If a non\-standard port number is to be queried, the -\fB\-p\fR -option is used. -\fIport#\fR -is the port number that -\fBdig\fR -will send its queries instead of the standard DNS port number 53. This option would be used to test a name server that has been configured to listen for queries on a non\-standard port number. +\-k \fIkeyfile\fR +.RS 4 +Sign queries using TSIG using a key read from the given file. Key files can be generated using +\fBtsig\-keygen\fR(8). When using TSIG authentication with +\fBdig\fR, the name server that is queried needs to know the key and algorithm that is being used. In BIND, this is done by providing appropriate +\fBkey\fR +and +\fBserver\fR +statements in +\fInamed.conf\fR. +.RE .PP -The -\fB\-4\fR -option forces -\fBdig\fR -to only use IPv4 query transport. The -\fB\-6\fR -option forces -\fBdig\fR -to only use IPv6 query transport. +\-m +.RS 4 +Enable memory usage debugging. +.RE .PP -The -\fB\-t\fR -option sets the query type to -\fItype\fR. It can be any valid query type which is supported in BIND 9. The default query type is "A", unless the +\-p \fIport\fR +.RS 4 +Send the query to a non\-standard port on the server, instead of the defaut port 53. This option would be used to test a name server that has been configured to listen for queries on a non\-standard port number. +.RE +.PP +\-q \fIname\fR +.RS 4 +The domain name to query. This is useful to distinguish the +\fIname\fR +from other arguments. +.RE +.PP +\-t \fItype\fR +.RS 4 +The resource record type to query. It can be any valid query type which is supported in BIND 9. The default query type is "A", unless the \fB\-x\fR -option is supplied to indicate a reverse lookup. A zone transfer can be requested by specifying a type of AXFR. When an incremental zone transfer (IXFR) is required, +option is supplied to indicate a reverse lookup. A zone transfer can be requested by specifying a type of AXFR. When an incremental zone transfer (IXFR) is required, set the \fItype\fR -is set to +to ixfr=N. The incremental zone transfer will contain the changes made to the zone since the serial number in the zone's SOA record was \fIN\fR. +.RE .PP -The -\fB\-q\fR -option sets the query name to -\fIname\fR. This is useful to distinguish the -\fIname\fR -from other arguments. -.PP -The -\fB\-v\fR -causes -\fBdig\fR -to print the version number and exit. +\-v +.RS 4 +Print the version number and exit. +.RE .PP -Reverse lookups \(em mapping addresses to names \(em are simplified by the -\fB\-x\fR -option. +\-x \fIaddr\fR +.RS 4 +Simplified reverse lookups, for mapping addresses to names. The \fIaddr\fR -is an IPv4 address in dotted\-decimal notation, or a colon\-delimited IPv6 address. When this option is used, there is no need to provide the +is an IPv4 address in dotted\-decimal notation, or a colon\-delimited IPv6 address. When the +\fB\-x\fR +is used, there is no need to provide the \fIname\fR, \fIclass\fR and @@ -208,35 +228,41 @@ and arguments. \fBdig\fR automatically performs a lookup for a name like -11.12.13.10.in\-addr.arpa -and sets the query type and class to PTR and IN respectively. By default, IPv6 addresses are looked up using nibble format under the IP6.ARPA domain. To use the older RFC1886 method using the IP6.INT domain specify the +94.2.0.192.in\-addr.arpa +and sets the query type and class to PTR and IN respectively. IPv6 addresses are looked up using nibble format under the IP6.ARPA domain (but see also the \fB\-i\fR -option. Bit string labels (RFC2874) are now experimental and are not attempted. +option). +.RE .PP -To sign the DNS queries sent by -\fBdig\fR -and their responses using transaction signatures (TSIG), specify a TSIG key file using the +\-y \fI[hmac:]\fR\fIkeyname:secret\fR +.RS 4 +Sign queries using TSIG with the given authentication key. +\fIkeyname\fR +is the name of the key, and +\fIsecret\fR +is the base64 encoded shared secret. +\fIhmac\fR +is the name of the key algorithm; valid choices are +hmac\-md5, +hmac\-sha1, +hmac\-sha224, +hmac\-sha256, +hmac\-sha384, or +hmac\-sha512. If +\fIhmac\fR +is not specified, the default is +hmac\-md5. +.sp +NOTE: You should use the \fB\-k\fR -option. You can also specify the TSIG key itself on the command line using the +option and avoid the \fB\-y\fR -option; -\fIhmac\fR -is the type of the TSIG, default HMAC\-MD5, -\fIname\fR -is the name of the TSIG key and -\fIkey\fR -is the actual key. The key is a base\-64 encoded string, typically generated by -\fBdnssec\-keygen\fR(8). Caution should be taken when using the +option, because with \fB\-y\fR -option on multi\-user systems as the key can be visible in the output from +the shared secret is supplied as a command line argument in clear text. This may be visible in the output from \fBps\fR(1) -or in the shell's history file. When using TSIG authentication with -\fBdig\fR, the name server that is queried needs to know the key and algorithm that is being used. In BIND, this is done by providing appropriate -\fBkey\fR -and -\fBserver\fR -statements in -\fInamed.conf\fR. +or in a history file maintained by the user's shell. +.RE .SH "QUERY OPTIONS" .PP \fBdig\fR @@ -245,7 +271,10 @@ provides a number of query options which affect the way in which lookups are mad Each query option is identified by a keyword preceded by a plus sign (+). Some keywords set or reset an option. These may be preceded by the string no to negate the meaning of that keyword. Other keywords assign values to options like the timeout interval. They have the form -\fB+keyword=value\fR. The query options are: +\fB+keyword=value\fR. Keywords may be abbreviated, provided the abbreviation is unambiguous; for example, ++cd +is equivalent to ++cdflag. The query options are: .PP \fB+[no]aaflag\fR .RS 4 @@ -300,7 +329,7 @@ bytes. The maximum and minimum sizes of this buffer are 65535 and 0 respectively Set [do not set] the CD (checking disabled) bit in the query. This requests the server to not perform DNSSEC validation of responses. .RE .PP -\fB+[no]cl\fR +\fB+[no]class\fR .RS 4 Display [do not display] the CLASS when printing the record. .RE @@ -421,6 +450,12 @@ Print [do not print] the query as it is sent. By default, the query is not print Print [do not print] the question section of a query when an answer is returned. The default is to print the question section as a comment. .RE .PP +\fB+[no]rdflag\fR +.RS 4 +A synonym for +\fI+[no]recurse\fR. +.RE +.PP \fB+[no]recurse\fR .RS 4 Toggle the setting of the RD (recursion desired) bit in the query. This bit is set by default, which means @@ -518,6 +553,8 @@ Toggle tracing of the delegation path from the root name servers for the name be \fBdig\fR makes iterative queries to resolve the name being looked up. It will follow referrals from the root servers, showing the answer from each server that was used to resolve the lookup. .sp +If @server is also specified, it affects only the initial query for the root zone name servers. +.sp \fB+dnssec\fR is also set when +trace is set to better emulate the default queries from a nameserver. .RE @@ -620,7 +657,7 @@ RFC1035. .PP There are probably too many query options. .SH "COPYRIGHT" -Copyright \(co 2004\-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2004\-2011, 2013\-2015 Internet Systems Consortium, Inc. ("ISC") .br Copyright \(co 2000\-2003 Internet Software Consortium. .br diff --git a/bin/dig/dig.c b/bin/dig/dig.c index 07d8b0b7e14a..145e6107ad33 100644 --- a/bin/dig/dig.c +++ b/bin/dig/dig.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -165,71 +165,75 @@ help(void) { " q-type is one of (a,any,mx,ns,soa,hinfo,axfr,txt,...) [default:a]\n" " (Use ixfr=version for type ixfr)\n" " q-opt is one of:\n" -" -x dot-notation (shortcut for reverse lookups)\n" -" -i (use IP6.INT for IPv6 reverse lookups)\n" -" -f filename (batch mode)\n" +" -4 (use IPv4 query transport only)\n" +" -6 (use IPv6 query transport only)\n" " -b address[#port] (bind to source address/port)\n" +" -c class (specify query class)\n" +" -f filename (batch mode)\n" +" -i (use IP6.INT for IPv6 reverse lookups)\n" +" -k keyfile (specify tsig key file)\n" +" -m (enable memory usage debugging)\n" " -p port (specify port number)\n" " -q name (specify query name)\n" " -t type (specify query type)\n" -" -c class (specify query class)\n" -" -k keyfile (specify tsig key file)\n" +" -x dot-notation (shortcut for reverse lookups)\n" " -y [hmac:]name:key (specify named base64 tsig key)\n" -" -4 (use IPv4 query transport only)\n" -" -6 (use IPv6 query transport only)\n" -" -m (enable memory usage debugging)\n" " d-opt is of the form +keyword[=value], where keyword is:\n" -" +[no]vc (TCP mode)\n" -" +[no]tcp (TCP mode, alternate syntax)\n" -" +time=### (Set query timeout) [5]\n" -" +tries=### (Set number of UDP attempts) [3]\n" -" +retry=### (Set number of UDP retries) [2]\n" -" +domain=### (Set default domainname)\n" -" +bufsize=### (Set EDNS0 Max UDP packet size)\n" -" +ndots=### (Set NDOTS value)\n" -" +[no]edns[=###] (Set EDNS version) [0]\n" -" +[no]search (Set whether to use searchlist)\n" -" +[no]showsearch (Search with intermediate results)\n" -" +[no]defname (Ditto)\n" -" +[no]recurse (Recursive mode)\n" -" +[no]ignore (Don't revert to TCP for TC responses.)" -"\n" -" +[no]fail (Don't try next server on SERVFAIL)\n" -" +[no]besteffort (Try to parse even illegal messages)\n" " +[no]aaonly (Set AA flag in query (+[no]aaflag))\n" -" +[no]adflag (Set AD flag in query)\n" -" +[no]cdflag (Set CD flag in query)\n" +" +[no]additional (Control display of additional section)\n" +" +[no]adflag (Set AD flag in query (default on))\n" +" +[no]all (Set or clear all display flags)\n" +" +[no]answer (Control display of answer section)\n" +" +[no]authority (Control display of authority section)\n" +" +[no]besteffort (Try to parse even illegal messages)\n" +" +bufsize=### (Set EDNS0 Max UDP packet size)\n" +" +[no]cdflag (Set checking disabled flag in query)\n" " +[no]cl (Control display of class in records)\n" " +[no]cmd (Control display of command line)\n" " +[no]comments (Control display of comment lines)\n" +" +[no]defname (Use search list (+[no]search))\n" +" +[no]dnssec (Request DNSSEC records)\n" +" +domain=### (Set default domainname)\n" +" +[no]edns[=###] (Set EDNS version) [0]\n" +" +[no]fail (Don't try next server on SERVFAIL)\n" +" +[no]identify (ID responders in short answers)\n" +" +[no]ignore (Don't revert to TCP for TC responses.)" +"\n" +" +[no]keepopen (Keep the TCP socket open between queries)\n" +" +[no]multiline (Print records in an expanded format)\n" +" +ndots=### (Set search NDOTS value)\n" +" +[no]nsid (Request Name Server ID)\n" +" +[no]nssearch (Search all authoritative nameservers)\n" +" +[no]onesoa (AXFR prints only one soa record)\n" +" +[no]qr (Print question before sending)\n" +" +[no]question (Control display of question section)\n" +" +[no]recurse (Recursive mode)\n" +" +retry=### (Set number of UDP retries) [2]\n" " +[no]rrcomments (Control display of per-record " "comments)\n" -" +[no]question (Control display of question)\n" -" +[no]answer (Control display of answer)\n" -" +[no]authority (Control display of authority)\n" -" +[no]additional (Control display of additional)\n" -" +[no]stats (Control display of statistics)\n" -" +[no]short (Disable everything except short\n" +" +[no]search (Set whether to use searchlist)\n" +" +[no]short (Display nothing except short\n" " form of answer)\n" -" +[no]ttlid (Control display of ttls in records)\n" -" +[no]all (Set or clear all display flags)\n" -" +[no]qr (Print question before sending)\n" -" +[no]nssearch (Search all authoritative nameservers)\n" -" +[no]identify (ID responders in short answers)\n" -" +[no]trace (Trace delegation down from root [+dnssec])\n" -" +[no]dnssec (Request DNSSEC records)\n" -" +[no]nsid (Request Name Server ID)\n" +" +[no]showsearch (Search with intermediate results)\n" #ifdef DIG_SIGCHASE " +[no]sigchase (Chase DNSSEC signatures)\n" -" +trusted-key=#### (Trusted Key when chasing DNSSEC sigs)\n" +#endif +" +[no]split=## (Split hex/base64 fields into chunks)\n" +" +[no]stats (Control display of statistics)\n" +" +[no]tcp (TCP mode (+[no]vc))\n" +" +time=### (Set query timeout) [5]\n" +#ifdef DIG_SIGCHASE #if DIG_SIGCHASE_TD " +[no]topdown (Do DNSSEC validation top down mode)\n" #endif #endif -" +[no]split=## (Split hex/base64 fields into chunks)\n" -" +[no]multiline (Print records in an expanded format)\n" -" +[no]onesoa (AXFR prints only one soa record)\n" -" +[no]keepopen (Keep the TCP socket open between queries)\n" +" +[no]trace (Trace delegation down from root [+dnssec])\n" +" +tries=### (Set number of UDP attempts) [3]\n" +#ifdef DIG_SIGCHASE +" +trusted-key=#### (Trusted Key when chasing DNSSEC sigs)\n" +#endif +" +[no]ttlid (Control display of ttls in records)\n" +" +[no]vc (TCP mode (+[no]tcp))\n" " global d-opts and servers (before host name) affect all queries.\n" " local d-opts and servers (after host name) affect only that lookup.\n" " -h (print help and exit)\n" @@ -306,6 +310,7 @@ say_message(dns_rdata_t *rdata, dig_query_t *query, isc_buffer_t *buf) { isc_result_t result; isc_uint64_t diff; char store[sizeof("12345678901234567890")]; + unsigned int styleflags = 0; if (query->lookup->trace || query->lookup->ns_search_only) { result = dns_rdatatype_totext(rdata->type, buf); @@ -313,7 +318,11 @@ say_message(dns_rdata_t *rdata, dig_query_t *query, isc_buffer_t *buf) { return (result); ADD_STRING(buf, " "); } - result = dns_rdata_totext(rdata, NULL, buf); + + if (rrcomments) + styleflags |= DNS_STYLEFLAG_RRCOMMENT; + result = dns_rdata_tofmttext(rdata, NULL, styleflags, 0, + splitwidth, " ", buf); if (result == ISC_R_NOSPACE) return (result); check_result(result, "dns_rdata_totext"); @@ -831,8 +840,9 @@ plus_option(char *option, isc_boolean_t is_batchfile, goto invalid_option; } break; - case 'l': /* cl */ - FULLCHECK("cl"); + case 'l': /* class */ + /* keep +cl for backwards compatibility */ + FULLCHECK2("cl", "class"); noclass = ISC_TF(!state); break; case 'm': /* cmd */ @@ -984,6 +994,10 @@ plus_option(char *option, isc_boolean_t is_batchfile, break; case 'r': switch (cmd[1]) { + case 'd': /* rdflag */ + FULLCHECK("rdflag"); + lookup->recurse = state; + break; case 'e': switch (cmd[2]) { case 'c': /* recurse */ diff --git a/bin/dig/dig.docbook b/bin/dig/dig.docbook index 53ab0c6e9f3c..8a3022dfc893 100644 --- a/bin/dig/dig.docbook +++ b/bin/dig/dig.docbook @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY mdash "—">]> <!-- - - Copyright (C) 2004-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + - Copyright (C) 2004-2011, 2013-2015 Internet Systems Consortium, Inc. ("ISC") - Copyright (C) 2000-2003 Internet Software Consortium. - - Permission to use, copy, modify, and/or distribute this software for any @@ -47,6 +47,7 @@ <year>2011</year> <year>2013</year> <year>2014</year> + <year>2015</year> <holder>Internet Systems Consortium, Inc. ("ISC")</holder> </copyright> <copyright> @@ -216,127 +217,204 @@ <refsect1> <title>OPTIONS</title> - <para> - The <option>-b</option> option sets the source IP address of the query - to <parameter>address</parameter>. This must be a valid - address on - one of the host's network interfaces or "0.0.0.0" or "::". An optional - port - may be specified by appending "#<port>" - </para> - - <para> - The default query class (IN for internet) is overridden by the - <option>-c</option> option. <parameter>class</parameter> is - any valid - class, such as HS for Hesiod records or CH for Chaosnet records. - </para> - - <para> - The <option>-f</option> option makes <command>dig </command> - operate - in batch mode by reading a list of lookup requests to process from the - file <parameter>filename</parameter>. The file contains a - number of - queries, one per line. Each entry in the file should be organized in - the same way they would be presented as queries to - <command>dig</command> using the command-line interface. - </para> - - <para> - The <option>-m</option> option enables memory usage debugging. - <!-- It enables ISC_MEM_DEBUGTRACE and ISC_MEM_DEBUGRECORD - documented in include/isc/mem.h --> - </para> - - <para> - If a non-standard port number is to be queried, the - <option>-p</option> option is used. <parameter>port#</parameter> is - the port number that <command>dig</command> will send its - queries - instead of the standard DNS port number 53. This option would be used - to test a name server that has been configured to listen for queries - on a non-standard port number. - </para> - - <para> - The <option>-4</option> option forces <command>dig</command> - to only - use IPv4 query transport. The <option>-6</option> option forces - <command>dig</command> to only use IPv6 query transport. - </para> - - <para> - The <option>-t</option> option sets the query type to - <parameter>type</parameter>. It can be any valid query type - which is - supported in BIND 9. The default query type is "A", unless the - <option>-x</option> option is supplied to indicate a reverse lookup. - A zone transfer can be requested by specifying a type of AXFR. When - an incremental zone transfer (IXFR) is required, - <parameter>type</parameter> is set to <literal>ixfr=N</literal>. - The incremental zone transfer will contain the changes made to the zone - since the serial number in the zone's SOA record was - <parameter>N</parameter>. - </para> - - <para> - The <option>-q</option> option sets the query name to - <parameter>name</parameter>. This is useful to distinguish the - <parameter>name</parameter> from other arguments. - </para> - - <para> - The <option>-v</option> causes <command>dig</command> to - print the version number and exit. - </para> - - <para> - Reverse lookups — mapping addresses to names — are simplified by the - <option>-x</option> option. <parameter>addr</parameter> is - an IPv4 - address in dotted-decimal notation, or a colon-delimited IPv6 address. - When this option is used, there is no need to provide the - <parameter>name</parameter>, <parameter>class</parameter> and - <parameter>type</parameter> arguments. <command>dig</command> - automatically performs a lookup for a name like - <literal>11.12.13.10.in-addr.arpa</literal> and sets the - query type and - class to PTR and IN respectively. By default, IPv6 addresses are - looked up using nibble format under the IP6.ARPA domain. - To use the older RFC1886 method using the IP6.INT domain - specify the <option>-i</option> option. Bit string labels (RFC2874) - are now experimental and are not attempted. - </para> - - <para> - To sign the DNS queries sent by <command>dig</command> and - their - responses using transaction signatures (TSIG), specify a TSIG key file - using the <option>-k</option> option. You can also specify the TSIG - key itself on the command line using the <option>-y</option> option; - <parameter>hmac</parameter> is the type of the TSIG, default HMAC-MD5, - <parameter>name</parameter> is the name of the TSIG key and - <parameter>key</parameter> is the actual key. The key is a - base-64 - encoded string, typically generated by - <citerefentry> - <refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum> - </citerefentry>. - - Caution should be taken when using the <option>-y</option> option on - multi-user systems as the key can be visible in the output from - <citerefentry> - <refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum> - </citerefentry> - or in the shell's history file. When - using TSIG authentication with <command>dig</command>, the name - server that is queried needs to know the key and algorithm that is - being used. In BIND, this is done by providing appropriate - <command>key</command> and <command>server</command> statements in - <filename>named.conf</filename>. - </para> - + <variablelist> + <varlistentry> + <term>-4</term> + <listitem> + <para> + Use IPv4 only. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-6</term> + <listitem> + <para> + Use IPv6 only. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-b <replaceable class="parameter">address<optional>#port</optional></replaceable></term> + <listitem> + <para> + Set the source IP address of the query. + The <parameter>address</parameter> must be a valid address on + one of the host's network interfaces, or "0.0.0.0" or "::". An + optional port may be specified by appending "#<port>" + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-c <replaceable class="parameter">class</replaceable></term> + <listitem> + <para> + Set the query class. The + default <parameter>class</parameter> is IN; other classes + are HS for Hesiod records or CH for Chaosnet records. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-f <replaceable class="parameter">file</replaceable></term> + <listitem> + <para> + Batch mode: <command>dig</command> reads a list of lookup + requests to process from the + given <parameter>file</parameter>. Each line in the file + should be organized in the same way they would be + presented as queries to + <command>dig</command> using the command-line interface. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-i</term> + <listitem> + <para> + Do reverse IPv6 lookups using the obsolete RFC1886 IP6.INT + domain, which is no longer in use. Obsolete bit string + label queries (RFC2874) are not attempted. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-k <replaceable class="parameter">keyfile</replaceable></term> + <listitem> + <para> + Sign queries using TSIG using a key read from the given file. + Key files can be generated using + <citerefentry> + <refentrytitle>tsig-keygen</refentrytitle><manvolnum>8</manvolnum> + </citerefentry>. + When using TSIG authentication with <command>dig</command>, + the name server that is queried needs to know the key and + algorithm that is being used. In BIND, this is done by + providing appropriate <command>key</command> + and <command>server</command> statements in + <filename>named.conf</filename>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-m</term> + <listitem> + <para> + Enable memory usage debugging. + <!-- It enables ISC_MEM_DEBUGTRACE and ISC_MEM_DEBUGRECORD + documented in include/isc/mem.h --> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-p <replaceable class="parameter">port</replaceable></term> + <listitem> + <para> + Send the query to a non-standard port on the server, + instead of the defaut port 53. This option would be used + to test a name server that has been configured to listen + for queries on a non-standard port number. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-q <replaceable class="parameter">name</replaceable></term> + <listitem> + <para> + The domain name to query. This is useful to distinguish + the <parameter>name</parameter> from other arguments. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-t <replaceable class="parameter">type</replaceable></term> + <listitem> + <para> + The resource record type to query. It can be any valid query type + which is + supported in BIND 9. The default query type is "A", unless the + <option>-x</option> option is supplied to indicate a reverse lookup. + A zone transfer can be requested by specifying a type of AXFR. When + an incremental zone transfer (IXFR) is required, set the + <parameter>type</parameter> to <literal>ixfr=N</literal>. + The incremental zone transfer will contain the changes + made to the zone since the serial number in the zone's SOA + record was + <parameter>N</parameter>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-v</term> + <listitem> + <para> + Print the version number and exit. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-x <replaceable class="parameter">addr</replaceable></term> + <listitem> + <para> + Simplified reverse lookups, for mapping addresses to + names. The <parameter>addr</parameter> is an IPv4 address + in dotted-decimal notation, or a colon-delimited IPv6 + address. When the <option>-x</option> is used, there is no + need to provide + the <parameter>name</parameter>, <parameter>class</parameter> + and <parameter>type</parameter> + arguments. <command>dig</command> automatically performs a + lookup for a name like + <literal>94.2.0.192.in-addr.arpa</literal> and sets the + query type and class to PTR and IN respectively. IPv6 + addresses are looked up using nibble format under the + IP6.ARPA domain (but see also the <option>-i</option> + option). + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-y <replaceable class="parameter"><optional>hmac:</optional>keyname:secret</replaceable></term> + <listitem> + <para> + Sign queries using TSIG with the given authentication key. + <parameter>keyname</parameter> is the name of the key, and + <parameter>secret</parameter> is the base64 encoded shared secret. + <parameter>hmac</parameter> is the name of the key algorithm; + valid choices are <literal>hmac-md5</literal>, + <literal>hmac-sha1</literal>, <literal>hmac-sha224</literal>, + <literal>hmac-sha256</literal>, <literal>hmac-sha384</literal>, or + <literal>hmac-sha512</literal>. If <parameter>hmac</parameter> + is not specified, the default is <literal>hmac-md5</literal>. + </para> + <para> + NOTE: You should use the <option>-k</option> option and + avoid the <option>-y</option> option, because + with <option>-y</option> the shared secret is supplied as + a command line argument in clear text. This may be visible + in the output from + <citerefentry> + <refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + or in a history file maintained by the user's shell. + </para> + </listitem> + </varlistentry> + + </variablelist> </refsect1> <refsect1> @@ -358,6 +436,9 @@ that keyword. Other keywords assign values to options like the timeout interval. They have the form <option>+keyword=value</option>. + Keywords may be abbreviated, provided the abbreviation is + unambiguous; for example, <literal>+cd</literal> is equivalent + to <literal>+cdflag</literal>. The query options are: <variablelist> @@ -473,7 +554,7 @@ </varlistentry> <varlistentry> - <term><option>+[no]cl</option></term> + <term><option>+[no]class</option></term> <listitem> <para> Display [do not display] the CLASS when printing the @@ -686,6 +767,15 @@ </varlistentry> <varlistentry> + <term><option>+[no]rdflag</option></term> + <listitem> + <para> + A synonym for <parameter>+[no]recurse</parameter>. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><option>+[no]recurse</option></term> <listitem> <para> @@ -850,6 +940,9 @@ referrals from the root servers, showing the answer from each server that was used to resolve the lookup. </para> <para> + If @server is also specified, it affects only the + initial query for the root zone name servers. + </para> <para> <command>+dnssec</command> is also set when +trace is set to better emulate the default queries from a nameserver. diff --git a/bin/dig/dig.html b/bin/dig/dig.html index e624e151c434..6cb32c118946 100644 --- a/bin/dig/dig.html +++ b/bin/dig/dig.html @@ -1,5 +1,5 @@ <!-- - - Copyright (C) 2004-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + - Copyright (C) 2004-2011, 2013-2015 Internet Systems Consortium, Inc. ("ISC") - Copyright (C) 2000-2003 Internet Software Consortium. - - Permission to use, copy, modify, and/or distribute this software for any @@ -34,7 +34,7 @@ <div class="cmdsynopsis"><p><code class="command">dig</code> [global-queryopt...] [query...]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2543544"></a><h2>DESCRIPTION</h2> +<a name="id2543547"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">dig</strong></span> (domain information groper) is a flexible tool for interrogating DNS name servers. It performs DNS lookups and @@ -81,7 +81,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2543623"></a><h2>SIMPLE USAGE</h2> +<a name="id2543626"></a><h2>SIMPLE USAGE</h2> <p> A typical invocation of <span><strong class="command">dig</strong></span> looks like: </p> @@ -134,115 +134,135 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2543726"></a><h2>OPTIONS</h2> -<p> - The <code class="option">-b</code> option sets the source IP address of the query - to <em class="parameter"><code>address</code></em>. This must be a valid - address on - one of the host's network interfaces or "0.0.0.0" or "::". An optional - port - may be specified by appending "#<port>" - </p> -<p> - The default query class (IN for internet) is overridden by the - <code class="option">-c</code> option. <em class="parameter"><code>class</code></em> is - any valid - class, such as HS for Hesiod records or CH for Chaosnet records. - </p> -<p> - The <code class="option">-f</code> option makes <span><strong class="command">dig </strong></span> - operate - in batch mode by reading a list of lookup requests to process from the - file <em class="parameter"><code>filename</code></em>. The file contains a - number of - queries, one per line. Each entry in the file should be organized in - the same way they would be presented as queries to - <span><strong class="command">dig</strong></span> using the command-line interface. - </p> -<p> - The <code class="option">-m</code> option enables memory usage debugging. - - </p> -<p> - If a non-standard port number is to be queried, the - <code class="option">-p</code> option is used. <em class="parameter"><code>port#</code></em> is - the port number that <span><strong class="command">dig</strong></span> will send its - queries - instead of the standard DNS port number 53. This option would be used - to test a name server that has been configured to listen for queries - on a non-standard port number. - </p> -<p> - The <code class="option">-4</code> option forces <span><strong class="command">dig</strong></span> - to only - use IPv4 query transport. The <code class="option">-6</code> option forces - <span><strong class="command">dig</strong></span> to only use IPv6 query transport. - </p> -<p> - The <code class="option">-t</code> option sets the query type to - <em class="parameter"><code>type</code></em>. It can be any valid query type - which is - supported in BIND 9. The default query type is "A", unless the - <code class="option">-x</code> option is supplied to indicate a reverse lookup. - A zone transfer can be requested by specifying a type of AXFR. When - an incremental zone transfer (IXFR) is required, - <em class="parameter"><code>type</code></em> is set to <code class="literal">ixfr=N</code>. - The incremental zone transfer will contain the changes made to the zone - since the serial number in the zone's SOA record was - <em class="parameter"><code>N</code></em>. - </p> -<p> - The <code class="option">-q</code> option sets the query name to - <em class="parameter"><code>name</code></em>. This is useful to distinguish the - <em class="parameter"><code>name</code></em> from other arguments. - </p> -<p> - The <code class="option">-v</code> causes <span><strong class="command">dig</strong></span> to - print the version number and exit. - </p> -<p> - Reverse lookups — mapping addresses to names — are simplified by the - <code class="option">-x</code> option. <em class="parameter"><code>addr</code></em> is - an IPv4 - address in dotted-decimal notation, or a colon-delimited IPv6 address. - When this option is used, there is no need to provide the - <em class="parameter"><code>name</code></em>, <em class="parameter"><code>class</code></em> and - <em class="parameter"><code>type</code></em> arguments. <span><strong class="command">dig</strong></span> - automatically performs a lookup for a name like - <code class="literal">11.12.13.10.in-addr.arpa</code> and sets the - query type and - class to PTR and IN respectively. By default, IPv6 addresses are - looked up using nibble format under the IP6.ARPA domain. - To use the older RFC1886 method using the IP6.INT domain - specify the <code class="option">-i</code> option. Bit string labels (RFC2874) - are now experimental and are not attempted. - </p> +<a name="id2543730"></a><h2>OPTIONS</h2> +<div class="variablelist"><dl> +<dt><span class="term">-4</span></dt> +<dd><p> + Use IPv4 only. + </p></dd> +<dt><span class="term">-6</span></dt> +<dd><p> + Use IPv6 only. + </p></dd> +<dt><span class="term">-b <em class="replaceable"><code>address[<span class="optional">#port</span>]</code></em></span></dt> +<dd><p> + Set the source IP address of the query. + The <em class="parameter"><code>address</code></em> must be a valid address on + one of the host's network interfaces, or "0.0.0.0" or "::". An + optional port may be specified by appending "#<port>" + </p></dd> +<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt> +<dd><p> + Set the query class. The + default <em class="parameter"><code>class</code></em> is IN; other classes + are HS for Hesiod records or CH for Chaosnet records. + </p></dd> +<dt><span class="term">-f <em class="replaceable"><code>file</code></em></span></dt> +<dd><p> + Batch mode: <span><strong class="command">dig</strong></span> reads a list of lookup + requests to process from the + given <em class="parameter"><code>file</code></em>. Each line in the file + should be organized in the same way they would be + presented as queries to + <span><strong class="command">dig</strong></span> using the command-line interface. + </p></dd> +<dt><span class="term">-i</span></dt> +<dd><p> + Do reverse IPv6 lookups using the obsolete RFC1886 IP6.INT + domain, which is no longer in use. Obsolete bit string + label queries (RFC2874) are not attempted. + </p></dd> +<dt><span class="term">-k <em class="replaceable"><code>keyfile</code></em></span></dt> +<dd><p> + Sign queries using TSIG using a key read from the given file. + Key files can be generated using + <span class="citerefentry"><span class="refentrytitle">tsig-keygen</span>(8)</span>. + When using TSIG authentication with <span><strong class="command">dig</strong></span>, + the name server that is queried needs to know the key and + algorithm that is being used. In BIND, this is done by + providing appropriate <span><strong class="command">key</strong></span> + and <span><strong class="command">server</strong></span> statements in + <code class="filename">named.conf</code>. + </p></dd> +<dt><span class="term">-m</span></dt> +<dd><p> + Enable memory usage debugging. + + </p></dd> +<dt><span class="term">-p <em class="replaceable"><code>port</code></em></span></dt> +<dd><p> + Send the query to a non-standard port on the server, + instead of the defaut port 53. This option would be used + to test a name server that has been configured to listen + for queries on a non-standard port number. + </p></dd> +<dt><span class="term">-q <em class="replaceable"><code>name</code></em></span></dt> +<dd><p> + The domain name to query. This is useful to distinguish + the <em class="parameter"><code>name</code></em> from other arguments. + </p></dd> +<dt><span class="term">-t <em class="replaceable"><code>type</code></em></span></dt> +<dd><p> + The resource record type to query. It can be any valid query type + which is + supported in BIND 9. The default query type is "A", unless the + <code class="option">-x</code> option is supplied to indicate a reverse lookup. + A zone transfer can be requested by specifying a type of AXFR. When + an incremental zone transfer (IXFR) is required, set the + <em class="parameter"><code>type</code></em> to <code class="literal">ixfr=N</code>. + The incremental zone transfer will contain the changes + made to the zone since the serial number in the zone's SOA + record was + <em class="parameter"><code>N</code></em>. + </p></dd> +<dt><span class="term">-v</span></dt> +<dd><p> + Print the version number and exit. + </p></dd> +<dt><span class="term">-x <em class="replaceable"><code>addr</code></em></span></dt> +<dd><p> + Simplified reverse lookups, for mapping addresses to + names. The <em class="parameter"><code>addr</code></em> is an IPv4 address + in dotted-decimal notation, or a colon-delimited IPv6 + address. When the <code class="option">-x</code> is used, there is no + need to provide + the <em class="parameter"><code>name</code></em>, <em class="parameter"><code>class</code></em> + and <em class="parameter"><code>type</code></em> + arguments. <span><strong class="command">dig</strong></span> automatically performs a + lookup for a name like + <code class="literal">94.2.0.192.in-addr.arpa</code> and sets the + query type and class to PTR and IN respectively. IPv6 + addresses are looked up using nibble format under the + IP6.ARPA domain (but see also the <code class="option">-i</code> + option). + </p></dd> +<dt><span class="term">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]keyname:secret</code></em></span></dt> +<dd> <p> - To sign the DNS queries sent by <span><strong class="command">dig</strong></span> and - their - responses using transaction signatures (TSIG), specify a TSIG key file - using the <code class="option">-k</code> option. You can also specify the TSIG - key itself on the command line using the <code class="option">-y</code> option; - <em class="parameter"><code>hmac</code></em> is the type of the TSIG, default HMAC-MD5, - <em class="parameter"><code>name</code></em> is the name of the TSIG key and - <em class="parameter"><code>key</code></em> is the actual key. The key is a - base-64 - encoded string, typically generated by - <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>. - - Caution should be taken when using the <code class="option">-y</code> option on - multi-user systems as the key can be visible in the output from - <span class="citerefentry"><span class="refentrytitle">ps</span>(1)</span> - or in the shell's history file. When - using TSIG authentication with <span><strong class="command">dig</strong></span>, the name - server that is queried needs to know the key and algorithm that is - being used. In BIND, this is done by providing appropriate - <span><strong class="command">key</strong></span> and <span><strong class="command">server</strong></span> statements in - <code class="filename">named.conf</code>. - </p> + Sign queries using TSIG with the given authentication key. + <em class="parameter"><code>keyname</code></em> is the name of the key, and + <em class="parameter"><code>secret</code></em> is the base64 encoded shared secret. + <em class="parameter"><code>hmac</code></em> is the name of the key algorithm; + valid choices are <code class="literal">hmac-md5</code>, + <code class="literal">hmac-sha1</code>, <code class="literal">hmac-sha224</code>, + <code class="literal">hmac-sha256</code>, <code class="literal">hmac-sha384</code>, or + <code class="literal">hmac-sha512</code>. If <em class="parameter"><code>hmac</code></em> + is not specified, the default is <code class="literal">hmac-md5</code>. + </p> +<p> + NOTE: You should use the <code class="option">-k</code> option and + avoid the <code class="option">-y</code> option, because + with <code class="option">-y</code> the shared secret is supplied as + a command line argument in clear text. This may be visible + in the output from + <span class="citerefentry"><span class="refentrytitle">ps</span>(1)</span> + or in a history file maintained by the user's shell. + </p> +</dd> +</dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2544018"></a><h2>QUERY OPTIONS</h2> +<a name="id2544181"></a><h2>QUERY OPTIONS</h2> <p><span><strong class="command">dig</strong></span> provides a number of query options which affect the way in which lookups are made and the results displayed. Some of @@ -258,6 +278,9 @@ that keyword. Other keywords assign values to options like the timeout interval. They have the form <code class="option">+keyword=value</code>. + Keywords may be abbreviated, provided the abbreviation is + unambiguous; for example, <code class="literal">+cd</code> is equivalent + to <code class="literal">+cdflag</code>. The query options are: </p> @@ -322,7 +345,7 @@ the query. This requests the server to not perform DNSSEC validation of responses. </p></dd> -<dt><span class="term"><code class="option">+[no]cl</code></span></dt> +<dt><span class="term"><code class="option">+[no]class</code></span></dt> <dd><p> Display [do not display] the CLASS when printing the record. @@ -445,6 +468,10 @@ when an answer is returned. The default is to print the question section as a comment. </p></dd> +<dt><span class="term"><code class="option">+[no]rdflag</code></span></dt> +<dd><p> + A synonym for <em class="parameter"><code>+[no]recurse</code></em>. + </p></dd> <dt><span class="term"><code class="option">+[no]recurse</code></span></dt> <dd><p> Toggle the setting of the RD (recursion desired) bit @@ -552,6 +579,10 @@ from each server that was used to resolve the lookup. </p> <p> + If @server is also specified, it affects only the + initial query for the root zone name servers. + </p> +<p> <span><strong class="command">+dnssec</strong></span> is also set when +trace is set to better emulate the default queries from a nameserver. @@ -600,7 +631,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2545181"></a><h2>MULTIPLE QUERIES</h2> +<a name="id2545576"></a><h2>MULTIPLE QUERIES</h2> <p> The BIND 9 implementation of <span><strong class="command">dig </strong></span> supports @@ -646,7 +677,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr </p> </div> <div class="refsect1" lang="en"> -<a name="id2545243"></a><h2>IDN SUPPORT</h2> +<a name="id2545638"></a><h2>IDN SUPPORT</h2> <p> If <span><strong class="command">dig</strong></span> has been built with IDN (internationalized domain name) support, it can accept and display non-ASCII domain names. @@ -660,14 +691,14 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr </p> </div> <div class="refsect1" lang="en"> -<a name="id2545266"></a><h2>FILES</h2> +<a name="id2545660"></a><h2>FILES</h2> <p><code class="filename">/etc/resolv.conf</code> </p> <p><code class="filename">${HOME}/.digrc</code> </p> </div> <div class="refsect1" lang="en"> -<a name="id2545283"></a><h2>SEE ALSO</h2> +<a name="id2545677"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>, <span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>, @@ -675,7 +706,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr </p> </div> <div class="refsect1" lang="en"> -<a name="id2545320"></a><h2>BUGS</h2> +<a name="id2545715"></a><h2>BUGS</h2> <p> There are probably too many query options. </p> diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index d6fea27bef5c..45dac2f5a112 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -85,6 +85,7 @@ #include <isc/print.h> #include <isc/random.h> #include <isc/result.h> +#include <isc/safe.h> #include <isc/serial.h> #include <isc/string.h> #include <isc/task.h> @@ -193,7 +194,7 @@ dig_lookup_t *current_lookup = NULL; #ifdef DIG_SIGCHASE -isc_result_t get_trusted_key(isc_mem_t *mctx); +isc_result_t get_trusted_key(void); dns_rdataset_t * sigchase_scanname(dns_rdatatype_t type, dns_rdatatype_t covers, isc_boolean_t *lookedup, @@ -211,32 +212,26 @@ isc_result_t advanced_rrsearch(dns_rdataset_t **rdataset, isc_result_t sigchase_verify_sig_key(dns_name_t *name, dns_rdataset_t *rdataset, dst_key_t* dnsseckey, - dns_rdataset_t *sigrdataset, - isc_mem_t *mctx); + dns_rdataset_t *sigrdataset); isc_result_t sigchase_verify_sig(dns_name_t *name, dns_rdataset_t *rdataset, dns_rdataset_t *keyrdataset, - dns_rdataset_t *sigrdataset, - isc_mem_t *mctx); + dns_rdataset_t *sigrdataset); isc_result_t sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset, - dns_rdataset_t *dsrdataset, - isc_mem_t *mctx); + dns_rdataset_t *dsrdataset); void sigchase(dns_message_t *msg); void print_rdata(dns_rdata_t *rdata, isc_mem_t *mctx); -void print_rdataset(dns_name_t *name, - dns_rdataset_t *rdataset, isc_mem_t *mctx); -void dup_name(dns_name_t *source, dns_name_t* target, - isc_mem_t *mctx); -void free_name(dns_name_t *name, isc_mem_t *mctx); +void print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset); +void dup_name(dns_name_t *source, dns_name_t* target); +void free_name(dns_name_t *name); void dump_database(void); void dump_database_section(dns_message_t *msg, int section); dns_rdataset_t * search_type(dns_name_t *name, dns_rdatatype_t type, dns_rdatatype_t covers); isc_result_t contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset, - dns_rdataset_t *sigrdataset, - isc_mem_t *mctx); + dns_rdataset_t *sigrdataset); void print_type(dns_rdatatype_t type); isc_result_t prove_nx_domain(dns_message_t * msg, dns_name_t * name, @@ -258,7 +253,7 @@ isc_result_t prove_nx(dns_message_t * msg, dns_name_t * name, dns_rdataset_t ** sigrdataset); static void nameFromString(const char *str, dns_name_t *p_ret); int inf_name(dns_name_t * name1, dns_name_t * name2); -isc_result_t removetmpkey(isc_mem_t *mctx, const char *file); +isc_result_t removetmpkey(const char *file); void clean_trustedkey(void); isc_result_t insert_trustedkey(void *arg, dns_name_t *name, dns_rdataset_t *rdataset); @@ -1011,7 +1006,6 @@ parse_bits(char *arg, const char *desc, isc_uint32_t max) { return (tmp); } - /* * Parse HMAC algorithm specification */ @@ -1627,7 +1621,7 @@ start_lookup(void) { #if DIG_SIGCHASE_TD if (current_lookup->do_topdown && !current_lookup->rdtype_sigchaseset) { - dst_key_t *trustedkey = NULL; + dst_key_t *dstkey = NULL; isc_buffer_t *b = NULL; isc_region_t r; isc_result_t result; @@ -1635,7 +1629,7 @@ start_lookup(void) { dns_name_t *key_name; int i; - result = get_trusted_key(mctx); + result = get_trusted_key(); if (result != ISC_R_SUCCESS) { printf("\n;; No trusted key, " "+sigchase option is disabled\n"); @@ -1650,22 +1644,22 @@ start_lookup(void) { if (dns_name_issubdomain(&query_name, key_name) == ISC_TRUE) - trustedkey = tk_list.key[i]; + dstkey = tk_list.key[i]; /* * Verify temp is really the lowest * WARNING */ } - if (trustedkey == NULL) { + if (dstkey == NULL) { printf("\n;; The queried zone: "); dns_name_print(&query_name, stdout); printf(" isn't a subdomain of any Trusted Keys" ": +sigchase option is disable\n"); current_lookup->sigchase = ISC_FALSE; - free_name(&query_name, mctx); + free_name(&query_name); goto novalidation; } - free_name(&query_name, mctx); + free_name(&query_name); current_lookup->rdtype_sigchase = current_lookup->rdtype; @@ -1690,7 +1684,7 @@ start_lookup(void) { result = isc_buffer_allocate(mctx, &b, BUFSIZE); check_result(result, "isc_buffer_allocate"); - result = dns_name_totext(dst_key_name(trustedkey), + result = dns_name_totext(dst_key_name(dstkey), ISC_FALSE, b); check_result(result, "dns_name_totext"); isc_buffer_usedregion(b, &r); @@ -2010,9 +2004,6 @@ insert_soa(dig_lookup_t *lookup) { dns_rdatalist_init(rdatalist); rdatalist->type = dns_rdatatype_soa; rdatalist->rdclass = lookup->rdclass; - rdatalist->covers = 0; - rdatalist->ttl = 0; - ISC_LIST_INIT(rdatalist->rdata); ISC_LIST_APPEND(rdatalist->rdata, rdata, link); dns_rdataset_init(rdataset); @@ -3682,10 +3673,14 @@ isc_result_t get_address(char *host, in_port_t myport, isc_sockaddr_t *sockaddr) { int count; isc_result_t result; + isc_boolean_t is_running; - isc_app_block(); + is_running = isc_app_isrunning(); + if (is_running) + isc_app_block(); result = bind9_getaddresses(host, myport, sockaddr, 1, &count); - isc_app_unblock(); + if (is_running) + isc_app_unblock(); if (result != ISC_R_SUCCESS) return (result); @@ -3922,16 +3917,16 @@ destroy_libs(void) { isc_mem_free(mctx, ptr); } if (dns_name_dynamic(&chase_name)) - free_name(&chase_name, mctx); + free_name(&chase_name); #if DIG_SIGCHASE_TD if (dns_name_dynamic(&chase_current_name)) - free_name(&chase_current_name, mctx); + free_name(&chase_current_name); if (dns_name_dynamic(&chase_authority_name)) - free_name(&chase_authority_name, mctx); + free_name(&chase_authority_name); #endif #if DIG_SIGCHASE_BU if (dns_name_dynamic(&chase_signame)) - free_name(&chase_signame, mctx); + free_name(&chase_signame); #endif #endif @@ -4081,7 +4076,7 @@ dump_database_section(dns_message_t *msg, int section) rdataset = ISC_LIST_NEXT(rdataset, link)) { dns_name_print(msg_name, stdout); printf("\n"); - print_rdataset(msg_name, rdataset, mctx); + print_rdataset(msg_name, rdataset); printf("end\n"); } msg_name = NULL; @@ -4261,7 +4256,7 @@ isc_result_t insert_trustedkey(void *arg, dns_name_t *name, dns_rdataset_t *rdataset) { isc_result_t result; - dst_key_t *key; + dst_key_t *dstkey; UNUSED(arg); @@ -4279,11 +4274,11 @@ insert_trustedkey(void *arg, dns_name_t *name, dns_rdataset_t *rdataset) isc_buffer_add(&b, rdata.length); if (tk_list.nb_tk >= MAX_TRUSTED_KEY) return (ISC_R_SUCCESS); - key = NULL; - result = dst_key_fromdns(name, rdata.rdclass, &b, mctx, &key); + dstkey = NULL; + result = dst_key_fromdns(name, rdata.rdclass, &b, mctx, &dstkey); if (result != ISC_R_SUCCESS) continue; - tk_list.key[tk_list.nb_tk++] = key; + tk_list.key[tk_list.nb_tk++] = dstkey; } return (ISC_R_SUCCESS); } @@ -4308,7 +4303,7 @@ char alphnum[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; isc_result_t -removetmpkey(isc_mem_t *mctx, const char *file) +removetmpkey(const char *file) { char *tempnamekey = NULL; int tempnamekeylen; @@ -4332,8 +4327,7 @@ removetmpkey(isc_mem_t *mctx, const char *file) } isc_result_t -get_trusted_key(isc_mem_t *mctx) -{ +get_trusted_key(void) { isc_result_t result; const char *filename = NULL; dns_rdatacallbacks_t callbacks; @@ -4384,7 +4378,7 @@ nameFromString(const char *str, dns_name_t *p_ret) { check_result(result, "nameFromString"); if (dns_name_dynamic(p_ret)) - free_name(p_ret, mctx); + free_name(p_ret); result = dns_name_dup(dns_fixedname_name(&fixedname), mctx, p_ret); check_result(result, "nameFromString"); @@ -4433,7 +4427,6 @@ prepare_lookup(dns_name_t *name) #define __FOLLOW_GLUE__ #ifdef __FOLLOW_GLUE__ isc_buffer_t *b = NULL; - isc_result_t result; isc_region_t r; dns_rdataset_t *rdataset = NULL; isc_boolean_t true = ISC_TRUE; @@ -4528,7 +4521,7 @@ prepare_lookup(dns_name_t *name) printf(" for zone: %s", lookup->textname); printf(" with nameservers:"); printf("\n"); - print_rdataset(name, chase_nsrdataset, mctx); + print_rdataset(name, chase_nsrdataset); return (ISC_R_SUCCESS); } @@ -4611,14 +4604,14 @@ initialization(dns_name_t *name) INSIST(chase_nsrdataset != NULL); prepare_lookup(name); - dup_name(name, &chase_current_name, mctx); + dup_name(name, &chase_current_name); return (ISC_R_SUCCESS); } #endif void -print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset, isc_mem_t *mctx) +print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset) { isc_buffer_t *b = NULL; isc_result_t result; @@ -4640,17 +4633,17 @@ print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset, isc_mem_t *mctx) void -dup_name(dns_name_t *source, dns_name_t *target, isc_mem_t *mctx) { +dup_name(dns_name_t *source, dns_name_t *target) { isc_result_t result; if (dns_name_dynamic(target)) - free_name(target, mctx); + free_name(target); result = dns_name_dup(source, mctx, target); check_result(result, "dns_name_dup"); } void -free_name(dns_name_t *name, isc_mem_t *mctx) { +free_name(dns_name_t *name) { dns_name_free(name, mctx); dns_name_init(name, NULL); } @@ -4667,8 +4660,7 @@ free_name(dns_name_t *name, isc_mem_t *mctx) { */ isc_result_t contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset, - dns_rdataset_t *sigrdataset, - isc_mem_t *mctx) + dns_rdataset_t *sigrdataset) { dns_rdataset_t myrdataset; dst_key_t *dnsseckey = NULL; @@ -4704,8 +4696,7 @@ contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset, dst_key_id(dnsseckey)); result = sigchase_verify_sig_key(name, rdataset, dnsseckey, - sigrdataset, - mctx); + sigrdataset); if (result == ISC_R_SUCCESS) goto cleanup; } @@ -4713,19 +4704,20 @@ contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset, dst_key_free(&dnsseckey); } while (dns_rdataset_next(&myrdataset) == ISC_R_SUCCESS); + result = ISC_R_NOTFOUND; + cleanup: if (dnsseckey != NULL) dst_key_free(&dnsseckey); dns_rdataset_disassociate(&myrdataset); - return (ISC_R_NOTFOUND); + return (result); } isc_result_t sigchase_verify_sig(dns_name_t *name, dns_rdataset_t *rdataset, dns_rdataset_t *keyrdataset, - dns_rdataset_t *sigrdataset, - isc_mem_t *mctx) + dns_rdataset_t *sigrdataset) { dns_rdataset_t mykeyrdataset; dst_key_t *dnsseckey = NULL; @@ -4748,7 +4740,7 @@ sigchase_verify_sig(dns_name_t *name, dns_rdataset_t *rdataset, check_result(result, "dns_dnssec_keyfromrdata"); result = sigchase_verify_sig_key(name, rdataset, dnsseckey, - sigrdataset, mctx); + sigrdataset); if (result == ISC_R_SUCCESS) goto cleanup; dst_key_free(&dnsseckey); @@ -4766,8 +4758,7 @@ sigchase_verify_sig(dns_name_t *name, dns_rdataset_t *rdataset, isc_result_t sigchase_verify_sig_key(dns_name_t *name, dns_rdataset_t *rdataset, - dst_key_t *dnsseckey, dns_rdataset_t *sigrdataset, - isc_mem_t *mctx) + dst_key_t *dnsseckey, dns_rdataset_t *sigrdataset) { dns_rdata_sig_t siginfo; dns_rdataset_t myrdataset; @@ -4826,7 +4817,7 @@ sigchase_verify_sig_key(dns_name_t *name, dns_rdataset_t *rdataset, isc_result_t sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset, - dns_rdataset_t *dsrdataset, isc_mem_t *mctx) + dns_rdataset_t *dsrdataset) { dns_rdata_ds_t dsinfo; dns_rdataset_t mydsrdataset; @@ -4893,8 +4884,7 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset, result = sigchase_verify_sig_key(name, keyrdataset, dnsseckey, - chase_sigkeyrdataset, - mctx); + chase_sigkeyrdataset); if (result == ISC_R_SUCCESS) goto cleanup; } else { @@ -5000,7 +4990,7 @@ sigchase_td(dns_message_t *msg) dns_rdatatype_ns, dns_rdatatype_any, DNS_SECTION_AUTHORITY); - dup_name(name, &chase_authority_name, mctx); + dup_name(name, &chase_authority_name); if (chase_nsrdataset != NULL) { have_delegation_ns = ISC_TRUE; printf("no response but there is a delegation" @@ -5018,7 +5008,7 @@ sigchase_td(dns_message_t *msg) } else { printf(";; NO ANSWERS: %s\n", isc_result_totext(result)); - free_name(&chase_name, mctx); + free_name(&chase_name); clean_trustedkey(); return; } @@ -5050,7 +5040,7 @@ sigchase_td(dns_message_t *msg) return; INSIST(chase_keyrdataset != NULL); printf("\n;; DNSKEYset:\n"); - print_rdataset(&chase_current_name , chase_keyrdataset, mctx); + print_rdataset(&chase_current_name , chase_keyrdataset); result = advanced_rrsearch(&chase_sigkeyrdataset, @@ -5067,22 +5057,20 @@ sigchase_td(dns_message_t *msg) return; INSIST(chase_sigkeyrdataset != NULL); printf("\n;; RRSIG of the DNSKEYset:\n"); - print_rdataset(&chase_current_name , chase_sigkeyrdataset, mctx); + print_rdataset(&chase_current_name , chase_sigkeyrdataset); if (!chase_dslookedup && !chase_nslookedup) { if (!delegation_follow) { result = contains_trusted_key(&chase_current_name, chase_keyrdataset, - chase_sigkeyrdataset, - mctx); + chase_sigkeyrdataset); } else { INSIST(chase_dsrdataset != NULL); INSIST(chase_sigdsrdataset != NULL); result = sigchase_verify_ds(&chase_current_name, chase_keyrdataset, - chase_dsrdataset, - mctx); + chase_dsrdataset); } if (result != ISC_R_SUCCESS) { @@ -5141,8 +5129,8 @@ sigchase_td(dns_message_t *msg) result = child_of_zone(&chase_name, &chase_current_name, &tmp_name); if (dns_name_dynamic(&chase_authority_name)) - free_name(&chase_authority_name, mctx); - dup_name(&tmp_name, &chase_authority_name, mctx); + free_name(&chase_authority_name); + dup_name(&tmp_name, &chase_authority_name); printf(";; and we try to continue chain of trust" " validation of the zone: "); dns_name_print(&chase_authority_name, stdout); @@ -5187,7 +5175,7 @@ sigchase_td(dns_message_t *msg) return; INSIST(chase_dsrdataset != NULL); printf("\n;; DSset:\n"); - print_rdataset(&chase_authority_name , chase_dsrdataset, mctx); + print_rdataset(&chase_authority_name , chase_dsrdataset); result = advanced_rrsearch(&chase_sigdsrdataset, &chase_authority_name, @@ -5200,14 +5188,13 @@ sigchase_td(dns_message_t *msg) goto cleanandgo; } printf("\n;; RRSIGset of DSset\n"); - print_rdataset(&chase_authority_name, - chase_sigdsrdataset, mctx); + print_rdataset(&chase_authority_name, chase_sigdsrdataset); INSIST(chase_sigdsrdataset != NULL); result = sigchase_verify_sig(&chase_authority_name, chase_dsrdataset, chase_keyrdataset, - chase_sigdsrdataset, mctx); + chase_sigdsrdataset); if (result != ISC_R_SUCCESS) { printf("\n;; Impossible to verify the DSset:" " FAILED\n\n"); @@ -5223,8 +5210,8 @@ sigchase_td(dns_message_t *msg) have_delegation_ns = ISC_FALSE; delegation_follow = ISC_TRUE; error_message = NULL; - dup_name(&chase_authority_name, &chase_current_name, mctx); - free_name(&chase_authority_name, mctx); + dup_name(&chase_authority_name, &chase_current_name); + free_name(&chase_authority_name); return; } @@ -5249,14 +5236,14 @@ sigchase_td(dns_message_t *msg) } ret = sigchase_verify_sig(&rdata_name, rdataset, chase_keyrdataset, - sigrdataset, mctx); + sigrdataset); if (ret != ISC_R_SUCCESS) { - free_name(&rdata_name, mctx); + free_name(&rdata_name); printf("\n;; Impossible to verify the NSEC RR to prove" " the non-existence : FAILED\n\n"); goto cleanandgo; } - free_name(&rdata_name, mctx); + free_name(&rdata_name); if (result != ISC_R_SUCCESS) { printf("\n;; Impossible to verify the non-existence:" " FAILED\n\n"); @@ -5271,9 +5258,9 @@ sigchase_td(dns_message_t *msg) cleanandgo: printf(";; cleanandgo \n"); if (dns_name_dynamic(&chase_current_name)) - free_name(&chase_current_name, mctx); + free_name(&chase_current_name); if (dns_name_dynamic(&chase_authority_name)) - free_name(&chase_authority_name, mctx); + free_name(&chase_authority_name); clean_trustedkey(); return; @@ -5289,22 +5276,22 @@ sigchase_td(dns_message_t *msg) } result = sigchase_verify_sig(&chase_name, chase_rdataset, chase_keyrdataset, - chase_sigrdataset, mctx); + chase_sigrdataset); if (result != ISC_R_SUCCESS) { printf("\n;; Impossible to verify the RRset : FAILED\n\n"); /* printf("RRset:\n"); - print_rdataset(&chase_name , chase_rdataset, mctx); + print_rdataset(&chase_name , chase_rdataset); printf("DNSKEYset:\n"); - print_rdataset(&chase_name , chase_keyrdataset, mctx); + print_rdataset(&chase_name , chase_keyrdataset); printf("RRSIG of RRset:\n"); - print_rdataset(&chase_name , chase_sigrdataset, mctx); + print_rdataset(&chase_name , chase_sigrdataset); printf("\n"); */ goto cleanandgo; } else { printf("\n;; The Answer:\n"); - print_rdataset(&chase_name , chase_rdataset, mctx); + print_rdataset(&chase_name , chase_rdataset); printf("\n;; FINISH : we have validate the DNSSEC chain" " of trust: SUCCESS\n\n"); @@ -5345,9 +5332,9 @@ getneededrr(dns_message_t *msg) printf("\n;; No Answers: Validation FAILED\n\n"); return (ISC_R_NOTFOUND); } - dup_name(name, &chase_name, mctx); + dup_name(name, &chase_name); printf(";; RRset to chase:\n"); - print_rdataset(&chase_name, chase_rdataset, mctx); + print_rdataset(&chase_name, chase_rdataset); } INSIST(chase_rdataset != NULL); @@ -5361,14 +5348,14 @@ getneededrr(dns_message_t *msg) printf("\n;; RRSIG is missing for continue validation:" " FAILED\n\n"); if (dns_name_dynamic(&chase_name)) - free_name(&chase_name, mctx); + free_name(&chase_name); return (ISC_R_NOTFOUND); } if (result == ISC_R_NOTFOUND) { return (ISC_R_NOTFOUND); } printf("\n;; RRSIG of the RRset to chase:\n"); - print_rdataset(&chase_name, chase_sigrdataset, mctx); + print_rdataset(&chase_name, chase_sigrdataset); } INSIST(chase_sigrdataset != NULL); @@ -5379,7 +5366,7 @@ getneededrr(dns_message_t *msg) dns_rdataset_current(chase_sigrdataset, &sigrdata); result = dns_rdata_tostruct(&sigrdata, &siginfo, NULL); check_result(result, "sigrdata tostruct siginfo"); - dup_name(&siginfo.signer, &chase_signame, mctx); + dup_name(&siginfo.signer, &chase_signame); dns_rdata_freestruct(&siginfo); dns_rdata_reset(&sigrdata); @@ -5393,17 +5380,17 @@ getneededrr(dns_message_t *msg) if (result == ISC_R_FAILURE) { printf("\n;; DNSKEY is missing to continue validation:" " FAILED\n\n"); - free_name(&chase_signame, mctx); + free_name(&chase_signame); if (dns_name_dynamic(&chase_name)) - free_name(&chase_name, mctx); + free_name(&chase_name); return (ISC_R_NOTFOUND); } if (result == ISC_R_NOTFOUND) { - free_name(&chase_signame, mctx); + free_name(&chase_signame); return (ISC_R_NOTFOUND); } printf("\n;; DNSKEYset that signs the RRset to chase:\n"); - print_rdataset(&chase_signame, chase_keyrdataset, mctx); + print_rdataset(&chase_signame, chase_keyrdataset); } INSIST(chase_keyrdataset != NULL); @@ -5416,18 +5403,18 @@ getneededrr(dns_message_t *msg) if (result == ISC_R_FAILURE) { printf("\n;; RRSIG for DNSKEY is missing to continue" " validation : FAILED\n\n"); - free_name(&chase_signame, mctx); + free_name(&chase_signame); if (dns_name_dynamic(&chase_name)) - free_name(&chase_name, mctx); + free_name(&chase_name); return (ISC_R_NOTFOUND); } if (result == ISC_R_NOTFOUND) { - free_name(&chase_signame, mctx); + free_name(&chase_signame); return (ISC_R_NOTFOUND); } printf("\n;; RRSIG of the DNSKEYset that signs the " "RRset to chase:\n"); - print_rdataset(&chase_signame, chase_sigkeyrdataset, mctx); + print_rdataset(&chase_signame, chase_sigkeyrdataset); } INSIST(chase_sigkeyrdataset != NULL); @@ -5442,12 +5429,12 @@ getneededrr(dns_message_t *msg) printf("\n"); } if (result == ISC_R_NOTFOUND) { - free_name(&chase_signame, mctx); + free_name(&chase_signame); return (ISC_R_NOTFOUND); } if (chase_dsrdataset != NULL) { printf("\n;; DSset of the DNSKEYset\n"); - print_rdataset(&chase_signame, chase_dsrdataset, mctx); + print_rdataset(&chase_signame, chase_dsrdataset); } } @@ -5470,8 +5457,7 @@ getneededrr(dns_message_t *msg) chase_dsrdataset = NULL; } else { printf("\n;; RRSIG of the DSset of the DNSKEYset\n"); - print_rdataset(&chase_signame, chase_sigdsrdataset, - mctx); + print_rdataset(&chase_signame, chase_sigdsrdataset); } } return (1); @@ -5486,7 +5472,7 @@ sigchase_bu(dns_message_t *msg) int ret; if (tk_list.nb_tk == 0) { - result = get_trusted_key(mctx); + result = get_trusted_key(); if (result != ISC_R_SUCCESS) { printf("No trusted keys present\n"); return; @@ -5513,7 +5499,7 @@ sigchase_bu(dns_message_t *msg) result = prove_nx(msg, &query_name, current_lookup->rdclass, current_lookup->rdtype, &rdata_name, &rdataset, &sigrdataset); - free_name(&query_name, mctx); + free_name(&query_name); if (rdataset == NULL || sigrdataset == NULL || dns_name_countlabels(&rdata_name) == 0) { printf("\n;; Impossible to verify the Non-existence," @@ -5532,8 +5518,8 @@ sigchase_bu(dns_message_t *msg) printf(";; An NSEC prove the non-existence of a answers," " Now we want validate this NSEC\n"); - dup_name(&rdata_name, &chase_name, mctx); - free_name(&rdata_name, mctx); + dup_name(&rdata_name, &chase_name); + free_name(&rdata_name); chase_rdataset = rdataset; chase_sigrdataset = sigrdataset; chase_keyrdataset = NULL; @@ -5554,10 +5540,10 @@ sigchase_bu(dns_message_t *msg) result = sigchase_verify_sig(&chase_name, chase_rdataset, chase_keyrdataset, - chase_sigrdataset, mctx); + chase_sigrdataset); if (result != ISC_R_SUCCESS) { - free_name(&chase_name, mctx); - free_name(&chase_signame, mctx); + free_name(&chase_name); + free_name(&chase_signame); printf(";; No DNSKEY is valid to check the RRSIG" " of the RRset: FAILED\n"); clean_trustedkey(); @@ -5566,10 +5552,10 @@ sigchase_bu(dns_message_t *msg) printf(";; OK We found DNSKEY (or more) to validate the RRset\n"); result = contains_trusted_key(&chase_signame, chase_keyrdataset, - chase_sigkeyrdataset, mctx); + chase_sigkeyrdataset); if (result == ISC_R_SUCCESS) { - free_name(&chase_name, mctx); - free_name(&chase_signame, mctx); + free_name(&chase_name); + free_name(&chase_signame); printf("\n;; Ok this DNSKEY is a Trusted Key," " DNSSEC validation is ok: SUCCESS\n\n"); clean_trustedkey(); @@ -5579,8 +5565,8 @@ sigchase_bu(dns_message_t *msg) printf(";; Now, we are going to validate this DNSKEY by the DS\n"); if (chase_dsrdataset == NULL) { - free_name(&chase_name, mctx); - free_name(&chase_signame, mctx); + free_name(&chase_name); + free_name(&chase_signame); printf(";; the DNSKEY isn't trusted-key and there isn't" " DS to validate the DNSKEY: FAILED\n"); clean_trustedkey(); @@ -5588,10 +5574,10 @@ sigchase_bu(dns_message_t *msg) } result = sigchase_verify_ds(&chase_signame, chase_keyrdataset, - chase_dsrdataset, mctx); + chase_dsrdataset); if (result != ISC_R_SUCCESS) { - free_name(&chase_signame, mctx); - free_name(&chase_name, mctx); + free_name(&chase_signame); + free_name(&chase_name); printf(";; ERROR no DS validates a DNSKEY in the" " DNSKEY RRset: FAILED\n"); clean_trustedkey(); @@ -5602,8 +5588,8 @@ sigchase_bu(dns_message_t *msg) " the RRset\n"); INSIST(chase_sigdsrdataset != NULL); - dup_name(&chase_signame, &chase_name, mctx); - free_name(&chase_signame, mctx); + dup_name(&chase_signame, &chase_name); + free_name(&chase_signame); chase_rdataset = chase_dsrdataset; chase_sigrdataset = chase_sigdsrdataset; chase_keyrdataset = NULL; @@ -5716,7 +5702,7 @@ prove_nx_domain(dns_message_t *msg, printf("There is a NSEC for this zone in the" " AUTHORITY section:\n"); - print_rdataset(nsecname, nsecset, mctx); + print_rdataset(nsecname, nsecset); for (result = dns_rdataset_first(nsecset); result == ISC_R_SUCCESS; @@ -5745,7 +5731,7 @@ prove_nx_domain(dns_message_t *msg, dns_rdata_freestruct(&nsecstruct); *rdataset = nsecset; *sigrdataset = signsecset; - dup_name(nsecname, rdata_name, mctx); + dup_name(nsecname, rdata_name); return (ISC_R_SUCCESS); } @@ -5798,7 +5784,7 @@ prove_nx_type(dns_message_t *msg, dns_name_t *name, dns_rdataset_t *nsecset, printf("There isn't RRSIG NSEC for the zone \n"); return (ISC_R_FAILURE); } - dup_name(name, rdata_name, mctx); + dup_name(name, rdata_name); *rdataset = nsecset; *sigrdataset = signsecset; diff --git a/bin/dig/nslookup.c b/bin/dig/nslookup.c index d3237fa5dc2e..30591dc556fd 100644 --- a/bin/dig/nslookup.c +++ b/bin/dig/nslookup.c @@ -585,7 +585,7 @@ version(void) { static void setoption(char *opt) { - if (strncasecmp(opt, "all", 4) == 0) { + if (strncasecmp(opt, "all", 3) == 0) { show_settings(ISC_TRUE, ISC_FALSE); } else if (strncasecmp(opt, "class=", 6) == 0) { if (testclass(&opt[6])) diff --git a/bin/dnssec/dnssec-dsfromkey.8 b/bin/dnssec/dnssec-dsfromkey.8 index 1c7e867eae7b..229433d5fa5a 100644 --- a/bin/dnssec/dnssec-dsfromkey.8 +++ b/bin/dnssec/dnssec-dsfromkey.8 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2008-2012, 2014 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2008-2012, 2014, 2015 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 @@ -32,7 +32,7 @@ dnssec\-dsfromkey \- DNSSEC DS RR generation tool .SH "SYNOPSIS" .HP 17 -\fBdnssec\-dsfromkey\fR [\fB\-v\ \fR\fB\fIlevel\fR\fR] [\fB\-1\fR] [\fB\-2\fR] [\fB\-a\ \fR\fB\fIalg\fR\fR] [\fB\-l\ \fR\fB\fIdomain\fR\fR] [\fB\-T\ \fR\fB\fITTL\fR\fR] {keyfile} +\fBdnssec\-dsfromkey\fR [\fB\-v\ \fR\fB\fIlevel\fR\fR] [\fB\-1\fR] [\fB\-2\fR] [\fB\-a\ \fR\fB\fIalg\fR\fR] [\fB\-C\fR] [\fB\-l\ \fR\fB\fIdomain\fR\fR] [\fB\-T\ \fR\fB\fITTL\fR\fR] {keyfile} .HP 17 \fBdnssec\-dsfromkey\fR {\-s} [\fB\-1\fR] [\fB\-2\fR] [\fB\-a\ \fR\fB\fIalg\fR\fR] [\fB\-K\ \fR\fB\fIdirectory\fR\fR] [\fB\-l\ \fR\fB\fIdomain\fR\fR] [\fB\-s\fR] [\fB\-c\ \fR\fB\fIclass\fR\fR] [\fB\-T\ \fR\fB\fITTL\fR\fR] [\fB\-f\ \fR\fB\fIfile\fR\fR] [\fB\-A\fR] [\fB\-v\ \fR\fB\fIlevel\fR\fR] {dnsname} .HP 17 @@ -60,6 +60,11 @@ Select the digest algorithm. The value of must be one of SHA\-1 (SHA1), SHA\-256 (SHA256), GOST or SHA\-384 (SHA384). These values are case insensitive. .RE .PP +\-C +.RS 4 +Generate CDS records rather than DS records. This is mutually exclusive with generating lookaside records. +.RE +.PP \-T \fITTL\fR .RS 4 Specifies the TTL of the DS records. @@ -98,7 +103,7 @@ Include ZSK's when generating DS records. Without this option, only keys which h .RS 4 Generate a DLV set instead of a DS set. The specified \fBdomain\fR -is appended to the name for each record in the set. The DNSSEC Lookaside Validation (DLV) RR is described in RFC 4431. +is appended to the name for each record in the set. The DNSSEC Lookaside Validation (DLV) RR is described in RFC 4431. This is mutually exclusive with generating CDS records. .RE .PP \-s @@ -165,5 +170,5 @@ RFC 4509. .PP Internet Systems Consortium .SH "COPYRIGHT" -Copyright \(co 2008\-2012, 2014 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2008\-2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") .br diff --git a/bin/dnssec/dnssec-dsfromkey.c b/bin/dnssec/dnssec-dsfromkey.c index 8c1bd86f16d9..72310f84c544 100644 --- a/bin/dnssec/dnssec-dsfromkey.c +++ b/bin/dnssec/dnssec-dsfromkey.c @@ -238,7 +238,7 @@ logkey(dns_rdata_t *rdata) static void emit(unsigned int dtype, isc_boolean_t showall, char *lookaside, - dns_rdata_t *rdata) + isc_boolean_t cds, dns_rdata_t *rdata) { isc_result_t result; unsigned char buf[DNS_DS_BUFFERSIZE]; @@ -302,9 +302,12 @@ emit(unsigned int dtype, isc_boolean_t showall, char *lookaside, isc_buffer_usedregion(&classb, &r); printf("%.*s", (int)r.length, r.base); - if (lookaside == NULL) - printf(" DS "); - else + if (lookaside == NULL) { + if (cds) + printf(" CDS "); + else + printf(" DS "); + } else printf(" DLV "); isc_buffer_usedregion(&textb, &r); @@ -332,6 +335,7 @@ usage(void) { "(SHA-1, SHA-256, GOST or SHA-384)\n"); fprintf(stderr, " -1: use SHA-1\n"); fprintf(stderr, " -2: use SHA-256\n"); + fprintf(stderr, " -C: print CDS record\n"); fprintf(stderr, " -l: add lookaside zone and print DLV records\n"); fprintf(stderr, " -s: read keyset from keyset-<dnsname> file\n"); fprintf(stderr, " -c class: rdata class for DS set (default: IN)\n"); @@ -352,6 +356,7 @@ main(int argc, char **argv) { char *endp; int ch; unsigned int dtype = DNS_DSDIGEST_SHA1; + isc_boolean_t cds = ISC_FALSE; isc_boolean_t both = ISC_TRUE; isc_boolean_t usekeyset = ISC_FALSE; isc_boolean_t showall = ISC_FALSE; @@ -374,8 +379,8 @@ main(int argc, char **argv) { isc_commandline_errprint = ISC_FALSE; - while ((ch = isc_commandline_parse(argc, argv, - "12Aa:c:d:Ff:K:l:sT:v:hV")) != -1) { +#define OPTIONS "12Aa:Cc:d:Ff:K:l:sT:v:hV" + while ((ch = isc_commandline_parse(argc, argv, OPTIONS)) != -1) { switch (ch) { case '1': dtype = DNS_DSDIGEST_SHA1; @@ -392,6 +397,12 @@ main(int argc, char **argv) { algname = isc_commandline_argument; both = ISC_FALSE; break; + case 'C': + if (lookaside != NULL) + fatal("lookaside and CDS are mutually" + " exclusive"); + cds = ISC_TRUE; + break; case 'c': classname = isc_commandline_argument; break; @@ -408,6 +419,9 @@ main(int argc, char **argv) { filename = isc_commandline_argument; break; case 'l': + if (cds) + fatal("lookaside and CDS are mutually" + " exclusive"); lookaside = isc_commandline_argument; if (strlen(lookaside) == 0U) fatal("lookaside must be a non-empty string"); @@ -526,11 +540,11 @@ main(int argc, char **argv) { if (both) { emit(DNS_DSDIGEST_SHA1, showall, lookaside, - &rdata); + cds, &rdata); emit(DNS_DSDIGEST_SHA256, showall, lookaside, - &rdata); + cds, &rdata); } else - emit(dtype, showall, lookaside, &rdata); + emit(dtype, showall, lookaside, cds, &rdata); } } else { unsigned char key_buf[DST_KEY_MAXSIZE]; @@ -539,10 +553,12 @@ main(int argc, char **argv) { DST_KEY_MAXSIZE, &rdata); if (both) { - emit(DNS_DSDIGEST_SHA1, showall, lookaside, &rdata); - emit(DNS_DSDIGEST_SHA256, showall, lookaside, &rdata); + emit(DNS_DSDIGEST_SHA1, showall, lookaside, cds, + &rdata); + emit(DNS_DSDIGEST_SHA256, showall, lookaside, cds, + &rdata); } else - emit(dtype, showall, lookaside, &rdata); + emit(dtype, showall, lookaside, cds, &rdata); } if (dns_rdataset_isassociated(&rdataset)) diff --git a/bin/dnssec/dnssec-dsfromkey.docbook b/bin/dnssec/dnssec-dsfromkey.docbook index 7245a83f4de6..1127fa04e8b0 100644 --- a/bin/dnssec/dnssec-dsfromkey.docbook +++ b/bin/dnssec/dnssec-dsfromkey.docbook @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY mdash "—">]> <!-- - - Copyright (C) 2008-2012, 2014 Internet Systems Consortium, Inc. ("ISC") + - Copyright (C) 2008-2012, 2014, 2015 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 @@ -41,6 +41,7 @@ <year>2011</year> <year>2012</year> <year>2014</year> + <year>2015</year> <holder>Internet Systems Consortium, Inc. ("ISC")</holder> </copyright> </docinfo> @@ -52,6 +53,7 @@ <arg><option>-1</option></arg> <arg><option>-2</option></arg> <arg><option>-a <replaceable class="parameter">alg</replaceable></option></arg> + <arg><option>-C</option></arg> <arg><option>-l <replaceable class="parameter">domain</replaceable></option></arg> <arg><option>-T <replaceable class="parameter">TTL</replaceable></option></arg> <arg choice="req">keyfile</arg> @@ -123,6 +125,16 @@ </varlistentry> <varlistentry> + <term>-C</term> + <listitem> + <para> + Generate CDS records rather than DS records. This is mutually + exclusive with generating lookaside records. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term>-T <replaceable class="parameter">TTL</replaceable></term> <listitem> <para> @@ -182,7 +194,8 @@ <option>domain</option> is appended to the name for each record in the set. The DNSSEC Lookaside Validation (DLV) RR is described - in RFC 4431. + in RFC 4431. This is mutually exclusive with generating + CDS records. </para> </listitem> </varlistentry> diff --git a/bin/dnssec/dnssec-dsfromkey.html b/bin/dnssec/dnssec-dsfromkey.html index 3f27b49e5bc2..13e9cc5342a3 100644 --- a/bin/dnssec/dnssec-dsfromkey.html +++ b/bin/dnssec/dnssec-dsfromkey.html @@ -1,5 +1,5 @@ <!-- - - Copyright (C) 2008-2012, 2014 Internet Systems Consortium, Inc. ("ISC") + - Copyright (C) 2008-2012, 2014, 2015 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 @@ -28,19 +28,19 @@ </div> <div class="refsynopsisdiv"> <h2>Synopsis</h2> -<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-1</code>] [<code class="option">-2</code>] [<code class="option">-a <em class="replaceable"><code>alg</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>] {keyfile}</p></div> +<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-1</code>] [<code class="option">-2</code>] [<code class="option">-a <em class="replaceable"><code>alg</code></em></code>] [<code class="option">-C</code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>] {keyfile}</p></div> <div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> {-s} [<code class="option">-1</code>] [<code class="option">-2</code>] [<code class="option">-a <em class="replaceable"><code>alg</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-s</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>] [<code class="option">-f <em class="replaceable"><code>file</code></em></code>] [<code class="option">-A</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] {dnsname}</p></div> <div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [<code class="option">-h</code>] [<code class="option">-V</code>]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2543514"></a><h2>DESCRIPTION</h2> +<a name="id2543522"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">dnssec-dsfromkey</strong></span> outputs the Delegation Signer (DS) resource record (RR), as defined in RFC 3658 and RFC 4509, for the given key(s). </p> </div> <div class="refsect1" lang="en"> -<a name="id2543526"></a><h2>OPTIONS</h2> +<a name="id2543533"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-1</span></dt> <dd><p> @@ -58,6 +58,11 @@ SHA-256 (SHA256), GOST or SHA-384 (SHA384). These values are case insensitive. </p></dd> +<dt><span class="term">-C</span></dt> +<dd><p> + Generate CDS records rather than DS records. This is mutually + exclusive with generating lookaside records. + </p></dd> <dt><span class="term">-T <em class="replaceable"><code>TTL</code></em></span></dt> <dd><p> Specifies the TTL of the DS records. @@ -98,7 +103,8 @@ <code class="option">domain</code> is appended to the name for each record in the set. The DNSSEC Lookaside Validation (DLV) RR is described - in RFC 4431. + in RFC 4431. This is mutually exclusive with generating + CDS records. </p></dd> <dt><span class="term">-s</span></dt> <dd><p> @@ -125,7 +131,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2543780"></a><h2>EXAMPLE</h2> +<a name="id2543800"></a><h2>EXAMPLE</h2> <p> To build the SHA-256 DS RR from the <strong class="userinput"><code>Kexample.com.+003+26160</code></strong> @@ -140,7 +146,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2543810"></a><h2>FILES</h2> +<a name="id2543830"></a><h2>FILES</h2> <p> The keyfile can be designed by the key identification <code class="filename">Knnnn.+aaa+iiiii</code> or the full file name @@ -154,13 +160,13 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2543845"></a><h2>CAVEAT</h2> +<a name="id2543865"></a><h2>CAVEAT</h2> <p> A keyfile error can give a "file not found" even if the file exists. </p> </div> <div class="refsect1" lang="en"> -<a name="id2543854"></a><h2>SEE ALSO</h2> +<a name="id2543875"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>, <em class="citetitle">BIND 9 Administrator Reference Manual</em>, @@ -170,7 +176,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2543894"></a><h2>AUTHOR</h2> +<a name="id2543914"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> diff --git a/bin/dnssec/dnssec-keygen.c b/bin/dnssec/dnssec-keygen.c index 3cae29c724fb..384e4b60b369 100644 --- a/bin/dnssec/dnssec-keygen.c +++ b/bin/dnssec/dnssec-keygen.c @@ -41,6 +41,7 @@ #include <isc/commandline.h> #include <isc/entropy.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/region.h> #include <isc/string.h> #include <isc/util.h> @@ -231,7 +232,7 @@ main(int argc, char **argv) { int dbits = 0; dns_ttl_t ttl = 0; isc_boolean_t use_default = ISC_FALSE, use_nsec3 = ISC_FALSE; - isc_stdtime_t publish = 0, activate = 0, revoke = 0; + isc_stdtime_t publish = 0, activate = 0, revokekey = 0; isc_stdtime_t inactive = 0, delete = 0; isc_stdtime_t now; int prepub = -1; @@ -416,7 +417,7 @@ main(int argc, char **argv) { if (setrev || unsetrev) fatal("-R specified more than once"); - revoke = strtotime(isc_commandline_argument, + revokekey = strtotime(isc_commandline_argument, now, now, &setrev); unsetrev = !setrev; break; @@ -945,7 +946,7 @@ main(int argc, char **argv) { "was used. Revoking a ZSK is " "legal, but undefined.\n", program); - dst_key_settime(key, DST_TIME_REVOKE, revoke); + dst_key_settime(key, DST_TIME_REVOKE, revokekey); } if (setinact) diff --git a/bin/dnssec/dnssec-revoke.c b/bin/dnssec/dnssec-revoke.c index 0b9a1f59ea61..6756a38129e0 100644 --- a/bin/dnssec/dnssec-revoke.c +++ b/bin/dnssec/dnssec-revoke.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009-2012, 2014, 2015 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 @@ -89,7 +89,7 @@ main(int argc, char **argv) { isc_uint32_t flags; isc_buffer_t buf; isc_boolean_t force = ISC_FALSE; - isc_boolean_t remove = ISC_FALSE; + isc_boolean_t removefile = ISC_FALSE; isc_boolean_t id = ISC_FALSE; if (argc == 1) @@ -123,7 +123,7 @@ main(int argc, char **argv) { } break; case 'r': - remove = ISC_TRUE; + removefile = ISC_TRUE; break; case 'R': id = ISC_TRUE; @@ -247,7 +247,7 @@ main(int argc, char **argv) { * Remove old key file, if told to (and if * it isn't the same as the new file) */ - if (remove && dst_key_alg(key) != DST_ALG_RSAMD5) { + if (removefile && dst_key_alg(key) != DST_ALG_RSAMD5) { isc_buffer_init(&buf, oldname, sizeof(oldname)); dst_key_setflags(key, flags & ~DNS_KEYFLAG_REVOKE); dst_key_buildfilename(key, DST_TYPE_PRIVATE, dir, &buf); diff --git a/bin/dnssec/dnssec-settime.c b/bin/dnssec/dnssec-settime.c index 3d18b61a6139..e26356c788b1 100644 --- a/bin/dnssec/dnssec-settime.c +++ b/bin/dnssec/dnssec-settime.c @@ -108,8 +108,8 @@ printtime(dst_key_t *key, int type, const char *tag, isc_boolean_t epoch, } else if (epoch) { fprintf(stream, "%d\n", (int) when); } else { - time_t time = when; - output = ctime(&time); + time_t timet = when; + output = ctime(&timet); fprintf(stream, "%s", output); } } @@ -399,7 +399,6 @@ main(int argc, char **argv) { "inactive.\n", program); changed = setpub = setact = ISC_TRUE; - dst_key_free(&prevkey); } else { if (prepub < 0) prepub = 0; @@ -590,6 +589,8 @@ main(int argc, char **argv) { printf("%s\n", newname); } + if (prevkey != NULL) + dst_key_free(&prevkey); dst_key_free(&key); dst_lib_destroy(); isc_hash_destroy(); diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c index d791edb53fac..6ef8e44b9d3a 100644 --- a/bin/dnssec/dnssec-signzone.c +++ b/bin/dnssec/dnssec-signzone.c @@ -52,6 +52,7 @@ #include <isc/random.h> #include <isc/rwlock.h> #include <isc/serial.h> +#include <isc/safe.h> #include <isc/stdio.h> #include <isc/stdlib.h> #include <isc/string.h> @@ -681,7 +682,9 @@ signset(dns_diff_t *del, dns_diff_t *add, dns_dbnode_t *node, dns_name_t *name, (iszsk(key) && !keyset_kskonly)) signwithkey(name, set, key->key, ttl, add, "signing with dnskey"); - } else if (iszsk(key)) { + } else if (set->type == dns_rdatatype_cds || + set->type == dns_rdatatype_cdnskey || + iszsk(key)) { signwithkey(name, set, key->key, ttl, add, "signing with dnskey"); } @@ -758,7 +761,7 @@ hashlist_add_dns_name(hashlist_t *l, /*const*/ dns_name_t *name, static int hashlist_comp(const void *a, const void *b) { - return (memcmp(a, b, hash_length + 1)); + return (isc_safe_memcompare(a, b, hash_length + 1)); } static void @@ -785,7 +788,7 @@ hashlist_hasdup(hashlist_t *l) { next += l->length; if (next[l->length-1] != 0) continue; - if (memcmp(current, next, l->length - 1) == 0) + if (isc_safe_memequal(current, next, l->length - 1)) return (ISC_TRUE); current = next; } @@ -1313,7 +1316,7 @@ cleanup: * Delete any RRSIG records at a node. */ static void -cleannode(dns_db_t *db, dns_dbversion_t *version, dns_dbnode_t *node) { +cleannode(dns_db_t *db, dns_dbversion_t *dbversion, dns_dbnode_t *node) { dns_rdatasetiter_t *rdsiter = NULL; dns_rdataset_t set; isc_result_t result, dresult; @@ -1322,7 +1325,7 @@ cleannode(dns_db_t *db, dns_dbversion_t *version, dns_dbnode_t *node) { return; dns_rdataset_init(&set); - result = dns_db_allrdatasets(db, node, version, 0, &rdsiter); + result = dns_db_allrdatasets(db, node, dbversion, 0, &rdsiter); check_result(result, "dns_db_allrdatasets"); result = dns_rdatasetiter_first(rdsiter); while (result == ISC_R_SUCCESS) { @@ -1336,7 +1339,7 @@ cleannode(dns_db_t *db, dns_dbversion_t *version, dns_dbnode_t *node) { dns_rdataset_disassociate(&set); result = dns_rdatasetiter_next(rdsiter); if (destroy) { - dresult = dns_db_deleterdataset(db, node, version, + dresult = dns_db_deleterdataset(db, node, dbversion, dns_rdatatype_rrsig, covers); check_result(dresult, "dns_db_deleterdataset"); @@ -1853,11 +1856,9 @@ addnsec3param(const unsigned char *salt, size_t salt_len, dns_rdatatype_nsec3param, &nsec3param, &b); check_result(result, "dns_rdata_fromstruct()"); + dns_rdatalist_init(&rdatalist); rdatalist.rdclass = rdata.rdclass; rdatalist.type = rdata.type; - rdatalist.covers = 0; - rdatalist.ttl = 0; - ISC_LIST_INIT(rdatalist.rdata); ISC_LIST_APPEND(rdatalist.rdata, &rdata, link); result = dns_rdatalist_tordataset(&rdatalist, &rdataset); check_result(result, "dns_rdatalist_tordataset()"); @@ -1919,11 +1920,10 @@ addnsec3(dns_name_t *name, dns_dbnode_t *node, nexthash, ISC_SHA1_DIGESTLENGTH, nsec3buffer, &rdata); check_result(result, "addnsec3: dns_nsec3_buildrdata()"); + dns_rdatalist_init(&rdatalist); rdatalist.rdclass = rdata.rdclass; rdatalist.type = rdata.type; - rdatalist.covers = 0; rdatalist.ttl = ttl; - ISC_LIST_INIT(rdatalist.rdata); ISC_LIST_APPEND(rdatalist.rdata, &rdata, link); result = dns_rdatalist_tordataset(&rdatalist, &rdataset); check_result(result, "dns_rdatalist_tordataset()"); @@ -2012,13 +2012,12 @@ nsec3clean(dns_name_t *name, dns_dbnode_t *node, if (exists && nsec3.hash == hashalg && nsec3.iterations == iterations && nsec3.salt_length == salt_len && - !memcmp(nsec3.salt, salt, salt_len)) + isc_safe_memequal(nsec3.salt, salt, salt_len)) continue; + dns_rdatalist_init(&rdatalist); rdatalist.rdclass = rdata.rdclass; rdatalist.type = rdata.type; - rdatalist.covers = 0; rdatalist.ttl = rdataset.ttl; - ISC_LIST_INIT(rdatalist.rdata); dns_rdata_init(&delrdata); dns_rdata_clone(&rdata, &delrdata); ISC_LIST_APPEND(rdatalist.rdata, &delrdata, link); @@ -2672,7 +2671,7 @@ set_nsec3params(isc_boolean_t update, isc_boolean_t set_salt, if (!update && set_salt) { if (salt_length != orig_saltlen || - memcmp(saltbuf, orig_salt, salt_length) != 0) + !isc_safe_memequal(saltbuf, orig_salt, salt_length)) fatal("An NSEC3 chain exists with a different salt. " "Use -u to update it."); } else if (!set_salt) { @@ -2740,7 +2739,7 @@ writeset(const char *prefix, dns_rdatatype_t type) { char *filename; char namestr[DNS_NAME_FORMATSIZE]; dns_db_t *db = NULL; - dns_dbversion_t *version = NULL; + dns_dbversion_t *dbversion = NULL; dns_diff_t diff; dns_difftuple_t *tuple = NULL; dns_fixedname_t fixed; @@ -2860,19 +2859,19 @@ writeset(const char *prefix, dns_rdatatype_t type) { gclass, 0, NULL, &db); check_result(result, "dns_db_create"); - result = dns_db_newversion(db, &version); + result = dns_db_newversion(db, &dbversion); check_result(result, "dns_db_newversion"); - result = dns_diff_apply(&diff, db, version); + result = dns_diff_apply(&diff, db, dbversion); check_result(result, "dns_diff_apply"); dns_diff_clear(&diff); - result = dns_master_dump(mctx, db, version, style, filename); + result = dns_master_dump(mctx, db, dbversion, style, filename); check_result(result, "dns_master_dump"); isc_mem_put(mctx, filename, filenamelen + 1); - dns_db_closeversion(db, &version, ISC_FALSE); + dns_db_closeversion(db, &dbversion, ISC_FALSE); dns_db_detach(&db); } @@ -3515,7 +3514,10 @@ main(int argc, char *argv[]) { * of keys rather early. */ ISC_LIST_INIT(keylist); - isc_rwlock_init(&keylist_lock, 0, 0); + result = isc_rwlock_init(&keylist_lock, 0, 0); + if (result != ISC_R_SUCCESS) + fatal("could not initialize keylist_lock: %s", + isc_result_totext(result)); /* * Fill keylist with: diff --git a/bin/named/client.c b/bin/named/client.c index f66ceda83d50..de2d596c8832 100644 --- a/bin/named/client.c +++ b/bin/named/client.c @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id$ */ - #include <config.h> #include <isc/formatcheck.h> @@ -25,6 +23,7 @@ #include <isc/platform.h> #include <isc/print.h> #include <isc/queue.h> +#include <isc/random.h> #include <isc/stats.h> #include <isc/stdio.h> #include <isc/string.h> @@ -113,6 +112,7 @@ */ #endif + /*% nameserver client manager structure */ struct ns_clientmgr { /* Unlocked. */ @@ -328,12 +328,12 @@ exit_check(ns_client_t *client) { * We are trying to abort request processing. */ if (client->nsends > 0) { - isc_socket_t *socket; + isc_socket_t *sock; if (TCP_CLIENT(client)) - socket = client->tcpsocket; + sock = client->tcpsocket; else - socket = client->udpsocket; - isc_socket_cancel(socket, client->task, + sock = client->udpsocket; + isc_socket_cancel(sock, client->task, ISC_SOCKCANCEL_SEND); } @@ -828,16 +828,16 @@ client_sendpkg(ns_client_t *client, isc_buffer_t *buffer) { isc_result_t result; isc_region_t r; isc_sockaddr_t *address; - isc_socket_t *socket; + isc_socket_t *sock; isc_netaddr_t netaddr; int match; unsigned int sockflags = ISC_SOCKFLAG_IMMEDIATE; if (TCP_CLIENT(client)) { - socket = client->tcpsocket; + sock = client->tcpsocket; address = NULL; } else { - socket = client->udpsocket; + sock = client->udpsocket; address = &client->peeraddr; isc_netaddr_fromsockaddr(&netaddr, &client->peeraddr); @@ -861,7 +861,7 @@ client_sendpkg(ns_client_t *client, isc_buffer_t *buffer) { CTRACE("sendto"); - result = isc_socket_sendto2(socket, &r, client->task, + result = isc_socket_sendto2(sock, &r, client->task, address, pktinfo, client->sendevent, sockflags); if (result == ISC_R_SUCCESS || result == ISC_R_INPROGRESS) { @@ -1171,10 +1171,15 @@ ns_client_error(ns_client_t *client, isc_result_t result) { isc_boolean_t wouldlog; char log_buf[DNS_RRL_LOG_BUF_LEN]; dns_rrl_result_t rrl_result; + int loglevel; INSIST(rcode != dns_rcode_noerror && rcode != dns_rcode_nxdomain); - wouldlog = isc_log_wouldlog(ns_g_lctx, DNS_RRL_LOG_DROP); + if (ns_g_server->log_queries) + loglevel = DNS_RRL_LOG_DROP; + else + loglevel = ISC_LOG_DEBUG(1); + wouldlog = isc_log_wouldlog(ns_g_lctx, loglevel); rrl_result = dns_rrl(client->view, &client->peeraddr, TCP_CLIENT(client), dns_rdataclass_in, dns_rdatatype_none, @@ -1191,7 +1196,7 @@ ns_client_error(ns_client_t *client, isc_result_t result) { ns_client_log(client, NS_LOGCATEGORY_QUERY_EERRORS, NS_LOGMODULE_CLIENT, - DNS_RRL_LOG_DROP, + loglevel, "%s", log_buf); } /* @@ -1646,7 +1651,7 @@ client_request(isc_task_t *task, isc_event_t *event) { } if (TCP_CLIENT(client)) isc_stats_increment(ns_g_server->nsstats, - dns_nsstatscounter_tcp); + dns_nsstatscounter_requesttcp); /* * It's a request. Parse it. @@ -1657,6 +1662,13 @@ client_request(isc_task_t *task, isc_event_t *event) { * Parsing the request failed. Send a response * (typically FORMERR or SERVFAIL). */ + if (result == DNS_R_OPTERR) + (void)client_addopt(client); + + ns_client_log(client, NS_LOGCATEGORY_CLIENT, + NS_LOGMODULE_CLIENT, ISC_LOG_WARNING, + "message parsing failed: %s", + isc_result_totext(result)); ns_client_error(client, result); goto cleanup; } @@ -2777,7 +2789,7 @@ void ns_client_logv(ns_client_t *client, isc_logcategory_t *category, isc_logmodule_t *module, int level, const char *fmt, va_list ap) { - char msgbuf[2048]; + char msgbuf[4096]; char peerbuf[ISC_SOCKADDR_FORMATSIZE]; char signerbuf[DNS_NAME_FORMATSIZE], qnamebuf[DNS_NAME_FORMATSIZE]; const char *viewname = ""; diff --git a/bin/named/config.c b/bin/named/config.c index a32f12e660ae..cab6f1fd0db8 100644 --- a/bin/named/config.c +++ b/bin/named/config.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2001-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -156,7 +156,14 @@ options {\n\ dnssec-enable yes;\n\ dnssec-validation yes; \n\ dnssec-accept-expired no;\n\ - clients-per-query 10;\n\ +" +#ifdef ENABLE_FETCHLIMIT +" fetches-per-server 0;\n\ + fetches-per-zone 0;\n\ + fetch-quota-params 100 0.1 0.3 0.7;\n\ +" +#endif /* ENABLE_FETCHLIMIT */ +" clients-per-query 10;\n\ max-clients-per-query 100;\n\ max-recursion-depth 7;\n\ max-recursion-queries 50;\n\ diff --git a/bin/named/control.c b/bin/named/control.c index 306bca0b2794..aacb0884fde0 100644 --- a/bin/named/control.c +++ b/bin/named/control.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2009-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2009-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2001-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -101,7 +101,7 @@ ns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text) { if (command_compare(command, NS_COMMAND_RELOAD)) { result = ns_server_reloadcommand(ns_g_server, command, text); } else if (command_compare(command, NS_COMMAND_RECONFIG)) { - result = ns_server_reconfigcommand(ns_g_server, command); + result = ns_server_reconfigcommand(ns_g_server); } else if (command_compare(command, NS_COMMAND_REFRESH)) { result = ns_server_refreshcommand(ns_g_server, command, text); } else if (command_compare(command, NS_COMMAND_RETRANSFER)) { diff --git a/bin/named/include/named/lwdclient.h b/bin/named/include/named/lwdclient.h index c345176a2127..51c55ec5d4a5 100644 --- a/bin/named/include/named/lwdclient.h +++ b/bin/named/include/named/lwdclient.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -186,6 +186,7 @@ struct ns_lwdclientmgr { lwres_context_t *lwctx; /*%< lightweight proto context */ isc_task_t *task; /*%< owning task */ unsigned int flags; + isc_mutex_t lock; ISC_LINK(ns_lwdclientmgr_t) link; ISC_LIST(ns_lwdclient_t) idle; /*%< idle client slots */ ISC_LIST(ns_lwdclient_t) running; /*%< running clients */ diff --git a/bin/named/include/named/main.h b/bin/named/include/named/main.h index 1537fb641da6..d41641f5cf02 100644 --- a/bin/named/include/named/main.h +++ b/bin/named/include/named/main.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: main.h,v 1.17 2009/09/29 23:48:03 tbox Exp $ */ - #ifndef NAMED_MAIN_H #define NAMED_MAIN_H 1 @@ -26,6 +24,11 @@ #define main(argc, argv) bindmain(argc, argv) #endif +/* + * Commandline arguments for named; also referenced in win32/ntservice.c + */ +#define NS_MAIN_ARGS "46c:C:d:E:fFgi:lM:m:n:N:p:P:sS:t:T:U:u:vVx:" + ISC_PLATFORM_NORETURN_PRE void ns_main_earlyfatal(const char *format, ...) ISC_FORMAT_PRINTF(1, 2) ISC_PLATFORM_NORETURN_POST; diff --git a/bin/named/include/named/server.h b/bin/named/include/named/server.h index 1680776cd991..a3696f1614c1 100644 --- a/bin/named/include/named/server.h +++ b/bin/named/include/named/server.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -51,6 +51,7 @@ struct ns_server { isc_quota_t xfroutquota; isc_quota_t tcpquota; isc_quota_t recursionquota; + dns_acl_t *blackholeacl; char * statsfile; /*%< Statistics file name */ char * dumpfile; /*%< Dump file name */ @@ -130,7 +131,7 @@ enum { dns_nsstatscounter_tsigin = 4, dns_nsstatscounter_sig0in = 5, dns_nsstatscounter_invalidsig = 6, - dns_nsstatscounter_tcp = 7, + dns_nsstatscounter_requesttcp = 7, dns_nsstatscounter_authrej = 8, dns_nsstatscounter_recurserej = 9, @@ -165,16 +166,31 @@ enum { dns_nsstatscounter_updatefail = 34, dns_nsstatscounter_updatebadprereq = 35, - dns_nsstatscounter_rpz_rewrites = 36, + dns_nsstatscounter_recursclients = 36, + + dns_nsstatscounter_dns64 = 37, + + dns_nsstatscounter_ratedropped = 38, + dns_nsstatscounter_rateslipped = 39, + + dns_nsstatscounter_rpz_rewrites = 40, + + dns_nsstatscounter_udp = 41, + dns_nsstatscounter_tcp = 42, + + dns_nsstatscounter_nsidopt = 43, + dns_nsstatscounter_expireopt = 44, + dns_nsstatscounter_otheropt = 45, + dns_nsstatscounter_ecsopt = 46, -#ifdef USE_RRL - dns_nsstatscounter_ratedropped = 37, - dns_nsstatscounter_rateslipped = 38, + dns_nsstatscounter_sitopt = 47, + dns_nsstatscounter_sitbadsize = 48, + dns_nsstatscounter_sitbadtime = 49, + dns_nsstatscounter_sitnomatch = 50, + dns_nsstatscounter_sitmatch = 51, + dns_nsstatscounter_sitnew = 52, - dns_nsstatscounter_max = 39 -#else /* USE_RRL */ - dns_nsstatscounter_max = 37 -#endif /* USE_RRL */ + dns_nsstatscounter_max = 53 }; void @@ -213,7 +229,7 @@ ns_server_reloadcommand(ns_server_t *server, char *args, isc_buffer_t *text); */ isc_result_t -ns_server_reconfigcommand(ns_server_t *server, char *args); +ns_server_reconfigcommand(ns_server_t *server); /*%< * Act on a "reconfig" command from the command channel. */ diff --git a/bin/named/interfacemgr.c b/bin/named/interfacemgr.c index 850222ad02bf..73422c658981 100644 --- a/bin/named/interfacemgr.c +++ b/bin/named/interfacemgr.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -302,7 +302,7 @@ ns_interface_listenudp(ns_interface_t *ifp) { return (ISC_R_SUCCESS); addtodispatch_failure: - for (i = disp - 1; i <= 0; i--) { + for (i = disp - 1; i >= 0; i--) { dns_dispatch_changeattributes(ifp->udpdispatch[i], 0, DNS_DISPATCHATTR_NOLISTEN); dns_dispatch_detach(&(ifp->udpdispatch[i])); diff --git a/bin/named/logconf.c b/bin/named/logconf.c index ce804055cc39..fd20d5a5ee8f 100644 --- a/bin/named/logconf.c +++ b/bin/named/logconf.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2011, 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2011, 2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -23,6 +23,7 @@ #include <isc/file.h> #include <isc/offset.h> +#include <isc/print.h> #include <isc/result.h> #include <isc/stdio.h> #include <isc/string.h> diff --git a/bin/named/lwdclient.c b/bin/named/lwdclient.c index a8431340024c..511cbf0fb496 100644 --- a/bin/named/lwdclient.c +++ b/bin/named/lwdclient.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -59,12 +59,16 @@ ns_lwdclientmgr_create(ns_lwreslistener_t *listener, unsigned int nclients, ns_lwdclientmgr_t *cm; ns_lwdclient_t *client; unsigned int i; - isc_result_t result = ISC_R_FAILURE; + isc_result_t result; cm = isc_mem_get(lwresd->mctx, sizeof(ns_lwdclientmgr_t)); if (cm == NULL) return (ISC_R_NOMEMORY); + result = isc_mutex_init(&cm->lock); + if (result != ISC_R_SUCCESS) + goto freecm; + cm->listener = NULL; ns_lwreslistener_attach(listener, &cm->listener); cm->mctx = lwresd->mctx; @@ -78,10 +82,10 @@ ns_lwdclientmgr_create(ns_lwreslistener_t *listener, unsigned int nclients, ISC_LIST_INIT(cm->idle); ISC_LIST_INIT(cm->running); - if (lwres_context_create(&cm->lwctx, cm->mctx, - ns__lwresd_memalloc, ns__lwresd_memfree, - LWRES_CONTEXT_SERVERMODE) - != ISC_R_SUCCESS) + result = lwres_context_create(&cm->lwctx, cm->mctx, + ns__lwresd_memalloc, ns__lwresd_memfree, + LWRES_CONTEXT_SERVERMODE); + if (result != ISC_R_SUCCESS) goto errout; for (i = 0; i < nclients; i++) { @@ -96,8 +100,10 @@ ns_lwdclientmgr_create(ns_lwreslistener_t *listener, unsigned int nclients, /* * If we could create no clients, clean up and return. */ - if (ISC_LIST_EMPTY(cm->idle)) + if (ISC_LIST_EMPTY(cm->idle)) { + result = ISC_R_NOMEMORY; goto errout; + } result = isc_task_create(taskmgr, 0, &cm->task); if (result != ISC_R_SUCCESS) @@ -130,6 +136,9 @@ ns_lwdclientmgr_create(ns_lwreslistener_t *listener, unsigned int nclients, if (cm->lwctx != NULL) lwres_context_destroy(&cm->lwctx); + DESTROYLOCK(&cm->lock); + + freecm: isc_mem_put(lwresd->mctx, cm, sizeof(*cm)); return (result); } @@ -139,11 +148,14 @@ lwdclientmgr_destroy(ns_lwdclientmgr_t *cm) { ns_lwdclient_t *client; ns_lwreslistener_t *listener; - if (!SHUTTINGDOWN(cm)) + LOCK(&cm->lock); + if (!SHUTTINGDOWN(cm)) { + UNLOCK(&cm->lock); return; + } /* - * run through the idle list and free the clients there. Idle + * Run through the idle list and free the clients there. Idle * clients do not have a recv running nor do they have any finds * or similar running. */ @@ -156,14 +168,20 @@ lwdclientmgr_destroy(ns_lwdclientmgr_t *cm) { client = ISC_LIST_HEAD(cm->idle); } - if (!ISC_LIST_EMPTY(cm->running)) + if (!ISC_LIST_EMPTY(cm->running)) { + UNLOCK(&cm->lock); return; + } + + UNLOCK(&cm->lock); lwres_context_destroy(&cm->lwctx); cm->view = NULL; isc_socket_detach(&cm->sock); isc_task_detach(&cm->task); + DESTROYLOCK(&cm->lock); + listener = cm->listener; ns_lwreslistener_unlinkcm(listener, cm); ns_lwdclient_log(50, "destroying manager %p", cm); @@ -225,8 +243,10 @@ ns_lwdclient_recv(isc_task_t *task, isc_event_t *ev) { NS_LWDCLIENT_SETRECVDONE(client); + LOCK(&cm->lock); INSIST((cm->flags & NS_LWDCLIENTMGR_FLAGRECVPENDING) != 0); cm->flags &= ~NS_LWDCLIENTMGR_FLAGRECVPENDING; + UNLOCK(&cm->lock); ns_lwdclient_log(50, "event received: task %p, length %u, result %u (%s)", @@ -274,40 +294,53 @@ ns_lwdclient_startrecv(ns_lwdclientmgr_t *cm) { ns_lwdclient_t *client; isc_result_t result; isc_region_t r; + isc_boolean_t destroy = ISC_FALSE; + + LOCK(&cm->lock); if (SHUTTINGDOWN(cm)) { - lwdclientmgr_destroy(cm); - return (ISC_R_SUCCESS); + destroy = ISC_TRUE; + result = ISC_R_SUCCESS; + goto unlock; } /* * If a recv is already running, don't bother. */ - if ((cm->flags & NS_LWDCLIENTMGR_FLAGRECVPENDING) != 0) - return (ISC_R_SUCCESS); + if ((cm->flags & NS_LWDCLIENTMGR_FLAGRECVPENDING) != 0) { + result = ISC_R_SUCCESS; + goto unlock; + } /* * If we have no idle slots, just return success. */ client = ISC_LIST_HEAD(cm->idle); - if (client == NULL) - return (ISC_R_SUCCESS); + if (client == NULL) { + result = ISC_R_SUCCESS; + goto unlock; + } + INSIST(NS_LWDCLIENT_ISIDLE(client)); /* + * Set the flag to say there is a recv pending. If isc_socket_recv + * fails we will clear the flag otherwise it will be cleared by + * ns_lwdclient_recv. + */ + cm->flags |= NS_LWDCLIENTMGR_FLAGRECVPENDING; + + /* * Issue the recv. If it fails, return that it did. */ r.base = client->buffer; r.length = LWRES_RECVLENGTH; result = isc_socket_recv(cm->sock, &r, 0, cm->task, ns_lwdclient_recv, client); - if (result != ISC_R_SUCCESS) - return (result); - - /* - * Set the flag to say we've issued a recv() call. - */ - cm->flags |= NS_LWDCLIENTMGR_FLAGRECVPENDING; + if (result != ISC_R_SUCCESS) { + cm->flags &= ~NS_LWDCLIENTMGR_FLAGRECVPENDING; + goto unlock; + } /* * Remove the client from the idle list, and put it on the running @@ -317,7 +350,13 @@ ns_lwdclient_startrecv(ns_lwdclientmgr_t *cm) { ISC_LIST_UNLINK(cm->idle, client, link); ISC_LIST_APPEND(cm->running, client, link); - return (ISC_R_SUCCESS); + unlock: + UNLOCK(&cm->lock); + + if (destroy) + lwdclientmgr_destroy(cm); + + return (result); } static void @@ -335,6 +374,7 @@ lwdclientmgr_shutdown_callback(isc_task_t *task, isc_event_t *ev) { * clients do not have a recv running nor do they have any finds * or similar running. */ + LOCK(&cm->lock); client = ISC_LIST_HEAD(cm->idle); while (client != NULL) { ns_lwdclient_log(50, "destroying client %p, manager %p", @@ -343,6 +383,7 @@ lwdclientmgr_shutdown_callback(isc_task_t *task, isc_event_t *ev) { isc_mem_put(cm->mctx, client, sizeof(*client)); client = ISC_LIST_HEAD(cm->idle); } + UNLOCK(&cm->lock); /* * Cancel any pending I/O. @@ -353,6 +394,7 @@ lwdclientmgr_shutdown_callback(isc_task_t *task, isc_event_t *ev) { * Run through the running client list and kill off any finds * in progress. */ + LOCK(&cm->lock); client = ISC_LIST_HEAD(cm->running); while (client != NULL) { if (client->find != client->v4find @@ -367,6 +409,8 @@ lwdclientmgr_shutdown_callback(isc_task_t *task, isc_event_t *ev) { cm->flags |= NS_LWDCLIENTMGR_FLAGSHUTTINGDOWN; + UNLOCK(&cm->lock); + isc_event_free(&ev); } @@ -387,8 +431,10 @@ ns_lwdclient_stateidle(ns_lwdclient_t *client) { INSIST(client->v4find == NULL); INSIST(client->v6find == NULL); + LOCK(&cm->lock); ISC_LIST_UNLINK(cm->running, client, link); ISC_LIST_PREPEND(cm->idle, client, link); + UNLOCK(&cm->lock); NS_LWDCLIENT_SETIDLE(client); @@ -464,5 +510,7 @@ ns_lwdclient_initialize(ns_lwdclient_t *client, ns_lwdclientmgr_t *cmgr) { client->pktinfo_valid = ISC_FALSE; + LOCK(&cmgr->lock); ISC_LIST_APPEND(cmgr->idle, client, link); + UNLOCK(&cmgr->lock); } diff --git a/bin/named/lwresd.c b/bin/named/lwresd.c index 7ee2196364e9..f9ed544fc2e2 100644 --- a/bin/named/lwresd.c +++ b/bin/named/lwresd.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2009, 2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -602,7 +602,7 @@ listener_copysock(ns_lwreslistener_t *oldlistener, static isc_result_t listener_startclients(ns_lwreslistener_t *listener) { - ns_lwdclientmgr_t *cm; + ns_lwdclientmgr_t *cm, *next; unsigned int i; isc_result_t result; @@ -626,6 +626,7 @@ listener_startclients(ns_lwreslistener_t *listener) { LOCK(&listener->lock); cm = ISC_LIST_HEAD(listener->cmgrs); while (cm != NULL) { + next = ISC_LIST_NEXT(cm, link); result = ns_lwdclient_startrecv(cm); if (result != ISC_R_SUCCESS) isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, @@ -633,7 +634,7 @@ listener_startclients(ns_lwreslistener_t *listener) { "could not start lwres " "client handler: %s", isc_result_totext(result)); - cm = ISC_LIST_NEXT(cm, link); + cm = next; } UNLOCK(&listener->lock); diff --git a/bin/named/main.c b/bin/named/main.c index 6e340cc13c49..5664e6545e4c 100644 --- a/bin/named/main.c +++ b/bin/named/main.c @@ -381,6 +381,7 @@ static struct flag_def { const char *name; unsigned int value; } mem_debug_flags[] = { + { "none", 0}, { "trace", ISC_MEM_DEBUGTRACE }, { "record", ISC_MEM_DEBUGRECORD }, { "usage", ISC_MEM_DEBUGUSAGE }, @@ -391,6 +392,8 @@ static struct flag_def { static void set_flags(const char *arg, struct flag_def *defs, unsigned int *ret) { + isc_boolean_t clear = ISC_FALSE; + for (;;) { const struct flag_def *def; const char *end = strchr(arg, ','); @@ -401,16 +404,21 @@ set_flags(const char *arg, struct flag_def *defs, unsigned int *ret) { for (def = defs; def->name != NULL; def++) { if (arglen == (int)strlen(def->name) && memcmp(arg, def->name, arglen) == 0) { + if (def->value == 0) + clear = ISC_TRUE; *ret |= def->value; goto found; } } ns_main_earlyfatal("unrecognized flag '%.*s'", arglen, arg); found: - if (*end == '\0') + if (clear || (*end == '\0')) break; arg = end + 1; } + + if (clear) + *ret = 0; } static void @@ -421,10 +429,12 @@ parse_command_line(int argc, char *argv[]) { save_command_line(argc, argv); - /* PLEASE keep options synchronized when main is hooked! */ -#define CMDLINE_FLAGS "46c:C:d:E:fFgi:lm:n:N:p:P:sS:t:T:U:u:vVx:" + /* + * NS_MAIN_ARGS is defined in main.h, so that it can be used + * both by named and by ntservice hooks. + */ isc_commandline_errprint = ISC_FALSE; - while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) { + while ((ch = isc_commandline_parse(argc, argv, NS_MAIN_ARGS)) != -1) { switch (ch) { case '4': if (ns_g_disable4) @@ -476,6 +486,10 @@ parse_command_line(int argc, char *argv[]) { case 'l': ns_g_lwresdonly = ISC_TRUE; break; + case 'M': + if (strcmp(isc_commandline_argument, "external") == 0) + isc_mem_defaultflags = 0; + break; case 'm': set_flags(isc_commandline_argument, mem_debug_flags, &isc_mem_debugging); @@ -586,16 +600,16 @@ parse_command_line(int argc, char *argv[]) { ns_g_username = isc_commandline_argument; break; case 'v': - printf("%s %s", ns_g_product, ns_g_version); - if (*ns_g_description != 0) - printf(" %s", ns_g_description); - printf("\n"); + printf("%s %s%s%s <id:%s>\n", + ns_g_product, ns_g_version, + (*ns_g_description != '\0') ? " " : "", + ns_g_description, ns_g_srcid); exit(0); case 'V': - printf("%s %s", ns_g_product, ns_g_version); - if (*ns_g_description != 0) - printf(" %s", ns_g_description); - printf(" <id:%s> built by %s with %s\n", ns_g_srcid, + printf("%s %s%s%s <id:%s>\n", ns_g_product, ns_g_version, + (*ns_g_description != '\0') ? " " : "", + ns_g_description, ns_g_srcid); + printf("built by %s with %s\n", ns_g_builder, ns_g_configargs); #ifdef __clang__ printf("compiled by CLANG %s\n", __VERSION__); @@ -617,19 +631,15 @@ parse_command_line(int argc, char *argv[]) { #ifdef OPENSSL printf("compiled with OpenSSL version: %s\n", OPENSSL_VERSION_TEXT); -#ifndef WIN32 printf("linked to OpenSSL version: %s\n", SSLeay_version(SSLEAY_VERSION)); #endif -#endif #ifdef HAVE_LIBXML2 printf("compiled with libxml2 version: %s\n", LIBXML_DOTTED_VERSION); -#ifndef WIN32 printf("linked to libxml2 version: %s\n", xmlParserVersion); #endif -#endif exit(0); case 'F': /* Reserved for FIPS mode */ @@ -638,7 +648,7 @@ parse_command_line(int argc, char *argv[]) { usage(); if (isc_commandline_option == '?') exit(0); - p = strchr(CMDLINE_FLAGS, isc_commandline_option); + p = strchr(NS_MAIN_ARGS, isc_commandline_option); if (p == NULL || *++p != ':') ns_main_earlyfatal("unknown option '-%c'", isc_commandline_option); @@ -749,10 +759,6 @@ static void destroy_managers(void) { ns_lwresd_shutdown(); - isc_entropy_detach(&ns_g_entropy); - if (ns_g_fallbackentropy != NULL) - isc_entropy_detach(&ns_g_fallbackentropy); - /* * isc_taskmgr_destroy() will block until all tasks have exited, */ @@ -897,8 +903,10 @@ setup(void) { isc_result_totext(result)); isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, - ISC_LOG_NOTICE, "starting %s %s%s", ns_g_product, - ns_g_version, saved_command_line); + ISC_LOG_NOTICE, "starting %s %s%s%s <id:%s>%s", + ns_g_product, ns_g_version, + *ns_g_description ? " " : "", ns_g_description, + ns_g_srcid, saved_command_line); isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, ISC_LOG_NOTICE, "built with %s", ns_g_configargs); @@ -1017,6 +1025,10 @@ cleanup(void) { ns_server_destroy(&ns_g_server); + isc_entropy_detach(&ns_g_entropy); + if (ns_g_fallbackentropy != NULL) + isc_entropy_detach(&ns_g_fallbackentropy); + ns_builtin_deinit(); /* diff --git a/bin/named/named.8 b/bin/named/named.8 index fe6bb4207e37..09bd4c117d28 100644 --- a/bin/named/named.8 +++ b/bin/named/named.8 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2004-2009, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2004-2009, 2011, 2013-2015 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 @@ -33,7 +33,7 @@ named \- Internet domain name server .SH "SYNOPSIS" .HP 6 -\fBnamed\fR [\fB\-4\fR] [\fB\-6\fR] [\fB\-c\ \fR\fB\fIconfig\-file\fR\fR] [\fB\-d\ \fR\fB\fIdebug\-level\fR\fR] [\fB\-E\ \fR\fB\fIengine\-name\fR\fR] [\fB\-f\fR] [\fB\-g\fR] [\fB\-m\ \fR\fB\fIflag\fR\fR] [\fB\-n\ \fR\fB\fI#cpus\fR\fR] [\fB\-p\ \fR\fB\fIport\fR\fR] [\fB\-s\fR] [\fB\-S\ \fR\fB\fI#max\-socks\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-U\ \fR\fB\fI#listeners\fR\fR] [\fB\-u\ \fR\fB\fIuser\fR\fR] [\fB\-v\fR] [\fB\-V\fR] [\fB\-x\ \fR\fB\fIcache\-file\fR\fR] +\fBnamed\fR [\fB\-4\fR] [\fB\-6\fR] [\fB\-c\ \fR\fB\fIconfig\-file\fR\fR] [\fB\-d\ \fR\fB\fIdebug\-level\fR\fR] [\fB\-E\ \fR\fB\fIengine\-name\fR\fR] [\fB\-f\fR] [\fB\-g\fR] [\fB\-M\ \fR\fB\fIoption\fR\fR] [\fB\-m\ \fR\fB\fIflag\fR\fR] [\fB\-n\ \fR\fB\fI#cpus\fR\fR] [\fB\-p\ \fR\fB\fIport\fR\fR] [\fB\-s\fR] [\fB\-S\ \fR\fB\fI#max\-socks\fR\fR] [\fB\-t\ \fR\fB\fIdirectory\fR\fR] [\fB\-U\ \fR\fB\fI#listeners\fR\fR] [\fB\-u\ \fR\fB\fIuser\fR\fR] [\fB\-v\fR] [\fB\-V\fR] [\fB\-x\ \fR\fB\fIcache\-file\fR\fR] .SH "DESCRIPTION" .PP \fBnamed\fR @@ -101,6 +101,12 @@ Run the server in the foreground and force all logging to \fIstderr\fR. .RE .PP +\-M \fIoption\fR +.RS 4 +Sets the default memory context options. Currently the only supported option is +\fIexternal\fR, which causes the internal memory manager to be bypassed in favor of system\-provided memory allocation functions. +.RE +.PP \-m \fIflag\fR .RS 4 Turn on memory usage debugging flags. Possible flags are @@ -280,7 +286,7 @@ BIND 9 Administrator Reference Manual. .PP Internet Systems Consortium .SH "COPYRIGHT" -Copyright \(co 2004\-2009, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2004\-2009, 2011, 2013\-2015 Internet Systems Consortium, Inc. ("ISC") .br Copyright \(co 2000, 2001, 2003 Internet Software Consortium. .br diff --git a/bin/named/named.docbook b/bin/named/named.docbook index 7ca3d2bf6a7a..0ea469d35766 100644 --- a/bin/named/named.docbook +++ b/bin/named/named.docbook @@ -2,7 +2,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY mdash "—">]> <!-- - - Copyright (C) 2004-2009, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + - Copyright (C) 2004-2009, 2011, 2013-2015 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 @@ -45,6 +45,7 @@ <year>2011</year> <year>2013</year> <year>2014</year> + <year>2015</year> <holder>Internet Systems Consortium, Inc. ("ISC")</holder> </copyright> <copyright> @@ -65,6 +66,7 @@ <arg><option>-E <replaceable class="parameter">engine-name</replaceable></option></arg> <arg><option>-f</option></arg> <arg><option>-g</option></arg> + <arg><option>-M <replaceable class="parameter">option</replaceable></option></arg> <arg><option>-m <replaceable class="parameter">flag</replaceable></option></arg> <arg><option>-n <replaceable class="parameter">#cpus</replaceable></option></arg> <arg><option>-p <replaceable class="parameter">port</replaceable></option></arg> @@ -182,6 +184,19 @@ </varlistentry> <varlistentry> + <term>-M <replaceable class="parameter">option</replaceable></term> + <listitem> + <para> + Sets the default memory context options. Currently + the only supported option is + <replaceable class="parameter">external</replaceable>, + which causes the internal memory manager to be bypassed + in favor of system-provided memory allocation functions. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term>-m <replaceable class="parameter">flag</replaceable></term> <listitem> <para> diff --git a/bin/named/named.html b/bin/named/named.html index 0c1abf1894fb..83494ee5d9c0 100644 --- a/bin/named/named.html +++ b/bin/named/named.html @@ -1,5 +1,5 @@ <!-- - - Copyright (C) 2004-2009, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + - Copyright (C) 2004-2009, 2011, 2013-2015 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 @@ -29,10 +29,10 @@ </div> <div class="refsynopsisdiv"> <h2>Synopsis</h2> -<div class="cmdsynopsis"><p><code class="command">named</code> [<code class="option">-4</code>] [<code class="option">-6</code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>debug-level</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine-name</code></em></code>] [<code class="option">-f</code>] [<code class="option">-g</code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-n <em class="replaceable"><code>#cpus</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-s</code>] [<code class="option">-S <em class="replaceable"><code>#max-socks</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-U <em class="replaceable"><code>#listeners</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>] [<code class="option">-v</code>] [<code class="option">-V</code>] [<code class="option">-x <em class="replaceable"><code>cache-file</code></em></code>]</p></div> +<div class="cmdsynopsis"><p><code class="command">named</code> [<code class="option">-4</code>] [<code class="option">-6</code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>debug-level</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine-name</code></em></code>] [<code class="option">-f</code>] [<code class="option">-g</code>] [<code class="option">-M <em class="replaceable"><code>option</code></em></code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-n <em class="replaceable"><code>#cpus</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-s</code>] [<code class="option">-S <em class="replaceable"><code>#max-socks</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-U <em class="replaceable"><code>#listeners</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>] [<code class="option">-v</code>] [<code class="option">-V</code>] [<code class="option">-x <em class="replaceable"><code>cache-file</code></em></code>]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2543507"></a><h2>DESCRIPTION</h2> +<a name="id2543518"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">named</strong></span> is a Domain Name System (DNS) server, part of the BIND 9 distribution from ISC. For more @@ -47,7 +47,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2543531"></a><h2>OPTIONS</h2> +<a name="id2543543"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-4</span></dt> <dd><p> @@ -96,6 +96,14 @@ Run the server in the foreground and force all logging to <code class="filename">stderr</code>. </p></dd> +<dt><span class="term">-M <em class="replaceable"><code>option</code></em></span></dt> +<dd><p> + Sets the default memory context options. Currently + the only supported option is + <em class="replaceable"><code>external</code></em>, + which causes the internal memory manager to be bypassed + in favor of system-provided memory allocation functions. + </p></dd> <dt><span class="term">-m <em class="replaceable"><code>flag</code></em></span></dt> <dd><p> Turn on memory usage debugging flags. Possible flags are @@ -240,7 +248,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2544021"></a><h2>SIGNALS</h2> +<a name="id2544192"></a><h2>SIGNALS</h2> <p> In routine operation, signals should not be used to control the nameserver; <span><strong class="command">rndc</strong></span> should be used @@ -261,7 +269,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2544137"></a><h2>CONFIGURATION</h2> +<a name="id2544308"></a><h2>CONFIGURATION</h2> <p> The <span><strong class="command">named</strong></span> configuration file is too complex to describe in detail here. A complete description is provided @@ -278,7 +286,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2544310"></a><h2>FILES</h2> +<a name="id2544344"></a><h2>FILES</h2> <div class="variablelist"><dl> <dt><span class="term"><code class="filename">/etc/named.conf</code></span></dt> <dd><p> @@ -291,7 +299,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2544349"></a><h2>SEE ALSO</h2> +<a name="id2544384"></a><h2>SEE ALSO</h2> <p><em class="citetitle">RFC 1033</em>, <em class="citetitle">RFC 1034</em>, <em class="citetitle">RFC 1035</em>, @@ -304,7 +312,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2544420"></a><h2>AUTHOR</h2> +<a name="id2544454"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> diff --git a/bin/named/query.c b/bin/named/query.c index 706fdecd664d..f2ca55538780 100644 --- a/bin/named/query.c +++ b/bin/named/query.c @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id$ */ - /*! \file */ #include <config.h> @@ -25,6 +23,7 @@ #include <isc/hex.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/serial.h> #include <isc/stats.h> #include <isc/util.h> @@ -118,21 +117,31 @@ #define NOQNAME(r) (((r)->attributes & \ DNS_RDATASETATTR_NOQNAME) != 0) -#if 0 -#define CTRACE(m) isc_log_write(ns_g_lctx, \ - NS_LOGCATEGORY_CLIENT, \ - NS_LOGMODULE_QUERY, \ - ISC_LOG_DEBUG(3), \ - "client %p: %s", client, (m)) -#define QTRACE(m) isc_log_write(ns_g_lctx, \ - NS_LOGCATEGORY_GENERAL, \ - NS_LOGMODULE_QUERY, \ - ISC_LOG_DEBUG(3), \ - "query %p: %s", query, (m)) +#ifdef WANT_QUERYTRACE +#define CTRACE(l,m) do { \ + if (client != NULL && client->query.qname != NULL) { \ + if (isc_log_wouldlog(ns_g_lctx, l)) { \ + char qbuf[DNS_NAME_FORMATSIZE]; \ + dns_name_format(client->query.qname, \ + qbuf, sizeof(qbuf)); \ + isc_log_write(ns_g_lctx, \ + NS_LOGCATEGORY_CLIENT, \ + NS_LOGMODULE_QUERY, \ + l, "client %p (%s): %s", \ + client, qbuf, (m)); \ + } \ + } else { \ + isc_log_write(ns_g_lctx, \ + NS_LOGCATEGORY_CLIENT, \ + NS_LOGMODULE_QUERY, \ + l, "client %p (<unknown-name>): %s", \ + client, (m)); \ + } \ +} while(0) #else -#define CTRACE(m) ((void)m) -#define QTRACE(m) ((void)m) -#endif +#define CTRACE(l,m) ((void)m) +#endif /* WANT_QUERYTRACE */ + #define DNS_GETDB_NOEXACT 0x01U #define DNS_GETDB_NOLOG 0x02U @@ -307,13 +316,13 @@ static inline void query_putrdataset(ns_client_t *client, dns_rdataset_t **rdatasetp) { dns_rdataset_t *rdataset = *rdatasetp; - CTRACE("query_putrdataset"); + CTRACE(ISC_LOG_DEBUG(3), "query_putrdataset"); if (rdataset != NULL) { if (dns_rdataset_isassociated(rdataset)) dns_rdataset_disassociate(rdataset); dns_message_puttemprdataset(client->message, rdatasetp); } - CTRACE("query_putrdataset: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_putrdataset: done"); } static inline void @@ -420,7 +429,7 @@ query_newnamebuf(ns_client_t *client) { isc_buffer_t *dbuf; isc_result_t result; - CTRACE("query_newnamebuf"); + CTRACE(ISC_LOG_DEBUG(3), "query_newnamebuf"); /*% * Allocate a name buffer. */ @@ -428,12 +437,13 @@ query_newnamebuf(ns_client_t *client) { dbuf = NULL; result = isc_buffer_allocate(client->mctx, &dbuf, 1024); if (result != ISC_R_SUCCESS) { - CTRACE("query_newnamebuf: isc_buffer_allocate failed: done"); + CTRACE(ISC_LOG_DEBUG(3), + "query_newnamebuf: isc_buffer_allocate failed: done"); return (result); } ISC_LIST_APPEND(client->query.namebufs, dbuf, link); - CTRACE("query_newnamebuf: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_newnamebuf: done"); return (ISC_R_SUCCESS); } @@ -443,7 +453,7 @@ query_getnamebuf(ns_client_t *client) { isc_result_t result; isc_region_t r; - CTRACE("query_getnamebuf"); + CTRACE(ISC_LOG_DEBUG(3), "query_getnamebuf"); /*% * Return a name buffer with space for a maximal name, allocating * a new one if necessary. @@ -452,7 +462,8 @@ query_getnamebuf(ns_client_t *client) { if (ISC_LIST_EMPTY(client->query.namebufs)) { result = query_newnamebuf(client); if (result != ISC_R_SUCCESS) { - CTRACE("query_getnamebuf: query_newnamebuf failed: done"); + CTRACE(ISC_LOG_DEBUG(3), + "query_getnamebuf: query_newnamebuf failed: done"); return (NULL); } } @@ -463,7 +474,8 @@ query_getnamebuf(ns_client_t *client) { if (r.length < 255) { result = query_newnamebuf(client); if (result != ISC_R_SUCCESS) { - CTRACE("query_getnamebuf: query_newnamebuf failed: done"); + CTRACE(ISC_LOG_DEBUG(3), + "query_getnamebuf: query_newnamebuf failed: done"); return (NULL); } @@ -471,7 +483,7 @@ query_getnamebuf(ns_client_t *client) { isc_buffer_availableregion(dbuf, &r); INSIST(r.length >= 255); } - CTRACE("query_getnamebuf: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_getnamebuf: done"); return (dbuf); } @@ -479,7 +491,7 @@ static inline void query_keepname(ns_client_t *client, dns_name_t *name, isc_buffer_t *dbuf) { isc_region_t r; - CTRACE("query_keepname"); + CTRACE(ISC_LOG_DEBUG(3), "query_keepname"); /*% * 'name' is using space in 'dbuf', but 'dbuf' has not yet been * adjusted to take account of that. We do the adjustment. @@ -503,14 +515,14 @@ query_releasename(ns_client_t *client, dns_name_t **namep) { * rights on the buffer. */ - CTRACE("query_releasename"); + CTRACE(ISC_LOG_DEBUG(3), "query_releasename"); if (dns_name_hasbuffer(name)) { INSIST((client->query.attributes & NS_QUERYATTR_NAMEBUFUSED) != 0); client->query.attributes &= ~NS_QUERYATTR_NAMEBUFUSED; } dns_message_puttempname(client->message, namep); - CTRACE("query_releasename: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_releasename: done"); } static inline dns_name_t * @@ -523,11 +535,12 @@ query_newname(ns_client_t *client, isc_buffer_t *dbuf, REQUIRE((client->query.attributes & NS_QUERYATTR_NAMEBUFUSED) == 0); - CTRACE("query_newname"); + CTRACE(ISC_LOG_DEBUG(3), "query_newname"); name = NULL; result = dns_message_gettempname(client->message, &name); if (result != ISC_R_SUCCESS) { - CTRACE("query_newname: dns_message_gettempname failed: done"); + CTRACE(ISC_LOG_DEBUG(3), + "query_newname: dns_message_gettempname failed: done"); return (NULL); } isc_buffer_availableregion(dbuf, &r); @@ -536,7 +549,7 @@ query_newname(ns_client_t *client, isc_buffer_t *dbuf, dns_name_setbuffer(name, nbuf); client->query.attributes |= NS_QUERYATTR_NAMEBUFUSED; - CTRACE("query_newname: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_newname: done"); return (name); } @@ -545,17 +558,18 @@ query_newrdataset(ns_client_t *client) { dns_rdataset_t *rdataset; isc_result_t result; - CTRACE("query_newrdataset"); + CTRACE(ISC_LOG_DEBUG(3), "query_newrdataset"); rdataset = NULL; result = dns_message_gettemprdataset(client->message, &rdataset); if (result != ISC_R_SUCCESS) { - CTRACE("query_newrdataset: " + CTRACE(ISC_LOG_DEBUG(3), + "query_newrdataset: " "dns_message_gettemprdataset failed: done"); return (NULL); } dns_rdataset_init(rdataset); - CTRACE("query_newrdataset: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_newrdataset: done"); return (rdataset); } @@ -727,8 +741,10 @@ query_validatezonedb(ns_client_t *client, dns_name_t *name, * Get the current version of this database. */ dbversion = query_findversion(client, db); - if (dbversion == NULL) + if (dbversion == NULL) { + CTRACE(ISC_LOG_ERROR, "unable to get db version"); return (DNS_R_SERVFAIL); + } if ((options & DNS_GETDB_IGNOREACL) != 0) goto approved; @@ -1168,7 +1184,7 @@ query_isduplicate(ns_client_t *client, dns_name_t *name, dns_name_t *mname = NULL; isc_result_t result; - CTRACE("query_isduplicate"); + CTRACE(ISC_LOG_DEBUG(3), "query_isduplicate"); for (section = DNS_SECTION_ANSWER; section <= DNS_SECTION_ADDITIONAL; @@ -1179,7 +1195,8 @@ query_isduplicate(ns_client_t *client, dns_name_t *name, /* * We've already got this RRset in the response. */ - CTRACE("query_isduplicate: true: done"); + CTRACE(ISC_LOG_DEBUG(3), + "query_isduplicate: true: done"); return (ISC_TRUE); } else if (result == DNS_R_NXRRSET) { /* @@ -1195,7 +1212,7 @@ query_isduplicate(ns_client_t *client, dns_name_t *name, if (mnamep != NULL) *mnamep = mname; - CTRACE("query_isduplicate: false: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_isduplicate: false: done"); return (ISC_FALSE); } @@ -1222,7 +1239,7 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { if (!WANTDNSSEC(client) && dns_rdatatype_isdnssec(qtype)) return (ISC_R_SUCCESS); - CTRACE("query_addadditional"); + CTRACE(ISC_LOG_DEBUG(3), "query_addadditional"); /* * Initialization. @@ -1278,7 +1295,7 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { if (result != ISC_R_SUCCESS) goto try_cache; - CTRACE("query_addadditional: db_find"); + CTRACE(ISC_LOG_DEBUG(3), "query_addadditional: db_find"); /* * Since we are looking for authoritative data, we do not set @@ -1547,7 +1564,7 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { } addname: - CTRACE("query_addadditional: addname"); + CTRACE(ISC_LOG_DEBUG(3), "query_addadditional: addname"); /* * If we haven't added anything, then we're done. */ @@ -1587,7 +1604,7 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { } cleanup: - CTRACE("query_addadditional: cleanup"); + CTRACE(ISC_LOG_DEBUG(3), "query_addadditional: cleanup"); query_putrdataset(client, &rdataset); if (sigrdataset != NULL) query_putrdataset(client, &sigrdataset); @@ -1600,7 +1617,7 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { if (zone != NULL) dns_zone_detach(&zone); - CTRACE("query_addadditional: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_addadditional: done"); return (eresult); } @@ -1718,7 +1735,7 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { dns_clientinfomethods_init(&cm, ns_client_sourceip); dns_clientinfo_init(&ci, client); - CTRACE("query_addadditional2"); + CTRACE(ISC_LOG_DEBUG(3), "query_addadditional2"); /* * We treat type A additional section processing as if it @@ -1750,14 +1767,16 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { if (result != ISC_R_SUCCESS) goto findauthdb; if (zone == NULL) { - CTRACE("query_addadditional2: auth zone not found"); + CTRACE(ISC_LOG_DEBUG(3), + "query_addadditional2: auth zone not found"); goto try_cache; } /* Is the cached DB up-to-date? */ result = query_iscachevalid(zone, cdb, NULL, cversion); if (result != ISC_R_SUCCESS) { - CTRACE("query_addadditional2: old auth additional cache"); + CTRACE(ISC_LOG_DEBUG(3), + "query_addadditional2: old auth additional cache"); query_discardcache(client, rdataset_base, additionaltype, type, &zone, &cdb, &cversion, &cnode, &cfname); @@ -1770,7 +1789,8 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { * ACL, since the result (not using this zone) would be same * regardless of the result. */ - CTRACE("query_addadditional2: negative auth additional cache"); + CTRACE(ISC_LOG_DEBUG(3), + "query_addadditional2: negative auth additional cache"); dns_db_closeversion(cdb, &cversion, ISC_FALSE); dns_db_detach(&cdb); dns_zone_detach(&zone); @@ -1787,7 +1807,8 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { } /* We've got an active cache. */ - CTRACE("query_addadditional2: auth additional cache"); + CTRACE(ISC_LOG_DEBUG(3), + "query_addadditional2: auth additional cache"); dns_db_closeversion(cdb, &cversion, ISC_FALSE); db = cdb; node = cnode; @@ -1811,7 +1832,7 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { goto try_cache; } - CTRACE("query_addadditional2: db_find"); + CTRACE(ISC_LOG_DEBUG(3), "query_addadditional2: db_find"); /* * Since we are looking for authoritative data, we do not set @@ -1896,7 +1917,8 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { result = query_iscachevalid(zone, cdb, client->query.gluedb, cversion); if (result != ISC_R_SUCCESS) { - CTRACE("query_addadditional2: old glue additional cache"); + CTRACE(ISC_LOG_DEBUG(3), + "query_addadditional2: old glue additional cache"); query_discardcache(client, rdataset_base, additionaltype, type, &zone, &cdb, &cversion, &cnode, &cfname); @@ -1905,14 +1927,15 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { if (cnode == NULL) { /* We have a negative cache. */ - CTRACE("query_addadditional2: negative glue additional cache"); + CTRACE(ISC_LOG_DEBUG(3), + "query_addadditional2: negative glue additional cache"); dns_db_closeversion(cdb, &cversion, ISC_FALSE); dns_db_detach(&cdb); goto cleanup; } /* Cache hit. */ - CTRACE("query_addadditional2: glue additional cache"); + CTRACE(ISC_LOG_DEBUG(3), "query_addadditional2: glue additional cache"); dns_db_closeversion(cdb, &cversion, ISC_FALSE); db = cdb; node = cnode; @@ -2095,7 +2118,7 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { } } - CTRACE("query_addadditional2: addname"); + CTRACE(ISC_LOG_DEBUG(3), "query_addadditional2: addname"); /* * If we haven't added anything, then we're done. @@ -2114,7 +2137,7 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { fname = NULL; cleanup: - CTRACE("query_addadditional2: cleanup"); + CTRACE(ISC_LOG_DEBUG(3), "query_addadditional2: cleanup"); if (rdataset != NULL) query_putrdataset(client, &rdataset); @@ -2133,7 +2156,7 @@ query_addadditional2(void *arg, dns_name_t *name, dns_rdatatype_t qtype) { if (zone != NULL) dns_zone_detach(&zone); - CTRACE("query_addadditional2: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_addadditional2: done"); return (eresult); } @@ -2148,7 +2171,7 @@ query_addrdataset(ns_client_t *client, dns_name_t *fname, * 'fname', a name in the response message for 'client'. */ - CTRACE("query_addrdataset"); + CTRACE(ISC_LOG_DEBUG(3), "query_addrdataset"); ISC_LIST_APPEND(fname->list, rdataset, link); @@ -2170,7 +2193,7 @@ query_addrdataset(ns_client_t *client, dns_name_t *fname, additionalctx.rdataset = rdataset; (void)dns_rdataset_additionaldata(rdataset, query_addadditional2, &additionalctx); - CTRACE("query_addrdataset: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_addrdataset: done"); } static isc_result_t @@ -2202,7 +2225,7 @@ query_dns64(ns_client_t *client, dns_name_t **namep, dns_rdataset_t *rdataset, * stored in 'dbuf'. In this case, query_addrrset() guarantees that * when it returns the name will either have been kept or released. */ - CTRACE("query_dns64"); + CTRACE(ISC_LOG_DEBUG(3), "query_dns64"); name = *namep; mname = NULL; mrdataset = NULL; @@ -2219,7 +2242,8 @@ query_dns64(ns_client_t *client, dns_name_t **namep, dns_rdataset_t *rdataset, * We've already got an RRset of the given name and type. * There's nothing else to do; */ - CTRACE("query_dns64: dns_message_findname succeeded: done"); + CTRACE(ISC_LOG_DEBUG(3), + "query_dns64: dns_message_findname succeeded: done"); if (dbuf != NULL) query_releasename(client, namep); return (ISC_R_SUCCESS); @@ -2349,7 +2373,7 @@ query_dns64(ns_client_t *client, dns_name_t **namep, dns_rdataset_t *rdataset, dns_message_puttemprdatalist(client->message, &dns64_rdatalist); } - CTRACE("query_dns64: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_dns64: done"); return (result); } @@ -2368,7 +2392,7 @@ query_filter64(ns_client_t *client, dns_name_t **namep, isc_result_t result; unsigned int i; - CTRACE("query_filter64"); + CTRACE(ISC_LOG_DEBUG(3), "query_filter64"); INSIST(client->query.dns64_aaaaok != NULL); INSIST(client->query.dns64_aaaaoklen == dns_rdataset_count(rdataset)); @@ -2388,7 +2412,8 @@ query_filter64(ns_client_t *client, dns_name_t **namep, * We've already got an RRset of the given name and type. * There's nothing else to do; */ - CTRACE("query_filter64: dns_message_findname succeeded: done"); + CTRACE(ISC_LOG_DEBUG(3), + "query_filter64: dns_message_findname succeeded: done"); if (dbuf != NULL) query_releasename(client, namep); return; @@ -2487,7 +2512,7 @@ query_filter64(ns_client_t *client, dns_name_t **namep, if (dbuf != NULL) query_releasename(client, &name); - CTRACE("query_filter64: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_filter64: done"); } static void @@ -2509,7 +2534,7 @@ query_addrrset(ns_client_t *client, dns_name_t **namep, * stored in 'dbuf'. In this case, query_addrrset() guarantees that * when it returns the name will either have been kept or released. */ - CTRACE("query_addrrset"); + CTRACE(ISC_LOG_DEBUG(3), "query_addrrset"); name = *namep; rdataset = *rdatasetp; if (sigrdatasetp != NULL) @@ -2525,7 +2550,8 @@ query_addrrset(ns_client_t *client, dns_name_t **namep, /* * We've already got an RRset of the given name and type. */ - CTRACE("query_addrrset: dns_message_findname succeeded: done"); + CTRACE(ISC_LOG_DEBUG(3), + "query_addrrset: dns_message_findname succeeded: done"); if (dbuf != NULL) query_releasename(client, namep); if ((rdataset->attributes & DNS_RDATASETATTR_REQUIRED) != 0) @@ -2564,7 +2590,7 @@ query_addrrset(ns_client_t *client, dns_name_t **namep, ISC_LIST_APPEND(mname->list, sigrdataset, link); *sigrdatasetp = NULL; } - CTRACE("query_addrrset: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_addrrset: done"); } static inline isc_result_t @@ -2580,7 +2606,7 @@ query_addsoa(ns_client_t *client, dns_db_t *db, dns_dbversion_t *version, dns_clientinfomethods_t cm; dns_clientinfo_t ci; - CTRACE("query_addsoa"); + CTRACE(ISC_LOG_DEBUG(3), "query_addsoa"); /* * Initialization. */ @@ -2608,12 +2634,14 @@ query_addsoa(ns_client_t *client, dns_db_t *db, dns_dbversion_t *version, dns_name_clone(dns_db_origin(db), name); rdataset = query_newrdataset(client); if (rdataset == NULL) { + CTRACE(ISC_LOG_ERROR, "unable to allocate rdataset"); eresult = DNS_R_SERVFAIL; goto cleanup; } if (WANTDNSSEC(client) && dns_db_issecure(db)) { sigrdataset = query_newrdataset(client); if (sigrdataset == NULL) { + CTRACE(ISC_LOG_ERROR, "unable to allocate sigrdataset"); eresult = DNS_R_SERVFAIL; goto cleanup; } @@ -2643,6 +2671,7 @@ query_addsoa(ns_client_t *client, dns_db_t *db, dns_dbversion_t *version, * This is bad. We tried to get the SOA RR at the zone top * and it didn't work! */ + CTRACE(ISC_LOG_ERROR, "unable to find SOA RR at zone apex"); eresult = DNS_R_SERVFAIL; } else { /* @@ -2707,7 +2736,7 @@ query_addns(ns_client_t *client, dns_db_t *db, dns_dbversion_t *version) { dns_clientinfomethods_t cm; dns_clientinfo_t ci; - CTRACE("query_addns"); + CTRACE(ISC_LOG_DEBUG(3), "query_addns"); /* * Initialization. */ @@ -2725,21 +2754,24 @@ query_addns(ns_client_t *client, dns_db_t *db, dns_dbversion_t *version) { */ result = dns_message_gettempname(client->message, &name); if (result != ISC_R_SUCCESS) { - CTRACE("query_addns: dns_message_gettempname failed: done"); + CTRACE(ISC_LOG_DEBUG(3), + "query_addns: dns_message_gettempname failed: done"); return (result); } dns_name_init(name, NULL); dns_name_clone(dns_db_origin(db), name); rdataset = query_newrdataset(client); if (rdataset == NULL) { - CTRACE("query_addns: query_newrdataset failed"); + CTRACE(ISC_LOG_ERROR, + "query_addns: query_newrdataset failed"); eresult = DNS_R_SERVFAIL; goto cleanup; } if (WANTDNSSEC(client) && dns_db_issecure(db)) { sigrdataset = query_newrdataset(client); if (sigrdataset == NULL) { - CTRACE("query_addns: query_newrdataset failed"); + CTRACE(ISC_LOG_ERROR, + "query_addns: query_newrdataset failed"); eresult = DNS_R_SERVFAIL; goto cleanup; } @@ -2754,14 +2786,15 @@ query_addns(ns_client_t *client, dns_db_t *db, dns_dbversion_t *version) { dns_rdatatype_ns, 0, client->now, rdataset, sigrdataset); } else { - CTRACE("query_addns: calling dns_db_find"); + CTRACE(ISC_LOG_DEBUG(3), "query_addns: calling dns_db_find"); result = dns_db_findext(db, name, NULL, dns_rdatatype_ns, client->query.dboptions, 0, &node, fname, &cm, &ci, rdataset, sigrdataset); - CTRACE("query_addns: dns_db_find complete"); + CTRACE(ISC_LOG_DEBUG(3), "query_addns: dns_db_find complete"); } if (result != ISC_R_SUCCESS) { - CTRACE("query_addns: " + CTRACE(ISC_LOG_ERROR, + "query_addns: " "dns_db_findrdataset or dns_db_find failed"); /* * This is bad. We tried to get the NS rdataset at the zone @@ -2778,7 +2811,7 @@ query_addns(ns_client_t *client, dns_db_t *db, dns_dbversion_t *version) { } cleanup: - CTRACE("query_addns: cleanup"); + CTRACE(ISC_LOG_DEBUG(3), "query_addns: cleanup"); query_putrdataset(client, &rdataset); if (sigrdataset != NULL) query_putrdataset(client, &sigrdataset); @@ -2787,7 +2820,7 @@ query_addns(ns_client_t *client, dns_db_t *db, dns_dbversion_t *version) { if (node != NULL) dns_db_detachnode(db, &node); - CTRACE("query_addns: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_addns: done"); return (eresult); } @@ -2839,7 +2872,6 @@ query_add_cname(ns_client_t *client, dns_name_t *qname, dns_name_t *tname, } dns_rdataset_init(rdataset); rdatalist->type = dns_rdatatype_cname; - rdatalist->covers = 0; rdatalist->rdclass = client->message->rdclass; rdatalist->ttl = ttl; @@ -3055,7 +3087,7 @@ query_addbestns(ns_client_t *client) { dns_clientinfomethods_t cm; dns_clientinfo_t ci; - CTRACE("query_addbestns"); + CTRACE(ISC_LOG_DEBUG(3), "query_addbestns"); fname = NULL; zfname = NULL; rdataset = NULL; @@ -3260,7 +3292,7 @@ query_addds(ns_client_t *client, dns_db_t *db, dns_dbnode_t *node, isc_result_t result; unsigned int count; - CTRACE("query_addds"); + CTRACE(ISC_LOG_DEBUG(3), "query_addds"); rname = NULL; rdataset = NULL; sigrdataset = NULL; @@ -3390,7 +3422,7 @@ query_addwildcardproof(ns_client_t *client, dns_db_t *db, dns_clientinfomethods_t cm; dns_clientinfo_t ci; - CTRACE("query_addwildcardproof"); + CTRACE(ISC_LOG_DEBUG(3), "query_addwildcardproof"); fname = NULL; rdataset = NULL; sigrdataset = NULL; @@ -3754,9 +3786,10 @@ query_resume(isc_task_t *task, isc_event_t *event) { if (devent->sigrdataset != NULL) query_putrdataset(client, &devent->sigrdataset); isc_event_free(&event); - if (fetch_canceled) + if (fetch_canceled) { + CTRACE(ISC_LOG_ERROR, "fetch cancelled"); query_error(client, DNS_R_SERVFAIL, __LINE__); - else + } else query_next(client, ISC_R_CANCELED); /* * This may destroy the client. @@ -3939,8 +3972,11 @@ rpz_ready(ns_client_t *client, dns_zone_t **zonep, dns_db_t **dbp, rpz_clean(zonep, dbp, nodep, rdatasetp); if (*rdatasetp == NULL) { *rdatasetp = query_newrdataset(client); - if (*rdatasetp == NULL) + if (*rdatasetp == NULL) { + CTRACE(ISC_LOG_ERROR, + "rpz_ready: query_newrdataset failed"); return (DNS_R_SERVFAIL); + } } return (ISC_R_SUCCESS); } @@ -4005,6 +4041,7 @@ rpz_rrset_find(ns_client_t *client, dns_rpz_type_t rpz_type, st->r.r_rdataset = NULL; result = st->r.r_result; if (result == DNS_R_DELEGATION) { + CTRACE(ISC_LOG_ERROR, "RPZ recursing"); rpz_log_fail(client, DNS_RPZ_ERROR_LEVEL, rpz_type, name, "rpz_rrset_find(1) ", result); @@ -4295,6 +4332,8 @@ rpz_find(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qnamef, dns_db_detachnode(*dbp, nodep); rpz_log_fail(client, DNS_RPZ_ERROR_LEVEL, rpz_type, qnamef, "allrdatasets() ", result); + CTRACE(ISC_LOG_ERROR, + "rpz_find_p: allrdatasets failed"); *policyp = DNS_RPZ_POLICY_ERROR; return (DNS_R_SERVFAIL); } @@ -4313,6 +4352,9 @@ rpz_find(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qnamef, rpz_log_fail(client, DNS_RPZ_ERROR_LEVEL, rpz_type, qnamef, "rdatasetiter ", result); + CTRACE(ISC_LOG_ERROR, + "rpz_find_p: rdatasetiter_destroy " + "failed"); *policyp = DNS_RPZ_POLICY_ERROR; return (DNS_R_SERVFAIL); } @@ -4380,6 +4422,8 @@ rpz_find(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qnamef, dns_zone_detach(zonep); rpz_log_fail(client, DNS_RPZ_ERROR_LEVEL, rpz_type, qnamef, "", result); + CTRACE(ISC_LOG_ERROR, + "rpz_find_p: unexpected result"); return (DNS_R_SERVFAIL); } @@ -4845,6 +4889,7 @@ cleanup: rpz_match_clear(st); } if (st->m.policy == DNS_RPZ_POLICY_ERROR) { + CTRACE(ISC_LOG_ERROR, "SERVFAIL due to RPZ policy"); st->m.type = DNS_RPZ_TYPE_BAD; result = DNS_R_SERVFAIL; } @@ -5072,7 +5117,7 @@ query_addnoqnameproof(ns_client_t *client, dns_rdataset_t *rdataset) { dns_rdataset_t *neg, *negsig; isc_result_t result = ISC_R_NOMEMORY; - CTRACE("query_addnoqnameproof"); + CTRACE(ISC_LOG_DEBUG(3), "query_addnoqnameproof"); fname = NULL; neg = NULL; @@ -5478,7 +5523,7 @@ redirect(ns_client_t *client, dns_name_t *name, dns_rdataset_t *rdataset, dns_clientinfo_t ci; ns_dbversion_t *dbversion; - CTRACE("redirect"); + CTRACE(ISC_LOG_DEBUG(3), "redirect"); if (client->view->redirect == NULL) return (ISC_R_NOTFOUND); @@ -5552,7 +5597,7 @@ redirect(ns_client_t *client, dns_name_t *name, dns_rdataset_t *rdataset, return (ISC_R_NOTFOUND); } - CTRACE("redirect: found data: done"); + CTRACE(ISC_LOG_DEBUG(3), "redirect: found data: done"); dns_name_copy(found, name, NULL); if (dns_rdataset_isassociated(rdataset)) dns_rdataset_disassociate(rdataset); @@ -5618,11 +5663,12 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) isc_boolean_t redirected = ISC_FALSE; dns_clientinfomethods_t cm; dns_clientinfo_t ci; + char errmsg[256]; isc_boolean_t associated; dns_section_t section; dns_ttl_t ttl; - CTRACE("query_find"); + CTRACE(ISC_LOG_DEBUG(3), "query_find"); /* * One-time initialization. @@ -5714,11 +5760,15 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) */ dbuf = query_getnamebuf(client); if (dbuf == NULL) { + CTRACE(ISC_LOG_ERROR, + "query_find: query_getnamebuf failed (1)"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } fname = query_newname(client, dbuf, &b); if (fname == NULL) { + CTRACE(ISC_LOG_ERROR, + "query_find: query_newname failed (1)"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } @@ -5730,6 +5780,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) } result = dns_name_copy(tname, fname, NULL); if (result != ISC_R_SUCCESS) { + CTRACE(ISC_LOG_ERROR, + "query_find: dns_name_copy failed"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } @@ -5758,7 +5810,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) type = qtype; restart: - CTRACE("query_find: restart"); + CTRACE(ISC_LOG_DEBUG(3), "query_find: restart"); want_restart = ISC_FALSE; authoritative = ISC_FALSE; version = NULL; @@ -5834,8 +5886,11 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) inc_stats(client, dns_nsstatscounter_authrej); if (!PARTIALANSWER(client)) QUERY_ERROR(DNS_R_REFUSED); - } else + } else { + CTRACE(ISC_LOG_ERROR, + "query_find: query_getdb failed"); QUERY_ERROR(DNS_R_SERVFAIL); + } goto cleanup; } @@ -5862,24 +5917,30 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) } db_find: - CTRACE("query_find: db_find"); + CTRACE(ISC_LOG_DEBUG(3), "query_find: db_find"); /* * We'll need some resources... */ dbuf = query_getnamebuf(client); if (dbuf == NULL) { + CTRACE(ISC_LOG_ERROR, + "query_find: query_getnamebuf failed (2)"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } fname = query_newname(client, dbuf, &b); rdataset = query_newrdataset(client); if (fname == NULL || rdataset == NULL) { + CTRACE(ISC_LOG_ERROR, + "query_find: query_newname failed (2)"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } if (WANTDNSSEC(client) && (!is_zone || dns_db_issecure(db))) { sigrdataset = query_newrdataset(client); if (sigrdataset == NULL) { + CTRACE(ISC_LOG_ERROR, + "query_find: query_newrdataset failed (2)"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } @@ -5893,7 +5954,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) &node, fname, &cm, &ci, rdataset, sigrdataset); resume: - CTRACE("query_find: resume"); + CTRACE(ISC_LOG_DEBUG(3), "query_find: resume"); #ifdef USE_RRL /* @@ -6234,6 +6295,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) goto cleanup; } else { /* Unable to give root server referral. */ + CTRACE(ISC_LOG_ERROR, + "unable to give root server referral"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } @@ -6496,11 +6559,17 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) if (fname == NULL) { dbuf = query_getnamebuf(client); if (dbuf == NULL) { + CTRACE(ISC_LOG_ERROR, + "query_find: " + "query_getnamebuf failed (3)"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } fname = query_newname(client, dbuf, &b); if (fname == NULL) { + CTRACE(ISC_LOG_ERROR, + "query_find: " + "query_newname failed (3)"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } @@ -6601,6 +6670,10 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) if (fname == NULL || rdataset == NULL || sigrdataset == NULL) { + CTRACE(ISC_LOG_ERROR, + "query_find: " + "failure getting " + "closest encloser"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } @@ -6803,11 +6876,17 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) if (fname == NULL) { dbuf = query_getnamebuf(client); if (dbuf == NULL) { + CTRACE(ISC_LOG_ERROR, + "query_find: " + "query_getnamebuf failed (4)"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } fname = query_newname(client, dbuf, &b); if (fname == NULL) { + CTRACE(ISC_LOG_ERROR, + "query_find: " + "query_newname failed (4)"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } @@ -7060,6 +7139,10 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) /* * Something has gone wrong. */ + snprintf(errmsg, sizeof(errmsg) - 1, + "query_find: unexpected error after resuming: %s", + isc_result_totext(result)); + CTRACE(ISC_LOG_ERROR, errmsg); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } @@ -7107,6 +7190,8 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) rdsiter = NULL; result = dns_db_allrdatasets(db, node, version, 0, &rdsiter); if (result != ISC_R_SUCCESS) { + CTRACE(ISC_LOG_ERROR, + "query_find: type any; allrdatasets failed"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } @@ -7236,12 +7321,18 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) dns_rdatasetiter_destroy(&rdsiter); fname = query_newname(client, dbuf, &b); goto nxrrset_rrsig; - } else + } else { + CTRACE(ISC_LOG_ERROR, + "query_find: no matching rdatasets " + "in cache"); result = DNS_R_SERVFAIL; + } } dns_rdatasetiter_destroy(&rdsiter); if (result != ISC_R_NOMORE) { + CTRACE(ISC_LOG_ERROR, + "query_find: dns_rdatasetiter_destroy failed"); QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; } @@ -7431,7 +7522,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) } addauth: - CTRACE("query_find: addauth"); + CTRACE(ISC_LOG_DEBUG(3), "query_find: addauth"); /* * Add NS records to the authority section (if we haven't already * added them to the answer section). @@ -7459,7 +7550,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) dns_fixedname_name(&wildcardname), ISC_TRUE, ISC_FALSE); cleanup: - CTRACE("query_find: cleanup"); + CTRACE(ISC_LOG_DEBUG(3), "query_find: cleanup"); /* * General cleanup. */ @@ -7573,7 +7664,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) query_send(client); ns_client_detach(&client); } - CTRACE("query_find: done"); + CTRACE(ISC_LOG_DEBUG(3), "query_find: done"); return (eresult); } @@ -7661,7 +7752,7 @@ ns_query_start(ns_client_t *client) { unsigned int saved_extflags = client->extflags; unsigned int saved_flags = client->message->flags; - CTRACE("ns_query_start"); + CTRACE(ISC_LOG_DEBUG(3), "ns_query_start"); /* * Test only. diff --git a/bin/named/server.c b/bin/named/server.c index 84b4067bf400..d7d1a59fc16c 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -195,6 +195,8 @@ struct dumpcontext { isc_mem_t *mctx; isc_boolean_t dumpcache; isc_boolean_t dumpzones; + isc_boolean_t dumpadb; + isc_boolean_t dumpbad; FILE *fp; ISC_LIST(struct viewlistentry) viewlist; struct viewlistentry *view; @@ -352,6 +354,9 @@ const char *empty_zones[] = { /* Example Prefix, RFC 3849. */ "8.B.D.0.1.0.0.2.IP6.ARPA", + /* RFC 7534 */ + "EMPTY.AS112.ARPA", + NULL }; @@ -1828,18 +1833,20 @@ add_soa(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name, isc_result_t result; unsigned char buf[DNS_SOA_BUFFERSIZE]; - dns_rdataset_init(&rdataset); - dns_rdatalist_init(&rdatalist); CHECK(dns_soa_buildrdata(origin, contact, dns_db_class(db), 0, 28800, 7200, 604800, 86400, buf, &rdata)); + + dns_rdatalist_init(&rdatalist); rdatalist.type = rdata.type; - rdatalist.covers = 0; rdatalist.rdclass = rdata.rdclass; rdatalist.ttl = 86400; ISC_LIST_APPEND(rdatalist.rdata, &rdata, link); + + dns_rdataset_init(&rdataset); CHECK(dns_rdatalist_tordataset(&rdatalist, &rdataset)); CHECK(dns_db_findnode(db, name, ISC_TRUE, &node)); CHECK(dns_db_addrdataset(db, node, version, 0, &rdataset, 0, NULL)); + cleanup: if (node != NULL) dns_db_detachnode(db, &node); @@ -1861,8 +1868,6 @@ add_ns(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name, isc_buffer_init(&b, buf, sizeof(buf)); - dns_rdataset_init(&rdataset); - dns_rdatalist_init(&rdatalist); ns.common.rdtype = dns_rdatatype_ns; ns.common.rdclass = dns_db_class(db); ns.mctx = NULL; @@ -1870,14 +1875,18 @@ add_ns(dns_db_t *db, dns_dbversion_t *version, dns_name_t *name, dns_name_clone(nsname, &ns.name); CHECK(dns_rdata_fromstruct(&rdata, dns_db_class(db), dns_rdatatype_ns, &ns, &b)); + + dns_rdatalist_init(&rdatalist); rdatalist.type = rdata.type; - rdatalist.covers = 0; rdatalist.rdclass = rdata.rdclass; rdatalist.ttl = 86400; ISC_LIST_APPEND(rdatalist.rdata, &rdata, link); + + dns_rdataset_init(&rdataset); CHECK(dns_rdatalist_tordataset(&rdatalist, &rdataset)); CHECK(dns_db_findnode(db, name, ISC_TRUE, &node)); CHECK(dns_db_addrdataset(db, node, version, 0, &rdataset, 0, NULL)); + cleanup: if (node != NULL) dns_db_detachnode(db, &node); @@ -2086,6 +2095,9 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig, char **dlzargv; const cfg_obj_t *disabled; const cfg_obj_t *obj; +#ifdef ENABLE_FETCHLIMIT + const cfg_obj_t *obj2; +#endif /* ENABLE_FETCHLIMIT */ const cfg_listelt_t *element; in_port_t port; dns_cache_t *cache = NULL; @@ -2742,6 +2754,55 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig, } dns_adb_setadbsize(view->adb, max_adb_size); +#ifdef ENABLE_FETCHLIMIT + /* + * Set up ADB quotas + */ + { + isc_uint32_t fps, freq; + double low, high, discount; + + obj = NULL; + result = ns_config_get(maps, "fetches-per-server", &obj); + INSIST(result == ISC_R_SUCCESS); + obj2 = cfg_tuple_get(obj, "fetches"); + fps = cfg_obj_asuint32(obj2); + obj2 = cfg_tuple_get(obj, "response"); + if (!cfg_obj_isvoid(obj2)) { + const char *resp = cfg_obj_asstring(obj2); + isc_result_t r; + + if (strcasecmp(resp, "drop") == 0) + r = DNS_R_DROP; + else if (strcasecmp(resp, "fail") == 0) + r = DNS_R_SERVFAIL; + else + INSIST(0); + + dns_resolver_setquotaresponse(view->resolver, + dns_quotatype_server, r); + } + + obj = NULL; + result = ns_config_get(maps, "fetch-quota-params", &obj); + INSIST(result == ISC_R_SUCCESS); + + obj2 = cfg_tuple_get(obj, "frequency"); + freq = cfg_obj_asuint32(obj2); + + obj2 = cfg_tuple_get(obj, "low"); + low = (double) cfg_obj_asfixedpoint(obj2) / 100.0; + + obj2 = cfg_tuple_get(obj, "high"); + high = (double) cfg_obj_asfixedpoint(obj2) / 100.0; + + obj2 = cfg_tuple_get(obj, "discount"); + discount = (double) cfg_obj_asfixedpoint(obj2) / 100.0; + + dns_adb_setquota(view->adb, fps, freq, low, high, discount); + } +#endif /* ENABLE_FETCHLIMIT */ + /* * Set resolver's lame-ttl. */ @@ -3169,6 +3230,29 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig, INSIST(result == ISC_R_SUCCESS); dns_resolver_setmaxqueries(view->resolver, cfg_obj_asuint32(obj)); +#ifdef ENABLE_FETCHLIMIT + obj = NULL; + result = ns_config_get(maps, "fetches-per-zone", &obj); + INSIST(result == ISC_R_SUCCESS); + obj2 = cfg_tuple_get(obj, "fetches"); + dns_resolver_setfetchesperzone(view->resolver, cfg_obj_asuint32(obj2)); + obj2 = cfg_tuple_get(obj, "response"); + if (!cfg_obj_isvoid(obj2)) { + const char *resp = cfg_obj_asstring(obj2); + isc_result_t r; + + if (strcasecmp(resp, "drop") == 0) + r = DNS_R_DROP; + else if (strcasecmp(resp, "fail") == 0) + r = DNS_R_SERVFAIL; + else + INSIST(0); + + dns_resolver_setquotaresponse(view->resolver, + dns_quotatype_zone, r); + } +#endif /* ENABLE_FETCHLIMIT */ + #ifdef ALLOW_FILTER_AAAA_ON_V4 obj = NULL; result = ns_config_get(maps, "filter-aaaa-on-v4", &obj); @@ -3259,18 +3343,19 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig, obj = NULL; result = ns_config_get(maps, "root-delegation-only", &obj); - if (result == ISC_R_SUCCESS) { + if (result == ISC_R_SUCCESS) + dns_view_setrootdelonly(view, ISC_TRUE); + if (result == ISC_R_SUCCESS && ! cfg_obj_isvoid(obj)) { + const cfg_obj_t *exclude; dns_fixedname_t fixed; dns_name_t *name; - const cfg_obj_t *exclude; - - dns_view_setrootdelonly(view, ISC_TRUE); dns_fixedname_init(&fixed); name = dns_fixedname_name(&fixed); for (element = cfg_list_first(obj); element != NULL; - element = cfg_list_next(element)) { + element = cfg_list_next(element)) + { exclude = cfg_listelt_value(element); CHECK(dns_name_fromstring(name, cfg_obj_asstring(exclude), @@ -4921,6 +5006,9 @@ load_configuration(const char *filename, ns_server_t *server, ns_cachelist_t cachelist, tmpcachelist; struct cfg_context *nzctx; unsigned int maxsocks; +#ifdef ENABLE_FETCHLIMIT + isc_uint32_t softquota = 0; +#endif /* ENABLE_FETCHLIMIT */ ISC_LIST_INIT(viewlist); ISC_LIST_INIT(builtin_viewlist); @@ -5082,11 +5170,30 @@ load_configuration(const char *filename, ns_server_t *server, configure_server_quota(maps, "tcp-clients", &server->tcpquota); configure_server_quota(maps, "recursive-clients", &server->recursionquota); - if (server->recursionquota.max > 1000) + +#ifdef ENABLE_FETCHLIMIT + if (server->recursionquota.max > 1000) { + int margin = ISC_MAX(100, ns_g_cpus + 1); + if (margin > server->recursionquota.max - 100) { + isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, + NS_LOGMODULE_SERVER, ISC_LOG_ERROR, + "'recursive-clients %d' too low when " + "running with %d worker threads", + server->recursionquota.max, ns_g_cpus); + CHECK(ISC_R_RANGE); + } + softquota = server->recursionquota.max - margin; + } else + softquota = (server->recursionquota.max * 90) / 100; + + isc_quota_soft(&server->recursionquota, softquota); +#else + if (server->recursionquota.max > 1000) { isc_quota_soft(&server->recursionquota, server->recursionquota.max - 100); - else + } else isc_quota_soft(&server->recursionquota, 0); +#endif /* !ENABLE_FETCHLIMIT */ CHECK(configure_view_acl(NULL, config, "blackhole", NULL, ns_g_aclconfctx, ns_g_mctx, @@ -5784,6 +5891,8 @@ load_configuration(const char *filename, ns_server_t *server, if (view != NULL) dns_view_detach(&view); + ISC_LIST_APPENDLIST(viewlist, builtin_viewlist, link); + /* * This cleans up either the old production view list * or our temporary list depending on whether they @@ -6464,25 +6573,6 @@ reload(ns_server_t *server) { return (result); } -static void -reconfig(ns_server_t *server) { - isc_result_t result; - CHECK(loadconfig(server)); - - result = load_new_zones(server, ISC_FALSE); - if (result == ISC_R_SUCCESS) - isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, - NS_LOGMODULE_SERVER, ISC_LOG_INFO, - "any newly configured zones are now loaded"); - else - isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, - NS_LOGMODULE_SERVER, ISC_LOG_ERROR, - "loading new zones failed: %s", - isc_result_totext(result)); - - cleanup: ; -} - /* * Handle a reload event (from SIGHUP). */ @@ -6720,11 +6810,23 @@ ns_server_reloadcommand(ns_server_t *server, char *args, isc_buffer_t *text) { * Act on a "reconfig" command from the command channel. */ isc_result_t -ns_server_reconfigcommand(ns_server_t *server, char *args) { - UNUSED(args); +ns_server_reconfigcommand(ns_server_t *server) { + isc_result_t result; - reconfig(server); - return (ISC_R_SUCCESS); + CHECK(loadconfig(server)); + + result = load_new_zones(server, ISC_FALSE); + if (result == ISC_R_SUCCESS) + isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, + NS_LOGMODULE_SERVER, ISC_LOG_INFO, + "any newly configured zones are now loaded"); + else + isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, + NS_LOGMODULE_SERVER, ISC_LOG_ERROR, + "loading new zones failed: %s", + isc_result_totext(result)); +cleanup: + return (result); } /* @@ -7061,10 +7163,17 @@ dumpdone(void *arg, isc_result_t result) { goto cleanup; } } + + if ((dctx->dumpadb || dctx->dumpbad) && + dctx->cache == NULL && dctx->view->view->cachedb != NULL) + dns_db_attach(dctx->view->view->cachedb, &dctx->cache); + if (dctx->cache != NULL) { - dns_adb_dump(dctx->view->view->adb, dctx->fp); - dns_resolver_printbadcache(dctx->view->view->resolver, - dctx->fp); + if (dctx->dumpadb) + dns_adb_dump(dctx->view->view->adb, dctx->fp); + if (dctx->dumpbad) + dns_resolver_printbadcache(dctx->view->view->resolver, + dctx->fp); dns_db_detach(&dctx->cache); } if (dctx->dumpzones) { @@ -7148,6 +7257,8 @@ ns_server_dumpdb(ns_server_t *server, char *args) { dctx->mctx = server->mctx; dctx->dumpcache = ISC_TRUE; + dctx->dumpadb = ISC_TRUE; + dctx->dumpbad = ISC_TRUE; dctx->dumpzones = ISC_FALSE; dctx->fp = NULL; ISC_LIST_INIT(dctx->viewlist); @@ -7171,17 +7282,31 @@ ns_server_dumpdb(ns_server_t *server, char *args) { ptr = next_token(&args, " \t"); if (ptr != NULL && strcmp(ptr, "-all") == 0) { + /* also dump zones */ dctx->dumpzones = ISC_TRUE; - dctx->dumpcache = ISC_TRUE; ptr = next_token(&args, " \t"); } else if (ptr != NULL && strcmp(ptr, "-cache") == 0) { - dctx->dumpzones = ISC_FALSE; - dctx->dumpcache = ISC_TRUE; + /* this is the default */ ptr = next_token(&args, " \t"); } else if (ptr != NULL && strcmp(ptr, "-zones") == 0) { + /* only dump zones, suppress caches */ + dctx->dumpadb = ISC_FALSE; + dctx->dumpbad = ISC_FALSE; + dctx->dumpcache = ISC_FALSE; dctx->dumpzones = ISC_TRUE; + ptr = next_token(&args, " \t"); +#ifdef ENABLE_FETCHLIMIT + } else if (ptr != NULL && strcmp(ptr, "-adb") == 0) { + /* only dump adb, suppress other caches */ + dctx->dumpbad = ISC_FALSE; dctx->dumpcache = ISC_FALSE; ptr = next_token(&args, " \t"); + } else if (ptr != NULL && strcmp(ptr, "-bad") == 0) { + /* only dump badcache, suppress other caches */ + dctx->dumpadb = ISC_FALSE; + dctx->dumpcache = ISC_FALSE; + ptr = next_token(&args, " \t"); +#endif /* ENABLE_FETCHLIMIT */ } nextview: @@ -7275,11 +7400,26 @@ isc_result_t ns_server_dumprecursing(ns_server_t *server) { FILE *fp = NULL; isc_result_t result; +#ifdef ENABLE_FETCHLIMIT + dns_view_t *view; +#endif /* ENABLE_FETCHLIMIT */ CHECKMF(isc_stdio_open(server->recfile, "w", &fp), "could not open dump file", server->recfile); - fprintf(fp,";\n; Recursing Queries\n;\n"); + fprintf(fp, ";\n; Recursing Queries\n;\n"); ns_interfacemgr_dumprecursing(fp, server->interfacemgr); + +#ifdef ENABLE_FETCHLIMIT + for (view = ISC_LIST_HEAD(server->viewlist); + view != NULL; + view = ISC_LIST_NEXT(view, link)) + { + fprintf(fp, ";\n; Active fetch domains [view: %s]\n;\n", + view->name); + dns_resolver_dumpfetches(view->resolver, fp); + } +#endif /* ENABLE_FETCHLIMIT */ + fprintf(fp, "; Dump complete\n"); cleanup: @@ -7632,7 +7772,7 @@ ns_server_status(ns_server_t *server, isc_buffer_t *text) { n = snprintf((char *)isc_buffer_used(text), isc_buffer_availablelength(text), - "version: %s%s%s%s <id:%s>\n" + "version: %s %s%s%s <id:%s>%s%s%s\n" #ifdef ISC_PLATFORM_USETHREADS "CPUs found: %u\n" "worker threads: %u\n" @@ -7647,7 +7787,9 @@ ns_server_status(ns_server_t *server, isc_buffer_t *text) { "recursive clients: %d/%d/%d\n" "tcp clients: %d/%d\n" "server is up and running", - ns_g_version, ob, alt, cb, ns_g_srcid, + ns_g_product, ns_g_version, + (*ns_g_description != '\0') ? " " : "", + ns_g_description, ns_g_srcid, ob, alt, cb, #ifdef ISC_PLATFORM_USETHREADS ns_g_cpus_detected, ns_g_cpus, ns_g_udpdisp, #endif diff --git a/bin/named/statschannel.c b/bin/named/statschannel.c index 8ec08d7b1959..4bfd52176a9a 100644 --- a/bin/named/statschannel.c +++ b/bin/named/statschannel.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2008-2015 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 @@ -14,8 +14,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: statschannel.c,v 1.28 2011/03/12 04:59:46 tbox Exp $ */ - /*! \file */ #include <config.h> @@ -123,6 +121,8 @@ set_desc(int counter, int maxcounter, const char *fdesc, const char **fdescs, const char *xdesc, const char **xdescs) { REQUIRE(counter < maxcounter); +if (fdescs[counter] != NULL) +fprintf(stderr, "fdescs[%d] == %s\n", counter, fdescs[counter]); REQUIRE(fdescs[counter] == NULL); #ifdef HAVE_LIBXML2 REQUIRE(xdescs[counter] == NULL); @@ -168,7 +168,7 @@ init_desc(void) { SET_NSSTATDESC(sig0in, "requests with SIG(0) received", "ReqSIG0"); SET_NSSTATDESC(invalidsig, "requests with invalid signature", "ReqBadSIG"); - SET_NSSTATDESC(tcp, "TCP requests received", "ReqTCP"); + SET_NSSTATDESC(requesttcp, "TCP requests received", "ReqTCP"); SET_NSSTATDESC(authrej, "auth queries rejected", "AuthQryRej"); SET_NSSTATDESC(recurserej, "recursive queries rejected", "RecQryRej"); SET_NSSTATDESC(xfrrej, "transfer requests rejected", "XfrRej"); @@ -207,14 +207,32 @@ init_desc(void) { SET_NSSTATDESC(updatebadprereq, "updates rejected due to prerequisite failure", "UpdateBadPrereq"); - SET_NSSTATDESC(rpz_rewrites, "response policy zone rewrites", - "RPZRewrites"); -#ifdef USE_RRL + SET_NSSTATDESC(recursclients, "recursing clients", + "RecursClients"); + SET_NSSTATDESC(dns64, "queries answered by DNS64", "DNS64"); SET_NSSTATDESC(ratedropped, "responses dropped for rate limits", "RateDropped"); SET_NSSTATDESC(rateslipped, "responses truncated for rate limits", "RateSlipped"); -#endif /* USE_RRL */ + SET_NSSTATDESC(rpz_rewrites, "response policy zone rewrites", + "RPZRewrites"); + SET_NSSTATDESC(udp, "UDP queries received", "QryUDP"); + SET_NSSTATDESC(tcp, "TCP queries received", "QryTCP"); + SET_NSSTATDESC(nsidopt, "NSID option received", "NSIDOpt"); + SET_NSSTATDESC(expireopt, "Expire option received", "ExpireOpt"); + SET_NSSTATDESC(otheropt, "Other EDNS option received", "OtherOpt"); + SET_NSSTATDESC(sitopt, "source identity token option received", + "SitOpt"); + SET_NSSTATDESC(sitnew, "new source identity token requested", + "SitNew"); + SET_NSSTATDESC(sitbadsize, "source identity token - bad size", + "SitBadSize"); + SET_NSSTATDESC(sitbadtime, "source identity token - bad time", + "SitBadTime"); + SET_NSSTATDESC(sitnomatch, "source identity token - no match", + "SitNoMatch"); + SET_NSSTATDESC(sitmatch, "source identity token - match", "SitMatch"); + SET_NSSTATDESC(ecsopt, "EDNS client subnet option recieved", "ECSOpt"); INSIST(i == dns_nsstatscounter_max); /* Initialize resolver statistics */ @@ -285,6 +303,10 @@ init_desc(void) { SET_RESSTATDESC(queryrtt5, "queries with RTT > " DNS_RESOLVER_QRYRTTCLASS4STR "ms", "QryRTT" DNS_RESOLVER_QRYRTTCLASS4STR "+"); + SET_RESSTATDESC(zonequota, "spilled due to zone quota", "ZoneQuota"); + SET_RESSTATDESC(serverquota, "spilled due to server quota", + "ServerQuota"); + INSIST(i == dns_resstatscounter_max); /* Initialize zone statistics */ @@ -495,7 +517,7 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg, const char *category, const char **desc, int ncounters, int *indices, isc_uint64_t *values, int options) { - int i, index; + int i, idx; isc_uint64_t value; stats_dumparg_t dumparg; FILE *fp; @@ -517,8 +539,8 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg, isc_stats_dump(stats, generalstat_dump, &dumparg, options); for (i = 0; i < ncounters; i++) { - index = indices[i]; - value = values[index]; + idx = indices[i]; + value = values[idx]; if (value == 0 && (options & ISC_STATSDUMP_VERBOSE) == 0) continue; @@ -527,7 +549,7 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg, case statsformat_file: fp = arg; fprintf(fp, "%20" ISC_PRINT_QUADFORMAT "u %s\n", - value, desc[index]); + value, desc[idx]); break; case statsformat_xml: #ifdef HAVE_LIBXML2 @@ -545,7 +567,7 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg, "name")); TRY0(xmlTextWriterWriteString(writer, ISC_XMLCHAR - desc[index])); + desc[i])); TRY0(xmlTextWriterEndElement(writer)); /* </name> */ @@ -569,7 +591,7 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg, ISC_XMLCHAR "name", ISC_XMLCHAR - desc[index])); + desc[i])); TRY0(xmlTextWriterWriteFormatString(writer, "%" ISC_PRINT_QUADFORMAT "u", value)); TRY0(xmlTextWriterEndElement(writer)); @@ -587,7 +609,7 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg, "name")); TRY0(xmlTextWriterWriteString(writer, ISC_XMLCHAR - desc[index])); + desc[idx])); TRY0(xmlTextWriterEndElement(writer)); /* name */ TRY0(xmlTextWriterStartElement(writer, @@ -596,7 +618,7 @@ dump_counters(isc_stats_t *stats, statsformat_t type, void *arg, } else { TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR - desc[index])); + desc[idx])); } TRY0(xmlTextWriterWriteFormatString(writer, "%" @@ -893,7 +915,6 @@ static isc_result_t zone_xmlrender(dns_zone_t *zone, void *arg) { isc_result_t result; char buf[1024 + 32]; /* sufficiently large for zone name and class */ - char *zone_name_only = NULL; dns_rdataclass_t rdclass; isc_uint32_t serial; xmlTextWriterPtr writer = arg; @@ -912,13 +933,11 @@ zone_xmlrender(dns_zone_t *zone, void *arg) { dumparg.arg = writer; TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "zone")); - dns_zone_name(zone, buf, sizeof(buf)); - zone_name_only = strtok(buf, "/"); - if(zone_name_only == NULL) - zone_name_only = buf; + dns_zone_nameonly(zone, buf, sizeof(buf)); TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "name", - ISC_XMLCHAR zone_name_only)); + ISC_XMLCHAR buf)); + rdclass = dns_zone_getclass(zone); dns_rdataclass_format(rdclass, buf, sizeof(buf)); TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "rdataclass", @@ -990,7 +1009,7 @@ zone_xmlrender(dns_zone_t *zone, void *arg) { TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "zone")); - dns_zone_name(zone, buf, sizeof(buf)); + dns_zone_nameonly(zone, buf, sizeof(buf)); TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "name")); TRY0(xmlTextWriterWriteString(writer, ISC_XMLCHAR buf)); TRY0(xmlTextWriterEndElement(writer)); @@ -1058,7 +1077,7 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) { ISC_XMLCHAR "type=\"text/xsl\" href=\"/bind9.ver3.xsl\"")); TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "statistics")); TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "version", - ISC_XMLCHAR "3.3")); + ISC_XMLCHAR "3.6")); /* Set common fields for statistics dump */ dumparg.type = statsformat_xml; diff --git a/bin/named/update.c b/bin/named/update.c index a526b02a1024..badf8fe1081f 100644 --- a/bin/named/update.c +++ b/bin/named/update.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -3017,6 +3017,19 @@ update_action(isc_task_t *task, isc_event_t *event) { goto failure; } } + if (! ISC_LIST_EMPTY(diff.tuples)) { + result = dns_zone_cdscheck(zone, db, ver); + if (result == DNS_R_BADCDS || result == DNS_R_BADCDNSKEY) { + update_log(client, zone, LOGLEVEL_PROTOCOL, + "update rejected: bad %s RRset", + result == DNS_R_BADCDS ? "CDS" : "CDNSKEY"); + result = DNS_R_REFUSED; + goto failure; + } + if (result != ISC_R_SUCCESS) + goto failure; + + } /* * If any changes were made, increment the SOA serial number, diff --git a/bin/named/xfrout.c b/bin/named/xfrout.c index a0a617d14c12..f8535b21ea7b 100644 --- a/bin/named/xfrout.c +++ b/bin/named/xfrout.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -135,6 +135,7 @@ log_rr(dns_name_t *name, dns_rdata_t *rdata, isc_uint32_t ttl) { dns_rdataset_t rds; dns_rdata_t rd = DNS_RDATA_INIT; + dns_rdatalist_init(&rdl); rdl.type = rdata->type; rdl.rdclass = rdata->rdclass; rdl.ttl = ttl; @@ -143,8 +144,6 @@ log_rr(dns_name_t *name, dns_rdata_t *rdata, isc_uint32_t ttl) { rdl.covers = dns_rdata_covers(rdata); else rdl.covers = dns_rdatatype_none; - ISC_LIST_INIT(rdl.rdata); - ISC_LINK_INIT(&rdl, link); dns_rdataset_init(&rds); dns_rdata_init(&rd); dns_rdata_clone(rdata, &rd); @@ -1420,8 +1419,6 @@ sendstream(xfrout_ctx_t *xfr) { msgrdl->covers = dns_rdata_covers(rdata); else msgrdl->covers = dns_rdatatype_none; - ISC_LINK_INIT(msgrdl, link); - ISC_LIST_INIT(msgrdl->rdata); ISC_LIST_APPEND(msgrdl->rdata, msgrdata, link); result = dns_message_gettemprdataset(msg, &msgrds); diff --git a/bin/nsupdate/nsupdate.1 b/bin/nsupdate/nsupdate.1 index c46d023e8e81..28d5f42d7834 100644 --- a/bin/nsupdate/nsupdate.1 +++ b/bin/nsupdate/nsupdate.1 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2004-2012, 2014 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2004-2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") .\" Copyright (C) 2000-2003 Internet Software Consortium. .\" .\" Permission to use, copy, modify, and/or distribute this software for any @@ -33,7 +33,7 @@ nsupdate \- Dynamic DNS update utility .SH "SYNOPSIS" .HP 9 -\fBnsupdate\fR [\fB\-d\fR] [\fB\-D\fR] [[\fB\-g\fR] | [\fB\-o\fR] | [\fB\-l\fR] | [\fB\-y\ \fR\fB\fI[hmac:]\fR\fIkeyname:secret\fR\fR] | [\fB\-k\ \fR\fB\fIkeyfile\fR\fR]] [\fB\-t\ \fR\fB\fItimeout\fR\fR] [\fB\-u\ \fR\fB\fIudptimeout\fR\fR] [\fB\-r\ \fR\fB\fIudpretries\fR\fR] [\fB\-R\ \fR\fB\fIrandomdev\fR\fR] [\fB\-v\fR] [\fB\-V\fR] [filename] +\fBnsupdate\fR [\fB\-d\fR] [\fB\-D\fR] [\fB\-L\ \fR\fB\fIlevel\fR\fR] [[\fB\-g\fR] | [\fB\-o\fR] | [\fB\-l\fR] | [\fB\-y\ \fR\fB\fI[hmac:]\fR\fIkeyname:secret\fR\fR] | [\fB\-k\ \fR\fB\fIkeyfile\fR\fR]] [\fB\-t\ \fR\fB\fItimeout\fR\fR] [\fB\-u\ \fR\fB\fIudptimeout\fR\fR] [\fB\-r\ \fR\fB\fIudpretries\fR\fR] [\fB\-R\ \fR\fB\fIrandomdev\fR\fR] [\fB\-v\fR] [\fB\-V\fR] [filename] .SH "DESCRIPTION" .PP \fBnsupdate\fR @@ -47,79 +47,48 @@ The resource records that are dynamically added or removed with \fBnsupdate\fR have to be in the same zone. Requests are sent to the zone's master server. This is identified by the MNAME field of the zone's SOA record. .PP -The -\fB\-d\fR -option makes -\fBnsupdate\fR -operate in debug mode. This provides tracing information about the update requests that are made and the replies received from the name server. -.PP -The -\fB\-D\fR -option makes -\fBnsupdate\fR -report additional debugging information to -\fB\-d\fR. -.PP -The -\fB\-L\fR -option with an integer argument of zero or higher sets the logging debug level. If zero, logging is disabled. +Transaction signatures can be used to authenticate the Dynamic DNS updates. These use the TSIG resource record type described in RFC 2845 or the SIG(0) record described in RFC 2535 and RFC 2931 or GSS\-TSIG as described in RFC 3645. .PP -Transaction signatures can be used to authenticate the Dynamic DNS updates. These use the TSIG resource record type described in RFC 2845 or the SIG(0) record described in RFC 2535 and RFC 2931 or GSS\-TSIG as described in RFC 3645. TSIG relies on a shared secret that should only be known to +TSIG relies on a shared secret that should only be known to \fBnsupdate\fR -and the name server. Currently, the only supported encryption algorithm for TSIG is HMAC\-MD5, which is defined in RFC 2104. Once other algorithms are defined for TSIG, applications will need to ensure they select the appropriate algorithm as well as the key when authenticating each other. For instance, suitable +and the name server. For instance, suitable \fBkey\fR and \fBserver\fR statements would be added to \fI/etc/named.conf\fR -so that the name server can associate the appropriate secret key and algorithm with the IP address of the client application that will be using TSIG authentication. SIG(0) uses public key cryptography. To use a SIG(0) key, the public key must be stored in a KEY record in a zone served by the name server. +so that the name server can associate the appropriate secret key and algorithm with the IP address of the client application that will be using TSIG authentication. You can use +\fBddns\-confgen\fR +to generate suitable configuration fragments. \fBnsupdate\fR -does not read -\fI/etc/named.conf\fR. +uses the +\fB\-y\fR +or +\fB\-k\fR +options to provide the TSIG shared secret. These options are mutually exclusive. +.PP +SIG(0) uses public key cryptography. To use a SIG(0) key, the public key must be stored in a KEY record in a zone served by the name server. .PP GSS\-TSIG uses Kerberos credentials. Standard GSS\-TSIG mode is switched on with the \fB\-g\fR flag. A non\-standards\-compliant variant of GSS\-TSIG used by Windows 2000 can be switched on with the \fB\-o\fR flag. +.SH "OPTIONS" .PP -\fBnsupdate\fR -uses the -\fB\-y\fR -or -\fB\-k\fR -option to provide the shared secret needed to generate a TSIG record for authenticating Dynamic DNS update requests, default type HMAC\-MD5. These options are mutually exclusive. +\-d +.RS 4 +Debug mode. This provides tracing information about the update requests that are made and the replies received from the name server. +.RE .PP -When the -\fB\-y\fR -option is used, a signature is generated from -[\fIhmac:\fR]\fIkeyname:secret.\fR -\fIkeyname\fR -is the name of the key, and -\fIsecret\fR -is the base64 encoded shared secret. -\fIhmac\fR -is the name of the key algorithm; valid choices are -hmac\-md5, -hmac\-sha1, -hmac\-sha224, -hmac\-sha256, -hmac\-sha384, or -hmac\-sha512. If -\fIhmac\fR -is not specified, the default is -hmac\-md5. NOTE: Use of the -\fB\-y\fR -option is discouraged because the shared secret is supplied as a command line argument in clear text. This may be visible in the output from -\fBps\fR(1) -or in a history file maintained by the user's shell. +\-D +.RS 4 +Extra debug mode. +.RE .PP -With the -\fB\-k\fR -option, -\fBnsupdate\fR -reads the shared secret from the file -\fIkeyfile\fR. Keyfiles may be in two formats: a single file containing a +\-k \fIkeyfile\fR +.RS 4 +The file containing the TSIG authentication key. Keyfiles may be in two formats: a single file containing a \fInamed.conf\fR\-format \fBkey\fR statement, which may be generated automatically by @@ -130,11 +99,11 @@ and \fBdnssec\-keygen\fR. The \fB\-k\fR may also be used to specify a SIG(0) key used to authenticate Dynamic DNS update requests. In this case, the key specified is not an HMAC\-MD5 key. +.RE .PP -\fBnsupdate\fR -can be run in a local\-host only mode using the -\fB\-l\fR -flag. This sets the server address to localhost (disabling the +\-l +.RS 4 +Local\-host only mode. This sets the server address to localhost (disabling the \fBserver\fR so that the server address cannot be overridden). Connections to the local server will use a TSIG key found in \fI/var/run/named/session.key\fR, which is automatically generated by @@ -145,44 +114,81 @@ to \fBlocal\fR. The location of this key file can be overridden with the \fB\-k\fR option. +.RE .PP -By default, -\fBnsupdate\fR -uses UDP to send update requests to the name server unless they are too large to fit in a UDP request in which case TCP will be used. The -\fB\-v\fR -option makes -\fBnsupdate\fR -use a TCP connection. This may be preferable when a batch of update requests is made. -.PP -The -\fB\-p\fR -sets the default port number to use for connections to a name server. The default is 53. -.PP -The -\fB\-t\fR -option sets the maximum time an update request can take before it is aborted. The default is 300 seconds. Zero can be used to disable the timeout. +\-L \fIlevel\fR +.RS 4 +Set the logging debug level. If zero, logging is disabled. +.RE .PP -The -\fB\-u\fR -option sets the UDP retry interval. The default is 3 seconds. If zero, the interval will be computed from the timeout interval and number of UDP retries. +\-p \fIport\fR +.RS 4 +Set the port to use for connections to a name server. The default is 53. +.RE .PP -The -\fB\-r\fR -option sets the number of UDP retries. The default is 3. If zero, only one update request will be made. +\-r \fIudpretries\fR +.RS 4 +The number of UDP retries. The default is 3. If zero, only one update request will be made. +.RE .PP -The -\fB\-R \fR\fB\fIrandomdev\fR\fR -option specifies a source of randomness. If the operating system does not provide a +\-R \fIrandomdev\fR +.RS 4 +Where to obtain randomness. If the operating system does not provide a \fI/dev/random\fR or equivalent device, the default source of randomness is keyboard input. \fIrandomdev\fR specifies the name of a character device or file containing random data to be used instead of the default. The special value \fIkeyboard\fR indicates that keyboard input should be used. This option may be specified multiple times. +.RE +.PP +\-t \fItimeout\fR +.RS 4 +The maximum time an update request can take before it is aborted. The default is 300 seconds. Zero can be used to disable the timeout. +.RE .PP -The \-V option causes +\-u \fIudptimeout\fR +.RS 4 +The UDP retry interval. The default is 3 seconds. If zero, the interval will be computed from the timeout interval and number of UDP retries. +.RE +.PP +\-v +.RS 4 +Use TCP even for small update requests. By default, \fBnsupdate\fR -to print the version number and exit. +uses UDP to send update requests to the name server unless they are too large to fit in a UDP request in which case TCP will be used. TCP may be preferable when a batch of update requests is made. +.RE +.PP +\-V +.RS 4 +Print the version number and exit. +.RE +.PP +\-y \fI[hmac:]\fR\fIkeyname:secret\fR +.RS 4 +Literal TSIG authentication key. +\fIkeyname\fR +is the name of the key, and +\fIsecret\fR +is the base64 encoded shared secret. +\fIhmac\fR +is the name of the key algorithm; valid choices are +hmac\-md5, +hmac\-sha1, +hmac\-sha224, +hmac\-sha256, +hmac\-sha384, or +hmac\-sha512. If +\fIhmac\fR +is not specified, the default is +hmac\-md5. +.sp +NOTE: Use of the +\fB\-y\fR +option is discouraged because the shared secret is supplied as a command line argument in clear text. This may be visible in the output from +\fBps\fR(1) +or in a history file maintained by the user's shell. +.RE .SH "INPUT FORMAT" .PP \fBnsupdate\fR @@ -463,7 +469,7 @@ RFC 2931, .PP The TSIG key is redundantly stored in two separate files. This is a consequence of nsupdate using the DST library for its cryptographic operations, and may change in future releases. .SH "COPYRIGHT" -Copyright \(co 2004\-2012, 2014 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2004\-2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") .br Copyright \(co 2000\-2003 Internet Software Consortium. .br diff --git a/bin/nsupdate/nsupdate.c b/bin/nsupdate/nsupdate.c index a68b00e0b9d7..bf907f1580fb 100644 --- a/bin/nsupdate/nsupdate.c +++ b/bin/nsupdate/nsupdate.c @@ -106,7 +106,7 @@ extern int h_errno; #endif #endif -#define MAXCMD (4 * 1024) +#define MAXCMD (128 * 1024) #define MAXWIRE (64 * 1024) #define PACKETSIZE ((64 * 1024) - 1) #define INITTEXT (2 * 1024) @@ -1332,7 +1332,6 @@ make_prereq(char *cmdline, isc_boolean_t ispositive, isc_boolean_t isrrset) { check_result(result, "dns_message_gettemprdatalist"); result = dns_message_gettemprdataset(updatemsg, &rdataset); check_result(result, "dns_message_gettemprdataset"); - dns_rdatalist_init(rdatalist); rdatalist->type = rdatatype; if (ispositive) { if (isrrset && rdata->data != NULL) @@ -1341,11 +1340,8 @@ make_prereq(char *cmdline, isc_boolean_t ispositive, isc_boolean_t isrrset) { rdatalist->rdclass = dns_rdataclass_any; } else rdatalist->rdclass = dns_rdataclass_none; - rdatalist->covers = 0; - rdatalist->ttl = 0; rdata->rdclass = rdatalist->rdclass; rdata->type = rdatatype; - ISC_LIST_INIT(rdatalist->rdata); ISC_LIST_APPEND(rdatalist->rdata, rdata, link); dns_rdataset_init(rdataset); dns_rdatalist_tordataset(rdatalist, rdataset); @@ -1838,12 +1834,10 @@ update_addordelete(char *cmdline, isc_boolean_t isdelete) { check_result(result, "dns_message_gettemprdatalist"); result = dns_message_gettemprdataset(updatemsg, &rdataset); check_result(result, "dns_message_gettemprdataset"); - dns_rdatalist_init(rdatalist); rdatalist->type = rdatatype; rdatalist->rdclass = rdataclass; rdatalist->covers = rdatatype; rdatalist->ttl = (dns_ttl_t)ttl; - ISC_LIST_INIT(rdatalist->rdata); ISC_LIST_APPEND(rdatalist->rdata, rdata, link); dns_rdataset_init(rdataset); dns_rdatalist_tordataset(rdatalist, rdataset); @@ -2197,6 +2191,7 @@ update_completed(isc_task_t *task, isc_event_t *event) { dns_request_destroy(&request); dns_message_renderreset(updatemsg); dns_message_settsigkey(updatemsg, NULL); + /* XXX MPA fix zonename is freed already */ send_update(zname, &master_servers[master_inuse]); isc_event_free(&event); return; @@ -2499,6 +2494,9 @@ recvsoa(isc_task_t *task, isc_event_t *event) { dns_name_init(&master, NULL); dns_name_clone(&soa.origin, &master); + /* + * XXXMPA + */ if (userzone != NULL) zname = userzone; else diff --git a/bin/nsupdate/nsupdate.docbook b/bin/nsupdate/nsupdate.docbook index e0f53e2a24c9..b973c1f693e9 100644 --- a/bin/nsupdate/nsupdate.docbook +++ b/bin/nsupdate/nsupdate.docbook @@ -1,8 +1,8 @@ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" - "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" + "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY mdash "—">]> <!-- - - Copyright (C) 2004-2012, 2014 Internet Systems Consortium, Inc. ("ISC") + - Copyright (C) 2004-2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") - Copyright (C) 2000-2003 Internet Software Consortium. - - Permission to use, copy, modify, and/or distribute this software for any @@ -44,6 +44,7 @@ <year>2011</year> <year>2012</year> <year>2014</year> + <year>2015</year> <holder>Internet Systems Consortium, Inc. ("ISC")</holder> </copyright> <copyright> @@ -60,12 +61,13 @@ <command>nsupdate</command> <arg><option>-d</option></arg> <arg><option>-D</option></arg> + <arg><option>-L <replaceable class="parameter">level</replaceable></option></arg> <group> <arg><option>-g</option></arg> <arg><option>-o</option></arg> <arg><option>-l</option></arg> - <arg><option>-y <replaceable class="parameter"><optional>hmac:</optional>keyname:secret</replaceable></option></arg> - <arg><option>-k <replaceable class="parameter">keyfile</replaceable></option></arg> + <arg><option>-y <replaceable class="parameter"><optional>hmac:</optional>keyname:secret</replaceable></option></arg> + <arg><option>-k <replaceable class="parameter">keyfile</replaceable></option></arg> </group> <arg><option>-t <replaceable class="parameter">timeout</replaceable></option></arg> <arg><option>-u <replaceable class="parameter">udptimeout</replaceable></option></arg> @@ -103,43 +105,30 @@ This is identified by the MNAME field of the zone's SOA record. </para> <para> - The - <option>-d</option> - option makes - <command>nsupdate</command> - operate in debug mode. - This provides tracing information about the update requests that are - made and the replies received from the name server. - </para> - <para> - The <option>-D</option> option makes <command>nsupdate</command> - report additional debugging information to <option>-d</option>. - </para> - <para> - The <option>-L</option> option with an integer argument of zero or - higher sets the logging debug level. If zero, logging is disabled. - </para> - <para> Transaction signatures can be used to authenticate the Dynamic DNS updates. These use the TSIG resource record type described in RFC 2845 or the SIG(0) record described in RFC 2535 and - RFC 2931 or GSS-TSIG as described in RFC 3645. TSIG relies on + RFC 2931 or GSS-TSIG as described in RFC 3645. + </para> + <para> + TSIG relies on a shared secret that should only be known to - <command>nsupdate</command> and the name server. Currently, - the only supported encryption algorithm for TSIG is HMAC-MD5, - which is defined in RFC 2104. Once other algorithms are - defined for TSIG, applications will need to ensure they select - the appropriate algorithm as well as the key when authenticating - each other. For instance, suitable <type>key</type> and + <command>nsupdate</command> and the name server. + For instance, suitable <type>key</type> and <type>server</type> statements would be added to <filename>/etc/named.conf</filename> so that the name server can associate the appropriate secret key and algorithm with the IP address of the client application that will be using - TSIG authentication. SIG(0) uses public key cryptography. + TSIG authentication. You can use <command>ddns-confgen</command> + to generate suitable configuration fragments. + <command>nsupdate</command> + uses the <option>-y</option> or <option>-k</option> options + to provide the TSIG shared secret. These options are mutually exclusive. + </para> + <para> + SIG(0) uses public key cryptography. To use a SIG(0) key, the public key must be stored in a KEY record in a zone served by the name server. - <command>nsupdate</command> does not read - <filename>/etc/named.conf</filename>. </para> <para> GSS-TSIG uses Kerberos credentials. Standard GSS-TSIG mode @@ -147,108 +136,183 @@ non-standards-compliant variant of GSS-TSIG used by Windows 2000 can be switched on with the <option>-o</option> flag. </para> - <para><command>nsupdate</command> - uses the <option>-y</option> or <option>-k</option> option - to provide the shared secret needed to generate a TSIG record - for authenticating Dynamic DNS update requests, default type - HMAC-MD5. These options are mutually exclusive. - </para> - <para> - When the <option>-y</option> option is used, a signature is - generated from - <optional><parameter>hmac:</parameter></optional><parameter>keyname:secret.</parameter> - <parameter>keyname</parameter> is the name of the key, and - <parameter>secret</parameter> is the base64 encoded shared secret. - <parameter>hmac</parameter> is the name of the key algorithm; - valid choices are <literal>hmac-md5</literal>, - <literal>hmac-sha1</literal>, <literal>hmac-sha224</literal>, - <literal>hmac-sha256</literal>, <literal>hmac-sha384</literal>, or - <literal>hmac-sha512</literal>. If <parameter>hmac</parameter> - is not specified, the default is <literal>hmac-md5</literal>. - NOTE: Use of the <option>-y</option> option is discouraged because the - shared secret is supplied as a command line argument in clear text. - This may be visible in the output from - <citerefentry> - <refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum> - </citerefentry> - or in a history file maintained by the user's shell. - </para> - <para> - With the - <option>-k</option> option, <command>nsupdate</command> reads - the shared secret from the file <parameter>keyfile</parameter>. - Keyfiles may be in two formats: a single file containing - a <filename>named.conf</filename>-format <command>key</command> - statement, which may be generated automatically by - <command>ddns-confgen</command>, or a pair of files whose names are - of the format <filename>K{name}.+157.+{random}.key</filename> and - <filename>K{name}.+157.+{random}.private</filename>, which can be - generated by <command>dnssec-keygen</command>. - The <option>-k</option> may also be used to specify a SIG(0) key used - to authenticate Dynamic DNS update requests. In this case, the key - specified is not an HMAC-MD5 key. - </para> - <para> - <command>nsupdate</command> can be run in a local-host only mode - using the <option>-l</option> flag. This sets the server address to - localhost (disabling the <command>server</command> so that the server - address cannot be overridden). Connections to the local server will - use a TSIG key found in <filename>/var/run/named/session.key</filename>, - which is automatically generated by <command>named</command> if any - local master zone has set <command>update-policy</command> to - <command>local</command>. The location of this key file can be - overridden with the <option>-k</option> option. - </para> - <para> - By default, <command>nsupdate</command> - uses UDP to send update requests to the name server unless they are too - large to fit in a UDP request in which case TCP will be used. - The - <option>-v</option> - option makes - <command>nsupdate</command> - use a TCP connection. - This may be preferable when a batch of update requests is made. - </para> - <para> - The <option>-p</option> sets the default port number to use for - connections to a name server. The default is 53. - </para> - <para> - The <option>-t</option> option sets the maximum time an update request - can - take before it is aborted. The default is 300 seconds. Zero can be - used - to disable the timeout. - </para> - <para> - The <option>-u</option> option sets the UDP retry interval. The default - is - 3 seconds. If zero, the interval will be computed from the timeout - interval - and number of UDP retries. - </para> - <para> - The <option>-r</option> option sets the number of UDP retries. The - default is - 3. If zero, only one update request will be made. - </para> - <para> - The <option>-R <replaceable - class="parameter">randomdev</replaceable></option> option - specifies a source of randomness. If the operating system - does not provide a <filename>/dev/random</filename> or - equivalent device, the default source of randomness is keyboard - input. <filename>randomdev</filename> specifies the name of - a character device or file containing random data to be used - instead of the default. The special value - <filename>keyboard</filename> indicates that keyboard input - should be used. This option may be specified multiple times. - </para> - <para> - The -V option causes <command>nsupdate</command> to print the - version number and exit. - </para> + </refsect1> + + <refsect1> + <title>OPTIONS</title> + + <variablelist> + <varlistentry> + <term>-d</term> + <listitem> + <para> + Debug mode. This provides tracing information about the + update requests that are made and the replies received + from the name server. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-D</term> + <listitem> + <para> + Extra debug mode. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-k <replaceable class="parameter">keyfile</replaceable></term> + <listitem> + <para> + The file containing the TSIG authentication key. + Keyfiles may be in two formats: a single file containing + a <filename>named.conf</filename>-format <command>key</command> + statement, which may be generated automatically by + <command>ddns-confgen</command>, or a pair of files whose names are + of the format <filename>K{name}.+157.+{random}.key</filename> and + <filename>K{name}.+157.+{random}.private</filename>, which can be + generated by <command>dnssec-keygen</command>. + The <option>-k</option> may also be used to specify a SIG(0) key used + to authenticate Dynamic DNS update requests. In this case, the key + specified is not an HMAC-MD5 key. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-l</term> + <listitem> + <para> + Local-host only mode. This sets the server address to + localhost (disabling the <command>server</command> so that the server + address cannot be overridden). Connections to the local server will + use a TSIG key found in <filename>/var/run/named/session.key</filename>, + which is automatically generated by <command>named</command> if any + local master zone has set <command>update-policy</command> to + <command>local</command>. The location of this key file can be + overridden with the <option>-k</option> option. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-L <replaceable class="parameter">level</replaceable></term> + <listitem> + <para> + Set the logging debug level. If zero, logging is disabled. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-p <replaceable class="parameter">port</replaceable></term> + <listitem> + <para> + Set the port to use for connections to a name server. The + default is 53. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-r <replaceable class="parameter">udpretries</replaceable></term> + <listitem> + <para> + The number of UDP retries. The default is 3. If zero, only + one update request will be made. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-R <replaceable class="parameter">randomdev</replaceable></term> + <listitem> + <para> + Where to obtain randomness. If the operating system + does not provide a <filename>/dev/random</filename> or + equivalent device, the default source of randomness is keyboard + input. <filename>randomdev</filename> specifies the name of + a character device or file containing random data to be used + instead of the default. The special value + <filename>keyboard</filename> indicates that keyboard input + should be used. This option may be specified multiple times. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-t <replaceable class="parameter">timeout</replaceable></term> + <listitem> + <para> + The maximum time an update request can take before it is + aborted. The default is 300 seconds. Zero can be used to + disable the timeout. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-u <replaceable class="parameter">udptimeout</replaceable></term> + <listitem> + <para> + The UDP retry interval. The default is 3 seconds. If zero, + the interval will be computed from the timeout interval and + number of UDP retries. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-v</term> + <listitem> + <para> + Use TCP even for small update requests. + By default, <command>nsupdate</command> + uses UDP to send update requests to the name server unless they are too + large to fit in a UDP request in which case TCP will be used. + TCP may be preferable when a batch of update requests is made. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-V</term> + <listitem> + <para> + Print the version number and exit. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-y <replaceable class="parameter"><optional>hmac:</optional>keyname:secret</replaceable></term> + <listitem> + <para> + Literal TSIG authentication key. + <parameter>keyname</parameter> is the name of the key, and + <parameter>secret</parameter> is the base64 encoded shared secret. + <parameter>hmac</parameter> is the name of the key algorithm; + valid choices are <literal>hmac-md5</literal>, + <literal>hmac-sha1</literal>, <literal>hmac-sha224</literal>, + <literal>hmac-sha256</literal>, <literal>hmac-sha384</literal>, or + <literal>hmac-sha512</literal>. If <parameter>hmac</parameter> + is not specified, the default is <literal>hmac-md5</literal>. + </para> + <para> + NOTE: Use of the <option>-y</option> option is discouraged because the + shared secret is supplied as a command line argument in clear text. + This may be visible in the output from + <citerefentry> + <refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum> + </citerefentry> + or in a history file maintained by the user's shell. + </para> + </listitem> + </varlistentry> + + </variablelist> </refsect1> <refsect1> @@ -281,382 +345,382 @@ The command formats and their meaning are as follows: <variablelist> - <varlistentry> - <term> - <command>server</command> - <arg choice="req">servername</arg> - <arg choice="opt">port</arg> - </term> - <listitem> - <para> - Sends all dynamic update requests to the name server - <parameter>servername</parameter>. - When no server statement is provided, - <command>nsupdate</command> - will send updates to the master server of the correct zone. - The MNAME field of that zone's SOA record will identify the - master - server for that zone. - <parameter>port</parameter> - is the port number on - <parameter>servername</parameter> - where the dynamic update requests get sent. - If no port number is specified, the default DNS port number of - 53 is - used. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>local</command> - <arg choice="req">address</arg> - <arg choice="opt">port</arg> - </term> - <listitem> - <para> - Sends all dynamic update requests using the local - <parameter>address</parameter>. - - When no local statement is provided, - <command>nsupdate</command> - will send updates using an address and port chosen by the - system. - <parameter>port</parameter> - can additionally be used to make requests come from a specific - port. - If no port number is specified, the system will assign one. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>zone</command> - <arg choice="req">zonename</arg> - </term> - <listitem> - <para> - Specifies that all updates are to be made to the zone - <parameter>zonename</parameter>. - If no - <parameter>zone</parameter> - statement is provided, - <command>nsupdate</command> - will attempt determine the correct zone to update based on the - rest of the input. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>class</command> - <arg choice="req">classname</arg> - </term> - <listitem> - <para> - Specify the default class. - If no <parameter>class</parameter> is specified, the - default class is - <parameter>IN</parameter>. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>ttl</command> - <arg choice="req">seconds</arg> - </term> - <listitem> - <para> - Specify the default time to live for records to be added. + <varlistentry> + <term> + <command>server</command> + <arg choice="req">servername</arg> + <arg choice="opt">port</arg> + </term> + <listitem> + <para> + Sends all dynamic update requests to the name server + <parameter>servername</parameter>. + When no server statement is provided, + <command>nsupdate</command> + will send updates to the master server of the correct zone. + The MNAME field of that zone's SOA record will identify the + master + server for that zone. + <parameter>port</parameter> + is the port number on + <parameter>servername</parameter> + where the dynamic update requests get sent. + If no port number is specified, the default DNS port number of + 53 is + used. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>local</command> + <arg choice="req">address</arg> + <arg choice="opt">port</arg> + </term> + <listitem> + <para> + Sends all dynamic update requests using the local + <parameter>address</parameter>. + + When no local statement is provided, + <command>nsupdate</command> + will send updates using an address and port chosen by the + system. + <parameter>port</parameter> + can additionally be used to make requests come from a specific + port. + If no port number is specified, the system will assign one. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>zone</command> + <arg choice="req">zonename</arg> + </term> + <listitem> + <para> + Specifies that all updates are to be made to the zone + <parameter>zonename</parameter>. + If no + <parameter>zone</parameter> + statement is provided, + <command>nsupdate</command> + will attempt determine the correct zone to update based on the + rest of the input. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>class</command> + <arg choice="req">classname</arg> + </term> + <listitem> + <para> + Specify the default class. + If no <parameter>class</parameter> is specified, the + default class is + <parameter>IN</parameter>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>ttl</command> + <arg choice="req">seconds</arg> + </term> + <listitem> + <para> + Specify the default time to live for records to be added. The value <parameter>none</parameter> will clear the default ttl. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>key</command> - <arg choice="opt">hmac:</arg><arg choice="req">keyname</arg> - <arg choice="req">secret</arg> - </term> - <listitem> - <para> - Specifies that all updates are to be TSIG-signed using the - <parameter>keyname</parameter> <parameter>secret</parameter> pair. - If <parameter>hmac</parameter> is specified, then it sets the - signing algorithm in use; the default is - <literal>hmac-md5</literal>. The <command>key</command> - command overrides any key specified on the command line via - <option>-y</option> or <option>-k</option>. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>gsstsig</command> - </term> - <listitem> - <para> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>key</command> + <arg choice="opt">hmac:</arg><arg choice="req">keyname</arg> + <arg choice="req">secret</arg> + </term> + <listitem> + <para> + Specifies that all updates are to be TSIG-signed using the + <parameter>keyname</parameter> <parameter>secret</parameter> pair. + If <parameter>hmac</parameter> is specified, then it sets the + signing algorithm in use; the default is + <literal>hmac-md5</literal>. The <command>key</command> + command overrides any key specified on the command line via + <option>-y</option> or <option>-k</option>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>gsstsig</command> + </term> + <listitem> + <para> Use GSS-TSIG to sign the updated. This is equivalent to specifying <option>-g</option> on the commandline. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>oldgsstsig</command> - </term> - <listitem> - <para> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>oldgsstsig</command> + </term> + <listitem> + <para> Use the Windows 2000 version of GSS-TSIG to sign the updated. This is equivalent to specifying <option>-o</option> on the commandline. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>realm</command> - <arg choice="req"><optional>realm_name</optional></arg> - </term> - <listitem> - <para> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>realm</command> + <arg choice="req"><optional>realm_name</optional></arg> + </term> + <listitem> + <para> When using GSS-TSIG use <parameter>realm_name</parameter> rather than the default realm in <filename>krb5.conf</filename>. If no realm is specified the saved realm is cleared. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command><optional>prereq</optional> nxdomain</command> - <arg choice="req">domain-name</arg> - </term> - <listitem> - <para> - Requires that no resource record of any type exists with name - <parameter>domain-name</parameter>. - </para> - </listitem> - </varlistentry> - - - <varlistentry> - <term> - <command><optional>prereq</optional> yxdomain</command> - <arg choice="req">domain-name</arg> - </term> - <listitem> - <para> - Requires that - <parameter>domain-name</parameter> - exists (has as at least one resource record, of any type). - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command><optional>prereq</optional> nxrrset</command> - <arg choice="req">domain-name</arg> - <arg choice="opt">class</arg> - <arg choice="req">type</arg> - </term> - <listitem> - <para> - Requires that no resource record exists of the specified - <parameter>type</parameter>, - <parameter>class</parameter> - and - <parameter>domain-name</parameter>. - If - <parameter>class</parameter> - is omitted, IN (internet) is assumed. - </para> - </listitem> - </varlistentry> - - - <varlistentry> - <term> - <command><optional>prereq</optional> yxrrset</command> - <arg choice="req">domain-name</arg> - <arg choice="opt">class</arg> - <arg choice="req">type</arg> - </term> - <listitem> - <para> - This requires that a resource record of the specified - <parameter>type</parameter>, - <parameter>class</parameter> - and - <parameter>domain-name</parameter> - must exist. - If - <parameter>class</parameter> - is omitted, IN (internet) is assumed. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command><optional>prereq</optional> yxrrset</command> - <arg choice="req">domain-name</arg> - <arg choice="opt">class</arg> - <arg choice="req">type</arg> - <arg choice="req" rep="repeat">data</arg> - </term> - <listitem> - <para> - The - <parameter>data</parameter> - from each set of prerequisites of this form - sharing a common - <parameter>type</parameter>, - <parameter>class</parameter>, - and - <parameter>domain-name</parameter> - are combined to form a set of RRs. This set of RRs must - exactly match the set of RRs existing in the zone at the - given - <parameter>type</parameter>, - <parameter>class</parameter>, - and - <parameter>domain-name</parameter>. - The - <parameter>data</parameter> - are written in the standard text representation of the resource - record's - RDATA. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command><optional>update</optional> del<optional>ete</optional></command> - <arg choice="req">domain-name</arg> - <arg choice="opt">ttl</arg> - <arg choice="opt">class</arg> - <arg choice="opt">type <arg choice="opt" rep="repeat">data</arg></arg> - </term> - <listitem> - <para> - Deletes any resource records named - <parameter>domain-name</parameter>. - If - <parameter>type</parameter> - and - <parameter>data</parameter> - is provided, only matching resource records will be removed. - The internet class is assumed if - <parameter>class</parameter> - is not supplied. The - <parameter>ttl</parameter> - is ignored, and is only allowed for compatibility. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command><optional>update</optional> add</command> - <arg choice="req">domain-name</arg> - <arg choice="req">ttl</arg> - <arg choice="opt">class</arg> - <arg choice="req">type</arg> - <arg choice="req" rep="repeat">data</arg> - </term> - <listitem> - <para> - Adds a new resource record with the specified - <parameter>ttl</parameter>, - <parameter>class</parameter> - and - <parameter>data</parameter>. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>show</command> - </term> - <listitem> - <para> - Displays the current message, containing all of the - prerequisites and - updates specified since the last send. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>send</command> - </term> - <listitem> - <para> - Sends the current message. This is equivalent to entering a - blank line. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>answer</command> - </term> - <listitem> - <para> - Displays the answer. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>debug</command> - </term> - <listitem> - <para> - Turn on debugging. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>version</command> - </term> - <listitem> - <para> - Print version number. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <command>help</command> - </term> - <listitem> - <para> - Print a list of commands. - </para> - </listitem> - </varlistentry> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command><optional>prereq</optional> nxdomain</command> + <arg choice="req">domain-name</arg> + </term> + <listitem> + <para> + Requires that no resource record of any type exists with name + <parameter>domain-name</parameter>. + </para> + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <command><optional>prereq</optional> yxdomain</command> + <arg choice="req">domain-name</arg> + </term> + <listitem> + <para> + Requires that + <parameter>domain-name</parameter> + exists (has as at least one resource record, of any type). + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command><optional>prereq</optional> nxrrset</command> + <arg choice="req">domain-name</arg> + <arg choice="opt">class</arg> + <arg choice="req">type</arg> + </term> + <listitem> + <para> + Requires that no resource record exists of the specified + <parameter>type</parameter>, + <parameter>class</parameter> + and + <parameter>domain-name</parameter>. + If + <parameter>class</parameter> + is omitted, IN (internet) is assumed. + </para> + </listitem> + </varlistentry> + + + <varlistentry> + <term> + <command><optional>prereq</optional> yxrrset</command> + <arg choice="req">domain-name</arg> + <arg choice="opt">class</arg> + <arg choice="req">type</arg> + </term> + <listitem> + <para> + This requires that a resource record of the specified + <parameter>type</parameter>, + <parameter>class</parameter> + and + <parameter>domain-name</parameter> + must exist. + If + <parameter>class</parameter> + is omitted, IN (internet) is assumed. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command><optional>prereq</optional> yxrrset</command> + <arg choice="req">domain-name</arg> + <arg choice="opt">class</arg> + <arg choice="req">type</arg> + <arg choice="req" rep="repeat">data</arg> + </term> + <listitem> + <para> + The + <parameter>data</parameter> + from each set of prerequisites of this form + sharing a common + <parameter>type</parameter>, + <parameter>class</parameter>, + and + <parameter>domain-name</parameter> + are combined to form a set of RRs. This set of RRs must + exactly match the set of RRs existing in the zone at the + given + <parameter>type</parameter>, + <parameter>class</parameter>, + and + <parameter>domain-name</parameter>. + The + <parameter>data</parameter> + are written in the standard text representation of the resource + record's + RDATA. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command><optional>update</optional> del<optional>ete</optional></command> + <arg choice="req">domain-name</arg> + <arg choice="opt">ttl</arg> + <arg choice="opt">class</arg> + <arg choice="opt">type <arg choice="opt" rep="repeat">data</arg></arg> + </term> + <listitem> + <para> + Deletes any resource records named + <parameter>domain-name</parameter>. + If + <parameter>type</parameter> + and + <parameter>data</parameter> + is provided, only matching resource records will be removed. + The internet class is assumed if + <parameter>class</parameter> + is not supplied. The + <parameter>ttl</parameter> + is ignored, and is only allowed for compatibility. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command><optional>update</optional> add</command> + <arg choice="req">domain-name</arg> + <arg choice="req">ttl</arg> + <arg choice="opt">class</arg> + <arg choice="req">type</arg> + <arg choice="req" rep="repeat">data</arg> + </term> + <listitem> + <para> + Adds a new resource record with the specified + <parameter>ttl</parameter>, + <parameter>class</parameter> + and + <parameter>data</parameter>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>show</command> + </term> + <listitem> + <para> + Displays the current message, containing all of the + prerequisites and + updates specified since the last send. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>send</command> + </term> + <listitem> + <para> + Sends the current message. This is equivalent to entering a + blank line. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>answer</command> + </term> + <listitem> + <para> + Displays the answer. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>debug</command> + </term> + <listitem> + <para> + Turn on debugging. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>version</command> + </term> + <listitem> + <para> + Print version number. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <command>help</command> + </term> + <listitem> + <para> + Print a list of commands. + </para> + </listitem> + </varlistentry> </variablelist> </para> @@ -723,45 +787,45 @@ <variablelist> <varlistentry> - <term><constant>/etc/resolv.conf</constant></term> - <listitem> - <para> - used to identify default name server - </para> - </listitem> + <term><constant>/etc/resolv.conf</constant></term> + <listitem> + <para> + used to identify default name server + </para> + </listitem> </varlistentry> <varlistentry> - <term><constant>/var/run/named/session.key</constant></term> - <listitem> - <para> - sets the default TSIG key for use in local-only mode - </para> - </listitem> + <term><constant>/var/run/named/session.key</constant></term> + <listitem> + <para> + sets the default TSIG key for use in local-only mode + </para> + </listitem> </varlistentry> <varlistentry> - <term><constant>K{name}.+157.+{random}.key</constant></term> - <listitem> - <para> - base-64 encoding of HMAC-MD5 key created by - <citerefentry> - <refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum> - </citerefentry>. - </para> - </listitem> + <term><constant>K{name}.+157.+{random}.key</constant></term> + <listitem> + <para> + base-64 encoding of HMAC-MD5 key created by + <citerefentry> + <refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum> + </citerefentry>. + </para> + </listitem> </varlistentry> <varlistentry> - <term><constant>K{name}.+157.+{random}.private</constant></term> - <listitem> - <para> - base-64 encoding of HMAC-MD5 key created by - <citerefentry> - <refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum> - </citerefentry>. - </para> - </listitem> + <term><constant>K{name}.+157.+{random}.private</constant></term> + <listitem> + <para> + base-64 encoding of HMAC-MD5 key created by + <citerefentry> + <refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum> + </citerefentry>. + </para> + </listitem> </varlistentry> </variablelist> @@ -778,13 +842,13 @@ <citetitle>RFC 2535</citetitle>, <citetitle>RFC 2931</citetitle>, <citerefentry> - <refentrytitle>named</refentrytitle><manvolnum>8</manvolnum> + <refentrytitle>named</refentrytitle><manvolnum>8</manvolnum> </citerefentry>, <citerefentry> - <refentrytitle>ddns-confgen</refentrytitle><manvolnum>8</manvolnum> + <refentrytitle>ddns-confgen</refentrytitle><manvolnum>8</manvolnum> </citerefentry>, <citerefentry> - <refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum> + <refentrytitle>dnssec-keygen</refentrytitle><manvolnum>8</manvolnum> </citerefentry>. </para> </refsect1> diff --git a/bin/nsupdate/nsupdate.html b/bin/nsupdate/nsupdate.html index 2e71ec1b1a47..76c54db290d5 100644 --- a/bin/nsupdate/nsupdate.html +++ b/bin/nsupdate/nsupdate.html @@ -1,5 +1,5 @@ <!-- - - Copyright (C) 2004-2012, 2014 Internet Systems Consortium, Inc. ("ISC") + - Copyright (C) 2004-2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") - Copyright (C) 2000-2003 Internet Software Consortium. - - Permission to use, copy, modify, and/or distribute this software for any @@ -29,10 +29,10 @@ </div> <div class="refsynopsisdiv"> <h2>Synopsis</h2> -<div class="cmdsynopsis"><p><code class="command">nsupdate</code> [<code class="option">-d</code>] [<code class="option">-D</code>] [[<code class="option">-g</code>] | [<code class="option">-o</code>] | [<code class="option">-l</code>] | [<code class="option">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]keyname:secret</code></em></code>] | [<code class="option">-k <em class="replaceable"><code>keyfile</code></em></code>]] [<code class="option">-t <em class="replaceable"><code>timeout</code></em></code>] [<code class="option">-u <em class="replaceable"><code>udptimeout</code></em></code>] [<code class="option">-r <em class="replaceable"><code>udpretries</code></em></code>] [<code class="option">-R <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-v</code>] [<code class="option">-V</code>] [filename]</p></div> +<div class="cmdsynopsis"><p><code class="command">nsupdate</code> [<code class="option">-d</code>] [<code class="option">-D</code>] [<code class="option">-L <em class="replaceable"><code>level</code></em></code>] [[<code class="option">-g</code>] | [<code class="option">-o</code>] | [<code class="option">-l</code>] | [<code class="option">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]keyname:secret</code></em></code>] | [<code class="option">-k <em class="replaceable"><code>keyfile</code></em></code>]] [<code class="option">-t <em class="replaceable"><code>timeout</code></em></code>] [<code class="option">-u <em class="replaceable"><code>udptimeout</code></em></code>] [<code class="option">-r <em class="replaceable"><code>udpretries</code></em></code>] [<code class="option">-R <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-v</code>] [<code class="option">-V</code>] [filename]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2543479"></a><h2>DESCRIPTION</h2> +<a name="id2543491"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">nsupdate</strong></span> is used to submit Dynamic DNS Update requests as defined in RFC 2136 to a name server. @@ -57,43 +57,30 @@ This is identified by the MNAME field of the zone's SOA record. </p> <p> - The - <code class="option">-d</code> - option makes - <span><strong class="command">nsupdate</strong></span> - operate in debug mode. - This provides tracing information about the update requests that are - made and the replies received from the name server. - </p> -<p> - The <code class="option">-D</code> option makes <span><strong class="command">nsupdate</strong></span> - report additional debugging information to <code class="option">-d</code>. - </p> -<p> - The <code class="option">-L</code> option with an integer argument of zero or - higher sets the logging debug level. If zero, logging is disabled. - </p> -<p> Transaction signatures can be used to authenticate the Dynamic DNS updates. These use the TSIG resource record type described in RFC 2845 or the SIG(0) record described in RFC 2535 and - RFC 2931 or GSS-TSIG as described in RFC 3645. TSIG relies on + RFC 2931 or GSS-TSIG as described in RFC 3645. + </p> +<p> + TSIG relies on a shared secret that should only be known to - <span><strong class="command">nsupdate</strong></span> and the name server. Currently, - the only supported encryption algorithm for TSIG is HMAC-MD5, - which is defined in RFC 2104. Once other algorithms are - defined for TSIG, applications will need to ensure they select - the appropriate algorithm as well as the key when authenticating - each other. For instance, suitable <span class="type">key</span> and + <span><strong class="command">nsupdate</strong></span> and the name server. + For instance, suitable <span class="type">key</span> and <span class="type">server</span> statements would be added to <code class="filename">/etc/named.conf</code> so that the name server can associate the appropriate secret key and algorithm with the IP address of the client application that will be using - TSIG authentication. SIG(0) uses public key cryptography. + TSIG authentication. You can use <span><strong class="command">ddns-confgen</strong></span> + to generate suitable configuration fragments. + <span><strong class="command">nsupdate</strong></span> + uses the <code class="option">-y</code> or <code class="option">-k</code> options + to provide the TSIG shared secret. These options are mutually exclusive. + </p> +<p> + SIG(0) uses public key cryptography. To use a SIG(0) key, the public key must be stored in a KEY record in a zone served by the name server. - <span><strong class="command">nsupdate</strong></span> does not read - <code class="filename">/etc/named.conf</code>. </p> <p> GSS-TSIG uses Kerberos credentials. Standard GSS-TSIG mode @@ -101,108 +88,119 @@ non-standards-compliant variant of GSS-TSIG used by Windows 2000 can be switched on with the <code class="option">-o</code> flag. </p> -<p><span><strong class="command">nsupdate</strong></span> - uses the <code class="option">-y</code> or <code class="option">-k</code> option - to provide the shared secret needed to generate a TSIG record - for authenticating Dynamic DNS update requests, default type - HMAC-MD5. These options are mutually exclusive. - </p> -<p> - When the <code class="option">-y</code> option is used, a signature is - generated from - [<span class="optional"><em class="parameter"><code>hmac:</code></em></span>]<em class="parameter"><code>keyname:secret.</code></em> - <em class="parameter"><code>keyname</code></em> is the name of the key, and - <em class="parameter"><code>secret</code></em> is the base64 encoded shared secret. - <em class="parameter"><code>hmac</code></em> is the name of the key algorithm; - valid choices are <code class="literal">hmac-md5</code>, - <code class="literal">hmac-sha1</code>, <code class="literal">hmac-sha224</code>, - <code class="literal">hmac-sha256</code>, <code class="literal">hmac-sha384</code>, or - <code class="literal">hmac-sha512</code>. If <em class="parameter"><code>hmac</code></em> - is not specified, the default is <code class="literal">hmac-md5</code>. - NOTE: Use of the <code class="option">-y</code> option is discouraged because the - shared secret is supplied as a command line argument in clear text. - This may be visible in the output from - <span class="citerefentry"><span class="refentrytitle">ps</span>(1)</span> - or in a history file maintained by the user's shell. - </p> -<p> - With the - <code class="option">-k</code> option, <span><strong class="command">nsupdate</strong></span> reads - the shared secret from the file <em class="parameter"><code>keyfile</code></em>. - Keyfiles may be in two formats: a single file containing - a <code class="filename">named.conf</code>-format <span><strong class="command">key</strong></span> - statement, which may be generated automatically by - <span><strong class="command">ddns-confgen</strong></span>, or a pair of files whose names are - of the format <code class="filename">K{name}.+157.+{random}.key</code> and - <code class="filename">K{name}.+157.+{random}.private</code>, which can be - generated by <span><strong class="command">dnssec-keygen</strong></span>. - The <code class="option">-k</code> may also be used to specify a SIG(0) key used - to authenticate Dynamic DNS update requests. In this case, the key - specified is not an HMAC-MD5 key. - </p> -<p> - <span><strong class="command">nsupdate</strong></span> can be run in a local-host only mode - using the <code class="option">-l</code> flag. This sets the server address to - localhost (disabling the <span><strong class="command">server</strong></span> so that the server - address cannot be overridden). Connections to the local server will - use a TSIG key found in <code class="filename">/var/run/named/session.key</code>, - which is automatically generated by <span><strong class="command">named</strong></span> if any - local master zone has set <span><strong class="command">update-policy</strong></span> to - <span><strong class="command">local</strong></span>. The location of this key file can be - overridden with the <code class="option">-k</code> option. - </p> -<p> - By default, <span><strong class="command">nsupdate</strong></span> - uses UDP to send update requests to the name server unless they are too - large to fit in a UDP request in which case TCP will be used. - The - <code class="option">-v</code> - option makes - <span><strong class="command">nsupdate</strong></span> - use a TCP connection. - This may be preferable when a batch of update requests is made. - </p> -<p> - The <code class="option">-p</code> sets the default port number to use for - connections to a name server. The default is 53. - </p> -<p> - The <code class="option">-t</code> option sets the maximum time an update request - can - take before it is aborted. The default is 300 seconds. Zero can be - used - to disable the timeout. - </p> -<p> - The <code class="option">-u</code> option sets the UDP retry interval. The default - is - 3 seconds. If zero, the interval will be computed from the timeout - interval - and number of UDP retries. - </p> -<p> - The <code class="option">-r</code> option sets the number of UDP retries. The - default is - 3. If zero, only one update request will be made. - </p> +</div> +<div class="refsect1" lang="en"> +<a name="id2543564"></a><h2>OPTIONS</h2> +<div class="variablelist"><dl> +<dt><span class="term">-d</span></dt> +<dd><p> + Debug mode. This provides tracing information about the + update requests that are made and the replies received + from the name server. + </p></dd> +<dt><span class="term">-D</span></dt> +<dd><p> + Extra debug mode. + </p></dd> +<dt><span class="term">-k <em class="replaceable"><code>keyfile</code></em></span></dt> +<dd><p> + The file containing the TSIG authentication key. + Keyfiles may be in two formats: a single file containing + a <code class="filename">named.conf</code>-format <span><strong class="command">key</strong></span> + statement, which may be generated automatically by + <span><strong class="command">ddns-confgen</strong></span>, or a pair of files whose names are + of the format <code class="filename">K{name}.+157.+{random}.key</code> and + <code class="filename">K{name}.+157.+{random}.private</code>, which can be + generated by <span><strong class="command">dnssec-keygen</strong></span>. + The <code class="option">-k</code> may also be used to specify a SIG(0) key used + to authenticate Dynamic DNS update requests. In this case, the key + specified is not an HMAC-MD5 key. + </p></dd> +<dt><span class="term">-l</span></dt> +<dd><p> + Local-host only mode. This sets the server address to + localhost (disabling the <span><strong class="command">server</strong></span> so that the server + address cannot be overridden). Connections to the local server will + use a TSIG key found in <code class="filename">/var/run/named/session.key</code>, + which is automatically generated by <span><strong class="command">named</strong></span> if any + local master zone has set <span><strong class="command">update-policy</strong></span> to + <span><strong class="command">local</strong></span>. The location of this key file can be + overridden with the <code class="option">-k</code> option. + </p></dd> +<dt><span class="term">-L <em class="replaceable"><code>level</code></em></span></dt> +<dd><p> + Set the logging debug level. If zero, logging is disabled. + </p></dd> +<dt><span class="term">-p <em class="replaceable"><code>port</code></em></span></dt> +<dd><p> + Set the port to use for connections to a name server. The + default is 53. + </p></dd> +<dt><span class="term">-r <em class="replaceable"><code>udpretries</code></em></span></dt> +<dd><p> + The number of UDP retries. The default is 3. If zero, only + one update request will be made. + </p></dd> +<dt><span class="term">-R <em class="replaceable"><code>randomdev</code></em></span></dt> +<dd><p> + Where to obtain randomness. If the operating system + does not provide a <code class="filename">/dev/random</code> or + equivalent device, the default source of randomness is keyboard + input. <code class="filename">randomdev</code> specifies the name of + a character device or file containing random data to be used + instead of the default. The special value + <code class="filename">keyboard</code> indicates that keyboard input + should be used. This option may be specified multiple times. + </p></dd> +<dt><span class="term">-t <em class="replaceable"><code>timeout</code></em></span></dt> +<dd><p> + The maximum time an update request can take before it is + aborted. The default is 300 seconds. Zero can be used to + disable the timeout. + </p></dd> +<dt><span class="term">-u <em class="replaceable"><code>udptimeout</code></em></span></dt> +<dd><p> + The UDP retry interval. The default is 3 seconds. If zero, + the interval will be computed from the timeout interval and + number of UDP retries. + </p></dd> +<dt><span class="term">-v</span></dt> +<dd><p> + Use TCP even for small update requests. + By default, <span><strong class="command">nsupdate</strong></span> + uses UDP to send update requests to the name server unless they are too + large to fit in a UDP request in which case TCP will be used. + TCP may be preferable when a batch of update requests is made. + </p></dd> +<dt><span class="term">-V</span></dt> +<dd><p> + Print the version number and exit. + </p></dd> +<dt><span class="term">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]keyname:secret</code></em></span></dt> +<dd> <p> - The <code class="option">-R <em class="replaceable"><code>randomdev</code></em></code> option - specifies a source of randomness. If the operating system - does not provide a <code class="filename">/dev/random</code> or - equivalent device, the default source of randomness is keyboard - input. <code class="filename">randomdev</code> specifies the name of - a character device or file containing random data to be used - instead of the default. The special value - <code class="filename">keyboard</code> indicates that keyboard input - should be used. This option may be specified multiple times. - </p> + Literal TSIG authentication key. + <em class="parameter"><code>keyname</code></em> is the name of the key, and + <em class="parameter"><code>secret</code></em> is the base64 encoded shared secret. + <em class="parameter"><code>hmac</code></em> is the name of the key algorithm; + valid choices are <code class="literal">hmac-md5</code>, + <code class="literal">hmac-sha1</code>, <code class="literal">hmac-sha224</code>, + <code class="literal">hmac-sha256</code>, <code class="literal">hmac-sha384</code>, or + <code class="literal">hmac-sha512</code>. If <em class="parameter"><code>hmac</code></em> + is not specified, the default is <code class="literal">hmac-md5</code>. + </p> <p> - The -V option causes <span><strong class="command">nsupdate</strong></span> to print the - version number and exit. - </p> + NOTE: Use of the <code class="option">-y</code> option is discouraged because the + shared secret is supplied as a command line argument in clear text. + This may be visible in the output from + <span class="citerefentry"><span class="refentrytitle">ps</span>(1)</span> + or in a history file maintained by the user's shell. + </p> +</dd> +</dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2543849"></a><h2>INPUT FORMAT</h2> +<a name="id2543963"></a><h2>INPUT FORMAT</h2> <p><span><strong class="command">nsupdate</strong></span> reads input from <em class="parameter"><code>filename</code></em> @@ -232,270 +230,270 @@ </p> <div class="variablelist"><dl> <dt><span class="term"> - <span><strong class="command">server</strong></span> - {servername} - [port] - </span></dt> -<dd><p> - Sends all dynamic update requests to the name server - <em class="parameter"><code>servername</code></em>. - When no server statement is provided, - <span><strong class="command">nsupdate</strong></span> - will send updates to the master server of the correct zone. - The MNAME field of that zone's SOA record will identify the - master - server for that zone. - <em class="parameter"><code>port</code></em> - is the port number on - <em class="parameter"><code>servername</code></em> - where the dynamic update requests get sent. - If no port number is specified, the default DNS port number of - 53 is - used. - </p></dd> + <span><strong class="command">server</strong></span> + {servername} + [port] + </span></dt> +<dd><p> + Sends all dynamic update requests to the name server + <em class="parameter"><code>servername</code></em>. + When no server statement is provided, + <span><strong class="command">nsupdate</strong></span> + will send updates to the master server of the correct zone. + The MNAME field of that zone's SOA record will identify the + master + server for that zone. + <em class="parameter"><code>port</code></em> + is the port number on + <em class="parameter"><code>servername</code></em> + where the dynamic update requests get sent. + If no port number is specified, the default DNS port number of + 53 is + used. + </p></dd> <dt><span class="term"> - <span><strong class="command">local</strong></span> - {address} - [port] - </span></dt> + <span><strong class="command">local</strong></span> + {address} + [port] + </span></dt> <dd><p> - Sends all dynamic update requests using the local - <em class="parameter"><code>address</code></em>. + Sends all dynamic update requests using the local + <em class="parameter"><code>address</code></em>. - When no local statement is provided, - <span><strong class="command">nsupdate</strong></span> - will send updates using an address and port chosen by the - system. - <em class="parameter"><code>port</code></em> - can additionally be used to make requests come from a specific - port. - If no port number is specified, the system will assign one. - </p></dd> + When no local statement is provided, + <span><strong class="command">nsupdate</strong></span> + will send updates using an address and port chosen by the + system. + <em class="parameter"><code>port</code></em> + can additionally be used to make requests come from a specific + port. + If no port number is specified, the system will assign one. + </p></dd> <dt><span class="term"> - <span><strong class="command">zone</strong></span> - {zonename} - </span></dt> -<dd><p> - Specifies that all updates are to be made to the zone - <em class="parameter"><code>zonename</code></em>. - If no - <em class="parameter"><code>zone</code></em> - statement is provided, - <span><strong class="command">nsupdate</strong></span> - will attempt determine the correct zone to update based on the - rest of the input. - </p></dd> + <span><strong class="command">zone</strong></span> + {zonename} + </span></dt> +<dd><p> + Specifies that all updates are to be made to the zone + <em class="parameter"><code>zonename</code></em>. + If no + <em class="parameter"><code>zone</code></em> + statement is provided, + <span><strong class="command">nsupdate</strong></span> + will attempt determine the correct zone to update based on the + rest of the input. + </p></dd> <dt><span class="term"> - <span><strong class="command">class</strong></span> - {classname} - </span></dt> -<dd><p> - Specify the default class. - If no <em class="parameter"><code>class</code></em> is specified, the - default class is - <em class="parameter"><code>IN</code></em>. - </p></dd> + <span><strong class="command">class</strong></span> + {classname} + </span></dt> +<dd><p> + Specify the default class. + If no <em class="parameter"><code>class</code></em> is specified, the + default class is + <em class="parameter"><code>IN</code></em>. + </p></dd> <dt><span class="term"> - <span><strong class="command">ttl</strong></span> - {seconds} - </span></dt> + <span><strong class="command">ttl</strong></span> + {seconds} + </span></dt> <dd><p> - Specify the default time to live for records to be added. + Specify the default time to live for records to be added. The value <em class="parameter"><code>none</code></em> will clear the default ttl. - </p></dd> + </p></dd> <dt><span class="term"> - <span><strong class="command">key</strong></span> - [hmac:] {keyname} - {secret} - </span></dt> -<dd><p> - Specifies that all updates are to be TSIG-signed using the - <em class="parameter"><code>keyname</code></em> <em class="parameter"><code>secret</code></em> pair. - If <em class="parameter"><code>hmac</code></em> is specified, then it sets the - signing algorithm in use; the default is - <code class="literal">hmac-md5</code>. The <span><strong class="command">key</strong></span> - command overrides any key specified on the command line via - <code class="option">-y</code> or <code class="option">-k</code>. - </p></dd> + <span><strong class="command">key</strong></span> + [hmac:] {keyname} + {secret} + </span></dt> +<dd><p> + Specifies that all updates are to be TSIG-signed using the + <em class="parameter"><code>keyname</code></em> <em class="parameter"><code>secret</code></em> pair. + If <em class="parameter"><code>hmac</code></em> is specified, then it sets the + signing algorithm in use; the default is + <code class="literal">hmac-md5</code>. The <span><strong class="command">key</strong></span> + command overrides any key specified on the command line via + <code class="option">-y</code> or <code class="option">-k</code>. + </p></dd> <dt><span class="term"> - <span><strong class="command">gsstsig</strong></span> - </span></dt> + <span><strong class="command">gsstsig</strong></span> + </span></dt> <dd><p> Use GSS-TSIG to sign the updated. This is equivalent to specifying <code class="option">-g</code> on the commandline. - </p></dd> + </p></dd> <dt><span class="term"> - <span><strong class="command">oldgsstsig</strong></span> - </span></dt> + <span><strong class="command">oldgsstsig</strong></span> + </span></dt> <dd><p> Use the Windows 2000 version of GSS-TSIG to sign the updated. This is equivalent to specifying <code class="option">-o</code> on the commandline. - </p></dd> + </p></dd> <dt><span class="term"> - <span><strong class="command">realm</strong></span> - {[<span class="optional">realm_name</span>]} - </span></dt> + <span><strong class="command">realm</strong></span> + {[<span class="optional">realm_name</span>]} + </span></dt> <dd><p> When using GSS-TSIG use <em class="parameter"><code>realm_name</code></em> rather than the default realm in <code class="filename">krb5.conf</code>. If no realm is specified the saved realm is cleared. - </p></dd> + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">prereq</span>] nxdomain</strong></span> - {domain-name} - </span></dt> + <span><strong class="command">[<span class="optional">prereq</span>] nxdomain</strong></span> + {domain-name} + </span></dt> <dd><p> - Requires that no resource record of any type exists with name - <em class="parameter"><code>domain-name</code></em>. - </p></dd> + Requires that no resource record of any type exists with name + <em class="parameter"><code>domain-name</code></em>. + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">prereq</span>] yxdomain</strong></span> - {domain-name} - </span></dt> -<dd><p> - Requires that - <em class="parameter"><code>domain-name</code></em> - exists (has as at least one resource record, of any type). - </p></dd> + <span><strong class="command">[<span class="optional">prereq</span>] yxdomain</strong></span> + {domain-name} + </span></dt> +<dd><p> + Requires that + <em class="parameter"><code>domain-name</code></em> + exists (has as at least one resource record, of any type). + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">prereq</span>] nxrrset</strong></span> - {domain-name} - [class] - {type} - </span></dt> -<dd><p> - Requires that no resource record exists of the specified - <em class="parameter"><code>type</code></em>, - <em class="parameter"><code>class</code></em> - and - <em class="parameter"><code>domain-name</code></em>. - If - <em class="parameter"><code>class</code></em> - is omitted, IN (internet) is assumed. - </p></dd> + <span><strong class="command">[<span class="optional">prereq</span>] nxrrset</strong></span> + {domain-name} + [class] + {type} + </span></dt> +<dd><p> + Requires that no resource record exists of the specified + <em class="parameter"><code>type</code></em>, + <em class="parameter"><code>class</code></em> + and + <em class="parameter"><code>domain-name</code></em>. + If + <em class="parameter"><code>class</code></em> + is omitted, IN (internet) is assumed. + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">prereq</span>] yxrrset</strong></span> - {domain-name} - [class] - {type} - </span></dt> -<dd><p> - This requires that a resource record of the specified - <em class="parameter"><code>type</code></em>, - <em class="parameter"><code>class</code></em> - and - <em class="parameter"><code>domain-name</code></em> - must exist. - If - <em class="parameter"><code>class</code></em> - is omitted, IN (internet) is assumed. - </p></dd> + <span><strong class="command">[<span class="optional">prereq</span>] yxrrset</strong></span> + {domain-name} + [class] + {type} + </span></dt> +<dd><p> + This requires that a resource record of the specified + <em class="parameter"><code>type</code></em>, + <em class="parameter"><code>class</code></em> + and + <em class="parameter"><code>domain-name</code></em> + must exist. + If + <em class="parameter"><code>class</code></em> + is omitted, IN (internet) is assumed. + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">prereq</span>] yxrrset</strong></span> - {domain-name} - [class] - {type} - {data...} - </span></dt> -<dd><p> - The - <em class="parameter"><code>data</code></em> - from each set of prerequisites of this form - sharing a common - <em class="parameter"><code>type</code></em>, - <em class="parameter"><code>class</code></em>, - and - <em class="parameter"><code>domain-name</code></em> - are combined to form a set of RRs. This set of RRs must - exactly match the set of RRs existing in the zone at the - given - <em class="parameter"><code>type</code></em>, - <em class="parameter"><code>class</code></em>, - and - <em class="parameter"><code>domain-name</code></em>. - The - <em class="parameter"><code>data</code></em> - are written in the standard text representation of the resource - record's - RDATA. - </p></dd> + <span><strong class="command">[<span class="optional">prereq</span>] yxrrset</strong></span> + {domain-name} + [class] + {type} + {data...} + </span></dt> +<dd><p> + The + <em class="parameter"><code>data</code></em> + from each set of prerequisites of this form + sharing a common + <em class="parameter"><code>type</code></em>, + <em class="parameter"><code>class</code></em>, + and + <em class="parameter"><code>domain-name</code></em> + are combined to form a set of RRs. This set of RRs must + exactly match the set of RRs existing in the zone at the + given + <em class="parameter"><code>type</code></em>, + <em class="parameter"><code>class</code></em>, + and + <em class="parameter"><code>domain-name</code></em>. + The + <em class="parameter"><code>data</code></em> + are written in the standard text representation of the resource + record's + RDATA. + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">update</span>] del[<span class="optional">ete</span>]</strong></span> - {domain-name} - [ttl] - [class] - [type [data...]] - </span></dt> -<dd><p> - Deletes any resource records named - <em class="parameter"><code>domain-name</code></em>. - If - <em class="parameter"><code>type</code></em> - and - <em class="parameter"><code>data</code></em> - is provided, only matching resource records will be removed. - The internet class is assumed if - <em class="parameter"><code>class</code></em> - is not supplied. The - <em class="parameter"><code>ttl</code></em> - is ignored, and is only allowed for compatibility. - </p></dd> + <span><strong class="command">[<span class="optional">update</span>] del[<span class="optional">ete</span>]</strong></span> + {domain-name} + [ttl] + [class] + [type [data...]] + </span></dt> +<dd><p> + Deletes any resource records named + <em class="parameter"><code>domain-name</code></em>. + If + <em class="parameter"><code>type</code></em> + and + <em class="parameter"><code>data</code></em> + is provided, only matching resource records will be removed. + The internet class is assumed if + <em class="parameter"><code>class</code></em> + is not supplied. The + <em class="parameter"><code>ttl</code></em> + is ignored, and is only allowed for compatibility. + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">update</span>] add</strong></span> - {domain-name} - {ttl} - [class] - {type} - {data...} - </span></dt> -<dd><p> - Adds a new resource record with the specified - <em class="parameter"><code>ttl</code></em>, - <em class="parameter"><code>class</code></em> - and - <em class="parameter"><code>data</code></em>. - </p></dd> + <span><strong class="command">[<span class="optional">update</span>] add</strong></span> + {domain-name} + {ttl} + [class] + {type} + {data...} + </span></dt> +<dd><p> + Adds a new resource record with the specified + <em class="parameter"><code>ttl</code></em>, + <em class="parameter"><code>class</code></em> + and + <em class="parameter"><code>data</code></em>. + </p></dd> <dt><span class="term"> - <span><strong class="command">show</strong></span> - </span></dt> + <span><strong class="command">show</strong></span> + </span></dt> <dd><p> - Displays the current message, containing all of the - prerequisites and - updates specified since the last send. - </p></dd> + Displays the current message, containing all of the + prerequisites and + updates specified since the last send. + </p></dd> <dt><span class="term"> - <span><strong class="command">send</strong></span> - </span></dt> + <span><strong class="command">send</strong></span> + </span></dt> <dd><p> - Sends the current message. This is equivalent to entering a - blank line. - </p></dd> + Sends the current message. This is equivalent to entering a + blank line. + </p></dd> <dt><span class="term"> - <span><strong class="command">answer</strong></span> - </span></dt> + <span><strong class="command">answer</strong></span> + </span></dt> <dd><p> - Displays the answer. - </p></dd> + Displays the answer. + </p></dd> <dt><span class="term"> - <span><strong class="command">debug</strong></span> - </span></dt> + <span><strong class="command">debug</strong></span> + </span></dt> <dd><p> - Turn on debugging. - </p></dd> + Turn on debugging. + </p></dd> <dt><span class="term"> - <span><strong class="command">version</strong></span> - </span></dt> + <span><strong class="command">version</strong></span> + </span></dt> <dd><p> - Print version number. - </p></dd> + Print version number. + </p></dd> <dt><span class="term"> - <span><strong class="command">help</strong></span> - </span></dt> + <span><strong class="command">help</strong></span> + </span></dt> <dd><p> - Print a list of commands. - </p></dd> + Print a list of commands. + </p></dd> </dl></div> <p> </p> @@ -504,7 +502,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2544823"></a><h2>EXAMPLES</h2> +<a name="id2545067"></a><h2>EXAMPLES</h2> <p> The examples below show how <span><strong class="command">nsupdate</strong></span> @@ -558,30 +556,30 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2544867"></a><h2>FILES</h2> +<a name="id2545111"></a><h2>FILES</h2> <div class="variablelist"><dl> <dt><span class="term"><code class="constant">/etc/resolv.conf</code></span></dt> <dd><p> - used to identify default name server - </p></dd> + used to identify default name server + </p></dd> <dt><span class="term"><code class="constant">/var/run/named/session.key</code></span></dt> <dd><p> - sets the default TSIG key for use in local-only mode - </p></dd> + sets the default TSIG key for use in local-only mode + </p></dd> <dt><span class="term"><code class="constant">K{name}.+157.+{random}.key</code></span></dt> <dd><p> - base-64 encoding of HMAC-MD5 key created by - <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>. - </p></dd> + base-64 encoding of HMAC-MD5 key created by + <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>. + </p></dd> <dt><span class="term"><code class="constant">K{name}.+157.+{random}.private</code></span></dt> <dd><p> - base-64 encoding of HMAC-MD5 key created by - <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>. - </p></dd> + base-64 encoding of HMAC-MD5 key created by + <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>. + </p></dd> </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2544950"></a><h2>SEE ALSO</h2> +<a name="id2545197"></a><h2>SEE ALSO</h2> <p> <em class="citetitle">RFC 2136</em>, <em class="citetitle">RFC 3007</em>, @@ -596,7 +594,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2542004"></a><h2>BUGS</h2> +<a name="id2545255"></a><h2>BUGS</h2> <p> The TSIG key is redundantly stored in two separate files. This is a consequence of nsupdate using the DST library diff --git a/bin/rndc/rndc.8 b/bin/rndc/rndc.8 index 27887cf08192..503108e69216 100644 --- a/bin/rndc/rndc.8 +++ b/bin/rndc/rndc.8 @@ -1,4 +1,4 @@ -.\" Copyright (C) 2004, 2005, 2007, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") +.\" Copyright (C) 2004, 2005, 2007, 2013-2015 Internet Systems Consortium, Inc. ("ISC") .\" Copyright (C) 2000, 2001 Internet Software Consortium. .\" .\" Permission to use, copy, modify, and/or distribute this software for any @@ -107,7 +107,9 @@ Use the key \fIkey_id\fR from the configuration file. \fIkey_id\fR -must be known by named with the same algorithm and secret string in order for control message validation to succeed. If no +must be known by +\fBnamed\fR +with the same algorithm and secret string in order for control message validation to succeed. If no \fIkey_id\fR is specified, \fBrndc\fR @@ -123,69 +125,101 @@ without arguments. .PP Currently supported commands are: .PP -\fBreload\fR +\fBaddzone \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR\fB \fR\fB\fIconfiguration\fR\fR\fB \fR .RS 4 -Reload configuration file and zones. +Add a zone while the server is running. This command requires the +\fBallow\-new\-zones\fR +option to be set to +\fByes\fR. The +\fIconfiguration\fR +string specified on the command line is the zone configuration text that would ordinarily be placed in +\fInamed.conf\fR. +.sp +The configuration is saved in a file called +\fI\fIhash\fR\fR\fI.nzf\fR, where +\fIhash\fR +is a cryptographic hash generated from the name of the view. When +\fBnamed\fR +is restarted, the file will be loaded into the view configuration, so that zones that were added can persist after a restart. +.sp +This sample +\fBaddzone\fR +command would add the zone +example.com +to the default view: +.sp +$\fBrndc addzone example.com '{ type master; file "example.com.db"; };'\fR +.sp +(Note the brackets and semi\-colon around the zone configuration text.) +.sp +See also +\fBrndc delzone\fR. .RE .PP -\fBreload \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR +\fBdelzone \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR\fB \fR .RS 4 -Reload the given zone. +Delete a zone while the server is running. Only zones that were originally added via +\fBrndc addzone\fR +can be deleted in this manner. +.sp +See also +\fBrndc addzone\fR .RE .PP -\fBrefresh \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR +\fBdumpdb \fR\fB[\-all|\-cache|\-zone|\-adb|\-bad]\fR\fB \fR\fB[\fIview ...\fR]\fR .RS 4 -Schedule zone maintenance for the given zone. +Dump the server's caches (default) and/or zones to the dump file for the specified views. If no view is specified, all views are dumped. (See the +\fBdump\-file\fR +option in the BIND 9 Administrator Reference Manual.) .RE .PP -\fBretransfer \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR +\fBflush\fR .RS 4 -Retransfer the given slave zone from the master server. -.sp -If the zone is configured to use -\fBinline\-signing\fR, the signed version of the zone is discarded; after the retransfer of the unsigned version is complete, the signed version will be regenerated with all new signatures. +Flushes the server's cache. .RE .PP -\fBsign \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR +\fBflushname\fR \fIname\fR [\fIview\fR] .RS 4 -Fetch all DNSSEC keys for the given zone from the key directory (see the -\fBkey\-directory\fR -option in the BIND 9 Administrator Reference Manual). If they are within their publication period, merge them into the zone's DNSKEY RRset. If the DNSKEY RRset is changed, then the zone is automatically re\-signed with the new key set. -.sp -This command requires that the -\fBauto\-dnssec\fR -zone option be set to -allow -or -maintain, and also requires the zone to be configured to allow dynamic DNS. (See "Dynamic Update Policies" in the Administrator Reference Manual for more details.) +Flushes the given name from the view's DNS cache and, if applicable, from the view's nameserver address database or bad\-server cache. .RE .PP -\fBloadkeys \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR +\fBflushtree\fR \fIname\fR [\fIview\fR] .RS 4 -Fetch all DNSSEC keys for the given zone from the key directory. If they are within their publication period, merge them into the zone's DNSKEY RRset. Unlike -\fBrndc sign\fR, however, the zone is not immediately re\-signed by the new keys, but is allowed to incrementally re\-sign over time. -.sp -This command requires that the -\fBauto\-dnssec\fR -zone option be set to -maintain, and also requires the zone to be configured to allow dynamic DNS. (See "Dynamic Update Policies" in the Administrator Reference Manual for more details.) +Flushes the given name, and all of its subdomains, from the view's DNS cache. Note that this does +\fInot\fR +affect he server's address database or bad\-server cache. .RE .PP \fBfreeze \fR\fB[\fIzone\fR [\fIclass\fR [\fIview\fR]]]\fR .RS 4 Suspend updates to a dynamic zone. If no zone is specified, then all zones are suspended. This allows manual edits to be made to a zone normally updated by dynamic update. It also causes changes in the journal file to be synced into the master file. All dynamic update attempts will be refused while the zone is frozen. +.sp +See also +\fBrndc thaw\fR. .RE .PP -\fBthaw \fR\fB[\fIzone\fR [\fIclass\fR [\fIview\fR]]]\fR +\fBhalt \fR\fB[\-p]\fR .RS 4 -Enable updates to a frozen dynamic zone. If no zone is specified, then all frozen zones are enabled. This causes the server to reload the zone from disk, and re\-enables dynamic updates after the load has completed. After a zone is thawed, dynamic updates will no longer be refused. If the zone has changed and the -\fBixfr\-from\-differences\fR -option is in use, then the journal file will be updated to reflect changes in the zone. Otherwise, if the zone has changed, any existing journal file will be removed. +Stop the server immediately. Recent changes made through dynamic update or IXFR are not saved to the master files, but will be rolled forward from the journal files when the server is restarted. If +\fB\-p\fR +is specified +\fBnamed\fR's process id is returned. This allows an external process to determine when +\fBnamed\fR +had completed halting. +.sp +See also +\fBrndc stop\fR. .RE .PP -\fBsync \fR\fB[\-clean]\fR\fB \fR\fB[\fIzone\fR [\fIclass\fR [\fIview\fR]]]\fR +\fBloadkeys \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR .RS 4 -Sync changes in the journal file for a dynamic zone to the master file. If the "\-clean" option is specified, the journal file is also removed. If no zone is specified, then all zones are synced. +Fetch all DNSSEC keys for the given zone from the key directory. If they are within their publication period, merge them into the zone's DNSKEY RRset. Unlike +\fBrndc sign\fR, however, the zone is not immediately re\-signed by the new keys, but is allowed to incrementally re\-sign over time. +.sp +This command requires that the +\fBauto\-dnssec\fR +zone option be set to +maintain, and also requires the zone to be configured to allow dynamic DNS. (See "Dynamic Update Policies" in the Administrator Reference Manual for more details.) .RE .PP \fBnotify \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR @@ -193,16 +227,12 @@ Sync changes in the journal file for a dynamic zone to the master file. If the " Resend NOTIFY messages for the zone. .RE .PP -\fBreconfig\fR -.RS 4 -Reload the configuration file and load new zones, but do not reload existing zone files even if they have changed. This is faster than a full -\fBreload\fR -when there is a large number of zones because it avoids the need to examine the modification times of the zones files. -.RE -.PP -\fBstats\fR +\fBnotrace\fR .RS 4 -Write server statistics to the statistics file. +Sets the server's debugging level to 0. +.sp +See also +\fBrndc trace\fR. .RE .PP \fBquerylog\fR [on|off] @@ -226,140 +256,65 @@ section of \fInamed.conf\fR. .RE .PP -\fBdumpdb \fR\fB[\-all|\-cache|\-zone]\fR\fB \fR\fB[\fIview ...\fR]\fR -.RS 4 -Dump the server's caches (default) and/or zones to the dump file for the specified views. If no view is specified, all views are dumped. -.RE -.PP -\fBsecroots \fR\fB[\fIview ...\fR]\fR -.RS 4 -Dump the server's security roots to the secroots file for the specified views. If no view is specified, security roots for all views are dumped. -.RE -.PP -\fBstop \fR\fB[\-p]\fR +\fBreconfig\fR .RS 4 -Stop the server, making sure any recent changes made through dynamic update or IXFR are first saved to the master files of the updated zones. If -\fB\-p\fR -is specified -\fBnamed\fR's process id is returned. This allows an external process to determine when -\fBnamed\fR -had completed stopping. +Reload the configuration file and load new zones, but do not reload existing zone files even if they have changed. This is faster than a full +\fBreload\fR +when there is a large number of zones because it avoids the need to examine the modification times of the zones files. .RE .PP -\fBhalt \fR\fB[\-p]\fR +\fBrecursing\fR .RS 4 -Stop the server immediately. Recent changes made through dynamic update or IXFR are not saved to the master files, but will be rolled forward from the journal files when the server is restarted. If -\fB\-p\fR -is specified -\fBnamed\fR's process id is returned. This allows an external process to determine when +Dump the list of queries \fBnamed\fR -had completed halting. -.RE -.PP -\fBtrace\fR -.RS 4 -Increment the servers debugging level by one. -.RE -.PP -\fBtrace \fR\fB\fIlevel\fR\fR -.RS 4 -Sets the server's debugging level to an explicit value. -.RE -.PP -\fBnotrace\fR -.RS 4 -Sets the server's debugging level to 0. -.RE -.PP -\fBflush\fR -.RS 4 -Flushes the server's cache. -.RE -.PP -\fBflushname\fR \fIname\fR [\fIview\fR] -.RS 4 -Flushes the given name from the server's DNS cache and, if applicable, from the server's nameserver address database or bad\-server cache. +is currently recursing on, and the list of domains to which iterative queries are currently being sent. (The second list includes the number of fetches currently active for the given domain, and how many have been passed or dropped because of the +\fBfetches\-per\-zone\fR +option.) .RE .PP -\fBflushtree\fR \fIname\fR [\fIview\fR] -.RS 4 -Flushes the given name, and all of its subdomains, from the server's DNS cache. Note that this does -\fInot\fR -affect he server's address database or bad\-server cache. -.RE -.PP -\fBstatus\fR +\fBrefresh \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR .RS 4 -Display status of the server. Note that the number of zones includes the internal -\fBbind/CH\fR -zone and the default -\fB./IN\fR -hint zone if there is not an explicit root zone configured. +Schedule zone maintenance for the given zone. .RE .PP -\fBrecursing\fR +\fBreload\fR .RS 4 -Dump the list of queries -\fBnamed\fR -is currently recursing on. +Reload configuration file and zones. .RE .PP -\fBvalidation ( on | off | check ) \fR\fB[\fIview ...\fR]\fR\fB \fR +\fBreload \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR .RS 4 -Enable, disable, or check the current status of DNSSEC validation. Note -\fBdnssec\-enable\fR -also needs to be set to -\fByes\fR -or -\fBauto\fR -to be effective. It defaults to enabled. +Reload the given zone. .RE .PP -\fBtsig\-list\fR +\fBretransfer \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR .RS 4 -List the names of all TSIG keys currently configured for use by -\fBnamed\fR -in each view. The list both statically configured keys and dynamic TKEY\-negotiated keys. +Retransfer the given slave zone from the master server. +.sp +If the zone is configured to use +\fBinline\-signing\fR, the signed version of the zone is discarded; after the retransfer of the unsigned version is complete, the signed version will be regenerated with all new signatures. .RE .PP -\fBtsig\-delete\fR \fIkeyname\fR [\fIview\fR] +\fBsecroots \fR\fB[\fIview ...\fR]\fR .RS 4 -Delete a given TKEY\-negotiated key from the server. (This does not apply to statically configured TSIG keys.) +Dump the server's security roots to the secroots file for the specified views. If no view is specified, security roots for all views are dumped. .RE .PP -\fBaddzone \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR\fB \fR\fB\fIconfiguration\fR\fR\fB \fR +\fBsign \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR .RS 4 -Add a zone while the server is running. This command requires the -\fBallow\-new\-zones\fR -option to be set to -\fByes\fR. The -\fIconfiguration\fR -string specified on the command line is the zone configuration text that would ordinarily be placed in -\fInamed.conf\fR. -.sp -The configuration is saved in a file called -\fI\fIhash\fR\fR\fI.nzf\fR, where -\fIhash\fR -is a cryptographic hash generated from the name of the view. When -\fBnamed\fR -is restarted, the file will be loaded into the view configuration, so that zones that were added can persist after a restart. -.sp -This sample -\fBaddzone\fR -command would add the zone -example.com -to the default view: +Fetch all DNSSEC keys for the given zone from the key directory (see the +\fBkey\-directory\fR +option in the BIND 9 Administrator Reference Manual). If they are within their publication period, merge them into the zone's DNSKEY RRset. If the DNSKEY RRset is changed, then the zone is automatically re\-signed with the new key set. .sp -$\fBrndc addzone example.com '{ type master; file "example.com.db"; };'\fR +This command requires that the +\fBauto\-dnssec\fR +zone option be set to +allow +or +maintain, and also requires the zone to be configured to allow dynamic DNS. (See "Dynamic Update Policies" in the Administrator Reference Manual for more details.) .sp -(Note the brackets and semi\-colon around the zone configuration text.) -.RE -.PP -\fBdelzone \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR\fB \fR -.RS 4 -Delete a zone while the server is running. Only zones that were originally added via -\fBrndc addzone\fR -can be deleted in this manner. +See also +\fBrndc loadkeys\fR. .RE .PP \fBsigning \fR\fB[( \-list | \-clear \fIkeyid/algorithm\fR | \-clear all | \-nsec3param ( \fIparameters\fR | none ) ) ]\fR\fB \fR\fB\fIzone\fR\fR\fB \fR\fB[\fIclass\fR [\fIview\fR]]\fR\fB \fR @@ -398,6 +353,86 @@ So, for example, to create an NSEC3 chain using the SHA\-1 hash algorithm, no op \fBrndc signing \-nsec3param none\fR removes an existing NSEC3 chain and replaces it with NSEC. .RE +.PP +\fBstats\fR +.RS 4 +Write server statistics to the statistics file. (See the +\fBstatistics\-file\fR +option in the BIND 9 Administrator Reference Manual.) +.RE +.PP +\fBstatus\fR +.RS 4 +Display status of the server. Note that the number of zones includes the internal +\fBbind/CH\fR +zone and the default +\fB./IN\fR +hint zone if there is not an explicit root zone configured. +.RE +.PP +\fBstop \fR\fB[\-p]\fR +.RS 4 +Stop the server, making sure any recent changes made through dynamic update or IXFR are first saved to the master files of the updated zones. If +\fB\-p\fR +is specified +\fBnamed\fR's process id is returned. This allows an external process to determine when +\fBnamed\fR +had completed stopping. +.sp +See also +\fBrndc halt\fR. +.RE +.PP +\fBsync \fR\fB[\-clean]\fR\fB \fR\fB[\fIzone\fR [\fIclass\fR [\fIview\fR]]]\fR +.RS 4 +Sync changes in the journal file for a dynamic zone to the master file. If the "\-clean" option is specified, the journal file is also removed. If no zone is specified, then all zones are synced. +.RE +.PP +\fBthaw \fR\fB[\fIzone\fR [\fIclass\fR [\fIview\fR]]]\fR +.RS 4 +Enable updates to a frozen dynamic zone. If no zone is specified, then all frozen zones are enabled. This causes the server to reload the zone from disk, and re\-enables dynamic updates after the load has completed. After a zone is thawed, dynamic updates will no longer be refused. If the zone has changed and the +\fBixfr\-from\-differences\fR +option is in use, then the journal file will be updated to reflect changes in the zone. Otherwise, if the zone has changed, any existing journal file will be removed. +.sp +See also +\fBrndc freeze\fR. +.RE +.PP +\fBtrace\fR +.RS 4 +Increment the servers debugging level by one. +.RE +.PP +\fBtrace \fR\fB\fIlevel\fR\fR +.RS 4 +Sets the server's debugging level to an explicit value. +.sp +See also +\fBrndc notrace\fR. +.RE +.PP +\fBtsig\-delete\fR \fIkeyname\fR [\fIview\fR] +.RS 4 +Delete a given TKEY\-negotiated key from the server. (This does not apply to statically configured TSIG keys.) +.RE +.PP +\fBtsig\-list\fR +.RS 4 +List the names of all TSIG keys currently configured for use by +\fBnamed\fR +in each view. The list both statically configured keys and dynamic TKEY\-negotiated keys. +.RE +.PP +\fBvalidation ( on | off | check ) \fR\fB[\fIview ...\fR]\fR\fB \fR +.RS 4 +Enable, disable, or check the current status of DNSSEC validation. Note +\fBdnssec\-enable\fR +also needs to be set to +\fByes\fR +or +\fBauto\fR +to be effective. It defaults to enabled. +.RE .SH "LIMITATIONS" .PP There is currently no way to provide the shared secret for a @@ -417,7 +452,7 @@ BIND 9 Administrator Reference Manual. .PP Internet Systems Consortium .SH "COPYRIGHT" -Copyright \(co 2004, 2005, 2007, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") +Copyright \(co 2004, 2005, 2007, 2013\-2015 Internet Systems Consortium, Inc. ("ISC") .br Copyright \(co 2000, 2001 Internet Software Consortium. .br diff --git a/bin/rndc/rndc.c b/bin/rndc/rndc.c index 87e966937e3d..c7d8fe1f8431 100644 --- a/bin/rndc/rndc.c +++ b/bin/rndc/rndc.c @@ -32,6 +32,7 @@ #include <isc/log.h> #include <isc/net.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/random.h> #include <isc/socket.h> #include <isc/stdtime.h> @@ -103,7 +104,7 @@ command is one of the following:\n\ Add zone to given view. Requires new-zone-file option.\n\ delzone zone [class [view]]\n\ Removes zone from given view. Requires new-zone-file option.\n\ - dumpdb [-all|-cache|-zones] [view ...]\n\ + dumpdb [-all|-cache|-zones|-adb|-bad|-fail] [view ...]\n\ Dump cache(s) to the dump file (named_dump.db).\n\ flush Flushes all of the server's caches.\n\ flush [view] Flushes the server's cache for a view.\n\ diff --git a/bin/rndc/rndc.docbook b/bin/rndc/rndc.docbook index 5de34d27a3b8..141ce5f37ca2 100644 --- a/bin/rndc/rndc.docbook +++ b/bin/rndc/rndc.docbook @@ -1,8 +1,8 @@ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" - "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" + "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [<!ENTITY mdash "—">]> <!-- - - Copyright (C) 2004, 2005, 2007, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + - Copyright (C) 2004, 2005, 2007, 2013-2015 Internet Systems Consortium, Inc. ("ISC") - Copyright (C) 2000, 2001 Internet Software Consortium. - - Permission to use, copy, modify, and/or distribute this software for any @@ -41,6 +41,7 @@ <year>2007</year> <year>2013</year> <year>2014</year> + <year>2015</year> <holder>Internet Systems Consortium, Inc. ("ISC")</holder> </copyright> <copyright> @@ -99,99 +100,99 @@ <variablelist> <varlistentry> - <term>-b <replaceable class="parameter">source-address</replaceable></term> - <listitem> - <para> - Use <replaceable class="parameter">source-address</replaceable> - as the source address for the connection to the server. - Multiple instances are permitted to allow setting of both - the IPv4 and IPv6 source addresses. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>-c <replaceable class="parameter">config-file</replaceable></term> - <listitem> - <para> - Use <replaceable class="parameter">config-file</replaceable> - as the configuration file instead of the default, - <filename>/etc/rndc.conf</filename>. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>-k <replaceable class="parameter">key-file</replaceable></term> - <listitem> - <para> - Use <replaceable class="parameter">key-file</replaceable> - as the key file instead of the default, - <filename>/etc/rndc.key</filename>. The key in - <filename>/etc/rndc.key</filename> will be used to - authenticate - commands sent to the server if the <replaceable class="parameter">config-file</replaceable> - does not exist. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>-s <replaceable class="parameter">server</replaceable></term> - <listitem> - <para><replaceable class="parameter">server</replaceable> is - the name or address of the server which matches a - server statement in the configuration file for - <command>rndc</command>. If no server is supplied on the - command line, the host named by the default-server clause - in the options statement of the <command>rndc</command> + <term>-b <replaceable class="parameter">source-address</replaceable></term> + <listitem> + <para> + Use <replaceable class="parameter">source-address</replaceable> + as the source address for the connection to the server. + Multiple instances are permitted to allow setting of both + the IPv4 and IPv6 source addresses. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-c <replaceable class="parameter">config-file</replaceable></term> + <listitem> + <para> + Use <replaceable class="parameter">config-file</replaceable> + as the configuration file instead of the default, + <filename>/etc/rndc.conf</filename>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-k <replaceable class="parameter">key-file</replaceable></term> + <listitem> + <para> + Use <replaceable class="parameter">key-file</replaceable> + as the key file instead of the default, + <filename>/etc/rndc.key</filename>. The key in + <filename>/etc/rndc.key</filename> will be used to + authenticate + commands sent to the server if the <replaceable class="parameter">config-file</replaceable> + does not exist. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-s <replaceable class="parameter">server</replaceable></term> + <listitem> + <para><replaceable class="parameter">server</replaceable> is + the name or address of the server which matches a + server statement in the configuration file for + <command>rndc</command>. If no server is supplied on the + command line, the host named by the default-server clause + in the options statement of the <command>rndc</command> configuration file will be used. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>-p <replaceable class="parameter">port</replaceable></term> - <listitem> - <para> - Send commands to TCP port - <replaceable class="parameter">port</replaceable> - instead - of BIND 9's default control channel port, 953. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>-V</term> - <listitem> - <para> - Enable verbose logging. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>-y <replaceable class="parameter">key_id</replaceable></term> - <listitem> - <para> - Use the key <replaceable class="parameter">key_id</replaceable> - from the configuration file. - <replaceable class="parameter">key_id</replaceable> - must be - known by named with the same algorithm and secret string - in order for control message validation to succeed. - If no <replaceable class="parameter">key_id</replaceable> - is specified, <command>rndc</command> will first look - for a key clause in the server statement of the server - being used, or if no server statement is present for that - host, then the default-key clause of the options statement. - Note that the configuration file contains shared secrets - which are used to send authenticated control commands - to name servers. It should therefore not have general read - or write access. - </para> - </listitem> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-p <replaceable class="parameter">port</replaceable></term> + <listitem> + <para> + Send commands to TCP port + <replaceable class="parameter">port</replaceable> + instead + of BIND 9's default control channel port, 953. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-V</term> + <listitem> + <para> + Enable verbose logging. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>-y <replaceable class="parameter">key_id</replaceable></term> + <listitem> + <para> + Use the key <replaceable class="parameter">key_id</replaceable> + from the configuration file. + <replaceable class="parameter">key_id</replaceable> + must be + known by <command>named</command> with the same algorithm and secret string + in order for control message validation to succeed. + If no <replaceable class="parameter">key_id</replaceable> + is specified, <command>rndc</command> will first look + for a key clause in the server statement of the server + being used, or if no server statement is present for that + host, then the default-key clause of the options statement. + Note that the configuration file contains shared secrets + which are used to send authenticated control commands + to name servers. It should therefore not have general read + or write access. + </para> + </listitem> </varlistentry> </variablelist> @@ -208,489 +209,522 @@ </para> <variablelist> - <varlistentry> - <term><userinput>reload</userinput></term> - <listitem> - <para> - Reload configuration file and zones. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>reload <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term> - <listitem> - <para> - Reload the given zone. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>refresh <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term> - <listitem> - <para> - Schedule zone maintenance for the given zone. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>retransfer <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term> - <listitem> - <para> - Retransfer the given slave zone from the master server. - </para> - <para> - If the zone is configured to use - <command>inline-signing</command>, the signed - version of the zone is discarded; after the - retransfer of the unsigned version is complete, the - signed version will be regenerated with all new - signatures. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>sign <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term> - <listitem> - <para> - Fetch all DNSSEC keys for the given zone - from the key directory (see the - <command>key-directory</command> option in - the BIND 9 Administrator Reference Manual). If they are within - their publication period, merge them into the - zone's DNSKEY RRset. If the DNSKEY RRset - is changed, then the zone is automatically - re-signed with the new key set. - </para> - <para> - This command requires that the - <command>auto-dnssec</command> zone option be set - to <literal>allow</literal> or - <literal>maintain</literal>, - and also requires the zone to be configured to - allow dynamic DNS. - (See "Dynamic Update Policies" in the Administrator - Reference Manual for more details.) - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>loadkeys <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term> - <listitem> - <para> - Fetch all DNSSEC keys for the given zone - from the key directory. If they are within - their publication period, merge them into the - zone's DNSKEY RRset. Unlike <command>rndc - sign</command>, however, the zone is not - immediately re-signed by the new keys, but is - allowed to incrementally re-sign over time. - </para> - <para> - This command requires that the - <command>auto-dnssec</command> zone option - be set to <literal>maintain</literal>, - and also requires the zone to be configured to - allow dynamic DNS. - (See "Dynamic Update Policies" in the Administrator - Reference Manual for more details.) - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>freeze <optional><replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term> - <listitem> - <para> - Suspend updates to a dynamic zone. If no zone is - specified, then all zones are suspended. This allows - manual edits to be made to a zone normally updated by - dynamic update. It also causes changes in the - journal file to be synced into the master file. - All dynamic update attempts will be refused while - the zone is frozen. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>thaw <optional><replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term> - <listitem> - <para> - Enable updates to a frozen dynamic zone. If no - zone is specified, then all frozen zones are - enabled. This causes the server to reload the zone - from disk, and re-enables dynamic updates after the - load has completed. After a zone is thawed, - dynamic updates will no longer be refused. If - the zone has changed and the - <command>ixfr-from-differences</command> option is - in use, then the journal file will be updated to - reflect changes in the zone. Otherwise, if the - zone has changed, any existing journal file will be - removed. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>sync <optional>-clean</optional> <optional><replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term> - <listitem> - <para> - Sync changes in the journal file for a dynamic zone - to the master file. If the "-clean" option is - specified, the journal file is also removed. If - no zone is specified, then all zones are synced. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>notify <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term> - <listitem> - <para> - Resend NOTIFY messages for the zone. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>reconfig</userinput></term> - <listitem> - <para> - Reload the configuration file and load new zones, - but do not reload existing zone files even if they - have changed. - This is faster than a full <command>reload</command> when there - is a large number of zones because it avoids the need - to examine the - modification times of the zones files. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>stats</userinput></term> - <listitem> - <para> - Write server statistics to the statistics file. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>querylog</userinput> <optional>on|off</optional> </term> - <listitem> - <para> - Enable or disable query logging. (For backward - compatibility, this command can also be used without - an argument to toggle query logging on and off.) - </para> - <para> - Query logging can also be enabled - by explicitly directing the <command>queries</command> - <command>category</command> to a - <command>channel</command> in the - <command>logging</command> section of - <filename>named.conf</filename> or by specifying - <command>querylog yes;</command> in the - <command>options</command> section of - <filename>named.conf</filename>. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>dumpdb <optional>-all|-cache|-zone</optional> <optional><replaceable>view ...</replaceable></optional></userinput></term> - <listitem> - <para> - Dump the server's caches (default) and/or zones to - the - dump file for the specified views. If no view is - specified, all - views are dumped. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>secroots <optional><replaceable>view ...</replaceable></optional></userinput></term> - <listitem> - <para> - Dump the server's security roots to the secroots - file for the specified views. If no view is - specified, security roots for all - views are dumped. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>stop <optional>-p</optional></userinput></term> - <listitem> - <para> - Stop the server, making sure any recent changes - made through dynamic update or IXFR are first saved to - the master files of the updated zones. - If <option>-p</option> is specified <command>named</command>'s process id is returned. - This allows an external process to determine when <command>named</command> - had completed stopping. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>halt <optional>-p</optional></userinput></term> - <listitem> - <para> - Stop the server immediately. Recent changes - made through dynamic update or IXFR are not saved to - the master files, but will be rolled forward from the - journal files when the server is restarted. - If <option>-p</option> is specified <command>named</command>'s process id is returned. - This allows an external process to determine when <command>named</command> - had completed halting. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>trace</userinput></term> - <listitem> - <para> - Increment the servers debugging level by one. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>trace <replaceable>level</replaceable></userinput></term> - <listitem> - <para> - Sets the server's debugging level to an explicit - value. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>notrace</userinput></term> - <listitem> - <para> - Sets the server's debugging level to 0. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>flush</userinput></term> - <listitem> - <para> - Flushes the server's cache. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>flushname</userinput> <replaceable>name</replaceable> <optional><replaceable>view</replaceable></optional> </term> - <listitem> - <para> - Flushes the given name from the server's DNS cache - and, if applicable, from the server's nameserver address - database or bad-server cache. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>flushtree</userinput> <replaceable>name</replaceable> <optional><replaceable>view</replaceable></optional> </term> - <listitem> - <para> - Flushes the given name, and all of its subdomains, - from the server's DNS cache. Note that this does - <emphasis>not</emphasis> affect he server's address - database or bad-server cache. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>status</userinput></term> - <listitem> - <para> - Display status of the server. - Note that the number of zones includes the internal <command>bind/CH</command> zone - and the default <command>./IN</command> - hint zone if there is not an - explicit root zone configured. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>recursing</userinput></term> - <listitem> - <para> - Dump the list of queries <command>named</command> is currently recursing - on. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>validation ( on | off | check ) <optional><replaceable>view ...</replaceable></optional> </userinput></term> - <listitem> - <para> - Enable, disable, or check the current status of - DNSSEC validation. - Note <command>dnssec-enable</command> also needs to be - set to <userinput>yes</userinput> or - <userinput>auto</userinput> to be effective. - It defaults to enabled. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>tsig-list</userinput></term> - <listitem> - <para> - List the names of all TSIG keys currently configured - for use by <command>named</command> in each view. The - list both statically configured keys and dynamic - TKEY-negotiated keys. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><userinput>tsig-delete</userinput> <replaceable>keyname</replaceable> <optional><replaceable>view</replaceable></optional></term> - <listitem> - <para> - Delete a given TKEY-negotiated key from the server. - (This does not apply to statically configured TSIG - keys.) - </para> - </listitem> - </varlistentry> <varlistentry> - <term><userinput>addzone <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional> <replaceable>configuration</replaceable> </userinput></term> - <listitem> - <para> - Add a zone while the server is running. This - command requires the - <command>allow-new-zones</command> option to be set - to <userinput>yes</userinput>. The - <replaceable>configuration</replaceable> string - specified on the command line is the zone - configuration text that would ordinarily be - placed in <filename>named.conf</filename>. - </para> - <para> - The configuration is saved in a file called - <filename><replaceable>hash</replaceable>.nzf</filename>, - where <replaceable>hash</replaceable> is a - cryptographic hash generated from the name of - the view. When <command>named</command> is - restarted, the file will be loaded into the view - configuration, so that zones that were added - can persist after a restart. - </para> - <para> - This sample <command>addzone</command> command - would add the zone <literal>example.com</literal> - to the default view: - </para> - <para> + <term><userinput>addzone <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional> <replaceable>configuration</replaceable> </userinput></term> + <listitem> + <para> + Add a zone while the server is running. This + command requires the + <command>allow-new-zones</command> option to be set + to <userinput>yes</userinput>. The + <replaceable>configuration</replaceable> string + specified on the command line is the zone + configuration text that would ordinarily be + placed in <filename>named.conf</filename>. + </para> + <para> + The configuration is saved in a file called + <filename><replaceable>hash</replaceable>.nzf</filename>, + where <replaceable>hash</replaceable> is a + cryptographic hash generated from the name of + the view. When <command>named</command> is + restarted, the file will be loaded into the view + configuration, so that zones that were added + can persist after a restart. + </para> + <para> + This sample <command>addzone</command> command + would add the zone <literal>example.com</literal> + to the default view: + </para> + <para> <prompt>$ </prompt><userinput>rndc addzone example.com '{ type master; file "example.com.db"; };'</userinput> - </para> - <para> - (Note the brackets and semi-colon around the zone - configuration text.) - </para> - </listitem> + </para> + <para> + (Note the brackets and semi-colon around the zone + configuration text.) + </para> + <para> + See also <command>rndc delzone</command>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>delzone <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional> </userinput></term> + <listitem> + <para> + Delete a zone while the server is running. + Only zones that were originally added via + <command>rndc addzone</command> can be deleted + in this manner. + </para> + <para> + See also <command>rndc addzone</command> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>dumpdb <optional>-all|-cache|-zone|-adb|-bad</optional> <optional><replaceable>view ...</replaceable></optional></userinput></term> + <listitem> + <para> + Dump the server's caches (default) and/or zones to + the + dump file for the specified views. If no view is + specified, all + views are dumped. + (See the <command>dump-file</command> option in + the BIND 9 Administrator Reference Manual.) + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>flush</userinput></term> + <listitem> + <para> + Flushes the server's cache. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>flushname</userinput> <replaceable>name</replaceable> <optional><replaceable>view</replaceable></optional> </term> + <listitem> + <para> + Flushes the given name from the view's DNS cache + and, if applicable, from the view's nameserver address + database or bad-server cache. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>flushtree</userinput> <replaceable>name</replaceable> <optional><replaceable>view</replaceable></optional> </term> + <listitem> + <para> + Flushes the given name, and all of its subdomains, + from the view's DNS cache. Note that this does + <emphasis>not</emphasis> affect he server's address + database or bad-server cache. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>freeze <optional><replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term> + <listitem> + <para> + Suspend updates to a dynamic zone. If no zone is + specified, then all zones are suspended. This allows + manual edits to be made to a zone normally updated by + dynamic update. It also causes changes in the + journal file to be synced into the master file. + All dynamic update attempts will be refused while + the zone is frozen. + </para> + <para> + See also <command>rndc thaw</command>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>halt <optional>-p</optional></userinput></term> + <listitem> + <para> + Stop the server immediately. Recent changes + made through dynamic update or IXFR are not saved to + the master files, but will be rolled forward from the + journal files when the server is restarted. + If <option>-p</option> is specified <command>named</command>'s process id is returned. + This allows an external process to determine when <command>named</command> + had completed halting. + </para> + <para> + See also <command>rndc stop</command>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>loadkeys <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term> + <listitem> + <para> + Fetch all DNSSEC keys for the given zone + from the key directory. If they are within + their publication period, merge them into the + zone's DNSKEY RRset. Unlike <command>rndc + sign</command>, however, the zone is not + immediately re-signed by the new keys, but is + allowed to incrementally re-sign over time. + </para> + <para> + This command requires that the + <command>auto-dnssec</command> zone option + be set to <literal>maintain</literal>, + and also requires the zone to be configured to + allow dynamic DNS. + (See "Dynamic Update Policies" in the Administrator + Reference Manual for more details.) + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>notify <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term> + <listitem> + <para> + Resend NOTIFY messages for the zone. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>notrace</userinput></term> + <listitem> + <para> + Sets the server's debugging level to 0. + </para> + <para> + See also <command>rndc trace</command>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>querylog</userinput> <optional>on|off</optional> </term> + <listitem> + <para> + Enable or disable query logging. (For backward + compatibility, this command can also be used without + an argument to toggle query logging on and off.) + </para> + <para> + Query logging can also be enabled + by explicitly directing the <command>queries</command> + <command>category</command> to a + <command>channel</command> in the + <command>logging</command> section of + <filename>named.conf</filename> or by specifying + <command>querylog yes;</command> in the + <command>options</command> section of + <filename>named.conf</filename>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>reconfig</userinput></term> + <listitem> + <para> + Reload the configuration file and load new zones, + but do not reload existing zone files even if they + have changed. + This is faster than a full <command>reload</command> when there + is a large number of zones because it avoids the need + to examine the + modification times of the zones files. + </para> + </listitem> </varlistentry> <varlistentry> - <term><userinput>delzone <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional> </userinput></term> + <term><userinput>recursing</userinput></term> <listitem> <para> - Delete a zone while the server is running. - Only zones that were originally added via - <command>rndc addzone</command> can be deleted - in this manner. - </para> - </listitem> + Dump the list of queries <command>named</command> is currently + recursing on, and the list of domains to which iterative + queries are currently being sent. (The second list includes + the number of fetches currently active for the given domain, + and how many have been passed or dropped because of the + <option>fetches-per-zone</option> option.) + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>refresh <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term> + <listitem> + <para> + Schedule zone maintenance for the given zone. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>reload</userinput></term> + <listitem> + <para> + Reload configuration file and zones. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>reload <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term> + <listitem> + <para> + Reload the given zone. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>retransfer <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term> + <listitem> + <para> + Retransfer the given slave zone from the master server. + </para> + <para> + If the zone is configured to use + <command>inline-signing</command>, the signed + version of the zone is discarded; after the + retransfer of the unsigned version is complete, the + signed version will be regenerated with all new + signatures. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>secroots <optional><replaceable>view ...</replaceable></optional></userinput></term> + <listitem> + <para> + Dump the server's security roots to the secroots + file for the specified views. If no view is + specified, security roots for all + views are dumped. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>sign <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></userinput></term> + <listitem> + <para> + Fetch all DNSSEC keys for the given zone + from the key directory (see the + <command>key-directory</command> option in + the BIND 9 Administrator Reference Manual). If they are within + their publication period, merge them into the + zone's DNSKEY RRset. If the DNSKEY RRset + is changed, then the zone is automatically + re-signed with the new key set. + </para> + <para> + This command requires that the + <command>auto-dnssec</command> zone option be set + to <literal>allow</literal> or + <literal>maintain</literal>, + and also requires the zone to be configured to + allow dynamic DNS. + (See "Dynamic Update Policies" in the Administrator + Reference Manual for more details.) + </para> + <para> + See also <command>rndc loadkeys</command>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>signing <optional>( -list | -clear <replaceable>keyid/algorithm</replaceable> | -clear <literal>all</literal> | -nsec3param ( <replaceable>parameters</replaceable> | <literal>none</literal> ) ) </optional> <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional> </userinput></term> + <listitem> + <para> + List, edit, or remove the DNSSEC signing state records + for the specified zone. The status of ongoing DNSSEC + operations (such as signing or generating + NSEC3 chains) is stored in the zone in the form + of DNS resource records of type + <command>sig-signing-type</command>. + <command>rndc signing -list</command> converts + these records into a human-readable form, + indicating which keys are currently signing + or have finished signing the zone, and which NSEC3 + chains are being created or removed. + </para> + <para> + <command>rndc signing -clear</command> can remove + a single key (specified in the same format that + <command>rndc signing -list</command> uses to + display it), or all keys. In either case, only + completed keys are removed; any record indicating + that a key has not yet finished signing the zone + will be retained. + </para> + <para> + <command>rndc signing -nsec3param</command> sets + the NSEC3 parameters for a zone. This is the + only supported mechanism for using NSEC3 with + <command>inline-signing</command> zones. + Parameters are specified in the same format as + an NSEC3PARAM resource record: hash algorithm, + flags, iterations, and salt, in that order. + </para> + <para> + Currently, the only defined value for hash algorithm + is <literal>1</literal>, representing SHA-1. + The <option>flags</option> may be set to + <literal>0</literal> or <literal>1</literal>, + depending on whether you wish to set the opt-out + bit in the NSEC3 chain. <option>iterations</option> + defines the number of additional times to apply + the algorithm when generating an NSEC3 hash. The + <option>salt</option> is a string of data expressed + in hexadecimal, or a hyphen (`-') if no salt is + to be used. + </para> + <para> + So, for example, to create an NSEC3 chain using + the SHA-1 hash algorithm, no opt-out flag, + 10 iterations, and a salt value of "FFFF", use: + <command>rndc signing -nsec3param 1 0 10 FFFF <replaceable>zone</replaceable></command>. + To set the opt-out flag, 15 iterations, and no + salt, use: + <command>rndc signing -nsec3param 1 1 15 - <replaceable>zone</replaceable></command>. + </para> + <para> + <command>rndc signing -nsec3param none</command> + removes an existing NSEC3 chain and replaces it + with NSEC. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>stats</userinput></term> + <listitem> + <para> + Write server statistics to the statistics file. + (See the <command>statistics-file</command> option in + the BIND 9 Administrator Reference Manual.) + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>status</userinput></term> + <listitem> + <para> + Display status of the server. + Note that the number of zones includes the internal <command>bind/CH</command> zone + and the default <command>./IN</command> + hint zone if there is not an + explicit root zone configured. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>stop <optional>-p</optional></userinput></term> + <listitem> + <para> + Stop the server, making sure any recent changes + made through dynamic update or IXFR are first saved to + the master files of the updated zones. + If <option>-p</option> is specified <command>named</command>'s process id is returned. + This allows an external process to determine when <command>named</command> + had completed stopping. + </para> + <para>See also <command>rndc halt</command>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>sync <optional>-clean</optional> <optional><replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term> + <listitem> + <para> + Sync changes in the journal file for a dynamic zone + to the master file. If the "-clean" option is + specified, the journal file is also removed. If + no zone is specified, then all zones are synced. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>thaw <optional><replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional></optional></userinput></term> + <listitem> + <para> + Enable updates to a frozen dynamic zone. If no + zone is specified, then all frozen zones are + enabled. This causes the server to reload the zone + from disk, and re-enables dynamic updates after the + load has completed. After a zone is thawed, + dynamic updates will no longer be refused. If + the zone has changed and the + <command>ixfr-from-differences</command> option is + in use, then the journal file will be updated to + reflect changes in the zone. Otherwise, if the + zone has changed, any existing journal file will be + removed. + </para> + <para>See also <command>rndc freeze</command>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>trace</userinput></term> + <listitem> + <para> + Increment the servers debugging level by one. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>trace <replaceable>level</replaceable></userinput></term> + <listitem> + <para> + Sets the server's debugging level to an explicit + value. + </para> + <para> + See also <command>rndc notrace</command>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>tsig-delete</userinput> <replaceable>keyname</replaceable> <optional><replaceable>view</replaceable></optional></term> + <listitem> + <para> + Delete a given TKEY-negotiated key from the server. + (This does not apply to statically configured TSIG + keys.) + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>tsig-list</userinput></term> + <listitem> + <para> + List the names of all TSIG keys currently configured + for use by <command>named</command> in each view. The + list both statically configured keys and dynamic + TKEY-negotiated keys. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><userinput>validation ( on | off | check ) <optional><replaceable>view ...</replaceable></optional> </userinput></term> + <listitem> + <para> + Enable, disable, or check the current status of + DNSSEC validation. + Note <command>dnssec-enable</command> also needs to be + set to <userinput>yes</userinput> or + <userinput>auto</userinput> to be effective. + It defaults to enabled. + </para> + </listitem> </varlistentry> - <varlistentry> - <term><userinput>signing <optional>( -list | -clear <replaceable>keyid/algorithm</replaceable> | -clear <literal>all</literal> | -nsec3param ( <replaceable>parameters</replaceable> | <literal>none</literal> ) ) </optional> <replaceable>zone</replaceable> <optional><replaceable>class</replaceable> <optional><replaceable>view</replaceable></optional></optional> </userinput></term> - <listitem> - <para> - List, edit, or remove the DNSSEC signing state records - for the specified zone. The status of ongoing DNSSEC - operations (such as signing or generating - NSEC3 chains) is stored in the zone in the form - of DNS resource records of type - <command>sig-signing-type</command>. - <command>rndc signing -list</command> converts - these records into a human-readable form, - indicating which keys are currently signing - or have finished signing the zone, and which NSEC3 - chains are being created or removed. - </para> - <para> - <command>rndc signing -clear</command> can remove - a single key (specified in the same format that - <command>rndc signing -list</command> uses to - display it), or all keys. In either case, only - completed keys are removed; any record indicating - that a key has not yet finished signing the zone - will be retained. - </para> - <para> - <command>rndc signing -nsec3param</command> sets - the NSEC3 parameters for a zone. This is the - only supported mechanism for using NSEC3 with - <command>inline-signing</command> zones. - Parameters are specified in the same format as - an NSEC3PARAM resource record: hash algorithm, - flags, iterations, and salt, in that order. - </para> - <para> - Currently, the only defined value for hash algorithm - is <literal>1</literal>, representing SHA-1. - The <option>flags</option> may be set to - <literal>0</literal> or <literal>1</literal>, - depending on whether you wish to set the opt-out - bit in the NSEC3 chain. <option>iterations</option> - defines the number of additional times to apply - the algorithm when generating an NSEC3 hash. The - <option>salt</option> is a string of data expressed - in hexadecimal, or a hyphen (`-') if no salt is - to be used. - </para> - <para> - So, for example, to create an NSEC3 chain using - the SHA-1 hash algorithm, no opt-out flag, - 10 iterations, and a salt value of "FFFF", use: - <command>rndc signing -nsec3param 1 0 10 FFFF <replaceable>zone</replaceable></command>. - To set the opt-out flag, 15 iterations, and no - salt, use: - <command>rndc signing -nsec3param 1 1 15 - <replaceable>zone</replaceable></command>. - </para> - <para> - <command>rndc signing -nsec3param none</command> - removes an existing NSEC3 chain and replaces it - with NSEC. - </para> - </listitem> - </varlistentry> </variablelist> </refsect1> @@ -708,19 +742,19 @@ <refsect1> <title>SEE ALSO</title> <para><citerefentry> - <refentrytitle>rndc.conf</refentrytitle><manvolnum>5</manvolnum> + <refentrytitle>rndc.conf</refentrytitle><manvolnum>5</manvolnum> </citerefentry>, <citerefentry> - <refentrytitle>rndc-confgen</refentrytitle><manvolnum>8</manvolnum> + <refentrytitle>rndc-confgen</refentrytitle><manvolnum>8</manvolnum> </citerefentry>, <citerefentry> - <refentrytitle>named</refentrytitle><manvolnum>8</manvolnum> + <refentrytitle>named</refentrytitle><manvolnum>8</manvolnum> </citerefentry>, <citerefentry> - <refentrytitle>named.conf</refentrytitle><manvolnum>5</manvolnum> + <refentrytitle>named.conf</refentrytitle><manvolnum>5</manvolnum> </citerefentry>, <citerefentry> - <refentrytitle>ndc</refentrytitle><manvolnum>8</manvolnum> + <refentrytitle>ndc</refentrytitle><manvolnum>8</manvolnum> </citerefentry>, <citetitle>BIND 9 Administrator Reference Manual</citetitle>. </para> diff --git a/bin/rndc/rndc.html b/bin/rndc/rndc.html index 0e74ea3531ed..0daea8a28549 100644 --- a/bin/rndc/rndc.html +++ b/bin/rndc/rndc.html @@ -1,5 +1,5 @@ <!-- - - Copyright (C) 2004, 2005, 2007, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + - Copyright (C) 2004, 2005, 2007, 2013-2015 Internet Systems Consortium, Inc. ("ISC") - Copyright (C) 2000, 2001 Internet Software Consortium. - - Permission to use, copy, modify, and/or distribute this software for any @@ -32,7 +32,7 @@ <div class="cmdsynopsis"><p><code class="command">rndc</code> [<code class="option">-b <em class="replaceable"><code>source-address</code></em></code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-k <em class="replaceable"><code>key-file</code></em></code>] [<code class="option">-s <em class="replaceable"><code>server</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-V</code>] [<code class="option">-y <em class="replaceable"><code>key_id</code></em></code>] {command}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2543428"></a><h2>DESCRIPTION</h2> +<a name="id2543431"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">rndc</strong></span> controls the operation of a name server. It supersedes the <span><strong class="command">ndc</strong></span> utility @@ -61,73 +61,73 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2543463"></a><h2>OPTIONS</h2> +<a name="id2543466"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-b <em class="replaceable"><code>source-address</code></em></span></dt> <dd><p> - Use <em class="replaceable"><code>source-address</code></em> - as the source address for the connection to the server. - Multiple instances are permitted to allow setting of both - the IPv4 and IPv6 source addresses. - </p></dd> + Use <em class="replaceable"><code>source-address</code></em> + as the source address for the connection to the server. + Multiple instances are permitted to allow setting of both + the IPv4 and IPv6 source addresses. + </p></dd> <dt><span class="term">-c <em class="replaceable"><code>config-file</code></em></span></dt> <dd><p> - Use <em class="replaceable"><code>config-file</code></em> - as the configuration file instead of the default, - <code class="filename">/etc/rndc.conf</code>. - </p></dd> + Use <em class="replaceable"><code>config-file</code></em> + as the configuration file instead of the default, + <code class="filename">/etc/rndc.conf</code>. + </p></dd> <dt><span class="term">-k <em class="replaceable"><code>key-file</code></em></span></dt> <dd><p> - Use <em class="replaceable"><code>key-file</code></em> - as the key file instead of the default, - <code class="filename">/etc/rndc.key</code>. The key in - <code class="filename">/etc/rndc.key</code> will be used to - authenticate - commands sent to the server if the <em class="replaceable"><code>config-file</code></em> - does not exist. - </p></dd> + Use <em class="replaceable"><code>key-file</code></em> + as the key file instead of the default, + <code class="filename">/etc/rndc.key</code>. The key in + <code class="filename">/etc/rndc.key</code> will be used to + authenticate + commands sent to the server if the <em class="replaceable"><code>config-file</code></em> + does not exist. + </p></dd> <dt><span class="term">-s <em class="replaceable"><code>server</code></em></span></dt> <dd><p><em class="replaceable"><code>server</code></em> is - the name or address of the server which matches a - server statement in the configuration file for - <span><strong class="command">rndc</strong></span>. If no server is supplied on the - command line, the host named by the default-server clause - in the options statement of the <span><strong class="command">rndc</strong></span> + the name or address of the server which matches a + server statement in the configuration file for + <span><strong class="command">rndc</strong></span>. If no server is supplied on the + command line, the host named by the default-server clause + in the options statement of the <span><strong class="command">rndc</strong></span> configuration file will be used. - </p></dd> + </p></dd> <dt><span class="term">-p <em class="replaceable"><code>port</code></em></span></dt> <dd><p> - Send commands to TCP port - <em class="replaceable"><code>port</code></em> - instead - of BIND 9's default control channel port, 953. - </p></dd> + Send commands to TCP port + <em class="replaceable"><code>port</code></em> + instead + of BIND 9's default control channel port, 953. + </p></dd> <dt><span class="term">-V</span></dt> <dd><p> - Enable verbose logging. - </p></dd> + Enable verbose logging. + </p></dd> <dt><span class="term">-y <em class="replaceable"><code>key_id</code></em></span></dt> <dd><p> - Use the key <em class="replaceable"><code>key_id</code></em> - from the configuration file. - <em class="replaceable"><code>key_id</code></em> - must be - known by named with the same algorithm and secret string - in order for control message validation to succeed. - If no <em class="replaceable"><code>key_id</code></em> - is specified, <span><strong class="command">rndc</strong></span> will first look - for a key clause in the server statement of the server - being used, or if no server statement is present for that - host, then the default-key clause of the options statement. - Note that the configuration file contains shared secrets - which are used to send authenticated control commands - to name servers. It should therefore not have general read - or write access. - </p></dd> + Use the key <em class="replaceable"><code>key_id</code></em> + from the configuration file. + <em class="replaceable"><code>key_id</code></em> + must be + known by <span><strong class="command">named</strong></span> with the same algorithm and secret string + in order for control message validation to succeed. + If no <em class="replaceable"><code>key_id</code></em> + is specified, <span><strong class="command">rndc</strong></span> will first look + for a key clause in the server statement of the server + being used, or if no server statement is present for that + host, then the default-key clause of the options statement. + Note that the configuration file contains shared secrets + which are used to send authenticated control commands + to name servers. It should therefore not have general read + or write access. + </p></dd> </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2543659"></a><h2>COMMANDS</h2> +<a name="id2543667"></a><h2>COMMANDS</h2> <p> A list of commands supported by <span><strong class="command">rndc</strong></span> can be seen by running <span><strong class="command">rndc</strong></span> without arguments. @@ -136,351 +136,396 @@ Currently supported commands are: </p> <div class="variablelist"><dl> -<dt><span class="term"><strong class="userinput"><code>reload</code></strong></span></dt> +<dt><span class="term"><strong class="userinput"><code>addzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] <em class="replaceable"><code>configuration</code></em> </code></strong></span></dt> +<dd> +<p> + Add a zone while the server is running. This + command requires the + <span><strong class="command">allow-new-zones</strong></span> option to be set + to <strong class="userinput"><code>yes</code></strong>. The + <em class="replaceable"><code>configuration</code></em> string + specified on the command line is the zone + configuration text that would ordinarily be + placed in <code class="filename">named.conf</code>. + </p> +<p> + The configuration is saved in a file called + <code class="filename"><em class="replaceable"><code>hash</code></em>.nzf</code>, + where <em class="replaceable"><code>hash</code></em> is a + cryptographic hash generated from the name of + the view. When <span><strong class="command">named</strong></span> is + restarted, the file will be loaded into the view + configuration, so that zones that were added + can persist after a restart. + </p> +<p> + This sample <span><strong class="command">addzone</strong></span> command + would add the zone <code class="literal">example.com</code> + to the default view: + </p> +<p> +<code class="prompt">$ </code><strong class="userinput"><code>rndc addzone example.com '{ type master; file "example.com.db"; };'</code></strong> + </p> +<p> + (Note the brackets and semi-colon around the zone + configuration text.) + </p> +<p> + See also <span><strong class="command">rndc delzone</strong></span>. + </p> +</dd> +<dt><span class="term"><strong class="userinput"><code>delzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt> +<dd> +<p> + Delete a zone while the server is running. + Only zones that were originally added via + <span><strong class="command">rndc addzone</strong></span> can be deleted + in this manner. + </p> +<p> + See also <span><strong class="command">rndc addzone</strong></span> + </p> +</dd> +<dt><span class="term"><strong class="userinput"><code>dumpdb [<span class="optional">-all|-cache|-zone|-adb|-bad</span>] [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt> <dd><p> - Reload configuration file and zones. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>reload <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> + Dump the server's caches (default) and/or zones to + the + dump file for the specified views. If no view is + specified, all + views are dumped. + (See the <span><strong class="command">dump-file</strong></span> option in + the BIND 9 Administrator Reference Manual.) + </p></dd> +<dt><span class="term"><strong class="userinput"><code>flush</code></strong></span></dt> <dd><p> - Reload the given zone. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>refresh <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> + Flushes the server's cache. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>flushname</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt> <dd><p> - Schedule zone maintenance for the given zone. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>retransfer <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> + Flushes the given name from the view's DNS cache + and, if applicable, from the view's nameserver address + database or bad-server cache. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>flushtree</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt> +<dd><p> + Flushes the given name, and all of its subdomains, + from the view's DNS cache. Note that this does + <span class="emphasis"><em>not</em></span> affect he server's address + database or bad-server cache. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>freeze [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt> <dd> <p> - Retransfer the given slave zone from the master server. - </p> + Suspend updates to a dynamic zone. If no zone is + specified, then all zones are suspended. This allows + manual edits to be made to a zone normally updated by + dynamic update. It also causes changes in the + journal file to be synced into the master file. + All dynamic update attempts will be refused while + the zone is frozen. + </p> <p> - If the zone is configured to use - <span><strong class="command">inline-signing</strong></span>, the signed - version of the zone is discarded; after the - retransfer of the unsigned version is complete, the - signed version will be regenerated with all new - signatures. - </p> + See also <span><strong class="command">rndc thaw</strong></span>. + </p> </dd> -<dt><span class="term"><strong class="userinput"><code>sign <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> +<dt><span class="term"><strong class="userinput"><code>halt [<span class="optional">-p</span>]</code></strong></span></dt> <dd> <p> - Fetch all DNSSEC keys for the given zone - from the key directory (see the - <span><strong class="command">key-directory</strong></span> option in - the BIND 9 Administrator Reference Manual). If they are within - their publication period, merge them into the - zone's DNSKEY RRset. If the DNSKEY RRset - is changed, then the zone is automatically - re-signed with the new key set. - </p> -<p> - This command requires that the - <span><strong class="command">auto-dnssec</strong></span> zone option be set - to <code class="literal">allow</code> or - <code class="literal">maintain</code>, - and also requires the zone to be configured to - allow dynamic DNS. - (See "Dynamic Update Policies" in the Administrator - Reference Manual for more details.) - </p> + Stop the server immediately. Recent changes + made through dynamic update or IXFR are not saved to + the master files, but will be rolled forward from the + journal files when the server is restarted. + If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned. + This allows an external process to determine when <span><strong class="command">named</strong></span> + had completed halting. + </p> +<p> + See also <span><strong class="command">rndc stop</strong></span>. + </p> </dd> <dt><span class="term"><strong class="userinput"><code>loadkeys <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> <dd> <p> - Fetch all DNSSEC keys for the given zone - from the key directory. If they are within - their publication period, merge them into the - zone's DNSKEY RRset. Unlike <span><strong class="command">rndc - sign</strong></span>, however, the zone is not - immediately re-signed by the new keys, but is - allowed to incrementally re-sign over time. - </p> -<p> - This command requires that the - <span><strong class="command">auto-dnssec</strong></span> zone option - be set to <code class="literal">maintain</code>, - and also requires the zone to be configured to - allow dynamic DNS. - (See "Dynamic Update Policies" in the Administrator - Reference Manual for more details.) - </p> + Fetch all DNSSEC keys for the given zone + from the key directory. If they are within + their publication period, merge them into the + zone's DNSKEY RRset. Unlike <span><strong class="command">rndc + sign</strong></span>, however, the zone is not + immediately re-signed by the new keys, but is + allowed to incrementally re-sign over time. + </p> +<p> + This command requires that the + <span><strong class="command">auto-dnssec</strong></span> zone option + be set to <code class="literal">maintain</code>, + and also requires the zone to be configured to + allow dynamic DNS. + (See "Dynamic Update Policies" in the Administrator + Reference Manual for more details.) + </p> </dd> -<dt><span class="term"><strong class="userinput"><code>freeze [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt> -<dd><p> - Suspend updates to a dynamic zone. If no zone is - specified, then all zones are suspended. This allows - manual edits to be made to a zone normally updated by - dynamic update. It also causes changes in the - journal file to be synced into the master file. - All dynamic update attempts will be refused while - the zone is frozen. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>thaw [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt> -<dd><p> - Enable updates to a frozen dynamic zone. If no - zone is specified, then all frozen zones are - enabled. This causes the server to reload the zone - from disk, and re-enables dynamic updates after the - load has completed. After a zone is thawed, - dynamic updates will no longer be refused. If - the zone has changed and the - <span><strong class="command">ixfr-from-differences</strong></span> option is - in use, then the journal file will be updated to - reflect changes in the zone. Otherwise, if the - zone has changed, any existing journal file will be - removed. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>sync [<span class="optional">-clean</span>] [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt> -<dd><p> - Sync changes in the journal file for a dynamic zone - to the master file. If the "-clean" option is - specified, the journal file is also removed. If - no zone is specified, then all zones are synced. - </p></dd> <dt><span class="term"><strong class="userinput"><code>notify <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> <dd><p> - Resend NOTIFY messages for the zone. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>reconfig</code></strong></span></dt> -<dd><p> - Reload the configuration file and load new zones, - but do not reload existing zone files even if they - have changed. - This is faster than a full <span><strong class="command">reload</strong></span> when there - is a large number of zones because it avoids the need - to examine the - modification times of the zones files. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>stats</code></strong></span></dt> -<dd><p> - Write server statistics to the statistics file. - </p></dd> + Resend NOTIFY messages for the zone. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>notrace</code></strong></span></dt> +<dd> +<p> + Sets the server's debugging level to 0. + </p> +<p> + See also <span><strong class="command">rndc trace</strong></span>. + </p> +</dd> <dt><span class="term"><strong class="userinput"><code>querylog</code></strong> [<span class="optional">on|off</span>] </span></dt> <dd> <p> - Enable or disable query logging. (For backward - compatibility, this command can also be used without - an argument to toggle query logging on and off.) - </p> -<p> - Query logging can also be enabled - by explicitly directing the <span><strong class="command">queries</strong></span> - <span><strong class="command">category</strong></span> to a - <span><strong class="command">channel</strong></span> in the - <span><strong class="command">logging</strong></span> section of - <code class="filename">named.conf</code> or by specifying - <span><strong class="command">querylog yes;</strong></span> in the - <span><strong class="command">options</strong></span> section of - <code class="filename">named.conf</code>. - </p> + Enable or disable query logging. (For backward + compatibility, this command can also be used without + an argument to toggle query logging on and off.) + </p> +<p> + Query logging can also be enabled + by explicitly directing the <span><strong class="command">queries</strong></span> + <span><strong class="command">category</strong></span> to a + <span><strong class="command">channel</strong></span> in the + <span><strong class="command">logging</strong></span> section of + <code class="filename">named.conf</code> or by specifying + <span><strong class="command">querylog yes;</strong></span> in the + <span><strong class="command">options</strong></span> section of + <code class="filename">named.conf</code>. + </p> </dd> -<dt><span class="term"><strong class="userinput"><code>dumpdb [<span class="optional">-all|-cache|-zone</span>] [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt> -<dd><p> - Dump the server's caches (default) and/or zones to - the - dump file for the specified views. If no view is - specified, all - views are dumped. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>secroots [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt> -<dd><p> - Dump the server's security roots to the secroots - file for the specified views. If no view is - specified, security roots for all - views are dumped. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>stop [<span class="optional">-p</span>]</code></strong></span></dt> -<dd><p> - Stop the server, making sure any recent changes - made through dynamic update or IXFR are first saved to - the master files of the updated zones. - If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned. - This allows an external process to determine when <span><strong class="command">named</strong></span> - had completed stopping. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>halt [<span class="optional">-p</span>]</code></strong></span></dt> +<dt><span class="term"><strong class="userinput"><code>reconfig</code></strong></span></dt> <dd><p> - Stop the server immediately. Recent changes - made through dynamic update or IXFR are not saved to - the master files, but will be rolled forward from the - journal files when the server is restarted. - If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned. - This allows an external process to determine when <span><strong class="command">named</strong></span> - had completed halting. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>trace</code></strong></span></dt> + Reload the configuration file and load new zones, + but do not reload existing zone files even if they + have changed. + This is faster than a full <span><strong class="command">reload</strong></span> when there + is a large number of zones because it avoids the need + to examine the + modification times of the zones files. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>recursing</code></strong></span></dt> <dd><p> - Increment the servers debugging level by one. + Dump the list of queries <span><strong class="command">named</strong></span> is currently + recursing on, and the list of domains to which iterative + queries are currently being sent. (The second list includes + the number of fetches currently active for the given domain, + and how many have been passed or dropped because of the + <code class="option">fetches-per-zone</code> option.) </p></dd> -<dt><span class="term"><strong class="userinput"><code>trace <em class="replaceable"><code>level</code></em></code></strong></span></dt> +<dt><span class="term"><strong class="userinput"><code>refresh <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> <dd><p> - Sets the server's debugging level to an explicit - value. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>notrace</code></strong></span></dt> + Schedule zone maintenance for the given zone. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>reload</code></strong></span></dt> <dd><p> - Sets the server's debugging level to 0. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>flush</code></strong></span></dt> + Reload configuration file and zones. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>reload <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> <dd><p> - Flushes the server's cache. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>flushname</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt> + Reload the given zone. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>retransfer <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> +<dd> +<p> + Retransfer the given slave zone from the master server. + </p> +<p> + If the zone is configured to use + <span><strong class="command">inline-signing</strong></span>, the signed + version of the zone is discarded; after the + retransfer of the unsigned version is complete, the + signed version will be regenerated with all new + signatures. + </p> +</dd> +<dt><span class="term"><strong class="userinput"><code>secroots [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt> <dd><p> - Flushes the given name from the server's DNS cache - and, if applicable, from the server's nameserver address - database or bad-server cache. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>flushtree</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt> + Dump the server's security roots to the secroots + file for the specified views. If no view is + specified, security roots for all + views are dumped. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>sign <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> +<dd> +<p> + Fetch all DNSSEC keys for the given zone + from the key directory (see the + <span><strong class="command">key-directory</strong></span> option in + the BIND 9 Administrator Reference Manual). If they are within + their publication period, merge them into the + zone's DNSKEY RRset. If the DNSKEY RRset + is changed, then the zone is automatically + re-signed with the new key set. + </p> +<p> + This command requires that the + <span><strong class="command">auto-dnssec</strong></span> zone option be set + to <code class="literal">allow</code> or + <code class="literal">maintain</code>, + and also requires the zone to be configured to + allow dynamic DNS. + (See "Dynamic Update Policies" in the Administrator + Reference Manual for more details.) + </p> +<p> + See also <span><strong class="command">rndc loadkeys</strong></span>. + </p> +</dd> +<dt><span class="term"><strong class="userinput"><code>signing [<span class="optional">( -list | -clear <em class="replaceable"><code>keyid/algorithm</code></em> | -clear <code class="literal">all</code> | -nsec3param ( <em class="replaceable"><code>parameters</code></em> | <code class="literal">none</code> ) ) </span>] <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt> +<dd> +<p> + List, edit, or remove the DNSSEC signing state records + for the specified zone. The status of ongoing DNSSEC + operations (such as signing or generating + NSEC3 chains) is stored in the zone in the form + of DNS resource records of type + <span><strong class="command">sig-signing-type</strong></span>. + <span><strong class="command">rndc signing -list</strong></span> converts + these records into a human-readable form, + indicating which keys are currently signing + or have finished signing the zone, and which NSEC3 + chains are being created or removed. + </p> +<p> + <span><strong class="command">rndc signing -clear</strong></span> can remove + a single key (specified in the same format that + <span><strong class="command">rndc signing -list</strong></span> uses to + display it), or all keys. In either case, only + completed keys are removed; any record indicating + that a key has not yet finished signing the zone + will be retained. + </p> +<p> + <span><strong class="command">rndc signing -nsec3param</strong></span> sets + the NSEC3 parameters for a zone. This is the + only supported mechanism for using NSEC3 with + <span><strong class="command">inline-signing</strong></span> zones. + Parameters are specified in the same format as + an NSEC3PARAM resource record: hash algorithm, + flags, iterations, and salt, in that order. + </p> +<p> + Currently, the only defined value for hash algorithm + is <code class="literal">1</code>, representing SHA-1. + The <code class="option">flags</code> may be set to + <code class="literal">0</code> or <code class="literal">1</code>, + depending on whether you wish to set the opt-out + bit in the NSEC3 chain. <code class="option">iterations</code> + defines the number of additional times to apply + the algorithm when generating an NSEC3 hash. The + <code class="option">salt</code> is a string of data expressed + in hexadecimal, or a hyphen (`-') if no salt is + to be used. + </p> +<p> + So, for example, to create an NSEC3 chain using + the SHA-1 hash algorithm, no opt-out flag, + 10 iterations, and a salt value of "FFFF", use: + <span><strong class="command">rndc signing -nsec3param 1 0 10 FFFF <em class="replaceable"><code>zone</code></em></strong></span>. + To set the opt-out flag, 15 iterations, and no + salt, use: + <span><strong class="command">rndc signing -nsec3param 1 1 15 - <em class="replaceable"><code>zone</code></em></strong></span>. + </p> +<p> + <span><strong class="command">rndc signing -nsec3param none</strong></span> + removes an existing NSEC3 chain and replaces it + with NSEC. + </p> +</dd> +<dt><span class="term"><strong class="userinput"><code>stats</code></strong></span></dt> <dd><p> - Flushes the given name, and all of its subdomains, - from the server's DNS cache. Note that this does - <span class="emphasis"><em>not</em></span> affect he server's address - database or bad-server cache. - </p></dd> + Write server statistics to the statistics file. + (See the <span><strong class="command">statistics-file</strong></span> option in + the BIND 9 Administrator Reference Manual.) + </p></dd> <dt><span class="term"><strong class="userinput"><code>status</code></strong></span></dt> <dd><p> - Display status of the server. - Note that the number of zones includes the internal <span><strong class="command">bind/CH</strong></span> zone - and the default <span><strong class="command">./IN</strong></span> - hint zone if there is not an - explicit root zone configured. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>recursing</code></strong></span></dt> -<dd><p> - Dump the list of queries <span><strong class="command">named</strong></span> is currently recursing - on. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>validation ( on | off | check ) [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>] </code></strong></span></dt> -<dd><p> - Enable, disable, or check the current status of - DNSSEC validation. - Note <span><strong class="command">dnssec-enable</strong></span> also needs to be - set to <strong class="userinput"><code>yes</code></strong> or - <strong class="userinput"><code>auto</code></strong> to be effective. - It defaults to enabled. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>tsig-list</code></strong></span></dt> -<dd><p> - List the names of all TSIG keys currently configured - for use by <span><strong class="command">named</strong></span> in each view. The - list both statically configured keys and dynamic - TKEY-negotiated keys. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>tsig-delete</code></strong> <em class="replaceable"><code>keyname</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span></dt> -<dd><p> - Delete a given TKEY-negotiated key from the server. - (This does not apply to statically configured TSIG - keys.) - </p></dd> -<dt><span class="term"><strong class="userinput"><code>addzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] <em class="replaceable"><code>configuration</code></em> </code></strong></span></dt> + Display status of the server. + Note that the number of zones includes the internal <span><strong class="command">bind/CH</strong></span> zone + and the default <span><strong class="command">./IN</strong></span> + hint zone if there is not an + explicit root zone configured. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>stop [<span class="optional">-p</span>]</code></strong></span></dt> <dd> <p> - Add a zone while the server is running. This - command requires the - <span><strong class="command">allow-new-zones</strong></span> option to be set - to <strong class="userinput"><code>yes</code></strong>. The - <em class="replaceable"><code>configuration</code></em> string - specified on the command line is the zone - configuration text that would ordinarily be - placed in <code class="filename">named.conf</code>. - </p> -<p> - The configuration is saved in a file called - <code class="filename"><em class="replaceable"><code>hash</code></em>.nzf</code>, - where <em class="replaceable"><code>hash</code></em> is a - cryptographic hash generated from the name of - the view. When <span><strong class="command">named</strong></span> is - restarted, the file will be loaded into the view - configuration, so that zones that were added - can persist after a restart. - </p> -<p> - This sample <span><strong class="command">addzone</strong></span> command - would add the zone <code class="literal">example.com</code> - to the default view: - </p> -<p> -<code class="prompt">$ </code><strong class="userinput"><code>rndc addzone example.com '{ type master; file "example.com.db"; };'</code></strong> - </p> + Stop the server, making sure any recent changes + made through dynamic update or IXFR are first saved to + the master files of the updated zones. + If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned. + This allows an external process to determine when <span><strong class="command">named</strong></span> + had completed stopping. + </p> +<p>See also <span><strong class="command">rndc halt</strong></span>.</p> +</dd> +<dt><span class="term"><strong class="userinput"><code>sync [<span class="optional">-clean</span>] [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt> +<dd><p> + Sync changes in the journal file for a dynamic zone + to the master file. If the "-clean" option is + specified, the journal file is also removed. If + no zone is specified, then all zones are synced. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>thaw [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt> +<dd> <p> - (Note the brackets and semi-colon around the zone - configuration text.) - </p> + Enable updates to a frozen dynamic zone. If no + zone is specified, then all frozen zones are + enabled. This causes the server to reload the zone + from disk, and re-enables dynamic updates after the + load has completed. After a zone is thawed, + dynamic updates will no longer be refused. If + the zone has changed and the + <span><strong class="command">ixfr-from-differences</strong></span> option is + in use, then the journal file will be updated to + reflect changes in the zone. Otherwise, if the + zone has changed, any existing journal file will be + removed. + </p> +<p>See also <span><strong class="command">rndc freeze</strong></span>.</p> </dd> -<dt><span class="term"><strong class="userinput"><code>delzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt> +<dt><span class="term"><strong class="userinput"><code>trace</code></strong></span></dt> <dd><p> - Delete a zone while the server is running. - Only zones that were originally added via - <span><strong class="command">rndc addzone</strong></span> can be deleted - in this manner. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>signing [<span class="optional">( -list | -clear <em class="replaceable"><code>keyid/algorithm</code></em> | -clear <code class="literal">all</code> | -nsec3param ( <em class="replaceable"><code>parameters</code></em> | <code class="literal">none</code> ) ) </span>] <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt> + Increment the servers debugging level by one. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>trace <em class="replaceable"><code>level</code></em></code></strong></span></dt> <dd> <p> - List, edit, or remove the DNSSEC signing state records - for the specified zone. The status of ongoing DNSSEC - operations (such as signing or generating - NSEC3 chains) is stored in the zone in the form - of DNS resource records of type - <span><strong class="command">sig-signing-type</strong></span>. - <span><strong class="command">rndc signing -list</strong></span> converts - these records into a human-readable form, - indicating which keys are currently signing - or have finished signing the zone, and which NSEC3 - chains are being created or removed. - </p> -<p> - <span><strong class="command">rndc signing -clear</strong></span> can remove - a single key (specified in the same format that - <span><strong class="command">rndc signing -list</strong></span> uses to - display it), or all keys. In either case, only - completed keys are removed; any record indicating - that a key has not yet finished signing the zone - will be retained. - </p> -<p> - <span><strong class="command">rndc signing -nsec3param</strong></span> sets - the NSEC3 parameters for a zone. This is the - only supported mechanism for using NSEC3 with - <span><strong class="command">inline-signing</strong></span> zones. - Parameters are specified in the same format as - an NSEC3PARAM resource record: hash algorithm, - flags, iterations, and salt, in that order. - </p> -<p> - Currently, the only defined value for hash algorithm - is <code class="literal">1</code>, representing SHA-1. - The <code class="option">flags</code> may be set to - <code class="literal">0</code> or <code class="literal">1</code>, - depending on whether you wish to set the opt-out - bit in the NSEC3 chain. <code class="option">iterations</code> - defines the number of additional times to apply - the algorithm when generating an NSEC3 hash. The - <code class="option">salt</code> is a string of data expressed - in hexadecimal, or a hyphen (`-') if no salt is - to be used. - </p> -<p> - So, for example, to create an NSEC3 chain using - the SHA-1 hash algorithm, no opt-out flag, - 10 iterations, and a salt value of "FFFF", use: - <span><strong class="command">rndc signing -nsec3param 1 0 10 FFFF <em class="replaceable"><code>zone</code></em></strong></span>. - To set the opt-out flag, 15 iterations, and no - salt, use: - <span><strong class="command">rndc signing -nsec3param 1 1 15 - <em class="replaceable"><code>zone</code></em></strong></span>. - </p> -<p> - <span><strong class="command">rndc signing -nsec3param none</strong></span> - removes an existing NSEC3 chain and replaces it - with NSEC. - </p> + Sets the server's debugging level to an explicit + value. + </p> +<p> + See also <span><strong class="command">rndc notrace</strong></span>. + </p> </dd> +<dt><span class="term"><strong class="userinput"><code>tsig-delete</code></strong> <em class="replaceable"><code>keyname</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span></dt> +<dd><p> + Delete a given TKEY-negotiated key from the server. + (This does not apply to statically configured TSIG + keys.) + </p></dd> +<dt><span class="term"><strong class="userinput"><code>tsig-list</code></strong></span></dt> +<dd><p> + List the names of all TSIG keys currently configured + for use by <span><strong class="command">named</strong></span> in each view. The + list both statically configured keys and dynamic + TKEY-negotiated keys. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>validation ( on | off | check ) [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>] </code></strong></span></dt> +<dd><p> + Enable, disable, or check the current status of + DNSSEC validation. + Note <span><strong class="command">dnssec-enable</strong></span> also needs to be + set to <strong class="userinput"><code>yes</code></strong> or + <strong class="userinput"><code>auto</code></strong> to be effective. + It defaults to enabled. + </p></dd> </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2541986"></a><h2>LIMITATIONS</h2> +<a name="id2544994"></a><h2>LIMITATIONS</h2> <p> There is currently no way to provide the shared secret for a <code class="option">key_id</code> without using the configuration file. @@ -490,7 +535,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2542004"></a><h2>SEE ALSO</h2> +<a name="id2545012"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>, <span class="citerefentry"><span class="refentrytitle">rndc-confgen</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>, @@ -500,7 +545,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2545200"></a><h2>AUTHOR</h2> +<a name="id2545067"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> diff --git a/bin/rndc/util.c b/bin/rndc/util.c index c654462bf04d..7716451da0e3 100644 --- a/bin/rndc/util.c +++ b/bin/rndc/util.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -26,6 +26,7 @@ #include <stdio.h> #include <isc/boolean.h> +#include <isc/print.h> #include "util.h" @@ -44,7 +45,7 @@ notify(const char *fmt, ...) { } } -void +void fatal(const char *format, ...) { va_list args; @@ -54,4 +55,4 @@ fatal(const char *format, ...) { va_end(args); fprintf(stderr, "\n"); exit(1); -} +} diff --git a/bin/tools/arpaname.c b/bin/tools/arpaname.c index 356a883a45da..14609b57965f 100644 --- a/bin/tools/arpaname.c +++ b/bin/tools/arpaname.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2015 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 @@ -19,6 +19,7 @@ #include "config.h" #include <isc/net.h> +#include <isc/print.h> #include <stdio.h> diff --git a/bin/tools/isc-hmac-fixup.c b/bin/tools/isc-hmac-fixup.c index 00613b387c48..e443675ab34f 100644 --- a/bin/tools/isc-hmac-fixup.c +++ b/bin/tools/isc-hmac-fixup.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2010, 2014, 2015 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 @@ -21,6 +21,7 @@ #include <isc/base64.h> #include <isc/buffer.h> #include <isc/md5.h> +#include <isc/print.h> #include <isc/region.h> #include <isc/result.h> #include <isc/sha1.h> diff --git a/bin/tools/named-journalprint.c b/bin/tools/named-journalprint.c index 36d1acd3136d..035cb6e28c92 100644 --- a/bin/tools/named-journalprint.c +++ b/bin/tools/named-journalprint.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -22,6 +22,7 @@ #include <isc/log.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/util.h> #include <dns/journal.h> diff --git a/config.h.in b/config.h.in index 0182145366c6..c336ba349d38 100644 --- a/config.h.in +++ b/config.h.in @@ -169,6 +169,10 @@ int sigwait(const unsigned int *set, int *sig); /* Define to enable "rrset-order fixed" syntax. */ #undef DNS_RDATASET_FIXED +/* Define to enable the "fetches-per-server" and "fetches-per-zone" options. + */ +#undef ENABLE_FETCHLIMIT + /* Define to enable rpz-nsdname rules. */ #undef ENABLE_RPZ_NSDNAME @@ -470,6 +474,9 @@ int sigwait(const unsigned int *set, int *sig); /* Enable DNS Response Rate Limiting */ #undef USE_RRL +/* Define to enable very verbose query trace logging. */ +#undef WANT_QUERYTRACE + /* define if idnkit support is to be included. */ #undef WITH_IDN diff --git a/configure.in b/configure.in index 53cfaf291ee3..6909b69460fc 100644 --- a/configure.in +++ b/configure.in @@ -72,6 +72,7 @@ case "$enable_developer" in yes) STD_CDEFINES="$STD_CDEFINES -DISC_LIST_CHECKINIT=1" test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes + test "${enable_querytrace+set}" = set || enable_querytrace=yes test "${with_atf+set}" = set || with_atf=yes test "${enable_filter_aaaa+set}" = set || enable_filter_aaaa=yes test "${enable_rrl+set}" = set || enable_rrl=yes @@ -85,6 +86,7 @@ yes) ;; esac test "${enable_symtable+set}" = set || enable_symtable=all + test "${enable_fetchlimit+set}" = set || enable_fetchlimit=yes test "${enable_warn_error+set}" = set || enable_warn_error=yes test "${enable_warn_shadow+set}" = set || enable_warn_shadow=yes ;; @@ -166,7 +168,7 @@ case "$use_python" in for p in $python do AC_PATH_PROGS(PYTHON, $p) - if test "X$PYTHON" == "X"; then + if test "X$PYTHON" = "X"; then continue; fi AC_MSG_CHECKING([python module 'argparse']) @@ -178,7 +180,7 @@ case "$use_python" in unset ac_cv_path_PYTHON unset PYTHON done - if test "X$PYTHON" == "X" + if test "X$PYTHON" = "X" then AC_MSG_CHECKING([for python support]) case "$use_python" in @@ -776,12 +778,15 @@ shared library configuration (e.g., LD_LIBRARY_PATH).)], AC_MSG_CHECKING(whether linking with OpenSSL requires -ldl) AC_TRY_LINK([ -#include <openssl/err.h>], +#include <openssl/err.h> +#include <openssl/dso.h> +], [ DSO_METHOD_dlfcn(); ], [AC_MSG_RESULT(no)], [LIBS="$LIBS -ldl" AC_TRY_LINK([ #include <openssl/err.h> +#include <openssl/dso.h> ],[ DSO_METHOD_dlfcn(); ], [AC_MSG_RESULT(yes) DNS_OPENSSL_LIBS="$DNS_OPENSSL_LIBS -ldl" @@ -1490,8 +1495,13 @@ case "$use_libxml2" in libxml2_cflags=`xml2-config --cflags` ;; *) - libxml2_libs= - libxml2_cflags= + if test "$use_libxml2" = "yes" ; then + AC_MSG_RESULT(no) + AC_MSG_ERROR(required libxml2 version not available) + else + libxml2_libs= + libxml2_cflags= + fi ;; esac ;; @@ -1570,7 +1580,7 @@ if test "X$GCC" = "Xyes"; then STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith" AC_MSG_CHECKING(if "$CC" supports -fno-strict-aliasing) SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fno-strict-aliasing" + CFLAGS="$CFLAGS -Werror -fno-strict-aliasing" AC_TRY_COMPILE(,, [FNOSTRICTALIASING=yes],[FNOSTRICTALIASING=no]) CFLAGS="$SAVE_CFLAGS" if test "$FNOSTRICTALIASING" = "yes"; then @@ -1584,7 +1594,7 @@ if test "X$GCC" = "Xyes"; then # AC_MSG_CHECKING(if "$CC" supports -fno-delete-null-pointer-checks) SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fno-delete-null-pointer-checks" + CFLAGS="$CFLAGS -Werror -fno-delete-null-pointer-checks" AC_TRY_COMPILE(,, [FNODELETENULLPOINTERCHECKS=yes], [FNODELETENULLPOINTERCHECKS=no]) CFLAGS="$SAVE_CFLAGS" @@ -2575,21 +2585,62 @@ AC_SUBST(ISC_PLATFORM_NEEDSTRCASESTR) AC_SUBST(READLINE_LIB) AC_ARG_WITH(readline, - [ --with-readline[=LIBSPEC] specify readline library [default -lreadline]], - readline="$withval", readline="-lreadline") + [ --with-readline[=LIBSPEC] specify readline library [default auto]], + readline="$withval", readline="auto") case "$readline" in no) ;; +yes|auto) + saved_LIBS="$LIBS" + for readline in -ledit -lreadline + do + LIBS="$readline" + AC_MSG_NOTICE(checking for readline with $readline) + AC_CHECK_FUNCS(readline) + if test "$ac_cv_func_readline" = "yes" + then + READLINE_LIB="$readline" + break + fi + if test "X$readline" = "X" + then + continue + fi + for lib in -lterminfo -ltermcap -lncurses -lcurses + do + AC_MSG_NOTICE(checking for readline with $readline $lib) + unset ac_cv_func_readline + LIBS="$readline $lib" + AC_CHECK_FUNCS(readline) + if test "$ac_cv_func_readline" = "yes" + then + READLINE_LIB="$readline $lib" + break + fi + done + done + LIBS="$saved_LIBS" + ;; *) - if test "x$readline" = "xyes" - then - readline=-lreadline - fi saved_LIBS="$LIBS" LIBS="$readline" + AC_MSG_NOTICE(checking for readline with $readline) AC_CHECK_FUNCS(readline) if test "$ac_cv_func_readline" = "yes" then READLINE_LIB="$readline" + else + for lib in -lterminfo -ltermcap -lncurses -lcurses + do + AC_MSG_NOTICE(checking for readline with $readline $lib) + unset ac_cv_func_readline + LIBS="$readline $lib" + AC_CHECK_FUNCS(readline) + if test "$ac_cv_func_readline" = "yes" + then + READLINE_LIB="$readline $lib" + break + fi + done fi LIBS="$saved_LIBS" ;; @@ -2597,40 +2648,65 @@ esac ISC_PRINT_OBJS= ISC_PRINT_SRCS= -AC_MSG_CHECKING(sprintf) +ISC_PLATFORM_NEEDPRINTF='#undef ISC_PLATFORM_NEEDPRINTF' +ISC_PLATFORM_NEEDFPRINTF='#undef ISC_PLATFORM_NEEDFPRINTF' +ISC_PLATFORM_NEEDSPRINTF='#undef ISC_PLATFORM_NEEDSPRINTF' +ISC_PLATFORM_NEEDVSNPRINTF='#undef ISC_PLATFORM_NEEDVSNPRINTF' +LWRES_PLATFORM_NEEDVSNPRINTF='#undef LWRES_PLATFORM_NEEDVSNPRINTF' + +AC_MSG_CHECKING(sprintf return type) AC_TRY_COMPILE([ #include <stdio.h> ], [ char buf[2]; return(*sprintf(buf,"x"));], -[ +[AC_MSG_RESULT(char *) ISC_PRINT_OBJS="print.$O" ISC_PRINT_SRCS="print.c" ISC_PLATFORM_NEEDSPRINTF="#define ISC_PLATFORM_NEEDSPRINTF" LWRES_PLATFORM_NEEDSPRINTF="#define LWRES_PLATFORM_NEEDSPRINTF" -], -[ISC_PLATFORM_NEEDSPRINTF="#undef ISC_PLATFORM_NEEDSPRINTF" - LWRES_PLATFORM_NEEDSPRINTF="#undef LWRES_PLATFORM_NEEDSPRINTF"] -) -AC_SUBST(ISC_PLATFORM_NEEDSPRINTF) -AC_SUBST(LWRES_PLATFORM_NEEDSPRINTF) +],[AC_MSG_RESULT(int)]) -AC_CHECK_FUNC(vsnprintf, - [ISC_PLATFORM_NEEDVSNPRINTF="#undef ISC_PLATFORM_NEEDVSNPRINTF" - LWRES_PLATFORM_NEEDVSNPRINTF="#undef LWRES_PLATFORM_NEEDVSNPRINTF"], +AC_CHECK_FUNC(vsnprintf, [], [ISC_PRINT_OBJS="print.$O" ISC_PRINT_SRCS="print.c" ISC_PLATFORM_NEEDVSNPRINTF="#define ISC_PLATFORM_NEEDVSNPRINTF 1" LWRES_PLATFORM_NEEDVSNPRINTF="#define LWRES_PLATFORM_NEEDVSNPRINTF 1"]) + +AC_MSG_CHECKING(printf for %z support) +AC_TRY_RUN([ +#include <stdio.h> +main() { + size_t j = 0; + char buf[100]; + buf[0] = 0; + sprintf(buf, "%zu", j); + exit(strcmp(buf, "0") != 0); +} +], + [AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no) + ISC_PRINT_OBJS="print.$O" + ISC_PRINT_SRCS="print.c" + ISC_PLATFORM_NEEDPRINTF='#define ISC_PLATFORM_NEEDPRINTF 1' + ISC_PLATFORM_NEEDFPRINTF='#define ISC_PLATFORM_NEEDFPRINTF 1' + ISC_PLATFORM_NEEDFSRINTF='#define ISC_PLATFORM_NEEDSPRINTF 1' + ISC_PLATFORM_NEEDVSNPRINTF="#define ISC_PLATFORM_NEEDVSNPRINTF 1" + LWRES_PLATFORM_NEEDVSNPRINTF="#define LWRES_PLATFORM_NEEDVSNPRINTF 1"], + [AC_MSG_RESULT(assuming target platform supports %z)]) + +AC_SUBST(ISC_PLATFORM_NEEDPRINTF) +AC_SUBST(ISC_PLATFORM_NEEDFPRINTF) +AC_SUBST(ISC_PLATFORM_NEEDSPRINTF) AC_SUBST(ISC_PLATFORM_NEEDVSNPRINTF) +AC_SUBST(LWRES_PLATFORM_NEEDSPRINTF) AC_SUBST(LWRES_PLATFORM_NEEDVSNPRINTF) + ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS $ISC_PRINT_OBJS" ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS $ISC_PRINT_SRCS" - -AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR)) - AC_SUBST(ISC_EXTRA_OBJS) AC_SUBST(ISC_EXTRA_SRCS) +AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR)) # # Use our own SPNEGO implementation? # @@ -2694,6 +2770,7 @@ main() { AC_SUBST(ISC_PLATFORM_QUADFORMAT) AC_SUBST(LWRES_PLATFORM_QUADFORMAT) + # # Security Stuff # @@ -3007,6 +3084,9 @@ case "$enable_atomic" in esac ISC_PLATFORM_USEOSFASM="#undef ISC_PLATFORM_USEOSFASM" +ISC_PLATFORM_USEGCCASM="#undef ISC_PLATFORM_USEGCCASM" +ISC_PLATFORM_USESTDASM="#undef ISC_PLATFORM_USESTDASM" +ISC_PLATFORM_USEMACASM="#undef ISC_PLATFORM_USEMACASM" if test "$use_atomic" = "yes"; then AC_MSG_CHECKING([architecture type for atomic operations]) have_atomic=yes # set default @@ -3127,15 +3207,15 @@ if test "$have_atomic" = "yes"; then ISC_PLATFORM_HAVEXADD="#define ISC_PLATFORM_HAVEXADD 1" ISC_PLATFORM_HAVECMPXCHG="#define ISC_PLATFORM_HAVECMPXCHG 1" ISC_PLATFORM_HAVEATOMICSTORE="#define ISC_PLATFORM_HAVEATOMICSTORE 1" + if test "$have_xaddq" = "yes"; then + ISC_PLATFORM_HAVEXADDQ="#define ISC_PLATFORM_HAVEXADDQ 1" + else + ISC_PLATFORM_HAVEXADDQ="#undef ISC_PLATFORM_HAVEXADDQ" + fi else ISC_PLATFORM_HAVEXADD="#undef ISC_PLATFORM_HAVEXADD" ISC_PLATFORM_HAVECMPXCHG="#undef ISC_PLATFORM_HAVECMPXCHG" ISC_PLATFORM_HAVEATOMICSTORE="#undef ISC_PLATFORM_HAVEATOMICSTORE" -fi - -if test "$have_xaddq" = "yes"; then - ISC_PLATFORM_HAVEXADDQ="#define ISC_PLATFORM_HAVEXADDQ 1" -else ISC_PLATFORM_HAVEXADDQ="#undef ISC_PLATFORM_HAVEXADDQ" fi @@ -3208,7 +3288,25 @@ case "$enable_nsdname" in esac # -# Activate "filter-aaaa-on-v4" or not? +# Activate recursive fetch limits +# +AC_ARG_ENABLE(fetchlimit, + [ --enable-fetchlimit enable recursive fetch limits [[default=no]]], + enable_fetchlimit="$enableval", + enable_fetchlimit="no") +case "$enable_fetchlimit" in + yes) + AC_DEFINE(ENABLE_FETCHLIMIT, 1, + [Define to enable the "fetches-per-server" and "fetches-per-zone" options.]) + ;; + no) + ;; + *) + ;; +esac + +# +# Activate "filter-aaaa" or not? # AC_ARG_ENABLE(filter-aaaa, [ --enable-filter-aaaa enable filtering of AAAA records over IPv4 @@ -3297,6 +3395,13 @@ AC_PATH_PROG(DOXYGEN, doxygen, doxygen) AC_SUBST(DOXYGEN) # +# Look for curl +# + +AC_PATH_PROG(CURL, curl, curl) +AC_SUBST(CURL) + +# # Subroutine for searching for an ordinary file (e.g., a stylesheet) # in a number of directories: # @@ -3518,6 +3623,26 @@ AC_CHECK_HEADERS(locale.h) AC_CHECK_FUNCS(setlocale) # +# was --enable-querytrace specified? +# +AC_ARG_ENABLE(querytrace, + [ --enable-querytrace enable very verbose query trace logging [[default=no]]], + want_querytrace="$enableval", want_querytrace="no") + +case "$want_querytrace" in +yes) + AC_MSG_RESULT(yes) + AC_DEFINE(WANT_QUERYTRACE, 1, [Define to enable very verbose query trace logging.]) + ;; +no) + AC_MSG_RESULT(no) + ;; +*) + AC_MSG_ERROR("--enable-querytrace requires yes or no") + ;; +esac + +# # Substitutions # AC_SUBST(BIND9_TOP_BUILDDIR) @@ -3921,9 +4046,11 @@ AC_CONFIG_FILES([ bin/tests/system/dlz/prereq.sh bin/tests/system/dlzexternal/Makefile bin/tests/system/dlzexternal/ns1/named.conf + bin/tests/system/fetchlimit/Makefile bin/tests/system/filter-aaaa/Makefile bin/tests/system/inline/checkdsa.sh bin/tests/system/lwresd/Makefile + bin/tests/system/statistics/Makefile bin/tests/system/rpz/Makefile bin/tests/system/rrl/Makefile bin/tests/system/rsabigexponent/Makefile @@ -4054,6 +4181,8 @@ $use_threads && echo " Multiprocessing support (--enable-threads)" test "$enable_rrl" = "yes" && \ echo " Response Rate Limiting (--enable-rrl)" +test "$enable_fetchlimit" = "yes" && \ + echo " Recursive fetch limits for DoS attack mitigation (--enable-fetchlimit)" test "$use_gssapi" = "no" || echo " GSS-API (--with-gssapi)" test "$use_pkcs11" = "no" || echo " PKCS#11/Cryptoki support (--with-pkcs11)" test "$enable_newstats" = "yes" && \ @@ -4068,6 +4197,8 @@ test "$want_symtable" = "minimal" && \ echo " Use symbol table for backtrace, named only (--enable-symtable)" test "$want_symtable" = "yes" -o "$want_symtable" = "all" && \ echo " Use symbol table for backtrace, all binaries (--enable-symtable=all)" +test "$want_querytrace" = "yes" && \ + echo " Very verbose query trace logging (--enable-querytrace)" test "$atf" = "no" || echo " Automated Testing Framework (--with-atf)" # these lines are only printed if run with --enable-full-report @@ -4108,6 +4239,8 @@ test "$enable_ipv6" = "no" -o "$found_ipv6" = "no" && \ echo " IPv6 support (--enable-ipv6)" test "$enable_rrl" = "yes" || \ echo " Response Rate Limiting (--enable-rrl)" +test "$enable_fetchlimit" = "no" && \ + echo " Recursive fetch limits for DoS attack mitigation (--enable-fetchlimit)" test "$use_gssapi" = "no" && echo " GSS-API (--with-gssapi)" test "$use_pkcs11" = "no" && echo " PKCS#11/Cryptoki support (--with-pkcs11)" test "X$enable_newstats" = "X" && echo " New statistics (--enable-newstats)" @@ -4115,6 +4248,8 @@ test "$enable_fixed" = "yes" || \ echo " Allow 'fixed' rrset-order (--enable-fixed-rrset)" test "$want_backtrace" = "yes" || \ echo " Print backtrace on crash (--enable-backtrace)" +test "$want_querytrace" = "yes" || \ + echo " Very verbose query trace logging (--enable-querytrace)" test "$atf" = "no" && echo " Automated Testing Framework (--with-atf)" test "X$USE_OPENSSL" = "X" && \ echo " OpenSSL cryptography/DNSSEC (--with-openssl)" diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml index 89db89591c80..d46710ff4342 100644 --- a/doc/arm/Bv9ARM-book.xml +++ b/doc/arm/Bv9ARM-book.xml @@ -646,7 +646,7 @@ <para> ISC <acronym>BIND</acronym> 9 compiles and runs on a large number - of Unix-like operating systems and on + of Unix-like operating systems and on Microsoft Windows Server 2003 and 2008, and Windows XP and Vista. For an up-to-date list of supported systems, see the README file in the top level @@ -1390,7 +1390,7 @@ controls { <command>allow-update</command> or an <command>update-policy</command> clause in the <command>zone</command> statement. </para> - + <para> If the zone's <command>update-policy</command> is set to <userinput>local</userinput>, updates to the zone @@ -2234,10 +2234,10 @@ allow-update { key host1-host2. ;}; To enable <command>named</command> to validate answers from other servers, the <command>dnssec-enable</command> option must be set to <userinput>yes</userinput>, and the - <command>dnssec-validation</command> options must be set to + <command>dnssec-validation</command> options must be set to <userinput>yes</userinput> or <userinput>auto</userinput>. </para> - + <para> If <command>dnssec-validation</command> is set to <userinput>auto</userinput>, then a default @@ -2250,7 +2250,7 @@ allow-update { key host1-host2. ;}; will not occur. The default setting is <userinput>yes</userinput>. </para> - + <para> <command>trusted-keys</command> are copies of DNSKEY RRs for zones that are used to form the first link in the @@ -2359,7 +2359,7 @@ options { including missing, expired, or invalid signatures, a key which does not match the DS RRset in the parent zone, or an insecure response from a zone which, according to its parent, should have - been secure. + been secure. </para> <note> @@ -2419,7 +2419,7 @@ options { the traditional "nibble" format used in the <emphasis>ip6.arpa</emphasis> domain, as well as the older, deprecated <emphasis>ip6.int</emphasis> domain. - Older versions of <acronym>BIND</acronym> 9 + Older versions of <acronym>BIND</acronym> 9 supported the "binary label" (also known as "bitstring") format, but support of binary labels has been completely removed per RFC 3363. @@ -2878,7 +2878,7 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. "as big as possible", depending on the context. See the explanations of particular parameters that use <varname>size_spec</varname> - for details on how they interpret its use. + for details on how they interpret its use. </para> <para> Numeric values can optionally be followed by a @@ -2897,12 +2897,12 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. (including <option>max-cache-size</option>), it may mean the largest possible 32-bit unsigned integer (0xffffffff); this distinction can be important when - dealing with larger quantities. + dealing with larger quantities. <varname>unlimited</varname> is usually the best way to safely set a very large number. </para> <para> - <varname>default</varname> + <varname>default</varname> uses the limit that was in force when the server was started. </para> </entry> @@ -3240,7 +3240,7 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. <para> defines a named masters list for inclusion in stub and slave zones' - <command>masters</command> or + <command>masters</command> or <command>also-notify</command> lists. </para> </entry> @@ -3576,8 +3576,8 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. <title><command>key</command> Statement Grammar</title> <programlisting><command>key</command> <replaceable>key_id</replaceable> { - algorithm <replaceable>string</replaceable>; - secret <replaceable>string</replaceable>; + algorithm <replaceable>algorithm_id</replaceable>; + secret <replaceable>secret_string</replaceable>; }; </programlisting> @@ -4652,7 +4652,7 @@ badresp:1,adberr:0,findfail:0,valfail:0] <title><command>masters</command> Statement Grammar</title> <programlisting> -<command>masters</command> <replaceable>name</replaceable> <optional>port <replaceable>ip_port</replaceable></optional> { ( <replaceable>masters_list</replaceable> | +<command>masters</command> <replaceable>name</replaceable> <optional>port <replaceable>ip_port</replaceable></optional> { ( <replaceable>masters_list</replaceable> | <replaceable>ip_addr</replaceable> <optional>port <replaceable>ip_port</replaceable></optional> <optional>key <replaceable>key</replaceable></optional> ) ; <optional>...</optional> }; </programlisting> @@ -4731,7 +4731,7 @@ badresp:1,adberr:0,findfail:0,valfail:0] <optional> forwarders { <optional> <replaceable>ip_addr</replaceable> <optional>port <replaceable>ip_port</replaceable></optional> ; ... </optional> }; </optional> <optional> dual-stack-servers <optional>port <replaceable>ip_port</replaceable></optional> { ( <replaceable>domain_name</replaceable> <optional>port <replaceable>ip_port</replaceable></optional> | - <replaceable>ip_addr</replaceable> <optional>port <replaceable>ip_port</replaceable></optional> ) ; + <replaceable>ip_addr</replaceable> <optional>port <replaceable>ip_port</replaceable></optional> ) ; ... }; </optional> <optional> check-names ( <replaceable>master</replaceable> | <replaceable>slave</replaceable> | <replaceable>response</replaceable> ) ( <replaceable>warn</replaceable> | <replaceable>fail</replaceable> | <replaceable>ignore</replaceable> ); </optional> @@ -4774,8 +4774,8 @@ badresp:1,adberr:0,findfail:0,valfail:0] <optional> address ( <replaceable>ip4_addr</replaceable> | <replaceable>*</replaceable> ) </optional> <optional> port ( <replaceable>ip_port</replaceable> | <replaceable>*</replaceable> ) </optional> ) ; </optional> <optional> query-source-v6 ( ( <replaceable>ip6_addr</replaceable> | <replaceable>*</replaceable> ) - <optional> port ( <replaceable>ip_port</replaceable> | <replaceable>*</replaceable> ) </optional> | - <optional> address ( <replaceable>ip6_addr</replaceable> | <replaceable>*</replaceable> ) </optional> + <optional> port ( <replaceable>ip_port</replaceable> | <replaceable>*</replaceable> ) </optional> | + <optional> address ( <replaceable>ip6_addr</replaceable> | <replaceable>*</replaceable> ) </optional> <optional> port ( <replaceable>ip_port</replaceable> | <replaceable>*</replaceable> ) </optional> ) ; </optional> <optional> use-queryport-pool <replaceable>yes_or_no</replaceable>; </optional> <optional> queryport-pool-ports <replaceable>number</replaceable>; </optional> @@ -4784,9 +4784,14 @@ badresp:1,adberr:0,findfail:0,valfail:0] <optional> max-transfer-time-out <replaceable>number</replaceable>; </optional> <optional> max-transfer-idle-in <replaceable>number</replaceable>; </optional> <optional> max-transfer-idle-out <replaceable>number</replaceable>; </optional> - <optional> tcp-clients <replaceable>number</replaceable>; </optional> <optional> reserved-sockets <replaceable>number</replaceable>; </optional> <optional> recursive-clients <replaceable>number</replaceable>; </optional> + <optional> tcp-clients <replaceable>number</replaceable>; </optional> + <optional> clients-per-query <replaceable>number</replaceable> ; </optional> + <optional> max-clients-per-query <replaceable>number</replaceable> ; </optional> + <optional> fetches-per-server <replaceable>number</replaceable> <optional><replaceable>(drop | fail)</replaceable></optional>; </optional> + <optional> fetch-quota-params <replaceable>number fixedpoint fixedpoint fixedpoint</replaceable> ; </optional> + <optional> fetches-per-zone<replaceable>number</replaceable> <optional><replaceable>(drop | fail)</replaceable></optional>; </optional> <optional> serial-query-rate <replaceable>number</replaceable>; </optional> <optional> serial-queries <replaceable>number</replaceable>; </optional> <optional> tcp-listen-queue <replaceable>number</replaceable>; </optional> @@ -4865,8 +4870,6 @@ badresp:1,adberr:0,findfail:0,valfail:0] <optional> acache-enable <replaceable>yes_or_no</replaceable> ; </optional> <optional> acache-cleaning-interval <replaceable>number</replaceable>; </optional> <optional> max-acache-size <replaceable>size_spec</replaceable> ; </optional> - <optional> clients-per-query <replaceable>number</replaceable> ; </optional> - <optional> max-clients-per-query <replaceable>number</replaceable> ; </optional> <optional> max-recursion-depth <replaceable>number</replaceable> ; </optional> <optional> max-recursion-queries <replaceable>number</replaceable> ; </optional> <optional> masterfile-format (<constant>text</constant>|<constant>raw</constant>) ; </optional> @@ -4900,12 +4903,12 @@ badresp:1,adberr:0,findfail:0,valfail:0] zone <replaceable>zone_name</replaceable> <optional> policy <replaceable>(given | disabled | passthru | nxdomain | nodata | cname domain</replaceable>) </optional> - <optional> recursive-only <replaceable>yes_or_no</replaceable> </optional> - <optional> max-policy-ttl <replaceable>number</replaceable> </optional> - <optional> break-dnssec <replaceable>yes_or_no</replaceable> </optional> - <optional> min-ns-dots <replaceable>number</replaceable> </optional> ; <optional>...</optional> - } ; </optional> + } <optional> recursive-only <replaceable>yes_or_no</replaceable> </optional> + <optional> max-policy-ttl <replaceable>number</replaceable> </optional> + <optional> break-dnssec <replaceable>yes_or_no</replaceable> </optional> + <optional> min-ns-dots <replaceable>number</replaceable> </optional> + ; </optional> }; </programlisting> @@ -5248,7 +5251,7 @@ badresp:1,adberr:0,findfail:0,valfail:0] The pathname of a file to override the built-in trusted keys provided by <command>named</command>. See the discussion of <command>dnssec-lookaside</command> - and <command>dnssec-validation</command> for details. + and <command>dnssec-validation</command> for details. If not specified, the default is <filename>/etc/bind.keys</filename>. </para> @@ -5526,7 +5529,7 @@ options { <para> Each <command>dns64</command> supports an optional <command>mapped</command> ACL that selects which - IPv4 addresses are to be mapped in the corresponding + IPv4 addresses are to be mapped in the corresponding A RRset. If not defined it defaults to <userinput>any;</userinput>. </para> @@ -6117,7 +6120,7 @@ options { <listitem> <para> If <userinput>yes</userinput>, then an empty EDNS(0) - NSID (Name Server Identifier) option is sent with all + NSID (Name Server Identifier) option is sent with all queries to authoritative name servers during iterative resolution. If the authoritative server returns an NSID option in its response, then its contents are logged in @@ -6340,7 +6343,7 @@ options { <para> If <userinput>yes</userinput>, the DNS client is at an IPv4 address, in <command>filter-aaaa</command>, - and if the response does not include DNSSEC signatures, + and if the response does not include DNSSEC signatures, then all AAAA records are deleted from the response. This filtering applies to all responses and not only authoritative responses. @@ -6352,8 +6355,8 @@ options { because the DNSSEC protocol is designed detect deletions. </para> <para> - This mechanism can erroneously cause other servers to - not give AAAA records to their clients. + This mechanism can erroneously cause other servers to + not give AAAA records to their clients. A recursing server with both IPv6 and IPv4 network connections that queries an authoritative server using this mechanism via IPv4 will be denied AAAA records even if its client is @@ -6430,8 +6433,11 @@ options { <term><command>dnssec-enable</command></term> <listitem> <para> - Enable DNSSEC support in <command>named</command>. Unless set to <userinput>yes</userinput>, - <command>named</command> behaves as if it does not support DNSSEC. + This indicates whether DNSSEC-related resource + records are to be returned by <command>named</command>. + If set to <userinput>no</userinput>, + <command>named</command> will not return DNSSEC-related + resource records unless specifically queried for. The default is <userinput>yes</userinput>. </para> </listitem> @@ -6454,6 +6460,14 @@ options { <command>managed-keys</command> statement. The default is <userinput>yes</userinput>. </para> + <note> + <para> + Whenever the resolver sends out queries to an + EDNS-compliant server, it always sets the DO bit + indicating it can support DNSSEC responses even if + <command>dnssec-validation</command> is off. + </para> + </note> </listitem> </varlistentry> @@ -7346,7 +7360,7 @@ avoid-v6-udp-ports {}; <para> Note: BIND 9.5.0 introduced - the <command>use-queryport-pool</command> + the <command>use-queryport-pool</command> option to support a pool of such random ports, but this option is now obsolete because reusing the same ports in the pool may not be sufficiently secure. @@ -7384,7 +7398,7 @@ avoid-v6-udp-ports {}; </para> </listitem> </varlistentry> - + </variablelist> <note> <para> @@ -7522,7 +7536,7 @@ avoid-v6-udp-ports {}; </para> <para> In addition to controlling the rate SOA refresh - queries are issued at + queries are issued at, <command>serial-query-rate</command> also controls the rate at which NOTIFY messages are sent from both master and slave zones. @@ -7933,17 +7947,33 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; <term><command>recursive-clients</command></term> <listitem> <para> - The maximum number of simultaneous recursive lookups - the server will perform on behalf of clients. The default - is + The maximum number ("hard quota") of simultaneous + recursive lookups the server will perform on behalf + of clients. The default is <literal>1000</literal>. Because each recursing client uses a fair - bit of memory, on the order of 20 kilobytes, the value of - the + bit of memory (on the order of 20 kilobytes), the + value of the <command>recursive-clients</command> option may - have to be decreased - on hosts with limited memory. - </para> + have to be decreased on hosts with limited memory. + </para> + <para> + <option>recursive-clients</option> defines a "hard + quota" limit for pending recursive clients: when more + clients than this are pending, new incoming requests + will not be accepted, and for each incoming request + a previous pending request will also be dropped. + </para> + <para> + A "soft quota" is also set. When this lower + quota is exceeded, incoming requests are accepted, but + for each one, a pending request will be dropped. + If <option>recursive-clients</option> is greater than + 1000, the soft quota is set to + <option>recursive-clients</option> minus 100; + otherwise it is set to 90% of + <option>recursive-clients</option>. + </para> </listitem> </varlistentry> @@ -7958,6 +7988,187 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; </listitem> </varlistentry> + <varlistentry id="clients-per-query"> + <term><command>clients-per-query</command></term> + <term><command>max-clients-per-query</command></term> + <listitem> + <para>These set the + initial value (minimum) and maximum number of recursive + simultaneous clients for any given query + (<qname,qtype,qclass>) that the server will accept + before dropping additional clients. <command>named</command> will attempt to + self tune this value and changes will be logged. The + default values are 10 and 100. + </para> + <para> + This value should reflect how many queries come in for + a given name in the time it takes to resolve that name. + If the number of queries exceed this value, <command>named</command> will + assume that it is dealing with a non-responsive zone + and will drop additional queries. If it gets a response + after dropping queries, it will raise the estimate. The + estimate will then be lowered in 20 minutes if it has + remained unchanged. + </para> + <para> + If <command>clients-per-query</command> is set to zero, + then there is no limit on the number of clients per query + and no queries will be dropped. + </para> + <para> + If <command>max-clients-per-query</command> is set to zero, + then there is no upper bound other than imposed by + <command>recursive-clients</command>. + </para> + </listitem> + </varlistentry> + + <varlistentry id="fetches-per-zone"> + <term><command>fetches-per-zone</command></term> + <listitem> + <para> + The maximum number of simultaneous iterative + queries to any one domain that the server will + permit before blocking new queries for data + in or beneath that zone. + This value should reflect how many fetches would + normally be sent to any one zone in the time it + would take to resolve them. It should be smaller + than <option>recursive-clients</option>. + </para> + <para> + When many clients simultaneously query for the + same name and type, the clients will all be attached + to the same fetch, up to the + <option>max-clients-per-query</option> limit, + and only one iterative query will be sent. + However, when clients are simultaneously + querying for <emphasis>different</emphasis> names + or types, multiple queries will be sent and + <option>max-clients-per-query</option> is not + effective as a limit. + </para> + <para> + Optionally, this value may be followed by the keyword + <literal>drop</literal> or <literal>fail</literal>, + indicating whether queries which exceed the fetch + quota for a zone will be dropped with no response, + or answered with SERVFAIL. The default is + <literal>drop</literal>. + </para> + <para> + If <command>fetches-per-zone</command> is set to zero, + then there is no limit on the number of fetches per query + and no queries will be dropped. The default is zero. + </para> + <para> + The current list of active fetches can be dumped by + running <command>rndc recursing</command>. The list + includes the number of active fetches for each + domain and the number of queries that have been + passed or dropped as a result of the + <option>fetches-per-zone</option> limit. (Note: + these counters are not cumulative over time; whenever + the number of active fetches for a domain drops to + zero, the counter for that domain is deleted, and the + next time a fetch is sent to that domain, it is + recreated with the counters set to zero.) + </para> + <para> + (Note: This option is only available when BIND is + built with <command>configure --enable-fetchlimit</command>.) + </para> + </listitem> + </varlistentry> + + <varlistentry id="fetches-per-server"> + <term><command>fetches-per-server</command></term> + <listitem> + <para> + The maximum number of simultaneous iterative + queries that the server will allow to be sent to + a single upstream name server before blocking + additional queries. + This value should reflect how many fetches would + normally be sent to any one server in the time it + would take to resolve them. It should be smaller + than <option>recursive-clients</option>. + </para> + <para> + Optionally, this value may be followed by the keyword + <literal>drop</literal> or <literal>fail</literal>, + indicating whether queries will be dropped with no + response, or answered with SERVFAIL, when all of the + servers authoritative for a zone are found to have + exceeded the per-server quota. The default is + <literal>fail</literal>. + </para> + <para> + If <command>fetches-per-server</command> is set to zero, + then there is no limit on the number of fetches per query + and no queries will be dropped. The default is zero. + </para> + <para> + The <command>fetches-per-server</command> quota is + dynamically adjusted in response to detected + congestion. As queries are sent to a server + and are either answered or time out, an + exponentially weighted moving average is calculated + of the ratio of timeouts to responses. If the + current average timeout ratio rises above a "high" + threshold, then <command>fetches-per-server</command> + is reduced for that server. If the timeout ratio + drops below a "low" threshold, then + <command>fetches-per-server</command> is increased. + The <command>fetch-quota-params</command> options + can be used to adjust the parameters for this + calculation. + </para> + <para> + (Note: This option is only available when BIND is + built with <command>configure --enable-fetchlimit</command>.) + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command>fetch-quota-params</command></term> + <listitem> + <para> + Sets the parameters to use for dynamic resizing of + the <option>fetches-per-server</option> quota in + response to detected congestion. + </para> + <para> + The first argument is an integer value indicating + how frequently to recalculate the moving average + of the ratio of timeouts to responses for each + server. The default is 100, meaning we recalculate + the average ratio after every 100 queries have either + been answered or timed out. + </para> + <para> + The remaining three arguments represent the "low" + threshold (defaulting to a timeout ratio of 0.1), + the "high" threshold (defaulting to a timeout + ratio of 0.3), and the discount rate for + the moving average (defaulting to 0.7). + A higher discount rate causes recent events to + weigh more heavily when calculating the moving + average; a lower discount rate causes past + events to weigh more heavily, smoothing out + short-term blips in the timeout ratio. + These arguments are all fixed-point numbers with + precision of 1/100: at most two places after + the decimal point are significant. + </para> + <para> + (Note: This option is only available when BIND is + built with <command>configure --enable-fetchlimit</command>.) + </para> + </listitem> + </varlistentry> + <varlistentry> <term><command>reserved-sockets</command></term> <listitem> @@ -8015,7 +8226,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; waiting for some data before being passed to accept. Nonzero values less than 10 will be silently raised. A value of 0 may also - be used; on most platforms this sets the listen queue + be used; on most platforms this sets the listen queue length to a system-defined default value. </para> </listitem> @@ -8658,41 +8869,6 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; </listitem> </varlistentry> - <varlistentry id="clients-per-query"> - <term><command>clients-per-query</command></term> - <term><command>max-clients-per-query</command></term> - <listitem> - <para>These set the - initial value (minimum) and maximum number of recursive - simultaneous clients for any given query - (<qname,qtype,qclass>) that the server will accept - before dropping additional clients. <command>named</command> will attempt to - self tune this value and changes will be logged. The - default values are 10 and 100. - </para> - <para> - This value should reflect how many queries come in for - a given name in the time it takes to resolve that name. - If the number of queries exceed this value, <command>named</command> will - assume that it is dealing with a non-responsive zone - and will drop additional queries. If it gets a response - after dropping queries, it will raise the estimate. The - estimate will then be lowered in 20 minutes if it has - remained unchanged. - </para> - <para> - If <command>clients-per-query</command> is set to zero, - then there is no limit on the number of clients per query - and no queries will be dropped. - </para> - <para> - If <command>max-clients-per-query</command> is set to zero, - then there is no upper bound other than imposed by - <command>recursive-clients</command>. - </para> - </listitem> - </varlistentry> - <varlistentry id="max-recursion-depth"> <term><command>max-recursion-depth</command></term> <listitem> @@ -8719,7 +8895,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; is terminated and returns SERVFAIL. Queries to look up top level comains such as "com" and "net" and the DNS root zone are exempt from this limitation. - The default is 50. + The default is 75. </para> </listitem> </varlistentry> @@ -8995,7 +9171,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; </para> </listitem> </varlistentry> - + <varlistentry> <term><command>empty-contact</command></term> <listitem> @@ -9006,7 +9182,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; </para> </listitem> </varlistentry> - + <varlistentry> <term><command>empty-zones-enable</command></term> <listitem> @@ -9016,7 +9192,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; </para> </listitem> </varlistentry> - + <varlistentry> <term><command>disable-empty-zone</command></term> <listitem> @@ -9803,7 +9979,7 @@ ns.domain.com.rpz-nsdname CNAME . <optional> max-udp-size <replaceable>number</replaceable> ; </optional> <optional> transfers <replaceable>number</replaceable> ; </optional> <optional> transfer-format <replaceable>( one-answer | many-answers )</replaceable> ; ]</optional> - <optional> keys <replaceable>{ string ; <optional> string ; <optional>...</optional></optional> }</replaceable> ; </optional> + <optional> keys { <replaceable>key_id</replaceable> }; </optional> <optional> transfer-source (<replaceable>ip4_addr</replaceable> | <constant>*</constant>) <optional>port <replaceable>ip_port</replaceable></optional> ; </optional> <optional> transfer-source-v6 (<replaceable>ip6_addr</replaceable> | <constant>*</constant>) <optional>port <replaceable>ip_port</replaceable></optional> ; </optional> <optional> notify-source (<replaceable>ip4_addr</replaceable> | <constant>*</constant>) <optional>port <replaceable>ip_port</replaceable></optional> ; </optional> @@ -9960,11 +10136,7 @@ ns.domain.com.rpz-nsdname CNAME . </para> <para> - Although the grammar of the <command>keys</command> - clause - allows for multiple keys, only a single key per server is - currently - supported. + Only a single key per server is currently supported. </para> <para> @@ -10009,7 +10181,7 @@ ns.domain.com.rpz-nsdname CNAME . whether the local server will add a NSID EDNS option to requests sent to the server. This overrides <command>request-nsid</command> set at the view or - option level. + option level. </para> </sect2> @@ -10087,9 +10259,9 @@ ns.domain.com.rpz-nsdname CNAME . >http://127.0.0.1:8888/</ulink> or <ulink url="http://127.0.0.1:8888/xml" >http://127.0.0.1:8888/xml</ulink>. A CSS file is - included which can format the XML statistics into tables + included which can format the XML statistics into tables when viewed with a stylesheet-capable browser. When - <acronym>BIND</acronym> 9 is configured with --enable-newstats, + <acronym>BIND</acronym> 9 is configured with --enable-newstats, a new XML schema is used (version 3) which adds additional zone statistics and uses a flatter tree for more efficient parsing. The stylesheet included uses the Google Charts API @@ -10099,10 +10271,10 @@ ns.domain.com.rpz-nsdname CNAME . <para> Applications that depend on a particular XML schema - can request + can request <ulink url="http://127.0.0.1:8888/xml/v2" >http://127.0.0.1:8888/xml/v2</ulink> for version 2 - of the statistics XML schema or + of the statistics XML schema or <ulink url="http://127.0.0.1:8888/xml/v3" >http://127.0.0.1:8888/xml/v3</ulink> for version 3. If the requested schema is supported by the server, then @@ -10176,7 +10348,7 @@ ns.domain.com.rpz-nsdname CNAME . <title><command>managed-keys</command> Statement Definition and Usage</title> <para> - The <command>managed-keys</command> statement, like + The <command>managed-keys</command> statement, like <command>trusted-keys</command>, defines DNSSEC security roots. The difference is that <command>managed-keys</command> can be kept up to date @@ -10222,7 +10394,7 @@ ns.domain.com.rpz-nsdname CNAME . <literal>initial-key</literal>. The difference is, whereas the keys listed in a <command>trusted-keys</command> continue to be trusted until they are removed from - <filename>named.conf</filename>, an initializing key listed + <filename>named.conf</filename>, an initializing key listed in a <command>managed-keys</command> statement is only trusted <emphasis>once</emphasis>: for as long as it takes to load the managed key database and start the RFC 5011 key maintenance @@ -10598,7 +10770,7 @@ zone <replaceable>zone_name</replaceable> <optional><replaceable>class</replacea type static-stub; <optional> allow-query { <replaceable>address_match_list</replaceable> }; </optional> <optional> server-addresses { <optional> <replaceable>ip_addr</replaceable> ; ... </optional> }; </optional> - <optional> server-names { <optional> <replaceable>namelist</replaceable> </optional> }; </optional> + <optional> server-names { <optional> <replaceable>namelist</replaceable> </optional> }; </optional> <optional> zone-statistics <replaceable>yes_or_no</replaceable> ; </optional> }; @@ -10798,7 +10970,7 @@ zone <replaceable>zone_name</replaceable> <optional><replaceable>class</replacea <para> Each static-stub zone is configured with internally generated NS and (if necessary) - glue A or AAAA RRs + glue A or AAAA RRs </para> </entry> </row> @@ -10882,7 +11054,7 @@ zone <replaceable>zone_name</replaceable> <optional><replaceable>class</replacea 2001:ffff:ffff::100.100.100.2, one would configure a type redirect zone named ".", with the zone file containing wildcard records - that point to the desired addresses: + that point to the desired addresses: <literal>"*. IN A 100.100.100.2"</literal> and <literal>"*. IN AAAA 2001:ffff:ffff::100.100.100.2"</literal>. @@ -10890,7 +11062,7 @@ zone <replaceable>zone_name</replaceable> <optional><replaceable>class</replacea <para> To redirect all Spanish names (under .ES) one would use similar entries but with the names - "*.ES." instead of "*.". To redirect all + "*.ES." instead of "*.". To redirect all commercial Spanish names (under COM.ES) one would use wildcard entries called "*.COM.ES.". </para> @@ -11659,7 +11831,7 @@ example.com. NS ns2.example.net. <replaceable>zonename</replaceable></command> causes <command>named</command> to load keys from the key repository and sign the zone with all keys that are - active. + active. <command>rndc loadkeys <replaceable>zonename</replaceable></command> causes <command>named</command> to load keys from the key @@ -11693,7 +11865,7 @@ example.com. NS ns2.example.net. the zone is updated. </para> <para> - When set to + When set to <command>serial-update-method unixtime;</command>, the SOA serial number will be set to the number of seconds since the UNIX epoch, unless the serial number is @@ -11726,7 +11898,7 @@ example.com. NS ns2.example.net. </para> </listitem> </varlistentry> - + <varlistentry> <term><command>masterfile-format</command></term> <listitem> @@ -12002,7 +12174,7 @@ example.com. NS ns2.example.net. <para> This rule takes a Windows machine principal (machine$@REALM) for machine in REALM and - and converts it machine.realm allowing the machine + and converts it machine.realm allowing the machine to update machine.realm. The REALM to be matched is specified in the <replaceable>identity</replaceable> field. @@ -12016,7 +12188,7 @@ example.com. NS ns2.example.net. </para> </entry> <entry colname="2"> <para> - This rule takes a Windows machine principal + This rule takes a Windows machine principal (machine$@REALM) for machine in REALM and converts it to machine.realm allowing the machine to update subdomains of machine.realm. The REALM @@ -12034,7 +12206,7 @@ example.com. NS ns2.example.net. <para> This rule takes a Kerberos machine principal (host/machine@REALM) for machine in REALM and - and converts it machine.realm allowing the machine + and converts it machine.realm allowing the machine to update machine.realm. The REALM to be matched is specified in the <replaceable>identity</replaceable> field. @@ -12048,7 +12220,7 @@ example.com. NS ns2.example.net. </para> </entry> <entry colname="2"> <para> - This rule takes a Kerberos machine principal + This rule takes a Kerberos machine principal (host/machine@REALM) for machine in REALM and converts it to machine.realm allowing the machine to update subdomains of machine.realm. The REALM @@ -12340,6 +12512,58 @@ example.com. NS ns2.example.net. <row rowsep="0"> <entry colname="1"> <para> + ATMA + </para> + </entry> + <entry colname="2"> + <para> + ATM Address. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + CAA + </para> + </entry> + <entry colname="2"> + <para> + Identifies which Certificate Authorities can issue + certificates for this domain and what rules they + need to follow when doing so. Defined in RFC 6844. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + CDNSKEY + </para> + </entry> + <entry colname="2"> + <para> + Identifies which DNSKEY records should be published + as DS records in the parent zone. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + CDS + </para> + </entry> + <entry colname="2"> + <para> + Contains the set of DS records that should be published + by the parent zone. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> CERT </para> </entry> @@ -12379,6 +12603,20 @@ example.com. NS ns2.example.net. <row rowsep="0"> <entry colname="1"> <para> + DLV + </para> + </entry> + <entry colname="2"> + <para> + A DNS Look-aside Validation record which contains + the records that are used as trust anchors for + zones in a DLV namespace. Described in RFC 4431. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> DNAME </para> </entry> @@ -12423,6 +12661,54 @@ example.com. NS ns2.example.net. <row rowsep="0"> <entry colname="1"> <para> + EID + </para> + </entry> + <entry colname="2"> + <para> + End Point Identifier. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + EUI48 + </para> + </entry> + <entry colname="2"> + <para> + A 48-bit EUI address. Described in RFC 7043. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + EUI64 + </para> + </entry> + <entry colname="2"> + <para> + A 64-bit EUI address. Described in RFC 7043. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + GID + </para> + </entry> + <entry colname="2"> + <para> + Reserved. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> GPOS </para> </entry> @@ -12448,6 +12734,19 @@ example.com. NS ns2.example.net. <row rowsep="0"> <entry colname="1"> <para> + HIP + </para> + </entry> + <entry colname="2"> + <para> + Host Identity Protocol Address. + Described in RFC 5205. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> IPSECKEY </para> </entry> @@ -12502,6 +12801,34 @@ example.com. NS ns2.example.net. <row rowsep="0"> <entry colname="1"> <para> + L32 + </para> + </entry> + <entry colname="2"> + <para> + Holds 32-bit Locator values for + Identifier-Locator Network Protocol. Described + in RFC 6742. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + L64 + </para> + </entry> + <entry colname="2"> + <para> + Holds 64-bit Locator values for + Identifier-Locator Network Protocol. Described + in RFC 6742. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> LOC </para> </entry> @@ -12515,6 +12842,91 @@ example.com. NS ns2.example.net. <row rowsep="0"> <entry colname="1"> <para> + LP + </para> + </entry> + <entry colname="2"> + <para> + Identifier-Locator Network Protocol. + Described in RFC 6742. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + MB + </para> + </entry> + <entry colname="2"> + <para> + Mail Box. Historical. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + MD + </para> + </entry> + <entry colname="2"> + <para> + Mail Destination. Historical. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + MF + </para> + </entry> + <entry colname="2"> + <para> + Mail Forwarder. Historical. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + MG + </para> + </entry> + <entry colname="2"> + <para> + Mail Group. Historical. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + MINFO + </para> + </entry> + <entry colname="2"> + <para> + Mail Information. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + MR + </para> + </entry> + <entry colname="2"> + <para> + Mail Rename. Historical. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> MX </para> </entry> @@ -12542,6 +12954,32 @@ example.com. NS ns2.example.net. <row rowsep="0"> <entry colname="1"> <para> + NID + </para> + </entry> + <entry colname="2"> + <para> + Holds values for Node Identifiers in + Identifier-Locator Network Protocol. Described + in RFC 6742. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + NIMLOC + </para> + </entry> + <entry colname="2"> + <para> + Nimrod Locator. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> NSAP </para> </entry> @@ -12555,6 +12993,18 @@ example.com. NS ns2.example.net. <row rowsep="0"> <entry colname="1"> <para> + NSAP-PTR + </para> + </entry> + <entry colname="2"> + <para> + Historical. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> NS </para> </entry> @@ -12619,6 +13069,18 @@ example.com. NS ns2.example.net. <row rowsep="0"> <entry colname="1"> <para> + NULL + </para> + </entry> + <entry colname="2"> + <para> + This is an opaque container. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> NXT </para> </entry> @@ -12638,6 +13100,18 @@ example.com. NS ns2.example.net. <row rowsep="0"> <entry colname="1"> <para> + OPENPGPKEY + </para> + </entry> + <entry colname="2"> + <para> + Used to hold an OPENPGPKEY. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> PTR </para> </entry> @@ -12772,6 +13246,19 @@ example.com. NS ns2.example.net. <row rowsep="0"> <entry colname="1"> <para> + TLSA + </para> + </entry> + <entry colname="2"> + <para> + Transport Layer Security Certificate Association. + Described in RFC 6698. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> TXT </para> </entry> @@ -12784,6 +13271,54 @@ example.com. NS ns2.example.net. <row rowsep="0"> <entry colname="1"> <para> + UID + </para> + </entry> + <entry colname="2"> + <para> + Reserved. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + UINFO + </para> + </entry> + <entry colname="2"> + <para> + Reserved. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + UNSPEC + </para> + </entry> + <entry colname="2"> + <para> + Reserved. Historical. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> + URI + </para> + </entry> + <entry colname="2"> + <para> + Holds a URI. Described in RFC 7553. + </para> + </entry> + </row> + <row rowsep="0"> + <entry colname="1"> + <para> WKS </para> </entry> @@ -13444,7 +13979,7 @@ example.com. NS ns2.example.net. <para> When used in the label (or name) field, the asperand or at-sign (@) symbol represents the current origin. - At the start of the zone file, it is the + At the start of the zone file, it is the <<varname>zone_name</varname>> (followed by trailing dot). </para> diff --git a/doc/arm/Bv9ARM.ch01.html b/doc/arm/Bv9ARM.ch01.html index 453ea4d8722b..ea3a6b682786 100644 --- a/doc/arm/Bv9ARM.ch01.html +++ b/doc/arm/Bv9ARM.ch01.html @@ -556,6 +556,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.ch02.html b/doc/arm/Bv9ARM.ch02.html index 8daddb376d2e..f2f95dd8ebfc 100644 --- a/doc/arm/Bv9ARM.ch02.html +++ b/doc/arm/Bv9ARM.ch02.html @@ -128,7 +128,7 @@ <p> ISC <acronym class="acronym">BIND</acronym> 9 compiles and runs on a large number - of Unix-like operating systems and on + of Unix-like operating systems and on Microsoft Windows Server 2003 and 2008, and Windows XP and Vista. For an up-to-date list of supported systems, see the README file in the top level @@ -154,6 +154,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.ch03.html b/doc/arm/Bv9ARM.ch03.html index f612baabef96..d019d62c0aad 100644 --- a/doc/arm/Bv9ARM.ch03.html +++ b/doc/arm/Bv9ARM.ch03.html @@ -665,6 +665,6 @@ controls { </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.ch04.html b/doc/arm/Bv9ARM.ch04.html index 1cc5498998ca..7cbc19ac9f5c 100644 --- a/doc/arm/Bv9ARM.ch04.html +++ b/doc/arm/Bv9ARM.ch04.html @@ -65,43 +65,43 @@ <dt><span class="sect1"><a href="Bv9ARM.ch04.html#DNSSEC">DNSSEC</a></span></dt> <dd><dl> <dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571054">Generating Keys</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571338">Signing the Zone</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571419">Configuring Servers</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571270">Signing the Zone</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571351">Configuring Servers</a></span></dt> </dl></dd> <dt><span class="sect1"><a href="Bv9ARM.ch04.html#dnssec.dynamic.zones">DNSSEC, Dynamic Zones, and Automatic Signing</a></span></dt> <dd><dl> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609449">Converting from insecure to secure</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609486">Dynamic DNS update method</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563716">Fully automatic zone signing</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563963">Private-type records</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564001">DNSKEY rollovers</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564013">Dynamic DNS update method</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569781">Automatic key rollovers</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569808">NSEC3PARAM rollovers via UPDATE</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569817">Converting from NSEC to NSEC3</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569827">Converting from NSEC3 to NSEC</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608888">Converting from secure to insecure</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608925">Periodic re-signing</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608935">NSEC3 and OPTOUT</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610615">Converting from insecure to secure</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610652">Dynamic DNS update method</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563653">Fully automatic zone signing</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563900">Private-type records</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563938">DNSKEY rollovers</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563950">Dynamic DNS update method</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564052">Automatic key rollovers</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564078">NSEC3PARAM rollovers via UPDATE</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564088">Converting from NSEC to NSEC3</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569832">Converting from NSEC3 to NSEC</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569845">Converting from secure to insecure</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569882">Periodic re-signing</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569892">NSEC3 and OPTOUT</a></span></dt> </dl></dd> <dt><span class="sect1"><a href="Bv9ARM.ch04.html#rfc5011.support">Dynamic Trust Anchor Management</a></span></dt> <dd><dl> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569982">Validating Resolver</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570005">Authoritative Server</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610129">Validating Resolver</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610151">Authoritative Server</a></span></dt> </dl></dd> <dt><span class="sect1"><a href="Bv9ARM.ch04.html#pkcs11">PKCS #11 (Cryptoki) support</a></span></dt> <dd><dl> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609020">Prerequisites</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610137">Building BIND 9 with PKCS#11</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2612651">PKCS #11 Tools</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2612682">Using the HSM</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636637">Specifying the engine on the command line</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636683">Running named with automatic zone re-signing</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2613326">Prerequisites</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2611166">Building BIND 9 with PKCS#11</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2613408">PKCS #11 Tools</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2613438">Using the HSM</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2637735">Specifying the engine on the command line</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2637781">Running named with automatic zone re-signing</a></span></dt> </dl></dd> -<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571639">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571571">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt> <dd><dl> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571906">Address Lookups Using AAAA Records</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571927">Address to Name Lookups Using Nibble Format</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571837">Address Lookups Using AAAA Records</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571859">Address to Name Lookups Using Nibble Format</a></span></dt> </dl></dd> </dl> </div> @@ -872,7 +872,7 @@ allow-update { key host1-host2. ;}; </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2571338"></a>Signing the Zone</h3></div></div></div> +<a name="id2571270"></a>Signing the Zone</h3></div></div></div> <p> The <span><strong class="command">dnssec-signzone</strong></span> program is used to sign a zone. @@ -914,7 +914,7 @@ allow-update { key host1-host2. ;}; </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2571419"></a>Configuring Servers</h3></div></div></div> +<a name="id2571351"></a>Configuring Servers</h3></div></div></div> <p> To enable <span><strong class="command">named</strong></span> to respond appropriately to DNS requests from DNSSEC aware clients, @@ -925,7 +925,7 @@ allow-update { key host1-host2. ;}; To enable <span><strong class="command">named</strong></span> to validate answers from other servers, the <span><strong class="command">dnssec-enable</strong></span> option must be set to <strong class="userinput"><code>yes</code></strong>, and the - <span><strong class="command">dnssec-validation</strong></span> options must be set to + <span><strong class="command">dnssec-validation</strong></span> options must be set to <strong class="userinput"><code>yes</code></strong> or <strong class="userinput"><code>auto</code></strong>. </p> <p> @@ -1041,7 +1041,7 @@ options { including missing, expired, or invalid signatures, a key which does not match the DS RRset in the parent zone, or an insecure response from a zone which, according to its parent, should have - been secure. + been secure. </p> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Note</h3> @@ -1074,7 +1074,7 @@ options { from insecure to signed and back again. A secure zone can use either NSEC or NSEC3 chains.</p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2609449"></a>Converting from insecure to secure</h3></div></div></div></div> +<a name="id2610615"></a>Converting from insecure to secure</h3></div></div></div></div> <p>Changing a zone from insecure to secure can be done in two ways: using a dynamic DNS update, or the <span><strong class="command">auto-dnssec</strong></span> zone option.</p> @@ -1100,7 +1100,7 @@ options { well. An NSEC chain will be generated as part of the initial signing process.</p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2609486"></a>Dynamic DNS update method</h3></div></div></div></div> +<a name="id2610652"></a>Dynamic DNS update method</h3></div></div></div></div> <p>To insert the keys via dynamic update:</p> <pre class="screen"> % nsupdate @@ -1136,7 +1136,7 @@ options { <p>While the initial signing and NSEC/NSEC3 chain generation is happening, other updates are possible as well.</p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2563716"></a>Fully automatic zone signing</h3></div></div></div></div> +<a name="id2563653"></a>Fully automatic zone signing</h3></div></div></div></div> <p>To enable automatic signing, add the <span><strong class="command">auto-dnssec</strong></span> option to the zone statement in <code class="filename">named.conf</code>. @@ -1199,7 +1199,7 @@ options { configuration. If this has not been done, the configuration will fail.</p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2563963"></a>Private-type records</h3></div></div></div></div> +<a name="id2563900"></a>Private-type records</h3></div></div></div></div> <p>The state of the signing process is signaled by private-type records (with a default type value of 65534). When signing is complete, these records will have a nonzero value for @@ -1240,12 +1240,12 @@ options { <p> </p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2564001"></a>DNSKEY rollovers</h3></div></div></div></div> +<a name="id2563938"></a>DNSKEY rollovers</h3></div></div></div></div> <p>As with insecure-to-secure conversions, rolling DNSSEC keys can be done in two ways: using a dynamic DNS update, or the <span><strong class="command">auto-dnssec</strong></span> zone option.</p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2564013"></a>Dynamic DNS update method</h3></div></div></div></div> +<a name="id2563950"></a>Dynamic DNS update method</h3></div></div></div></div> <p> To perform key rollovers via dynamic update, you need to add the <code class="filename">K*</code> files for the new keys so that <span><strong class="command">named</strong></span> can find them. You can then add the new @@ -1267,7 +1267,7 @@ options { <span><strong class="command">named</strong></span> will clean out any signatures generated by the old key after the update completes.</p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2569781"></a>Automatic key rollovers</h3></div></div></div></div> +<a name="id2564052"></a>Automatic key rollovers</h3></div></div></div></div> <p>When a new key reaches its activation date (as set by <span><strong class="command">dnssec-keygen</strong></span> or <span><strong class="command">dnssec-settime</strong></span>), if the <span><strong class="command">auto-dnssec</strong></span> zone option is set to @@ -1282,27 +1282,27 @@ options { completes in 30 days, after which it will be safe to remove the old key from the DNSKEY RRset.</p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2569808"></a>NSEC3PARAM rollovers via UPDATE</h3></div></div></div></div> +<a name="id2564078"></a>NSEC3PARAM rollovers via UPDATE</h3></div></div></div></div> <p>Add the new NSEC3PARAM record via dynamic update. When the new NSEC3 chain has been generated, the NSEC3PARAM flag field will be zero. At this point you can remove the old NSEC3PARAM record. The old chain will be removed after the update request completes.</p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2569817"></a>Converting from NSEC to NSEC3</h3></div></div></div></div> +<a name="id2564088"></a>Converting from NSEC to NSEC3</h3></div></div></div></div> <p>To do this, you just need to add an NSEC3PARAM record. When the conversion is complete, the NSEC chain will have been removed and the NSEC3PARAM record will have a zero flag field. The NSEC3 chain will be generated before the NSEC chain is destroyed.</p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2569827"></a>Converting from NSEC3 to NSEC</h3></div></div></div></div> +<a name="id2569832"></a>Converting from NSEC3 to NSEC</h3></div></div></div></div> <p>To do this, use <span><strong class="command">nsupdate</strong></span> to remove all NSEC3PARAM records with a zero flag field. The NSEC chain will be generated before the NSEC3 chain is removed.</p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2608888"></a>Converting from secure to insecure</h3></div></div></div></div> +<a name="id2569845"></a>Converting from secure to insecure</h3></div></div></div></div> <p>To convert a signed zone to unsigned using dynamic DNS, delete all the DNSKEY records from the zone apex using <span><strong class="command">nsupdate</strong></span>. All signatures, NSEC or NSEC3 chains, @@ -1317,14 +1317,14 @@ options { <span><strong class="command">allow</strong></span> instead (or it will re-sign). </p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2608925"></a>Periodic re-signing</h3></div></div></div></div> +<a name="id2569882"></a>Periodic re-signing</h3></div></div></div></div> <p>In any secure zone which supports dynamic updates, named will periodically re-sign RRsets which have not been re-signed as a result of some update action. The signature lifetimes will be adjusted so as to spread the re-sign load over time rather than all at once.</p> <div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"> -<a name="id2608935"></a>NSEC3 and OPTOUT</h3></div></div></div></div> +<a name="id2569892"></a>NSEC3 and OPTOUT</h3></div></div></div></div> <p> <span><strong class="command">named</strong></span> only supports creating new NSEC3 chains where all the NSEC3 records in the zone have the same OPTOUT @@ -1346,7 +1346,7 @@ options { configuration files.</p> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2569982"></a>Validating Resolver</h3></div></div></div> +<a name="id2610129"></a>Validating Resolver</h3></div></div></div> <p>To configure a validating resolver to use RFC 5011 to maintain a trust anchor, configure the trust anchor using a <span><strong class="command">managed-keys</strong></span> statement. Information about @@ -1357,7 +1357,7 @@ options { </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2570005"></a>Authoritative Server</h3></div></div></div> +<a name="id2610151"></a>Authoritative Server</h3></div></div></div> <p>To set up an authoritative zone for RFC 5011 trust anchor maintenance, generate two (or more) key signing keys (KSKs) for the zone. Sign the zone with one of them; this is the "active" @@ -1431,7 +1431,7 @@ $ <strong class="userinput"><code>dnssec-signzone -S -K keys example.net</code>< Debian Linux, Solaris x86 and Windows Server 2003.</p> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2609020"></a>Prerequisites</h3></div></div></div> +<a name="id2613326"></a>Prerequisites</h3></div></div></div> <p>See the HSM vendor documentation for information about installing, initializing, testing and troubleshooting the HSM.</p> @@ -1510,7 +1510,7 @@ $ <strong class="userinput"><code>patch -p1 -d openssl-0.9.8s \ when we configure BIND 9.</p> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2609731"></a>Building OpenSSL for the AEP Keyper on Linux</h4></div></div></div> +<a name="id2610828"></a>Building OpenSSL for the AEP Keyper on Linux</h4></div></div></div> <p>The AEP Keyper is a highly secure key storage device, but does not provide hardware cryptographic acceleration. It can carry out cryptographic operations, but it is probably @@ -1542,7 +1542,7 @@ $ <strong class="userinput"><code>./Configure linux-generic32 -m32 -pthread \ </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2609868"></a>Building OpenSSL for the SCA 6000 on Solaris</h4></div></div></div> +<a name="id2610898"></a>Building OpenSSL for the SCA 6000 on Solaris</h4></div></div></div> <p>The SCA-6000 PKCS #11 provider is installed as a system library, libpkcs11. It is a true crypto accelerator, up to 4 times faster than any CPU, so the flavor shall be @@ -1564,7 +1564,7 @@ $ <strong class="userinput"><code>./Configure solaris64-x86_64-cc \ </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2609986"></a>Building OpenSSL for SoftHSM</h4></div></div></div> +<a name="id2611015"></a>Building OpenSSL for SoftHSM</h4></div></div></div> <p>SoftHSM is a software library provided by the OpenDNSSEC project (http://www.opendnssec.org) which provides a PKCS#11 interface to a virtual HSM, implemented in the form of encrypted @@ -1624,12 +1624,12 @@ $ <strong class="userinput"><code>./Configure linux-x86_64 -pthread \ </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2610137"></a>Building BIND 9 with PKCS#11</h3></div></div></div> +<a name="id2611166"></a>Building BIND 9 with PKCS#11</h3></div></div></div> <p>When building BIND 9, the location of the custom-built OpenSSL library must be specified via configure.</p> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2610146"></a>Configuring BIND 9 for Linux with the AEP Keyper</h4></div></div></div> +<a name="id2611175"></a>Configuring BIND 9 for Linux with the AEP Keyper</h4></div></div></div> <p>To link with the PKCS #11 provider, threads must be enabled in the BIND 9 build.</p> <p>The PKCS #11 library for the AEP Keyper is currently @@ -1645,7 +1645,7 @@ $ <strong class="userinput"><code>./configure CC="gcc -m32" --enable-threads \ </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2610178"></a>Configuring BIND 9 for Solaris with the SCA 6000</h4></div></div></div> +<a name="id2611275"></a>Configuring BIND 9 for Solaris with the SCA 6000</h4></div></div></div> <p>To link with the PKCS #11 provider, threads must be enabled in the BIND 9 build.</p> <pre class="screen"> @@ -1663,7 +1663,7 @@ $ <strong class="userinput"><code>./configure CC="cc -xarch=amd64" --enable-thre </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2610214"></a>Configuring BIND 9 for SoftHSM</h4></div></div></div> +<a name="id2611312"></a>Configuring BIND 9 for SoftHSM</h4></div></div></div> <pre class="screen"> $ <strong class="userinput"><code>cd ../bind9</code></strong> $ <strong class="userinput"><code>./configure --enable-threads \ @@ -1680,7 +1680,7 @@ $ <strong class="userinput"><code>./configure --enable-threads \ </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2612651"></a>PKCS #11 Tools</h3></div></div></div> +<a name="id2613408"></a>PKCS #11 Tools</h3></div></div></div> <p>BIND 9 includes a minimal set of tools to operate the HSM, including <span><strong class="command">pkcs11-keygen</strong></span> to generate a new key pair @@ -1698,7 +1698,7 @@ $ <strong class="userinput"><code>./configure --enable-threads \ </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2612682"></a>Using the HSM</h3></div></div></div> +<a name="id2613438"></a>Using the HSM</h3></div></div></div> <p>First, we must set up the runtime environment so the OpenSSL and PKCS #11 libraries can be loaded:</p> <pre class="screen"> @@ -1786,7 +1786,7 @@ example.net.signed </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2636637"></a>Specifying the engine on the command line</h3></div></div></div> +<a name="id2637735"></a>Specifying the engine on the command line</h3></div></div></div> <p>The OpenSSL engine can be specified in <span><strong class="command">named</strong></span> and all of the BIND <span><strong class="command">dnssec-*</strong></span> tools by using the "-E @@ -1807,7 +1807,7 @@ $ <strong class="userinput"><code>dnssec-signzone -E '' -S example.net</code></s </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2636683"></a>Running named with automatic zone re-signing</h3></div></div></div> +<a name="id2637781"></a>Running named with automatic zone re-signing</h3></div></div></div> <p>If you want <span><strong class="command">named</strong></span> to dynamically re-sign zones using HSM keys, and/or to to sign new records inserted via nsupdate, then @@ -1843,7 +1843,7 @@ $ <strong class="userinput"><code>dnssec-signzone -E '' -S example.net</code></s </div> <div class="sect1" lang="en"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> -<a name="id2571639"></a>IPv6 Support in <acronym class="acronym">BIND</acronym> 9</h2></div></div></div> +<a name="id2571571"></a>IPv6 Support in <acronym class="acronym">BIND</acronym> 9</h2></div></div></div> <p> <acronym class="acronym">BIND</acronym> 9 fully supports all currently defined forms of IPv6 name to address and address to name @@ -1865,7 +1865,7 @@ $ <strong class="userinput"><code>dnssec-signzone -E '' -S example.net</code></s the traditional "nibble" format used in the <span class="emphasis"><em>ip6.arpa</em></span> domain, as well as the older, deprecated <span class="emphasis"><em>ip6.int</em></span> domain. - Older versions of <acronym class="acronym">BIND</acronym> 9 + Older versions of <acronym class="acronym">BIND</acronym> 9 supported the "binary label" (also known as "bitstring") format, but support of binary labels has been completely removed per RFC 3363. @@ -1881,7 +1881,7 @@ $ <strong class="userinput"><code>dnssec-signzone -E '' -S example.net</code></s </p> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2571906"></a>Address Lookups Using AAAA Records</h3></div></div></div> +<a name="id2571837"></a>Address Lookups Using AAAA Records</h3></div></div></div> <p> The IPv6 AAAA record is a parallel to the IPv4 A record, and, unlike the deprecated A6 record, specifies the entire @@ -1900,7 +1900,7 @@ host 3600 IN AAAA 2001:db8::1 </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2571927"></a>Address to Name Lookups Using Nibble Format</h3></div></div></div> +<a name="id2571859"></a>Address to Name Lookups Using Nibble Format</h3></div></div></div> <p> When looking up an address in nibble format, the address components are simply reversed, just as in IPv4, and @@ -1935,6 +1935,6 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.ch05.html b/doc/arm/Bv9ARM.ch05.html index 63f523a134ad..d9c6e3a4259f 100644 --- a/doc/arm/Bv9ARM.ch05.html +++ b/doc/arm/Bv9ARM.ch05.html @@ -45,13 +45,13 @@ <div class="toc"> <p><b>Table of Contents</b></p> <dl> -<dt><span class="sect1"><a href="Bv9ARM.ch05.html#id2571960">The Lightweight Resolver Library</a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch05.html#id2571892">The Lightweight Resolver Library</a></span></dt> <dt><span class="sect1"><a href="Bv9ARM.ch05.html#lwresd">Running a Resolver Daemon</a></span></dt> </dl> </div> <div class="sect1" lang="en"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> -<a name="id2571960"></a>The Lightweight Resolver Library</h2></div></div></div> +<a name="id2571892"></a>The Lightweight Resolver Library</h2></div></div></div> <p> Traditionally applications have been linked with a stub resolver library that sends recursive DNS queries to a local caching name @@ -139,6 +139,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.ch06.html b/doc/arm/Bv9ARM.ch06.html index a0754c6556a1..244e0fa290b8 100644 --- a/doc/arm/Bv9ARM.ch06.html +++ b/doc/arm/Bv9ARM.ch06.html @@ -66,9 +66,9 @@ <dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574875"><span><strong class="command">logging</strong></span> Statement Grammar</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575001"><span><strong class="command">logging</strong></span> Statement Definition and Usage</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577168"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577241"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577305"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577236"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577309"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577373"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577417"><span><strong class="command">masters</strong></span> Statement Definition and Usage</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577438"><span><strong class="command">options</strong></span> Statement Grammar</a></span></dt> @@ -78,28 +78,28 @@ <dt><span class="sect2"><a href="Bv9ARM.ch06.html#server_statement_definition_and_usage"><span><strong class="command">server</strong></span> Statement Definition and Usage</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#statschannels"><span><strong class="command">statistics-channels</strong></span> Statement Grammar</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590489"><span><strong class="command">statistics-channels</strong></span> Statement Definition and +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590832"><span><strong class="command">statistics-channels</strong></span> Statement Definition and Usage</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#trusted-keys"><span><strong class="command">trusted-keys</strong></span> Statement Grammar</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590796"><span><strong class="command">trusted-keys</strong></span> Statement Definition +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591139"><span><strong class="command">trusted-keys</strong></span> Statement Definition and Usage</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590843"><span><strong class="command">managed-keys</strong></span> Statement Grammar</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591186"><span><strong class="command">managed-keys</strong></span> Statement Grammar</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#managed-keys"><span><strong class="command">managed-keys</strong></span> Statement Definition and Usage</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#view_statement_grammar"><span><strong class="command">view</strong></span> Statement Grammar</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591278"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591553"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#zone_statement_grammar"><span><strong class="command">zone</strong></span> Statement Grammar</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2592987"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2593398"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt> </dl></dd> -<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2596605">Zone File</a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2597084">Zone File</a></span></dt> <dd><dl> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#types_of_resource_records_and_when_to_use_them">Types of Resource Records and When to Use Them</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2598768">Discussion of MX Records</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2600002">Discussion of MX Records</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#Setting_TTLs">Setting TTLs</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599451">Inverse Mapping in IPv4</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599578">Other Zone File Directives</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599851"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2600549">Inverse Mapping in IPv4</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2600812">Other Zone File Directives</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2601017"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#zonefile_format">Additional File Formats</a></span></dt> </dl></dd> <dt><span class="sect1"><a href="Bv9ARM.ch06.html#statistics">BIND9 Statistics</a></span></dt> @@ -424,7 +424,7 @@ "as big as possible", depending on the context. See the explanations of particular parameters that use <code class="varname">size_spec</code> - for details on how they interpret its use. + for details on how they interpret its use. </p> <p> Numeric values can optionally be followed by a @@ -443,12 +443,12 @@ (including <code class="option">max-cache-size</code>), it may mean the largest possible 32-bit unsigned integer (0xffffffff); this distinction can be important when - dealing with larger quantities. + dealing with larger quantities. <code class="varname">unlimited</code> is usually the best way to safely set a very large number. </p> <p> - <code class="varname">default</code> + <code class="varname">default</code> uses the limit that was in force when the server was started. </p> </td> @@ -777,7 +777,7 @@ <p> defines a named masters list for inclusion in stub and slave zones' - <span><strong class="command">masters</strong></span> or + <span><strong class="command">masters</strong></span> or <span><strong class="command">also-notify</strong></span> lists. </p> </td> @@ -1094,8 +1094,8 @@ <div class="titlepage"><div><div><h3 class="title"> <a name="id2574761"></a><span><strong class="command">key</strong></span> Statement Grammar</h3></div></div></div> <pre class="programlisting"><span><strong class="command">key</strong></span> <em class="replaceable"><code>key_id</code></em> { - algorithm <em class="replaceable"><code>string</code></em>; - secret <em class="replaceable"><code>string</code></em>; + algorithm <em class="replaceable"><code>algorithm_id</code></em>; + secret <em class="replaceable"><code>secret_string</code></em>; }; </pre> </div> @@ -2063,7 +2063,7 @@ badresp:1,adberr:0,findfail:0,valfail:0] </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2577168"></a><span><strong class="command">lwres</strong></span> Statement Grammar</h3></div></div></div> +<a name="id2577236"></a><span><strong class="command">lwres</strong></span> Statement Grammar</h3></div></div></div> <p> This is the grammar of the <span><strong class="command">lwres</strong></span> statement in the <code class="filename">named.conf</code> file: @@ -2079,7 +2079,7 @@ badresp:1,adberr:0,findfail:0,valfail:0] </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2577241"></a><span><strong class="command">lwres</strong></span> Statement Definition and Usage</h3></div></div></div> +<a name="id2577309"></a><span><strong class="command">lwres</strong></span> Statement Definition and Usage</h3></div></div></div> <p> The <span><strong class="command">lwres</strong></span> statement configures the name @@ -2130,9 +2130,9 @@ badresp:1,adberr:0,findfail:0,valfail:0] </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2577305"></a><span><strong class="command">masters</strong></span> Statement Grammar</h3></div></div></div> +<a name="id2577373"></a><span><strong class="command">masters</strong></span> Statement Grammar</h3></div></div></div> <pre class="programlisting"> -<span><strong class="command">masters</strong></span> <em class="replaceable"><code>name</code></em> [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] { ( <em class="replaceable"><code>masters_list</code></em> | +<span><strong class="command">masters</strong></span> <em class="replaceable"><code>name</code></em> [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] { ( <em class="replaceable"><code>masters_list</code></em> | <em class="replaceable"><code>ip_addr</code></em> [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] [<span class="optional">key <em class="replaceable"><code>key</code></em></span>] ) ; [<span class="optional">...</span>] }; </pre> </div> @@ -2208,7 +2208,7 @@ badresp:1,adberr:0,findfail:0,valfail:0] [<span class="optional"> forwarders { [<span class="optional"> <em class="replaceable"><code>ip_addr</code></em> [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] ; ... </span>] }; </span>] [<span class="optional"> dual-stack-servers [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] { ( <em class="replaceable"><code>domain_name</code></em> [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] | - <em class="replaceable"><code>ip_addr</code></em> [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] ) ; + <em class="replaceable"><code>ip_addr</code></em> [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] ) ; ... }; </span>] [<span class="optional"> check-names ( <em class="replaceable"><code>master</code></em> | <em class="replaceable"><code>slave</code></em> | <em class="replaceable"><code>response</code></em> ) ( <em class="replaceable"><code>warn</code></em> | <em class="replaceable"><code>fail</code></em> | <em class="replaceable"><code>ignore</code></em> ); </span>] @@ -2251,8 +2251,8 @@ badresp:1,adberr:0,findfail:0,valfail:0] [<span class="optional"> address ( <em class="replaceable"><code>ip4_addr</code></em> | <em class="replaceable"><code>*</code></em> ) </span>] [<span class="optional"> port ( <em class="replaceable"><code>ip_port</code></em> | <em class="replaceable"><code>*</code></em> ) </span>] ) ; </span>] [<span class="optional"> query-source-v6 ( ( <em class="replaceable"><code>ip6_addr</code></em> | <em class="replaceable"><code>*</code></em> ) - [<span class="optional"> port ( <em class="replaceable"><code>ip_port</code></em> | <em class="replaceable"><code>*</code></em> ) </span>] | - [<span class="optional"> address ( <em class="replaceable"><code>ip6_addr</code></em> | <em class="replaceable"><code>*</code></em> ) </span>] + [<span class="optional"> port ( <em class="replaceable"><code>ip_port</code></em> | <em class="replaceable"><code>*</code></em> ) </span>] | + [<span class="optional"> address ( <em class="replaceable"><code>ip6_addr</code></em> | <em class="replaceable"><code>*</code></em> ) </span>] [<span class="optional"> port ( <em class="replaceable"><code>ip_port</code></em> | <em class="replaceable"><code>*</code></em> ) </span>] ) ; </span>] [<span class="optional"> use-queryport-pool <em class="replaceable"><code>yes_or_no</code></em>; </span>] [<span class="optional"> queryport-pool-ports <em class="replaceable"><code>number</code></em>; </span>] @@ -2261,9 +2261,14 @@ badresp:1,adberr:0,findfail:0,valfail:0] [<span class="optional"> max-transfer-time-out <em class="replaceable"><code>number</code></em>; </span>] [<span class="optional"> max-transfer-idle-in <em class="replaceable"><code>number</code></em>; </span>] [<span class="optional"> max-transfer-idle-out <em class="replaceable"><code>number</code></em>; </span>] - [<span class="optional"> tcp-clients <em class="replaceable"><code>number</code></em>; </span>] [<span class="optional"> reserved-sockets <em class="replaceable"><code>number</code></em>; </span>] [<span class="optional"> recursive-clients <em class="replaceable"><code>number</code></em>; </span>] + [<span class="optional"> tcp-clients <em class="replaceable"><code>number</code></em>; </span>] + [<span class="optional"> clients-per-query <em class="replaceable"><code>number</code></em> ; </span>] + [<span class="optional"> max-clients-per-query <em class="replaceable"><code>number</code></em> ; </span>] + [<span class="optional"> fetches-per-server <em class="replaceable"><code>number</code></em> [<span class="optional"><em class="replaceable"><code>(drop | fail)</code></em></span>]; </span>] + [<span class="optional"> fetch-quota-params <em class="replaceable"><code>number fixedpoint fixedpoint fixedpoint</code></em> ; </span>] + [<span class="optional"> fetches-per-zone<em class="replaceable"><code>number</code></em> [<span class="optional"><em class="replaceable"><code>(drop | fail)</code></em></span>]; </span>] [<span class="optional"> serial-query-rate <em class="replaceable"><code>number</code></em>; </span>] [<span class="optional"> serial-queries <em class="replaceable"><code>number</code></em>; </span>] [<span class="optional"> tcp-listen-queue <em class="replaceable"><code>number</code></em>; </span>] @@ -2342,8 +2347,6 @@ badresp:1,adberr:0,findfail:0,valfail:0] [<span class="optional"> acache-enable <em class="replaceable"><code>yes_or_no</code></em> ; </span>] [<span class="optional"> acache-cleaning-interval <em class="replaceable"><code>number</code></em>; </span>] [<span class="optional"> max-acache-size <em class="replaceable"><code>size_spec</code></em> ; </span>] - [<span class="optional"> clients-per-query <em class="replaceable"><code>number</code></em> ; </span>] - [<span class="optional"> max-clients-per-query <em class="replaceable"><code>number</code></em> ; </span>] [<span class="optional"> max-recursion-depth <em class="replaceable"><code>number</code></em> ; </span>] [<span class="optional"> max-recursion-queries <em class="replaceable"><code>number</code></em> ; </span>] [<span class="optional"> masterfile-format (<code class="constant">text</code>|<code class="constant">raw</code>) ; </span>] @@ -2377,12 +2380,12 @@ badresp:1,adberr:0,findfail:0,valfail:0] zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"> policy <em class="replaceable"><code>(given | disabled | passthru | nxdomain | nodata | cname domain</code></em>) </span>] - [<span class="optional"> recursive-only <em class="replaceable"><code>yes_or_no</code></em> </span>] - [<span class="optional"> max-policy-ttl <em class="replaceable"><code>number</code></em> </span>] - [<span class="optional"> break-dnssec <em class="replaceable"><code>yes_or_no</code></em> </span>] - [<span class="optional"> min-ns-dots <em class="replaceable"><code>number</code></em> </span>] ; [<span class="optional">...</span>] - } ; </span>] + } [<span class="optional"> recursive-only <em class="replaceable"><code>yes_or_no</code></em> </span>] + [<span class="optional"> max-policy-ttl <em class="replaceable"><code>number</code></em> </span>] + [<span class="optional"> break-dnssec <em class="replaceable"><code>yes_or_no</code></em> </span>] + [<span class="optional"> min-ns-dots <em class="replaceable"><code>number</code></em> </span>] + ; </span>] }; </pre> </div> @@ -2640,7 +2643,7 @@ badresp:1,adberr:0,findfail:0,valfail:0] The pathname of a file to override the built-in trusted keys provided by <span><strong class="command">named</strong></span>. See the discussion of <span><strong class="command">dnssec-lookaside</strong></span> - and <span><strong class="command">dnssec-validation</strong></span> for details. + and <span><strong class="command">dnssec-validation</strong></span> for details. If not specified, the default is <code class="filename">/etc/bind.keys</code>. </p></dd> @@ -2862,7 +2865,7 @@ options { <p> Each <span><strong class="command">dns64</strong></span> supports an optional <span><strong class="command">mapped</strong></span> ACL that selects which - IPv4 addresses are to be mapped in the corresponding + IPv4 addresses are to be mapped in the corresponding A RRset. If not defined it defaults to <strong class="userinput"><code>any;</code></strong>. </p> @@ -3363,7 +3366,7 @@ options { <dt><span class="term"><span><strong class="command">request-nsid</strong></span></span></dt> <dd><p> If <strong class="userinput"><code>yes</code></strong>, then an empty EDNS(0) - NSID (Name Server Identifier) option is sent with all + NSID (Name Server Identifier) option is sent with all queries to authoritative name servers during iterative resolution. If the authoritative server returns an NSID option in its response, then its contents are logged in @@ -3549,7 +3552,7 @@ options { <p> If <strong class="userinput"><code>yes</code></strong>, the DNS client is at an IPv4 address, in <span><strong class="command">filter-aaaa</strong></span>, - and if the response does not include DNSSEC signatures, + and if the response does not include DNSSEC signatures, then all AAAA records are deleted from the response. This filtering applies to all responses and not only authoritative responses. @@ -3561,8 +3564,8 @@ options { because the DNSSEC protocol is designed detect deletions. </p> <p> - This mechanism can erroneously cause other servers to - not give AAAA records to their clients. + This mechanism can erroneously cause other servers to + not give AAAA records to their clients. A recursing server with both IPv6 and IPv4 network connections that queries an authoritative server using this mechanism via IPv4 will be denied AAAA records even if its client is @@ -3627,12 +3630,16 @@ options { </p></dd> <dt><span class="term"><span><strong class="command">dnssec-enable</strong></span></span></dt> <dd><p> - Enable DNSSEC support in <span><strong class="command">named</strong></span>. Unless set to <strong class="userinput"><code>yes</code></strong>, - <span><strong class="command">named</strong></span> behaves as if it does not support DNSSEC. + This indicates whether DNSSEC-related resource + records are to be returned by <span><strong class="command">named</strong></span>. + If set to <strong class="userinput"><code>no</code></strong>, + <span><strong class="command">named</strong></span> will not return DNSSEC-related + resource records unless specifically queried for. The default is <strong class="userinput"><code>yes</code></strong>. </p></dd> <dt><span class="term"><span><strong class="command">dnssec-validation</strong></span></span></dt> -<dd><p> +<dd> +<p> Enable DNSSEC validation in <span><strong class="command">named</strong></span>. Note <span><strong class="command">dnssec-enable</strong></span> also needs to be set to <strong class="userinput"><code>yes</code></strong> to be effective. @@ -3645,7 +3652,17 @@ options { a <span><strong class="command">trusted-keys</strong></span> or <span><strong class="command">managed-keys</strong></span> statement. The default is <strong class="userinput"><code>yes</code></strong>. - </p></dd> + </p> +<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> +<h3 class="title">Note</h3> +<p> + Whenever the resolver sends out queries to an + EDNS-compliant server, it always sets the DO bit + indicating it can support DNSSEC responses even if + <span><strong class="command">dnssec-validation</strong></span> is off. + </p> +</div> +</dd> <dt><span class="term"><span><strong class="command">dnssec-accept-expired</strong></span></span></dt> <dd><p> Accept expired signatures when verifying DNSSEC signatures. @@ -3874,7 +3891,7 @@ options { </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2583443"></a>Forwarding</h4></div></div></div> +<a name="id2583480"></a>Forwarding</h4></div></div></div> <p> The forwarding facility can be used to create a large site-wide cache on a few servers, reducing traffic over links to external @@ -3918,7 +3935,7 @@ options { </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2583570"></a>Dual-stack Servers</h4></div></div></div> +<a name="id2583607"></a>Dual-stack Servers</h4></div></div></div> <p> Dual-stack servers are used as servers of last resort to work around @@ -4186,7 +4203,7 @@ options { </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2584312"></a>Interfaces</h4></div></div></div> +<a name="id2584281"></a>Interfaces</h4></div></div></div> <p> The interfaces and ports that the server will answer queries from may be specified using the <span><strong class="command">listen-on</strong></span> option. <span><strong class="command">listen-on</strong></span> takes @@ -4352,7 +4369,7 @@ avoid-v6-udp-ports {}; </pre> <p> Note: BIND 9.5.0 introduced - the <span><strong class="command">use-queryport-pool</strong></span> + the <span><strong class="command">use-queryport-pool</strong></span> option to support a pool of such random ports, but this option is now obsolete because reusing the same ports in the pool may not be sufficiently secure. @@ -4489,7 +4506,7 @@ avoid-v6-udp-ports {}; </p> <p> In addition to controlling the rate SOA refresh - queries are issued at + queries are issued at, <span><strong class="command">serial-query-rate</strong></span> also controls the rate at which NOTIFY messages are sent from both master and slave zones. @@ -4660,7 +4677,7 @@ avoid-v6-udp-ports {}; </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2585465"></a>UDP Port Lists</h4></div></div></div> +<a name="id2585434"></a>UDP Port Lists</h4></div></div></div> <p> <span><strong class="command">use-v4-udp-ports</strong></span>, <span><strong class="command">avoid-v4-udp-ports</strong></span>, @@ -4702,7 +4719,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2585525"></a>Operating System Resource Limits</h4></div></div></div> +<a name="id2585562"></a>Operating System Resource Limits</h4></div></div></div> <p> The server's usage of many system resources can be limited. Scaled values are allowed when specifying resource limits. For @@ -4795,24 +4812,216 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; Not implemented in BIND 9. </p></dd> <dt><span class="term"><span><strong class="command">recursive-clients</strong></span></span></dt> -<dd><p> - The maximum number of simultaneous recursive lookups - the server will perform on behalf of clients. The default - is +<dd> +<p> + The maximum number ("hard quota") of simultaneous + recursive lookups the server will perform on behalf + of clients. The default is <code class="literal">1000</code>. Because each recursing client uses a fair - bit of memory, on the order of 20 kilobytes, the value of - the + bit of memory (on the order of 20 kilobytes), the + value of the <span><strong class="command">recursive-clients</strong></span> option may - have to be decreased - on hosts with limited memory. - </p></dd> + have to be decreased on hosts with limited memory. + </p> +<p> + <code class="option">recursive-clients</code> defines a "hard + quota" limit for pending recursive clients: when more + clients than this are pending, new incoming requests + will not be accepted, and for each incoming request + a previous pending request will also be dropped. + </p> +<p> + A "soft quota" is also set. When this lower + quota is exceeded, incoming requests are accepted, but + for each one, a pending request will be dropped. + If <code class="option">recursive-clients</code> is greater than + 1000, the soft quota is set to + <code class="option">recursive-clients</code> minus 100; + otherwise it is set to 90% of + <code class="option">recursive-clients</code>. + </p> +</dd> <dt><span class="term"><span><strong class="command">tcp-clients</strong></span></span></dt> <dd><p> The maximum number of simultaneous client TCP connections that the server will accept. The default is <code class="literal">100</code>. </p></dd> +<dt> +<a name="clients-per-query"></a><span class="term"><span><strong class="command">clients-per-query</strong></span>, </span><span class="term"><span><strong class="command">max-clients-per-query</strong></span></span> +</dt> +<dd> +<p>These set the + initial value (minimum) and maximum number of recursive + simultaneous clients for any given query + (<qname,qtype,qclass>) that the server will accept + before dropping additional clients. <span><strong class="command">named</strong></span> will attempt to + self tune this value and changes will be logged. The + default values are 10 and 100. + </p> +<p> + This value should reflect how many queries come in for + a given name in the time it takes to resolve that name. + If the number of queries exceed this value, <span><strong class="command">named</strong></span> will + assume that it is dealing with a non-responsive zone + and will drop additional queries. If it gets a response + after dropping queries, it will raise the estimate. The + estimate will then be lowered in 20 minutes if it has + remained unchanged. + </p> +<p> + If <span><strong class="command">clients-per-query</strong></span> is set to zero, + then there is no limit on the number of clients per query + and no queries will be dropped. + </p> +<p> + If <span><strong class="command">max-clients-per-query</strong></span> is set to zero, + then there is no upper bound other than imposed by + <span><strong class="command">recursive-clients</strong></span>. + </p> +</dd> +<dt> +<a name="fetches-per-zone"></a><span class="term"><span><strong class="command">fetches-per-zone</strong></span></span> +</dt> +<dd> +<p> + The maximum number of simultaneous iterative + queries to any one domain that the server will + permit before blocking new queries for data + in or beneath that zone. + This value should reflect how many fetches would + normally be sent to any one zone in the time it + would take to resolve them. It should be smaller + than <code class="option">recursive-clients</code>. + </p> +<p> + When many clients simultaneously query for the + same name and type, the clients will all be attached + to the same fetch, up to the + <code class="option">max-clients-per-query</code> limit, + and only one iterative query will be sent. + However, when clients are simultaneously + querying for <span class="emphasis"><em>different</em></span> names + or types, multiple queries will be sent and + <code class="option">max-clients-per-query</code> is not + effective as a limit. + </p> +<p> + Optionally, this value may be followed by the keyword + <code class="literal">drop</code> or <code class="literal">fail</code>, + indicating whether queries which exceed the fetch + quota for a zone will be dropped with no response, + or answered with SERVFAIL. The default is + <code class="literal">drop</code>. + </p> +<p> + If <span><strong class="command">fetches-per-zone</strong></span> is set to zero, + then there is no limit on the number of fetches per query + and no queries will be dropped. The default is zero. + </p> +<p> + The current list of active fetches can be dumped by + running <span><strong class="command">rndc recursing</strong></span>. The list + includes the number of active fetches for each + domain and the number of queries that have been + passed or dropped as a result of the + <code class="option">fetches-per-zone</code> limit. (Note: + these counters are not cumulative over time; whenever + the number of active fetches for a domain drops to + zero, the counter for that domain is deleted, and the + next time a fetch is sent to that domain, it is + recreated with the counters set to zero.) + </p> +<p> + (Note: This option is only available when BIND is + built with <span><strong class="command">configure --enable-fetchlimit</strong></span>.) + </p> +</dd> +<dt> +<a name="fetches-per-server"></a><span class="term"><span><strong class="command">fetches-per-server</strong></span></span> +</dt> +<dd> +<p> + The maximum number of simultaneous iterative + queries that the server will allow to be sent to + a single upstream name server before blocking + additional queries. + This value should reflect how many fetches would + normally be sent to any one server in the time it + would take to resolve them. It should be smaller + than <code class="option">recursive-clients</code>. + </p> +<p> + Optionally, this value may be followed by the keyword + <code class="literal">drop</code> or <code class="literal">fail</code>, + indicating whether queries will be dropped with no + response, or answered with SERVFAIL, when all of the + servers authoritative for a zone are found to have + exceeded the per-server quota. The default is + <code class="literal">fail</code>. + </p> +<p> + If <span><strong class="command">fetches-per-server</strong></span> is set to zero, + then there is no limit on the number of fetches per query + and no queries will be dropped. The default is zero. + </p> +<p> + The <span><strong class="command">fetches-per-server</strong></span> quota is + dynamically adjusted in response to detected + congestion. As queries are sent to a server + and are either answered or time out, an + exponentially weighted moving average is calculated + of the ratio of timeouts to responses. If the + current average timeout ratio rises above a "high" + threshold, then <span><strong class="command">fetches-per-server</strong></span> + is reduced for that server. If the timeout ratio + drops below a "low" threshold, then + <span><strong class="command">fetches-per-server</strong></span> is increased. + The <span><strong class="command">fetch-quota-params</strong></span> options + can be used to adjust the parameters for this + calculation. + </p> +<p> + (Note: This option is only available when BIND is + built with <span><strong class="command">configure --enable-fetchlimit</strong></span>.) + </p> +</dd> +<dt><span class="term"><span><strong class="command">fetch-quota-params</strong></span></span></dt> +<dd> +<p> + Sets the parameters to use for dynamic resizing of + the <code class="option">fetches-per-server</code> quota in + response to detected congestion. + </p> +<p> + The first argument is an integer value indicating + how frequently to recalculate the moving average + of the ratio of timeouts to responses for each + server. The default is 100, meaning we recalculate + the average ratio after every 100 queries have either + been answered or timed out. + </p> +<p> + The remaining three arguments represent the "low" + threshold (defaulting to a timeout ratio of 0.1), + the "high" threshold (defaulting to a timeout + ratio of 0.3), and the discount rate for + the moving average (defaulting to 0.7). + A higher discount rate causes recent events to + weigh more heavily when calculating the moving + average; a lower discount rate causes past + events to weigh more heavily, smoothing out + short-term blips in the timeout ratio. + These arguments are all fixed-point numbers with + precision of 1/100: at most two places after + the decimal point are significant. + </p> +<p> + (Note: This option is only available when BIND is + built with <span><strong class="command">configure --enable-fetchlimit</strong></span>.) + </p> +</dd> <dt><span class="term"><span><strong class="command">reserved-sockets</strong></span></span></dt> <dd> <p> @@ -4860,14 +5069,14 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; waiting for some data before being passed to accept. Nonzero values less than 10 will be silently raised. A value of 0 may also - be used; on most platforms this sets the listen queue + be used; on most platforms this sets the listen queue length to a system-defined default value. </p></dd> </dl></div> </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2585947"></a>Periodic Task Intervals</h4></div></div></div> +<a name="id2586413"></a>Periodic Task Intervals</h4></div></div></div> <div class="variablelist"><dl> <dt><span class="term"><span><strong class="command">cleaning-interval</strong></span></span></dt> <dd><p> @@ -5419,39 +5628,6 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; </p> </dd> <dt> -<a name="clients-per-query"></a><span class="term"><span><strong class="command">clients-per-query</strong></span>, </span><span class="term"><span><strong class="command">max-clients-per-query</strong></span></span> -</dt> -<dd> -<p>These set the - initial value (minimum) and maximum number of recursive - simultaneous clients for any given query - (<qname,qtype,qclass>) that the server will accept - before dropping additional clients. <span><strong class="command">named</strong></span> will attempt to - self tune this value and changes will be logged. The - default values are 10 and 100. - </p> -<p> - This value should reflect how many queries come in for - a given name in the time it takes to resolve that name. - If the number of queries exceed this value, <span><strong class="command">named</strong></span> will - assume that it is dealing with a non-responsive zone - and will drop additional queries. If it gets a response - after dropping queries, it will raise the estimate. The - estimate will then be lowered in 20 minutes if it has - remained unchanged. - </p> -<p> - If <span><strong class="command">clients-per-query</strong></span> is set to zero, - then there is no limit on the number of clients per query - and no queries will be dropped. - </p> -<p> - If <span><strong class="command">max-clients-per-query</strong></span> is set to zero, - then there is no upper bound other than imposed by - <span><strong class="command">recursive-clients</strong></span>. - </p> -</dd> -<dt> <a name="max-recursion-depth"></a><span class="term"><span><strong class="command">max-recursion-depth</strong></span></span> </dt> <dd><p> @@ -5474,7 +5650,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; is terminated and returns SERVFAIL. Queries to look up top level comains such as "com" and "net" and the DNS root zone are exempt from this limitation. - The default is 50. + The default is 75. </p></dd> <dt><span class="term"><span><strong class="command">notify-delay</strong></span></span></dt> <dd> @@ -5832,7 +6008,7 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2588571"></a>Content Filtering</h4></div></div></div> +<a name="id2588923"></a>Content Filtering</h4></div></div></div> <p> <acronym class="acronym">BIND</acronym> 9 provides the ability to filter out DNS responses from external DNS servers containing @@ -5955,7 +6131,7 @@ deny-answer-aliases { "example.net"; }; </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2588765"></a>Response Policy Zone (RPZ) Rewriting</h4></div></div></div> +<a name="id2589049"></a>Response Policy Zone (RPZ) Rewriting</h4></div></div></div> <p> <acronym class="acronym">BIND</acronym> 9 includes a limited mechanism to modify DNS responses for requests @@ -6222,7 +6398,7 @@ ns.domain.com.rpz-nsdname CNAME . </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2589264"></a>Response Rate Limiting</h4></div></div></div> +<a name="id2589479"></a>Response Rate Limiting</h4></div></div></div> <p> This feature is only available when <acronym class="acronym">BIND</acronym> 9 is compiled with the <strong class="userinput"><code>--enable-rrl</code></strong> @@ -6460,7 +6636,7 @@ ns.domain.com.rpz-nsdname CNAME . [<span class="optional"> max-udp-size <em class="replaceable"><code>number</code></em> ; </span>] [<span class="optional"> transfers <em class="replaceable"><code>number</code></em> ; </span>] [<span class="optional"> transfer-format <em class="replaceable"><code>( one-answer | many-answers )</code></em> ; ]</span>] - [<span class="optional"> keys <em class="replaceable"><code>{ string ; [<span class="optional"> string ; [<span class="optional">...</span>]</span>] }</code></em> ; </span>] + [<span class="optional"> keys { <em class="replaceable"><code>key_id</code></em> }; </span>] [<span class="optional"> transfer-source (<em class="replaceable"><code>ip4_addr</code></em> | <code class="constant">*</code>) [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] ; </span>] [<span class="optional"> transfer-source-v6 (<em class="replaceable"><code>ip6_addr</code></em> | <code class="constant">*</code>) [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] ; </span>] [<span class="optional"> notify-source (<em class="replaceable"><code>ip4_addr</code></em> | <code class="constant">*</code>) [<span class="optional">port <em class="replaceable"><code>ip_port</code></em></span>] ; </span>] @@ -6604,11 +6780,7 @@ ns.domain.com.rpz-nsdname CNAME . to be signed by this key. </p> <p> - Although the grammar of the <span><strong class="command">keys</strong></span> - clause - allows for multiple keys, only a single key per server is - currently - supported. + Only a single key per server is currently supported. </p> <p> The <span><strong class="command">transfer-source</strong></span> and @@ -6649,7 +6821,7 @@ ns.domain.com.rpz-nsdname CNAME . whether the local server will add a NSID EDNS option to requests sent to the server. This overrides <span><strong class="command">request-nsid</strong></span> set at the view or - option level. + option level. </p> </div> <div class="sect2" lang="en"> @@ -6664,7 +6836,7 @@ ns.domain.com.rpz-nsdname CNAME . </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2590489"></a><span><strong class="command">statistics-channels</strong></span> Statement Definition and +<a name="id2590832"></a><span><strong class="command">statistics-channels</strong></span> Statement Definition and Usage</h3></div></div></div> <p> The <span><strong class="command">statistics-channels</strong></span> statement @@ -6717,9 +6889,9 @@ ns.domain.com.rpz-nsdname CNAME . port 8888, then the statistics are accessible in XML format at <a href="http://127.0.0.1:8888/" target="_top">http://127.0.0.1:8888/</a> or <a href="http://127.0.0.1:8888/xml" target="_top">http://127.0.0.1:8888/xml</a>. A CSS file is - included which can format the XML statistics into tables + included which can format the XML statistics into tables when viewed with a stylesheet-capable browser. When - <acronym class="acronym">BIND</acronym> 9 is configured with --enable-newstats, + <acronym class="acronym">BIND</acronym> 9 is configured with --enable-newstats, a new XML schema is used (version 3) which adds additional zone statistics and uses a flatter tree for more efficient parsing. The stylesheet included uses the Google Charts API @@ -6728,9 +6900,9 @@ ns.domain.com.rpz-nsdname CNAME . </p> <p> Applications that depend on a particular XML schema - can request + can request <a href="http://127.0.0.1:8888/xml/v2" target="_top">http://127.0.0.1:8888/xml/v2</a> for version 2 - of the statistics XML schema or + of the statistics XML schema or <a href="http://127.0.0.1:8888/xml/v3" target="_top">http://127.0.0.1:8888/xml/v3</a> for version 3. If the requested schema is supported by the server, then it will respond; if not, it will return a "page not found" @@ -6748,7 +6920,7 @@ ns.domain.com.rpz-nsdname CNAME . </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2590796"></a><span><strong class="command">trusted-keys</strong></span> Statement Definition +<a name="id2591139"></a><span><strong class="command">trusted-keys</strong></span> Statement Definition and Usage</h3></div></div></div> <p> The <span><strong class="command">trusted-keys</strong></span> statement defines @@ -6788,7 +6960,7 @@ ns.domain.com.rpz-nsdname CNAME . </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2590843"></a><span><strong class="command">managed-keys</strong></span> Statement Grammar</h3></div></div></div> +<a name="id2591186"></a><span><strong class="command">managed-keys</strong></span> Statement Grammar</h3></div></div></div> <pre class="programlisting"><span><strong class="command">managed-keys</strong></span> { <em class="replaceable"><code>name</code></em> initial-key <em class="replaceable"><code>flags</code></em> <em class="replaceable"><code>protocol</code></em> <em class="replaceable"><code>algorithm</code></em> <em class="replaceable"><code>key-data</code></em> ; [<span class="optional"> <em class="replaceable"><code>name</code></em> initial-key <em class="replaceable"><code>flags</code></em> <em class="replaceable"><code>protocol</code></em> <em class="replaceable"><code>algorithm</code></em> <em class="replaceable"><code>key-data</code></em> ; [<span class="optional">...</span>]</span>] @@ -6800,7 +6972,7 @@ ns.domain.com.rpz-nsdname CNAME . <a name="managed-keys"></a><span><strong class="command">managed-keys</strong></span> Statement Definition and Usage</h3></div></div></div> <p> - The <span><strong class="command">managed-keys</strong></span> statement, like + The <span><strong class="command">managed-keys</strong></span> statement, like <span><strong class="command">trusted-keys</strong></span>, defines DNSSEC security roots. The difference is that <span><strong class="command">managed-keys</strong></span> can be kept up to date @@ -6846,7 +7018,7 @@ ns.domain.com.rpz-nsdname CNAME . <code class="literal">initial-key</code>. The difference is, whereas the keys listed in a <span><strong class="command">trusted-keys</strong></span> continue to be trusted until they are removed from - <code class="filename">named.conf</code>, an initializing key listed + <code class="filename">named.conf</code>, an initializing key listed in a <span><strong class="command">managed-keys</strong></span> statement is only trusted <span class="emphasis"><em>once</em></span>: for as long as it takes to load the managed key database and start the RFC 5011 key maintenance @@ -6926,7 +7098,7 @@ ns.domain.com.rpz-nsdname CNAME . </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2591278"></a><span><strong class="command">view</strong></span> Statement Definition and Usage</h3></div></div></div> +<a name="id2591553"></a><span><strong class="command">view</strong></span> Statement Definition and Usage</h3></div></div></div> <p> The <span><strong class="command">view</strong></span> statement is a powerful feature @@ -7212,7 +7384,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional" type static-stub; [<span class="optional"> allow-query { <em class="replaceable"><code>address_match_list</code></em> }; </span>] [<span class="optional"> server-addresses { [<span class="optional"> <em class="replaceable"><code>ip_addr</code></em> ; ... </span>] }; </span>] - [<span class="optional"> server-names { [<span class="optional"> <em class="replaceable"><code>namelist</code></em> </span>] }; </span>] + [<span class="optional"> server-names { [<span class="optional"> <em class="replaceable"><code>namelist</code></em> </span>] }; </span>] [<span class="optional"> zone-statistics <em class="replaceable"><code>yes_or_no</code></em> ; </span>] }; @@ -7238,10 +7410,10 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional" </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2592987"></a><span><strong class="command">zone</strong></span> Statement Definition and Usage</h3></div></div></div> +<a name="id2593398"></a><span><strong class="command">zone</strong></span> Statement Definition and Usage</h3></div></div></div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2592995"></a>Zone Types</h4></div></div></div> +<a name="id2593405"></a>Zone Types</h4></div></div></div> <div class="informaltable"><table border="1"> <colgroup> <col> @@ -7412,7 +7584,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional" <p> Each static-stub zone is configured with internally generated NS and (if necessary) - glue A or AAAA RRs + glue A or AAAA RRs </p> </td> </tr> @@ -7496,7 +7668,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional" 2001:ffff:ffff::100.100.100.2, one would configure a type redirect zone named ".", with the zone file containing wildcard records - that point to the desired addresses: + that point to the desired addresses: <code class="literal">"*. IN A 100.100.100.2"</code> and <code class="literal">"*. IN AAAA 2001:ffff:ffff::100.100.100.2"</code>. @@ -7504,7 +7676,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional" <p> To redirect all Spanish names (under .ES) one would use similar entries but with the names - "*.ES." instead of "*.". To redirect all + "*.ES." instead of "*.". To redirect all commercial Spanish names (under COM.ES) one would use wildcard entries called "*.COM.ES.". </p> @@ -7559,7 +7731,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional" </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2593739"></a>Class</h4></div></div></div> +<a name="id2594150"></a>Class</h4></div></div></div> <p> The zone's name may optionally be followed by a class. If a class is not specified, class <code class="literal">IN</code> (for <code class="varname">Internet</code>), @@ -7581,7 +7753,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional" </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2593772"></a>Zone Options</h4></div></div></div> +<a name="id2594183"></a>Zone Options</h4></div></div></div> <div class="variablelist"><dl> <dt><span class="term"><span><strong class="command">allow-notify</strong></span></span></dt> <dd><p> @@ -8014,7 +8186,7 @@ example.com. NS ns2.example.net. <em class="replaceable"><code>zonename</code></em></strong></span> causes <span><strong class="command">named</strong></span> to load keys from the key repository and sign the zone with all keys that are - active. + active. <span><strong class="command">rndc loadkeys <em class="replaceable"><code>zonename</code></em></strong></span> causes <span><strong class="command">named</strong></span> to load keys from the key @@ -8045,7 +8217,7 @@ example.com. NS ns2.example.net. the zone is updated. </p> <p> - When set to + When set to <span><strong class="command">serial-update-method unixtime;</strong></span>, the SOA serial number will be set to the number of seconds since the UNIX epoch, unless the serial number is @@ -8335,7 +8507,7 @@ example.com. NS ns2.example.net. <p> This rule takes a Windows machine principal (machine$@REALM) for machine in REALM and - and converts it machine.realm allowing the machine + and converts it machine.realm allowing the machine to update machine.realm. The REALM to be matched is specified in the <em class="replaceable"><code>identity</code></em> field. @@ -8350,7 +8522,7 @@ example.com. NS ns2.example.net. </td> <td> <p> - This rule takes a Windows machine principal + This rule takes a Windows machine principal (machine$@REALM) for machine in REALM and converts it to machine.realm allowing the machine to update subdomains of machine.realm. The REALM @@ -8369,7 +8541,7 @@ example.com. NS ns2.example.net. <p> This rule takes a Kerberos machine principal (host/machine@REALM) for machine in REALM and - and converts it machine.realm allowing the machine + and converts it machine.realm allowing the machine to update machine.realm. The REALM to be matched is specified in the <em class="replaceable"><code>identity</code></em> field. @@ -8384,7 +8556,7 @@ example.com. NS ns2.example.net. </td> <td> <p> - This rule takes a Kerberos machine principal + This rule takes a Kerberos machine principal (host/machine@REALM) for machine in REALM and converts it to machine.realm allowing the machine to update subdomains of machine.realm. The REALM @@ -8498,7 +8670,7 @@ example.com. NS ns2.example.net. </div> <div class="sect1" lang="en"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> -<a name="id2596605"></a>Zone File</h2></div></div></div> +<a name="id2597084"></a>Zone File</h2></div></div></div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> <a name="types_of_resource_records_and_when_to_use_them"></a>Types of Resource Records and When to Use Them</h3></div></div></div> @@ -8511,7 +8683,7 @@ example.com. NS ns2.example.net. </p> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2596624"></a>Resource Records</h4></div></div></div> +<a name="id2597102"></a>Resource Records</h4></div></div></div> <p> A domain name identifies a node. Each node has a set of resource information, which may be empty. The set of resource @@ -8680,6 +8852,58 @@ example.com. NS ns2.example.net. <tr> <td> <p> + ATMA + </p> + </td> +<td> + <p> + ATM Address. + </p> + </td> +</tr> +<tr> +<td> + <p> + CAA + </p> + </td> +<td> + <p> + Identifies which Certificate Authorities can issue + certificates for this domain and what rules they + need to follow when doing so. Defined in RFC 6844. + </p> + </td> +</tr> +<tr> +<td> + <p> + CDNSKEY + </p> + </td> +<td> + <p> + Identifies which DNSKEY records should be published + as DS records in the parent zone. + </p> + </td> +</tr> +<tr> +<td> + <p> + CDS + </p> + </td> +<td> + <p> + Contains the set of DS records that should be published + by the parent zone. + </p> + </td> +</tr> +<tr> +<td> + <p> CERT </p> </td> @@ -8719,6 +8943,20 @@ example.com. NS ns2.example.net. <tr> <td> <p> + DLV + </p> + </td> +<td> + <p> + A DNS Look-aside Validation record which contains + the records that are used as trust anchors for + zones in a DLV namespace. Described in RFC 4431. + </p> + </td> +</tr> +<tr> +<td> + <p> DNAME </p> </td> @@ -8763,6 +9001,54 @@ example.com. NS ns2.example.net. <tr> <td> <p> + EID + </p> + </td> +<td> + <p> + End Point Identifier. + </p> + </td> +</tr> +<tr> +<td> + <p> + EUI48 + </p> + </td> +<td> + <p> + A 48-bit EUI address. Described in RFC 7043. + </p> + </td> +</tr> +<tr> +<td> + <p> + EUI64 + </p> + </td> +<td> + <p> + A 64-bit EUI address. Described in RFC 7043. + </p> + </td> +</tr> +<tr> +<td> + <p> + GID + </p> + </td> +<td> + <p> + Reserved. + </p> + </td> +</tr> +<tr> +<td> + <p> GPOS </p> </td> @@ -8788,6 +9074,19 @@ example.com. NS ns2.example.net. <tr> <td> <p> + HIP + </p> + </td> +<td> + <p> + Host Identity Protocol Address. + Described in RFC 5205. + </p> + </td> +</tr> +<tr> +<td> + <p> IPSECKEY </p> </td> @@ -8842,6 +9141,34 @@ example.com. NS ns2.example.net. <tr> <td> <p> + L32 + </p> + </td> +<td> + <p> + Holds 32-bit Locator values for + Identifier-Locator Network Protocol. Described + in RFC 6742. + </p> + </td> +</tr> +<tr> +<td> + <p> + L64 + </p> + </td> +<td> + <p> + Holds 64-bit Locator values for + Identifier-Locator Network Protocol. Described + in RFC 6742. + </p> + </td> +</tr> +<tr> +<td> + <p> LOC </p> </td> @@ -8855,6 +9182,91 @@ example.com. NS ns2.example.net. <tr> <td> <p> + LP + </p> + </td> +<td> + <p> + Identifier-Locator Network Protocol. + Described in RFC 6742. + </p> + </td> +</tr> +<tr> +<td> + <p> + MB + </p> + </td> +<td> + <p> + Mail Box. Historical. + </p> + </td> +</tr> +<tr> +<td> + <p> + MD + </p> + </td> +<td> + <p> + Mail Destination. Historical. + </p> + </td> +</tr> +<tr> +<td> + <p> + MF + </p> + </td> +<td> + <p> + Mail Forwarder. Historical. + </p> + </td> +</tr> +<tr> +<td> + <p> + MG + </p> + </td> +<td> + <p> + Mail Group. Historical. + </p> + </td> +</tr> +<tr> +<td> + <p> + MINFO + </p> + </td> +<td> + <p> + Mail Information. + </p> + </td> +</tr> +<tr> +<td> + <p> + MR + </p> + </td> +<td> + <p> + Mail Rename. Historical. + </p> + </td> +</tr> +<tr> +<td> + <p> MX </p> </td> @@ -8882,6 +9294,32 @@ example.com. NS ns2.example.net. <tr> <td> <p> + NID + </p> + </td> +<td> + <p> + Holds values for Node Identifiers in + Identifier-Locator Network Protocol. Described + in RFC 6742. + </p> + </td> +</tr> +<tr> +<td> + <p> + NIMLOC + </p> + </td> +<td> + <p> + Nimrod Locator. + </p> + </td> +</tr> +<tr> +<td> + <p> NSAP </p> </td> @@ -8895,6 +9333,18 @@ example.com. NS ns2.example.net. <tr> <td> <p> + NSAP-PTR + </p> + </td> +<td> + <p> + Historical. + </p> + </td> +</tr> +<tr> +<td> + <p> NS </p> </td> @@ -8959,6 +9409,18 @@ example.com. NS ns2.example.net. <tr> <td> <p> + NULL + </p> + </td> +<td> + <p> + This is an opaque container. + </p> + </td> +</tr> +<tr> +<td> + <p> NXT </p> </td> @@ -8978,6 +9440,18 @@ example.com. NS ns2.example.net. <tr> <td> <p> + OPENPGPKEY + </p> + </td> +<td> + <p> + Used to hold an OPENPGPKEY. + </p> + </td> +</tr> +<tr> +<td> + <p> PTR </p> </td> @@ -9112,6 +9586,19 @@ example.com. NS ns2.example.net. <tr> <td> <p> + TLSA + </p> + </td> +<td> + <p> + Transport Layer Security Certificate Association. + Described in RFC 6698. + </p> + </td> +</tr> +<tr> +<td> + <p> TXT </p> </td> @@ -9124,6 +9611,54 @@ example.com. NS ns2.example.net. <tr> <td> <p> + UID + </p> + </td> +<td> + <p> + Reserved. + </p> + </td> +</tr> +<tr> +<td> + <p> + UINFO + </p> + </td> +<td> + <p> + Reserved. + </p> + </td> +</tr> +<tr> +<td> + <p> + UNSPEC + </p> + </td> +<td> + <p> + Reserved. Historical. + </p> + </td> +</tr> +<tr> +<td> + <p> + URI + </p> + </td> +<td> + <p> + Holds a URI. Described in RFC 7553. + </p> + </td> +</tr> +<tr> +<td> + <p> WKS </p> </td> @@ -9248,7 +9783,7 @@ example.com. NS ns2.example.net. </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2598247"></a>Textual expression of RRs</h4></div></div></div> +<a name="id2599413"></a>Textual expression of RRs</h4></div></div></div> <p> RRs are represented in binary form in the packets of the DNS protocol, and are usually represented in highly encoded form @@ -9451,7 +9986,7 @@ example.com. NS ns2.example.net. </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2598768"></a>Discussion of MX Records</h3></div></div></div> +<a name="id2600002"></a>Discussion of MX Records</h3></div></div></div> <p> As described above, domain servers store information as a series of resource records, each of which contains a particular @@ -9706,7 +10241,7 @@ example.com. NS ns2.example.net. </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2599451"></a>Inverse Mapping in IPv4</h3></div></div></div> +<a name="id2600549"></a>Inverse Mapping in IPv4</h3></div></div></div> <p> Reverse name resolution (that is, translation from IP address to name) is achieved by means of the <span class="emphasis"><em>in-addr.arpa</em></span> domain @@ -9767,7 +10302,7 @@ example.com. NS ns2.example.net. </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2599578"></a>Other Zone File Directives</h3></div></div></div> +<a name="id2600812"></a>Other Zone File Directives</h3></div></div></div> <p> The Master File Format was initially defined in RFC 1035 and has subsequently been extended. While the Master File Format @@ -9782,18 +10317,18 @@ example.com. NS ns2.example.net. </p> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2599601"></a>The <span><strong class="command">@</strong></span> (at-sign)</h4></div></div></div> +<a name="id2600835"></a>The <span><strong class="command">@</strong></span> (at-sign)</h4></div></div></div> <p> When used in the label (or name) field, the asperand or at-sign (@) symbol represents the current origin. - At the start of the zone file, it is the + At the start of the zone file, it is the <<code class="varname">zone_name</code>> (followed by trailing dot). </p> </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2599617"></a>The <span><strong class="command">$ORIGIN</strong></span> Directive</h4></div></div></div> +<a name="id2600851"></a>The <span><strong class="command">$ORIGIN</strong></span> Directive</h4></div></div></div> <p> Syntax: <span><strong class="command">$ORIGIN</strong></span> <em class="replaceable"><code>domain-name</code></em> @@ -9822,7 +10357,7 @@ WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM. </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2599746"></a>The <span><strong class="command">$INCLUDE</strong></span> Directive</h4></div></div></div> +<a name="id2600912"></a>The <span><strong class="command">$INCLUDE</strong></span> Directive</h4></div></div></div> <p> Syntax: <span><strong class="command">$INCLUDE</strong></span> <em class="replaceable"><code>filename</code></em> @@ -9858,7 +10393,7 @@ WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM. </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2599815"></a>The <span><strong class="command">$TTL</strong></span> Directive</h4></div></div></div> +<a name="id2600981"></a>The <span><strong class="command">$TTL</strong></span> Directive</h4></div></div></div> <p> Syntax: <span><strong class="command">$TTL</strong></span> <em class="replaceable"><code>default-ttl</code></em> @@ -9877,7 +10412,7 @@ WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM. </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2599851"></a><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</h3></div></div></div> +<a name="id2601017"></a><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</h3></div></div></div> <p> Syntax: <span><strong class="command">$GENERATE</strong></span> <em class="replaceable"><code>range</code></em> @@ -10302,7 +10837,7 @@ HOST-127.EXAMPLE. MX 0 . </p> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2600941"></a>Name Server Statistics Counters</h4></div></div></div> +<a name="id2602039"></a>Name Server Statistics Counters</h4></div></div></div> <div class="informaltable"><table border="1"> <colgroup> <col> @@ -10898,7 +11433,7 @@ HOST-127.EXAMPLE. MX 0 . </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2602510"></a>Zone Maintenance Statistics Counters</h4></div></div></div> +<a name="id2603745"></a>Zone Maintenance Statistics Counters</h4></div></div></div> <div class="informaltable"><table border="1"> <colgroup> <col> @@ -11052,7 +11587,7 @@ HOST-127.EXAMPLE. MX 0 . </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2602962"></a>Resolver Statistics Counters</h4></div></div></div> +<a name="id2604128"></a>Resolver Statistics Counters</h4></div></div></div> <div class="informaltable"><table border="1"> <colgroup> <col> @@ -11435,7 +11970,7 @@ HOST-127.EXAMPLE. MX 0 . </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2604052"></a>Socket I/O Statistics Counters</h4></div></div></div> +<a name="id2605149"></a>Socket I/O Statistics Counters</h4></div></div></div> <p> Socket I/O statistics counters are defined per socket types, which are @@ -11590,7 +12125,7 @@ HOST-127.EXAMPLE. MX 0 . </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2604425"></a>Compatibility with <span class="emphasis"><em>BIND</em></span> 8 Counters</h4></div></div></div> +<a name="id2605523"></a>Compatibility with <span class="emphasis"><em>BIND</em></span> 8 Counters</h4></div></div></div> <p> Most statistics counters that were available in <span><strong class="command">BIND</strong></span> 8 are also supported in @@ -11642,6 +12177,6 @@ HOST-127.EXAMPLE. MX 0 . </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.ch07.html b/doc/arm/Bv9ARM.ch07.html index d53b9a8f96ce..ec2af857ff32 100644 --- a/doc/arm/Bv9ARM.ch07.html +++ b/doc/arm/Bv9ARM.ch07.html @@ -46,10 +46,10 @@ <p><b>Table of Contents</b></p> <dl> <dt><span class="sect1"><a href="Bv9ARM.ch07.html#Access_Control_Lists">Access Control Lists</a></span></dt> -<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2604721"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2605750"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt> <dd><dl> -<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604802">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604861">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2605831">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2605959">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt> </dl></dd> <dt><span class="sect1"><a href="Bv9ARM.ch07.html#dynamic_update_security">Dynamic Update Security</a></span></dt> </dl> @@ -114,7 +114,7 @@ zone "example.com" { </div> <div class="sect1" lang="en"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> -<a name="id2604721"></a><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span> +<a name="id2605750"></a><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span> </h2></div></div></div> <p> On UNIX servers, it is possible to run <acronym class="acronym">BIND</acronym> @@ -140,7 +140,7 @@ zone "example.com" { </p> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2604802"></a>The <span><strong class="command">chroot</strong></span> Environment</h3></div></div></div> +<a name="id2605831"></a>The <span><strong class="command">chroot</strong></span> Environment</h3></div></div></div> <p> In order for a <span><strong class="command">chroot</strong></span> environment to @@ -168,7 +168,7 @@ zone "example.com" { </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2604861"></a>Using the <span><strong class="command">setuid</strong></span> Function</h3></div></div></div> +<a name="id2605959"></a>Using the <span><strong class="command">setuid</strong></span> Function</h3></div></div></div> <p> Prior to running the <span><strong class="command">named</strong></span> daemon, use @@ -247,6 +247,6 @@ zone "example.com" { </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.ch08.html b/doc/arm/Bv9ARM.ch08.html index 3dcd05888d0b..46168db64093 100644 --- a/doc/arm/Bv9ARM.ch08.html +++ b/doc/arm/Bv9ARM.ch08.html @@ -45,18 +45,18 @@ <div class="toc"> <p><b>Table of Contents</b></p> <dl> -<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2605078">Common Problems</a></span></dt> -<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2605083">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd> -<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2605095">Incrementing and Changing the Serial Number</a></span></dt> -<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2605112">Where Can I Get Help?</a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2606107">Common Problems</a></span></dt> +<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2606113">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd> +<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2606124">Incrementing and Changing the Serial Number</a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2606141">Where Can I Get Help?</a></span></dt> </dl> </div> <div class="sect1" lang="en"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> -<a name="id2605078"></a>Common Problems</h2></div></div></div> +<a name="id2606107"></a>Common Problems</h2></div></div></div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2605083"></a>It's not working; how can I figure out what's wrong?</h3></div></div></div> +<a name="id2606113"></a>It's not working; how can I figure out what's wrong?</h3></div></div></div> <p> The best solution to solving installation and configuration issues is to take preventative measures by setting @@ -68,7 +68,7 @@ </div> <div class="sect1" lang="en"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> -<a name="id2605095"></a>Incrementing and Changing the Serial Number</h2></div></div></div> +<a name="id2606124"></a>Incrementing and Changing the Serial Number</h2></div></div></div> <p> Zone serial numbers are just numbers — they aren't date related. A lot of people set them to a number that @@ -95,7 +95,7 @@ </div> <div class="sect1" lang="en"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> -<a name="id2605112"></a>Where Can I Get Help?</h2></div></div></div> +<a name="id2606141"></a>Where Can I Get Help?</h2></div></div></div> <p> The Internet Systems Consortium (<acronym class="acronym">ISC</acronym>) offers a wide range @@ -135,6 +135,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.ch09.html b/doc/arm/Bv9ARM.ch09.html index 182ebd457aae..0875be3c3909 100644 --- a/doc/arm/Bv9ARM.ch09.html +++ b/doc/arm/Bv9ARM.ch09.html @@ -45,7 +45,7 @@ <div class="toc"> <p><b>Table of Contents</b></p> <dl> -<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2563588">Release Notes for BIND Version 9.9.7-P2</a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2563593">Release Notes for BIND Version 9.9.8</a></span></dt> <dd><dl> <dt><span class="sect2"><a href="Bv9ARM.ch09.html#relnotes_intro">Introduction</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch09.html#relnotes_download">Download</a></span></dt> @@ -60,18 +60,13 @@ </div> <div class="sect1" lang="en"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> -<a name="id2563588"></a>Release Notes for BIND Version 9.9.7-P2</h2></div></div></div> +<a name="id2563593"></a>Release Notes for BIND Version 9.9.8</h2></div></div></div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> <a name="relnotes_intro"></a>Introduction</h3></div></div></div> <p> - This document summarizes changes since BIND 9.9.7. - </p> -<p> - BIND 9.9.7-P2 addresses a security issue described in CVE-2015-5477. - </p> -<p> - BIND 9.9.7-P1 addresses a security issue described in CVE-2015-4620. + This document summarizes changes since the last production release + of BIND on the corresponding major release branch. </p> </div> <div class="sect2" lang="en"> @@ -89,6 +84,21 @@ <div class="titlepage"><div><div><h3 class="title"> <a name="relnotes_security"></a>Security Fixes</h3></div></div></div> <div class="itemizedlist"><ul type="disc"> +<li><p> + An incorrect boundary check in the OPENPGPKEY rdatatype + could trigger an assertion failure. This flaw is disclosed + in CVE-2015-5986. [RT #40286] + </p></li> +<li> +<p> + A buffer accounting error could trigger an assertion failure + when parsing certain malformed DNSSEC keys. + </p> +<p> + This flaw was discovered by Hanno B쎶ck of the Fuzzing + Project, and is disclosed in CVE-2015-5722. [RT #40212] + </p> +</li> <li> <p> A specially crafted query could trigger an assertion failure @@ -96,7 +106,7 @@ </p> <p> This flaw was discovered by Jonathan Foote, and is disclosed - in CVE-2015-5477. [RT #39795] + in CVE-2015-5477. [RT #40046] </p> </li> <li> @@ -115,17 +125,121 @@ <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> <a name="relnotes_features"></a>New Features</h3></div></div></div> -<div class="itemizedlist"><ul type="disc"><li><p>None</p></li></ul></div> +<div class="itemizedlist"><ul type="disc"> +<li> +<p> + New quotas have been added to limit the queries that are + sent by recursive resolvers to authoritative servers + experiencing denial-of-service attacks. When configured, + these options can both reduce the harm done to authoritative + servers and also avoid the resource exhaustion that can be + experienced by recursives when they are being used as a + vehicle for such an attack. + </p> +<p> + NOTE: These options are not available by default; use + <span><strong class="command">configure --enable-fetchlimit</strong></span> to include + them in the build. + </p> +<div class="itemizedlist"><ul type="circle"> +<li><p> + <code class="option">fetches-per-server</code> limits the number of + simultaneous queries that can be sent to any single + authoritative server. The configured value is a starting + point; it is automatically adjusted downward if the server is + partially or completely non-responsive. The algorithm used to + adjust the quota can be configured via the + <code class="option">fetch-quota-params</code> option. + </p></li> +<li><p> + <code class="option">fetches-per-zone</code> limits the number of + simultaneous queries that can be sent for names within a + single domain. (Note: Unlike "fetches-per-server", this + value is not self-tuning.) + </p></li> +</ul></div> +<p> + Statistics counters have also been added to track the number + of queries affected by these quotas. + </p> +</li> +<li><p> + An <span><strong class="command">--enable-querytrace</strong></span> configure switch is + now available to enable very verbose query tracelogging. This + option can only be set at compile time. This option has a + negative performance impact and should be used only for + debugging. + </p></li> +<li><p> + EDNS COOKIE options content is now displayed as + "COOKIE: <hexvalue>". + </p></li> +</ul></div> </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> <a name="relnotes_changes"></a>Feature Changes</h3></div></div></div> -<div class="itemizedlist"><ul type="disc"><li><p>None</p></li></ul></div> +<div class="itemizedlist"><ul type="disc"> +<li><p> + Large inline-signing changes should be less disruptive. + Signature generation is now done incrementally; the number + of signatures to be generated in each quantum is controlled + by "sig-signing-signatures <em class="replaceable"><code>number</code></em>;". + [RT #37927] + </p></li> +<li><p> + Retrieving the local port range from net.ipv4.ip_local_port_range + on Linux is now supported. + </p></li> +<li><p> + Active Directory names of the form gc._msdcs.<forest> are + now accepted as valid hostnames when using the + <code class="option">check-names</code> option. <forest> is still + restricted to letters, digits and hyphens. + </p></li> +<li><p> + Names containing rich text are now accepted as valid + hostnames in PTR records in DNS-SD reverse lookup zones, + as specified in RFC 6763. [RT #37889] + </p></li> +</ul></div> </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> <a name="relnotes_bugs"></a>Bug Fixes</h3></div></div></div> -<div class="itemizedlist"><ul type="disc"><li><p>None</p></li></ul></div> +<div class="itemizedlist"><ul type="disc"> +<li><p> + Asynchronous zone loads were not handled correctly when the + zone load was already in progress; this could trigger a crash + in zt.c. [RT #37573] + </p></li> +<li><p> + A race during shutdown or reconfiguration could + cause an assertion failure in mem.c. [RT #38979] + </p></li> +<li><p> + Some answer formatting options didn't work correctly with + <span><strong class="command">dig +short</strong></span>. [RT #39291] + </p></li> +<li><p> + Malformed records of some types, including NSAP and UNSPEC, + could trigger assertion failures when loading text zone files. + [RT #40274] [RT #40285] + </p></li> +<li><p> + Fixed a possible crash in ratelimiter.c caused by NOTIFY + messages being removed from the wrong rate limiter queue. + [RT #40350] + </p></li> +<li><p> + The default <code class="option">rrset-order</code> of <code class="literal">random</code> + was inconsistently applied. [RT #40456] + </p></li> +<li><p> + BADVERS responses from broken authoritative name servers were + not handled correctly. [RT #40427] + </p></li> +</ul></div> </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> @@ -165,6 +279,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.ch10.html b/doc/arm/Bv9ARM.ch10.html index f5c665ed907a..1a67f6fabe0b 100644 --- a/doc/arm/Bv9ARM.ch10.html +++ b/doc/arm/Bv9ARM.ch10.html @@ -163,6 +163,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.ch11.html b/doc/arm/Bv9ARM.ch11.html index fc5a57e55468..99a857457ab7 100644 --- a/doc/arm/Bv9ARM.ch11.html +++ b/doc/arm/Bv9ARM.ch11.html @@ -50,7 +50,7 @@ <dd><dl> <dt><span class="sect2"><a href="Bv9ARM.ch11.html#rfcs">Request for Comments (RFCs)</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch11.html#internet_drafts">Internet Drafts</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch11.html#id2608563">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch11.html#id2609865">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt> </dl></dd> </dl> </div> @@ -140,17 +140,17 @@ </p> <div class="bibliography"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2605539"></a>Bibliography</h4></div></div></div> +<a name="id2606773"></a>Bibliography</h4></div></div></div> <div class="bibliodiv"> <h3 class="title">Standards</h3> <div class="biblioentry"> -<a name="id2605549"></a><p>[<abbr class="abbrev">RFC974</abbr>] <span class="author"><span class="firstname">C.</span> <span class="surname">Partridge</span>. </span><span class="title"><i>Mail Routing and the Domain System</i>. </span><span class="pubdate">January 1986. </span></p> +<a name="id2606784"></a><p>[<abbr class="abbrev">RFC974</abbr>] <span class="author"><span class="firstname">C.</span> <span class="surname">Partridge</span>. </span><span class="title"><i>Mail Routing and the Domain System</i>. </span><span class="pubdate">January 1986. </span></p> </div> <div class="biblioentry"> -<a name="id2605573"></a><p>[<abbr class="abbrev">RFC1034</abbr>] <span class="author"><span class="firstname">P.V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names — Concepts and Facilities</i>. </span><span class="pubdate">November 1987. </span></p> +<a name="id2606807"></a><p>[<abbr class="abbrev">RFC1034</abbr>] <span class="author"><span class="firstname">P.V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names — Concepts and Facilities</i>. </span><span class="pubdate">November 1987. </span></p> </div> <div class="biblioentry"> -<a name="id2605596"></a><p>[<abbr class="abbrev">RFC1035</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names — Implementation and +<a name="id2606830"></a><p>[<abbr class="abbrev">RFC1035</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names — Implementation and Specification</i>. </span><span class="pubdate">November 1987. </span></p> </div> </div> @@ -158,42 +158,42 @@ <h3 class="title"> <a name="proposed_standards"></a>Proposed Standards</h3> <div class="biblioentry"> -<a name="id2605633"></a><p>[<abbr class="abbrev">RFC2181</abbr>] <span class="author"><span class="firstname">R., R. Bush</span> <span class="surname">Elz</span>. </span><span class="title"><i>Clarifications to the <acronym class="acronym">DNS</acronym> +<a name="id2606867"></a><p>[<abbr class="abbrev">RFC2181</abbr>] <span class="author"><span class="firstname">R., R. Bush</span> <span class="surname">Elz</span>. </span><span class="title"><i>Clarifications to the <acronym class="acronym">DNS</acronym> Specification</i>. </span><span class="pubdate">July 1997. </span></p> </div> <div class="biblioentry"> -<a name="id2605659"></a><p>[<abbr class="abbrev">RFC2308</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Andrews</span>. </span><span class="title"><i>Negative Caching of <acronym class="acronym">DNS</acronym> +<a name="id2606893"></a><p>[<abbr class="abbrev">RFC2308</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Andrews</span>. </span><span class="title"><i>Negative Caching of <acronym class="acronym">DNS</acronym> Queries</i>. </span><span class="pubdate">March 1998. </span></p> </div> <div class="biblioentry"> -<a name="id2605685"></a><p>[<abbr class="abbrev">RFC1995</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Ohta</span>. </span><span class="title"><i>Incremental Zone Transfer in <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">August 1996. </span></p> +<a name="id2606919"></a><p>[<abbr class="abbrev">RFC1995</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Ohta</span>. </span><span class="title"><i>Incremental Zone Transfer in <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">August 1996. </span></p> </div> <div class="biblioentry"> -<a name="id2605709"></a><p>[<abbr class="abbrev">RFC1996</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A Mechanism for Prompt Notification of Zone Changes</i>. </span><span class="pubdate">August 1996. </span></p> +<a name="id2606944"></a><p>[<abbr class="abbrev">RFC1996</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A Mechanism for Prompt Notification of Zone Changes</i>. </span><span class="pubdate">August 1996. </span></p> </div> <div class="biblioentry"> -<a name="id2605733"></a><p>[<abbr class="abbrev">RFC2136</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">Y.</span> <span class="surname">Rekhter</span>, and <span class="firstname">J.</span> <span class="surname">Bound</span>. </span><span class="title"><i>Dynamic Updates in the Domain Name System</i>. </span><span class="pubdate">April 1997. </span></p> +<a name="id2606967"></a><p>[<abbr class="abbrev">RFC2136</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">Y.</span> <span class="surname">Rekhter</span>, and <span class="firstname">J.</span> <span class="surname">Bound</span>. </span><span class="title"><i>Dynamic Updates in the Domain Name System</i>. </span><span class="pubdate">April 1997. </span></p> </div> <div class="biblioentry"> -<a name="id2605788"></a><p>[<abbr class="abbrev">RFC2671</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Extension Mechanisms for DNS (EDNS0)</i>. </span><span class="pubdate">August 1997. </span></p> +<a name="id2607022"></a><p>[<abbr class="abbrev">RFC2671</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Extension Mechanisms for DNS (EDNS0)</i>. </span><span class="pubdate">August 1997. </span></p> </div> <div class="biblioentry"> -<a name="id2605815"></a><p>[<abbr class="abbrev">RFC2672</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Non-Terminal DNS Name Redirection</i>. </span><span class="pubdate">August 1999. </span></p> +<a name="id2607049"></a><p>[<abbr class="abbrev">RFC2672</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Non-Terminal DNS Name Redirection</i>. </span><span class="pubdate">August 1999. </span></p> </div> <div class="biblioentry"> -<a name="id2605842"></a><p>[<abbr class="abbrev">RFC2845</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>, <span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, and <span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secret Key Transaction Authentication for <acronym class="acronym">DNS</acronym> (TSIG)</i>. </span><span class="pubdate">May 2000. </span></p> +<a name="id2607076"></a><p>[<abbr class="abbrev">RFC2845</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>, <span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, and <span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secret Key Transaction Authentication for <acronym class="acronym">DNS</acronym> (TSIG)</i>. </span><span class="pubdate">May 2000. </span></p> </div> <div class="biblioentry"> -<a name="id2605904"></a><p>[<abbr class="abbrev">RFC2930</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secret Key Establishment for DNS (TKEY RR)</i>. </span><span class="pubdate">September 2000. </span></p> +<a name="id2607138"></a><p>[<abbr class="abbrev">RFC2930</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secret Key Establishment for DNS (TKEY RR)</i>. </span><span class="pubdate">September 2000. </span></p> </div> <div class="biblioentry"> -<a name="id2605933"></a><p>[<abbr class="abbrev">RFC2931</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DNS Request and Transaction Signatures (SIG(0)s)</i>. </span><span class="pubdate">September 2000. </span></p> +<a name="id2607168"></a><p>[<abbr class="abbrev">RFC2931</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DNS Request and Transaction Signatures (SIG(0)s)</i>. </span><span class="pubdate">September 2000. </span></p> </div> <div class="biblioentry"> -<a name="id2605963"></a><p>[<abbr class="abbrev">RFC3007</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secure Domain Name System (DNS) Dynamic Update</i>. </span><span class="pubdate">November 2000. </span></p> +<a name="id2607197"></a><p>[<abbr class="abbrev">RFC3007</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secure Domain Name System (DNS) Dynamic Update</i>. </span><span class="pubdate">November 2000. </span></p> </div> <div class="biblioentry"> -<a name="id2605990"></a><p>[<abbr class="abbrev">RFC3645</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Kwan</span>, <span class="firstname">P.</span> <span class="surname">Garg</span>, <span class="firstname">J.</span> <span class="surname">Gilroy</span>, <span class="firstname">L.</span> <span class="surname">Esibov</span>, <span class="firstname">J.</span> <span class="surname">Westhead</span>, and <span class="firstname">R.</span> <span class="surname">Hall</span>. </span><span class="title"><i>Generic Security Service Algorithm for Secret +<a name="id2607224"></a><p>[<abbr class="abbrev">RFC3645</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Kwan</span>, <span class="firstname">P.</span> <span class="surname">Garg</span>, <span class="firstname">J.</span> <span class="surname">Gilroy</span>, <span class="firstname">L.</span> <span class="surname">Esibov</span>, <span class="firstname">J.</span> <span class="surname">Westhead</span>, and <span class="firstname">R.</span> <span class="surname">Hall</span>. </span><span class="title"><i>Generic Security Service Algorithm for Secret Key Transaction Authentication for DNS (GSS-TSIG)</i>. </span><span class="pubdate">October 2003. </span></p> </div> @@ -202,19 +202,19 @@ <h3 class="title"> <acronym class="acronym">DNS</acronym> Security Proposed Standards</h3> <div class="biblioentry"> -<a name="id2606072"></a><p>[<abbr class="abbrev">RFC3225</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Conrad</span>. </span><span class="title"><i>Indicating Resolver Support of DNSSEC</i>. </span><span class="pubdate">December 2001. </span></p> +<a name="id2607306"></a><p>[<abbr class="abbrev">RFC3225</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Conrad</span>. </span><span class="title"><i>Indicating Resolver Support of DNSSEC</i>. </span><span class="pubdate">December 2001. </span></p> </div> <div class="biblioentry"> -<a name="id2606099"></a><p>[<abbr class="abbrev">RFC3833</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Atkins</span> and <span class="firstname">R.</span> <span class="surname">Austein</span>. </span><span class="title"><i>Threat Analysis of the Domain Name System (DNS)</i>. </span><span class="pubdate">August 2004. </span></p> +<a name="id2607333"></a><p>[<abbr class="abbrev">RFC3833</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Atkins</span> and <span class="firstname">R.</span> <span class="surname">Austein</span>. </span><span class="title"><i>Threat Analysis of the Domain Name System (DNS)</i>. </span><span class="pubdate">August 2004. </span></p> </div> <div class="biblioentry"> -<a name="id2606135"></a><p>[<abbr class="abbrev">RFC4033</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>DNS Security Introduction and Requirements</i>. </span><span class="pubdate">March 2005. </span></p> +<a name="id2607369"></a><p>[<abbr class="abbrev">RFC4033</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>DNS Security Introduction and Requirements</i>. </span><span class="pubdate">March 2005. </span></p> </div> <div class="biblioentry"> -<a name="id2606200"></a><p>[<abbr class="abbrev">RFC4034</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Resource Records for the DNS Security Extensions</i>. </span><span class="pubdate">March 2005. </span></p> +<a name="id2607434"></a><p>[<abbr class="abbrev">RFC4034</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Resource Records for the DNS Security Extensions</i>. </span><span class="pubdate">March 2005. </span></p> </div> <div class="biblioentry"> -<a name="id2606265"></a><p>[<abbr class="abbrev">RFC4035</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Protocol Modifications for the DNS +<a name="id2607499"></a><p>[<abbr class="abbrev">RFC4035</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Protocol Modifications for the DNS Security Extensions</i>. </span><span class="pubdate">March 2005. </span></p> </div> </div> @@ -222,146 +222,146 @@ <h3 class="title">Other Important RFCs About <acronym class="acronym">DNS</acronym> Implementation</h3> <div class="biblioentry"> -<a name="id2606339"></a><p>[<abbr class="abbrev">RFC1535</abbr>] <span class="author"><span class="firstname">E.</span> <span class="surname">Gavron</span>. </span><span class="title"><i>A Security Problem and Proposed Correction With Widely +<a name="id2607573"></a><p>[<abbr class="abbrev">RFC1535</abbr>] <span class="author"><span class="firstname">E.</span> <span class="surname">Gavron</span>. </span><span class="title"><i>A Security Problem and Proposed Correction With Widely Deployed <acronym class="acronym">DNS</acronym> Software.</i>. </span><span class="pubdate">October 1993. </span></p> </div> <div class="biblioentry"> -<a name="id2606364"></a><p>[<abbr class="abbrev">RFC1536</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Kumar</span>, <span class="firstname">J.</span> <span class="surname">Postel</span>, <span class="firstname">C.</span> <span class="surname">Neuman</span>, <span class="firstname">P.</span> <span class="surname">Danzig</span>, and <span class="firstname">S.</span> <span class="surname">Miller</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Implementation +<a name="id2607598"></a><p>[<abbr class="abbrev">RFC1536</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Kumar</span>, <span class="firstname">J.</span> <span class="surname">Postel</span>, <span class="firstname">C.</span> <span class="surname">Neuman</span>, <span class="firstname">P.</span> <span class="surname">Danzig</span>, and <span class="firstname">S.</span> <span class="surname">Miller</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Implementation Errors and Suggested Fixes</i>. </span><span class="pubdate">October 1993. </span></p> </div> <div class="biblioentry"> -<a name="id2606433"></a><p>[<abbr class="abbrev">RFC1982</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Elz</span> and <span class="firstname">R.</span> <span class="surname">Bush</span>. </span><span class="title"><i>Serial Number Arithmetic</i>. </span><span class="pubdate">August 1996. </span></p> +<a name="id2607667"></a><p>[<abbr class="abbrev">RFC1982</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Elz</span> and <span class="firstname">R.</span> <span class="surname">Bush</span>. </span><span class="title"><i>Serial Number Arithmetic</i>. </span><span class="pubdate">August 1996. </span></p> </div> <div class="biblioentry"> -<a name="id2606468"></a><p>[<abbr class="abbrev">RFC4074</abbr>] <span class="authorgroup"><span class="firstname">Y.</span> <span class="surname">Morishita</span> and <span class="firstname">T.</span> <span class="surname">Jinmei</span>. </span><span class="title"><i>Common Misbehaviour Against <acronym class="acronym">DNS</acronym> +<a name="id2607702"></a><p>[<abbr class="abbrev">RFC4074</abbr>] <span class="authorgroup"><span class="firstname">Y.</span> <span class="surname">Morishita</span> and <span class="firstname">T.</span> <span class="surname">Jinmei</span>. </span><span class="title"><i>Common Misbehaviour Against <acronym class="acronym">DNS</acronym> Queries for IPv6 Addresses</i>. </span><span class="pubdate">May 2005. </span></p> </div> </div> <div class="bibliodiv"> <h3 class="title">Resource Record Types</h3> <div class="biblioentry"> -<a name="id2606514"></a><p>[<abbr class="abbrev">RFC1183</abbr>] <span class="authorgroup"><span class="firstname">C.F.</span> <span class="surname">Everhart</span>, <span class="firstname">L. A.</span> <span class="surname">Mamakos</span>, <span class="firstname">R.</span> <span class="surname">Ullmann</span>, and <span class="firstname">P.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>New <acronym class="acronym">DNS</acronym> RR Definitions</i>. </span><span class="pubdate">October 1990. </span></p> +<a name="id2607748"></a><p>[<abbr class="abbrev">RFC1183</abbr>] <span class="authorgroup"><span class="firstname">C.F.</span> <span class="surname">Everhart</span>, <span class="firstname">L. A.</span> <span class="surname">Mamakos</span>, <span class="firstname">R.</span> <span class="surname">Ullmann</span>, and <span class="firstname">P.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>New <acronym class="acronym">DNS</acronym> RR Definitions</i>. </span><span class="pubdate">October 1990. </span></p> </div> <div class="biblioentry"> -<a name="id2606571"></a><p>[<abbr class="abbrev">RFC1706</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">R.</span> <span class="surname">Colella</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> NSAP Resource Records</i>. </span><span class="pubdate">October 1994. </span></p> +<a name="id2607874"></a><p>[<abbr class="abbrev">RFC1706</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">R.</span> <span class="surname">Colella</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> NSAP Resource Records</i>. </span><span class="pubdate">October 1994. </span></p> </div> <div class="biblioentry"> -<a name="id2606609"></a><p>[<abbr class="abbrev">RFC2168</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Daniel</span> and <span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="title"><i>Resolution of Uniform Resource Identifiers using +<a name="id2607911"></a><p>[<abbr class="abbrev">RFC2168</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Daniel</span> and <span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="title"><i>Resolution of Uniform Resource Identifiers using the Domain Name System</i>. </span><span class="pubdate">June 1997. </span></p> </div> <div class="biblioentry"> -<a name="id2606644"></a><p>[<abbr class="abbrev">RFC1876</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Davis</span>, <span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">T.</span>, and <span class="firstname">I.</span> <span class="surname">Dickinson</span>. </span><span class="title"><i>A Means for Expressing Location Information in the +<a name="id2607946"></a><p>[<abbr class="abbrev">RFC1876</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Davis</span>, <span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">T.</span>, and <span class="firstname">I.</span> <span class="surname">Dickinson</span>. </span><span class="title"><i>A Means for Expressing Location Information in the Domain Name System</i>. </span><span class="pubdate">January 1996. </span></p> </div> <div class="biblioentry"> -<a name="id2606766"></a><p>[<abbr class="abbrev">RFC2052</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A <acronym class="acronym">DNS</acronym> RR for Specifying the +<a name="id2608001"></a><p>[<abbr class="abbrev">RFC2052</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A <acronym class="acronym">DNS</acronym> RR for Specifying the Location of Services.</i>. </span><span class="pubdate">October 1996. </span></p> </div> <div class="biblioentry"> -<a name="id2606805"></a><p>[<abbr class="abbrev">RFC2163</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Allocchio</span>. </span><span class="title"><i>Using the Internet <acronym class="acronym">DNS</acronym> to +<a name="id2608039"></a><p>[<abbr class="abbrev">RFC2163</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Allocchio</span>. </span><span class="title"><i>Using the Internet <acronym class="acronym">DNS</acronym> to Distribute MIXER Conformant Global Address Mapping</i>. </span><span class="pubdate">January 1998. </span></p> </div> <div class="biblioentry"> -<a name="id2606830"></a><p>[<abbr class="abbrev">RFC2230</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Atkinson</span>. </span><span class="title"><i>Key Exchange Delegation Record for the <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">October 1997. </span></p> +<a name="id2608065"></a><p>[<abbr class="abbrev">RFC2230</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Atkinson</span>. </span><span class="title"><i>Key Exchange Delegation Record for the <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">October 1997. </span></p> </div> <div class="biblioentry"> -<a name="id2606856"></a><p>[<abbr class="abbrev">RFC2536</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DSA KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p> +<a name="id2608090"></a><p>[<abbr class="abbrev">RFC2536</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DSA KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p> </div> <div class="biblioentry"> -<a name="id2606883"></a><p>[<abbr class="abbrev">RFC2537</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/MD5 KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p> +<a name="id2608117"></a><p>[<abbr class="abbrev">RFC2537</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/MD5 KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p> </div> <div class="biblioentry"> -<a name="id2606909"></a><p>[<abbr class="abbrev">RFC2538</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Storing Certificates in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p> +<a name="id2608144"></a><p>[<abbr class="abbrev">RFC2538</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Storing Certificates in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p> </div> <div class="biblioentry"> -<a name="id2606949"></a><p>[<abbr class="abbrev">RFC2539</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Storage of Diffie-Hellman Keys in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p> +<a name="id2608183"></a><p>[<abbr class="abbrev">RFC2539</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Storage of Diffie-Hellman Keys in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p> </div> <div class="biblioentry"> -<a name="id2606979"></a><p>[<abbr class="abbrev">RFC2540</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Detached Domain Name System (DNS) Information</i>. </span><span class="pubdate">March 1999. </span></p> +<a name="id2608213"></a><p>[<abbr class="abbrev">RFC2540</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Detached Domain Name System (DNS) Information</i>. </span><span class="pubdate">March 1999. </span></p> </div> <div class="biblioentry"> -<a name="id2607009"></a><p>[<abbr class="abbrev">RFC2782</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span>. </span><span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="author"><span class="firstname">L.</span> <span class="surname">Esibov</span>. </span><span class="title"><i>A DNS RR for specifying the location of services (DNS SRV)</i>. </span><span class="pubdate">February 2000. </span></p> +<a name="id2608243"></a><p>[<abbr class="abbrev">RFC2782</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span>. </span><span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="author"><span class="firstname">L.</span> <span class="surname">Esibov</span>. </span><span class="title"><i>A DNS RR for specifying the location of services (DNS SRV)</i>. </span><span class="pubdate">February 2000. </span></p> </div> <div class="biblioentry"> -<a name="id2607051"></a><p>[<abbr class="abbrev">RFC2915</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="author"><span class="firstname">R.</span> <span class="surname">Daniel</span>. </span><span class="title"><i>The Naming Authority Pointer (NAPTR) DNS Resource Record</i>. </span><span class="pubdate">September 2000. </span></p> +<a name="id2608285"></a><p>[<abbr class="abbrev">RFC2915</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="author"><span class="firstname">R.</span> <span class="surname">Daniel</span>. </span><span class="title"><i>The Naming Authority Pointer (NAPTR) DNS Resource Record</i>. </span><span class="pubdate">September 2000. </span></p> </div> <div class="biblioentry"> -<a name="id2607084"></a><p>[<abbr class="abbrev">RFC3110</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)</i>. </span><span class="pubdate">May 2001. </span></p> +<a name="id2608318"></a><p>[<abbr class="abbrev">RFC3110</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)</i>. </span><span class="pubdate">May 2001. </span></p> </div> <div class="biblioentry"> -<a name="id2607111"></a><p>[<abbr class="abbrev">RFC3123</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Koch</span>. </span><span class="title"><i>A DNS RR Type for Lists of Address Prefixes (APL RR)</i>. </span><span class="pubdate">June 2001. </span></p> +<a name="id2608345"></a><p>[<abbr class="abbrev">RFC3123</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Koch</span>. </span><span class="title"><i>A DNS RR Type for Lists of Address Prefixes (APL RR)</i>. </span><span class="pubdate">June 2001. </span></p> </div> <div class="biblioentry"> -<a name="id2607134"></a><p>[<abbr class="abbrev">RFC3596</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">C.</span> <span class="surname">Huitema</span>, <span class="firstname">V.</span> <span class="surname">Ksinant</span>, and <span class="firstname">M.</span> <span class="surname">Souissi</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Extensions to support IP +<a name="id2608369"></a><p>[<abbr class="abbrev">RFC3596</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">C.</span> <span class="surname">Huitema</span>, <span class="firstname">V.</span> <span class="surname">Ksinant</span>, and <span class="firstname">M.</span> <span class="surname">Souissi</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Extensions to support IP version 6</i>. </span><span class="pubdate">October 2003. </span></p> </div> <div class="biblioentry"> -<a name="id2607192"></a><p>[<abbr class="abbrev">RFC3597</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gustafsson</span>. </span><span class="title"><i>Handling of Unknown DNS Resource Record (RR) Types</i>. </span><span class="pubdate">September 2003. </span></p> +<a name="id2608426"></a><p>[<abbr class="abbrev">RFC3597</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gustafsson</span>. </span><span class="title"><i>Handling of Unknown DNS Resource Record (RR) Types</i>. </span><span class="pubdate">September 2003. </span></p> </div> </div> <div class="bibliodiv"> <h3 class="title"> <acronym class="acronym">DNS</acronym> and the Internet</h3> <div class="biblioentry"> -<a name="id2607224"></a><p>[<abbr class="abbrev">RFC1101</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Network Names +<a name="id2608458"></a><p>[<abbr class="abbrev">RFC1101</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Network Names and Other Types</i>. </span><span class="pubdate">April 1989. </span></p> </div> <div class="biblioentry"> -<a name="id2607250"></a><p>[<abbr class="abbrev">RFC1123</abbr>] <span class="author"><span class="surname">Braden</span>. </span><span class="title"><i>Requirements for Internet Hosts - Application and +<a name="id2608552"></a><p>[<abbr class="abbrev">RFC1123</abbr>] <span class="author"><span class="surname">Braden</span>. </span><span class="title"><i>Requirements for Internet Hosts - Application and Support</i>. </span><span class="pubdate">October 1989. </span></p> </div> <div class="biblioentry"> -<a name="id2607272"></a><p>[<abbr class="abbrev">RFC1591</abbr>] <span class="author"><span class="firstname">J.</span> <span class="surname">Postel</span>. </span><span class="title"><i>Domain Name System Structure and Delegation</i>. </span><span class="pubdate">March 1994. </span></p> +<a name="id2608574"></a><p>[<abbr class="abbrev">RFC1591</abbr>] <span class="author"><span class="firstname">J.</span> <span class="surname">Postel</span>. </span><span class="title"><i>Domain Name System Structure and Delegation</i>. </span><span class="pubdate">March 1994. </span></p> </div> <div class="biblioentry"> -<a name="id2607296"></a><p>[<abbr class="abbrev">RFC2317</abbr>] <span class="authorgroup"><span class="firstname">H.</span> <span class="surname">Eidnes</span>, <span class="firstname">G.</span> <span class="surname">de Groot</span>, and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Classless IN-ADDR.ARPA Delegation</i>. </span><span class="pubdate">March 1998. </span></p> +<a name="id2608598"></a><p>[<abbr class="abbrev">RFC2317</abbr>] <span class="authorgroup"><span class="firstname">H.</span> <span class="surname">Eidnes</span>, <span class="firstname">G.</span> <span class="surname">de Groot</span>, and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Classless IN-ADDR.ARPA Delegation</i>. </span><span class="pubdate">March 1998. </span></p> </div> <div class="biblioentry"> -<a name="id2607410"></a><p>[<abbr class="abbrev">RFC2826</abbr>] <span class="authorgroup"><span class="surname">Internet Architecture Board</span>. </span><span class="title"><i>IAB Technical Comment on the Unique DNS Root</i>. </span><span class="pubdate">May 2000. </span></p> +<a name="id2608712"></a><p>[<abbr class="abbrev">RFC2826</abbr>] <span class="authorgroup"><span class="surname">Internet Architecture Board</span>. </span><span class="title"><i>IAB Technical Comment on the Unique DNS Root</i>. </span><span class="pubdate">May 2000. </span></p> </div> <div class="biblioentry"> -<a name="id2607433"></a><p>[<abbr class="abbrev">RFC2929</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, <span class="firstname">E.</span> <span class="surname">Brunner-Williams</span>, and <span class="firstname">B.</span> <span class="surname">Manning</span>. </span><span class="title"><i>Domain Name System (DNS) IANA Considerations</i>. </span><span class="pubdate">September 2000. </span></p> +<a name="id2608736"></a><p>[<abbr class="abbrev">RFC2929</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, <span class="firstname">E.</span> <span class="surname">Brunner-Williams</span>, and <span class="firstname">B.</span> <span class="surname">Manning</span>. </span><span class="title"><i>Domain Name System (DNS) IANA Considerations</i>. </span><span class="pubdate">September 2000. </span></p> </div> </div> <div class="bibliodiv"> <h3 class="title"> <acronym class="acronym">DNS</acronym> Operations</h3> <div class="biblioentry"> -<a name="id2607491"></a><p>[<abbr class="abbrev">RFC1033</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Lottor</span>. </span><span class="title"><i>Domain administrators operations guide.</i>. </span><span class="pubdate">November 1987. </span></p> +<a name="id2608793"></a><p>[<abbr class="abbrev">RFC1033</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Lottor</span>. </span><span class="title"><i>Domain administrators operations guide.</i>. </span><span class="pubdate">November 1987. </span></p> </div> <div class="biblioentry"> -<a name="id2607514"></a><p>[<abbr class="abbrev">RFC1537</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Beertema</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Data File +<a name="id2608817"></a><p>[<abbr class="abbrev">RFC1537</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Beertema</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Data File Configuration Errors</i>. </span><span class="pubdate">October 1993. </span></p> </div> <div class="biblioentry"> -<a name="id2607541"></a><p>[<abbr class="abbrev">RFC1912</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Barr</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Operational and +<a name="id2608843"></a><p>[<abbr class="abbrev">RFC1912</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Barr</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Operational and Configuration Errors</i>. </span><span class="pubdate">February 1996. </span></p> </div> <div class="biblioentry"> -<a name="id2607568"></a><p>[<abbr class="abbrev">RFC2010</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Operational Criteria for Root Name Servers.</i>. </span><span class="pubdate">October 1996. </span></p> +<a name="id2608870"></a><p>[<abbr class="abbrev">RFC2010</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Operational Criteria for Root Name Servers.</i>. </span><span class="pubdate">October 1996. </span></p> </div> <div class="biblioentry"> -<a name="id2607604"></a><p>[<abbr class="abbrev">RFC2219</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Hamilton</span> and <span class="firstname">R.</span> <span class="surname">Wright</span>. </span><span class="title"><i>Use of <acronym class="acronym">DNS</acronym> Aliases for +<a name="id2608906"></a><p>[<abbr class="abbrev">RFC2219</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Hamilton</span> and <span class="firstname">R.</span> <span class="surname">Wright</span>. </span><span class="title"><i>Use of <acronym class="acronym">DNS</acronym> Aliases for Network Services.</i>. </span><span class="pubdate">October 1997. </span></p> </div> </div> <div class="bibliodiv"> <h3 class="title">Internationalized Domain Names</h3> <div class="biblioentry"> -<a name="id2607650"></a><p>[<abbr class="abbrev">RFC2825</abbr>] <span class="authorgroup"><span class="surname">IAB</span> and <span class="firstname">R.</span> <span class="surname">Daigle</span>. </span><span class="title"><i>A Tangled Web: Issues of I18N, Domain Names, +<a name="id2608952"></a><p>[<abbr class="abbrev">RFC2825</abbr>] <span class="authorgroup"><span class="surname">IAB</span> and <span class="firstname">R.</span> <span class="surname">Daigle</span>. </span><span class="title"><i>A Tangled Web: Issues of I18N, Domain Names, and the Other Internet protocols</i>. </span><span class="pubdate">May 2000. </span></p> </div> <div class="biblioentry"> -<a name="id2607682"></a><p>[<abbr class="abbrev">RFC3490</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Faltstrom</span>, <span class="firstname">P.</span> <span class="surname">Hoffman</span>, and <span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Internationalizing Domain Names in Applications (IDNA)</i>. </span><span class="pubdate">March 2003. </span></p> +<a name="id2608984"></a><p>[<abbr class="abbrev">RFC3490</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Faltstrom</span>, <span class="firstname">P.</span> <span class="surname">Hoffman</span>, and <span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Internationalizing Domain Names in Applications (IDNA)</i>. </span><span class="pubdate">March 2003. </span></p> </div> <div class="biblioentry"> -<a name="id2607728"></a><p>[<abbr class="abbrev">RFC3491</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Hoffman</span> and <span class="firstname">M.</span> <span class="surname">Blanchet</span>. </span><span class="title"><i>Nameprep: A Stringprep Profile for Internationalized Domain Names</i>. </span><span class="pubdate">March 2003. </span></p> +<a name="id2609030"></a><p>[<abbr class="abbrev">RFC3491</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Hoffman</span> and <span class="firstname">M.</span> <span class="surname">Blanchet</span>. </span><span class="title"><i>Nameprep: A Stringprep Profile for Internationalized Domain Names</i>. </span><span class="pubdate">March 2003. </span></p> </div> <div class="biblioentry"> -<a name="id2607763"></a><p>[<abbr class="abbrev">RFC3492</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Punycode: A Bootstring encoding of Unicode +<a name="id2609065"></a><p>[<abbr class="abbrev">RFC3492</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)</i>. </span><span class="pubdate">March 2003. </span></p> </div> @@ -377,47 +377,47 @@ </p> </div> <div class="biblioentry"> -<a name="id2607808"></a><p>[<abbr class="abbrev">RFC1464</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Rosenbaum</span>. </span><span class="title"><i>Using the Domain Name System To Store Arbitrary String +<a name="id2609110"></a><p>[<abbr class="abbrev">RFC1464</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Rosenbaum</span>. </span><span class="title"><i>Using the Domain Name System To Store Arbitrary String Attributes</i>. </span><span class="pubdate">May 1993. </span></p> </div> <div class="biblioentry"> -<a name="id2607830"></a><p>[<abbr class="abbrev">RFC1713</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Romao</span>. </span><span class="title"><i>Tools for <acronym class="acronym">DNS</acronym> Debugging</i>. </span><span class="pubdate">November 1994. </span></p> +<a name="id2609132"></a><p>[<abbr class="abbrev">RFC1713</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Romao</span>. </span><span class="title"><i>Tools for <acronym class="acronym">DNS</acronym> Debugging</i>. </span><span class="pubdate">November 1994. </span></p> </div> <div class="biblioentry"> -<a name="id2607856"></a><p>[<abbr class="abbrev">RFC1794</abbr>] <span class="author"><span class="firstname">T.</span> <span class="surname">Brisco</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Support for Load +<a name="id2609158"></a><p>[<abbr class="abbrev">RFC1794</abbr>] <span class="author"><span class="firstname">T.</span> <span class="surname">Brisco</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Support for Load Balancing</i>. </span><span class="pubdate">April 1995. </span></p> </div> <div class="biblioentry"> -<a name="id2607881"></a><p>[<abbr class="abbrev">RFC2240</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Legal Basis for Domain Name Allocation</i>. </span><span class="pubdate">November 1997. </span></p> +<a name="id2609184"></a><p>[<abbr class="abbrev">RFC2240</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Legal Basis for Domain Name Allocation</i>. </span><span class="pubdate">November 1997. </span></p> </div> <div class="biblioentry"> -<a name="id2607905"></a><p>[<abbr class="abbrev">RFC2345</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>, <span class="firstname">T.</span> <span class="surname">Wolf</span>, and <span class="firstname">G.</span> <span class="surname">Oglesby</span>. </span><span class="title"><i>Domain Names and Company Name Retrieval</i>. </span><span class="pubdate">May 1998. </span></p> +<a name="id2609207"></a><p>[<abbr class="abbrev">RFC2345</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>, <span class="firstname">T.</span> <span class="surname">Wolf</span>, and <span class="firstname">G.</span> <span class="surname">Oglesby</span>. </span><span class="title"><i>Domain Names and Company Name Retrieval</i>. </span><span class="pubdate">May 1998. </span></p> </div> <div class="biblioentry"> -<a name="id2607950"></a><p>[<abbr class="abbrev">RFC2352</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Convention For Using Legal Names as Domain Names</i>. </span><span class="pubdate">May 1998. </span></p> +<a name="id2609253"></a><p>[<abbr class="abbrev">RFC2352</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Convention For Using Legal Names as Domain Names</i>. </span><span class="pubdate">May 1998. </span></p> </div> <div class="biblioentry"> -<a name="id2607974"></a><p>[<abbr class="abbrev">RFC3071</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>. </span><span class="title"><i>Reflections on the DNS, RFC 1591, and Categories of Domains</i>. </span><span class="pubdate">February 2001. </span></p> +<a name="id2609276"></a><p>[<abbr class="abbrev">RFC3071</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>. </span><span class="title"><i>Reflections on the DNS, RFC 1591, and Categories of Domains</i>. </span><span class="pubdate">February 2001. </span></p> </div> <div class="biblioentry"> -<a name="id2608001"></a><p>[<abbr class="abbrev">RFC3258</abbr>] <span class="authorgroup"><span class="firstname">T.</span> <span class="surname">Hardie</span>. </span><span class="title"><i>Distributing Authoritative Name Servers via +<a name="id2609303"></a><p>[<abbr class="abbrev">RFC3258</abbr>] <span class="authorgroup"><span class="firstname">T.</span> <span class="surname">Hardie</span>. </span><span class="title"><i>Distributing Authoritative Name Servers via Shared Unicast Addresses</i>. </span><span class="pubdate">April 2002. </span></p> </div> <div class="biblioentry"> -<a name="id2608026"></a><p>[<abbr class="abbrev">RFC3901</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Durand</span> and <span class="firstname">J.</span> <span class="surname">Ihren</span>. </span><span class="title"><i>DNS IPv6 Transport Operational Guidelines</i>. </span><span class="pubdate">September 2004. </span></p> +<a name="id2609329"></a><p>[<abbr class="abbrev">RFC3901</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Durand</span> and <span class="firstname">J.</span> <span class="surname">Ihren</span>. </span><span class="title"><i>DNS IPv6 Transport Operational Guidelines</i>. </span><span class="pubdate">September 2004. </span></p> </div> </div> <div class="bibliodiv"> <h3 class="title">Obsolete and Unimplemented Experimental RFC</h3> <div class="biblioentry"> -<a name="id2608070"></a><p>[<abbr class="abbrev">RFC1712</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Farrell</span>, <span class="firstname">M.</span> <span class="surname">Schulze</span>, <span class="firstname">S.</span> <span class="surname">Pleitner</span>, and <span class="firstname">D.</span> <span class="surname">Baldoni</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Geographical +<a name="id2609372"></a><p>[<abbr class="abbrev">RFC1712</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Farrell</span>, <span class="firstname">M.</span> <span class="surname">Schulze</span>, <span class="firstname">S.</span> <span class="surname">Pleitner</span>, and <span class="firstname">D.</span> <span class="surname">Baldoni</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Geographical Location</i>. </span><span class="pubdate">November 1994. </span></p> </div> <div class="biblioentry"> -<a name="id2608128"></a><p>[<abbr class="abbrev">RFC2673</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Binary Labels in the Domain Name System</i>. </span><span class="pubdate">August 1999. </span></p> +<a name="id2609430"></a><p>[<abbr class="abbrev">RFC2673</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Binary Labels in the Domain Name System</i>. </span><span class="pubdate">August 1999. </span></p> </div> <div class="biblioentry"> -<a name="id2608154"></a><p>[<abbr class="abbrev">RFC2874</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span> and <span class="firstname">C.</span> <span class="surname">Huitema</span>. </span><span class="title"><i>DNS Extensions to Support IPv6 Address Aggregation +<a name="id2609457"></a><p>[<abbr class="abbrev">RFC2874</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span> and <span class="firstname">C.</span> <span class="surname">Huitema</span>. </span><span class="title"><i>DNS Extensions to Support IPv6 Address Aggregation and Renumbering</i>. </span><span class="pubdate">July 2000. </span></p> </div> </div> @@ -431,39 +431,39 @@ </p> </div> <div class="biblioentry"> -<a name="id2608202"></a><p>[<abbr class="abbrev">RFC2065</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">C.</span> <span class="surname">Kaufman</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">January 1997. </span></p> +<a name="id2609505"></a><p>[<abbr class="abbrev">RFC2065</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">C.</span> <span class="surname">Kaufman</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">January 1997. </span></p> </div> <div class="biblioentry"> -<a name="id2608242"></a><p>[<abbr class="abbrev">RFC2137</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secure Domain Name System Dynamic Update</i>. </span><span class="pubdate">April 1997. </span></p> +<a name="id2609544"></a><p>[<abbr class="abbrev">RFC2137</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secure Domain Name System Dynamic Update</i>. </span><span class="pubdate">April 1997. </span></p> </div> <div class="biblioentry"> -<a name="id2608268"></a><p>[<abbr class="abbrev">RFC2535</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">March 1999. </span></p> +<a name="id2609571"></a><p>[<abbr class="abbrev">RFC2535</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">March 1999. </span></p> </div> <div class="biblioentry"> -<a name="id2608298"></a><p>[<abbr class="abbrev">RFC3008</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Domain Name System Security (DNSSEC) +<a name="id2609601"></a><p>[<abbr class="abbrev">RFC3008</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Domain Name System Security (DNSSEC) Signing Authority</i>. </span><span class="pubdate">November 2000. </span></p> </div> <div class="biblioentry"> -<a name="id2608324"></a><p>[<abbr class="abbrev">RFC3090</abbr>] <span class="authorgroup"><span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>DNS Security Extension Clarification on Zone Status</i>. </span><span class="pubdate">March 2001. </span></p> +<a name="id2609626"></a><p>[<abbr class="abbrev">RFC3090</abbr>] <span class="authorgroup"><span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>DNS Security Extension Clarification on Zone Status</i>. </span><span class="pubdate">March 2001. </span></p> </div> <div class="biblioentry"> -<a name="id2608350"></a><p>[<abbr class="abbrev">RFC3445</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Massey</span> and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Limiting the Scope of the KEY Resource Record (RR)</i>. </span><span class="pubdate">December 2002. </span></p> +<a name="id2609653"></a><p>[<abbr class="abbrev">RFC3445</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Massey</span> and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Limiting the Scope of the KEY Resource Record (RR)</i>. </span><span class="pubdate">December 2002. </span></p> </div> <div class="biblioentry"> -<a name="id2608387"></a><p>[<abbr class="abbrev">RFC3655</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Redefinition of DNS Authenticated Data (AD) bit</i>. </span><span class="pubdate">November 2003. </span></p> +<a name="id2609689"></a><p>[<abbr class="abbrev">RFC3655</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Redefinition of DNS Authenticated Data (AD) bit</i>. </span><span class="pubdate">November 2003. </span></p> </div> <div class="biblioentry"> -<a name="id2608423"></a><p>[<abbr class="abbrev">RFC3658</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Delegation Signer (DS) Resource Record (RR)</i>. </span><span class="pubdate">December 2003. </span></p> +<a name="id2609725"></a><p>[<abbr class="abbrev">RFC3658</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Delegation Signer (DS) Resource Record (RR)</i>. </span><span class="pubdate">December 2003. </span></p> </div> <div class="biblioentry"> -<a name="id2608450"></a><p>[<abbr class="abbrev">RFC3755</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Weiler</span>. </span><span class="title"><i>Legacy Resolver Compatibility for Delegation Signer (DS)</i>. </span><span class="pubdate">May 2004. </span></p> +<a name="id2609752"></a><p>[<abbr class="abbrev">RFC3755</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Weiler</span>. </span><span class="title"><i>Legacy Resolver Compatibility for Delegation Signer (DS)</i>. </span><span class="pubdate">May 2004. </span></p> </div> <div class="biblioentry"> -<a name="id2608476"></a><p>[<abbr class="abbrev">RFC3757</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Kolkman</span>, <span class="firstname">J.</span> <span class="surname">Schlyter</span>, and <span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>Domain Name System KEY (DNSKEY) Resource Record +<a name="id2609779"></a><p>[<abbr class="abbrev">RFC3757</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Kolkman</span>, <span class="firstname">J.</span> <span class="surname">Schlyter</span>, and <span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>Domain Name System KEY (DNSKEY) Resource Record (RR) Secure Entry Point (SEP) Flag</i>. </span><span class="pubdate">April 2004. </span></p> </div> <div class="biblioentry"> -<a name="id2608521"></a><p>[<abbr class="abbrev">RFC3845</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Schlyter</span>. </span><span class="title"><i>DNS Security (DNSSEC) NextSECure (NSEC) RDATA Format</i>. </span><span class="pubdate">August 2004. </span></p> +<a name="id2609824"></a><p>[<abbr class="abbrev">RFC3845</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Schlyter</span>. </span><span class="title"><i>DNS Security (DNSSEC) NextSECure (NSEC) RDATA Format</i>. </span><span class="pubdate">August 2004. </span></p> </div> </div> </div> @@ -484,14 +484,14 @@ </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2608563"></a>Other Documents About <acronym class="acronym">BIND</acronym> +<a name="id2609865"></a>Other Documents About <acronym class="acronym">BIND</acronym> </h3></div></div></div> <p></p> <div class="bibliography"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2608572"></a>Bibliography</h4></div></div></div> +<a name="id2609875"></a>Bibliography</h4></div></div></div> <div class="biblioentry"> -<a name="id2608574"></a><p><span class="authorgroup"><span class="firstname">Paul</span> <span class="surname">Albitz</span> and <span class="firstname">Cricket</span> <span class="surname">Liu</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></i>. </span><span class="copyright">Copyright © 1998 Sebastopol, CA: O'Reilly and Associates. </span></p> +<a name="id2609877"></a><p><span class="authorgroup"><span class="firstname">Paul</span> <span class="surname">Albitz</span> and <span class="firstname">Cricket</span> <span class="surname">Liu</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></i>. </span><span class="copyright">Copyright © 1998 Sebastopol, CA: O'Reilly and Associates. </span></p> </div> </div> </div> @@ -514,6 +514,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.ch12.html b/doc/arm/Bv9ARM.ch12.html index 325b54ebaf1d..fe8c6a3d7644 100644 --- a/doc/arm/Bv9ARM.ch12.html +++ b/doc/arm/Bv9ARM.ch12.html @@ -47,13 +47,13 @@ <dl> <dt><span class="sect1"><a href="Bv9ARM.ch12.html#bind9.library">BIND 9 DNS Library Support</a></span></dt> <dd><dl> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611115">Prerequisite</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611125">Compilation</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2609306">Installation</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2609337">Known Defects/Restrictions</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2610301">The dns.conf File</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2610328">Sample Applications</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611437">Library References</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2612691">Prerequisite</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2612700">Compilation</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611701">Installation</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611732">Known Defects/Restrictions</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611877">The dns.conf File</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611904">Sample Applications</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2612808">Library References</a></span></dt> </dl></dd> </dl> </div> @@ -89,7 +89,7 @@ </ul></div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2611115"></a>Prerequisite</h3></div></div></div> +<a name="id2612691"></a>Prerequisite</h3></div></div></div> <p>GNU make is required to build the export libraries (other part of BIND 9 can still be built with other types of make). In the reminder of this document, "make" means GNU make. Note that @@ -98,7 +98,7 @@ </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2611125"></a>Compilation</h3></div></div></div> +<a name="id2612700"></a>Compilation</h3></div></div></div> <pre class="screen"> $ <strong class="userinput"><code>./configure --enable-exportlib <em class="replaceable"><code>[other flags]</code></em></code></strong> $ <strong class="userinput"><code>make</code></strong> @@ -113,7 +113,7 @@ $ <strong class="userinput"><code>make</code></strong> </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2609306"></a>Installation</h3></div></div></div> +<a name="id2611701"></a>Installation</h3></div></div></div> <pre class="screen"> $ <strong class="userinput"><code>cd lib/export</code></strong> $ <strong class="userinput"><code>make install</code></strong> @@ -135,7 +135,7 @@ $ <strong class="userinput"><code>make install</code></strong> </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2609337"></a>Known Defects/Restrictions</h3></div></div></div> +<a name="id2611732"></a>Known Defects/Restrictions</h3></div></div></div> <div class="itemizedlist"><ul type="disc"> <li><p>Currently, win32 is not supported for the export library. (Normal BIND 9 application can be built as @@ -175,7 +175,7 @@ $ <strong class="userinput"><code>make</code></strong> </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2610301"></a>The dns.conf File</h3></div></div></div> +<a name="id2611877"></a>The dns.conf File</h3></div></div></div> <p>The IRS library supports an "advanced" configuration file related to the DNS library for configuration parameters that would be beyond the capability of the @@ -193,14 +193,14 @@ $ <strong class="userinput"><code>make</code></strong> </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2610328"></a>Sample Applications</h3></div></div></div> +<a name="id2611904"></a>Sample Applications</h3></div></div></div> <p>Some sample application programs using this API are provided for reference. The following is a brief description of these applications. </p> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2610337"></a>sample: a simple stub resolver utility</h4></div></div></div> +<a name="id2611912"></a>sample: a simple stub resolver utility</h4></div></div></div> <p> It sends a query of a given name (of a given optional RR type) to a specified recursive server, and prints the result as a list of @@ -264,7 +264,7 @@ $ <strong class="userinput"><code>make</code></strong> </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2610427"></a>sample-async: a simple stub resolver, working asynchronously</h4></div></div></div> +<a name="id2612003"></a>sample-async: a simple stub resolver, working asynchronously</h4></div></div></div> <p> Similar to "sample", but accepts a list of (query) domain names as a separate file and resolves the names @@ -305,7 +305,7 @@ $ <strong class="userinput"><code>make</code></strong> </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2610481"></a>sample-request: a simple DNS transaction client</h4></div></div></div> +<a name="id2612056"></a>sample-request: a simple DNS transaction client</h4></div></div></div> <p> It sends a query to a specified server, and prints the response with minimal processing. It doesn't act as a @@ -346,7 +346,7 @@ $ <strong class="userinput"><code>make</code></strong> </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2610818"></a>sample-gai: getaddrinfo() and getnameinfo() test code</h4></div></div></div> +<a name="id2612325"></a>sample-gai: getaddrinfo() and getnameinfo() test code</h4></div></div></div> <p> This is a test program to check getaddrinfo() and getnameinfo() behavior. It takes a @@ -363,7 +363,7 @@ $ <strong class="userinput"><code>make</code></strong> </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2610833"></a>sample-update: a simple dynamic update client program</h4></div></div></div> +<a name="id2612340"></a>sample-update: a simple dynamic update client program</h4></div></div></div> <p> It accepts a single update command as a command-line argument, sends an update request message to the @@ -458,7 +458,7 @@ $ <strong class="userinput"><code>sample-update -a sample-update -k Kxxx.+nnn+mm </div> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> -<a name="id2611373"></a>nsprobe: domain/name server checker in terms of RFC 4074</h4></div></div></div> +<a name="id2612471"></a>nsprobe: domain/name server checker in terms of RFC 4074</h4></div></div></div> <p> It checks a set of domains to see the name servers of the domains behave @@ -515,7 +515,7 @@ $ <strong class="userinput"><code>sample-update -a sample-update -k Kxxx.+nnn+mm </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> -<a name="id2611437"></a>Library References</h3></div></div></div> +<a name="id2612808"></a>Library References</h3></div></div></div> <p>As of this writing, there is no formal "manual" of the libraries, except this document, header files (some of them provide pretty detailed explanations), and sample application @@ -540,6 +540,6 @@ $ <strong class="userinput"><code>sample-update -a sample-update -k Kxxx.+nnn+mm </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.ch13.html b/doc/arm/Bv9ARM.ch13.html index c043129a6a4f..56fec600eba2 100644 --- a/doc/arm/Bv9ARM.ch13.html +++ b/doc/arm/Bv9ARM.ch13.html @@ -140,6 +140,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.html b/doc/arm/Bv9ARM.html index defab2ba6ad2..91eab41a098e 100644 --- a/doc/arm/Bv9ARM.html +++ b/doc/arm/Bv9ARM.html @@ -41,7 +41,7 @@ <div> <div><h1 class="title"> <a name="id2563180"></a>BIND 9 Administrator Reference Manual</h1></div> -<div><p class="releaseinfo">BIND Version 9.9.7-P2</p></div> +<div><p class="releaseinfo">BIND Version 9.9.8</p></div> <div><p class="copyright">Copyright © 2004-2015 Internet Systems Consortium, Inc. ("ISC")</p></div> <div><p class="copyright">Copyright © 2000-2003 Internet Software Consortium.</p></div> </div> @@ -109,48 +109,48 @@ <dt><span class="sect1"><a href="Bv9ARM.ch04.html#DNSSEC">DNSSEC</a></span></dt> <dd><dl> <dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571054">Generating Keys</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571338">Signing the Zone</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571419">Configuring Servers</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571270">Signing the Zone</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571351">Configuring Servers</a></span></dt> </dl></dd> <dt><span class="sect1"><a href="Bv9ARM.ch04.html#dnssec.dynamic.zones">DNSSEC, Dynamic Zones, and Automatic Signing</a></span></dt> <dd><dl> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609449">Converting from insecure to secure</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609486">Dynamic DNS update method</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563716">Fully automatic zone signing</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563963">Private-type records</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564001">DNSKEY rollovers</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564013">Dynamic DNS update method</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569781">Automatic key rollovers</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569808">NSEC3PARAM rollovers via UPDATE</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569817">Converting from NSEC to NSEC3</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569827">Converting from NSEC3 to NSEC</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608888">Converting from secure to insecure</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608925">Periodic re-signing</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2608935">NSEC3 and OPTOUT</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610615">Converting from insecure to secure</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610652">Dynamic DNS update method</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563653">Fully automatic zone signing</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563900">Private-type records</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563938">DNSKEY rollovers</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563950">Dynamic DNS update method</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564052">Automatic key rollovers</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564078">NSEC3PARAM rollovers via UPDATE</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564088">Converting from NSEC to NSEC3</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569832">Converting from NSEC3 to NSEC</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569845">Converting from secure to insecure</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569882">Periodic re-signing</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569892">NSEC3 and OPTOUT</a></span></dt> </dl></dd> <dt><span class="sect1"><a href="Bv9ARM.ch04.html#rfc5011.support">Dynamic Trust Anchor Management</a></span></dt> <dd><dl> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2569982">Validating Resolver</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570005">Authoritative Server</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610129">Validating Resolver</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610151">Authoritative Server</a></span></dt> </dl></dd> <dt><span class="sect1"><a href="Bv9ARM.ch04.html#pkcs11">PKCS #11 (Cryptoki) support</a></span></dt> <dd><dl> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2609020">Prerequisites</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610137">Building BIND 9 with PKCS#11</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2612651">PKCS #11 Tools</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2612682">Using the HSM</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636637">Specifying the engine on the command line</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2636683">Running named with automatic zone re-signing</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2613326">Prerequisites</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2611166">Building BIND 9 with PKCS#11</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2613408">PKCS #11 Tools</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2613438">Using the HSM</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2637735">Specifying the engine on the command line</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2637781">Running named with automatic zone re-signing</a></span></dt> </dl></dd> -<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571639">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571571">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt> <dd><dl> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571906">Address Lookups Using AAAA Records</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571927">Address to Name Lookups Using Nibble Format</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571837">Address Lookups Using AAAA Records</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571859">Address to Name Lookups Using Nibble Format</a></span></dt> </dl></dd> </dl></dd> <dt><span class="chapter"><a href="Bv9ARM.ch05.html">5. The <acronym class="acronym">BIND</acronym> 9 Lightweight Resolver</a></span></dt> <dd><dl> -<dt><span class="sect1"><a href="Bv9ARM.ch05.html#id2571960">The Lightweight Resolver Library</a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch05.html#id2571892">The Lightweight Resolver Library</a></span></dt> <dt><span class="sect1"><a href="Bv9ARM.ch05.html#lwresd">Running a Resolver Daemon</a></span></dt> </dl></dd> <dt><span class="chapter"><a href="Bv9ARM.ch06.html">6. <acronym class="acronym">BIND</acronym> 9 Configuration Reference</a></span></dt> @@ -176,9 +176,9 @@ <dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574875"><span><strong class="command">logging</strong></span> Statement Grammar</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575001"><span><strong class="command">logging</strong></span> Statement Definition and Usage</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577168"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577241"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577305"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577236"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577309"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577373"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577417"><span><strong class="command">masters</strong></span> Statement Definition and Usage</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2577438"><span><strong class="command">options</strong></span> Statement Grammar</a></span></dt> @@ -188,28 +188,28 @@ <dt><span class="sect2"><a href="Bv9ARM.ch06.html#server_statement_definition_and_usage"><span><strong class="command">server</strong></span> Statement Definition and Usage</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#statschannels"><span><strong class="command">statistics-channels</strong></span> Statement Grammar</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590489"><span><strong class="command">statistics-channels</strong></span> Statement Definition and +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590832"><span><strong class="command">statistics-channels</strong></span> Statement Definition and Usage</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#trusted-keys"><span><strong class="command">trusted-keys</strong></span> Statement Grammar</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590796"><span><strong class="command">trusted-keys</strong></span> Statement Definition +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591139"><span><strong class="command">trusted-keys</strong></span> Statement Definition and Usage</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2590843"><span><strong class="command">managed-keys</strong></span> Statement Grammar</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591186"><span><strong class="command">managed-keys</strong></span> Statement Grammar</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#managed-keys"><span><strong class="command">managed-keys</strong></span> Statement Definition and Usage</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#view_statement_grammar"><span><strong class="command">view</strong></span> Statement Grammar</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591278"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591553"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#zone_statement_grammar"><span><strong class="command">zone</strong></span> Statement Grammar</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2592987"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2593398"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt> </dl></dd> -<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2596605">Zone File</a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2597084">Zone File</a></span></dt> <dd><dl> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#types_of_resource_records_and_when_to_use_them">Types of Resource Records and When to Use Them</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2598768">Discussion of MX Records</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2600002">Discussion of MX Records</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#Setting_TTLs">Setting TTLs</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599451">Inverse Mapping in IPv4</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599578">Other Zone File Directives</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2599851"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2600549">Inverse Mapping in IPv4</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2600812">Other Zone File Directives</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2601017"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch06.html#zonefile_format">Additional File Formats</a></span></dt> </dl></dd> <dt><span class="sect1"><a href="Bv9ARM.ch06.html#statistics">BIND9 Statistics</a></span></dt> @@ -218,23 +218,23 @@ <dt><span class="chapter"><a href="Bv9ARM.ch07.html">7. <acronym class="acronym">BIND</acronym> 9 Security Considerations</a></span></dt> <dd><dl> <dt><span class="sect1"><a href="Bv9ARM.ch07.html#Access_Control_Lists">Access Control Lists</a></span></dt> -<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2604721"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2605750"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt> <dd><dl> -<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604802">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2604861">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2605831">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2605959">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt> </dl></dd> <dt><span class="sect1"><a href="Bv9ARM.ch07.html#dynamic_update_security">Dynamic Update Security</a></span></dt> </dl></dd> <dt><span class="chapter"><a href="Bv9ARM.ch08.html">8. Troubleshooting</a></span></dt> <dd><dl> -<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2605078">Common Problems</a></span></dt> -<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2605083">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd> -<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2605095">Incrementing and Changing the Serial Number</a></span></dt> -<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2605112">Where Can I Get Help?</a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2606107">Common Problems</a></span></dt> +<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2606113">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd> +<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2606124">Incrementing and Changing the Serial Number</a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2606141">Where Can I Get Help?</a></span></dt> </dl></dd> <dt><span class="appendix"><a href="Bv9ARM.ch09.html">A. Release Notes</a></span></dt> <dd><dl> -<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2563588">Release Notes for BIND Version 9.9.7-P2</a></span></dt> +<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2563593">Release Notes for BIND Version 9.9.8</a></span></dt> <dd><dl> <dt><span class="sect2"><a href="Bv9ARM.ch09.html#relnotes_intro">Introduction</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch09.html#relnotes_download">Download</a></span></dt> @@ -255,20 +255,20 @@ <dd><dl> <dt><span class="sect2"><a href="Bv9ARM.ch11.html#rfcs">Request for Comments (RFCs)</a></span></dt> <dt><span class="sect2"><a href="Bv9ARM.ch11.html#internet_drafts">Internet Drafts</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch11.html#id2608563">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch11.html#id2609865">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt> </dl></dd> </dl></dd> <dt><span class="appendix"><a href="Bv9ARM.ch12.html">D. BIND 9 DNS Library Support</a></span></dt> <dd><dl> <dt><span class="sect1"><a href="Bv9ARM.ch12.html#bind9.library">BIND 9 DNS Library Support</a></span></dt> <dd><dl> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611115">Prerequisite</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611125">Compilation</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2609306">Installation</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2609337">Known Defects/Restrictions</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2610301">The dns.conf File</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2610328">Sample Applications</a></span></dt> -<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611437">Library References</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2612691">Prerequisite</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2612700">Compilation</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611701">Installation</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611732">Known Defects/Restrictions</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611877">The dns.conf File</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2611904">Sample Applications</a></span></dt> +<dt><span class="sect2"><a href="Bv9ARM.ch12.html#id2612808">Library References</a></span></dt> </dl></dd> </dl></dd> <dt><span class="reference"><a href="Bv9ARM.ch13.html">I. Manual pages</a></span></dt> @@ -365,6 +365,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/Bv9ARM.pdf b/doc/arm/Bv9ARM.pdf index d39bb042c8a6..86d4f828f143 100644 --- a/doc/arm/Bv9ARM.pdf +++ b/doc/arm/Bv9ARM.pdf @@ -1131,7 +1131,7 @@ endobj << /S /GoTo /D (section.A.1) >> endobj 760 0 obj -(A.1 Release Notes for BIND Version 9.9.7-P2) +(A.1 Release Notes for BIND Version 9.9.8) endobj 761 0 obj << /S /GoTo /D (subsection.A.1.1) >> @@ -1473,12 +1473,11 @@ endobj << /S /GoTo /D [986 0 R /FitH ] >> endobj 989 0 obj << -/Length 280 +/Length 277 /Filter /FlateDecode >> stream -xÚ‘MOÃ0†ïý>n‡z±çãÈ4@C1Tí‚8L[‡*ÑVëÆÿÇ]ÇT)vìGök‡Àè!ˆ‚Æ&!9CÛ:3ð®¹ûŒ.Œ‹â¬ÕÇÙÜQÀ¼@Î. 5dÇØ/œØ 7ž!ÅÙîñy‘Í†Š=JW®Ø½Næ˧Å4g1“4˜›]]5ÕñÔmNm7„^Ê}ٕͶœ¾@Ž‘¼óª/aŒñ\æqÓ|n>ú¼¶eeÐ:Õ¤msöh½W¥:vHñgÛõ”ˆ&ew¬Úæ"†ü™ûjÙmqUœÇHœÀ2Ž -`”3ñm5zÓ˜áÒðlY,Úl•ÁjDxÂl¿ð¨Wÿÿµ/—k8endstream +xÚ‘MKA†ïû+rl›&™É|-U© PY¼ˆ‡¥ÝJÁné¶þ³ÝZŠzI&yHÞdÈCR$—=ÄìQ‰–Û‚àÝr÷Ÿ¯Õ;g?²¥çˆ9…R|DGì®±_8a PªáB$=>ŠÉ0ˆÇ˜"CµEMQáÂU«×Ñtþ4—¢4ʃ¹Ym7íæpìêã®BÏͺéšvٌߪ`/ÈÁÓ—1¥t*óX·ŸõGŸ·¶b:oš¬mÉI“7}cN?Û¾Œ™yÔt‡Í®=A«Û—*n«Ëœê&–NdplJ؃ žˆokÑýÕ.‰†Ë“ù–a¶+,®ˆÀ£ë·lÛ&ðÿ_öEójŠendstream endobj 986 0 obj << /Type /Page @@ -2582,17 +2581,18 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1023 0 obj << -/Length 2975 +/Length 2973 /Filter /FlateDecode >> stream -xÚí]wÛ6†ïý+t·ö…°ø$KÇqR·›49Ûà‘[{,Ò¥(7î¯_À‘NÌM›4–Nω%KÙÎû -¹{üÐ £u(JTs'Ž"î(ú¾:aúø*+–¿gíµÔåõrý-)ÒýfŸÍѤ -f7ÙÝÃ@q½?WŠqáS7š`ˆq¥A¸ˆ„q:ï¹P I”€á¹¨ó즾~@FBÍ¡†Y0Ä€ª HDÂÀ@÷5„”D%¬¯!”«!βùõ²¸¬„f{Wlâ“8š`ˆE’ÄDÂÀA÷ƒ†àD&¼/)T()^”ÕoY»À¾hQ‘_Éüås^O|öF£14 :‘004PçýàÁ)‰ìëŒÄ
±ÙXGµ¹©—·7î+oË›fòkDòÔg>]£Y -âiiFJš.Ã9¯|rGŸWÀ;¯ x0‘00pPçaµEJ$£Ò“zŽN6ÝŠí´,nîã˶6í‰Ù+ BÎÆ
¶4"î¼"ÕDØwß]têÖÙ¶ú -užRbëx–_—õò½ÙÛ3uîùR3Â@€cì9
‘spKlŒ°Hi¨÷@šÒvX4¿ºðü¾ÈV¾¬{w»Èj{5ש:@ôCäò<š¡ÞC¨ˆ´æ:”\&$52õõ“C?Ûûo¹©laào›¦¼ÙýÐnÇOïhp€!F”
·ÆâÀØA½‡ÁGH’˜Ä -þ¡Ý¼2(Ú5z†ÇÔžÎçùzî!¨»¯Ú -!yÚ
wA5—·ÑPôv@‰Ý 0"0×=”‘Äwú5Dø'-œWÊÝØx|àÌ“Oûh €!F”C*Æêݯ]iCK}‘ø¥«ïÎÿÝ4ëˆÃÒÕg["õJŒ¥Ø!AÆ"A ˆ¡®=aiJ¤oH´ÓY¿;sñ²Ù™£Ý¶œ¤æ€Øgм"cIviPoNI‹ýÕÌuÿL"¸{>Ѿ_åõlv~f':ûq̃Ê%,S½‚!j7‚ Â_ù™rCtìyãÍ¿Œ£º5¹_~ú…NöKßQ"ŒV“ßìJ˜±4®Žú?ÔýææhvôÏÞŸogœÊ”=´É(Xóp%¦&ÂÎ÷Dת³lî•ç<=É~Ÿ¤Ó7¼ok8ÿ`'ñ‹°ÒÓÝß½ù× cì8¯ÖËæ6b…tov.AþÍ{endstream +xÚí]wÛ6†ïý+t·ö…°ø&xé8Nêv“f#gÛݶ<ckEºåÆýõ’ +€!F¡ F꼧@’¨D +¸£`v“Ý=7ûs¥ø>u£¹ +3\Ú‰>•%ŸïÑ,CŒ%¨§f)Æê<°¤$aLùŠD ó;WÝ·U‰|:7áüIWŸÙÑÔ +nÉRÞ‹6…Ÿ/³«¢\×˹»i¦ÇA³Ç}$!g£ +€ð-g§‹Õ²X®ë +´£(þ[ŸEŸ¢ÑúCL(¢$LÔy5 Š$œ‡""ÌEfË«"ëN~v(C?$nˆæ”õÉ~$IÞn +
#$í¿íë¾ /†ÒŽ÷Øú!7‚P“J×ÅО.îìtÆ/1÷7YåY½©òõ`¦ÂÁ>²r2
"+‡;Çm34Ü´‡df×k¬Pç %iʺ^†¥Ã×e½|ogööLÝ£»G¾ÔŒ0àÅ{BCäÜ#,Fê=¦ŒÖ…ͯ.<¿/²•/ëÞÝ.²Ú^ÍM¢ýß¹<f¨·Ã*b턹å endobj 1022 0 obj << /Type /Page @@ -2963,28 +2963,27 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1078 0 obj << -/Length 3313 +/Length 3310 /Filter /FlateDecode >> stream -xÚíÛrÛF†ïõ¬Ú©j9‹9Ï\*²œMbËZ“NÕn’F‚eVxP(ÒŽöéw@ MrÐÒx}’ĤʄH6»Ùÿ‡é`@ð^þç=m˜ñÂ÷¬WL\÷.¦Eï*¼öýoÞÓ‡7õñ»¾üã¹t=ϼ¦7|ÛSZ3¡×æXáï
/9<yu6<=Ž~þxp:ŒŸŠ=óBVùçÁ/¿½ËÀ“ÞéÞ‡ðGÁ¸÷¢7=PZ2¤„g&ƒƒÅD¯®M“ß„LH#_EôUª5ïY홑B®¿ˆbŽñ£>Eqø}9+£åxvuÔº8ü©¼½9ê;#ÙQ_‡7<¼åý'û°m©‹u+M›ÏmW½zã5VìúØpWÝϯôÅN ~*ŠÒ;°¢,3Ea"+¢ae0¾šEP–ïÊzã?óYز…ÙCYÍ&RÄ`Õï&&E鈑šiã|$F6ÄœÌg¿…¸Z-"7ƒrñ¾\Tc—O•NF ÙŒ CŠ¬ÅH"ŠÒ»åaÈ1¡<ŠPÕ¤
$> Rž
§'¯áxv;MÇíÀrÓ¼0š]ÖÇ«å|êUóž8$)«¾i -†D¤÷ã=SVútû|
êÕõåhÙÈ?-—ïæaÿ·^>:s•Ë6$8ØÐB¨NRqÐÞg™R"–Ø+<_M&·Íh¿9ÈÿwÝa® -¤3dH¡‚底D*¤w@ÅH&k‹ˆ†"r6øéôß’ùd2¯ç¶û)išÈf6)È"«E‘’ˆƒ"…ô¤hΤjgÌìÛN WÙ CŠ¬ÅA"ŠÒ;p C‡Áu[\lÃÁÖDòò69zhåö%%&1dH‚E¦D ¤w - -ƒD¤wÀ L4áEÕ8Þ¹ËÁãÆ -Ò;œþÔZ³ÂÇyFÕ`èí3žÃ#_
(îpu³lNwÎ.ÞÍõöËÑltUNËÙ²’Ã>J^:Ñ€ìe£)4°:‰8(4Hï0v(É -ç Á¸é:~®&Ÿ£ÉøÏz]ÞÌ'¡9êK¡÷Ç5Ó°@B³aA†,X0 -–D,¤w€ErVÈBµ°4]ÉñjFŠñ2°ò¾ÄKmBK¢Õ¾ÙBÒ˜2¤Á2Qˆ$â !½ÇRÃóÞY`„×¥æü§“æh÷ߪ§ª_]œ,n¯—ó?Æa»yöfu}=_„*cÕÓ§“Hj61È"‹&\71‰8(bHï0¨&<§:œC:¯g7õ¿®Æ7ãeY÷tx±ç×+Kål‚!EV‘"(EéÔ䪧K^ÆPÅPE‘ãÉw«ñä2v0¯®ËÙ`ð¢9Ím\N||zW¢_—Í«óYýøb<[ý>Tª¯Ó†Æ/™+!6$$ÜH¢ð¦â $¤½·:Á|!-–P|„„ƒ“ãzÃE±)à`>-ÆañR|Õá<~×l%‘!¥$Î¥ì^ÀŸŠƒR’ôÞ*iæâÉïµòþBæo—ÿ¼¬VY¹‡ÜäA²%ní(…QŽ)wƒ ô¥\7ÕZiÇœ*d«n3ØÔö»ÎžÕ[¾~ø0^¾«·ªN°îzý~ÌY6È‚k"»WÖ§â p ½·»»2̨ágjoâ -Œ0âŽß”×MXº+³Qæ‹^ø†Ùú!CJ?œAJ¿D”~¤÷V?©˜µò‰/×·êò=fwŸZÅæ{f‹ØÚQ¢,RîA)H¹n‚Y¥ñ7SA¨¼\?Ìq‘-12¤4Ɖ¦DNÄA©Lz‡ºÞn¹4ÈÍ9žÄ•auèv>Ÿ„Ñn?=¾:Þlt!…–OŠntqPèÞt¤wÌ8î[tTΛ›ÝjëÀú=5÷ &f6—lHP³¡AM*‚Ú;Pã37úº¦fp]^ŒßÞî¢SήÆpL¹ã‹óé4žƒž¬ß'¿eŸ¸‘ˆ™ÉVRªãÌËîåRqPª“ÞAu«˜á•S«þz5k/¿Ÿ¦ååv§×yÝÔö"•àç›—Ò-12¤$Æi¦$NÄAILz‡34áL;ë¨ÏÐüpþÞ4 œ‚©×‘%úF/ø¾@ - Ò;Œº:àpÂæøò²Þ×ošià‹ùüÕuóê6ŽÃ°¢ -ÎÆ¿ÿ>iÞó|¾µ£Úö߼̊l™‘!%3N5%s"Jæï{o~FJrÄ5cÕõEÈÅš¸c/ÆWï–ÊêßBÙ!Œûe
$âÞùÜuÖº×<ࣲµã5YI‹°+x^/×ë_˜¨~U$æ«;=ÍË¿/F‹ÛPNÈR‡O½'Aú²÷$dHíIXŠ‰D¤w`CøPµw
¢ac£¥¨x6*§ÕôÉ[½_ÿÒ(“™K -6$HÙ‹ %AÊ®÷Ô˜+ŒgNûSÓŒ¹;Cm{(7̱`zýº|[.ÊÙEÙ9øðûŽ·Ø€o7‚–Ý‹ðÇQ™ÚñšÜ§´eNØZ&ÇÛdjž¡·8¬×-W×ÓrûTç+|@J³÷,dHíYX2Š“D/¤÷¦iJ3ë
\âO@í4/GË‹wP”o*TŒû9í*ÎlT!… -–KuŸ^IÅA¡BzgÑ„”Ì¥[XÖ¸ÈêxÈíl9úë¨/½Þ¿(ÊlP! -–Š% -é½Epf¥pÑ€ò¬¬êÐlÜV¡xÈûÍÍèªüF5‰S#1KÙ CŠ¬Å@"ŠÒ;Ô•Â3[𶮈xÝþ´¾BJ QC;»5HT Ù¨ C -,—ê>‹–ŠƒB…ô‡î-3Æ«–}]ùHPb*sAÁ†(R ¤â @¡½· 8f9Í¢”}]Ùe -.Åc‘vó‡K:ñiRœMOkGÁƒTÝ'œAPèP®¡™²¾`곡sZ‹‡@J'"ËlF! ÖŠ¢$… é8á’)eÛʤïäd<»˜¬.Ë&†YÏïêvO«Q†gãƒ)|°„ªûgxSqPøÞŸ‚3ÅM¤Ç|.zîd¾ôIýO¼b2™
IkG1‚t¢Ù
‚"„rÝ -`R´“''0“ùÕUµ‚,Q›‚;ãõ]Çq¾õäúÄ5«IpþíÀŒ¼¹@OQ·ØŽ`‡™x×Õ¾ð,ù›¶Õ¿œ3߬ÔþÿnòÚÞ‹VfœëZz«‚C.ëÑK«îgÐ?íyþµ,g—peÐÆU$?qÎËÅ͸:–]ýÖ—4¡‰UìkŸ(ÿDãæ–endstream +xÚíÛrÛF†ïõ¬Ú±j9‹9Ï\*²œMbËZSNÕn’F‚eVxP(ÒŽöéw@ MrÐÒx}’ĤʄH6»Ùÿ‡é` +V‹"%E +éHÑœIÕÎ6˜Ù·@®²9@†XŠƒD¤wà@†ƒë¶¸Ø†ƒ‰äåmrôÐÊíKJLb6 È‹$L7 ‰8(@Hï +,…A" +Ò;`PH&š‚ð¢jïƒÜåàqc +–D,¤w€ErVÈBµ°4]ÉÑjFŠñ2°ò¾ÄKmBK¢Õ¾ÙBÒ˜2¤Á2Qˆ$â !½ÇRÃóÞY`„×¥æì§ãæh÷ߪ§ª_]/n¯—ó?Æa»yöfu}=_„*cÕÓ§“Hj61È"‹&\71‰8(bHï0¨&<§:œC:«g7õ¿®Æ7ãeY÷tx±ç×+Kål‚!EV‘"(EéÔ䪧K^ÆPÅPE‘ãÉw«ñä2v0¯®ËÙpø¢9Ím\N|trW¢_—Í«óYýøb<[ý>Tª¯Ó†Æ/™+!6$$ÜH¢ð¦â $¤½·:Á|!-–P|„„Ãã£zÃE±)àp>-ÆañR|Õá<~×l%‘!¥$Î¥ì^ÀŸŠƒR’ôÞ*iæâÉïµòþBço—ÿ¾¬VY¹‡ÜäA²%ní(…QŽ)wƒ ô¥\7ÕZiÇœ*d«n3ØÔö»NŸÕ[¾~ø0^¾«·ªN°îzý~ÌY6È‚k"»WÖ§â p ½·»»2̨ágjoâ +Œ0âŽß”×MXº+³Qæ‹^ø†Ùú!CJ?œAJ¿D”~¤÷V?©˜µò‰/×·êò=fwŸZÅæ{f‹ØÚQ¢,RîA)H¹n‚Y¥ñ7SA¨¼\?Ìq‘-12¤4Ɖ¦DNÄA©Lz‡ºÞn¹4ÈÍ9žÄ•óêÐí|> ;£)Ü~z|t ½Ùè C +,ŸÝè$â Ð!½7èHï˜qÜ·è¨77»ÔÖ€õ{jîAMÌl.5Ø fC9‚šT5´w Æf4nôuMÍ𺼿½ÝE§œ]áZ˜rÇ/æÓi<=Y¿O~)Ê>q#3“:2¤TÇ™—ÝÊ¥â T'½ƒêV1Ã*3¦VýõjÖ^~?MËËíN¯óº©íE*ÁÏ7/1¤![bdHIŒÓLIœˆƒ’˜ôghÂ[™v&ÖQŸ¡ùáì½iA8S¯#Kô^ð} ‚g„)€°†²û’¹T@¤w#tu<À'à„ÍÑåe½¯ß4ÓÀóù«ëæÔm…ÿ`EºžÎû—‰Ä¼dkŽ)ÍqÞ)ÍqPš“ÞAsé˜íôCÄ3ÿۚǵȡFÐœŽÿ}Ò¼çù|jGµí¿y™!Ù2#CJfœjJæD”Ì;Þ9öÞÜFJrÄ5cÕõEÈÅ94q;Ç^Œ¯Þ-?”Õ¿[+„:³B÷Ë2HĽó¹ë¬u¯yÀGekÇk²’aWð¼^.®×w˜¨î*óÕžæåߣÅm(§d©Ã§Þ“ }Ù{2¤ö$,ÅD"Š
Ò;°!|¨‹Ú»†
Ñ°±ÑGRT<•ÓjúäÞ¯i”ŒÉÌ%¤lˆE’Šƒ e×{jÌÆ3§}©iÆÜ¡¶=”æX0½~]¾-åì¢ìÎ|ø}Ç[l@Œ·AËîÅøã¨LíxMîSÚ2'l-“‰ãm25ÏÇÐ[œLÖë–«ëi¹}ªó•N> ¥Ù{2¤ö,,ÅI"ŠÒ{Ó´ +¥™õ†.ñP;MëËÑòâå› +cÅ~N»… +¤3dH¡‚åRݧWRqP¨ÞãY4!%³Fé–5.²:r;[Žþê¤×ûãá÷R™
+2¤@ÁRQ $â @!½· ά"Pž•UšÛ*y¿¹]•ßÈ¢æ/qj$f)›dH1€U HÄA1@z‡ºRxfÞÖ¯ÛŸÖWH 4jhg÷£‰ +¤3dH¡‚åRÝgÑRqP¨ÞãpÁ½eÆxÕ²¯+ JLe.(Ø +$ ê>ᜂB‡r
äÍ”õmSŸ
{´ÐZ<R:\f3‚)H°V%‰8(LHïÀ —L)ÛV&}''ãÙÅduY¦01Ìz~W·ã¸xZ2¤8dHáƒ%TÝ·áMÅAáCz| +Î7‘ó¹è¹{ùÒ'õ?ñŠ
Èd6$ÅÒ‰Bd7ŠÊuˆóL:%# öN@ª;6'ßP¼“w-RºýA_Hy.IÈŽ J”‚ ‰t
¿:d™Ô¢jÜç éîaFo +©Íþy¢ÖŽúu"$AL"ê·‰(×ñ·˜íäÉß Ìd~uU KÔ¦àÎx}×qœoý†\Ÿ¸f5 Îÿy0#\ Š§¨ŸØŽ`‡™ø««áYòž¶Õ¿œ3߬Ôþÿ~äµý-Z˜q®ké9¬ +=º¬GS´.¾]=ÜÉëä¯e9»„Ë‚6.!ù¹Ï9?,7ãê@vu£¯01‡ã1±„}í%á”üåÜendstream endobj 1077 0 obj << /Type /Page @@ -3401,17 +3400,23 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1142 0 obj << -/Length 3433 +/Length 3425 /Filter /FlateDecode >> stream -xÚí[SGÇßùzØxPoß/o;E*± Æ»[Nò c˜Šˆ$ìx?ýöh¦»Ï@ϽkTªbŒçèÿO}9}QÿYE¨prdœ$Š25š^îÑѹÿ·ï÷X÷Ì8<4†O½8ÝûûkaGŽ8Íõèô#x-K¨µltzöËþË·oN_½9}wðÛé{¯Nã‹BÇŒŠæÿØûå7::óþØ£D8«FŸý_(aÎñÑåžT‚()DøÍlïÝÞÏñÁ¿nLsoD K”å&óN8ï„qN¬3>:åˆ\lÞŠ&܇ڼÿ8F¬¥Òûh›-ÎÏëùy÷|YaˆÐNwϽ[OÖÕe5_Œ¹¢û‡Õ¯”òy½®óö7“ùYûÃûÕä¼:;föÉÁXQúmþÎý/v7„VÜÍ)K¹¼¥Ìò|Ôþpµ -vchx[«Û¯ß$Wê[qísq`¤ Þ™’ÄãFF¢5“€ÂüG‡îŸ^Th4%”IÓÁ0½˜ÌçÕ,%R©ðÜñÅr²ò,øˆ¾)÷ÀI<!½Åð -Íådµ®²]S3’CÓ©Ø™‡Þ}m€ºó“ì0|€€=·ƒÀàÁ\'vŒ"Vh–à‘÷Ï]æâî1°2IÈe1%ÀÃj¥Ä0'™80PPï‰-ˆÕŠ'RÔVRWØYR´‡“™-ÍŒeìi53!ÇÅCŒ ¨!FP&Œ Ô{"Hy8œu?}_Ý¡1òQ·5!—Ť -æ:qâ;¡i¯.ÁtÊ‹ëz¶×ÝBù -LWêùÇÅòr’¶Füg1oŠàþå–à˜…b}!&0̲®=åâÀ$F½'¥%º^™œÆ¯.¯Ö]ÉúC«¨~%¨oÒ„$# -F&Ô}ƒZâÓŒîB•Ã/óÉe8øöþê,nMÙì@ª›ŽG*µ³º‡Äë1ÝaâEæ7™@0ÝQ÷Îÿh}kÁœ!”ÆËd}SÀh¯-x]Ïšµ8å}'òDZQ†RÈ !YOfF‡-äA ÃÝÇÙk¾¨†»PÆÍ –qÚ»6°->°>©¦‹öXÔêÆ´æ_U7ÓY/ÂD'ŒŒ/š3øƈT¶
‚„Œ1ÁaÆQÁ3`‚£îcoÂŒ ´Yû‚o$Ûµµ‚=ÅÑELX1Àã -‚ò ãuŸxЬù6+€ïpØœ©®þ\_‡
ÕŸWáú¥XÈíÂÉfB£w¶èÒTA²Ã +xÚíKSIÇï| +ö +€GÜž?®«å×qµ\.–«@Ê'è.~HóñGKÍ '!“Åœ +0ÄHZ)3LJ&ŒÔ{œ}káɨûéP÷{¹X̪I'êqG‡÷àvrtGBºŠa +C%† +ê=¡B%1œÃå½¢r‡é
5¾õI+FbH@QÜð™n¹80$Pï î81Ú¤’ ß~Á§ºúœ;GúdÔ–VC ñÖч`Šé.… "0õätÃ¥õ\L¸÷“¥Ä8pû×÷ÓövE;½¿3GtÅ´C1h l4™80hPï ß…Xp3:ß^³möW䙡Æm;EYû„×öB¶‹QJvI@K7¼ö“ ãs0RšX¥R%ŽÛ{áh{ÛcÛKÝŒbZï +Lg7††9bn¾“jF‡WŒr`Ð îãz!—Ò!AmΆsQnÜŸøõªÚ܃&žêžÀABB +‹ †!P"”L !¨ûDˆàÄ1! !Ýa)¯f“ÍÌ䌔¿zóhÐ3$´˜`ˆñctx=(Æê>ñÂ)q’+È‹¸Ù¢Äc–nH¢p!sÅ` +F&Ô}ƒZâÓŒî@•Ã¯óÉe¸ñíÃÕYÜš²ÙT7Tjgu‰)ÖbºÃÄ3ŠÌo2`º£îi}kÁœ!”ÆÃd}SÀh¯-xSÏšµ8å}'òDZQ†RÈ !YOfƆopÉ‚@†»³Ö<¨†»PÆÍ –qÚ»6°->Ýa}RMímQ«Óš]TÝLg½02¾hîÁ7F< ²m$d¤Xp`ˆ 3Ž +ž u{f¡ÍÚ|#¹Ø®ì)Ž.bŠy +.b +I&Ô}®R?@B'Hâôå.'¼ü#³jç_ .hnÒ›¬Ç«ú|ÞÞ¨§{îžbÖ‹¡†TPUƆ÷2åÁ BÝG¨¬#\s˜âLýíøä軣·¹§S"X<5¨×NŒÝëÏÚÙÉòYJ°C`ja¬d¢@PA}§‡QÂs€QBÊÑÛW?|8|ÛZÕb.v®Ÿ +™,eØ!Œ@0F2Q`ÏÄ|§ð=œDd "~•ÛY¢‰•n endobj 1141 0 obj << /Type /Page @@ -3543,7 +3548,7 @@ endobj 1161 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 555.0713 539.579 564.0773] +/Rect [527.6238 554.9716 539.579 563.9279] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.16.8) >> >> endobj @@ -3571,14 +3576,14 @@ endobj 1165 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 507.1877 539.579 516.0443] +/Rect [527.6238 507.0881 539.579 516.0443] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.16.12) >> >> endobj 1166 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 495.2168 539.579 504.0735] +/Rect [527.6238 495.1172 539.579 504.0735] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.16.13) >> >> endobj @@ -3592,7 +3597,7 @@ endobj 1168 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 471.1754 539.579 480.1317] +/Rect [527.6238 471.1754 539.579 480.2811] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.16.15) >> >> endobj @@ -3634,14 +3639,14 @@ endobj 1174 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 399.3501 539.579 408.3064] +/Rect [527.6238 399.3501 539.579 408.4558] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.2.16.21) >> >> endobj 1175 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 387.3792 539.579 396.485] +/Rect [527.6238 387.3792 539.579 396.3355] /Subtype /Link /A << /S /GoTo /D (subsection.6.2.17) >> >> endobj @@ -3655,42 +3660,42 @@ endobj 1177 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 363.4374 539.579 372.3937] +/Rect [527.6238 363.4374 539.579 372.5432] /Subtype /Link /A << /S /GoTo /D (subsection.6.2.19) >> >> endobj 1178 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 351.4666 539.579 360.4228] +/Rect [527.6238 351.4666 539.579 360.5723] /Subtype /Link /A << /S /GoTo /D (subsection.6.2.20) >> >> endobj 1179 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 339.4957 539.579 348.6014] +/Rect [527.6238 339.4957 539.579 348.452] /Subtype /Link /A << /S /GoTo /D (subsection.6.2.21) >> >> endobj 1180 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 327.5248 539.579 336.6305] +/Rect [527.6238 327.5248 539.579 336.4811] /Subtype /Link /A << /S /GoTo /D (subsection.6.2.22) >> >> endobj 1181 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 315.5539 539.579 324.6596] +/Rect [527.6238 315.5539 539.579 324.5102] /Subtype /Link /A << /S /GoTo /D (subsection.6.2.23) >> >> endobj 1182 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 303.583 539.579 312.6888] +/Rect [527.6238 303.583 539.579 312.5393] /Subtype /Link /A << /S /GoTo /D (subsection.6.2.24) >> >> endobj @@ -3774,7 +3779,7 @@ endobj 1194 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [522.6425 160.0321 539.579 169.0381] +/Rect [522.6425 159.9324 539.579 169.0381] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.3.1.2) >> >> endobj @@ -3802,28 +3807,28 @@ endobj 1198 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [522.6425 112.1485 539.579 121.1546] +/Rect [522.6425 112.0489 539.579 121.1546] /Subtype /Link /A << /S /GoTo /D (subsection.6.3.5) >> >> endobj 1199 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [522.6425 100.1776 539.579 109.1837] +/Rect [522.6425 100.078 539.579 109.1837] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.3.5.1) >> >> endobj 1200 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [522.6425 88.2068 539.579 97.2128] +/Rect [522.6425 88.1071 539.579 97.2128] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.3.5.2) >> >> endobj 1201 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [522.6425 76.2359 539.579 85.242] +/Rect [522.6425 76.1362 539.579 85.242] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.3.5.3) >> >> endobj @@ -3842,24 +3847,26 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1205 0 obj << -/Length 3483 +/Length 3473 /Filter /FlateDecode >> stream -xÚímsã¶ÇßûSèEgjÏT8â™l_t|~¸8MÔvÚi“¼ %ZæœD:"uÎ}û‚@®Lpc^rÉ]¬ÜL,Û\îrÿ?€à„é$2ÿèD*¢–Lt"ˆŒ¨œÌVÑda~÷怺c¦þ )<êõÍÁ«sO’(¦&7w!%ar{²˜DqL'7óïO¾¾¼9»¼¹>úáæ˃³›ö¬Ð3xsʾû!šÌM -ã -‚òãuïï>”ki îîó“rS˜Áˆù.Ž’}Ï&Å's4)À#ŠEi<LJ ŒÔ}Ûs¨$!:Ñ€•¶ç¸LW¾ëÈÖïü˜u˜!ÁâÏAï!¡ÛLŒ"Bïd:"4î¾:Ö$æš9¡ÿW™8ɘEZ̲ŸS;ÑâSvPQÉ£†˜¢0¥”&ÊÁEÝwŠjIbó(åNÑ«¬*—Ïh²±bŸ_‡=(·ÏÇh¹!&7Ì7*w LnÔ}'·yœÍOÜÂÉ}]ÎÞfµ÷âÕ×?§ºŠÄAnŸÑrCLn˜o3|–;&7꾓[R’˜@€ÜÒÉ}R®Œ¶·ù2¯ß[qóúÞV€D´s6MD)WÚV¡úu"sO´;&îÑÂ?µ¡á >e£‰ -3ô䊿œÞq«6óc±‚†V;ÊbX…A°ÂÝ{¬bF¢XtX1‡Õ·U^,ìm4<m©•ðúÞ±ìÓ"¢£¶O;ß³fÐbTÑ/)ŸõÑHC)¨*ŠT )Ô½¿·JJµgŠ»¡Úéû"]å3ËÔ·ó´ÎžŽnµTûÑX˜ŸÓÑÄ -îs2Zp`ˆ sŽ -ußöÔßxâg®×¸(fV²fLßêš'U[5¹O‹ÅÎXÏÏæ~=ÓåfuÛL;'ŸQW0OÓh€!”… ê¾… ŠšG:|ýç>ƒíöäIË~ã'¾È–¦Ù -±¿‘<‹%ŸíÑ,CŒ%¨&ÊR Œ¥žûаLhÓ‹$®Dwl:sƯ²e–V£Ë²Î†ÐùsÇdÐ -sÕ!Ã-2_×÷þ=øÓr¶Çñm»&Ñ.½ô¥ô>W£A -LÌ·×_QIÝê/þí¨ó¢"³²¸ƒûŸªXï;—ÔÑ°tv,@2–~,˜o‹HH”´¬(ËÊuºzð;r?<,ó™Û:i*…Ú£ñ
›ÂÑd´f<(½0,Çí¾k”kBݶñ[0ì;Õæñ¸Ú²á6èO-#UÞñRÕ›[ûÉM-7µÛ¬M -ý¹Ü%\"FËÛÙaú‚4S1<áˆSóÝIÌ$¡R‰ÙŽÄÓ´z_ÌFÅá_v^’vS¢ÍÉîÝ‹Îå¦Z¾oV±_(Ž»„Ñâtv˜8 A¨8ý(0q0ß8”ƒŽÙ¾˜Ú‰ãË
f7,Q[¹ª×iQ¥³º}“n¶Ì·%ÿ}^oó8ZºÎ“¤ -6,]? -L:Ìw']džïݨV:±+Ý"Íd‹¬n– -äÅ]ÙÌßÙ¹»5Næˆ"]eý#êvBpVÎܒ˯™»²Ñšuv˜f o¨fý(0Í0ßfqB˜”@2¹+Ùf»ûÎpC›Ãz6`«ßΚ϶÷[¬ÓÕÑTÛÚ_Y!wcêÌ}@Ž0yú! ê`Ž»?ë ‹c Žrâ•Ké—f^®Ò¼xU´{¶W`ÏöÙ}6{ë¿Éߎ֫jwÉáÕù‰ý "-Æï±4¸…¾½ŒÑè·fØöù]Š¨ž¤î‡€m8vOJÞMŸØUæjwšd»Vl{¯*fÍZ(Éý;-ûön“9~×^o†îÙÛ -E²c/„ퟛ²„Ä!ž›ÿSJi7øe¬û#jBíùØ®a”¤9U»Ëó“]üB™íß›gó'3yO7pk«$ówÃ+ĬO‡ÿXSêendstream +xÚímsÛÆÇßëSðEg*Í”gÜ3оèÈzp”¦J*)í´I^@$DaL2Úñ·ïw,…ÃFpbÇŽÏD”„Å.öÿ»Ãaïp¢“Èü£©ˆJX2щ 2¢r2[D“…ùݫꎙúƒ¦ð¨—7/Îy<IH¢˜šÜÜM„”„ÉíÉbÅ1ÜÌ8<ùöòæìòæú觛¯ÎnÚ³BÏ4âÍ)ßüðS4™› +càRš_J:Ñ2!Š3¾½E8QGSÊ¢èðåÅåéÑ”ÉèðŸiUgkûù<_föÓÙÏuVTyYüõhÊitXßgÍõ/x¡Z¥0±5þôêìòìêø(a‡7gîp”â$Š¸tGŸæë#f³:k¼ªH’£©4Á}Ô/T‰Ñ<1jSÕKûz1±®€Ýö…蟿¹vJU'¯l(ŒÔ½ç@h¢”ì8ÐŽƒãù<¯Ìéò1çåz•Ö•Fa~í‘$‘ŸÀÑt +1EaJ)£ÃŠÁEÝwŠjIbó(åNÑ«¬*—Oh²±b_^‡=(·ÏÇh¹!&7Ì7*w LnÔ}'·yœÍOÜÂÉ}]Î^gµ÷âÅ·¿¤ºŠÄAnŸÑrCLn˜oÊØ°Ü@0¹Q÷Ü’’Ää–Nî“rõ`´½Í—yýÞŠû.¯ïmHD;gÓD$‘r% mª_'2ñD»câ-üsáS6š`ˆ%A‰‚Ñs‹~¾î©˜ù™dÖ{SOŠvꊾpÍ6ë‹“²¨òy¶N›šS5œ8jÀÓú÷Ïk&‡Î‡%ªç6T]QT“$–.QÛálS]9žÍ²ªí‹z[
-]îÓSn'ö5–ñíÎ'|t»†X»ƒ‚¢ÁpBÝ·8EŠD4ö8±@]ž1’PA]zr¿.Ë:ÐÏrA"ó@fJ‹y¨ÂŸ.µ/ð_gõ&Ÿ‡Îƒªï²ŸAqð·&Ök:šX`ˆ™1·ôab`Ä¢î]ùGš¯‘¤-°mùç&8©dn>‘ˆ¹ci6¯y^ÔÌvV¼µÓIe±Ê +3ôäŠ?ŸÞq«6óc±‚†V;ÊbX…A°ÂÝ{¬bF¢XtX1‡Õ÷U^,ìm4<m©•ðúÞ±ìÓ"¢£¶O;ß³fÐbTÑÏ)ŸõÑHC)¨*ŠT )Ô½¿·JJµgŠ»¡Úéû"]å3ËÔ÷ó´ÎnµTûÑX˜ŸÓÑÄ +O "Ô½¿³3AX¤Z†ÚãEýg÷À\”®¼ø®\¿6ëoö»ûòý0KlöËQÄ»àÈþ¤Üø3ܧíiß¹1äâï¦G§ñï@Á à>'£†˜à0ç¨à@0ÁQ÷m¯AÍð'^qæz‹bf%kÆôí ®yRµU“û´XìŒõüì`î×3]nV·Í´ƒqòuƒø4† +å#Æ êÞ
»„„+ÚbÒ€’˜vsáç&æ_aɾÏïhx€!Ô…'êÞÃ#á‰èàažÓò]±,S3b“Jí¡ù`v|zG³1v |(;@0vP÷žÁtÇ·ììΟç?7·(E垟àøÜŽbà@íPp`à î=84&BE8‚s™¹2Ày–Öî©‹Û£3ŸÝÑè +‚„º÷ éˆÈ„u Ťs§zmúoóv¹iª¡|ß}0E>Ñ£)†EPH”¢@ E=÷¡)11SÖûK3¾á¼©”n+ë<sÑWyU—ë÷»=T;ÕrzyýhNÆ/é'Ô»|jY eÕK¡œ'œK`Ïm¨¬Ê¹É¤pź—ÛjOš‡V[$ÓR?÷EŸ¤‘zF7R`ˆ5R¨2ÊV Œ±žû`#¥‚(íjz'Má>>|•ÙÚOp¶-ð*»ËÖYû¢ÜEq·ÝÀ¡Aq0uþäOnŽÀ +¢ÜÁøAÝ{~X͵ç‡Y~^æ·Ë¼\¬Ó‡û÷4ííîz³XdUÍ}#Lçy±°<qÆžmæÆr
.v”Á¸‚p»w£m¦c¢uÔb±½Ï'ÔHýfc”4gÚ¬sËŠô/Wç'•ï_ž>e£y +O? +ŒÌ·C‡&Š$2nÑaf7‹|™º•n\ì‰MŒÏìXb€BÔ
#&BêÛ’$íÉ®SRfè_ÕéÒ#ó‡Ý³á“ã2<šœÎ#èGÅð|K +ŒÌ·'Gs1Ñ’#,9ÿ(ÊwnEõiv—ÍêêÅUVÕë|f7H™&Ÿí8æãÿ}žFëßÙaúPýûQ`úc¾½þŠ’HêViõo7C™•ÅÜ +UÅzßY °¸¤Ž†¥³Ã`’¡°ô£À`Á|{XDB¢¤eEYV®ÓՃߜûøáa™ÏÜ.JS)ÔGhØŽ&£5ÃÀèäA¹è…€a8n·`£\êvß‚a_¯6ÇÕ–
·Wj©òŽ—ªÞÜÚOn +ìƸ©Ý¾mRè/å.á1ZÞÎÓ¤™Šá ß@˜Â˜ïNb& • +HÌv$ž¦Õûb6Zh-ÿ²ó¾´›mNvïÞy.7Õò}³bˆýJqÜ%Œ§³ÃÄ BÅéG‰ƒùîÄ¡œÐtÌöÕN_n0C¸a‰ÚÊU½N‹*ÕíKu³e¾Ý»(‰øïóz›¿ÀÑÒuv˜t }TˆaéúQ`Òa¾;é"ó|ï^FµÒ‰]éiî$[du³T /îÊfþÎÎÝí¬q2Gé*ëQ·‚³rnä–\~|ÍÜ•Ö¬³Ã4yC5ëGi†ùn5‹Â¤’É]É6Ûx†ÚîÚ³»öøvÖ|~°½ßb®Ž¦ÚÎÐþÆ +¹ë+Pg†èr„ÉÓQsÜý…MXq”§¨\Jo½4ór•æÅ‹¢Ý¾½Û·Ïî³ÙkÿM^øv´^U»K¯ÎOìi1~»¥ÁÝôíeŒÞK¿5ÃvÒïRDÅð$u?l}ı{zP’ðnúÄ®2W»Ó$ÛµbÛ{U1kÖBéHîßiØÂw›Ìñøz3tûÞV(*-{!ôøhÿrØ”%$ñÜüŸR’H»WÀ¯ûCeÝßSšðxhûÇv
£$Í©Ú
Ÿá~•Ìöïͳù£i¼Ç›Ø[H´<Ìß/³Aþmô +endstream endobj 1204 0 obj << /Type /Page @@ -3886,14 +3893,14 @@ endobj 1209 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 734.6423 511.2325 743.6484] +/Rect [494.296 734.5426 511.2325 743.6484] /Subtype /Link /A << /S /GoTo /D (section.6.4) >> >> endobj 1210 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 722.6753 511.2325 731.6814] +/Rect [494.296 722.5756 511.2325 731.6814] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.4.0.1) >> >> endobj @@ -3914,21 +3921,21 @@ endobj 1213 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 686.6746 511.2325 695.7804] +/Rect [494.296 686.7743 511.2325 695.7804] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.4.1.2) >> >> endobj 1214 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 674.7076 511.2325 683.8133] +/Rect [494.296 674.8073 511.2325 683.8133] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.4.1.3) >> >> endobj 1215 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 662.7406 511.2325 671.8463] +/Rect [494.296 662.8402 511.2325 671.8463] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.4.1.4) >> >> endobj @@ -3956,63 +3963,63 @@ endobj 1222 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 604.9622 511.2325 613.9683] +/Rect [494.296 604.8626 511.2325 613.9683] /Subtype /Link /A << /S /GoTo /D (section.7.2) >> >> endobj 1223 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 592.9952 511.2325 602.0013] +/Rect [494.296 592.8956 511.2325 602.0013] /Subtype /Link /A << /S /GoTo /D (subsection.7.2.1) >> >> endobj 1224 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 581.0282 511.2325 590.0343] +/Rect [494.296 580.9285 511.2325 590.0343] /Subtype /Link /A << /S /GoTo /D (subsection.7.2.2) >> >> endobj 1225 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 569.0612 511.2325 578.0673] +/Rect [494.296 568.9615 511.2325 578.0673] /Subtype /Link /A << /S /GoTo /D (section.7.3) >> >> endobj 1226 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 547.1091 511.2325 555.8213] +/Rect [494.296 546.9647 511.2325 555.8213] /Subtype /Link /A << /S /GoTo /D (chapter.8) >> >> endobj 1227 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 535.1172 511.2325 544.1233] +/Rect [494.296 535.0175 511.2325 544.1233] /Subtype /Link /A << /S /GoTo /D (section.8.1) >> >> endobj 1228 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 523.1502 511.2325 532.1563] +/Rect [494.296 523.0505 511.2325 532.1563] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.1) >> >> endobj 1229 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 511.1832 511.2325 520.1893] +/Rect [494.296 511.0835 511.2325 520.1893] /Subtype /Link /A << /S /GoTo /D (section.8.2) >> >> endobj 1230 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 499.2162 511.2325 508.2223] +/Rect [494.296 499.1165 511.2325 508.2223] /Subtype /Link /A << /S /GoTo /D (section.8.3) >> >> endobj @@ -4145,70 +4152,70 @@ endobj 1249 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 231.6835 511.2325 240.5402] +/Rect [494.296 231.828 511.2325 240.5402] /Subtype /Link /A << /S /GoTo /D (appendix.D) >> >> endobj 1250 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 219.7364 511.2325 228.8422] +/Rect [494.296 219.8361 511.2325 228.8422] /Subtype /Link /A << /S /GoTo /D (section.D.1) >> >> endobj 1251 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 207.7694 511.2325 216.8751] +/Rect [494.296 207.8691 511.2325 216.8751] /Subtype /Link /A << /S /GoTo /D (subsection.D.1.1) >> >> endobj 1252 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 195.8024 511.2325 204.9081] +/Rect [494.296 195.9021 511.2325 204.9081] /Subtype /Link /A << /S /GoTo /D (subsection.D.1.2) >> >> endobj 1253 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 183.8354 511.2325 192.9411] +/Rect [494.296 183.935 511.2325 192.9411] /Subtype /Link /A << /S /GoTo /D (subsection.D.1.3) >> >> endobj 1254 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 171.8684 511.2325 180.9741] +/Rect [494.296 171.9681 511.2325 180.9741] /Subtype /Link /A << /S /GoTo /D (subsection.D.1.4) >> >> endobj 1255 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 159.9014 511.2325 169.0071] +/Rect [494.296 160.001 511.2325 169.0071] /Subtype /Link /A << /S /GoTo /D (subsection.D.1.5) >> >> endobj 1256 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 147.9344 511.2325 157.0401] +/Rect [494.296 148.034 511.2325 157.0401] /Subtype /Link /A << /S /GoTo /D (subsection.D.1.6) >> >> endobj 1257 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 136.067 511.2325 145.0731] +/Rect [494.296 135.9674 511.2325 145.0731] /Subtype /Link /A << /S /GoTo /D (subsubsection.D.1.6.1) >> >> endobj 1258 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 124.1 511.2325 133.1061] +/Rect [494.296 124.0004 511.2325 133.1061] /Subtype /Link /A << /S /GoTo /D (subsubsection.D.1.6.2) >> >> endobj @@ -4243,7 +4250,7 @@ endobj 1263 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [494.296 64.265 511.2325 73.2711] +/Rect [494.296 64.1653 511.2325 73.2711] /Subtype /Link /A << /S /GoTo /D (subsection.D.1.7) >> >> endobj @@ -4255,25 +4262,21 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1266 0 obj << -/Length 1503 +/Length 1504 /Filter /FlateDecode >> stream -xÚíÛK“ÚF -þAá4ãÒ«ÂzÅ4]ÌW#^Ü„÷~A»M7*ñV/§£¯¤+<óF˜bzöåwŠéâÝø‡_ßL¯ÞLßN>L_®¦i§81pÙìñŸÑ»¼X„ü¯GœIïtñoxÂx/ŠÕHiÉ´’2¾r7z;ú=í½{͈–Ži'læHäŽD{f¤‡#¹š”Îùñ/³ú~v7)…æãÍì¦Ú}ydZÈäìctÈq|s{Sü‹ŠÛ—8༨óý6UÒgÄ£Äû£Æâ,@i}xè°Ze™±öØÕ+“ÒK?^,oÂ/ÆlRj·?‡?Êû‹í¬SWìÇYs¿¦ž·û|ÿ_U–)„ÒF¦OÚ¤fV€oµ‰£¶ÛõnÆÅܾ?·ØÞÜP Å
74tsËBq#Ó'n¡kŒk¹ÉöäVïvÕ¼œßVó‹]8ý9¨zª£8Ò½¡@Êî$hÑí(SåˆLŸ0`ZGêÔÑú¡Ú†+†0´Ò‚ž -)uoH(‚„[ ZvCÊBA"ÓGH&<pÚ¨’>´Ø]o'àÆëÕÇê¿I)4}+£4Ð}á@‚ÑI#Aw_Få -!Ñé#g™çÐN`˜9aðDGw³¿ª0§qÜvz؉£ÛÛ -¤ìàî¶Ýv2…PvÈôÉŽÕÌ+'|öK;7UVéá’èBšâx÷Ö„)M¸Ÿ`x·¦L!”&2}Òd$óžÇ ;Ñt8UëáÚÈhD]HTóÞ¢P % -÷Œê•)„E¦O¢´`\ê8gó'¢vÕ~¿\Uà ꒜â€÷æ„)N¸¡`ˆK¥L!'2}â¤8ãŽÇ©ðã4-zZÞÔÿ¯ë(9Hzª¤8Ö½%¡@Jî%âÂ)S%‰LŸ$ Ç@è8w8‘ôPm—×aÖ&œV*/«*Ž{oU(R…û -¶{i)W¥ŠLŸTa`yœÊ8ªªg«jq\¢œ¯ëëæúI„¾™PäÞ„P E7l÷¢R®Š™>⊠Ðé+<yF¨ýˆÓÃYèÛ ÅAîMR„pÁÝ™B(BdúHH{Á„öq -š”ÎëỸçÿ..5¡/1H;i2Øî˧\!1:}"æ8“\Åyh|–ú{}¿gw›í²Þ‡×0õç¸7HñÁ
׽Д+„âC¦O|ŒcRù43-ŸÝýf1ÛWÍíj8I=ã`j@o^(â…LòÊBñ"Ó'^Ú0éUšÜÙ#¯m½˜‡Gà†[R¾û§aìHoo(ò†;®{Y*WåLŸ¼)Å0½¹&ý‹W -o+ó šÍF
Ev˜¶<Ù«æ&Ûn9½¨ÃØ©ÞQ åK -¡’é“C)˜r*Íýãy¯l°¾
” ‡sÜeQÅaï -R¨p[Áwßv—+„BE¦O¨gZ¸t—g\s_Ô»GTÎØAÓ…4Åñî Ršp?Áw¯æ -¡4‘é“&¶·ÒFMíºûl»™5“ÇI)Ìp%ö¬Ÿ€±½y¡@Šn0ø\!/2}ä¦Ì€‹KÑ.À‡sÔvV/Ö«æãϾžVú¾°p 뤵¬\!,:}‚å3FÆ)¥h—å—»yy»šÍË÷œ‹O÷›àË·Æ\JTóÞ¢P % -÷|÷¤1W%ŠLŸDYÁ,wqÒ(â*ý®šËÛÙUF§ªg‡¾7,HÁÂoºae -9ƒ•~4|X&¬¹ß -†ÿÀ¼>¾ù´_i>þ–TY&]×áÊð‰ì½±…Ô¬ÙWs°áhœ¿üùÍÇŸ_†í™-Çgï¹æWŸöU½h¾Šj^y{¿Ù¬·ûã“?' +xÚíÛÍrÛ6 +¡‘é“# +¡4‘é“&#™÷<Nè܉¦ÃQ¨zX×FFà êB¢â˜÷…)Q¸§`º/‘r…P¢ÈôI”ŒKçlþDÔ®Úï—«j8@]’SðÞœP Å 7q©”)„âD¦OœgÜñ8u~œ¦EOË›ú¿u} +¡$‘é“$áçn +¤TᾂUݪ2…PªÈôI–Ç©ˆ£ªz¶ªÇ[”óu}Ý\?‰Ð“ ÅAîMR„pÁvßÌB"Ó'B\1:=“g„ÚSœŽBO'¹7!HÂMK\%e +¡‘é#!íÚÇi(DhR:¯‡gq/ÿ,.5¡/1H;i2Øî˧\!1:}"æ8“\Åyh|”úk}¿gw›í²Þ‡¿3`êÏ'po>(⃮ûFS®Š™>ñ1ŽIåÓ<δ|v÷›Ål_5¯¨á õ‚'ÀÔ€Þ¼P Å7\÷›¹B(^dúÄK&½J“;{äµó°nx%廟
cGz{C”7Üqp®Û[¦Ê™>ySŠ`"z;¤õFáu…`T“¢Y©¡ÈsÁÚ'[5мÄ`Û5£u;ÕÛ! +¤b à‰Ój¦Ê!™>9”‚)§ÒÜÑ?÷ÊÛái 9ã.‹*{oT(B…Û +¾ûžV® +™>¡œiáÒ[žñžû¢Þ=¢rÆš.¤)ŽwoM(Ò„û ¾û`®J™>iâa}+mÔÔÞwŸm7³fò8)…®Ä^ôЛ +¤xáƒï¾õ•+„âE¦¼ÂÔ€pqb)ÚðáµÕ‹õª9ý™Á×KÀJCß$`´|÷%~®>ÁrŠ#ã”R´·å—»yy»šÍËœ‹/÷›à˯Æ\JTóÞ¢P % +÷”•)„E¦O¢¬`–»8iñ.ý®šËÛÙî¶yUF‡ª‡¾7,HÁÂß}o>WȬô¥ÉàÃ2aµÈ}W0üæõñÃç}Kóñ»¤Ê2éºvW†3²÷ÆR³f[ÍÎ>„¡ã×?¿ûñøõË°~ó"a³ø‘k~õe_Õ‹æ9Tó—÷÷›Íz»?þòÇ endobj 1265 0 obj << /Type /Page @@ -4286,14 +4289,14 @@ endobj 1268 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [522.6425 758.4568 539.579 767.3134] +/Rect [522.6425 758.6012 539.579 767.3134] /Subtype /Link /A << /S /GoTo /D (appendix.E) >> >> endobj 1269 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [522.6425 746.5215 539.579 755.6272] +/Rect [522.6425 746.6211 539.579 755.6272] /Subtype /Link /A << /S /GoTo /D (section.E.1) >> >> endobj @@ -4384,7 +4387,7 @@ endobj 1282 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [522.6425 591.2039 539.579 600.21] +/Rect [522.6425 591.1043 539.579 600.21] /Subtype /Link /A << /S /GoTo /D (section.E.14) >> >> endobj @@ -4466,23 +4469,27 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1299 0 obj << -/Length 2229 +/Length 2227 /Filter /FlateDecode >> stream -xÚÝYKÛ8¾ûWø¨b-_É9&™Yd°È>ºgç03ÙRÛBlI£Gw¼¿~‹¬¢-Ùr:»i`‹Z$U$‹U_}U”ù’Á_š$fÒª¥¶*NO–›Ã‚-·ðîÏN2*‘q¢¤„ÎÌÛU"Mœ¡—«ñ"oúAð¥`qšŠdùðxÚ+Õ&¶RÙåCþKôn—5}ÑÞDÂ"~÷ÛÃ8MÅÚhî¦1Ø"‰µeÆOøPõm›¾¬+KÛT¤AZÃ\P×I?ì -XÚ¤nZÑVE½÷õ!++lÌ$sìúâ€í_YÂÞ¼‡w:ÚÔUWv}‡¯ëG|öaýîXõÙg¬i¬)6åãñB²‚ý.V)ª¾ìKÕQyÇ£ -›nœÑŠóØ&‰6 ÃHÁ"w)x”awWmÖÞqmvå&Ûãè!«*0³VÑõqoÚ;
{·¹[dèŠÇëy±/¶Y_V[Úgèwu[ö æG꧂dýáh‡¬¢•h+Fòžœˆû•‡f_À™÷ëJ€¢ý.sîÒI”mú!Ûï8~Èš[Á” âmC#?»‰yî-Qt]ÑÅ „‘xEó¬ÏP¬ìÂÊ%hPVήï!â–ÁîÖ¯U
Ž‚÷f|“HÚr=ô~‘dÎnÔm¾Î¼Vó\ÅR¥‚P¬X,R‰˜ç1€3Æ¢ûMݸ‚<ß×›ÁYn>„‰Sm'ÁÀ¢·Eû œêíi'¡ÁB8Àø9H˜‡·>¾§x€·'u(‘á#“@¤¢ÈbQW´"nÔã*ÌpRÃa]Ð<›Â[l5ga‚¢H$Ê{–[8Ÿw$ŒçÁ&¾× ߞʼ ÷`ùrƒÍ²…v0ë&bÌz¡® -Ò (L½^ŒéÉë¸sÙwhC%y¬“TOmØÁG‰ÐB -5 -(Á‹}ãy‰kàPÛòh]çÇiùÙ¡Qiˆœ““ñäD5. 0€ÆÄÀÅz²¦)ª¼tÙæðiÌ•Ù;Г9Ñvà–ö8ì±=f°‡T±’æ„Z‘Ž‹^ç: ”5øàǿЀûWÂu^§A»u¹Þ—õ¶ÍšÝq. -ÐAÁ$ëC‰œçËœ©&¸-Jí‚ä}TÁ“Çi–B?Á¤ÓUEÐ}cJñY“Nc -«î¯«6%U›Pœ?9ö+*-êÂõ®¬¾±ìôet˜{.;}÷™bü}Qp#‰KX´-*>:6è¼ãxìõ¿sZ-¾8}¿±)Ô!€ž¨¥po~_üò[æ¶üqÁbiM²|†kB¥xX( M–˜0²_Ü/þþ_Î -zŒ -…›à<kQ3 {ºÔ*œiÅ]81ÃO_¤¦hf€©`9Ú*ºòøò‰®+!û]™M -`ÎÍr¼Å·i}Zòµ%”Ž -*Ÿ©Ú?ß Ý„K×÷ׇHD«4I^ñJ@™Å\Ò§¹ÿ;8 [pñp¦0ã&œíÖÊóN1'©Rm2—v\Æûûq”„Ë=ûâ4 ¢Ÿþñ—7(¹«»~$ ¼æ+ð™Ï{ Rô.Éû[0Ýó«â™ P´‡é+*_o#ztÊo3ÜÑ—–SbÑ#ËýP~v›ý>—y¿»
ÞWÓ÷ÞàèWäB¡JÒ—ÀËe̤ëÏiX¥
9¯¾€ŸÑF¯Æˆ—Ê+;‹Ÿ±ò# -üû¡iê–2í?}qˆ_®ý§ùK@„CiË‘þ
vH@8endstream +xÚÝYÝã¶÷_áG-pVù%‘ÌãÝ%ÅÅínš‡$²¥µ…³%E»çüõr†¶dË·×Þ
ŠV$5$‡3¿ùÍPæK|i’˜I«–Úª8a<Yn¶Ü»¿.8ɨDƉ’:3oW‰4qb„^®Æ‹¼}XüåÁ—‚Åi*’åÃãi¯T›ØJe—ù/Ñ»]ÖôE{· ‹øÝo?â4k£¹›Æ`‹$Ö–?áCÕ·u>lú²®H\,mlS‘i
sA]'ý°+`i“ºiE[=öÞׇ¬¬°ý1;Ìý±ë‹¶e {ÿñÜ
èhSW]Ùõ¾®ñÙ‡õ»cÕgŸi°¦±¦Ø”ÇÉ +ö»X¥¨ú²/qTGå*lºIpFw*Îc›$"Ø€#‹ÜA¤àQ†Ý]Y´Y{ÇM´Ù•›l£‡¬ªÀÌZEo`@ÔǽiïL4ìÝæn‘¡+r¬[läžØf}YmiŸ¡ßÕmÙƒšG©Ÿ +’õ‡£²ŠV¢8Éxr"îOTš}q +Þ›ñM iËõÐûE’9¸Q·ù:óZÌsK• +B±b±H%bžÇ +<ð|_og¹ù`&Nµ‹Þí'pª·§„á +o±Õœ… Š"‘(ïYná|Þ‘0ž›ø^ƒ~{*ó‚ÞƒåË
6Ë +:ØÁ@¶®šˆ1ë…º + +<‚IÖ‡8Ï—9SMp[<”ÚÉû¨‚'ŽÓ0,…~‚I§«Š û<Æ”â³&ÆVÝ_WmJª6¡8rì[WTZþÔ…ë]Y}cÙéËè0÷\vúî3Å:øû¢àF—°h[T|(tlÐ+xÇñØ êç´Z|ÿpú~cS¨C +75ÀyÖ¢f@÷t©U8ÓŠ»pb†Ÿ¾HMÑÌ +r´Utåñå]WBö»2›À8œ›åx‹oÓú´äjK(T>Sµ¾,º —®?ˆ4Vi’¼â!”€2‹¹¤Osÿwp2¶àâÿàLaÆM8 (Ú•çœbNR¥ Ûd.í(¸Œ÷;÷9âZ) —{&öÅi@D?ýóooPrWwýHxÍWà3Ÿö@¤è]’÷·`ºçWÅ3A hÓWT¾ÞFôè”ßf¸¢/-§Ä,¢G–û¡üì86ú}.ó~w¼¯¦ïŸ¼Áѯȅ +B•¤/—˘I ÖŸÓ +°Jr^3|?£^/•Wv?cåG +k}¡[Ày5uÿ,¸pÇfšC톑Z¨ñoW¿ +OÁîö +êcæ~(dË8Rîô›ãœr«ðSâJA¾0FÌ#QB4KÁÔR&±¢ùÝ*á‰}‡vŸžÍù›û÷Ÿ{¸…êþ~hšº¥4û/_âgkÿ]þ
á—PÚod„ºj?‡endstream endobj 1298 0 obj << /Type /Page @@ -4526,7 +4533,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1311 0 obj << -/Length 3220 +/Length 3217 /Filter /FlateDecode >> stream @@ -4541,7 +4548,7 @@ xÚÍÛrã¶õÝ_¡Gyf…âBðÒ·Í®·qfâM×n3m’Z„lÎR$#RÖ:_ßsp(R¢w·m:Íè x 0MDßv|˜´‘ |5†?ïýŸí껊n}¼»„šI¨Sd0åW ŠÅñîgìêHœï6RT@Ù©2=çÔ!¡z/¾Ò*œ÷eE•X2m>ùê‹LpRPïˇš«¹Í|µsF%3ŸÆˆNÚ@
‘ttÛÄ„¶)Ã=Tèu®r£{¦³«( -®£fw"^Óìñ¬uSw`Ýx(a‡«1l¡–ûÕœ)tûƒ)åüE=FW[IøF™Bö‘Q™…¿Ê"ôãÇœÁò±r=_5M[ô𙯷 +®£fw"^Óìñ¬uSw`Ýx(a‡«1l¡–ûÕœ)tûƒ)åüE=FW[IøF™Bö‘Q™…¿Ê"ôãÇœÁò±r=_5M[ô𙯷 endobj 1310 0 obj << /Type /Page @@ -4600,26 +4607,27 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1324 0 obj << -/Length 3458 +/Length 3457 /Filter /FlateDecode >> stream -xÚ¥ZKsã6¾ûWè¹jàA -iŠlæ‹LX©ìlµ½’³èûç•â17qÐÍxÔw‹«oß™|VˆÂi7[ÜæÊ…Ìs5[¬ÿÃíO‹·Ÿ¯o´•s%®o¬“ó÷Ÿ?½ùùûÅûO¯o”rû2î]ü𖆿ùôáöýGj¼ýÀÔ»_îo?Pû7iå›wðP׿/~¼z»H\w¦¤A–ÿ¸úõw9[ü’¹=˪(ôl{•Y#lfL¤4WwWÿJŽzçS’²&6×~BTZO‰ÊÂm‚¨ž7õjs}cœš—‡k•Ï+|‘óuÕTe_©¯oéÙö›ê@#þjwUÒs™™ßž|T·;½oë]O]uG¤myxŒ“._xÒ/ÚxPˬ€x¿}—ÉÑ&ŒÏ…ò®€#ûïè¿jëŽ>:ÙyVm½çoj涂cg7™ö"3™›VˆÂZ†íY¸<vÜï?¨ÉBÃf·iÍšÚËŠžÛ²_mªH|¡gõDZ~*›4rŽÏÄ9>û@,y²8Œj[&·÷gÝ£ÓŠ¬Š°7 {*D&Möô%¬u2èúr· -2r¾jw]½®B§‚É…¨”ˆŠ¥XýYn÷M%VívBâ΋¢šÇ®Ûm‰RÇ•£ì`z·jŽëª£Ž]¹¥¦wG’ÍËnŠíÔœfß´]/ʲ‘%:Ucá0u–žê4»Z -írÖ»õÔª DRëñ¢ËåR|YJ+‘ç>~U=U(“ŒÛãnÒ¼&oo„ýßÄàmâ¯`O¸ÈHÀ°L»k^ˆ>Ø)w݃^ФÒë3¡½¢Vä…‹§0>€i&%|¦¿"ätÌFq}]¾§sFHÒ…CHÒ²ˆÂù|U-÷Ô€©W} t#Â!±¤GWïþ’ÔMEùùòØ“¨4ðj´3QTŠõ+ÀQ€§M×R‹Ï_$’azj¡A‡Oè‘„ùÉÈñCBŠîì“àнäoÆ0®ÆÕ -žMUvÜÄï&ÈbÛÄè§<å¿c3†üDÄ)ÁyFŽ/¢øL¥~(¼QtœpÈë²/©EçÄ#阬`ÏÊ9nLîç‹ëBÏÑOxXðˆòõÇ ‰¢¤´Mu(CBäp®@*4‚I îªþ¹=<õ¾¬›#GCè‰s
c×ÓÈ 4n4/¬ôÜR£å‰S†¨,é›)¤+GHœF…d¸¿¯NóEf¹›ôÏU·¼£„ÇÏïÉÝnñ-??xÀ+S?ïKGw
Äó‹ÏÐÑuÏö<LZy{*¡â¥0?7(Mˇ™YÎ[êÚ—«ÇIQU=Â¥5¸2οKì–ˆ`/Lk‰Éç®'@ê3¡-Ð×Õ?¡ -tÕÁ(1ÂùÃqp0úØ¥‘}Û6LmêÇ*ÁÄ(èR™Ð¹K9jý0eM¹P`’ɃXy^ò±;æXVÉ Þ+Äq«-wfÔø<®ÖÄñ7ã.«5—ó"wÕꆋү3UMi„J\”§”Ñ"ý|–Ùò“õ¤4êf<ì’ÃËÙXFJLˆÜ¨Ð!³4¬ð/ QÂçE¬gü®œ| p⫸Lñ‡÷À9ì~ÞTɇE\Bz -[ ½j÷/Ô"ïã0AH’ž‚[ìCŠà\Àˆž"4žèû3<î<iÚžÀõ)î;Üíkbÿ]@¤Ú¹ÏBSP‘MçîÕ -tÆÆ9£I}qÖL «ŒMúÃGV -çb'‹¬—B ¥«¯Úúĸ0¹¸éšïX¨ÖëOÂmC]/ŒŒ%yÆæ
ãCÌÌΟ\à ڮ«—[<W”ÑáGiÐWýé±+è4>¤Qïw“à‹œ?Ç›#ÎJJNU+M U¸šâ ªî»ªáL²xnt'sŒÑ;lf4ýqÉëÖ;„WÖéMÁŒœÂñ ³é7a~îb!ÂæˆÉØð¼Y>b$ Ž~Óñ¨3 -ž!±þò -oÙæ'÷‰‘¼>5ᱫҜç}yI¨}¸´ëëþØs¦6e¢¹Vg©º>ÜÏN£—JW/!g˜hw’¬Žûµ`ÍѼö_ÉgÝ è0˜¬I"ÒR?!”‘›¡ª¦Æ1ŒÓƒ“‡6é:Ú‡c¿í¾ò:¯bÅ°o÷4¸¸bò¢À¡Ì²¯DEn£»*÷ÕŸÓ÷9æF#Ù»C#ÖV27ÿ%ÔVŽD§+-g‚¨ˆ47¾›˜èî„ÍÝоÂk(ÊÀó\ÕHÚNŸY{~-H÷Ô#SÁ -¥Ø´-â5õØlBø43“d´µ\áÇl–g.â~:ì7-˜iÁñ_hhÉsŽÝË™ùíâÅûžc¶T乸¨O¦z>5‚˜'ë@·Óc¼JG„CãB¹÷ %0Šÿz˜p°98X,ýí‚*ÇÎñ‹÷YHMƒÎ -a9+sÂŒÄÄ+^ .ùRéØ -S2Õøÿï¿U
ÿ.˼0y®§+\Fxœ˜Âã0XÅQŽ¯áp[0^ø›Ÿôðï°·B¸¾Ž¹÷Ýq¿o|Fÿ¾V -lãÐÕXÁ¼üYú3×¥þG•; -endstream +xÚ¥ZKsã6¾ûWè¹jàA€äÑÉÌl&U3“+»•Jr $Úb™‘²ãüúíF7@J‚g6µ¥Á4Ý_? 5“ðS³Â +iÊl–—™°RÙÙj{%gÐ÷Ï+Åcn ›é¨ïWß¾3Ŭ¥Ón¶¸ŸÌUYj¶Xÿ:ÿþ‡ÛŸo?_ßh+çJ\ßX'çï?.>zóó÷‹÷Ÿ>^ß(årì˸wñÃ[þæÓ‡Û÷©ýñöSï~¹[¼ý@íߤ•o>ÞÁC]ÿ¾øñêí"r=Ý™’Yþãê×ßål
üñJ +Svö/R¨²Ô³íUf°™1Ò^Ý]ý+N8éõŸ¦$eM!l¡ó„¨´N‰Ê–Âm¼¨ž7Íjs}cœšW‡kUÌk|‘óuÝÖÕP¯©oèèÙ
›ú@#þêvuÒs™™ßž|Ôt;½ïšÝ@]MO¤mux“._xÒ/ÚxPǬ€x¿}—ÉÉ&L^•»¶Žì¼£/hüª;¬{úèdçY)´Ísþ¦aî`+8vv“é\d&s3Ð +QZ«ý°=Ëw€ÇŽûý5YhØì7ݱ]S{YÓs[
«Mˆ/ô¬ÿ86OU§CÎñ9Ç'pï‰BÇQ]Çäîþ¬{rZUá÷&aO¥È¤ÉüžÞ¡„µÎ@ýPíV~CFÎWÝ®oÖµï´A0 ù©•2¢Q±ë?«í¾ÅªÛ&$îrQ–RóØu·Pê¸r¬ÓìVíq]÷Ô±«¶Ô´óþHC²yÕ§8qÐ.AÍiöM×¢ª*X¢S5SgÙ驦ÙÕRhWž°ÚS«‚I§‹.—Kñe9(DQäá«ú©F1˜dÜp“æ5yçF8ÐÚÿMÜ~Á&þòö„‹LËt»ö…è£r×=è M!s}&´WŠ¢tá¦f²T"ÏôW„\€ŽÙ ®¯Ë÷tÎ +¢â¥ 486CóT\ž(ÙÓ3*'Ø`|x Ý㤣@òKw$)\µ&òçwß÷Ô‚(ÌxCÊ°™ÑK„{-OÙåÁ‹Å pàg`6Ž;ð’è:×€4Î"ÈÆÇ8@Yƒ67¿I©WÇvHÙ ÆÇåвº}³Júí{#åü»÷ßP‹Öï]µ·pI¤ßÀy†3Æw¶rh‘•c?ŠEo2ر®át©¹?4§5§pžÏ´§ehÓc˜a½á%¶U?xxA~Εöß·Õ“
ªZ¯Ú꼑‘9¯ç^C$øuY°½àÎÖàv÷)¿¨EMÏ£åEû}½jî_h=¿ ¯$’Ô‰l¸·¼œÿgSïˆÎç 4y$JßmyÖ +Ð`tÕ=½?7mKª…ABGDæð^ÑkPè4‰|ïÃg ‹‡ÔBv +ò…•w¸Úpp-|ZÓy¬‰æÓxz¬‚g[W=7ñ»ÄYl›ýT§ÜâwlÆÐâƒODœœWiÔäø²1J€/ÁTï‡üEÀù瀼®†ŠZtN<’ŽÉÁ +ö<ð¡œãÆù|q]ê9ú‰Ü<¢|sŽcDQRº¶>T>!²?W •FÁ$wõð܉z_5í‘£!ôÄ…†Œ±h¤W·ñšçWzî¨ÑñÄ1ÃôT–ôM +©¦ÊÂgA!îïëÓ|‘Yî“€þ¹î÷€w”ðäó{r·[|+ÎðÊÔÏûÒÁ]Cñüâ3ttý3=“VÞÞúÊ…ï_úxÉÏÏ
JÓŠqf–³ç–ºöÕê1)ªz@¸´¦W@‘ûóïc »%"ÂÓ:¢@ò¹úLhôu½ÇO¨^u°JŒpþpŒ>öqäÐu-SÛ汎01 ºT&tábŽÚ<¤¬© +L2z+ÏK>rÇË*Ä{¥‚8nµåÎÃÃŒŸ§Õš0þfúÁeµær^äà®^ÝpÑÂ@úu¦ª#0B‰‹ò”2Z@¤_Ì2›áBy²žGÝL‡]rx9ËH‰„¸Á +í3KɪÿÑ%|^„zÆO> +'¾ŠËäùpN@»Ÿ7uôa—Ãh¯ºýuûH'ÏÃ0@H’9·Ø‡ÁÕ»€ =Fh<Ñ%ögxÜEÔ´=€ëSÜw¸Û×Äþ»„H;$´ó<óyLIE6]@º× +¾ªz + „ÙtÏõD×µbåRvd>‰²òô"RZª(Ööµ…pHãAQc€æ‹@!óòX:«¬>'NybÏúJ†Øݧ¥«³XÈ^¿@<جH¼Ç=ÀQJ¼à>lYÆCÛ×ì2“ ç¢Èr@:›€´f¾£€þo…ÌÍ:Zœ‰ðvŒ¯LöšÎ*§„”YHÿ(½H€ 8@ˆEO@C^ôâ\›6wÝóŽõTÑHI+t™3:Ó8˜8¾óšlùø¿óå CÐ=&óر„Óâ¼nÍ€hŒ› Žñu“ S3qsf†€\…nß|
€ÅtMô=M¸ª{^!ȧï×¢Ñ%à-ì €àà¢úþ>éœ,œ‹ËÔè,¬+Ï… …(œ‹,²2^ +”2¬¾jwêÃÂ4Òçাc¡Zo~nç!ÔÍóèáü#cI‘±yÃx3³sÇ'Åp‚®ï›¥Ç–œ+Êèðƒ4è«!ÅC<Eìò:€iÔû]‚s‘óçpsÄYIÅ©Êh¥1¡òWST5C_·œICÏþdŽ)zûÍL¦?.yÝf‡°óÊš ½ÌȾ˜€/ +¶@LÆFNÁ›å#Fêè7=: ;I³|Œ-&=UÑ¡Ãקàé“›_^Ⴢ"Ûâä>1°‚×§Æ <öuœ3qÞ——„:÷—vC3ÎÔR&ZäÂê,V×ÇûÙ4z©xõâ³ñi†Éáv'ÉêdÀ¸?_ÖÍëü+ù¬í“5éQäcZšEe¤ÈÍXUSÓÆéÑÉC›tíñßv_y]®BÅpèö4¸…¸"yQàPfÙW¢²°Á]UûúÏôýc¹ÑDö.„Æе•ÌÍñµ•#ÑéJË/*"‚Åï}ð¹Ú—õExž«IÛi‘gÖž_Ò=õÄTð…B)6mËpM=5Ï›>GÍôÇ$m-Wø±›å™Ë°_ Žû_ZpúZñœS÷rf~»pñ¾ç˜-y..꣄©žO
/ædè61&W1àphœ/÷‚ã~¤Fñ_ [€ƒÕÁÁÒß.¨rì̸pŸ…Ô8è]¨þ°wì§_SåþpÔœþå‘ñß-¦ëE*ýÃœ«g®Ö˜³2Çè ÌHL¸âê’/•Ž½èòAÒc]ï}`o±Š˜ ™ø#Ñ[áxÓnÕÙ¯ãÒûºæ›µãžºªQþ¬ãááJ,ª†I¸¿â!u</WR½óÍMF
>SÂÓ\°zªš¶Z†‘/Nq@ˆÚöl¬vãEVSµ\G¡ôB¢M¯_M9…PÁËC$ñÚ_§ ÇÄÿ;% +S2Öøÿï¿Uÿ.ËraŠB§+\F–x™Âã€0Å*HËé·ãE1þ5ìퟫ¯Câ}wÜï»Ð¿¯•Ã8ô
–//ÿ>ÿÉu)„ÿ›A:Yendstream endobj 1323 0 obj << /Type /Page @@ -4675,18 +4683,19 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1335 0 obj << -/Length 2491 +/Length 2488 /Filter /FlateDecode >> stream -xÚ¥]oã6ò=¿Âoç -âPÄ«¢¹ WÏ0÷Á4wžènNõÝææÛT¶Êƒ<‘Éj³›í•a–‰Õ¦üe-‚(¸…ÂõæÃýíŒÃõûOß=<üøî#cŸþó´¹ÿHð¯a¾|‚¸½"IÃõ÷Þý¼¹ÿLó‚·|xÜ|þôþ_ßo>=Þþ¶ùñæ~3r=¿™²üûÍ/¿…«.øãM¨<‹W'„Ès¹jn¢Xq¤”ÇÔ7O7ÿ7œÍº¥‹’a U"D%å’¨â<H”TNTïàr"\¶ý5åópÔ}e[Bžöæx+²µ¡a¿gàp¬}<Ó Ñ]dîÌñÅÃUß™zÇpG_Íd½Ñu¿_XÃtv×æØ™#%³byC·@ø•2ÚWe ‹A1 ÐcDZtWe¶‘È“èúÒ _GëO¡é¡c`g‘¿$ 8_/%$MÆ(7ÆÈ -}`]ƒÙ}á’`
2™#Xô -Òxh1ˆ”(ÉLx‘¥þî<Xæî_M“µ-tM˜–cü¬ã/åÆȽ™ï=“Ðx‚»QÅ›€'ëzÇ|>
Å~ÑsÉúÇÃc~è àì†ýZ/a&ƒ,ÉÛ‹x8v(¬×–§ò Tô‰ºýŽNþ;ÝÓ—ïÝ-œ ->$Rå‹ÇºÅµµ_†Ã’õ§xq¿’‚©£'mà•ëÊ´}°‡Qed6‘¹’)ùÿm.× •dëªñ>n‘{Æu[0 È”×⪎C[Q@8b|¿ç]XÁCÝw4ƒ~„½'õwôëÎǃΈÛO°1-\ÌD£_9R9¹lÎùv¶Så£ÐñLÞ…Ø18À j{È/=~äÒy~gœƒD‚m& ï,ªW{aªÞÐ.œÀ–úZ¹I@©äµ‹¼.OÈXxš‹k¼¹/h1ò<ήgžß|€©®ó>Ó[Ûž;t
ÅA0ª`nNT̤ëÚ´ÏT‹¤¤Ø„ɳd -@*"‹‹7Ç]ÑÄñ‹E&!0ì)ö -iŽâ;NPw…¸³UZBF‰º=M‘QG¡7æ|Và‘=“Ñð¹zñ›wU¿˜»¹&S.´EO£ËZ1U¢|õ },ä%T\Èiúwl
O3›XSD)¶éŽ–„Â…i! 1?';`\&Ö^°¡&&Ú¡Ù’å^_ˆ¼=¢µnsS_€èI\0 ;ƒiÝbÆ3Œ.;V÷^¢ÆÏó)R“ãCµ;ž=èâ‹éù¬~OÑcxÞ{„!²¯5Æd},©ÔÜ_!Éó«cäwH׆„±ÖM—L_õ^TÂõî4Ï·Ï–ÎíÎW§MC4µ_#a©òSo•“¦æ=Ä¿¿q0ó-È_ëÐΪ¯›rj¸ÂúuquðÏ Ÿmmþrמ†ëïßä[¯Y÷“†,nDV
¤[C´‰àèf8é¢uJIéìí `ªÔpë÷ÿB)Fȱ„ÉZ¿˜«œv^hë¨)ap·6{ÖÀré"çO…Ó¼Ó[ ±ì}=ûõÖ誆ý`OfÊ|‘„>™[œK~•ÃiC[`ÃÚÑй;Ìsëí»lœ"Í „ÜVÈéa ßõÛëÞê¥bþ”r-ÇÚ>ñ=Ãe}„R/"$•§Ž4÷•>¢tù¢Û^?£Æ’û·ãö¦!ȶ—'×Î4î^ÆÅÚ<w±6/(œ§/ÅÎÖ?5Ìœ&מ¿:$“”f³\Ù…"Rùw£‹ïÜÙÍv¤Yžú*Ï]‚ÍŽb7KFY!’ëö4yÕ}ÂdYu²¹0E*¨"evo§†œŠ60E~‰©ô¶ª«þLH2%4T<ÑÔ ÝÅÖQîrzA2®5r† -gp«GS«¨Ö¸"wÆà–¹§ÁqüT$S‰Ž”¥ +xÚ¥]sã¶ñÝ¿Bo•gb† +^÷,ÊÕº1º9è÷º÷avõ¨K´¶w&p§” +’0Rç¦PèëÈîè—ƒhèÉÁ¢0(AÄ#`¼Â04K²0›ýö4nÔ€{¿˜K¼®¿Ž§]NÛ>ôÐïí±º;7n +â=èçéÒ˜‚ÄX;tRÆC‹A¤DIf‹,õ·pçÁ2wøjš¬m¡k´d€€ã`é(7FîÍ|ÆÜ*Þ<Y×;æói(ö‹žKÖ?sðCg7ì×zÁ3dI¦Ø–XÄñCa][žÊƒPAÐ'êvô;:ù¯|tO_¾w·p*øtH•/ë×Ö~KÖŸâÅýJ +¦Žž´W®+Óö]ÀFA”EÙDäJ¦äÿ·¹\ƒ~T’«Æû¸ADî×maÀ$ S^2ˆ«:5nEáˆñýžwaußÑúNôžÔßѯ;:O n?UÀÆ´p1~å<Håä²Q8çÛÙLQ”BÇ3ybÇà +3ÇzÙM¥ÄYö‡<'Ĭ¢‡Â‚k‰ŸìñUK”Íÿ¬î_ÈDŠ¹ÉLª0ð1™…ât]Zç–8o{z+TT$%³j‚ÕÕ¡6=®¢d„`*‘1SÈ|ÊhºÃø¬ˆO·KU v>i4ÅW”ÍR* +T© 4cËÉ á²v·;Ñ`G&ÙÐv@.ÖÁ>üâ~–‡=°Œå-YI8pJr©!‘Òä¼P`ÍAþn*qmë«Ù…bVëîíL+¢<*Wç’]ŒVfe>F8Nd"Ë‚H é#Oæ#a +ŒÀ…¶Œ°bÒRØ9=qáü’f»LRŠPdˆ¼ž/"2
F G; }Ôt(é
µÂZÙÑwô5ìõÐõ~Ïžn—ª7Ýv¯N™U6¨ôÚ»è4gö× º‰e4¾Ó¡ÂRèDsßq‚º+Äì@¨Ò‚¬0ÂHÔíiŠŒ: +½1ç³2 endobj 1334 0 obj << /Type /Page @@ -4721,17 +4730,20 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1342 0 obj << -/Length 2184 +/Length 2181 /Filter /FlateDecode >> stream -xÚ•XY“Û6~Ÿ_¡GNÕˆËûxL'ëT+ÉÌîKœŒ‰¨á! dù×o7ºÁc†N9¥R¡Ñ -V×ö•ÔÆ¿ßÇIîýÜ4¡/R6 B (ý€¼ÔÓr¸È·4µ0x)¼FúešFö|¸>ïÔYväÈŠºý¯p¤ÎÑÞ§o©'F¹õÕhnDÍ2Ïr8öCë$‰ªUƒxnxžÐÔ’*àûÓAK? -J²ÚS
2ã ÆÙïß}”ÂŒ¤aM8¬mÉU*©iň3ÝàÂâLOí3÷YéH¾ûí¿D¨Î JÜ’º¿J8ç}žx ê8Ì=ÍBz+û$:õ•LÁ{|Cùx±ŠÊ¼ZŠËÈQ3¯?Rkjðé¸ë+#ÇÞ‰«Ò5/é©=ÀTE!–y
yèÉõõMÙZ)©wì·Ý´—8Ÿu › ïEÅ‚ê¥×7íÍŽcã¬ÜŽQ¦¦#‹JVlý¦é¯ª;±_Á¢F£Vßä³ ¶ÞAjÝsæX\#p×ÖA,kKuÒ¹¤2þ72F -N3N§ëßÈ9›Ù"¡T‡ËÂ2ØÊšFìÉ‘ #UòÑ$OšÂ{*)²ý¡šE´âP«N¾ˆaeÔ¦ePÍè¯ý´è -¦êGCƒ•wzز°u± -Hku¢ä´½ÚÃVðMZ±¾E{Y'éG
bõÚù>rPROiÍ%,ˆ°êû<(fúlûáöÏœ(žS`T&^ëD””ðgÜ %Q¢k›bKÊrÈxæIS* aÙõã©fA<õSD†W;ÙèL’æ`çÁyMñMì¹j@§RúH’„öN]óM“8ô“ KáÊ”¿ìÍöÓÀÊvö{¾Ê
%¥ŸgqÆ¢ú3e’¸€t(˜°É¾°¹¶"Ê–hÕ*ìšg‰¶;fÚú3ÁZÊóíÕR{PHxI ÏŠÈ=4ž{ò[9ɦ;óVW¦|QòÙ¬œŒ‘CÅÅ3#oàÐ -Œ³‡§Yûå´·g|+
Z -éÊš0ƒ°°D³ 9y€n9ŽøÛèÈS?/ÃüUtà®6:p[›$€A~›€ÃÑ$å„|ŽdÚdí” rŽ«ú(HAéA¹Öþ³…°!DT+5 (ÝZ¸›xM°Zq
+xÚ•XY“Û6~Ÿ_¡GNÕˆá}<&Ž³ëTÅ•ÍLö%ÎF„DÔð P²üë·Ýà1C§¼¥R¡Ñ +V×ö•ÔÆ¿ßÇIîýÒ4¡/R6 B (ý€¼ÔÓr¸È·4µ0x)¼FúešFö|¸>ïÔYväÈŠºý¯p¤ÎÑÞ§o©'F¹õÕhnDÍ2Ïr8öCë$‰ªUƒxnxžÐÔ’*àûÓAK? +J²ÚS
2ã ÆÙïß}”ÂŒ¤aM8¬mÉU*©iň3ÝàÂâLOí3÷YéH¾ûýO"TgP%nIÝ_%œó>O<Puæžf!½•}úJ¦à=¾¡üV¼XEe^-ÅåF䨙ש55xŽtÜõ•‘co†ÄUéš—ôÔઢ˼†<ôäúú¦l”Ô;öƒÛnÚKœÏ:ÐMÐ÷¢b +ÁõŠÒë›…öfDZqVnÇÆ(SÓ‘E%«¶~ÓôWÕد`Q£Q
«oò¿Y[ï µî9s,®¸këˆ –5ƒ¥:é\Rÿ#„§§ŒˆS†õ‰oäœÍl‘PªÃealåM#öäHŠ‘*yèN’'Má‡=•ÙþÐÍ"Zq¨U'_Ä°²ŠÆjÓ2
¨æ@ô×~ZtSõ£¡ÎÁÊ;=lYغX +è°@HåpË°(9ÒàpÚñÇjºùûå‚šKë¿•‹Ú{”‡É¡R¿X«–Oç^æ8Ìü°x}Ú0‰ –ŠD)nÆÙ‚ÃÓ¬ýrÚÛ3¾•†Ç +à,
¹©hQ¤=î,›¸xÅ‹l`óK5>Lc4Ðþµä¸a3(Äs™ŸtÐL†®®žAäºi0ùÇâqsÚ¬90û¶±Á³œ¤ƒÉä`äw‹„ÅG4™]ÿè +2ijX- +jÁÅ []T5Z/ƒÅCFñ]«yEO,.À<©
q19ÈƨœLŸ@ ¾öWéJŒv_EV5#žƒ +;ñd [ã + endobj 1341 0 obj << /Type /Page @@ -4793,12 +4805,12 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1354 0 obj << -/Length 623 +/Length 621 /Filter /FlateDecode >> stream -xÚ¥TËr›0Ýó,ÅLPõ@ -„¤ÎŒÇà´4Ç()S.Èyü}%$b’¸«ÃÜ«û8èé‚}¤ì³Æ‚?d3½ñÿ¨sçv5áPŽ«ŽsïËå¾€"&±Ÿ?Œ°8Dœc?/nl9Ÿ_-š€<=
B¸š§‹ID Ÿ^žÛPö#ËÓY„TDœ|ÌótaSÄO/]ÿ"Í®–‹“tX]/§‹t–^æYp—_xiþÆaÌ#jüñnï_hº‚Tpæ?ë‚Xâo¼ˆQÈ"J‡HåeÞõà(Û·Ô
#HhLG°#H#+Ç$<!ƒrAˆÒšì¶Û¦U²pªme»Reýè{í”Üt†±Æ%£A~H8ŒA{Àiv¢e僀ÆÆ`°n6Û²’
®êÂ:mÀÁ®îlMS»¬5Õª
0ÒfëÝæ^¶6Õ<X»¬Ë—°*KÞoÛttnÛï?i¿‚Á¬\÷øM×<(CÍÁ -Ƭ:ßÆ@Yͳ† (™lŸÌŒO¢Öë]ˆiÓ}ìÆ÷ù‡®›¾¢S+}õˆˆÀYÓÖjÂb¥¤]WºØzFc»Ñᙥ¥}ôž“•NJ{¤ê—®ôätæ®÷O„Håâeý¡P5[ëTòIVÖ-Ê^B¹VMûjCý¦Æ}ûYÖtÍ®ïZˤSmy¿SeSÃMeÐŒÂЯ;´ÿž¸ýo(J åœì‡‰ø¹=]G$¡€I8'ƒ¢¥/JÖÅ0ZnÒìâ&ÀÙvšº.Åúf&8ñ'†1ÿ,Ã_wžJ;endstream +xÚ¥TËr›0Ýó,ÅLPõ@XZ: I'ŽÁi;iŽ‘]¦¹€óøûJHÄ$qWç^ÝÇAçHWØGú‡}ÃXáDÂÌ_m=äotîÒî&ì‹ÂaÕiæ}¹ ÜPÄ$ö³õ +þkª(ƒfŽÌ€þ»Cûï‰;<CÑRÎÉa˜È‘WÈíÉè: 作%/¬ò~®Ü˜ÙÅ]€1²n4o]ŠõÓƒñ' úÿ¬Á_fIŠendstream endobj 1353 0 obj << /Type /Page @@ -4821,14 +4833,13 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1360 0 obj << -/Length 1250 +/Length 1248 /Filter /FlateDecode >> stream -xÚÍWI¯Û6¾ûWï$ÍEÔ‚wzyI‹ä¤xFsHr eÚ"‹ŽDÙI‹þ÷7ySÛC/…â2œùæ›áM"?aV¦Q^¦ˆc£j?ÃÑö~™/“r†xÊL&vÎ -ÄšGÉ¥’WËÙâgJ"ŠQ–Q-7£,‡,ןâç8hÙÍÊqÌæ_–ïܱåENÌ1&2DJfåß‹½tÂ/²;†ƒÏªýŒ1Ýеj½•¨Ìhæµdá<Oš·-ÌI¬wuoF8®F °|’î{è椈ձ^K'Õ«½ßê‡íVöZ®Ý´ºFà•ŠFµ[¯²Ö;7Ú ®©[é…6ª`dí‡C/Ñ<a9?ÎKŸm&Æ7ã
!¨äœZoG„Å+E¯Z±j<QGÑÖ¶`PÉN‹ºuu°¬Ùq/µ®ÛmÆX±4£žÅ” —ÄÚeˆÌ‚1CìÁÞó-£¢ -™ôpLœ„áÖ]µ".Jz“‡#Zb¾Å⩽<)7!“nÚ«VúÍääOu¿s#íOY*Ýp¬™l:µG×iãÈUs¶w¶ð‡û’"’(ExAÓÇëÅürñÏÇ©¤tÑu Z¢¢ÈËk¹àýGÕ}µüšÉºî .Ê%Å-îó¦•}XH]-ÌuZ¯F(”¡’àô.É.]~_û‘ÜÀtF§à?t¾Ø@¸O™Óõ~m…bôÎ^rºßn”:¬DõõŸlˆõº“½'”PüÈA¿«Öë}°2 [·‰9Dwÿýã0â†&ÖMú¾©›`¥Q•hvª×œ~xœÂÔ*]o<ýšfš^0=ÑRHF¸ÒcK ¡%øÞô4èêàbšëÿ;ƒï¤´½À6¸Ý÷ -¸§±%<Ù%¶©2&9¼F ÊúrKþ…iÊÄk.†¾«å¢ªÆ[J½yMÈ)…•.qB—õ®…ºpUëfo–ãK=¼¿Gæ5?ñ–Çã}„Ío³O_p´¡w3ŒXYðè¨6eI£ýìü·À4³—Ù¯ç¿ÁZ’æˆ=ÿ)¸Œ Ã%b Œ‹¹yø’,~õöýk—U òä
͘ã7ßµlסo¿h§¾Ëÿf_P˜ks›9¹¥aü¿rÏÃ_þæg´endstream +xÚÍWI¯Û6¾ûWï$ÍEÔ‚wzyI‹ä´xFsHr %Ú"‹ŽDÙIŠþ÷7ySÛC/…â2œùæ›áMæ~džs„Y‘̳"A>/÷3<ßÂÞ/3âeÎOƒÉÄnÌYŽxN³y|©äÕj¶ü™’9Å(M)Ÿ¯6£4ƒ¬ªÑóN´ì1å8b‹Ï«wîX‚²<#æ)"³òïÅ^:áÙÃÁgÕ~˜n‡NèZµ^
¨Hi굤á,K¬š·-ÌH¤wuoF8*G °|’î{è$Ô±®¤“êÕÞoõÃv+{-+7-¯x¥¢QíÖ«¬õζ¨kêVz¡êYûáÐK´ˆYF£‹‚Fg›±ñÍxC*8§ÖÄañJÑ«V¬OÔQ4ƒµÅƒ-”²Ó¢nÝD,kvÜKëvÛ£1$A,I©g1!(űv"‹˜`ÁûC°÷|KŨ(@¶ŠA4õY +‚“»$»t1ø}íG|Óv2€ÿµó]ÀÂ}:Èœ®÷k{(£wö’ÛÐíüv£Ôa-Ê/ÿdCTU'{O(¡ø‘)‚~¨Öë}°2 [·±9Dwÿýý0â†&ÖMú¾©›`¥Q¥hvª×œ~xœÂÔ*]o<ýšfš^0=ÑHF¸ÒcK ¡%øÞô4èêàbšëÿ;ƒï¤°½À6¸Ý÷ +CßÕrQ–ã¥Þ¼&䔋J;¡Ëz×B]¸ªu³7«ñ¥Þߌ#óšŸxËãñ>Âæ×ÙÇÏx^лF¬Èùü¨6EAçûÙùo[if/³ß΂µ8ÉËszþSpA†Ä(A³EÌ gÑ«·ï_»¬y”‡NÌñ›oZ¶UhÚ/Ãz©oñ¿Û'TåÚ\eNn9ÿ¬Ü“ðÌ”gendstream endobj 1359 0 obj << /Type /Page @@ -4869,19 +4880,15 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1368 0 obj << -/Length 1808 +/Length 1804 /Filter /FlateDecode >> stream -xÚÍXÝsÛ6×_Áñ5!À°yRâ$uÇQ\Yç¦×š„"N(R%)»îÍýï]`’’)Û½ËÍuø€¯Å~ü°Ø]:|Ô BÆ,v¢Ø'G'ÝN<ç¬}œPC3³D³!ÕÛÕäõ.œ˜Ä!ÕzÀKOꬲ_\N™Ï½ü<?ŸÎXà¹oç—óÅ»‹ÅÇéŒÒ€Eî»ïçW«÷K\å†~1ÿôg®a)ÜŸ-ŻϋZΧ‘ï®.>/¦¿®~˜¼_u¢Wêþ6ùåWÏÉÀ¸&ᱜ{x„Æ1s¶?à$ð9·3ÅäzòcÇp°ª·Ž¢D=ÂxÈF`òÙ -IÒjûjÊoÖ€9ÉnÏž´öâêàì¥9ýjmÌ,’¡Ÿƒ»ruÃdf -aÍ3¦„%HÀ_pùž»™cö=ò—ätÇÎR~!Áa©Ïž…¦wȨ CŸ9äOn¿þ%¿9ôšcÓNÝžþHÕ„íÁ)³ÃøýÔý~ýQ‡ú„ûƒ Ï€ €Fc›‡!ÛzÀê²J2“‡“")SDqû0K©°,HÅ–çÓä…|›·:¨!œí{ - Õš¹êÝvÌõ0MJ3oö&é&‡xn¨s³ªcêœ/®
ý¶û¦ãµ…4˜ï -CYO©peZé6kpòŸ^à5ûtcd5£ÐwlslŽ¸ŠÚUGû¨ê”ÉV’ŽqDbÎ"Íøƒ&Ü^þW0Š™›¯Õ¬ï>TSêÑwFѶ-qáææç»0¤÷y»ÁõR¶÷Uý§•SêÍÐÔzµÆ%êaV3:˜!3ûÊ©Í45£ -A‡^¢gì‘ÂĺRÁO†[ A»í&1¼Ó"—ek¦ïó¢0ÓUYÊÔÐ@øÕL¬¨r¦Òˆ©l§Ýä¨êaÕVúŒXÙæ[ùÝq!A!yÌaPÿEa¾¨’¤P+ -!+Éÿl—Õc ëI
pŸ¼L×î8d5³6͘O‰ ÌïÊÔƒ -
œêz'1>Ï=ÓY…•àê$<b6ÿì?ˆeDDLhÜo6R*>×I“v«B×»jF½Âs•…Õ@
ªIG=\û-]Ú„ÄÌÃÐ}{±8Çu“õ,eÕ&ì˜lt•¸òw•ÐÉi{},gU=ØÕ‘ø(£³(Ö¥™jl2(c`U½VqÙª -ª"Ü#¡´©Õo‚bá^˜ÍZÕ1%‘ay[ÝéêHD}æWˆêÁË(«¶Åƒ¡‚RW ƒ‰q;¡V¹u¥¯Æì•ùÿôÛnlZjæ±h.˜VýèâÔs?Á³gz›``l‚Þ¾1Ô©ÐcµÝuhÓp®Ýץ̎ÔÈò&M†´WãmW¤²€„"ôE*lQÚCáxe›ä®¨ÿ8ºµðéÚMQõn§2ÒWº‘éW\6î¥_$ýbp‹ã@Ä ‰v¶*ÊYUgø0:¾~˜ïÚf;kÔEØ¢Ãt}È'eÅ”Põ·W»6UGÄð‚AY1V„6)€’WžúµBU„‰Wê/v–c?N{êÓÆÐ(=–K]l«3ü<ÄþH(‡ ”÷ì…»ŽæIŽ9)%È)Óy@|ÎGÅyγéñ¥¿\{ðüˆp!ž ÓV)¥9ÆR…БhvÅú‚óýï,3{‰®÷»]U¨žRJ]©`bUÊ#ºâöGïž4’¾endstream +xÚÍXKsÛF¾óW t«Ìñ<0À >Ñ–íUJ¡Š‰jË›M”A€@)ÊÖþ÷ô¼ +×äZahTíOÝõ;´åoÉvWH”VÛ'PP~{°ÌQvsö¨µÎ^ÚÓ¯ÖÖÌ"ú9¸›%W7Lf jÌù„¶NÊf-Ÿ‘¹¹‡[F‘1ä$¦ˆ„AX^)á8âì—ï©›9fßIN@wì,ågôsH}ö$4½ÓhEFMúÌ!tóå«üæÐkŽM;u{Føªæ lN™ÆïÇî÷Ëw”x$@,€yqŠ(‰]†l‹Õe•d6'ER¦*ˆšíÃ,¥Â²@a›°<ŸÎ˜àòmÞêT †p¶[ÓSH¨¶ÐÌUï¦c®‡iRÚy»7I79ÄsKÛU{Tç|qeéïM»o:^[Hƒù®°”õ”_¦•n³ÆLþsÜìÓ•ÕŒBß±Q`ÌMsÄ
ø³ ýXu´ªN™l%êG(f4ÒŒßiRÁÜ壘úùZÍþ}5%þÞô7úÎ(ÚvcDK³p}}mæ»0¤wy»1ë¥lïªú‹™VN©7›€¦Ö«µY"Ød5«ƒR»¯Ìµf/Fc€ˆP¤5}ÖÐ>^QС—èw¤0±®T°3§Ã„ gºí&±¼Ó"—ek§ïò¢°ÓUYÊÔÒ@øÕLœ¨r¦ÒŠ©\§ÝäF5£‡S[é3be›oåwÇ…d…d„©G¡þ‹Â(|V%I VBV’n—Óc ëI
Ì>¼l×í8d5s6Íh@ 4èÊÔƒ +ý7—ó+uWƒˆú«„š= 4ô—²©öÿÔÞ—eç+f¬îèrÙß°ó¤MŽ ðBÌ=«,ÿëö+¤Iåæß©ŠÏ<b'*)c(˜ÁôîîÞ;
|ˆóÊC ó/0P”BLIw‹OÃ3üŠ’`Ï8<„û“ +]ïªõ +ÏUV]4¨$õpí·ti3CÿõÅâܬ۬ç(«6ieÇdk¥«Ä=¿«Ü„NŽ†¶×çÞqVÕƒ[É2:b]š©61Me¬ª×Š".[UA@UdöH(mjõ[ Xøv³VGulIdYÞT·º:QŸùÕ‚Á@õàe”UÛâÞŽŒ‚RW ƒ‰q;¡N¹ÚèJ^Œ=èûÿé•i»±m‰7EÓpÁ¶êG#Øÿžíf¦· Ö&è훂:bZ»]‡6
çÚ}]ÊìH,oÒdHÛqµÎÑvE*å(a0(R`k©=ŽW¶I^˜õG·>]»)ªÞí àTæCúJ72ýb–{éI£(Ü☋4ÑÎVCE9«êÌ<ŒŽ¯Ä–¶ÙßÌu¶Æá@º>䓲b‚ˆúi¶W»6UGÄ°‚A91N„6‰CÉ+OýZ¡*2‰Å¬ÔŸ=ÓYŽý8í©OK£ôX.u±ÎðÃû#] BŒC(ïÙ?wÍ£:sRJ S¦3ŽÆFÅaïÉôøÜ_®=xA„˜O„i§”ÒÜÄR…Ð!ÑW›oke™¹tµßíªÚâüó”âKý÷Ò”¤œpæ‹ ¸¿¼#(üêL’
endstream endobj 1367 0 obj << /Type /Page @@ -4918,20 +4925,24 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1377 0 obj << -/Length 2735 +/Length 2732 /Filter /FlateDecode >> stream -xÚÕZK“Û¸¾Ï¯Ð%NÅDˆ9Ÿ›Ùª;¶¼{p\ŽIŒ%R+R3žT~|h -)
ËdsJ(Ï<3B-»ù5¥4jšm‹ŒVåø±µb~¿æYTu|ê6v:¬Ç«RíšÚêÀz*0ID’F…ù¦<)¢V-´Þø°TíâPÝ)ó.‡wÀ¸Ü⻪^Ví^Õmy·U–¼*×uÓvÕâL0•Ë]UWm§mqo‰Êz‰P¬êšCU¯ñ¹ÃUšû²Ú¾ ¹ÖÕtíšÑÒÛǶS;÷$:Ëy.šº;\Ó<j¶[#Õ| Õу¥º;®×~Þs¯½aÛža—Æ°Ä{w`Yqœåüä\ïÞWÞBȦçîieÖE* $‘TGµ¦YVë -ª@…ýÛu,(‹ÚJÅùªî Ð.\ÑDB™Ð3G%>·Ïî3ߦ¢èúK…«µ4º+»ÅfÌêaS¹IõU-ŽÖyêX#»@öU•‹Í0 JüÙVzc=S<mïÐÈÙRÖJ›Ó$z¾=ßì±"w_ôÃb¡Ú¶ºsI·Â`Úê÷©ZXiç ˆå
"#T$A¼@SRðTÂ8”*6 -åOõ×¹¥êî¢Ë>ê5ÔÆÀ
ÌÅ4‡ò^d½Æ©zl®\¸ÒˆÓÊ–@§HR@õyñt§ÈˆàÂ…ïCåªNW~Q£â¡ûU@`ù èn²FöÓ -†fï¹Vc -Æ]¯*w -=Ü=ç„&.Ñÿ‹rb+Sçs¸=@•i1ìÃÔΕ02Q ¿J“˜°ZâÄÃÆ`ã"r3x~µ>êMsÛŸ²¬ÖÀ¾Æ¡> -Å -hJ3·Õ²§ïú†9x——íwë -ÁØN%áŒ>
µO4Ó@ÛÒ¸XÆ‹Z|\¡m 8V<%ÚÓœÉ:9!PY_øäQDŒÃsGœsF2V°ó[`»ÒŸ¶gwþuW~ûᘀþÚÚ(C&ôHai*ý
b¶}“Ûë@Äq²gâOÞøYNÿß#2Âó|✑ësF–x¥´ú$uFÓèÅÍí+4Г,~ÇðI7ë׃s²Çý¾qÁÿ›I8uh¡Þ;Ñ7ƒÿ÷™s;üË_+Àendstream +xÚÕZK“Û¸¾Ï¯Ð%ªb"Ä‹œÖÏ·jÇ[Þ=8® +G‚$f%R+R3žT~|h +G6~4)ºæ€îß=âÓ'u|DÓu,/¬c[ãMˆ5–‘‚%tu`þGëújµZ»P¨jÝãN‚ª9u‡Sçãp_vä¢ú%àA(É2'I®ó–(îS¹buYç=U/(ú2ø$çìi™Ž( s „W*äPè¤O’E«f_Aý¨j´©/úå=~0¦„ç&2 ¹¢C”'Š<uaÓÂ;§Ñ^Ç·i§ƒ6Æk@^ƒy°ÃNu–¾Y{²mÆ&ì ²"ÞZÆÛ²µ±$A󄧣 +öÐè:GA¨°›Ç‚²¨´Pœ¯ê +íÒM$Ä‘ m0sTâsñì>3ñm*Š®¿T¸ZK£»²[nǬ¶•›T_ÔòÔa§Ž5²T`_QU¹Ü“ ÄŸ]ÕÚ¨7Ö3ÅÓöý€œ-e´ù8M¢ç»Ë÷ÍÛ(r÷õ@?,—ªm«;—tk¦ý¨~Ÿ«…•v™ +QöéL5˜?”y*¥M5Û
Ù€3O ƒ´µdŸŒ\PÙ¼ÆRqÉHP’î} +0’¤È²Ô˜è‰»Çƒ +ð—e2÷Já*CºAà,ð\îʶ
0M%É$#¦ peœãö¹bˆØf”d|`?-LÇ&ä§øºq«Í´ °QþtU[ªî®ºìs ^Cm, +ˆŒ ?ÁãÝMÖèÏ~@E×]aÃÐì=÷Âj +âºkñ«;Õ=(Uã«-Â*˜ÖÀÚâûó4aÃjåì†9µêÜÖm…aݶÊÝÏUç6ħÚlPK»t¾.Žîl„ª/ªWÊJy¸Ü,÷‹H?Ô'¡H`ÑïjÃ}ÓÐÀS]…¼H ¥áýZú<¦¡§ò¡‰
"._®võ±]<Ü»ž/CˆCÞçÂõÇ©.Ê +؆Ž›P|{€Ô«¦›äç·µžaw•átö>Ïï·ëüª½‚àW´IËò}€%tþœ¤Ãd:ªîX©öëyﯪ»Þ•›Ðò¡èe9ó~”† Þ +2 +Gx̽F0õïSkG¶Ýs„Ë\öñS,Ä4Rvv”ìÌt€ÿBK±G'ó +¨zÚÛ<–×ÛJŒZóÄN&"âõÜ~Q8“îFæÒ~± éTÌ"8K0=eŽná÷¼ïÑOe
ÙzÀÁmÌTƒ¿wöÎ!'Zç’–WÊ.æ›-[üE3Ãàìrý¶ç‚÷~GˆIjŽeàÉ;sô•}{PËJsVcqÖ«0²~h&Ò‘ç„Ý¡j!?µ_´Á(6ýkö“z€ŠÃÒØžŒ$ÚKëri¿Ä³t¬}ï¨;}³„´`Šš Y¾ž¹SÛò¾jŒJæ64,§•Õ¡n,-2ÄôªaaàxÁOŸ~fÊ„‰O endobj 1376 0 obj << /Type /Page @@ -4972,27 +4983,30 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1387 0 obj << -/Length 4140 +/Length 4137 /Filter /FlateDecode >> stream -xÚÝ[Ýsã6’÷_¡ÊËÊU#ß6OIv2罺$;ãL*›M]Ñ-1#‘ŽHãݺÿýh - -‹·Ô¯ f,ƒÝ,<Ácq¬\ÏŒ
Š/är_T{ŠÎ-µžN²þ8És{þ1i(v>Ñ" -ý?™îMì_o½HÑûígؤb©ÌLž«—†ÒüR(“IÊÙó¡tH5J#ÕÀÏ5‡1LÄ4*óçEˆT FÁ6=1 -'|Ù–Ç`<öA’(rÛ«^—HõÕÍ·Á–ÉØ«$‚…̽ ˆõ$FŽöôðлÖ˳ßcÃéÃ6À» -;uÕ¾êì.]”¿¯Ë‡.1€‚Œ”s3àïèÛ®8v‰¡ %B”¶;™HÃԔ屜eªÁ+Ê ÏWÖÈòqW]SÈðãGïð©Ø·ÖŠr¾¬›ÎŒ«Pn°¿ªgŒ_[Pýœ2TKcןZd¿Þu]î‘ù¡Ù”`\¬þæmÖâ?¥¤‡õ§æ„îëx—§”Hra¦å{cÐäAìǪÛ5§.ä8Þ6voøl©òo+kèVÛ‡}ñ4rµ'—w`^U¶ýCÑŸë¶÷ŸçRi!ý”Æ€Ã|®ˆ.¦Jö¥–JŠ@ó©R¤ŠköLF$9dz:·-rTÛT£2Á9ŸbÈö"Röþ.É‘1Á¦.r´û(…úFx9ò{ºÈïC™Ê(à`iÔ‹±¨w£)©3F
})}†‘Úž,˲_R¾–kP"· GgB±1\yf–âk% -…eô»sß•G0–»Ú°5TGÝw~/³?÷Â/´¢ÂÆñÃf}Ý|•_""ÆÄ4vÉ(±H+2U݉6ámÔ&´+ï†#BÇ}sª7)Øo•n•˜ñFšwWðÇñSJmkß4°pèH¹È¤¢êlIc ¯(8f’ëAa̦eþ»¦L€õ”‹`5’YsÙTÇŲ<…ÈÇ¢Eæ›Òê²v>ÇUÖØò™ÅÌÑ/¡™’ÓêçÝ©Úo09t\-ªï
=fô+Èzû3…1L°.Nô®y^O’ -3±WáSäMÙ®Õ](—ð›æ¹h1# ¤sðDfŒq HxòÕ>$¦\Ƭû-ø1ç1HÎ)W#i1OuAˆsnz¡~hžŠ Ðrž›+á+B¶í“j©JD -¿m¨½¹Ï$Ähd{šû”#“ÂÖúé°7çŽ!7ÍeúÔ–†ž×²ßÃèÕíèî6~ØÚ†dœåéè|#ï·z(Ȩ»ò -ƒIkføx#û‚˜C[ŵøka*æ^þ¨¶µ«\!D»~ÂÎ^6x8”EíÙ¦waø㬣¥&”óeãú7_¡ƒëöƒ¡€QÉuaTµ@ -TNõĵÌéƒ<ºFV]ñÁ¥”;ô
?»¦í°åKÕ”-”¶$›ÏDÂ7îq{ò+j{\R
$|ðôÞ)÷›…ÆJ¯À'Ðëk^кót¶Ò\¬1ìÃcuï¥k¾}f7²õU;ƒU
Ñ#ûµ;Bxà)‡iÎß … 6‡±w_Õe–,CÎrö2ÿJb–G†ÓÆ/´0AǼ ?8×bŸýªÎ;\&ŸS00ekÊ}™Ë!z´jÁo‘²LÐ8c&ª˜Œ÷'Ѥ”% (P®_¸oòL²XOèS?T4ÜçØÕà/ºäTD͉¸x‚ -)±†M '•*ã˜^N.J2_Pž>ûjƒÍMs(Ü~*dí‹eÍi»ÃnwÒ¤uYú—Y~ëîäÙ£ì*H‚Ö;»æ_ø£ýÝÉ¥œ9Úîˆf -ï«åúk+Œ‰„šEf4å“]2J" ÑÚ,˜ öÆ@þ’ë·¸Ú«D©Ë·«Èq5d‰G8f´³œÓýÈϘ±» -v®£ºRaÁ.’/W¥ý™±þû¢?#&ž@ý°gsÝcƒ=Ï]`¥D„Å~ÛÁßR'°9d~qSÍf[\ÆôÐ&5e*¤2‚±~Zmü¸«BU.ósMÐs¶H¢ª§–űuHO¨€ï U¬Ý™6¶Ý9¨P½Ù -‰`D„ôJ¨)Ú>³o‚rì&ùr}:†({Ï“ò??Ø¿¹3v‡b½:ldz=÷¢¼éÁ²Çõç¾6ñV‡IÙ0ç ô{W´åJy¦e½n<B%½þÁãRï -íû……„½(¸k{—@_BÌ6¹LlNúL¼EOU`7FxxâPn¼qr|.¼Qð97üù-ª3ÝßW˜Hä³ö^–Ñ…{Ä>ÁÊVìVšÔçQ8ËÒ.p1:\Ì.øµ‹ŸªÙZ®¸lIúTÍþ·ã³MÛâGþP¨óò@æìÚ6œ_³gxnk…ú’ÕäÂE•• -7£GrþÏsÿëÅ¥½c“:° QÈOþ?°þßã,¨ÒzæÒçD&+8Þ´ËdY¾úžõ—f_ÿÞ•uÒïð²>¼wÿÓRÛªÁ{ß+.”ZRr~Q /W,¡‡ÿ+_àÂendstream +xÚÝ[ݓ㶑Ÿ¿Bå—hªV4¾ ÄO¶³Þ›¤bçvÇër×GâHôJäX¤v<¹Êÿž +D«!ÕW·WŸÃõÂdF1µ¸½ðÒÑš.n7?-yƳkà@–ß~ù×××+&ÉòÝë·×R.ßÃ{þîo¯ß~y‹åíÍwß¾»^åĈå×ÿõåßnÅe_÷í77o¾ïù\ÿ|ûç«×·qÙRÂí~½úég²ØÀ„ÿ|E2n´\<Âɨ1lq¸’gRpzöWï®þ;2¼uŸ¦4'$ɤr±â"Ó0~ŠŠªÌp%¡b‘ƒÜT3hH“)ÎxT>£åkšIcä"RYåßÛòL@ i¾ÈEž©<§Ÿ"Ò€…I°”HÊŠT‡r³ZïÊõ‡uSß_¯!ËŸV¿|üçÏ¡ÝY‰?ÿFŠ/ª(hYhÀrÙTÇrÝ5Ç'$
+E¦˜¤ž2pMñÌa’,°¼¯ö¥.Áä׌¨ÈqªPšå”ªE™4<½‡<ÑjHu¾ŒÑJÕDgÿlê³¥\ƒ¢ajÏ +©'K˜u®ò±·;¯˜‘´ÔdTåÆ+&!æ„·°ˆ<,ÍÃñšêe³=ÜÃîÓÛþŠ¶+Øþ!l_bû¾ñíSÝ¿ùoêgÔÔmÖë§kJé2›Û +\Un”ú„=0d1¿-#ÕÅm©´Ê´ âSD°˜ß–‘*µv~+n~ùõãŸâÆ\'7xxéWt½/Ú6±˜É´Žvù5 ~\‚Ÿ”asêN]‚ã˜ìY×1&ýýžcõ˜` +þÜzX¯¥™‘’ý§Ü?\ùD’j[7G¿¥èTPXĸ¥~I0cìfá ‹càÂxflP|!—û¢ÚƒTtn©õt’õÿÃIžÛóICa°ó‰ÁPèÿÉt_(hbÿzëEŠÞo?Ã&Kefò\½4”æ—B) ˜LRΞ¥CªùP©~®9<€ŒÉ`* ¦Q™?/B¤JÈ0 +¦°é‰è3â]u¨ö…
`\.»&X…Ì¡3õU*²*°ˆ¨×;ð™Žyå~ŲØ?O-ömN‡‡»»]‰}èóm„Nˆ›]”
?ÇÇö¡\W6 +—+ÂbňȘ"tì‡qÚÚy÷ôP‹ýþ »ªzá7Õ½…÷¥C84øCÑY³ÎæŒDÀå‚\0’!Õ¼‘D*;c½YOÍs€:Ò<?h J:Z,/s>ôÖ…fKÔáéü³ÛIТËMÝ5öÚuBü´Ç«éDƒ7x˜ÚD"F2+PtÅyŽtÀ*6-JÓÛ'€Z`s¨j€^Ç¢s
ºœ¥$îS‚ñ€ÞˆÓÛÐŒš‡¸TvÂœˆes¿þ V8á˶<~ã´’D‘3Ø^õºDª¯n¾ý¶LÆ^%,ldÎèõ@¬'1r´§‡‡æص^žýN¶Þå +®4-ÏJP–>QØ©«öUgwè¢üm]>t‰d¤œ›GßvűK±È(¢´EØÉ4@¦¦,å,S
^Q}¾²æ@–»êšB€?z€OžµV”óeÝt^`\…rƒýU=cüÚ‚êç” Zš»þÐ"ûõ®¨ërÌͦãâ`õ7÷h³ÿ)%Õ8¬?5't_Çk½<¥Dâ3-/؃&b?VÝ®9u!Çñn´y°{ÃgK•ûXYkD·Ú>싧‘«=¹¼óª²íŠ6ø\·½ÿ8—šHÙè§Ô0æs¥@t1U’°/µTúS°˜O•"U\³g2"É!ÓÓÁ¸m‘£Ú¦2• ÎùC¶‘²÷wIŽŒ 6åøp‘£ÝG)Ô7ÂË‘ßÓE~ÊTþCK£^ŒE½MH1jèKáè3ŒÐödY–ýœòµ\€¹9:ŠåˆáÊ3³„_+¸„H[«rU1|wÜ.°ñv`ƒ|5¤?g\ƒ
Ú€¯î׃H–3aF‚$êAžêÂø”sÐ6¬íH€XÙ”äIÞØXgXÏò^wûdñ¶(×ì÷xÂY³»4e”ËÈë4щK¡æ×S…
¹)"
*í¶ˆv{ŠhÞ!Æ…ÈÅ9Y¶pЀÜW‡Ã©ÜÛcý8¶ +ÞàuÝÙOmp‹_"âör¢Î¦ÚV]a?4ieÑâLç0^Ñá[ìvPú˜„ÞÛ]ï7žU¹ÆçΆh®|Í1ìÃ3V-þÖ
¾~t‡{ìH~¬6þ‹ ‚oÇ;ˆíB(¬Òè "cb"ΗÈf+¸DBÛélÊûâ´÷iѾYÇ„·iŸ—1#.Ú«&ÊôÎ*—èÓ#îÖüÜ+é<ã2°ø¼ìÖŸÛÁ2W.Od~`Zш¥œ™¦ ³PcµaV(,£ßû®<‚±”Ø=І¡:*è¾ó{y˜ý¹~ 6Ž6«èëæ«$ø™1Æ ¦±KF‰EZ‘y¨êN´ o£6¡]y7„:î›S½IÁ~«|p«ÄŒ7Ò¼³€¼‚G8†ˆŸzTj[û¦ù€€CGšÈE&UgKåxEÁ1“\ +cÖ0-óGØ5e:ø¬§\«”̚˦:&ø+–åy,D>-2ß”V—µó9n¬²Æ–Ï\(f.ˆ~ Í”œV?ïNÕ~ƒÉ¡ãjQ}¿hèY0£_AÖÛŸ)Œa‚uq¢wÍóz’@œÊ£ž¼!Àè•|[Ö6‡,½PwOø‹à¼®êm*,1™ K)vü•Õ嶬ñëU‘V˜Ñˆ½ +Ÿ"oÊv}¬îB¹„瀨Ø4ÏE‹ X €'2c„ˆK@“¯†ô 1åŠ0fÝoyÀ™8/ˆArN¹I“(ˆyªBœssÐõ£@óTL€–óÜ\ _²mŸT«HU"Xª`–ÀEWømCíÍ}Þ !F#ÛÓܧ™¶ÖO‡å¸9w¹ l.Ó§¶Ü0ô¼–ýFǨnG‡t·ñÃÖ6$ã,OGo-ày¿ÅÐCAFÝ•€
É*Ÿ‰UJg†Ð‘WmÂr;Â(tLËc¶Puë§é³"yþR&Ãìe,èj.„‰ÑP×þ´I3B&dX<,îuf#Ø9˜Tk=¬|ÿÎ> ˆ°^>"HVѶͺ²‘QLZ3ÃÇÙÄÔÒèÜ*®Å7XS4÷êðo}@µ]å +!Ú-ðvö²Áá,jÏ>0½ÃGg-5¡´˜/׿qø +\·• +h ყ÷æH¹ß,4VzÝ +×ÍDxuÉ4 ½‰ð y4ÃüA;‡†Jï)àBÆ£îžRÒ€©2©_°¶†Ä¼É
ÞrlªáúB%ç̈ +ªµë #<ÁfŽ¶·ˆƒâ³üUH‰5l=©TyÇôòprQ’ù‚ +ôøó±ØWlnšCáö#P!k_,kNÛv»“ ËÒ„¸Ìò[w'Ì>eWA +ì´ÞÙ5ÿÂíïN.…à<ÈÑvG4Søx_}(ÇÐ_[aL$Ô,2£)Ÿì’Q LˆÖfÁ±7ò—\¿eÀÕ^%J]¾]EŽ«!K<Â1£å\˜îG~ƌ݅ÐXP°sÕ• +|&p‘|¹*íÏŒõßý1ñzèÏ`€]8›ëìyè+%"(öÛæþæ:Í!ó‹›j6Ûâ2¦‡6©)S!•)pŒõûÓjã‡]ªrñ˜Ÿk‚ž{´EU=µ|(ŽCzB|bíδ±íÎA…êÍVH#"¤WBMѦð˜}”c7È—ëÓ1\@Ù{Θ”øùÁþñ;ëÕa#Óë1¸åM–=®<÷µ‰È0°:Lʆ9ç +`0g׶áüšm<›Às[+ԗܨ&.ª¬(6ŸTg2»æÔÜšÒtF#`°ªÏ endobj 1386 0 obj << /Type /Page @@ -5024,15 +5038,17 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1395 0 obj << -/Length 1605 +/Length 1602 /Filter /FlateDecode >> stream -xÚÝXÝoÛ6÷_¡‡=Ø@Åðûc}J»´Í€¦YâºbP-&*Kž%7
†þï;Š”,ËÊ’uÁP~0)Þw¿û I„áG"-f†GÊp$0Ñb5ÁÑ5¬½œ@·DqŸêÙ|rô‚éÈ #©ŒæW=YaI4OßOŸ¿:>ŸŸ\Ìb*ð”¡Y,$žž¿>ñ_.aIˆé»–âù›³§/ß^ÏŸÎOßœÍb…
ÎûyßœŸìø.gæ?ONæÝ)ú'%˜¹#ü1yÿG)øç FÌhÝÀ#bV.œ±öK>¹œüÒ ì6¬c–L#¡©1§=Óc.#%’Œ²ÆtåºÎÊ¢šÅãéŸî<5Hke¢˜d„
]j¯’m^Ç•Ý|¶ON¨B~äiÇÇ9>Ù[0úM‘.~‡©'ûxW~m^оæ8ë†d¾Ì*ïŒß0¦¹}â'ÙUø/ª:És›úiRyS`d087l½8rÚ¡EY\( ’ZÒ@6¼)·y»Iž—7~X/,ÊÕ*)ÒG¶‰Gi)`¤aà;'÷‡@jz¤¥dØØ©èM¿±y™¤#šÆ!ö«KPI P©(ì¢ö“öcçE?]—›@`ó8EàO¶•
ÜË0(’UµÐèß̈ž6º:£iâ½ädþwY6ÉËE’ïƒÌÃe•,–Y,~cýv~¶™éé¶(²â:¬fõÒ®Jç®n¬R7Œep - Ž -$ÑûQ~ÑÒ¨á^é½£0Ñ3JìÓµ-F¶–Q¥y ^{$_o’•ßá&ËgŒt@ýl‹<’ßúµ…ð“§HÆ<Ê)yO™»²¤H ÖRúäì7rÎov¸-·6>dšúå$¯Jo2Æ$â”"'ͪuž8¥
I08ÏÆë_Ë"u&=´$! ÜZ²ÕCÝ¡†JfZÂ>v›-“Úï úûO…m -|jR|IÒ݇3r0# ÀËwi/½ÓŒ)¨Ñ–çµÝI}¶à=BT!o1ð?§Šï[Ìëé’[¦>ŽM FéÖ¾8QQA=ħ¸ˆ·!Ö·ë"FáR£4¦§ñ‚ c„°!ššÌRPQ†
Weš]ÝŽì¦!Ñ*bvIuÑîI“º«ì¨3Zga¨³ÄHˆ™@„`Ù°¹’Îbè/ uÌ®‹dl.ÅrèÅ÷í«ÝÔIÖØ›LßžþêGUà‡ íJ/|i‹§#m‹§[.=G|jW×v‘9.ü<Y4=ßO—Tþkj«Å&ûèû&(ÔÅ`·½ªéÄÌ-küæK[OõŽÐƒâÇvµ+Ûª«Æã‘ -j‹Aû%«ï†Ùãõ»ƒyT˜Á5\qrʘÖÐ!)Ù¢ìôl~7Èv
cC%G!¶§ä±Ç:è÷‚0b(ŠH0=Úk;xsƒ++RÆ]ÚŒ4\hÆžæpton|èCàî}hpö…“a¸ïÀ}!‚¦dùk>!påâRNŸžýäHÅç´}GøäKm‹´}5»Ü®ÃCLÞ5÷
»© kRr +xÚÝXÝoÛ6÷_¡‡=Ø@Åðûc}J»´M¦]âºbP-&*Kž%7
Šþï;Š”,ËÊ’uÁP~0)Þw¿û I„áG"-f†GÊp$0Ñb5ÁѬ=Ÿ@·DqŸêÉ|rôŒéÈ #©Œæ—=YaI4OßOŸ¾8~3?9ŸÅTà)C³XH<=;~uâ¿\À’Ów-ÅÓ×gÏNŸ¿=?ž)>Ÿ¾>›Å +œwó¾~s²ã»˜}˜¿œœÌ»SôOJ0sGøsòþŽR8ðË FÌh]Ã#bV.œ±öK>¹˜üÚ ì6¬c–L#¡©1§=Óc.#%’Œ²ÆtåºÎÊ¢šÅãéWwžˆ¤µ2QL2BІ.µ—É6¯ãÊn>Û''T!?ò¸áÃãŸì
˜Žý¦HÀԓǃ}¼+¿5‹GÏh_sˆuC2_f•wÆïÓÜ>ò“ì2üUä¹Mý4©¼À)02„‰G¶^9íТ,.GÐI-i ^—Û¼Ý$ÏËk?¬—Öåj•éÏ#ÛÇDƒ£´0RÈ0ð“ûS 5=RŒR2lìTô¦ßؼLÒMãÀ{‹Õ%¨¤¨TvQûIû±ó¢Ÿ®ËM 0‚ùœ"ð'ÛÊîeÉ*ŒZhô…ofDO]Ñ4ñ^r2ÿŽ»,›äå"É÷Aæá²Jˬ¿¶~;?ÛÌôt[YqV³zéG—¥sW· +iŠÕ~@€žõ p|¼1d\²Ø#ˆò"›¿Æ˲ªûù7ÿñTíÑí¢Ì“…hS)Fþq°yß»°ªýÿ2i1_„…•9ÿ4Sî}#¶Fߌ¢ÆˆRJú +‚OŒ8‘ú>Y•"ãN0šSãNbÜy˜0Ä„ í¨œŠî|‡Fk£Í…G’‚èý(?ï@iTƒp/ôƒ^ƒQ˜è%v‰éÊ#[K†¨Ò<¯=’¯6ÉÊïpåÎ3F: ~¶EÉoüÚÂÇøÉS$ceˆ”¼§ÌmYRH¤k)}rö9ç7;Ü”[H2Mýr’W¥7cqJ‘“fÕ:OœÒ„†¤@œgãõ¯Öe‘:“Z’ Pn-Ù…ê¡îPC%3-a»Í–Ií÷ýý§Â6>5©¾$éîÈ9˜àå»´—ÞjFƒÔèK‰ŽóÚnŠ¤Î>[ð!ª·øŸSÅ÷-æõtÉ
SŸÇÀ&£tk
_œŒ¨¨ âÎÓ\ÄÛëÛuH#†p©QÓ‡ÓxHAÐ1BØMMæ )¨(Æ«2Í.oFvÓh
÷1»¤ˆºh÷¤IÝUvÔ³0ÔYŽ b +$ÄL B°lØ\Ig1ôÐ:fWE2 +6—b9ôb„ûöÕnê$kìM¦oÏNó£*ðÄv¥¾‡ƒ´ÅÓ‘¶ÅÓ-—ž£N>µ«k»Èœ~ž,šžï‘§K*ÿ5µÕb“}ô}êb°Û^Õtâ?æ5~󥂧zGèAñc»Ú‡mÕUãñŒH +j‹Aû%«o‡ÙÃõ‡ƒyP˜Á5\qrʘÖÐ!)Ù¢ìôl~;ÈvcC%G!¶§ä±‡:è‚0b(ŠH0=Úk;xsƒ++RÆ]ÚŒ4\hÆžæptgn¼ïCàî}hpö-…“a¸ïÀ}!‚¦dùk>!³˜ƒ²Ó'§g¿xçÒí#šÀ'_j[¤í“ÙÅv^`ò®¹lØM-#’D´¯íŽ=;ü|$
endstream endobj 1394 0 obj << /Type /Page @@ -5081,20 +5097,23 @@ endobj /ProcSet [ /PDF ] >> endobj 1408 0 obj << -/Length 2463 +/Length 2462 /Filter /FlateDecode >> stream -xÚ¥YYoãF~÷¯ÐÛR€ÉaßìݧÍ\px²cïA’‡EÙD$R©™x~ýVuuS¤DÛÌ>«ëꪯZl‘Ã[*Ë…•ce¦r¦åî*_<ÀÜÇ+ÖH%2%…€ÎÌlªD‘©‚›E:&òÃýÕ›œ-xžiÍÕâ~3œ¥Êt!Åâ~ýkòöÑíûê°L¹Ê¹üýþGÚ&3S†Ûr8Âf¹dÒoø÷ú‹kÊjM;ÞÝÞQãCåúã¡ê -LfBj(h“å8C -2cË”åyžÜ¶}½y -[øÂfVsv‘I%éLŠ:¹ýtóáj×~M⨻«ÊG×ÔÝŽºý£ëÃüvÛ~íÂ"×ya±ÝU‡/Õ!Lô--nˆ£@¢ªãÚûR]l3I»¡A<ú¡:£åP0…±Ì*Ž(ßÚ¦ú,äB%k×»Öæ*¹ihè°dERuû¶é*AjøuƒfOjb\g‚™AÚA;—ê”,ÓR˜°lãiw‘®ÿDÍ`›D\™\ã@š3¤l~·[j•UùǔٮŠÜ{3`«îƒÔ¨½º
ò‚QI)±$(‹yNé\ð.ÔµÐêø¦Êã”Öô4p¢×¬¯ÃÆ
}ÁÂq¤©ûÚõŽ;?©?¸¦Û²hJÎ2VòÊ-zGn’]KP¯n6íaçzϸU{쩉Ž<cF2si^3£°™Èa„–]I¯jlx`c]uå¡ÞŸð^VÌ9QžÆâéÍswRÀ218Q;¢_7¸üêýý)d–ÁU F^@ì‚D“‡‡5>bØ°>o 6qäºÈË]Už˜ÑϘ†sÆÒ&Ç'¼L_f$ÆR ¡‘ñ‚Üœ
\GªàœÐ@S,Y2XÇГEÁ夌J±‘¶Y!!’òݶkÓg
Þ¤ˆnriˆ`pÔDdþeãëÓñ†K\ÒE
Æ1,˜-&]˜&¬y‰3JÈ‚±Er?ëþé´1ò;B¨‘¹ËöBû¶l·$™K`Ân_•õoyÎ!CúÈ&´zšêŸ>xK
fÎÎÕ2xã™Ö È^ýú{¾Xƒ~~¼Ê3aµø -< -|±»ÂµÖ*G¶WwWÿ(B+D¦s¦Ÿ§Eûr š´C‘J#w©à€ÄÔ"ƒ°›…Åø³ÂÚLæ–îìíHÇJK4Xž)Á£)>-SÍ’{øÏ“÷çšš’kB©ŒåoéâÏ\Yi E£¶—õ¤?ðæfÇïZh1*NÇ”½Pz4Ð ™q!-a#t‚¢ð¹>-—Ò’+L¼0É·%ƒàï;,(]6À…¦Öª‘0§´C}XÒBä8ÌœÐ!íkÒ«û.¤p -;$²OÀ‰Çkb¤[\U÷ôݶní5Q@1–ÜáÝ<ÕÍÃœ¦rÀ½9?Ë…žN°h#m›-|ú׌`k!T àA…a -£K§(ù¶-ÝvNtÀø…±£ü›óÀN7¿”‰ZTŽckFöÕaW÷=:v}H˜lþ£ -òÉ Le ǘÙt½nº¹J,bT1pLvRèÓS;}}¬ËGò‘ðr ˆUü>TMup}¼q«§Ù2‹dÆ/sâÿcþ NŒ àG‡þ¸a㮪. -\Q\LJ©…z&ŠëÓñ†™rä‚î´&Þ°&‚¬"/X2n‹ptY…E¯±("™²AY#áð€½uÕ»zÛÑà‡FÎÅôv
¡Nˆ‘‚'ÇÎG0ÿ©:¬*ª”ÂdW?4heœ¥#ÿ<V]ßш‡Ã¸lUÑÀÎCk ÊÂ;ŒÝÿôþ—7ïîhxZ’áüꉾp7Ó¹§8ÊwB‰¤ª Rc{>rÚ81jÁÕI {ìëš=„ôKO,°dÏíä½ßle]¡8„oH¡ëë/b6<~¾Àô‰¿@þ—¸cjLng¸+Õ"d=pà‘™©^\DggdŠéñëvçêf.Dö×l"¸ÏتH>5¥G/Ú'BȂׄ¦®Âµ\×N]GBÖ*Ѓü_>Æ
î8ëzêÐC4Ny]5S0âc~Áp;&¯áí0øãdúLÙ ×ûlÜùÛ¥—ñðÜq#©gá†Ç‚_p¾–Çá6#6¸Ü$¿å*ÿv‚éQãß%ïÞ¿…yFS›6<šc‡€¬ynþ¹Ääóç»›×4[iA¯0$¨yŽ%g.¢ÛàÜ‚¢·ŸÕ„Š¬9EtƒX0ãŽ}‹¬|¹c£—ŒsɈiÕêV…vÔ +xÚ¥YYoã8~ϯðÛÊ@¤&ÅKÜ}Úé™ÒØNvÁÌ<вœcKnKîžô¯ß*)K¶’40h ]âQ¬‹U_1|Áà_*cÂÊ…±2SŒ«E¹»b‹˜ûxÅéD¦¤ð13›*QdªÈÍ"3ùéþê͇œ/r–i«Åýf8K•éBŠÅýú·äí£Û÷Õa™æŠ%rùÇýÏ´Mf¦0·18ÂfLré7ü{ýÕ5eµ¦ïnïˆøP¹þx¨º—™:´ÉɃÌø2匱ä¶íëÍSØ’/lfu®Ã!2©$éOB'·Ÿîo>üJtÝá¯I}îªòÑ5u·£ÏþÑõa~»m¿ua‘ë¼²HwÕáku}K‹’(°¨ê¸vë¾VÛLÒnh~¨Îx9TUá<³Jå^•ïmSýæB%k×»Ö2•Ü44tXò"©º}Ût 7üuƒeOfâ¹Î7‚¼ƒu.Í)y¦¥0aÙÆÒî"_ÿ-ƒ4©¸42¹Æ-fÈH~«·[¢ÊǪüs*lWE齪û 5Z¯nƒ¾`@4RÊ!@¬† +X&† jGüë—_½¿?¥,Ã3¸ +D°r¤$š<<,ˆø<ÊaÃút¼rØ$/ø¢,wUyFgyÆ5¤˜3‘†49>á…dú² 1—JH</(\!Ø t¤ +Á ºbÉ“Á8†Þ˜, +!'e4êŒ´Í + ÙŒï¶]›>ë(ˆ&mE“Kç@Æ +í۲ݒf>/»}UÖ¿3–C…ô™MhV)ô´Ô!?}þð–nÎÎÍ2DÏ3-¬A•¿\ýö[¬Á>?_±LØB-¾ÁË€C¾Ø]áZk•Œ#Û«»«ÿ!…"ÓŒëçyÑ>¼I;Ô«4J—Šð˜zdPv³°˜_`VX›IféÎÞŽl¬´ôHƒ³L‰<ºâÓ2Õ<¹‡ÿóäý¹e€§ä šP*Ëò·tñeWVZ+hшöºžlàÞÜìòÅ»4ZŒ”ŠŒÓ1g¯”ž&M +“v(@&²…¯šnKŸ‰j7g]fÌ +XÑ9ó}ØâúòÇÅÐúãG¬ wvÕ”Ù´±ðÐ&œ•êœ=ÛŒÜË“#¨ŸÄžC›âV0³%îœÌ…óM I%9ƒÁˆ›‚Ðâùp#}o›Ÿ‹$g³± z_?Ç8W—ÞÃtßnëra¤Q¦°au¹õYld,þL«¡´«a—G½—¬Ž±BFýºå *!A•ÛiIÙAßwæ7àpnC£ˆDè¼g¤’pWµüQÝefŠº£[¹/„}8®¥=€FiT`ë5߶¥ÛΩ¿0vTYÄéæ—:Eí8R«0²¯»ºï1ÐðÓ§„Éæ?« ŸœHÁU¦zŒ…M×릛ë4À#FƒÄä'U€=M1õӷǺ|¤ /ŠDÅ߇ª©®7nõ4Û¦b“ÌóËš8ÅÿX¨sÄÑ¡?îCÚ¸«ª‹„)Êëø!µP¯õDq}:Þ0ÓŽ\ðöD öDPUä…H&‡Ûb']6EaÑkb +•Cú†Ú¸¾þZ!fÃãWá„>É·Èÿ’tÜB™ÛéÊCµ†YÏ&”däfjQãÙ™âz|ĺݹº™K‘€ý5Ÿ(î+¶*’OMéÑ‹ö…ªà5¡ƒi¨äZ
¡‚k§¡‚#!‡ +ü þ—qƒ{ +F|ί# nÇä2¼†xœLŸé +t´ endobj 1407 0 obj << /Type /Page @@ -5197,31 +5216,32 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1430 0 obj << -/Length 3624 +/Length 3622 /Filter /FlateDecode >> stream -xÚ¥ZIw㸾ûWèú½ AfNžnw¦ç%žŽí,o–LR§)R#RV{~}ªP.'>äéÀÂjùª h%àâ$L2™L¦ÃXDñ*ß]‰Õ3´ýõ*â>kßi=íõíãÕŸ?ªt•…Y"“Õãf2WŠ4VÅOUx
3ˆàÓÝûûÛ¿ßÞ=^Üüíz-cüøÃÝ-Q÷7woï¨ø³ˆÅ§ÿ|¼‡ot½VFËàýw7Ÿoï©]ó¬7þuEQps÷þö5}¸ã9>ÞÞàZÿ¼¿}¸þåñû«ÛÇáPÓƒGBá‰~»úé±*àüß_‰Pei¼:AA„Q–ÉÕîJÇ*ŒµR¾¦¾z¸úÇ0á¤Õ
]dd$B©¹ÀI¢(ÌâXÎXga¢¤bVÊx ÜÚ–tÆ_Û㡱µgšu‰G… åäjÄj-u˜éH»™nj7 òmžËq°³EIÕ}K_KŸßÛ¦¤.Ç®jž©²xmì®Ê©pܶçÁöp¥èú–Š5V
¯°-ǹÿĘœ%á³À-+ià¸U7æɸÎûv§Æs\„sîl_嶮_¡_¤‚œ¶;-¨â‰h7@tåá¥<}Ú–ÍY3.~èz*®£ §òÀa¿8®¹¯mŽÇYÊ·•0’©vs¶ÆÈ^°æ8í숤_›ö°sÇÑÄÀî÷eSÐMA5M
Dùµ/›®j’=•$-6 Š*NþÚÔr$n¸““aX˜UîXÓ¦¼=÷»};Ù‹PãÅŠà\mê²ë¨Øí˼ÂvºKäÂ:Jã03BÏ/¼…Û;TEQ6(8ÑzâèŠ!É$ó"xª{`~"mÏÍMÁ›Ú¶Çšé¦åÖ'ž´,*2 w¶9º}£™ -‡;4a¦dêvM›LÌ(~@Ÿ*§¤@Ùºk‰jóÜâý±Hc¯CÕó`´˜?K©‹ãn_²œØÒûùóv·¯Ë~(5 }ÇsoÎ:“<Tà{JRºt¨©ü@×´ ™ƒk{Îdà¿Ä3 -š›v Ê,êN—EÝôŽÐVÚ|ËýÃÚä;¸l!û¹=v<Y¿µ¼À‰/ -&|òmKDW·'îEê”]2%5™µgœ@r”;|GvAaC²þÛø;ܼÛ㧦ëK[ÀŽ¥ÒÌl™xióùŠ²¶¯~>§ÙnúºK€oÓwW5Ǿìܬ -NE*m¶ -’Ý( Xx‹"–W®*?îºÞ6¹»9”8¥—_fP&¡%þìÀÆs‘˜;¨t=ó:Ï+ýÂzÛ%Õ*LRÍŲÎnHÑB>7Þ™Ÿ™1ãÆü›¶#cgCe2š3¨"±Žùpê+Kâ´®üÀ%ê×m}Ñžx–óƒí¶Nº`;=µyIJxnÙWja™™(Æ_2ÐÁÝ5àŸöí¸« &B*zã1zæϨJP`óƒTÛ~!Ê)bËæzr]m;2NŽ÷¹è3ÞÈmº³÷Xs™Q»ó>¤œ+±HŠz×8.í´wSx ¬Þ%~µöÞîÌvÕ®BÓé -'»èÍÄ ÆjØœŒ˜R<5ÿÜ·£zgvà -¶ìϧÎ#vhŒOŽ¼Ÿ—ÁóÑwú’¦S(G2‚Ö:†dñf&صîš3/¯9Èl -©¡ÛÍ¡ü¹¡ê~Û’…˜m(´
9M\,8J6Õ0ñ|6úä”'cÕ€ -0¶G^hÁÉOÄÜ‹ñ(AS˜E×7ÈÅä§#<s~Îéwçèbìá[×)˜Z6ÊÑÔ(Ç:<ëM÷¡)x5IöF\ËP)‘yKO¶Š$t¦{Ÿð,© ^Û#[û‚ÛKÙƒBÍŽ<h:½G(øfK½G.¤Ärƒ'ˆñÝô6a̦½;ô¼nqÄ!Ð#RíáË_Àö§qð¡êìS½hÎ&¢75d3zt1Ãma?
^²c‰H«3ÖghÊòwŽO=M€U
‹Ñ¶¾åf°Œ`)‡)ÆH,óm»@βKKÎy"¤n -7xI€JB瓹ؗšˆyŒ›x˜9„|‰(2êTgoÆY:K=ÇPXeÁmá_â–7’ˆyÏûE½ˆdŠ4QóËqÓÙÓÂÕèôB§o\Íl¿"xgT·¶˜n8Cì+ÎwÏløI‡™PÉ\FiºuÙ8!¾4#,¶á¡Ï|
Ú@ÀÿÚäK‡†87²7ÈTr'?3IÖéOi&1=Ð,p@…‰×6ÒÏ1M
,LÓ{êŽömOöÁ¨CŽ¯F…"Ñbð
->nØé“IAIИŒü'T€wÜkªÛ8D•/UÉÆÈøhß °åhß¹63ÄKÐЯw -Fíñ€hKõ#ºçºÔ7“ŠL¿©>IG3õ¡U<î2°±‘ÞèLÇsÞü¡S{Ç"וÒfb µ¼ô<(lŽZçui›…ã
)°6/D¹AÂÑ]npJfY–t¡jH´rnð຦ûqØü£s)s`7Ë´.§Ó01™šÀ´t =¦›Òh@T?Ïæb
û¾Í[ëäFZ*I‹]ÍnVpdÁÈ©Š³%Ò -Ú'¿2VS*L8‡D~¤ôÀ$ÕÊ¥qÏ8Ï€ú$*—¦ÂŒCÃSoü<ÞÒøŽgûX8Û•ÒÁ¾<àÑP” jð›5Ql!¡ibG -ä
[HN²µPt‰8„E̪ÙÄa‡
Ïé,
6íû!Ï?óM -Eùµ¿Ž‚¡Åø¼_[,rCù{ìŽÃ³™XŠ¨à(cü*5'EU@öWÓ{h¯˜p*¨8–âzÆBçeÆj¦F¦Ãm÷ǽ{TÀø}pn±€¯±pJÛjÞ«í0ñOÛk¨4èÙ6Õï^W Ö?ú@Ç“múùÉÈ2A½§h~Ì‚Þ>²) -SyøôÓÿLeþàC½¼Ýí܆ÌtÿãQ¥q3ý®¹
‡:°HeÀN¯à»v>¦¬8N$ŒlØAE4ˆ -mÂñ¼!Mí<¯:³1Ð2„žâ‚ãñùeœKA¼™×½"b¡Å—["I¾
>yá”v˜xzãØZñÈ®ÝqMQ>Œ0lÁ
›aãž<úÃ'¸]Z{g¦³‚7`D€%Š`Ã%àôiT´$f•Lâ3<·}éˆtƘ:Ñwçž‚‹áNè×_*K… ¯°…XTmBæ1"öøjñ¹†ÿõ¤ò8¹K#ÕÙ——×?ºp^6ÿ3óa¶ÅºýQèꦋ9TGb~Bjy¥þËocÿïÉ–ùí;ˆa;¼Ue‚ïÚj«È© `HÎkÔ -ØbŠ•×E÷¢L§õüz’j -½°CÛ -=èÈÞ al5=.ýÛJÅ!þEj!¾ÃߟþïbÿWƒpO¥©\Ïö„'!PˆÇ€n¡Y–cŠäßÿÌõ@Hœ -ô4N¸CÖ\@œ®/Øàÿÿuɇÿ[suendstream +xÚ¥ZIwܸ¾ëWô-Ô{n@‚Èœ4¶œñ¼Ä3‘”åÍr€H¶Ä1›ìi²-Ë¿>U¨—':äõ…(ÔòU¡“€_²I³8³ÒnŒÕq*’tSì/ÄæÚþz‘pŸmè´÷úöîâÏïU¾±±Íd¶¹ÛÍæÊc‘çÉæ®ü9Ò±Š/a}øøöæúï×ï.Ž®þv¹•©ˆ~úáã5Qw7Woß_ßÜRñ‘Šÿyßär«Œ–ÑÛï®~¼»¾¡vͳ^½û×e’$ÑÕÇ·×ï¨éÝGžãýõ®u÷Ï›ëÛË_﾿¸¾5?x"žè÷‹Ÿ›Îÿý…ˆ•ÍÓÍDœX+7ûª8ÕJ…šæâöâㄳV?t•‘‰ˆ¥Êä +'e²I’ئ©\°2µq¦¤bVÊx‘Üz¬èŒ¿u§cëšÀ4!› + +ÊÙÕˆÍVêØêDû™®? ‹ŠG×>T=ÒhïÊŠª‡Ž¾Ž>_»¶¢.§¾n¨²|nݾ.¨p:”nàÁîx™ä臎Š%5Ö-¯ðXMsÿ‰70;KÆg[VÒÀqë~^Í“q;
ÝOç¹çÜ»¡.\Ó<C¿DEmvZRÅ=7Ðn€è«ãçêHôÓcÕž5ãâÇ~ 1à2‰ +*<Àî“ç*‡Æxis¾5¨„‘Lu»³5&&ð‚
7ÀiG$ýÚuǽ?Ž¶tw8TmI7Õ45Õ—¡jûºkIBô\B´Ôd(ª8mü[۬ȑÌ@¸µâN^LÆ`a>TùcÍ›ŠîHÜïÝlo,Z@M+¢pµmª¾§b¨ŠÛé.‘Û$Ock„^^x·w¬Ë²jQp’WôÄÓ5/B’)HæEt_·îÈüD»›Û’7õئێ[ïyÒª¬IÈ€Þ»öä÷f*ïÐÄVÉÜïš6™™Iü€~ª½’åš¾#ª+ +‡÷Ç"½ŽõÀƒÑbþ"¥.Oû~ÉrbËæ/ºý¡©†±Ô‚<=Ͻ;ëLò\Rï)ËéÒ¡¦}ÓŠdŽ +¬UØÊ(|‰g@”456íA”kXÔŸÎ&‘Û
žÐV¹â‘û† +´É7pÙB÷wêy²áÑñO|Q0á}hì:"ú¦{â^¤î@¹5SÒY{À ä(·@ùóÀwbv$ë¿Ÿ€¿ãÍû=~hû¡r%ìX*ÍÌ–y„—¶œ¯¬÷æóší¡¯¿ø&)}÷u{ªÞϪ@`àT¤bÐæJF/4kç¢m÷´š6÷æ)3Z/%TôîtäIó°q3n<þÌ]jë÷\>:07Àê@ÁK±xuÏ,˜¬3hz
‹óɈõ+VLKô—j2bO+Flz-Ä{Å,ÚØ@9aÂûOkVQÅ1uú-¸ƒ¶$ÙM"re°( bEí«ŠÓ¾\[ø›Cé€SùeY9 +-ñg6®\ŠlÂÜAå ë˜éYÐy^ìÖ»–,©Vq–ëd)ÁõnGÚˆò¡
ÎüÌŒ?æß´™z*³ÉœA‰uʇ€SYY2¯åpåG.Q¿þñ4”ÝOØqcqtý£—.ØÎ@mA’2žDö™ZXfæÀ +£ñ—tpw-ø§Cw$î+¨‰ÊŠÞL„ù3©Øü ÕuŸˆòÊăزùž\׸ž‡L“ã}®úŒ·r›/Æì=5\&CÔíƒi`çK,R ¢Á5NK{íÝUG^cëDpI“_m‚·;s£}½¯Ñtú“[u‚fæS5î@ÎFÊ@)›îÛS=È3»a€Wè°ÉG¦¬?P;9eÉPIEìÏçÎ#õhŒÏŽ‚Ÿ—ÑÃÉw†Š¦S(G+2‚Öy†Ø€x‰ö¿fäµ içºMÐZÀŸª;²s
…®%§i¢NÒog°Zæ"ž/F?y屬PÆöÄ8ù™˜1ž$h³èúF¹˜Ýâ|D +‚3j:WÎ7œ!ö•ç»g¶ü¤c+T¶”Qšn[µ^ˆ_šÛxåÐg¾†m àn‹µCCœ›'öÕCg2—܉ÅÏÌ&„õF†SšYL4P“DAaæµsÌS+Ót§º£};}0jäç«Q±HD²|ƒ‚öúdrPôÆ’ÿ„ +ðŽ»SCu;È òs]±12!Ú7l9Ú÷®ÍŒñ4ô¼„‚Q»» ÚQý„n§¹^j‚›É…Õ¯ªO–§ÉB}h•€»llÀ@ä€7ÚêtÉ›?tjoXäújEÚL +¤–/= +›§¶ES¹veçxC +¬ÍÌQnPÇptŸÜ& ’ÖÚ »ˆ…Pc¢•sƒ +Ì)Ih%CÇÎp9“¢³eÒtJdêyæY1f/¹Y@ÔÙñÇdf:%»–)Ó4ºyÿ–*kS?sÝVÕyb[giœX!•a4f˜©íø°!âf–’»ogý)#½@Gç³"Ë~þ‘Nq +%6aü„ßÑc§àø°ÁÇUH°Öb;Í·¢{OÔHôQOΧ’¨»+c5¥Â„gpLä{JÌR\šöŒóŒ¨O’¡òi*Ì8´<õ.Ì,Mèx¶•ø])ª#^ +”`ÄOKþ“B.e±¯Æ{r»ˆÏ +½JX÷ä%ë÷ÝZl-_ê²àî äIóñ3 +‰Êjé«Š~ö¾U_ëÃ4=ΤÄZÎ`êEnÃÍ1‹Ý[/)/¯ÜAšÚpEEÃ9”WWIM,…8Ž3…/§W"N’4H«ÇŽˆ7Ö‘—=FšÑ-ÜÉ0½¿Šun«eIf>%ßIGF€‹Õˆƒ}WS¶’êúú¾†5ÇH^1_'=áß«‘è>?¨81‰_°`a~,"ŠêËp™Dc‹ y¿®!Xä‡ò÷ÔŸÆg3±QÁQ¦øUjNŠªˆì¯¦÷Ð^1ãTQq*Ä
Œ…ÎëŒÕ:ÎÌÇÛNÿ¨€ñûèþüZS_cá4”¶Õ¼W×c⟶×RiЃkë¯AW 6<ú@Ç'×Ë“‘e‚ +zOÑü˜-¼}dSçòE8ÒOÿ3•ùCõŠn¿÷2óýsŒG”ÆÍc¸æ7d<êÀ"ý•;=ƒïÚ‡˜²æ8‘0²aaÐ B(C´ ÇB„4µó¼êÌÆ@Ëz®ˆŽÇç—i.ñfÑÔôŠˆ…_n‰$ù6øä…C*PÚmfÒùckÍ#ûnÏ5euO0°7l†ò=>ÁÅøëӲ؛83Ÿ¼#,Q¯§“¢e)«d–žá)¨€¸íSO¤7ÆÔ‰¾{ÿ€\wB¿þ¹vT¨ +k€ª¢M°#b/Ÿkø_/PA*“û´1R½ûüùù+>ÁÌ|A˜mq~ºúéRÕ‘XžZž©ëóÛXÇÿû@²cþCûbØoU™è»î µ5 endobj 1429 0 obj << /Type /Page @@ -5271,24 +5291,19 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1443 0 obj << -/Length 3205 +/Length 3203 /Filter /FlateDecode >> stream -xÚåZÝ“Û¶¿¿Boáe,Ÿ$˜7Ç>7ÎØ®c_ÛLãÌ”'ñ,Ž%R©“/}w± -F¸QÚÀwþËïß¼¾î¿øýúç‹«ën§ái8“¸Í?.~ûÍ–p¨Ÿ/X,3£gè°˜g™˜m.”–±VRú‘õÅÇ‹_:‚Á[ûéw´4±6"`SìÑYœH!-{žWu»*vp"©£E½ÙÔ¶“hwÉMTä
õut[ïèES´mY}¦Ñý–ž9½û¸]—-?qþý%š¶ØP·lè}[S?_¯ë
•U[ìª|M½ªhõîKCÓÚUîç´3¾)VeµD1 -8ÀòÄ:@–Ó0žŸn‘z}çV¶l³v@:SÇ{myU´ -2wØòfÙ5zŽ@/8âÎMhÝÇN3àbQ4öéÞ.Š]›—Õ¸ü -óºZß“Ø™Í3½#C`Õí$‚ºÉëõ„öè|„Íí¦!ÏQÛ],1Ì †áÌÀÓuÙ¬ÜøªlŒB;aÀXÏuøàPâq¸AuÇ!ì·GÞ44„ÇÄÿj‡2 -![…°®ÊÅÊÑ!ÃÚ’áüzoÔæ,¡1Àº -— È„×å§áK¡ýëÎë
smÑó'Ñ?/µŽ¨*ëº|IÅ1qÀ‘,žÒ¾.ë²Ë ëwíÀ©ÚS/6M™§[À'žƒŒqU¸Ö ñ¢ìÐe‹£ºï°ôpÜÅÿä¶ù/™9:EXê•ÝF@Ö¤$øòì‡ åÅJ0&§™]þ{»'0†^Ðð8U’*n¯ß]ÎF”ñÉ==RqÿT5nî‰ -yï`/<¨æj[Å=µ°²´u£$^lÙˆÅ*Ì*_ߺ1÷¤[—K={Ë }Ifp…"û+4™:é'õat\å -Ô•t°åR„m±[_òèÞÞíÙÈ[õÕªq©ÏWXvìŽåÂ4cõ³|V€'Bó`–5°»6±•¥}àCZ9ºéŽ·Ç=OjÞ/]äo¤£`fÌÈ°¨‹/}Kº:šÚæ|sOÏ.ØRìcw‘ùò÷iˆ‹ÿìhàÜfæSÁ´ßá¤-,–ç{[Uïñ=¸R -]Wç¬hs´¼*ÀhÆ.”k—ŽñÄÁÚ¶jzºJ%´¶—6 -H!æ‚»C¶2d3Ìíjû–1…kЀ¼e~ð¡Ý,mÅs?qMG,M—Û÷Dü“Å&‘>($Þñ ù¥ˆ”a¼§F±þ£ï -‚4šF´([àéxQŒµ³D¥§Wíf=\v¹C[%Ãeß@äè.η>h¹ï-@`ÂùDJ"u¬&ϧù25úi—zbN§K†iþ1 Br!3`ÿi ³NHÐÏ:/ÁS«/;-ÁpÙÿ¥ÏÔyš˜'dÐ)3ÉlXf<.H%`º9§ŠÁ¬‚ô³ÎòÔª ÇËN2\öñ‚|`¯û¿Ì㕸±s fà•ŸužW§V
x5^všWá²W}Yi”>úË¿þpè
(JÓ,ŒÇÐCÙ«y_¸‡±$%w}”|”ÿÇâ¶G¹£b-õ“ŽKÈO:+ SKöò¯9)žpÍÿ?§’èX -vÆ“ŽËÎO:+»SKö²¯9)»pÍ󚲤#—Ÿó¦ÓôQòKžìIþ‹ò á_Q'xɺó}ó?^{$(ˆtÓR‘ÿÝ—¥~S¸{®ñv'I¢_¿sÿê…âtþ^ø˜^³+°hU—~Üo·õΙ$úO0]áØ -éˆÝm2â?øã€Òendstream +xÚåZÝ“Û¶¿¿Bo¡2‹OÌ›_g׉¯m¦qfÊ“xÇ©ˆÔÉ—¿¾»X€y”t7nŸ:z +·ùòµÊjH 7ì^tâ„žgŒ‡`òYwš;<›Ìàöh¨lÀ&΋®?çÛÝÆl& hÍì@R$±ŠØõ¦h¿BIe€Çü)b +í„c=×áƒc‰;ÄáÕ‡08°ßQxÓÐnG?þ«=Ê +\®UŠŽÑ¬I‘pë.ÃÄÑ]±,Éرè§_ið‘ÜqÐF÷®NÃc-š°c6/µP3·ZvQ3šg„Í¿¿þʃKMKE»Ü”«ñJç#”·å*°åðÖÙrðVÚ›tŽRU+ë—ð³b™¬— W^T§Þ9ÎÊæ.§ÊÂñ[ä˜ ás1hs?fÓmêú +máiPÕS¸ÌH@&¼)ï=
_ +í_·p^·h˜k‹ž<‰þ9×:¢ª¬ëò%1ÇÄG²x1J·úº¬Ë.ƒ‚®ßµ¦jO½Ø4ežnŸx2ÆuáZƒÄ‹²C—-Žê¾ÃÒÃiÿƒÛæW¾dæèa©wTvY“’àsȳo&”+Á˜œfvù¯ížÀfxAÃãTIª¸½~;_$Œ(ã“3zz¤âþ©jÜÂòÞ"À$^xPÍÕ¶ŠjaeiçFI¼Ø²‹U˜u¾¹scî H·.—zö–Aú’Ìà +EöW(h2uÒOêÃ"è¸Ê6]Td?,&jã!–EŸ*{*–‘þt…#fzýÁAw¦îu6ˆ»@p¡LB†Ë:”½wò¨!-*é`Ë¥»b¿™óèÁÞíÙÈ[õÕªq©ÏWXvêŽå‘Â4cõ³|V€'Bó`–5°O»6±•¥}àCZ9ºéŽwÀ=OjÞÏ]äo¤£`fÌÈ°¨‹/}Kº:šÚæ|ó@Ï.ØRìcw‘ùò÷iˆ‹ÿìhàÜfSÁ´ßá¤-,–ç{[UNñ=¸R +]W—¬hs²¼*ÀhÆ.”k—ŽñÄÁÚ¶jzºJ%´vs¤ óÁÝ![²ævµ}K‚˜ÂµGh@Þ² ?xŒÐn–¶ây˜¸¦€€#–¦KŠm‰{"þÉb“HïxüRDÊ0ÞS£XÿÉ€w +'®‰ '€ðãÞïíLŸ¡ó—žáÝÖ7§þþÀ
‹›<ûgŽp–ý·$Aš endobj 1442 0 obj << /Type /Page @@ -5311,18 +5326,14 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1448 0 obj << -/Length 1015 +/Length 1012 /Filter /FlateDecode >> stream -xÚ½WKoÛ8¾ëW9ÉÀŠæCÔc}Jg›¢²±w/mŠÌ$.dÑå¸iÑÿ^RÉ¢œE³-Xäp8óÍÌ7”ˆ\(È¥!œ¸Q -u³Ý;¹ö—ƒß(ù]WKgzNb7IˆCwyÛ±ÇÈ]®Þ{ÀDZ€ÞâêÝÅrâc -½³ËÅÄGq@cïõ›Ó«åüZËêéÙ¿„wzùz~ÖÙ¢çóÓIxË®ç‹ÉÇå[g¾l‘v£A(˜Ÿ÷¡»’A½u ILݽœ@€’»' Ѐ#É…ówk°³ZoµfA€Iˆ-éÁØ–š€`R§ç
+'(ö˜ŒMµú™úɾ¤›mÞ,f¼ø -=ý¦( -¨~î™g_læoR¡’í¯·Â¿ãþ=+Ùˆ¹ 6Ç·J½µ¡4ÌrÃæ& -nRÀäÙÌÙ¶6µ,ä¶Añl ,™¨ÊuVéÙç+\YÆ„wÛQýv@ÚÙËF€à#@J–íJ¡Zß‚]xR9ÂîôJúVÛ»ÀVÓ$‹)H}¶Z‚Ðg®Ò8ëŠ!м±@Æ7']:€=¤Õã¶çËåíÚ -£_p´üÚ -ØØ|q÷¢±îm=Ì~[/½¼w^šXüS‰µ5 +xÚ½WKoÛ8¾ëW9ÉÀŠæC/®OiãlSA»{i{Pd&ñB]QŽ›ýï%EQ‘,Ê)švaÀ"‡Ã™of¾¡DäBùCnˆbêÆ4 +ÿ–ûw¬d#æ‚Úß*õÖ†Ò0Ë
››`#ùˆXRzŸ–+mU5̬¯¥mN§Z¡§ØÞ
OÏt-Ä_jué«Z“Sã@]ãû>³ù3¨Es6©qšç|ïWeZˆE%ûCXp“&§Èf浩e!·
ŠgK`ÉDU®³JÏ>ïXùÐàÊ2&ĸێê·ÒÎX6R²lW +ÕúìÀ£Ê1v§OPÒ·òØÞ¶šn$YLAê³Õ„>s•Æ‰XWæ2¾9éÒÑ +ü«¬¨]YÃîBL‡>¬‰×{‘£ö“Fàhù³4°±ùìîEcÝÛz˜ýo½ôüÞynbñ/%ÖÖ endobj 1447 0 obj << /Type /Page @@ -5347,14 +5358,13 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1453 0 obj << -/Length 1112 +/Length 1110 /Filter /FlateDecode >> stream -xÚ¥WKoã6¾ûW9Ù@E“”¨GsÊnœmöl7j/»‹€‘([¨L9¢Ç-úßKŠ”-Û´7i`ÀæÅo†œ!r ü!'" -€ü÷.5çßKµRéÎEÄ„àN7¯ê5³Cu»0-Ëjí>µ¬ÞìI\úç´ve4PnjÊEÎj»~j§¿ÕÞ‹AŸÞà!,Ò•‡@øÈìE›Óðø(**®‹J4’‰*E°úYÅ¥è´âß!Äó_µ/ßêË,+- åN±oÖ‡bÅŒ -$SFÁiÓÖ™q¡R¢Â3i”.dÖXf\Zê.š Óp?ÜÞ]MÞ663&ÒºxT>=DÆé‚òyÿ¢–Ñ=UÕt_ÍdÓÖT;VLÅ) -e|Sjz=R„ÕPÍ3fºoW+½m䋾}±nxègº!ÛËÍ1ÿ¯ ¨ºendstream +xÚ¥W_s£6÷§`ò„gŠ, „¡yÊ]œkî!s½Ð¾ÜÝd6S,qÜN¿{%$ll˾¤Ï˜eÙ¿?´+ä@ùCND +ÂÑ:À L~(VÌ !s‡öA¬*oÏ<{±™7‰yÅJxóÊ[°š5W”øÖ†’èÁÝC +>×/íJ?“±œ"UñÑÔ,dÊ(8mÚzŒ"—jITxf¥¹j,3.-uÍÆ„i¸nï®&oŠi]<*Ÿ>"nº |Þ¿¨4º§ªšî«™lÚšjÇŠ©8¥ FsÍÊò€³ ÅÕëMËòÕD¦¹¹*lEdE®øjϪÏÜØËÙ¸_l)<-ÛL¯Ãp¬:¥ªë¯z—äf€ÓÖh³ÓÙC[2þb£Dy¦‰VœÅ|y%o]4MéE:q“ð Pã¿eî‡ÛÓ÷Ý·ŒÝµ*˜?Šðö±·+|‚ÇÓ>(….šŽ½ †~—…ÎG*€h7?«‰šgÌÀtß®VzÏÈ}õbÝäÐtC¶7›cþ¹Ÿ¨ endstream endobj 1452 0 obj << /Type /Page @@ -5377,19 +5387,17 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1458 0 obj << -/Length 2464 +/Length 2461 /Filter /FlateDecode >> stream -xÚ¥ÉvÛ8òî¯ðëKÓ/!š -’˜pQÊŽfÞüûT¡@Š’˜efì€X¨}øe -0ÞüþîÕ•/¸Hïúvöv~ó–*€#t`öâWœsoöæúæm½xsO“—7³«8ôæwsõ×ü׋›ù@ߘH$îÓÅŸ—K`å׋€É4Q—°OSqY]„J2JÙCÊ‹û‹¿
G»öÓI™ð€ ‰ ¡1%•²H -i…òüî
2+oÛUÖåž–f·Ý6mgpõøªiÝÝ>h7ï:†°+î8òò¦ªvu‘g]ÑÔ Z™(o¾)΢ÎËÝRBñϦÖY›Õf8@ÊO”¯nºbµ·*yŠ2Æ}ÎYª”°\dõ^{ÅOç»Öš@ŸvºÝÓ´ÒÆdkm€”0àÞ;mšx0´»ÈŒvhššÆZ?Z^`Šç€w¶YÑèij„†MÖß[UÑBNÒÉ´QŠ| ˜Ù°‘°+>lÀ—"ñòi©—•¦!ÐBÓ¸3zµ+i—ÔÀå¾Îª"w'¶Ë¬Ó¨‰@z3‚‘Þ÷´”:F‘aJ{uá'›fW.qMÝY4ŽŒ,ÏAæS¬¢ÉÈ8ñºÆIz@P"”6¦"×` -!-í:ß½õÆðw‘Ý9¢7ãÆÚìV¸ñ>D^èºQD)˜7´ûm׬Ûl»!R¾ÆÂÉ=)ˆÒ®Š%‘•z‹=¤?œYZÀ<VYëØÛmu[4ÖÜ-9±%îÿå#ÿ\2™`,°·/$$:9öôP±D¤±;訦ªáFçÚǤ=MºþþpŒ•Ú4M„C뜸™+KÑߌnyŽG, -ÃÍ~†œ)ÜNàÜ ¼ªÈÕú—µ@˜5ÛÎy&.Z‹úp -ѼW¸ôP@‰¦8ÔüGZÅ¢ÆBR™®ófÙ§ÓµD€M -ƒCâ£ÎTʆöAIJÏRSžMKÉRìV‚! R*5G!J†°™w==+*,ª“øåôbçC¶Þ™þ«Ì¥µÌ15Ê!v=¤¢gù<ŽOdzl²–1km¿g?ݨë¯Ò?ž4†ødâÃröË/ßky'bþ‚\•`âP‰ýwòP²0ßõ¹¼ùá‹›J>O¡&ƒ>r*A— ^gõ.+ÿ§ì d|L‘ŒŽÊ Ü·þ€ð¢ÚZXFôzKkAö3èÕêÜ!µ•
@1ja\ÇÞ #ŠpÎù‹mj”÷º1îÒÙýõÝCl5jÜÅCl„ÅCVË©ØzðB™),3fW‘‘H×ÂàV¾X˜Ÿ äû²+¶åo‰çð“— ¼&ñ$Ž0ÌAºèu¶OÅÓcÐN0‰: Ù–ð@R2VÍ—ä7GŠš2ÃÊFéÊ—¡<éQId3hH‘Œ˜[¦£ØûX75M§‚9Ý{Œít|Öm(ªìÖ›©Ò<LFi_þU™Ä„¥‚‹†ñࢶ„Žâž00Ä¢Ìì¨?²$44ÊKì`°è-‘â88V)â$;g]6Ùçí@ï‡×Ív?ÄžÁáÇmÁ=h¬×–¥ÆçCyø:èzÌ·=ךg‘™& -T±oè%rÐäÍVŒ<"|c´9#€Á×–Þ ñc,ѲÚ`‡IJƒ×…©Üý{½•`hŘfy<¦ Ètç¢áÜè² Ÿ}9{ÅEê¹*Ș¾êt©·›¦Ön»ü{5#fîjhê ÝØsÞVöMÜWJynÿæsa:ᾡŸ»*[c÷zÞþÈ„E2L¾ÝGQª¾ÚHqèÈT,G˜\¹8…/b*º·l\]zz;2§ÍÏI¥Rôé9Ô5½ë¡¿íŸ¡ 8ÿÑL=!(΂@õbÀ¶jÉò¦^MÐA®Ž¢^TœL–!4Ib·0rèþÏëXù—5ÂÞ~Ž$ËuÓݦ:«›ž²\ã¼Ïþð¥râúÔ?¹"ù¿ž¶)b%W8áIØNdo·¡G{êè +xڥɖÛ6òÞ_¡—K¨g! +¼ÅßßÝÜOÿZüzu³èéòÀ}‰Ä}ºúó/²V~½ò™Lb5y„…Ïx’ˆIy(ÉT e)®î¯þÖ#ìÚOGeÂ}&d(F„"ĘPTÂB)¤Êó»7È`¤¼]“—i“ZšýnW7ÁUØIàëºqtó ݼé¦Ü#pèeuYî«<KÛ¼®@´2VÞb›;œy•û•6„âŸu¥²&Ìp€”Ÿ(^U·ùú`UòeŒÏ8g‰RÂr‘V+<è{͔ǞÎöÉ4>íus i©I7Ú +ÜÌ+³_ãÆ{ßY®«D&`ÞD0Ðvm½iÒÝ–Hùg÷$ J»zÈWDVâ-4’þpfióX§co¿ÓM^[s·äD–¸ü—üWpÉdŒ±ÀÞ¼èäÐÓÅb‘Dî £ +˜*ûkŸ’ö§4i»ûƒ!Vh“$íìãÈÍ\±HŠîftËK<Âgaôh#hfAÀ™ÂÀíÎÀË’\]¡Y„Y½kg⢡1¯ŽP8‚ƒ¸CkÛQACf‚ûÊQøQ‘È!šúQèΰMo À… +°Á¢¨ójCËÞqñ˜Í6½5CÉ‚i\Ä37-Þû`‰!Í—‡VÚÓêöõüzv;Êm[¡á$5„J…Sh¾Ô+wò~Ðl,4ÿ^WÌc’š9k¥kÛRI—Y`2ZÓ~ãkš¼;Bn!]ñ‘®ÐÜT轩[w¸Ý¦m7s 2ýœ—û²¿ƒ&…®6¨jÄ–¯†¦.L3¹Ê¡–qVD_>uV¢;Rqe%jÍ(ïm¬øDåÃZcUˆ3 +ô h–Ò¸-Ól^oQÚ% dp_Üþq¿pßœcÜÞèrq´8¬ËÉg`bËÅ„C@§uÛÀ$^Œ%ªDBø¸sþ߆<á¡|âヺça<}òX1 †yŒä¨Îu +KÙ—d$Òµ0¸Õ…oæfÀgù¾hó]qÂ[ì9üä%¯H<±#Ì3.zíSñô´L¢NB¶%<’UsÂ%ù͉¢ÆÌ°´†Q¸ò¥/ÏzTÙR$#â–é0ò>VõcEÓÞ©`N·ÀÄÞc3…ŽÏÁÚ-E•ýf;VšÇ‚É0éÊ¿²$“±TpÑ ê]Ô–ÐaÔ†˜©ƒôG–„šÆc9c‰í-%RÇŠ!Eœeç´MGÛÿ²èüðºÞúØÓ;ü°-¸uÚ²tÂø¼/_C‡ endobj 1457 0 obj << /Type /Page @@ -5436,21 +5444,21 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1468 0 obj << -/Length 2765 +/Length 2763 /Filter /FlateDecode >> stream -xÚ¥YYsÛF~ׯàÛRUæd3¸’'Ù–%kÇ+Ñ©ÚÊæ$@ (hZ»µÿ}û$dUj‹˜³§çëž¾hf~f–„JÛÔÍâÔ©P›p¶Þ]èÙ=Ì}adÍÂ/ZW½^^|óÎ&³T¥QÍ–›Dé$1³eþëüÍW—×·—‹ Ôs§.a¤çWo¹4Æ̯>¼¹~ËSo?ÜqãÝõÕeìæËO·×8¢SXçT$;—?]ÿóò·å×ËŽ¿áŒ¶ÈÜŸ¿þ¦g9\åÇlš„³#t´2iÌv.´*tÖú‘íÅÝÅ?:‚ƒYÚ:…Ih&A<JL¦*²%P®Z¼k4oÊ[ñü±.«ö¶-xúâ‰~ÕþÒ$ób]ßWå¿‹ ±A:_ -‘h¾+²JV¶™œQnüˆPmŠýçbÏm!X”ŸÙ˜yRM“Ýûå}Uä<¿z:e¹Da¾B¹ -³„–¼?lÛò‘¤§rbƒ’fO<´’©Gµ`Kú¶:´<EZO-lGÑï™'Üà+ºjÓÈ›eX™—bf[0³¼.¯ÙQÕ-¯}k³²âѬ’ãšb͛ۆxc\Ÿ€éì, -Ž/•èQDáϱÞoó“Ìòlå•—Yu¤c•¢î é›)åJ•³‰}I«Áö9Ñ¢ UN—f'ƒèœLÜy,hyÜ2î2³ŠF¢Ç<Ú1x„’ëÅ4:ãXn·ÜZÉtçÚh¶}dCóX¬Å°Z«âD‡cðO|À¨ -Ñ–š—´3Ý1$KÂû¾©±†a4¶®ã—3¥[+àØþ¥kOÆ>À ¸ «ƒó(”hywó}ÍPãuÖx¼¢˜ŽÛoÀ8îëíËÏ뛘P$fžaL@òØqâX/‡ªœû¬bd`=lDUÍÈвª0qõæïÜÈœ®JT3!‚”=.ƒx -„÷qÃf‚R–ÈÉ<Èxÿ4E%…裋~Ÿ Òˆ½ZͦØOÐd'0©û -…5pŒQÁP9˜)Š«ÅÞ,ÞO6V‘éX¹Ð=lh½‡ÂùCF
Û)vÅVñ¥Cò‚$P%¸yH”%$ é¦&âŽBM[Õäµaçc0v¬ÛÜŸÈsyž¼È'‘1*NM|î3HµGϤ~,måC¶{ôλÞx1q|‚Ilôm(•Óè6ÑÎL¡îã¾9y’ÉèÐ8«m’qt8:wð_üž î„°Ï~uÿà¡?A_®¹Ã§žzJL½©‘ðn*æ>³¡Ç¬9÷ «§Q”Õ —R ‰°‚ÀMÙƒíA÷´^ІK
¡¨dç–á!G.kË]QœKŒ†¸\»pfV‹,[ðäþ~ÆÛA£[¿n8¯sœÓeÖâxR0k(QiþaxÂYÁ¥[õ#±Q.$FŒ óJ(/›õ¡i:ÞêS¹ïjŸ“Jxl‹/%†Ëç"4!Øê ð¶šÕmñXoËõTŽ¡ÉµþAvaÒ´µJÅ_9Q×ùÐH|èõ~_ï›—#Û3KØU£oåŒÆèö&ò6F:å†ö j€Urp±xRÈ®x‚|"n- ̶Ü)ö|Üv&TÖÁ‰ìÙs„ZçHxˆœz´³ª«ÅT&$wÀr»ºv%Aå×AJ„`üÝÏ·ï¯oo¹ƒ!èÊŽ2èwüKCbû_RjûŠÊMH»áÊβJõœápWPr@"û&Š¾H_J6uà`Îý7²&B‚a’4|w ÿãà·ºg<ôŒ‡Æ»8>8¾£€¦—-™Ð`tû«=*p(~xâž©ÌØ‚ËKîb3±ö½˜O²ÙØg³0¸?¬-09ÔœèÊYÐWI»Ý¥¾|m*⺊¿‡êª>V¼«/˜Â£–dÇO*“°µ„ž3§qÖ!
¹žÕƒxÇ;µæîºÎ^Ö¨ùûúê-–Ü9¤B¾ïðG˜‚Ðí„ö ‚Vón3@:ý²ç4bT -¹6
ÕñY˜duLÈN˜+ÂÙ…ˆ3PTÜ!ˆ]D 9ªbk±ë&¶O îw÷CGnâBž…•;™ªmSæ¾³á/ß—ctE—„M”+!¬Qúu3Õl´Ùp
¿ÄÆ× °ÅGšN³t:„ƇCW 6^y
›ü¨Ë›÷ׯ¸G–ut‚\Z +ÂÍ3:q%õ×üw0‚œZP=ŽS®FE¢#Øc€#ì<¡áiÿ¹@:ý?”‰€Ç”-\ÿÙp:±èéBB‹<Öýñ"x*Jxn¬ 5D¿wÂnÈЊãÔÕ æ¡%þðóííÕ§å>\ -5û5´Óà¨jË5<Å©
",FÝ_%©rIl$ÄñŽÿÇï$èÂð&QQœJxÓ¯ -NòßÐ¥Ãê6ø±€Ïú!«ÊfÇ£"Â80\C -t“0áñèƒOp¸¯Öú +xÚ¥Y[sÛÆ~ׯà[©s³‹]Üš'Ù–%µ“Êtg:i ”€€¦ÕNÿ{Ïmq!!k2>`¯gÏ~çì¹Ñ,4üÌ" •¶©[Ä©S¡6áb³¿Ð‹{˜ûîÂÈš•_´¯z½¾øæM©J£ Z¬·#Z‰ÒIbëü—å›ï¯~^_ß^®‚P/º\…‘^^½ýÇ¥1fyõáÍõ[žzûá#7Þ]_]Æn¹þt{#:…uNE²sýãõ?/]ÿpq½îùßÁh‹Ìýqñ˯z‘ÃU~¸ÐʦI¸8BG+“¦ÁbáB«BgÙ]|¼ø{Op4K[ç0 m¢Â$ˆg@ ‚9PÂTE6°ÊU‡w–ÝCÙb+^>ÖeÕ½Âv£Oÿ^<qïj.M²,6õ}Uþ»È¤Ëµ‰–û"«de÷ÉåÖÕ¶h>
·…`Q~.dcæIµmvïw”÷U‘óüÝÓ)ëÈ% +óÊÀY£Ò0è¦%paµ[n²Špt¹}â6±„
< ëÌ
\ËÅfy³ýÚ"Bhê°Ù +'AöfÑÏnquÊZ›ÒZÐå.WFk½¼©Ú®9lº²ºg½ùèåÇ^>0Xó÷S[œ¬úÎåÇÚN¥Î8:ðcYmˆÿùl¹•
¦ËöAº9OÞݱ(*îtÇšuÛÉîºÚyqƒöYPÒ«¶÷‡¶cúw2ÛÕ;9áøàÉ?ÃRW{Vø{hIÕ]‚ªÏÊ`[ïvõ±G’S/³<gpì˜À7ïÜ5cx›¼w"W¨sµ©«íÂQ ‚( +e)ªØN$²¡GëQ66©¬G ÍÕÀ¨0NüªWrí‰Ìo~î/&Z,7·3''©ŠmŒNæNvJG©¿‡Î€]T²ATÚ¨(SеT%IÌÊíåéa;÷þC2ó;}=_DhEÌ*ùö¿ßÒþÕ v/<9ó +³„–¼?ìºò‘¤§rbƒ’fO<t'SjÁ–ôíîÐñi=µX°Eß´2O¸ÁWtÕ¦‘7Ë°2/ÅÌv`fy]^²£ª;^úÖeeÅ£Y%ǵņ7w-ñƸž>ÓÛY_ +w¢3Du†?ǺÙå+&™åÙW^VdÕ“ŽUŠºƒ¤oæ”+UÎ&ö%Ûç`D‹‚T9]šJ w2qï± åq˸ËÌþq(ZAŠódÇèAJnÓäŒc¹ÛqëN¦{×F³Ýƒœð ÚÇb#~„•ÐZ':œ‚â&@C6z©Ñ+6A,Å`@DË:±k§ömðÔÚßüd…׋ñJ¹øØÔ»£Öär‹•™¦ÖLU䊟K[îË]ÖH§Ëºbo‰»ìèQü=7 +…wh²®¬+ìm6µCM·Ÿ9ØÀÁáŸ3ÜþÜ‘> †çýC¢-5/[igúcH–„÷}%R b
Ãhj]§/gN%f¶VÀ±ýSמ}€pVç1P(1ÐúãÍwC4C×YëµòŠb:n¿ãØÔ»—#ž×70¡HÌ2Ø€ä°ãıA.U97š¬bd`=lDUÍÄвª0qõæoÜÈœ®JT3!‚”=.£x +#„qÃv†R–ÈÉ<ȸyš£’BôÑÇ +ÙOOÄäÙŽ;EÃÇ5h´ƒ4¡²NdÏž#ÔZ>EÂC¬àÔ“U]æ2!¹C +Z’M?©LÂ6Ö"XxBrÌbœÆYk„$4äzVâ!ïÕš»›:/xY[tB¢æïë«·XrçFAøf¼Ãa&B·GÚ'ZÍ»ÍAèÈžÓˆI8’€Õ±TTpŒ}Îv%šbªTj_©<öÎ:–¢c4àL£Â(DäÚ04BVÇdaRÕ1!;c®g"Î@Qq‡ vä|¨Š1Änx˜Ø>xØ=@¹‰y.Tîeª>tm™ûΖ¿|_\ŽÑ]6Q®„°Fé×ÍT²ÑdÃ5üö_ƒÀizÍÒébC]Øxå5l"ð ®oÞ_¿âYÖÉ ryh®7ÏèÌ•8Ô\óßÀrjAõ8N1¸‰Ž`cŠŽ°ó„†§5ýçéÿ\P&S¶pýdÃéÄb -ZðXÇ‹à©(á¹!°fÔýÞ »!C+ŽoTW'˜Ç–øÃOk´·WŸÖßûp)Ôì×ÐN€£ª+7ðs¤6Št°@õ•¤Ê%±‘Ç8þ¿“ ÛDEq*áÍ°*8ÉC—Ž«ÛàÇ>›‡¬*Û=rˆãÀp
+V„ 2Ôð†¬¥ç~i(hq ØR«5©PÀ”cá–·HZ†Dªb|½¹m¨ð/Û™ÔA÷õÿýÏððW¸‹•M’gr°ü* ÒØ3…€¸¤Kµõ׆—T2¼˜ë¡dëFÞÿ]áa‰ÁUhNAèÿ>GánÄ+çendstream endobj 1467 0 obj << /Type /Page @@ -5499,26 +5507,25 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1477 0 obj << -/Length 3349 +/Length 3347 /Filter /FlateDecode >> stream -xÚ¥ZÝsÜ6÷_á·®§Y•â‡$6ONâ´igÒ^ì»›kÓ–öjª•Ô•ÖŽû×@€úØU’›¹ñŒI‚ ‚ ðµñ¥€¿øÒ$Qb¥½LŽŒˆÍe±¿—Ð÷ÃEÌ<ëÀ´žr½º»øîÊ.md™\ÞÝOæÊ"‘eñåÝö÷•ŽÒè -f«Ûw?|Fø_¥HUºzýãõ¯w7 i°ãõ›]Åq¼º~ÿúæ
u½yK•·7×W©^ÝýóÃÍíÕw?]ÜÜ
rN÷…Bþuñûâr[úéBDÊfæò "Š•—ûmTd´RR]Ü^üc˜pÒë‡.ê&‘T‰\PŽ”KÊ16J”T^9ýÎu6fíjßl]÷âjb‰d¨Øvyg«BH·þÑUÕ>¯‰ýO÷L,îS±ËëºÓ&[½júqìš®ïˆ'?à,¼Õÿ:–TÙKßð¨ü‘×Ή°,2ü|ó<PÃ:Ž#kŒô{¢i‹Æ—0»T8Úˆ¼êwÍñ¥S¶XvÔ·Äúê¦'ös¡±Û
åÆQÙRoçjVÖÔ‘SñwS;´¾7¬î@Í°8¨xrP*N#mÁ°…ßÎoóä8¥Å³L´pS¸Žß;áرp]ùPƒà¨±µÒIdIæšÛÃðüÁ[T*XKiW®›8P}óŒe¶ºƒE”†{¦7ÌïQù=ú>VͱêyÌýÂÞ¥6Q*düÕ½k‘fògæTt»|<#²sµyÝ~—sð¶ŒbAU¼]°’tF“©;mÅ3‘ox*½íC
U-ìn¨Ð‰þêö’8K™‰¤„9óªk¨æå…’å5|{ ܺÊõÜ;S¶E°¸¬ ¨•\îræeC~,›cW=íÁÕî÷n‘Fb©¢$E¬Á`&Z6i .Ê€µ}qÛJÀѽdÑÊX̾¬Ë¾D1¨‰Æ¨ï-°YT¥¿|XG«Ä²s‡Gw˜°{Z½-ë‡ÙØñ‚œŠŸÂmâ’_1Ó_GwàµðJ”uQyE åõ3_D“E&Iìܬò–·ßp«è”Stw….lá‰c™Sáe²rµÎŸg‹tÞ;D,ŒmÓü}œôø:ßͶ¹ŠWuç0 -(½Çë{Ñ:| *+@œŽ'8x:ÌüTVÑ‹¦îst|$Þ¹:OüõçoAuV癓àTk_I½6‰rª7ì…HÕEK’Õõ}ï°²ÿ‡Z`èõâdµ¡ -3·ôÐÏÅÓ2Šñb|M¼Ìdj"œ¢†ÐúÔ -ê2Ð6ù€š:À -и„ˆí€óØŠ>웦 -ȳlÛ`f#(&çƒ5{ -@¶d!–÷fœƒn|!‡Ri$³8 ¶6ãÕ|î !Ì3$‹¾.±Lyêƒ3öÁì$¿ê}_žÛ¾;ÚîÊ‚ÉÄ÷”®:BkøÍÁ&3€A„ŽÊ¶éºrS9jõà‰vä›› mÇÃd·®8Êþ™Z¨f\‹©þl;rÚàz3èzö° -28Oë]ˤ'°ÐQé)‰žï¾©ªæ =ÃZCŒfP!T,yQðaVïHxð¡9†P‘zÏÁ伜S¡)ÓEÞ²Œ%™``Þþ |:ŸÅ}j+ÈLhªd˜jßL™ -ÛíT¸`Õ(DJ„„ˆÒ$Mç·d1LF2ú4€ª¸üP•XNe¹‹fß‚£¸0‹ÀÀ -!áÞ3PýN^B¶L~&2[5Ÿ×¡ž{¿ åÔ®Š¼Í9˜«ð$ÓT„5¡¶¸°© -‡ÒmhC2‰®êá8>,À4%QžÙzßtKð÷p˜CþNjPÙO8¸š•2çË7Íã`#Án†Þò4u>qZá&@:Èêá0@³XÇ* -—"8)Æ÷Slýô‰ELÀÊ|<;7ü.ÆŸ\N{©Æ«$œJµ<‚)@u~ýàx¤ê§+¼X²JÿŒâs~î8(4*,]l‚t1dö/ºñäb›/¿?žƒwíê·…ùX«Pã§Û© -µþ¹åÚâ§$‹¬2ªß~y³üè¤
îðMG±?Ô6¼Ò±ãˆ‘…Ð’©“œ#ž -œŸ,|Í-m¸ón¯o¼Ž¿ü -a¾¥Ò&ÂãXÀ.i¥Jåã©/€ _ò¹%ÂG@Ø«8ù$0®ž¯$øQzxæÂÇœ§Iêfãg@e…¨ñ©ÌÄý€¶ô)”í+}þÀóp"ôñpè×–O +xÚ¥ZÝsÜ6÷_á·®§Y…â‡$6Onâ´igÒ^ì»›kÓ–öjª•Ô•ÖŽû×@€úØU’›¹ñŒE € ðµñ¥€¿øÒ$Qb¥½LŽŒˆÍe±¿—Ð÷ÃEÌ<ëÀ´žr}wñòÊ.md™\ÞÝOæÊ"‘eñåÝö÷•ŽÒè +f«Ûw?|Fø_¥HUºzýãõ¯w7àÕ`%Æë7ÿºŠãxuýþõÍêzóþ–oo®¯R½ºû燛۫?î~º¸¹äœê…Bþuñûâr*ýt!"e3sù/"Š•—ûmTd´RR]Ü^üc˜pÒë‡.Ú&‘T‰\0Ž”KÆ16J”TÞ8ýÎu³vµo¶®{qµV±D24¨]Þ_ÅÙê£ÒtUµÏkbÿÓ=‹ûTìòúÁí´ÉVß7ýŽ8vM×wÄ“p^ˆÚKjl‰¥oxTþÈkçDX~¾ùî +×±àûcÇ";®+j-¶V:‰¬5ÉÜr{ž?x/J…k)íÊ•àjožñ™îà@¥ážé ó:*¯£ïcÓ«žÇÜ/è.µ‰R!ã¯ê®Ej˜ÉïL˜Ó£Ûåã”+è×íw9· +ï˨‹¦buýÆJ²YL¦Î´,Ï,F±á©ô¾-4M´ œP¡ýUõ’8K™‰¤„9óªk¨åå…'ËkøôÀsë*×sïÌø>‚ÅeK@«äç.g^väDz9vÕ3Ñ\íyï¶Y$–*J0ÄÖjr¡e—–¢xÛÕV¶Þè%VÆúmöϺìKƒ^ÑU⣾Ué¶Ñ+ñٹã;LØ=Þ–õÃlìx@NÅOá´ñ?ɯ˜é¯£;ðZx$ʺ¨Ž¼"òú™¢É"“$vîVyËê·TƒrŠá®£Ô…o¸ãøÌéáe²rµÎŸ†`‹tÖ2æ6Èiþ<Nz|›ÏfÛ\Å«ºs˜”^Aàõ½èþ &+@œŽ'8¸;ÌüTVÑ‹¦îs|$Þ¹9OâõçOAm6çYTkßH½5‰rj7ì…LÕE˜K’Õõ}rü‡VH`õâdµ¡ÛüЗEÙæuϬ”œ°ÏÕœJ€ZÖ÷ÍaŸ÷eb‹>S3$¸-Ðþ¬9úT‹ÙqÅ÷ḾSJ5rºOyÑSs÷ýì-x6¿4>Wg~ä‚Wg6Ê2óU§Ž… Lˆ|žOWÿÞ9FÇλõD™lž´ÙÓc˜Õ +3÷ôÐÏÅÓ2Šñ`|M¼Ìdj"좆ÔúÔ +ÓbGö¸©Êâ%DƒG +£@û¯(„Â3?Â×½mD i—¸.8
AF7:to;¬£fë H?Åú©püFÈõ»|Ï™|³öq ³|7"j¡À¯BZ.ËÊ
€cÀ<À†ô!á7‡ +ê2Ð6ù€š:À +HIº-S’·RfŒ°ðÔþ¤¨[^²è_HC¿/è§Îx²” <›çqÐù†ÈÌDFÛPଷK;b"gr¶#èi:eœ +«°ßN…^BqB¤BHˆ(MÒt~JÓd$£Oh †ËU9€ÅaW¦™»hö-Ä0ʳ< +' „dK!ô™º9SBw¸.Çö`™£&z8•ÛðÅ$†ª‡ãx± +-¾º +À0Ъ‡Ö¢”ËB¦ÂPhõÏ-·?m%YdÅPQýöËû›åKo%m‡/h:ÊýÙˆ µá•ŽgŒ,¤–LÔ”˜ñ@Wéý9SÃþî÷®Þ:^€q!´xs²p_F‹1)'?·Y$Uvr¡[œÔ¸QÕC™u·§W¨¾ü-!-“ÉþQJ½]ssHòG
žå¾Ú#‘6‹^Gíw7wo_QspªÀØøÊ·ÜÒÖ†3ÿáöúöÇëøË T
-:€µñzh,rz¤I5u?[ì$LßOcùyŠUÂ{UÀ¦EîSŽöZp¯ÌÿÊ Ô¸Çßñ¤vµVDPüÀ:ÓxH× DšuNÏAvOÜдcs{Ÿ÷™œÑrœŸ~T¼²`KÌÑÊVéÛ£O³b¨9|Rô=ŸÌ·ÇÂm¿[°^œˆÈB=Æöøy.Ö·B˜oc©´‰p;°KšD©Áø¸ë H@Å—|n‰ðt'ŸÆÕÃõõ‚?J×\x™ó4)ýÁmüh¬ð3>½7ñD -} +eÿÃFŸ?ðÇü‚}<úµåÀ ȳ_ÿ4 +üŸù± ü…ËÂO[Ä€þïÒŒ¿ Òi¤²L~ù72,ÓøÅ„ª1‹7~ØDCßàEÖ6€‚[º-¥úõ Ëñ^aj+ÔJŠ3„ßîœá¿EAendstream endobj 1476 0 obj << /Type /Page @@ -5553,27 +5560,23 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1484 0 obj << -/Length 3401 +/Length 3397 /Filter /FlateDecode >> stream -xÚ¥ZÝsã¶÷_á‡ÎDž±àúæœ}É%í5µÎ´i(‘¶8G‰ -IÙçüõÝÅ. ’‚ïœéè>‹Å~üvIyÁOžç‰ˆ´‰Ï3‹$’Éùz{?ÂØ÷g’ç,ݤåxÖw÷gß¾×ù¹&UéùýÈV.¢<—ç÷寋w?\ý|s{±TI´ˆÅÅ2I£ÅÕõ¿.¤”‹«ïn®ièúã5Þß\]dñâþ—Ûè‘&I4¬Ëy%L»»ywñÛýg7÷žÃñ)d¤‘½ßÏ~ý-:/á0?žEB›<9†?‘ƨóíYœh‘ÄZ»žæìî쟞àhÔ.
I%ѹHr•Ä¢TH,‰©VÚŠeWl«‹¥ŽóÅ£$Âó|û>¯ÒRH•+Ø -§¯7uSŠês±Ý7• éÓM´HóTòt )/|¦EóØvõ°Ùân™ÝMÓÆuO]×wW—Ô#©ƒòÅíÝÕ߯¦“œŒÝýpå6©†µï¹+iö°áC~ª^¸§xDîÏ—RÂ¥ÊXcKÀ%+Çx$•Ža7¥ä¢ÞáSÜ{ÖE_áN :Š÷¸öï»ú©*šnwÃ^$G4¤ååTÌ2ÏDG1N8:§N"©Dy Gª±œ0§=m}è«’÷kéùXíªŽY“‹¾~Üá»ù¢ê/±3#yÑ9Ýq«¦^“¤”Ó$JŠÎöâÏíðc#d’¸âÂÓÓ©TÄ‘ÈÚÃÁ“‡¶£Æä<ÔõTu5RXCÝî"KDb‹4fp›û£(¥,K)3 ŽÒÑzŸA©‹ä]½5#ìÚ[Ú}Õ
uÕÓ(Šfu¸€»˜(¨£¬pÕCEüï†ÙŽ ¬Ö*O4i_LŽ¹ -läÞb˜Kðã°zz}KGÎbm£›ÌÁÜ7펽+žYïzPÒªtÿP„8wp¤þhwÜ"ðò·`ÝÊz÷x\ˆJ%ú+FŸ‰Ô€ÜÇVßÓ.‡w8•dŒÍÔð’¿|øøîo¿\ßh/ã(&‹ò©ôù,žº¿õ4ðv‰áÙ÷€€\ýx{jçèlã?(«ÓÝx´H«øËF&ÓÌL•Úa¢YP!h^AiMƒ]$µ -z yV*“ - -êÃýMœÂGsEÖ î£C_È%BçÚùF¤¢C²S"Ë]DßÀ‰q„noï>|ÿ¡È‰¤o=$ê‰qÔ°ÙcÊë’DSð¤ç -……-è 0&1ʹµë» -t5xr«ç0æ+®8ú…¿ªÞb襻4a§)F .ü]75æ2—£h©à -ãxš^LN>…>¹:Ķ‡~˜¢ -2ÎѾø$•˜\ï8#ñ7ÎáÕ“àmÙ.X—ðÅ™/]W×eÞp]™Tz|]@ô©hê’+> ×]ÿŒjdÿŒ«
À„+i`Ú*Ûå±þÊê¤Èe–¾QîëçÆÏ&ŸH›±è¡µªÜö±äŠ` ¤Ý1áVBŽ F«lœ¨@ìJ¤ˆ5«Ÿõ¦ê•ˆ4MfÉ+Ë(CR"šœ”UäËZ8jŽ®3ùâQ¸aåpv§dà¸yêÃyqðµ›×s;‡3-’t^Œq9ÅT4ý3‚‚óHe$¥a‰h0ÞÈè?s„ëQÎY‰¦²Ò÷fŠ}Cw–·.vëRX’s
Š£0jöù´¼ˆÃ)ôsî
}+îÁØíê[I&€Ïxr@¤KkJ#â˜ëÿl -ØJH™,Iß` -ùQ:Í›ö¹Ç@¶'uâ -f¡©Šž7§“!G1áL'&˜½õ½+ž»öAÌ:ò’zVÀŠ"dmQN9U: Z•K›^‘'>çvª?ň1øN™Î‹žä¯NAÙc#|-
qâÖPÝq„/$b~×`Ó£± ±#â>‚ßc¨ -#”|CW»FL·ˆ‘É~O“cVï)1û}@‘¨êšËY¢ø -"s7…ÝFü¦ÛÄ«÷~݇ ÉôºÝÛ—
Ò€½=PNjßÞöÔ°ÆŠ³¸p€}íÙÖ„&¥¢8#%/Þº%< ¸ëš×Ô»OÔÉýd•è»b¿q¯“Üq&]o -ûÉH{[—b“²õ½¸¢J”t98´šº·el[0Ú…\/À¹<Ïßl4Z§f„Ç)@á¶ÛÊ’ßRÁß#0ƒ?eUmoqÀ³ú\Û0‡sév×pIBE€*UlfÙ‹Oþ°Ó2D튫W+ è”38æÅ¢Üxá[ÁZ…CG!Ÿ¸¯¹´ø¹^kÀ}îîs4ʽÐ0ÚÕ]°s²#Þ|šòIZ´¨uØ3Ù–ˆìÞ§º ÆíûwÔH")§LðäÓíUß³÷ké +xÚ¥ZKs㸾ûWøª•«,.ðäæ{vg“LÛ“ªd³J¤-ÖP¢–¤ìõþút£IÁ3ÞJé@F£Ñ¯›ç1üĹN£X™ä<7I”Æ"=_oÏâóGûáL𜥛´Ïzwöý¥ÏMd2™ß?Œhé(ÖZœß—?/Þÿxõû›Û‹¥LãE],Ó,^\]ÿëB±¸úôþ暆®?ÝQãÃÍÕEž,î?ßÞ@0iª`æ•0íîæýÅ/÷?ÝÜ{ǧ±Bö~=ûù—ø¼„ÃütGÊèôüþÄ‘0FžoÏ’TEi¢”ëiÎîÎþé ŽFíÒTR¥£TË< )CbIM”)©¬XvŶºXªD/þ§1žçûÉx•‘ZÂV8}½©›2ª~+¶û¦Šhúte:<hŠK ŸËEÑ<¶]=l¶¸[nwS´qÝS×õÝÕ%õê ½¸½»úÛuÊtÒ“±»¯Ü&Õ°ŽÆ{îJš=lø_ªî)‘ûó¥p©"QØŠà’¥c<R%°›”bQïð)î‹=뢯p'PÇ‹{Ü +;£|.¼*äN±¡±:€ÿâ]7Õqvy¤rÍ]*a†.âÅÇÁë`ñXMÕ²¯·uS°BCq‚ÄóTÉy‚Ú$™eÀ†öÃ\‚ÏÕÓë[*;‹µm ŒnRƒ¹oÚ{W<³Þõ ¤Uéþ¡qîàHýÞî¸E2àå/nÁº9”õîñ¸*=¤ŠTœªo}eä>¶úžv9ô¸Ã©$lf†—üéã§÷ý|} ½Lâ82y¬§vÐ`ä[°´>òÔý? q€·K
ÏƸ/ÄàêïÀÓØS;GgÿAYîtÀ£ÅJ&_72‘åfªèÐ~Ís€ +Aó +úHkì"©UÐɳR™,R)°0Ñ©«ÝKàJ¥P%R¢ŠÙž2 D§ÆœÜi±³í8îìÛ]Yƒ_´JS¬Â'À»r¯ýa…Ìòz¯Ì1+s,XU7 +–šd‚-†Xc’ +7¬æ¿âùEYº!ÿ‡¢i^lÖöÏì‰ɀ›¦iŸÉËÃ_€[BÕðÍ©§&Å“;åAÉ}Øú•õÀÏž&"TÄÿ=|„ÁM€ÃªF“´rúlý×$# é]Œ~<;ÑeyÀ;ù ¤7ÄÔºËê¡84_Wau?uñ[X±õ¼©×jnŠ''pçgŸ + +Ä®TDq*gõòÓã¢ÞT½Ò(ËÒYòÊ2Å#JÄ”#''eùº–ŽªÑu¦_=ª7,}" +"s7…ÝFò¦ÛÄ«÷~݇ÉôºÝÛ—
€½=PNjßÞöÔ°ÆŠ³¸p€}íÙÖ„&¥¢8#%/Þº%< ¸ëš×Ô»/ÔÉýd•è»b¿q¯“Üq&]o +ûÉ{[—b“²õµ¸¢J”p98´šº·el[0Ú…\/À9õ›F©ÌŒð8E@#(Üv[Yò[*ø{f𧬪ãÍ"xV¿Õ6Ìá\GºÝ5\’1 J™˜YöâÀ“?ì´Q»"ÅêÕJ‚:åŽ9Eñ…(7^øV°VáÐQHÁg î[î-~®× +pŸ»{ët/4Œru윬Àˆ·Ÿ°¦|’íjöL¶%"û°ç©.¨qûá=5ÒXˆ)¼ùt{UÄ÷ìýd: +䆗ùTÏÒð©žÝý0ôTS%V‹]ý;ËÅ·ô\U¡z§‹ +k†ÒäŽ)<„¸—˜Øûd8,ˆôñ3Ÿ›ß ÄùwJw‡ý¾íøèô=˜U>„J:c!øÕN¥ð?,U¹endstream endobj 1483 0 obj << /Type /Page @@ -5602,14 +5605,14 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1490 0 obj << -/Length 1642 +/Length 1639 /Filter /FlateDecode >> stream -xÚ¥WÛ“ºÈ~Ÿ¿Âú½d&–@ws< 0 xã¦Âf@Q.ŠŠ@*ÿ{p˜™Ù%Ù$[>H÷¹}çt}ºÁ€h`@ÑÍAnÀp$F€lÓ'bµ2ù ¼ëŒ>”F_µÆÖþŠØ‡q4¤Öî‹/#X¬àçgc±—Öñ,ÎMS^F€£(ô,(üÒ’Œ—¤ˆV©SáÅÕ -›€(V›ÚIsÿÊ\$i§¡mbø²gÝÍ.’ÃHÄÑßk V…|¬ÔuîÞè ³lÔ.qQEÚhd^I6Z ‘39û7/Äwso¬eåV€6—ºûc`Ÿ°ºä¸Â‡yÈNÓY’5jj¸©¿›¿ïâc²^ð¢µlÌ’½ôÀ® -up‹Cåv¼9H!73~k«ØƒÙÄ^–iŸž×kƒ¯ñý:hef -Ö>Qv¨Š$ý+ž÷!K'8žøÛ'ï>7CÇ0òÿlXÿ4EX†Å%ü• Xç„¢0´íôèh€á0ê{R{Ü 6™xQ4–<6—¬?⊾ÈL²ÊðI´°O㥊ü<jîÛKaˆ À÷ŠW‹`îU¦€ÕÏn¦ë:¿Zøoy¦{ÙÊæò )ùZŸÚ“F+Ô•‹š¨÷l¯Ñú>·è£›Ó[âziœ³-·ûÞ…t-?Ìð5 cz&ã¡·“mÔ§|‰½E`õbB£åå>tÜ Iœ™×c¢Ê;rFu®MöMàÖ:ô½8Ô}žur:&ñÙeV;š¢8¡Q.«CŸòDߤÁ9Z¨òyX^ÂR&èf=Uo5uÏÂd—¥@~p'ª¦K–«Ï³ˆÙt3‘…ì)£¨Ž¢îyW¤¦½-˜[•syqU%»^;E¹tËÛCœå^)hj¥¿CKµSZÚ{ÏÁú:ŸCsÎѺqdx<acÿƒb!@ŠýoZ[~z´–?îj†õöÙìr ·£0óüäpuxù©ñ»jé%qðÖÏ~£>êۡ£–Íõ]´‰ÏóâO_ë}É´èËÂÏ;ì»±¿cz +xÚ¥W[“²È¾Ÿ_a}7™‰%ÐÝk+ž8©°ÙD”ƒ¢"Ê3³3»$›dË›~Ÿ÷ØýôÛ
DûŠÆhr†#1Š +ñ]ÝkY¹ Í¥îþا +ŒRîCåLHŠ8ÓÔXôùŠÈúÞ,¸u”ÌŽÌÁߊlŒK) %O³OËÒífìSö¥º²I”Õ–\À©wÁ¡öšKç¾_«”_¹KHÄ‘Wq†ƒé¶ˆ6¸6“ä +a²ËR ?¸UÓ¥ËÕgYÄlºŠÈBö”QTGQ÷¼+RÓÞÌʃ¹¼¸ªŠ‚]¯¢\ºáÅíCœå^)hj¥¿CKµSZÚ{ÏÁú:ŸCsÎѺqdx<acÿƒb!@ŠýoZ[~z´–?îj†õöÙìr ·£0óüäpuxù©/âwhé%qðÖÏ~õúí¢î»º£–Íõ]´‰ÏóâO_ë}É´Ñ!–…Ÿ7vØwcéøx2´0Œí†'(Bª®a„A7cÞN§¼¸vÝ[¦=»Úê´Pð2"9=Cø»|¼$~_„*‡’endstream endobj 1489 0 obj << /Type /Page @@ -5626,24 +5629,25 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1494 0 obj << -/Length 2678 +/Length 2676 /Filter /FlateDecode >> stream -xÚµYÝsÛ6÷_¡éuS! -Q¤q:»Y²r!ó\ÍnV¿F/¾9ÿáæâí|%b¾0©ŒÎ_þ4WJEçW/.^ÒÔË«k¼º8ŸgItóãÛ‹ë¹N3« -^L×/¾ä?_wù‚^~ùþêâš'ίXæù7s•GßG=ïõåë«Ë«×óßn¾=»¸Ì]¡¤F?ûõ79[G¾=“B¹™=‹ª(âÙýYb´0‰ÖžRŸ]Ÿým̺¥S®x@3¡¥QÿÕ¶*Ea’ém%œS*ÒDÆOË¢udñЯ85ž|ZĘ4N>ŽgJ‰Â˜¾"Spâ™1 -=ì8aÒD!£’Âè4wßÏ©Šnà]œžÈLªûäÚí<û}¦„LŠBO0v¦Ž.p„g—÷ñìeÍ›¼ÜE Ø™j`Vq&d–Àö±.p3©m,€(+¢vÏ<ê7Lx?edñß¡£©ºêz»¢ÙªñìUG;×2úPÞokKSåŽ%=Ìc•uµÔëÄD—
Ñ·ån¾HdÔWË}
c€ò—'JìÚ¶'R kÀZ5ÀžF˜ÐÒa›žœCRd"Õ©ž…ø4X!€M‘³Åx5>
ôÇHU&ËB¤~£Ò,‰”™³ýï‹.Žs04~@o”}Õòœs <mSÞÖî\á¥lÜ -D€F+é2§ç,òˆY.[·–ý`¡ê£®›v_3Ò6åCæÖÚæÍâ©4nòTÄZ™Ï’PU†Ù Kþ‡Ð7,y*P%²€@•¨?I©&ÓBJõYSj’k¡ò$ýü95”ü’ªI€¨3†_íÁ«“1•½+ÌíìÒVŽî®ˆ&º‰§°r½sÕŒnxî -„4ÿÇ\™ˆ²¸Û°ìi´)C© Ï)pX ¨ èRÁr]À-+í;÷–ú¸šã”ãx¬ú
Í:+‘D’<±dQÃô¨*2<â*‰SUÓÃJHMe]h¾¶k°oO§¬)t]¢Ùf8&õ• Ðn}Õ -2\Ô-OÃ[‚GÙÑ‚³Ýö–-_䊯qˆ›oœvpW³zHøòJË5?{z‚;x’u ¦Ç»‚oe×íï¹|-=§7‰ŠÚQu”×ÒóÖ¯¡ëbF‡çS˜ªz¬«º„ûøÊËøö®ó$zÚÝ®uöOæÆ˃…wv.asJÅwqœøäënX`¤C!¿ð -…]!÷‘n…pçKþÐk£5χ»3YœP -Jæþ0…âã|Ñ6ÐõCmÎõVçc8 jv¦MŸŸYÂ=õt:IÕšŠªØÛ „ Ðú´ŠÛVœÒÉ?0páVƒÈŠgúÇ–å¡û -cˆožª2 -Ö„tâ&þ2¡J. ¯ËfšX»"6ö4Y%¡×•ÚîoëjI×øe/v."E.¨p·»ê>-÷íÍÕ@w‰Ù^¦ÄF¾ó$rÉðy$•T˜ƒÍ‚é*.Š0eÃL
W¡XFt¼Áh"°Œ’}c\øÆhw¶±;.ºqóß#—@» -‹nYB}}p¿ø¤ÂB»]Vè»Ä|Œ2-‘`+€[ -E×(·<34Ì0¦ŽË/sùÃ#E¢Q¨r@ó‘è¿ýñÉjr‡@5çkäs÷ yl]»J>Λ)(Žu‡+2N¿ -„¥íº'?ñiˆÒjê‡59óúòÏxAᜠçñô/Z¦ +xÚµYÝsÛ6÷_¡éu! +Q¤q:»Y²r!ó\ÍnV¿FÏ¿;ÿñæâÍ|%b¾0©ŒÎ_ü<WJEçWÏ/^ÐÔ‹«k¼¼8ŸgItóÓ›‹ë¹N3« +^L×ÏŸðŠ·Wç?\>§—_^_]\óÄùË<ÿéf®òèõ$Ñó^_~{uyõíü÷›ïÏ.n3CW(©ÑÆ?Î~ý]ÎVà‘ïϤÐEnfð"…*Šxv–-L¢µ§Ôg×g³né”kÐLhiÔµŠEQ˜dz[ 甊4‘ñã²hY<ô+ŽE'Ÿ±0&‡“ã™R¢0&Æ£/¤ÈœxfÀ!¥£¿B;ÎB˜4QȨ¤0:ÍÇëù"UÑ
ü£‹Óó +Ôa
X«8ÀÓ:@:¬`Ó“sHŠL¤:Õ³Ÿ+°)Òb¶¯Æçþ©ÊdYˆÔOcTšÅ"‘2s¶ÿ}cÑÅqΆÆïÑe_µ<çOÛ”·µ;Wx)7€ÃÙa¨i·vWÏ•ó9—mó›”ñÝÞMÚ—Žù¸`5‘»¶~owDy¨ê:œû‡]ö~§ƒtv×ÑkÚöþøH ¬]u×О€”Î.YzÿHîhø°©–®Ëª¦QßÒ“½`YÙ‹‹HQ‘Ô~¿k8¼B´7&úù%ÝóË¿Ë#Ûa°¬+ÛôbP<Iˆ@ÅßØnÛ6Ó/O¢ûò@Ö.7$
(^;žow4 _ÁÀÝRàï,x¸¬‰H +—lVnç²Þ¯ªæŽ7¬º^ÜdÙÛ*8?`÷ÛTÛŸ· +„4ÿq®LDYÜmXö4Ú”¡Ô„ƒç¸¬Ôt©`¹.à–ΕŒö{K}ÜGÍqÊq<Tý†f•H"IžX²¨azTð
•Ä©ªéa%¤¦²®4_Û5Ø7‹ÇÓÖ:.Ñl3“úÊh·¾j€19Í«õ£"”âï«’8ç㳃 ÏÏÏ]Ab}Šÿ4½Ãy¶»U‡V=™Œšt4cu“þÂqpŽðïKc¾Ä¡§“ðô[¹—5Ö]T¡è妪Wc2Ê +£Ã³)LU½ÖUÝ Â}|e‡e|{×y=ín×:û'sãåÁÂ;» +—°9¥ÇâoqœøäënX`¤C!¿ð +…]!÷‘n…pçKþÐk£5φ»3YœP +‚I" +8^)O¿Ášò¾Zò7l)Nû„ó}ßB ëy®![`8–1>$ÂÑÆô +ÀHH":©bæm…û-6Ô8ëÔå¦lî˜ViåõÆ—”cav,rÔ£²8”èsŽ¥8y[.ß1ér~²ÊÀþÉT<ÑŒqWTr…»ï˜b¡npÝ!Œ¯¨95œÀ˜¢yé3 `ת°–„íu +Jæþ0…âã|Þ6ÐõCmÎõVçc8 jv¦MŸŸYÂ=õst:IÕšŠªØÛ „ Ðú´ŠÛVœÒÉ?0páVƒÈŠgú‡–å¡ûcˆožª2 +Ö„tâ&þ2¡J. ¯ËfšX»"6ö4Y%¡×•ÚîoëjI×øe/v."E.¨p·»ê=}Z0îÛ›«€î³)¼L‰|çIä’áóH* ¨0šÓU*\aʆ™®B/°ŒèxƒÑD`%ûƸð1Ðîlcw\tãæ‡?G.vVÀâ —§9ä:-ÔÊ··ó"Žô µ>òTÜÙ߸ïËåØÿoìcN¾ +‹nYB}}p¿ø¤ÂB»]Vè»Ä|Š2-‘`+€[ endobj 1493 0 obj << /Type /Page @@ -5673,24 +5677,25 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1503 0 obj << -/Length 3087 +/Length 3084 /Filter /FlateDecode >> stream -xÚí]sÛFîÝ¿B/7•¦ÍÝåçõÚÅq\7‰“ØJš¦í%®,ÖüMÊùõ,°)3Î͵÷p“qb±X,‹/JŒ\ø'F~ౌGaì9¾+üѲ8pG—0vr ˜fj‰¦]ªgóƒÃ*ÅNÈ`4_uxEŽEb4O{NìL€ƒ;~~vqq|ôÝd*}xùõlöúôˆ^>½9;¾àÙÙsÞÏ'"¿y=›„Þxni/NOÎNÏN&*ýñÑO³·óãsñxÙó!p::f^°4/Ž‰Ûûóã‹ÉóŸŽçí6»ª®Â=^üö‡;JA#?¸ŽŠ#t/®#âXŽŠÏWŽï)e1ùÁÅÁ»–agÔLTp©9 [)FB8±ïËžrýØ ”Tråd*\öøP&E¶ÜÛðv“&&¸ÐͺJqÛÀ\vÎÁ¸ã ?6\ç“XŽ+š“•µ¾inÖÌèJ?ÔÝf iwuZôŸ´’×]ÉHºáhª`ÛÂ¥õþ1™°²faaŠD›'+ú‘Hš&'@Á}:Ù¥³»F8ISô}Rlr픺!(éåñ¯K?`Îôé1»;žÍ>•"ܼá¾Ü,ÞÎä2<ù"ºuýr®Žf'«g«W‘~%¹ò?VÌôT‡³wÏîO¯_¯^5§w׿¼M/›u½UAòùäÝìcôÃß¼‹ð‹»HÃ*}x•|uRg«Å«æ]Ѽ‰ÒÏ›ùìÓÇ‹òÛJ¾?˯ãÓŸ®Õ¯.Íþع§Ûä.?¼¾J^~¸ÿ¨e^EGÍ·éëà½^?]_ýðęպ²¹é )ü²Îr42W±µÐš0À7èôõV×
!î²<GHŽ—êÅ&yQYš¬(tšüÁ8ô4Bîø\•ºÏMËŠ'/xȲæ½Î.K²„e“å¼GÑ¿WÝc…¢‡T¡”DP#Ñ:Á«º -(çû“÷ —4Ʀ¼¡ž5´Î#Ùè{‚XÛ -¿ñë$+Öl#Gú~d=]Áž!Œ<T[ˆY¯ …‚ !̶ÎÊK‘·¢qpšÆãC|µ"ä¿kØѺÚæ)›ŽÈ¤ÜMPoÑÏÎg¯il_ë]©PÃ×0+³&3jâÝ]jOÐÜ%<æ 2[G*#´õù -—‹Tå7ً̜Ÿ1.zŽ+EÔ
ŒÊõ(0"ÐÜP¹Ô_ÏÅ6ËÓC¸¨níèšÈõí£`ÓòÁ -Eá¤;Vm0ÊgUIøß]ß5/tŽg‚d+àlpEeÃ%¾¥ºI²¼†Yƒ“(+ÀvGŠwd³/Ô'“T¬øVÕgà®YC¬÷"oØKþbë¿c·½bJ - HÜÅŠë¶ÛÜ䔘³l›ª -¸MbÕ*‡2ŽªÐ¢”Gì]ωïC†¶P§ôÀBD0`!äR¾°‘H:þÙÅ¿`ì;‘ÆÝ3ŽÂ-S-Mþ«Öš¾Äì]„ì¢`àJ?fìu›êæˆÈMQM(¸7Ë5¥ù€o¹ ù¢ûPªm’ð*iQxª8êÛœ„‰QV -Áƒ)×ÌM™.;²zÑ¥÷|P@(™ü_C'ô"k ¸{!áJP›ôƒ%ZÂÀ2`†±Û^ÇLÅ,=áàœ -ï“aÃwh×qÃmì…Ü -×3úd,£yVàÒ\àÎãû¡® -<+ÙÂ!g3ŠŽääÍÊ€½Ã|Ì@mîÞÏ!w2¶‘—ïw^%)šÒ‚˜¾¹Mò¡0æ)Çd››Q»sCB˜TD™SÃ×"¹ÏŠmA8S ÂSz4fuÃõ¤±ãÇBöOs>\vÄŽÂ~ŠaÃ,ü€Ì°Yˆ›6ò®Ès,u=”±FŽ'•üZf :ˆ<ÅT¶mΞÀÖM‘ð»õ#º«½/ŽÍCàJÏE™î+M‚vå'¼l襦2 ÙDŒKévÒ\ö}Q—û§75s᯻ñÈf¸‚:ש鉟ûM€Œi?(ÛdšÖͽ2¦iÕ€Á4Ô·ºK ø7FHÕ^4œ‘ -¢2n9›Pï2Ò~ôõœ0{%TŸ#”P¾+1|Úþ”M.—UQ€#Çκ›g¾®jî¤ñ`Íí9¼ã¦ƒÖ´-»SBÚ¢JSÅ}¯A)üÀw¤û²-mî–î™+{,þÒÒiþµáuÿûÈ/´"+¥¾#€-VvW•¢ýš#ùË¢ˆÌëuqh>E@Ƽè«@g²‰œŒ¢XéøãÊ&¦Bßg5[
¼Ùäáós`éPÇÇ\6ÃÈjmèÓ‰i…㈃.kÀ¶¬aÄ°þŽÎº!Åíb…¼·Øfò8¶à!ÚeL>uh²½ÌÌG”¹ð -V{1×´f,a¡»íÇ›‡É_¯ì“Çw -q¾”C‰¿´ÈCݶ
÷—бËÁ«(’O§Ö,*áÙ©ýY9áô¤7<…ãûF—íwÏ‹ífSÙ_\ÐYôMÍó‚ +xÚí]sÛFîÝ¿B/7•§ÍÝåçõÚÅq\7‰“ØJš¦í%®,ÖüMʲóëX`)Rfœ›kîá&ãÄb±X,_”¹ðOŒüÀ bÂØs|Wø£EqàŽ®`ìô@0ÍÄMºTÏfG/T4Š8Áh¶ìðŠ7ŠÄh–þ6öœØ9îøùùååÉñw‡éÃ˯çÓ×gÇôòéÍùÉ%LÏŸ3ð~v(¢ñ›×ÓÃÐÏ,íåÙéùÙùé¡ +B|üÓôíìä‚F<^gúüá8Ÿ0/Xš€'ÄíýÅÉå᳟Nfí6»ª®Â=Þüö‡;JA#?¸ŽŠ#´…×q,GÅç+Ç÷”²˜üàòà]Ë°3j¦ªV¸ŽTÐ#!œØ÷eO¹~ìJªV¹òp"\öøP&E¶ØÛðf&&¸ÐͪJqÛÀ\vÎÁ¸ã ?6\g‡±W4'+k}Ûܬ˜Ñµ~¨ ºËÒîê´è?i%¯»’:‘tÃÑDÁ¶…KëýãpÀÊš……i(mž¬èG"išœ +fÀ#0Ž=»>W¥îsSã²âÉs²ì‡y¯³«R§,aÙd9ïQôïU÷Xá†è!U(åQ +ãä¼Îu¸½ØºW/ê:AÀ·¡àNhüž0«j«ïÀ£Âµl—ëÐqù¸HU~üÀ™mXüü‹qÑs\)¢n`T®G„à†Ê…&ØøBxÎ7Yž‘ÀEugGWÐ@®ï1 +6- p„ZßfwFÁföú7½ã…GÚ6k3Õ‚È`~Ú +Gá‘÷Õ3ŠÇ<••WŽë†¥PNºcÕ£|V•„ÿÝõÝZ3ñ\çx&H¶ÎWT6\â[ª›$Ëk˜%08‰€²œaw¤xG6ûB}2IÅŠoÅQqîš5Äz/ò†½ä/¶þ;v;Ñ+¦ÀÄ[|¡ì%¢ˆtdÃR¼Kq›ån5=WÉz‘î®be’3DWŠé’6³€—uU×Ù<tü g[çNkñò
èU +Û‚®ó +†xWû0rEb|ÖÊzïpœÚyü¬Jô7†f¥™SƳX:»Ó5a’ràXTL¹ö`nËtÑ‘ÍЋ.½çƒBÉäÿà:¡YKÀíØ W"€Ú¤,Ñ–3ŒÝö:þ8`*f™è Ç +Â1d±Y•ÚÛ%ƒ¨N‚{…Äì…DÑ6ˆ¨&Ô.œô¸pP|PfƒÙòñRxŸ¾C»Žnc/Ôà(™OÀ-3tåX:]™†MÜö¢oúqð,’TÛÉX9#\oŒ.aM< “ä´†Ûja‡2Ú +×ÄÙÖV¸žÑ'“`ͳ—žà7pßu¨ªWàYÉö9›Qt$ˆ 'oVìó1µ¹{?„Ü]ÈØF^¾ßy•¤hJbúö.ɇ˜§/mnFíÎ5 aReN
_‹ä>+6áL +OéÑ ˜Õ-×{"ÄŽÙ?ÍÙpÙ;"û)†i³ð2Ãf!nÚÈ»$ϱÐõPÆ9žTòk™%è òSÙ>´9{[7ENÀïÖè®ö¾<863/(=eº¯4 Ú•Ÿð²¦—šÊ$@d‡b\H·“æ°ï‹ºDØ?½™]ØG¶0Ã%XÔ¹NM?HìøìèØo4gLûyDÙ&Ód°nî}”1M«¦¡¾Õ6âßx!U{ÑpF* ˆÊ¸uäl.@½ËHûÑ×sÂXì•P}ŽPBù®|ÄðiûS6¹\TEŽ;ënlRœÙªª¹“ƃ5·çðŽ›ZÓ¶ìæL u@j‹2(ME÷½¥ðßA’î˦´¹[ºg®ì±øKK§ù׆×ýï#¿ÐŠP¬”zK +Ç% +]Ö€mYÈaýuC +ŠÛÅ +yo±ÍäqlÎC´Ë˜|êÐ$(d×z‘™)sá¬öb®iÍXÂBwÛ7-’¿^Ù&ï endobj 1502 0 obj << /Type /Page @@ -5734,7 +5739,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1517 0 obj << -/Length 2590 +/Length 2588 /Filter /FlateDecode >> stream @@ -5747,7 +5752,7 @@ I“§"ÒTOó—*Ûþ8ò¬µŽ¬0bE S|– †²ýÕål@Þçd¤)>–ؤ´9´HýS‚' k8êH|Éi°%åS$áç-f‡/²½Qká”S~ç=é…ÏÙKƒ‰ÑîI§3žt±rÄ–Ýë7"òF5šøÅuc |éT½¶-"×AJ}B~Ê]ÉèÉi|†3êª7ˆÝÉu½Þðùн!¼·P]æ¯hð&Öéº;‚\÷¸Úy¡$%ÔôöSI OG>ÒV¶.Tζg—Kùà®qäÚÃ÷tf‘—&I–ñ¸nýÛˆrÐ=)'*¥¹©òv;‹tϺBÔÔŽBÊõÑCð=$úÜ‹ÀvÌÜJy&H\÷JþÅýAÎÞ Âì!æiˆyŸé4NŒïˆ¥:™NPŒ!Ó]f€ïƒBLÿ8`ÜÛ¢7¢œÒ±§ãÀˆ¸¯SJò¿”šdhÏO“ð"#d'jxŒq $îFyÓ€q-3Ý;“q±æl¡hnÜÃ¥•ë {23hsa
u ÆÊÀ3–}ÕƒX®zŒyUsvU±‘%Ë4µ‹&.Muù¦ÌšvЦIÉÔt}¼`IÉ3ÚÁQF<Ý:7n]“>ñýÃ{èzÒÖÉØvcŸ(;)RBTË湤Êk3·›ßìÜÞ¼òP7E•—ÑêíÅ|ž,ähØ_ÕWh¡JÝý -ó½·£ äȦmÃæÖô^÷¿ž ÓáÿE#ù]nü¿ÿ–êÿ΃šHŽÿã¤üØ3aš8¡ðDÂÓBO¿çþcƒ^2ÿºÂ1ò—_[[åîF=œ‡ú(7‚ÿõã*Èu—C;tÿ†]â¿ÂkÊendstream +ó½·£ äȦmÃæÖô^÷¿ž ÓáÿE#ù]nü¿ÿ–êÿ΃šHŽÿã¤üØ3aš8¡ðDB¨štê«é÷ïÜl°À3®jŒüå×ÖV¹»N§Ã¡>Êuà¿ü¸råÐÝ_a×Vø/ƒ‹kendstream endobj 1516 0 obj << /Type /Page @@ -5782,19 +5787,23 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1524 0 obj << -/Length 2424 +/Length 2421 /Filter /FlateDecode >> stream -xÚYKsãF¾ûWè¶T•Å훣ƣLœq[“T6ɦ(‹;©){”_¿@M‘íq6[.A°Ý
|x4$GþäÈ„~˜¨d%o„4£ls!FðíÃ…ä17hÒõn~ñÏït<Jü$Táh¾ìÈŠ}Çr4_üæ~âA‚ðÞßÜßÏ®.Çeàå×›éÇë+zù÷7³{þ0½yÏħùXÆÞ§ã(ðænìýõ‡›ë›cFÆ»ú~z;ŸÝÑ—€×™¾ÿy,¥IW3–KñÝŒ¤}º›Ýÿ˜ÿp1›·ÇìªB -gürñÛb´ -Zû±Ž$b»áZ`ŠÒ*f -~¼oªMÚÙÉ‚»j½«íêÝ€8¸ÐXq¿XÔim¼”eþL„•†>ÍV¨d%/Íšâ Ö¯X ©ß…)¯ó†PÕ¹IUø*‘1kQÖužM`qÐóÀö#‰q¦v¥ò#)ƒ¾@ØDSlò‰!@JÇn8l\BœÕ&ôŠ%mm6 -’Âû¾zÎYe¸£ ±ÈÅ'ç‹„œú"ÆTàRÌvfEùH,›`lþµ¨›–ÛάN…× -ˆ@p̃¶¨Áu'C˜Åj½LKöiÎN€¼ß…ÐécK«Üz¼zàéÒrÞH„ñ¦
± £Hm+H`DÚzXË*TätACÓ˜¨ÜŠ'Û8T_ÝKçgèsz„s¿B~C©G¾ìóºùk¿„A{U• -[åí8*Dä -d·@ìÌã}
¥Ýmþc£âãÚHÀµÞ€kå£Üµã‹Š¼©PJŸ³¶žvaW‡CØaŒdYtÐHÉAR᦮²‚pÖN`÷KφK`ŸêÆB9Ñp+…ëd¿¦|CÆí]7©qÄ©Üáö(¥¡P¶ªÿ¿äìó&[ß_àB×ë
·¢Ð±ŽN›è“¦š¼âRÆ~9´}ƒŽ7µÅwÞ´¨tûÒ—aàäò¡æ‘~ Z¼¹îBÐߎ/ã¨×¡óÁ1—ÒLè5qJ‹
±¹rJ
íÇk› 5–ð’j_jѨt+ßDIÜíÑpÆÊz¥E"…ôU £^[çÔ
ÀoŸ´®-V-·¥†G®ª½-Fù꼓ò‚=>€;•Žé¬Ó;ËDÆè Òœ¶:ÖÕó¡ D¦µSÝä)ûvæªÝK÷´Î¥;aƒa~ÂÂσ½â`ko§®-¹#yÇöJ8·vŽBêÀ"aaÏ© -ßÙ@ñ}ÓÚo·ÕÎv%áÝøBŽŒ‘*÷²h:Õg‘»K»~r:Z †½VÖÝuÂ5Õy*¹ÑDî‚„§ÝdÙ[>i, ¸¯›ú,p¸Ê¶W`D”pR†nàSÑCEŽ=é +xÚY[sã¶~ϯð[å™X‡Q—GoÖݦM·‰·ÞYŽuÖ–¼–œ¬ûë@€²d+Ù´=“ÉI>€ ,GþäÈ„~˜¨d%o„4£ls!FÐ÷îBò˜‰4éŽz3¿øÏ·:%~ªp4_vdžˆc9š/~÷?ñÇ AxooîîfW—ã‰2ÐøõfúþúŠ¿ýx3»ãŽéÍ[&>ÎÇ2ö~|?G7wcï®ßÝ\ß¼ë02ÞÕwÓóÙ-õ¼ÎôíÏc)%Hºš±,Xšˆog$íãíìnüçüû‹Ù¼=fWRh<ãç‹ßÿ£häûáë$6£'h_&‰m.£}hí8ë‹»‹ŸZ^;uPµRøJ‡j@·J
éÖ$~¨•¶ºÍ¿l‹*)‡£kzóUQÃAuâåe½§.dÂkViC]ézMD¶.ò²á O…cßç<î~ÍTSÑ÷1ßËÉsÒÖyZ3Y•<¾.Ê´áõYü*/‰:T{"¨{S=ºUV9‰®Ö´
(h"¥Ÿ£ìiÁˆ?Ì~µ¦õÛ~ÐP$#Û?·ócc纖™¥%1ïyÔqù1‹”F|üð–P2ó©g>N”—~Ê©;KÛƒAŸÕ
|ëmž‘r`H㶒U;œ5Ôó)?O +Zû±Ž$b»áZ`ŠÒ*f +›QÈrþ¢ +’Âû®zÊYe¸£ ±ÈÅ/ß 9õ1DŒ©À]1Ûušå±ì5 +t× yÍŠfžFmä- ]d·ƒl¬‘ h§ðn·G>î +à¿hûîùY¼ÿîi÷ˆg:8'ùðM-æMÀ·È9Nw®zeŽqšÃ·ž±¦DÚ6~Y>)7ÖŽ·'05ÛPkgC¤V©Eìˆîž=±+-™ „iqŽ{-Î<÷¹…RZÅaŸ˜ÓNƒNaŒ8¡µßiÌ}œ§•|YµJŸG¼tÄø€TÚí!_¼£R¼ +¤ú¥¤ID M"R-LÞÚ0ò£(qY6<üÉ%rcã©ÜÀ†å÷î(hS} +[åí8JDä +d7AìÌã}
]»ÛüÆFÅ;;ǵ‘€k¼×ÊF¹g3ÆyS¡”>Ifm>í®‡°ÃÈ²è ‘’ƒ¤Â7L]eá¬Àî1–ž
—À>Õ…r¢áU +ÏÉ~NùŠ·÷ܤÂ_å·G)
•¨€²YýÿåÎ>/²õýt½úÑp9! +}ëè´hN0iªÉ!e쇑Ã@[7èxS›|çMÛAõƒ¤[?¾'ç”ðÕâÍU‚þv|G½ +Ž¹f@¯‰[PZhˆÕÈ•Sjh;¯í1½(ð€—”ûR‰F=£ÓXù&Jân†ë0VÖ%)¤¯õÊ28§n +l,¸-5<rUím2ÊOä¤ìYÐîT>8¦³Nï,£ƒHsZêXWOC†‚˜ÖNu“§ì/X™«vϽÓ:n¬„
†ù ?öŠƒýû:ueÉÉ;F°Â¹µsR {¾ª°Í¦ endobj 1523 0 obj << /Type /Page @@ -5847,7 +5856,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1534 0 obj << -/Length 3150 +/Length 3148 /Filter /FlateDecode >> stream @@ -5863,7 +5872,7 @@ xÚ¥ZÝsã¶÷_¡‡ÎDn, ø¶OÎÙi.žø®–.L’Z¤-ÎI¤*Rç¸}÷üèIÚŽ.ËÅb÷·»ÍLß™¹Hi›†³$ r{YÔc[8(4aüä\•»ò-w2+vã„ZpÆ›,Aaû‘ó¯%AnH]h^Öõn¿-`£h¶Àk>¤‰B ‰”›qð(\l‡/õgàøék^’@!~ìt9 ×óÛm!ëj0© {°—ì•©Œ3àÇÛM‡sSm¼;ê”ãÙhÏ%‘€ÍX"#—N=r ¬î²C+à|$ -M$ôK},¿b”À•,>= ßþÖUî!{éÄþu¨84%Þ.rºÚ¡û÷ŠsCüÇ$õendstream +M$—‹0ÕV~Ä(Êõh~û[[T¹Çë¥ÿ]_ø§¡âДxµÈ¹~h„î+Îðì|ônendstream endobj 1533 0 obj << /Type /Page @@ -5912,7 +5921,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1544 0 obj << -/Length 3144 +/Length 3141 /Filter /FlateDecode >> stream @@ -5926,7 +5935,7 @@ p „×õE PYòYá@2~3ø+ß·}åÿ×'2åÚoýùOd°¯Ø³Ã(ôßæÅóà% ÏðÎXYGèØ‘«iüŸ<}…®íE*\(OÙ*öù†?Nº‚‘Û…rìÀsaã,²å*Tøá1t›sÁ ëAo¹…¸äBÀÓÃãréÉDF4·™ÛrdÊ܇wí(žreD°úý†‚ ôÁwfÆvé9X[Ó™Žü¡4œVf¶Óó)‹xÕÜf=ˆðÎôÓÞx11¿flhÖAÉûjü¸ý—]‰—3é½3˜ð_þ,?: -?²½8v¿þÅÝÃÇnoúþÈìhuçŽßbnž;ü($þs=ýÈÂ?G`µàÏ5àøCË_ùWóc +?²½8v¿þÅÝÃÇnoúþ1Aí?ÄÜ<wøEHœçzú……‹À:ÁßjüÄñ,7~å\Í/dÁ‰þ³WžTendstream endobj 1543 0 obj << /Type /Page @@ -5956,15 +5965,18 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1550 0 obj << -/Length 2124 +/Length 2121 /Filter /FlateDecode >> stream -xÚ¥]sÛ6òÝ¿B3w3¡fL -Æ^«¡MÓ”?Ìfûýž ±®3RTëY]ìªDÍ,ÊEù¤‰+²þOᣧæ”맦Š“f`ؽˆ³ìõ·„
üõ´Bàÿ¼ÏEYf‡ç˜Ø\áKlÖ«%z5|0 -Ýò–Ä‹ë;>¨CÙ¶-ímIóÝÓx1æ>ñÐs-ÊãEyœu¢4R›AcülÒõFnÍV«¤SZÓÔº)ªxk©ÓDéÖRè&µAtOM7î©Q½îËže÷OIªCÙë*.7i2æ¥q’@GP™G#ºÈÎ>†‡$Î5 -†2°ãÒ6~P#‡CwQ_Z&
´PüéZúoH÷àÎTð¾p³¯QàRÏt¹^ÿhˆ¹àÛJ -öÈž§?7DD(ó…žx +xÚ¥koÛFò»…€; `®öÅWqýàØNê¦u|±rEÑôE$ÂÉ”eõ×ßìÎ’¢hÆõ]`$œ™Ý™§Ø„›„¡"’“ ’ģ̛$Û3:Yíý³<nËäö¹ÞÎÏfïD8‰Häs2_õd…„†!›Ì—8—?]Üͯ?M]îQG’©ëùÔ¹¸úÏ”1æ\Ü^^_!éêöw×Ó@:óÏŸ®D‡mŒÙw.-ß?Càõè姩œßïæS:?Ü +Ô׳?þ¤“%˜àç3JDz“=,(aQÄ'Û3é âI!ZLvvöïN`j¶ŽÙÒ!ñBŒ“ó1czñƘoÕª¨´Š +”‹¨³Ø¥Ù2Í×zÅœ·7·Wˆ±O›
"¬Ù +1Yº¨´ºÚAIw넾ôÌ?.š¸½ùQwXP‘°þA“ý× ‚’E¾‘ðÏ©ëS0öZ5mš¦üa6Ûï÷¤ +=%0§\?5Uœ4»ÀîEœe¯¿%l@௧ÿç}.Ê2;<Àľà +_b;à°^í¡Wà Sq^¯„=GƒnÉ,°Sq_˜æíFÁNÝö_ȳHóe4ƒÿgåCR36x'·sû±¤ã1à’¯É:Œ“(òäxÖ…ƒ€ø¾ÿBÃ}dY°Ýq*ê˜é¥%¸ýäÔ™`5‰( dxzDxf§Ûžx¾dš‘Qâ 7ÇÈÃ1HÄ®Ïë¡e@¦dp5é3¹gŽž|0Be'¦lt=ÚÀ f7[>¹*@£IO©V°Û—l”òYÏq
À—d —Ötu¹-pF)xeÜhH¢j”õ,
êL“)¤oã© Î yÑ °°›’bûÒÅ”C¾±;0sâ)–íçÒÈ× +™~PwrU¥‰6¤¬¶¤¯Wzq¨ÂÈtÝò1Œ”Ç[õãßÆÊ©ÄÁu°U¦Óß]^üÛM•Z¥OóGÂÒm5èõbÕ˜§–^¯A +«½”6`Ĩ8i¯!Kû½~jT¾TVÛ{üYø+³ªêTÇãóñ´û1ö¹þ„1ËËendstream endobj 1549 0 obj << /Type /Page @@ -5988,17 +6000,20 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1555 0 obj << -/Length 2085 +/Length 2082 /Filter /FlateDecode >> stream -xÚ¥XmoÛ8þî_aì-Pˆh¾H²T ¤n²Û}i²µ{Àa»XÈ6ë"K:IŽ“ûõ7Ã!eÙUÒë‚ÀÔ9Ο™¡røà da,ãá4öYÀE0\í|x¼ÂÎñÜ$¯;ëíb0¹VÑ0fq(ÃábÓ‘1Eb¸Xÿ>ò™l"øèöçÙ|ìÉ€þ&
>ó€Ï>ŽÕtôÏÛÅXD£›ŸßÍrçŸnoow1†½9šýxy»¸úHlßʽ|÷±btùavõŽXï>Ø®¯.ÇS´øôñj>þcñÓàjÑž«{vÁê߃ßÿàÃ5˜à§g*Ž‚á>8q,‡»(øJ9J6˜~kv¸fi¯-gR…²Ç˜Rô3ˆY¨¤:S09öç|ôvŸfë4¿££Þ”:ŸÏ¡MQÑ ÙjkÌÙ%
BXJ£"·¬"Kª´Fû€²£z2d\qÚa„q#̳rxëXBoéZWDùô›×M’ezŸb”XrB?õSÝè³tY%Õ“ñí„!•÷«Ú„”ŒÕè}s*ÜJiªq4ÚkÚaU=•Maù«•Ît•4`‹<2ÆA Í!÷¥µ\aÃÌ~¦;][ã& dkßÄZ1ÉŸh0»ýtA£º8sÂgÎUòà|SoÁ4\Ú ¯H[¯«¨š¾bª§¾Ñô}îħV3ý˜ìÊLÛíVhbœa?–'Asæã1 -O¹îˆ—¿¾9ÈQŒbÆ?‹ÅY(c€ïÇ)£Õš~ˆÒºÎ<ÎbÕ}ö·ØdVä›ôn_i"Ô¤bè{ ߟð³Zã³P¾4lªÄ©4Ï+ï…ð pòd§ßLöu5IèOŽÁ„~:‘Ôª$ºB6úîMŸ‹úW·*Tz“>¾™e3¡-Qžûæ¹#t-ˆ yíb&¡%½eÚt<j]¾¯]¤Ié[‹¡½ÀXHqî\Ó µF×Ì -@ŠÙ%÷ºçär -˜9vjØ#)f* -ãÏ”=´à´êy©x8wªáRìs[PæÅøK“á†UCÓm°ü‰Þ8QÈžŽ¡ò/i¦W[[j}Ç_÷ X/¿#þßéçûî–/©yfžÉ2ÍPgH¼V^SÜ# …;FÍ -
ìu0¯eOD¡ä„4 -ª»bW¦T쨀ŠzCVMFO=æUÏ·•Ì(öMi VÕPgk¢›BJ!º‰"4nå¦À:’€ èp)M͉¨¸ÖØõ´¬Âjc—Gœé¹5´ý+è5úŠÊ"ɧ§×›.ò½m†í›YèÞÌpàÜg’Ž5,]SX7×¢\_ס_ÆÞíoª×Ï=}B‰…ï•=•ðoø?‹ßA=EÏ~g:¡æoß°º0M½[y|6¾zlÀƒÚ^ô¹³~Ðs°®êC-®ü0)þ…Ücì—vø/Ó]ôendstream +xÚ¥X{oÛHÿߟÂØ[ 6Éód©@HÝd·ûh²µ{Àa»XÈö8ÖE–|’œÇ}ú#‡Ev•ôº‡ ðˆœápHÎäÈ¡€?9#?JT2œ& +W»Þ +‡ú÷à÷?Äp
&øi |Äáð>„/“D
wƒ Ô~hí(ù`>øØáÚ¥½¶”ÂW:R=ÆT²Ï˜aâGZé'cJ_=)„½=dù:+nè¨W{SÌç¿ÐǦ¬hÐl
svNƒ–Ò¨,˜Uæi•ÕhÐBu´COE¾Ð‚ö_Xa +óXŽh+œca°¯Ð›å]¶6Q@>ýu“æ¹Y㧥LNé§~¬³£qž-«´z´¾=’´¤ýíª¶!¥=zßg)M5ŽGC;¬ªÇ}S2µ2¹©ÒÌaq†GÆC‚À$•=äaÏ–+9Ìø3Û™š›‚’}S¶bZ<Ò`výéŒFuyâ„ÏBèôÎù¦Þ‚!h¸ä ¯H[¯«¨š¾ò[Uc?šVÓ÷…Ÿ±fæ!ÝísÃÛß³ÐÔ:ƒ?–GAsöã!ŽŽ¹îˆç¿¾‹Øä(Ÿb&8‰-üH% +•Ùdo&徙Ж¨GÏ}óܺD¼t1“ÒVÞ2k:e—jiJl1´)Îk´ÖèšÂ· +/·§X}G¤rCSØKéV¬Ó&å Eß}&<Žå(/W¨€ŠB³Êƒ5/ +t'#‹ð»rÓ;N¥…»²+÷tŸ[óÈRùxwÜ6]ghkâÕ#dÓt´XÞ÷õ±<'gó°7U†ÑÂ)/k¶4jÑ’·æ$•Ù;ˆ—ôŠ’E¤wi–§ËÜô¥ÜÅà´sEÄ%ÆM•îá†mâ.2|îuC£%S°Ë—BH±v ˜-ͳÿ8ÎÒlŽ¤jG¸uÆbéà8b€:{úì
@຺\0pukc© Ì…
} +ÌÑÐpÆ‚¤Ë‚[Z"Áê 9yá + b&K$"'íî µR‘mRp6DFév LÄW(ÃÃþ"ÎS…l‚uµ]MOˆ0 ¾Ø«¨oíU䋽Jž‡îS8¤öͶ2éú/´,'‘}Z¯µùè´.9¿ÚïüÅŽE}C«Ðö)½MC5s¥iüDD®³èipž‘®¥K}[#‘t¶¡ÒÀS ¥Ä”×-®è²ª„ªlÓ;&aœ64ìäiør6Ñ*~Ö&Qè«XO]´ß×Q’aŠ›¬àÈi=‡‘Ði%2–GFÃöžÃ/{ÌB’·)+LÏ<¨ ø@ª{›È‰ö•ñIÓ€/<ZCuWîö;:¤¢ÞR+‚ƒU“ÓS}Õ¸Ò‚å¡Ù[HU5”Ãùšè¶Ò…nâ†[¹)±Ž$`:\J[s"*®
v=-«dmxiø„3=·£†¶½F_1LýX‰éñuÀ¦‹üAo›Qûf¹738÷٤Æ¥k +ëñæ2*ÁõuÚéeìÝþªzýÜÓ'”Xø^ÙóP ÿìÄÿûYôéýÔÓqüLáw¢jþöý~ÐM‚ŸÞŒ/pŸá[>wÆÂz6Ua£¹ƒDè‘_ØÀ½Ä~i„ÿûXófendstream endobj 1554 0 obj << /Type /Page @@ -6027,7 +6042,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1562 0 obj << -/Length 1896 +/Length 1894 /Filter /FlateDecode >> stream @@ -6036,7 +6051,7 @@ xÚÝXKsã6¾ëW¨’=HU&„ÁÇVÍÁ£±7“ÉÚÎHÙÔÖdEY¬áC+R¶µ¿~»Ñ ö=,=ù‡Úng„œ/´öO‹‚J|vhöC©Ä¼Ž¬-ÖáÓ€-éÆ@DÀ ÊŒ4)§žà°¼oy±Î«{*”·ïo,ÉÆ®¦Ú-IXðXê/ãà¸î<Òrÿ¼…à‰XMVml‘m”b,\n!EEQ§I›×vZ½¡_ÛíOÒCÓÖ¥‡æZêê07³óÕ>Ù©QÂXëÝovYÚ-*òÄÚ+ÔߨòØ@…An ¸Wp݃Ž Þ¼3ð:‚›zOÂyux:G•ø„Ë«;>dÇ]¶ÿm˜—ÓXN,3yõåUËßÁI¸~È×à ¾ n ‘¬R˜(¬±¬BfX[â©Î\½HÞT -ªU^aȳÀç2ŽˆÏaÔ£›LžìpWë.×Þ.ÆÂVB£%‚Ià“TmëÆð’Æ,vè؉¹ƒ‡4;™î‚D•ñJêÕÑŽZÓ–Cò›W*iyzñÛ‚=-`°µçsê2‚=ØÒÅܺQhãlÃ8V~ΗŽi]–IµîjÓí,ÿ¬œûÇ„¿Ð×&]Ó/c3X€u<§ÊfÎ&‡`ì—j>óÍ}šRÓþÆŠUõMµmÎ7BQðf¡VgÄëy¸“<{öxcˆºGƧÎÒ·siøùÔT7þ“†5õ +ªU^aȳÀç2ŽˆÏaÔ£›LžìpWë.×Þ.ÆÂVB£%‚Ià“TmëÆð’Æ,vè؉¹ƒ‡4;™î‚D•ñJêÕÑŽZÓ–Cò›W*iyzñÛ‚=-`°µçsê2‚=ØÒÅܺQhãlÃ8V~ΗŽi]–IµîjÓí,ÿ¬œûÇ„¿Ð×&]Ó/c3X€u<§ÊfÎ&‡`ì—j>óÍ}šRÓþÆŠUõMµmÎ7BQðf¡VgÄëy¸“<{öxcˆºGƧÎÒ·siøùÔT7þ“†5õ endobj 1561 0 obj << /Type /Page @@ -6081,15 +6096,16 @@ endobj /Filter /FlateDecode >> stream -xÚ¥ksÛ¸ñ»…fîfŽêD4¾=ÓN¬4>§¶jËwÍ$™J„lÖ©Š”m]§ÿ½»ØEQLìLí\,€}a_€ÄÀ1ð;ˆe<cÏöáæË#gps;¼fdÚ«ÞNŽß»Ñ ¶ã@ƒé¢E+²(ƒiúÙòl!ì!p¬ÉÅ»›áHúŽõ“|q|çÝõÐ
O“éPDÖÕÅ9àxöæv2¹Ò³Ó!ðö¥õîÃéd:¾¦iéžžý6BX§—ïÆg4uvÉœÞO‡¡gMo¯Ç7ïÓ_ÆÓF¯¶îÂqQ©}þêR0Á¯GŽíÆ‘?x‚c‹8–ƒå‘绶﹮ÁäG7Gÿh¶fõÖ^[ -Ç–n {Œ)Å -!4G$,ðÞ{µæ…÷IÑÞâ±Ì -À>êyU®k‚?žýññüíõéõ§?&§Ó=>¦q¼©ÖÇÀûäçÿtVý·ß”mV¿Sô‚«.FŸŽ'\¨íjø¤¤š&(UBɵé -IÃoT.’¥J{4 Šc7àUÔ¬b'gûQì·ã¿c‰-µ¾[è"n^”OŒ¡„«/O8¦rIQB°&ßL2ÞLaãhØ7S™¹Æ$•¹®<ñr¶%,;àJ ÷Z0ÃZÅÜ;‚Ýe¼Ë¬AyzzWòRzs€BT%ËU®FÕŽ¾[ÔÝv>ÜsÍèKòjLNß“W$C<î]øÖ²^KꎳiCèè2Dõú¦¤“WºV5z)®œœ_žô•eºì}v¾žÐ:¸Ÿ¤Xõ´ ܬ#7ðÙó<©*]úècø}¥Ñ/;ýB˜,Ê}’1[ñ]¶á[ùƒl¿HoÕ¢4—RcÐEAòu„ôÙhTI_Li%ôÁü†aïP4 ŠŠBíhhí¡‡ „°ÇÂ/]zŠ;Œ©û8„ˆƒe–ÑàéíÔë-¥oÝ›õö¦Îò¬Æ “ž•–ºTJW+‹-‘+t¬ã$Ç:LšX÷8Öa’ï} -|Â/¸ƒº¹0mUÃúU}èüSmrêóÁዿؤ*L뤈 -B(×·Sâ56ûÓЧ\¹Ìêºá…ÙSÂb8Ob+Ê9Gp) -Kë -0§°¾ÐìÖîO5ênƒ×3ê7ú~Iq}þèùÝÃiž•þï_Yv?GÁÙ¢o¼¼udjýâêÀ2;MäîW¨ñsŠTñûÐÍfE_ЯKj]qËŽ>ùÍ•f0¿íÚáÚP
`endstream +xÚ¥ksÛ¸ñ»…fîfŽêD4ðé™~pb¥ñ9uT[¾k&ÉÜP"d³¦HU¤ìè:ýïÝÅ.(Jfbgjàbìû$ü‹Aºa"“A”ønà‰`0_yƒ[˜ûÛ‘à5#»hÔ]õzztüVŃÄMB¦‹ØõâX¦Ù'Çw…p‡@Âs&o®‡#xÎOBðÙ¼7WC9'Ó¡ˆç€ãÙë›É䃙w 7ïN'ÓñMûL÷ôì·¡Â9½|3>£©³Kæôv|:Œ|gzs5¾~™þz4ž¶zuužB¥þ}ôé‹7ÈÀ¿y®Jâ`ðÏI"Ë#?Pnà+e1ÅÑõÑ?Z‚Y³µ×–Âs¥ +e1¥€’ {Ö7TRí¬©†#áy½öœCTUQ£²@RvÎÇŒdèÊ(ò
×ç—h-•8 ~b'/çÅ&Ó5!SB.ó2_¦ájݶZ¢1¬ä©•^§fä&ì»ë¿¿"qÉË[–Pt$T^èŠÀIQÀÕý¼bt¯··ºìÑ'LÜ8Qv5ñOXÛ +“‰SêG$0©(t=,0jM
{Åp¤À¤«4_ÃŽ$qóæ./ KZ +À”¸ïÖ7V¥1E®´ {2@ }r&1¯ÊÏž'o7D*#,-s3”>K"z4l+ÂW«&¯ÊfŸÁÔuùa:>A|ç|Aß–RKFøRü +pµ¿žºFͼ÷N¯yá]Zv·ø,3 +ã}cëò!'–Kˆ~Jïé:ÇЧ‘ñøÖ+=Ï[FÞñ,»GgÝnêÀ\SrméÔ p +F#ÅboZšü¶LçPI5‚4‹anÊÊñx—Ïïö³
U•º©(kc)Tú†Eµ^23D¤³Êä¥8øÇjxQ1°©yv¶¥/>n4§¨ƒdò‡i¨°ÑB“ã÷رj4 µXØVèñýÈ
ÂÀ¶Çœ,v/
£RÇ”Ø&kòØò~ê$"‰\z¶ÅàP+ô9ï¨]ýœ_Œ?NÆW=ŽÜ+ßóÎ;¥ª¯ §yÊŒÛdWÓJ81ã]&U ða ÌÁÁ4å‰ÒÄÎ¦å– +hâÿ ÁoŸH§ÛÁnn—Š •MzÐ× +¢~ySrW4.ôR\99¿<é+ËtÙûä}9¡up?É°ê¸YÇ*Øó"k}Ì1|Š¿Ðè—…~!Lžå>ɘø.Ûè [ùƒl¿H¯õ¢²—R‘`0EAòu„ÌÙTE_Li¥ôÁü†aïQ4 ŠŠBÝhè졇 „°ÇÂ/]zJS#÷qË,£ÁÓ»©ÛÔ[Jߦ7ë9ìM“yƒA'}'«L©”Ê(‹-‘&Öq’c&m¬ûë0É÷>€Lé†El9ÚÉ8“ACa.ýžH¥•i}°v˜ÊÑmIàõ]Þ–þjH»¥nžM{AÔWÿ¾ø„_pu}aÛª–õ‹ú$Ð%ù5¦ÞÔçƒÃ;qIU˜6I@®Öù%TXÄþ@“&ë#@Y¦gL’<0Ï?0Cžk0Vô]8zˆ5ç¦,ò{fQbk^Xöôe¶¯ú‹JíHJóFÓ¤¦šÀ`V5Œ^mfE>'˜Ò="Z8 $@–6©y\”íK`[qÀÕæ?%Iû$£=¾O9(gUlj+UŸgAïwTdNõ^Ú†@Úô-;jÀ€s¹lmûîrÖ4×^†2^˯“{d©#4í |i©ÙP±¤v„z4êHKI†nD}}x?Ël«
y}‡½#f÷:‹£”>M•q^ksÜa_íÉ Àù!æ‹ +EaÜ¿K¢–ÉñepÔg¹Î6¶(lÜfÕƒÉwQÐfµ€šødù×.´}Å%4ˆcÒ†ÙÚÅ5„Pan1¶Älþ§¥O¸j™7M˳¦„!ÅpžÄV”s<ŽàR>ŽÑ`Na}¡yX¸?5¨Û
^Ϩßèû%E.þüÑó»‡×>+ýß¿²ì~Ž‚³Šão¼¼ÈÔùÅÔen¼û jüµÑe¦ùqèz³¢[/è§%½®¹_ŽüÄSŽ’Ol`Øyj„ÿ¶£¯endstream endobj 1569 0 obj << /Type /Page @@ -6118,19 +6134,21 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1576 0 obj << -/Length 2281 +/Length 2279 /Filter /FlateDecode >> stream -xÚ¥Ymoã6þž_aà¨]¬QÔÜfî6½$»ÚÝE!Ët,¬,¹zqêþú›áŒdÙVÓ-Š|09Î931ràOŒ”o;2òFaäÙ¾#üQ²¹pFÏ°öí…`«e²ú\ßÌ/.o¥Ev¸Áh¾êÉR¶£”Í—Æ7ï®çÓ§‰åúÎس'–8ãë·?N„ãëû›é[Zz{?£ÁíôzzãùOS „‘ïÂ6!xçãÝ
óýC|t|çæi"ÃñOó‰Pㇻ÷@ãÕÙfu>ù4ÿîb:ïüêû.‰Nýzñá“3ZB¾»pl)ôÇQäŽ6ž/mß“²¥d³‹ÿu{«fëP,}©l_¹á@0=w(˜^haHÁüçÄ -g¼ýœTBXŸõþYçD²ô+×cJF¿U¼ÙfÚú½úŒþƒ3ò}·/q™W•NPâª,6Y¼ÐÙJ1sý›!ع®QìåÛ7”HŒOf_gµ.ó¸Nw:Û›ƒC‡³/lâ=
¶%ž ^é’æuA¿à¨.ãZÓ,¦Ÿ¤Èw:¯Ó"3¢¹µLÑFœ€7}eM•æÏ4<¸r¯Èï΢ÔÅý/Åa¾N«‰%eÄn»t"ÆKÍÄLW<-M™Ö{œ©q½Žs¢Ó¯¿›ý—=%dÇ¢©Y@š'ºãe©I»}¡™++^ˆR”ÌÒlº¬Š
s`øq½©˜°Îkt0Ø‚1a\y…†9á8i…Îh‚ùãMAÌDÕ+œ|t7Iá`‰h®@'µÒåŽ÷š(à -D¡¢šgÆ`¤91×k&P”
3IüµéT «JŸs¼(^[¼ƒpÝl7Ô(#3Pãß‹\w
ÆLÐÝ $@'ŸezIó^`Ö·©—+¡§+â œ/iµæ5"TVl¶:¯(OPš âžn½lëØ=ºžèåGš2ȺóEƒìn³²]Ïl½Ç‹t”Ñä7n…°p.›pù„C(¨xßµ¾¢éû±æE}’´¢Ý5‰;@±=X ô½ôsà -»ëƒh$§/„äkèÙAIæ纑²)/iÆUfÁ~ä½:û—{¶Ñ˜Y@9B8^."a*X
']±Cìý¢¨×EI8àÜe6ïΨòí(Ðc‡žôÍÂ×ý…ÝÆã<wÚ
lÏ,s/ÓÕqñíÌ5aã‚]Õm¦=mhV‡û̧ߕݴ¶Mc>wÍÐæ<凯ÕÝîà¨3Í+ðiÎNsc'r>¾¿¿bùQ—éjo¬D6ã-ºø® ‡‹—ŽgÏdÈzS]
åÖýlz#Ÿf׳w×Â2âçNY2œ`Fgóc`Ïu«óŠ˜ûJ˜ôóì®â¡xC¿w=Ûž`kæe‡~J½+>ëå1±ªã|i-öCöÎÁF ¾µÙÙl:¢è0’T7²ó'–p@úl«“ö Ž®ÎŸÓöâùY -m6`M²t0¯A«ë&ÙéÃØÍ -5vE°ƒHÜìNê -¯EÑ ¢5n>84O:à“Ëq±?^âåÅ]üö·•ñÒ/}M ¡ÐeEûÒÞ590²´¯PÇ©¸KcªçyÕl—ð„zÃUns^à#ᦩjcó…Qœ$\P×õöÍz«*Bm"ñ퇽•`°8ˆBܵ®U¸ØÓï6‹n$} ¨€ŠöwV -|V™ä«sðŽ±ô_Å‹b§JÌyíp!±ýÐmAÍ%¤Â%¥ÆeS•— ó²¯ûü"!v’ð:è">e˾ÂÐ§Æ £è -så—â ûáqzMìäâ-\¹_¡ é>-ºv‰4üaÑê$Z}‘æ«á1ÐsC[ 8…ŽÍ|ƒ}¸¿%ƒu¾K©¥åjÅàÎ..S‹ßžk#P<ºO‡®túº£ÒzR´ŽÚx{Z3ssÎîàP‚— r“— ïùÌ+ê4ÿ¦ŸvÀÖP.|8ç2„OCÌÔX«#ùDûúŽ¹c€çà ãkiFO ‘úJ†¾SKßÆË_•®Óüío؇ýpR)wø¢I'€SŠÂÖ(tLJ€^´PŽ6Ø¡õèêËô·Zç˶µÍší¶(¹·ÒÿtYAÚïý8tŸÎÏñ[Ókîendstream +xÚ¥Ymoã6þž_aà¨]¬Q”,*¸; Í:ÝmzI.v´»‹B–éXXYrõâÔýõ7ýØVÓ-Š|09Î931ràOŒ”o;2ôFAèÙ¾#üQ¼½pFÏ°öí…`«a²ú\ß,..o¥…v8u§£Åº'KÙŽRb´X}ß¼»~\Ìž&–ë;cÏžXþÔ_¿ýq"„_ßßÌÞÒÒÛû9
ngדÀ/~xš%}¶ Á;ïn˜ïBÐà£ã;7OŒz\L„?ܽ¯Îx||0«‹É§Åw³EëWßwáHtê׋ŸœÑ +BðÝ…cËPù£˜8¶Cw´½ð|iûž”
%½˜_ü¯Ø[5[‡béKeûÊ
‚é¹CÁô{ÌN¬©ãŒwŸãRë³><ëŒHÖ’~…ãzLIé·Œ¶»T[¿—ŸÑ0‚`†¾ïö%®²²Ô1J\ù6–:ýC)f®3;ÓŠ½¼uûƃ‰òÉìë´ÒEUÉ^§sðoèpyMƒmt Á®ÀÔk]мÊéÕETišEôçÙ^gU’gQJ”<³V ڈ𦯬.“왆» ÷Šð^qà,JmÜÿR›¤œXR†ìf¾O&b¼ÒLLuÉ#ÐRIuÀ™W›(#:ýªñ»ù‰ÐsQBv,ëŠ$Y¬[^–7Û—š¹Òü…(yÁ,õv©‹2ß2†×ë’ kà¸FÁn8ÓFež•h˜Œ“ŠVèœa€&¸¡?ÞæÄLT½ÆÉGÇqã–ˆæ +´RK]ìy¯‰®@J¡yf`ÆA’sµaEÙ0“Ä_ëV²Êä9Ë2àe¾Ã;×ÍÆpC22§jü{žév£¡àÁ˜ º;
Èc Ðɧ©^Ѽ˜õmêåJ ÇÉš8(g@àKRnxÍ„•åÛÎJÊ”fƒ¨§[¯êØ:v®'zFù‘d]™A{¾hÝnV¶ë™÷x‘Ž2šüÆÎe._˜païû¼ÒW4}¿&Ö,¯N’V4Û¡&qÈwÅJ?ÑK?7¡°»>ØŠFrú¢AhÁ@¾ž=
CÉü\76å%I¹Ê,Ù²WÇpŸ¢âÀ63 ë¡(G¨ã +|š³³Ì؉œï﯆X~ÔE²>+‘Íx‹ƒNߣÕ5äpþÒÒ£ô9‡ÙlË«¡ÜºŸÏnäÓüzþîZØCFüÜ*kC†ÌèTc~ì¹nt^s_ “~žß•<oè÷®GbÛclͼìÐO¡÷ùg½:&–U”¬åaÈÃÞ9ØèÔ·&#[›MGô +ø‚÷”ºã®ëY3’&újaàæÑmü×PA…ê£ÖË>膶´lÿù39hö=¯wöOgoÈÔ°Ã(I-ˆ&†f?b1œ.ë$høÉD‹t½€Ê¦H¶t÷`PØ—Å•´¯íIÀµÒë¨N¡¸›–à ¦'13VÆ%R€#°Üsåq> +ÊMžWñüñ®.vy©â"£-ptµ6°nª<áN[gÑ>JàÝÕôQ¶Å@¯ê•rxÖ¢õvW5 *ÀXZ·9wk®ÓùÕsÒ}gôûÕW¯vã/yZ„•%Îwí)ØøÅ +]•´/ÉàÝX‘#KAû +Äô8÷IDõ<+ëÝ +žPo¸ÊmtÆ|$0ÜÖeE£Mdž£0Šâ˜ªàºÞ¼Y`@oUe@¨M$¾ý0¢·–(Ä}Pë…ËýîÒ(æ†@ÒŠ +¨hžqgå!Ç÷a™Úq¶>ïøKNñU´Ì÷ú¨tÀÁœ×ÛÜÔ\B*\Rj\Öeq :/ûºÏ/b' ¯ƒö!â3P¶<áÛ*|j2;ZÇiGÜt¥ ª/ûå©ÇÀÑz,›Wªä'nßë¢HV+ÝÐôU˜+¿ì‡ÇÙ=6±“‹´påJx|€T¤/ø´èÚ!$Òð‡E«•hõEš¯†Ç@Ï
l%àZ6ó
öáþ–ÖÙ>¡––m©ƒ;û¨H,~·z®@ñè>u]éôuG¥õ¤hµñæ´æææœÝÁ¡./Aå:'/AÞó<˜×ÔiþM?Í€¡\øpÎeŸ†˜©±–Gò‰öôsÇ +§Q蘔€[CG6PŽ6ت+.³ß*š¾6¯w»¼àÆJÿÐE h>ôƒÐ~7?ÂÿÜk=endstream endobj 1575 0 obj << /Type /Page @@ -6159,7 +6177,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1583 0 obj << -/Length 2635 +/Length 2632 /Filter /FlateDecode >> stream @@ -6170,7 +6188,7 @@ xÚ¥YmoÛÈþî_¡JÖf_È%i\8‰“øs\[¹û-R6ŠTDÒŠûë;³3¤(‰ñÈξÍîÎË33”šHøS“À øÏ.²üœsï{¤”;KÕj¢|a|«‡a<ð#8ÃìÂ8HPJã]o×ëjÃÈèÄvÂ^CpÈrly±1Þc³l@^ -˜‡ã^ÓDâаMÂ˲¡• üu\:EÕfUg0ÄwªLVQÎtsšÃš7%e::³Û²cRTÕ×v]‹1ï¸lƒ Cïƒ;Ôj™Öt=0Ê:*¦ Ö‰èðú(ù»¼L6O´®Hî²Â©Ã‰E…R„adö=Æ|x_Ëj[IXa™kS7°Aì¸<ß-!Ÿ*ܹbFÀp¶xý½€c‰Wãè$X“e|ö¢Z‹¬Éš‚Ch ¼µlF<ÁDg”¯o½ß’ÒqÑ^²^9¨’E#d‹½ˆîÌžr5ÍEm Zª†ãNè@ì¦IàDîlÎíÚ‚'ûÈ}³SyÇÝ…ãL¡ÕM»ÁôÙ]ìÄ6#DCwÇn¾¤öPÍÌbzÁK×ɦÉm‘t†nÐ:~{øí†H4HÅÔb#EˆM4%nE†·cK
R\ -Œ(îîzñíÄûÒ
² 0•Ícžm¹·ìëÔoI=nKÚÕ¿.GY4-Éyï² ®ºÎ²ÃŒÛRøQ¤„QFc2K“›{®Ùnß`úõ³á†®ß!_”Àm÷ÕoóJUâò£ý`ï6GßúUv‡#nxÁȧ†Å3(\k |SÆJ÷ÑMq¾~¥.ÿž"u>Ö»ÈG©P7÷Òú¹{ 4ðù«K‚Ny@øpŽQsÖŒÔ`n¤Ë!ЃƒÃ¸Ë{±qOûÞ(s—c8ccª-‹ük¶ÇÄ?Œ8tcû¿z-rt§ìùÏG;æC«µæý*‰ST@‘%°Jî|/ûž lŸr <ÐËðkÝß>Ü\¾í>ôñ6 ?Z£<T5xj¨a)X„³|IŸc±Û™ŽÁu–ÞEggjÜ6†wøˆ1¾spcH³¼œ‘hpfµ€ôAéƒCîÓl$ăN<«Uá"u‚w¹dÔÐspŸ|n¦¤–L§§!DU»ÅhÈ#²:¶‘á—ÁdçH§]Ý×<Œ¨K)uuŸ¯œ-áß™ŠÁcm$|-Æä‹›¤õCÞ”Ô˜;xÓ8Ph£…„j(ôPt¥çÕÏ@Ç•ËLùÛ;AÿŸbÇ®r5’ªIúvMm“{îƒ9O”|&Ò}¢d ¡Xc[1íY6ÜO:ÅNƒ—<=ÈâSÇÕzÿmYIß ž/2VñƒñE0ðëÞ‡¼ZÅæ #À"Õ-ìî.ƒÆOwAáhÿf~p[4,Qß%à*~ÈP‚Ëz(ٗزÂù½.¶U[ðA›Õ#–Ç”íJ_€Å˜1ÿèÊôÞv¨/ÇÈg{‡9ÂÍŠ#¨zgx™l ÂÀtÞ&FØaqH=ƒ£RìÿEâN¤Ð*×ÓbO•‡f¡„|îÜñWù>°Š€ê^Ïo˜ÂZâG¿ +Œ(îîzñíÄûÒ
² 0•Ícžm¹·ìëÔoI=nKÚÕ¿.GY4-Éyï² ®ºÎ²ÃŒÛRøQ¤„QFc2K“›{®Ùnß`úõ³á†®ß!_”Àm÷ÕoóJUâò£ý`ï6GßúUv‡#nxÁȧ†Å3(\k |SÆJ÷ÑMq¾~¥.ÿž"u>Ö»ÈG©P7÷Òú¹{ 4ðù«K‚Ny@øpŽQsÖŒÔ`n¤Ë!ЃƒÃ¸Ë{±qOûÞ(s—c8ccª-‹ük¶ÇÄ?Œ8tcû¿z-rt§ìùÏG;æC«µæý*‰ST@‘%°Jî|/ûž lŸr <ÐËðkÝß>Ü\¾í>ôñ6 ?Z£<T5xj¨a)X„³|IŸc±Û™ŽÁu–ÞEggjÜ6†wøˆ1¾spcH³¼œ‘hpfµ€ôAéƒCîÓl$ăN<«Uá"u‚w¹dÔÐspŸ|n¦¤–L§§!DU»ÅhÈ#²:¶‘á—ÁdçH§]Ý×<Œ¨K)uuŸ¯œ-áß™ŠÁcm$|-Æä‹›¤õCÞ”Ô˜;xÓ8Ph£…„j(ôPt¥çÕÏ@Ç•ËLùÛ;AÿŸbÇ®r5’ªIúvMm“{îƒ9O”|&Ò}¢d ¡Xc[1íY6ÜO:ÅNƒ—<=ÈâSÇÕzÿmYIß ž/2VñƒñE0ðëÞ‡¼ZÅæ #À"Õ-ìî.ƒÆOwAáhÿf~p[4,Qß%à*~ÈP‚Ëz(ٗزÂù½.¶U[ðA›Õ#–Ç”íJ_€Å˜1ÿèÊôÞv¨/ÇÈg{‡9ÂÍŠ#¨zgx™l ÂÀtÞ&FØaqH=ƒ£RìÿEâN¤Ð*×ÓbO•‡f¡„|îÜñWù>°Š€ê^Ïo˜ÂZâG¿ endobj 1582 0 obj << /Type /Page @@ -6234,11 +6252,12 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1592 0 obj << -/Length 357 +/Length 354 /Filter /FlateDecode >> stream -xÚ¥’MoÂ0†ïù9¶‡zNœ¤É‘²ÁuP¸0í>$¾Lãç/ÐÒu;MUÕÚ~mùyÁÑ?‚[
HNñØ)Ð(4_¬ò_»e¢ÒDQÔTµ3vÓ#Ë8#
Ïž³, µ‚gù,èܵÒ,…‘Ô(#m0hu§¡"h
;I·,u‡ãò§—´ÂXÙd”øŒW!ù>!«Ö~:5¥p<IÓûQHq•‰þ°ü¶ûÃj¨çÙ€%YÒÄõƒOïl6Gž{êC g5ÿô‚pNòSš@+¢KfÉÆì¡Ø¨ž[¯Ù§É‚¶2¾âŸ’
ÿ$I¿v`HÒÙÀ×Íþ +xÚ¥’;oÂ0Çw +Éëù•Øc€ÐÂR0,”¡"éC"„Uùø5$¤©šN•eÙ¾—î÷?3Šn1ª 0’FF‚B¦èº H_œï–°:&¸í¨ž%7C¡©òÚçV-
¨5£6[zý»xb“©p…ž?P!zñ`á3Ƽ8í'ƒÊ5HgÕe˜Ä~$=;Ÿ&Îâ¢P¸<ÆëÔÑdV³ùdr?õEäÙÊ0J«³7Jë¢Æ_Ù1IlƒÒÆu…Ïïd¹Bš9ê1AF+úéÌN"• endobj 1591 0 obj << /Type /Page @@ -6275,18 +6294,17 @@ endobj /ProcSet [ /PDF ] >> endobj 1601 0 obj << -/Length 2002 +/Length 1999 /Filter /FlateDecode >> stream -xÚXÍ’Û8¾÷Sø(WÅŠHê÷˜lg¦2µ›ÊNzö2™-ÑmV$Ñ1¥öôÛ/@²eË™TWbA -©"Ú*Õ¯Õý7Õ}ÒÞæ%1ì0n‰:®YMæÑB2ÏÉ{9ø%ªoìåšz<ZMûæÑã§/´àû¨ŽZY<‡±¸Ê2îŽ3:¿¤ŸÖÔ²%²–õ^÷Ï4èeçýhÕ*Ò(žô -ƒ¸€
88i—¼°²“ßñàv^® `KB®´Ÿ÷ËCCµÆ6Ke+ëoXòªË¦FŒ¯ `IðPŒØT1¡.˜ã@TÅYLµÅa·Ee¾ÐW -ü×¥´KŠ˜—âFŸ·‘LYÌ‹4‚ºW~cíÓ9¥©ˆy–¦^úê·GzQBz2.澂DÜ-%‘ˆ+–e^C`Îr‡ m^žË?Ð -½’é 0õǃñ/3~™_é+ä2ìÕ26Ùd,NÓ<ÿ1D)f}9PB¤:=Qú@)"¨cž¡»ï˜›4cÑ{UKÊ|´ Wª±^‰¡ßÐx¸{_OI—N@a&`KÊI‡ö -eõsO Ä©»Ã¾:¤¸à~×V™o>IÔé^w—yî%®VÃa -$,MHÎ1Yuý|qJEØiã0ËIjäÙT«ý}!rüŠÆ³ŸÂ¤ì”NÏôÛ A5(òé~ÿ0;²*.Š¬¼Ä*ž¦o‰á¡ÈbüÞ¸ðµþù³Ãä÷‡?ÿJV
ýöÄ¢*³Õ -H`hy—ß c8Úæ3§bתoÂ{áËx ÄŠƒÿcT19ÈöÊÓ'Õ[Gü•ªÀ³endstream +xÚXO“Û¶¿ï§ðQž‰‘Ôßcò6ïM:m¦m¶ïÒô@KôšItLiÝýöR¶l9Íì$† +°½nì±»)RópÎÍ7Ä܆¬+¬ä$úãñ×ÍVZåöP÷S›*P0©¢/œ§—¡rëç»EÎ¥ \B‹©)¢\[úm´t_$ßѪŽd.¦H«Þ2Øè›d"»±õìz+—ÞÄwFSšÄ<¥Mܦߧ¬œOÊ|(=R^d&A^a"…Ü("¨}Bcœ‡$W!4]uÜÉZaJ²ì¼Ö¾ÚAu¤Ôv2€%5{ÍUÊ2Ääì¾( +Àiû@÷ÛÓQÙfa›¢˜Tܫﬤ*[ÌÖ&…d••(æY»™Y4ÖLÿ%IøóHþúþFØqë/EÌ +L <œ8 ©E6Ï+J®ƒ¸€
øpÒ®xae'¿*âÁé¼\@Á–”\k?¿/CÍsØ,”¬¿bË«.‡1¾$€%!B ü1x`ĦŽ }Á¢*Îbê-»-ó¾håÍÀ–ºiTà¿.•]Rļç4úº¸ÍdÊb^¤yPÔ½ò/Ö¾œÓY™Š˜giêµßª¡~{tið©%”'ãb+(ÄÝR‰¸bI0æ-æ¬vÚæå¹ý
+^±“þ®ù¸wº íHkh›¯Žá€RÒ.D3…ÍæY6§?æA2‹#άÅÓXÅeYTÞŒG;Ÿ>~ö˜
ÁõŠ7Á]hp7*ö¯}‹Çe‘‡öÒƒH@{X¯t¸?œ‘î
å9ÔÅJ¡û@2]¦ùx0þ&pÆ/ó#}…\†½ZÆ&›ŒÅišç߇(Ålî!ZˆôI§+J(EMÌ3t÷s“f,z¯jIµƒ7€ôJ5Ö1ôw÷â)éÊ (¬`I9ÙÐÞ@£¬~î „8swaØ·Q‡ÂïÆ*óÃ'‰:Ýëá2ϳÄõjØ è¾u +Õo§3†:iKã6qÞ"Bà×ù©ÒBJ¿—·€m&kK#ö +‘¡™»Ý.Ëaneżۉ’ßév9ÌÚ\,t»;ª ¦f*½m@î'Å€]ᎥÔzÜ›½y¤jyîÚÝÔákd6†nw¥‡³H\|¾~]ÔrLo:¸¹¹‰‰Øùë®é—îDö jùTÍÕ=¥üNÓà €–þ endobj 1600 0 obj << /Type /Page @@ -6341,19 +6359,24 @@ endobj /ProcSet [ /PDF ] >> endobj 1612 0 obj << -/Length 3251 +/Length 3249 /Filter /FlateDecode >> stream -xÚÍË’ã¶ñ>_¡‹+šª%Œ7ÁÍiýØd}pïV.¶«Â‘8#ÖJ¤,R;;þút£ŠÔ@Ò&#W¥t - -=XdLd_QÞÙUÕ359“ôÆ$ÐËÝÃŒ:?ö&øç4)Ú1^¤ç}µ8dÄèCª¬^° -FäbBϳ’êϱ
ÕH:ÀŽB×µl4¹/G¿8`¡¶)$Ħր*È·º¾Ú ¯zÅà: <ZžˆYP2îC† œyÍÇlLé¿pÐ'ÒØbüòœ‹_J@…eOûuU(Æ9ÈüJð*$¢Vt*r•©hí´7äyߢ™•ëÏV1ãlqÚÁn D×öZ<øÎòl¸CÕcž“®\GÁ´3GÙsÙ,¿N:xå˜`ѧ–XD¼ÜºÖLCMñr·1fc”‰eæPÞq m -h49:‰kq=`¼Àµ®•zÊõ û^¸áràj/+ì¼nëý²Â‡|Þú=ßDdNŸAo4V”‘¦²HF}¼È¯ c6F™ˆîT¦¹;Lå‘ÚØ‚¨â\^Œ·ÕÒl"^uŽ+E}ÍJ\2¿È 6FÏó²Ý”uó,’©‚å…Í°/Žec6F™ŠfRsDå©ý nÇ=“!žImç¿ïo¨±ße„Ç®ßÑV¥6óÇUí`ø±ö{»0è÷a$lLêpø 鈚ï~|OãHÆ+»Çxˆês¹ÉR[þÛ¸=ù«”:aPÒ5X±hŒO¬¯ºžÖãˆW°>ëlŒMˆóŒºŽáZyWdíËQÆ/N©«ÄèmrsA]%|`µƒ"œJn [2B•!¹í3ß ‡zg2šBJ>ùi[’ƒ ¤„¾¼(³1ÊDÄs B¹ÏEô¥…Ìi -‹c_¾Þ¦Ç“¶€6——TÈi0ž",b®á”Ë ×ów#ŒgÜÝ„ÄjQoÊõe‡÷ŸœCÐÆ3.%Ð+íw4R7}õ€Ù*×{ŸãÃ>9¾Œ4†Þtնܕ=ÁÛ°C›£àº”ŸûRŠ³¿@#b]L§¸x$Ô%6u
hgbÐR%™ZÓ• -{n^nîê‡}Ý?ÑÜ8%ЪÞQ×ÏHÀ`ž(æ=mö]@wW¥nÄ,뎰SÜÔ‚û¸©…À£hj·[Š¸Û]]â=¥ŠÆýD¾÷î;ú’œŽ§¢þÕ–îa-ÀÏ$¯ b/ü55-…ä¯|H¦,h°]Bò¼©{ºã…òæ|þ®§wu€zÉ“Ù<¬Ÿh„d»h7àæ–Äž¿V“ j(Èd1T] -<'qˆ£˜›v4n4øaX¬†F›ý¦ÚÕ®—ÀnÇÅÈ€*]ø»DH9{–\[Ï…›nÐúZâëÎ/%>—ÎÓ(ÛS×W›ã{eñÆ ‘ÝEsó¿·ÉªotN¡0k¼â•9ߥÃǺ£¶i©íú²YÒÕ¹%l@cH†œS½éá¼ ú/ƒ09^wX¦ˆ -œÎ†FYÆ—?s{&Ï!ƒÐ—vgœ€bIˆ§B¦°'Ba6˜ O@‹ç“còN¦AÐχSŸ7©ô]X¼ž§úyê®ð\Ä\ÑáyF!01W¿€ÑÉPòpgZ'2[¥“\Ë«±9 <ϦÒ>ÿ2.CÝp©D©÷÷·´`RZ‡ÖÈ´JÿEÏ.èèéð†¤Ìâß23åÜ©* +xÚÍË’Û¸ñ>_¡ËV4UoÎÉûpâ=8ÉÚ•ËîV…#qF,K¤V¤<ž|}ºÑ +à +Ï]øà»wï hOÍ÷mó+çòa·-ûºmhðçê¾ÚVͼŠåÄ3o¥-PU9F¨l@Íü +GV…`ÞDV»Ý| ÐÎLÃ×Ð~®«ÇŽÝδ°‰buØŒQ‚€1í¡C2†×ønUEDݲÝÔl·Ÿb¯î—L|àÌ+Xî@bü²n¨ÝOïQ<^#(`}ˆÖmO†±y»Þ¬ª/ +«‡8–ÕüuëûøjY=Å—e3Æ#ö¤…Ñê„y]5ý*~U#‰kHsíººy8äFn`&ÒbZsèÜWe¿£9º8Òîšuë¨ó#Ë`ÚLMZŽœjlT¬éØxÔha–˜…N`Ú´˜¸ +t6´ÎM¿ï¾mÊuµ˜&gÈïÚ¶èûšY·ÌxF‹BÆYØà†„fJ[‰0³h¦9“V‘P-`œŸðCoëU\Ëiñ»¼C’’WåÛvµj£¼8¹hKjVu×S/X>´Užv]õ¢_’£jw}«Ž•ež£›T€ú‹v¾Ã Âë×HÿÍÿï-½Ð-$³ÜKtþ¿ßüòŸ, VütÙòÎLá3á`}£¥g/TYÝ|¸ùÇÿøU¢…¨˜\¦€¾ã€+vÓ‡¨f‰§™r°.Þù!¢('|É”Rf¢¹fRó",_9_ËHHÁœU~øB’Ì;çòÌÎŒ³1ʉHp@"ÚDÎP`AÑ>¢®(î <ôPå” +e5¨.×’DBxAÊLØcA€š/Ÿ‘èfµ»& ã"5‡¼D†,þùjIPRÏ}wG+´¨Ðtôøx÷D†vŸœÚhÅ «\r{Qq¦àX!œ8J%À·ÃŽÅg€0 9ßdl</³G´|ÅA¼„‰[L5½`âÊÁŠ«sº-4ä©…V{à›yÂ8£Ì©a¬‡dfµ[À¢K
3^È„ñ‘N2© +{Hä í¶–Y@ªùæj +2Æ®¯¶gÂ+^1¸Ï…Ö='b”Œ»Á!hgAó1S:Æ/‰4¶¿BgK çâ—PaÙÓ~]yÅ8™_I@¾³RÞ@"jÕX@§"X™JÖN{C÷
šY¹Êðl3ÎúÓÞp%º¶×âyÀw–gÃjóœuíà:<ÓÎeÏe³ø6ëà•cZ€EŸZbé=D<n]k¦¡¦x¹[Ogc”™eæPÞq m +h4:‰kq=`¼Àµ®•úëö¼pÃåÀÔ^VØiÝÌW»E…Å´
{¾™È.œ?ƒÞh¬('"=¦²$£€>î‹+¨AÄ8£ÌDw•iáö'yä6¶ ª8Wøñ¶Z>BÄË¢Îq¥¨¯Y)‚kàB—äÂÆhx^´ë²nžE2åYám±‡}q,Kgc”¹h&!e0GTžÚâ–qÜ3â™ÔvúûîV€‡]Fxìú-mUj3}\Öဆ밷ƒaßFâƤŽ‡šŽ8 ùáýG2^ÑØ=ÆCìT_Êõ,·å¿IÛ“¿J©3%!]ƒKÆøÄúªëÙ~=Žxë³Î¦Ø„8ϨëH®•w%Ö¾eú┺JŒÞ¦0ÔUÂVk1(©ä²%#ôX²»Ñ!£ x¨w&£ñRŠ¡ÈÏÛ +”L8 e ôåEyÄ8£ÌD<*Tñ\D_[ÈœV¡¸8öåëýGz<i=Ô°…¼¤BNƒñø¸ˆ=º†S/^Ïß0žqw$Vóz]®.;¼¿…ä‚6žq)^i·¥‘ºé«Ìaüs¹Ú…ÞðøÉþð…`¤1ô¦«6å¶ì ÞÆÚ×åüܯRü‹ý ‘êb:ÅÅ#¡.³©k @;“‚®*kÌÌkå7V° +*3ëÛk +e<±µÌ•¶úšŠç€§Ó™xuŒ”ÜEüÝâX¿HAÖç“C“8\ù(‡oò3ÜÌpfïø
ø¸÷mŸÊ™à¼UðB4²nÃÁV'ÁN;z/>–ª¢be–¦:ÜÞ^=–Oñ>Ňƒ»gû@!€®XÕ”é:cS
ØZjïÒE´q8
²Œ&.äöLQ@¡/íÎ8Å’'N„04L`/N„ÂÙc†<i,žOŽÉ;™A¿N}ÞäÒwañfx1œzèç©»Âss5F„ç…ÀÄ4^9ü +Fv€²‡;‡µp&³UZ1ɵ¼›Âól*máó¯ã2Ö
—Jô‘z¿pK&¥uhL«ü_ø䢎î‘ÿgÈÊ,ýMa¦¦œ;uc€C Ag¸E…€òÿ<W7±Á¥+µ†ÿø¥9Ž| MÿÎbyÙ‘yvÕ`ø›Eœp$…ÿ endobj 1611 0 obj << /Type /Page @@ -6396,35 +6419,35 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1622 0 obj << -/Length 4392 +/Length 4389 /Filter /FlateDecode >> stream -xÚÍ<]sã8rïþ~‹¼5ÂàÄ%yØÛxöær7»·ë$·WZ¢mf$Q+Rãñýút£Š” ÉëªRS3¨4ú»›#®9ü×Æ2륿v^3Ã…¹ž-¯øõ#Œ}%âœiš4ÎúýÝÕûª¸öÌ[i¯ï° -Æ‹B\ßÍÿ:±L°€À'ßýðéÃÇïÿã§ooœžÜ}üáÓÍT>ùðñO·ÔºýÓíŸo?Ýýo\ùÉwøöǻ۟hÌF ¿ÿøéߨÇÓãÔŸn?Üþtûé»Û›¿Ýýñêö®?ÌðÀ‚+<ɯWý¿žÃ¹ÿxÅ™ò…¹~†Î„÷òzy¥bF+•zW?_ý¥8
?Í!PkÁ¬4êzZX&5Ç—¥%8,›Æ3çL±·êÔÌ -ŽwÂ&åîJ´\‰ÓÌîÚ«¤ -7R¯÷qR8f”÷»i¯@ŠÀE‘GÉ4œ!îÎsfäþöÖͦÃ
¾ÿ ‡s…„¶S¸Îúv…TRL>þˆO7øÕhí˜S…?Zm—÷Õ&\VXcâ4 5éíäî©Ê@”@6…>Ð1¯”Óê–6»¨—uWÍiÇ]C<¾>mnD1i¶OÔûQ澞 -m˜ƒ¦B0oŒPŸë§ -7ùR.¶UKíûjÑ<c³˜.5uv/ëzV./ôVªÚnSÏh;"nº·7bÒVÔ¾ó×´µYÕ¶°îˆ·²¹®Võêñfª¸”->
-Ô4`T;¸¬
·Í²¢ ³ ¾ƒ¶ä“r•~ÜU›ºýL3~á†ÿ÷7ÿAó§rS¾7ñ~6Ú‰{\À¸É¶Åb+ìÉ -áÜwû6 'HÚë©7Ìj¡~Èô‹cbÅ -ÉL¡ÜI¹b½g…±úŒ\é§]L®!—+£í7ÕCýõu’E)$‹’~²ªºçfó™:Ûu5«á\ª‚Ñ@U*ª`…ÖI®"H9Á -<çÅ0ÔC<ƒ"7X Žá¨œÏsÒL* \ЕtdWаÍbÑ€°x¨ -7Ñв~|ê¨÷a»A¾¡þû*gÊìâ_†ÜÅ „ƒô‡Æ¬ó~í襎ùù©žEâªÓP´‡P Ÿ °Áݽþ¡2š"’§)L†x†§0FÙ=Hið2<ฟøf)N‡÷'¸dº -)!‰÷£‚F©Y·ÑJàC{®ô0\ª¹¦@<)P
°Å—ÔÄÂýè²$ã®Oàк™HrŒLÊ5D&ŸÓ’¨gÂ’ÏMæFg²þèO0%yͬUoÐö§C‡·ªQ·[øÔ¥F‡¼7ô -.X\ÒØÃLŃ¹vr’9^È·Óq‚8‚ÌP2†Wƒ¨IÓ#7Ϲ3eè>NׇßÆð8 …9sgU8Lv/vÖ♳*CFÀ‘FgÅôÒÙý¦JJRyè\c`8—Xg¥˜˜U H^ŒÍ³>À”A$˜FÒ™ˆÄÈ@¡ Òr8¿@L"AœAæb -6gånå“D£
O|˜sÍ„ú9ØSĆ$ÊÅÎÜC<sfeáÌÎúñ™OÏ }c‚$Ž?ËD”“'ùF;Á¸äörGï!ž9ºkd‰~Íuc˜4¶ÛzË-j{+šØ@ÛRk5YP )¸]šB»ÙÌž -yŠ80iˆC6½{»UÞCœAæˆSHiÚ«%&ÌÀ»™<þ8ó3RÍÎ0eß×Ì(ìLë1ΩÁrN…
¹LãEÚcáB4õP›»€8¾ÑØ•R`GXŽæ„Ř}Ø%föbí5¹°ÒûÊ÷>&ðAaöŽ -Âv… øÜTï‰Ä˜d•¬ØIp©ëùy%cq‚éÃÁø»Ï<F[ß,vÄédFì* -äc?í¬¢ÎzKC?äbÙ -¸j.~S¤ÿÉ1IhË”’â´¿ÄÑüpÑ®ÿ^õ—ÒÄËùKˆ§ü¥ÑÁX¿¤•œXMa*loWmý¸ -æ6¼¥ •ÓÁLq.ø8B6?4>W/Ïz·Á"9‹UɵޮRØèpo §ÄnoÍ&
®EëŒ8}^=”ÛEŽTAzZó•Ô·—PøH'FVhÊBäOù¹Š©2+¼Äô¨%ˆp›v™ÚÉlÈ1§‹„ÎÀƒÃj/åëÁ‘ȶ†i`ϱÄ.´¶Nkî”ãˆ88\©·˜¸'áZÀΪM‡1xñ“õ
ø’›rYu1Ø…r2Db2Á—çÌAe[/ûÚ„¯Óÿi¶›U¹˜&Ú?ð¢íëwb=‰*èF°±m+j”q þÃ[•Ä—èÙbÃÚuÔ¦úå‚€ 0ñ ';¹¬Zôš¹š&Œ-›[²¯v3®˜´UG0(é«ØÄ”>9=æM¾ð.(pÀ8UøaèkY¥©¶åŸ‘E¢b7Nhiî/Rêíj2ÔÀÆøJsBžžØSÆÉ÷õ#u–mîB×MÛÖ÷‹ -‚Q8%€ÓÖ)Y -+Z:®òz°<[y<øMŠ¿_cm<¸ûNŽ/ƒ’†ÒìüuÔ±€€4œÒ©ØÞÙ©8¯O®â•}@HgþÁ}ƒ*' ö\<øù¼n§9} ->—H%4îãæê%zKå*îï™Êß^U.(»ŽÝ”]ž5îú×-ü¶îj49ÞF†S¥vX ´½m·‘…HºXÀæC]´žË4Öг-*š/Ѽ¡Î’_ªMœÝŸ"’e\{t½1
>Ä+Nv”GÙ¬±mƒîÑ~—r(I}eÔiÏeœ–rÐd.Î*êŽ÷Ô§®¡«6_Âàp´Œ¦iõqF¤åTÞzèY¾Ñ[ýG&®FR¥80øŒU&œü…,Ø\uQ?ïbÕECˆÇ«‹Fû#í5Ü”q«\l=Ä3i/]Œ7¸jrÞ9/˜6*¹À·À:TÊ3merkã]ì‚Ÿ|Z›¥í$E~G£¢#,%/Dø–jª€ŸO9þ`IÑDÝf[©\WJ¤}Æf -ŸvùP.Ú#IC 儹2¹„¸KøÊ4,@œ%3€½û± ˜jþ.V?E[¸5*o$`’œž¼ÿ¨@ä”'Ü^m΀(ãbr¥Øc=ölnÈÚÿk³ -¬ñ<S݈QznTT5xñS0â(#ÔÏ}3'ˆÓ!Èk¦•o’œ¡,Ÿ[ÆLÔúÖ2Z°ô²YsÌ\YãO2»ÀYzx9ÿZ¾ÿ4à¬þ -]ýðröóËW™®ËóWgMͳð6ÕæjŸ²ù# `ãÝÞ‡)yѨé3˜:º¹Kìå£ÀèÛcu¬nÂV{Jz`Ò»¬‡U`M¶ºv¦Ø̃@Øó€Žâi|¦wä“‘Í ¢}Ow'Є"Å›}éŒ_Æ|¾Ê}ÿ5m»(¿TÔ|»Ð×mï©j¼ŽK¾L¹TÉàî£ð³_™Ãow{_™ÿß~5Fp²ë™ÃšáÌÇé¼gã7 -¿û´cª(vÒyßݳ +xÚÍ<]s㸑ïþ~;yk„Á7ˆKîa³çÙL.™Íí:wÙT-Ñ6o$Q+Rãq~ýu£Š” É+UWS3¨4ú»›#®9ü×Æ2륿v^3Ã…¹ž-¯øõ#Œ}%âœiš4ÎúÝÝÕûª¸öÌ[i¯ï° +Æ‹B\ßÍÿ:±L°€À'ßýðéÃÇïÿòã·7NOî>þðéf*
Ÿ|øøÇ[jÝþñöO·Ÿî~‚7®üä»ßûç»ÛiÌF ¿ûøéß©ÇÓãÔo?Üþxûé»Û›¿Ýýáêö®?ÌðÀ‚+<É/Wý¿žÃ¹ÿpÅ™ò…¹~†Î„÷òzy¥bF+•zW?]ýgp0~šC Ö‚YiÔõ´°L:kŽ/KKpX66gΙboÕ©-˜ï„LÊÝ•h9¸§™/ܵ VIn¤^ïã¤pÌ(ïwÓ^ €‹"’i8B<ÜçÌÈýí›M‡|ÿAç + m§p œõí +©¤˜|ü3>ÝàW£´cN6þhµ]ÞW›peXa‰Ó€Ô¤·“»§*QÙú,@ǼR>N«[Úì¢^Ö]5§w
uòøú´¹Å¤Ù>>Q?ìG™wûz*´a˜ +Á¼12@}®;œ*ÜäK¹ØV-µï«EóŒÍb"¸ÔÔÙ½¬ëY¹X¼ÐkX©j»M=£íˆ¸èÞÞˆI[Qû>Î_ÓÖfUÛÂ2¸#>ÞÊæ~¸ZÕ«Ç›©âvR¶ø4´PÓt€Qíà²V4Ü6ËŠ&ÌJ€øÚ’OÊUúqWmêö3Íø™þ?ßü<
ÏžÊM ûÞÄWøÙhG$vîqã&Ûˆ°'àéu½(gÕS³˜@†€Ï¶ZT³n4wS®æÍ’ÚOõãÓ4Þ;bqžÃR#Ûç2í(„rßqìÛd€žP i¯§Þ0«…ú Ó/Ž‰+$3…r'åŠõžÆê3r¥Ÿv1¹2„x\®Œ¶·ÞTõ××I¥x,JúɪꞛÍgêl×Õ¬þ™s¨ +FU©@¼‡²B¨‚Z'¹rˆ å+ðœÃPñŠÜ`:z„£r>ÏI3©€pAWÒ1]AÃ>4‹EÂâ9 P€Ò" ‚0Ó.Êö)Š/ï³hàì÷‘³5âr4@螪uA‹‘ãÂpó@}÷u×R«^õ?ŒÓ«nY¶ŸAÜÝxL\/P@eØõïÄË
Þ¥>˼BñÊë£7*μ׀Wg˜×V¼ùF{ˆÓ!ÈÕÜR–M?íÔ:f¹M7º,_èÄ
è'Ѐ6ëÔäC³¡îêk¹\/ªwØcÐNE„$¤{_äÖ³Ì8.úáv¤aáŒÚ²‚«=—8ïpUöJÒ~QÆñONCSIG•izÉÀ¶dH7,9
;FâÍ Ç3àÿ~£L2Åø{™C‘–Ànd2Ð>§ GîLº1A{A(=^7w/~¸hB?Ô5@OÿWçV°\Ñ›V$ +xQn|ßÿØÌd³/ÁžÀ÷2Ú!Ê߯4P¯¾4‹/ãy +D÷K¿hgÍ:X88ˆ¬Ÿ–:ùíIƒð˜¡%16îcÇŽA'{{»§²£Ú3©/6ö6
=Ïõb‘àw³§8œ}žæ,™ªkéNHH-é\½P#l÷¸±1Ôão3
vÖéý+@&
rÌÚ0´œR§
®™-Ÿ«—ý3{pÄ„3»yo½ àt1cn€pCa:Ú_=Ïš€ß;ßælδ“Ib€ÙYÖ«%LÜã.wÒ♣Jۓ֌Ϻ*—U^èƒW—„±A䆶ZuĵNEVF€-T<ö”ôhÁæÖvxÇËB )"'ߺï£:qp!Ɖ1[“' õ6:0ì[ð%êfy©šm7uGÀóÔZßÆ +äz7ôkòt8¸áKI:2Ðõ£}šltãOÑ!ˆ˜^ØQ˜>G‡ýÄ‹Ñáâ :í𘹰O‡ ¢µ`—°'ÐCç—÷ +5ý<{¹óGxgŽ/}ÁŒ Ù:ôøa)ƒ¦P8-=ÂoÀ2~¯r*¤P„$Þ +¥fÝF+;uì¹ÒÃp©æšuð¤@4À_RO÷£Ë’Œ»>Cëf"1È12)×™|NK¢ž K>7™užÉBø£7 +<Á”,äµ.4³V½=BÛCœAÞªF #ÜnáS—òÞÐ;<(¸x`qIc3T¶ +çØÉIæx!ßNÇ ât2CÉ^
¢&MŒÜ<çΔ¡û8]~ÃãL€æÌU à0 ؽØY{ˆgΪ@GÓKg/ô›6*)I-ä¡sqà\bYœA–bbV $ y16Ïú +íf3{„©+ä)âÀ¤m
ØôîíVyq:™#La q¤i¯–,˜0ï2d~ðøãÌÏH5;Ôµ~_3£°0Ç8§bË96ä2 +Œi…ÑÔ/L@ulîâøF`kTJaE8šcöa—´šÙ‹µ×äÂJïS(ßûX˜À… Ø;*L?Ø&àkpS½'`’UB°b'=À¥®çç}”ŒÅ ¦ãïd<óm}³ØM§C±«,(`ý´³Š:ë-
ý‹e+હøUþ'Çü%¡-SJŠÓþGóÃES¸þ{uÔ_J/ç/
žò—F;cý5þ’Vrb5…©°½]µõã*˜Ûð–‚VN3ŹàcàÙüÐø\½<SèuÞf‹ä@,V%×z»Ja£Ã½ž»½5›4¸~01¬3âôyõPn9RéUh5ÎWRß^Bá#YX¡)W-?åç*v¦Ê¬ðÓ£b” .ÀmÚej›ÙcN ÿ6œ‡Õ^Ê׃#‘m
ÓÀžc‰]hmÖÜ)Çqp6¸Ro1qOµ€;œU›c$ðâ'ëð%7å²êb°ådˆÄd‚).3ΙƒÊ¶^öµ _§ÿÛl7«r1M<´"àEÛ×ïÄzUÐ`cÛVÔ(ã@ +ü‡·>*‰/ѳÅ&†µë¨- +LõË=A#`0âAOvrYµè5s4M[6!¶ d_íf\1i«Ž2`8PÒ#V±‰)-|rzÌ›|á]P. $à€qªðÃÐײ +JRmËoE¢b7NhiîÏRêíj2ÔÀÆøJsBžžØSÆÉ÷õ#u–mîB×MÛÖ÷‹ +‚Q8%€ÓÖ)Y +×›¦ŸÀ0zˆo°&ŸëEsÿÒUm΀¶ Td_ø§llylcfcË걌&õƒðÉ:H=ÉEÚÀ÷Øáã«wøX÷uO +œ˜ýÈâpû}$D eTÔ™Mx¢g&ÊÐü¦WTr˜æ|Óÿ“£äè‰ +Nì!¸xðóyÝNsú|*.‘&J<hÜÇÍÕKô–ÊUÜß3•¿!¼ª\Pv»)»><kÜõ/[ømÝÕhr¼-¦Jí°:h{Ûn#1 +‘t±€Í‡º +h=—i¬¡g[>T4_¢yC%=¾T›8»?E$˸öèzcZ|ˆWœì„)³ÿXcÛÝ£ý.åP’úʨӞË8-å È\œUÔï©O]CW[m¾„[ÁáhMÓêãŒH6Ê©¼õг|£·úÏL\Œ¤Jq:a(ð3«L8ùY°¹ê¢~ÞŪ‹†WöGÚk¸=8(ãV¹Øþzˆg6Ò^ºopÕä¼s^0mTro)€u¨†gÚÊäÖÆ»Ø7?ù´6JÛIŠüŽFEGXJ^ˆð-ÕT?ŸrüÁ ’¢7ˆºÍ¶:R¹®”:HûŒ#Ì>íò¡\´G’†@Ë ser q—ð”iX€8Kf +¿û´cª(vÒyßݳ endobj 1621 0 obj << /Type /Page @@ -6441,7 +6464,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1626 0 obj << -/Length 2902 +/Length 2900 /Filter /FlateDecode >> stream @@ -6457,8 +6480,7 @@ Cv×XÙá‡{#%3+Sf5Ñ=ûÝÂØ¥Zbãå;#)¯‰ri¬D‰¶4G’ÏHìðx›Âƒ 0ú2Õ·õÁ’Z /–ÞN‘pµ%r™"ø0OÜ„ž¼ÿÎÍÌé„lG¶hŒ÷ÕKhQ´ñž@<ƒØ‹îXؤÇÚ„ŠŽë2Ç{Š‰¥Xyê¦,»Rf ÉD–ʸ|>–ßZ #å3í\êu –S!€D,Ì Cåö!~œ
8V >)rÞIM‹ëj
†XR×eP.Úä„<6ÿÁ¬¢ªn6+"ÒO;벉•‹} Í›™ÚÔ°ÐM¦Ÿëñ*„ÜKíÃë/ÄÝ™r&„îÀœ˜éDªÞa½·Ù™Ç.è‹+/aE4dêዧǖ—ÐîoUÃUZÍo,ï±;ÃÆIpœŸúìÓ:N¶âÜ?Y¤þe£ê -Òö7êàËŒ¯i[æÞãÛ÷Ä,C†ÿ&1òÔ´¿÷ÿßÿÑ{«Ž`ë=oÆíÿX¸E¡ >=¨(êÿw -KX<û ºŸšNîdþÍçÓf…&uþeA†±ø|쇧Pjjâ§%1endstream +Òö7êàËŒ¯i[æÞãÛ÷Ä,C†ÿ&1òÔ´¿÷ÿßÿÑ{«Ž`ë=oÆíÿX¸E¡ ?Æßñdÿ¿SXÂt÷;ÓÉ=`‚Ì?ø|Ú¬°º¤Î¿,Â0œýêJÍB-â+üŸt€endstream endobj 1625 0 obj << /Type /Page @@ -6493,20 +6515,16 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1632 0 obj << -/Length 1928 +/Length 1924 /Filter /FlateDecode >> stream -xÚ½Xm“Û6þî_¡™ûP9‰¹|Ñkû)ÙxsÛémÒ]箶3Ul®9Yr$9Žï×@’¼«Ý4MÚñŒI$ÀPÂãð^±(•©§¹½åv½5ð^M„3s“fÃY/“³•x)K#y‹Û¬„ñ$Þbõ‹1Á¦ û篯.._½½~>qùúj:“!÷/.˜SoþÃü_ó«Å
Œ¸Jýó>³˜_/²B^\^½$JJÍR¯çóëùÕù|úÛâûÉ|Ñ34Xp…–¼Ÿüò÷V`÷÷ÎTš„Þœ‰4•Þv„Š…RŽRLn&?v\³tô -ŸXN[Q›ív:«íÊòxØèz*ßîÚn2»Ãa“·ºÙeKMs·Ùñ®€ÀÏK´mèlÈ€ÅÎè-«òWÎåz_gm^•HL|¤|EEÂ_LSéWÄ0´Òh
íÎ(Yëlª"V·vAagÿ7/WÍ3TM€%úHìeVû¦öPçm«-1·ê´Ë=fÛ§O(Ы³²Ùè¢8Ûéº nÚ#šC7,No8 -UãBÕˆ<‰u ØX‡ÞI¬?$ wºQÓ£ûý袋"G8Ÿ™PÀWÒ]Fƒ#1”Õ-1y»!¢‰L$µ‡Š(ËMVgËÖ -IÐÍ2‡ŠÓ4u†{<9#Š‘ --lù¶Â4˜—kæVn'ôCVä+'ŸnÐLè€.y½~c÷dCI÷ž_76²žœ}û -Ãh¹k( XAñÉmÑzß–&À[—& æå~û!Ì윯K«UWœ0Rq–ùô‚]µÐ¹¬vµ û!§> -/2žÄô"ûÏ $Â(8Ö„1x
ÅÄs8é_›ÿ+øþe×—þ«»G»ðXÆ^ -Y<ÌIyïáRÊÌöíý™ÂÙåVy/+°Ðéä΂‘Ñð½™&&Å`‚‚’ÌèÿóömÞ§Jì›´Ðûƒ:Þæ˪À~ÿîB€ æk¦p„7´¶²Kñõ=ß -Ïì~./š9{Ìr†ÛP{œJ£Ûˆïp£j_`Í''ó,Ëhø¿©m*†½:‘„µA,(&‘3°Wçå -¢½ÄmÝ4zÂó&‚ݦã³íÛ‰ž˜UF(ˆR&“4ñ.úeNá¦x}ÿQó‹CRA…¡4ö”{Ⱦøsl°AÌT’ÈaÀÞÿVB¢@ß–YÊâÙé_!ŸláµÍ27û>viðï©Â‡‚6¯l>SAù¼tî+°ÛtpÿÛßæÞendstream +xÚ½XísÛ6ÿî¿Bwû0¹¾èuûÔ¦N—Ý–m‰»—Ûv÷¨6cë&Kž$×õþú)K‰’®k÷œïL A€~ +¸þÝÕÅå«××ϧqà/.¿»šÎdÈý‹ËoæÔ›3ÿv~µ¸W©þÕóïókâEVÈ‹Ë«—DI©y@êõüb~=¿:ŸO_|=™/:cú®Ð’?'¿þνØýõ„3•&¡w€g"M¥·¡ba ”£“›ÉÀ×,=@Á™T‘9A)<!X†rp„aÊ"%Uw„r:œƒ¹Õv«Ë–Œ¼9–mö-9²wÜ›I¸ƒT†FÀb£aœ=½X™Ó²ƒ†Ä~VÕ¡!úmUÛÙSáÓËi+j³ÝNgµ]Y]OEâÛ]ÛMfw8lòV7»l©iî6;Þøy‰¡
ÝÁ€
0£ØY +Yiˆ˜vSòrT¥Û;£fWÕtW†{ëx#^ä¥õŠÊ:‚Ád¼]f/{»/Ú|WØy¸¢yüæåàæ¥hQYµÄycg€8$Ì\ùf{ êw'b³ +-lù¶Â4˜—kæVn'ômVä+'ŸnÐLè€.y'ýÆîȆÝE“>y~ÝØÈzröÅØÞGÆO€íf{UBØÅ{í! 5ˆÝò}M›cZ5˜vOb·Û@æLÄ,U2Ö'É\¥CéeU×zéÀÒøv×
¨E¯1nðéŠ, £äCRš‚ª0QAð¾S++j‹ª\ØR ðˆ6P?C½€6wRÁLʘ‰ ŠUIÆ¢%»`Ò~°ÁÈúvC;³fQfqŒÛ>Ìq!iHÉËl +!UîØêÎ>ÚÍ3u\Ÿ³Û›Ù˜›æK,•ŒÈ «Kæ#ˆ`ß #Ò¬+fKª$›†Æ'èÂn<Ü£ùT*Ÿ‘¶ÉÞÚ¹Ui;Eµ>9Á.BŽ˜1‚—Ϩ¯³åæDuèêЄ@«6æJBÑÜä,KÁ-X¢<ËGA(yOyö!Ð2ÒÈÐ.ßÙÆœ‘£pÛÞ©ÖJ}H~F#ýV—N©j¿ÞصíP†½Hy#Øí6|Ôvµ~›Wûæ~´Þ¯Âz!wƒEb?è0NÜE`]H<4¹uúcµ·3(ùÜêúJïÛÎúÑ:r×P@° ‚â“Û¢õ¾- L€·.M@ÍËýö
B˜Ù9_—V«®:í8a¤â,òð‚]µÐ¹¬vµ û>ç}. +/2žÄô"û©aœk¼†bâ9ô¯Íÿüÿ²ëKÿÕÝ£‚]x,c/…,椼?áRÊÌé÷í§31„³Ëò^V`¡×3ÒÉõ#£þ{3MLŠÁ%™Ñÿ—)ì#Úü”*±oÒJ@ïê4z›/«8D8øß—Ÿ17X3…€#¼¡µ•]Š¯'èùVxf÷syÑÌÙc–3܆ÚãTÝF|÷€Uûxh>9™gYFÿ¦"´©FôêDÖ± ˜DNÏ"\—+ˆxô·uÓèiÌ›v›ÓטmßNôÄlõh2@A”2™¤‰×sÑsz¯0ÀëO5?:$TÈJcH¹ç€ì£?Çž6ˆ™JÙØûߪUÈ@hïÛ2KYâ^^!Ÿ¿káµM17û¾tiðãTáC5›W6™)<,yåÜ'`·cïþ+æ-endstream endobj 1631 0 obj << /Type /Page @@ -6542,7 +6560,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1640 0 obj << -/Length 2507 +/Length 2505 /Filter /FlateDecode >> stream @@ -6559,7 +6577,8 @@ i…ÉdˆÈסlí)ˆTëÍó|‘Q‡Ý†c T ¡òêí¹/ :ùÕ -UÞ=ÔÍgÿ` +UÞ=ÔÍgÿ` +ÿñÒ['endstream endobj 1639 0 obj << /Type /Page @@ -6610,24 +6629,28 @@ endobj /Filter /FlateDecode >> stream -xÚ[Ýsã¶÷_¡·ÒK|ÉÓõâ¤î4—ëÙi;“d2´D[ìI¤+Rçs?þ÷îb’’`ëZßøAä\,‹Ýß.`6+à͔εãnfœÌUÁÔl±9+fwÐöÝ}æ±Ó|Úë÷×g¿ûVØ™Ëæzv};áeóÂZ6»^þ”éœççÀ¡ÈÞüðöÛËï~|ÿúÜÈìúò‡·çs®ŠìÛË?]ÐÓwï_ÿýë÷çsfËÞüáõ»ë‹÷Ô¤ß_¾ý†(Ž~ž`úþâÛ‹÷oß\œÿrýdz‹ëa.Óù²BàDþqöÓ/Ål ÓþãY‘gÕì^Šœ9Çg›3©D®¤‘²>»:ûóÀpÒê?MéOr‘ÛB©Ù4Ã3OKC0lx4,7‚:·:—¢0³¹v `íì°"œMVÄqWÛ™Q.ׂ¿"ëvQ®›ªïP7ðŸ~ rÁ@ÐÂ÷ü¾ì«ª;ŸÃPYÙ<âƒÎVmשmˆR6ô~ùî£-[jŠ& -øÐn?ù–ÚMö°ª+zìW5vÝE!æŒåN)î¥é«
,®1ÙªìðÁúq‘P7}µ½-X‰p<ûëª --år¹=g6«º®Šah¯–DG‘DÍ›öcµ|+½d¤ª©n¤{N«RæsQ«¯ßü ÄÔ2«ÖÕ¦jP—ZeuGÄÝý²ìQ&$ö-I¦Ÿ‹BT‹ÐŸÔm‹UÙÜUL]+™]µ/,]4HI»tjÄ¡˜È–Èñ¬i{"ÜûqÚõ²"BI?å#õôòà—(|S7¡É20@Aù'úb]5wý*ØÞ¦ÖÕk:ÍE,n~óˆں·ì…?6[”]õ*±DL›Ü8å‚âŸ]"‘itèÙ6ëGa3la¢!Ìæä‡M¯’AÿCÁ§½‰¼"Úßw¸ƒði]HÙE®™µSÁý¶K^äNF¹óCw'm‘ιÙÔO¼Èóp\èl>:¼ST€³-´1ûôÿû* -ÂÀ·ŠÃp›6Ç{ä€açÒ -ZƒIŽô—ÃŽ!LÃ]a¢RQÙ¢múm»îhù®zØ«´‡} -'´ƒ ´X‡àŽþÚ„¹ø¶¦.+›jš)ººì¦¢ß]çã.´Ü<…Â%ÑÊ%<X²mÙ·ÛŽÚ#‡ýuŒºÈ·,JvVjƒa~-…Q$4å¦"RWm?‚a¶Eh£9*°m{ƒâgãì°yÄ9ÐDSÃ'œZìx% -Ú½Zw¹ìÀÛ
ÆD¢÷ÛºúX¥i›ù7o¯¦ÍÝnÝ3½%=l‚M†OH‹ð4Õbt™‚ -r%ŠÅЮ -y°}>²Ö;4n]ß)/CŠOrˆ¢éi‚OÁÅH®žØàÈ7âIÅr®aÃ@gaº<ñbÅçS–ÇŠëÈ-¬6t{N±"w…Œš¥„ä -:=g¥˜»kuÂJ
ìÖÐ嫯RÑ)˜DÌ
ÁU}Ý’ÚÛ•sÑ6çRÖ‹(³KgrÈ‚ùIp •Uïɼa´˜ì
Úa1}Ì;èÙÞß”‹a•G–¯pE´Ý·|Ÿ+«Z&Ên,‡ì.g é!ÿƒ7ÄžmZñV+9(>Å&ærÅ$ÑB RwS -¾Þ~æ\&ô¡ -Òv!OúO•; ê?‘£ç
¡ÌW¥ðù¦%5•0OØ^Ö°§áӹ㠘€„„9ùòm?pœOY&àƒg“º=`M-s|ZÑ™!ô@`Õþ’_GGZÞŽn¶®·îº]hA¸wëjè°—À¨ºzNç,߆MÐ|1D›Çѯ'R -)áyØST1Hø
‡«·fÉ<òݸÂ>©NúN£eÜìî|d"Ü€]q&öÆ›i¸äJP£xðE@ØGöH=t3-hÁBÝS|‡×›2X-'$«ÄjâöƒŒËŠ(G&¬-`cf@[0K -9žR"àæ=!}%±ÏdFëÆè(`¯Wu°úåÑ+‹¬«7÷ë°È—ïâ¶,0P³ƒ¢Ø$V‘+×…îw^ÔçxŠ‚î×±–ò˜BÞRAóÑè7µFØË-Ï}yF30œO8¦p7ϵ%Ç^Þí.Ó@ÄB€ SÇA7m[é]¡aá¹c'v…€^ˆØ¿”†Ï+@H07v €ô–0E®, -dÁú¨¯¯¹CòÙBßnƒîÔ$¼ú¦=kƒçºïªõm84€J:@DÏïþ"B¹vÙý¶Þ”^Fx)wýªÝÖÿêÜ.ÛT¸‘ënCµ`*{ÇÊž¯¢{”^†=/~„® „‰¢»ò%B$ gˆ@èDâöåþ72œO8&ü¯0oÁ±Å^ŸG0A€îGÄr?ø· ‰’~è Ÿb‘`oü¹À’°–úè8êPC(¬³ö°Á¯_®¡Èp>åx¬!Q“¶¡×“ Âç¼ÑKy‡!mvQR°=ª7ƒG+ÜÓ‡›/6ß㉠£Ïv…vŸ1cðB
gû>¹§B·¹dÏì -Zú>U‹ð29h‚7Êq£¾àÁÀ -ü‚\L0¥«ªzê²³@ŒÑ8AjÛÞÍèá}êšÜ´?)„'®É
½üñîûjCÁÏðì-\‘}S¹!ê›=ù¡ÑÇ‘…w°¿%Jåà¤ÄžìÇ÷"b¯"Ã’ä3ï=™ëæhTÀëŠqö¹úŸÿˆ¯ê”´“vD.r@Cǹ˥'ô0ô:!Ç1·I˜71Y„¥©„*å(^yÓîzj;Dˆw·I ´ÆRÞTÌU2¹ï°ëä‘Œ¯w¹åØ"—éMïÓ;—(2…åÄwáà†âÌ3ôà!‡HÐ#k¿á7œtÐð*]Ç3JG™ñ7åBi1±‘yW…Ñðnþ–ô³¬nËÝ:´í»6)wáË4a`*`)±”+Ó„ -¥ä35 +xÚ[_sã6’÷§ÐÛÑW#.ñHžf'NÎ[›Inìì^U’JÑmñF"u"5ßÝ~÷ëF$%ÁÖìyÊ"`£Ñhtÿº³Yl¦t®w3ãd® +¦f‹ÍE1{€¶.Xè3æÓ^¾½øÓ÷ÂÎ\î4׳Ûû /›Ö²Ùíò×Lç<¿Eöî§÷ß_ÿðˇ·—Ff·×?½¿œsUdß_ÿõŠž~øðöÇß~¸œ3«XöîßÞþ|{õštàñçë÷ßÅÑÏ3L?\}õáêý»«Ëßoÿrqu;Ìe:_VœÈ]üú{1[´ÿrQäÂY5{„—"gÎñÙæB*‘+)D¤¬/n.þ}`8iõŸ¦ô'¹Èm¡Ôlšá‚™ç‡¥! +6<–ÁŽ[KQ˜Ù\;P°vvXÎ&+â8Œ«íÌ(—kÁ…_‘u»(×MÕw¨ø€O?¹` há{þXö‹UÕ]Îa¨¬lžðAg«¶ë‰Ô6D)z¿þù“-;jŠ& +øØî>ùžÚMö¸ª+zìW5vOÝE!æŒåN)î¥é«
,®1ÙªìðÁúq‘P7}µ»/X‰p<ûûª +-år¹»d6«º®Šah¯–DG‘DÍ›öSµ|+½d¤ª©n¤{I«RæsQ«oßýÄÔ2«ÖÕ¦jP—ZeuGÄývYö(û–ˆ$ÓoE!ªEèOꂶŪlª¦®•ÌnÚŒ.¤¤Ýº5âPLdKäÎxÖ´=¶~œöS½¬ˆPÒÏcùD=½<øe +ßÔMèF²PPþ™¾XWÍC¿ +¶÷©uõšƒÂDsG‡›ßð캡¶nïm{áÍeW½I,Ó&7N¹ ø—HäFz¶Íú‰FØ[@˜h³9ùaÓ«äDÐÿÐDðé`"oˆöŸ{ÜAø´®?¦l‹‰"×ÌÚ©à~Û%/r'£Üù±»“¶ÈçÜlê'^åy¸
.t6Þ9*ÀÙÚ˜Cúÿû* +ÂÀ·ŠÃp›6Ç{â€açÒ +ZƒIŽô—ÃŽ!LÃ]a¢RQÙ¢mú]»îhùnzØ«´‡} +'´ƒ ´X‡àŽþÚ„¹ø¶¦.+›jš)ººì®¢ß}çã.´Ü=…Â%ÑÊ%<X²]Ù·»ŽÚ#‡ÃuŒºÈ·-JvVjƒa~-…Q$4å¦"RWí>a¶Eh£9*°mƒâgãì°yÄ9ÐDSÃ'œZìt% +Ú½Zw¹ìÈÛ
ÆD¢÷»ºúT¥i›ùwïo¦ÍÝ~Ý3½'=l‚M†OH‹ð4Õbt™‚ +VÙ6ŽŒú“0/Z»ŠýS: +YùÀ$)Ö¥\,ª-å™ðæyh¥ ÷ôK™<P$ü—Žú…DùåiòåÛKÈÁ[j'F_Ñ(¦!Ý#ǹ`66®&
ó†Ë}çˈ@Òn@ZežµV&lÎ iJåZ½ÚT#»ùÈïÔN™dà +XÄÛUl€~yôÊ"ëêÍvùúç¸-Ôì¨(6‰UäÁÊÁu¡û]£õ9ž¢ ûm¬¥<¥·T`Ð|4úä
FörËsc_ŸÑçŽ)ÜÍs-Aɱ—w»Ë4±`±GÐMÂVzWhXxîØ™]! "ö¯¥€áË +Ì) ½%L‘+€à«Iž‘Ð`AýÅDÂçöd[zÀœŸ˜à¡ié}ã‘Àó%Ž +))ó…R+èË— ŸÍñ¨A§ë(fZGÑ¡Žb¨Žb²_Þ_ÿ5,ÛMY7D‹*æ°¨¢CQÅÄ‚‚9((øTƦÈ.ôÕ´}ãw>%BÇQðì-äSš +˜<®ùù˜buLôô(¢U!EÔG¢ +yFC¯3rœr›„y“EXšºA¨RŽâ•wí¾§6°C„xûBk,eàMÈ\%“‡»NÉøz—;SŽ-r9œÚDðÎ0½s‰ò!SX>Lx.`(μp@NrˆÄ=²öÛ~ÃH
oÒu<£t”OqSÎQà!ôS™wU
ïfàoI?Ëê¾Ü¯CÛ¡+`“r¾L¦–RK©±2M + €QJ¾PVNªÎð*è¨éu:„˲÷GE%g±é›o8)Ã]³XCªÃgt÷Í£çg¹îZê÷èoBŠg/1 +år¦•ý¢«BÁhzõ'3‡û´‡à{²Þ˜9Éìn–¿•ÉÝADÒªôGþðT¦lžc)A¸3%@iÑ€(ÅHY$jxx}ÖÐøxð
ÅëAÛ µHM£\Ê*LcDµ\N3Yéôÿjr}Ëé-CؼX9=:âð)hâ`Bƒ/·lâò +7úqïòØB¸·õ7åGçüµ¿ãëŽÔ±m»®¾óe.À¶0tàŽ«D ú†8IQšÃ¢ +®…A罯0Êžœ´ã:
2n¢ÁÓ¿%ø©®žM0£"‹áœýÕÿK2f°æàËùË D ç0ù¿˜Ò²xÖ Š«Ïýäˆùf¿|ÿ攫–ÂJWˆLÊ@∵N•ð´4½Ñendstream endobj 1650 0 obj << /Type /Page @@ -6671,26 +6694,19 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1659 0 obj << -/Length 3038 +/Length 3044 /Filter /FlateDecode >> stream -xÚµZÝ“Û¶¿¿B¼Á7ÁæÉIήÓÆIÏ—ÎtÒL†'QÇ©ˆ”Ï×Nÿ÷.°ˆ”x>7žÎ=–‹ÝÅ~ü°<1ãð'fÎ0® -=ËÍf¶Ø]ñÙÖ^_ ¢™G¢ùê›»«¯^)7+Xa¥Ý¼ãΉÙÝò—ìÛ?¿üéîæöz.
Ï,»žË³oÞ¼ýg -üùöÇ·¯Þ¼þùöåu®³»7?¾ÅéÛ›W7·7o¿½¹žg¼/‰Ã/¼zó×½¾}ùÃ/o¯½ûþêæ.é2ÔWpåùýê—_ùl jÅ™*œ™=Àg¢(älw¥bF+g¶Wï®þ–VëSö3Ê1ãd>a@)§h -f•TÁ€]¹«@%]då£W^ƒ—´eÆ -;yêf¹ š!cQ0žÛœhÚÃûj‰<ëéD´ËÜ4`WïöÛGœ»Dªêcµ8öu³ÆÇ~C’-ÚÝ®l–¸³.;K
VSZÓÖo¾h›Õº‚-çÙ¼œ·Lhu*W}u‹Y€ãÀk³¹*rV¦‚ÆÈðFÝ¡uÓõåv[-Y æ@嘩ÞÕÍP\MPø¡ZK˜9ÉÎÞWòÎàx£’«ªì‡ká2âîÅñ¿mã
ª¸ -'èÔD[W§X…·(öJ̤@ -z_íª¦ÿÓ”9ð/[LòúIž+”t=ÁR ¼xö_O¹+Ój°Ä"ÅÅ -®‘,/ -æ#IÈ~º
¹Ó’žÓ-Ÿƒš~° -ƒPœý -<²<5:€w×~!ÍØ ¡Û<aS9Ýø†ŒâœI®Ì36Môóá—ú\òÙ[p -d±?æ‰Cþ">c=¦¬+sÔHݸOÝ,D¿~¬©ÁI!?˜qez* ¹fÖ·!¥ÎÅsñÉçú‰@:çú™ÑÔNCV0¿æHôŒç¼N Òï¿;vT;ï ÄREu3ÞWrÁHƒAp?J¹ò Ãœ]Cc>0úÌó”=óΑö®UÜÚÐzæSÿs=~É -çÜt‡ž8·,ƒÆ¢ÐL%²€Â§ú?1@QuV"öÀdž½o°±ÃÐ
ƒ_4 _àEڀÛØ`ĸ²lweMïR„ѱ©?VRÂ$¨¦¯W¶¥oZ°2{Óã45î#¿®¢B×[-„GʧBQA؉ø3 -9uiÒØëÜ°(SR@ð:vñØ]SEé¸+ζÃ|å[Áë”2©íÞ)=E½ Vöá,¹-—(KGô»²_l(8ß-Æ9z[£Èp -¢8—lp:4‡BÃ.íŽîGî\aX§þ¬ÝW¡QsI“2.`H?Þƒ bâLªº<yY‘Ÿð{|& tÖk?ÁÐɯ.Óaí!r®bXŸn -çÁm!DÁq„³Œ[ñå¡Müæ†mãE~Úöé¸6`a}]Í…·µÿÁ›ŽñH5ÄWèPÀ]14):œ‹/T€Xêþñ«òèûž}½ à˜FAœ˜ÊÞ†V3¾wÜï[ß¹¼ÂùÆ-\Œl³+óÝÒLhw('yž2Õ%K¸^š'¸˜ˆ©>ªbyáÔs¬Ü+)õ3ëiÓ}é³å’Æ>ÉÌü¯Ì”›”*¦MhôôYôìƒl‘ksÆÏù$¿˜é¾&ÀIŽóˆT |*åÆùwè1;wק0%Zû.›Š>(”ÃoäFH§¨ }¿l–¾¤O#¾7´;î¨9îîã§üærÊÏuºµ¶ôGg{œŸO%•E…h° fH¢Ê?.Aüøųbk6aì"6{“‡ÎŸ°v.Xž>eùæ'R–…"fSy–ÅY¾RÂ28YŸŒùâ„·/3–òÀB¸ÓÆXBCšÂ¹qfø9ªˆ˜£ÆBXhé$hàýàlèU>¬ØÀ¨§0ã;C±Í?Ü÷éNÄ‘´PÚ,»jn5}a€¢¸Œ„¨ã§{a§þ{A¡m»^“Gÿ‘~˜Ã*™œú`"´zþ¥õ¤H‚ÁÃo׃©]üÿ›L€zž´ýâk9ýÏ +xÚµZÝ“Û¶¿¿B¼Á7ÁúÉIήÓÆiÏ—ÎtÒL†'QÇ©Š”Ï×Nÿ÷.°ˆ”x>7žÎ=–‹ÝÅ~ü°<1ãð'fÎ0® +=ËÍf¶Ø]ñÙÖÞ\ ¢™G¢ùêÛ»«o^+7+Xa¥Ý¼ãΉÙÝò—ì»?¾úËÝÍíõ\žYv=7–gß¾}÷=ÎøóÝOï^¿}óóí«ë\gwoz‡Ó·7¯onoÞ}ws=Îx_‡'^xýöÏ78zsûêÇ_Ý^ÿz÷ÃÕÍ]Òe¨¯àÊ+òÏ«_~å³%¨ýÃgªpfö +6¶œgórBÞB2¡eÔ©\õÕa,fŽ¯ÍæªÈY!˜VV#Ãu‡:ÔM×—Ûmµdš•cBJ¤z_7P@q4Aá‡bh ,aæ$;ûP=NÈk8ƒãJ®ª²?®…ˈ»Çÿ¶7¨âë«fé!ìÞâ/ˆÚ>œ +”÷åâÃC¸-Ár»}Ù×÷[b|ìÊ5
Ûþ¢…ü›'ÀÚs´U¡Xî„›êœËõñ +ª3Ûªón 9Œ ó#µüIJ’˚¶Ç©Mù‘K\ÙÔë
QWk|¹Â/°Ÿù¢÷õ¶î¯…óÂÛìïרv$ʲ¡€KÙÕÁ;ýü¦lÖ´-d8ê–þØÀ#LÖ`4Á¨=à/:1ºú_qi5ZÒYW-Pö>Gžu-R<Ù<Ŧ=n—8¹+?£r©ÀyY®´z•ˆ)·²L)'bØÖý&íJ·
’‚õj$™×º
Ên†1Ã-¤™bu²bP¼íÒ½óÇ!Mv7&BHS‰/Šee$DG#Km£I7eGšô4ØW‡]Ýuà 4ÑU=
Ž‹ ›1KšÃ ,X©:L‰BÃ+™-ÀeÎ"Äp"WqÈI㎗éØrVHUô0„‚¢!\LȘ®Tv¸vÙ±i0¿Âe{\ç§ÉÅ¢êè…º#²·+œ SWm]bÞ¢Ø+1“èªO5…\ µ +xBaø°i©§ÔÄc~†žÑY]DÄq’.’-ëŽDnë=>@âhªí‹$mÐàoµÛ÷S¸E‚žÂØtÌMh·ÝT¬ +v±£ÅÃz†ƒÛAç#Ñχ/\v>.ù†zµ@ë{‰4ËsiŒaΈb$ÍE÷%Q='Ã7Bÿˆvüàaæ©ë¼sÎœfì„Ðmž°©€o|wFqÎ$Wæ›&úùð…K}.ùŽlŠý8@/ò`:daÕDõœÜ¢U©¾ Á^+3îÍ<QßËwŸ ±Z¨‰ÚÆ5Ý¢`Ð.á
Ã’Ö0¹BVïÛ=Îl«áì<ýjD¤'êL&páß ö€Kê%Í•:AaFæQ©uõ0•497çZ1‡0ÙŸªÇwXVÔìQ6gàoú²ÛÓ ¢ûžò}ýU½”.Ï™Ò2Îâ…æï;š÷þBÞ à/ÿ[œðʇ^hB:²Ø,óÄ!Ÿ±SÖ•¹aJ¤ÖÜ箢߈¿ ÖÔà¤Ì¸@=Ð\3ë{’Ò€Gçâ¹xŽäóýD sýÂhj§!«
˜_s$zF„s^§é÷ß;ª÷Nb©¢º/¯ Æ`¤Á ¸%„\ù„aÎî¤1}æyÊžyçH{ w,nmèCs©ÿ¹†¿d…snºÝ?OçC–ÁVcÑ +9uƒÒØøÜ°(SR@ð:vñNØ]S;Eé¸+ζÃ|åûÂë”2©Þ)=E½ ¾öá,¹-—(KGô»²_l(8ß-Æ9z[£Èp# +¢8—lp:4‡BÃníŽ.Kî\aX§f¬ÝW¡ksI“2.`H?Þƒ bâLªº<yY‘ŸÐ{|& tÖx?ÁÐÉO0Óaí!r®bXŸ®
çÁm!DÁq„³Œ[ñõ¡Müæ†mãE~Úöé¸6`aM^Í…·µÿÁ›ŽñH5ÄWhWÀÅ1t,:œ‹/T€Xêþñ›òè› }½ à˜FAœ˜ÊÞ…¾3¾wÜï[ß¹¼Ïù..\Œl³+óÝÒLhw('yž2Õ%K¸kš'¸˜ˆ©¦ªbyáÔs¬Ü+)õ3ëiÓ}é‹å’Æ>ÉÌü¯Ì”›”*¦Mhôôôìël‘ksÆÏù$¿˜é¾&ÀIŽóˆT |*åÆùwè1Ûwק/0%Zû¯/›Š¾.”ÃäFH§¨# }¿l–>¤ï$¾Q´;î¨9îîãwü endobj 1658 0 obj << /Type /Page @@ -6759,19 +6775,22 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1671 0 obj << -/Length 2646 +/Length 2643 /Filter /FlateDecode >> stream -xÚÛrÛ¸õÝ_¡Gy&BpãyÊfíwºIêxÛé$™EAŠÔŠTwÛï98 -Øþù‚3•¥ÑìÎD–ÉÙöBGŠEZ)©.Þ]ü5 ¬Ú£“òœIË j9`³(åé,‰2+©¬ -}´·ðIümù/Ó>µ;S…#n@6á.lÚª¹Ž?ó¢¬ÊîaêFª[™ýþêCUõ,¼øžRÂKƒŒ -˜–E^ä·6c‰ó}]Ö÷#XÝÀIãAxw"X¢Ä˜Ô²^7£c+³<8DŽª -¨ª¼,G[@óe1dq(ñ©ëÊݾ¬»E‘wæ¾Ù;vŒ³
Ï[ݼ˜T»8Ç4Ü“1MÐÔ•[ó4,§š$dÿyÍc¾ýŒÜÈ‚~·‡'ñ›¼®M5Øüb¤¬G×czÄ@G–)™œ…Åç×RÂ! -²Db° -«A©0¾o܉ftRçšræ\tÀô=JD>G5A™4-×'a僔z"VˆXB«˜z}-¦4êé¢-µÄ¤ÜåìJäÞå˜3‚úN³8ÂÀª4K2œ¨vcÂUowžj_eØÉ[ÊßÎ^úðhû.K©¯/`|ßø´è…ÙÔf,åm㜖äŇ²ˆ°£æb\µS~A àÓßBüÐ_¹“Û6ÿì.÷t©nÌA‡Ûñž€3š/œÓŒ‰(ã¨>„èâd Ë8öiÖ×À°¼=´•uQ°ÐDpî÷·àby¿ÊŽƒ-V`Ñ•R -Š4ª³G*ô8fš+o9¿‰GÁâ8tð„5”¬¡´CI4=‹œß—Aå+ù½Ø©™N”$J¼l²Ëm9ùç\!áh™Ÿ;Zïõ…+ͺ—„]îjA(½$ONâ$æ2•Hw1>.Ûj?‘®¾Â‘ká`„z
hõI2¿¶Àæ+Dx[f€¨m‘PÒŠMÓÛIçOrþÙ˜¿‡îvšjEƒk^ªp F1@Ÿ”½CSª@û–¡>ÏÕe,IB9ŠŠÕ‰{ïR2ÿÓ8ZšuZV˜—n›-ø’ÁNu é8áá$PUý9=ÐdYâmÐ#º±¹ -O•¦2ü›9v¬1MÈÖàï[n·x+]ÅÜÕ×ÎÔ+ãšöw‡Ý®Ù»Río¶¡X@K*
”ŽÏÄàÿh=—Ã-ÉÚendstream +xÚÙ’Û¸ñ}¾Bš*ÆÅñ“×;ãÌVÖÞŒg“JÙ.EA#Æ©)Ë“Mþ=Ýh€‡Ä±'µ)=h +²DÝÅ`Ž/8ÚU}ïŒãä»Ä°µUKÓíÎeÆ_Wɪ
~m²{ëïÆ,¸JF,N¢çnc;‚úM’3®’6ãž@Á92•Bœ4Âïkzâ”Jæy]!u÷‡ý¥Hçh&J¥óŒÅÊÒèK¶/,Ú$Nê5íê˜vÀ]K!'k´3´K{I‡jì3¦ŸDÎoÚf‚;áZq‘x²½-L°·Ð Ã(IÕX‡»Í>kàJ©@ÞMSçðÝà\ÌëC»;´´¶µí¦^5Ïp¦‘ðmæW:Žð©L
ãÎ\<ñ[ŽÅ¥ +,¨Ä7‰ëµÃÛ'iXšº}Ó'•]g‡²
§†°OTͼ]Š÷0 +Û§)q|Á¡ÿÎ7¡û½¯nÆH'Äž$†“` NMÓÔí¹±à}U#2‡2ÖC +ãûÚŸ¨G'uç\SNâÃœ˜¾Gi¡…Èç©&HG&M‹õIXù ¥žˆ"–Ð*¦A_‹)ºh‹CDDí1)ó¹{£¹÷9æÄŒ ¾Ó,Ž0°*ÍãƒÕnLøêí.Pª7ù…òãw«³—!<º¾ËQêß×!-aÖ•Ky[{§%yñ¡,"쨹WAÍ”DP„ô÷‚?ÔÏWæå¶Í>û˃ +@%’ÞÞpâ"-|;KÆI6U»‰ˆ¥:$5lVS®Ì™1*îb¤,Äzëo¦®G`&[—}º À¾ÜÁ™o»œjõ¼öôöªÂ™WƒˆÉÃuÌR•Æc ô‚Ç°ïDU·ã×û´kwP°¬3¸AÀ˜nm>Õñ :÷öt.&)X‡L2&î†A™¨e¸KÓ ƒéßõ +†”‰253d èæ#ƒ°«$w)›0dm ÁX}@í̆LL@‰£Ì”z¹®»D<™¡FÖÖfønV[ÿƒ¤%gZÄigÿ®Œ˜t!£xJØ*‰:a«%BTåmC‹dš¸+ÐŽÛœÏ$.fâäø™ˆ|à0…áÊÍ*Zí] .&eáÝ +wÖô]Ú¼Þº4kß”:gøä +£þÉg.Õ>v¡’;}›ìK¸ØfùÆŸuq@ÆòQ²'ã;“Õ¤}`ƒª´¡d¯À H£Ú<R¡Ç1Ó\Ëéø›xt,ŽãAOX»’µ+íÐCMÏ"ç÷¨c%¿;5Ó‰ +‘ƒD‰·‘M¶™+§£ðƒ+¤#-³üóaGë½¾p¥^÷’p˽£@-¥—äÉIœÄ\¦é/ÆÇeWí'Ò×W8ò-ŒP/°>Iæ×.PØ~…ïʵ+²J‚A¾©kr;éýIÎ?[»÷ÐÝ~C]®h0`
ÁëŽ*¨QÐ'eïДJÐÀ¾a¨Ïs5D†%IWŽ¢buâß»”LçÿtÅŽ–v]w-+ÌwÍ|É`§: Ðtœðªúsz 0& 6wºq¹ +O•¦²û7sìXcšÁß·Ì°Ô÷ßPÉ]}mmµ²¾cwØí꽯Óþæú +ôŸ¤6at|&ƒð/ë¹þ½)endstream endobj 1670 0 obj << /Type /Page @@ -6800,19 +6819,35 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1677 0 obj << -/Length 4029 +/Length 4025 /Filter /FlateDecode >> stream -xÚ;Û’Û¸•ïý]ó¹ªÅÅ•gžœÙöŒ“OÖñf2©)¶DI,K¤"J-w¶òï9ç -ßw)Iõ‘x…/Ó[fªTrBð;2mG;ìºñ¾ËêX4xSˆ|*O^Þ€ 'ÊÕ-¾x}Âç†GI› qj
Ùw;íNÇy·š?Õ cW/6UÛô;z%Èv@Ýž?8ðú‡W–DSØ_Û1ÀBÂLsª6eÙ¼ŠÙ®úÔìN»`ÀȸJáMÔØ,²¬7Õcƒ í9FhxC+É»Â:Þ ù–wã!’Ƥ¥¼ÿTMåy§¾Z'Öø\ZÊ<+T®¾hJeiÂ$äGÒ$k[èi9²©ÔõßÒD3ž8—El0nŠ'Ê@[ƒ´ä}ϯ5áýë¤ÿÿ<…”ÎJ¸&ü\5H$œô
šT|C]ƒÉÀ7MⶔØ}—’‘ý¡ióc³ãyOu1OŽæ¡`®»ÃÓÅÜyÜ~— ¡À(ÞÀ>ë$ËcœôÔ£ð'\8–RÆñGP…pIÍÛ -<"µ—
éÜâØSGJj`Šïí.Faïc½£6 -÷Å÷ì‡%{rŒö²Zàfs3u³Œ»Oè5»fì|}wKÏ´ó•x_X=A'[tí*““¨äÄãÊ삵”OÝ‰Æ ¯©«¢Ž”@û¼i—ÙS'ÏAx¢¡n»Œ]=HðÒR^æ.seq‘o?Ã#UDk™§¡b$"XÇŸ9u‡Mý4«¸Bâ\dñªz×-€ó‹°þSöÌ ¯ËKVRqŠÈ{´¡Ò›,NJ=[ -Û@Ò5¸¯Õç&—l–pƒ´‰pù ©Ï»›é"ºÎA}h}¢†ÇË«†Ü–õ±>ìš–q<{…ÂVæåþþ‰Þ÷U, °WŸ.êNT`<±Äœ;9{ã\`˜¸n{¢‚´>x€üÑaRLÉñepÐøF5˜:°Úw÷©r¢™N})3³âçc2HÒl)†RÃÃéJ~m…
uà‡Ó‘ #_ˆPÇ攢<a§ÑÈ:-U®,'ˆdçêÐÓ''[€2± Õ¤kÛ™UÚ¼L˜Ì8q¥R
Öû -ñv—ö-_)Ùx`Ü—õáp%Å3ªHV%m9ŠœÊ‹ªd¡+GUIËA…-‡Ñ¾>øc9àÀïøËþÚA^jI“:DüÀßi¯j‡A‚v€$Źå,>Û£?Îäì‚6¡.L;ùh§f„˜v>v¡hêTÛ~m‡Gx°A¦ûý¹›£:)<VZóáä Í<~¶§÷ðúŽòÍAO
&PxÛ¼ö¡X6t5ëÓ¡š§ÊÛÈŸ«¢À©%#0PdÉɱÏJ<CêõÍ#Ïïhà»Xb┕JÇ‚²ÍË@Þ»eíÓjÅ—d(SËH”ù×Ûî¡Bqr9{/h1Žs|¹ -m†‡tãÐ.l€UÒ¹“å £$Dçáp±8‹9k]ä,Z»Š#玘:6}cÑËù8'Ž%¦±äᇧß9ñÉ’òŽ,%])Ÿ'xþÌŒ½'_GЙ(Äç5µ+¤éÀY5Æ(;{M*QNÇ]šsd\0ûÎìjŠBΑ…sƒÎpvæ•Ô1¥`<æI‰¹¼ášŒ—+‡ÃsŠ…‡ Ê/TÍ68ÙîtÜŸŽ|¬ü=9¯PÙ‰5¡~_/šU¸;3êCÓ¼'Ñ, £lNJ9»»ÈÙú§N_Å3§®B³øÕïó+ËàËÏ]W]÷Mò|tÈGpcáObÿÝ#RŽ·-ªö‘#±Ñ‘ø4ä#?+ƒvaSóÈfó½+éú6èø×·6܈ŽëaØçÏ /·—^éÐÜ!â]s2ìD•Æäýít´Ú™Éâ0äñ -n4Å“gF‰BÆãï'Ș|¾Œq=‹YîŠXÖ
wPðÍ—;³öÐG,uW~áIRGm/êfí[41ÂÍ7«!g‚ËÁ&EmTæd¬'ž)žƒ°rL¾½‹©SÎìŠÌbqšžløÛÈNÁ[°5xoE²gF:àûG?eí››2¿’ï*]fZÅÂáx%á1úãkQDõ4Ý6\QUäLdpBS´ÝgÊáºrA˜¶÷•IVý]JÏ\5«í¹zâË’žÑÐçÁ
×.¾ŽÉ÷BsŽ«ã½Q -w ¡ÿ–êB¨þ’¥Ä-ˆ„vÓÈ$£bÏõø–f®n¶´ß¬jsz˜›ûŠFÒ;Ò¤$kÀvéÜ~‘3@¿R•—œùì©k¿½vó_Û¯ë'îéÃ?Cûoÿ*`øÉ„)2½ÕpáZÃË3§Ê" +xÚ;Ûr㸕ïþ +×¼D]esq%Á™§ÎÄ=ÓI¦g·Ó›}Ȥ¦h‰’X-‘Š(Yílí¿ï98 )C¶;™r¹ pî7@òZÀŸ¼v6º4×Ei2+¤½žo¯Äõ +Æ~¸’<ç6LºÏúý§«ÿx§Ýu™•¹Ê¯?-Gk¹L8'¯?-þ6ûþÇ·ÿùéîã›[eÅ,ÏÞÜÚ\Ì~ÿþ觤Ç÷?x÷þ‡ÿþøöMafŸÞÿüº?Þ½»ûx÷áû»7·ÒY ß+^áÂïÞÿùŽZ?||ûÓOo?¾ùû§?^Ý}Š¸Œñ•B#"ÿ¸úÛßÅõÐþã•Ètéìõ ^D&ËR]o¯ŒÕ™5Z‡žÍÕ_®þ+.8õŸ¦ègµË¬SE‚€J¦hË,×J{>Ôû¾éÚÐ*óÙ±Ý4ÛæP/1ø\?/3cJ{âw‡Ž¾h»5ü‡Ø´³ÃºæÁãö¾ÞS»[Ò3l”6¦˜½çîŠw,È°š·ì›Ö ¸”Èr+OêvXÖl«ªï»yS!Z¾SsXÓH„tÓ¨ñ‹jSßà>×Ð!€žåõ”Yi"Ì×5®oóÙþt³º¶M‹_[K;ÂH×n©µèÚšÆNñ;ÚÕ†Íhø¾æUàë]ÝzX¡»þ2¯ëEöaÓ.š9#“2@OŠÙ‡ŽfÜWóÏǵ#)1Ŧ"$Hª?×»µî鹨—ÕqsøŽÞª–»ë/M`x>‚I! + 6”paÉbÀP”ph¬.e^P¦o°I#½:Ó¹SFäKF2¢†5´”¤èÝfCâƒ<iQ÷ó}s»ï»þ¢jC=ÚúD
@TÒ² +T~ulÑ––…J!ŒÃΊE¾ïR’ê#ð +/Ó[fªTrBð2mG;l»ñ¾‹êP4xSˆ|*O^Þ€ 'ÊÕ-¾x}ÂçšGI› ql
Ùw[펇Ûny{OTƒŽm=_WmÓoé• Ûu{þ`Ïëïß8XMaiÇ +ëxƒæ[Þ=Ž‡H“–òîK6•çûj•Xã©´”yV¨\½hJeiÂ$äGÒ$k[èWi9²©ÔõßÒD3žx+‹Ø`ÜO”¶iÉúž_kÂû×Iÿÿz +)•pMø¹lH8éþ4©ø†º“ošÄl)±ý.%#»}ÓnÍ–ç=ÖýÙ<9š‡‚¹êögso“àþßw +ŒBà
|à³NÒº<ÆI= +Âe€c)e`/pU—Ôl¾©À#R{ÑÎÍ=up¤¤¦øÞîlö>Ô[jhÜt>{V!«º:nëö@=M‰ßs(¦gËjÞl0—‡Gê¨(‚'œ©€ ÁǶؔ!Ñ3…ÍrSš ¦2ˆŸ +ž¶xÍh\†,Ígj»÷¸‡Æ["x$Á.c³RG
ú\ïÛ”*J׃òÜ$–tEÊ +nU®gëîä36JD™…9sË\ဘ~³¡ÆØÒû˜oÀKÜíº=×䌜küX`r¿¯8ÃéÞaújˆÖ³»SAîÊ–CèöœwC +ÑqðØ‹
ƒ·…(ÜCÞ³–ìÉ16nØËjQ€›ÍÍÔÍ2î>¡×ìš±óõÝ-=ÓÎWJà}aõlÞµËNL¢’Œ+³ÖJP>0<vGƒh¼¦®Š:bPíÓº™¯i\fO<ᑆºÍ"võ ÁK·LYx™»Ì•ÅY¾ýT!d"œ„Š‘ˆ`AâÔa6õÓ¬â‰s‘AÆ«bè]· +øOÙ3ƒ¾.,YBJÅ)"ïцVHob°8)õl +ž/ý<Rßœ”ÔfÓw¡(IOª”áX³¤Ö63¦þP\òì–¹ÉÊÂéóJÔ¾jVkÜ]•Äx¢êQºÀJ®}ñ§=lÐ:ö¼þ“˜ÚeÒ_õù’’žý4ÈlL„*Ç•¤Ñc/?7uÕsÓ§Þ:tDÁà™>e‚æªy¨—¡hçóß¼4)Ïã+¬õf$ØËPrˆ’͹Ùw)- Å5¿Þ‡õ"X @ y6;ÑÞÕ¥çBím°‘%I6"áðå9ܶ¤kp;_«ßš\²YÂ
ÒF$Â僦>ïfl¦‹è:õ¡õ‰/¯p[Ô‡z¿mZÆñä +[5š—#øûGzßU=Zt²€À^m |:«;Qñ¸Âsîäì/paâºb,,ì‰ +ÒúàòG_\„I1%Ç—ÁAãUÔ`êÀjßݧʉBfR8õRgfÅÏÇd¤ÙR¥†ûã…üÚ +êÀ÷ÇAG¾¡ŽÝr4Rˆò„F#«´TAT¸²œ ’ª};LŸœlBÊÄ‚V“®mgVió:a2ãÄ1”J5Xï´P#ÝÄÔMì=ó&Sû&!74aѦ]véšÓQä/†Ëxz*‚‰iæ©B KêÑizÏà/H`w»èÛµ+²R;7•l_Õ6Teñ¤ +TƒÏgàõ4»E8Oë^Üй‰¯ÿ'p°Ð–Ö¾|F"tÌâÉî<f€eX’¼TÄj²Âš ¨—% ëì*Œ¨JmƒÉÉöX•—N~ „ìcZÆK¡…ö'Ësæ.NÝqîÁWÙnC>u¡ÍÑR
^)¸âí6í[¾2R²ñÀ¸?,êýþBŠgT‘¬JÚr9•gUÉ<BWŽª’–ƒ +[£}½÷ÇrÀßñ—ý´ƒ¼Ô‚&!tˆøž¿9Ð^Õƒí +ÅÉåì½ YÄ8Îñåx®XLÄÁ"Ī0ôO²nÝM¼ÑÒ” Ís)
œ°Üí^|äÃäb0D_MB˜úcîf}} ÓZ7_ã©4÷chÅžm$Z§Œ¡‚ÜR¿ê|:Ü3½£IèOƒ +>̆(ä6µ6”ÖUWò²ÛlºÈhUôØuà~š>µGíj¯Ë¬í,Ü_ŽÔ0‘ú+`´2Ò}»˜³ÚWIçjL–ƒDŒ’‡ÃÅrà,Z<æ¬u‘³hí*6Žœ;bêØôE/çãhœ8–<˜Æ’‡÷|çÄ'3Hʲ”t¤|žàù3cD0öž|Ag¢OkjHÓ³j Qvö–T¢œ*Ž»4çȸ`öÙÕ2…œ#çáìÌ+©cJÁxÌ“syÃ/W‡ç1”!_¨šMp²Ýñ°;øXù{r^¡²kBý®ž7ËpwfÔ‡¦yN¢Y@FÙœ”rvs–#²õO¾ŠgN] „fþ«ßçW–Áן».»î›äùèà<ÆŸÄþ»G¤o[Tí5Fb£#ñiÈG~Ví¦æ‘=Íæ{VÒõ'lÐñ¯o¹-×ðϟAžo/½Ò¡¹)BÄ»â8d؉*Éû Úéh!´3“ÅaÈãrU€r…#Bi%ð¾Æhñˆ÷Ùæ)£¥3Gé$,Mi3„gŽ
@ëÀo섇ÞCǬÇÔy®7J¸}…"ªÉ4°
å>_*V$nG€•Š§£Cþ\折 Ò…(ƒ÷`¼w7b0¥Ëÿ¨ˆFçoBÌ +cˆ¨EFǼ`a`]°Á'$+N·ÎYh;³¡¯€~[=Ž7™—€ +¾ì:@o¦Ákß´ód˜RÈLÈâupȨpéÖ…Ù¼G%3LûË(*£“²EZ¬¤Î³B»)kâ§ÐäÞè +n4Å“gF‰3BÆãGȘ|¾Œq=‹YîŠXÖ
wPðÍ—;³öÐG,uW~áIRGm/êfí41ÂÍw«!g‚ËÁ&EmTæd¬'ž)žƒ°rL¾½‰©SÎìŠÌbqšž¬ùÛÈNÁ[°5xoI²gF:àûG?eí»5e~!ßUºÌ´Š…1ÂñBÂ+bôÇ×¢ˆêqºm¸¢ªÈ™Èà„$¦hÛ{ΔÃuå‚0mÏî+“¬ú»”ž¹jV›SõÈ—%=£¡Ïƒ®]6|“ï…æWÇ{£î@Bÿ-Õ…P
ü%K7ˆ[ í¦‘IFÅžëñ-Í&\Ýli¿!YÕþæô07÷¤w¤IIÖ€íÒ¹}‘3@¿R•çœyrÈÔµß^ºù¯m†×õ÷ô១ý·0üd„Þj¸ð?áå™Se€B¤L",ýH"+3.Zq÷…«¾ç/tœM/õ¤#Ñp8&Bü%ÂS*ü?ª¹endstream endobj 1676 0 obj << /Type /Page @@ -6829,16 +6864,19 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1681 0 obj << -/Length 2195 +/Length 2192 /Filter /FlateDecode >> stream -xÚÍYÝÛ6ß¿ÂèËÊ@¬Ô•<mÓÝtƒv“Û¸Ú"ÐÚ´-T–\Qªëî¿)K²’ì¡/‡}°4ÍóI.Ÿ1øã³(öãT¤³$
ýˆñh¶Ú_±ÙÖÞ^q˳pL‹>×·Ë«—wœ¥~‹x¶ÜôdIŸIÉgËõÏ^ì˜÷æýÃÝýÛŸoæIè-ïß?Ì"bÞÝý·ôôöñæÇoç.#î½ùþæÃòö‘–b+ãÛû‡ïˆ’ÒÏg„>ÞÞÝ>Þ>¼¹ÿº|wu»ìöÒß/gnä÷«Ÿe³5lûÝóƒTF³#¼0Ÿ§©˜í¯Â(ð£0¥¸úxõN`oÕ|:‰g¾b1`(¦ -Bé}_‰ÜìÔ‰¾rÆ‚Ê.ùB†`Äý4Š„Ñf· -Rs´XogôðØ–ŽÑÿÀË -×Z]K74h)AÎ)€¢gÌPÐ!¤”ÓÔ \ô%RŸéÛÆyàlµc##1M&¦½ˆ%v+ç‚$öv8IBiˆ}P«<³Ë4áTUc´ …æü"oˆBÁÙã^·+¥íZÛZËÜ©ÒÉpºl]‚yòÞøP¦€‹‡>´ù}œò0v”Uùk4œy÷[©÷Yæá›KK|ÆÃߌ~p€ÃJ†Ï+øÂ
[ƒ–
‹>—2éÏd¦9\"Ž½]J7½åv1ûƇá¾É8×JÌ •ÓøEí„sN#mì‡I‡†» -Ò4¹P6MbãÉÈtUêsüÔº -áK‘—FSdÛQëàû±-2MØaÆÿ8zæ0u¹„í<ÚÓ¶²ˆ˜¶gLÂÐ%`˜·¹ôlÓ¨Éé\Š¯
çpŠ¤ƒÐdšˆ“[š‘¥ÃÄ…†ôJu$ÊO÷ß½ 'ÂÖ ^¥ËÙe’éìC»‹0á°;_Zhû¡L“ÿÉüÜZoƨÒk¾DŠK3A®›>ÖsøŠNaæÝ ’Ø`*ÜI6 ®s½¢£Èü>ǪèÝohíTµôP*eõ4áw•š¶;n%í$¸Dx!²’Eì[Ýôí³âŒSÐ~›¯ølF¥‰>Ô%÷g2Jp( ©+ ‹ís*bç̉˜f³û\)lei€Á"Fœ:Úú…ÏU8æ…wÅE3Þ—+›ÀøIŸûÒ(µ"¯;›l¦æ€ôðVöùI‘€Ñ©Ü†14áÖÊ"¯>Ž½¬€áœ{5½Ùò2Û¼h¦Àâç£70±)¨ˆ¾˜òÛSk¡#µ¦X¬÷Õ:ßœFµû|¸ŽXïp
/O–õPåeÓQW[˜Ô\çÉì§=[ûÊwÙ¢ ËfÆ[’…ç›%sº]pãÒr§Êavu¦Õô8$"ð=¾
o?‚49_\À,ãíMBòycàó0ˆ<]Ñ‚Ùò ‘BS+’¨õ ÓD²ìP¯2 +xÚÍY[oÛÆ~÷¯úb +ˆ˜½ð²LžÜÔN]´N£à -ZZID)R奪Zô¿Ÿ™]Š¤˜ÄE_ +?ˆœÎÌ~sÝ5Ÿ1øã³0ò£D$³8 üñp¶Ú_±ÙÖÞ^q˳pL‹>×—Ë«—wRÍ?‰D4[nz²”Ï”â³åúG/ò…? Ì{óîáîþí7ó8ð–÷ïæ2ïîþÛ[zzûxóÝw7óW!÷Þ|}óýòö‘–"+ãËû‡¯ˆ’ÐÏG„>ÞÞÝ>Þ>¼¹ÿ¼üæêvÙí¥¿_Î$nä׫f³5lû›+æËD…³#¼0Ÿ'‰˜í¯‚Púa ¥£äWï¯þÓ ìšO'ñãÌ2 +À0ñ#)¤P¨Å~ZÆØ|1æñð_Iá«He«]¥ù+@ؼ¢l²•voU[Y±E ^Þ‰¾:6¤}.ãÄ(Zît5çÊÓ +×ÄÝìÒæBˆôÚÚ±oÊÊÚÃ{öØ“HX†¡=EºþK³%ó“DF–ëº&‘k½IÛ¼!òr»Å=“
µSšç屆H’ò¾.DnvúD_9cAå—|¡‚0â~†Âh³[€Ëjú]ëzUeO¹G À£³X$~(s´XmgôðØ–ŽÑÿÀË +õ‘¨,ëÚ™zjv]þÔ»f°è¢Áj›Àu[óGjûn¾l÷Ð:™ÏÐí§Z0óáZ«k©ã†-EFÁL*Ì0=c†‚¡”šž Nà¢/‘úLß6Î¥/CØjÇFFbšLL z‹íV:ÏÉ8òv8È8¦4DJ}Ы,µË4á”]a´ …æü"kˆBÁÙã^·+]Ûµ¶9´–ÿ¸Ó…“átÙºó*ä½ñ¡J +½îl²™šÒWÀ[Úç'MF§fpkDЄ[+‹¼2ø8òÒ†sîUôfËÈl³¼Y˜‹œÞÀtÆ&§"úbÊoO…ŽÔš`±Þ—ëlsÕîóá:d½Ã5¼<YÖC™MG]ABnaRs'µŸölí+ߥ¿uŠ:€.s˜o)œo–ÌévÁŒKË(·†}¿«ÒZOC"ßãÛðöC&ñùâfooŠ’ÏŸ2ôê’Ì^× +˜²ts]ÓBžˆÓâ¹¼y<¤Ð2ÌÝÀˆdÈ®¢±bkJ¯Ô'¬6S2*Ò¼¶üNYäý¢õÁª5I¤^ϤÃJª¡Âñ/²íHÿ¿y" y_Û®vN¿~mî\þ÷õ°ûÓŇÁÂäi_Œï>úŸ#y|òÏŽÝ}ê0èÎîëlºà‡Å[ù‰‹MÖÍÿøòÿüŸ‘ ö¥Rbú†tdî©÷?ñ•LBvû{Ã]'¿o‡²²Éû_StUÃ`¬ +v¤¨Üÿ.Aø?ws¯endstream endobj 1680 0 obj << /Type /Page @@ -6869,7 +6907,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1688 0 obj << -/Length 2877 +/Length 2875 /Filter /FlateDecode >> stream @@ -6882,7 +6920,7 @@ xÚÍkoÛFò»…€ûP6Ü—L?¹~ô\\œœ;à®-J¢-"©ŠdÝ¡ÿýfv–©P¢sq ŠæÚ,w²˜ÃéƒÉ#nQþ\þHÐ’rÐy‚…F‘ÚÄEžâ©bñÅͤƒœ’NT…¬þsD3.ªù§Áß´ÌÚ õp>ŠäcLsiž¨ÖͯÉCLú‚uë8´ë,^Fé}÷œÌÓ$ÎJÌζ{‰Ï|Ùˆþ3c)ía¹·ú‚-–2š)c¹+2ÏWäš0Ͳl‡ð~HôÿnŒ~¹‰² ‹]Êø™çHŠ¶íšÇÉÇ£g«Mü6^Ê—L1äþ•o÷œùjxŒéì·ar×qö¶è~^öòge¯æìÈÓUZ3®9]—å?)tF^ݼ^_ý«cùË|ž§G˜×¢ê%릙ÏÅcUРƲõ§§¼±ˆÑžïöð1‰ûÊ‹‚qé‡nÃ2^8>s5U¡°l§»S#ÆiR·ŠjµŠ°l‚k?á7J‹Ü-Ìl¨aˆkö··$Êd&hø~ð(‰ š+?w5 ë¹s6=ÏWLø¼¶Ö‡7(æÞ$¶¸—u.O0)…Þ«/»ˆE˜±Ÿò1ùépw*K!xê#PÅÀ:ìÜâ…Ùç‚ÄŒª]‹n¼§€F@7…º‘Esëán,öÙNé ²TP“.ï–áËzŒÄ½Î7¥ûpYR@ñ¾~GF‹…«¼¸ <“=ßGŒèËøÝÕ,Þy|íN±îS’74âj2Ý:þáèd»Ž!ð’žWô©ì+Ö@ì -r¡â¯Ðg*ùNO'êæ›áìºó˜¸ÍìÓ#lîb0ΩNc[N] c¶â€k×9X™ÜJFî£$†î½[[{ÁwJ~ÈàH¥gbZ)ºóNŠ5Ö{†Ó3·Â;Pg›OHô“`äÜ(#0ÿ—Ec¾»Ö¾©‰C{•/ª4î}n²^·.t†ónݺ<ö<¥Å¢¯ãºò<f„‚”’i?}/½Ñà1{ê{ÊÝcSÈe´¤Ü‰ê=Ÿ"4ø¨q!CUˆ6¢žÖóR23y'êËWˆm>•qÖ¼#»«Ö.6…Î?Šmü×g¨šgœî›-Fü6©Zíendstream +r¡â¯Ðg*ùNO'êæ›áìºó˜¸ÍìÓ#lîb0ΩNc[N] c¶â€k×9X™ÜJFî£$†î½[[{ÁwJ~ÈàH¥gbZ)ºóNŠ5Ö{†Ó3·Â;Pg›OHô“`äÜ(#0ÿ—Ec¾»Ö¾©‰C{•/ª4î}n²^·.t†ónݺ<ö<¥Å¢¯ãºò<f„‚”’i?}/½Ñà1{ê{ÊÝcSÈe´¤Ü‰ê=Ÿ"4ø¨q!CU‘}ñEëy)YPß¼B`󩌳æÙ]µv)tþi
Tlƒ¿>+Õ¼átlqá*µZ<endstream endobj 1687 0 obj << /Type /Page @@ -6905,7 +6943,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1694 0 obj << -/Length 3074 +/Length 3071 /Filter /FlateDecode >> stream @@ -6915,7 +6953,7 @@ xÚµZmsÛ¸þî_¡™~(Ý91@€ä}óåìÔ7‰suÔL§w÷¦h‹s©I+î¯ï³XP¤Ênê6ž ‹÷ž<JÌü‰™6¾Id2‹ ~•ÂZúí£nUd/bj}Úô°Crˆ¶½›À(¬ìðŒv¸‡Äùc^¹;µR@'‡ºº,Ÿ†M4UÝúÎÚ™v[Dy[Ì盺)Úâ1c(’~óœ®ÄaÄ›éÒr'Ç>=}!?b÷\¡N9qe|¡£>úîŠF¡±v×Z$VüÄÑn˜jy‹©•“
ŸxN+„´CŒÚe+ƽSC
ãܯq~%ë§K *FDŒ”Š'©–Sâ†mm¼·i±-¡î–IÚurÆ’½ ™me)dµtG¥Ó L.žV!v%«ÛŸÿù"œº® õu_ ÂÙyõ®åZ¾å]rda°¶b˜…PhÙÔe‘=q«Å»–Kyg™#œN(ϱÛJ*¦µ9'ª?P#>*9rXÈ{Û Ÿ„œÏO3€ý»îaÊ)Iß}§^®t;2V¾a|¨‰ë|ïÿ÷ÚEûßç¥)Ž²Þ8‡:lÃ-þ¯Ra"òÀá·¼ôCNj›Ô@è26/¨›~¢0½Ï´Íç%aû¢Ö*ýÈÙ\"½ô‰Ð?Uûwjpowü¤@<Q/ýK„X´+nw!ùÍU˜Œ3@ˆRÊ}¨š»«î¹Ê9Ï+ÚÑ|»-'Ncb_†¡pÕg>VgZ”NS(,ù„CyÅ~ôn-¬—Ž,„?Cåm€üêe‘ÙªtP:Ö¬ª´äÀ¼Ef½iè"~è°31èV˜e¯¦¥G¶HÔP6½EÑô1mÍõ¾ùÀ>݈=üFXòÁ¾Qäa"‹
e’ì³êûzB¼°‘êé:50LÙOÄP fY¯9̃®øK/ºzOâ°“÷†-pÁý¤Í¿dù¦eœê̆ë§rê‚yª¦»'>iOV0¾üsûä†Ö\†×çq.o4â4„î73è)UHO[2׶˜è¤2sƒ½J;ÊÏcÑ/ó2}²@ÆÈ~Z›lLï8†ä`˜¾³Æ !pdç[f;ÅÎË’„Bmn(ïbêØ%°=°ÉÁ«rϦOÄ\uÛžg¥B¼ÁzƒÞzÉÀƒ„ÃkìA“©™»Ý¨VÖ]Ül¸ê| ¨Ôz$8
d8Û¢ù¹äyÿâRb%"ïó99`x™ÎMPTèλÃ`‹ü]Koé·ÐÛýØrе¤àÂFØ£6†oéSÌdrkï&{/ÔXæÄ-ªeñX,;Ú/Õ{ˆ XÐpÏ¢qãÝy—û0q࣎¶`ªç -G×W†ìÑkæ|öÕ×0Ö8Tà"VÏ£ +G×W†ìÑkæ|öÕ×0Ö8Tà"VÏ£ endobj 1693 0 obj << /Type /Page @@ -6938,27 +6976,17 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1699 0 obj << -/Length 2990 +/Length 2988 /Filter /FlateDecode >> stream -xÚµZKsÛ8¾ûWè¶R•ÅO‚Þ““سžÊkï\29Pl±B‘ŠHÙñüúéF)Ñ‘gÄ•b£4ô×/PlÃÅ"•£$•‘Š™ÍW'ñèú~;a~Ì4švG½¼>yq)Ì(RÍõèú¦#ËD±1lt½ø<~õŸó×'S®â±Ž&S¥ãñË«w¯‰“ÒãÕûw—W¿ýïãù$‘ãë«÷ïˆýñâòâãÅ»W“)3ŠÁ|î%<2áòêÍQ¿}<ûöüãäËõï'×í^ºûe±À|;ùü%-`Û¿ŸÄ‘HÝC#ŽXšòÑêD*))Dà'ŸNþÛ -ìôº©C秄‰”áÉÀr>t€*´àÂàõ2¯'S=^Ù¬ôdVâ3ÛÍfÂ̸ÚÛ5l½-š¼¼%V^Òóè@©ñ—x`çWohþ}æ.lcç]xñ
uyi‰#Œ‰‰ªnèYW[·ÜÜø3Žù„‹GþâRv7&Œ„
Ç[ú¶µ›‡hN{' Yd¤`~è:Qbü¦ºÅ¡£©ä:’†Á92¥Jq7jeë:»µ5é_Ÿ;6¤ -{g"ïóÂSëlÓäóm‘mŠâ,m±&*_زÉo‚ KÄ<ÛÖ¶¿Èá¡"÷ÕjÉ=·Í²ÚäMÖäw^Bm7wvƒÓ"··ö”D©àÆíéÀµð‹k ú™mo‰çöSÛ½ð8=ÜÂÀ^æ·K’~ŠŒÕ›åª‡Í«²±ßýy ﻂW«Ê¾LÓ|»©é[V][îß¡YfM¯àG+ID_ØÓù„áckõUÝÞÚè^°Ðo[.^Ýû --ªê«§ò¯¾7«ƒBŠ¢º¯Ï oÆÓȘ$uovc›ùr2Õ1¨»Zëv‚MÜ#>7¸}P]4?ãiÓi‰ûûûÈ~Ïpf^œ÷·O€E“ÄÁ"Žâ8fFœQ»ÉWaµjÛ¼¨·ó9ì•ŸÕ*Ë˳ŽðÓ!Ù{>!+Îø)¼i(?KN¿mj€ô™9Å%@ö™:-²•=‹OKØáfÄžfÙ„¬ÏØi¶˜Ñ°›¼\Ü -¢¾r8Wã}j$ÖÎIlj„Kœ8$öÌâ "x¨M°‡!óªp°^½†î̋Ȉ±Õ– J<2L˜vÿz3iõ…—ï, -ØÈÊ
r;EžL™ÄÝuÒ†‘*l˜X…./àШp˜sðØ~³îç·‹GÊÁy -‰Øé
ÁA´¡G¸ÀLCú¾ÜIöbÐgÓ¡-uRŒX×”¡Ì²FZä̬¥ØÈÐãY•àˆE±±öýÁ/`cQÝ—D¹ŒžÛ’ú³ùp;‚fa³e@0-ÅIòMrÔȽ8‡¥‘FCfÞjŽ¬«‡B¨éï9eÕøhDjÂÐ6ñ *Aç ”G¶‘c[΋ªv(6½4>ëoÛöt°=Ûd󯶩}¯·˜^cæQC¾SÝo0!(Š`&Fx?iDH¢ü»P¾D"ƒ{@ëseví¸]:“D‰ˆƒÃ H7à,º’H´e[,h•°Yb‡ÄœÇ®É|ûWUz¶Ž²ÔÙÆ -LÉ\W*»ø7r ö‚Üt'ï$ßcÎåÔAn²ÕXAeÐCQ›NvR÷‚¼ -ð l?Âb€|`/é
j³´›<8§ºŸdÕÛÕ*Ûä9•+2îž„®—E>ZW´_M1‘DR%r$A…P±§ÔSBš(‰“½zêÿ›^ -åí¸Cr…9þÓÀ«´`CÁ†ÏùüÀòiòŽDù)}¼¹®MŽ@Ûu®ªÆÁ¬äŠQ¥bÂÎaÐ`Þ:ÕÇb€Œ£Tr凡ïd²Ø¤š(½6-èöE¤ÛöÒûN½‡ŽA%Œ³>4[ËÒ‰Y—²s
.Õ¹yÝ&IHþ«x]ÕuNÑ^·™;L#× óæ4ÔðkàO‡KÂÛ° -=½nír
嶅å˜ï®èI›Eêkér#œB™2ý-I¾ÙI¬ƒ»ïóì4ïÿcf×Åóóldgv\DéïíD†›N PeòˆÙ #"ɯ¨ŸèäµØ9yÍÛRîîv7=bß½k¬KÁ’u®…uÈc !Óc64möt~D™SzÞÉÿZe‚ºÒ„±cÊ )æSïP<M™PPµÊšR/„ÔÄórî7aÖžb[N·Š=H¨³
»îàÊêœÂÏRÖ/xPHÀHØãeA0Ö1Wþ(Vö‰áŽé]¸cŠÂðœÇiò)Þw/ÞA×î[Y3¤¢a“„ -Ò9~´²I¡²i ÕðÚïÒ.,o¼GÚÕꮼioì±Á"WâMµi“HÙÜG;¥#•ŠôàµQ.ããÙ=ݧ†E¢+r‰Ù…q*?Í}@€áYo »&qÃnè‰×³Ûu<”â7¡ô_î"¤.^’g@±Í2·¸à.îž¿~‰ñð”8»Úš"l_ðVÇ*ë%œsWì=nR]¬þ¬`üL“â2’,=Ìxù-×ÚÝ?ͨ„äQ!íôÏPÍ–àkbí à”[åDí;'¨œß±nËÆ«ØùJíKV
ž€Köù´waUiŠ˜J?fž*‰´|‚}8T±gŸ‚'ã÷e(öS,öõžuAU²r·tRÀz"–ád7‰ví¹‡Á]Ô‰eÐ#¾À¿±±ã¸ã,K‘½CÏÕ«·ˆ:\ -˜Ý/Ð\ÙzPOøiæFÔAçÏ2¢_P÷3c"¥Dz̈ê<6Ýo%O³"¨E[+BŸÛÒ~_{¯Ží®Û‰…®Ïßî`lª<žÎ?4CÌjX]HFßðÙZ6(E -#…F“DLúº†˜aJKýUö„Dµ«¼ŸUìKÈ}1>?]d˜ñ8Æ ’M @Á3 Ð(ú) -±Ë,/¶^'Põ¦tÍRúüæ=%²»~ÛÁïàÐNR¥Øõì -Ò˜Ôt|)ÝÿÓU¼/„>"Öû0¦õ§Àôþ4¦K3šéœe,ÃÓ4¬µwëÂö·XHô0´ÃA$rì2Šj¤•
¼ÊZfw¾3+<1\èwÒš]:ß~~üª;pyçŒ%ŒHŽ]a1Á#¡%¥á“ò?Ä5Þ¶P%Ýu@þ"…õTÚ¿ -a}lG”‰ÐÏl°7<³ÁÐZ5îû¡Ò*Ð1VÉø¦ÿŠ.ñhobéÒU…Ojà#5ˆð—®ÃY»‰}#ÞBehã0¢ÓHB1ô³&øïæÙ?¢ÚýÂ@+Œáÿ±H§ ¾6ÊÂ#Á˜…îþ¦,‚œaú‡ï*¾øÞØr¾u|Ú®×ÕÆÔLÄ)¨@.înûÛ-¿fç þÐÍÔendstream +xÚµZKsÛ8¾ûWè¶R•Å +ìôº©C秄‰”‰“Œã¡Ti¤E,Ü^/óz2Ùã•ÍJOf%>“±Ýl&ÜŒ«
±]ÃÖÛ¢ÉË[bå%=?”ÿq‰v~õ–æßg^àÂ6vÞØ…ßPw‘—–8ÂFTuCϺںåæ~ÄŸŒÅ>.,ù‹KÙݘ06d4néÛÖn¢9
ì€ä‘‘‚ûq ëD‰ñÛꇎ¦2Ö‘4Αó(U*v£V¶®³[[“ÞñõðÙ¸cCª°w¶ ò>/<µÎ6M>ßÙ¦x ÎÒk¢ò…-›üæ!²D̳mmû‹*roPH –ÜsÛ,«MÞdM~ç%Ôvsg78-r{c°§$JElÜžÎA±~q-A?³í-ñÜ~jb»^L·0°—ùí’¤Ÿ"#AõfyêÅaóªlìw¿D^Âû®àÕª²/“À4ßnjzë–UWŇûwh–YÓëøÑJÑvç4F>aøØZ}U··vºœúmË%«{_¡EU}õTþÕ÷fuPHQT÷õÙ +CwæEdÄ؇jË +P%&L;‡½™´úÂËw +ØÈÊ
r;EžL™ÄÝuÒ†‘*l˜X…./àШp˜sðØ~³îç·‹GÊÁy +ð_¿ÿôéâñÀ"ò…ó¤è½˜ï,Qÿ 3À +á}lG”‰ÐÏl°7<³ÁÐZ5îû¡Ò*Ð1VÉø¦ÿŠ.ñhobéÒU…Ojà#5ˆð—®ÃY»‰}#ÞB%´Å0¢ÓHB1ô³&øïæÙ?¢ÚýÂ@+Œ‰‡%˜H§ ¾6ÊÂ#q1+ëïü¦,J#>~(vñ½±å"|èø´]¯«¯¦ÿ˜pRPÀé»ð·w´í·ü‚SøkPÍ#endstream endobj 1698 0 obj << /Type /Page @@ -6981,19 +7009,18 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1705 0 obj << -/Length 2418 +/Length 2414 /Filter /FlateDecode >> stream -xÚ½koÛ8ò{~…?*À™Ÿ’®Ÿ²mÒËb›ö’´8 [ŠÍØBeÉ+ÉI³wûßo†CÉ’-'}"r8œÎ‹34Ÿ„ðÇ'Ú0“ˆd%ŠéëÉluN°öæˆ{œi‹4ícýr}ôâLÆ“„%F˜Éõ]VÌÂ8æ“ëùM`˜`Ç@!^½»8;óáòä8RÁõù»‹ã©ÐapvþÛ)Þ\ž¼}{ry<å±æÁ«œ¼¿>½¤%ãiür~ñš }½<=;½<½xuzüéú×£Óëî,ýóòPâAþ8ºùNæpì_B&“XO`2ž$b²:RZ2¤l!ùÑÕÑ?;‚½U·uL*äŒ-AŠIÁŸ`K,B`ë‡*b±£®S&ŒÃ? ) -Õ ma„×м\¥Y1¢H™0BtÚŸeaA -þ7 óàÏ!µ j8RîÙ–EþH£eº^Û‚Æ-ñÓ8aèM$?FÍb£µ—„í„ÒS<éùÑÏù¦T1“ -£ û±] Ü$LFàóSÉ™Tfœ{A*¢"EŠÉÔÄ0’zQ}¶Ä -)}r¸Ïš‹ÿ ÐUâžXGî lÞÕáWÖîU ‰`*‘i4Mh°ì¢µj1¡Áe¿™òèÓ>þ~™¶GutegTüO–Åa¸ -dGž¨@3±+'V…&Œ¡ –Ð:BškõZ¤ik_º=Z®6Ǽ'áèíõ‡Ò¬ÒGÜ:€VpËdë|ÔwB¨‰•PÏ9o7j×yjâ³õž¬XËÅghq„ÅkÂÈš%ýíxçêLÀ
\ÒDCøîmm«&ëßã½Ô|0f4»?v—‘÷®$Ø„ïß>1œnþÏN}ªF‡G8¤õÀ:8¯âÒ³SFM»”óuÊ€‰iºöÆ•/‚q¡¡;`Yr3;dÑñÞªÞ©®6Hãf¨¹¡=D$‚yjW.1AܶšOg3»nN»þØØÚU7°êúxEÁù¡%-ÐÕƒ#'5í”5wemÜÃI'¤ÌÓ…Bk¾CÙŸûV =#Y¿\eMC¬ºÚ©“ Yž3:i[ȵIšc†?î)y¡ñUIð—ÓO»œJŒ÷#wŽÄ™BùÇJX·Y1¯iغ‚¸‚ô® É0 -yÐD„í á‘p9 @×<ñi9{V¯/®h€—CÝ&Jõ††X§3‹º“q€…¦ujÙv';M!@üœ&·
rMÝTÇq°ñ%·Ô$›4[Z¾K‚Ñ*- -wNé{$IqâºÀj•zêt -ŸzâgÓ½L¨ŽÞO|,aÑô½ j÷ôkÓËsW›õ¶rûxÌ9‡»ÒH/à¦&Ð{m4 ®1¢‡ÿ‚'b"endstream +xÚ½koÛÈñ»…>Ò@µá>I6Ÿ|‰úpq®¶ð-$â(RGRvríý÷Îì,)R¢ì<ŠÂ€¹œÎÌÎ{V|ŸhÃL"’I”(¦C®'³õI8YÂÞ›îq¦-Ò´õÓíÉ‹O–a&·‹˜…qÌ'·ó»À0ÁNB¼zwuqùæýõÙi¤‚ÛËwW§S¡Ãàâò—sZ½¹>{ûöìútÊc̓Wÿ8ûõöüš¶Œ§ñÓåÕk‚$ô8BôúüâüúüêÕùéÇÛŸOÎo»³ôÏËC‰ùãäîc8™Ã±> ™Lb=y„—ñ$“õ‰Ò’i%eÉOnNþÙìíºOÇô§BθШ˜ü ¶Ä"¶~©"‹0Úã:åaÂ8ü’0ãPt6Q¢gÎ5Sq4‰tÂŒÒÙä!Íi–£n^\ˆ>:h%Ò*ˆwHÛê”ÇA¯q”|FÁë«››óWjÙ<m²² +wtêtm w
þœ.]ôÀ[ê 6«²öiÓ‚< '§-'ŠÇöáGðr¹D÷Ç Â5(Ó TÈÕlEVR"ô Õ
äkpÚx”³Ë_‚MpU6¶CmhUØ%¤‡÷q¼)‹Úzªõv¶¢UZ{2ÿzýîíÙ啇¶pÔʦOhI›sÒ= +=ÉGR +åkubÜgż¦eë +rà +Ò»‚$WÀ(<åA/¶gx€t†GÂå€ +wNég$Iqâ¦Àjzêt +£? õn¯cÙU>#ŒG|)ƒb½à^7²ÁN7ÌuŒGÝTLXÄmþmY—«¤soêG.¡8J©‘(P1%åb9{Hóî<W%Ç&
iŒä?ÆzìzMµÕá…mf/*\ÇæŒD3£ºr‚.L‚ˆd÷åì!›[Ê”¾ž(w§ê"
;á5{ß0Ô.· n•a³í2[7Ýã^ÎÛ4מ„‘û!.°‡S†Ç7ZÁÛ®“:ðÑ/‰>6á)?`ê¡ÁN‚ë'žDÊ|gq„ó{Ǻ£û]‡îÖYÜÝØγ0ý™hˆ†ä¼y೪Äëx×'î ×Û5ÝqÐ4ƒëÈߘ˜€f„dARzÚ™PÝe°Ûõ¾jS4®º{çîëš ìµß¥ž‰ýL3 endobj 1704 0 obj << /Type /Page @@ -7043,18 +7070,17 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1714 0 obj << -/Length 1322 +/Length 1320 /Filter /FlateDecode >> stream -xÚ¥X[“›6~÷¯àÑ~whŸ6‰w»™v“nœ¾$„‰@‰Änóã{„À[’±ÙÙY#‰s¾s?Hr,Ž6öߊ߰Xi±ÀÖÞÝ,œŽõDhHõb³øåÚ‹ÄNB7´6ù - -ÄÅaàw$„KJ¡X~œ€;òO´Çíä g㶩ì´f…‘?Èš ËQ霘Κ›š©'4x’›=ëú'xÌvF;ÑîßN¹ ¶Á¬“›:Í&ÜÚ1v¢ŽNŽ•fåþ5òlùIÇZ’‚fv*Ê|BJèÚnöÚèúáô× Hä&Ø’(Çv¨ûÀP}‚—ÿm“Ò%Ñe”[QŠ¤{”Â5+íp«UüÍ,|jApÏîÙ¿Bâµµ=˜l¥ªY¹›æ ß©´ ñì|~Ik‰X6œnYöS„‘þ«iªD}4ÓŠ¨ýOL ÿLèì)¡f`ä…8#Ú\B‡œÖ—ë ´
;)IÅ´Š<<#iÁïp -)«?ÃŽ'a]6™ñ%Zd{ø=gû˜Yz¦È9Õ&?ʧ—G"kŠê|Ö‘ØVfm"Ìc—4…Pr¦â’J]·:æÊ?Œ~9?á»®1ñ¨™ÚPÏgØPÐB7dø&±´k~G*·¢Þ–âœj²ÏŒBŲ™€âo u–»¹ñ®êzC‚žú/oxWÇß»"ƒþNG+%ðaiÔ•‡au_œŒê-] -Ÿ[IBLÍÀ€¦ÔTÃñÖ|)ÏP?'Ÿ)b_Ú÷çKçTÁ÷uÇ:ƒ—7rÚÝ¢¶\oçypdÁž -g%+G5•lpèœ*ox»GG©®‹ -Y -Ž.e¿'ºˆ;O]ÇH+ê\ždp,‚ª„à3BAÁ?b‡¼FDÎ(—–5¯Eû©6D´Lû Äž˜‰Íh©=©‡sÎG¿”ðõE´$|†ÊûWÂYFÔ)æ?VZ©ø±jSØ\ˆÏpxÍè#ô#TQ'±Áºhlg9¢y"iØÑUÝ@æ‘2Ý‹z¸ƒ;‰é<uⶾ¶˜¸¯À§ãå³oG¯Ž|8DZûxñ1:ëa8ì¹IÔ+¥
<8³ûa8¼,²;Bo]3Ó¾]-3ÚÝr¼kªJÔÝñï•£oÚÚÖþxê‡Ó¥Ìÿñ«Þendstream +xÚ¥X[s›8~÷¯àÑ~+®†Ý§´u²élÓÝÔÝ—4ã‘AØš +D‘híÝþø=Bà@–vl2™Iœóû‘caøs¬(°±ûÖ2öí +³BŠÔ>J²£Úħa¹¡Ã¥Õ¡B·Gè-Aɬlè8“ +tðgN8ßÌ0•¸sbæ‰Ès‰KªÌ@dæy2D3(a·Ô<)‘ŒÍ¸–4mß
u^ó…3W¬äÔ,HUo[mŠ–VròµûG´U–Ú4uÖ “ïÁ(µ§¬ñ‘ëûݨ5ý§.òü8héĈ‹ÂÀoI—B±ì88öÒ?Ñ6·O½œAŽÛ¤²Ó˜.ý^ÖmÖˆRçÄxÖÜT$ÏI5¢Á³äXïY‹Ð=Ácf°k1š‰Žp÷vÌ‘
fÜÔj6âÎÐŽ°³léäPiV<“á÷Y—ž—~ܲ$§©ˆ"‘º¶†6º~8ýu¹1¶ƒx‚¿#;Ô} ¯> +ÁËÿ6ÉéëÎ2ÈCA”"É%ðCÍJ3Üh3
îØ>ûWH¼¦¶{“T+vãÜá{!•4œÏ/i2KûÓ
KŠ0Ð?eM”¨ŽfZµÿ‰éáŸé½€='4ÀŒ¼g`A“KèÑêr”¶a'%)™ÖC‘íË0’Š¦PŒð¢°’ð3ìhpR‘Öf“_¢Eº‡ßSp6O™¥gŠœ“QMò£Œqzy$Ò:/ÏgˆÝ²"ma»¤I%„’—TêºÕ)0Uþ `èôËù ßµ‰ïDÅÔ>‡z>Æœæº!ÞĒ¶ù©ÜˆjSˆsª±Ï>1 +%K' +|ú¼|ñíÈÓÕ‘_ÇQä>]|¾õ0|ì¹ñ²SJ[xäÇØë_Ù±™¡vìê h‘ÒöŠãC]–¢j¿ÿ^8ú¡)líŒçN8ÝÈüßÿqf-endstream endobj 1713 0 obj << /Type /Page @@ -7083,14 +7109,14 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1720 0 obj << -/Length 1191 +/Length 1188 /Filter /FlateDecode >> stream -xÚ½X]s›8}÷¯àÑÞißLŸÒ¬“Mg›v]w_²9aˆJ`ÇÛì¯dÉbœà˜dü`$Á¹ç]]] i:ÿ!Ív ã¾æú´udka:е[>v>@ê°y Ôßú8ü~fzš}Çp´é¼†åAÝó6®†4àˆ#èÃÓ/—gçß''#×N/¾\Ž€aëó‹¿Æòé|ròùóÉdg£áéŸ'_§ã‰rÆÇ‹Ë?d/ÿö€NÆgãÉøòt<ºž~Œ§•/u‘n -G~®®u-ânèÐô=[[ò†‘ïZ:°lÚ–inz’Á·Áß`mtýi«~H‡†é-ZFM@O‡ŽÎ¡\Û‡Ži˜k¯FÀÑõa”1†C–¬ -³¡³Œ|ík! -¾6‹PTs.ËÝá.É@Y8€²âŽ+Ëz웄×w$é/ªùä‡ãaGÒ\€ôÎta2Ê(^›À¢çÐ5½ qt,â.C§?<ÅÐéÏgñ6ÞfÆ«-Pã`Ð8õ0u•YîÌûZ–;##%
wr×ö)ÎÚAI¨\š†ksXèZ¦µFýqÖª
Tg€š®aµê¿u±n¼æùæ0gBÛµ²mï³mom×u{TLÚ†ß~Q¢vRÂt¡åYÖál$
ˇ–é;4^'H—ɨR?á>G
í*nÛ£ÇÙÕÌw¡áèÆšIFž
MÞêQ¬wç¥è9`ê^ž¢÷¤kôììëdxò&Éáû~óûúйŒy!+¹î%QƒN<T‡PÄ)›ºïRºÔÀˆ£äXkˆgh´Ý›6—¹-·¸zRGßo/Ô-¾¥xžQ]FË}ºâ$ܬÝCºà«![b•ŒøV‰\ÑóÌåjF¡!^ŸždЛ–ãmkG†ÍMõ®¿ +xÚ½X]s›8}÷¯àÑÞißLŸÒ¬“Mg›îºî¾d3r•ÀŽÛì¯dÉbœà˜dü`IÀ¹ç]]] i:ÿ!Ív ã¾æú´udka:е[þì|€Ô;`ó¨¿õq:øýÌô4úŽáhÓy
˃ºç!m]
hÀGЇ§_.Ï.οMNF®5œ^|¹ÃÖ‡geë|ròùóÉdg£áéŸ'OÇùÈQ/.ÿ#¾üÛ:Ÿ'ãËÓñèzúi0žV¾ÔýEº)ù>¸ºÖµˆ»ýi CÓ÷lmÉ;:D¾ohéÀ²Mh[¦¹I_ÿT€µ§ëO[õC:4LÇhÐ2jz:ttåÚ>tLÃ\x5Ž®£Œ1‚´d¸Á€·KŠÕ#’q&Û+Ìf„Î2òAö¯… +â¤1ßf„â=AÖÁ£¨ÌÅ!¡ÑŽ_Gן±š>¼•1´kl'QX×Cºü>Î +|KãbõZ€ô„ÛèŸ]¼Í7Y|“ÄÙíkUbùüE²¯Ð#H²^‚$ÃͼZ‘ìž")âùª%²fl–Ex7KâMæïú½Äô(L´ì-¨‚0à3÷vÈGÒnQ£ AÆæ›\Ýg*J÷®r…Û¿eEßs'A*bªTоB–‰âžÝwÊ1¨¥ôS@)‰ðî6Î}UVª„“>Œ§ƒò¡2ÆÿîñJðÝ–†¯(WD‡7"ºTºÎÊôÓî®Ë„ãÔ‹é'IðÃsŒ +¾6‹PTs.ËÝá.É@Y8€²âŽ+Ëz웄×w$é/ªùä‡ãaGÒ\€ôÎta2Ê(^›ÀbäÐ5½ qt,â.C§?<ÅÐéÏgñ6ÞfÆ«-Pã`Ð8õ0u•YîÌûZ–;##%
wr׶çVí ¤T®Mõ9,t-ÓZ£þÖ8kÕTg€š®aµê¿u±n¼æùæ0gBÛµ²mï³mom×u{TLÚ†ß~Q¢vRÂt¡åYÖál$
ˇ–é;4^'H—ɨR?á>G
í*nÛ£ÇÙÕÌw¡áèÆšIFž
MÞëQ¬wç¥è9`ê^ž¢÷¤kôììëdxò&Éáû~óûúйŒy!+¹î%QƒN<T‡PÄ)›ºïRºÔÀˆ£äXkˆgh´Ý›6—¹-·¸zRGßo/Ô-¾¥xžQ]FË}ºâ$ܬÝCz²)–ÈøïѸ¾#_Ë\.Ñùw„âõÑIF¼åëæжv4Ø\SïŠð@‰KÒendstream endobj 1719 0 obj << /Type /Page @@ -7107,15 +7133,13 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1725 0 obj << -/Length 1222 +/Length 1209 /Filter /FlateDecode >> stream -xÚµX[sâ6~çWø:#Õ²-_¦OÙ”¤Ùéf·,íeÅÁ±¼’`C/ÿ½’/`Àdm3&cKöùôOçÈGB†©~Èð14íÀ1¼ÀØDØ×ÓxVÏî¨|T/ú[旅ïlß`àZ®1]Ö°|hú>2¦ÑlxûËͧéx26‡.ìšÃw?=Aq¹ýøx÷pÿûäfä9ÃéÃÇÇ¢{2¾OÆ·ã@>FÊÞ*.Ü=ü:.îî'7>ÜLFóéûÁxº÷¥î/2míÈ—Áln‘rûýÀ„vàcã«j˜e¬¶!vl»êIŸ¿íkOsÓ&ý°íCì[^ƒ€ŽU™>œÀ3<@׶ì\ÁÙ¸¦9”aÂ$¦©EGºY?QþSјkGÕh - zŽs òGžçµ~[a<Ë/ÝŠ³…nÌ‹Ö?½L@[µá ¶nª{N5ð åªU¢ ê\ êô£j™6´l/hœ’HÐIÖÚwÕ2h!ŒemàúMi-Aä™n{º9σžé»'4Z††@ÇÜF½7Beò%ÍwT,_¤¬E.¤LÆˈhBvÕú²4
”ÞDh•K®mÏr.(¾*@‘gCÛ šôˆå·3é–ß#éüûzYNÉWr2Ÿç„$‚©èøgÏ*wU[º²OÔºäÁì…–Pê&%kº÷ì2‹j´·µ¹Œœ_ „•¿ùå¿c-O¼8M^Aüºä aÏ@Äwýšjû¿TÀ¤ês~0×w‘Ñ°Å<„L3ç–ç1"’t´?ò`'U Ò}p!Iør
û0¡$ÓgUHUÑ‘¤£þ+J¸|¢Dv -âg &?Žb¹k…R¨¢1oŸc±^™žó,IYt¼_è…¢¯Dnx{(t Jî2Ú‹Ï:Ng¬óÖMW5zÁîðÙ;"Ÿq¶£FŒVGµå²§µäz¡ -9 ˆŒœÕbÈÅ£K5+ ãuÏP±~=HÎDªmptΣ+Ä‹³º¡Mý©D™þp/9[²‘«¾óqŠ•/!}3U®G -#¢Û¸ŠŒÈÕB×=&·XÈ®©
ò/X“,£(?#Õ¢Ñ%ðU¡–C@Ô`)Ø:§§'*•‡O*_^@”ªAÃæC‡¦s0C}xÕpj¥þKnWŸ‘µ_ñ}küeÕ¿lÓ…¾x) Æ#`;®[?2„ôÀ'«hiYƯ’¦ŠžÏ›¬qÝøc„R.TÀUÛȺû£¹s!þœ¦‡Nendstream +xÚµXQs£6~÷¯à1îŒTÐô)—:inz¹«Ïí‹ëñè@NÔ`ÄIr.¾^ÿ{%À6ŽqÎÝx<HBûi÷Û]±r\óCNŒ¡ë“À‰H +SÑJvöcJ5}ü‚g›¤“ð~!£irÿšÕ“ŒÑœç·¦:Ц¥YOþï•ú£ºÀ~ +¨‚ÔbÝ/,ylax4_žè맀´h¢Í1øtˆR¾{¦Ô
]êŸÔ$*öýb èJß½è¶+4C{ïÕráeþõº¯¾^ÛÝ=¦>Žco{sæ5oÎ|7„±G¢RÖ^Œ‡ ®ß¼m„ÆUÓ–·£GÍò”¥ÕÈÇUQñi;
Bgæm˜ÚœYš$l¯ôYø™bendstream endobj 1724 0 obj << /Type /Page @@ -7132,16 +7156,16 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1729 0 obj << -/Length 1123 +/Length 1133 /Filter /FlateDecode >> stream -xÚXKsâ8¾ó+|„ƒ¼~`ƒ+§L–d3µC²3—lŠRlAT+KŽ$ÈÎþ÷•›8)aB*%»þÔ/u·ä;žúó(vã$HœAÒw#Ïœ4ïxÎB}»êøå°ª³¾L;¿]†C'q“8ˆé¼‚5t½áÐw¦Ù]7v·§¼îÅÍøòúêÇä¼7èw§×7ã"¯{yýçÈ<]Mο};Ÿô€?ŒüîÅç·ÓÑÄ|ŠKŒ/×ãß
%1Ã; “Ñåh2_Œz÷Ó¯Ñt§KU_ßµ"O»{ÏÉ”Ú_;ž&ÃÈyQ/žë'Iàä~ºQ?·ÒùÞùkXùºam´Ÿï¹A
ì=7öÔ JÜ8Âïz ö¼î‰8€êgÿšfGBÌr(ÓÇÁBúgf¼×Pb -ª˜qß<ââ9Gs¼ÚÂk¾ tm¦&î”`D¥8E¿Š—â@Ù§)‡V)YfèÓðÄr¾3Îõ²V f¡Gé’üŒ -sdB eTÂTèc
qŽ2° Ërþß^䙧s3ü*ßÔ¯FߌG;ßÂHÉ –Y~-£Ëüqëçpu -+ UÁ¨Ú,–õàaL‚´€3Z ¡]û ÞÛU6ƒ…ÜOKÄׄ-‚Íš?Ã> Y0Žåc^f‰ŒåÓú–ÜN1ÑéÇ7a£)*s« -Õw/8„¨IS˜>"€¨–¯z%HJ¤˜. -!ùrKÔ¨Óû`
ëËl³CÛ$ž)Ý—]ðïLJ3ÀÛŸ4íBÂb_Ä«þ¼ï:%Œ\}Òpù¡þËuN¾jÙßCõU‡?»[” h¸†*eÒêU®\e=p˜7íèÑJ"ši·jÊ÷eQ0.ÍËÏžïû*ëÔ¸!ìÇq7Šß˜a{ÁóÖÿ9{endstream +xÚXQsâ6~çWøäZ6vðä‰KÉ57=råh_Ò£Ø4•%Ÿ$¤×ÿ^ b'1&d2¶×Ö§ÝÕî·+AÇÓÐ #7ŠýعˆûnèÁÐI²Žç,ô»ÏX|öòWŸ¦_®ƒ»qäGÎt^¸Þ` +èdt=šŒÆW£ÞýôKg4=ØR¶z1äGçîÞsRmö—Žçñ tõƒçÂ8ö¬Ó7ìÁ^B;ß; +ü`çÀ»ˆ<¯‹Ò”(¢`.x”,±}µÅrÆÅŒqûxi/÷Æt=?€ÐÃÐ/ƒ ÄR‘â5I +©åŒ¡7ÉÐÆj$y*†™»™Ìqò +¬¢¨d 2”ç8ÚH¥ÄòÈ°ÚÌ UX +J2¢šöiÚMºúhuA®U×-gi«E±Ñ6@O‘BçªÃ6¶œœm—6Š‹³B”ž«È#ÑÛ¤ÇVCu±®k.›Wü\™ Š[Í®wýb÷ endobj 1728 0 obj << /Type /Page @@ -7158,20 +7182,21 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1733 0 obj << -/Length 2593 +/Length 2663 /Filter /FlateDecode >> stream -xÚ¥ïsÛ¶î{þ -ß¾T¹«X’%rý”dI_v[º¥Ùö¡ëíd[®u•%W’“fïö¿?€ eÉQ’öír ‚ -…ʺ.à_~¸¹ˆ!%"yz÷žjbûQDŠ‹biÆûŸ”e}‡º×I°íÛ2§Ñm‘û «`ø¶ë¬wMN†Ø¢úèÑ9,¸Ìºlžµèh)¬9':Æ3»Aj-g1õ]5ddÜ&1cG÷ÜZÐï31:˜4Á|׺XÑwp@ù¸În²[; Í6ª·9]¼õˆØÖe±p;®ê†€ª§'µu¹³¾:)¾q:%hä•ï`},<“ä©È*Â
€øÌaÑ -I0°,Š¼BÝØ›uïoH`GaOùŒÀzn†éX?Î!&³øä½9pv¥YÄU<ŠP°¯1_#HIYÙք€˜v›/ -<„Û0QTSrÄ‚¥±ôQÍzóC¤bB¾SH¥‘ÿݺ°—ö^X_¶›vôõ7M±Ì["èüu1\_©“ñ}pY顸Ò@žÔ_©µ”ib¨5²P¨S¦Rn1hz”w¡6ò\¦#ER&jßHɯ©Ý$3ZëéÊ-솎6ŽEK$“Pž -%´7w‚ 㽕÷®îëã„[úÛ&\ -¹é3e»Ae¶¬«|œQ¬¬îieò:©²€‰ÿŸà—9a2úôEŸ¹¼íÉyà…ΚyÑ5Yã$Eçu!®"ämyRÕ¶ö†Š¥OĨ,™ìš´5¹tÕŒ½]$Ub€iws*ŠFµSÖd²¯'††&C†4ë½0.¼0ÇYq[‚»zʔijËl3’*\Z4R}€Ý/]¢UpQ»éüK7ãHŒ…Ȫ_ß‹ Ãl8èÖ4rCH -ñ¢¥ bâî—(vM‹ö54XÐOŒÍîüØGǽÿO§¿¸…t™æÐ}÷µ”}}øîä;þk7ôêÙáÕ+"¡š¡ýzÛY PøWëy çƒÎâÀmsõ`·á›Ç¡/$>}Jbù¬Ä
ªÜa;÷tò¢}F摯xͽž<†˜<†<<ÆÙ¿;Æ·)^|µâ.A8é?¿+ø®Î€|YGÐ0ÐÁ0£Oè8t†#õ ñ é[A3èü >¯—}Þ¥ÈtYk:Š“#I¨ý€3Û2òE7¥×b|Œ*J"¥ƒÅ®¡sàkQ¤öj¥m-|ž -=w$ô’ôl¸?ÔM ÊU¥»Æ§66è`íc#Üëžqm. -$ÚËŽ°¶¡Ò"È–›¢?f¹¥QðÂ͸±E?š%ý¨æƒÍªv·/qùƒ6ó+üm‘»fªp=Ò„êzê¥k—QS®)´·„V·Í±vÓm˜kû§—Ã^zêÄH1üÙoâu÷…ê¿þuqÿÓ+”û‘Ö<ÓGøÛ…„\ç„B…ªü&N’áÌ°4üEÒ+ûó/–þÀïðí¦qÊûýXhÁ-X÷ê¡ÿQó¡"þ…³ÐÓendstream +xÚ½YQoÜ8~ϯìK`J²e[Û§¤›ô²¸mïÒìÞC[,<cMǨǞڞ¤Ù»ûïGŠ’Çž8i{Ä4MQE‘5bÁáO,2Åx¤ãEªc¦¸P‹Õö„/>·W'ÂÉ„^(Kßœ<¿Œ²…f:‘Éâf=Ò•1žebqS¼^þåìo7ק¡T<HØi¨œ_½þ™8š/ß¼¾¼zõÛõÙi7Wo^ûúâòâúâõË‹ÓPdJÀxé4<2àòê¯D½º>ûõ׳ëÓ7¿œ\Ük¯Wðòùäݾ(`Ù¿œpéL-îà…3¡µ\lOb1G‘çT'oOþ>(}µCçü§¢Œ©L¦3ŒåÈBK–DJ/R¥‘õ`ý¥h¶yYŸ† çÁ¿èQ7EÞç֪η†Hðž+AïÐ
`‡fiª²E(ÓJI«þ‰¼cŒ911-x<û·£GkVû¶+oMØÔÕ=ñîM÷GÓþQ7ã9½ +§‹bÂ)Ùæ_Â]S•«û°ï+·®ýviÚ±>µÃ]¶&ÿu×™ÕÓÏÞ–uXwaÑôÝc³†³†¿˜ˆŸ¢#?½ÀÏ/¥Ö;vÄ)“‘HƱH ¨9hkv}ÙÔ…íÛ>ïÍÖÔ=½þlÞs.ë%ˆ“׿uùGãæL%!ÈELöÜlÌ`Ð(Ò2¦µN@e¼•E Äa¤œ\72.Š‚Î ÿÚïèù±j–yEôaYðÒ7øŒƒ¥q:Sµ¼§'¦FäͦtÃŽ&ÜæN8ßíLÞºyl +Êû®àŸ9ž\Äo‘<=û 53ý$ñÆŠE±ÔÓùϪª¹CßgI°ï”»ÊÐÛmiüë`xv›|’Œ‚¹eýÑ¢uXs÷2ï0ÐRsA{èµÉí©Ý9Ëiîê±"»›Ø“ãÍtÚAZÐçÛb0©ƒå¾'v¹¦çhðæä&¿uÌ~ãˆÎ¤š¡ãƒ§”ω^7-õ O.êšjocu&ES~ã´JðØ+žÁæT¸&ÉSo‰ÕÄm +v•±ˆ«x’¡`^)¿FP’òªkˆ… +¹Ÿ˜>@‰Rgu?¿¶;ƒ›#yå¼S¸o9ðkÝt” cký›Úf,ÜïíÖÂ!Í`=N›†Ïqå†W¬Ü<ª5pîš}U¹4Ó±9B„$Â×ίN1ªMÃŒl®„Ü•ªÝ™Mm¦ÅÆÈú~TVf“Š¡ +èø¿I~¹3&§Ç +‡–-‘„“à¡K2\6î³ù’à Â<#Yã3á5¿ôzs¯~‘@žýHÏs÷´h‰—Çê®ì˜£/çó¹ƒÎŠËÇÉ1r‡d¨cªôá‘81¾Úˆ$NŽ¡
h·1{°Â¥ÃÌ.ï¹â6ƒ‚Ì9^œ<ëè)q‰Ë%H4»¡A
ôÓmwqì³ã!þ¢UL¯üÕà
®>`){ûðÃÙDüstÃrÔë>N"„)‘:Œ·¥¿þ°‘g¯†Îâh_cãk1wçqê#‹ÏŸ²X|Õâ]»ß9{Ö=j³|+Þs/¾câx/ÿŸŽ—O:^L/›ÆáÎÆÏï§J¾«Ó`_Þ5NtðšÓcHt:ÃΉúVPûVP u~€Ïk§åPw)s£\Þ˜žòäÄj?`ÆܶLk³êç\âCÌQB $RY°Ú·´¼-Š”Æ^²…¯ DŸ÷å +w +íUO\ÛPe"È‹mYCœ@3ÚÒ(x澸 +±Ã8Z–&ýþž>æƒÉên€¸üA›ù
ñ¶2®™*]4ãú£žºpí2zÊ5…ö”Ðè®=Í‚ý|æÄáê帗žû¡4RÝœ¹]çPýŸD=üÂp?Ê29Máoj3 +ªRØXÍ£ñoÊL³ŒH„õ_ ~µoñâ¦užûýTè¿[Ì+ö×Ò#'?Ü>ô endobj 1732 0 obj << /Type /Page @@ -7184,32 +7209,34 @@ endobj /D [1732 0 R /XYZ 85.0394 794.5015 null] >> endobj 470 0 obj << -/D [1732 0 R /XYZ 85.0394 680.1792 null] +/D [1732 0 R /XYZ 85.0394 648.6893 null] >> endobj 1735 0 obj << -/D [1732 0 R /XYZ 85.0394 647.2514 null] +/D [1732 0 R /XYZ 85.0394 618.5026 null] >> endobj 1731 0 obj << /Font << /F38 1082 0 R /F42 1288 0 R /F21 994 0 R /F22 997 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1738 0 obj << -/Length 3761 +/Length 3756 /Filter /FlateDecode >> stream -xÚ¥]sã¶ñÝ¿Bo¡§'@$0}ºßÅIã¤gµN’™RmqN"‘:Ÿû뻋H¢ä¤±.Àb±ß€˜qø3•²ÔÄf–Éj¶Ú]ñÙ#ô}¼gî‘æ!ÖÛÅÕ뉞fÒ8-‚¹4ãZ‹Ùbýs”²˜]Ã<z÷ã݇Ûÿøôæ:“ÑâöÇ»ëy¬xôáöo7ÔúøéÍ?¼ùt=Z‰èÝ·o~ZÜ|¢®ÔÍñööî=Aýœ™ôÓ͇›O7wïn®]|wu³èöîWð7òÛÕÏ¿òÙ¶ýÝg‰Ñjöœ câÙîJª„)™$²½º¿ú{7aÐk‡NñO*ÍT,ÓÙ<‘LÃúÓ\,2eXšÄIÇåXLqÙc!—×å¡Xµõáy¼_“±Tj=ç<YÙ#M¬+C/‡K/6Åõ<‰UôT>—Õ#} -P$8ÜþÒ>±5¹ÏDÇÑí!äSxƒÉªº¥F³/V%î¦X¿ˆætšØÕIÓä\ `ÈËφ -/®î‘&V«8fJ©d¸ü¿6VµöÅ”nG‹›hýêQ®¨ó¸_çÖì@ÛÚ,@hŠÕ‘Nƒàÿ«¢yE¶ˆ€ãÐÓ¦è†Á4êþ¸ÜúõòjíŽãéÑIÊ/–T÷w÷÷7ï¨
̤FgðÃD¬I öP+R±,*¨o
ëÁ‘Wµ^Qzz]„l|ˆÓ+§æÓAra-Ó]=–>¯C93¡¼`âöÎ tc5C λrÃ<¢ã§´òìÆ5*0”€ -âÊŠPÚmÛ{d,6ðŒþŠM¹UŒ&ŠµˆBl-ÄIgÝû~¨
ÞÁMƒÞy€†‹õ³:úêí¶~²J„S?÷c&\Sñµ-*4Sò_ûób»3¦=QhmUnNYOšÄA/[Ïë¼õì°:›E×>¶˜<”€hèâÚÖéâ’¼ -ÄÕüÝ`õyt0WGãÖÁ0&-Úb*7†Å™;¾Ý¶4‚¢d˜´~M RFíêا @BS˜üðì€VÝɧC\'#ÆÆR±8IThÆ:–Žèžƒ%ŒÅ8p³ÉÀã!ß¡M†ôö¶"ôuQPaŒsð;T¾±]•‚Äï¡H åÍD@B¶_GUQ¬‹5*'ØϲuЇcµÂƒË·eû0ÑòXbkAUëhöŠ4Á8™±©ðÚÍÙþ•©)óR…$Ä:¯–
81óxlš|_¢}móå‰jÈ„q¡_ ¡Ãš "–¿!”Ù‰4úþÓ[E-GŒmw>ÚV:á—\È|T›Fïïç‹ûÛ®ßæ*èô×6 ·£]TQuyXS´4'&„ì¡C„pIrˆK‡è8·rÞ22GK
I¦
™¸¬
¦æ6ÞŸƒtS£•>œ‡¬HÞYi ->=ØF¦Æ(°å&ûKKÇEF°4X.q@®÷z‚×T6HºLe€ë]^NÕu³Œe\ûº&.lw“F‹kG5Qf]6¼.½šˆ>LÌTû™!¹B£3”ï³%`¡”ñÓ쎓¿|ÛÔÔZvÑ‚ë²+§+÷–{îaNK¾(œÄ¹”ÿ 8kôkµ–ée£b7úVǾžGÃ"¨dšËï°&VÖ}Ë´-OŠ‘›#Á¶óý<uQm\|¬|øŒÑ¢»}ÁŒã•¡Ë&@³ÉûL¾]Ö Ç¢*0¢]Ó{§â•Äà’÷‚±øþæßS5³Œ‰X÷Vçw5]Ü«ÂiúQÑ~µ-mùR€þ¾ÆzE#Ge‚IÅÍƳÔ_,_W›¼z´“C¸åÖÛåÏÔ¨´\°rŠ._Þd t]4eÇU‹ocia\S˜´GF«íª¯±6D0yĢݻ[
Á9Sq¦†¶ŽNÙdn
lÙC6Yß58d£ÉQ`‡«,[Y˜¨>¦Š i|æâÏ"åN›Jœ?!ùi§ªÀg©•çó_&Ö€–I²Ð<µA£çõ<Sƒ -IQÆY¢…™âRâO“JË¥$í»\J2Ç¥ÄW7°u†K°"ïLìâ -¼HB¶lŠ¯ÔX—˜¦MÕ…$´ºÈ!ÐóÿqH¥Æ&¯H¼»£L°®ÕЈÊÎdÑX:càW'݃åáÄâ1ƒhÀ錄Î0î:×OuAJùMC oÒÏ—€ -DuA]nÀ·?núÄË€âk 1Ýq€A;.û©L´-?»$ד7¬‡9—Zr0C"ßy3\ëßóØ fFãÍÂÔSƒ¹ŸpÎxjó
ŒN3Ù¯ëÏ»/ãŽc -8#,‘ó—æÌ0s1(¾½þå&z®ƒ»î¢Pn|(†ð>È°=.‚Ž/ù¡ôQ5÷¡w§Ž—kzýŠîŠ!y=VÛ¢qc»U½!¥|^œŽnüGá©ýcÑB,ÀÕc$t1Z±ÎGV¯«w[3QÎ{aíkbñø´œ7Z}Al½§C›4Ï¿-¶ÛU&ï…*tZ:HëGwÙŠq·" -“¤,Ápü Ò)
Ã{ Á’Df"þ¥O¯-øeKXáC îÒ¶ŠÀÁï8”‡;£—MPþèÆõ»uóÔn1÷ê¢ðÖ= ºuë£ÐZw†Ágš0¼tÿS’ÌÐ2 -2sG2•eit [g^ƒzà“à‰câ3OúŸ~yÜ?ËÆ{AÏ\DhBºƒWÔ8:ÿ)öå^Åoðö{í/Eîû}}pü§õ2ÅïÆé…h"Ó4RúTc8È°é”ÿŸš6endstream +xÚ¥ksã¶ñ»…¿…žžpx’ÀôÓåâ»8i.íYm§“d¦´D[œ“HE¤Îçþúîb¾DÙyØ.Àb±o@\rø—&e©“î2sš.ÌåjwÁ/ ïý…8‹ˆ´b}½¼xýNÙKÇ\*ÓËåý`.˸µâr¹þ)I™dW0OÞþøáÝÍû~|s•édyó㇫…4<ywó·kj½ÿøæ‡Þ|¼ZkDòöÛ7_^¤®4Ìñõ͇oâèç̤¯ß]¼þðöúê—åw×Ën/Ãý +®p#¿^üô¿\ö¿»àL9k.áƒ3᜼Ü]h£˜ÑJEÈöâöâÝ„ƒ^?tŽÚXf¤N“’ÙÌÎ3Y°LÀÉ´`©T=“¥˜crÄB&¯ËC±jëÃÓt».c©¶ör8çÉÊife9XYpÉRÅåxé妸Z(i’Çúð©¬èº6¢®D‚tyh}O¿mÓ‡ÏÅÏWéäMP«ºZäwM½=¶wŸ·›*ß
~꤬&sêêgÎåÃñ·ez²-+—)W,sÆx>–Û- jÜá<Z%mþ©¨”7ôK{Ù¼Ÿ#RM=í¦8ýŽq»B¿%'ƒ£¸ÏÛ–&ØÖ«H&tÝ×jìꦥ–g
0/tÔÇv]´©&~^°†{|ýNŒÇJ¿UdÞšŽ¡ŽÎ„´VÂÄ„9èîiŸØšÝ§²2¹¹'„|o4YU·ÔhöŪÄÝëW +V`0‹h. ‘RøþC¾úDÍÀ úòê…Íq&Ÿ‘5FFåë' +‚CÀñŠ¾‚‡Vü%ZÌP«Í¼VG=FþØ̯îžHŒBDÆA€|À1#fJ£WZD§¨@)7ä<kêöô›‚ +íãœI†Ì×Êx^lwƶ+ƒæÖ#ÍYó ¹”©zÁ|°ž1Ÿ«Ó¹ÅôíS“ÉÁE ˆžž]»Ã:]\ó‘[Úþ$—öªsé`Ý:†£E[ÌÅßÎ1 9yàÛMK#(@†)@ë×"e´¡€}– +†MŠ(¨0:ø=T¾©]Õ‚Äo¡È€ :ÍÄ€Z…Œ¿Mª¢XkTN°Ÿe ÷Çj…—oËöi8À%wÇ“WªÚ@sT¤…ãäzSÑgœäT†‰þ•ÐÚ2HZÄó*1Ä:¯–81ïxhš|_¢}mó»ÕЊqa_ ¡Ãš!BNËÁߘ +JêDš|ÿñkC@Œow>Ú^:á—\ÈbX›&ïooËÛ›÷¡ß'+èõ
·>ÿö£CXÂê4‰°¦hiNÌ<ÙC‡ñ’明1pn¼1¤eŽ–òK/Z…„
få>àÐ ƒtSO •>‚‡¼HÞYi +¦ràðÓì…lxˆu^0;¬©`®k§Âi@÷6ÏÓÑaÍ2ÎTBð‰æˆ/œÂqÊu½êã×ôÌF‡ã[ìb³íÇSTåÛ!Åv~Ä-W>EÅ&Ø¢E~=M[„lØr–eàSF‚è·‰´„1½6 8Xº¶^Õ[P é\ò¶O_·ap]QË&߇;Ê€ë†úýhõêƒÈe@É?çå6¿Û +¼
hrS–͈_Œ¾½ìº)Ð1’f×å]À®]Çf®|ÖŽ®~=–]®¡‘(š÷ø0ß•"½m~Æ糖ôÌÄÂBHªú°
}z¹ÆøºhW¯?îë-íÔÓq¯„±&IS=¬‹ÂWg!S=ˆª5íY¥*D³:©‡r½.ÂÀcCÙ~K4ؘõNy‚&ÂF¶ë`É>ÄýƒTE+|F°L]¨P`ëM4ög)uà¢F°4X®q@²÷z†×T7P]*2ÀÖõ./çJºYÆ2ncIö»I“å•“IM”yƒ¨K¯f¢'™Q2Î4ðš4:cù>Ke\œfwl‚üåÛ¦¦Ö]-„._± +º‚ðh¹WCÃ=NjÉ
' îåÿDÎ}®Y&|Áè°ž1ú«c_Ï£q T3Ëõ‹wX3«?ŽeÖL–'EƒÈ-àÛù~žº¨Ö>È6!>61|Æh1\¼`Ƈq†ÉÐe Ùä}¦ß!ë„ÖCQÑ®i„?ˆSñR\’ãQ0–ß_ÿg®h–1!mo5pþPÔÅ„2œE¡ŸÔëWÛÒ×/èßÀ×xïchä„¢L0m¸{ Çx–Æ;…âËj“WÞbr·Âz»ü‰õ–ë +—öÈhµCùU:á#A“G,Ø}¸Ðœ3#³Ù
—…5°åÙe}×è%G¡²à|ea¦ü˜&´‹™K<‹”m¾/qFü„䧫z +7-\ûä1ž&•žK*í»F\RYà’ŠÕ
lá¬È;{€¸ï-›â5Öå¦isu!
mgžåh†ûc2©óÉ+®'Öµº1Ù™,Kgüê$ …=g—¢¸“þ>Ã…ûŒX?µ})åW
¢IC¼X‚(ÕAt»ßñ¸éoŠ/%Ä@tÉíx×Oå’mù)$¹‘¼Ñ†¢KZr0C"ß+5‘¿é™dÎâÕÂÜ#ƒEœp1œñÔæ;fº_7žw_ÇÆpFX#ç/Ž‚™Ã( øþæ—»ä©>bB¹‹¡Âû Ã÷„@ +:>ç‡2FÕ<†<œ:Þ®èõ+º&†äõXm‹&ŒíV†”2ˬL'—ý¿!ŒˆÔþ¾hArŸR/”ó†X磅«×ÕM¸®™)ç½°v‡5³¸<-çMV_R +xtÊ„ÿðð–Yendstream endobj 1737 0 obj << /Type /Page @@ -7226,26 +7253,23 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1742 0 obj << -/Length 3744 +/Length 3740 /Filter /FlateDecode >> stream -xÚ½ZÝsÛ¸÷_á·“g"ANŸ|‰“úzqÒØ×içî(‘¶9'‘:’²ãþõÝÅø!¹3i2 ÁÅX,~Ø/ˆŸ3øËÏS1™Åç:‹#Ÿ:_oÏØù#ô}:ã–g阖!×÷g—ezžEY"’óû‡`¬4biÊÏï‹_ïÿzõõþúÛÅR(¶H¢‹¥JØâÇ›ÛDÉèñþËíÇ›O¿|»ºÐñâþæË-‘¿]¼þv}ûþúbÉSÅá{aG8òÁÇ›Ÿ¯©õéÛÕçÏWß.~¿ÿéìúÞ¯%\/gòçÙ¯¿³ó–ýÓ‹d–ªóxaÏ2q¾=‹•ŒT,¥£lÎîÎþîzͧsú‹U)'çKGicÌj™ELÖ–ZeQ"…ôZ|NËŽµ¼«ŠåoŒ‰M9^0çi$d¬ÏÃQ's{®™ÉE092<N~ÿT^,¥Ô‹]Þ?ÕùÖ¼¥‹æ¨½ë¶šNOìÊö¹l©ýÒV}ÙCÕwvÐö‚Ã`ë²³„›–£F,h±¸±ÕMoÇÜ•ë -g+‹w@¸øéŠò!ßo,_Õ¡¶.?Æác–E2ÍP5¸¸Kd-"JTfTeJ Óùœ·—í¾¾ÄEô[A£'u§qlGÉ“$³šƒÆW³(Í:bÕmß•µV¯ÔcuòØæ[ËÓ?å=õ½äuoi
Qº²¶ßwÕco:ßm–æE,ÍhL¤jÑ^¤‹}]Wõ#¾ÇÚ`ì±[–óxq‡zxEVÒ@ˆ[žÄ‘VJZ
ˆ5ƒÕM]Îè-á‘Jxj?*ª._m"ø‰1F!‡ÏœèF«ø~˜(^ü&„vSN{_ªÍ†¨«’Ô#DI®ýΓYC¨öe
¬™Xä¨_j¼bƒ/ÊïUדʀŒK3
;:´V–b6²Ü6Ï€P¢T‹Û¦·}fO§Š*Žb-…ÕÉÅ %L8m#”Œ€ôø£|}iÌÔæ€0Ag'à à^[\#éílä.´”·$+læ…'
²^oƒgÓ]Ó³hö«ýäÏ=( ‹&†ÛZÇDgQŠ³ž4¡!×qê¹pm¹Þ·ìÙ1C«H*ञkF„=Pà/äHc„R!Å7ƒjxö|á8<f•;ÊHÓ.öÛ]7êÿs#”mUúŽ¼§V~Ø4µ -®2‘ÚËtØ0nËä
`\'€í¸pÆ®Ï{´Fëî(²EÄlÜI<׌ýÄI”¥‰ -AžŽÅaŒ -†g<ƒð -Øpµv>Š±ŸaÛÑ÷Ô:HŽæ=<‚3‡O²(Ë°”)X¢™ã',
Â4´4ô®÷]gÈqéS1 Ë2æ_Qw]¹^nšæ¼CÌx%))5úÀFwcŒ6ƒÉá Ïù¦*rs fFD¦.wÂXЈ\”}^m:ãcë¹óÇbâ¹3"ôÇüˆD´@†ýßäke¿¾DLGf›§âki–&o¹jÈå!†ãyú¼\'Λã2®º\·MÓ=o2‹D¡÷I<׌C÷½q’E ógáy‹)™G*mü‰‰> - ¹Hx3$wa‡ -ï&1ã(·%üàP‘…Ø“Àêëž›fÏ!TʈeÌA§Ù¹ðOJ¥BÉ¡)·‘[l‡å¦šr
ç«fß;íÒ‹‡2ï÷ôYãG
*ß±NÞÈÈC®Õqª±dc<% ŒÈI<׌<%)ÄG:Š@n>“dÝ°a}}F 2R¨¬ -
Ò64ÈÉ™J$ySé³ya[·™IW\”cãr|ì:¸ÍLÚr¥©ÕÆ2KƒJ1áMFñ1¦ÈxÔ1JЀJÞð‹Óñ]tL£MÌ7S—fpŠOM³ce:ãƒéÍÆ2 Íc®ìiK5xÜ<$›ÍC‚Ù<¤ôîÚ<ìó›‡ä`óRÆÿ¸Àj0ÄúÄ -aÿë†fJwæðåi›¯—ÝSÎaGc¥èÝá“ב“Vجwt‡ã>*yGw2Ž"Ó1âMsFS϶Px$nØO
úp—U¼ožD¨!+j°-hâG«$Kåð -¸NàËq™’¦í§®OF©Ó{rVÏ53íÐå¥Q -v8¯-Õ¥‹_>|½¼ÿ•^Œ4ÐÒ‹z¿]Q5Î)“¥A‰Óis‰¬Ð - \CÀás×VÛ¼6–\—eáF5ˆÃlÐÝõ{kZÁÆi6„G³ÃüÀܽ³yÌÞd=`ÍóŽž÷»þµà8Õ]nÂ[ãm]p ]†%Õš^|vÁ˜-×Ó=ri™ÿÝÔx]¶?³‡ÊpîìÀ†íðrÎÀãÜQYȦpXù6`Àj©IŒá®Èg"6óþ@ªÜÒ›Oñ¤Mñbkuò‚Þ´~N1[“7ÓWV÷Ì8ñ,Pq8ÅŸûª%6šgfÉökØؼ²-[ûЮðü -ÍÒ¸£H]Å‹@àJbt%’áÏI’d|=Zõ•3¼ë¦Æ]zÜ·Aæ²ir{ýá®Nþ„aÎÕöûµæÕÖ9ºÞ¤À9µ ’ípÃwûUº7w;æRÕ0á¤Ç¯Þy<ËÞˆtB®ãNÀs™H§-ʶ-‹å#"qâ^ʤ§ç÷\3Œ+
)Xÿ¡æ줓Jtæd*›ÊÞ -þX0Õý Äþä(å:R8bðƒ ÄÐõH§ˆæ²"Yò¢¨\Œ
§JêQèƒ0rèêÂÛ+wý–»ßZ”ík€n–´UÏûc%Íaââ
{XFéÇ0È@Ú2—}ŠÝ~¹½Fõ‡™€h.Õú
˜\'`æ¸Ì™ošNü¦|4çlÙ`ˆ7©å@Š¥!%;)…çšcx7!ÁŒd|(ÇýF
mM×@¦@“‚9Û^[0¬M=…èÆ禸 CÁ
±²ƒÜÿü¡#vTqß숼)ŸËý¼Á˜¶³Þ3uY|áêñ„'-£„ËžŒ‘¹ÃÔ.„[ù}½Ùv¿ñÌDÎ -Ø:ÆiÀw”þ# +xÚ½ksÛ¸ñ»…¿<Áx|L?ù'õõ⤱¯ÓÎÝ} DÚæœDêHÊŽû뻋 ð!¹3i2‰ÀÅXì{çþŠóT3®²è<É"¦¹Ðçëí?„¹OgÂâ,Ò2Äúñþìò£JÏ3–Å2>¿ÖJOSq~_üºxÿ׫¯÷×ß.–RóEÌ.–:æ‹on?$£Ÿ÷_n?Þ|úåÛÕE-îo¾ÜøÛõÇëo×·ï¯/–"ÕÞ—v…#/|¼ùùšFŸ¾]}þ|õíâ÷ûŸÎ®ïýYÂó +®ð žýú;?/àØ?q¦²TŸ¿Àg"Ëäùö,ÒŠéH)ÙœÝýÝ/ÌšWçøé”iÅçK@VJdó\æŒkàÚ2‰q{.K1Çe‡…\ÞUÅò7Îå¦Xˆ”I%ç᪓½=ÖÌæ2Ø\HŤˆ‡›ß?•K¥’Å.ïŸê|kžÒEó@ÐÞM[ͤveû\¶4~i«¾ì¡ê;»h{!`±uÙYÀÍ‹Q£.$rqc7ª›Þ®¹+×îVï +<Ö !^¨ ÆHGŠOF«á·¿‡áuV;;ÐÞ Í¸ØowÝhþÏ=¬P¶Ué'òžFùAhz| Ǻ߼ˆž-ƒôòêO¾Ž’¦C}¨ê®7žcÝ;a£;"aÓog_ªþiÎ_ð„‰(ά·u±&|/¨9w¡™NTàe•à&>”pmOVû||°Ú;Be‰Ì¹$rú§hJ3Ç*ñ4SlÉ™Öéz}@:¡Ö ·ëú¼GW´îŽªµdœƒÔNíXÅ,Kc= €bÂì +vòî©w€:{h‚3Ƨ8˲Àù/UÊAÒŒù€å€§A5
=
¤»ë}×Y
xô)†w!¯¨»®\/7MóGÞ!fâøf N^°yÝ8ø¢Ïàj¸ès¾©ŠÜÄ̪’ANêª&Ì
ÉEÙçÕ¦3‘8²‘X¸H,'‘X8÷ ÃH,ŽxATp¨ÿ›Jì×—¨Ó̈yJ~’°„§ñ[AZã&’7ì-À:aoËÄérÝ6MÔÞTÆdI÷I<ÖÃð1Åé²·(í-¢2¡$ +—lŒ#}’±$‘Žÿ¤QË]³©ÖsâÂ͇I¬8Ê-T ?8ÈBÝS€ê;ž›fÏi¨RŒgÜ©N³séZJÆR©Õ¤¤ »6šjª5|¶ž¯š}ï´+/ʼßÓkTLu¨h´záX'ªÃ9TãÉÆú7bp"' ðX3ô)N!?Jâ! æ3EÞ
6ÖgT #„ª0 nÀ‚ «Dw•n1[F‘
›™rmE5v1®ÆÇ©CØÌ”mTš.mdTfIÊ S,xã¡.˜"âÑÀ¨ *Mù†C¬ãrôX#9æ›ÇiT"30ä“û{¬†2fY’‰!FŒ‘€:hóØ@@{ÚREˆ`#B"¤woq΋ÁSÎÿ¸Àn0dü„ +Éÿû†fKgyøð´Í×Ëî) ×Hkz¶©x¬S£LPAdïèǽ,uüŽîdD¥c-$:2î\¡ ™m¡ñH’Òá<Å5˜?(®â]xó$ƒt
Q)]Áh
È;®c<†ä&z£!bÐ1‡enHš¶Ÿ@ÅR
øä®kfÛaàKY +nv¸¯mØ¥‹_>|½¼ÿ•50Jõ~»¢žœc&OƒFÕæP)m•Õ³é#ˆ¤h^ýp{G¯Ú"¼oÖÍÆîÕæC®ÑϤ‘ï? ðñHÑ‚t<±
¦tA Õ +iãœæ¶3o¶¯,!î7w$à¶&zð€Åáî«–\ØhŸÁ‘Ehà 6¯ìÈv@×þ +>ÀñSÞÑì +ïïjùý)7ýKôh ±É5$“VEânøFÀ3¡†³]q<Âo[lyò¹$»+ LŠ\`¥G+4TYÑèÞYûÏH®a?È}çPB„èß„®ÚaPÓ¥:ŒŒÿ|©ºùÀ3Æ·æct”MüθˆXÑ°*¡~Tþ‡¹>…aiÂÑŠ®ïEJàct1’áç$q<¾úÊ9ÞuS£”÷mP¿lšÜ^‚¸”C<áXyµý~g½yµuA .†÷)`§¶L²nùn¿ê€÷æ†Ç\ª$ÜôøÕ»ˆ%ãØt2„Xǃ€Ç2™N[>”m[ËGÔÄIàؤLOïï±f÷ÒT‰!ÆvÒI?:s™ªÅ¦²w€Ö¿îJ¡†_‚I +>˜ÀEl2 +î|{m•amº*717E! 7ÀÊ.rÿó‡ŽÐ‘Å}³#ð¦|.7öõsÚÎFÏÔUQð†ëÊ“>%ŠÅb\³™?N"s§S»PÝÊïë;°òF›a>Bdˆ%Ý5|¸£& +Y¨3ОŒ«ðg–±ôàÿ®¿ÊIZ¶s• ¶\0/-[ìÉ̵'µ·“Êd†ÿ\äV:endstream endobj 1741 0 obj << /Type /Page @@ -7258,14 +7282,14 @@ endobj 1744 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [250.9056 610.8776 314.5963 620.2872] +/Rect [250.9056 595.4921 314.5963 604.9017] /Subtype /Link /A << /S /GoTo /D (statsfile) >> >> endobj 1745 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9497 452.5825 178.334 464.6422] +/Rect [108.9497 441.8126 178.334 453.8723] /Subtype /Link /A << /S /GoTo /D (dynamic_update_policies) >> >> endobj @@ -7277,7 +7301,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1749 0 obj << -/Length 3672 +/Length 3671 /Filter /FlateDecode >> stream @@ -7294,7 +7318,7 @@ fH¬’«øm;²Bk6€måïlX[;—Ú%o£A%¡!}ãSÝ”õR .q¯ âZ“VÙ§F€?\3x¯—M¹]IΛ`ÌIÛ†Ïë>óò3ÙquѧOýõ¶{ikï6yËö`IKH$QXÏv|¬Ã¤ËËdÖXß3€wÛ§m$“ džg£Çšàc_/L’˜1#W¨b·¨‡: Ve±¥vÝÀ–VåbE ²K•>üZ‰âLÎ$è~<{4wÚÕ¨üòžIu ÊÏH…Ÿóh:ƒR5D›öëv[Î×Øô\ÒÜùûûˆFóå’Ó‘¶`V;N6OáàÛÕ’¦#Nu,bÿʜʽȈX†{iãàsì—Cø+™4ŽìuÛÑ#œw4k“Jüò¨î\¿F;¦rÃT9<#~M3‹¦þ×®^¸v³r‰~þDô}Ä+ÚqžC -r_p°7Ž:hE|˜ø*¿g¼ª¨ïºU;þî!ÔìG"途3àxçfº2Þ/gb—2]¾~ÅK¤Ñ“ÌŸ.—%Þ/D‚Gn?P[ÂUyÛ–[ çïcqzù³ñÓýïO( "t㾊ñ¾ƒ¢YlóÔÿpÆ—ŽÿLæ¿Ð}û‚¶WR“eܘìxC,ÜgZÒk×–@j¸›ìgø +r_p°7Ž:hE|˜ø*¿g¼ª¨ïºU;þî!ÔìG"途3àxçfº2Þ/gb—2]¾~ÅK¤Ñ“ÌŸ.—%Þ/D‚Gn?P[ÂUyÛ–[ çïcqzù³ñÓýïO( "t㾊ñ¾ƒ¢YlóÔÿpÆ—ŽÿLæ¿Ð}û‚¶WR“eܘìxC,ÜgZÒk×–@j¸›ìgø endobj 1748 0 obj << /Type /Page @@ -7318,30 +7342,22 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1755 0 obj << -/Length 3625 +/Length 3623 /Filter /FlateDecode >> stream -xÚ¥]sÛ6òÝ¿Â÷Ty&BðA€€óä¤N.6í9¾»‡¶´DżR¤*RvÔÎý÷ÛÅ)ÑqîΙ‰€Å×b¿wAqÎáŸ8·šqå²óÜeLs¡Ïë3~þ ÆÞ‰0g'͇³^ßž½|«ì¹cÎHs~»ìe·Vœß.ž½ùëÕO·×7s©ùÌ°‹¹6|öúý‡o âèçÍÞ¾÷÷›«‹<›Ý¾ÿño®ß^ß\xs}1VX/ÃO,xûþûkj½»¹úᇫ›‹_o¿;»¾MwÞWp…ùýìç_ùù®ýÝgÊY}þ΄sò|}–iÅt¦T„ÔgÏþ–6Œú¥SôÓÊ2me>A@)Ú™9ϵcFIå ¸l:“Í»rûPnñ6°FÖΤRÂÉE³sFû:@Ñè0‡6\´M_,ú©3f²<L^
ÐÓ¸Ù]I¿»®\R«oé·Û”‹jµÀû0¯)Ö¡Õ®Ž†Â]|öˆï¬Úía
`x>YÆ2™1…`Nké±û£mÊ$B >»½/»’x_l/„…NWö}qWÇ¡ž~ h<Tå#µ^ÒO»é«¶é¨S—eýÌMÛOÔ6a.ýlJ¿f¾¡¥¿p.?ÓÈ]ÑUp ¼&?ŸKÁ8×Ú_ïºXÜO°S‚å2²s‚Ò1›©0©Ûm6í¶‡[)‰D‡_¯ZÔg8ÃTû)¨«²Õ§§(Å„æY˜wõæ{:¡¿GBã˲/·ë -øD#÷\ÊÅ] §HR)VØY•‹…
‡ïö4ÒßW]«˜SVE‰ s³¬hŸE_=”qïWGŒZzò7åòõ«_»º¼ùö÷ÍÜP•Œâ+™ômÿjŠö€ZšÄÂŽ³Ì*ýu<VLé\?ÇcËŒÌí “%Ï=“%·_d²d¹4QÖÅfS.§xì˜ -* ãí#š7„ù -ÖmRCè]Á¥¢Ñe÷ - .CÚwe4\CæMG²ëÙcU×ØÊf]µ&ÜŠÇ_ZÒï¶Àôñ<CƒKc_a&ŒŽ´-?/êݲœâœ9§Gv -vR·]À -ý -¢ÀãÂÑ«0‘~êªëiv -ã=!.g¹àù׈ƒÊ\ÔÛMG6ePV¥ n4üÈv£ró%ñÔ‚å™ÔÉ@{¿F¾Òš;©Í0òÂ틺Cý6d2°Wöê`°pÔðÔõ*ï^´-ªÚE¿â>ìì¬o“µÆáÌÒîü0ÚÍ^ï‰"–3cìQ<舜sÁ:øfÀC"'ÂÂ=ájÁljÅ#ñ./'H–u®a÷`7Ò±ÐZýâž®/B$ŠØŒƒ1òj@+e (ƒè(ƒÓv]¸Ã]ŒTAT2«ó±ÊüAá_;çŒOíœñ<‘Õ¶\ì¶Ä4ó¶©÷SQ»e97.L¯¼—™Hi‰4"*˾œ -ð„E1Ѿå`ãä“ĬÛ7Èêxd0ó0à1õ°{ &X¯²¡îŠÜŒ¶ÁßÇ úû®ÜV>®×V{n&Â*'Õ"ç=w7qËL±Â¶pƒ¦#h9hpí<“nìŸ'Y¤7&rên[¿Í!bëÊÅŸ„åù€MRpb6¦Ù”1%SŒñ›rÈkõˆM¸_4æxÆMØ
®ZÈä¶!Ýña£#¿#øa« ÷@kôÐŽ3ŠºZ=EÓ -Cßþ8ÄÃF<òYD0å´2Ï™¶Çaí¢]§à5!…‚ä\—ÉsÐQBzsóñý»nœ…&‡ë}öâ¦NE~zX8ÄfèI~X°àCf9³’pŸ`ÐðÑ60N^-„–:Òà/í«Ð„ìDûR˜ÈðRÈÐÿ÷«dKC|}H•ü“]¾}ë^_^¾t&ž‚+üH(c2:ÀƇóGg
×D1Xò—p«WÏí FÊp‹!Úañåå -þ.9üùÿ#ÓˆA ±ª>ǵ4e>ymZ?ªßÑàØUÆÁýN×ÔùaÎi1+VÚÂœÀ0ŠóÝÍÅ|ÝRd6<\@R$¸ùâéiÎÉñc¿•1nóÑùÞp(
‡ÒÃí#…U!Â>ŒÂè€Ú•a—Õ„ðôÂ¥ìºjzuOí‰BGó^l -úùƒR42Äj¿)'Ž¢@xv8ë'Ë…·AÒŸ9–ÃX•A×åÑ&Ï;ÈH|Äcpc‹¶Á˜éÓ.¥*8ìé…Ó0©¢‰Ë=õÕ‚àÄ÷°=šÓ®<€LA…¥O0Lçwipûéœ7aHóççâpº/^û#Ö‰<ÿ=,.Ã`vŒ’æ -âíF(Öxã¬g9Ý-8ïH¤ŠDöøÔoÿ œÉ€Ñ#5ÆÔi²tJ l”ŠûÂRŠÅ‚"X¤œÇ¤›mõ -_£±*L+?oªmˆª|
~*™+mCõ ¶‚¶·
ð›èæg¶SÖÏûdcS|5ß–‘MÇ¡Xîl”«Ÿ”Ç´àâyÑц۱è --ú9ò&"íÀ¹>ÚTQh»Ci„†@Y¨#:ƒ5ê‚ÉLE™-|ñŸ†<[ºkŠH$(îÅɬ@hÃœM^ôI‚pæœÊU%¼C»¢½7uÑÓăîéIbIˆ:½˜TÁLIµ+ðà‡ªÒi\4æwÉAxè¼"”ð@žsð€æØ6Fk -rgæ^Ú,Ø>«£CÇfÌÔ°
Ü.h¦¯˜Y*æúmvwëª÷7ØhÖ Öcë¡ - )à4’$¬2suxò9²ƒQWR"²/c`½©Ë5„ó @ÞW=â -4¹ør;œõt˜›fÅwÉy×]; mwåfŽI&YŒäFgLX§Ç(ÄBŨ¤3hr›Õ®®Ÿ}¬xKÖ%5ÒÛ-´ÕëE[×ÞH-géÞE
r-ò>2xd - ‹v½âßUuÕï ôèƒcl•Å¶®Ê°WGŸö`Ï×Sà—¾EÖóïíöI£)ñc‹'LóD¡bV—ÞR…¡y„Ãϸ¤:ú˜µwÓOXL@ÁS}ùE@rvøØÛŒ_سFgϼŒØ‚%‹ŸxøâïCy¤P]zÆ-Óg<AƧ¬¿PÍòT'{**±Ly_úÊm¼‘C7¢¾Æän|¡øá}6¾¾`O};ˆ|j²6ɽþïï -]B´¯¬•O¨7¸<"…—2¾a†ŸY2ÇòùO2š<ͯ!½h–ÑØ}¤O‡¨ó}R–©ð9}ÎxJˆÿ +xÚ¥]sÛ6òÝ¿B÷Ty&BðA€óä¤N.6í9¾»‡¶´DżR¤*RvÔÎý÷ÛÅIQqîΙ‰€Å×b¿wA1ãðOÌŒf\Ùd–Ù„i.ôl¹¹à³O0öîBø9‹0iÑŸõúîâå[ef–ÙT¦³»uo/ø1bv·úyþæ¯×?ÝÝÜ^.¤æó”].tÊç¯ßø– –~Þüøáíûw¿½¾Ì’ùÝû?øöæíÍí͇77—a´€õÒïpfÁÛ÷ßßPëÝíõ?\ß^þz÷ÝÅÍ]¼Kÿ¾‚+¼Èï?ÿÊg+¸öwœ)kôì :œ kåls‘hÅt¢T€T/þ7캥SôÓÊ0md6A@)zÚI:Ë´e©’ÊpU·i²h‹Ýc±ÃÛÀÙ[“r&•Já œœ×+?g°¯SíçІ˦îòe7µcÂÒ$ó“—y
ôLíü¾ ß}[¬¨Õ5ôÛn‹e¹>xàƒŸWçßjÖ£!×F„]#àã:ëfw\Î"IX"3 ¦Ìj-v4uÑ‚D(ÁçwE[ïóÝ¥0sßi‹®Ëï«0ÔÑ/!Dzx¢ÖKúi¶]ÙÔ-uªâ±¨ž9 nº©“šÚÏ¥ŸmáÖ,¶´ôÎåg¹ÏÛ.×ä³…ŒsÝõnòåÃ;%ÈP&³>;'Ø(-3‰ò“ÚývÛì:¸•’HtøUáªy5q†M™Ê`?/UYÔ°úô¥˜Ð<ñó®ß|O'tHh<cUtÅnSŸhäé¡„K¹¡°+áHŠ#ù;ëbÙ¡°áðýFº‡²õa³Ê¨ dnV%í³ìÊÇÂ3îýzĨ•#]¬^P¿Œðu¾¯:Ï{owßÄöU)MøJF};¼š¢= †Ö…&1°å,1JS:ÓÏñØ°Tfæ„É’gŽÉ’›/2Y²L¦A6ùv[¬¦xl™ +ã=!6c™àÙ׈ƒJlÐÛM÷GÖ…WV¥ nLùÈv£r¤é—ÄS–%RGíüùþIkn¥Nû‘nŸW-êwJÖ!={…`§þ +B+ eHF{ظp~tVMð½%ñ·zõÜb ô·è£í_]áïŠÃŸûï82ëòsXKS“צõƒ +ø
Ž]%Üït=ÐOY眳B¥ÍÏñ¼£¸ØoÑ\,6
EfýÃ$E‚§_<=Î99~è·ÆM68ߥƒáPúh8 `¤°Ê§U8Ðù‘cx°SûÂﲞ~a€ÞBؘ]—u‡¡î© Qè`ÞKMN?PŠ¦|&‚X¶ÅÄq@ÏŽ§µÝd¹ò6Hú3!‡rª2høñ²<ØäE‰‹ƒxŽ`lÙÔ3}ÚÇT‡½p&U4qu€ ¾\œøî·GsÚ'(H¢°ô ¦“éBà.
î>ͨqÛ†8Ñ_p*§ûâµ?bÈñÐÃâ2&c”4Wwh;@é´Æf=ƒÈénÞ¹8G"U ²óÀ§~øáLŒ¨1¦N“¥Pe‚T<äŽøR,—Ár/å<$
ÐØîÊGà"û)n†‘ߊƒcbKŠäp—°öE³ë)׫
ŠjÚ¿uU"îûrÆ|XåÂK¤ÏÓdÊ25²q¹sYÖÎkWê…†+/Ãïò!¯?¹:§‰ª
õikúëzxbÞyñ÷S×aWòµÐðÊFË—Ç3>u±ƒ+87Pç°§‘˜ðO@Ö‚ +èä©Ñ³SŽ‘»ú•~Zñy[î|Tå²hàð¹\d¡´ñÕ½Ø +ÚÎ6Ào¤››ÙLY?ç“Sã«Å®lk„b™5APvŒ>+;–iÁÅó¢£Sn†¢˜:\+ 'îš»‰«GˆÛý¾Hïéb»|(Vû*ÔEœàu^/CqÃW4NdˆbOÙbˆ¶±ˆr^jtJÀda“yQºXеqkauH½„ híTµDàK‚ÑÏ’¢·cþAäÄ óøjƒýhß +
súy‘vàÜ'm +ª(z´½Ý¡4BC ,ÔˆÎ`Zo2cQA&à@sWü§!ÇV€îëü Š{q`2+:eÖD/z– œY«²^ÕA çЮiïm•×ä4ñ z’X"¤N/&UF0Sbí +<ø±ªtWg=9æÝp¢:/÷%<ç<`:¶Áš‚Ü™ž¹—&ñ¶Ïèàб25l·sšé*f†Š¹n›ýý¦ìÜã
vA¿%ˆõØz,=(F +8$ «Ì\Ÿ|Fv0èJLDE(l¶U±pÈùª3!®H¦"_rû³Î‡¹qVx—\´ÐµÒ¶'Qnb™ä`ò¾ˆ@œ5Á@nt„±zˆB(TJj8ƒ&{¹Yï«êÙÇŠ¡d]P#¾ÝBûX½^6UåÌ€ÔrïûQ/'Ð"ï#½G€{À¥&êϾ®\\âNÂrü¥˜SEÞùz‡‰{!ðÛÑ3!Éw†Ý4ÊåÜô2"u|„õŽÜã«oh’ÏöÖçÄB@ølcYnÌh·èm;Us†È[ª¸´ÙMZd–ŠøL1¹;V¥§6ÇC¥úY„LCáÔ‹ržØÞ)Sr0£T|[ì0eó‰$‡!¬ “aÐ7T60‡ !W„¯Ñ+ÐtC©Lñ3x¡sÔÃ÷ìè„P,mæë·Ícéßûà„MY—'yÐéÓûNþLÅÎPRÖ˜…Ç-ü;´¼„¨`ïë.T¶ ]Hô¨þ
ÚQæ¡>²ß܃¸eI¨Ý`Ø04XTÞ¡P
³:ÿŽ¹¯‘DË ÷êêbp?%$ĸ÷(Ч:¶$c‹ài±ÀÄÚ$¢ÇqÚ{1Q]L#ð[yi·ý¾VÈÄùqö®^-ט*j&.Hz~NÆ÷e\^Å|µßl½›K4>ÐÊjpáÍðq'Äо„b>ïÅWà^ålJQ%36{ÄòûMĹ[¤1Ï÷Ï[‹P—ÃWž‘Ÿ€h€¥ óñ2nÅ3©p˜½èM?õã=i0}£Tg'>|S&}dN\Vœôã½úÏâ&ü–‹aVò–^°×ËßžòPdÙl¶@üû²*»ž\pŒ"ßUeáׂãjéÓì¹z +üÒ·hزî½Ýœ5š?¶8cš' +ý³Úø¦³(Ä8÷Às ~Æ%ÕècÔÞm7a1! endobj 1754 0 obj << /Type /Page @@ -7373,25 +7389,26 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1761 0 obj << -/Length 3418 +/Length 3415 /Filter /FlateDecode >> stream -xÚÍZKsã6¾ûWè¹jˆàE¬=MOÖ©'qœÝM%9ÐmqG"‘²ÇùõÛHP¢ä™ìTí”lB
ÑèÇ× -Lsf”T½…aÔÂ9h iÖeQÓ2ß>tUS·‹,ÂÌ2)Y¦ÒìˆPÄ”Ä\'d -\(S±^7OI]>%6uy0¿P \#òÓô\ÈH¡r&PÃ#.ïpÖ/ßè<f=ÜÇòL’í—±\ÉÌó¼:O”ónU‚JUjæ´ Óù¢¨‰¸-éY,—åÒ“=·çv¾«»jSR÷ǪðsÆJ9g\+í'ÝÖËE?"N8!¦}ÏuèÑl‰Y®Ë.È0=tʈx*`š%š[P·‚
‚åi*Ýÿ0àTÊò´Kã€ÿ)Áç7«’,oYÞ»uG/U;±ÆM—úþu3µ^0Å36–3›C—“fs7ãžË™ñ®[%õûe³)ªúÀˆ¥aZ -qzúžkbþ±¦¹Ôc&8#ïõ~ʆmdò·an‘š02©³`¯_OkYjD`¹ÐÈy†ûëžÅú©xöt[v4YSSÃÕ¿¿yûýëË+zÛž;/ÛˆNeë,KÏ[ÝÑuƒ´åö±Üö³9ƒZ0™Ùll°uƒFgóy±èv‡žýle³¸fõX‚½j™y{…ÿ{µvÚ^……èbSóáû· mÔNž=«¢¾/iÊ;§fCÿø4”u‚´÷þÜìü¤AzÙµU}Ošž½~ —dàÕA?”o›õ’œò›«Ÿˆh›»îÉ÷Ššh 6Å3uYú~]㻕Á»»þ aB³V}„¹÷s™1Ž1ï´ŸG\'ü<pQĵ(º2iê¤|+:ÈXÓœOËÐsM1Z¯–LØ™‘7d' ÉÆ¥m¢Ÿ -×(`ÃTþ¯ìXbAënˆ,ëâvícñbU.Þ‘ÀÛæ -··å¦Ù>;@†war?:ªÁEuA9›2œŒc—óP«º¯ïÖÞ B2ˆ×SÔ~!X ýPnA¬Í~?'x{ÔR+ê´=Ä\Çí¡çÂfÚÂDÛU‹CðAÐè<?=}Ï51ÿȤ( ð/D«PyŠòàκ͂×H6÷¶É•ïòçÒí®çíC¹¨°Áüyû<þ%ä››€(F:Hüp‡®A1Íup]D=8s! @kíƒlžFA¤š²‰R -ÒüG -Ùá´#Ôƒ¾sE‰ö7QŠ˜ù-͸»_ùB$ôßwOñYÐÔðÑ}UƒÏã‚g -ÎJB@â
|’v]Ë󃧜s*ëoê̱…îG"è8ê‡(¾ƒÄ¬ÔÐ6וk@Uþé‰UñðPÖ~Lt|œ¯…6©|é|_Îqšíc±~E¯›©2 ³ýúc™ìxUÛîÌ3 #ME^Ålªƒoø0%ç«æ¡¼Ûî…×ånë3¿q
òÄÖér< -Ûš÷a;ÇàµÃÂPôÅêþÞIkü> áµ`\"Ð¥‘®w›ÛÀêÐ:
çeÜÛIF$ŠBq¥y¬|˜7„›'D¤“« µàB ±nžú¦7?Y\¬‚ö«;t?|C<Ó
ÅRþêS_¸ØX,üùÁ(FõÕpˆ€´åm\ïg¿?†
áSLš]znÙÂ4ëu@¯“ ^ - -L ãí - g<ZJ,‡úFH°$òCMj/’ëÓjï“Ú¨Á¼ ôÚ3œÇž8_Ã[¤Êõê4ö|xÁßk*’á3ÖTª˜ÌŒ|AS©aÖx`r.Œµ5aV§´Er¨Ï\[ÎÞhŸÖ$œœgÙ)ÿEã:á…‘Ÿ±¶$TM&Í_Ж‚5¥2}!‰ÑÖ‡„¬HŒÏXY€ýµàÙÊ’œåy¦bäü×uvÊIû)•6|öÿ -ÔšÈȆ¯š®?O É -ÞOÁìp`|ôŽMhÅ8Ô±§ïØb®ãwl=—;(Þ•I…ÅÅFd“Jž¼çš˜]îÝ,X®ÍxúK¬Ûö„ïLôܾ¢[Ùð±J:]ÿô5Á’þh«Ínío‰d8~D®æ¶mðó3j¦ïK€ U:º¹ÁÆ˾¸>àú˹î¦8–'羆ŒÈ÷J£º¤£,YšP®DãÑá™ÒöNn.T& +xÚÍZÝsã¶÷_¡·È3'_é““Ø©3=_ã8m3Ih‰²Ø“HG¤ìsÿúîb”(ù.½™ÞèKh,ûñ[€|ÂàÇ'©N´v’Y•¤Œ§“ùæŒMà¿ïϸ癦YÌõÍÝÙ×WÒLlbµÐ“»e4–I˜1|r·øuª‘œÃlúí»›«ëï¾½8ÏÔôîúÝÍùL¤lzuý·K¢¾¿½xûöâö|ÆMʧßþõâïw—·ô—öc|s}óµXzôöòêòöòæÛËóßï~8»¼ëÖ¯—3‰ùãì×ßÙdËþáŒ%Òštò/,áÖŠÉæL¥2I•”¡e}öÓÙ݀ѿ®ë¨þ8K„ÔbD‚)0µ‰–Bv +ä:á Æ@u½.òŠ–ùî±-ëª9X$O2Îõ$"ÉdšŠ˜f1× ™Ê”¯×õó¬*žgÿ©«â`~.A¹šÛÓt\#ˆH.mÂQî—8ë×WÊƬ gŽ{áX^H²ýá²ÄJ‘yž7ç3iø´] R™ê)-Èt:Ï+"îzæ‹E±ðdKÏí¹™îª¶ÜÔý©Ìýœ±¹e SRùI·ÕbÞˆŽˆ©aß +=ê-ñ/ŠuÑÆç‚Ž\jOL“™bÔ-aÃ9Olš +÷?xD +Ñ +õ`S”wÖm¼F²¹÷°íH®|—ßnÿš6żÄg@ðçýËHøÿÕQt0óú.ÅԪຈzpçBARÊY›FA¤
²3).aöƒúXÔP‰Ri˜zW‹ÆÐW³
dŽs2ËÅW¡ +ge.ÀJÐ ¤=N;â@=˜á{W”ˆ`#¥ˆžÞÓŒ»‡•/DBð}÷—È‚0§>€Ê +|„<=(q=\~BÊ«bx8lƒO]ø×*oh°Eé†%8eU.¥Â&
ÀHáy渒+ÐTpVšoà“´ëZ^=åœSrX]ÍaŽ-¤p?AÇA?Dñ-$F`¥†¦¼®\ªôOgH¬òÇÇ¢òc¢ããlùp-´I
àKçûbŠÓlŸòõzÝ„Hí×ËDgÄ«"߶÷`ž³0ÒX䕉IUð
¦ÄtU?Ëá^x]ì¶>ó‹×P OÌa.ÇÀô²çëÆCˆf÷øèóySÌm
`îLî-½Þ„L¿Ü¡ +Å•ú©ôa^nrœu Ž®‚Ô‚%ĺ~î +›Îdüdq± +Ú/—è~Êö|}<Ó
ÅRþª +SW¸Ø˜ÏýùÁ FuÕpˆ€´åM\ïg¿?†
àSLš]zî{ÙÂÔëu@¯£ žÔ’Y8«ºE5Œx K¸Ö¯Æ +™f¡>À 6;:ž²P̨l/ÚZ˜EüÍtþ&tÈN@ømÊižx^¢y·¯ÐâjXx6íî¾ï…ùV§ÞcDšÐ
e¸½Ôü°[ç¾×oB¨^2DSŽ¿¦çb"rx^0q`6fÆK?çÊ[²Î¦àÞÛÒÅ>x¡\D]¹4”/é„ôÔ³_iv$Q./Ÿ„+TÂX°„âÃcÙ×ô0OéçË‹ÒûÎ^Ó#ú£ßnwbhô±¥G¡ª|§©È6® æÂè"llò¾ÁA^ ä•è˜« ++aÓµ†ÌÂfµý˜›T™å©Þ¤þ¹^AŽ(ö•€ú1Ë“¡Çp¨YXž¹CTàG.$%4)¬H2aä †wåO½pˆM¥§Õº“dE34£#\<“ÙWÏâMQ™ÀK»I,ÿÿ¦T>¤ú`õµ!š}äÆ®Ó2”P‘ž>(ä<˜þÆÛ@Îx´43ê_a†%‘jT{‘\ŸW{ŸÕF5æ®^Ñž6à<æÄùÞ"õP®SO¯±—ÃþNS‘_°¦R™ˆL‹W4•êÄhLŽÂ…¡¶FÌꔶHù…kÒ¹ÄíÓÚ‚„cY–½’ò_5®^ÉñkK@Õ¤SûŠ¶$¬)é+Iüˆ¶>&dEb|ÁÊì¯8Ë^Q–`‰µ™Œ‘óŸ×Ù)$qÌçTZÿØÿq›AÙ¹Ê}Áã;œƒ»¬Ö‹#ʤìÈeŽto¾rÔÏȆoê¶;Oé!Iuâ*pŸÇg ô5¢ßî¦àäy‡€b +ÞWOÁL`|ôŽ+™0¨cOß±Å\ÇïØ:.w¿/f%3MHyzòŽkdv±w³`˜ÒÃ鯱nؾ3QSó†neÃÇ*it
ÿÒ×ú£)7»µ¿%áø¹êû¦ÆÏϨ™¾/‚Vé8èæ¯üùòö€ë/眻›âXžtj}-‘í•FUAG9X²Ô¡\‰Æ£Ã3/¤?ìÝ\¨L +(3•éÊÇh3ÍØàżL»-ç¹ÿ€E›pÊ–EÇrÆŸ!™iÞ¶Åæ±–Íè•t–¹wCJ²àEƒ¯‹ê#æƒÖp·Øï&å¢úÊÓ+:bÊŸámF]5ûsîÞ†5 endobj 1760 0 obj << /Type /Page @@ -7424,21 +7441,19 @@ endobj /Filter /FlateDecode >> stream -xÚZYsã¸~÷¯ð[äª%Á£ò4;ë™8•ñll'©\ –XC“Z‘²ÇùõéF7 ’¢äLmÊå4Ð
¯›”—þäenb¡‹ä2+’Øi.—Oâr
c/$ÓDž(Rýôpñã_q‘ªôòáq°V‹<——«.ÞÿáÝ/×wW‘2b‘ÆW‘IÅ⧛۟©§ Ÿ÷Ÿo?Ü|üËÝ»«,Y<Ü|¾¥î»ë×w׷ﯯ"™ ó¯pb‡›?]SëãÝ»OŸÞÝ]ýûá×a/ÃýJ¡q#¿^üóßârÛþã…ˆu‘›Ëx±, -uùt‘›DkßS_Ü_ü9,8uSçÎ/1ylT’^F:‰óÖ˜=e§e¦ˆSt8e%çNÙSá)ÿK½ï6ÑÚÆvQÛDÝf߯ڗfº%d¬U\™‰¨fdQY”€Â±0ÛØæ*ÒZ/úņZ4å“íìîÙîhÀ~«úŽ†V{K}»+™/ìÒVÏU³¦±û› ;Ÿ~ Þ$
µ¼Òªem?¦‚_FÈ—åê2’2.ŒQN¾²y%ÙÚfåxáµ^vUo;P4-Åâaý+ûXî랪ן܌̲XIÀ¾y'?~HŠáT™Çi‘HžÚ´¼¼ÑЈ$>ÒlVŸL¦q&³7Tì@tFØÙmJØB½Š–ue›¾›2—„˲ü,÷@tÌ~´O“ÂF9âÿ°©P_²tÑnûªm¨ýRrgu%Ͳݱõõ+÷?mkûÛwðLò@ØÊA»‘Vx¿æºii=øL^§ÓГ4ÏW(%i]’ÅBj9Ñºå¦²Ï L²dب@´f…ðÉ>"¿GØ -œÉH©^ª~Ã~þ¶õ®}è2\GC¿Ðrú¶ÁZ¾à‡TgnÛS¡¤h+=üGÕ·G產/eg.L½H“óbx¢c11ò:.3‘ã/6 ~Ûԧ헮mog¬&”‰"D¯H+¹¸éi¾óãØØwtê ŸzN=YäÄ£oéq|vOmXbcA!vôPÒO¿+›T -갳ƒZÃÓ¶íº -,ŠW¿qNuì,Û=›†õZLÇ0¦êÐ é¡Ý÷ë6 êh#XÔóÞºèyßÙo«Ò n’óEowísµ²¤¶ÇÞÖ -"q´t¹ãq¤“o+s^€@5#Áh³iëLçcøÆ -sˆuЦQ¤>VAWÅCìê¡•‰Óux,ëº}á&ý0úuTŒ_ ×ÓoÊgîñÇ@”ïoß}º&c$)Q˜K
uìØà”&é”Z<Wm]ò> Ûit“FAÇÏ·÷Ô€¬Y•¼†³ -&3qñd&¼™Øhí%Áò“Ëx±¬Uà𲩖j.±ÔâZUO¿€Øw;ð1Ý9i _×±HÒ‰jùBi¤òâôq¥\ôTDôÚ*¥² L~i÷õŠšœ}å¹;:·²]¢Ow4xtІûý®á)TlæaºØí±.W<Z1ÃeÉ Æº@jwZCBv»Ü•Ýæ$êÒ$$±gQ×ê4ê -T5Œú6êÚò¸6ªciD~ž} šá?®ç±D2`Özs8žBžÇ^°éàÛðå–9½ÜÂÆrc—_±Y0‚ÆÁðn£‡á7P8`¿wwíiv¹Æ -T?!t!.$Æ<ÑšâÖ‰!<«é5õb›=TŒúi!X þwzyHË -0Ï\å!dJYŽÛGwºÞïJï…2~÷…Ãn±,÷Uv"߇}TT„.ïv ï¥t÷˜yÊFÇÝCÞî -€¢ë©h] ¼ëÎœøšë˜e]O*"c;˜„iŸ5jgø‰ÚÄIÿ¤ð…½†4û¬RöOÊe·v¹ßuèh§¾IA'q–u šá=òMZ¸æ'`¢ÉÅwV]®àn°PTÙ\F€ç_÷ôú¦P¡Êf»¾#*Æþt?„´¢!zº¥BJ0…KÈ©‡pèÊó…䚉"_‰ƒD%‹¼´»¯Œ™ñŽù¢É¨(î+HRʦ{qˆÄûÉ„·&¥D£W…C´n`´-ZÀÙ6ÂHøÐ|‚„=a§Xpl¶Ã0;~˜PÓÒåê•F¾6®¢4”ŠEeG#õ‚ÐóÔžøUÎÒ2"€çrØý§R…3¦Ë¢r#ŒÊð0[n„#Ç7°ß¡Z1%ˆ·mÏLØ)p¶ïçw.ÑÃ{ÞÁ-¨|)ˆÇY&C°¥â”·Ð ò,¸ï¦çdÁ˜X*£ÆÁ¿zGfôz®}¢§5‹©¯R±ï<TÖá -×Ñœe 1ÿ÷Çz"c°€Ì¾±/ç™}±,¡µWD^vsºR6Tð~˜pŠ†wN}¿î!xÙ]EŸÎˆtñ?yp¼€’ŠÞÐðÞWYÂQ/…:ÃÓ CsÓ#Ò†Þôò« -41t¿”â`‹êÞÙñ[:œZÖšÈaáŒkÕ"Ìõ%sT§¬ëF%†/«ÝÛ1‰Ý÷¿4–¦ˆ3Yü¦OT}¥ÆÄøÅôÌÅ‹°Äoþ0ûðÕ:Ä'^ý¡ƹ*2/ -žj8$MGŸ|Áî£_”ßhÄõ7ÿå&öÜc±aÇç÷W—X?]Ô˜œƒÑ9°Êfâ¿ÞZáêendstream +xÚZÝsÛ¸÷_á·“gB>’˜>¥9'õMã´¶ÛNÛ»F¢%NhR'RqÜ¿¾»ØDR”ÜÌu<À» +ùíâß¿ŠËlûçk››Ëgx±´V]>]$FÇ&ÑÚ÷Ô÷
FÝÔ¹óKL•¤—‘Nâ<…5fOYÄÂÀ©E™±qª•§¬äÜ){*<å_„Ðûný§mÊ.j›¨ÛìûUûÜL÷¯„ŒU¢ìåÉ‘(jF5E ¸ óMÙ\EZëE¿)±¡MñTvåîk¹£ò[Õw4´Ú—Ô·»’ù¢\–ÕתYÓØýÍÐoˆ€7IC-¯´j™CÛ©`ã—‘ù²\]FRÆÖåä+šÒ‘mÙ¬/|À££Öó®êËMK±xØpïª|,öuOU‡ëOnFfY¬¤Nà_½“ß'v8UæqjÉS›–—W#Ú‘ÄGšÍê“É4ÎdöŠŠˆÎh!»M[¨WѲ®Ê¦ï¦Ì¥á²,?Ë=³íÓ¤°Q+Gü6êK–.Úm_µ
µŸî¬®ä¢Y¶;Ö¡¾~áþ§m]>ÄåŠ;x&y lå ]‰È@+<‰_sÝ´´|&/Óéô$ÍóÅÕ¥$K²XH-'Z·ÜTåWP&i6*Y!|*‘ß#l€žÛÇ95Syœ$iÆŠ0s3åJó8×Ò«åKÙÍ)W[üšp$J¨E·-—ÕãËDäþ¹¥FWn‹]Ñs7Ýˬ]$&†pà5·Ø÷›¨ù¶jŸŠjÎ"ÊX؉Ñ΋Dœ¨`qx…3ìm¬M¦™f÷¸TZäQÿ²-åÜa©8g5o‡ ¿±LR5]_«“æ˜Âfò$5çíqHuÚ •»÷¶ë£®/úªë«å±E&`Eyšœ PÍH0¶I¸Š4ËÆ"Ü4è
å œ£1aOïÌ[eS|®ËŽ†¿”å–®Dåv¿ƒ=8¢Gtín*„‹jâfi´ß½çÁžƒ/Å!ÛhY»bI6©b¡À™Œ”ê¹ê7ìço[ïÚ‡.Ãu4ô; +%E[éá?ª¾=:§}.ºòèÒÁÔmšœÃ‹‘ˆ‘GбMÌDŽ¾Ø$øalSŸ^´Ÿ»¶.ûrÆjr€@™°!zEZÉÅMOóÇƾ£SOøÔ“pêÉ"'}K+à³{ª(hÛbGýô»¢é@ÀoQëvM +!B‰ôD#œ$‰UÝöÔ"}„ÆM³¤x€ÚQÔÔù/‚
‰À ÈñÄ +îR¶¼@å,¯jª§¢Žve·…øV{Ú$„ |^„@5#Ã8§qŽHp$ÄÍãÌáY@›yú?„õ|ÖM†ŽÓƒqªE5èÄrÖ…”Á¸ß±#ak^V¨êšf´MýB}ÅjE
Fc„¢VÑ‘"–+öƒuØ°µf¬Êý¦8Ž+ÈwMi‰,*4§¥˜D}A#]¹$âúyƒÚE¿‰EÝÔþm_¤‡$¿#Êxíl=M]®·*ž 6`Vøüµ$êÑYÁTÏÙ¤÷œÀK5nnûÕ›˜iÛrnç©h–ÞR'| ìg^MTFŠ£À´0Éÿ!Û0ÂBV,^ xCª3fç©œÙÁ*ˆÄÑÒåŽÇ‘NB¾ÌyÕŒ£Í¦i¬3Eà³æë M¦>VAWÅCìê¡•‰Óux,êº}æ&ý0úuTŒ_ ×ÓoŠ¯Üã(ßݾýxMÆIR¢0—êرÁ)MÒ)µøZµuÁû€n§QÐM?ÝÞS +ö"y/ùbãç¶ßŒáØSÀ{GmHµU %'†ð'[-9ZmÁG`VB‘éÄZÚWâÇê´"*²®s¨©þJ¹ÑçùªÆccÍâÔ¦é˜ólÐ"†`ÏF
%c#MêFP!'
νVeòŒÔF»¸ýôpóþŸDÛk¼ ‡: +d°b†Z80o[XAÀd&.žÌ„7½$X~r/Öµ +ž7ÕrCÍ%–Z\«êéûn>¦;'
äë:I:Q-_(TnOWšÁEOED¯R*›Àäçv_¯¨ÉÙWž»£s+—Kô鮂ZÂp¿ß5<…ŠÍ<LX»=ÖâŠG+f¸,ôÂXWHíÂâNkHèÑn—»¢ÛœD]Zb€„$ö,êRF]ê †QßF][×Fu,ÈϳT3üÇõà<–è@FÌZoÇcåy웾
_n)‘ÓË-l,7åò6-#hïÖ:êp~…öð{wו=Í.ÖXê'„.$bÅĘgc"ZS¼À:1„g5}£F Þ#@l3 ‡ŠQ?í#ÄÿN/ b Áa›þCÿ§»›7·¢é¹àÅ«~̬Ûo·-©+®ß¿eÛ`=’/¥½éN³ÎÉtJy’NY@-0#{r¯=°›cœ¯÷™Å}ûTAIµ»Ø´Ï%gêÜSÐLg@Ôt"ÃÒ5¾ÇâØngÖ)Ÿ
4üÙhz£…Ä›j˜g®ò2¥,Çí£;]ïw…÷B¿ûÂa·X–û*;‘ïÃ>**B—w;Ð÷\¸{̼e£ãî!ow@ÑõT4‚.Ð^‰ugNü +ÞÃAÑðΩï·=¯rWѧ3"]¼ÃO/ ¤¢74¼÷ÇU–pGÔK¡Î0ÃtÂÐBàôˆ´¡7½ü* +þÅ ©%˜Î5„%D‘‚p#ŽÞÞßüD-¸u€Ÿî} Ú7‡2Òî03$¯˜uôË%ÌÊ*,U;9@Ñ 4üFpš1ˆTèr¤%l„¿ãÚ¦ë"(Š€nðaµß9ã’ó3§ó`4ÉzÝÖ{*¹@ˆQÊ1Û”'¸ +®8|ˆ§C&ø ±rÇŒþ’g£ ò&8¾)âsï͆å‰q½&wuX}>ó†Í‚˜!ÞáAà®fª6†ìÀ.·®[‡ZyÏ|Á¿Ö3\2ˆ¡S5³Å˜<Î¥½FÃoQR˜™ŽƒÈw¼¿K`µÄüÞšã‹Y*_ùXð@tæcA&šýÆjìXL¬S•åˆŽ™?K±NÆÌï}ÄÅÏ#¨¬áZíÜA&q– +óZBnsë5„À.èj!žKI/T ‰¡û¥[T÷ÎŽßÒáÔ¢n½Ðì@g\«éd®/™£:ev¬Oü•¾¬voÇ$vßÿÒXgÒþ®OT}¥ÆÄøÅôÌÅ‹°Äïþ0ûðÕ:Ä'^ý¡ƹ²™ +O5D endobj 1766 0 obj << /Type /Page @@ -7463,7 +7478,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1772 0 obj << -/Length 3660 +/Length 3658 /Filter /FlateDecode >> stream @@ -7489,7 +7504,7 @@ TϘ+½çÂIÔ rí#{4篘¦ö—|XÂZ>Ï×´Ç÷Pþ˜§MñVNp¤X¿ö¸è1{cZÔ™KßZE½ßB2ÇÌCLOì\ Í 8MjñaìÌÝ姑ÜydášÂ í¦¡²’ñäeýp™F_º‹m@¸»þøËýõApÿEðáÊfÇab¹2Ž%³úu0¬ÖœgZr(\t¿Ÿƒî.€ù`øu·O·®Ùj¶)/š»ýe³4‡Dyò8Å¿þ3òüpéô°G¢Á¢›¯fë|³)3i€”¿¥a׬³ä,阋AåÆ©a °q³¹V„!‰’³×ŠÐXÒÞÀIMŽ+ 4ãóæç瘅D€E€a”þ‡ -Vú—ÿþvÿÇÉ1Ø5ËÔ¸ÕxBuôþ˜OX‘Î~Vû‹×ëo~Â@Èýn³i¶¬®ÿ\J ³„ëœùÎ86fjâãÀÁ[i£Fôð£µQ-endstream +Vú—ÿþvÿÇÉ1Ø5ËÔ¸ÕxBuôþ˜OX‘ío]¯¿ùñ!÷»Í¦Ù²®þs)%®m¦:¶‘žšø8jðJÚ¨%ü´¡P|endstream endobj 1771 0 obj << /Type /Page @@ -7536,22 +7551,23 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1781 0 obj << -/Length 3753 +/Length 3833 /Filter /FlateDecode >> stream -xÚ¥M—Û6î>¿bn«y/ÖŠ¤¾xLÓI;}Û4›Lwm²Eµ‘%×’Æþú¨/ËN²9! -Re{’pfz«žŽå&ïê¹SS—Ϧ!¸e‹¼™Õº4{B€5‚Ieeùr'„ð€E%Д¡aPõv>Õ`Ü0ãò¢ÙÔÝ1{2¹æÈDcb-ü”=ù<p1ÑjLE~'WO…¢ÿ²iPÂU«ºZÁÖÌøQꇱŠ¯3ÒS-p2‰ -ð§–OÅ3…R€Y2
34hy„ç·ï>ͦ,LÕòhW•6Ðà@Adgx¡]ölˆdd™Žg$Y'ë?X÷5¿9ÞEdyø´Ò @Lã&°véxC8[C -\ŒŽmž¼ È’4q.ò\˜Ó’…~,“ˆ‰š6ƒ³™£,¯\Ã9q,rãb/Oe½ÎÊ¥µÃÄ‚8ùjÅ$‘¯lØØ}iì+kpÎ ÷°]Ød€`[x’Ó,mrâk%r^‘ÅXÁ ‘Ï @>C°5^–ö]P‚ -e8e×Æ-ËÙ–ž=ÿÌÅ\—1ym˜}ò=åÕ¦ìrÃa2Ç@êdê¹ ‡÷o`³ÓÄô#k9€¢|RÛPPÑ0ݼ†?‚œsÛgÞ0aé%7¥±‰¾Œ"%¼‘‘õ³,œ¥tÇ:ÝQHÄéزYIÞ匙8`<3< -ü¿q~3¨òºë1Ò€>òç¾Xü‡”*ˆ®ÿcªËÅO…²P³Úëý*‡€ -¡|ºÎNOµÀÏ$¥†Â@Nùù/ïɼ ×~ª¥ºš"K5»r¹8%›'f*J{ÏAdYg6áÀŽ!a*(7ì;ŠõiÄbûfD´ÏšÖMÁý:AÄÛXŠhK`“
E3$‚S3³¹ NDÜ‹ÇöÑÐHFļìÖ²75¥-†3L“‰!’YÆ’˜[ŒÔLƒIßDDG‹²õþ0¤c¡ËÜp‹`žÆÒG.©1Ïxa˜Á›@´ÎÊMWBQÇxz4¶…‰lé9Ø©mÓ=ÈÝj$<ç ‘àz -µSô+*ÆzÊ~µ>;ÃK©2Ufž“µf¨Ù±è“
p±‚T…?Ù1»ã²Áí«»S˜ëš»qÜõœe3gÿl^0;|uê«¡áÃ=@ð]U³°`A¹Î&ûÅùÄJùJÇñèT_hPAv ûÎ!‚‹-x(GEi¾ëÛ -Ëêg3½@{˜Õž5©‡¥~q¥®íš_L–¡A°¼š,©.'Ë=•U¬Z¬ÕMrãPùqš¦×Wï©–ŸäÆaêÇI ¦ë?ö=¨fWw%7ÖÜI¢h -„íþâÄtÙeɲŠ«ˆ˜A”¤Ódà„ÙåÂM˜ì/4®¦¡pÓÝv¸ƒh—5ó«íþΊýô|‡°Ü úšK«®,b
gR^wå1ÕeWÚÆ1ßëžû²ö¥HÃëË÷TëODBü=M2eà¾â¤%µ~nºä-½,_ÇÀÞ†–ŸÛÛÀ×ZÅõ`%ÚÏî5uÙYê<u¶‰1Ï‘VßÍ’TÞ -Ó@º;½µÙq.ŸRçÏ*bËOf™®‡B_¤8#¥¯Ô4ÌÊ[%-ûôò5悾Ó>ùU\¶g8§Ÿ±çÕ{vT#{~ÎÊ"Ïlý1·iØPú:=ÕSq_†`&œM+•ô6ðˆ+û~áþ7öc•è¯5ë(Þ»º]ºîÆ,IÜQqæò³™ãÄT"&),r‹ùzC`˨5I 87¼²ðÔÒÄ(/t¯@¡A<ÎódJG»ÄS•NK›1ùT0>liŒÜX¦Ë<ˆ ðC‘Ê/ŶÌVCL‚™Çû‡ïö”‚g^4îªí+83ƒ¾RèÚ%–¤òµÂ/b‰Œ“€ªÙáho´vy2̪˜KwM]=~…¡±ùr—z]Ó®²j³³m9 ÜÀ…t㮹=]×ü5wØ -:L|•¦rùPA)&¤5Ì2GxÑÇãß=ûPw®ÞKzû5ˆ‚û?úŸ¦æãøˆþ©Ç¤b®‡þ÷ÅçŠøZìÌ>endstream +xÚ¥Mwã6îž_‘Û:ïÕZ‘ÔÓi¦Mßîtv&Ý=´=ÈkG–\KJšþúú°œ™l“ƒ " +Âu
=ŸšÓg"ω¦¯™"§ÇgsªME$¿÷%Qãœôl›ƒqK›±:å]Y?ðØsÛ™3ÑíóŽ mÞ·¦Eƒèk!ÇÒÊq÷á1ºY«Dîß~@@®¶M]›- +Õ~-Vm¿ÝÓʇÄ6µ!LwÊëvgNŽ¥DŠ
çÛ9v¨Ä¢¢,¶¦wX>!¨m¶ŸAÓÑkßZ™<äÇ#|¿À|^Vƒ¦éÀ£,æQaFB(¡aÒÎÊcUÙvüIaÚò¡¦ôjü4'‚YO@c„ç./+s;'³ñCódÍ ýàdlJŒlJé4H"…¶ˆ‚Ôù$œ™ÞÚÓ±Üä½uóDîÔ6Õ£i îØ"ÃÕ‘ÌjS™!ÀÁ¤òªz¾B¬€E%BД¡aPÍn>Õ`Ü0㊲Ý6ý)0EpæÈaÆc-‚Œ=ù<p1ÑzLE~'—§BÑ
CY4(á:‡¿uS¯akf|ˆ8¢D%/3â©8™D€DQé)+”´0áÀpjжÅä`)9ì½>í
“r¼HÓ7n¾ms8–•øAÙí ê`Ǭ‘ +ÓŽ¼ã +Àxf6x: + +ü¿u~3¨òe×c¤}Î}±øB(T¿\ü©.ÿž +e-ÿ 4f½;5‡u^vædê-e%“ +¹Á‹Ç$¥9ˆG„óúÁ¦Js<Šø(G2ÜœCÙQ¥q솢yª[ê‚›üÀëàžóL¶U…”Œ(loo‰KdË$z³œI26‰Å3þ[Û|‹éX¡” +b‘ +$¼MwÿÕŠMƒ,uÛnÖYåVÇ,Í«¥g¦ƒTøº¬oh™¸›Ó’ºE%qô%uÇAª”KÙlŸ6¡°¬~4Ó´»YíÙzXêgWêÚ®ùÅdêqÐË“å1ÕådÙSY¥ÁªåzPÝ$7ŽTdYöòêžjaùIneA’†bºþ½ïAµû¦¯¸ ´áNE[ +;,’/¸êˆêWuT#W}Ì«²Èmi5w×$ Öé—YðT<LÅ
Á +´š2qKbTêojqeß/\m'A¢RýJÇYÇ©X½oº¥›|Ì-SoªgÑl6s’±JÅ$;Gn±i ìµa!É'iàÜnð6&HQK“ÃèBc&ãVf{$&”Ød0 ZãŽQF#³eD‘È^0)nÚ`æñþá»
Êð,ÊÖÝ"¾‚#0ó$ôEPß-±$U E}Kü;£4µšýäÆ^¬híJ endobj 1780 0 obj << /Type /Page @@ -7568,28 +7584,25 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1785 0 obj << -/Length 3623 +/Length 3576 /Filter /FlateDecode >> stream -xÚÅZÝSãFç¯àÑT'šOI÷@XÈ‘ºe9à’T%y¶ªµ%bɰ䯿îé}زYj¯ê–ªÕ¨§5Ýêùõ×Èò8‚?ylp©JãÔI{<[EÇ0÷Ó‘dži`šö¹~¼;úáB'Ç©HrÇw‹ÞZ‰ˆ’DßÍŸ8¡Ä ¬MÎ>_]\þôŸ›Ó“ØLî.?_L•&—ÿ:§ÑO7§Ÿ>ÞœLebåä쟧×wç74åx/¯>%¥ËžEoÎ/ÎoίÎÎOþ¼ûùèü®}—þûÊHã‹üuôûŸÑñ^ûç£Hè4±Ç/p ™¦êxud¬Öh(Ë£Û£·öfý£cö36Vw<ÕF$ ÜÊRÄRSlSá´Ò••³ràB+Ï˺ÎgÓl6ËŸšiþõ©Xçóíw—𨊓ä¸/`G–kDÕÓC:)”‹äP‘S¯ÁÉTk9ñjœÈdª -(ð#Îuä&—‹‘eu"Œs¦}Cn-âµU8¹ lY5ü -`ˆ)>± œÄj°; Yªø#ŠT>ÿ°Ÿ—íˆÁ`¶o0¸ N2Ï›|½*Jo'¸¿ÝZà‰Ý:/gL©[,ƒ…gY“?T sÄ*ΊD·Î„ª£NæŽî¼|ò]ŒY"9üÓ~Ü&7{Ìg_¦ˆ„z'DK+´Q‡%·L»¢È‡Èay(ûÎ/mÒ6xiÞ+¤mjª9V …÷¦Y³†g|Ø…©Ùc¶Îf
:Òë¼!zVÎiP¿–Mö•fqKýCùºÉ -;¯V4† 2iS2 +c†A{•Õ$R» BsI‰Ä¡Ø*ž€ÜAVÿ©*ëÀG¤Y^<SZr“…'U+º£÷ƒA™7/Õú‹¯<’m\?Û¸ÉsæF -Ìf•_iÎ9ÌqR€]¸Ô¦ÎØ1„^Ò&CWÕäØEuAÑå,ƒ•
0Ši©Òlþ®JT…ŽD‰Ôb,Ë$‰PƆ`µÈŠåXŠ´Â¤2î¥HX{\u~–Ƶ^BrKV¤ºMnÿÍ_²u9&b±Q#š{!YY¿äëšÁç fK¢oŒFx‹ÁC7D6QY*%,¦0RgÍ8⾸á -–“[â:ûØ=öÈh»ÈõTµÝŠThÆýÀx‹ÆV¡Z†Ê\@mB -w -Œ’L6Þ•Ó“…7'—ùC¶$ÚcU7ìà8ã#ÒW0O¢PÀK°WðÄp²6Üô¬
|7gD†}â'Kfä)=I”d¡¼øªšÓ¡[*6+&ºa’¢e` %`gĬÑÐ&[¡}˸N -~™®„‰Ã’e‰‹CÏóqI¤¡dˆ©vm€Œm…ÕÞ -ŠC½·|É^!'Ô|XèÂ.Ãñ[“*aÚxÄmÚ²GñëÃuSB^7Tº©àÝ0è¿1QVY3{¤Ó¯ÚCµ.šÇ Àò‹î‘šEFÚP‰êá$#ÂcXx>Ì€ÛŒSã¬ÁWKÓ.#äÏÈí -91tñ -ÙÃòÓˆü¡ûFB%N¸Î×`[ªCÇ3ôU6'"F–žÅ«^Ó”÷{¸á|€îG àèž’¡¼ªÏmpe¿mKC.åOâ’Ñ#†^}¨e?åi¨Mr/ÇÁ{JC:“¾E$(â“£«S糖â8zXnrzbGÆèù×¢æG Ò;w<hè¼{Û›[GëÐ LâÈ\IÌæB×u·
Žªô…*Lå”÷Èý\°Y0ç·ÊÇo˜A‹-‚üjÓL«E»LÜ[fôo´´ŒE$¥éŸ÷O½D¿ênÐH`ÅHÙ^ÐÀ‚:5l•HNð0SE#{‡“üþ0^ˆ÷ù²z!jS=1ã‚ür0êŒÉžQ`¦3 ->Ø3Š‡mš@ã£ÓÝŽ2”/!ˆü™}UÖ -„c‰¼{Bf%gv+·¿l@<¸¾ ÁnõËžä?‘lî—EÍIŸÊ1ÝÒøºZdU9¹Xƒ•Â¹£ì}‚áo,áæ|Þ·²ÓdU<¬3ŸEG¼µ;w“)*ÐþAŒ »»ßîp wñ‰³ªpÒ¿(F¸ JȘ=»ôÀþνÈÉy™Á«—,Š>½â¡(óÏø³¤T/Æ2¤fž#^ÜÚ2Ž;[¸oË8ÞÝŸØQЫi]†>ÛÑýÔ4<uÍó?꧅ÄW@/tmzI°hÁd%] !; ¶Á>¿ây%ùzlã:dzžUÑ4ሳØþÈæ÷±û>܇"~ª ÞMŸq5 -ùŸe|ˆtÏ‹Ö›§ð}¯’½iFz-ˆœÊµí6U`¶ñšqdßlKÖó.}£ºésí¯nZ®~7=ùƒ´íâF+aR#å·\# -Ë›X@Cm†Œ~N…UÑÐ~ƒ -lkev6|†è¿ã©Ä†o½@ªÿ%%ßS®äœé{Ç6»ZÎán<[se”ØAŸð)-Ï®N?ßrT•ðƉMôÒ{ÃùàwðxqJ¿¯‹ß*ˆ(ÂE±9ª>×~Pµ\=À¯Ÿ¢ê°üÀ4"Sz¨ÀLi“¼R°‹²)—0¤\ ¤ -Ê£;?8H„Œ@߃â[®ùßh%P³
ø•vݸÉ5eTǘxÐy.Ìë4Ç_t`ÚeÓÆ †÷ñd.4L)Ùwg¡Áj·£Æ~Ô;&ïéï÷金D¤ýÆNö¸ìdàÚI‰ƒ]Œüâø°è–kDöðúîd(z46HØä(Rß”ˆ»Cwô,#
EPtÀï8³n:¼
gtñÕB=‡ãPÏá¸WÏáíV‘Cq!ŠT![M÷û¤¦ûœß–z¡ž¡™±RoXkõë±¢m˜èÊÍÀxÖSãý}6‘°ö›>´¸·àC™»·~
Ø1ø1 3ùó€|]MËjZWÙ´i–»FJXcõAé-Ó®øa”Š¡P‚B³/Ÿƒ”X³¢šb€šmšG<¨„éÍ.ñ7íÜþ©’|òÁŸ~>%BøAš§RV”¡Ã
½ûQ|›(Cm\ŽŒ¬HU,‡-Ì\º·hþí_î…Wâ–¼ÎgƒŸ³úëßØêýSп+›|W@
'‹Và/¬G¶<j¯ûÝ?äî~ånðkM²'Åmé„z÷~”. ‹L¯U'ο6xn¡ªÖlµ_N$ìl¾®Áè|@gœ›8·ëx‘€â_Øá¿Ï +xÚÅZÝsÛ6÷_¡Gj&B‰O‚÷à&vÏ‹ã³umgÚ>Ðes"‘ŽHÙqÿúÛÅü(¹™ÜÌ%3&¸Xb‹ß~ +ƒ#ǧéÌðhEt°Ö°–bb`²)·(xòeÂY¬ÒTO¯ífÚYÀ~¸ÚˆÉ‡ +æ3éOÉ;ë
ìfdx°\à|•œ$±aÖpåþõ1/󩌣ç©ÐQ¾Î$×Qó˜Sc›×պץ¢:/—5uV»†_vØ"÷]MEϬ¤¯.>\ßÍÕæi]d¥ÿªvCv’Éï€ TT4h:\övA@Õlý2Å!QÛW”[£qÄ«¤Ÿèy_4ÔS”Ëb‘5Eù@D·ÑÂ)õîé©]Tù.Ðöîâ=µÁOUYç^NÏX嘖Ŋ@bDÏö KtœxŒ,˺Î3#†9KP*ýGýƒeMÄúª +I›!f˪ØÚiy‚CŸ£»¼!G¼Ó<:PB«zr&j5"7…¦’Á^ózD ˆ2DÒuž=·lýe%&xE™mhy÷Æ‚ ¬’žëy·.ómv¿Î[Ý“Ìø´Î^é=kšlñ¹>ð +¨mzZp`<Xϼ\—$ß=å +,•ié3™ñ©¡«˜hÓ´«³„w˜´ÉÐá] +ß‘œ¬
/=kßíå{"Ã:ù/KÏè»dd÷Býà›jYÌÆ62”Š†ÇÝäˆYã¡Mö¢ûžq` +q[$:(‡Í@ò^«£ÛtpƒÎ‰ä<<¯ïÞQãîÓ¹o}üÍ7h±ïvªuô½ÎGZíæã¾qó‰ÁùLyDSÂwWû¾Õ næx>¥DñGS†‡†_8l¢m¨å·äT1"sÖøŽðô£f}‰°/ªý +¢g’Bz9©BË5¢Ã ù)Í<'(ñ•@×±]mŸÊ°éÂ"Ú‡`Â^¶ÚØçȾ<pÀq½žY¬°gå!Xú1lá³ÝAƒ¼{ðwní08¹6”…‰ÝÛ×ù&+Àêz!O}¾ì\†$Ø@†&HbÔIé +8|ýe“5‹G:Ùqª=TÛ¢yÜ +4©8ˆãýµ†®VÂvL0Ãu:'dt·ý«w>¨dôÀ°¦>ê¾8 ŽwÒ{{LÇ70u¾[”Mþ +äþ‰ØF+èsKå"7ô ÅVA~µkfÕª&é
32…]=ZZ&,æ\õOýgN¢õ0\X1º.° N•·JÌ#<ÌñÈÚa§Ÿ?t‡éñ>_W/Dmª'ϸ"‚Ÿ´:£Ä¼gè錂öŒâ`›â¥»Lw”¡| ‘ˆ@äN€ä嬴îícvT*ý}†Ä;¼ùß?%K8S–ÿðn‡'dR Ž%2ÙÞ ™æ>§k¾¿ñàæ’‡Õ¯÷$wQ²»_µO—øUŽ‰–Ú7Õº «òèrV +玼wãoZÂô¹Œ¯y§É¦xض7óûçݹO±DíÄz›ÿ6dž<Ä'öb¨ÂN7Q$ŒpA}yöìÐë»tNÀ£‹2ƒ©—^]Àâ¡s߸³¤T/Æ2¤fž#^ÜÚ2I:[B»oË$9\ŸÄPЫ©]†.ïèýªßÍó?ê§Ç–¯€^¬èÙô’`Еô$„h€ØûüŠç1”ÞGcTçãxÖ³)š&qûWmn»[â>ñª&x7] âhòï~bâPý øS“>‚dgš‘½DNaÚí6•`¶ñ«Í$ÖonK8ìrÞkž,lú\Ç+›–«¿›ž-ÜAÚ~e#S©å§å·\# +«›„)üµÓ@ƒÑ«á”ií7(¿öFÆ`§“Á1ä@w'¬7¾@Âzÿ%%·¦\és¦Û;¶ÙUûnƳµ¯Œ¬lâ?¥òûëów>ªri˜Å‹û¤†óÁ¯1†aðb„ü¶]üP%ø;9ÃOcªÇtR©‡öíóIHx…ÀI¤A“Tö[ÀëÇû`2փɤL@ +`Jd endobj 1784 0 obj << /Type /Page @@ -7602,32 +7615,25 @@ endobj /D [1784 0 R /XYZ 56.6929 794.5015 null] >> endobj 1783 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F49 1308 0 R >> +/Font << /F38 1082 0 R /F22 997 0 R /F61 1416 0 R /F62 1419 0 R /F21 994 0 R /F49 1308 0 R >> +/XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1790 0 obj << -/Length 3732 +/Length 3623 /Filter /FlateDecode >> stream -xÚ¥ÙrÛ8òÝ_á·‘«"..^›'OÆÉxŽ$k{vkçx %Èf…"5"eÇùúíF7 ’¢ì¤¶R)7
Ñè’§þÉÓ,Ž„ÎÍiš›(2>]¬OÄ錽;‘L3÷Dó>Õ÷7'ÿx«³Ó<Ê•œÞ¬zke‘È2yz³ücöæÇó7Wgs‹YÍãD̾¿|ÿarúóæÃû·—ï~»:?KÍìæòÃ{B_]¼½¸ºxÿæâl.³XÂ|Å+™ðöò—‚Þ]ÿúëùÕÙ_7?\Ü„³ôÏ+…ƃü}òÇ_ât ÇþéDD:ÏâÓGø‘Ìsuº>1±Žb£µÇT'×'ÿ -öFÝÔ)ù™8‹be’Ó9'I®§¥,"ƒÔæ©Q¦• -RVrJÊž -¥üÅn›yÝÌÛ¦˜w]5_‹{;>»Ls8sœö78`#PMð¡z|ÈÌÀ-§rÈÈîm
—•›²PÖwø¡gáj{Wt僥¯í™Ìf¶Ý4uk‰¬kh„ɯ?œþïÝ>®µÝ=Oº¹ù…1<„+7 **—³›{ÞoiWÅ®êP,x¸H‰ç•QÇÄ}ÙâàHày”HÐsá(ê†)¢@šI¢ã‹MÀ.¤’Ùó·ß§:~û -wÜm–Egçpå‹OóOí§ƒ‹Oâ(“ɪ §ME”æ鈺xù†´ŽÝ} ÂÝþÜèCQí߬H¨f°É¢4N$KõɶS’O£\«”i^Árq<sr`üÖ?_ÿLÀmÉû—Ì®=%è“}2¾´Ý®ËÚ’Ê(•‚©5Ô™ûæ‘<ŽÛ·í}³«–ßòவŒytCèÎÖv†ÖâÜÞÕõå»–àU³% à5íbG†Cß_šÚ:€“Œè6>8’eYÛ²z:“R:᤹£Ÿ·å]ívÓ±Fv[‚þ±èî‹Ž¾ÊÖMÉzeGâq’- -ÀZ’> -Ï.~ÐñÝô†i—Ñ‚¶îJžäÖ8ž -·q˜%Ý) UlìgpeZ¤³›Gû -I%¢8‰ã¯pÖYÏYgNsöþÁÌÖ»¶£
o-ý-xßÊ~¨{lxlAÙŽ{/“ËD -ÓñœíyÐ]'ä-p÷4úÝmì–i<Û l©T³ËUà H
ký’O“ÎeøAH÷‰±¼UɇÖý{Çú¾†óÓ€'¨F¬m÷j<;x\¾¬ªaðëù€+v\œÛùH›2O¡žÏ£úTÇó¨@Õ3?øƒÑ)çìÇÉT®"%/°¨&øØDžF:IGŒQ’Û ¯ï%‹¬^N%ªà&SÅæ5•ŽöÎ4¤oÁ§}§yÛ¸ ©Ùî'SvŸè(SYöm9šÒ!ŒÂýÀí¬Q›<‚%¶Èá;{9ŠJ
å(à{ßSNþ ”rò‡˜}|w3œžâ8Oà˜R*è&PLHÍ~Õצ¸îÆ‹n´;{r€(’OèLå>)C¨—½ä½?h‹œ30è€y/£Iî€8Îø€\r¹ tÀþªì -I{®fIq~³_çPù¨™Èµ<Iaæüó”€z¦¹\_@1êG"UI/ß¾ñg%ãÑDEqfâo©'t.W‹I¥Æ$ßdó -Ýðõ.]ñ¡‘kHU¢^NUÏÆF…pÇûXpÔÓ›DD ¤¦Ï{ú>ÕqO¨zêQ5Åmk^BßBEzèì!3Hõœª V‰¶Ð‘‰áî¼p–ÅXâáŸ/œpòMý§ên‚'b§›Ð‰r1{§\ìºfNç¥ihÐü=u ÚÆäÞY—3@¥q§¦-»fû´wر0Cû§DNvªî;µ¤’Ée8e³,EEåuo¬µ–TÚPRãFjûH_Ì™Ù}ñ`ý.–k/œ²\ú\‚Ñ_Å~.[.µy©ï˜p6ƒÄ0ú@¢S€eaže°'nžå¸eM(2¼%} ÃÆCŒTIÅ`F¯€ÍæU„ƶw§\õtÊ“Ïûô*5^µ§Ýp¶;[#;™‹#†´†#ê,pt ÛêF´6Q&¥r‰Ê`ÛØDq,Ò¯D ‰ƒuûqÀvp½ö¨,Œ´z^êVWCVp_ðåFÅ.\L„00£\jÁà¢ØÖÀ¸ð7£¾eÏ}Å’a¸ñ±$Tv`Å “– ªg -*Í|x/§«R¬àH…g¢Ü„'’ã¡RX+Í_ЈÕ3á©N~±ÛÚ9¤;eMðA2R -jÑgY T¼Ó¹$RbÄËyUჀ–¹Kç”Ou±&¿™{=Ô4Æán[ÔàEÙ-ç샛5öÛýaüåú DÛ/#9ÿKML—(*ŸÕŸÎsà7UÖ»š(¹_Ÿ¥³[—ê¡‹®,%Jˆ-°„DÀ„Ì
@ì›`>,,(±_¢×O•b¯Ÿy¯yZGß“§AüY–}[…„ÛPs,åV%²ØL)4ÔlI+_£Ð¯0h+߯£Ž3þ
–¥Ó4Ò=ÉR -e®Ò¡? -‰,ö ™$•ŒâTæÏ¾a'Qk=Ø—Þ$4d¡u’Óï*Ž®0k[àãÍjWшf¹/ -7ŸúÕ”N𬾰*·m7Õ5À¶@åòÛ^:kD‰Ô¨ÉR³µÄPƒúø -ÛßönñÒ^û¨Ž#üéæ„Òˆð¤ñÿBtÿóYeB–y ×e*O=S.Ö¥Îu%ýÌFy”Î?*úÂLð\U½ô™Ùõn³i¶lÙÿv2.1_:l{Æ®;¨Ò AüÕÓ›endstream +xÚÙrÛ8òÝ_á·•«F\â"ÁMíƒ'ãd<G’µ={Ìñ@K°ÅŠDjDÊŽóõÛ@¢¤vËåR³Ñݾ@všÂ;Õ*IE!OóB&*eêt±9IOïaìí s4sO4©¾½9ùë¡O‹¤ÈxvzsÍ¥“Tkvz³ümöúûó7Wgs®ÒY–œÍU–ξ½|÷a +úyýþݛ˷¿\Ÿårvsùþ¡¯.Þ\\]¼{}q6gZ1xŸ»žyáÍåO½½:ÿùçó«³?n~8¹¸ {‰÷ËRùóä·?ÒÓ%lû‡“4…V§ð&¬(øéæD*‘()„ǬO®Oþ&ŒFí«Sò“J'ŠËìt®T"YƦ¥œ&©©ÍsQ€ü”RælJÊž +¥¼X™ÅÇy[Ý®«ú~¼g&³DJÆ,¨&ÖçÑúL±Dò¢2𯕩Að2›mÍî®ÙmxÎgUÝ™û]Õ=Ñ°å´ý†ÆÊuÛdÑDÑÊŽ~?}¿ÞB›OUÛµ`"Õ³›•Ã.Í]¹_wD\µ(„‘äDV$9Ó *Ëò“ñDƒíɤ`ÖD“ØSRžf‰ÒBÑdDõ‚&=U¤ÉíݹNr©Ž,¨&ÖlSˆ$çÙhñË» ±±4ÑiÊDˆ¿^©‡Ìy’‹\:zÐÄ\29kMG@g-!§sB–ýðîŒé™¡GÿzI?7ÿ¾!àÚÔK ´ð‡f]-ž~³+7æ±Ù¹yiªEc—È,ˆ(ÍÁ4 +%ã– Ì(_Á§ªµ¯èˆ +ÉŽx9«€pÖ Õr ¯wå˜u¢d^”.KD^îkŠífùŠxZ7I¶BàÔ–ñÑ+FG¯ÄwENX\Ù“˜Ç>Kü¯´ +àËzI¨~9À:5dÕÃd‘³r“DièàND˜ÊsÒú÷7ÕºÜ
'í($$¶àEÁï:¹.뎸µc§˜aþyBóðæàl,šÍ†¶ ¸®jç'È&&=…sÝJ9JB,á”sìJN›Ã)3¥¾À_ëÈ_k×8ûfßv´à¡ßÒ»6¥ê7¶ „ǽ—Rä5À³òD£åú³ÄÕ†FhÉíÜÕMB'²€òy"!łź,-)jhÓ +wî-'Sç>‰æZ]šÆE£°@¸íi²H´žE¾så(P›QŽn0"pñ=wù”r—ÿ!¦ïö
k§8î^p1!§lо@1!—ý¬!®LqÝŽ—ÝhuçÉ¢H>q@$e¼ðIBQöRD>Ð…ËÀ
QF/Ù
â¸{ÁmÐU]öÚ`<«s +"Ðcà`Þ8˜Ôkž•…)Á_–E :ÂÊálÈ +®¾\reÃÅDƒcTðQ9\”;kp¸3ð7£îeä¾ÆbÑn|, ÅœbIK•4 +CRžù¼,E¶ªÍk¢œM¯Ï˜€Øšyu°©`šd9÷IG´(í9Z–’ŠÜ§A°ä¦üä×OŸY_b¢!|¢À¤œ’ endobj 1789 0 obj << /Type /Page @@ -7640,55 +7646,48 @@ endobj 1792 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [254.5198 432.9434 332.9349 445.003] +/Rect [254.5198 299.2992 332.9349 311.3589] /Subtype /Link /A << /S /GoTo /D (man.dnssec-keygen) >> >> endobj 1793 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [353.5545 432.9434 431.9695 445.003] +/Rect [353.5545 299.2992 431.9695 311.3589] /Subtype /Link /A << /S /GoTo /D (man.dnssec-settime) >> >> endobj 1791 0 obj << /D [1789 0 R /XYZ 85.0394 794.5015 null] >> endobj -478 0 obj << -/D [1789 0 R /XYZ 85.0394 188.7332 null] ->> endobj -1794 0 obj << -/D [1789 0 R /XYZ 85.0394 160.047 null] ->> endobj 1788 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1797 0 obj << -/Length 2958 +1796 0 obj << +/Length 3216 /Filter /FlateDecode >> stream -xÚµ]oÛ8ò=¿Âo§ -QðáóÍÕõ§ß^œ'*¸¿þ|sŠ8 -®®¹¤Ñ§Û‹_½¸=yóàÃ?/¾Ü_ÞÒ”¶4~º¾ùHŒGˆÞ^^]Þ^Þ|¸<ÿëþç³Ëûþ,þyy$ñ _Ïþø+Z¬áØ?ŸELfi¼x—ˆñ,‹í™Š%‹•”RÝý«'èÍš¥³òãR‹ -á 0å,βx‘ÄÓRH#Àî±€3¥qлoÅÇ*x)«Š 0]Ó¨jš'šÝ4»~’yݾ¸µe×Õª¸ -®7(¡÷WÊçCð˜%"É€{ä ©«WÂp+4K”V©l-—ÏŪü3ŠD±~L¾u -žJ€¿ŸƒÀ›=ÁI,€ØAžó]W®öU¾£w:pKXÆN -î¬ëÌKþ\3 )=Š¢àã>¯Â¶ËWOt†;“ڂшÎQôJ©)“`®hé4WÐ…5)Á«[pcã,¬rŒQ±q²Ùu4ƒöð—f÷äÓoöõšÞŸqoZVÅÖî‚ŠO"—¯óeY•è£Hl½·ì¹¼6ò‹ª—Šñf´·ýó³áÉÚ'
ŠØñõ—ojhÏ -õo -þÎxš©¡F…÷llš±¯ž|Ðgs‹¶,ŠÚ%Î5µ>âå«f»5–…/ FX†ìa.t‹š$Òö€¨Z»<T3âPàÿ©tâè‹´I>€ -âŸ/ -*žê7¢‡u" -9¬ƒÙCâÙÍ!0M©²Ó›÷X3»ƒPÂ"®åpûa:Ø0Ô}B7ë£ÀQ(¥RÓ -Áš(…ÁÎq"2²ÌOa±Vܨ:b±îzþ3XÜÃ_L>Š¤3©Z®€‰Øl½øºàÚ²L’76g=ÈÀ -ª§Ú}Cñã¿a°Î+·¨ÃÛWWb
Æ'þ× ›¦3½8~ŒÉg?&HÌèÉ´>°¦:²/¬˜eÄýX¢úo•JC«Sཀྵ¯U±—œ”&FøPÿ(ói[vöBË×¹j†Ç,Jxü}ÕL̤rQϘc\ñ~ ”HÅ£ïmt
H7L^ªu7@K«2º¿ÄÑŇ_ÚÑ7”²sZwù×Ñ¢co0èÎÕl#~NT¯AªÚ¸rŸú`d¶åãúŒÛúŒËc5$
=Ê„ñ¹ -Í5»üP¡ñ¾Bã¶Bƒ§_¡ñ£ZrÌǽé0ƒ*QÄÉè:ñ{l9ÑúHéæfºø¿WnîÒ§¯Ù¦.>÷³
´œ½™Šú"é‡Òqø½‹J$UqúŠËò„bó~žÂ2–„_Äáúõi½vžuçÜùí*kÚm‰©cn¾è@§Gïè¦rø/®Ãì‚endstream +xÚ¥ZÝsã¶÷_¡·Ò3'„ø H>^î|©3Í%õ¹é$y %Êâ˜"‘²ëþõÝÅ.(”äNs7cB‹ÅXìÇoAÊEÿå"±Âæ*_¤¹I,“Åjw/¡ï‡+É<KÏ´¹¾¿¿úî‹Î¹È²‹ûM +q–ÉÅýú×È +%®AB}úùë—Ûþq÷ñ:5ÑýíÏ_¯—*‰£/·»¡ÖwúéãÝõRf‰Œ>ýõã/÷7wÔeYÆ÷·_?%§Ç¡w7_nîn¾~º¹þýþÇ«›ûa/á~e¬q#\ýú{¼Xö¼Š…γdñ +?b!ó\-vW&Ñ"1Z{J}õíêïƒÀ ×
=©?¥:¡@%O)0É…ÕJ +”ðÔÇ ®vÿZì×Uóˆ[*/`÷"Q&uCï·åõRÇ6Ú¸A×2‹Ü@ %ѦXUuտǪhˆüÀC]¹&Jß2‹P=sÔ]“àG¦vU_._«uI½«båÑò¯©|ååþ¥Üwà—Ì#šd}XñBmÔï‹
‹cµÂMã6¥y’‰µ0XMÕUóÔQÓZçQùï¾Ü7EMԦؕÔâYÑ®Ò<ºí‰Jj€FQw-µx +Ý
µ(>`/9%uRÃM‘éà%e½3ÒD·§ÎGÉD¤jP½3 çcEj¬f&çâ¸ÐçrU¡žÊ5žB®ßÛ™'¶ð`™oÇ廓VF “ÂG'=>žó¾K‘Å6}Ç×®¾î¹_GÓ˜L-cˆýýÒÜ׉ÉC-ƒw “¡Ç‡³´Œj÷.¬Àán!B±^S"꺧%–‡’~`ÀÙL.'°mD%8½‹X«éÌ
b¶~‹“¸áyq¼äcuîÇöL#¥ð òØÂ9ÉLh•gŽušÔ zÀl¹ÍbWÛ ¾WˆÚz~z<—´Âu»+*îz(º +¡ŽÒ†ÙHkÊ{4ëö÷ÎÖGá¹ãQí©\ëÖkµƒHûj½v±Ì-è=^ +HÃNÝÐ×nˆiᑆø¯k¾¢“Z€±+{¢<û¾Z ºß´áŽ¸(*j‡Ÿ¨·rpnCÚ)›žøÆ.èb.`Æ=užÃG'ù™H +0¡ß™T¤à">MpruÃ1h|ç£ñ<4eJX“KùPÂb)AÁñÇï'#ØãTêúƒ4åÔÕB…ΙÀZ”}˜:÷jÜN?ð/Ãs§ŸËuN Òewª¯”€ü3]PžC¬åÏbÏÀõÞ2fÒpâÄQÁÎÆR-aŒUa%¤¹ú|(êe׫'ÚÃ7ÆÚÊ"ë䄵æ3ZG¿éäJúÁuÀ‘¢Ø‰7q΂ĺp¸('Û}O=Tˆ$Ñk» +å·‡fM¿Ÿ]6EÒC]îxôP|rѵھ\aë/Ï絉_ÔƒVœ7£½žŸÝšFP»¬@ +Óßñ†"¸uöå™ û1çÆ ¨ÅcÙëKÞ4h7JÓ¸æ¿tM£‰¢¯œBàµB¦Ú^ŽB!×ù(4pÍžn/gALbôåÉ®³ƒP*biõxúq:Ú0@Š! +¡›
QèÇ(”ÒtÄ0)Ü},t}þúºü=éÉ` r@iv +ÁšR¡R°s 1]'š,ókp` +Ún¯G8Âw·;µøÜÂŽá¦Xð2”ì6eGÁEia5X%¤h¡TÛ®%TÖÎ&±bˆÞ–«bu
oÜväh9¾ÖWáû¨YB?øÆ›k\|A&VÔ¾´ÈBӌߋƒ¬™e›UÙ"<»?gÎÙæ18Ôñ#…?g¬Kÿ:
oÓKšËÉ”© +¾à…Ç+™Pq³ö÷-ßÂߺ÷êPûTøâ*‘P,@<ˆlv¾nŸ)´—‹¡endstream endobj -1796 0 obj << +1795 0 obj << /Type /Page -/Contents 1797 0 R -/Resources 1795 0 R +/Contents 1796 0 R +/Resources 1794 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1787 0 R /Annots [ 1799 0 R 1802 0 R ] @@ -7696,61 +7695,58 @@ endobj 1799 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [339.2005 655.8125 400.4005 667.7127] +/Rect [339.2005 543.9652 400.4005 555.8654] /Subtype /Link /A << /S /GoTo /D (zone_statement_grammar) >> >> endobj 1802 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [455.0966 437.7416 511.2325 449.8013] +/Rect [455.0966 345.7585 511.2325 357.8182] /Subtype /Link /A << /S /GoTo /D (address_match_lists) >> >> endobj +1797 0 obj << +/D [1795 0 R /XYZ 56.6929 794.5015 null] +>> endobj +478 0 obj << +/D [1795 0 R /XYZ 56.6929 769.5949 null] +>> endobj 1798 0 obj << -/D [1796 0 R /XYZ 56.6929 794.5015 null] +/D [1795 0 R /XYZ 56.6929 749.7875 null] >> endobj 482 0 obj << -/D [1796 0 R /XYZ 56.6929 636.3095 null] +/D [1795 0 R /XYZ 56.6929 528.8451 null] >> endobj 1800 0 obj << -/D [1796 0 R /XYZ 56.6929 610.51 null] +/D [1795 0 R /XYZ 56.6929 505.7912 null] >> endobj 486 0 obj << -/D [1796 0 R /XYZ 56.6929 487.207 null] +/D [1795 0 R /XYZ 56.6929 390.6092 null] >> endobj 1801 0 obj << -/D [1796 0 R /XYZ 56.6929 461.5669 null] +/D [1795 0 R /XYZ 56.6929 367.7147 null] >> endobj -1795 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F42 1288 0 R /F21 994 0 R /F62 1419 0 R /F61 1416 0 R >> +1794 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F62 1419 0 R /F61 1416 0 R >> /XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1806 0 obj << -/Length 3405 +/Length 3342 /Filter /FlateDecode >> stream -xÚ¥ZKsã6¾ûWè¶rÕˆÁ›Då4™ñ$NmœÄãÝK’-Ñ+鈔ïÖþ÷íFHQò¤â©ÍÐ -£#Ç—Ãçwð¿˜_ÏÇ”B3˵¼À©gÌxÆ”µ’˜’¶[ëaá«ë˜}laE³tQaàE2²[” f¹†õæ·:³„F‘Ëͦ½äzþ²øc_í -1Â0 -~d0ÉÌp8^žå<ÏÏØ"h¤\§Qäš4FBöÀ`A`祈\bì_-˜Ê1°G‚å#ÀH›MÔrµ"‹ÔuÄh -ˆ™ÓÈ{%ɽ+AÊ)ï‰VŽOxòSÞº€I[>š/D¢äÃBîSäùy÷ ¡—L|©ûdJŸšÂ0^c|è½@¨È—ãLÀ¤8år¸Hœ« —ƒ½Îº'–—“Ú¢³ÎEå‚éóÚšrÖÖÈ5±)×Q½„Àô¼‘kBˆa¨ë¢G>”b¨²"º)¢kAêȵà[çZÜ;Hwžz"ŽÕ^{uÅÀV1çM‘ÂL1ò&.é ÿºƒ)JàDšù¥Þd$Éi¯²Ùy”ö0ôQV½‡„ë×û§UÙç< -’--ìùÙ#×ÄôÃÔBg©ÄpþQŒQbŒ<Øn¤FÛí‚íF&w@ìö÷Ûº§öÇצÜÖKbøx󙨴ȴ;¢nË®¯|û?Õv>þ¸p -Fœ‚Ä´dš<àyU¹(‡)œ=y -,&ÀÌ%¾ôr÷è‹+· j"ÿ"ípŒšãqjªe_UÊ3y$\Eù@š#äF®·d02“5'•äüH_Ö›Óº+•åBŠóº›rÖÝÈ5Ö݈óRîV”ñf0©)ι&$lÓ鲎ÕØȨÆÐj̓ãCTcx Ý‘5†öAñÁ©14JºmÊg¯¯ä+ÄÈ|;ÍÆãò] 뾯è™6åZ9a°ôÐzÖµçñF‚b:ÉsgÜ›Ä/„dò«Oʦ& -.ôpsÂòÉÈ(pƵ3Nª MÊSµƒ‘¶°,$³ó»K+æ-ñTMy¿ñ|qj•§#¿#æP±œØ'ù“rN‚«žw`ÂüÖBÂvöë“[+cº´€î„߇W·XI{.7{ªÂùøÑØÖe3!:&X.ò¿vÄ9Ö;ƒpLãŠÌ56YÞÔ¨°1e§‰¡æöó•–í¾4?‘;Zí—¡ŒÇagäQ>
qFH”¬n–x¶6h`ÀûŒ§¶éêûzS÷¯Ä@Ö""€+ÔÐ^‚ù†4…„Ø[·ûÍŠÚ~àžFy©ûõhæ踱c̹¼¨”yö·£U9{A&Û½‚dÛ0Ê&ÉKUxÍ’â -=ŽU=ù쌒¯‘²qq4Dõñ -÷rí¹ÒBåÄŸÖ™Áo3ÒpÌ -`vWú`+ÙÒ±Î1ä -õnçÞ„´nÐra&ü&U"àíþöëÉr¢³Ä{r·wR2³9uÄ®Do«ÆU3„àšîþ^°{¢´°Q»zåRˆÓÒäE&ÐùˆÎiX–šl¤“<çùÐÌœß>Ëâc\@Ðʇ ^=‡¥Ó%Ï3U¬@#jøšÅ ÝÅ -p…çu7å:»‘—~¿8cÝnŽ+Uøy€ycæÀ41ó@m¥Ê -%FS -–Â…p𳩻žZíƒ1®Y†Z5b¼'„O·°åË“")nŠäâ’K|œÓ°wQ¢ ä ^‚vó\q)q‚µY£†šKxÎùÜCêç´b™øT‚R(¤ïýœÝ‰h¼¯ÒÂ(& -«à%úÖÏww -ŸÇ)‘eP9Ë“{è*Ÿc½q%Æ~®ñFa&a:SÏD•~&6=9éE Sh5/ÎΙŽ£Õ HS †Õ<*]áÀêÜÿÃÉ3ÊNqÂÌP¯DŽV»h›Å³šººÂ€Z¥_b8 žž6T§ÿ‹HÀÏÌ´È‹x‹:u‡ÄÁtʘ˜ŸBžgK½a°¦Ó@Lκ’ŲÝ>íü‡ÃoŠT–s[œ>2Ï?¼µYÎ80Ä$p =€2ÆdÑ!ŠC-¹Ž§Lšº -÷ÇXw{fÒop38ÍÅOâp±zõg_ÌþçýÓS»óªýoçw*wé®HGû€ýºùÄFüƒ5ð£endstream +xÚµZKsã6¾ûWè¶rÕˆÁDåäÌx§’Iâñî%ÉA–h›‰tDÊŽwkÿû6Ð +ï3?‘>^ýp‰Ô·×?þxq}þûÍ÷g—7q-éz)áv!žýú;™aÙߟ‘‚›RΞáÔ6Ûž É)8-›³Ïg¿Ä“^÷ê”þ$/Y2=¡@ÆR´P3-M¡8ãNŸÚ¾‚% 9ï–½]¼E“·/¡ +¦²ìËͦ}^ü¹¯v/‹¶ñìé$ššêÙëÇn›Í‹¥Ô|õPþ¨ÖØ|×î°ÖU‡,N×¼ÜÓrîå{¬vÛºïñ]5¿}™–QØ +8vBT).Xvž“r~£Çwf^ê‚À>Ì”FJæØ·û®G(ÜVøë&sÒÙÆÿÛöH]¼ÿ¡{‡¤[5üÖ~„çz³ÉÇÂußí»j]L,“€,e¡
¥oÞAµ_èvie£^ëZ¤Ü´ðÛ=V«ú7B˜[4Ôýå°%Õ„”Q +ÆnG®„v«´à¾ºÚ²Ù‡Ö4K—F^¤C»u©ÌKXbI@»>P{„å9•s„&D&2Y¬–«s òUŠüÒØÁR«Ë¹uH9HÁ¯ƒâÝ>,W+@L΀Èfd8À“0$U|–îØ—ÀºWe V.†÷e]0SØNpä-j:é ±[$•) øózt"çˆ\cǪCKA@62ymJ‚È5!C
)€V:âst,°‹œÓàB-ùÐv½oÔ=„Å9zÛx_õ¾·éž«ïν×nñÉ!Ãn¹6G’ÜúºC7̉‚ ª&ðÂûbX„ѲhÕ8Že!ˆ(lèлZ¢«<6Ò(mÓ!“ ³«Vû]WO{|À1f4š’¥ê»8/xs¦á½Ú=×ÝdHoÄ¥oKFÊ¢”D¼ejKðù¾ÙX>œvÁ`›€×ÉT<¬$èðë )” +ö®–
öÝ×O6EWd›Wd»0HAspEÌ(L» Ó.èÌÒ.L×@hmstËþv.†~êDZÖ¼¤eï¦êN*H9Fç+JmiÙ¬§Àn¬£É°n±=5±×Pó«€±Ô0ÇI¸¦\ÇṎøà©R¶$;9`š˜?é¢< ÌÍÈã¦*£/2ÄM ‡¸ibÜT˜-Ùßíò߬nEO¾)‚ýñ€Þß?„†ÚwuÕŠ{È +e†Ô‰ö¡Ä¶‹žÖËщH~,Z—ª`ÒÐÑ|!Åf[0|2O‡OH%('ìájô“Sûbâ,!4÷^ kÈCÈ9^¬9JPˆ
!Ǿu2ä8±ËBNê‹NAdÁÀ*^±Ö„넵® ˆM…Èê¹‚í¤‘kB6*â¹uO™¹É²Z8‹¡Å¶ŽB‹íu¡ÅõA¹óØcãØ\¡Û›«MlqÑÄ2bšÉFÑÄe þ*<pE œÐ2ßMF’|i±vš+ˆËT°ÓpH¹ŽÃ!r
pØ?®—ýaÍ#¤-ÍéÙ#×Äôyi©3‡ÞlþQŽQ9†¾Û¶§†$ñÝ–Éí4vûÛ;]úÃK³ÜÖ+døðé3¶â"Câìˆõù]_yÚžvu>ÿ¸ p€ð +†ƒä´èš<ày]¹”Z†)¡9Izt +“*Œ©‚P2ùÿ@RHˆ/ ùߩ܇ڔ!wx‡ÃZ*¨§¼°è) ±ñb{oîz-Jaiþ¤†iH›)“yª–NFèðñB”¨$hy¬v0ÒÖ&,€3¿97lÞ"OÕ,o7ž/N-tªXù2‡Ë =¨Ÿ$ãYn8 n{èy³Möª…‚-hö룪åÃ'"Pâ÷îÅiÀž¤=-7{<…óù£?`{X6¢Ûƒ ¢™þ{[¬íyg¶ib\V(%FÃ&Ë›Yvz +Ü7”)(ÄÛº‡v¿Y#íîq”çÚ}sKgŽÛ¾k./*D&~墯¬¿@—=þò†1˜‹Ò[Gp endobj 1805 0 obj << /Type /Page @@ -7763,14 +7759,14 @@ endobj 1808 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [213.0783 413.5086 261.825 424.293] +/Rect [213.0783 336.0734 261.825 346.8578] /Subtype /Link /A << /S /GoTo /D (dynamic_update_security) >> >> endobj 1809 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [398.1622 289.8258 446.9089 301.8854] +/Rect [398.1622 213.5298 446.9089 225.5895] /Subtype /Link /A << /S /GoTo /D (dynamic_update_security) >> >> endobj @@ -7778,29 +7774,30 @@ endobj /D [1805 0 R /XYZ 85.0394 794.5015 null] >> endobj 1804 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F62 1419 0 R /F61 1416 0 R /F21 994 0 R /F49 1308 0 R >> +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F62 1419 0 R /F61 1416 0 R /F49 1308 0 R >> /XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1813 0 obj << -/Length 3337 +/Length 3379 /Filter /FlateDecode >> stream -xÚ]sã6î=¿"÷æÌÄ\R¤Dª}JÓl›N“îes·iû Ør¬©-¥–¼nÚ¹ÿ~ -»ôô -”AŒj Fe3a´¥_§nê’±†ÂNÐãé³³y–舜p”I¿m«¦&à¡Úlˆ¥Fi/ ⥄ ppësС´5cA-6'ˆgn\ê¢eN›ÖÒѦ±Qµ4Ò‹‡ÀE½$¸?Œ3üQ¿ q"¢]Bª5â& ö€‡’ƪǺ¡ò‡ã´¡¦¯âOÍ -è%¡Šáí¦z\w›g‚¶[8›r7šBü|†ÛóZÑXAøCX4u»ååý¡!8ì`?&‰)-¶O›R€ô°Ë4áà"v3Ä¿üî»çhm.f¿Î½ÔËÄå³C³ß,i¼£A/Fìz¥-wÆAãð¢¥Á‚ºËýÓ¦Z]‰Ê™€rv<¼i›ØÑg{æ-˜&è# vüÒÖ²î%6›5«ÑP6ûe_îž ÆŽ € Ž™eŸCô³O"ÙjÄL²£»Ý~‡9_=,[< -•ÏvG¢J¡ŠÖÔêÝ!ÃKj0oÐò‹‡&Ô j^ö懀ªžLûL%3t4zA:¦ -‡»ç'š’¬º5×¼@ëÝ'‚p;¨3ZÏöÝmQ<U]±©~+:¯æÇu )â)Ø1;KæŽqbÌ x šÃÍ2•¥xç”bb4;g žbß\pXtœÏ q}øðÁã^}qóîÛ+ˆo.àÇ€´b²”ÖøÙœkM|À4×pš“X—„@ac +ÂÈá8„15þLiò ªx¦»¶‹(«‚ÔÌÐ>–»«5٫磜²qdíP´=?K¬ê#cÀQ@¤h´¥£ìˆÕ5êEÛñqnª-h -bÁAe§Æá”L^)` i>Ä¢úUE. -@£«äö–k¦ £‹ðö ÅoÏÍÞ— ×Sîh9¬0šÈ"i.¬Õ!ÝŠá@ƒd6ÌüX;ƒ¢7@H¨ƒj¶·¼£È¡óPŸÐD-"9¹Èeæ¤S°+™÷e*éÙ\I)g×X ¬ŠEË'Á$™n Ò™Æú)ÐOùz -µJBó~fG@Vnhu{ hêµ°*™ÂÊË£ÙRÏGl<jC'Žû–¬‚—|)â°N… -¨6[Ö)\¿£‘±Žáê‡
ÉK”6mat—g¼KŽÒ¤É浂v[àµ]9ŽìuÉŠ ¢›ÞE¿Plvô‚$˜G{¦€„Ëåæ/«i`à¥Aõ I0#› -¾ÛMýš
†‘"L#?Iâ þ„6Ž-|ßÈÇŒj`™™»“‡lë¥Í(”Ó}#]2æ¡6üZ sÇê™t/G.±H§z€pn„°°ÈÁ_¤zo7¤ÕKUç}]7*@QÕ½`,h²µÓ»¡zÑlûä°Ï©Æœ-±à³¨V}À+—gâ!Ùõs0ý¸åçxñJ;©Ä%?H;¸ RœI“ÿqBƒ¯rV»5P›4ÿûÉBOq>$ù2YP -ðÇ•_Íh|©UZýsLöÿ„IÀ‰Tù˜É×2šTä6
yØáéŒ^‰…údÓKòÄŽLÏ?|„ÔŽ` ˦dÕ ‡ˆO‰gøl'Ly*v^É< :“à}Â0åh›ÅÏe7~(‹ð¼à“1~`›¦îØãkÖUm©LÔ=‹Ð"A1ÃÄV“'Žæ©FÉ¡Û>ƒ¸¶Ô^L§¬›ý#óuñîš1÷OÞ›F‚‡À<lÂIŸ_öV¶ -x3œp0ODºÇö©Çé;C^‰¾Z!¦—¦*ëÒ?{NC>£ýK{|MÄe½nhÎÆüê¤#aÜ7C -¤{"vÀÇüfrÉtWœ"F’›DB»¿³úskU6~»Ö<㲑r¸n=ª³BÙè¹l|í—N:øó¤ÈUªìïÚþö¯ Ž?3Vhç^¹“ð„ûü¢K@˜ž¿ãŒäÕ¯ ÇeØèûÞ@ç¿þšÞR¨`ÖJy+_Þoóo¯^ÊáÿÚïïendstream +xÚ]sã6î=¿Â÷æÌÄ\R¤D©}JÓ¤M§I÷²¹Ûδ}Pl:Ö¬-¥–¼nÚ¹ÿ~ +rzõÃýÍí7ÿy¸<·fúxûÃýù,Šåôæöûk}ópywwùp>Si¬¦Wß^¾}¼~ ©„i|u{ÿ5A2ú9Aôáúæúáúþêúü—Çïή۳tÏ«¤ÆƒüzöÓ/r²€cw&…ÎÒx²‡)T–E“Í™‰µˆÖ²>{wöï–`gÖ/“Ÿ‰SG&IjéDKY « Y£D”ÄQ+åHI9`¡”–2Z7n{®Òé,‡Ãs+©„Ö±žt‰±ÐbðuxP2Z%IŸ‰w/n^ '®&-äô³.ê†FÕ’'Ϫ«ë€ÛTô»_ór?8¶J”H#0=9~àYUÎ>^ØåÕÆ"S&ãuE`íåe]¸ÌJ+9}\9/Ü2ß™[Àõä`q÷èèÒZ¦——¯#{*+2¥Œ#ŽŒ5m•™ù3k8 } ·+«Ù<¯Ýl^m^¶ á#SÐ <«Í'·o‘Ž÷ïô¯cc{ôí@“DY°Ív +Ð<ã¿T%-<o:0µ«üñ@(ë¢)>òJ/Z=C™€Œ3aãO«D³×EU¢Y$1˜…7—$^^}$]äÉÑ/lº ©ýÊ•c†ë5)
C™o`Á±Éh-’Ī€åÜ‚·ö§CòÕöAöE³¢Ñl¸ljBhVyCàEE¿eÕ0×pôõëpuVïå +Ÿ©xŽàúúþ
†Ñ@5Ùuç +bG‚cÔˆ86˜˜Cاû& +†×ëâyÕxÿh½Ý¸mo ñóÜkIs9áwQhb^•
œ–·÷JCp87À~Ž"ã~ËÁé +M´¤QîhÀ¼ÁÈoÚP' ˜¹kÝE9Xö;)LE”{QCh#+øðÞ +¤ O¾Å€ªÏ´pôç¶mL—*2F·Ÿ¦8à)J G‰îìÀO¿¹šIªÒ¾LñÎÐÊúûW%ì«ð¾ê.ñš¦Žâ +€ÂÁ"6&„Q¼IuÆÐ÷-¤Él§ÞBa5R…BægBÝñÑmÃUÉ[=nÈƵ}^·ü,h²(Œy + +ã*Ô]ÅÆõ*°¬5& %S†ö꯼iÜæ¥ñùŸ__QC«³¼S˜²óÄN\fPûƒ5š !%N2pÉeÕ:š•Óe^¬a?ß"±Ü9³Ýά¡€ +ƒMQ›Ý†PÚL¦_
C9lt¸w•dF$:Ú–Û"4<xïMþïÐÑ]2PEœi¦ G7á㇞/¾s
×Snh;,0ª‘M°duˆËc{¤`A2éf^öN æ½@íÈrày½få“#>cß[ˆ‘œ\d2w‚,&¶2kô*ñùLI)§·X,ó¹K'!D1,ÍLǨ¬µ‹|ãŒú0ñRm›š†t±ÐÈš4[²yÃ(/ë=Aco‡…c +K/‘jC_þÎÀÁS Ö
ã8±«É/xËcˆMU¸"±?éJî
¶s=¿¨Ê1ˉEdÛ†NõÒøâñvÚŠ41ª¿Û(Ec„Ä\—0›ü‰ +FúçxÿŒG«„Šã¸Ï¤om´ú¬ˆã´µŒ%éæöíGÃZêö¿!ä$qæsÀHÈ¡$2:˜¡j5×é›ke:5|tši>—m¶S‰`¦ëêùÙ; +Œ÷ù¶ÄNùC,#ölE.Š¥þ–>ÙKq½7_Wü›‡É^< HÆx7¬È‘Ö‰T¿s¶NRqxIâ'›Ûeï‰\€_m¨
X1 .†È±æW'Ê—|Ñaé~!·€"b,žH£ìs<©M&ªï¯‡Ç©Cb+ƒìøØ7¾„ endobj 1812 0 obj << /Type /Page @@ -7813,44 +7810,41 @@ endobj /D [1812 0 R /XYZ 56.6929 794.5015 null] >> endobj 490 0 obj << -/D [1812 0 R /XYZ 56.6929 431.0875 null] +/D [1812 0 R /XYZ 56.6929 360.9911 null] >> endobj 1815 0 obj << -/D [1812 0 R /XYZ 56.6929 407.6376 null] +/D [1812 0 R /XYZ 56.6929 338.0418 null] >> endobj 1811 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F40 1218 0 R /F42 1288 0 R >> +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F49 1308 0 R /F40 1218 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1818 0 obj << -/Length 3077 +/Length 3343 /Filter /FlateDecode >> stream -xÚµZÝsÛÆ×_Á>…êî8ØOŠ-»ÊÔŠã(v’<@äIĘ”ìvú¿w÷v¨“-§íð‡½¯½½ýøí‚b–ÁO̬I3UêYQêÔdÂÌ›“lv}oNI d<껫“o_+;+Ó2—ùìêf´–M3kÅìjùËüå_ÎÞ]¿?M¤Éæyzš˜<›wqùŠ(%=^þpùúâÍÏïÏN=¿ºøá’ÈïÏ_Ÿ¿?¿|y~škÌ—¼Â#^_üõœZoÞŸ½}{öþô·«ïOί†³ŒÏ+2…ùýä—ß²ÙŽýýI–ªÒšÙ=¼d©(K9Ûœh£R£• -”õÉO'?ŽzýÔ˜üŒ²©±²ˆPʘ -ØOèrð}½^ÃY33wMu
‚†¶ž÷+GĦÚ0©s»;·#jÛ8CŠQD¹iy0A‹wxì«–ËÝ©°s×u®£Î_3“Ý×ýŠ±«›ÛÀ°·\T~Ú’{ÛÅ×ÃDñïÈÂNË«ˆ<‰GQ–ž(õ¼½! -ñ†#ÞpP¿ªxbÍ”¦
„†ž^Lس¥É¿f™üH]“‹!Òá°8¥sÛjWõŽúèT¼"R]µXQkSõ‹•[NH>fÄzŠbÆŒ´ñê´”ó–TyS}`E÷ìc#Ü-¶ý!±AŠHí–ŸþV±A’ó¤ÃöÏû‰˜IöDûhÚÆ=]}/à&¥0+â!¤„ýÌÓ=D.¥xZ¯_jÒÖ-j¼b·Ä“jÉ„!ƒ -ï%Æ~a öIìç<Šý#ì.7ðhì -‚_9š -þ@üÔ±l]×|ÓSLJ¦½?[5Ý=bKs*zý}ï:4#tÔxM^„EJUœÒ‚¼ -Çœ.&@ -©’ƒqû•’®Ýï.rÜd>‘ñAqðJòœO•›©)bEhð•ÃÄ D£¨n;‘¡ÚëIn -Â8€É<Ú5¼TKâªÊ‹¢ñ@cêÀI˜Ìñ#ªãSŽe÷}`yQL}_JW5TAu¯U2U¤ÚŠ‘z¸R™Úñçki¦Mà#hV¸«»>Ô«¹Çhðô>.‡è¾©ûž|4‰;§@‡]¼£ž©×îs~Yxð¨—g¯^=@Ø&+ìŠb¦Ëƒy -Æ–ii#ìdX1/IðyÌž25Ð}ع<»üGD¨óR© -&K¥4ö(P@{€'8cð$±;ε
þÔ›O„#‘¥úœ¦@<ËÊÁÇUE•…JŒJQZRŠ²);¯Ð¹«n74`{ -NM_šýæÚñ -7^;Â0žÉ€/Y´
úÛ=½/i¬{ë¦ûok -8X.äeó«³°åcĪwÇÖ30X0ÜEÊ$œú!M⢠À¤ÊæÁ.€ÉäN'ûå6Ác~Áf©†ŒidÔ7áºÀýéÀ[á (F÷Ë›ÌR[‹í3¬€œ3©Í1+J -%eHQT éàb½_BžB6`ŽpGÄ#T"¼Ãèˆ
Dq«ƒ‚Wwm½ü’ KÀxZÉÇ¥Éò²˜.;Ȭª”ÊL3ŠÏ -¬LH9M¤ø³…s÷õ[m¤xÞ4- ƒÎÈ1=ùÉÃYFˆ§þüJf?+ Q¦Ê:²Þ£ÁÒè<VI ðâžÇŠ -°˜ƒç›ýuÏ:“ejmQFf™´,Š|<‰J‰(TzЂ8lxÈžV©Îåÿ›»c('J‘J_Ošæ±Àc„_å—@GG$¢,2•bÈQØ÷<}Mïl-@Çf’LF|\>ö©¦* -r·ÜNR\~±r‹ØÌçõ
‘(U…F»u -µ‡Øík¦uûŠv¼¨!›["úšBÁ-¯ÈUQïû]ÝpšÕó3ê³B“Ø…",®ÿéBßÖ5KÞ›Š¯v~WíêvÏÄm•ÄŠŸ`“´Úh-æ×{Ô À/÷¨ -lÀ¬‘m$Ó¹ífã<4…5Ï -_R[‰6ÀC2²ŽV÷¦
ÆK«úºî‰BRÈèË 1|CÏ®Ý0% H¨šˆÄñWI -`ÖÔʲLá‘ -4~çãÿú¤eZ$ï$½¡Ï8ÿØcddûi¿åB-¼üÍÛ +xÚµZK“Ûƾï¯`Næ¦DxžxH§µ½rÖeeyJÊö$Á%J$@ ©M*ÿ=ÝÓ= +¡Š%œT«¤F=§u¹XûùMAÓÜ!ݼbê¸+ª†ô[ùqÀi7DS/Þx./ +m²i‘»]Ôc½“!¯p9ôïcî¾Ë
tÐH'%øžÖ°¾œ®§–ïË¢)iò’¶uº=%/Á:âûçO£H÷¢Ð¹ð6é^Gw¡Æ§BÈÖ +$ø;o9ŇMü-múKϲ$Ò<õ€ñ?³Xˆé¿é“WO¯¨õŸW¡[½œH>[Ri3Xì/Jùr9O_¾üR«WáF¢€ý´ˆ„JâÞ5ja§E•Ï7¨v°þ±r^I)ÕYЈ5¤XM20 ++HIÜ +D£Àæà%t"CeiElÂ8€É<º¨x©šÄ
4Î4âÆ”ž?ùŒz/5¤Ê¾lÂÞL#N’¡÷‹è +‚¦j$¡š‡çU3D&•='t¹R%ÆZñ×k‘0Ös†A4;Ü—Í{íf*ÖS‡Óàë¼\~[¶-yiv±»{K=C¿Ü%äþDIjçSïîo¾ùæ"¶"Ó”ÉÄ@œÊ´ü¬,XEYš¦áxÖ8ë/I nŸ=+Ud!àwvÉÝý?B…Ðg&9KUr8°"Rʦ£ppö % FP[ á6©÷¨Î|É(ÉôsšMdŠ«ŠÎé••"KI) ±?+…K`©sV]oiÀ’8JØáŸê°¼ÂÊi‡Æ3óÍu…þãñÐez8Ö},†ûïJÀxK¢v¼VÅ–0æßD +wahpäpOt¼„A"’È—J8X®±zú°f¸£_¨Þ
[OÇ`âK@¦8¤òCŠ ,°‘NcoÀäìhf‡ån†‡üB*"YSϨWþº0¯õ¼%N@ `Aá¬îïÏXlÓ¦Y<Œ¥Ï±rÊØ1+ZI牉”OQt)ábsXBªB6`ŽpCÄ.‘TõàÑ1Zˆã©ñ +žërù)Af€òŒñ’K$"â,.Ûɬ*SÚŽôì9•I¥†É4cv£pî¶<¯´Ïf&>a¸ÃY9fh>E¹<Pj¢ÄJùy?¿"Òg$³HÛÄÖûh°´&U(¼/C…€ß‘Ž• +`À=%ðçh:‘ +;ŸÏ_“*¹€«A>prqß©~4[ѾÅé°*Ë/ÖÅâ=6ãi¹"W—kî +ÀÎwaWà†.Šj5;2 ±ZË¥ópÚ:$ª}ý£~ÜçÛ-¹Dm]ºÕe<DqÉ|ÉHÚ} ÝÅÑw®¹áØží¼ »žþ§Ñ䪡QìÖÅÁ2$^Dq·áÞ3¥7À'ƒsd¼ +ÕRº
k솮 +Ò–ü˜—¬Ž…®)MbûékJTj†×[`±ÄíÁ…}3]Ô{ïEëŠöŸ_!ÌY ØáÎ+z?p)Ô©lŠüjÀcû•¤ªp~0G-Ì(/ªOÕÐ/¿|®¦cÂæÕ¯ë0 ruLˆ·ÔŠÕöÙzè…yý‰5Ÿ¯ Ý×-økÀ
1—Æ´H@Qº¼K¤¾šžƒ;´çLk+Šv¼(!Û<}C±à‘WäÊ(Œ/‡}ÙžZjÜtá{ZŒ/ÄÂàò_…ïÛÕ’÷¦l:=æû²>0q—ÏB›,@«]„6r:? N +ðÐ#ß±{B¤…)§ˆÝð6î- [l–Gz7†NÜsÏF Ë£q »Ê–#2––xïOÔ9ç¥Úº&B³uu¤@•ˆ_ +ß`Ð{¨Ž[3Šñl;ª¹¡òC[o!‚,Xo`èœçæ»Ý¦<sý‘2"ÀaÿÓ¨ž›:_úüsf„ŽÀøFÌ»–!wCߢZ + E +Ÿî7õ)ˆyS8{—°?c²JÄÉàìA·_»®~'ú üö»}y?çt<*Ú(’ ´`?‡hÒ3¼rÉ´{Â…‚ + ½Ë„~û¤m„?X +üRItYñÿü»¨óÆ°ª’¦*ü“'ÀRQª²Ä3…‚J@)M&tÿgbdäÔDE¾ýТ»fAüÔýŒ þù»»x@“%^Åoÿ[¬K)ü +½vendstream endobj 1817 0 obj << /Type /Page @@ -7863,26 +7857,31 @@ endobj /D [1817 0 R /XYZ 85.0394 794.5015 null] >> endobj 494 0 obj << -/D [1817 0 R /XYZ 85.0394 565.2444 null] +/D [1817 0 R /XYZ 85.0394 497.9013 null] >> endobj 1820 0 obj << -/D [1817 0 R /XYZ 85.0394 536.6737 null] +/D [1817 0 R /XYZ 85.0394 470.2641 null] >> endobj 1816 0 obj << /Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1823 0 obj << -/Length 2627 +/Length 2437 /Filter /FlateDecode >> stream -xÚÍ]sÛÆñ]¿‚ogÌË}à@ûäØ’«L#»ÓN›ä""Æ @ ù×w÷ö(Pv*g&£aqØÛ¯ÛÏ£˜pøm˜Éd6I²˜i.ôd±9ã“;øöîLxœY@šõ±¾ŸŸ}w¡ÒIÆ2#Íd¾êÑJOS1™/Ž“l -xôæýÕÅ廟®_O“8š_¾¿šÎ¤æÑÅå?Î zwýúÇ__Og"Õ"zó÷×æç×ôÉxß_^½¥•Œ'ˆ^Ÿ_œ_Ÿ_½9Ÿþ:ÿáì|ÞéÒ×Wp…Š|:ûùW>Y‚Ú?œq¦²TOà…3‘er²9‹µb:V*¬”g7gÿìö¾º£öœIe䈥3 ΘQR9^Õý+h•uÚó,ʘf@Á£¢jwS‘Fõr¿°KZk×ò¢G^ÄŠ £
…„÷}ÚÛÝã¶Þµ³m]—~O_¤ŒÃQ&©ßRoÛ¢®<šDiö[$@‹99bn¡^ѳÙ/Öôm—WËzC«¸±y…pÝî[ä?™I¥˜Ô*žÌ„`™ÖÒ±n×EƒÌA®£°VÕþãmS—¶µôùÖ.rP“>9+Ù}STw´€VrhM¾ñ8N ÏÂc™ @›ü‘¾UuK+·§Ù¯Ë/œËEa«¶ôˆ]ì‰?ã4ÑE½sÚòc-‘P,‚H -ý¼ï«§y_”–úXî4x§±É˜L³tÒ„—†±ÎDסqèKLâ\~Z D"ÍïÐ4ì8•FbS•ŒõÒÛ“|Ë4K{’oŸFú”O§‘XÁÉ ÝPâ›Úµ©‚æ -|Á ‰¢¦^`ÄĶõQz*Bú‡ü2¿ùóGLFÄ¿GS¿ãT„(0^Ä"Dp—DÓB«$‚ø -mŸòékS7uc-eä¼lê‘PZxR¯…ñ¦YaŠ·®|>_GaÌRq7ÂùJx\¢3¦Ò@b
†Í/gð®Bq>ýó}™Ë|ûàz!´Ùó
¹41Ë)»ë2ºa'Ãyôߺò#è|*„ˆÜ Áœ92öbL¦à)=Ý)c¢uÞ°±‹u^ÍÆ¿c{…Ïm™»” vÊ$Ñ*_S)³Í[KKŸ(©“½R¢ -7endstream +xÚÍ]sã6î=¿Âo§Ì¬Y~Kº>mw“½tÚd›¸7s×öA±éX³²äµ¤¤Ù›ûïJ‘9Û^òp“™"A +<zwq~zöáç˷DZŽgçÇsixtzöà A.ßþøãÛËã¹HŒˆÞýãíÇÅÉ%-Ù@㻳ó÷4“Òp€èåÉéÉåÉù»“ãßß,ú³Ï+¸Âƒ|>úå7>[Á±¿?âL¥‰™ÝÁg"Mål{¤bF+ÕÍGWG?õ«~ë¤þgRY9¡@)§hRf•T^‹£3Ü:k‹¦¦¯jMcËpF $”Íb#P +ÙbIº:wž!¤!šÏv«|j‚µªô)Ñ+šñ²àÄcPh(«È@”‹;DÌð÷¦¼‰º‹ƒ8ÁZ„G]ýßm¹4oóÂQ}Óý žø©¶)“IšÌ†žð2çB76©ïzx÷¼Øõ¥e‰‚ë|
Zà6–ö/œ´Ûq(Œ(m™€ø|Ñ<e±ú5Ȳ†Yë×#CʇÈŠc¸mEþuUù2UÐ;@%<S`‚@ôM¸€^´§™Uå¾/à WLçw~Æ5*¨8%çô³Tч.xáG*ðnâXWKôøOøÏ5ÁKyÈð’_f7ÿÿ¯´Ó¿pÒ°ã‡@dÁ*,ýŠ‡(n lÛ×t O›XŠôõdHù°ƒH›€XCâE䬨«‰ªœOÅá|
<oê5†xçÓçóyžY`¢öq›fœ¢S¦’Ž<ø<6¿’œÁR¸ê’óaçÞïËLæõcl…\Zý|A.yuLè±a“RXc%ÃyôïªOÐű"ò7ïÌ鶑Œ™Àf
¢^‘²6Úd5[·Üde^oÃ7–W8îŠÌ‡4 +’÷(pÙ9ùÌ“‡„Tƒ³?ǹGzÊzä¢ã³~ï° +/}’” JÆÑMQ]ãÐOyÝä¯VÏ>dHŠ¾cU×´?(ITúžB5¼/É~d¸rÚK;Æ,P»2 œ_,ÎNÿEð8d7®8D™>ª¿ï6®t·>ë[ß›T¿×A¼
Í.«Ý=AdŒ¢³TÞ[<½?q íÔÞ`’O‚ûø2 §G~‘
¨<œ>PonEÝþ¿¿NçWS^@¢/+?®À"!;˜ðfVÆDWìèå€Ñ•uÛ«çIÛ +‚>·ùòz +m/Qµ@ù&ìñ*€Ž˜øVòt|6õª¸ðNè[—Ü|ÓP#R÷GÚ +Hî „+;È~ ¨k§Tô6 WA»ôµ¸:û@Ð'wOÀ²#L®†Ðuà0Ö0L
›„4LÛFšA«)£íZðÞÕÐ+ +ࢥ¢ñ:`ÖùMéVØ¿Uºû +ïèÿR9hˆÔI"Ÿÿ2ÈôPÕø_](†À_¹á'¿7pÕ]_þªÿM +>þéƒh
¼Páy¨¡ÆŒbù4Ÿ‡GŸ*áé?hëendstream endobj 1822 0 obj << /Type /Page @@ -7895,44 +7894,41 @@ endobj /D [1822 0 R /XYZ 56.6929 794.5015 null] >> endobj 498 0 obj << -/D [1822 0 R /XYZ 56.6929 281.2192 null] +/D [1822 0 R /XYZ 56.6929 223.2735 null] >> endobj 1426 0 obj << -/D [1822 0 R /XYZ 56.6929 256.7923 null] +/D [1822 0 R /XYZ 56.6929 199.7072 null] >> endobj 1821 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F61 1416 0 R /F62 1419 0 R >> +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F61 1416 0 R /F62 1419 0 R >> /XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1828 0 obj << -/Length 3686 +/Length 3651 /Filter /FlateDecode >> stream -xÚÝ]“Û¶ñý~ŽE7¡ø$‰é“ãœSgÛµ/í´I(‰wljD^DÊç˯ï.vÁ/Q:»íLg2zàX -ã3wù
)”÷úrwaÎ{¶.þÖ-8
Sçøg]&œ¶ÉåÒX‘%°Æ,—¥¸¶L‰Ñ¦ã²Vs\ŽXÈå]þiÙîóª¹-öW*[,ÛrW,Ëjz|•fÂëd0{Ž’k†= EeFx™fcZ^W«úPm®–&³‹ßëª (’×`Ó,öWÙâPUeuGÃÛººÚ õ>¯"T6íòê‰fîÊêÐÜýXn·â>Å~W.ñà@>З¨N¤„wNúª¼-6 FFÉÅÍ}Aâ²)nóö¥î‰_¥%Ý–ØøY:© ¼¯ûÚjºÜG¹;ì¨ñ1ߊñÊ:ãmó§ÁªVšÉŽ´öT†YPR• -•hÿŒ4
°ÎHSÄš•¦r³—¦D(—øó”tX3¤Œ¥I e2=¦¥—&ÕI“K“Béø•$ દïC ½¾Ÿ¢a̲âH²T'Yʦ_© ´Y¸—šëáÿ¡p%§dKõ²õ$µ"ñÆ!ÖiÑê°NªúÐÉVf…M\rž”k†–±lya-Èàˆ˜·‡–…K'Š…¡pashª°½AHÈZì`*y -ÉT€ºë… B«¸ÕP <8Wé£@©?–µÿ ´¶ê‘`©ˆuÚZÍŠ”‚»Ož!¥Ãš¡e,R‰HÒtBL/RFF‘2RŽì•T½½8Ø+øÎØ+˜ì•Œ²Esƒ½’jl¯d/„‚½’A¼KXÀ‘‚,òÇ°Yt<u6;/`C¬ÓÖa!‡šb_æÛåo‡bÿ´Ü³Ž+‘BûÄ'¡Ãš¡a$X‰:…¨jDćmþ¹f4Ò󑌓éL -t? -¦î‡ˆ×ëºÚ.ØÀ… –ã‰ãƒáåv¶Í¨dAa`º@Sƒí° Ý‚.š2ìÝÖEÃSê¦)WÛ‚ ëë—L¦Ó5ÿ
0j÷E»[Bláºk'Ó]ÃŒ1‹’÷Œ1iŠ6~Fp›r¼ -âyËÎìž:û;„%{ †‘²iP¤ “KïD–©ôË3ÑãÓŒ|ÛÔ´þà,l¼$Š&9ÙFïŧ(gz”À7oo^¿ú'{)ðÚù]ô‹ýù Á±¤fg¸ªÛûè#ÙBãÔŠï,Ú3 -‰ßáÁ|uÓ‚¼P8‰Ø-
P”À]ù1ØÃd
Zꘛ8î鳩i? ²n _Øöž÷‹§Æq8õœRDÞ‰pä˜cR~WÕl)zŸx|³ -%Ô;óW«$€Ã«e7ùºmËÉ?ëEÙNݲnÙ¹eËê®Q[/”Oý ÓÑ÷´AÈ›q‡,šëCCDË=ÏŒ7°äË,bjÓlÂS&EjáRùL<=Ä:cR"VàÎ0Y»÷»ü8Us'fç‰è°f¨Û/$Dc2þܳòn˜œasa+§»Bˆ/%Lz¬ Ø@”'áu¨t°æë9_fR‘ùÎäTÅö„ùÇ7'tª®PaæÔBdÒGÀô×›Õ p£NG¡¡@ -Á*6ЯKÐâàÌbra$Ž'ÕU®jõ¾-6ì - ¿Ï¼›0eõDµÚi›·à·¡~ƒùè#
r˜@JÎ1ê×–Ócì— c„=>àtžÆ2ñ‰‘©`.cVxᨳ®s¾
ÌÇ!žWuã=Ø -ë‡,æû#3J1Ç~ö7ëD«ÓKÌúrt.Í€«a -Só&–ãVOŸ‚h0w¦óN¼Ú¤PIÒ*-'»P±8y)Hvr>òbŽ<:¬!k›¹Ç,¸¦DB‚yv÷kfûQÈa!Ò -!°bÌ¡ -!ê "ÍbÓdâú)ÁwM:Փ¨5m‚¾Å§uxø ÷;½.Ccý‰ŠþƒÏå6Œ£Ï¾äŒ_Ž5Ø8)¶Ò_¢Â§¤Pa!¬~F -Xg¤0b¥0ú±ê¸0¡ošùä<Öã'%ÒTú1\j>oA£¯]sYHÉÞœcƒSÔèQ04ï)*bYÄ®cÉÞhþžæåÒÖÓÈdPqôÀ‡«BÒ²»:”9 aAìÑÁB‡‡ÏGöC¡ò½PùB¥…Pª«Ýê9›-|š&¯`ägyà–?ò -c±˜Nœ\–Ž"'<jð¬Ì|÷´¦|†â£ôŒÏPôZƒ]D¯zŸ¡SöøþÑyì!?¥ôÄ;¶Tì©®&Ô/è)ƒK<æá¤x÷¹Ltøn`G.6Óü,3 -?±¿æoNÃÓð3L¥ð3€üG/?±ëDøi!§1‰™ -ÀÁàuÛÕHî÷Ä\¤í–v›ßR]Èÿ›<²ü¯"]¥±¢™<Scb¶‘ÖQ)ùúøÕÚiáñg‰è°ž¡B¹Ü´û<2¦Ò\K³X{é -:á¨l1}d>Sõ”hüÎF¿ls›ž±À¤¼ûh ºyùŽ ->LÌ=yT¬á*Ÿî²û†ZáÂt°>ø¡à™àá³f ú¢70Š‚$^ -Ï“`©M’áŸý…éòîÿâuý©©ŠO^¨ôG¿‡ü -¼9HþïkÊ9—Ët:È¡(mâendstream +xÚÝ]sã¶ñÝ¿Bo•g"ü +¡¾¾¹øý;m6²©J7·Á\&ÆÈÅÍöÇåÛ?¾ùxsõér¥±L£ËU’Šå××ï¿¡KŸ·Þ¿»þö/ŸÞ\fñòæúÃ{jþtõîêÓÕû·W—+i ãÏpbÀ»ë?]QéÛOo¾ÿþͧ˟o¾»¸ºé÷îW +ùÇÅ?‹Å¶ýÝ…ˆ´5Éâ *"’ÖªÅî"Nt”ÄZû–êâóÅŸû ƒ^7tŽ~‰6QbT6C@¥Jå8]d‰R´#àõ-lHèe^ã^`„F(‰Ó)XAóªmVuÓ•·ÏΞÈHeF2lU¶M\¶ô½+‹š›ø›Ï,™šÈ¨Äð4¿6u1³–ÒQ*aÔvyW슺û +¦•jYº•ãåSY]ÊeE•æ±ØïËmA+w÷ÅÌÚR‹H)ãçmº²©ýó›7"”LŠt±ÒFGNh±’2²I¢Ô÷Žvž:‹d‡dp §ÉŸ +à%O ·Ò"1ݬ×y?ÛíþRšeѶ¯ìŽÜ°wU³Î«ÙC°‘ŒÓäuL§"™%ɘé`v8úª'BjCk;>„uAòÜ ôþÃÍõ»¿Qy;ÈïÜ vÛì©ÐÝçŒ*CK±¼¹ç©¶Åm~¨ lýî-vÝ3](ý$ôve&Œ+ã¾BmräÄaÀËèH÷d2¹ÈDe A³ª–aV) +9§i µË¿¬º}^··…;ÛUWîŠUYO±@f«Òø,=Ð1#n¹±"3#D®ëus¨·@t³``ÉãÖbU/÷—fy¨ë²¾£îª©ï +€Nó‘šå£r[ÍóQ + +0µgÑèŽñ󑌤ý"2ð‘ìùHŽùH"_üB<e”Pü>8Ä›;¯ã¨5œ›€xJö<%Gn0EÄVPg¶’ÌVrÂV€Ukñz¶JOq•¸ê¿ÇTàR€“sž§z˜3,E0§5SsèŽXÊÄ–ô=Ìc†²Q#sh|8tÌP*•ÞbC)`(¬†Š ëUŒAºÉA;ÝD¥’‡¹R¤Pa¥µ_*d"®›°ÿ*ý릸½³ŒBf¥ê´zše&p…@ûŸG¥‡šÁeÌPi”fÙ™¥´ð,¥…é(!e§£à;££` ÓQÂóu:JȱŽž½°ät”pìåH–Fh®1ƒÁ$ÿz +c*aä^Tu†Á<”óÌ‹}™W«ŠýójÄ:b¬‚þïYz¨FŒ•&–5Bâs•?"Õ´B|I9é^¥@ó ÙlËM^UÏÔç0¦Î]ÞvNaAs0^aXá¾è³:M +(µ'—M æŽ +hSq¼ºÏKàBŽg9Zuñ¯ F˜Œ½k<‹©€’cW¨¹Qð¼;B¨ªÈ’^î ѳ®]~þð† +ÄŸ·lÍî©1`a²°šµ‡)vt_Íq¦M#ù’×±f¬3ä%Ž6ÓúTƒŽRë11û +Ú€·6‡=¼;p7
[MÃ¨ñÈdºù´6ƒ¨h
Q¡ÞÙRŠ$~“_0×müB%BwÔAŽ"8‘‹}i¡N˦&ö[úlZϸœgÛç–½çõü®±v=gbBŒÈ@1ŽÌ˜csŒÅïê†uÅ`gRÈ¡6Ñ¿áh¥€bx´l)¯k¶œL4g G–Ùg>—©eŽYüÝ1ªØBðŸÙªcØîi…·Þévn˜×؇–ÈÉÈjd&J€$¿M%fqf&9¡Rt¢¢$6/Äl!Ôi•ÒC9ê„ñÚm³ßåÇÑZã@s‰j‹±^±‘ +CÒ'êd7Ï)>GÇ_Å!c»;á½ l±¦·äÐg¢/LyrôÅ‘jl꧜OCr‡çE][º"¶!‰ùü}ÏŒPÌ‘_ƒþ5=kõr‰ÁaK_vÏ…¨ê:~øe6êC¿ïË
9ÒmsËM?\& ðжyâ;à:"z¡¡ƒ2\„ÄÌîá8³ÔÆ/ï^¾´{ð~3‘…*w²V%™•¿U§Æý]Î!Ÿ¿åÛómQû°}
ú<ðìƒ>…¡yë3rëçWº +ÔîÏ6C +~« +E2K'ž…î½2§L’›B´¶k=Cð3“/wëãÎÿvzþœƒÆÌeüUÏ©6ô Ï^ãŒo^Ž%X'‚ëþñØ«Dø‚ŠT¼Ä…Ô.ôPc.ô¬>NIÓ››žÇ¢‡šAc|#£,vŒçÙû-¨‰kNI1¨s¬ðMŠÝº*=PÌ‹Ø´fÈ#Þß³Ò\¬PÀjꑹFKÆ>þaŸõ¼³k\‚êè0Q‰m9hhwkcyË6d*;0•=ÁT*ŽÁ‰’Þ.¨9
2ž¥UÐâUV¨e¬Â˜-¦.SFÎd#Ÿ ·ê¬³ +ìì}y9Ø•±ÍÀËŽàÈ:`Ù)|9²Á’’5õ›ð±ƒÑ¡â1
'i»×LlxÅî–âçVzäxb{Ãßœº§Ž§JŽ§+ò›.v<±é„ãC4£û‡ƒ8#V'ûìÈÃýžˆ‹¸ÝÒjóK@‘< üÿc>.^œd¼ðêo +ˆ àž†\}éŠzëóäŸ)_@•¿:×-¾™¡zL…T†mtendstream endobj 1827 0 obj << /Type /Page @@ -7945,22 +7941,22 @@ endobj /D [1827 0 R /XYZ 85.0394 794.5015 null] >> endobj 1826 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R >> +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1832 0 obj << -/Length 2563 +/Length 2581 /Filter /FlateDecode >> stream -xÚÝ]oÛ8ò=¿Âo'+-¿I=fÛ¤—E7Í¥î‡Ý}m9êX®%'Íþú›á‡LÙ²›¢9î ’£áp8ß2ø£#©2•³|¤s‘IBåhöpFFw°öîŒzœ4 ¥1Ö/“³Ÿ/¹åY®˜M-“cèh2ÿ=QËÆ@$o>\_^½ût{>Ö"™\}¸§L’äòêý…ƒÞÝžÿöÛùí8¥FÒäÍßÏo&·nIy¿\]¿u3¹{!z{qyq{qýæbüçä׳‹Iw–ø¼”p<È—³ßÿ$£9û×3’ñÜÈÑHFóœÎ„䙜‡™åÙdzt£Uûê ü(ÉWl@€ŒE44“y.GZæ™âŒ[N·í8åT&³b…€J¦¥›¨ËͦšÏË•ûõÂ
×åfLM’>Vå“GØ8„°òW½ò¤¦ES5|vHÕj¶ÜΫ՛.P’À/øåNØ„S"§í¦X5O»©·›Yé_Š©iF˜þ¦-Úò¡\µˆ9J¹‘ MªFi–KÉ,ÒSÕÞW+w³í}9À‰Ð™–pŽ¨=ñáÎLdŠéÀ-ãìj”ÌYùÒ!:Wiº¬gŸo1˜Õ«?awÛMÑVµ_Å™e™íkfwù TMrýÕäÆZšVMúê®ë£´Ü{hy0¼Ñ'•îRÅaK®i¬ÁÝ] -ëŒidÍh»Ñu$D©µ’&™ä,HúÃ8U4™À–جQYŽ¤”Ô{ÃG_F G"ϹCŠ`{ÖìÄÏWlô¶†âCyÂiLÙJõ”‚q0GÁGJå§Ô9¶õ² -y¹.W~r»®WÎöºz¶wrŒþX;¸gƒò{ò§°sÓÂgv„b´O| -aÐÀ€åÖV‹çcJ‡!ßÚ= }cwÊàšr°ÙÓÛï—4 ©RQ/Íy ùPl±MDòt_Ílžµx=+–n¶—ÃVÕVíšSj|%¨õ[8Å7Ž?½½qï@éÞzä§jé OKšQ$ßkhaj‚•»‹¶ølJ×1ÐÉõ‡ÉÕå¿ÜìðQÜ•
X‰RêA×j01ŸsÛ´~i½¶M„±!…4}¶Y,7h¡Z$**9oʺìó¡ -”òò•+PíƒyÍÒ•‚QÚ¼~íS>Q¼2(£”2êÿ¿½ëoYý/´w¿QQ)3Aèé4& ø¬Á¾.œCŒ"ÂA‡s¸{/½ãŒDòÞöï«Ïå`÷.ÓøÉô…~ÄÊ8íwom0±Úõôq—Ú§™iE¨eVm{·žÔ.ÏÀ,dÀESE3&¹-i0Ó‘ÝW_ª2È])!ÄåJHïr%½‡º± Í ¦ªËÒG‘nçë3«¡ŒCº2ywüjü¼ )IñXWóoÑ=Po¾”¦åR}—)ãù‘âC—{üž¦n Ó‰B+ÖGöz¹ýþ‹¬Ì’I½p3p¯Â§JB†½ŸfX·Æ˜ -Àrs0åø°`{_´rù.âÙf\f‹M=àiÝ ¢ì– -O¨×e -¥ 1KJ%ZU‰C9üý_~Dendstream +xÚÝZ_oÛ8ϧðÛÉ@åRÙ6íe±›öR÷€Ãv[n„Ê–kÉÉf?ýÍpHG²e'Es8Ü¡@5$‡äp8œßÌÄ|Äài“šLd#›©T3®G³å}±wg<ðL"Ó¤Ëõóô짷Ҳ43ÂŒ¦‹ÎZ.eÎñÑtþ{bR‘Ža–¼~õöòݧëó±UÉôòýÕx"4KÞ^þzAÔ»ëóß~;¿O¸Ó<yý÷óÓ‹k2aŸ/¯ÞPOFŸ#‹^_¼½¸¾¸z}1þcúËÙÅtw–îy9“xog¿ÿÁFs8ö/g,•™Ó£{h°”g™-Ï”–©VRÆžêìãÙ?vvFýÔAýq– +iÄ€…è(ÐñTg™Y¥F +阯æx&“Ô붬WyU=P»½-°É§7¨g]oÚWÔ·mŠ9Q‹zÓã7ÉfÌ]R,èÓÜRç·m±)‹†»=aò}îçq½ùÃ*_–3ß®çy[4p;R¸ärA,«ºE½Ãá'œ§™ÖŸ¤)¼tÀX¶ø°è"ßVmC¶¦oNŸæ¡i‹%ѳzÕz1êªò‚@ß]^m"ïoËÙm ˪"jÛlƒ² q8I ¸É|v¯Qx!cÌ“‚èrÕ›E>s>¡fUÝL†NW4-j¨‘é°vÒ^˺-h XÍѤAÓÛ²!žžHÈ´ÜÆ5óõº€{ð½å*ìsÖê¯-qí¿5("˜ï˜—ä&ÕÜd ¹7¬ªªï'í&_5‹bø»æhlª˜PÌv@›BL¤“iÆ3UAož”,eòW½òê¿\}¡Îô6%ÉçhÒ$å‚v“P1ØѬ‹Yù™1Q Ò$SAi~¬\«–¦€…b@L¤Fèp¦ÝáAŒISo7³b@^/ã"Ì¡÷äÞÐ`O<eó*(ÄŠÔ |ê]Û¸Ùâ=rÌrÔ 7Þ±£¾-”óy± +í0žSsd»+‹ûÀ°!†8B*Æ‘›¼ñ–„ä1•«Yµ{Ícw>hà‘Ä÷j„§L˜hWlBƒGtY_÷e{‹–‹Þyøj”MfQÍþć;×g£´õf`ØÕ…óú\‡Ù̦›ªž}%Ùº2z\šÞ—í&§€ØSé>ºDnŒ +.²ïrà +Ûu½¢‡·Ûª'ö—A öcæ@ßõwNáûnòø–Ï£ñë‘ŒV7˜Jbc™?eýÐÀ¬õˆ²ƒ2ÝÇðcïë¿LHDZ+õiDÚq@¤¡€BC À}tw9¥È5 L”´K¥d®/͹·Ö%l>‚¶º $,§äÚƼ +
€ˆ „ô0(1—r¾K€+b¿œˆÊ•è“|˜ÀQZf;ÀDoC1¸^aeÿmœöÅЩd™x0E§Ã?eG®v¹ýÐéè¯^àÕŸfÇ5 Mσ®ž8Ÿ4=…Ëz&…ý&岎I54\‡pn)z4M@Áì½ KîBMèïTrh´¥BŽsÝZ öׂØlÐ=KX՗Θì®ÔUÃ7 +õ]èœå! 5¤™cj¯²nÕ×·ý×ú¿|@³_Ûõ›þÕƒqJ¨úú(𾪯‡ Ý‚ÔÊ<_,cæ Þë×ßUvCÊ;à·¥„dIiÑ=Ï*Í>£Äû¬RñK—x¹Õ‘Adür%^ý‚%Þ3³ò‰Ü•èÃ8ô“WÄǵ~ùôµ»ò‰–C`—ÿÿÞÎ%ÿx
d’=JG¦5XØe©ÑYx 4H<‡»÷‚;‰et-{ÛÿZ~-Ëw`yŽ?׫‚Z…äýò‡_¢]¯«ðyªŒà7 endobj 1831 0 obj << /Type /Page @@ -7968,114 +7964,108 @@ endobj /Resources 1830 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1825 0 R -/Annots [ 1835 0 R ] ->> endobj -1835 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [442.7768 73.4705 511.2325 85.5301] -/Subtype /Link -/A << /S /GoTo /D (query_address) >> >> endobj 1833 0 obj << /D [1831 0 R /XYZ 56.6929 794.5015 null] >> endobj -502 0 obj << -/D [1831 0 R /XYZ 56.6929 133.4556 null] ->> endobj -1834 0 obj << -/D [1831 0 R /XYZ 56.6929 108.6695 null] ->> endobj 1830 0 obj << /Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F61 1416 0 R /F62 1419 0 R >> /XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1838 0 obj << -/Length 3393 +1836 0 obj << +/Length 3392 /Filter /FlateDecode >> stream -xÚ¥ËrÛFò®¯Ð-TUˆ`ÞƒõÉId¯S‰íµ”ÝC6„$¬I€!@ÉÊÖþûvO÷àA‚TR‘Ë…yôL÷ôô{(.Sø'.½IR•éK—éĤÂ\.7éå=̽½3@ó!Ô··ß¼Qþ2K2+íåíÝ`/Ÿ¤Þ‹ËÛÕ/³ïþþúãíõ§«¹4éÌ&WscÓÙ·ïÞO#}¾ûðþÍ»·?z}åôìö݇÷4üéúÍõ§ë÷ß]_Í…7ÖKÞáÄ‚7ï~¼¦ÖÛO¯úéõ§«_o¸¸¾íÎ2<¯Hä·‹_~M/Wpì.ÒDeÞ\>A'MD–ÉËÍ…6*1Z©8²¾¸¹øG·á`6,âŸQ>1^º j9Å@íë1pßóG;߯¶óm½k›«¹MÓÙé³Ë«û‚šJ:ë©iQæµÿ÷ -Y -¯ŽPfBñÍ9< TÀ°4#„?ÿñj®d:cdJŠY}GCï>>ZÙM“ß
7EÕÒøÝîJøY½a<b€G8 -Ÿÿž*ß« r\··ê©\¯ Ç¢ eEýº*Æĵ<pW¯×õSYÝÓx`Kó·«¹¹dÞ#X[Ó¼ÊàïëÀû¹i¢±ã;@&V\„_M‹B;¯V¬4Çpá‚“ nà5ûD-†×¬×|ÌŸ%ZûÈD;ÁeŸx§l„9–žSÛj^²ÌÁ2á2•(Ö+ ‡‚‘m¸äâoý˜‚,K¤ñþ¥kV p+ÒÙ‰MÀ³|¨ë&ÜbË-Û†àBW$a ¹ º©Ì\¼0âfSïÆK<‚΂(S+Ç´9·Ê†¾‹u½üŽ€‹g|ÆCëßi*éüO9Ê&ŽÕ;‚ÎÑïÎÜl]ƒàòÞùv».—y[ÖUóŠ×Ý
Ïf¿í‹Ýó”x"ÔfVïCÂî´4”ÓgÈ :q¦;sè<VÙƒƒÌ+›±²!PÕ<!ùØ~ª÷ë-ªjÞù¾h‡»Ú~å!#i·U5qJ”& -V -¶e®P'œšŽâ#Ä^1u÷å}¾xn‹)9 -Ðî7[6”·½}$kùLŠ›5.û¢{ÐàF´wú^@µçïe -JÖmŽ®@&Î[yP^C ic—d} -E$Ëéó”3Lð–Y~}‚³Aã1Š!XÀÕ>SóDí‚Ù™Vˆ³Ùbâ€mà4)y‚h3$O0Àõ"Åì„™]^6<IÀvìÙÍÀ³Û¨¯Ðb+;ŒsmçZrJùÖ5Ão¨¾ÍPª‚9VÂàØ-Êû„>×{,ÓAÚV6(O ZT7Ì:¼8„Æ:“rº c¤¾«>fDÄp阡Â!l2%gâª,Z -0uóe¾|(æÑê–E îU"{©ÜšiÁ]±Üïšò±˜³Íñ"£Æ‚°\—E5™¥+HMW‰í£8ôm”HžtK -RR+^ˆ@§RB°h±.š#—”¹´wg±v@ÇhG)õ‰W#¬ÖºaBèfÕ~³ (Ó‘¤À7Ò:m\ÖÇ£Žmd›T‹·!7ƒÖ²®àÂÈjT-Ø
!Ä,H·é‰è]ìR‚ÊNz+§ P1s9—/ôk6½gHTªÝùB¾Ò*Ø¡6_~ž4L’áãÇYÔÔîѽªDÞfcäÓ`g!` “a£=8•NÓ%SDýç#D|Cð}Öù§"ÄÃò FUÆZ=YÎ)×ón´ÿ…ž’Ùø±Ë*¬2£Ì1‘µq‡ƒ Åt„}PLƒ P˜¢pö½2>p`«/çJÔ¦®²¢é²j‹]å™ú‹ÉWŒÉÛ×öۀﰮR‹£äüNª• -}U¦ú )ã ÇM½.Z,£k«CÜ1œÎ—ËbKØo -´˜tê‹Žm“6ÅqmÒY|€²£ãœ«êEøv¼ï¨ª‡i´ÌÇu=‘˜"¿³ìí ^ âx7Š¬ŒÀ_Èøtö¯P+FjømtšƒQJ‘Xm¸ò-—Ý0œEQw1‚F÷úi€»ÃˆÙ+®§á`p»ÃeõzU4-îòªÉ—1uô87ï(Æ'˜ÐZðt¾oë
˜…eð -àc|E -: cF6Íá¯Æ´Ñðc}´íÖÍ<Þ–“i„ä}œj)ˆåd¾x0šíOG3RìJÚÐQlùQ¾ŸÁÍ&T/x_·$h6ÞŽE—‹
ÿªà{¨˜Ë™ñ6ÁHøÏÚ÷—X×ÿêP;p$þDåQ¥à÷ñ§:LΙðs;:L–¸ùGÖô×_Ú¢êžîoâ{ +xÚ¥]sÛÆñ]¿Bo¡fB÷ \ýä$²ëNb»–Ò>¤y +ëõ•Þíî/ ø)x>ðI¿cA튒º)—]ÕÔÄ+»=䧷 hÿsfvŽ‹ÞÊD +–ërº¯E³gszhžèJŠÇ¢Z‹5ƒlñ:ϯʮÜmªº\¡`x#/yxS~.6Ûuù-žªîá€Â]³^7OU}OÃeSÿ;Måý~WxÙxÕñ!ÀÒUš¤Z»iš[ðÿ¥Ç®¨ïK•ÌlN 5F™WÿïUp#>6žx[
î(}uDÂà4“ˆ0ˆÄÁU„S&xýT²°’ÂÛN‘áLP^šo˺£ù;ÍfÂ'ˆô*wŠ-¼.6åj‚!!·‹i A"…ª¦qS—cæü5z†kÄy/•ö¯Ws
±‹Eh]Cߒ‘ :36\yp”±`]iè©i©Ÿ÷2†$}€çï7™Þ2è ù_äÒ¸ô<ˆfÚó¦y¦ìWz^Ø6DŠe^ äSÜ\JÙ-ÙÛ#Þú1Î%ÒäùK׬Và³WOgùÐ4-™!PóÎf+oî0º"
ÅEÍ•.ÛÌÈkòÃa(Ñy4Á¾ ª¥çbÝ,óGÄÅ3M>ãŽB—@ç*|°€9ïa +’v[
X£SŠ^› +‘žs‚E±üí‰vX…¨¿Ù‚.ªuÕ=8øàÕ·MÛV‹5¿n+H+(Y³‰m_ødÕLûD8 +YÈ^‰UyWì×ÝtféòÜ~±= ÏB£¹‚¡§‚ѪšScÕAÊ%dX]ÎÆþ ˜š]péÒvÅ®ëK¬Ç‹ $-wÕ–k3˜˜Ô!x‘•…£µÕGµ¤2 +C(÷µÚR¦/iºHX>Ýr™÷;Îã-û)ÊX¸Ÿl êû‰+‚ŠQ§&äŽ$ñÑ)äç6ÍF§8S÷ø<ŽTãhßqQì»fâ¨>WY"ñæGqõÇ»! +˜¾ÈŒW
äÆ•U®0ì㬄@Þ–]˜¢{Wð±ëÄ•ä:…] I¹Q`͆YŽµ
¨±¡g7MÀ˜ðÞÄæ9dbMý
º¯½ý–óT˜oý^yGO™Ï»¹<dsyäø³ÔÌ>Ô¼Á~ùÀÑ_¤!,hRš +GPí™S)„3UÛî½gG8¢7‘©îkf<¤Á¹ +¹Ø¨³³ßlÙQÞþ‘¼}ëqFÃižÛÆ0¢•`¼Ó÷bà<B¾t/Ö™{ Xž³¢+¦ïûu‘ÏRî±&Hï%KR'̘6ÉÓ‰è^`@1—`3.õ\2j¹i°²B¸ë{Wà÷â· ç˜)9Ðî
“÷¦
Ë\öõ÷„òFÖoŽ¡@&Ynec_¸! +3FÑtê¹²’#ÁanÇ%„/ºÏÂïöèÁòM$œ+èñT0Ž–ƒy~b¢³Ä¨áŠ˜ÄŠ,àjŸ <XLPiñ§“ÅÕ¾dTü¤â ²M_<Á÷‹‹Þ슪嗄lÇ‘ÝD‘Ý{ˆ½lœçÚ>ϵ”0ómÆßP@ߪ‚wl„>°[Ô÷‰»{nöئƒ²jQŸ@µ¨oèzº8å•æz“r¹ s½¤ý÷˜]<,Tdˆ; LdÉN'™rÁS€«›/‹åC9^÷°-y¯î¥v«Ó:‚»r¹ßµÕc9gŸ“CŠ,ŒKh¹®Êz²JWP +š¾;dqÛ¨<–°Êºóa)Æ:–z,äûë²=ŠJ)MçÙyÂ=ÖåQTJó$WcÂœÜfqY˜ÍêýfA¹fÆŸ³žE?è²!+ÍØ£AÍIýA¿xë+4€–M
×F¾£îÀ{!f^ÇÍÀÄ°`— +w2fe +Êê—sU³ÁèÖ}=}ØÌsâ¥k°Î\kÀòÞ¨+–¿M§&qø ä,ék‚öèbU +Š7:">ö® J=›Œ¼Â©¢š.™òê¯ÏñKB>Ôž_•'6Q4¸cžlꉔ»z7¤òÊ£>«tTÿ!Ê9QÓ\v8hâT( +AÙ£–¼ +A¥úLŸ³æëæ~>ibV@*šºólôX|Œ{‘6É,L¡X95¤JŽS%œ[´Íºì°™®öÙGüºX.Ë-}ÆÀ‘ÿ€¯ïëfø>â¸)€ endobj -1837 0 obj << +1835 0 obj << /Type /Page -/Contents 1838 0 R -/Resources 1836 0 R +/Contents 1836 0 R +/Resources 1834 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1825 0 R -/Annots [ 1841 0 R 1843 0 R ] +/Annots [ 1839 0 R 1841 0 R 1843 0 R ] +>> endobj +1839 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [471.1233 718.6993 539.579 730.759] +/Subtype /Link +/A << /S /GoTo /D (query_address) >> >> endobj 1841 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [389.4645 516.9314 438.2112 528.9911] +/Rect [389.4645 450.1973 438.2112 462.2569] /Subtype /Link /A << /S /GoTo /D (configuration_file_elements) >> >> endobj 1843 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [375.4723 139.4452 432.5882 151.5048] +/Rect [375.4723 73.4705 432.5882 85.5301] /Subtype /Link /A << /S /GoTo /D (journal) >> >> endobj -1839 0 obj << -/D [1837 0 R /XYZ 85.0394 794.5015 null] +1837 0 obj << +/D [1835 0 R /XYZ 85.0394 794.5015 null] +>> endobj +502 0 obj << +/D [1835 0 R /XYZ 85.0394 769.5949 null] +>> endobj +1838 0 obj << +/D [1835 0 R /XYZ 85.0394 752.3707 null] >> endobj 506 0 obj << -/D [1837 0 R /XYZ 85.0394 597.2138 null] +/D [1835 0 R /XYZ 85.0394 530.3209 null] >> endobj 1840 0 obj << -/D [1837 0 R /XYZ 85.0394 572.1067 null] +/D [1835 0 R /XYZ 85.0394 505.3083 null] >> endobj 510 0 obj << -/D [1837 0 R /XYZ 85.0394 267.9909 null] +/D [1835 0 R /XYZ 85.0394 201.7289 null] >> endobj 1842 0 obj << -/D [1837 0 R /XYZ 85.0394 245.3546 null] +/D [1835 0 R /XYZ 85.0394 179.187 null] >> endobj -1836 0 obj << -/Font << /F38 1082 0 R /F42 1288 0 R /F22 997 0 R /F21 994 0 R >> +1834 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1846 0 obj << -/Length 3543 +/Length 3702 /Filter /FlateDecode >> stream -xÚ¥]sÛ6òÝ¿Âo'ÏT,¾H‚sOIÎéù¦MsŽ{}hû -µ¼·ëþ«¾Ø庮lÓw§ûæ’'R£1ó3"ÕŒb$—Y"3©¦B<½XÒþÖ|¶‡-ø¢9lWvO톞L×½il{èˆjÇõ"l‚ˆê¶ý|Øu4è‰7_tvÿ%°{êš ÝoÚ½_±mp÷NÙyºä<)ÒT8!WöÅÔ(†æ$Žf¯3°1Å¤ß K»1 &ÑVN¥ß¿WS=‰.¸í!oÎ#ª‰¶„L -Α[E,ÞÚµ9t–˜[³~!h¤‡æy,MÃA†&7¦ÚbUõã]ñÅÖnÛýñNgñbtTÏd¢š¡ãs*–°|ë„(Q˒玢£ñçªnWÇÞvÀUÊ4¼—/¾˜úXl…s¤± sÅYæ52k¼':ÌóD§`õôF»ë+ØŒ[jkŽ´Ö‹ùâWï[¬ü¸´kÒ«élé7åU!2P™L§FòÒv}l¬ñöXm«ßw&>(79‹1Þ‘³\€ü…¼îícªËÞ©ÜIwýœÉ$g™¸¾x¤šY}bßL'™ÎÓéòä E6òsD?Ø™ <Oü0ј~z÷Ñ#Û¦±k<ROÕ¿˜>@n|ð{@z¿È¬×v×'þ,sL;Ó“Œ1ipfÌ:s&’T«tðå3äyRH¡£+_:yQ$™Ìõ7N~Duå乊ÓC¹ìÚõg;æ‹ôúúžffùÓ_H.§ë;u*žÆÓVœNq¿3&j?_Ún½¯v}»ïAHÒÓk°i -퀋£»¾¬Z„Ó|aû5ÄKÍÀX^*Ï©±¶ô ::>W–X®ªgúÓDJ~b¶iÏèÌJ¹7…’`zdUˆr¦@´d˜w–¸ªé!صífãxG‘‡èÔ˜-ìñÜx¤L$KOUW]oÁû¶ùn†¯Èbâ8ñúæªH”bÁ2çûj§ÀF†6®;w í—ª´D@ãvK -”¼A0>MîÈ„„#?ôÏ-e(€?v_¹Ó”TͺÝFâ¿ÚÆÔïMÓmì¯tGì'_Å·ç|È&câM¹¸è¬ùw%K‡E@"¼`àS—ùüzK‰I<S|jQ\è¹|Ï°ˆ’á(œTej6Õ°²J/”¼À*F„°ô?¬XÛ®Kš&®B†ÿÎR¶üyB‹“áTH®ôÚ‘€•—ÜxÛ:/FDÕ»óÅËÉO|osèô.kӹŕÊçÛ¸:À/¦©·ïkÈíÙl _ø<ñ¯w)¨°)Û×îb\N!ô1^ä×ãò˜êr\ŽT(?¨w¹†"Î.»ê/{•T¢*—××T3L,r.t6•ÀÙµTz°.©Š…Ù¶L·8áj2$ ÒÅÍ»J p®EÀy¸› üBâ…þêo¡ÜN±úË¥;ĹŠl)ûõÅ6gJ' ÷‰ûéD&(г4½!ÈY<Éo -³¡'›2èvv]™U—‚ç[Ó`Ìžì+4 -Æ™?×"MP•T ªÃ'{v¥7 6”i¶Dí팇ÓE°mê#A¯Þ’]µ'OO?ú¥†ƒÁû-o@/®qY¿!zé³=¾z9}”-F>urr‡&ûç±6ÍÁÿ‹hQM(LáíT|ä€
MQA¢¤Xºf
áCÓUÏS
P`•ñl÷ž!Æhö•ÂÝõ?DZb9h¬Â^’ä8#4
*‹¼ìÓf‡ú&í›l:¨`G[cDÆ'£‡kÂ4vüë— -Nº±]`eüÝa·k÷~°m£q‘_ -z‚^<§,͆h…¬vP€ÁIçŒÁIçls×vU_Q#(IùÈ+Ÿò˼øé-¡ &€ô5
¨mÇxn¼¸%‘‡¶÷|ÚÈ%!̃çkh¢¢¨D,¶DÕ®"Vö•:i£å‰5Fgõïv5Xx‹bwCF}ôw$í䮄ŀ9ºyñ7
-ÃìáèugñÈ6ÏáR,ÄãCÒÞß.K‹¶×„˲IHq{Lfº]h#’‚e94[:aE–Çï<K8¿[âõêâ#t˜mY‰Ù“»3Ýg>`—t—¢•(ì#ûÆÅ̘êr´ŠT(溦ziYyÎÕ‚}p}]„H5#ÃéÅ3W’O…xò~,Q -yìÌ!Cºíªkk‹F@©5[|$ÏùRµ‡®ŽÈî¾… -„¡žFøµ=Ô%CwèŒõYTÉljO>¶TL;gS=¯-9ªÓУ -›?Ka&סHÉ‹qpücœo¡Ëõ¨ƒAx;c4ù3¼óhM×6fUûWcÎxhháuØ -’¸\
æ> -r7ÀûÙ<›˜ÂÌnèú—±ó®èíaú9¶]¯×=‘ƒ©\òëž8¦ºì‰‘ -eŒõW<2A–§×eˆT3BL=‘A^Ñz*…力ÑÅÓ À®M -2OØØþµÝ&ʸ šÃªŒ KÙM@›“ª"ÜuÏ+á<½ñTŸe7,GŸBÒ’9KdšOÍ º/Üõ¼{¢[ás`$ ¹tzàãO…¼ˆŠÇ¯£}ã“ì¡‘}ø†kàö3ξ@ûFöξ!>¹„‰3¨÷K·Zþttᯟ ²òvìt… -¯æ?Èó¢ì7bÞˆèÊ<î¹ëa¯XvW›L×%ˆDç"œ¶YΦ2| ÃQéáà(ŽãU +xÚ¥ZYoãF~÷¯ÐË20búbw3Y,0™õ$’IÖñf’<ÐeC‘“²Çùõ[ÕUÍC¦<3»0`5«¯ê:¿.R.üÉEj›©lá2“¤B¦‹õîL,n¡ï»3ÉcVqÐj<êÛ볯Þj¿È’Ì*»¸ÞŽÖò‰ð^.®7¿/m¢’sXA,ßüüîíåwÿ¾z}îÌòúòçwç+•ŠåÛË/¨õÝÕëŸ~z}u¾’>•Ë7ß¿þåú⊺,¯ñíå»%£Ÿ‹^]¼½¸ºx÷æâüÏëÎ.®û³ŒÏ+…ƃ|8ûýO±ØÀ±8‰Î|ºx„‘È,S‹Ý™Iu’#¥:ûõì_ý‚£Þ0uV~R$J[5#@¥Fô2I³,]¸4K¬V:ðþ\úe±kŠ
Aeny}W@CŠe•‡ÎÛ¢í —ûâ~Wv]±¡Ç‡¼:ðв%’¢ÇÛò6¿yêŠvº¤\nŠm~¨º~ˆï«·f̤Ê0',
Ù;ÔU {–aèä< °Å#_á¢~ùxW®ïh³¼jj튼›-VÚØÄ(ï+)“,MU˜¬H¯c¾5px}=»ü‰¼(´n +úm‹ŽMÍC褅â[ýÕÔ<ò&oKXúØfd⤴']┑'tLƒVãQ¤b9ç#qî®i»UÛå]Ùvåº]íòÇ<H#笙‰~ÔcÅH“&.°q‰â±>:™uK:sjÙî‹uù‡ªhiHìÀj¹;ìhx}ØÝ€LCG³¥_<õ¤ž¢îîKZÐ-»†ˆ7¼îûbß¡Ž^¾k:².›‚‹M£Üí«bk£–¬äQ¨8©QëÒÄË4{Y£ãQ§5Ú +N[¬÷mùP¬ÖU ̵Ïô©e¢=,ô"ý¨&úÔ6Q™)äÔY:R<ôJ‚ö"(eî(lˆúáÐt9’¡[)h~[X§êòºh-Q(<ñi‰T5ÍûÞû»ÈD[Ü?À¾A“©IœÕG.þXV*L£cn›{ä75ì´,ã.¯¶Lãßuu.—A¾h+Jò‘¡gˆc0u>Ž‰Lße¤b&„)dRÄ»|[¬óC[ÐâEÂì9E}K¤}ê†-Qs"lóòžÏV²‰+!¸z=•L8®gƒ4pÿDmT]‰Þ†ÔÔk\?O ú}_VMˆž¨Xtm“Ź®OÆ÷ó°D26x`8ÑJ¤,“YS?’¢s %Mhö]9§¨
»ü7‘À„H@ù@‹Ä¸¬w{ŠU›bMâÎÛèø1ºcÄá¤ðXvwÔŠIŠrÉQBâIf,CÀV.É2—}ö¥H“Ô¥Q&›ƒeúÖ]sú™zRzOÃGOLRØ?5öE½ æ„GΆ$æéëó•’kQ}G¶ÀBìù›ØU<D\4„è´J¦å¼F 3'!%˜e]<Ò˜²^7;2xD>Š6®Ën
ºéhyX~½†0_lxɼÞP8<`ßrbØ#¦¶0Úsšß©ã¡¤`•ŠA˜øðlZ@sbF7û=¢°ÈÃÈH^ƒÔ*n›mGOcõÂ#Jiul2A`ëÍò?¤8 ‘ô±U5èÉýJÓUŠë¢ØáikFjÀΩ¦Q•Ú¨‘à'â$«¸9 û6Ú µ¬$RÂý œçDÌÓº©Dq"I»PŽH™ÈqeÒ_nç‚sêžûìbš¸r2¢Í &Øø–ÃDWða‚Sd±È¼SkÂD +wìÖû“8KÀDÀÕëÅÍûQ3»OOêë]:Ýžq–ã,;ÂY–á“}Ÿì +º±1œ +D\Ð"ÇNL8¼†OõÉ +ã(Ê`®ªW„Ôºx¬Z`§®+vÄ}$¶Ý™ +¡vÇ…ºü’©C#§ŸhèÐDL“a£ì»xç._0»A=mS=sÀ‹í2•a£ L…ð(h'ì‹y¯<Ü9)À0Ίõ± ²Ws×9ðM9í“Vg2%¬peÛvEÜ- …R2O›"¯Ø%äèV–ÇD‘ÒevjeuS¯Xb{È„ì’ËuÚ±Åè>): Ñ'Χ{Õ£h!fÑjÖ̽-(Ü‘êu¯/Ü=î¸í(LØcW×.®>ªé^oCFÀõ#Ð
‰„3À¹ÜTøäõ1}¼O¬iÄ
÷ÑÙÞPGYSÖ +'óòqE\Œc<Y“‰]ÍQÎ,ÿ¢ešùSv DîCî¨y_¸±«fð˜ÞÏb½I.Ì@ÜÇÞ˜ÿ°²C1,ìLÛg¬½œJoä®b&˜~ê®9+^) +;'²—¹èGÍ°q|ït)&|Pvöz„á¡·vhk‡ß#X”¢_ÞQ$†ÇÁŽ=û¢×Œq™š‡m$<ŠRDhqm*¦ê(ø?d!ÂÒû-¢N >WÍú=ÇbÏå©!(•a¬_nò.§þÀ˜¥S^¶.òŸ´ï‘¢I‡ÓÃ=À'h2™ •G D‡ +å#Öa2%Hbë ò#A¤×Íý.¯ª'êQ>¼Ñª;¢ Ôu +8ÀÁ.¶ endobj 1845 0 obj << /Type /Page @@ -8087,349 +8077,356 @@ endobj 1847 0 obj << /D [1845 0 R /XYZ 56.6929 794.5015 null] >> endobj -514 0 obj << -/D [1845 0 R /XYZ 56.6929 346.6515 null] ->> endobj -1848 0 obj << -/D [1845 0 R /XYZ 56.6929 322.1538 null] ->> endobj 1844 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F49 1308 0 R >> +/Font << /F38 1082 0 R /F22 997 0 R /F42 1288 0 R /F21 994 0 R /F11 1509 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1851 0 obj << -/Length 2912 +1850 0 obj << +/Length 3837 /Filter /FlateDecode >> stream -xÚ]sÛ6òÝ¿B÷tôLˆà“'Onâ¤î´IÎñÝ=´} %Úæ„"‘ªãéÜ¿],@Ae'O'åb±X,‹ý’ÅŒÃbf
ãªÐ³¼ÐÌpafóå ŸÝÂÜ»áiÒ@”ÆT?]¼|«ì¬`E&³ÙÕMÄË2n˜]-~O^ÿ|öñêüò4•†';MMÆ“Ÿ.Þ¿!LAŸ×Þ¿½x÷ï˳Ó\'WÞúòüíùåùû×秩°FÀzé9Yðöâ×s‚Þ]žýöÛÙåéŸW¿œœ_g‰Ï+¸Âƒ|9ùýO>[À±9áLÖÌîaÀ™( -9[žh£˜ÑJLsòéä_#ÃhÖ-ÒŸ––e*˲L -àñ
Û*ë´h§·åp‚e<3ÇyÑ:¼<Vì²J‡;ÔÙ,ÍrͲÜØñz¥œ Á -c$Þ¯†eRç³\)Æ÷û5ì(f2-!gFI
Ü‘âÃiš‰ä -þ/“óýû@žJ–·nëÙ—™`\…"¢vgÝêÀ!^^,åìM'šÅ‡ -ŒÓˆ³;T&"›Îg9ì_D*:T7€å6y8•<©ü ^®šjYµCµðˆ–¾Þœ*Øþu‘ãÝ«Y¬Ü»/eeÆ›nmîǬi×dž« ˆ‰ž)ÄÑNWø&EÆ„„7Ê9‡‹B$ݪkºÛ‡È8°\™3žqògMsšj\1ÜUke2ÜÕímOèë -`BW_6eó`ð÷wUˆ+¢ì«õ_Ãü®ëúʳ(éÓ–ËŠf·”":Â}ÙTëBݬO…Mºe´Z&MÝ^ÐÂ8~p><ÑøJàDĽAU!’V)°ü•cZÝÀ"É3][Lé‰ë@Cj¬çeÓ<ÐÔ¼Áƒ
aÞÓ}ÕÜ€kÌ´M®î*¯öøê£1Eáåpü‚´†KödýPÎäý~§ Ï•—®l'öÛÔ`D~}¹HŠR -°°«U-ÖU߸°E
683|´Ußdß^ñ£Öí8¦1ËCóB2-àÁd(ä²æwBjÎ2Ëå3 -8>%¤V,Ë -±+¤3Ïû9Ë•á6Zp\Jåฆjí-rè=nsøÍÐîqدªy]64¸/ÜëÆ œ‹ä¼Å¸ 0§´©þªZK'ª&˜²ö[•}_߶•Æo´€5e;¯Lž1•×öö"¼_nÓ¶º-†söÈõ-zjD—4, y]öaY×¼ÁzM¨U××C&œ -OlëØ™gR2âÎ/«¾–˜¿¼ /¡÷B²(˜Êý‰ÆØfÏÿv‡– -r(¾ç¾i_M]ø?$ê¥Ô¯¦4ö71š—"{E…œô?Z“NîH“‡E,>]£´"Š¹4ö‘Òù -·¸óÌ|B¿¿fÙPŽü‰¡¯L^L%< `)Ý; VlO¨¹{C -Ï08NE -
þ“›qßãÑ,¥ZžOÂÀð s³Ÿb £Æ'üÐHI‡»«úVô«@Îã!~:BHg€Æ÷ñá;¿«æŸ}+bœf/²ÝXVÞ–u ö¿•Ù˜žÅ=ÿ¸ý8®] -µ–ç…²,þ‹V°<ý(i„¯þüëPAIï^ø´YºµWôÜÏטBS;ÖƒÂX™O(âÿôhѱendstream +xÚåËrãÆñ®¯Ð-PÕÆ<ðJNòFë(µ^;»²}°}€È¡ˆ,Ð Jþúôk@€e;É!U)U‰3=žžž~ê2‚?u™Åadr{™æ6Œ#_.·Ñå¬}u¡gá‘c¬/ï.¾xg²Ë<Ì\ÞG´²0Ê2uy·ú1xû·ëoïn>^-tIxµˆ“(øòöÃ_’óÏÛo>¼»ýê»×W©
în¿ùÀà7ïn>Þ|x{sµPY¬ày-Î<ðîöý
¾úxýõ×ׯ~¾ûûÅÍÝp–ñyUdð ¿\üøst¹‚cÿý" +MžÅ—˜D¡Ês}¹½°± ckŒ‡TŸ.þ1Ò£sò‹MÆ™Ng¨õH€*‚±M.Ó8£
pÕl‹²†Cé4([þ]¹ÊunõfFE½BptW*Ø8×î©cä®Ü:ü³vÝrÃXž`ëjÝÈï¦è‡ ½TPvÓ÷W*Ü’ +à‰Á‡²Ûx:ÂвéëÎí[¼ËB©0cMgl]Ç·F»Ã﯎(6áOQ¬†'Ò0ÏÓœž +ÛLÛ²~¨©ßµÊ–Wëb;`6˜èºa<^»‡ÃUÍò3Ú«U‰Z^Tü€œ\£1G[H‚Ç¢ê=ýMÓW«©í±ƒæ@s[’pâ`g‡…¨Ÿ$êÁàÑ"xÝì· ¬g^¸weq Å!dÁ/x C˜ÜŠŸ… Rxö„Åâ³,õoÂ'j›êQÈnC¾Ø[1i‘[º µx¾R•šmÕNUÖ†&²Þæ÷nÙï[P¶Å²*áÐíœyG*LT–{ófµÒiæཧní›ß+T) ÓµÈݨI‡…á¶xæÁ½ +®Å£¨<›ÒSñÅšš‘‘ÅK°0)
.û8)\垧œ—OŸ6+ůÆÄÉÀ*™9Ræ¤pš¾Cÿ’¢:…'8*ðP²`tpåƳoxdÛ<κI `_¸âÁñ„/Þ çe_IÖT€‹£°¦U
‡5` +¬Ž/„²õí)5œŒÇ™Ó SBx¼ñ\îR¶tC÷
ù9Å·H¿íÄ‚¿¼Ðm„³MSQñ|‘¿Tig!$SéÖiê\Û±—Q^ «~I²NØc.Ãe€„$\_Èž‚$¦¼Ä”ÉIJÄ€à é”f§‘£a]ðæOŠƒWÀÄ–•P< +l¾ÊÀ5Ä>1…8†´eÂÅ'‡¾ÑäFJŒ•…þí[A íÁ„?žˆM–¿’GUÁBy&¡uhÁH^šæy³DGF6z )2“2‰zMCîØ@Ž!—Ô~rϤàÍÒ +CØx&1•!>"GëÖI*„^Î;Q™õÝkzäõû•|à(™`Œ•«?´“[`¥£å‘i„¤¢`!ý·\ƒèŠ˜„â’MEr÷ Ml+‚”†þF¡Bgùf¶$¢ã“¼!'üÒ ?FK/Ö +yʧ8fpH~~£Ð03:
'³¼™ð±*[êéÎþkŒ ù(2ñšf™X½äYÜ +®EaŠÌ€æ'J×D)P Æ#nXI…è²èɨp,:ÏÍ)˜ƒÒ’Œ7¢Lš‡Û¡G›¹â±ß1“†rØ5‰9†yâ?Ñ"XÐXNý(KTN×@ìÝìù¡ÑY`AÎBÔå, †‘¶cìቓħ å3â÷gò½&,ˆ·Miép–œo +Ω ¿Nul–Shxr«Å®¯?w®®ÛQjÃI™ÜvÙùW-ࡾ +¡{päo0еãƒ[ñ#à½WŽxÞl¥o©tëÓn4§o&AÿùÐHS;¡¤Á15‚ ÷‰` +4Zñôüû(ÐþÔ2ˆNŠ tjø'ÀîŸ;jŠ&`c?pâ(TH+l‚‹?q'ž;
é9ZL*ÊaDšåsMж<”†š¼jH”oIÁÅpÌú’øøèðÆò.Ò¹—ò&QH‘¯ÄTôiWÉÌw¾ó:}š?³ÎßÒg‹EI-Wú0ÿñ;8â¦ÄϼÐ6¾±Ì©œ?ü;™¡Éï«É¿¹6ºf´áy,É"”ASí²¾¢zÃoØ}i=[¯Ñ·V½‡$ÑXMïXBxHqÇ¢Ù2¶(™òW‹CNq$õã•{&pw÷^¶:Þ +~<•™à¤À…¬Êø¡—/‰ó‘A”=}Mž
áq&ùðnÅDí._åjd~ +Ž¾>ÁFÀ®ò\–îоáO\^ô©”dŠbïp»]5ôžZ‡M×ÎùÒÉ÷*‡JÎ;ÌQ(}7áÆW ¿ëíit6¤â;‹4Q¯GÔÒù€ê‘|®Ë òrÊ~&¢æ¡J£üÕí¤—ûO+ª²§1Nµ’4Ç:`V¼r»nƒ~GÇGÜAtˆ,%uL4ŠE ŠäáÛ5¤«„¾j_»Šb>-¯Á4¶¡ŽsL—Kà m…ûÎUö4ÓÚbX• ¹z–[–JØÄQQaÄÁTÉü=WSÉ8•¥þÃ)QÊ/Ø58~ÛÄ$áB¾;ËøÛ“e,ÀÃÊúÜG¬&ñËÓ™+.½¹ÿǸ¿þµ)$ÏÙ™où°ÐÈtžz¦PÒi +Þ6Ìø{ß03é)€ã¾y>Iùä N¾§®¸ù›/ÛÃGµ/¥ð/1±)endstream endobj -1850 0 obj << +1849 0 obj << /Type /Page -/Contents 1851 0 R -/Resources 1849 0 R +/Contents 1850 0 R +/Resources 1848 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1825 0 R -/Annots [ 1855 0 R 1856 0 R ] >> endobj -1855 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [242.0197 176.5317 315.2448 188.5914] -/Subtype /Link -/A << /S /GoTo /D (rrset_ordering) >> +1851 0 obj << +/D [1849 0 R /XYZ 85.0394 794.5015 null] >> endobj -1856 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [238.0484 97.3808 311.8142 109.4404] -/Subtype /Link -/A << /S /GoTo /D (topology) >> +1848 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F49 1308 0 R >> +/ProcSet [ /PDF /Text ] >> endobj -1852 0 obj << -/D [1850 0 R /XYZ 85.0394 794.5015 null] +1854 0 obj << +/Length 2946 +/Filter /FlateDecode +>> +stream +xÚZK“Û6¾Ï¯ÐžVSeÒxñU>9Î8;©ÍØ;Öî%É#AË)‹ÔŒ•Ôþ÷íF(Qrª¼ål4
àë(>aðO’4NQL²BÅ ãÉd¾¹a“ôýtÃO䙢ë‡ÙÍë÷2Ÿq‘Št2[²ò˜å9ŸÌ¿NÓXÄ· Mß}xxÿÓ¿ßÞfj:»ÿðp‰„MßßÿóŽZ?=¾ýå—··Ï>}÷·gwÔ•:?Ü?üH”‚„>Þ½¿{¼{xwwûûìç›»Y¿–p½œI\È—›_g“,ûçË"O&/ðÂb^b²¹Q‰Œ%¥§T7ŸnþÕzíÐÑýã,2#(D°9“¢H&YRÄ©Ònàg³«MuIŧíVÏ
5_tÙ•õŠ^–ÍÎ14׿Ц֓ÁnžOïÇmuÛšµ»†žz>7Û÷;—Ó‡¦þÃØÁ®÷YW{ÓR»2m‰i·Ö5Ñ8ÇeGœÇE’»†—²‚8À'ƒTLÛ²2uWˆºÓ%èsJ™OßÍÎDÌÍ’HŒ} º®Úf(vbÞ )™65‘6MÛÓ¶ÒlŦ¥Žn]¶Ôњεºõ-Ç}ÂvU¶©©ýeo@™‘•Á*V0È‚wŸšíÆo¢…ù1Qã6#ua–z_uôb×£\@ ,M'‘Ìb&RÙÛOcÎÁDcÓfW6‹rNÂf·œÃñµŸéõ¾îÌ&hÏL€Ççé$M˜©È.@–˜¢‹ËGL¾çB5ç•Ñ5`,* +§p Æ—òüº +=׈¡ÕpYÄ\I>TbfOWæbÚkAoŽj–ˆê¥™wå³A"±yj›Êtˆ +ÚvÇ=°„×÷1ù±MÂE9ÁQ(Ù.* \È8•JNd" áÙ.ª±\>=Ü +¨ŽÜK¹ÙVfcj[
ZBMOwaâìèUZÄGòI¸¹ßw^Ç‚KbP³¯¿M!œ÷·J1ÈâL)>¸0ˆšmÆpñ +AüO»hHŽ +ü€9X:g¯ó7cþ7™€|-ÔhïŸ$x^óô
½H”d[ÿ}ã.íÇf¤Îó4"TßWì<´ôîÂ1]ÁÙJˆÇÛŸÜ~O´Ow ìç¼WTÿ/_N#–Óø\ÃU‰°,vb± +endobj +1853 0 obj << +/Type /Page +/Contents 1854 0 R +/Resources 1852 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1858 0 R >> endobj -518 0 obj << -/D [1850 0 R /XYZ 85.0394 650.7283 null] +1855 0 obj << +/D [1853 0 R /XYZ 56.6929 794.5015 null] >> endobj -1853 0 obj << -/D [1850 0 R /XYZ 85.0394 624.819 null] +514 0 obj << +/D [1853 0 R /XYZ 56.6929 714.9873 null] >> endobj -522 0 obj << -/D [1850 0 R /XYZ 85.0394 246.8822 null] +1856 0 obj << +/D [1853 0 R /XYZ 56.6929 690.9598 null] >> endobj -1854 0 obj << -/D [1850 0 R /XYZ 85.0394 223.4436 null] +518 0 obj << +/D [1853 0 R /XYZ 56.6929 308.0444 null] >> endobj -1849 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F61 1416 0 R /F21 994 0 R /F42 1288 0 R /F62 1419 0 R >> +1857 0 obj << +/D [1853 0 R /XYZ 56.6929 282.5375 null] +>> endobj +1852 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F61 1416 0 R /F42 1288 0 R >> /XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1859 0 obj << -/Length 2437 +1861 0 obj << +/Length 2997 /Filter /FlateDecode >> stream -xÚÅZ_sÛ6÷§Ðô‰ž‰`ü!H°yrsrêNë´Š{÷æ–h›s©’”Oæ¾û-° -& LŒ•4Ž€ˆûᇥɸ²€—µÝ¥ÀÞpJ(ãnk >4Us÷CpTqf÷ÔÑœÅÑ"¬Ð;LˆÕ0Äh›‘™ª8:À;!Oà€v]yWkWÓÔ›5X™›àiˆõyñ°hŠª´[ËÁ¦ç¦Ëþ~´)ër³Û„Ö,`}êÝêÍó‘ò–`hΩ¤ûùqp’2ÂCI—z×”²Ç
:·MU5F¢PiT|Ê7Ûª€ss <!—ÎeÑ!.²*J£µbHÍGÃW&Íø‹y:a<÷ŽBºWömíôcYUØ»+úD¾åÖLBŠ0´Û¢m±,žj ÙšÚNiµ
á[Dfªf•W•…ÀVC -0suA²ýw.ÇqtU|ê‘ocìÐ,ž¦³F†Gv°ž‡¬+K*Km¸Ô–ÁIOag<Æ)«‘Õ,±~
Œùm_´ØÅü¨yð×=µ@¢ÉHXµÏˆaÆ.†ãýlPëä)˜„i±pzwß<ÖؽyXw®5ê,‹ÉDºãá-¥ˆþø'Ž ÜžcÂ(ÇÆz˜`M#Ý8H¡ØÁ\!Sç“Ðó3ãQÕÝ©ËKÜC=eË™ŽÅšRCºŒ(§ûa„šÜ*§¢…ïñ ¨¿GKfS´äèKSh¢E¨·;ª@p«ÇvõÌ8JENÄi¡r5!ÐÆ`fÌ€[MϲˆõË»ëÒÚ›ÿÃp„ØÙEìç§!zbÝ5mURBiôÙ(‰3Ó7…ÐggÈryÁCwL(Á®6°IîÛëŸWØ»-[·æmi;ÚÒ‘d/ë!XÕ…@ûìé¡5xí1I¥>«÷úy{ýsóúȲ¾+¿“ÄžôŸÃÖdü8% -ÂÐq¨0«*׉[wߌWbS|wÅ°WVHk |2¡›·a+{ ·8*ûÿ -8>ŽîˆW|ÉŸã/Ø”oŽ}%pâyàÄ—€ã/ð8ñ?'žŽ½8þ<ŽÄ[å§m‹y -²,¢ƒ¯úŠÃJ‰RéLÅ$¡\|ók´“7÷¾EC#IšÊaY³ãÛbð -ÎIL¥;J¥M ëBŸšÚ]ìsKƬûц[ØÐŒÊ1R°v7ÉØ_(!2¡Ì.4pùh1&H*À<ä,úV´yó½@ƒÖH1û˜r@Ë2™BMçÙ -¥øñ_ÁNZ}ïg¸"¤óß9Žþ¢’.>õE½v1áýn»µ7ýó”韎ۮÔùV2ý›4Ô©:€Áý@ˆÃ[ð2ÿendstream +xÚÅ]sÛ6òÝ¿BoGÏD>I`ò”¦NëNë´Žïî¡í-Ñ6§©TL§ÿýv± +àÜa¼©ðäþ‹äb* ©8°–i“*å³ø°à)SÖJ‰`wÔƒÜÀËËX|ÛÀÑ™ÝeDØ)ãñ¥‹<e9èA–iÐ
E—~óPÒ¡²‘‚ +ÞÄWd2P|ŽI…v–ñ1“'®’ç)€<¼^ÓíTH¶Þ6õþƪž.NM#Û&˜ìu»rU¡>¯œŸ'Ëkà, +ÒË‘ƒmÅG•ñε +ð<G-Ž™<eCd¾&<WÜ鮚º¤ËÂ(údž€’rUô˜`M)DD´-*E„f4{|¨Vž´K¤¸õ+I/Drù3iׂp5‰ø¾ü§„À-Ó—¹Ö›<äããåõ› L!w.hl /;L¿5R¬bhýŒ[S2X2×:͸ý +Ã\Fçü…+Êô°ïiŸ–ƒP’_Ã@ðsŠ\ò‡§”Q¥€n½¨)ôpwuGméìBÎî!àíž1t +ã°]=”«?èbe¦ÒŒAˆ2Ö¬û¢ªC9¡?T¢dƒ´ƒþÑ€Ëüã¡V +&O€<´'Rñ»ýŠ<z‚ϱaµÊÁŽŒX<@h%Œ7ŠîŽæ¼ Kò³¢z
ñÿ4ªÇŸŒx\n8»‘!óá7drÇ?èšÈ¼í„ ³èºê¾vi~F6š5œ² *ÖëCàK##ŽÔjj=Ÿ¾b˜¢ˆh„´êj»ßÎíYyÂøæÃîÍœ5œFlæœÊØÌøŠK¼5cücà®Ù@Þî(J“C°]àÏ/°¾!©ö…Xè*—ÏŽUY9®ªªm©7¬rN&ÞlRBCbG8øA>Up0U—º/û9{Ÿ¼£Šð¡àæ‹.XCžñ°p<”—?ù;j‡Z´+Rmü,˜µ€»0,v—`"Û?\Er«òcOx[wD‰ø ’! +mØY/ç.~Ì,3I¨èúʧI¸ÅÓ¤ü¥P4å9BCÍ3¯×€XÜõT_5¡à ¸eå‹ŽÌŠ©¤ð$}m0š‘Ìߌ:NûgK“pur¾ŠãÝCóXxô(ê9ê< +å’ÇòÖZ&¿Š øÅìH1¡WPã5LRýÖQwÊFÒœ;I8®ÔyÐI€¢ƒ¹¾/å"8UyMwˆS>HÑù˜¬4tð‡zzŽ¨ó¬zz!”™ų̀ÓAZÚN¥¥GÏøêxia\]ÓˆgÌ»+¿{H“fPô”Aš"4!"<$f^˜Ösæ2¦o
b=Ī%p]*ØX.^0Vc‰M~ߟS¿%ÒûÈ”©ÅïF¬½|I(—o©uò~õ'Ð væXaíÍ÷WÝUmØó®ò endobj -1858 0 obj << +1860 0 obj << /Type /Page -/Contents 1859 0 R -/Resources 1857 0 R +/Contents 1861 0 R +/Resources 1859 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1862 0 R -/Annots [ 1861 0 R ] +/Parent 1858 0 R +/Annots [ 1864 0 R 1865 0 R ] >> endobj -1861 0 obj << +1864 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [325.3322 100.0779 398.9856 112.1375] +/Rect [242.0197 554.0172 315.2448 566.0768] /Subtype /Link -/A << /S /GoTo /D (the_sortlist_statement) >> +/A << /S /GoTo /D (rrset_ordering) >> >> endobj -1860 0 obj << -/D [1858 0 R /XYZ 56.6929 794.5015 null] +1865 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [238.0484 475.7236 311.8142 487.7833] +/Subtype /Link +/A << /S /GoTo /D (topology) >> >> endobj -526 0 obj << -/D [1858 0 R /XYZ 56.6929 173.9975 null] +1862 0 obj << +/D [1860 0 R /XYZ 85.0394 794.5015 null] >> endobj -1374 0 obj << -/D [1858 0 R /XYZ 56.6929 144.4252 null] +522 0 obj << +/D [1860 0 R /XYZ 85.0394 622.2509 null] >> endobj -1857 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F54 1383 0 R >> +1863 0 obj << +/D [1860 0 R /XYZ 85.0394 600.0717 null] +>> endobj +1859 0 obj << +/Font << /F38 1082 0 R /F42 1288 0 R /F22 997 0 R /F61 1416 0 R /F62 1419 0 R /F21 994 0 R >> +/XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1865 0 obj << -/Length 2858 +1868 0 obj << +/Length 2415 /Filter /FlateDecode >> stream -xÚÅZÝoã6Ï_aôI>Ô\~Šäõ)Ý&½m¶—ø -Ú>hm%*K®%o6-î¿!‡Ô‡-{w»8\‹V5‡óñ›q،¿lf¡ÂÊ™¶’(ÊÔlµ¹ ³Gøöí4‹H´R}½¼xu-ÌÌ›òt¶|ð2„ÃfËõÏÉë\þ¸¼º›/¸¢IJæ•Òäë›ÛopÆâãõ›Ûë›oÿuw9×2YÞ¼¹Å黫뫻«Û×Wó3ŠÁz8œXp}óýŽ¾½»üá‡Ë»ù¯Ëï.®–ÝY†çeT¸ƒü~ñó¯t¶†cwA‰°FÍžá…f-Ÿm.¤DI!âLyqñÏŽáà«_:¥?%Q†ë r>¥@eI*¸ð -¼y˜/„²IU»§IVeÖ48UÌY†Í6_¿PÊóõ—0cÒ¤}ÊqÁ:Èöe–4N#°/ìËR/Õ¤u;^Þþ;
…㜤V¦† ;ÎálÒ¾lA¦¼ÛË<)›ÊfNȦ‘\ªMŸ—Ê6ùp£ˆ¢‰0,-#V)î—Åu¶äÅuƒN\÷âŽçž¿p.§§†&†BýmBl '2x6È*š5m¾+šß`ÌJ˘ ‚ -°"¦‰ÜøeË([™?f%ßeå>Ò=Ô» áŒ*ÊVïÖ°Yõ8%"#Úr³Ýœ™$ÿû¡W1¡‰T,—}öQ~%¤!šê¿úk«¢ t¶à‚XFåi p^aˆ+Ä«Ew¨Ej)I5µ½×Ž.Z -b„P3M!>1ps`@ïóõ„JSål•Þå«Úkuí.LÒ¨c÷·û]¬üç¢Â'Ú$„Õù®›9bä,× ¸°C.4ù£®roftìnU™“תtšòÙP5Ÿ§nw±ÒFÜŸ}Ë(ñéÔ`5L™Ü`j8ÈÀ¥?ú.«Öõæ/P
õ/¨Â³©7‘7òãþ6!¯Qûà<Ÿ§£^íRéþ–qÅiµJŒÅ«<§v
›H·zY•Åê¦öa—ž¸ÞWëŽÞFÚãË8t—c¸ÐÀÈgÉ“U]9ßyÜ£(küú\´O8 -ž'|܇ÿÒ¼ÊÞ–ù"ÄÅn×ämÈ @UoÛ¢®uÖŽEA µª7Û¢tLøµƒ›Üå/!Ý^U˜÷»rÈÍUÑ>_ˆÁ9]ðŸë‡ú»;çž‹²ÄÉMÖ®ž¦ÔÒ%LUÐÚû¤:¾ŽôŽöƒ1g`UŸg©½ñ÷èíÿ‘¶Xj‰Ð -&½Í;î¨$7tJrœÚ§¬Å™§ì]`ÕËÑípIJ³ÞU8qL«H*»!¨¸£!2|4û'@.rh–´uDÊPÒ1~€”³ò9{ á÷í#ï™4·¬£ðµ†˜°rûk‘~âODò‘ûH”À÷¨r4KKX*c•4ôŠc•+€EÎ÷¶i³6ßäUO°Ýæ™—¥¯0^&WÕ¡Ö€{…¬O7¨¢'XT{ra“²È›P=XK;úë—Q]„ÉâE|Žö?ÔÄ0J”¥ì£jrƉµJž¬Œ -€Ì@–r!YY,În–¡À±.$Jðho ~±d ÿçÉÕ¡f€§d šPPXpå³Âì÷#TZ+h0ögíuà'^Ýløì›N4*2^9ûC¥#€Æ5¡ŒFhd£ä
Ü°d -lÏa7Úåež¹xé^tpO„DndÁ®¤´ÞX½>R>B”PžÚÎæ°]kÎiÒ¹×H2%AÛ]3¢s/Üo]çA0ï?nÐì·[«]Ƀ3v¹H7H“¯c¬ÿ°À(&s
,DŒ”ÚäïÇà@Žs"Í Âº.g$˜X¿ÊªÀ(ǧC€ŽgaJ°h/m±Éðøêá%ñ‡Øpˆ1q‡Åàì#¬© -×1Šv`í -¨ÀÕqƒTÄ’Ç@åšj˧XM¶…1ëBóí›åDb‡¢ˆ·“axˆ™rQh¯‰kÛ!ªYžê;&$±¦ÛpíT«“Žš†p*Fr)ª}›7¸µÏÔÕú -î»Þ¯|·C&UÞ>×»ßðc»Ëººh…ßѳ¸Kæ+\ëá›Ùæ;¨ -!+®|÷…ÛØCQ}M[÷–ߪü,õ] ̪æ9ßáµhs!á0©ãøs¬ÎÃæ™!¤cØð¶ÂEEîGÞXà‰Öƒåì#Ì´V‰>åÖ¡çÁkaî;[M˜çÀ—¢ê¾Ç½¢>âG‰ a{ë–(øÈÍBPÕ]P=Ö¤%ÖÇòÑUœ÷ú9Ž‡–¤¦û‰Ñép(8¤Ox½ÆàˆÃ§z¿ë#ã¡¿ +xÚÅYÝsÛ¸÷_¡ÉÕ‰`|LžœÔÎù¦ç´ŠÛN'—Z¢mÎQ¤"Rqt7ýß»ø"ÁÙ¾ú:L\,vX,vd†áÌ„D2¡É,N8˜ˆÙjs‚gwðíà q4O´©Þ]Ÿœ^05KP"©œ]ß¼ÂJ‘Ùõús$Esà€£÷¯..?ü}y6yt}ùñj¾ G—9·Ë³Ÿ~:[ÎD ½ÿáì¯×çKûI:ï.¯þl{û8Âty~q¾<¿z>ÿrýãÉùu«K¨/ÁL+òõäó<[ƒÚ?ž`Ä%fð‚I:ÛœpÁàŒùžâäÓÉßZ†ÁW3t?‚e’N +±SÊßjµf”¡Dë° %BÐ)jb¨{]´ëú÷ø©/xŒÅ²ÏùôÔ]^Ø'âöYíÜ»°Ïëίlk»Ën3÷µ¹OÛ*³ÆÌ‚={ +>Ÿå=ù{œ¬ ^‹ŸúxzACà5ƒ%ŒÆ†æú>3’2ºŠ¢zÈË;ûš}O7ÛÂ}{ȋ¶îòo®o7'*ÊÒº*ÓOw“ݧßr
’å蟣¨V©ct_Õm¥åºëªm³*ísÛiVMq°=«ª,á5[O¡p?T»_jØAŒªèRÏ d”k®"Žê|“éÎv6•{áDOxx«nŸÓõÚÊR׶£®vå›—¶ÇïXq” ïNŠeVo«²Îü°¬lB âèë~N¢l—gNÌ[3Oµ™ÒЈÃXâ¡ÔM¥nÙubLE·é7‰îL˃mh•ô³åÑGW÷tèš× +Û‰n˜üó>3¾AD›}Ñä‹rR™çº¶$©í
)šý®4fŸóÒ{ G^Öfíô7ç6éÁvÜ86û:»Ý¶Ïì`í”ÀzªògŒéÝ>œÒ9>9±2çsÑãïH?±*Û"]Á9ÁÍÌœ;ÐåÛاv<`®Úµ…0‚Àû(à¯Ùîv°‹Jã?¾ÀHÄBXÚºI›lcýL¹Ív›ÜlYdÕêŸ6¹ÙU@aô„g+e‹ƒ=g`܈d + +ˆ’œÒIÜ7:ëw±qðÞú|¾$‚£O™£O‹º²f7CðÃ…ÇÂoÅ1hŒ#Ì^Ã3F%‚óA̸‚FÊA d?îîf¶±"«–~0‘Uú_-Ç'p—v]Lˆiw"É”€·Q ëÉ4ŠñZª§$qÓ’ »¤Œƒ&’÷=ÜY9½Dx9D[[
‡™¤RñŒë8ŠÇωu)ȦÔt¤»ðüC«`O0Œ‘ŒcÑNkV|›&¬‚Rıð[)w§Â:Ó»Æz$m„®Ûcõçq½”2>¯Š´®íD‚‡IéqµT!Z„03
—ÞàŽœ—âÕr\„,
b=á¬eL5bžÌÄmúÀ€ÌµV“/šÏÍa›M¨
nHêÄõ´N +§”êæ>K?âøÂ&’R<±~B@ÎÞÀdi¹¶Åß±|"D½äÛå¸MêjãiìDƒS$æÑ# wÚ¼ s[_ŒK?â8æ˜!Å9{tÎl€mÂÀêÈWÿ3Ð]æf鈫}¹^ØÖ§/Åpk\ºœÐÕÓtÂk¶0
²L#ŠK‡òæ~Ej—?™™êäÂùŒ…ÉvÝq ÓÑÏUi”NVjWÕf››”’ÁžÖQÁ&ÓG3©wéúͬŽå2orsT0<Ìu©-Àõè}„µå!èܤÍêþhíÏ XúÂQwžö×£%ýµ¥}ÒßFõ2Cíl¿»'øœXD&uBð¹`ÍAô&³£¤–ÆÂ)Fgº2'3çÓI¿U¡œ#Æb[Úº¨\ÉÏ•ÍßL×ò(A€7^‚ržOñz+ïSs#áîL‚cZgîªÁÄ`ºõJWü“¿ò—í\Ö5¾¬ÈvTv;»²ß¤`ÇnD–„Zšîò`•îëÌ—Üaå«««Ê8¸70:êÖÙÑ"Ÿl«x$ÝÔ iNö"ÆÜ-¤þÞ¢‹)y?÷ `,ÄÇmC'ÔL’º*Ù‹1µjNˆÔ>êý–Öx í9bâÇ$+„ û˜¦ÅCz¨ûâãž÷‘CÎÔ·Î|Õ9¨Ka|¾§]ü´'·FÞ9ò°27—¹Žìø³«‘’%bXYó +l·YjDér‹Ã„nmù–%¯ ,`<pž`PÍÀãÂ$EžÕ.o€´^ap™½ýîÐËh^ûòbñrðŸÑx/Å `lªŠ‡gOFƒÏ½î.͹Îú}Üs:™VÝ7,»$íü{“•k¯ÿ§ývënÛpô9!ú¾¬Îu0 È|ÁÌ"…Gø«è1ÿÙXÁ)endstream endobj -1864 0 obj << +1867 0 obj << /Type /Page -/Contents 1865 0 R -/Resources 1863 0 R +/Contents 1868 0 R +/Resources 1866 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1862 0 R +/Parent 1858 0 R +/Annots [ 1870 0 R ] >> endobj -1866 0 obj << -/D [1864 0 R /XYZ 85.0394 794.5015 null] +1870 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.3322 482.5741 398.9856 494.6337] +/Subtype /Link +/A << /S /GoTo /D (the_sortlist_statement) >> >> endobj -1867 0 obj << -/D [1864 0 R /XYZ 85.0394 726.9349 null] +1869 0 obj << +/D [1867 0 R /XYZ 56.6929 794.5015 null] >> endobj -1868 0 obj << -/D [1864 0 R /XYZ 85.0394 714.9798 null] +526 0 obj << +/D [1867 0 R /XYZ 56.6929 553.1642 null] >> endobj -530 0 obj << -/D [1864 0 R /XYZ 85.0394 307.0085 null] +1374 0 obj << +/D [1867 0 R /XYZ 56.6929 525.5729 null] >> endobj -1869 0 obj << -/D [1864 0 R /XYZ 85.0394 281.911 null] +1871 0 obj << +/D [1867 0 R /XYZ 56.6929 399.8842 null] >> endobj -1863 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F61 1416 0 R /F62 1419 0 R >> -/XObject << /Im2 1405 0 R >> +1872 0 obj << +/D [1867 0 R /XYZ 56.6929 387.929 null] +>> endobj +1866 0 obj << +/Font << /F38 1082 0 R /F42 1288 0 R /F22 997 0 R /F21 994 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1872 0 obj << -/Length 3562 +1875 0 obj << +/Length 3145 /Filter /FlateDecode >> stream -xÚ½Z[sÛ6~÷¯ÐÛÊ3%ƒAâÑMœnº[§k»Ùiû@I”ÍD*"eÇùõû HŠrºÓ™Ì„¸à|87™ÏþñY¢cm„™¥FÅ ãÉl¹½`³ÌýpÁ=Mˆ¢>Õ÷÷oÞËlfb£…žÝ¯{{e1Ë2>»_ý6×±ˆ/±›¿ýxóþÿÜ^]¦j~ÿáãÍe$6ÿáŸ×Ôúáö꧟®n/#ž%|þöïW?ß_ßÒ”ö{|ÿáæúœÙôöúýõíõÍÛëË?¾ïÎÒ?/gÒäóÅo°Ù -Çþñ‚ÅÒdÉìscÄl{¡'JÊ0²¹¸»øW·aoÖ-ÒŸJ²8JÏ"©âü§µÌã”s¥‰‰µ²Ó²àSZTVËÛ²ŠöuÝ6ãórÆ°RËYÓÖÕoÑãÍY•¦Cæ÷…Õzf¥(·‡í˜yuØ.Š=MÔkúî/9:uKM±*ö
MµyK²¡iG\|>”ÔXÑìºö{æCª¢iG-‰e\³×šH…UÜ,*–*³á±IáΗ/—Å®-VÀ ä,—ÍWÅ:?lZê”NõoÞ+3ЗŽ³$Í e»‘ ’J¡Ð4Õž __ÆãĘd–ò$N$3¯2sÏ/›Æ+ÃcÓÔðó{Ñ:†½|“VŒ·Š‚t‘VêâY5׳,Eša&bɘvg½é)#ÑŠ“¾pJ¡¼6>^FšÏïñ¿˜Ÿ<äLCqFÍ4Þ×Z[Ö³Ï33eŒ$¢^Ûõ¨7ðæÃVÌÞÕ8Ѭ(¿qÔßÙJ÷Ÿ!/@É™ÖIÌ3™Ð¡ÊR€x»ÛÛ¢jní@E_oÁÐ2'·´‰Ef²Y_ŸíŠ$t¯
]t´O
@‘0q–¥Æ=–4•ÙëÆLóT&yݘuTV‰Mù=å›rU¶/Q îÑ;1l*•âé¬ÏàÔ°ª 9†-±‚9Èq·+–åÂZ‹T{‹’¦GÛ†AgÛ0¶Ê_<D®iÌ/Ðóõ¡=¥¢þócQÉ»›»»ë·4ŠƒWy lh>?´õ6oˈTÊâL -ÂhëºûeÞ‡Y½{¹ë=CîW7Ų®VÞã -" ¶Ã)9nÇ•ôïÚGMÛ'èÔì©`½‡¢[ -O×ôõ>ñB¸©`À¨ç<Йpœ}°-+˜JésܼƮûç²Û°n5–8Ò÷±>ì´d‰ZÀç´)'Ö“ÙdÇЦÿT`Xï"É&B®b#¸ñ$þ<Øï¡|*-XmÛ&“úŽ,º©¡ÎTá›ÒþFPßnkјHFŒmó/>E; -Ï9ïÞ(:œÑV/E¾oè1jsiôºÖJ™úÀÏZ„¸Ó<†ÑýHXˆ!®i¨¬lI–ݶ܆‰†¾‡Ê¢²$Cáì¹€jëékúÖ•_fo—ZýïHƒËÞƫvÌ4lNÖ‚XVv“ ,ätîM¹-É “oëCå_ŠíÙ|¹©—Ÿ¨Ù|*ž/˜t$:Vá"ŸDz¨œ
-$ -ó¨Ï\øbã“ -·m\Eû\¾Ó†Üã)ß—õ¡ñ£¸V¿e^ù+ -VŸ0~m†M%ˆãŒúFRÚ§:ÇuTáý‹ŽªzUœ&§¦LÅë"tT2ÍŒG0;Âqk«â1Þ·¼Í¡íî$/-ªé»ðk‹/ˆ•*÷0ꌻFë£íÈçC^µaoèÀjÂqšÇŠgfä!ݳWHŸ¯ôÒÑz.ÛÇÁTU<SÁã?®ÿ}É9ŸÇ4òätn!È1\ø×ÃÙ¤ Oc#Ev.=í œ³8B=ªW ¨Æ -6uG ÄL ø«rtT‚Î/`àô‡’q$wÂz{¸<ÖÎð`¨ÃÚKB†õn©³L"„;n¬ØXx«ÔÝQÝbY4
aãÈØBÌc 98¢Ö¡!ôYä<Ãqô¬ÿO„¥x‘™äĦæåþÂ$Rc™qþ:ÂúTçÖQÖ¾ìŠS…ŒKáX¯JÐQMˆ08LX ÚÈpÄbêœ>»}ùDPÐj~ûîêáÚ½-r^Ñ“ÕQ:û„ïÂ÷³Mhùëµ ˜9ÂÁvZÏHz´¤pbå‚Gål0¬€ŸEÁßijâ:øi$;RM !ÔzH@¾ÏT2!>Xf\QäÄëë$’EVái¹V Øåû|[P°‰mþB
²éÊŸ{[?Ñ&>†ÆDNŸAþŽi[A$É‘]`Xô©ˆ{· ô\(õ\ì%NIwÝýd¦»ÃÆ÷CóǨû™GŒ(BH‰ñÅËDüe¸‡;ª ÕÄIgiîÈq°œ°|"fäa16Œ={§@“by26èZ;Ô…þ¾ËbŠQRÜ3ˆ68Z\ĶÉźÓ>ÒPíR$É|>‡~Óú„VÏmhõTÐtíÉsO·p–ZÖ¶€ç3Ý4äŽLŸÞ€\æ~ÙÂS•U i»‡&m\“º´°ü¶yµš¸ y¸˜}µZÒŠÞóhS6--Öª·8cx>]–æþÄÓˆ˜ì^$•ž´ >•FÂݤüOÀD#dóTN½VJ›¤VeóHöit„œ>Þ)¡åÒq -¸-—‡M¾÷(‘ˆ®•²¥ŸŠçBü -IQ>Þ:IE…qŽH¼Ø¿x*å :ª ±|Ì«‡¢ñ5dËhßgÔv‹å|—÷:ІGšuAå;ø•_šƒ«48.] 1Ue%¶ÆôŠ^Æe¢ƄS˜~è`(tpޔχ–ÆZº€ñžƒBÕ¨Œ‹,Â"jlóÆÆ\¸¿ï±ô‡G¿ÉŸ<]¸4·õ*šò”ö·åjië}*Rmª&<¸ªÔS¨ˆ@˜r¤B<Òœ«K¹º1¢àj¡³¯Ùq2ÝvlÕÇÏÕôuÊp4Ôï~wc®êlGCýAêÌH; Ðxx‰cý%…?B!w (4 -Q©n詤Ҝ¦H(1ØÔ‡.ŸèI–…Ø
;…ØÎñîÑqe:jÎÐki]9JY{XЪñìý4žÉ&ßîÎH¸;_‡c§Ú”½zÚ -•±P$«G%´aÝÜÕÔ,ÀÏ-¡”‡´p @‚uÕô†&óÝ®SáD‰¹ŸÊxð£cû<áB½%Bñ®ÆΈ
ý|žòH²éUðLc[?Å‚#C˜1bC6T&Iœªq¡ÁAåKEñÉ™¹)±’¦Ôàä}·2 -¹±RYPTÂ|é½;ww姜RpRÝo§lÄ)e1c:ª\0£Gܨc*F=ëÒ3„s¯{ôÑy‡ˆÜ_UMtXí)}=R†ÄŒ›WywD§ÌñžHâ,‘bÀý®hÝOšá×4òll[R¾‰þõ»›;jýòîgj,kû×Î01[vøê»üÚR¼øŸšýOLŒlyŸãq9ýp
K‡Ä³“̇Žò»•/(eVÕßµÐÛ-ÙókŠõl&.¨á$ì<hÄâ¡[‡~}h›rU™/;`xo?
>—pà.8VŒÊÒ†îø#çÔ-óÕÈâ8®šðåž!ÕÛ@|¬³(o«&huEîdµ¹+¿‹aìÐÜïýô@}2ÞhÀµÓ ˆ‹&J†RÝ ÇØýÍ RÀ)ã·¿WÑñ8 ã¸f8@XòPxB•Ý¤jž‹}sîOû¬™•“/€uÕÆ¿ügÇ¿‰Ti,³ìLT;’ɪ¢÷'Œ±‰Óègq41×_Ÿ¬‚?º;ìvõÞÖ~u~…ÊNM"K×óŒZ!†g¿uª‡ÿŸ¥†Oendstream +xÚZYsä6~÷¯èGuU¤á!Šâ£3ñdÍzvmoª¶’<ÈÝ´šn©GÇØί_€ uô•LMÆU#Š >Póƒ?¾ÈU¤IÚ¤‰b\-VÛ¶x‚±/¸§‰Q<¥úþþâÝ™/Lb2‘-î'kå Ës¾¸_ÿ½ÿÇå¿ï¯n—±P,Ê’e¬2}}óõz¼ÿxóáúÇÿÞ^.uÝ_¼¡îÛ«W·W7ﯖ1χù¯pb‡럯¨õãíå¿þuy»üýþ§‹«ûa/Óýr&q#Ÿ/~ý-Ö°íŸ.X"M®/ðÂnŒXl/R%•Jz6wÿœŒº©Çô7Ѐd‰dŠÿ%¶\$ƨô8[§"“,•æôZ4ÁZ¾fÌ—7ƒ–Rb<^!œ'úð|
K4‡cÕJÁ™gt¾7¨aGi•¥ 9K” ¹£ø¸Œ3ÝÃÿ"ºÚ?X3å š>¹N3‹Ïž°ÔID“¶Ûë¨×ñîz+?Ô°£ÅdSaáxº²Û>Ú,:a:$²ÔI|]-㔫¨{.[j5vc‹ÖÒKýHO²bl™ïà™˜`I™˜òHYÂDf¼>šf SZÛÅu³,ZÛÆOš +¦RPvšù9mWtvk«Žøkë«jßÕö»¬§,ò=¿ ‘þƘx]JÙ5¾"ŸEÌÁö5P@+.°¨$†‰eõ>”™èÅ{£öÚ>â:E¿éÀeÊ£¥_™ŽÌ_•_ÈÒÓV…[s&§¬·»r㩺rkhwvU>¾á⸤'3t›"9Ä“½ÇMúvˆ…Σº¢'ž—kàЪ®pÊSßØ‘ÛÕš^6eeñì’}+NN2™ÉÅÔƒ¾Í)Ñý•£‰G`ù6Șû9²ÁÍùÏRðr.µS//Ï`0c¼™õ•?‚±+@‰Œe‰ÎrqüFñDñ”êŒ, +eÙ[wÝfŸ1àò)Â9ÎÕÖ3§¨N…Îæ¼ïlŽ'RáM'•QÕoÐ𱑟cZ·DÐÕÔ¹*V4GDàN„æKX¤¬ÖåªèʺBGcyĨ]¶ÅÃÆúUqµ²ZòèÉSýÆ»w€åi=.OÕ)shó˜o>ÞOÀ;‚À%…f2õ/À¬<²è
¶ZÛuÜ8ðå` +nS +qìÑ^ÿt¦S™&&øgŒáç#d Á]qFkn˪ïlK¬±ƒ]a[¼–Û~K/_ŠMoω£u"ŒžÏË“%)ãqä¡8 «T&A3 9ÎÏÁXáTҨش5µÀ>:§ÓzãNLƒ¢mÝ#Ðc›*
nîî®ÞS6X®¥ÐE¹éé¤Z¿½yžh€ko.plÓ±2L •`oe<ÇYr€A¹N2xmŒ&³ÛmJ§¦çCá;‚#@n´¦´~Vù¸wš›Qyt†žS7_|¢
3Ýs(Vr +¥”„ÍiÂÂÓ(5¥:R•STñWn§G± +l&Æœç?P`fÈ +l”s9—à~i +mW–c•}Kýâ)‹ª}±
Ëž6ã6“)¹gwêÜÓA–'`ÃÙŠQß:+…áIÖ‚äúH⬒| +ç‘çAë±n|׳m}Ÿß½”Õ0x}„Á”`ÛÛ$^Æ$øl»Tõ +س0#1í>X‚J6ëÕcš1úÚø-µó}…4ÀlÁÊ}ãò•P`„Ž»—Ô3b>½“\ᇕBFA:¥ÏžøEMë=‹òy +‹B™Nüa>à²E¸ö\¨ƒl¿Ú«S)š²îC
εÙû>`ŸŒîô“©iº—gC9lŒD§C¹@ÎÐûs\Õk{˜ŸfY"s™å? +0ÿ¬Â™A6•àŽ¾Þ‚ +xˆÆøø$–ƒ¶;y aiRM]pÊ~º}…`©rŽ endobj -1871 0 obj << +1874 0 obj << /Type /Page -/Contents 1872 0 R -/Resources 1870 0 R +/Contents 1875 0 R +/Resources 1873 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1862 0 R -/Annots [ 1874 0 R ] +/Parent 1858 0 R +/Annots [ 1878 0 R ] >> endobj -1874 0 obj << +1878 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [286.8324 603.0186 335.1613 615.0783] +/Rect [315.1789 239.4581 363.5077 251.5177] /Subtype /Link /A << /S /GoTo /D (dynamic_update) >> >> endobj -1873 0 obj << -/D [1871 0 R /XYZ 56.6929 794.5015 null] +1876 0 obj << +/D [1874 0 R /XYZ 85.0394 794.5015 null] >> endobj -1870 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F49 1308 0 R /F61 1416 0 R /F42 1288 0 R /F64 1435 0 R >> +530 0 obj << +/D [1874 0 R /XYZ 85.0394 661.3973 null] +>> endobj +1877 0 obj << +/D [1874 0 R /XYZ 85.0394 635.5371 null] +>> endobj +1873 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F61 1416 0 R /F62 1419 0 R /F21 994 0 R /F42 1288 0 R /F49 1308 0 R >> /XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1877 0 obj << -/Length 3864 +1881 0 obj << +/Length 4131 /Filter /FlateDecode >> stream -xÚ¥koã6ò{~E>:ÀZåCÔw8`Ûf{)Úí6IÚ~P,&Ñ,y-i³é¯¿Î–d9iqSÃÑp8œ7%ÏüÉóÌDBçñyšÇ‘Òœo¶gâüæ¾;“Œ³öHë1Ö×·g_½ÓÙyå‰JÎoïG´²Hd™<¿-[}óï·n/¯/ÖʈU]¬M"V__½ÿ– 9ý|óÓûwWßýrýö"W·W?½'ðõå»ËëË÷ß\^¬ef$¼¯˜Â‰Þ]ýpI£ï®ßþøãÛë‹?n¿?»¼
{ïW -ùtöÛ⼄m&"gæü D$ó\oÏb£#kí!õÙÍÙÏàhÖ½º$?£³Èd*] R#Jã89OM%Zi'À¾½Xk-V»¢ëhÔ?î/d¶j‡‡GÜÑóGÛÐóïB(²OE]‡·ŠžÑëvó‘†÷ûâak›Þ–~‘ÍGÛóES~ÕîÞùåÛÈŽ<v¼–2ÊQŽý‚¡Cy ‡¢·{À[
ŒT4¸{îm!)ŽI ç‘ÎX.M±® m,D£T§9 #ÖSU×@75«{Å]›Pi⤊С«š -ÆX§cAÀ"W±Gk»ÞR"4‰ ‰ŽÉò‹L¬.&Q!É¢D€NظÙÙM…\872£øÀ«yÌü¹1ªþþÙ6ÌÎ?ÑÙ£ø¦MAŽ¢&{¡ÉýÃ9
®G» -ø¯ìê˜.)Ûƒ8J"H‚æü€¿EíM_–mÀz…‹cj›X{/žâ -J¥Ü¬}ñ´ (™F¹Vã`€oý®"Í=k àÀО†¤÷n>%Ͻ°´–Q¦rùÊ)¥‘NïZ9 -,Ò?ïª
Dgz´_À$©´ÂÉ–~ïùÁ6v_ðt -¡ƒÑOåf&qÜåfkvÒPRjef²i·;ˆ3í‡/À(²‚¶~ÉãJ9lw>gÇei”ÄâÕ\ÂP®“pP”¤y¤t¢§Qå}Û£?×ÊGc==º¬ -¨abÞóñK - Te"¤V§ -MÕ¤T^kUünçŒ`äMzB¹‰’L©Ý—‚¢.3Ù|ÿ‰öI#’ßZȯyu‚p˜@è -ȼ0ODùTí~©î†ä 1>â9Ù,ÒITÓ¾ðtµß¬j9Ö=#‚î(ab•5/–0c¬Ó%LÀr†PW ÑníOþÓ`÷Ïœ`ƒaq~Î%ŠQ™ÈËl¬>§i–Š2©ó)£}» HÐqà[«‚Z«ÔW¡•p,d¶0¹¶˜ÈÓ|Ñ”4‹Ý3×:ÇfØÞqµåpÌ[®|}#s3ì¹;©±á¹…¤·hl;°Ó`¹Ñ4Ù1Šæ™ðjCC’¨jz9ñpx‰†öÜ?´/Ò8óÎíúÀ7Ÿ '…ÿ›šû23¢”TIˆ¢ÿ:E3õˆIï¨sïãó×ànã®Ò§‹(Ö±šy†
Ê`BŒ’ñ—ùª¤ŽÐnÇM†lÖb]º$°£Dèìõ8`’Ðñ} X©ç²ëÇ-qôõõ=ú¡±¾_M}ìÐßÈX§`vóˆ½FßÜTJJiæAÒ÷Bî¬ï˜<<Ø2tJ©ÐKá~ËäbE -6¥ˆCr”fs@“Ià†Ý#ç„0&ªàˆ4Ô.zt‰¦â4F¨®tñ!
ÖLÈy9ø%U—tM?^ÑaØsdR TaŠWî‹–Ùu‡øëÚú³=Ñ”s²’n!'Lµºº';_éÍ|Ô„“£-ÁÂTÿÈQ‹Ë‰l)EÛ̲iy¶¬uq>kã -`›ÃÖúÕ ->ìŠ7R1O¥-j6 és,×o#-©1„Í.ˆš5Kl×6ÞU%¡JYc -‚ÎÓZ˜!—Pk‚Kc¹ºváwú¦ö=¹y "öi¨‚ÿ€Ùºm?†w‡hp2¹ qLq%pœ…æw~ñ·ö<šñС‡mĘ¼±=AåîqÔó•í7ÿ`â÷Lܹ7÷Óe -qPòRîâ‚×£|¢[ÎXféÅ´Nœ€‚¯<\-ö¨
u“'y ½Žâ`Ì›Ëëp￾ÃÆÚÛ«"¾q[Ì7=ùô¤©ãU–ÈWL}ŒuÚÔÖ±©{o?7vÈö3Hä_f#`-ð11öJ|ð >nBBÃ…ŽUŒ:9è€æ/€4~-„=²lBU0ps—zk8Õqw) fª“‘™R,óÙº»Í×sMAÐÄt
ä$W÷4±
—G«èÚot®eL,É^ù¨Üß(Ƨ—rÊ)•ÒQnÊ1§¬”HÏ+%êäzÉHFÚª…^ýŠ.V -P†ü®T(øC +xÚ¥;Ûr䶱ïú +½…ªòÀ¸’ÄãÆ«u6‰×Ž$§êTN¨JâÙr<$¥•¿>Ýè‡äp$§N©TÄ¥n4}F]JøS—.©×þ2óV8©Üåzw!/¡ïÇÅ0«´CýùîâûO&¿ô§:½¼{Í•™çêònó¯$Z\Á2ùáç/Ÿ>ÿøë͇«Ì&wŸþrµÒN&Ÿ>ÿýšJ?Þ|øé§7W+•;•üð—¿Ü]ßPWÊsüùó—ÔâésfÒ›ëO×7×_~¸¾ú÷Ý_/®ï†µŒ×«¤Á…üvñ¯ËË
,û¯RŸ»Ë¨H¡¼×—»ëŒp֘ز½¸½øÇ0á¨7]âŸu¹pÚ¦—+cEø—¹¬D¦ +o‡ýÉý°?^Î÷‡ú‹'Tx÷¡äÆT5¬».¶ÛWj¿eæφ–©Èü°G5pk³°GƈÔ"CˆéP¬¿²î‰éX÷"«î¦«€bPŒž”
TQÅ3H»®i¦ÝTÐF +ñ;L
K¥À¢ò(ëû+#Ó¤êðK€õ¶J‹Åº«žKênü©`¸ûv›Ý~³#`³Œ´‚œì +É"§ûImEÛ6ëª íS†)ÁÒ-XB<¡@{…°÷ÊLu v<Üî⌙VF¾Æ‘yÒ×ñÌ8/§ëŒ‚àÇ\ôÉj½-‰?sIȨ( @}µù¾Ø>6XÛŽÆž°¬`ª†¡(i¶È뤡„3‹à̤|ÆáËî' +ª™œR=X r¾h§%ˆhŽ~|xðüÎü™ï¨Zpé(¥BÚ¥¹s´Š«Á‰a5§¬TR¡í¶ÿÝ©:ãظ,êŒ=ø5# ónMBtàG®åøÊO«®ÚE¶ìŠo‹Íº;¼žÂÆÆ9ù ’àˆ[Þ¢ +<‘vÑÙbQ3àÿ¢fÀi¦7/ÔNJÛ6#r¸¯¡o`F€¡:î0mõ†[‹o±õDæf ƒ P{<†sþ”9>ÚBÔ@þç*ªBk‡¦ç +b:ÐÙ¡™|muò¸mîƒtqˆgd‚ÁÊqï¡BQm¨Hr…¸±[oAÛõ÷Ô„DµŒž»á˜l‹Ýþ¼k{G¢íä)·‚Š
½[aó[,.ÁMuò8#úf:#%%?'È”‰â@.¸tõ´ÔYì÷OíF}6WтΕó‚ñ +bsQ +g|S·«~³‡0é÷Ó…–•)ÿ6újÿÄÝÓNäÎè)·%Šº–ì¿b¡Ø€¦í*Š7¡~ýñË-•~ýøîû<•A=IL;ü΃C|¯]'nè;ÕècŒÇáÁ»„ ÷x”±ëXB|·áôµà©A 2‘Ý¢díeFÖÍÊ‘†ƒ§4eÐkAH¨¥bõ¦ïÚjS§ ù€. +Eü*©›zu\4ÐrB1. y,†¤ +'©ÛpØÅÓT¥V3ã6ÙH¶¥çj›þñ‰î©þ5DüF†à”¸òöpâ=ß6˜ãÀâáxÜÁ¾…ø. a!Ä +(§ïƒg0ˆ?Ó/lâQAí<ò^uG¿¦à¬.I(Â1g¢Æ‘5{#`ÏÌ'à”tæÀ3Ýnï)¹“¥´%ÐÚsBšˆh‹ÚªjÂ,~i¡£ :ø|U„mµtÓG8Hg¬«® +n0Õƒ¸àùÈ +Ò#Ž³`»xYæÖMÈU‚ÓZrТUÖSÈê
5’ßà“²^7=ìyIÕ¶"<#”oÜN?—(¤×dÉíŽbd +'a6Ö*ì)8ãšTÏîõÆ6ÝŸ±
ÓÒžÚ0âû'{„ű
Ñ#GÊ6l2ÆF·ÎLÓ +êú9V¨ÁÏ¢L~9¡tšÍ.vX4™ôj¢r&3ä†À4ÞÑn9Ã1±G¸îM…Az±=ªwšôP„£T¬Ï„¨¨8“Ùó,‘ùwâšÐy{èøa’ÉÛ–+8½;ò†¦×¯Nè,³oR0 +~cþ>B¶±âd[ž&L!¬‚õgã…Pßáñ’ +7ãÔi{I'³’Œ»Š”bž¤| brˆ1oru +œÃbLy!,zmØ6¢…iÛEë–b;c»%N —ûáR£xYºÂÉ„7ztƒ“‚†þT‘ÌÚHˆ6_¡Ú(ñ¡?#m½€Ú(‘k¯ÞÙ¥L˜lÈ´ý@Ò½î«5嶱z¼Ç
}ï˜ß0PwF—f6Nð‚?æ|fÇþ¿˜1Þ +£ç÷†x=9s™“J‘JmO Ùr.*^AmúÝ>žÅö<©•ö=ÿLz“7`^„6©™Z’/M¸23ñRKüàÃЕ©nS´¶VS M5‰~jž,ê<F±$ +ð²w^7XÀᣡjK±68ép#x³8´¨Úb°â½Y¤r*{N²wîÕhq؈·Þx3Ê@Ç»¥už + S&* hÐ>O'4p&Ëp’Ô;ºY6ÇwÈX|ƒúh 8¶qÜósFšrÞnä«™p¦•“Þ.`êWÆR³qÍ`K½Ÿ'ä« Ï|°¬Á6z.ÿ«5? —ÞŽIzæ1áE¼¡¶V%7eÛlŸ§#MPb4¹>Þ¡ÿÖWÇg\æë0¶ßSãÉŸyhWºfñ1°Þ4ÿ¿á¡ endobj -1876 0 obj << +1880 0 obj << /Type /Page -/Contents 1877 0 R -/Resources 1875 0 R +/Contents 1881 0 R +/Resources 1879 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1862 0 R -/Annots [ 1879 0 R ] +/Parent 1858 0 R +/Annots [ 1883 0 R ] >> endobj -1879 0 obj << +1883 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [353.2799 570.7008 410.176 582.7605] +/Rect [324.9335 217.9923 381.8296 230.052] /Subtype /Link /A << /S /GoTo /D (zonefile_format) >> >> endobj -1878 0 obj << -/D [1876 0 R /XYZ 85.0394 794.5015 null] +1882 0 obj << +/D [1880 0 R /XYZ 56.6929 794.5015 null] >> endobj -1875 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F11 1509 0 R >> +1879 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F64 1435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1883 0 obj << -/Length 3281 +1887 0 obj << +/Length 3499 /Filter /FlateDecode >> stream -xÚZKsã6¾ûWè¶rÕˆ‹'Ù“3öd•Êxfmm*µI´D[¬P¤"’ö8¿~»Ñ -gy“~›íêt–}ÛVeV6³:ÿ+Û·£œ©‰/à@ŽjDáéÁC¨„ÇCEëV Q£|Ón¨sw…hêô£aTòÃåL²xš—4ô7µjÖ©¥{ɋ¾¶ÜÓå2Û6Ùʾ_g%ñN‹|•634}2‹y' ôŒó Ñš2/ŸÀ™BžL¾LÄ? -9<ä°Œ‡“$¢@D\Z"£HAq‡+'’@ÈÈ’.~¹a¨@K쨖EZ£kêHàÔÖ -g²Œ=GëÒ]C-3UøšºÞŒAï9Ï^è5ºreÇà5”*ˆ4€@½Û=M¨q7–X|úC¨9àŠÞgKë‚/ú -@o—¯VYùÝØ”C’’QÌŽeÕä¯ãxF:éLÁwÓ"æ»]¶lw5Îðˆ³i(‚À‘íTv@å³åI u$Ó]f/³cèAS'Ýò¸iÁ„‘/ékí2KC
Jb€¡‰ÏÖM†q7)c~hÉù¡ñ3!¡ˆb /< `©(™?¢(>}Zj”™)HºYåuúPdÔi0±i¬ü@í¶îßÓ×»âèCScûÕŽžkÈqƒï€ô¸Y`=œqÀ× Vݲœ@ -."GEAn˜¿Z“2Œ¯êƒ1|yiƒ©MæP™ù2·‹â¸1ø<œA8òø
°Æyâ¼È–vÀ2ùrÕÎ? -',‡"§Ò‹-‘µfB}ºŽö©Ž×Ñ•™Å¬_n¥ψµ4#RýyHt $DÓ@*ÍQ܉7ÆvE¶×U[¬¨M¡µ0u›¯ó”öA hšf}žeºÉFj8!òœS‘>Á‘&ÂÝ Ó.WåÍÚJyÝŽ•1 -ƒ:q»øe1ÕДÚG9À5õ©ÚËGS˜ÂâKœqG h*:§Å$–[¨B£ÏžÐ1) 6·Bƒ¦Ýä8èuK†®æ„¶ÉµI—D e×6ª 0’áô~›-ím„î£ -u]C!á|sPÊ1(oÃðŒäŽjDôÀËpnU´'›Â0{%L¯qÃ]bÛÅa
ãÞQBÃ>\BÓL´ÏóXBU ¢Ð¥{§Ð±@ŒYÐŬ
C2†°áxŠµÔ›â¾ÕGCOÂä&ßzÀrAA‡.öj7•>ié/
Ó¾®{!,×yéѸ¯Co?ª§imâ@Åj83U‹;q¡"ÊÊá(<eS ËU*,‘â±-Íþ
döx -u›Ý‹Ä54ç,Ê^åa+/—Ekþ"åŽ]Ôži‘îM£÷d4æ_ŸCj—%bÏ\z‡Ø»4ʇ\óTf+54-f>§¼üƒÏ±]‚?¡öŠdË ZEUmÒåöØn ”«£Ÿ¶åeõR|têx·ª„îOÚ›a‰:&öÞºBÈmÌÖ»9øB™ -Tø †=Ä˪°‡9«WȾå5î=±m–BÐí«!†|ól?ĉ'×uà"(yyBa-_(,V3„¿1'òhºÍÉ*ƒê.El%ìO©h"ái©5¢qÇìîH·O
Öds‹ë–ÆÁB¹•ÎþÂ޲ݑˆÒ~Räu3ÜIíɲŽ×ß»!äX: žþÁ‰Oeö4½ê‹¡=^t©™rOhdΨÅi¡ŽèPèð¬R~’è¡P΂ùíìêúú.¸ºûŠ— +xÚZQsã6~ϯÈÛ)3kHŠ"y}Jw“ž;Ýl›ø:½kû ÈJ¬YYr-9Ùô×@2eËÉvî&31 ‚$H@Pì<?v®eœ“ž+“Æ2aò¼XŸ%çÐöÝs<3Ï4¹¾]œýýZès›Œg狇`,'Z³óÅò×èý?/\\Ý^̸L¢,¾˜É,‰¾ß| Š¡Ÿ÷Ÿn®çßýëöòB¥Ñbþé†È·W×W·W7ï¯.fLKý¹áD‡ëùWTúîöòãÇËÛ‹ßߟ]-†µ„ëe‰À…üqöëïÉù–ýýY£åù3T’˜ÃÏ×g©±L…ð”úìîì§aÀ ÕvÚ?)t,5WÈy°,rš+iâLpa70_.·LGe×½ƒ¥¥:z^UÅŠŠUC¿ýnëJÄûÇ®rBj×ÖOUóH¤¼iûU¹ÅŠŠš|]ÚÑMTöÅ7nð7øª¤B³[ßSµ^‚¥›ªè«¶qó•_Š²\v¸û°3Æb#%·ëéWUGGô”×;;+”i(¸±vÛ®zr¤?våö…Š¾k_n×U“÷å’êy³»ãv8Î;Ð=)£Ÿ¯QQ.ç?ÄD^øù–åC¾«ûñð*>Ò›$N$¨´bYÌt&¦íÄ1ÍB.:f6e'ž·e™miÝm3Ã%Wew(pÇZfêu1® 9FêfX¬Á‚GrÜ•=n‚ÈÜ‘‰¢UëÝš¨ƒ@Ùê +c,B˜H’hþ@
ë–¸÷lV@¬äû–”Db(¥à†v +`>)(¼é¨¼w2PSr¨§‰É¨„ÒºÁì‘6ØVþ,I㨆ƒ±`µò“ÕcØ/ËÖšeȘÚ0¤´û‡th„Ô1(^<¡ÖèÅ&ÉÀ˜A¿SeèÀ0DÇxVÄðÀßŸÙã°&¶}*mU
˜ÙÚÂ{hcÇÆ +·SÕÿjŽF¥À·pJÀé¢Éå±C—ŒÄ™pèŽë
)ŽG#ghÍ™;%ã mýÄ)¦<NûŠcÔÜ«…»9âè8œ•õ™HÝGbX#eåA¸…Twh_!!g*–YjÜìó› ùÀ…}÷žÎü”†~¬Ûû¼&*8\ÄvLƒS9Ž#w[oË\DíÆÝIçVÅ&„÷”áe‰ +B€‡õð"zÒ¥€ñ7tR +¡à~¼f.ŽyÊ +!0HUæ=¾è”Â~ÑŒ'™6B +ÚÐÍÝüƒ³# ì‰ÞQ’¯Ýú‘)è‡E!B”Ý!.3tëeÆ5N .B¨d^ç⻫۟¯n§¯•™ÉÆ1|*æ1܈Ô_‰yìp'Ã…Jþu(›íQ‡\Ð${Bê endobj -1882 0 obj << +1886 0 obj << /Type /Page -/Contents 1883 0 R -/Resources 1881 0 R +/Contents 1887 0 R +/Resources 1885 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1862 0 R -/Annots [ 1886 0 R ] +/Parent 1858 0 R +/Annots [ 1890 0 R ] >> endobj -1886 0 obj << +1890 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.6967 630.9447 117.601 643.0044] +/Rect [84.0431 468.4468 145.9475 480.5064] /Subtype /Link /A << /S /GoTo /D (view_statement_grammar) >> >> endobj -1884 0 obj << -/D [1882 0 R /XYZ 56.6929 794.5015 null] +1888 0 obj << +/D [1886 0 R /XYZ 85.0394 794.5015 null] >> endobj 534 0 obj << -/D [1882 0 R /XYZ 56.6929 701.8294 null] +/D [1886 0 R /XYZ 85.0394 542.8349 null] >> endobj -1885 0 obj << -/D [1882 0 R /XYZ 56.6929 676.5981 null] +1889 0 obj << +/D [1886 0 R /XYZ 85.0394 515.5191 null] >> endobj 538 0 obj << -/D [1882 0 R /XYZ 56.6929 343.2503 null] ->> endobj -1887 0 obj << -/D [1882 0 R /XYZ 56.6929 315.5681 null] ->> endobj -1881 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F49 1308 0 R /F14 1020 0 R >> -/ProcSet [ /PDF /Text ] +/D [1886 0 R /XYZ 85.0394 171.7491 null] >> endobj 1891 0 obj << -/Length 1375 -/Filter /FlateDecode ->> -stream -xÚ¥šKsGF÷üŠY‚N¿K,!—L¼±½Š”TªüŠcWòóÓõðÑôÜë.—Ke@‡9:S]3wÔ ó?5D'¤IvÉ -'•~ÿ0“ßùw·3õÈ,´DêÉ~öˉCÉk?ìÿ€mE!cTÃþþÍüêéên¿Þ-–Úɹ‹¥órþd³½>¾’Žÿ]½ÜÞlnÛÁÎ÷›—ÛãË»õÍz·Þ^KÊï×[˜xÃÍæùúøèv·zñbµ[¼Û?›÷cö*i!ÏÞ¼“Ã}Î~6“¤è†ó)TJzø0³Îg)¯¼Ÿ½šý:n~ûýý72KcEôyô^vIx£Í¸—•…½œòÃhrA¡{ùT¡NUÒæ7Ù0àö.¬#u©Õ´JæÇÖŸkµ*h±Ù.W××;±ÚÝ-’ž¯&wºUÂx™˜| ˆüBñù”òkm;µÚôåg^Æä™| ˆüBñù”òkm;µÚöågWT‘[ü@ù…âó)+ä×Úv>jµëÊ÷Ñ烀g?RÓù#Åæ“ÖSþ…¶™¦Õ¾/ßG¡ƒcN0Hù…âó)+ä×Úv>juèËwRHi™Å‘_(>Ÿ²B~mç£VǾ|£D0:2ù@ù…âó)+ä×Úv>juêËWFXÏMWHù…âó)+ä×Úv>jìÊw)*“Tt>RÓù#Åæ“ÖSþ…¶™¦Í+¡+?x‘Td?RD~¡ø|Ê -ùµ¶Z•ƒ*uô»(²Ë2ý@ý…âû)+ô×Úv?jýáÒAþx¾Í—Ás«("¿P|>e…üZÛÎGw}ù‡‹™]t>PD~¡ø|Ê -ùµ¶Zïûò¥ÑnñEäŠÏ§¬_kÛù¨õ¡+ßæÎ3c@ÓñbÛ)å)½v6ËÑy8èõ„祓d–=RDz¡øvÊ -ñµ¶]ZŸúòmR%ÃäEäŠÏ§¬_kÛù¨
²/?OHÁ2g|€ˆøGˆo'”^9Ûåàª/\iaƒgîq E¤Šo§¬_kÛõ¨
º+?ÿ-³ì‘šÎ)6Ÿ´žò/´Íü3m0}ùÁ‰ds)"¿P|>e…üZÛÎGmè›ôŒÂ¶GçEäŠÏ§¬_kÛù¨
}“^ÞkÂ$Åœì‘"òÅçSVȯµí|Ô†¾IÏè|¨T‰[ü@ù…âó)+ä×Úv>jCߤg¤ÑFæRD~¡ø|Ê -ùµ¶ÚÐ7ïéh…YüHMç›OZOùÚfþ™6ôÍ{:_阉)"¿P|>e…üZÛÎGmì›÷´ùe?RD~¡ø|Ê -ùµ¶ÚØ7õiDð†¹Å‘_(>Ÿ²B~mç£6öM}Z)a“â?PD~¡ø|Ê -ùµ¶ÚØ7õåk$¡µdnq 5?Rl>i=å_h›ùgÚØ7õ©<%¦¼ï˜| ˆüBñù”òkm;µ±oêSÎs£)"¿P|>e…üZÛÎGmì›ú”‰ÂJÏ-~ ˆüBñù”òkm;µ±oêS:Ÿ(
sÞˆˆ„øvB 镳]ÎØ7ï)©Dô†[ö@é…âÛ)+Ä×Úv=jcß¼—O.iæ>@ÓñbÛ)å)½v6ËÑ™ú&=ïD¾Jâ>Æ/õ!þwæ>Ÿôáøg‰ïGaR·5ÄáËk?!ÿ(‘œÓ?ÿ=:¸9„‰SßÄ1Ò‹¨S(Ôq\Y,õ¿V(ò4·¼ÓÇgo¥“ëÿ¾>|¼¸?¾òêÛçÏŸ¾|=>y½PJ;üóקUõ~pùøè¢ñ?Q
vendstream -endobj -1890 0 obj << -/Type /Page -/Contents 1891 0 R -/Resources 1889 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1862 0 R ->> endobj -1892 0 obj << -/D [1890 0 R /XYZ 85.0394 794.5015 null] +/D [1886 0 R /XYZ 85.0394 141.9824 null] >> endobj -1889 0 obj << -/Font << /F38 1082 0 R /F14 1020 0 R /F22 997 0 R >> +1885 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F49 1308 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1895 0 obj << -/Length 1395 +/Length 1574 /Filter /FlateDecode >> stream -xÚ¥šMsÛ6@ïú<J¡X|ã¨Ø²£L£¸ŠÚK’Síf2“¯¦é´?¿ e+Ü
¦ãÉØ’žùüH\‘‚A¦/¬.ª8øh„•`‡ß?-äð>=v»€'f¡5¦ž?Ýè0DrÃñ´ d0ïß,Pb•¶ —W¯ö7»Û_›•7ËãîÕ~µVV.ov?oO?Ý6/_n«5Ë«ç›»ãöpzÈ=mãÙn}º'ž¾Ílô°½Ù¶û«íêÝñÅb{œZp/H=†ü¹xóN÷)ûÅB -ƒþI7¤€Õðia¬Öhïù¸x½øeÚ zôñW[ûobÖÚˆüÌ^¶Q8ô´—Á ½ì!=èRA¦Æ½üV‚¯S}Ú5àÍ]H3t)U -I£=—F•v¡»ýzs}}›ÃÝ*ªåfv—ÚÉÈÄ#ŠˆÏOIK|-mÇciÔ}ñJ§çDtL<¢ˆøL±ñ”´Ä×Òv<–>>y:âeZö£‹ŽGŸ)6ž’–øZÚŽÇÒh»â]péÉï˜e©ùø‰ââIé!mÆŸI£ë‹wA(o™Ã -¦ˆøL±ñ”´Ä×Òv<–Fßo¥Ò0ËSD|¦ØxJZâki;KÓA½+^ƒðZ&QD|¦ØxJZâki;Kcì‹-Œã¦)Lñ™bã)i‰¯¥íx,Ë{êíø -%Ðõ˜š¯Ÿ(®ž”NõÒfý™$ôÕ'Y„À,|Lõ™bë)i©¯¥íz,Ù7äY„3Þ0õˆ"ê3ÅÖSÒR_KÛõXšÞ!ôÕ›ô.À;nå#Š¨Ï[OIK}-m×c)Ⱦ1ϪqÏÔ#Š¨Ï[OIK}-m×c)Ⱦ9Ϧµ´æV>¢ˆúL±õ”´Ô×Òv=–‚ìôL°Â:fÔAÐ|{†¸tÊ8•×Æf86‚ì›ñŒóBEɬyLå™bÓ)ii¯¥íx,Ù7ä…„¨™zDõ™bë)i©¯¥íz,Ù7å-…7ÌADûĦÆR^ÛáÈÐ7ßPÂxÇœËÀQž)6’–öZÚŽÇR€¾ùNG#”´ÌšÇÔ|ýDqõ¤tª¿6ëϤ -Ð7ßië…7H×#Š¨Ï[OIK}-m×c)@ß|—öšÐ˜ƒ<¦ˆúL±õ”´Ô×Òv=–ôÍwZ¥× ˆÜÊGQŸ)¶ž’–úZÚ®ÇR€¾ùN§÷Á挦ˆúL±õ”´Ô×Òv=–ôMy*a½gV>¦æë'Š«'¥Sý…´Y&è›ò”sBKË:˜"ê3ÅÖSÒR_KÛõXšž}õ&©
³ò1EÔgŠ§¤¥¾–¶ë±T߬§TÞi挦ˆúL±õ”´Ô×Òv=–‚ê›õTš
Mnå#Š¨Ï[OIK}-m×c)¨¾Y/½/JI挦æë'Š«'¥Sý…´Y&Õ7ë7"¦}ÇÔ#Š¨Ï[OIK}-m×c)¨¾YƼgÎk`Š¨Ï[OIK}-m×c)¨¾YtF:nå#Š¨Ï[OIK}-m×c)¨¾Yïñ¡™‚ˆö'ˆM'Œ¥¼2¶Ã‘Tß”7^é NskQDy¦ØtJZÚki;K¼;èôëŠ9¡ ùêqÑ”qj®Ídlÿ¿üÚ¼H+ó™¡®Ë?2üUùYº&¦›¹"?é”M¯è.vœ»ãGÐBú"Z«þÿ§áÐé?/t˜û\Mõ79è“}"Mlë;uºõVZ¹ý÷ûÃçû‡ûÓ=¯ÿþúõ˷刺 -¥jì‡ÿ +xÚ¥šKs9F÷ü +–°@Óz´³# Î85q2„™M’18¡ +C“‡óëGÐÖEˆ{šr¹PÃ×::r«‘ÚâýÊÿð~™vÂõS¬®xÝ¿½ïUýÏþ³—=ÞfF!4‚©g³ÞoWÒösZèþìÔeYe-ïÏïš 6ô5Tƒçon®®_þ=Ì®ßÜG¢®W×NšÒËéøõëñt8â¶æƒçŒßÎ&Óæ#ÝÖñìúæEóŽk^.T:\M¦“›ç“áÇÙ«ÞdÖ¹@_^Ƀȿ½÷«þÂk¿êUL:[÷øƒŠqçDÿ¾§jÉj%exgÝ{×û««|z<5Û¼bBj‘é@!rX;¦¥Ç¼™ß/ÞJÈÁÕzÝ”æûýòþë¾9Øo›×År¿Üݯ6ËæpuwxUƒysøéÛj½6ÍѯmˆÍ×»!·ƒå|ñؼ±ü¹zØ?4åí®«=žßîWßÛ?Tuu»ý¾lNo›øéñz·Ýý˜‹Ñv³~<ü9|ŸŒ8g®®ÅQdV›ÏÍßo±¼]Ïwóýj»ñÞ¼9ß,šBÛ¾´Ùî›Âm+±_†lózè¥Ç¦Ø*ûÒªýpÿeNŸ?,Y×8ã§Í±q³/í9·ßv
bÓž²ö½Ô”¶wYÖC{øýâEè»Áh©‰ARÇk†+pÍî/
ê:´úCÅM +5¾>n
¡sèÉ…j9««O¡þ"¿¾_¼˜²ñôíЉÁø’¸v’ÙÊ·‡©Ëâ]ŠG¡ø4+~åšq#ž.ojfýM€)D>¤HyåSh^Bý`)’¯
³N*B¤ù"å1h”O¡yyå¶L^úú¤¿³àò …ȇ)A£| +ÍËC(weòÂßó£Æ<H!ò!EÊcÐ(ŸBóò*ª2ùJ±JHAȃ"R¤<ò)4/¡¾#Jäk«Y¥51æaê²|—¢äQh'ÍÊŸ@…(“×þQ9bÌÃ"R¤<ò)4/¡B–É×~˜Ô’p!D½
‘æ1Š'ļ7 +U¦-ý5âë#¼A +)ÒƒFõšw‡PQ—Éså;ŽXIÂ"R¤<ò)4/¡¢ln§œ_ïZAŒv˜º,ߥ(yÚÉŸA³ò'PQ6·SÆ2)ˆÕ!êmˆ4GˆQ<!æ½Q”Íê”öK¿ ¼A +)ÒƒFõšw‡PQ6«SJ0Å1Úa +‘)RƒFùš—‡PY6«Sþ{AÕµ%äA +‘)RƒFùš—‡PY6«S•fŠšÎƒ¢Þ†Hs„ÅbÞùa~ãžî-eµÄp‡©Ëæ]ŠRG¡û4+Õ‡Ç Op#MÅj[÷x˜BäCŠ”Ç Q>…æå!T×eòµ`ZXb¸Ã"R¤<ò)4/¡Z—ÉKÅ´ÄS+˜BäCŠ”Ç Q>…æå!T›2y®™!20…ȇ)A£| +ÍËCèqA÷tyá,3~ ŒËÃÔeù.EÉ£ÐNþš•?jW&o+f+N|ÍÁ"R¤<ò)4/¡þæW$¯³ª&Æ<L!ò!EÊcÐ(ŸBóòê[R$¯³ÖO` +‘)RƒFùš—‡P?±+’÷ë^ço„<H!ò!EÊcÐ(ŸBóòjd™|e™3Šó …ȇ)A£| +ÍËC¨)›áqÇYÅ-1æaê²|—¢äQh'ÍÊŸ@MÙû+¥Òœó0…ȇ)A£| +ÍËC¨)›áñúÐYŠxvSˆ|H‘ò4ʧм<„š²—>¯1æa +‘)RƒFùš—‡PS6Ãã‡å9N<¯†)D>¤HyåSh^BMÙWœ ©¨1Rˆ|H‘ò4ʧм<„Ú²ž•LCyº¬B”9FìÄSbÖmÙÜÎ/ü%µ”lÂ1Cï?¸ˆ»Npöt8+ +]°ÃµLüo»ëo…ƒù™´Và»ÜÚ6lÀ¶>æ˜mŠ‡ýe“Ÿûåf±l÷}½ûöõëv×îºúgÈ9,wÝ1å*9°ê¬Âî»óNø +9¼endstream endobj 1894 0 obj << /Type /Page @@ -8442,25 +8439,24 @@ endobj /D [1894 0 R /XYZ 56.6929 794.5015 null] >> endobj 1893 0 obj << -/Font << /F38 1082 0 R /F14 1020 0 R /F22 997 0 R >> +/Font << /F38 1082 0 R /F22 997 0 R /F14 1020 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1900 0 obj << -/Length 2625 +/Length 1385 /Filter /FlateDecode >> stream -xÚ½ZKsÛ8¾ûW¨æ2TUˆàAàîɉ嬧vœŒíÝ=LæÀHTÌ*‰TDÊÏ¯ß A‰"MÕ–+Qh »?4úA‰Í(ü±™’„Š4š%iD$er¶Ü^ÐÙW˜ûpÁ,Oè˜BŸëÝÃÅÛk¡f)IcÏÖÞ^ŠP¥Øìaõ{ðþ—ŸwóKÄdʘïnn¯p$Å÷o¯o>üëîržDÁÃÍÇ[¾[\/î·ïó)É`=·;œYp}óÏRî.ýõònþÇÃ/‹‡Öß^F…6äÛÅïÐÙ -Ìþå‚‘*9{†JXšòÙö"’‚ÈH7²¹¸¿øÝЛ5K‡ðkyBÃã(˔Ă‹ey(§@*8.ògÊ’cS`Q”ÌüýN¤¶\§b9÷Ä2 -t÷År¢1áäæ6¼¼ºº#—wŸæ).Ï¢1ËTMØïqØ︦í“êÙ,vØ~_,£”H¨×CÀ‰U"& ð¸F p\ÓŒIõ 8;/–1NÀ©x=T’„ESNàq ฦ“ê!p,v_,—’øÿ^‹@H’ˆOx‚Ïu‡–k‡Q©'bq艥äÇþn>ÅÓ˜Å)Iâ© -&&R¢GX„Šò1ßÙIÄÁÚ¬©¶8Y횢*kœ*Ö8V¶PÀp‡Ì•®:õ`Ô©N=wù²øL)w²
Œ( -œ¯¼Ñg—tbêÇê°±<Ùy²ÕŠ}Ìž¬0œ€=k;àüÇÉêé7à螶zê ‰CƒKÅ\7%ŽìöÙ²)–9>5…]÷4ÏööAßTýYê×ÄÃoýV,³ÚRÏEóˆÔ6+_úv -ˆ2Ûæv¬(ñ¶®ÝšÝœÙ2¯õýJDp_á8jì/Z:nyf©:[îÍ-^Ùf@‰çÜׯÌó•q
½G5t`_ìUYå»Mõân¥‰Žú">feiª4¢/ö^U™]’=gvÌ‹iþªs0”µ€œK‘"…öªøU/Â'i*£áa`½DB;x~/\Ga/KºýºÜ,
F"Šü$ÙbÉ™B®ØL@$ -ëÃ[/bÈ8b˜N‰47á®0ˆ¾pc‚Å12°gÄ@5!$‰£ÈT¦³o3è6¢4ÈäÑÆÖ3ðöfËgWX4óŒr‡þÎƨ˜ù™Ÿ'„jLàþ -ö9:gì²}^68 -ǬÃRð4ç¤ÐcU°žÃ^´»'*øknrwnÙÚ\&Ϲë8™m6H¸ÔLn=NÊU¾GòLèj5UÒ_«0.€°|ê[¡õEŽ£àº5D¹¤ -„…BS˜²N¶ -xÔO¦‘)QÝú‰ºl+ÁÂVŸ^Íû¦MGåQbÒûÿl }š²—(—"¡~Y¦({Þ<úýò„OtL#.a™:XVe£K—H ç²[¦Sá=‡€0Îé‘ôÖtôAСƩc†-`0lSQëšv¡ÊÆÃèÈ!ô”qˆnªs=‰E•êz. CDЊ9‡ +xÚ¥šKo7F÷ú³”byùr©Ø²ë qEí&ɪv‹Í£iŠöç—ŠÌÑ'Šso‰"02–æøhÍÕŒhÐù
Ñ+m“Æä”×䇟?,ôðkþÙí‚ž˜uÖH=Û/¾»±qH*†ý/°¯¨tŒ4ìÞ.¯¾ß¼Úow«µñzÔjíƒ^>»»¿>>’Žÿ]½¼¿¹»ýq·Yn¹¿{y|x·½Ùî¶÷WÛÕš¢§ü|󴇙'ÜÜý°=nÝî6/^lv«÷ûç‹í~jÁ^ÒöòÇâí{=<äìçlŠ~ø;£¥d†çòÎÚòÈï‹7‹×Óá§ßžÚ:~³¶NÅ÷ÁeŸT°ÆNG™å”7£Í…:åwšÆ:•´ËOrã€û»°NÔ¥ÖÐ’ÎÛ.œk£ÍQ«»ûõæúz§6»W«d–›ÙƒîHÙ ““_(9Ÿ³B~mç£6º¾|cóßE +B>PL~¡ä|Î +ùµ¶Úü+wågW¤(-~ ˜üBÉùœòkm;µ1tå‡Ì{„ÅÔ|þD‰ù¬õ”¡mæŸiãØ—¢2£N0H1ù…’ó9+ä×Úv>jcìË÷Zií„Å“_(9Ÿ³B~mç£6¦¾|Kj´& +ù@1ù…’ó9+ä×Úv>j“îË'«\¦+¤˜üBÉùœòkm;µ‰ºò}ÊgŠ¤‰ÏGj>¢Ä|ÖzÊ¿Ð6óÏ´ÉôåA%ŠÂâGŠÉ/”œÏY!¿Ö¶óQ›ú¦>ï£Ê*'äÅäJÎç¬_kÛù¨M}SŸwùÁ¤Å“_(9Ÿ³B~mç£6õM}ÞþX²‹ÏŠÉ/”œÏY!¿Ö¶óQ›ú¦>¯ŠÖJ‹(&¿Pr>g…üZÛÎGmê›ú\ÞðA˜z +õµ¶ZÒ}Ã^þRF{aå#5ß?Qb?k=õ_h›ýgZÒ}Óž½JÖ +—9bú%÷sV诵í~ÔžÜÕïG;äûbú%÷sV诵í~Ô’î›÷òqS6‘pÊGŠé/”ÜÏY¡¿Ö¶ûQKºoà³&¿^R’Ö?PL¡ä~Î +ýµ¶ÝZÒ}ŸÍ¯—ÑEáRRL¡ä~Î +ýµ¶ÝZÒ}ƒŸ‰NùqÖ?Róý%ö³ÖSÿ…¶Ù¦=<ØÕ‚²Ú£RL¡ä~Î +ýµ¶ÝZ¢¾Éϸ˜7œ°þ‘bú%÷sV诵í~ÔõÍÆ$5+\î@Šé/”ÜÏY¡¿Ö¶ûQKÔ7ÿ™|¼\"iýÅôJîç¬Ð_kÛý¨%ê›ÿò;&eŒ.x 5ß?Qb?k=õ_h›ýgZ¢¾ùÆ,ËGOèŠé/”ÜÏY¡¿Ö¶ûQKÔ7ÿ‘*Œ£pá)¦¿Pr?g…þZÛîG-QßüG6*§ƒ´þbú%÷sV诵í~ÔõÍdòùÒ +§?€˜ú'HŽg”Ð^9Ûéà$ê›üWJb°ÒÊŠi/”ÏY¡¾Ö¶óQ›ßtõG«|2Â…€æë$ÆsÊS{íl¦£óÛ*躹¯ò{&éÖ~a¸ûߘÿp[Ö‡7õÏ„3·ô'!ê¼Î¡Ÿhküù‹TòÞüÿ×ÁÃQÙ8÷ñ›ß£G“ÆòK?œ´Z»¤-~ÖP%›ï´×Û¾>~|x|8>òæ¯ÏŸ?}ùzüæ§U{—_þüíÓÇŒR}|~…ôÑŒ£ð/y#endstream endobj 1899 0 obj << /Type /Page @@ -8472,41 +8468,21 @@ endobj 1901 0 obj << /D [1899 0 R /XYZ 85.0394 794.5015 null] >> endobj -542 0 obj << -/D [1899 0 R /XYZ 85.0394 141.3493 null] ->> endobj -1351 0 obj << -/D [1899 0 R /XYZ 85.0394 116.509 null] ->> endobj 1898 0 obj << -/Font << /F38 1082 0 R /F14 1020 0 R /F22 997 0 R /F42 1288 0 R /F61 1416 0 R /F21 994 0 R >> -/XObject << /Im2 1405 0 R >> +/Font << /F38 1082 0 R /F14 1020 0 R /F22 997 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1904 0 obj << -/Length 4044 +/Length 2298 /Filter /FlateDecode >> stream -xÚ[KsãƾëWèªj9™7€ÊIÙh¥ìµ#+É!É$! Y p)æק{ºHP²cï8ïéééÇ×=º–ð_];/|¦³ë$³ÂIå®—ë+yý}ß\)3ƒæÃQ|¼úý'“^g"óÚ_?>
ÖJ…LSuý¸úçÌ-n`9ûøýçO÷ßüíáö&±³Çûï?ß̵“³O÷ßÞQ雇Ûï¾»}¸™«Ô©ÙÇ?ßþðx÷@]ž×øãýç?QKF?}¸ût÷p÷ùãÝÍ¿ÿru÷ØŸex^%
䧫þ[^¯àع’Âd©»ÞCE -•eúz}eÎ[ª«¯þÚ/8è
S'ù§¤ÐÆë j=Å@— o´ ¼]Ê®l꼺™›$›µÅ«TYæË—²~†J*g«¦h©¹n:îÉëç‚Êݶ7*í¦©Û‚f.a=5늺£ú¿¤“Åë²Øt'SÚ¢ãMš°ÎªØØòDÓq8ð?WJdÎép’|pml<ɬ¥P+¨yQTÍ(P¡#™-vu,ónV®7aïæ+O ôaa|4lÙÛ§f»ÎëeA“ÛŽú\—ÿ’RÊ]u¸QJÍ@ÀŒt³{Þ«liô&ßvårWå[7q¦â w|“bR;Û¿HgꢴB[F
ù™‡
yË-5×wÝK³-»<®„ۯŖºá<ŽúþÛÔ¼[÷’wÔö’óÚpØ5ŠªxΑÉܵ/»ê -ƒF"}}®vëÐC+ú¨Ñ¸²g÷OÕ®áæE——<„åIz-×»5UFW‚
ƒû\“Bã5ñœ|¤Žd.’ÁEE -<ËÙ&ÀhÐÂsâ´M œ%¼u~é ƈí"
c‹¡EAY˜[œÚ¥¦áíæË © :hðw¤ñPïmVÊ:HÁ±áxãX#†ÂŸ>ÿH¢9Wy—O -ç÷A/Œ1üZ6»–*«²ÍW_AÙóçØ=Å$e¤È¬6ï2Iƒ9—zp¸$k"”Jþ¥»úiW²Y¢ÖõnùÂ%R¡‚ìܺ€úzHßâLpYwÅ–M§'V¬øp=/æÊ¡’ÓËy|ÙµÐ2'³-´gæwæ k¬¾w+.ºh‚[ë‚ÞC9¯WÔéÇFp(ín½a¡„†’— Ç5úÇ `ûÊe^}˜2²]£ÛòÂeJÿŒËòNñ¨u±lQÆ’”= -x®EA
((‹*pj‹õ^6'*‘"µÙ˜ˆyQã"´x/¬´æM+¢„õÒ½iE”€R\E‚Ç4išóªm¨eÓ´m‰ô„Z×ð™6Ų|:p#;lp™péQ€ˆÿ»Í&8"P¼ª\—'JÞË;¹÷ Ó
OÌÚ»àÑ»vš«Ú)áŒññÒò×9s¶-ÿ;Å×Äi\Òs„΢kùÌDq†¦„œ}¦°‡h¢c5ä|¡¾.kRO;pÿÔE+õ€Ä`¢¶1^ - ƒ÷íáË!¹Hc“Ü8°øÝË|JGš]7)Ÿ"ILúžŽèL¤I‡}˜XȉDùèþ–‡eU.§ÖI…ƒsð°!@™ -R»“…ƒ¬C¿&±rž*$;±:›õÚÌþÜìc€D•:âÚ†‚䆂=4_ƒñwQ0`ȉ4¸7†;>ÎܶÝqÍOKÕ`¹`L0hb]l‚DΧP^Oy6„á(dY:‚™Y›¯j:¡9C<Yñ*ó%
X -Òëï–Ë¢X!Z‹Ó†^§å©í9§=ª¢myÓ§=¶·Æ±÷]·Ý”y³EI<—Y› -e{L†q&ˆÆ#É‘)¸Q …8 -ýrgh賫VÔºàYd!HXŒ1³—‘ø`KDw° -Ñâ¢ýÜ^]¡ä‹Šƒ´nõüÌp±…x¡:ð"MÜ+MÄE}ÀªØ|ëˆÔSÜÅŠ
¹
‰MlÎéçH§ŽySh]ƒš•›`[ öµ,öÁœÀ> n™o6UI|Á7ù -š -½œý´+BŒéû-½šBá%9Ï'b
¦L=;æ˜õÇYUÈŒ‘ý+nsA -Ë¥˜H럌WØ@W†MkÀ-É‹@o‹Ä^cJ‡Nú;Y5kzÞ¤G$ú‹aCräÃXÁ€N¦fÀÝSÝ·2E@iB -ÜÊÄýjåïWœ—<×~‹Áf–ªãÎo©?ŒÅé =A¶á4&€§Zho'µ8Æ<cFaÜ—úŸ%…™MÜð=p\]d±¢†€ÞÎå2#f{a§ïÂ3ðÔN¿àPÇÌ1&#löÒ¸®LÔXle‘Rö¨‘Xac‰ÑLlHÁÁôóOk8¦;¦§±/‘Þ`¬žÎžZMši9`À†#.ÂçRÃC:û¶üRì˶ø@sÊÓ¹ÑxA‘-”ª†Q9¯xT‘ãþÑ{ð,ô¸`3àç
H„·LŠÕÂoÿ/“¢ûÌÙ€`9ñ1@ðßÀrÂÙuè-^s|ugúŠ¯!kƒ» ÍLs¡@!–Íš}…gfÁØ‘ˆb®>…±M"àœzÌž_p^Ð<Ý?¤}˜Ðµy2|%Ûï÷‚‰ôƒxxÙ»1,¾¾¾ŽLâùÁŠtçÝn[Çh|Ì9ÓÖ³mij‹q˜¤E|W$5¸ø©Š¶î‚=+–úããØ4^T -çíØ)\—†ôþœ~Eª€Åm>°ÂJ -Ñó‡|=>‚. ·ìAý¥½Ve»d7CèGɨ,Šxƒ>§ŠïAõjôº÷ãÝ~xñ÷O˜Ð¾½ÿ–߀Æ4ӹǣ|ßà¡rY•p®ÏÅ)äp&?â 5P‡„ÕtNϼ„_J“!(éx>øQJ^ùˆ%'d°?ïº|ù¥ýÀÁnPÓ/=¹†yy=||ÈN³~ôé‡d‘$˜<ÅñuöäTï#,hbØ,ÓÁ—!]wƒ©Ò/ñóLÂÑ]Tá[m¼oivÎëÝÿÀõa*,|JrB›¦³C³ÛR©ÙG:Šnßl¿pkÿ]ÉTÜA²‹ “ßqyl¥åÃ7 {n¢#‡oM@Äâdúgj[Ð9÷mÌŸ7¼R»Ü–N„/é{ι׃¤;ÂÔåüµÉ®îEéÂÇòL¸™|Ô“×ñRõ‡ôÇ¿2°`ÞÒT¿ý<Óṫ? -™Hæ?hF”Òɻר%A•w›M³ådôßCò´Ø¶ +xÚ½Z]oÛ8}ϯæee fù¡j÷)mœ®;i7ñîËtT[n8’kÉÉd~ý^ê’%ËbŒ‹ ÕyÄÃsxù!ÛÌ£ðǼ0"QÂ/NRzë§+ê}‡ºOWLcæ4·QVWïo…ô’D<òV[«-I¨”Ì[m~÷#ÂÉZ þÇÏw·ËOÿ¹¿žÅ¿Z~¾›ÍyHýÛå¿}º¿þí·ëûÙœÉùÿyýeµ¸ÇªH·ñaywƒ% ^Î4z¿¸]Ü/î>.f¬~½Z¬Z-¶^F…òãê÷?¨·Ù¿^Q"z/pC Kî=]¡ a „)Ù]=\ý»mЪmó¯ÅÌE@$ð;\ .Z—Y`¹3¨Œ@A)—¿R¥ÆГܳ›;!5 SRÎ-RÉH˜$aŸ”qR²¼›_ßÜÜ“ëû/³„û×g= §z5¡Þ œê§H;õCÒqõ6)ãâ2õ€QäRo¡&Ô”Sýi§~H:®Þ&e<¸L=
‚9Ô[¨ õåT?EÚ©’Ž«·I/RÉXáêmÔyõ-Ê¥~’´UB:ª¾GÊxt™úHBƒ±C|šÐ®ANéŒòã¸p‹‘ñø2Ý!%RˆÄ!ÜBM(7(§ô)ÒNût\¼MznÁIL©K·…šÐmPNÝS¤î!é¸n›Tú›•38E±t(·PÊ
Ê©|Š´S>$Wn“òÖø(y³ú0‰H ‡zu^}‹r©Ÿ$mÕŸŽªï‘r¢Î{üíêcItÔ¡ÞBM¨7(§ú)ÒNýt\½MªÖ¹òíD`l,Ô„å4`Š´3`H:n€Mʘ€àT¼] +®^ÿFrÝêzN„öAÇ*ƒ¬Š¸ð—–ìéºÎ×ÞÕ¹~¦j–ôš¬êZ¨1WÁ·¯SW¬ÓJG/yýˆÑSZ¼bôãÝ6ù–5 +±Él†ðœ¦¼ØÒª>̤\×ÇvÌb¯ì ÌÂL-Šô)ÓeyWhº2Ïìa ÓuV©)ÿ¡Ärì±ýÐÜ1§:ªÒõ¡™Èë<Ýtâ%³ûWdÙ¦I
ÕF96q¿éÙ²Éö»òÕLÌfTsñ1-ŠfMµg–rôUO2Õ¤/©.³–5û©s6B•V@Îí‘œÇ$ <yÓ7zŒØ–‚ñoô@½$ŒqCoŸ£Ð–Íý¦ºÍ™‚HÞÿ¢M q8²ÈƒÍƒ°˜ã‹Áµh„QÀQ +=oŸa®0X€aÆø'_uB›4æ±ÇbX_~5éýðà5#H +n´v4ï—OÜ»)A‘g‰2
Ïí–Q³Ö·D@¿”°ùSüXeÕu,ýC†¹™øûô5–Â(«UÉžqئ0a¥¿AÎœ¤›&ÒÿkÖìÞ™†µ šµxÆÕÂŽ•én‡Ùü +šƒ“ÀŒÁ¤ßU}ü&ËöÆè¼èÇàemÿìlV/Œ\&Ò³gÒÏMNµ„ œ‰çÝw÷?·tÌáø*™hαŒÑ3…¶Ϙ:㲄fºÂF~MÑ¢ÔáÑסCÐ& "É=»Ýö5BoŸNg$ ¶Çÿ Έ[µkŠÄivé5±ÚÙt}“D*ÂÍc5äêŠ[3¸ÊCjkQ%Ÿ¯íªuÙ\ue³…ª@§¶ +›#ˆú‰dœ šW ‘ ‹[íY0×çOëÔû®ÝŠÁ¾¤Úÿ›~ endobj 1903 0 obj << /Type /Page @@ -8518,114 +8494,129 @@ endobj 1905 0 obj << /D [1903 0 R /XYZ 56.6929 794.5015 null] >> endobj -546 0 obj << -/D [1903 0 R /XYZ 56.6929 354.284 null] ->> endobj -1906 0 obj << -/D [1903 0 R /XYZ 56.6929 326.6224 null] ->> endobj 1902 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R >> +/Font << /F38 1082 0 R /F14 1020 0 R /F22 997 0 R /F42 1288 0 R /F61 1416 0 R /F21 994 0 R >> +/XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1909 0 obj << -/Length 3461 +1908 0 obj << +/Length 3663 /Filter /FlateDecode >> stream -xÚ¥ZYsã6~÷¯på%tÕˆ& ðÊìQöŒ=ëìŽÇ±½Gåx $Hb™"’²ìlíß¾@‘¤v3Ua£4€î¯ÀòO=øçŸ&¡ë©TŸÆ©vCÏOgëït }ŸN|3±ƒ&ýQ—'ç×*9MÝ4 -¢ÓÇEOVâzIâŸ>Îp>üåâîñêþl„ž¹g“0òœË›ÛÌIùóáËíõͧ¿ß_œÅÚy¼ùrËìû«ë«û«ÛWg? }˜ˆ„7&\ßü튩O÷Ÿ?_ÜŸýôøíÉÕcw–þy}OáA~>ùá'ïtÇþöÄsUš„§;hx®Ÿ¦ÁéúD‡Ê
µR–Sœ<œ|× ìõÒÔ1ý…*qÃ$ˆGc -S7R"nê3?qª—×3ß÷wp:_;YQT»¼\BËÓN»2H„NÖ¶ÙìÉÔÜj+þ.MËã²ÙÌ4Í°3+¹//[S—YÁܲš‹ÈjÁý¯ÕVÄÕ¬fÚ]U?‰ÄU&ë̪m1/¿n™?IæVÀ³LÐ( ™‰ï»itLXºx3§žlÓ̹UÁéê]Þ°| -‘©½° óÈÇÝáhÄön·;Kƒ=ä÷ÑES4–
èí(jj¨C„» ZªRê[ÙéoNÐßý8Öƒ_ÁzÌPÇ€(k\ ȸðÅÚjÓÒƃÀiçØ!fR˜õX§Š’S¿¡]µ¯•Å[ì*Ý †çû~8>O¹:Œ";¶0kS¶ˆ¬ éîD -€Äwcåé¡9{;EñmÕv±ˆêVöü„¾À)«¶ot®Q±#+û“骴bL?pgc£&U±Ê‡H.cÙ¬í¼ÔØÂç`«•;ö!jâìJäÚí°jØYÈ8£•öšb‹&ܪ˜+tl¯³Í†ÃL(}¶îG -åYGdÃ㸛;î$$dP9lÕ„<»tè,ø kÙÈJv@ÃþMK‰ Ÿsà -‹F²½pá0B€@ç¶,>b®ƒ
æx$«5$ çHòiyû0ôЦSŽÐ$LA?Ãp°&§ëM«™;¯È“Ñ`•H\gO²Xc8"“â^L5z·ône$ìw¨(€—²&ØóDyñ^%ÊKhÃÈìÛÛ.è§ý!c—£—0³hr™zdÇÖÕ4/ç°Ž ÆXWÆaëm#‚75,[ç#lNEŽXÏ
f"Å”Øæ„ØwàXE>£{™í±c¤ôïæ#‹o+1—UÐSd|u5Ìmò–¡:«jgž{vÄîpÈ^™˜Šø9dg‚EÄl{B[æ³E½þñdqJ$0¢C̈
{G gâ‹äò -¦È¥W/ žˆ€'šÒªQìØ‘ÇN[•ìØ o¾+Sl˜…#Y/-eÄ`ÚUÀ0ås.ÑsË{<^Œ9ûJ¿’˜BZlf³%{¦U|¹*ŲÑg[ü<¾¢!4º3C,(â›mŸß^eÏÂ*e9[€9[UùÌ"Ž*XtA†ø\mâˆéÎf&i·öÆXw—L›€z¦æ[®H>ìÏÂÉVööàKÙ ÀÊê6ŸmÞ¤^à´sJ&©˜€ØeNBÑ9|·²Yô²oZöì÷•‘q6x í1Yðï<¡T1v4fÔÅ$iݳ$4ªés^m.Žó'=;@òݶܿÎJyàG#|ù %øZy¼”mqñ¡É€ UJÝË0Ðè²îÆ›ŠŠ½0µeP¬ÛÔ&½ÐÖ=iÿì¨&9×ùÞ—a -¤Ÿ:‘1>erS¼€ÿ˜:z>×q7»µ{½¸}ø'þ˜@öMaxÄN¤ö4"µ§Ñ¡Ù´Ž9¥¦ÑA• Œ½ãiØÙÐÕ96(M§ÑHU‹B$Gö²¢,>€)xŽ,Õl§¶|?¿$§ýl¸žŽS›Œ7¿LòÍH\R©ë‡‘\GRŠ!¤”/ZW‚U$*PÙDYâ86&°XAL“Á1—ÜI{€Å•ËH$ÍOø3з2ÁMÁÒ’ßCªrÃÏ’•«Š¤´+Kmd‘¿¢4p©b‹j|œÑª†=JmÖØÔf‘¿¦\¶+÷R»—ʽÜKß}Sß~º -J½. +xÚZKsã6¾ûWø¶rUĈɣ3ñ$Ne&Y³9$9Ðeq—"‘´GùõéF7@R¦ìÙÊÚâF?¿$/üËËÔDBeú2Étd„4—«Ý…¸|„¾o/$YúAËñ¨¯ï/þù^¥—Y”ÙØ^ÞoFk¥‘HSyy¿þuñî»ëŸîoî®–±]-‹¯o?~C-}Þýøñýí·?ß]_%zqûãGj¾»yswóñÝÍÕR¦FÂü˜W83áýí7TúöîúÇ뻫ßï¿¿¸¹gŸW +…ùãâ×ßÅåŽýý…ˆT–šËg¨ˆHfY|¹»ÐFEF+å[ª‹Oÿ +ŽzÝÔ9þi“F&Öör ƒE¬Ô<—E$pm™hé$—c9Çe? +¹\ìöÝqùgSí²¨ó‡ª8=¸Ll” =š7GC5CD<"B¦2JS“L©¸¡ÿ›}×e;4æUEG/Ñ U%A/¸m]lò¾ê¾¢Z·-¸=?\ÉtÁ‹Ñ9×Ñ3)#eÓì
fF½Âl? +ÉGZLÉlÅZØ×i£fˆ˜2[Dq,³)ßÆ*¹(ëuùT®û¼¢ºç/…&þBÛˆ¿Ê,j<kø‹ƒhƒµ›«÷۲ŎxÑì»+ز©©ºÊkšðàø +Xd`-z¿j”6‹|´œÒzÑúå°sËÀ:(tÛÐè6íåd +ž&NÁA¸=r7}†–8‹Ò$Éx¯,wÕ´KYwÅÉbJ¨£k¨©Üí›'>JçGhÛ}S·Üµ/›Æ5/Ip±Ô‘6ö’#«Þåõ +¥”d‹fß4øohÉP;²tñ˶¨©yê¤M}8cÅÒp=8²¥"›3êdšŒw ÏsYñj|jlÌyÍ-n»msè–«¾s§ÓÓ £â8!¾`a,ë8NGÄB窕ëŽ*çÓ P +>Äù\Ô²‚šŠªy +¤ëH}GìVOL{ˆ×êÔ¤±…LÚ[,LnÑÂkçyaÅ®:^I)Χ›Å-ïEž<B~èÊU_å79I§ØàŽ<‰#&Õ‹g6|ãõÚ2jÈW]K
yË-5×ûl´ìr¿Ž4ºÉÐpõýI*ÕdP®m›óÚpØ#5‹ªxÌ‘ÉÜõ\v[êrƒf„ôXõ¬· ëY…¼uº§ùSÕù[l~èò’‡°Þ IŸË]¿£ÊD$Ø0’çŽt7ÔÄs&ñ'1¤; H2ã
TFìíº!¾Éi|›WÉåæÐì–çüŽ:²ZùXg kqdeæ}SÝÌ-c"cÒ±ûR™a¥]5;8üÚù{
Ø¡-‰?™g#Œ\õ옔9K¨Ïrö 0¬pÆÁjpx6KÞt° +%‰J¿,ÕJCªõr!ÀçÒúø·:®ªr5·^ë(ÍÃÆAdäà{‚™°É© È1AaðÅöb'¯ô\TÕ´…æKò×é\eÚœçáåM&Ot‡›õ±Z|×<ˆÆ +ªAÒN\É„r‰Ù©3´ +ã÷9¹x*‹gçN`PŽ·Ì÷ûª$¾à‚ûü +š endobj -1908 0 obj << +1907 0 obj << /Type /Page -/Contents 1909 0 R -/Resources 1907 0 R +/Contents 1908 0 R +/Resources 1906 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1897 0 R -/Annots [ 1911 0 R ] >> endobj -1911 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 1] -/Rect [91.7919 733.1616 410.5963 743.9759] -/Subtype/Link/A<</Type/Action/S/URI/URI(http://portal.acm.org/citation.cfm?id=1315245.1315298)>> +1909 0 obj << +/D [1907 0 R /XYZ 85.0394 794.5015 null] >> endobj -1910 0 obj << -/D [1908 0 R /XYZ 85.0394 794.5015 null] +542 0 obj << +/D [1907 0 R /XYZ 85.0394 680.9 null] >> endobj -550 0 obj << -/D [1908 0 R /XYZ 85.0394 297.003 null] +1351 0 obj << +/D [1907 0 R /XYZ 85.0394 655.7929 null] >> endobj -1912 0 obj << -/D [1908 0 R /XYZ 85.0394 270.5256 null] +546 0 obj << +/D [1907 0 R /XYZ 85.0394 180.3132 null] >> endobj -1907 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F11 1509 0 R /F42 1288 0 R /F21 994 0 R /F14 1020 0 R /F49 1308 0 R >> +1910 0 obj << +/D [1907 0 R /XYZ 85.0394 152.5561 null] +>> endobj +1906 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1915 0 obj << -/Length 3963 +1913 0 obj << +/Length 3397 /Filter /FlateDecode >> stream -xÚ¥Ùrã6òÝ_á·•Sc„ -½ÉÇë_¯¨õénúùóôîì\&¡œ\ükzûpuG]Óøùúæ’ )ýì!zwõñêîêæâê쯇_N®ìZÜõJÏÇ…ü}òç_Þé–ýˉ'ü4 O_áÃ2MÕéê$}¾o Ë“û“ß,A§W•Ÿô„ò#5"@¥Æ¦"ò•¯¸,²¦=;÷ýpÒ”óªüêy*Ï*=½·µêgúm¸¾} °L²Ùls&“IÑ4Ô•ñoY1êÍùôòòNLïnÏR5™ -K!â…ÂÐ -›zØ`æØt˜^èN¿qN7Ð…Õ~¾ô ªbŠÁ‡ͺ§¡ßfû4«WYY5–ò® -s 1N°dÞAUCGl< -ÿ0ÿ»¦€hLëåù÷ÔÌšŒ&Žc˜¿Î¦ -º©Ø^ÔÀ^”?n/2E(cÇ^ªf4%±H”w)S\'ä«5
^,´ú“ìhqjÕòÀ¤"pÄк”©á¦‹¥d¼:„SˆjMpÃ’¦.ûõ¡§<óUYÁÏg5YÊ°”Œ…êâ?"
cê¬xζKæø’-·7Òíq–¤ƒÆþwÞeÓÃÚÙ0Ö¿åËí¬0ÀµYùK±äù‘ÊMÝ•DB&~ÔÙ¦°0ÑšìmkL²)¹`µŠÒ%±ñý™àøTM@]¨}å†á@fUw…o`=¦cwùÚ±ñÄ#Ø”4.OæéÝÌ#þá.t%°*òl«—9ãòæ~±!1™¹Åy…lÕÜ•åfÆT–®3áíQVµ–Tìs);ë¶D
_àQ*¼ˆB¡Ð[—tÖeFQid - -IÙÁ: eƒuTʇ˜vR2—²ËtºªµËK·¬“¡•Õ*RÖ®2$Ÿá ã"ÕÖ`]Öêêqä -ÒfÑ0V9ßV3"u„!GÝ_]Œe7š@c{µ$J(_¦‡µäbí×’Å:¦¥ƒL–v˜Žj©ÇÔhɱùz³Ï¼?ô6ÀÖv¢šþè*IÛ[óya‚“»Þ/ìÈI궃u@Ø먰1í„=d:.l—©¶õöj‘‘•g¬Ô‹&Ð༠tÞðL¼§ŽBÄ»>®¼Èn]×ÒøÚµ<×µ\2ÖµFÊ&c ÎÆÒ”ÈH½¨_!?êS'?Šùì Jxòu©àƒN}À -ôéÚ@ËÈ¿b¢Ï•òåÞªØIÝQ:M35zçã«š!Ot¥ý2 -¬*4XGUxˆi§Â!ÓqºLùHψѓVŒÞ@Œ|ñÓ;‰|-—³¼;7×w@ëssJâ9’….”ì‚7¯©?iÖE®¯‡ì®9ùJ‰DÅf³|óårŠ—"úfdü -šN°é†?àª-ˆÍ ~0AH³¥{˜nHaÈ¢xËVëe!òz…ÇxÿÛNÉ8¤£nô<3‡ÂJ{+Âï™ÆHÉcbc~nu‘›À€°j¶æ}èÇ!>©Ò‹=SàÅÞðŽ4¶Û"—¦¹‹í½Ä+>åd½Ý¬ë3¬›è›Ê<M d†F¥#ë!»iÑ°Ó²ùÜÌ휽báωxΪ*ª0sÓȤ¨N³whw{£ -"Uç‘÷=.Öþ(h±ŽEÁƒLmÜa:{LÇ£ ò -/QÙg§|_ÐKŸ3êÐÇôБѧñAh„Ξµ‘™Â^- -<÷¶j5M»ØlÇîé£X24áýš)ë; -ƒKÊ/IRøRº €ßá—ò¦ô,%5×^L[, -í¯°Êuý /jØÑ"¨{€`-xŽ×æž×—w<1ŽßšÑ°ˆÃ.„„¶¼í÷Ê+è"ß5^ÐxÉ6eFàk
»Z¨wB8 åõkEq)4']–\@÷ˆô»ß¢å^k>9¿dÑ(ÏÝF¢;½Fa›¥#2L)åÄÍf«ï^†é‹»ÁJe߈±W‡Vé—¶“€™ÈÓ©!¦lÊÙ¬`8‡ÑTN²1“c(zUØw¨‘QRHß3hù’.²º™É=Uj%N ì=þàD}—Oˆ$ˆ¾sØŽO”PTƒç>ZE¦™gUùÝ*N‚ySÐŽYr -›à»»Loà›ûîž„šûÔîÄé1u8XÔa°ŽªãÓNC¦ãêp™¾§õãÈe˜Ôñ¦{³¢¢‘ËV’í+|+Cßè“äÌ +xÚksã¶ñ»…¦_BÏX<|çúçÎNæ|WŸ›éäñ¢ 5E*"eÙíô¿w_ H‰¾»N2ž1€°Ø],öEùþüI»q¦²I’…näùѤXŸy“%Ì}{æËš©]4í¯úæþìÕuN27‹U<¹_ôp¥®—¦þä~þ“»Ê=žóæýíõÍ·ÿ¸»<OBçþæýíùTEžs}óý÷¾½»|÷îòî|꧑ï¼ùëå‡û«;žŠÇ77·o’qóÒ»«ë«»«Û7Wç¿ÜwvußñÒç×÷dä׳Ÿ~ñ&s`û»3Ï
²4šìaà¹~–©Éú,Œ7 +ƒÀBʳgïöfië¨ü|ÏUA¬F¨Ô˜ +ÜÍbW¾¶vgLpÄYf…ø ŸOžZ˜oÇ©ÇQüÛßšÅ8í£yl‘rSßO'ÓÎÇAè† PáâÔh6¦ÔU[Š6˪fŠÁyn‡ñ‘5…'¤>ºzl~¼ÑYã̗2@_wXö/]P°‚ùN–´µ´+XO6ôÃÃÐkä–_>knšBb {ØÞ´«z×ò`¦_ˆ8Š¼Xéù…ÕqQ97!ÜŒ"ç‡k&/o¾g¨æ@¦~Ñ3º<ä—Ú•,)J|¹."è~E<Å™0€' ˜¨Z]1Ÿ±ÈÚ
aI+ûÁ‘¾½ýÈ{xrf8ô¢ù¼mó⡹`‡KTÜîW\
íË«þb0à ‰”iÖ>R‡Ž$Ø<&ñ_wzûÌq'…V—‘bÁØâ@¡¬ ¸ªm!´b2PÔUËwQ6H” +z²oxw.øn>Èm(Üðê š:Ïõn˽zoéÐí¾Þ>ÔÒ[qfÃä(´a2(EPFPB fãp*f7›G»[Ï6c>÷
D¡¨_ä4ÅÖlZ†õ®œ3„&'PÅ@KG^‘³«:U°ã‹ ¦#ŸžÏ}ßÇKWð,ó²¬÷¤BÊ“Gª¼è 4"u‡v©[^‡±e&½I"æ„m•—ê¹ ¤8Á넲.ºeöVã*—sH +Ó桸Åbý3ÿ“€™#—Ú,eÛîûGuî?;¨m?x È‹!vðBN=yöab{;ø»aÚßqê~NðâécŒ}Sƒø*õ]ùÜÉGÙr·ê”Î|N±!¡ó’°0õ¯g+Ïa]w~_¦náJžÊgìJ¢.1ºCu”£‰U3í×ôfƒ¬ŸIb"½`((:wØ8„ì†`ÜåÕ›Å9wûy¼É›BëÆ£œØ{dAϦáê†ÓÎ匛‚I| +z¢§±·ãC ²v½W*Ê\@gm–«V¢ÌzÏG>pQl yÍÔÙ•ºùz$8;ÊîziA/% õ?Üô {Í ÿr£Ÿ0mœ.¶õz°ã=QþÁny=f§Kþe˜N3å +lˆ9í/†N°õ¼á9TtlsnJ½4ÈÖžÙ„}Œ¸ÓGè£nï÷ûóLTþ`5Yc!hĆž˜ÁcI
eøÉ´â¤.”~BáOê~@ü¸ª«/Pu4ø…ËåB.Ú^ÕZ)HCIÏqB®)@¯Ç2
lô½ÏH78(¯ÅuZR +T䪤+÷õÀ)CQì†Ql˺ÔkȧP³TÚ9Ü©øˆ7’ +ë(ƒÙa:—p^„º\2 »£#gÁŒ¬…•PÀi2ÌojCé3"Zpûh4ëšèйiÇŒŸ
vbH0‹v'g¬ÿ +”üâx`{pÇn»©ù›L8Í3rÂßð6ÙÙn¹”¯9qä\6‚ïOktPâÆΚf캎¨no¥†î“NÑò +~Â\!PIÆæ +´ÉåÞýJj¨¸ƒŒh2¬±O—w ÞláØ)Ÿy8<r+-ÕF‘lJb]BŸ²LAY™±k$òï¯fÒÄÉJÂQÌ”\^[j†6¦eÕŒœU½×½{åÞ!ÈŸ¹3ôsp΀cˆb‡ŸÉZ†óz}öäpò#°¢Ó˜±ºËEQô\Þb
n†^E u5êjôu^ÕÚÀ8qìÊÓGKø-ÕÜ®t¹á<Q`ɾÒJ6€
&Ê(ˆ +ÐÙçdO":´»FY7îË·'îÑ~ßSiYw¨
úŽ¯ˆ²àïUJ¾:DãÑŒëû¦0ì]%êÙ£©w
ǧô‚¿¿Ív-ϯñƒc>¤M|…eÒ_‹²#Ž>Bþ@dc°çb`йÝhj.•f]Ñ4ÙfÖëE6ðÉú¼£˜‚ع6‡Ç¨NƒÉ³£ü¨a –Ž!>è¶Ùˈž¸“'nµ´ÌD=Æ.É’>¢£Gñ)–B7J¼¬ûŒÿ<È«=¿ïÉÀ‡pI%åǺ(¦{w~䜎~ï¢÷[ÓÊ7Ó˜"â(ɸ@Æ9:™ŒˆÍËÝ\‹ÌÅšµáï8è¦t —iÖ<G1ºÐzNUñÜéç3‚RÊþvî×nZ{èY½a÷1ÈåÐ]Ø’~kFK¹Í&_c(Ç+ÐŽY –¿K“ºxq'Άçù2ö° +" 5RÔõ&öÞ~ó®¿F7HSõéßR MͧlÙÍÜô °«'û¾î6XææÁô1DoxÍüÜÂÌœô¤¶ÝýÆëTÿ8V<ïendstream endobj -1914 0 obj << +1912 0 obj << /Type /Page -/Contents 1915 0 R -/Resources 1913 0 R +/Contents 1913 0 R +/Resources 1911 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 1897 0 R +/Annots [ 1915 0 R ] +>> endobj +1915 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [63.4454 557.6401 382.2499 568.4544] +/Subtype/Link/A<</Type/Action/S/URI/URI(http://portal.acm.org/citation.cfm?id=1315245.1315298)>> +>> endobj +1914 0 obj << +/D [1912 0 R /XYZ 56.6929 794.5015 null] +>> endobj +550 0 obj << +/D [1912 0 R /XYZ 56.6929 130.3683 null] >> endobj 1916 0 obj << -/D [1914 0 R /XYZ 56.6929 794.5015 null] +/D [1912 0 R /XYZ 56.6929 104.9484 null] >> endobj -1913 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F49 1308 0 R /F21 994 0 R /F14 1020 0 R >> +1911 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F11 1509 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1919 0 obj << -/Length 2581 +/Length 4046 /Filter /FlateDecode >> stream -xÚ¥ksÛ6ò»…¦sä›Àw29ÅÄmb»¶Ú¹iÓ´ÙœP¤"R–›þ÷îb—$Ñvî.™‹Åb±o,(5ðW
â@H/ñQâ‹@ª`0ÈÁ-¬½?PL3j‰F.Õ»ÉÁëS/$" u8˜Ì^±q¬“ìáчñåääêp¤9Åá(åðÝÙù1aŽ.ÎOÏÞÿz5>ŒüáäìâœÐW'§'W'çG'‡# -ökæðĆӳ'½¿ú4¾:üsòÓÁɤÓÅÕWIùzðÇŸrÚ?Há%q0XÃD -•$z0?ðO¾çµ˜âàúà—Ž¡³j·öÙ¯£y¾ˆCàñ¼•ƒD„žö:++ß±r`ì-Zù³TÑ®ªJú°É.¿½S;ªýcµrŽU`?Ü>öüßÇŸÆgçx4Ðk‡>ôD¢’AÂiºªMMžI‹‚½{ù;ËCÍ´²cÆdMEc½0Ó|öH“î@;[TE>ÍM-žô²/E¨#ï{;TÏØ»¥zÙÞÏêØ{÷Ø~{»Çž_=œàã«û‘ˆ¤l^Ý›å2ÏZïóæŽm{gØžÈ3ÿ;V}|Ò¤Z<ú%“:TϘ´¥zÙ¤Ïê˜t÷Ø~“ºÇ?qÉȪyš—=V¡|ý}±ÌÖ{9®Óià -FEJÐL‰$躙X~ZÇr8‰Àg%aoÓ»´¼EqÕžˆØ”†:/o&¼:TCë[€;2ëu\¼ü½&y¹Åá>7kZळKYnHzZ -íù ‡Ö’´½7#2n+«žˆŒ•ðè‹ÈCnFOz`¼&ßûRA5ÐQk!m‰g&mV»$ˆŽ®áXÌVáÈ€¬Íò¬AXŠÄÚ(DÔ·ªdÜg)uaÝ -è› -µFt^ÖP›–!«Uãb yuzD•¨˜ iQxï@L”gËõ¤£ä@ƒ1…iÁiYC6ÕLÀA§†ëjUd„‰Ír×¼aZ•MJñ.Y4 -¡œ7¦4P©BˆJ-õ”ªÄQÜÕœ›¥I¿Œ²²®Í”ÊMG°åÓGS÷Ô/}Š–á^ýJÂᙵtÂá…Ð4
´Ž¾f#' ídãÜdÐ:ŠÙÒ·DAyâÕŒFŠAÄ“;fѺ}CÇnYT^\ |ϲB[ºÓéP=3mêÖkÖ5 -›‡0{¬VÌóÛ;7’×ÆsÎÑÈBï¸&mÌÜ”
ék|,Âkܽۖ\ GKC¸;þC•[„~¸I³"¯›ÞÒü¯·=¦õñ·
Ŷ¸\Åÿa{b›Ç¯ÌÓº–s–í¿ÞQ -wµa¯Üª^Âoÿú¯õt_}ûŠR×Ö£åNüÃ&(ž¬>ô¥Ò¿GÊ‹aùúbLt/ŽÆ?\\Oͱ¨f£ùíRp(‰)†+.ᩘû¯y2#@ßÙF -Ꭷ—‹o£EZ×ÍÝrÕŒ+ܽë¶\ïð s¸É×Ë©×Êbÿ +xÚ¥]sÛ8î=¿"o§ìÄ<RÔçî܃óѽìlÓn’½ÜÜv[±5µ-¯e'Mý(Q +mÏܵӊ @ +c$âl'2¸¸¹½¢–œ>—Ÿn?ÜüüûÝø,‚‡›O·Ô|wýáúîúöòúl¤²XÁø1ìðáæ×k*ý|7þøq|wöçÃ/'×íZÜõ*©q!üñ§<²9‘BçY|ú +)Tž‡§Ë“(Ö"Ž´¶-‹“û“ßZ„N¯êã_¬3gaêa`úç"Ñ¡6¼+›u½jʳ‘–a°®ÕäÊßëUÙ`QÅæLeìŠe9¥bµ¢ïv^"'€žrè©L‰Léf‰”6LiÄDh€;Á4y,S†¯×ÛªfÏõ¦£d¦ôR•¯Ôd»Še½š
f‹ú©X0Üz„4OA~‰H“8§ŒCC‰ÁrCÕ3~3Dcnš¹{UÓ—úú‹2ãìÌÈÌfNX03ÏÃ@à´’àîóoÑËpUP™V«bóFÝW·÷T`Á`qR¯¶Eµªpá8êî®)·Y¦,o^l&—Á¤À©å*x*©á¯]¹©P¤XYÕ›e±X¼QÍp@¡¥~-§0åH«à†1†Àw×ììÄÚp÷¶¦/ói»©&¶g^7%qFôZmçTjêe¹Óº +4TŸ~òèz(¢¼UuAŠ©T&Ri3*ËiUêjxœu»3uÚT³Y¹i¨§Û ÐU®&õÔlQè1[¾ fÔKÖ¯æZ³8øívüñúœ n>Ÿ©0Îiàí}¿^¬¦v{…ƒ5)£öGv¦kJ{öéºHŽ¦ˆ&‡ÔÏEC +,¶š¾³rUnŠmÉdñ†èšdŒ’ÁƒÙ÷à2êW@@E\7>Ó· sÑ8'úS¥6³óbÉF%––Y}ä4rQl«—ê{ÉCÍ®t‡!Ñ®ÅÑ;3qeAÄ
o¡üµ¢RJL¬bAÁŠÒTp‚…¶ë Cæ[L§Ì£†€ +iM*¤Á×5ë*j`Ž‘‰¶zˆp$Lh"QÙÉg®÷4Ãàòv€‡ÛüµG¿D<) Í>V"”QØçÉŒ˜¹øˆÉ‘ËZkYÖS®¶$Q€j|\‘$¹uëMù\}[”«Ùv.."q¡ÅE(.”ØËoˆ<…–±j]¨Ÿb«Dy_¤¿Q!§òrGÎ6BgnÖyé¾¾?•ÛײDŽ«<Pô!©@A›¨¨Œjy&—¥§·mi|‘)$Á…¶-!·´¸.wÑÌŠ’¾G™ÞED=ÆXÀ—ô +ÓrR-žÌK±Øq»±9¡|o}IÄ‹²0Du4ÕlU!Ó Úá&\ +•ø²þÆECe‹QèæKZ
·£ñÕÕß}Æ n,Z è«—ij½3T:ïì`-èóLVbä[ÜÒØ8›4Õ²ZÆ“ädÍ“ÖšçA³Y¯€.šš.¿1Žw:^ ¥<÷èwÚ¡Ó6lêé÷c&Sñ˜ˆÇX<FâQ‹ÇP<*ŽfÚ‘}¹×îÄ"KâØÙI\“9:\Å>\Ù¹âüQQ³QøÔ‘1ÕÉk+«ÉÐ5Ë´¥ÆyùèTV»åSÉpïXSÑ©B*¡ïSE…äIYC(ñšö!/§'ÃviÖ.Íz FF1š.#<,ù…G}¤ÚºÕGÝ×GñØõP½€;+§¾E}÷è¦1a}^o·V +:Ì‘¾Îä©¡ü6)×\~£¥ÂtÈ“8÷BÅÚCÆõÅPa&-Š >1.Þ+¸NrTÔ†âß¿_¸ž +Y§X¬ŠE=«wLtDž§BÊt ðÓz÷´àPkR/è å/2–?þÿ+ŠM¼ +3ohÈ¡?†Y¹{˜)³e¡h£öˆ
7bÞÁÑoS¡ÆB„ýRRkSn^ZtÔ¬7€‚=0JÔá42;ZÖ,ucå-¥vt{b@Æ‚Vc˜µç,Ò±=kO!XtØ^èNë&¼ìº/¬Ö•° +²bŒÆB¥‹3k˜¯çYÌïU8 +1¡£ÈŽÒ¶÷öêª!„%rÌר}¡_(ùô ¿‘ö˜"»ÐËÈ)AÑ”9>Ò.p†ë -À00“¼)à;fˆOƒN†~—ñÙù÷ÖË’L‡©
«¡™Ò!Ðdv6ÌËÉW’œ_f8†A[µÇž6ᓽ‹ñÑyA´ÂKÏÜÃ:B;RO]©'”æ0Í0Ò£²ž0êlfÈúô%Ô{NQ,b•:ú²j¼>9JE:Y +ãã:.„|èÆ/6Œ“ì•Žµ8µ•I…v³…öœO¹\ˆ#Ó¾09A„–dkÆ|ï0q"d{ØYV+XâhZoÏ*ãT„@ ¡Q–ÏÅnÁ9åÓ»'í©€»iþ´í±^õê èÅnZÚƵ]ùK¹àù‘Èmà•%`ªubm¶sš×]ZEG½c/µT±¶‚21±Ý¦bÎPÀ¼¥ ' Ø®©iûÊ:ºÅÁ²î"ߨK_i_þ'O<b˜Â®71ïM1µçø$“ÁE9)vfyà3L +U§ºØPO™xó +Þj[rW1™´yÙA™@¾¨²¬
§RͱhꬻEj± +ª¢é„/Áºžm±1w qM 鰉•$£(šìµe’zÂæÄÞ•AoÁsmßW#“<€ã3ææ ãW5·<Qb(Éûá +íqж‹åTE‹O¨IÕqn‘òľQ¡aG@M?à‡{m˜Ê#‘¨üˆkw¡öÛ°ê¨
;Hµ³aïÈzmXìƒÿMèCÒænÿ}õéãøæÖsØI´ÈUžõravo»7ð]þ“©o½°ê²È^ç]ŒÝ>OØs—O¦¦Þºgû.g,̉kŸÓXDúX|æB¢…:.ÄCT!Éú…è’å$Ÿe¤T-#們|ÔËM¾V‹é¤K¥›k¡õÈæM¤Ã[èBÞþ ø8›ë Y—sƒX:hß+”C‘…©MšÞ~ºã=Ƀ¹,ñ§ÔBô7î!Ú8HÔ‘j2ç«„¼±Ö©owcF¢lœG +5$ëW(—쫉8—öîñW|úu6Œr±-ü‰ò4ŽÂži endobj 1918 0 obj << /Type /Page @@ -8638,432 +8629,456 @@ endobj /D [1918 0 R /XYZ 85.0394 794.5015 null] >> endobj 1917 0 obj << -/Font << /F38 1082 0 R /F14 1020 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R >> +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F14 1020 0 R /F49 1308 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1923 0 obj << -/Length 4104 +/Length 2982 /Filter /FlateDecode >> stream -xÚ¥ksÛ6ò»…¿Üœ2ñð ø¸›ûà&N/Æqm·wÓÇJ‚-N(RI;]ì‚%ºi§“‰¹X -`],ŒcLøCøD -œ}m©ý³0âmsIˆ¢ƒþ®XrÎ’[8LG} KÙ¢¯×YDX§ß½ù·çO%Ö
"±LbK@´ÀP¦ØfOüxa2(gsžÈÉž[^š“Å$S„®Ê>€áÛ‘!„öº*aU„ælj$t„:õu¼‚ï}ãè?ØÍk@(°z2†É½!͆÷ѺˆEåÙâÛVŸHwW¬Ù¯¹ý×h6û½w>ÍÁ{ÓÉ%N-´ÿÞ§QOwx&Ÿxl´?Âc×Ý›ë)e”ªGÆ_J9ïgÙ{` 3*6=º7Zo,1÷
GÊ‚¨·W·PÐÒºH&Y¼çP‡œd#§Xer‚?D3ëþÐD™5V}@kFÆZˆ)ð!؃ò«Ñq˜¶_»è)_Œ¹ýpwÍ}Ã"Ð@ÕØ—¤oÉ–8€µ%÷± -Ô‡lZû"…цàNYŽ´b,6p¤ùB¸Ãî¨pl ÔàÐL<Á´À2º²ÿ‚ÒRŠ{л8g0ŽºÇk:üžãSÁÑhS„mKL°´{/ªÏÄTmƘ»hËL¢\D€Å®šõ'î+&IX11#²¼§6E· Õ{à*aÿ•ŸçN‘Œ»Rõ™æT¶~è¶L·¹?Ù
÷×Îl0”Ùp6p¦º£¢”€õªÜ?ÆËýöµ¤-Í(cG:÷ºˆ¶Š-: ˜Š9„ã¢ÙŒ½U‘Š³`Ñä//j2’Nç!õŠÒ4˦Âí„SÏ<‡Ýí;´ÕJËŒËcÉ¢iòuÍ9ZÈ
µ(€dZÅŽ“aÜүؤÓ#å¢æ,’yd\÷¼·4ÌÍĦŸ©CO<‰¾\_={ÁTu¹MƒRx
˜‰=þ¤Ab¹!Ë4ž+ÇÛÓÛ‘BFI6” '÷ƒ;´®ãkŽWì‘Ý[¾#àï'§\þêã[zÀ?̧Ü3–++J¥Q¢ÅQa¼X'èbµ‹%±»!n
®É™î]ærÖ¹¸¾XÉ~&Í5ÜNL -º†‹Ã2Kª'áv×´ra€˜ž’päDæ,Xhõ‘Xàðþ -âÎÓÛMb -6q8¸¦ïP]À~Êm?cÊJØêÅ\q1(ÛéØ2Š‰ÿsf,ãrö-}ƒ4± ®Ëv_psUû0"êŠÉQoïAô‹Š'd~•K -\h‰:¯ñyÙIÅjxßËIø3*@Ókh–j™åa>OŸ&2Ö½é ,¨¼f/h„ZQ&ãdV>ÛÖ8S”þaã)â—'Ëo†¹ª:Êî^Ü€–‘‰¥™hÑáŽ_]…¸¶.9 ¼€-C}å橬6k6V¾Æ3p>cè,ý%Èïˆå*¨%Ê·}&èɆ¤ÈÐ -áêÿО -—˜Ã9\㨺NMÍqmàÏ„ù|¼ö>Þ•¹¸^¾ò?a(ùK/†*vTï< -_#új3§¢•– -š¶å`*â=‚K¡‡‹9c`6æ_C°•…GÉäV±ì*\ÙuŒ¢S§yÃ’É£yœÁ‡‡0°nÑ‘Q çƒÑ߉ÒTzâ8Ò0Ãþ‚>Ãxâ:a¶R®3¦Ã«<‚“ëI9‡ñ”ô™™^ÜÚ.øÅÍ$rIt§‰7 -mUîçLGeé8‚¥”_ʪ£Ž
¢sôèH“Lùµ.úáPþuß}ÙE†oÁ§Ï‚®`'ÓÄ÷ÃoÓgcþW»£söúèG¯×CÔaiÕ€T[þfçë“(ÍÆËí¦_[F܇©×ôr1»÷ç8¢mè‹A9AÎ#Ã×ýè³czû剾K³xy{»¡*í¸þ¨7€ÚŸ,AÀêA}
&ôPÌ<žÑeQáEê™ßth©o›[êfC½”˜Žo -ôÍyæŠ/ÐáŸq$TD jnÇ
@¸ª4¢<ûðûO £
•¹ k"0ôJ£aËÇ?Î:æ5ž1y’`‚Цg”³aÂÿ|!ï9^3C]EMÈ/‘ ‰vLã[€ÙI÷Š%ä ³¯4'ÛnÏ® +xÚ¥koãFî{~…QÜçPO5zkΛÇnz»Iš¸Å¡Ý~˜ØãX¨,¹’oöÐÿ~䣇-'-®‹B#gø¦H:räÀ?9 +B&n2Š_ŽFóõ‰3z„½÷'’q&iÒÅz7;ùîÒ‹G‰HB7Í–»báıͿŽCáŠS¸ÁŸÝ\_^½ÿénzùãÙÕÍõéÄ
œñåÕÇZ½¿›~ú4½;È8ã³ÓÛÙÅm…|Ç»«ës‚$ô8réÝÅåÅÝÅõÙÅéo³N.f,]y¥ã¡ œüú›3Z€Ø?œ8ÂKâ`´ƒGÈ$qGë?ðDà{ž…d'÷'?6vvÍÑAýIG¸^è(Ðu; +Œ¥’$EA"BÏõŒ?;3©¢`|v=ýtAËݪ¨4.ýqÊSuM[iEÏz¥iñ¤ÊT=dü¶QeM‹%¨ùD±ËuIË\u÷:¬rFz¨ŠL×¼[mô<ýì8î\ÕiaQ–- PÂDJ‘k$º=MÜñôþ~öáî'2צÈÒùó©”r,@^iNM\_$NÂáH$q™Ã3#\ æH™Kdˆ^Ðnš3?ïn!̹…<ð=Å“.Ët±ÐߥõŠP²&’¹A$"×
@&ä†'¼®)=)¤çøŒ6ÏÔ¶Ò]ΤUÎÞýAÞäJ>Wêj2êÉQ:‘/b<‹ð‹
êDú|×®/ݾò§ÆF 69ÊÓ¯åäx[¥ù#!(‘æ +zš›ô"¥ç¼r¦E±V©qð#sžäÑ° +†ìVŠA`¾×) +ÞÊŸP¦š³íºNå˜4¯‡3làM´O`òø)VøÙ\ˆ~Þ¡ºæœ7уýÖ:°Fo®hYŠmÆ(j³Ñª¤5FCYÕßÒÛƒžóç^Ø°bÅø¡&uÀ’ÃÑ'eÁúh¹H—LŠ+0§fŠÖ€ž&QÏ9.)R9!,‹mÎÁˬϜ2‰ïú¯„jë…PµX¯†êKDÛPÝ':ª]¢·XVÚRe \±£ýp
¢±"ÛÅψ¼0`oÐÑk>Êd͸ñÝø)Àm5xìb.dð†¦B´4)óF¦4œp³,=Çà²ó<•ø!X6é;-›Ï¬u,1]HÓÅ3¦Ò¡Öóz/õ÷2 ùáòåASØÃK„GŽÆ!Ïb0\½ÒÂt±Ž{^ƒõšç½H´ñ¼¢ƒž×#zýŸó›OÓ«¡Ïvè‰:‘¯s¬×9\´5úíyF[&™/ó’mÔl+òTWǵB“çDÑ+Úî`½ m‹õª¶_"Új{Ÿè°¶»D¯oΧؕÌLk2 s¢Ãq¬Îm-Äú´‘Öñks!¶¤&ôºœc +
áÈø}¶H/¨“‘^Õæ[eîQÖe‡b“–®Í‡º–DHßÿ’· ôoV6¹(ÞHÛDÅç» ”ÊÜ97º
·¦"Æ]•t|áø‰ßïJßÏàCºTÛ?ì^D-€Ã¶WEøÖ¦…¬…
FNïFl\4%‰ÙÝl²Ô)òŒ©¡ä¸ÕTªùzªjÌÕï´:AX¤mY™êA8^¸;ÿ^bÛ-†jƒŠ±_"î£j +xrz¦]C¡ŠØVfŒx…™1.¬4cvܼý¥¢+Ò¼wÃSªw´ÁÑf¶hÏÅY‹Ÿ4´‘öIOHmx,/\\Ù£¸×°›²×
@D-µ#!
¸Q¿\jUos9‘)›<'ÄNw¹ÍF6 +!”«p•òAEÊU¸¢\E[¹*ñpHc“ÎC©Õï“E^UzNù¦AèÙôYW Lbýî„ , ÇWFÓ‰mxa5W•Æî3ì|¯ãÐæ¥5nÒ:´ÙVÚÎÐ ?ñ ú&ì7‚ib +ì;TÞÁ —`ÁlÕCÙƒ'$PHÎ>âB’¸ +…9ñþhQd7¼gÙ秣ÖÐþH›2ø' +¨d#×íg%Û!ƒ>ri¿Cú‹Zo2‡ðö\lia§p°ÜÚ¦˜GåøÛt&«µªõZç5Éîwew±It<K:ü=aÂÇã¿ô |‹«oÔ"K«ú›·ôþçÛÝNölÊŽ‰Z†9ÿ=v鶖˜åúyÃ;kUAeÀœ.ÓÌ øw{¢@î.vž>š›r ñöÏ¿/i·ç;•J·9÷|á&H‘´ü0Nÿ:H/†íû›)á}¼9›~üps?ôŽ‰u1Y?–‚ÝIÌÑeq¿›’o_ñ3à=ÏYÐÂ]5?¸Ißø[R,V¤Û'LéÙb[õ 6ëñGêqÙõ´3vRt#yÉæRvÕ‡9‰¶ÀJà +B¿ò²ÆÒ(t8õã‚'PV#Õ`+“¡OðÃhÊsà7U
ì%cYÚ¹HGœR$/°Îê]í»ÍÕF¿‰nlºùÍyþi¶‘DQ8êÀ‹Øïpqs>Mx˜È$nhœ³#(x}‘å™2CzuøÊôã–@‰¿³™ù\ȵªQ5=ì¯g¸†/?þVzÔa¦ðòÔä÷ÍùºÇ, +kÿÚòƒŸhÝ:À-a[?¸ù· Óˆ³›OCö.~ïk!ܳt¹ù:Ù¨ªªWå¶q˜.sæ{×3i¼w©£|ƒ7
jù‹8$ÐÕþá¾8$×î‰0‰£—êžö}4„þk>zDø¡ñ–ü+‰YüÏ6û¿ÿ£”ù‘ðâØþ;‹=žÌ +y¥Ÿ8Þ8qt`ÿþãP ÿˆIù„endstream endobj 1922 0 obj << /Type /Page /Contents 1923 0 R /Resources 1921 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1926 0 R +/Parent 1925 0 R >> endobj 1924 0 obj << /D [1922 0 R /XYZ 56.6929 794.5015 null] >> endobj -554 0 obj << -/D [1922 0 R /XYZ 56.6929 697.7106 null] ->> endobj -1925 0 obj << -/D [1922 0 R /XYZ 56.6929 672.0136 null] ->> endobj 1921 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F49 1308 0 R /F40 1218 0 R >> +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F14 1020 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1929 0 obj << -/Length 3955 +1928 0 obj << +/Length 3586 /Filter /FlateDecode >> stream -xÚksÛ¸ñ»…¿•îD ¶Î¸‰sMç’Km¥íÌõ憖(™
EêH*¶Û?ß]삉Ê宵?Å»Ø7$/üËKkB¡Óè2I£Ði.W»q¹…¹o.$Ã,<Ðbõ§åÅË7Ú^¦a«ør¹á²¡°V^.×߯þ|ýays{µPFqxµ0±þôöýkIéóê»÷oÞ~óñöú*‰‚åÛïÞÓðíÍ››Û›÷¯n®Ò ëc8³àÍÛoo¨õÍíõ»w×·W?,ÿrq³ìiÓ+…FB~ºøþq¹²ÿr!BZsùÊ4U—»‹ÈèÐDZû‘òâîâ¯=ÂѬ[:Ç?£mh¬Jf¨ÔMÆZiÇ@àÁÇ»`—Ž¢ «ÖÔ¸–üí
Òýö[]eUUwÔ¾ÏéÛ\Iäû2[ån ‹îæºæʇj•uùzÝîëªÍÛ£=3š¤NQµ]žñL™gŸ<†¬£]º‡™$ʉâr!e˜£qmYìj̉ôÇ - ¨ã…kyÄ!ŒReÜü?…ï¿[Þün>6ÁkwÌz¿ÇáÀM*Žƒ
Áì «ø{èê¦è²®øœÓP›7Ÿó†í²ç1ÂõaÅ@Hªk¬‹
NýSµ:”Ý3«7ŒÞCŸnŸ5°=¬ŽÎ#.ò¶ÝÊò9››ÚßÕ,"Æñ14ÑÕ4“Q— -ÉJs>Qp9\|Ýà%Ò‘‚Ãm±¨\/jþ»®ÜÍBóÐ:¶à’×ïïîn^Ñ°blà\cB¹ßñJæªßôsVkÂ~ã1ŠÙ+câÑZ)üý!‡Ck%ðò[jù/), -Ð!¼bœìEë—åÔȽØä+”{ažwöd‰0Ô+Þ€/1Ô|”¬ë²Õ§6»(ûëÙK’ÆHDtldû=ÿ©Ø99ÇÁŸyóLÍ=Œ
°5ª¶›2ZåùºžÞµŠ4|?íÛE»ÊÊ|æ£8qâ?èÞ!‡ËŽ"t Ÿ|øs&Q!¬õÛ4þÆHHʺ -µRêHi‰¸Ói >^z¤/f¶5¡Q±—Ѽi@cû-Ï¢MÒÐHùµX«§u½ÃËÿyÄR@¤¤¬å•Y4Õ¾0IuìaÊòçñÆIÙ(ߌӥQl€AÞòéàþ™&HîS':EÍW!MKŽÆW kŠÓóCCh«ŽfHúpÊy9†!ÑJàaüÙ1y ËQ,Y—q³Mžu‡ÞÜ®+g·qûbûÐ9;`ë|“³÷ƒ©5xNç¬Å ˆXoÐápþ”íX8¥‰Ã4J¢©ÙÙ—¨ÊrüvJh¤B!å)àªl -‘›Eôϼþp.x‰¤ -°ŒU>fÏ|¨QÅC{«Î%@ ¹J›ôËUÈm”êqîCÛ<d\s!±0Š–Ÿgy ¢0±ÚŽxàɆ±HégùcTºñî²}¨%×Rï½ÈuÔ/ó¬e°ˆ‹¯Å.oÇr @+Ãt˜j
Ô®9JˆÙœ¶,†÷9–Ÿ|©ŒlÉHHCapðÒqÄÀqÁ“s0»pÙEç
‰°`eGjãcaw®ÄP6‰s˜MrÂ(½æõKVy±ï'áÖΰ`NáI€6XÍ’&cm¶åar¢÷$;ê¼
¡ejp$—4Ã÷îÝsõG]*ˆ÷w/¨ñayËëÚ^Ã
1ydÜÐ×;8þRâ
Èë9DXx ‰ÓK¸î·|ÁŠ
ê!®`¢¡ÊéŠX8WŠç&ò„™a†¹‡*wþZÙz]àV˜AcŸH†ÆµÿÂ7ßýƒË,±ZÏ=bnúá
5N9aH²ñKê±÷ä¸ØΛ^Ĺ|÷aF¿-4ûxæÉ -@¿ià†g´W„‘Q>ŒþïàÌh>€e¿JUßÓú{’’Ç–bz¯ÙSµÏ±@‹!Ø+ãœ=2;#¥w³YÇU–Î%Gu§ÁÚÚd²ŽÄ”qÀÌŸ—ï¾%2åÔèa©¯Øýa. “¨/̽}÷Í%Bmµ7uœ
UÀ„duÙ¶¥cÑñb§ÎÐ݃ֆs˜
ej½C¸þ÷”ˆPÖ¼àýZ0†h>ݦ.ˆAº -þ¶9Ãœ)5kkBå³1 cáθpDÌ„¶BËÞøsB -3”ýIn2—9)u~WHVš¬šòa6˜#8×Ò÷>ïóœ#A_¢–îŸ;÷&‹ú嶊^±ÜÚé‹XÉgqÑ¡B™®ž‡ƒrñÒOë>;?’¦ê°»w²c9ô²'×f£!JûLÆÑÐóN‘}Æ‚02DL¯óMv(;)‹/„Ô}l=FÏ¿^°^Ð,ª¤‹£q›.k:š¥cFÁ–3[qsŽDÇÍóy9®—™¢ú™I°²æ=ÖÈ"•
ÕÊ©Ã5á„ÅVùô°ëŽú‹¶NÝœ¨à¦rÃ3Ö+_[Þ³qê‹/ÈÛšÄ×e½Ýr]Ùz7 -®¿¹ € -¦'ѽFù…E5Ä3²fTêeñ°¿nhÛY{+”I¾øø1fk_¡økóütªÆCù +xÚ¥koã6ò{~E¾à +n”í³mxòCÕPCªäCMû²¶u׃é—XJ¤Z+w"ã†`&5õ×e^Ÿ-C\õþúü£c´ƒéJºK¨ùv©8XŠuֶݶÙ÷hT¤RDc’\ß]Ð*ºÞÆCT3‡*Û`Sí²¼ÖÕΪl7e¶³|œß¹Ñ#2Áׯ ™JÉëñ^‘š[üÍ5f9 +$ØL·7ÿé•f±ÎJjdgðû`×õ[Û<Ù†Úµm€»¬\[Ð +•¦‹Ël½eUù«êqßàz»!(uÚº*[Ë8˜FØþZ•v<ïË>çí¶öí!ºjr˜9ú8´¡nn¨$HËA²Í&ïòªÌ +êo².[e-Ï/ªêó¾niÑÊ¢Ðâqx)=¾ìmóJ3ѶòSœÈÐnÀœïl_²]]ØwÐGvq}G¨ø†3ÒòœwHbò-”PŠDlß!MÔÂ;`Æ°Êé#‚üòpñ9/Q‰X=è€Q0Ò5ùã#è/£þ åêMy—*]¼£‰Nþû~HŠ
V—ws,ša¸ ‘*øèªù£Ÿ@2á¡|×Oæ'Èã+µfâÒž™ãɼC›ïò"k¨ã˜€+z1 ZeEÏ„Ù0s=Ç” +"=Ž½ÒþCÀâÁÆýøI
p*´?HÖ²@¡š;"™ô§)²½·ô9øvš°gó% <Mõ”/ÈÛ9J(¤"‰=’fî*@Ú´Ÿò”Ûçy<¡NÍH5íø†ÑH(XIBYo³2owØ…ÀÚšG²}·@óA©Ÿ,’Và`J€âÊŽ€+ëX€@±
ó’ õ䯬çË8L¬§~†eUˆâNþܹ-s'mqDq +<ÜÊ¥bÎ1UÛËú˪¶åà7™¡Çt°ŠŸ+QÙ‡rœn‘fA«ðŽëíÉJTàáü=g”yǧxÕã]õÙ]
º«=è÷hZ»Þ‚ùwJ}².ЯîVy™±©EtœŽ}üaV8Ãb¿L˜ãÔÞfœ¾g<V•XçÙ;¤ÐÏÖ.,¥³Z6kœŒâÎúAosôñ–w)÷»•6r€½'/†ÔÄåMФÄÃ¥aÂå +Ð+âÅnT¿ŠÑì¥Áè‰ {¥où9);Â(Z†¦^P-ë±—¼Ö·¤ÁšHÅH{È’ÈÓ\î9zF¸
“Ò X‰ŒÓ©à»Ã£FF‘÷ +’Ę©p;!ÁÔ³ÏawuçÊõêPf\K-$_¢9G¹¡Œ+Ûq2ŒGú‚]º=bÎJ^ÁÁ"™G†u¯µ¥in%výÊpì‰'Ñ—+7sMuG ‘;4(…7Ð +õÂïÿ{ñéãùÕ5õlCѽ/Sÿ’eøCgìU{ÜSé’¤oÆ q²fÐÕ8MG"‰¡Î„#³R"ÁfÆiÏÅò…nýgL endobj -1928 0 obj << +1927 0 obj << /Type /Page -/Contents 1929 0 R -/Resources 1927 0 R +/Contents 1928 0 R +/Resources 1926 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1926 0 R +/Parent 1925 0 R >> endobj -1930 0 obj << -/D [1928 0 R /XYZ 85.0394 794.5015 null] +1929 0 obj << +/D [1927 0 R /XYZ 85.0394 794.5015 null] >> endobj -558 0 obj << -/D [1928 0 R /XYZ 85.0394 204.4016 null] +554 0 obj << +/D [1927 0 R /XYZ 85.0394 533.4548 null] >> endobj -1931 0 obj << -/D [1928 0 R /XYZ 85.0394 179.2397 null] +1930 0 obj << +/D [1927 0 R /XYZ 85.0394 507.0011 null] >> endobj -1927 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F11 1509 0 R /F42 1288 0 R >> +1926 0 obj << +/Font << /F38 1082 0 R /F42 1288 0 R /F22 997 0 R /F21 994 0 R /F49 1308 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj +1933 0 obj << +/Length 4737 +/Filter /FlateDecode +>> +stream +xÚ¥[YsÜÈ‘~ׯà›Á
ªU +6 +GÛo™d}Ÿ·»¦nóöb—».Z >põ³º ÅÆë¿&Ù½;t”(ø»vü‰59}Û¼ó‰]¶Ïº¼|¦üSÑ=,,SÆ"Lµµ<l¶þòã44Rr§Ðñ…6"Œ… +Ñ’ÞD‡Ú;eƒuv ~
¢±geâM$$œbb̦®ÀMhÅ«&>lµé$ªc¥UeΤcïýyêuÖùÖ¸þÕÛÿ•d̆)‰ß‚R Ѭ£¡Ú⟋¦Ögm<ßnëœîûÍÔëçs)eð(º´
}ËÌ1?¤œE†oVíÊŽUÁÒ‹¦æŽ¾ö^<¼]¾ÁäxþAn ¨Ê¾æ”RW”:Ô B÷ÙÚ»æ¾wÆ]ze‚¬•¯q
Xª‚wÍ-U³"—Ìp£ØL¡JcnTðÄq`<iœét\ž×T(¨Œ(y +gß¨Ê Še7£Ô
ÏàɇßßÃ0Ú@UMƱ´Ô°dM}NkP<Y¯v Ó:AÇÔæÀEN‡ÁwOÚRÞr¼f‚–%·xapR
ž>ÁjG¨ðD€$!;Húx Ä4Kà|¦Ek…kF¸ÄúLš£¥âá„ £èC' ‰ôSššŠü̬ç¬o2?*Ï +4Ü6•ÃC«ãÞ¼ª¢^—‡
+À9wƒßòåöêêw/‡ÑìÆR° Ä2QDLyU¿uRauSe3´™²ÑœÃ‘FZ +æÃÚ±µƒLâ×!ëVCÁjêTeÏãQoRž $6Å=V9-Væ™ú9¼„ÃûÖ=¤À,C +lÞբ߰C{(K‡<ÒÞ´„‹‚ +éœ/¡‚PHJ
ïüöÛߨâÏ=²’Ã$–Ì v¹sf
[¶Ø± ôSn3ä€é‚ˆ’c&JÕPÓ&ŸS>Vp€9<9$±d£®À¨mkJÕ‹=%ÿÙÔîd!É + ú¤d².œµrJ =R»XDC1PKÅ‚%UR£š™¹´Ù€9P©©‰#HV´c¼†ú¢õÝæN_ÜçÛÔ„§gÞsÇ~´EDŒ^ð†Ç€Ç5aœÓƒ\1Õ—Ä‘ˆh˜Èvä6ßØIÀB€hü0‰Ž±K°gìÒû¾eþmç›vôø¬•MB“(ÃÇø뮽h×Y™/xdCac5‹D`O^ü)+ +HIV*û=Œg@ÓDÉx{®Ê>(AV³î0`[E¹é‹íCçô<"Þü>÷`”XNŠ
Ò‰«à=&A|Ë*fNil˜Fq4U;»2ç(ê‰V¤B!åñ>ÁT%è…? éÕ鈵ƒfü”HP©ñ“kѧk:ŒÛb’u&÷l0Rgð•Bˆ¡Y‘·oÆS³eNœ'õ«@ýZ kp_B™Ã` 9$‘A E0¸ñ€³]ö±àËêíçs©Rçìr©‚¸Š&zšŠ&¥ßöâð*6ÂØÍ–Öj‘OŒ+¢W87HÔØÿ£Ð
=JœYàÌÍØÁŠz‡-â}@÷ =v¾"‚ã~-(†‰IÛus¨¹‰f¹ÂÂjwè¸do4[‡P×.[²pɽmªêPƒ£ð_ÊÑÅ”ï) Ñ¡Ë8{‹¡¼œ¾[4œ”ô€yâ2Wy—ïýèÜ nèËL +©‘™Å៹ÿáx‰À¡O£^¦zA~.úÆS{x7¯xs±»¢9žÇÊNßë¤"Z‚HQ˜ØØ+®ãaÙUÃÉ¢WÅØ–Í]V.)NP(‰L¼¶'XºdÁâÊÄÎ'w¡=Žþ‚YKa¹©üÊJÖZÄóÁ{z£•ž8`S,hÐxÔyÂ. ,ãˉÄc9®ÎaÚç¡X¶Ì–(dÁ€›è»ö,é1Íx0sV5ŽïDÊÇeh驈C¥–ÅBŒÅZ£I îAÐ…JK5ó°H–¯Pòoyµë£Ž#Ùxc‹)·ÁvÇ<ùd& +ÂÊ£°9F‡/ùøZÔ®£½K +’àwpdÇ OBY%Àqôo!'Ú¤7 »‡}æB·*M¼Ÿ = î×CÊr¾þP—Å×|²4¤L¦Ê¦3^ç‡Ém h†ùàžq¼4Ýh|,< £On4ÃØöhk ÔÚPF½®ú¡2Hx|Ö*F xþ3Оƒ_™c<‹Èi¦B˜)™IµâDôÂÝ’ëQ3ͽƒ‡Ø¤¨‹¶¸+¹Æy¢ø}à‚Ç8;•ïÉÃчg]ôÿ°•C˜!Ùæ/5]žcó~øÉ化Óë KN,o4¬¥Sá°Çq¾/Æú–J¸*š^FÙ£Ë(«çó¡j_5 jc›Ó8BU¿kO4YœCBnI=œCo}”°F’Æí)ôãðAì‚6KÒƒ—V©ú7]+e{Ýçoèã1a«|ÊžyQ£ˆBûDr€€s•6éËWhQ:¹|§i2†9ÈFÃðó"
DƉNF4ð‚”„V¤3Az‘>F… ›ÑŒ>p–탻Ëu±Ô;ÏråË<k¹YÄÁ×¢ÊÛ1_B£Œ…aZL±Jû{?Ëê´e6¼Ëù®À…ŠAÉ–<I(VÚF¬ +¿HƒÖ,©(Öf[.&Ó)zKRù¡Në:ᑧ†WG|Kv{½BŸEF½ÅÒþFïã-_5}^ÝpêÒ_>ÑÅ°üïÿüãž–Ûñ—H€ØTd¡7.à
8Noà¸?ðR€kV¨K/•ÜUe4D9]°çJqàÜD~cf´1ÃÔÃDÓ«»L/p*÷ò ò´eH\ú/üqòúgN¬~^a´žs|;“~~O‰cJâlü@ëx¿‡í¼êÅ1Wןä;dg®‰W õû=œð‚ôŠ02ÊÃx kFõ$ûÛyª‚üŽúó{§§–bz«Ùïj—c€–Þ÷Dã0þlálØ ½á÷qe‰`MQ<‹;
Ú6‰'óa‰åGtqð§ÕõO´M9Uzkê#v\2aõ¹×?.Œ¢D¨íUÝÿ-BP¡Æƒ¬.Û¶´,ZžuâÙHíÒm7àl™&Þ \~yŠE(m^ð|-(CTŸnRb’Ø?‹=œ…ÔÎ&î>ÌáM4! +pžÐ±šI„¢æO`Iä†í•¶ +( +¤êˆþgPÇDø‰lvÅendstream +endobj +1932 0 obj << +/Type /Page +/Contents 1933 0 R +/Resources 1931 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1925 0 R +>> endobj 1934 0 obj << -/Length 3502 +/D [1932 0 R /XYZ 56.6929 794.5015 null] +>> endobj +1931 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F11 1509 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1937 0 obj << +/Length 2802 /Filter /FlateDecode >> stream -xÚµZÝsÜ6÷_áÇõM–¿$qú”6N/kÚKÜÎͤ™Œ¼ÒÚºìJ{+?z×ÿý -…{îTï–´ÃŒh¬H¥;Cí#–ŽÀJxmÞGË«ªî½Ö$‘ßß:Ü”Mpj¬ôjÃU=§Ÿ$à éÑÓú‰]ªæô£eBkÃIFk›Î%
@7£þè\3ú€¸“3¹!mjˆ@åØèòb6m#ºÀ3ðz¯Bc÷õ -yÙPxôµöU›ØëÃèõ±Œáÿ¯ÊŸta¹>ðøË,ç ²6CÍÅÁýç®gÙÒÆ\.ë«oË͆J|„Üxï@¶ëÃìn?>2P8†@JF -Õ{¯Œ|¸óVU - 2Ö,.¤bú5w -µÐ2H§Mà Í97“™a¿ÃŽ.«°µgÌKZvhë-$qàš”y›Åšâ<”.3¯ÌÁ¼/… âEPâºÊzÒ+wRæïðÐÿtQÞ:€B3 A€2%%ÿuÊÕ5‹O‡+tÝ -g<Ð>Gù–ò0}Ý~
%Î.hê6U§HŠ£çp¨Ñ - ?ʨkv -Ý‘Dç}góP*(Š§šÁ&öº¬ý¥Ð8bû2ÙüÑC=a%å–'«¹µ³<¨”>${:Îw—m7K–ˆbUª;y§®Ò[9¦Küy¸ººŸ\o®öYsò«gVõ~–.»–0Ýã¸Fˇ+gÀ£õ—á‡ÔÈpyÕ¹U1=v¿^ëqfð}:#SN€Ò uY.”9IÁÄ¿…ä|×ò°šþy’dqþêí{AI†Ä»œíöPAÐóšA ¥œ|é:ú#`£ñeëñ„v6÷Äç´HIó9FH?S2öâ>yuˆé§ê\7iyÈw˦ümîRDr ¢ \ЉØ>a9ZÒéH?¿ú‰{![_â;
Q²TÕ–t_õËû9qa'tlÓáµê\jVÕ¡QÞZàé(8Åí -PsM~Y&êw°!zFä‚(cÍ'?] -‚ðG k/´;È5cáȺLw DšY]'În¤”‘‘—Ç›âÅ4öxe 9Xâ¥65ßfw<&”m1…{]G„ÚáÂ
YÑÕˆ‘½ø²(œX¢È6»{Ô¿ù“‰G.ø·ŒÂÑwåö°¥J¤;;¶[£ñý„ãë%¤±ÉÓþ%׳Ý{©*Íœ¦cgŒ‚3ò+¹TMóãnc•"UŠ_Ú€@.ŠvQ$]›:ÅF²\$‡. 2–Vüt”ÞE‘:vQX“d§ôìC:¦øUþƒSb;›)PxÀ窾šÚ—[ô7Sv²9Ïl?äàÚvîG·?Îéx|Êé(Ú$éC'€¤º¿VÒ=CN!#º‰Ì÷©Þ7"Ü QçàdË$ÙHöºiÚ³ëˆ -󸈓ÁCäw9”#Ћ5ò&ýÌ-a)¾¢Nîxž^Šên½ÉC -ؽàAMAZ‹ÿÚ\‚7ã±a #ÆgìLƒTx” -zbED/½áN¨ªähë:gú=ÑùƒE 8æßSRqÇ4úÐ}—µ«kòž¹¯µÅ¼oîèû¾âOÑØîi¡ÓTu+Ž=`,ªyðu¦€kù“ -ñÈFçw-„ù‚š÷]b•_üaê+ñÍ¿œÑ2c§¨!|GùPÿ-ì$òendstream +xÚÅ]sã¶ñÝ¿BrçÄ_$0yº$¾Ô™æÒ^œNg.77´DÉœ“…¤ìsÚþ÷îb)ÓgߥŽ,‹ÝÅ~³þÄÌš$UNÏr§“ +3[îÎÒÙÖ¾?Œ³ˆH‹!Ö7Wg_½Rvæ—ÉlvµÐ²Ij˜]ÞοýóË¿^]¼9_H“γä|a²tþÍåëïâèóíO¯_]~ÿË›—繞_]þôšÀo.^]¼¹xýíÅùBX#`¿d +lxuù—}ÿæå?¾|sþîꇳ‹«^–¡¼"U(Èogoߥ³ˆýÃYš(gÍì&i"œ“³Ý™6*1Z©Ùžý|ö·žà`5lÒŸQ61Væ +”b&D⌑#
—dJª AZä 4MçmÙÜ–
‰øsWt宬;–¸)v»¢A‰¿z¥åàbÒÙBf Ðs`¤‘½jÿ¾Xš·_í›r]}Ü–õ;Zø'Ò™I•8TÓ¢gö¿%Œk¿9´4¼/Û÷¾y_{š~MŸwD7‹áæ}ão«U¹¨>®›Ï 1b );”m÷_¡Q·ÕêKe)Wuû¥çãÞÅaµ_´Õï%êÃî:^Ï3(슟M`Ä~×u».›ö‹Ž»kß슎€¿¦&¥‘¯Ë ÜEŠÿŠL×÷oû-b|è§NýPÞ·ÑN#à}¼Á†Ð‹Öšeyd»Úëà‘]$!rÞ“ ”äZ™@èOaÉ$.ϳ٠+ÍòDåR?Æ¥ùC\Š\%J;7yñ#.ŸVçñnþ7ïD"C^˜P'Ä¥f¬M^@˶=õ4ŽäCî¥9ÒlBÍñÀI=Gö´K´rÙ${G G,Á¬@é1×âQÄ#,œžK¤0zòJ‡šêoôó•¥VzâªGœšÿ£²äó”%óDh+'Y9´å"(_ì½ßž¤®gÏñþŽFÉãiã„Äa¿‚Z¦ª;(MŠí£´Tè1Iˆ÷¡æ×Rp®IÁhT~¬¢ìÓUÔwå¯i*몫|M¢^Ñà—¶Ø”|Ô'Ê««›²ççˆ$l’YpÅtX‚=¤%¡ðË¡Èd´o©˜¯ˆ·²¥éò¦hŠ%¨¬j»jÉÀÎÓ÷º¤oѶ~Y™Íïªî†WèÓœ;/w¾ä¼.v¼•™„ŠnéÔür=Ú¹§ÈÓGÚ»-ÏżÞÀ ᶴM”qù؆*dTõ}¹¬po¹z3ïnJT¹’á +»™\L˜a®æË¢¦_.
^#ÁÁd:¿'ȶ¼-·Œ¿!%_ã=lMÁþ@„lÁ3ù +ës¦\Lˆ¥„I´YÌðmUÞM9—N¬±¤B›ÉY÷#ôʺĦùIäyüœ<…îí¡öLŽ2wE…ƒ4ëcI°#‹™¼;Âõšç\žÔâÁñ-º™qpdð
8«»ñ-¶¡ž@lÖ¤$, +…÷Œä÷ºa®hLbÅI}èCÄR)X Ë|´ÚÔþèµ:OÃ
4B¸ šàÑ89ª
1 ÚÐOžCð„üiýdÎÊ)ý(‘“lxÈH¶Ó³„†ÒMË/=kBwVnI› +"P1 «r]¶]›ô'x=%Ÿ Bmæ÷þ@ƒUÕRx³îUé,è +¹
Þdׇ쮙Š©X2P8†@JF +5x¯HC¸VM ˜8ÄH¼žt)|™Is¾âqòE–E¬ª y[ôñ§7O92™Fê$v;@°¡µ|2vË4Ѻ7ïÑÊD¦ +FøI³ùï!nâ(6È83(HÍðF +µ°2h§u¤ Ë+^&3C¼Ãž«põH˜EXqèüš8pMê¼õ|MqF×EPæàÜ—@"¡áUTâÚGe<?*wª¤ÎßaÒ¯×e°€Ð X‹Ö‡È”25ÿXêTË„·C ]/¡ãŽÖû¨ŸÁÑ*ﻯa¤cî‚¥þR•”¤¸{ªÕøBçÌ'«„E5²³öƶÈ%TàÅö®ÀÿŒàøÎ7Ð+²Œ‹c€íÍžz¾ÌQtÈÜc¹ÌÊD+ežËt.c…ŒZ›ÌF÷äép“;7J,WÅßpÓ¡ëø²äq(%—3=•NÂ$à0'¯íЄjãíÁ OI”ï{›‡QIQÜ*.6ëÚ‡G5€qÄc²„ÔC˜ IµãÃ<¯ö–“ŠŠÁžŽç},vX7G+æˆb•U=‹|§®r´rl—ø{}ØlîOž7—MÑÞÄþ*Æ™¥ošs;?ì;^Àvã‰#V΀>FëÏ«¬1…ÿ§N¿ªèÞûŽ&<¯ëìàíŒ°Ü +w +êv—ªáoH0â¿W.>veM>ï÷Þ“¿ŸhKÁ*|x4âT ý5já?Ím"=endstream endobj -1933 0 obj << +1936 0 obj << /Type /Page -/Contents 1934 0 R -/Resources 1932 0 R +/Contents 1937 0 R +/Resources 1935 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1926 0 R +/Parent 1925 0 R >> endobj -1935 0 obj << -/D [1933 0 R /XYZ 56.6929 794.5015 null] +1938 0 obj << +/D [1936 0 R /XYZ 85.0394 794.5015 null] +>> endobj +558 0 obj << +/D [1936 0 R /XYZ 85.0394 769.5949 null] +>> endobj +1939 0 obj << +/D [1936 0 R /XYZ 85.0394 751.9672 null] >> endobj 562 0 obj << -/D [1933 0 R /XYZ 56.6929 575.952 null] +/D [1936 0 R /XYZ 85.0394 440.9473 null] >> endobj 1778 0 obj << -/D [1933 0 R /XYZ 56.6929 545.1349 null] +/D [1936 0 R /XYZ 85.0394 409.451 null] >> endobj -1932 0 obj << -/Font << /F38 1082 0 R /F42 1288 0 R /F21 994 0 R /F22 997 0 R >> +1935 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F42 1288 0 R /F22 997 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1938 0 obj << -/Length 3857 +1942 0 obj << +/Length 3520 /Filter /FlateDecode >> stream -xÚÅ[Ý“Û¶¿¿Bo•;K|ñ“cŸÓË4Žk_Úé$™OâÝq"‘ŠHÙ¹¶ùß»‹(¢î#ÎLç‚À»Øýíxl–ÛY•åÂÉ™q2S9S³åæ,ŸÝÀ»¯ÎX³ˆƒé¨//ÏþòFؙ˜æzvyвYn-›]®¾Ÿ¿úëËw—çïŸ-¸Êç:{¶P:Ÿyñö5õ8úyõíÛ7_}÷þå3#ç—ß¾¥î÷çoÎߟ¿}uþlÁ¬b0Ÿ -'&¼¹øÛ9µ¾zÿò›o^¾öãå×gç—=/)¿,ÈÈ/gßÿ˜ÏVÀö×gy&œU³OðgÌ9>ÛœI%2%…ˆ=ë³gï &oýÔ)ù)a3e¹™ çST.Ó‚/À定º}¶ÆΛkú% bKf.S íäü_ÏŸ7{z±,jj´ÛrY]ßÑçÛjyKÍMÙÝ6+jw
ýîÛ’×ÍŽE Rî`'FÕÝm‰>X‡°À¥ä¸Gº]Q·×0™ÙùènŠ.LJ™_ô³ŒeN)î'7Û¸þ¤µó‹ë‰Õ¤ÊÏŸ¶˜á ¡ `šS¡ps7¯›,'‰ýç¼\=‡.O0jAôpæ¿åd!ÚÂÕí`z=#2‘K&“hÚ‰E„eìåßvEWnʺ£%>Uë5Ή;PZmìPâW%Y¨Â*›ØDÃM椶§ö!y¦·‰˜¹!ÂØb^ë°g]mªŽšÈ¸oÔûÍ*ŽCǾeS/÷;/aÏöUõU³¯Wôðï¦.é~[þŵŸÔlF‹äÓ‚š¨d¨áyP¹Ù"²2UÝLȇ‰Ìp+GZqB<BäQ<ËuáeïE¥ÆŠˆ=´uuY:ºÅrÙx†WU}æ5‡ùÇ{æ<ÏŒÛP»ØužÔ2#3.{ˆJš¥X–;Ç¢ªH?ärzmÀUÅ£¼~.ï¦Ö∛šD%¤›W+P’QK=Å”¥ŠLö -‹Œ`Rò™¶&³Ú>Æ3ðÌYk§ý¢'¸H(æ¸`ÓB°~]o)« 0žÙÃJd¹ö¸!nÀïôñj›Y¡FÜ%œ#0Ù1f þAþ× R'Æ9 -\µ¦X¢PG[‚±‚Ž²ùièh€_0"Š~ÈU~ùáâ«çã#aLgÎi=Ó žžéåîfF÷‰›íÇ/Ò Çnö˜.nãC·n
8Uu´2ÆÄ`3Gž>zhcZAŒVÿt[ú}èyW¬ö&ŒÝþð! -œb\È$=§“µp°Fè!:âšÊÖ„Ž¶º©‹nèB—%Ÿä_zƒß›².w ƒ+zÜ·$åÂÆ`ê1xQè¸-ÄêÐ]l·e½ŠƒP1›I!QÛ7%†SÂÌ_zæò!WvQ›]uSC=Ô&¾&ìô´)¢JÜG ‡Á¿ì+j¬† ]4J2¾C õ"1”clžõl$nûå‚¿ý
Äq2›ÄÆÍ®ØlŠ= Ûo§üœËŒVúà†˜–i1n¤Z¬×ͧ–ÚD°±Ù¯»j»C& -’JÅÕ“5NdÎDa<‚Ÿ7´už%à5.;ÁÖ LX•]QÛç<˼®Êv¹«¶äÃ=._O‚Dk˜ø?ÕH’©2âw)g"’®êqÔà•q+ÌLA
þ@Ô_¤Ž#cºƒˆŠ5 -䦞¦oŠ™à¦ÑaÊ -ÙØs.dZ.t‘ âÝÝýæäò\ßkN@PÉ>M žäΈ޷öÖ$bÙÆW4uÞMý¹ÉCÄïèTü”ÄšüÔš<™†^\…IübýÎÕTü"´ç¤ò;&æQÐí鉡ÆçƒasÊ€”„S|À"tdP˜DcÀ¢N,pPLö(ùð©*=tè¸ØUKbLçÖ
éÿh@ñרÇk˜‚sÕì ö“ƒø”ÏsãÄ–øŽ2ÆEÝNÖv|Áß³$®5†=ånSÕ¡µ¯
t·>mÔÑ‘@cÝ,‹5
h1U™%Ž÷™5Ž
zóöÃÅkê8ýöµš?i*`_’ð†,Ê@|¦Ý¨\ǨÔ8:À —}ŽÚÀ‹]±Û”¥Ê,d>¡„t4Ö¯úRh7ÚÌǪü÷ð›ë¬ðPõî„°ç*9˜FšØöQ’{¶`9¦œ]ÑUmW-ÛÅò¶¨ërØüp(ÁûË©eûe$×ÁªœV¦/ÃÔ°ÒüI ¥¿§ 2µ°Àú¶?yÜóÿ%LdÊH¬]eF -åIü9¼"«N^P -g‡U0Iîi~È Ù¿âNLnÐçÿ‘š( ÿ´)ºåíOë -K,þÅoì‹”|>ž#¾³,{1ÜŽ—îæ·S§
´¥Á€Rö§Ìó'žòk*ÑVí¢(ßaÌ5¡ÄýñÛû‘ÅX¡“Jíx7y8~#ÍÄã€1€8ÁQϲÙlöuµ,BIpûÀ*ðÞ
~½·„ßP†qtƒÅçí]kP»X‚Á&wÅ"œØ’UvT îš];„›äFƒâÞäåóPD«éÖ-Í ->][*vͲY·qÕ@Ð3+^ïcý]"‡sØwôfIý‹Ó¥ËPä2Šü¨oýõòòµzAC» -¿I1‹óŸ#èq‘2Œîn=æB+\óCËÑü×ÛjMwn*z°µ®®~ݬ9X-·§.—%Ë1aTÇꢒø~ Z÷˜†—œ›·šD€ïŽü(t¡„¶¾0/À_Ôaèuøíè
M…pi_CrÚìi:Lè®wÅî9Žëöõ'ÖoÛH0î꺨Ö1¿!~GdœÄ[%Õ<›ÓFð²ž0\®û+]Û‰«*hZÖ'ÂMÝÑZ¸Wîâaàƒ%1qç£x¼|õŽžÛfù³·~h£'(k*°Ã˜"t“¹\ -˜` ë>(™f]DÃô%K¾_ ùƒs•fdé^Á><ØX7Ï¡ü -’~Ùæ°|’¥jöœ
ìá==ñ|Øb«#¤K©—³Î8sê«´<Ï—QÏBuà(|ƒ0€spU,‡ŒÝ‚3úì.R\¤$'‚8ÈÕyŽÞ>ÃmúâÅÑ&h•áöÜd¤øÐ&a¥ølÒ×V&,BâM§ë-b!• 8„CšüÚQ€Êþ£‡“h3ÉìÑ—Ž.Ä@<„ÿäl"®á1ŸªBäƱT?*ñ›÷±$, ç`Ñámòí¾óÙ6Ò˜ƒÊUí/æà%Y*4†FÁ@îú5»¢ -‹m…Õ~|äÕ¾z/}
ãdOÅàqÆ_ÞV7·ñóÚ,ÂOiÝ$Eq¥6½sL*(¡%Ÿ'ùš09¬m¨[lwdÐë{>=JÜëTM>¶ -®¬Hàé< _Žg¦O5N©— -9w?ðÔ:ý?ŽÌefñŽ‡xR€ó_»D÷>ô%0xø‡×
ú¿Ÿ!ŒÃ‡øÿÇ‚øÙâendstream +xÚÅ]sã¶ñÝ¿BrçÈ‚ø$'O—œïâNsIï|ét’L†–h›
E*"u>§Íï.vA‘eû’‡Ž.€ö»$¿dall3™-\¦c#³XmÎÄâúÞœ%<& +ƒ¢á¨/¯ÎþúZ¥‹,ά´‹«›®4iš,®Ö?,m,ãsÀ –_}ûöõå›ï^ž;½¼ºüöíy$X¾¾üûµÞ¼{ùÍ7/ßGIj’åW_¿üîêâuYÆñååÛWÉèïÒw¯/Þ]¼ýêâü§«¿]\õ´éM„BB~=ûá'±XÙ;±ÊR³¸‡'Y&›3mTl´RR½?ûGpÐë§Îò/±TVÎ0PÊ9š,¶J*ÏÀ«»‰€¡É`¨±–YøqL±®Ûh¿ÞFmù[=Dl]œ©ÄñèfÛ•M})ç–mѵزËÖñ ‹WoßSëÃy²|õD̾ÕÝåM)[‚äëÅ®+ÛbMß×s;Ö:VÖ¤¼‰:ßÀðã*;mº¿+x£¿î‹ÝCYß6s‘Ò´Sv%Iœ#ý´Ýy’.‹MÓá–“¨ÜÁQEP +¯«iªl`û¶¸ÙWcô¡ÙSã¾lï¨Ó“¥ÅA‚-Ás¯ËdÆMA<©;êõ´Òˆ€€©T=¯šóÎH» +ÝŽm«²h¢ÌâÄf8Œ +œêewßø·¦æÁˆ¬½ Ã7Ew׬ÁÈ"šÔcô¼i»³tˆØd©
†S ¼„ÇÄ'ƒÇщC±ÂÉì·E6åwL >¶„8 Uœ¸$™;³Úfï+”ŠMºjüÿa¢§šúÖñœ÷ azïQ?0aíœ÷Hc†nóÕ/--·´Înæñ-N&o›¶-¯+ZÖÞN±ŸqƒæH +Œñ iü‰ay½¦áÛ¼[Ý‘-"&aäóÀ"Zp)>Ü“¼¡Â‰-g±½·™^þª?é¡cåÏ_h´ÛbUÞ<ÐÇý]¹º£&ÙµýYÿ¨Ô¾áYläŒ$Ø&â(;FÑÍž_`Ë ‹ÞR÷àÝ€o:_ÔÏ *—73«igR|ÞbNB–"Õ@Yðhª›ŽN"Ï1T“býƒ2}‚ÐXŸš?±ò`!ÚjQ8±×s +,[ëÑY?g +ÊABÒó¿íò®ØP'8þ$g”Aâb]:æø5 + +³þEŒ½w {nü¦’éÐ&!ÆŸÜ +Ä£– ùœ¥ªXö +‹L‹R€\3°ð»0”²ù§Ê2ÎÒ4/D=Æhˆ’2ÿ1ýàÂSk+{c™ª§1¤ºö®C³ëÐÙ ÃÑ’*3aÀ”É}Ó‘Û@è§{eðOfŒ-:+piTœ|Å)ˆÆ`쵄0©{ Å +€CÊ„_>ÜòíòÏ0¨CŠF(³CXYå–/çr´9èT›]y[A½·7Ö8¨:q„ÿº/9Öûñë¾4q[‡>‚šPÁòk'“â‘ñ-…¹‡L\‡™¾±
œÛìà4¸8qãØáÙrâ¹@ +3ŽÕ\ÝÒ7%³px¢€gñª¤¯}Îà>ÚÔˆ&Ö¹ÑaãSsˆ¥¥æ²)B/¿û¨ Äq½Yž2Ì™pÈzÍÉã¤ÌÂrfaȱz›J2‰ÅÛI„ÜÐ!f˜œãs„SáGýtÍÎ4äw[ô‚‹*¨M¤Áó¿¦ÍÒg€èEȯ>Æës©¹Á€î³ïç‰<êgÌÑ':R2áà|F.ßC°Tå»A%Q%\I”vIó]@F†*í˜,œ{‚,ià,7Ò|¶Æ©8sÏ ç5mÝò[ +»T +¹P:É›×E——Uû"˜q1ñJë¢]íÊP¸Bwv3ÖB˜ƒ×&Ÿk¤Îè'Ô8õŒT&* .ëéy°@9¹Ð:MdO„ýðh0þøÜ>Â: +èºJ‚÷ˆÝt?dcÁ÷s>ôƒßÅ®a-…J•>'ôö~7 ¬‡“\ÛiaZ !‹“O{Ü>¥aœ£³±F~¾¯5Á×Ú“¾Ö<Ó×úzrºÎÅ©Ðfšêu´×—öZúj9՜Ϊ±÷p¡®é
Ðe'=-È‘íÚirI0•©=‰4¸$˜{ÊÓ:K ã¹BV±è+‚è‰(û…SZ˜ùJÁÄ?%bÆßonr6–ÛéÀˆ‰C—tÂßBô|3Ÿ§o&IG®vN
I!{c +Œäy©¬²}éÕ_[>jN™öQs„F÷ ßáIêœêOÕÞšT(uø*
Ñ®á$w‚Cdè#©ø)kòC†ÖäÑ4ÔqÍ‘Kêw>QŠ\”õ””táèBâ`O_ü>ý§ÈX6 œB—6¨Ü ¤!T1§C‹÷]½—|ZªÆŽr\ìºe$;‘Nj¼ÿG’èy¾†«ýóÀ=£Ì3#u¸¹ØQ†Õíl-Ä¿“Ȧ!i-Æ;ÅnSÖÞA[ŸKû4ßIç4ªf•W4 ÅpcIÉ
Ž§@ëCunPÏÛ÷—¯@w§Øêoü,%Î$ˆ|Ÿé 0³™›Ÿ“êÜD~¬W}N×@Ç®\íµ‰S•<›ƒÚÙ ËCñpzþ±,îCžËÿƒ`±*Àuâž¾¬€áMCnN]Û¿ +J²ó(Bø"SÙvåªVwy]SùþP´öïƒvùf“óÝœ–ãr4è°3.í«VG-¬ô/ˆ_Ãȉ~ 1µ°Å°íÏÞëùÿŠDÅÆi,öÄNCŠ(þÂ]„tÐA%œÍ«`rÜã>|üÄ~S‚}ÉLýOÍ« +/‡‰*È%ƒ;þyƒ×H?W%V$|ÇïŒö‹!zñÝq1ÞŽgפêýûsÒøÖ)–"I{)Kñ™R~EÍò ]ãAヿL=Vâ^üî‰i=·›™üŽ}×{ºáJ"ÁŬø +ÞÉåªÙlöu¹Ê¹ˆ^û@* WD’ýÈP>M¾ó‘Ëö¡…5¨¯ÁÁ&wyÄ’ +þêmYÑ-•á¶ªòúÓ¦’`µ2=u«meŽÕŸc’Ð?®ªœ6
À›ËäØ4dJ%ˆ;:F„Úú:.vÀyQóÐþ輻¦B°´/+!¥ÍžQ“0 +TïòÝ!6Ê‹ËÜþÅŒf ñúm†]Ýäe²¢gäs™Çƒh‹_]4#˜{]ªL¬ç/Dï.ÿôËÓó\íb•¦òñG¥¼'$kðŠ6Îâ4<!2ââSÇ•qï˜{„ï=£ég:j™é#„Ç®ÇLø“jendstream endobj -1937 0 obj << +1941 0 obj << /Type /Page -/Contents 1938 0 R -/Resources 1936 0 R +/Contents 1942 0 R +/Resources 1940 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1926 0 R -/Annots [ 1940 0 R 1941 0 R ] +/Parent 1925 0 R +/Annots [ 1944 0 R 1945 0 R ] >> endobj -1940 0 obj << +1944 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [116.0003 672.1072 166.1092 684.1668] +/Rect [87.6538 535.6877 137.7628 547.7473] /Subtype /Link /A << /S /GoTo /D (tsig) >> >> endobj -1941 0 obj << +1945 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [399.2874 564.4775 467.9594 576.5371] +/Rect [370.941 437.5733 439.613 449.633] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -1939 0 obj << -/D [1937 0 R /XYZ 85.0394 794.5015 null] +1943 0 obj << +/D [1941 0 R /XYZ 56.6929 794.5015 null] >> endobj 566 0 obj << -/D [1937 0 R /XYZ 85.0394 436.6255 null] +/D [1941 0 R /XYZ 56.6929 303.2012 null] >> endobj -1942 0 obj << -/D [1937 0 R /XYZ 85.0394 412.2615 null] +1946 0 obj << +/D [1941 0 R /XYZ 56.6929 277.0452 null] >> endobj 570 0 obj << -/D [1937 0 R /XYZ 85.0394 319.5271 null] +/D [1941 0 R /XYZ 56.6929 180.2304 null] >> endobj -1943 0 obj << -/D [1937 0 R /XYZ 85.0394 289.3888 null] +1947 0 obj << +/D [1941 0 R /XYZ 56.6929 148.3001 null] >> endobj -1936 0 obj << +1940 0 obj << /Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1946 0 obj << -/Length 3008 +1950 0 obj << +/Length 3796 /Filter /FlateDecode >> stream -xÚµZ[wܸ
~÷¯˜·Êçdd‰uIzzŽã8©w7—ÚÞ^N’Í=£F#iG;Þžþ÷¨ËH¾´»µR ‚à€æÁ¿?S¡&"™EIà*ÏW³åöÈ›áÝ»#Ÿyæ–iÞçz}}tòVƳÄMBήoz²b׋cv½úì„®pA‚çœ}üðöâÝÏ—§ÇQà\_|üp<ÊsÞ^ütNÔ»ËÓ÷ïO/ç~¬|çìϧŸ®Ï/éUÈ2^_|xC= =zyþöüòüÃÙùñ×ëŽÎ¯Ûµô×ë{òËÑç¯ÞlËþáÈse«Ù4<×O1ÛJº*ÒöäGWGiöÞš¡“öó=WÈPLPˆ)ªÄ
¥Æ€7°¤Øsš"JœºI›¬n²eM/–›´(tNÌv–ÅÏëýîؽ¢¡MIos¯¢Ë‚Þù"r=ø÷©»*w
Q1ü½@2BŠ¾6@ÔͱïJiNn,—º®³EÎí¬À-»Ì}ßM”f‘ÿÓñ\*áÜ”»mÚ R‘õäï÷lynè‡Àq<Ü__*×Sq0‹‚È
£È§
¡×ßf–ú±Ûœvļ?ÄlNÐßœ±dT`Ó4ÕË““Öx/ÑZ'‡Z‰0tUkjuà&-×X“ ÆÒP“?‘±& -}Óp”» {ú£D>dOg9ÂðùölG<aϱä‡íù}›*À¨8Ÿ0iËõ„IÇÒ2iäFAlÝP)ô•sJ¾{vuEž<ðwôó9€‚›ÀÂ4ð|8Ë|¿ÂÓ‰»M¶Ü¹L"ìy@Úœ9$ÌiA¢$O¸áMáÄÕV®fi·™¾£Ù„s—5<Yj…ÝÃÖÍ|™V8~xRÉ&s¸Ë»Zïr—Ïù›™B#´$"4>pøbŒHø–´@ê‹¡.pÚy¡ïpe5 Ž#Ô —$X@O½Üèm:œf_[Ñ_<åÝê]•¬š„ -}ØðR(']PÊ›æôæײÐô¦ou3¦XјÛvQ,X¦M¦2½
-ÅÀÖR÷¶´€‰Ýúhªe¦‹†XªÖQ¬ÑÚR:×MÝÝ–M-«ó.!+'ûv½+ËuÎôÙ&Ý55ѧŸ.˜³¤Ò¯XáB°½J›”(ò8äµ”À€ÔŠ2¶Ab½K«
+@IJÁª˜“ÿLoÓz¹Ëªf>å~Ö3M”ù¢»aЀӪʳeŠ;‰³{7x ZéJý€6až)=Àà°Áû<ÝQÛøÖç„ïÑ)ÅN²Ï/{]O…,‘@nEÁC+UàÆ~âÏÂ0<!Obl;bÞ2ÆرäG1ö„ ‘ÙáfÝŠC½C0s -“Îú6…WYC¼wYžSÍYWe±z…ܱ“ÝOQ6f¼xpT³ßô&¥nˆmA•®'*ˆ#4»)÷Å -9©©w„n´¡ýYk°$#W©¨-´$ï¾çAz¾Û£æßô}Mâ®ÀýõÖSkíÒí6eox‡‰(lµŠØ¡¤dÿˬBH7Áj°–ºÙ<G¶b¿]`¼xŒîó¿š -aŸÇ|ÿ½\óøìºîׯpCÝiª¿zÀÆAâ*_tÕ¬Ï5òa¼0iõP8âçšÝáàô´Ö§MÅHoµê’„QÌGl ÆX"Ô’BÄö<Ö=
¡[‘†š+·7®®Îϸ°ÓËý.kî©E¾X6µKÉbŸÓÖœ+{aÎ_[é
ðHJ7b `¹¿§LL/wk†ÉË>4YþyÀ¸nËÅ¥^é%”88Ò&öÜÄj Í-×S:Œ¤q€§œZ“ÎÿDàBÞä6ÖÞÒoíM-caxÚíBKÏæQÒ¦t@Tû¤;DƒCA ,M¦¢,æé¾Ù”0Å[K. -¶ó}+Ê»ÁN*g±ge ë)¬bjœÅ`_~?uŽËE“fFoé#°Óòöë
u€7½ JC=`Òe z™BÖJ
ÄZéØ“ÝŽ%¢3¶8]ªœÇr*¾(FãìLû¢ÎÖ »;µ°ÅÙñhÓ¥…1:¶7iM=mj#5u)c2_JM(bgO‘Û(Ð÷}ŒY’#vg<ŠkŠ´ŠóL¸B;`“®¬>ǾC*AE˜æÙª7¸`¦Š¬y«‹©˜Õm7†lÈ„¯7œ’sØ,ó[S+ H¨¶UÃÙâÐ<wŽ-HšhJÌDp½¡¨˜g½_¬Ê-øË¥tÏì‚yÝ—êÀkº@0³ÉÈa -+GBjh,Ë]/ rºÑOjSPš¦¹Qã|#ÌVn”Dá3A;æÄ^3tj }¥¿y&SqÁS‡é‰$Ö5
YAuÈk2‚çU?@õ<Ÿ¢"*‰Â¢Y' JÉqÏ¡è¹Ê¶ÔGù=½%‚¶6(Pu€ž¶N»žˆŸmÈy{«UX
-Á“N±ëHÐÑ”¹¾5_>€„3¾ -Z©xzZLà^NzÁaà4w@˜Ú|›š Œ\¨Vüg†æÐ
ddã8î—æQÒ%Îø¸Ën£xPšË$âlØV™ù”p£9)Yj±HsžÆªÏì”ÓÁЇŸ¶’ì>5R>Ñ.ßtu[ldáì·vß@VÐdKÀœ¶æ± Pî›6&á=^ѹÄ
Y`{õÆ¥HYiˆ€½5s?mÔ„+¼H¬!'Á‹JþNCô÷t!» °?¥‡©}3lâÂÂѤCÜAÄ]Ê,ËrËÙÌ6ÄcÁ”½ÀkÊA¬dCA9®YªçœZýmùMÓ×0’ -g?¨ƒ¦!0·ù½ŠóU3f4ßìøs¤D_H™¯:iôe®`
&|Mzá÷s¯²bL¤°F«ro§^è‡~ö!•‹¿Õ˜¸èñZÌúÍ? é~/ -ĽõÉ_{°N¸¤ÞÏ[ÜÄ柵° =ÿÞà8F¿+ºë¦Æ_ͶÑ;•¤2C' Ff°?DÛá?-ì+¦endstream +xÚµksÛ8î{~…¿s³âK"Û››ÉfÓn÷Ñí%Ù{L·d[‰u•%¯%'›»¹ÿ~ +°ÓÅ*-ËÌ5Ì4¯©3¥æÍÅ{j×Õâwp‘×MVæå᤾»YeÔQo²EþK‰l9²P1l]–7û'#“„IL·ûÏ8;4füdf-ÅYŸ$‰½Ï™4@ZÉx(÷Mµªà,²±õÛ¨Êß%ƒ&®ŽÊ@Á´Pò“AKñ(Ð=Í%Ê ].·Gd ¹ßÅl\ÊéÃ*_¬Ö„q)PwΙÕZþ¥(+c¦s•Uóí·ïïõTÛ¶'&È1 +VhøNl·òS‚•ÌF*XluK(j`ÔŽ' [–(©âŸFHft”LzX¿D:JÁ‚·yý `Nv†²ÏKÙ°P^Mÿ¤Þ€ÎÊLòb¹HþÒŸgwV¯HO@À°†ŠPÛY4yUu™h$U ¤œj`OºXdǶÐÈp4-}Ç-ý;¶¨a_ë¯jÂ#&Ž¥(6pYœZ1hœ<Í¢UzDI=ƒÝ^qgQØQï4i™3º}vuF@:¦®±e&IŽ»B+f¹7 +‘Äàç¿T[[Š³>ÉCmåqWw‹ö´¶j8âg´U¨$ ¼|9vKyÕ FšÃ…eÚÂ:²2&
~{KB-+úw.ÚAN‹á¿ç~ÏöqL4Ä…3Ztë + +®[åÂ9l{O:Ïè—,iScê%áº5*DÿNÒFübx„xì1Hn½Þ•ù"í„×Ýù½JÈÕcÇ7Ž’ G“Ø¡r™¨w¡¿KãÎ £’;:Ewð0Õ<Œ†0aÇŒA:Ã"øqêöa@àyjšqÞ¹|†›Îßcì®óyáÛy9Tf²ÊüøÃ)z1Œ1Ö˜äKÖHrçãX£—ûŸÃX8—HÙI¡?¦Ð +—½#!¡Ê}°íFþ]•ô¥îæ”K€µCuÀ†%Æ[ê¥Zhæɸ»×Up˜ØÝbEµÈÝÍ…(›öQÞ¡´!wvwG6¶N»„ž9!BŒ]oªê®ððÅ*ݺûàó÷o=fEÄD[j/Ó&%ˆ4q$ð6jI9Ù p·M7+Ï +ãâêÖM] ewô’`wFTŒ†?8ð®H·Ôv:‡@Ð9Á#_^„Î^4âb……€>IÔQk$ã±Ö
.Qó¼‹
f½#vŸî“ö…@À_qó¡*Ý‹}¦m̬U@Ò-…u¿iÖÇ:ô¾´ŽÞgÆÆ^¾„¢§•cCÐE«:„³z¥@›N‰â¬Ñ+Ò‚>iÞܡÖFvOO`˜q(˜½¢Î>å§ð^V÷A÷bž<§ë™ƒ:¤öôIéc'EÕ¬ãp©†.±ab +z“8„™ºodÌÆÝÑÁ°{±.»Û`àP\ %”XÝœl{OþÂE´<D´0䲨¶8Œ=>QØTåò•¯]ßÄùn¾8:«ÙmKI©ël›ô.óÕmÚp[íÊeW‘˶äã:ç’•vê-’L–B|¿ó(‚}»CYÍ>e>ó¹&Do¶éznGʉ@U@”©|5vH)Úÿq»ÀÇ|ÒÜ«mWG´r·žãñÜÇ5&œ‡x¿Ÿ®ûûÀûø1äZÞIûþûꈌ[bD'dñ¹Bþ&Ã˼̻¤.E +¡”Q +„Uºüœò)±IaZäËÞäÒ#ùÞ}6Z±éŽ{ÿ¹Êß™UqŸù'®^YU÷ÜÀ~íÖ3¶2”ÓÜÑ"àSí< +Õ'wóeµª‡õIÖó\ºó\{9Õ×ÎÝj2™z{¸vn‹jÛüëNâô¤ö¯ÚÐt5?#ýbÀj–Ø$þLm +)w® ¤tðLMµ¨ +ß•wx•ÖgTëñ5™pI +wo¬¨AgÔ{ð>ÇÜ—ý™äÏ…v>È•`Ìôz“.²ÀO“ÎXfE^R(v\ŒøÎEºÝæùõü%fáù¤ÕWôvweÕð{î¯}§¡Cñ.ò,¼Ýì!u÷NÏÛÒ›TOùêM^’v›°\x*ê©‚Æ÷ƒ2«ÙˆFî©íó* Axx2$†”ÿ^þÉb”ÿðOE‚Ž¦ÚPd÷îåÀñÏAø•$Šûï9Äq;Â
D@‡wõrGk”NêÈýa!¿éñÖïrUèÎ=·.xê³OÓít^a¹{6…W ·™Uöè=rúž§éy0á“÷ÙKôÁŸƒÐPI/2D&‚ÈD'21¤œ—xåÞMJ‘Pá‘q×IJô± +ÇjÈÄl$û_‚3!}VßåoMï‰üš +IÔø›{¨zžidøÜúP +ÿ?1½‚endstream endobj -1945 0 obj << +1949 0 obj << /Type /Page -/Contents 1946 0 R -/Resources 1944 0 R +/Contents 1950 0 R +/Resources 1948 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1926 0 R -/Annots [ 1948 0 R 1949 0 R 1950 0 R 1951 0 R 1952 0 R 1955 0 R ] +/Parent 1925 0 R +/Annots [ 1952 0 R 1953 0 R 1954 0 R 1955 0 R 1956 0 R 1959 0 R ] >> endobj -1948 0 obj << +1952 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [134.0621 745.1168 267.5615 755.9311] +/Rect [162.4086 601.64 295.908 612.4543] /Subtype/Link/A<</Type/Action/S/URI/URI(http://127.0.0.1:8888/)>> >> endobj -1949 0 obj << +1953 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [297.4503 745.1168 448.8825 755.9311] +/Rect [325.7968 601.64 477.2289 612.4543] /Subtype/Link/A<</Type/Action/S/URI/URI(http://127.0.0.1:8888/xml)>> >> endobj -1950 0 obj << +1954 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [353.8228 665.4315 511.2325 677.4911] +/Rect [382.1693 522.6823 539.579 534.742] /Subtype/Link/A<</Type/Action/S/URI/URI(http://127.0.0.1:8888/xml/v2)>> >> endobj -1951 0 obj << +1955 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [55.6967 654.7216 69.6444 665.5359] +/Rect [84.0431 511.9725 97.9908 522.7868] /Subtype/Link/A<</Type/Action/S/URI/URI(http://127.0.0.1:8888/xml/v2)>> >> endobj -1952 0 obj << +1956 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [283.6482 654.7216 453.0131 665.5359] +/Rect [311.9947 511.9725 481.3595 522.7868] /Subtype/Link/A<</Type/Action/S/URI/URI(http://127.0.0.1:8888/xml/v3)>> >> endobj -1955 0 obj << +1959 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [432.8521 454.5999 481.8988 466.6595] +/Rect [461.1985 318.8565 510.2452 330.9161] /Subtype /Link /A << /S /GoTo /D (DNSSEC) >> >> endobj -1947 0 obj << -/D [1945 0 R /XYZ 56.6929 794.5015 null] +1951 0 obj << +/D [1949 0 R /XYZ 85.0394 794.5015 null] >> endobj 574 0 obj << -/D [1945 0 R /XYZ 56.6929 616.3119 null] +/D [1949 0 R /XYZ 85.0394 475.2691 null] >> endobj -1953 0 obj << -/D [1945 0 R /XYZ 56.6929 585.2831 null] +1957 0 obj << +/D [1949 0 R /XYZ 85.0394 445.3092 null] >> endobj 578 0 obj << -/D [1945 0 R /XYZ 56.6929 505.0779 null] +/D [1949 0 R /XYZ 85.0394 367.538 null] >> endobj -1954 0 obj << -/D [1945 0 R /XYZ 56.6929 473.8897 null] +1958 0 obj << +/D [1949 0 R /XYZ 85.0394 337.4186 null] >> endobj 582 0 obj << -/D [1945 0 R /XYZ 56.6929 265.8018 null] ->> endobj -1956 0 obj << -/D [1945 0 R /XYZ 56.6929 234.7729 null] ->> endobj -586 0 obj << -/D [1945 0 R /XYZ 56.6929 154.5678 null] ->> endobj -1541 0 obj << -/D [1945 0 R /XYZ 56.6929 123.3795 null] ->> endobj -1944 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F11 1509 0 R /F42 1288 0 R /F21 994 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -1959 0 obj << -/Length 3697 -/Filter /FlateDecode ->> -stream -xÚ¥ZÝsܶ×_¡ÇÓŒ% -7òûÉ»÷éé¶ýד4QÎêÓܤ‰pNžnN2))õÉ›“¿÷Žž†Oç䧕M´•ùŒ -R‘xƒà0±‡_¥Ì`åf½¼~À1|¢\h ÝKeyU ðª0 -r€k±¾/šU™Ì‰#Wà¹yÎ;lŠM¹ž‘ øH”»NݢѱbÂ."ó¨}U†È_Hfãý®ºš¢>$Ѥ&Ñy*£h(€ -p&i2öˆ{ÿ±u<Þ%è\ºÞl¿°I#µ9Ú$Ì~]Ò•‚
Ž‚Ð
¨zW4mÕU¾!z»ñ¾»Ã€1¼•ñæ`@î -Ù(°Â:eþ–|Žõ¯“\«Œß…]fVÇ´óoÊ¢a^ænžÃ0ËžœÒùŒ±Áü›}°+X”ÍŽÈE¤mz™›P)`(gíL°z¤–à¡HG)Èp(ç‹}·ï-EÇàTcœh‰²)hPÔu°7šˆŸËÒlYúزðAø2&ðµãƒm`Áe
Q¤Ó‰\ˆ7<ˆµß÷
PnI°ƒ™¨ð -ÁÚï{²8ÎT*ËgDž%RÉg!íœþ$(j»-‹]K7-ìª'…S;`0»T>°™$SyŒV¼«uuƒ"¹)wŒm€ -xå l[™% -e‚Ø[)9|bÑ<#Ö3Î ð$‘˾Ò;Å \hØ8Å—Ó«–Y<Üñ£¢=ÚGj 1Ò$Xb”%ö(ÿÜåä¼ú }8õ\¸í5Ä¥Qa -`Û5£PˆT¼è匛Øo -‡öXfð,ÝéúáÈ!û½qp¸¾oÅßVÍÑ·_ã¨Të
îþ©ãNÍ|R3è V=£!¥ä£¤†ó7](pÈkÂ$4º‹]± ʸ"E"¸2†3<˜DÊž‡qnÑOS–&Yúlç·Øó73Î/g+Ï-eÄŠ -¢Ô#[ØBåA +ïŒU]Óèš)Sè›»ñÆò˜ë`0XAnûf‰í -Äh:¡û[s>4Ø¥ë)[߶Õuÿæâ±³Æ@gr¡Ÿ¶â“nQ[mCè”.©LrŒÊì“]NÎmkµ=ØúÝøø(
{¯‡±JéJMºe*õâ
ÂOéò/UR ÐÆ3ŽÐ¬ÉÄg””aXì;G+º¥ìhíˆ^pþ-c—M'Ê¥bjÒÝÁSŠ%µ”RW¡ÓÔ§z·(?îb§“
¤VtXÁUkð»=Šêk¿ºáÎP7œŽAX;a–Ø>ôÌF±¡†< -NÚ2fàÕ\¿ÚŒn§kS:¹N¸bŠ)êCñi¤¡ãòq%!ãÐoó$µFü‘JÓÄ93ÝÐA_Ja“4wöø´ó§þmKÐuÓ‚!.¹<À³ Ç˃7+ëbòó[>2‚‚ÄEÎV„®97më4Fl´¾ùdîDš}6d€òì_-HvLà«·yvOä½/!ù¼Œ³¤à3[ÎdŠi:K2§Å̇ÉÞe!È£Cõ†ÎF+Õ¡ö”î)/6kL>ÕTíýÇ¢ÖsíMv¢ûª°Wp+‘¢\ö„¢lbRñE©/â;ô3ê*'ó#E_ÇŠrz¬(>‘ -endobj -1958 0 obj << -/Type /Page -/Contents 1959 0 R -/Resources 1957 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 1926 0 R +/D [1949 0 R /XYZ 85.0394 133.9477 null] >> endobj 1960 0 obj << -/D [1958 0 R /XYZ 85.0394 794.5015 null] ->> endobj -590 0 obj << -/D [1958 0 R /XYZ 85.0394 206.3383 null] ->> endobj -1888 0 obj << -/D [1958 0 R /XYZ 85.0394 180.0241 null] +/D [1949 0 R /XYZ 85.0394 103.9878 null] >> endobj -1957 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F40 1218 0 R /F49 1308 0 R >> +1948 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F11 1509 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1963 0 obj << -/Length 2968 +/Length 3870 /Filter /FlateDecode >> stream -xÚZYsã6~÷¯Påeéªì<9‰'q*ãÌzœlÕ&y %hÄ™TDÊïVþûv£<dÊvŽò› -ÓiœeÛÉÞõª?O ~ÿÑL8Ø!KEðoƒ”Š“ÄæSk&$Ð::
,6„pNÉ -§GÎú>ÓùøÇuýTಆÅ2á$¯ èI.@Qo£¢3€À+Ê䮸¤§åò‰uqçF,èÅ«ÊkGõˆ—†¿Vwžhèvú{ùòŒÒiý†ïŸ ™pæz|p0È"³WûšÑS[®PÜÒU«ùÖ¹ÖkÓšh…½œQ/rL!• œu.±Ò0!ŒÐuêO§ $u·ë“¨èn8EÃã½Êœ°q èñÚ’Ÿ¼JšáôÅåxLìoÝ’ù^Ö-ï’\Ê݉߬š‡Ïïz¡o÷¾‚A) )¦‚ƒ,ÄŽ±IåMÙŸ… -CÚ¶.à¥ÞL ¿*7ÌçA®xyóÅöç)Œþ>=©†“Ç1ð…ÐÙ>¯G°ï»õ¾ž{ßù‡cgÁÿz†ã|âô¶;wWÖû¦GÃäa÷È'GœÆŒ6ºr+ÿߪ—úL0ÔHáIÙ|¢ªŸ”cÊ% -ª“½é÷7€ÃÛðþê˜c¨:ÆÔ/b -7ž‰8(TËØ>ì·ÛzÇ©ð§S ¾óÇK%4Í&M#›>2CøÎc;üÿžaendstream +xÚ¥ZÝsã¶÷_á·Ê3'$4OκM.í¤ÓIò@K´ÍE*"eo¦ÿ{w±~™¾(×Ñ!ûùÛä©€Ÿ<MLdœr§©‹£DÈätµ9§ðîÛÉc–aÐr8ê›Û“¯.µ=u‘3ÊœÞÞ沑°VžÞ®^˜HEg0ƒX¼ýáýåÕ·?^ŸŸ¥ñâöê‡÷gK•ˆÅåÕwÔúöúüûïϯϖÒ&rñöoçÿ¼½¸¦W†çøæêý;êqôxeÒë‹Ë‹ë‹÷o/Î~½ýûÉÅm·—á~¥Ð¸‘ßO~þUœ®aÛ?‘v69=ÀIçÔéæ$Nt”ÄZ‡žòäæä_Ý„ƒ·þÓYþI)mÔc5ÇÀÄEF+íø߯q_]*y*eä’DáP³—EÚsYÅÀ9!Äb“UÙC¾^~ÈŸbÇM›µù&¯Zúû.ÿEUmQWÔ“UkjüØÀ§¼à4XO¹(Mì×»}Ì;ªúAÒEq’ÀX2¢âå„ÆF&1no€keñan“FZ&’?jwû¦}}àf¬Sǃyâ5m=GƤnñîýÍÍÅ[j7ùj¿+Úgüg»3iuÝ6 yÚ¥~Ç~غ¸ÇW÷¹‘W«œ>(xÊö1kgH_*žm|ºìÄx—t‚Êå¯2×]NÏù–EºßÒ³é¹~²h÷m½ÉÚb••åó™”Ò³^Šö±Þó÷EÕæ»'@§÷Ä
ÏûÈÓÑ®›º|øžz›ï²¶Þ¡F¸‡Óe 6)¡SOýÍ~»›VE²¸‡–>É?f›mº=÷|FOu•ŸÉÅ_ú|Z6ÅCUT]5YÕ›-Ó^4ùš'öŽ¯ýNº™}«>T9Só˜…aµßŠ‹‹vÿTÀ/cͳBƒ^lËlÅohh Èuô`Ö-αWM؈ãÅê‘šDÄp’º\÷³ùFQ13º¦E¦'GÚ‰‹l›©%2Uõ>,}—“pµæœsf_ew%R«¥WB|>eeAŠè{ÑD°Åœ‡VV=S£¬«‡|÷5ò^-Š–:ÃâÐüåᨻ<=n R$Éâ§KÔÂó«ï†_5ÛºjxÁU½ÎQ D‹ŽZg$nr««¢Ú³êïáOy¼9ø^”d ȉuÿùK±)#çœ>Rl6ràÑ^Š-Øö„Ò*?§Ò‹S9ŸëÕ=z ¥õ!ǽ[¹‡f” ‹[v†ô¯,Ú)´QMñ9§¦ÒÈH¤Ú0„ètz¸_¿,™{ +yÙZÙر¹"ýòô×BíDj'Jþ‹R1¬\—wÏ؆O´#›Ä†w¾ÚòªÐÁ«BËóžÙú)ƒÍ±#Õ +T'Pé!Þ«°ù÷}A
ä[äõ`Æ+¼E°öûž4Ž#•ŽÓY‘ÆW«£…TvN~ +µÝæÙ®¡?
ìªÌvCwj猶€„…úÂ|wÕg“ìŒ-!{eƒS¶‹-ƒLŸk’úÀÂÚÚ‰O!ƒŠ3ÚÚÇèD§—Þ‰þ°–Òšý'Õã@0b=cœ +ÚЬd °~•HŸ0ÇjŒYñ••ûÒ©›¾Y׸îÉ„ügº§·MÍo +®€Ä²ãªÅp$J̨ß8ÇøF†B-4ÆëK®ÜJýŠ¼¤Q"ôŸHJ¬¾¶`jªº¥Yˆ_¬¦ç * u¨ +`Ù5&Wˆ½ÄxÙñ7±ß[öå±g°X0§»ç‰Av*Xcop]ÝjŽ"&ßþ9CÄ5¬ÏTùÇ–+5óAÍ X}DAJ«A
çÍî[Ÿa“ׄI¨õªbž•3ph–=\ÂÀL¤TGÃ0¶$¯(S,¢Xmü&Í܉œq}álUsI`°¢/õB¶yPÀJ»€CQ–ÔºËmôMÝpciˆuÐèµ µ]±ÄvZàÏ÷ø˜û %AƒQR¢eêØÕ +½“˜òïßËŽ0f?žx.l…¤zÀë’S¨ŽSãd)p +]Y/ól…ÉÊ+‡¯Zª(‘Î|Y¶;ƒ&#ãÒiòN:¥R¦cQ¼²’<d¯äÁÑTNqu ãE%³ùø´„€ÍG<õýÜL$Þñ—¡Mõà€&8:&O À™á\]Ž•ÉXY®<®3ÁÍ°BG®ò
(7ôøªžÇ—¢ÿ¢7$c‚!Akà,Ü;rÎèá¸?s5-*€Rw +—¨‡¥¶Þu*ŽTF1FÇv¦ÊIz˱Íb®¶÷·-üŸz6JÍÎê¡=©H‡×Lb•,n~*—~.{PZ‚4Ž8B³&–hH”QP†fw1„þRt´vÄ=-¸áºÉC•-‰´“sÑöPSˆ%™ñMº®Ò…z·È?nC§“
ì-è°‚³ÖÔõAÿPï>t(¢Ï¯ë]_
w†ªátÂÒñ³„òaÍdd*èÀ+o¤
c†6\í «Í`ýñÚNû®b²ò|úÐpù¸’ñè·i$¬‘$R9§C¤ë+è!l$Rg§gøx¤¾vÛ ¦ ëªE\rz€gA/—kÖÖ…àWoùÈVð—)GX™òíp>n\NDðب}óÁÜÉîZØlˆ¤ñ+¿ìKl˜@×ø2ÑÞ¥<Ã()ùÌ„ózžb˜Ž£Ø%ræÀ£öÁÞÑM#´oȱnèla +(ñ‚‚•HP.~EP62B#(ýY|—è䈼ʩt"( k*(—Ň + endobj 1962 0 obj << /Type /Page /Contents 1963 0 R /Resources 1961 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1966 0 R +/Parent 1965 0 R >> endobj 1964 0 obj << /D [1962 0 R /XYZ 56.6929 794.5015 null] >> endobj -594 0 obj << -/D [1962 0 R /XYZ 56.6929 769.5949 null] +586 0 obj << +/D [1962 0 R /XYZ 56.6929 724.8214 null] >> endobj -1965 0 obj << -/D [1962 0 R /XYZ 56.6929 749.1193 null] +1541 0 obj << +/D [1962 0 R /XYZ 56.6929 689.9025 null] >> endobj 1961 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R >> +/Font << /F38 1082 0 R /F42 1288 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R /F49 1308 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1969 0 obj << -/Length 1264 +1968 0 obj << +/Length 2966 /Filter /FlateDecode >> stream -xÚX[s£6~÷¯`ö)—éS6uÒìt³Û¬Û—4ã! 5€XIÞ8[÷¿WB`Cì4àd<týtîGGȲÕY!†¶yVyÛ[I1±[5w6AÍÐ.ÝUæ“÷§nhE0òßšg¬Úaˆ¬yzutòëñ—ùìr -lùp -°o}8¿øÅŒDæsòùâôüìËãiàÍÏ?_˜áËÙéìrvq2›b¤ö;
Â3NÏ›™ÖÙåñ§OÇ—ÓëùÇÉl¾á¥Ë/²]ÍÈ·ÉÕµm¥ŠíºQˆÕ±!Š"Ç*&v!ö\·É'_'¿o -ÒLå"R&s‰Í5Œ,*p°mq¢²¬@#p'6¡¼KýÁ™Œw2m]5HÎn;æe’Ì(m“< ©r¶”¯G’´…Ô㬛†žÈ¥ mdU©tGeoи>ØfîD›£@Jò¸Ù¤ò7+S1A2 X<Þ*«åº)ìŠé¹öH“m¨* -%ÛT`ÓÊë¸üº@~ -Ã(|«3¾>/Å‹&g£À….~™FðÝï’éï’©Š*WÞé=C¦w ™‚N]<íÑ•.€Pu†ºœÒ¤1‘l™÷ïeÊ[§^·–d€®½ê®HS•y÷ÞNLçz°
h\õ/•Ý¨^ÚÆΑNÙEÑßX.ùp¨g ÚVO#AÔ7“Rú±S`N2ÅÀ]ªx¯©)‘ªvvéÑ£B=)å$‘¬L«XÞÕÕðâa©ÂŸ©}:UÞºÍuk–e]”}O$.†ú]cσ†½yxõóÉömÉS±.ÍˈÓ}!pm†N´DiN£` -\Ï÷»¯I0‚ø☞ŽW³•$eJÒæEbY™ £;NBG*4¨[p•žÈaój³+ˆÿ +xÚZësÛ6ÿî¿B“/GÏDˆ—Onëôܹº½ÄíÍ\šÉÐq"‘ªHÙõÝÜÿ~»Ø2ùÚŽ>p,‹Åû +=Ë +‘˜Ùb{&fŸ`ìÛ³„yæži>æúêæìÕ•ÏŠ¸He:»Ydå±Èódv³|}ý·‹o.ߞϥQŸÏM*¢¯®®¿¡ž‚_ÿpýæêÛŸÞ^œg:º¹úᚺß^¾¹|{yýõåù<ÉMïK–ðÄo®þ~IÔ·o/¾ÿþâíù‡›ïÎ.oúµŒ×›…ùõìý1[²¿;±*r3»‡†ˆ“¢³í™6*6Z)ß³9{wö^àhÔ½²ŸQylr™(“Y’Ä…1rbASÄ©’ÊY-
X@ÝUöžø®+;»µuÇëÝ—Ûm¹Çõ¾z£åh[Äbcò̉# )ËúX—[‹/Í”‰óԘټטß/6eÛ~ þÿ8>1åØ–Ýb=_l*Фõ|îQ.—{Û¶ÇÇMÕvÔÿß×S9ÉHÎÒ¶]U—]ÕÔ¿OØX©½]ömugçM½y þÛ~lö놚Á·ßÌÓìP—×ÔÇñ‡îü¿›Ú~lý¶¿3˜ô?ÆÈ×y¬3 +¦ž²^ñS[~²<Ñ q³¶½6SRÄRæ>%I§yž3S;Ö,ª–ž%=vͽݯleÑÊ–ÝyöçIYêkVÄéýDJ~"ºuÉ27¶›Ju@vo·vg÷<X·÷=Mo®ßñëÁîˆ\V+œ~esÚ0â"ÉŠé^âK2Ë£¥ÝÙzYÕŸ¨é¬ÏûuC„[6<Ëö30ãR…Š®ºéà®ÜwÕâ°)÷^졵d WÍžÙ·»³h?]»ÛT,‹V„}¶;ìXð}Õ›Cøº¼#1 +›<QÒ +P5 +þÕ¸Ä] +Ýçñ¸>¡\IâÖ(Ðf/#$l…:]j&iª¥&ˆe3ÃdŒeA‡ÎM¹X€Ë¬n]a#ȉcÿ + ¿¯Ë
ÒG×ØÇâhxØF„«¿á–‹e¼&¡ò_P±ªj¿/kw- øBùÃ;¾šÂ› +I„<ÆínçÎ`QøÓÔýÚ
¨ÁRÔ€.¼’©œ÷@NXR¹?”Ð7 +ÚdÑ?{ax£çæ}x]pg¹9X"+î6ïåèᘯݜ<±¿Pöéþˆa{³X†üV¡Y-íw²p=éÁé'®[Ëè ð’"#VdÀYpòĺ¼³ÔpKeÞI6â´áwÃËÕNzt1ö¬x2¾u·OJ8n=Þ8èd•ùP»ŒÑQ;ÎOìÒÖîkøÒ¥6^ª÷á•(‰µœ–Ï:˜"y”$pTy‚y†žx‘ŸÏÁ‹WLTö÷›3…²åþaÅ°jÂè)oÅO]™èñðÕõ”
[»d¹×Mdzû—riâ&«çþõ»AéíÁ¥/¨d"eøL°‹·ÃÉŽ¼†í!À{ራkï¹i
(¥dbÑlwÕÆ.ç~ôòdÁIg=ƒv¸PNFÖ‡1°l ,V°Ãâ~Që"”+‚\ÒÔ»è +êÊâñ'žbâspú¦¦g=G4;ÙØ;»¡>È#¦¤7ñaÏ÷X8J–&ºßyæn«%#céÓé,ÎÌQÍîRÃ\P€…'ÞÒE—zbgø|ÌlˆO/é––Beþ”ÿI2 þ§xVäEú¼²9çÊÜ\ô+àËG¯æ9€‹ÚãH*Q³ endobj -1968 0 obj << +1967 0 obj << /Type /Page -/Contents 1969 0 R -/Resources 1967 0 R +/Contents 1968 0 R +/Resources 1966 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1966 0 R +/Parent 1965 0 R >> endobj -1970 0 obj << -/D [1968 0 R /XYZ 85.0394 794.5015 null] +1969 0 obj << +/D [1967 0 R /XYZ 85.0394 794.5015 null] >> endobj -598 0 obj << -/D [1968 0 R /XYZ 85.0394 696.3167 null] +590 0 obj << +/D [1967 0 R /XYZ 85.0394 769.5949 null] >> endobj -1803 0 obj << -/D [1968 0 R /XYZ 85.0394 668.9738 null] +1892 0 obj << +/D [1967 0 R /XYZ 85.0394 752.2115 null] >> endobj -1967 0 obj << -/Font << /F38 1082 0 R /F42 1288 0 R /F21 994 0 R /F22 997 0 R >> +594 0 obj << +/D [1967 0 R /XYZ 85.0394 622.2614 null] +>> endobj +1970 0 obj << +/D [1967 0 R /XYZ 85.0394 591.5303 null] +>> endobj +1966 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F42 1288 0 R /F22 997 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1973 0 obj << -/Length 1293 +/Length 1252 /Filter /FlateDecode >> stream -xÚåXßs£6~÷_Á£Ý© ~jò”K47½ÜÕçöÅõxȉ’;çûß»X`ƒƒHrOI O»«oW«54~†f;Ø¡„j.µ°¶,zºvï.zFñ
*?BÕ¯>Œ{¿ž›žF1uˆ£ç,ëžghãpÒw0Á@ÐûgŸ¯Î//þ\«?¾ü|5@ÄÖûç—UëbtúéÓéh€Ï6úg¿Ÿ~Gê•S`|¸¼úMPõ8:žGë³á`:þØŽwºTõ5t3Wä[o2ÕµÔþØÓ±I=[{€ŽŽ
J‰¶èY¶‰mË4Ë‘¨÷µ÷ç°òv;µÑ~†Ž‰éZ¤b@OÇŽP®M±cskÀÉ -óáÐ|,‚ÖL¤,h¡Mµö:ä>»™óLÈNZ8Àу'u–>ÏúbàX¹^ëHÌWó]ûâu[º=Ï’ -ù%S»Ä¿-Œ\¤¨·öS…st O«`ÕÀRñÿŠ3¹;l-%7PGF'§*SÄCðóò|}3P²”m‘Œ£HyÖù."m:ˆTCªžcô,(ÃViÄ^ç‘"Úg-´WK¡EþºLЃ$EGaó$ -y&$=¦ÙTvƒ±Ð›‹|û -¨ŽåydW¿#¤¡ +xÚX[sâ6~çWxò‘â6öä)›’4;MvËÒ¾¤cl9Qc[^I@Ø¥ÿ½’%›8 ¤t±ôéœO碃e˜âg®½ÀŒQ0„®i¹F”õLã^|»êYz
¨æªOÓÞé¥ã<Û3¦Iˇ¦ï[Æ4¾ë{І`ö/¾Ü^^_ý99Œ†ýéõ—Û°]³yýûXõ®&ç77ç“°|×ê_üvþu:ž¨OžÆøt}û«š Tóèd|9žŒo/ƃÙôso<uiêk™ŽTä{ïnf±PûsÏ„Nà»ÆZLhmd½¡ë@wè8ÕLÚûÖû£l|-·vòg™Ðv<»ƒÀ¡ÝE @ϱ’ÀϤØ,sXή0Z€gšýôÄÍÃôD–ËúžëÀ²`àºê.NOÕ’›Gª¦©êD)F9gj®:™\‰b5XlTËP%’B·[èE+L–J + +»–—Ð uìO-S¾9S½}ÝÖA”,R}Š¢%ex¥‡ÑŽô€ÕVDµî”M£‘¼¢ãU9¾R²Â±>,¬äaœâˆWÜíî‹$;µXaV¤F${Ö$×"’óç8¿×ˆyªo¦X.RU£0Šcx‘ê}„=ÓWÆû¤!MË ì +e|øÆCŽ2qÿ:òÐ0ËBªðZ.)¯Ü…–ã:{DÉÞ<3=¼‹Ò±Y‹1m*-bì®öM²ß—ˆnÚþǼؼô yŠ¯½¥lg‡a‚ʼßk=‡å4ÌY‚èK»,bq[ªà€ˆkÑ#xdjvƒØœÐ¹tõ7µsÆPDóˆ6bçoÀØ0) cà +fÛâM«µsº¬<óB8;æº"Ià¤m™¸˜Ë›Ñ˜¡¼ž—}‚²yßž/sb‡J‡â”½’¸CðÚ9ʤëô·éšëæÛ$Äéßç„"1gµ|…˜=½®CÀ5Nã(¤ññ&¦ö³"ÙÉ£zRª–(áêeÖÁºJ«½§˜ï;ÀÁ:Æ8L—E³?'¯“ï»#“n•Ð@Å`¹$„Š`²£‰‹µ¥áú¨ëú‡,wŒ·e±Û²<½0ü£RHôæ¬@ÑÚÖµ•HdXÚ&˜2~”Ñö³ìã}³ûxü”P°Ùû®´ÜP’'"¡<ªœûÇ)axV€cl«…@‘ȲŒ‰t„kìÙ'.Ÿz`“ãLZW ’’û†y©$sJ•äŽ…Û%?Éz‰ãì(¤–LÍ4´Ç˶z`"ÝaÞšT®v™ûà£@ŒÒpSÕâ1³ƒÕÖœ endobj 1972 0 obj << /Type /Page /Contents 1973 0 R /Resources 1971 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1966 0 R +/Parent 1965 0 R >> endobj 1974 0 obj << /D [1972 0 R /XYZ 56.6929 794.5015 null] >> endobj +598 0 obj << +/D [1972 0 R /XYZ 56.6929 540.8995 null] +>> endobj +1803 0 obj << +/D [1972 0 R /XYZ 56.6929 513.5566 null] +>> endobj 1971 0 obj << -/Font << /F38 1082 0 R /F42 1288 0 R /F22 997 0 R >> +/Font << /F38 1082 0 R /F42 1288 0 R /F21 994 0 R /F22 997 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1977 0 obj << -/Length 1110 +/Length 1241 /Filter /FlateDecode >> stream -xÚÍXÛnÛ8}÷WèÑ^€/¢$"OiÖɦغëݯa(ÕÅ©&nœ_êbYräø’.º0‘CÍðÌá3"6þaÃaQn67!C˜³°ƒŒ;=vÝÁå;`ý¨¿õnÔ9»¢ŽÁ!·ˆeŒæ5[DŽƒ‘7î^þqñiÔö -ÙRÈiœL£ø*Ó@ù t¥Z{^iLÄ‘Ä ŠŒ] T°ß ò,ø=Ÿ¯ç(†Í\ú#ŽÊåÉZ9¹Ew<\)'Eç)Wm5«–‹Rã^3{ÞæÇÜÊW¤J*Ï_qÙ¸s•G Ž‚åÌ5Vov/f_Aæ“,ÿ †Ü$ZÍ]?XéE¡exËbþ8;+žƒX›pˆPDJx°•gÒÊ3}+Ïd‹g©ÒÛ×ÈË|KÅzÛ<•rÏÓç‚œ†®šÝO_–~=Àdͦ^‘·˜%?c^‰ß
ÒE½=Y 4§Ç^È® ?àÏ‹LÌãD³ºaF‰GµJ܇}Œ4üÑF4£ÞÆJæÕjî'RÅliG$²±üëƒr1Í¡”-âDUò¬3iL!llµçƒi‘{&xÚ¸ÙP«Ååª 8›3Ml“-þZ&içU•±&ÕüMbÇÚåVgÁöÜ/Ò¹JÜHÎE|O‡„œ+CYJ>ÂPÑ"½ü«îjüF§ÉLlVÓ_˜µ -M«}§R€”ï©'\dÅJ§'©ü™<59y®ro]yb‚:ñCÿO>TÈÛ?Tðé5þ/+uÌÌÀ¯¨¥H¾ë/Mˆýåê„r®ZEÙœ'Ø ?ÂðÑïµ°¶ªË -Š,èn¯AeÈ9ïjZVýnrhƒO¤èeGqÿQ‰È^!ù’.Š£3ëüÝÃwu)¦ëõ[硺CyIÄ¿Ùçendstream +xÚåXßs£6~÷_ÁcÜ©ˆ&O¹Ô¹æ¦—k}n_\G‘¨Ä!‘Ø9ßÿ^ +á… W׿MÕèýìâãÇ‹Ùx9ÿ0šÎ[Úö"Ý,ù2Z,u-féÐô\[{’:DžghñȲMh[¦YK¢ÑçÑ
`ëm9µË¶éBÛ5œZFËHw¡gyŽæØœ˜†Yzp1]?K˜ áp–g>%ý[·ušNV82%Ù&kÒ]ÐÔm¹8‚ŽeÚ%ÒOå+zŽ3ÑZr ‚ÔäEÊ2¡†4]Kõt®nË A£4!èÙ¶ÑVô™%på‚ú\ Ã<ŠjýÊ› '{’DÎÛ[Fï„çô<âˆTl +Óx°äaE†Ö1ñf¨h²ì gAÃÛ7P[ÅSÃC™¸wcø*¾™Šj¾F=«Vñï‰ÿ endobj 1976 0 obj << /Type /Page /Contents 1977 0 R /Resources 1975 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1966 0 R +/Parent 1965 0 R >> endobj 1978 0 obj << /D [1976 0 R /XYZ 85.0394 794.5015 null] @@ -9073,1364 +9088,1459 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1981 0 obj << -/Length 1977 +/Length 1188 /Filter /FlateDecode >> stream -xÚ¥XYs7~ׯÐôi51<ö?9©ºÓ¸©£ö¡©ÇCi)kÛÕ®º¤¬¨Ç/H«#ë^=,‚ -ªHN»ØÿZ¼8*‹gíã: -ª<Vœªš†Mc‘“8ÓáɘtÆ8‰ ¥)Áï},žÅ$cE&¬Øleã -!Õª{yG¯$t(ž‘ı×åèE»Ù#Õ.QÈ¥4~”ýœ‡ŠÕé -ºÓh»òË*œLC¹õŽ¤ÁJb!hôÖGÏ ø´~Û“ƒ*Ù [Öºò Êp* ´ö¸ÑHZ£îV;Kæ}¦ßÚÒàd(zµG^©–r[›˜}ÓAE.û2„]8À”jð¨Ç:_ƒ»‹ð*Ä3%9îP/†Ÿ
0¹rÀ>nVνàb%›GUâ -œQ zGìb0 pÇF°«ZªÒC~ydÚŒ³IA¹÷n¡R<çPvä} -w^,Ék‘ú8˜6¹ÞÔêÅáv íº¿zØh.]>÷vÝáôî“0’ÃÃÁ_ÔGgƒ -gTð€÷1'4ãIïýË¿ß@žè2©ß”?_>Õ,(Žãƒâm®—ॗñ +xÚåX[s›8~÷¯àÑÞ)º @“§4ëdÓÙº]×»/ÞŒ‡9aÊÅÑÄóßWXCŒcì$Ó‡8 OßùtÎÑHý°Á,hqÂ
››!ÌŒiØAÆzwÙÁëo@ñ¨~õaÔ9¹ ŽÁ!·ˆeŒf,"ÇÁÆÈw-H`O! îùçÁÅÕåßóžmvGWŸ=@ê^\ýÙ×w—óOŸÎ†=€†»çœ}õ‡ú•µÆøp5ø][¸¾ì +ðÃÒöCþÜš¸ž—hË2÷ÙÀ܆ÄBªOm“²Öo«WrÛ¶ŒŠ]`Ýx<©oýù$¸ÖO§úr½B +Ú»på`ÆÚrÝ+-!bYkºæºæ†îŠ‡mC9VAC§GK°É¡I¹ÕèC– +°Só…H'q2‰â jŠbéφ[6¤61wiÀ¶48dÈ°M!59¦UËýyà0HUÿï[˜cHb7Êù3ŽH¥+ýTúÓTgYütb‹$5K¤ÚµÔ¿?ÜÀ÷|¹ +o3‘Éâµ<^ñM,€ç'b*ãd¡MsWÞM"7-œp3/JS1-ªpß/CWE±ú/ãÙ¬ ? +ü<Átd^íÂ,>ÝTž—[ÇO‘Ä*IT1r”Á~@(äù£Æèé´è£x[óú±©$+q×)=
Ü4]gô£ž“š`7Ér§”=mÒbæ)ñB"‰@ܪšG Ž‚ÅÊÕÔŸÞ‰é7û”n +ø½›DË™ëK5¨q"6õ¸D\]NNôu¯kôU8D(Tôà¯Ô9•ÙÍKâ|ÏD‘6k»šµDšNBWNï&š0´ý©…’L5"o{ì endobj 1980 0 obj << /Type /Page /Contents 1981 0 R /Resources 1979 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1966 0 R +/Parent 1965 0 R >> endobj 1982 0 obj << /D [1980 0 R /XYZ 56.6929 794.5015 null] >> endobj +1979 0 obj << +/Font << /F38 1082 0 R /F42 1288 0 R /F22 997 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1985 0 obj << +/Length 2074 +/Filter /FlateDecode +>> +stream +xÚÅËrã6òî¯PåDU
1xðY>y&ö¬S;NÖ£ì!ŽËEIÅ]ŠTHȲ²É¿o7 $‡öLÆÙÚÒF£»ÑoHŒ8üÄ(‹Wy4JóˆÅ\Ä£Ùê„îaïÉp4¡' +©ÞMNÞ^¨l”³<‘Éh²8à•1žeb4™ßïÿvöÃäüzʘ ‡qƒw—Wß&§Ïûï¯..?üx}6N£`rùý¡¯Ï/ίϯޟC‘ÅÎKÇá™—?'èÃõÙÇg×ãÛÉw'ç“þ.‡÷\áE~9¹¹å£9\û»ÎTžÅ£-,8y.G«“(V,Ž”ò˜êäÓÉ?z†»öèýb•±8“é€#y`@Á3–Gy:Jãœ%J*kÁ›q˜p¬Ê:lµiw¡)Wšpõf5Õ-Á§ô¹ÅƒØP–DZ<bQ<¾šÅ¦2e¸*:ãítw×´wu3À#”ŠåhfÇŠBâ÷S/€¶#‹ýµ©JÝÕ…×ðfV]wK‹ÿØ£ƒlÍníNt¦0å,ìÌfzúÂ]Šªj¶á/Ýî<sÂÏçUafË»ªìáÿûtº}ÐmèXè£)×w¸d/Ƙgþ’,1 -5(7öÚß~ù%С5bvìþ¼Ÿå ŸÕký,ŸøyÑ´Û¢Ÿ¾`#GB‹ŸyÌ›ºÚý¶(ÛÎÀJ|qÜ;>ºý¼GoÖMkz<.n¿ÆÕGâçºÒ÷à¦ñÿ«Ìû†}óµ9×êyÙê™L¸EYõ©Ù–õ½Wø¥R…Ï…`zÈĽ~4¿µÅösþ]®ÿŸâû‰×O?«ËÛ)F=zªA'á’LÝSfÐJ¹SŽ:å'Ht½Òµ¡å·úgÎe]¢XÂõœ€»â^÷rö}-Açê@NÒO½¤É8‡¨]CµzÒ•…àŒ•ŒO@ù4ý¢¾Ì¡óæñq[þªC^O>+ŸÎq`å@â˜UØ_)”™b<J£gz~¤ÀXY6’9 9¹Ó5X2õ!y±TäÈ@²É-›ûV@ð²€%³<(hí›5³f½#¨Y‘ñ,æ…q áè÷\° O€Ú–UEÐTåq1œ×MCßu;YÐ<”s·Ql̲iKì3Uw[[cqAz +¡€öëªâA€`©Îÿgè”ÔÑZÐ{*ÊŽ0}¬ñõº*gíS +ovef®‡î‚Ò|ê¦" YH¦2ˆalW/™ +ãùQÖ€Á´üCl¨ +ZK[m1¤ØZÛsa_Çã(˜5€ÅÂx¬‹ È…ý‘L(ðåÔUˆÈtßÃ#§Ç÷æ©Ý•H(Ô,dƒK@tØTD̶4K‚žªŽ¸É§Ëý[ïP˜çÁå±%^˜á•ã†÷įõMýù›Áă{¥¿GuMÅÊ5&Üš:’-ôÓl<+ ^<4]ãPUU„ÊnH/™èqST\:ݪ2ÅaöÉ+§@½ +B˜[Nmå‚)°Ý–s³Ä <¸j<…¯á~` +K,>
m<
,áª:µåX›N¢ µÙ6a![Ê¿n¸ÕÍ–zå¨Ý,%û¹_¹ °ý‚QJ^‘ +ôã ÛŠÕºÒoöÃ%”ë~ô8@“¸ÌWùÌɵÂñð–ÁËÁúÑÊ`–ÓDrœI?u”÷KCRÖU1Ó¾h7WH΢X>y'¹L†ºÍÝPÅUYÛ +endobj +1984 0 obj << +/Type /Page +/Contents 1985 0 R +/Resources 1983 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 1965 0 R +>> endobj +1986 0 obj << +/D [1984 0 R /XYZ 85.0394 794.5015 null] +>> endobj 602 0 obj << -/D [1980 0 R /XYZ 56.6929 529.2539 null] +/D [1984 0 R /XYZ 85.0394 373.8367 null] >> endobj -1983 0 obj << -/D [1980 0 R /XYZ 56.6929 499.14 null] +1987 0 obj << +/D [1984 0 R /XYZ 85.0394 343.7228 null] >> endobj 606 0 obj << -/D [1980 0 R /XYZ 56.6929 499.14 null] +/D [1984 0 R /XYZ 85.0394 343.7228 null] >> endobj -1984 0 obj << -/D [1980 0 R /XYZ 56.6929 474.7286 null] +1988 0 obj << +/D [1984 0 R /XYZ 85.0394 319.3114 null] >> endobj -1985 0 obj << -/D [1980 0 R /XYZ 56.6929 474.7286 null] +1989 0 obj << +/D [1984 0 R /XYZ 85.0394 319.3114 null] >> endobj -1986 0 obj << -/D [1980 0 R /XYZ 56.6929 462.7734 null] +1990 0 obj << +/D [1984 0 R /XYZ 85.0394 307.3563 null] >> endobj -1979 0 obj << +1983 0 obj << /Font << /F38 1082 0 R /F42 1288 0 R /F21 994 0 R /F22 997 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1989 0 obj << -/Length 3312 +1993 0 obj << +/Length 3310 /Filter /FlateDecode >> stream -xÚ¥ËrãÆñ®¯àªZbƒ<’“¼+ÙëŠeG+çÛ‡ŠˆA€&@i•¯O¿fRË©]Õ==¯~wƒÉBÁ_²(l¬ÒÒ,òÒÄV%vQm/Ôâƾ½H„f鉖Sªoî/ÞߤŢŒËLg‹ûõd"VE‘,îW¿D¾»úéþúîr©Š²øri3}óéö#cJ~|øñöæÓ·?ß]]æ&ºÿôã-£ï®o®ï®o?\_.“Â&0_Ë -oL¸ùôk†¾½»úᇫ»Ëßî¿¿¸¾w™Þ7Q)^ä‹_~S‹\ûû§eaÏð¢â¤,õb{al[“¦Ó^|¾øgXp2JSçøgtÛ¬HelcÞÞ—÷P°¯€:Kc•¤ùÙ¾Ë$QˆÏK«L\y¤bôD*‰)cepe[ÆYªSË07ïoô”8+âÜh܉®€•iδ -vê…²…Y‘ÉB «Ÿ€ã *>ö¤Tø…Ô–ÌgíC¨äÇpØíúý8ÌŠ÷.2ö‘à–Na#Ô²‘¸g÷r™$ ^6‡³~RÙ ó¾€ã˜¤ô²Ü¸wÝ°®÷ƒì´ž¬k9'lÒ6yG£3t4U{ æ ž- -U–Z³ÆpŒÕQƒzÀ1âÏ*ùX¦ÙÍ0óN%B70Àbš9¢è§2Ç{Ù‰ÍÓº+<g’F®my\Bœ 9ƒò²ÏÂœRžœäŒ0âÚ¡Ÿ“*GŠtñ6¼Ù4ö
âUPDDò¬ -w²êÕþ,:ª"DG -ú/tOÍ^¦ìöÍ“¤0¥Ÿûýïür–ó鮟eÑÝ͇¤L -~™„]!À4à…Idð<×ÆŠãËB~eA2vN¯Ã÷Ù¡ Ãoº%"vû›‰áeCÔN$†Sj•,°â€ãwP*ñŸÈÔûεL%,%BÏÒL‚IÍáßovšÐœÊš¬%.¼°áZåc@¬cñyif“4Öð˜T3_Y"•”>°m+ËåÙ_]ÔOy³îÒPú•ºÈÞ¨» èK)¦„¬)2öŽÀ¨jùFùÕa–AM},¿ -s2©÷t0D¹`ŽUXÁ 6"ŸÎóL˜—ŠrñFPë¾mûg€¯¿Ìš –n˜³ý
“ŸÒÏ.ÃÒ!ö•JWÊùÁÕ¿ðû\,€Ù ‡Ò’t¥cbJ¾fQ4œÁj!„Z‚c¤t³ZBe=oÈãK‰Ã~ g‰”xr|vu–ï “'JReÄ»9/öÇ¡ÞË
EÕ¬6ÇjCnå¦üò,Cq\z†mÛC â™Vª'˜=›SY…VÒ!ˆµô.a—Š -c½Ýaw#ÕÁGA’Ûñ0ð´ßJ)UbK«YK½µE¿õXó -aFZ"hŒy׸lëWÞi¯ùyûã=~˸úùþ»ÙJòÚ±w;K ÎúØÒôž©Ité‰úÝè˽%ÔcÝÕ`ìž¼ù\ÁØIEì};§¾P’X - phUVü‹†)oV - Å̓ø‰^8™!߶§ª»•ï?’êÂs'QB4§T#ñƒÆƒm3ÑzVxI–€í_:¸F翽øÃ#ß…ræÒë°8KÒ³ïܘS“O$NQÊ`["„‘®8¢8¡2ÒòÃ^ï¸y_aèoÃbB—ADåæu5<òFO±{‘ÏÇ“q6IŸ?Ž>^3°,bpû>–jfΚ³¸|š)Ef!>øÍÖ¼ÙK`àÙñöZ:e¬ú`y:OÌÙ—Ñ/BÉÿ,µ)C¼>–]¾›\AzüxÒOò‡zãžþüäÐn~lóýƒkç,Îdì¹BÍñ£„:B•oÁA™Øä¥9KÚ8Õ7œvK«Â$ „˜yó:ìà(F‘ý0räÁÉcOä©(*77?Üà€,NŒ +xÚ¥ËrãÆñ®¯àªZbƒ™œä]É^W,'Z9‡Ø>Œ@PDL4J+}ú5 H‚.§vU[hôô¼úÝ
&3É̺غ˜e…‰Jì¬Ü\©Ù3Œ}{•Í<ÍÇTß<^½¿KóYN»Ùãr´V«<Of‹Ÿ#ëøVPчïï>}ûÓÃÍuf¢ÇO?Þ_ϵUÑݧÜ2ôíÃÍ?Ü<\Ï“Ü&чïnþùxûÀCNÖøæÓýGÆü¸°èÃíÝíÃíý‡Ûë_¿¿º}î2¾o¢R¼ÈïW?ÿªf¸ö÷W*N‹ÜÎ^áEÅIQèÙæÊØ4¶&Mf}õùê_£Qš:Å?£óغ ±MŒ¹¼/ï¡`_µKc•¤Ùɾó<‰ËP:ÊÄEPŠÑ#¡$ZÅ,4Ël»T§$•®ß?!kÞßé1±ËãÌh܉n€—iÆ´ +º4ÑC¬Pt9ZyUOªûHS…Ö*K-Yc8Æê¨F=à˜‡ñç +&‡ÿ°ÙqBs,k²–Ápá…
ת“ +»é« +(›èèuEïPJìw9K¤Ä“㳩J°|™<Q’*#ÞOy±ß÷ÕNn(ªžcµÙ—+ +p+?æÇ Ïb(Ž‹ÀP ]·À1¨Bˆi…šp2³'s*«Ðª‡tb-½KØ¥" +’܆‡§íFJ©[ZõRê
ºçŠX¶‡‚-tlþ[•¨ÒAcÌ“¸Æe[»>{ÉÏûñÆÍOßMV’·žÛIqÒÇ–¦÷DM¢‹`MÔïFW|(¡ž«¦c´à̧ +ÆF*âàÚ>ví„’Ä ¹¥TìÌéÍCw±'Ö_™¬*€â¡U.ÿ?¦\ª +î<$ÿÆÑ/à"xŠ|"@$Êø²UCÅž1Ò(Àw*ßÍ™.0r´&i=â(ý
hb;›¡M A|¬!å üõf">fP67ÎUÎï®Ó8;¡‚ÓWÞ€,$qQÿ¶ÊÙ€o9T02÷2Ó<vY¾m•^Žìéå..òëÛ"Ö¹H i[¦ã¬°Ùi—nò +š)kvq1ðyÐ|L+œ…z6[òfoížWÏeØ?jé–±êƒåé,1'_GW¡%ÿ3צbö¡ò +åRä磞2?U+ÿR‡&-çg,ôÛ'¿ž²8“±§ +5ÅJ U|”‰MV˜“ÄÓ}é·´+LJˆÙ—1çaG1Šìºž#Nî["OEQi½©‰øñdqb _jJa¶ý»)MzÚ÷üm•å†¹ÄI—3qáË“Þ=AC#z²Âó¹½–|1¤È×çÑ6ì&£ }VÇ<ñDœ$ËÐýéÿå–ç8øÊÜkÕ „¤M$ϧ~‘ÿ…É_ýû—ÃL§y®‡\èØÛ UJ>yô•~Ëq~H,o¿ôò1Ÿùó/¿ü› +þŠšu,>ãl%JŸýÐ'Q1T8:ì8âÂÿ endobj -1988 0 obj << +1992 0 obj << /Type /Page -/Contents 1989 0 R -/Resources 1987 0 R +/Contents 1993 0 R +/Resources 1991 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1966 0 R +/Parent 1995 0 R >> endobj -1990 0 obj << -/D [1988 0 R /XYZ 85.0394 794.5015 null] +1994 0 obj << +/D [1992 0 R /XYZ 56.6929 794.5015 null] >> endobj -1987 0 obj << +1991 0 obj << /Font << /F38 1082 0 R /F42 1288 0 R /F22 997 0 R /F21 994 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1993 0 obj << -/Length 3208 +1998 0 obj << +/Length 3210 /Filter /FlateDecode >> stream -xÚZYsÜ6~ׯ˜ÊK¨”ÁÅË[û ˲T,y%ín*q(GbÌ!'$G²òë·
ð˜œÍzå²6®F_wƒÿÄ"ŒX”Êt§š…\„‹|sÄwÐ÷öHØ1K7h9õêæèû7*Y¤,d´¸YOÖJO±¸YýDL²cX§—oÎßþóêä8ÖÁÍùåÅñR†<xsþãµÞ^¼ru¼I(‚Ów'nή¨+²k¼:¿xM””Ï,zuöæìêìâôìø×›ŽÎn†³LÏ+¸Âƒü~ô˯|±‚cÿpÄ™J“pñ/œ‰4•‹Í‘µRŽR]ýcXpÒk¦úä§eÂÂ(…HF*?¿-mÁa[ÛŒ‹•ØÛt™E14¢¥É -'’³–YÄaÊ"%•QÉ}Y÷(—ïßÈéà(a±–¸9º¹/@”Be]öeVÑKWôÔhÖø”A{,’ i,µÎ6…Ø>mg—°Ïn[äåGÎe±"®+ë;Z(#ÊG)µáϼýÑÔR²Œ-…`iJÃá¿ï‹‡¥AO¼¦vWÛ悔۾€†ƒ²·„®èöæNO’¹
=‘ñzEíÌ7ÇœÞÃèÀU™YwF’Qh -Ä.Á7ìI](
ÏÙ%çâåWšü:$¼œ"T)™¿N„s7læMænç`A'&d`_ÿ´µÎéጼG¥”‡ *Sn -†¿€-+ÊþžzHÉ©æqâ+K¾ú’ôrìí¬r®ط*ª î˜-ƒmCY
£†H6òˆ.=ØŠz²ÕÊê -õ’ÜvŽÏà·1ä‘ä¶ß˜C–ÆqûCÞßM;&t@)H
¹ †<Oè1Uy½ˆ oŒ1æ&ðIŒ¶êñì±
ªe,ÿolõÈ(á‡~½<< $þ<MÄs;€Û=I–èuD¥|€ŽTãˆØ¸ÞfuÙÝÓšgGM¡]½2y -¼²³kGðBf
ë-ØÜu–Ö•›²sôøÀ#ÅFÉ×í®§†5|)ºÉh¢‡|»W!RY˜f+z1yØ0Žròeþ4È@JŸ0ýx¸„tpS˜‘9•€{ƒ”PwØœHIꊾ÷ƒ \Öy]‡æΡ1úíÒ監3ã°Ah&bϹéÄ´%{¶¹hzjY—WqlåG>¹@·…è·A¾#:Ù·Mו·•[°°û€˜æ¦ŒÁ¡eG}uãÄ -l¤";'.æZ:9ÑÉ<óÆžWEžYôê[ —êá€!ÕCzm²÷aÚš”_Ô¹j Aòd¦Ü>QšÂ¬iŒñz3«a+-CÚJCüþTl{"a§]hG‰IUÓ|Úm‰ÚgFàH&‡¡åZ“<"u“W´D&Bv•©- -;Ä`©™³Ý¢º°‰ZÆ>ÃÈ•iTñÙÈ^Ðj}u÷cšAH
ç·¸K¹s«"[ï;éži\8ý™Q§à„¡ri*U¶¼T!¨TL¥Œ´Çr›^F›0a(kº€ÙФõôFeé6ñúh©ÃžäuíJþâbæ.è¢m -Uà4 -w1'Ømè®Tð!gP‚LïE¹ýúr…yðu¶o“ýfÊɇÖjºb‚F u,5{ŽM:éÝ]Ùø’DV–*—O[ÍáEaiŸîæ š†iºV´c0§Ø¸ üŒQæöªq»ðöþüæ[»äêøÍÔ:8ÁËÄëo(Îû9”ʘK̆.?»ûl’{,Ä¥iª÷43e
m4»5Ù/†Á‡¬-“Ü A>Aù³é¨g•A¹„‚ÆÜR‰ng®|qºÜ´Ô˃;:Çnë†oÛMË®L)Ìéz65Q+a?EåSñôh«Ó/EPÒó»kŸh¦1æs{´7²OuS?möLŽlÁ]Ùù3‹:©]ž„¨8lh‡¾o7ôzÌnð<½Ïšü rŒ¨?ž\Ð<ûý£oò¦¢®|šý˜•jJÞ +xÚZYsÜ6~ׯ˜ÊKF)‚‹¼µ²,ÛJÅRVÒî¦çšáHL8ä„äHV~ýv£3²Y¯\ÁÆÕèãënPbÆ៘¥ãÊèYb4‹¸ˆfËÍŸÝAßû#áÆ,ü ÅxÔ››£oß©tf˜‰e<»YÖJOS1»Yý<?ýpòÃÍÙÕñBF|³ãEóù›ó‹·D1ô8½¼xwþþŸW'ljžßœ_^ùêìÝÙÕÙÅéÙñB¤‘€ùÒðÌ„wçߟQëýÕÉÇ'WÇ¿Ü|wtvÓŸe|^Áä÷£Ÿá³û»#ΔI£Ù#¼p&Œ‘³Í‘Ž‹´RžR]ý£_pÔk§†ä§eÊ¢Ø@$#•Hžß–¶à°k&‚%Jìmº‚3.T<[Ä„›´W‰–#•m 7†óF†ÅJ*«“û¢êP0ß¾“ãÁqÊ-qwtsŸƒ$…˜UÑYI/mÞQ£^ãSΛc‘ÎëÚQ«l“ûÍCÞ´n ÷l·ù²øĹÌWDصEuGeDù$¥¶üÙ·?ê*G +Cv1883Q$-‡ÿ¾Ï+fæñjÜ®®ÝeM×R{·}
Í‹Îڼݛ;>‰±2ò#jz"ãÕŠÚYhŽ=}€Ñž«8žgvhÜYIÆ‘c +žSMI9_×
õ,ˬuƒÎ/^QƒŽ€ÓüI¡íD,Iµ8³Þl‹2_-ŠŠ«|íÊ.,28šŠÉÎð9ßzëR€VUpâX«ù)r—·n.ðÕP³»Ï*j_¸YÙCN”>owEÙ!s~«-‹Ûq["¡˜³±G~‘“k® œw!Ó˜©ÿŠ~Ƴ¸¡¹aJGÏá†J˜B&$ÌÀ+„&_M¾aGÊYlí°ã +’
£…šÈZ +Ï€PÑÁHVD¶^”-iú¡X¹!YÕ>’ŒFý¾Ë›Â¯øH@ +è-JXÇnè}W¿Íi;«<ÆB‚AÄ\LaÃ*ÜÁI¬k +:Ë{j.Ë"¯¼ã´yN
ðÌÖ5~ƒ +:µñûº§›ppÎ +k¼Á¼ªßJˈ¶Ò¿Ë·‘0‡Ó>´#Ĥ²®Ûm‰ÚeVàH&‡¡å›:"u“W4D&B¶¥-, +O( ºÅê ºlMš¸œ¦Yþ‘ +kÖÇ‚€+Pü<$S¼Á€ÊÓ]pÀyÀHeÄRÌð¡Crϯ[jÓ:¶6Ù5ê-ZäçîýÖ
X×xÃFàÄmÒŠÏŒö¶ÜB +·—Yû]Ô,ü®W||ýn1_ºÑ‡Ð¡ð7)üǨഉÏË0Ì oîð®WúD"T·ÊC·½:õ!Æ¢W„¢Øy4… %'ØmèŽTð>WfP|ŒïC¹ûèq€ùü!k]ß&ûÕE› =дù‹RéDôjš<ò¢¹ÏÛ¢¥‡ +¬Ì(ŸC8ÍáaážþÎ š–iºPtc0ØøðüzQ,Ý%ãtáíãùÍ×nɨãWWJëù ^#fXyCQtÞM ,Æ^_ÖtíÙÞg£´c¥Ìüˆ;Ñ̘5´ÑìÖæ½²¦¨m^ƒù…Ϧ¥žU… +³^È"Ú½ìÅénpÓP/ŸßÑ9v[?|ÛhZne*EaN[Ó³®àˆZ ÷(¿åO®.})x’ž?\‡<@3ù/ŸÚ£»‹}ªêêi³grdþÈÍŸXÔIåóï4BÅaCC0|€Ä}»¡wÐcwƒçé}V·àOèÐ~dDýþä‚æ¹ï]½¬KêZŽ»RECÉ€°)V +ÐV1%ÑÛXCž1nÌð1ôáþ¦Bö¥`/lÛ9Øxj1Óq:Ùùzôå„«¼]6Åvø‚ +ŒP©ÿŠw˜§af¥T<:âYZ?úÅÃî¯I‡]ÇBåC駘Jc^”w?æeöV +&gÞÀ.µRÁíøÌÑÿYÉð77kUšÊg8çš)œ{®uÁÁQtuëèïl˜aépzö¹Ë«þnášn éå_öj +à¹ÀO3‘8HR@` +YB@ÿ3endstream endobj -1992 0 obj << +1997 0 obj << /Type /Page -/Contents 1993 0 R -/Resources 1991 0 R +/Contents 1998 0 R +/Resources 1996 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1999 0 R -/Annots [ 1995 0 R 1998 0 R ] +/Parent 1995 0 R +/Annots [ 2000 0 R 2003 0 R ] >> endobj -1995 0 obj << +2000 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [251.8681 312.7082 347.399 325.4454] +/Rect [280.2146 312.7082 375.7455 325.4454] /Subtype /Link /A << /S /GoTo /D (root_delegation_only) >> >> endobj -1998 0 obj << +2003 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [284.2769 61.5153 352.9489 73.5749] +/Rect [312.6233 61.5153 381.2953 73.5749] /Subtype /Link /A << /S /GoTo /D (access_control) >> >> endobj -1994 0 obj << -/D [1992 0 R /XYZ 56.6929 794.5015 null] +1999 0 obj << +/D [1997 0 R /XYZ 85.0394 794.5015 null] >> endobj 610 0 obj << -/D [1992 0 R /XYZ 56.6929 267.599 null] +/D [1997 0 R /XYZ 85.0394 267.599 null] >> endobj -1996 0 obj << -/D [1992 0 R /XYZ 56.6929 241.5759 null] +2001 0 obj << +/D [1997 0 R /XYZ 85.0394 241.5759 null] >> endobj 614 0 obj << -/D [1992 0 R /XYZ 56.6929 118.8577 null] +/D [1997 0 R /XYZ 85.0394 118.8577 null] >> endobj -1997 0 obj << -/D [1992 0 R /XYZ 56.6929 93.2529 null] +2002 0 obj << +/D [1997 0 R /XYZ 85.0394 93.2529 null] >> endobj -1991 0 obj << +1996 0 obj << /Font << /F38 1082 0 R /F42 1288 0 R /F22 997 0 R /F21 994 0 R /F64 1435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2003 0 obj << -/Length 3160 +2007 0 obj << +/Length 3138 /Filter /FlateDecode >> stream -xÚµ[[sÛ6~÷¯ð£<³Bq¿<¦“ug›tmwgvÚ>Ðes"‰*IÅqý DèL½“É?ž>4¹Äð\j03üRŽ&ârµ»À—pïÃñ˜eZöQßß_|÷žéKƒŒ¤òò~Ó“¥Öš\Þ¯[üðÏw¿Ü_ß^-©À‰®–BâÅ÷7t=Æýüðéãû›¿Þ¾»R|qóé£ë¾½~}{ýñ‡ë«%Ñ‚ÀóÔK8óÀû›]»Ö‡Ûw?ÿüîöêûŸ.®ïƒ/} fÖ‘?/~û_®ÁíŸ.0bF‹Ëg¸ÀˆC/w\0$8c]ÏöâîâßA`ïnûèTü¸ÐHP./— -þ“Ùc’CS¨n×ZÔNbƒü%wm`§k4OÝí¿Ê}n³"f‹û'«óÆ5€ýÎÊlõTìóº{8ó÷Ÿ‹·ÛåßUTeÎ@>0P -Ä•îÖö?ÞY°‡`¤0Êy#`÷eï~ütóþ¿n2 ðÒÙåu=æÖïŸm8ÿÖ®ÏõXgÖ¾çxp¿ÖM‹Í¬7îqØu“¯]{Ÿí|oW_òÊ+ø\ÂAs¶ 9TÅ.sïlà¬÷¾º—Q»ÔT ‰Àœz? ádpÖ¹]‡í±vlÿâ7¿øŽõÚC]çµ{®kèÚaž‹æi‚bÊ.*ä)§
æG4‹Ë»WöÍ—V‹wÞ¼²j\k—yóò‘-Wdæ¸p@ èño\RÎ90oÂ\(c±1âUÖ -‚¤Á]ÒíÅÈihJû+`P÷kßÓÎèò"ÛNϳÚÝqñ¶"Kç´íðLpb,Z´ÈayÙdÇmãzÛÉPû8&½s!16F#rwóàŠ->ç/®ÑÆ—*Úºïºl¤íï`ÔmGk/@WÙ±ökT<E lu äìxš„Bw[Âf¬¾xÜ;Í0ø/'umãRÄþ䊫Êâ&LØ’¾vˆ¢â”ù\Z¡–[Lçq+Þ õµKŽÐ¨›ãƒkÙYWûšñþT#tƒE=ª òÝ¡yqM›<Î.m\Âz€•H/m}Ôù¥- ¬«§|õyi“UíImf”Ô„öá+W¤MÛõ÷.órȪ¾Œb>L¶Ø·v=–3¶ÇOƦ*V¿ãržO² -V¯6³ÚaÉ!oxL¶_;Lý²o²¯®³Mãö¹¼j²Âk^—;×æ.ƒ×Þ }HÇ -&áT: “;‹¶íSpj¿+ý
»zµ
ïÁ¡Ü×®·®]Ϧí*wîʹ}Þ<—Õçöð@;ŠÙî@1{ñ%«Š`ÀjU¶’Ú -ÓÉ*[Oð0_øõBA8_v—Ò,Þ—ÕÄLSíäáÝzê|Ÿ˜ñ¦|;3¼‚Öj²Za? Ç…3µGÝҽɊíT•E‚!½Õå¼éT!%h—#êmöeêl|¬Woh9”øS/f)C”Ó‘å7'±.›<õ‚uÉ®Ý×îò}[vtiibÐ$˜v‹gÍ”=
Æë|2Â0å
™KF=T"u¨S2Ú}2ìw °.9 &T‹l†ˆÒr¨ûmvw}Æe@’ëóïá©V6$zàdb7ð3îÆrÏíæHô–Š
EKÇ= f‰¥%wsL1ÄaË”$Ytžcè4@õa3Å1ÅEZo -Y“=du¼RŽÑiÍ5¡zÀ1 -)E:ÔÝ~e¸i?UèN„˜iOÍ\—;UÄ'ÝýÒõ>x”?ØäþÙBꦬÜ)]Ìqw0÷ÀöÛ ÜüÙgNlJûaÙ@BÌuÈéÈûýC¤~<£OÁ êÀ] +xÚµ[[sÛ6~÷¯ð£<³Bq¿<¦“ug›tmwgvÚ>Ðmk"‰*IÇqý DèL½ÓI‚Ïøpp909Çð9IC͹2 LÄùjw†Ïà݇3â1Ë´¢¾¿=ûî=ÓçIåùíý@–FXkr~»þm!E /~øôñýÕ‡_¯ß](¾¸½úôñbI^¼¿ú×¥+}¸~÷óÏï®/–D²øáŸï~¹½¼v¯¤—ñýÕÇ]q?'„^_¾¿¼¾üøÃåÅ·?]Þ_†þ̬#žýö>_ƒÛ?aÄŒçÏð€1†žïθ`HpÆúšíÙÍÙ¿ƒÀÁÛîÓ©öãB#A¹„–dˆH(L¶2AŠ +a"Y¬þ¦,]»·¾°.›U½9´›jï*ª{kØÈÂ(×`„#ÍB!ͨòØÍ~ì'ÕaITä§{Y?œ»ÂõÀ〟ñ8•ë<^}³'ñ±IО¾¢ù¦¨CRiÖ”0ÜÓþ£Pò®
P®õ¨Q7-«¤•È(óúj€ˆnŒ@“Ø‚7§›÷c¤\Q¤””'Ç`Ìnxäj†q?ãt*÷õŒSI:×ú5gH"-Ë8©1QaòŒ¢N3. Ž=ÕÖž¹/ë”q +g ”q¥©·ðÇ7ä6R˜Ûé<´{ûñÓíÕûÿN¸É44<é÷?»²iŠ‡Òzàý³çúóÏÕ¹ëÌÚ×<ܯuÓbëûÜ#¶›¦-×®¼/v¾¶)ë/eíüŽ®àƒ ¹Ø„êÍ®p‡½õÞWwµ+@M
’|Á©÷ +Ng½PuØ>5®Tì_\áê_±^»~hš²qß5a +];Ìó¦}œ …Uò¸%ˆ†Çxü?ó°g`Z-Þyóªºu¥]áÍ»+G¶\˜ãššA»ÿö}gä’r¾(yær°1âUÖB˜÷1wÐFNC[Ù_º_ûšn@•ÙUzž5îûˆwxtNÛ +Ï'Æ2¡C;f—ûâiÛºÚnpA¥`È1ékcg*#ã¹½¹ú +Úòå`gw)Íâ}UO3Õœ~iá}ŸîÆ{7,¼‚Îj´Za?Ç‹fjý¬q_l¶S+dX!2˜ZN›Nli×›mñeê4ÁžèR!ÞÀò>¼Àò~êX–2D9Y~uÛé²ÁÇS!˜”LÜqÝžvWî»5G“&:M"ƒç°2k§ì!(ê¯Ó‘3#d.
P™HÔ£Ž‘h÷u¬Ø@¸Xç÷ Å_0·ùk~›sÑ¡ýã@’ëÓgðTh°†ñÈÇÜUŸq7•{jG’à +a]Ñ™f¨CRiÙ}SqNò€N3¬;¨9ܧ[¸.í©²z(U3<Õ‘Þ·¤—·>Ù&CÄ‘<Ã/c‰dè`–^žw5‘ú
ä’ˆKïè +ƒý;î‡DágŸJ-T¹ü”ýÝ·e}pLwñ…êEá_îǦµ]©k# +ǎꪡ#ÿá®ßtéb[×Ý—±…æé®)ÿ|5î9Xéqá.)<Š¦ëãîExx²™ºÞŒ*oŽ}WÆùZâCϨթKRï¼>þVA¸Û±ò1²ÇÊ£fÑg€Oü¹ÈþØÄà‚¾ÁÿöŸ¢ÿN+Ä´¦ÓÃtd“m—ÁŸÕ!XøË¿Xà˯m¹_÷-uótðpàá?Ý’²n œºU\ +¶ ˜§Á
#Ê$h…ÿx{ý«endstream endobj -2002 0 obj << +2006 0 obj << /Type /Page -/Contents 2003 0 R -/Resources 2001 0 R +/Contents 2007 0 R +/Resources 2005 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1999 0 R -/Annots [ 2005 0 R 2006 0 R 2007 0 R 2008 0 R 2009 0 R 2010 0 R 2011 0 R 2012 0 R 2013 0 R 2014 0 R 2015 0 R 2016 0 R 2017 0 R 2018 0 R 2019 0 R 2020 0 R ] +/Parent 1995 0 R +/Annots [ 2009 0 R 2010 0 R 2011 0 R 2012 0 R 2013 0 R 2014 0 R 2015 0 R 2016 0 R 2017 0 R 2018 0 R 2019 0 R 2020 0 R 2021 0 R 2022 0 R 2023 0 R 2024 0 R ] >> endobj -2005 0 obj << +2009 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [310.4119 737.5313 379.0839 749.5909] +/Rect [282.0654 737.5313 350.7374 749.5909] /Subtype /Link /A << /S /GoTo /D (access_control) >> >> endobj -2006 0 obj << +2010 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [340.2996 707.2808 408.9716 719.3404] +/Rect [311.9531 707.2808 380.6251 719.3404] /Subtype /Link /A << /S /GoTo /D (access_control) >> >> endobj -2007 0 obj << +2011 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [328.1051 677.0302 396.7771 689.0899] +/Rect [299.7586 677.0302 368.4306 689.0899] /Subtype /Link /A << /S /GoTo /D (access_control) >> >> endobj -2008 0 obj << +2012 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [320.3548 646.7797 389.0268 658.8394] +/Rect [292.0084 646.7797 360.6804 658.8394] /Subtype /Link /A << /S /GoTo /D (access_control) >> >> endobj -2009 0 obj << +2013 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [359.1386 616.5292 427.8106 628.5889] +/Rect [330.7921 616.5292 399.4641 628.5889] /Subtype /Link /A << /S /GoTo /D (dynamic_update_policies) >> >> endobj -2010 0 obj << +2014 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [429.9426 586.2787 498.6146 598.3384] +/Rect [401.5962 586.2787 470.2682 598.3384] /Subtype /Link /A << /S /GoTo /D (access_control) >> >> endobj -2011 0 obj << +2015 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [286.0435 399.8859 354.7155 411.9455] +/Rect [257.6971 399.8859 326.3691 411.9455] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2012 0 obj << +2016 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [287.1393 369.6354 355.8113 381.695] +/Rect [258.7928 369.6354 327.4648 381.695] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2013 0 obj << +2017 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [339.144 339.3849 407.816 351.4445] +/Rect [310.7975 339.3849 379.4695 351.4445] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2014 0 obj << +2018 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [336.952 309.1343 405.624 321.194] +/Rect [308.6055 309.1343 377.2775 321.194] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2015 0 obj << +2019 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [322.5463 278.8838 391.2183 290.9435] +/Rect [294.1999 278.8838 362.8719 290.9435] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2016 0 obj << +2020 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [331.4327 248.6333 400.1047 260.693] +/Rect [303.0862 248.6333 371.7582 260.693] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2017 0 obj << +2021 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [361.2812 218.3828 429.9532 230.4425] +/Rect [332.9347 218.3828 401.6067 230.4425] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2018 0 obj << +2022 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [387.8612 188.1323 449.0612 200.192] +/Rect [359.5147 188.1323 420.7148 200.192] /Subtype /Link /A << /S /GoTo /D (options) >> >> endobj -2019 0 obj << +2023 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [414.4213 157.8818 483.0933 169.9414] +/Rect [386.0748 157.8818 454.7468 169.9414] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2020 0 obj << +2024 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [330.3165 127.6313 398.9885 139.6909] +/Rect [301.97 127.6313 370.642 139.6909] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2004 0 obj << -/D [2002 0 R /XYZ 85.0394 794.5015 null] +2008 0 obj << +/D [2006 0 R /XYZ 56.6929 794.5015 null] >> endobj -2001 0 obj << +2005 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2023 0 obj << -/Length 3149 +2027 0 obj << +/Length 3154 /Filter /FlateDecode >> stream -xÚµ[[sÛ6~÷¯Ðô¥òL… -I)”C}§û£Þ±Ð³úö¯k[.“&ÿèÄçåfŸí«ã‹ýy¼Är¥›û"Ù>mûÓkš4É}Rg0h4`Anú‹Ú«2/§j´¢«"àcÉWŒ‘bŒ›ä)³Ãš1§}V652ŸD€•ˆ(f½õ¾yÌŽ –ÆëIqÒ(¥îÃÌ6ªºÎï‹Ì6å;[›¤iÞäU™¶þ¬«nMàˆ£ëí1ùèªï³¬´uE^>e©Í˦²µÍ£ÖÙ¾×$5LÆëÛjŸµtŒ“ý¡pæ¶B϶»–¼Ü§TËÓ¿žóæÑ–Œ<ói^7Çüþ¤-²5P¶…²*³‰.½¶{÷Í‹ëÍR¢ #1_q)Ï°ß‚6]”%?žÈ-J{#ÍaC±’#&€çA±4!¶
-bŽ"=±·Y6ôgVoùáìÎjçB«kƒ("±t¡uV~ “BœrÈÎØG -`ø#.ûrßÒPÊÖû,)óòaw*Ü,¿³õnŽgŽèºé1©mUbÿtÖ-"b˜oëƬb“Æ“ ð
‰ˆûåœêÑø@&ØÌšÇÊÜ&§:s²Z‹ªz‚)Éê]ÙÆ]’»¨$0bŠñ *w^R¡Ãñ< ËØÅ7TÓ6AãCÖ4í'ee+“²~¶‹!5_??æÅ´0âRRg¤Hr¬›)/˜Õ·÷Âsu*œü¤(ªg§“)«ã^¯ñt•w‡±²u÷™s† °‹áñ`-z̳tžý1A„S±Àþ*À~ê°_ûw˜"XçD:B²[Ô„ð^N[c©c +ý×Ú¤_,¬“`¤+X—ó4sµ® 9mKÕΊêÞxêúDîå&$hÌ݇&‘Do LE}ȶ¹y¯ƒYœ"±?ÝôÒÊ6»ÉDaW%ì¢aB.ÏÀWŠ~b3t€ Ḱl,Ý\ӱ̒½3#¥írPƒUåçóR¼LmçôbÓ,<§6ÖMP€`ð2ŠPÄäÂú¼‹ -ðÒ£ÌÚõÓÎh³1;¥anæˆ2ªÂÒ=hBz˜F´H_ü.1K¬˜ñ€.ņ!ºÆnjuIÚM_ýÓpj÷bëÖ2Ùg¶J3©Ó…#ä¬Ä“5¶¨lˇˆET§#졈}eD -׫u]™¾€€|ë”=ÀþÒe¼¤L²®!l¯ÿûæÙ¢Û¤s{úùd3ÆÚVXöpÏ[ÙvµÁŠJ®OÛfø5^W™0:7áµ3Ïâ¼iºÁlµ€Ã!+óáçBb·¨ìaLâLùøC>®\mÏú?ÊbqÅiÄؘ©±ãŒ±Û´¹³–ÌÆL3$• á˜é¢æc¦Eõb¦Ù6Îä¾1[P¢EMhÑOêIÂj´±cÓË"eZmÍñŠ_pW=¯?8ŸÂI½ÀÑúº%b:UóžÆ6P|aÖ좞ö(Ã"GÜáñ/@ Êõ ¹½5#¬Ò…Šûr_¹E‡ôA$IçôN¶õmmZ8ÒÖðYb»‚¿n¶M³ÜGÌm%î÷jfý¹oÕ\Ÿ“aÎŒlúÕ±Pª€s1ŒÀ'~[ˆ¦£V¤J£Ôf =KʸSÁîÞMïu·É½?þò[ÓÁ¾H Îc¯Ã>©õêtòŒE'{'úR0÷¯i]èc½ {¤gêºÍô•© (ŽæÙhžÈdü´q”ÙÔùçqº æÄ°tKïŸQH¢'þ뜆M1.$’ŒŠÙs1 -CÌ]C[í¶yÔëì¡X4RV/‚Ç,èù´ Æ°¯à>›Æa±¦uPªy”&³ÚÙen–Ê÷ÙfâÜv§L†õp˜ 5zœc1Ži_¯Gº9k†™¢BÈÇ#„î›bŸÇ/˜?îwŽb¨’Þ“HŠIxZÔ‚"ãÞÂÄaãþµ˜ -²
–,ˆKµïº¨yƵ¨ùQšqƒ -û¼E-)2ê-H/˜³¢2Ì®hž\t}c™Œo×aÚgŠÈ è4–Ý?∠Ø4u…ÙthÂ@²Î¡*âó<ƒÁBÄ]+C4óð°½£^gIÆÆ«IË|Xn†ÜÞ‚ÂjŒú -SŒëÛ<±Áº¨ +xÚµ[[sÛ6~÷¯Ðô¥òL…WiêtÝÙ&]ÇÝÝ™¶´DÙl(R+Rq_¿Wñ +¶Ót2ÀGœ¾spcð*x%9J¨b«T1ÄÌWÛÃU²z„¶ï®°Ãl<hÓE}sõõ*W +)AÄê~ßéK¢DJ¼ºßý¼~ýW?ÞßÜ]oOÖ]o¸HÖßܾýÖÖ(ûóúÝÛ7·ßýt÷ê:eëûÛwomõÝÍ››»›·¯o®7Xrï×ÃÌonÿycKßݽúá‡Ww׿ÞusléÚ‹ª
ùßÕÏ¿&«˜ýýU‚¨’|õ ÂJ‘ÕáŠqŠ8£Ô×”Wï¯þ:ì´šW§üÇ©D\’t„tˆ(3±J¹B‚jxÿ”ƒE¯wù>;—}(mÙ×o˜ê¼/¢8IA¨~ñ‹ÓCû…Eõ¤…¤L•C}¥û£~D gõå5^7¶\emñщ/ªÍ!?Ô§ûxºÆrï6e¶ý°ií£×4k³‡¬Éa¬h’‚…é/
Vç^NÝjEWEÀÇR¬6#Å91*¶Ù‡ÜjfÄ<žyÕ6ȼ’ +$R¾©¿é¾0fë¸_Õ©®ÛÍg‰€¤H{HPzô3Æ°·h r%#l!P»¨ù@
(-Ñr~7r?Áˆ§XÅÔ„ä¥ÁFÎa5×ýÎð†R¾>äYUTûséfú½wó<w\×MOYc«2ûÓ‰Y·`0ç6Y0“Ƴ P¥‰ðK:?ÚÃ!¢Hâ;Y÷X™ÛìÜäNVP±¬ë0'Y½kÛ¸Ï +˜Da„)ƃÀÜ·zYER‘/à]Æ.Ä¡rhœn´‰ó¶
¯TµÌªæÙ.ˆtâHÅúù©(§]€Ö:È’äÔ´S^0+pï…çú\:ùYYÖÏN'[SÕ§ƒ^çé*ïc[mër猔ÀNF°ÁzôTä»ù +<Îî¶÷{53~Ý·jºÏÉ0ÇG6 ©RýœcØòb¿*CÓ +.Q8a£@µ‰BÏV†5»‹Ó»ÞmöàOÂü&µ¿Cb)‚ùîY£©“g-ê2ëë,8Ñ—B}½9M©Oø&ìᤩG¹mõ›)ìß[˜o; y.{5ò÷£Ì¦)>3†Àˆ%„EÅÐX~ÿ¼B *©ì)ð×ÎÅd«±é©„å*MgOÈ(¥xBº–F¶Ý·yÔëìñX2Tˆ;0Ž¼ÇÄ•öÝpSF!û'|hT„iåÇÈ,yö¹›§ŠC¾™: +ñTðžÙ1úyü‚Æýþq +Â*…,
„-¨1ê+ÎBN£j„P„ƒ4Ÿ*&)ˆ‘P"®G +|žuÛÈŒl˜0DBp„jBL¨z–F¹æð6ûýã)
ööBŸDPKŠŒz‹ób˜Y—; ÛH‹;ž>ä3&¼•@’
±Ôþ¹2CR*Ù{«=2¬%ù•?e6g¨PNì¡üœ¹Ê¢jÍÉ«~âî:ªÝ]˜»¥göžœiëJ}Y¥ËîÂÞÒ›ªðúÇüd.h·ÙE¤¹qtS<VÙÆ/3 ŽIgÝëôóåêŠØ{;ýûíÛ÷ïo^Û²îÃèL¬úl¿5"æã†[º\}A—íü{ö²¥>ا]Ñ|0Ÿ§bïC¨T®öìÕ*±î_.Êd¥'¾áôq Åîvû7uÝa‡k–¾iŠÈâ–Ð<}=Èaoš†i‹íøÃØ”}“@cñ=s=;Àžª+ÿv?ññ™‚°¦òÏ}z¦¿3¶®TÂlkÊæ“3SúçG×î
Î\SQíõ!Ž¼J8f+áÃIٯ، ©?UÙ>ÙÚmæÞxp²wçÃ1ßYº§É$|0н¤œøÚ%EL +¿€¸ŒLç‚p¸äPˆñðÆ.×ÀjxýX\sù¤ endobj -2022 0 obj << +2026 0 obj << /Type /Page -/Contents 2023 0 R -/Resources 2021 0 R +/Contents 2027 0 R +/Resources 2025 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1999 0 R -/Annots [ 2025 0 R 2026 0 R 2027 0 R 2028 0 R 2029 0 R 2030 0 R 2031 0 R 2032 0 R 2033 0 R 2034 0 R ] +/Parent 1995 0 R +/Annots [ 2029 0 R 2030 0 R 2031 0 R 2032 0 R 2033 0 R 2034 0 R 2035 0 R 2036 0 R 2037 0 R 2038 0 R ] >> endobj -2025 0 obj << +2029 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [231.137 683.3704 299.809 695.4301] +/Rect [259.4835 683.3704 328.1555 695.4301] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2026 0 obj << +2030 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [143.8055 623.0288 239.3365 634.8294] +/Rect [172.152 623.0288 267.6829 634.8294] /Subtype /Link /A << /S /GoTo /D (root_delegation_only) >> >> endobj -2027 0 obj << +2031 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [324.1075 369.6354 397.7608 381.695] +/Rect [352.4539 369.6354 426.1073 381.695] /Subtype /Link /A << /S /GoTo /D (server_resource_limits) >> >> endobj -2028 0 obj << +2032 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [359.1555 339.3849 427.8275 351.4445] +/Rect [387.5019 339.3849 456.1739 351.4445] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -2029 0 obj << +2033 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [353.6164 309.1343 422.2884 321.194] +/Rect [381.9629 309.1343 450.6349 321.194] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -2030 0 obj << +2034 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [370.2338 278.8838 438.9058 290.9435] +/Rect [398.5803 278.8838 467.2523 290.9435] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -2031 0 obj << +2035 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [364.6948 248.6333 433.3668 260.693] +/Rect [393.0412 248.6333 461.7132 260.693] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -2032 0 obj << +2036 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [226.7331 218.3828 295.4051 230.4425] +/Rect [255.0796 218.3828 323.7516 230.4425] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2033 0 obj << +2037 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [283.1811 188.1323 356.8344 200.192] +/Rect [311.5276 188.1323 385.1809 200.192] /Subtype /Link /A << /S /GoTo /D (tuning) >> >> endobj -2034 0 obj << +2038 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [287.6042 157.8818 356.2762 169.9414] +/Rect [315.9507 157.8818 384.6227 169.9414] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2024 0 obj << -/D [2022 0 R /XYZ 56.6929 794.5015 null] +2028 0 obj << +/D [2026 0 R /XYZ 85.0394 794.5015 null] >> endobj -2021 0 obj << +2025 0 obj << /Font << /F38 1082 0 R /F22 997 0 R /F49 1308 0 R /F21 994 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2037 0 obj << -/Length 2852 +2041 0 obj << +/Length 2849 /Filter /FlateDecode >> stream -xÚÅZ[sÛ6~÷¯Ð£<S¡¸ƒÈ›Û:Ýt¶i×ñîKÓZ¢mîJ¤+Jv²¿~ÏÁ…âM 3Mg“ñ -m¬úÅoMZhã½aÕÚøj +xÚÅZKsÜ6¾ëWÌqTåAð&á›âÈ^§6vVÖî%Κ¡$îÎÊ#Yûë·_Ê¥6)@ Ùèn|Ýø@
[PøŸ-”&Úp³HŒ$Š2µXïÎèâæ>œ1/³ +B«®Ô×g?¼é£¹^\ßvt¥„¦)[\o~[jÂÉ9h ËwŸ?½ÿøáŸWç‰\^üüé|Å]¾ÿø÷K×ûpuñË/Wç+–*¶|÷·‹_¯/¯Ü”ö:~üøé'7b\sBéÕåûË«ËOï.Ï¿þùìòºõ¥ë/£ùãì·ßébnÿ|F‰0©Z<Á%̾ØI%ˆ’B„‘íÙ—³´ +;³öÕ©øI•Å¥†Hr’*ˆÖd”I¡D2¢ejÚ(s6å …Q®óýc¾?gér•m6û¼®ózè:°@BÓEWÿÈŠVjÂÞ1ƒ M–õìø\nŸaRµÜåYY”w·‡->ëåmµwu“5ÅzU7‡7óߪÌkØ_Éôòú¾¨˜kõ2sÛ¢nÜ@uëF>þêZôw>[‘¦rSO÷ÅúÞ
ýqÈ÷…‹ DZ¦¸g1JqÂûê°Ý€´L–7¹kë¼ÄU¥^¥qKûºxÌ»Cuµ=4EåÅœ·Ðiîs§ +èUÇžŠíÖõŠ²É÷e¶…À£s4xåÒo]•_)åwg¥Ëgt²‡ü›ë}úâÇ'ÜSÑÜ{™º®ÖEÖä÷|·=ø·/\c
ÅGø/(ýÆ$ĤBZcÞ£(3j™ËvÛü
ˆSˆí-ŽÊåWÎ¥Ÿ!ëj‡N€íÀ™ÍülæÄ×9[¶Ã1¾ë9¿°Ç'Šóo—^§”½Ýܤoß2.d?¦)œd'K‰V&…Wbi9È¥$!JCíp/¹m~3تÛj»ž £Ú‡²@€Þ—ì +Žù ã2Áx-ט +’JL…‰h:’<Ù¾÷*‡:T»‘Ì5Xêž]×ì`.===¾$£CÈ0øÞ=´ë]ýäÚ˜µ‹K¡å´I‹Ø+Ê¢Áš1åÍ°„DG%³«ôŠ°ï…"î2£rm'ýk?„ŠÔÇqàªDšÈø¡Ü:}&¡Aî;¬c¦I*´‰.ß +×ïÆœ‘”¥¼g€;‹°¦îY,t€LôÎbœ g±†=tg1Žº–Z€Aã)œÀ³G6Õ.êˆc!1`ØMû! +Ý€ÝÔÖQÑ=×m1@õ•k‘zXó6«)€÷ù×ÀCòrâ¬ÐŒp5ו}´e3Qׄ \ÊV*Ï7^«M +¸&$:_:B§¯AȪ¸[=fÛbS4Ï+›ð4ºÈ„HÉ’¨
Ð؈Þ}@q"áäîñ%~ýÙäõz_<OÂêv¢hš„P.M¨™§\X`€µ +#ý[E9ôV(AÒ¶ºã‡›Ûß-\çªãw+÷{¤Õ9¾>ºˆŸ£áNÅÔÐ ÉQ"Ž€ 7b¨ m8
8*35ƒ¸ŽTrA*lüÃ{ߪ¬6SŸƒSBEÂã&´R6ô'¡,U}#þæÒæF®ÖOaãE‹Ò ¼ E¨Ö¬çmpA~Æï±Þï€Õ$ößVjÆ’±¶(ð€b“ÔP^Wê4ðZ©ána›5‡ýúDíh¥&é¡xšB÷-y}ôõýAIÔiZÓ´èyC`Ÿñ}¬÷;(5Q*añ]h¥f,k‹#PJÜ\1ƒÀŽTAj¸cÍóC>®|”¤XvÔ‚Vj„þ¤\*z6¼>ö‚'ÿ@$‹>N‰NáúÐõ"» ?ãöXïËa7t"$5ñ
h¥æ,i‹ÃŽAņcmv©ì‚”ýÊ°ÏÊúÖ_(ëê°_‘Ç%QI2cD+5aEÿ«¯|Xñ:À;áË{”ˆDEHM 0VÖs7†½ ?ãøXï)ì%“U˜kßVjΑ¶(ô€Šô4 +½®ÔièµR'¶kõ¨§ŸdjÆŽVjÂ!ã&éò—¡Ï»3d}’p&d”õ¥\°žÇ3¬ÏÊÏø>Öûb +¡‚Ò%ᆵ¥•š0¦ÿ±%%Ž¤¾5)§«¡1x*F¨„kèƒüL endobj -2036 0 obj << +2040 0 obj << /Type /Page -/Contents 2037 0 R -/Resources 2035 0 R +/Contents 2041 0 R +/Resources 2039 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1999 0 R -/Annots [ 2039 0 R 2040 0 R 2041 0 R 2042 0 R 2043 0 R 2044 0 R 2045 0 R 2046 0 R 2047 0 R 2048 0 R ] +/Parent 1995 0 R +/Annots [ 2043 0 R 2044 0 R 2045 0 R 2046 0 R 2047 0 R 2048 0 R 2049 0 R 2050 0 R 2051 0 R 2052 0 R ] >> endobj -2039 0 obj << +2043 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [381.2254 330.9624 454.8788 343.022] +/Rect [352.879 330.9624 426.5323 343.022] /Subtype /Link /A << /S /GoTo /D (tuning) >> >> endobj -2040 0 obj << +2044 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [362.4163 301.0238 436.0696 313.0834] +/Rect [334.0699 301.0238 407.7232 313.0834] /Subtype /Link /A << /S /GoTo /D (tuning) >> >> endobj -2041 0 obj << +2045 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [402.2465 271.0852 475.8998 283.1449] +/Rect [373.9 271.0852 447.5533 283.1449] /Subtype /Link /A << /S /GoTo /D (tuning) >> >> endobj -2042 0 obj << +2046 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [348.0303 241.1467 421.6837 253.2063] +/Rect [319.6839 241.1467 393.3372 253.2063] /Subtype /Link /A << /S /GoTo /D (tuning) >> >> endobj -2043 0 obj << +2047 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [335.4973 211.2081 404.1693 223.2677] +/Rect [307.1508 211.2081 375.8228 223.2677] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -2044 0 obj << +2048 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [363.1733 181.2695 431.8453 193.3292] +/Rect [334.8268 181.2695 403.4988 193.3292] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -2045 0 obj << +2049 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [365.365 151.331 434.037 163.3906] +/Rect [337.0185 151.331 405.6905 163.3906] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -2046 0 obj << +2050 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [393.041 121.3924 461.713 133.4521] +/Rect [364.6945 121.3924 433.3665 133.4521] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -2047 0 obj << +2051 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [402.9837 91.4538 471.6557 103.5135] +/Rect [374.6372 91.4538 443.3092 103.5135] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -2048 0 obj << +2052 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [320.374 61.5153 389.046 73.5749] +/Rect [292.0276 61.5153 360.6996 73.5749] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -2038 0 obj << -/D [2036 0 R /XYZ 85.0394 794.5015 null] +2042 0 obj << +/D [2040 0 R /XYZ 56.6929 794.5015 null] >> endobj -2035 0 obj << +2039 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2051 0 obj << -/Length 3436 +2055 0 obj << +/Length 3421 /Filter /FlateDecode >> stream -xÚZ_sã¶÷§Ð[ä™@ -BÓtZÉŒ¤ŒM*(\•ÌÙ”’=•QrUwåÃëªÍºX=«¡Ô,¡DK±è/=bÀM0À{°DÈ$æàcQ æ»lŠvÝ”O]YW8Q?¶âd)¡\dÀÁ)9Û§ ¿d©{ ¬†¢&œ‚‚2ÉŠ7›Çn{Rú3b×E±×G«3EÒK:%Iš%óêTçf!#Gwî”ÒŒpƒyŸëQÍøœ§2;îËjÕMÑnW]¹/¾D%ìóÏ“Ó–ºk^Ç´~r¤6ň¢JÌ‹¨&dˆÔ¦‘b/º-˜ۚAä¶fbìb¶dŠéˆ±ôgX¯¹˜aƹ“#s'œp.ô{{ª3œŒW›õ1•BÂÏôëSö±@eÃûóCsÉôrõÐÔûÕ¦|0ESTë¢%9É!¹Šdž@5ÁO”æ$d&)UÌõ—DIô—D‰Ø_ÌÉ4Ç(#2>kkÀK–Ê€å“9Om&X$ù\Îóôgt0^7rH#wÈQŒ$)ÑLêycª3ŒŒWC\))–¿RIoê.&ïÐ2ÆDcK¬ð4Î8 - -¥. Oc„ç©Îp"¨&Y^qâ=Ú–¤€ËߨŠ@ŽÑº=UØ„´/NêBR¥¸fóºTgX¯fX1ûôMhFs=HwÖÓR>“" L§qŠ€'N¥I¸Ôü|Š” -{3tæàÖs1•5™Òk(+ªOD‹€³„©·Y$eÙ[,¢ù‹ˆÐ¤C‹¨`ÕSB°B à"£bCñø“ÎNf0´“™ÃÃVSíà{–€ôPŸáœ¯•=Ð%wЇ/ëõúÐà°¬Ü-¿ûás -»²ÂnŠ‰øaRçJ¥ìÌþj‚¸KlÑBÌÀµK/"îV˜Ñùòëä[–Vçúè¡U—.»Þï`êå¯P"ßöOx±ªöXUƒï£U’x}ØÛ:™É/MpÛ½[p=‚CšS0é€#Ì—®÷‘r -ÓÄ‹¥žë›{ú3ò×}s©e‰ž7D :ÇÈhµ“¯«žÓóIRÓÿªrM -¾Ô8ï ÑT¹éã–T-^ؾü> -‡Þ¹ðítB–Î!³ÙWém«ñc3ʾû¯^§@qç7ÙwÓ¤?&‹Pw +xÚÛrã¶õÝ_¡·È3‹+ ¦O›7ÝL³Iw¦Ó$´D[ìJ¤CRö:_ßsp +•0kÌãë@Íh‡ÂE¹©óû:oö›¶8æ_ŽÙ§ÉiÝÖ/cX?9’¤´0ó$¨ zò“O¥}"¬ÚòÔ©-zj‹cSp¤fFô›Q± +P˜Œw›Õ±8—ŸšëB]Ö± +®‡+yÙçAÈ• +\w—¤9Ÿçáx0Þ·§H®WÈ‘Ä09/Œ +Èa(U@]µŸ0Cc¢8Nµ3ÃǼ>mCk€;r<ƒ™»œ~O»¬µÂ˃ڻ×äFqt:^è-¶iŠ‡Ò¯|Þç%°º¦§°XÓ=rý¨Ô4'ï惇ÚVÇc%}¯Kã'ÔåÎ !ðXu£ªŠŒàžH ¨ÝTðQì0ebgÃFUnT³X{Ù$cÙÁACŠ²…ÿ)ñ`’3~Ns¶‡ÓÎR‰z:tW=ÙúA$ë»SKoÉ"ìÈ«if¥aWìþwjÚþ>Ü’û…›Ê,i‚•HÀ§'ë8…X7Û}¾;<*Ùv[Y±ï¬u!D[õŽvë/Ü\qpǼÍ@Ç2zÂl¦ÉÇÅýPàʵ€"¥áá7ݾy´/I"Û +"»fà.n¦%bÆE@"¸Iú.V\r:ÚÈeÙàê÷ÝfàØš‰ã%‡‚"˜8îµ›Jv! +JÚ–“e‰‚9øta2äô‰£Ê¢ãø +ûó>·’JI•p +\=P8Ž=¸°p€Ù$Ÿí^hâÁ=·iÛ×%*7“ÿ~ò[Ú¤F¸÷Dø†ØqòwkÞþž÷…וmÖxÅhû +ÒÇÇË_èÔó‚^ôí"…Ô}».Ôeß ¨p(Jj§ ÁÚÄ)ÔJñÂùj~›XE‰N¼uîEõû‘€¬Ñ)óËäÍ
‡!EÇyH£C³.YCözw Ó¬BÝŽôŠ²Uã³UÊObA0ñ±¯1yÂÉŒÑ ¸ãžÏM¸À©í)˜t©#Ì®û‘`ƒhQgesŸ×ç®eLŠ&ÁŒ¾Æ육Âܹ<Ã7»¢ùHó”ÚÃTFϘzÊëÆ]/q¢*fþ¾{DcÒ]»r¦|gi5®>Ã×®ŸOiR8mÂhÎw=–ª²½×µ}Mo9w9déEuªÙ`Ñ dÖãâ×eÂþxõà¼u f,ÈCÙ`§›ó5Uß~°YmÌüéjâøQ´LïŸÿç®Y|¾<¤b˜‚òˆ+Æ/ß²pÈ€„ìÑ9×Asàv½ôY_²(lsèyƨ%<F»Í&â‚AEŸ¦KªÖšQ5u¾ÅÄ÷o q<R¨êi\º$ ˜™E"@M`!M”˜‡ê¡ñ×\ì] fx¯À#–èÅÓIdRÙ#w¶uKàtv½¨x£Evõ’ endobj -2050 0 obj << +2054 0 obj << /Type /Page -/Contents 2051 0 R -/Resources 2049 0 R +/Contents 2055 0 R +/Resources 2053 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1999 0 R -/Annots [ 2053 0 R 2054 0 R 2055 0 R 2056 0 R 2057 0 R 2058 0 R 2059 0 R 2060 0 R 2061 0 R ] +/Parent 1995 0 R +/Annots [ 2057 0 R 2058 0 R 2059 0 R 2060 0 R 2061 0 R 2062 0 R 2063 0 R 2064 0 R 2065 0 R ] >> endobj -2053 0 obj << +2057 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [319.7036 736.6188 388.3756 748.6785] +/Rect [348.05 736.6188 416.722 748.6785] /Subtype /Link /A << /S /GoTo /D (zone_transfers) >> >> endobj -2054 0 obj << +2058 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [460.1655 705.4559 533.2211 717.5155] +/Rect [488.512 705.4559 561.5676 717.5155] /Subtype /Link /A << /S /GoTo /D (tuning) >> >> endobj -2055 0 obj << +2059 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.9978 674.2929 438.8121 686.3526] +/Rect [397.3443 674.2929 467.1586 686.3526] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2056 0 obj << +2060 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [293.1435 631.1748 354.3435 643.2345] +/Rect [321.49 631.1748 382.69 643.2345] /Subtype /Link /A << /S /GoTo /D (options) >> >> endobj -2057 0 obj << +2061 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [329.3035 525.7308 407.7186 537.7905] +/Rect [357.6499 525.7308 436.0651 537.7905] /Subtype /Link /A << /S /GoTo /D (man.dnssec-keygen) >> >> endobj -2058 0 obj << +2062 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [427.0093 525.7308 505.4243 537.7905] +/Rect [455.3558 525.7308 533.7708 537.7905] /Subtype /Link /A << /S /GoTo /D (man.dnssec-settime) >> >> endobj -2059 0 obj << +2063 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [288.6803 231.1567 357.3523 243.2163] +/Rect [317.0267 231.1567 385.6987 243.2163] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2060 0 obj << +2064 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [328.5503 199.9937 402.2036 212.0534] +/Rect [356.8967 199.9937 430.5501 212.0534] /Subtype /Link /A << /S /GoTo /D (tuning) >> >> endobj -2061 0 obj << +2065 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [403.748 168.8308 472.42 180.8904] +/Rect [432.0945 168.8308 500.7665 180.8904] /Subtype /Link /A << /S /GoTo /D (boolean_options) >> >> endobj -2052 0 obj << -/D [2050 0 R /XYZ 56.6929 794.5015 null] +2056 0 obj << +/D [2054 0 R /XYZ 85.0394 794.5015 null] >> endobj 618 0 obj << -/D [2050 0 R /XYZ 56.6929 151.6518 null] +/D [2054 0 R /XYZ 85.0394 151.6518 null] >> endobj 1427 0 obj << -/D [2050 0 R /XYZ 56.6929 124.9969 null] +/D [2054 0 R /XYZ 85.0394 124.9969 null] >> endobj -2049 0 obj << +2053 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F49 1308 0 R /F64 1435 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2064 0 obj << -/Length 3743 +2068 0 obj << +/Length 3731 /Filter /FlateDecode >> stream -xÚµ]sܶñ]¿BÓ—žft4A -à‹ÓÌGÎ×f‹wŽP0ÐE%AJEô9Î -:Ψ ëØ
?lˆðÞ1pèæ¬ÑQ¢”—Dô{ÅmÒé‘7‡Nq -WHòú¶Ý‚:¬©ë1}ýÝÅó廯/bЖ¤‹ë]?àèJjÞçõ®äƒ³Côý¿®Ë¹ŠUÃCy•Ykoe™‡K šocÆ@ˆÛS50ò¥Š2+fP:>"´q¤Ak¼ÿ™µ
n^uˆØ:Gc*H1CwS½ôÕ}Y?`8±B -¦ZœO
€»¯êò–’*moš/ÍégÌ°aé]ÎëºÝj¬QúórQŽk™— -ÅÌÚé‘V“R¤PÒ›º~µYve}3gE$ás€y\ dcÚOIûVEf¢³Kšy×¾/ïé#½7EÎN28ÌìxÊâg<qôýp’‰¼ûàSI)Ò©@B0Š˜+»Þu}p‡Ö¬æ/ÆîhO¶³P4m ,Ë9M%Ù)8@rêB@R¬^x¥àhàu»]çhˆÐIœÓ:vëHÆT]&›Üì
qòì?©ïͨ5e_AðVP½ ’EÑ™ƒ¸+³Á}b;pŸhxÀ¸¸‚–Ë9fûöòÔ*?øH -{Îã×æ¹E"Þ§ -DGSŸ‚Ë#¿Eáá>ÿ`·3q{©L¤Sù‹3©ä~²Åù¾Ù™§÷Hšõ”K0=šd=AäT¾÷qÖE㬠ղžüòC_n›¼>zÎt‡ö¾÷³)¬¡/³ÙS¾ø‘ÊF&6{_üü¶Už¬3±:J‹7ýŠ)ªåp¨¥ -j!µ««!§Dlœð¦á×íä¸Ëï_í×ñ%D²Mᣛw»Í¦Ý²(üÝÕÝé)Á—ÉCî_‘ó¦'þßJÈendstream +xÚµksܶñ»~…&_zšÑÑÄ‹ +<L£©ÂEI"
àÇ9»MžuÅrÓTåêg'&Š§xöªÊvmlNÓEVUÍû˜Ç‹u³=nÁ#?ű¬‹åí6+ë"'ت©;?§©ÐÜ[Züþ.ëFÄ´ŒŒÒoVäp—2U‹Zؼ®¹¡ïöÌ-v €sœ.Š¬ŠÝéRˆ(5Fú”Hqjí¦8‹U‰´ùùÙRÅ PR„MqN‘î°¥b—ݧàŒuÇ(†åE]ÛÛuÙ¶eS·4xC³`v]$ +Wï^½$EõGƒ/ +Š§ÝÓÕÔj!xö¿èþy³é@öðøV,²:? ,Y©¼.²º¬oovõIVq k;ϘŽ¸½Ø$bñÃ]Q“® ë"›t*ŽGŽ¶ÊÆŸ`€ReÂ춃Ék¸<¢„äÍÙņÔÂÀ9)I¹7#£.˜!¼ƒÛÝ6CÆ°Ø’eÚR—ŽíŽÝŒÔqN{»´d™!^E"Iæi÷j
»\ÄBåàœŠûè`ÈsÐy£n\$c¡>AZR›ÎÐee«Å‡å¼%8Û5hN¾!XF]6_’Š+š?Ǫ iYžó¹ZšPòuÓ±<I¥è2'òD‹ªâ>CvL”Ï׋¶‹ùòcºü80s™ä¡òF¦iä´Og¤³RóìÁK8ôj¥÷.˜Ç&¾íû²[ÝyC +RÀО#)]ºò¾¨0–ŠX!€—èdý`dn
ä %ûC&¢®ÉˆXCF¾ì™$j¶h¬}„€ò@+Û
o6Û’CÒIŒíW‚ÊÂÞH–‡3¦©×Ķñ™M l&ô$5ÖÃ!µz…Ö ï É…’}¨§Þmû©¨æh÷—Á)Ètûöû²ª¨uÍH}ª3Þ;ÝZ®î²ú–7Èê‡1!<>¦e½÷ö)^\´ínM:žÁv.Ø +Ž^7Ûu††Ä9c·ŽdLÕe²ÉÍÞ'o£ý'Žµ¦Œâ+Þrj¡D²(:ó¥qÚ»OlÜ'0.¾šåÇ2ŽÙ¾»üµŠ!’ž7øÅ5†y~‘ˆ÷)€ïŠÃÏ°%£mï²A1Ђ'vçGµ\é±`™‡ß~x‚VÑòò– +Jú]Ö»ª+7aêø=eF,®fya´Hú"ì#Ì5q¤„8`îÔiàûZ|yF.ÝeÕÄã“™ÇõX°¾â:ró/Ð+Cx2Wj²@ ìËs¿l¯ÍQ¿«";dBç3¸’bÀP1_·Çi9ÄSM»k>úLY2.—Œ +^*5CueZXK¢T÷ +œK,Ž¤ìãÎ#Å6|„À§þãR†oò½>&$ùOFÅÆk®®mädlŸLÔ¼ÑÑô§`ÁòÈoÑÄDx¸Ï?ØÇíÌcÜ^j+ÁBØdª1Ÿcq&•ÜO¶8Á÷1;#"ûtâI³žr #L&YOùªPû8ëû¢ÖŒqÖj¹@~ñ¡+¶uV=gÒ‡C{?ö1xgøs +¼@ΦOù¹Ò.²±Ýû¹Ïo[Á:[¡£Ðºpq3¬˜¢Zö‡Z +>'!%
?&š0sr
L\‘J”~ÌD‚ïO¥ +b|ù![uKN`¾üëS¬o% endobj -2063 0 obj << +2067 0 obj << /Type /Page -/Contents 2064 0 R -/Resources 2062 0 R +/Contents 2068 0 R +/Resources 2066 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1999 0 R +/Parent 2072 0 R >> endobj -2065 0 obj << -/D [2063 0 R /XYZ 85.0394 794.5015 null] +2069 0 obj << +/D [2067 0 R /XYZ 56.6929 794.5015 null] >> endobj -2066 0 obj << -/D [2063 0 R /XYZ 85.0394 220.0856 null] +2070 0 obj << +/D [2067 0 R /XYZ 56.6929 220.0856 null] >> endobj -2067 0 obj << -/D [2063 0 R /XYZ 85.0394 208.1305 null] +2071 0 obj << +/D [2067 0 R /XYZ 56.6929 208.1305 null] >> endobj -2062 0 obj << +2066 0 obj << /Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F54 1383 0 R /F49 1308 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2070 0 obj << -/Length 2552 +2075 0 obj << +/Length 2549 /Filter /FlateDecode >> stream -xÚÕZKsÛ8¾ûWè°ik„àMඞØÉzfâxïîav”DGÜH¤F¤ãøßo7¤(™²²R•-W™@£‰W_w”pøc™õÒ¯™á¦Ë>ømïODÔ7Jã®ÖÏ7'oÞ)7ðÌ[i7·¾ãΉÁÍì÷¡e’ >|ûñòÝÅû^ŸŽ=¼¹øx9KÇï.~;§ÒûëÓN¯GcጾýûéÕÍù55ÙØÇÏ—g$ñôØÓéõù»óëóË·ç£?n~99¿i×Ò]¯à -òçÉïðÁ–ýË gÊ;3¸‡ -gÂ{9Xžh£˜ÑJ5’Åɧ“´vZë}û§¹`B5[É”µrÿ°4‡acQæ¬1;£Ž÷LÀ?°‰’L(£Z›hÙ±‰†i—ã™UR›Üç‹Ù4]ÏpsÞ¼“]ý„3/Î -‘Äiç3x/¯zÖgãÚ«mŠ £Sró -!!Þs÷±
3î Sa@'ŽY²iLÚ¨ÛÛ[æ¸EC²D+úûk¯É!îq£5z(¢%AÊð4zã´ª³u^}™ I^4þÁ€¥iZeûs×ã½Î‹n3¸G/¸> KzC=á˜%$o -:Ò1[`)Ó¶D‚(ýBß,!Ak}3lü°Vù2_@|B -jÓ+VrˆWƒ>éây$ÈÚ¤;cQÊñ5[‡\R@.†hmÿŒb~ºXRs'Í -¢’¼ThÀ³ÁUP¨Ò°5kzRس‡+ÒúW°F§k(´SÒ’ž
Q°Üqÿ=\¥Óº{<(æÄñ¤âª°F1Iô÷nÃRRév2]˜Ó³Ø=‡)‹µ/J¹¡QŸÇ¥ÑQ–:O³H'’%ÜÑ6~YOÌ!‘N«%Ô"‰B9Ï_³õ„ÎieÓÔâ-Ô6LêÁòjÍ7ñ.œTD#,lȉÇwŠ>XŒ˜C•æ6l>D0˜_‡`P£°óÕÐõ’Zº‘Ç5‘Çu#áŸw«^ßÐP,é'aòÄ›@|NÚwòØH»vz6vs„ë½ÀLº‰#’gƒÊ8Á¾3#ÍsäC½WRwÈs`úΒߟA¢¹û‹Ä‘ „Ä‘RJeoÞ†ÍX$cÞ&»³èvcQÏê¶&2‰¶—N -‘¼Z¾¡rKü]RЩQ^äužÖÚÅ=ÓÙŒ[U$È‹À…Í» {ÙRNÏήÙéõÕÈËái¼‡)"J/®l·Iûp»YÒi°¿óñ%Þ€¢¨ì£ÿsgváà¨/¸('p-ÄK¾)J©)Áïý¦3H,³àü€ióÆ.J›éJ ÷-JuíÖL=Þâ:?ž³Dpú4sÙ¨±x"MÎFèG8êB ‡ÿrøès«ð|Ã@jËLÌ*Âwðáƒo•Ãb7›o.–rpVÂ’ÝUQ¿ãnÇaMVtã¼Ä‹Y3€ä´L˜îE_’Uðu†>c”ë¬Î§à±¨iUVU>Á¡Jø¬V%Ý
õ$éâ$qÄ3,T -é¬?§o<7‹sWÿ:¦æÁ™gÅŒv³ùx‘E -ø…E8C|ž]ž~8§¦ëë*««í7'½ bH“ÔåŽK§)BÒV5ž$Ù~ç-¬f‰2öGuÞÎ1î~Îw)7ꈾ[ppP‰G÷ÝÝŽ÷ûn!<SÖëÒyw¬òƒ;ow?«9$Òúðƒë(ÓÙý±oqùêŸVm~wã)çdýv¦À¿+B~çgbNã+I5<-žkÝH>ÝV度ʿFF†à6Àòí]¦B.ôègdø5YYÙÚÙˆÿ&ðaUendstream +xÚÕZKsÛ8¾ûWè°ik„àMඞØÉzfâdïîav”DGÜH¤F¤íøßo7¤(™²ì²R•-W@ãþ¾î(1àð'Î0®¼$^3Ã…L—'|ðêÞŸˆØfÜ4w[ý|}òærϼ•vp}ÓË1îœ\Ï~¾ýûé§ëó«ÑX>´l46–¾¸<#‰§äíÇËwïÿyu:Jôðúâã%‰¯Îß__¾=…3úË8žï.~;§Üû«ÓN¯F\ÿrr~Ý_ÁnäÏ“ßÿàƒlû—Δwfp΄÷r°<ÑF1£•j$‹“Ï'ÿhìÔ†®}秹`B5[É”µrÿ´4‡icVæ¬1;³Ž…J˜6 êDI&”QN´ìèDhÅœRfϬ’*(å>_̦éz†§óæìvH8óRá°áõ<£6FwÚHX¯IlS¤Ë¬g ™0“˜Øæ?œËl1•uü¢´ºü7›ÖXH†uI³ËÏ”‰k 7Œý²o«´¨ò²ø Ê>¦EØ +EùÖ5!~W›Ó²¨³¢F…K4ˆiÝKë™-=òôË뇞ýÁ¸öj›#hà”ÜÃ<@ºvZdžPþó`½y\þ¥(ܲÙOD!öÐáÈ[»žÜvša5/o‰¾ŽS)ƒ•DÈ¥¥ýç"4gÆ8ó¬ƒÑ¸†Ýƒ±FofWÚƒ9OšMïÁÓXj4ÄÂ6»í1Ö«@j1l¬Æ²¬j’ÜVÙÍíbÛbˆaºX”÷ÑB`›ÖX”Eékö@’U¶îÃT4$N“ñs*ÂÌXWœŠtÛÌc††…ÖópÜݪ¨ ¨ÛŒÝm´wRÙa=Ã’²“(º],0_q»•BHpøÜ=C±`ElÃŒ{ÂT˜æ‰sV«lš•‡º +;‹y:VPB<ŠŽ÷ñ¥Ä×{—/þ˜|Ñ‚þÄrÂpÀH_´|iìÓÿi”D%y©
Ø€´dW°!p¥¡¶¬)%°;gY¤õ²`‰î×i—¤%¥
S0ß±þ=d¥ûº{<)ÅñªÄ]a6Ìb’hî݆:(¤¨Ò턺&P§g³{nSAjŸs¿„G]€—GGõ;Z +\ ‘N$K¸£süºž˜—8¸¯vB”PŠ, +ù4¦¿fë ÝÔʦª\(m¨Ô.$Ö®šobŸ.œTÄ#Ìl؉x°øe#è°Ió ¶ƒb¬¯Ã0(‘ãykzI5]ßãß㺾‡€Žéíª×84KúÙc£ãÁ
{âc ¦“¶oÃÙc·OÏÁn.q½O˜I÷&qDöl`ù;!8wf¤9ȸ×{%u‡=/tCß™BòûSH4Ï‘9!s¤”SÙºauÇɺÉî*ºCDoÔ³»›‰LâÛ£íåÄ@1ƒœ¤w,7|ê™®yñØñMü +7Dà%•î +ïIy§uÛìâ¥élFÐ*äE æ/´½ìu*§ggWìôêÓÈËái|Š)"L/>Ùn•öá…³Z¥Ó,";€çL|EQÙÇÿC·v)4KPŠÃ\ñœ‹RjŠñ{?, +Ë,X¿à´é±Óvy +p¤ endobj -2069 0 obj << +2074 0 obj << /Type /Page -/Contents 2070 0 R -/Resources 2068 0 R +/Contents 2075 0 R +/Resources 2073 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 2072 0 R >> endobj -2071 0 obj << -/D [2069 0 R /XYZ 56.6929 794.5015 null] +2076 0 obj << +/D [2074 0 R /XYZ 85.0394 794.5015 null] >> endobj -2068 0 obj << +2073 0 obj << /Font << /F38 1082 0 R /F42 1288 0 R /F22 997 0 R /F54 1383 0 R /F61 1416 0 R >> /XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2075 0 obj << -/Length 2933 +2079 0 obj << +/Length 2913 /Filter /FlateDecode >> stream -xÚÅZIwã6¾ûWèH¿×B°qËœ:Ž8És÷ÈÊÌd;P$lñ…"’²Ûóë§ -P¤L·»Ó‡y>(lµã+ÈbÁáO,’q•êEœjr.òÝ_ÜÃØwgÂÍYúIËñ¬oÖg_]©d‘²4’Ñb}7Ú+a<IÄb]ü\|ÿöýúru¾”!"v¾#|s}ó-QRú\¼»¹ºþîçÕÛóXëëw7D^]^]®.o..Ï—BéPÂÊmñë»›KštuýÓåùëÎ.×Ëc±WÈï_g¿ýÁH÷Ãg*MÂÅ#t8i*»3*j¥<¥:»=ûç°áhÔ.S“æ‚ ªÅR&)…Ö/ŸKgp8×5e¤*>9䎙cP~È5K“XÊ×r¤|¡K” -q˜²HIeµo>ô¦³ -õóÕ•/ˆ9K¥Bpâz[vçK%“ =O‚Ce°“YU5[-Æ«C5u‹ëlgŠ™#”f2 -ý}Cæδ´}¿5ž–—]ÙÔÔkîhøqk`FKDX'€Bx -ZÙ—B°4„íqsË(ùCFŸûòÁÔÔ<심7ÔF.ì,76hÈöŠÌìššÙ“øô„5òªÃ4ØSMmðBäiy³Ûê2Ïú²¾'ÒcÙoiRïWÒîÔFuã`·7ùrzNù;çÔºŒ¥ -Êš¾¸•Õs¨Gz×I¹öÖ(S÷eÿ4cÂBJá&ÚªâÍù2Ñ‚¸Ä3îšv—õÔFùðû¸-ó-6%2Nv 8P<UÒïRj:wâœè¸B¹c«&Ϫ¯gÄP!K¢0tÓöèï¹dňæÃyÀ˜ -t–ö\$Áœ‚tÈÒxXôÒÎ)"Š¼Á>¡Ó84¤e»·.:Å 5£îÏ7×ÿY:½¨”%ú½Í.Cj]“ÿizHc)W`ƒ_Zâ¼î«§s!D -²êàš”ÔQØñ3%¨ -¿hÓÝ¡sVµ.u÷4Á²wiž–²êèlx-Ž®M<‘pë2
-LÕù‚›¦wc.MÀl -Ÿ -¶,ßúÒìúòMt§€MØP½ -Í”†ÜȱZ‡¬ (8"¦Î¡°Gøµ©ÝéWeeŽK½v©â,ŠÅ°” ·xì‰!]¬öÃ8€ãzÀcáå§ÿÞúbÕ¨?wnܵ»™\|HÈñ€«Ç<T–°N9–*èÜIT¤Õ{ƒ136
Í#jW…IpGý¯®.ˆ…–v›¦ËÛrc:¡ÊÝV¾59;Rmá¢õm—Çs7{52ÎÀ¸ZÁØ…§7¢tÏû -2ž-¤sl%”ó¤•nìЙ‚QõtAmˆJÜ‚ýaS•¾ŽÃË1|Idhx‘%TyXñ ½6´ÅjåŽÚfnûñQíí’Ížõö.wûÊì`²÷oŸÇ‡Àøöæ–
à}aYÕ5~1¦/”üùK
ú+¸¨pïqÖ_wÍWí-fd¸°mo<hÅct4–¹)MaÐ6‰ -.ÉpŽHm6ÞaˆZqŸ‚&.Ô²¦bÏù»”>‹â ½°±q³1ÿQÍæ°ÅµJw84ìáZÌ®ùøpš6ΈاŒhGè³Ïھ̓¶ïô¦ .âžy³Û7ßÀŸßXi¡%öÀ ñ4¹ÞÎNGXb§N…©s^hÙ(R÷º¦[¿³b£ƒÒÐ.$G²Nl'SœL'=§ÁÞéË´vŽ k×Îuž‚™ªÅbÛšM®F´ÆóoüŒœ¨N‹/(ùHî‘à"HßC¦{8–"†’³uWÇhåîPõå¾rË®¤Ó øN]º‘¹}_îÊÿ:/°3-š°s‡
3͇ã~öî÷y‚ÿŽ ß!Á±ûXØg²vã&“:©½ñÏmé3±íðá qkÌiñ ´d"ñBÄ -='Šükrδ¨ùˆ¥F*ø2µ-¥cÈ©<úŒ-iÅG~ÂŒ$ã‰~Õÿ¹`¡Š\]³þ ŸSî|>u–;³„ëR˪|pD«ëØë:Á×Q¨2BÒñÅÈž˜QWIgp • -áÒ›¹9ùâÕŒÿ©ÿ,pü‡ `H%‰|q
Wp*ð‡OÜ˾ýò‘¯ˆÆÿ#ÁR/ßKãB~ù¡7uáUK?üQç_¶¸¡Ÿ°ü[þE¨„…‰Œý¡#Mü6Òåendstream +xÚÅZYsÜ6~ׯ˜GªÊƒàâ•}rÉQ’’³£ñîæzà†9&9’µ¿~»Ñ +YÀ‰ëmÙ.•L‚ö4 •ÁNdUÕÜwnµ¯AÒÔ-®³)fŽPšÉ(ôGô
P˜ÓÒöýÖxZ^veSS¯¹¡áû-a9œ@úP)ˆ¾‚¥!l›[FÉ'2úÜ–w¦¦æa_d½¡6rag¹±AC¶Wdf×Ô̞ħ'¬‘W¦Á˜j +hƒŸ"§HË›ÝîP—yÖ—õ-‘îË~K“z¿’v§6ª»½É—Óó(nÊ?8— Öe,UPÖôŬžC=Ò3xNʵ·FY˜º/û‡ƒ„!ãR +7ÑPoN—‰Ä%žqÓ´»¬§6ʇßûm™o±)‘q²ƒHÀâ©’þRÓ¹ßD¿Ê[5yV};#† +Y…¡›¶Ï@OE «àÚ‹ +Ò!Kc._Ùã,Š¼Á>¡Ó84¤e»·.:Å 5£î‡«Ëÿ,^Tʈü‰^Šf—¡
µN‚®Éÿ2=$º”+°AÈÏ-q^÷Õé" +¿´!Ja*ã·#ñTâ’{îÒmçF;@k%]~öHf82g)§ð ps>ä’ÜÑ1è¶n¤b@t®`Ëò/ÝÊ® ß”Aw +Ø„
Õ«ÐLéHb r,Ö!+¨Ä¿QœBa Žð[S»Ó/ÊÊ—z)ìRÅY‹a)nñØCºXí#…q +.*FÏqbðØy×|ÕÙÞbÖI†ûÛöƃV<ÖAGc™›Òm“¨àœçˆÔÚfÓéV¸¡µ÷)hâR@-k*öœ¿Ké³(ÚË +ÀÎIÙWsloÔX ö09^ðb?Ý×¾9˜Ü)̾ûK&"&Ôž’€Ÿ°ôëûI¯ñ‘ +Ëϯ}Jzö·¡l<cÿÛ
TßX ¦”ÂïkÍ”2¡ˆˆ–x\ü¹§Ñá|Š&V+ÿfàáô¡.ž>³ûu*8¾ø—û/x‘°+ÔZ…–ýåãeJøê(?ê(Þ¢öÒ(0u Äga ¢åÆ>°À€…‚¦KÄ0áXNv~Èϱ[ãã!² ½}'Š5¹Ç‡Í´šyÁP#
|V†Ò1K$¾`KZñÂO—‘d<ѯy?,T‘«gÖ?ãÓaÊÇÇ Írg–pMŠ`Y•wŽhU{UÇ!x:# +UDH:¾´ +9wmòÅ«éþsÿFàøwÀJùò“£·WtùŽþÞ¥,ñ€-äçŸzS^Ù×ôuþeËú±Š*hHj*€€{òÇ‚3©"éOiáéh}¤endstream endobj -2074 0 obj << +2078 0 obj << /Type /Page -/Contents 2075 0 R -/Resources 2073 0 R +/Contents 2079 0 R +/Resources 2077 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 2072 0 R -/Annots [ 2079 0 R 2080 0 R ] +/Annots [ 2083 0 R 2084 0 R ] >> endobj -2079 0 obj << +2083 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [341.1654 175.0606 414.8187 187.1202] +/Rect [312.8189 175.0606 386.4723 187.1202] /Subtype /Link /A << /S /GoTo /D (the_sortlist_statement) >> >> endobj -2080 0 obj << +2084 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [434.6742 175.0606 508.3275 187.1202] +/Rect [406.3277 175.0606 479.981 187.1202] /Subtype /Link /A << /S /GoTo /D (rrset_ordering) >> >> endobj -2076 0 obj << -/D [2074 0 R /XYZ 85.0394 794.5015 null] +2080 0 obj << +/D [2078 0 R /XYZ 56.6929 794.5015 null] >> endobj 622 0 obj << -/D [2074 0 R /XYZ 85.0394 385.3709 null] +/D [2078 0 R /XYZ 56.6929 385.3709 null] >> endobj -2077 0 obj << -/D [2074 0 R /XYZ 85.0394 353.2653 null] +2081 0 obj << +/D [2078 0 R /XYZ 56.6929 353.2653 null] >> endobj 626 0 obj << -/D [2074 0 R /XYZ 85.0394 353.2653 null] +/D [2078 0 R /XYZ 56.6929 353.2653 null] >> endobj 1320 0 obj << -/D [2074 0 R /XYZ 85.0394 323.4096 null] +/D [2078 0 R /XYZ 56.6929 323.4096 null] >> endobj 630 0 obj << -/D [2074 0 R /XYZ 85.0394 266.7517 null] +/D [2078 0 R /XYZ 56.6929 266.7517 null] >> endobj -2078 0 obj << -/D [2074 0 R /XYZ 85.0394 244.4404 null] +2082 0 obj << +/D [2078 0 R /XYZ 56.6929 244.4404 null] >> endobj -2081 0 obj << -/D [2074 0 R /XYZ 85.0394 158.1241 null] +2085 0 obj << +/D [2078 0 R /XYZ 56.6929 158.1241 null] >> endobj -2082 0 obj << -/D [2074 0 R /XYZ 85.0394 146.1689 null] +2086 0 obj << +/D [2078 0 R /XYZ 56.6929 146.1689 null] >> endobj -2073 0 obj << +2077 0 obj << /Font << /F38 1082 0 R /F42 1288 0 R /F22 997 0 R /F21 994 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2085 0 obj << -/Length 2961 +2089 0 obj << +/Length 3075 /Filter /FlateDecode >> stream -xÚÍZÝSã8ç¯È£©šhõ-ùî‰0ÃÞ,Ãæêîv÷Á$\b6v`¸¿þºÕ²ã -÷ûçÞ¯¿óÁ¾îç=ÎTêÍà8i*·{Ú(f´RMÏlo¼÷÷vÁÎÛ0õ%˜4LH£ -“=Vwù$HËdó:¨ìŠy+•ìÓqœã¸{¢ãÿÛ¬f#¦L9й¡tŒ»uÛðÌFHçï -pû«ª
òÑ0ë4sŽë -ý›L““9½!âä”Ú Qï€Ö¨²AC¡—Zf•$»&ž½ð¨¿ 7ÏðQ^MÅe>mŒqdïñ!€ˆÙ¬»Hv¥ºÍæ¾}ÉfÆfÆÁ:-|ç@Y•ô¤WðÌð¼·Q©Ö¸¦ïGÏ{»½Î¾^÷+ø€!Þšïñ„ÍŒðï˜wVõÀrŠ¤ê -b5"àd»¬í;p÷ø7Æ×u’‚ž¼û5 -gÄÅ ú.'¨Ä4N,ê›ÍÑDÝÆ4ÈéoŒµãb3ë:˜ìŠs|»äߣ”͌͜Ӷ«{4ò\ˆ,9£¨A$þ<¿›eª)¹¤ûèiy›Ä€ŽÚT[X Ê•#¶ -®ÆíÉé6êFT*•É¬,ÿÀUª’åÝ»%$y-¯0<¼Ïg42hk¦ð4§9(cmpýÕò²¦çœ„°0¥°p-ð#éi¿•«fç»,TÇ s‘ÅOãhb²84‹ã`?³f E´eh§ô>«èýBc£ c‚1Îqh“ö×M‘!Ú<Êÿ}Â-“[„»#6¯Åk—$‡R÷·²ŒÃ—Eáÿmô/à¶Jy2®Ëä`è†As·¼œ¢ÿÈ£kîØ|{5«*®ç
Úð+ÔùŸr¾²6ÃÍö©Çqµ%%耰[²SW®Rq¦êI ±gB™hˆÆ˜J³Æ'‘F
©In²ê†(Ô l3Ñ°»Ã»5—¡#ÛY¦e!ÒȆi¯á]•Ý¦;
r!øaVùž -ÄáÙ"¨ÌjƒŒÀŠ¿ -H -:$‚G,€2:êŠ3¼ â_âv¿ô
‡¸ -¼„®'[V”*“ÚðÝ'gãÑað&Ò)œÑ™Ø=Ä´Õš1ºÍë›2š•ù‚›£^+UùÊZµÝ·`«¡Ð†OÈ‹h™^Q8Ö\ncV…·Ì,p)w}öHz¦!L'fN÷‡†‡Amt'X° B“‘T4X©§¡r:˜c(žOŠ¡oƒs—ßàÜ·—šº_º+†ü€Z´tb¬žTÅ53Ê“5zGaJÁ¦qáHÞu\8>“ïÌ -‘1Ï3Ö$_ªfx1ßÌ%PÇëb¼ÊýWz í…LhJ=Á€Ò02 -‚!Ûk•rIÅ·ð¢ó•o¸ª,µ`ÂÙžœKBþˆ§øý®BØ’lÁ\¶ÎOÊ"Å1õó«2’¨5xaHué#”Ð!¼³qèº9Þˆ.mÛ¼ñ3=É
S¢'*”J2ÏÙÑ_@ÒM*žI:z/lDÅŒ¨FÔé‰$½9ÛÆ m:£%’ªY¦½ƒtôŸW[œ^<£D^´×–<Îʇ qž‡Šv_æ5„;ñ`
žéêD|ûH-m¦Ñ©=vÅ’PàÁ_¨—´éFD¨‰oLâR§ß}×|‡»2¬?@—Eª š5=1¯€5Õ’ëéÁÙÅ9ÖuON wt7KˆpEýؤrÅX‰—£¾ãÀ"à¼D²Ôîvw{"´[T½`šów% OM½# =œ¨Î‡;)¡L×åâxŒž/î‹æ&^6™¬åè'¤CMÇ·\{èî{·™óNcûMyOE[8ŸjÐÅ`Àúx+K¹V^3¬SW4"@Ñ2Ñd#•6D5uïà{ÌšX«MQ€X¶Žî×½ác¤¬Mûd\Ãx)\äÂè0„|ë€XhÛ˜™Ã=h!+¦K”T঄Æqá,Rççqj̀ʶûsd±–÷Ðàþp3Ø“Qƒ¯õÉv”H‚i»Ç<A—W)k"ò¯EU?]ï…ðKˆxÈb)VG¢ómðô@ßÔù9µt)H×Þ#ýl–:‚ÔÒÒÔ†M
_òíÍÄï9ÛZÒìŠÆëÄ
ŒsÖãj&]¸xzO“zMø·Þ_Ýž‡
)ï{.|‚ãRˆbç<K™žIzÂHgôµÎçm
s¼¼»+5=üc_@à–/ª¢œSÜ£¤° ¨Ø³[ò‚#²ùÑÿxhðendstream +xÚÍ[YsÛF~ׯà#X"s»OŠDÙJY+É©ÝMò +(èØûë·{z@‚’H8½Ë¸*è¹ÀÁ×wψüã§S&½X¯R͸LŽØàÆÞñ8gÔNug}wsôí™tŸz#Ìàæ®ó.—2çøàfúsròöøòf|5 Í“GÚ°ä»ó‹Sêñô8yqvþæÃÕñЪäæüýu_ÏÆWã‹“ñpÄ¥Ò^ ã+þýþbL“ÎÎ߇¿Þ|4¾Ym¹ûYœIÜïïG?ÿÊSøºïX*½Óƒ? ÁRî½<)-S¤l{æG×GÿX½°3–¾“b<åBËÁH³Tq¾ýWéüj$…L=îsóGá£mª´Eä•J™gkä…è Ï•L”z`µO2@?™gu=©Tr\XÞ'y9©¦ù.áft[44ð1›/sênfYì,¦yÙ¿0&òšÆ2x\¹Kª¦šTsê¹ËŠùgäÃÀÁÇhÛçHˆ°™jAÜ*ʺÉÊINꎞ=º¯MŸòTS1bÐÅâuøJåR ¢:µöÉ23},“ðY‚û€ÒÕ)i +M¾ž÷ÖP+øÙî6v¸{űM¤À'ï~
@I @‚ç]µ,§ˆ%óÉøÓc¾ +ñ 12c¤ƒø`W!ƒ®ÅÐ%Ëy+â|p%Ÿ‰*ó¨ ¡»¢'dÐI5Á‰•/yžiµJ"êj¥^øåVÝ2Níò#Æì×ì5¼W ëûL˜ò°7Á
ÉÏéÅõã +2êM’Ú æ(FØj'#ã*<§qz=«–ó)Ñ·9=—·`ûfyìÎvˆÑé5±ãÙ»»LkÚŒñ1æˆeCíÿTe¾‰]t¸Æ¢´I¥ñ}e1e6ÎEdâ5ú!n’“ +|JQ"b.nøZç
õ„è +’ðŠK¢&ó"˜°"¾,«ëjR€NL㢙mw*Í*EGVaÕCYÆ·ó®‹Ê¾˜÷JiXjÁþ÷0O:— +¡‰wï†^$?¡;ôCnH!Áí#¡ Õ¬~e5pŽÚ?ád,©Æ'oºš9‹ädå¡°Õ^ÔŸç†åÑ9I»®‡n’/¤²š†›^†Zö–ˆvãE«Ð‹~(¾7Ä©6Øal¶8¼_¢ÕÙä‹EIÉ]¢ÔáѾbKe!Àc&ÝiWl%Ppâ»D ²P©}”¥h5ØÏ«üq…37KYBNt›$ m1P«s:Ù³¤ãóÝ`ýêÉ +ȶš€Š?ç ¿AN¼L–ß„J’‡²Û–Î>æóÏ43Øþ`™B«¤5h°VRýõò¶¡vNBÉÌ‹äYQŒÇÔ$~+“íΙJ‚0Qç"‹ŸÆP7²85‹ó`?óvâ-Ãq”|£_h=tL°üó‚$·§"«8-zP:I‰èoa¬Ø!Þ¹y,~ÕhC€ ôÞöZJH!¸òQ¼c2$=K®›*Ö!°0éËà‚å Ñ¿arB½ŽûÂ(ÚëUuq¿JUƒíÅNŠ™£Åm—õcÄäŽD·ÃçHÂè”9Ó—è +ÈøŒpz•Zðrœâ>j ÷:™eõŒ(Ô|f4£e"v&†±DE&®Vé‘F&nusŒ}÷:°pÞé ÄŠ¼/¤ZîH¨ÇPjÇD2.#8—UѦ“`ÅÁu~{¿UÒýB¤xÊéó¶R9<Þ}8Wš…û8J‹‹—a€†á¿z +y_”ÁëÓ{@½ÿN
Ú^¨¢M©'8*šF&€^ÞYz[à½K!]r»l^*HÕM1Æ7:@ b=¨ëó7xÅ‹á®Þж^>é«kÐåwU@;|;àÃu°ºN¹¾(ÏZø F±îÿÂ*ùôT]€ö‡Ã>×V„€Ÿ&³¬¼•?Hh.\,i»:ÛgR0e—\«uB²·9×ù:Ü ¦I0È +“*®ýK^½¡Ê—þ1ËúzpÀ¹-wh°~'¥ç(Aø® qq£Ñ²û7<©O‘(ÿãOM^®"m¾«Ei~ÂzŒÄÁ‚‡kŽO Å£Xí û‰¿ØῪ£àendstream endobj -2084 0 obj << +2088 0 obj << /Type /Page -/Contents 2085 0 R -/Resources 2083 0 R +/Contents 2089 0 R +/Resources 2087 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 2072 0 R >> endobj -2086 0 obj << -/D [2084 0 R /XYZ 56.6929 794.5015 null] +2090 0 obj << +/D [2088 0 R /XYZ 85.0394 794.5015 null] >> endobj -2087 0 obj << -/D [2084 0 R /XYZ 56.6929 671.961 null] +2091 0 obj << +/D [2088 0 R /XYZ 85.0394 671.961 null] >> endobj -2088 0 obj << -/D [2084 0 R /XYZ 56.6929 660.0058 null] +2092 0 obj << +/D [2088 0 R /XYZ 85.0394 660.0058 null] >> endobj -2083 0 obj << +2087 0 obj << /Font << /F38 1082 0 R /F22 997 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2091 0 obj << -/Length 3019 +2095 0 obj << +/Length 2734 /Filter /FlateDecode >> stream -xÚíZKsã6¾ûWèªÊBð"îž=ãìŒÇ++Ù©Mr %ØâF"µ"åÇþúíFƒ¥èá‰=µ>l¹Êj4ºÑº¢ccÆUª;&Õ,æ"î§G¼suïDhÓkõÚ~}®l'ei"“Îà¶5–eÜZÑŒ~‰N?œ\
ÎúÝžŒy”°n/NxôÃÅå;â¤ôsúùòüâýOý“®ÑÑàâó%±ûgçgý³ËÓ³nO(K@…!þùùòŒ_|<ëþ6øñèl°œr{Y‚+œï¿~ùwF°º8S©;PàL¤©ìLt¬X¬•j8“£ë£¿/lÕú®ÛĤ¹`Bƪӱ‰Ýý]ú‡ïÒ*–Ødó³°lÃtl@ö‰ÕL m–²—²%{¡³Jŧ,QRyá_^ŸªnO+m£Ÿ*7êöÊú}wy
õ7yEź¤ßÊ
ó®°‘›<5Fù0«]h7Îj¢úýÐõ!¯ÇDeª¢c4Kãç/~6åCáæ0)¢"›:¤¤Ÿr2úºyO.[ hU»ù}6!þ¨£”5î1¯êÍñp|}ÿ)\DœÀ<GD´Ö¥ZPý>ýÖO3‡«ŒM”‘Tˆ?£BåŠÐᶜ7CÓ¯ŸTo}dyq‡“ä~°Ÿ-ª€å·8ö›Wĸõß*§TºìŠS–˃R<'ü† Þë=² -ôíÙ$6nžè÷Ò«3³EK“~¦Õ€³ÏjZÛñe[|!Õk"dlf„•¬&N%“qšzA]
úè[ª4:AgFG³ÒoB*{¤A×p‚5ÌY6¯‰*oC3@ŒÊiFž–»©j -D´ýÎõv[Î~ÁÚ÷訽ø×B¶opŠÁR™åÆÒQsÐiB:ú'ìÐèŠ|¢û|„¶*‰¦ÙlfJ7®~p® É
+%øg -AØ3`ätÊÓcªoÒrȼŒ‰ÎÀÇôý¶šNÀÚ) t6y&Ü a÷i«%†·¬-‚°æ ÜIÎ`EwýþõÅ{8‰ -ñ¾8‘t±DX¯~W™h€fba–‹Úõê1AÙâ*©âèï/¨àc 1.«º"’Ü1¤Ð-Â_ïùV:ãÔÈå¡+xa»U1ÊI±Cô¦:v#GTp~ÐMÓ« –óßCÕ:Tölcš+Û³Æ.O¸
gè%ÙúËùm÷†RàX$‡RCbbEbñæÛ4m™£Á -!"î®<¶ÉÃy¾ä÷;©íµ¾á“UÁ|A¸‡ü p"Yj-üúê
Yµ
Ysa†
5‚ôµ+F>4úªœäÃ'¢Ïç+ 嘗iyRÈðvƒD¶ÛºËï]°¾Ó„È•õ¯ßîÖ][(o8ÀP‰ -„p¼ŠOÁáþx‚oÀ}&8,ërXNˆ3ù©ÚC:ç5U|ºÃoÐæÒ‰i>ê‰Ôð}éý~Ör…¢PMnX¹ÏÄ1^žVTž-æ³²r¸É)‚lpË@øê»j[~äf‘OêÞò7ëduíä:00„¯ÂQëØ;ð±&{zx&X€±*èÎ0Ó¸C¯J„¶»÷d[Ûo8'”bS*Â$nBøܨDÀþùà@L#Õþ’b
ù›e˜G…‘»w“rF‰K—´ÆoI4 -õMØ -u÷Ù</a¤ê©Úš¡Ý4˜]¼Éªåû£·³™7µw!•=k>üñ™Ö²uUxË{p÷öZêíµ6×›q(Æ…ÑÏt(7L$Zì÷(,žûB -|ž_¨ðÔŒ(ÚEPy[»"°¦³I>ÌkŸÇµÑ<7Üô°,4Â-å¯%°Ð0Q»ws„?,…ëp?øÚ#/p#ûá¹ÖyFv|Ö…oN³âiÛN¤y£ý†èÞïªðö+qrDÕdŽÚy î8£ -˜«±endstream +xÚí[mSã8þίÈGSµÑêý¥î3ö†Àæjîv÷ƒI¸.‰³Ä™ûõ×Rˉ’Šp•ª»¢ +·Ú²,?Ýê~ZvX‡Âë(M´ã®cœ$Š2ÕNhçΰاÛtꦽ>\ü|,lǧ¹î\Ý$cYBe«Ñ¯™&‚Â4ûçy¿wØåŠfǧ_@bB*ž}ü|tqÕà »~8íBÃÃÇóþñéÉ×ÁÑ¡‘ÙÕéyÕƒÞqoÐëìþ~õËAïj9åô±~¾üú;íŒàé~9 D8«:Ð „9Ç;“©QRˆF3>¸<øÛrÀäl¸ô9˜$e„q% +i‰ +fŽ]{ßgÅ}9cæã-讦ý6$Þu%h+‰`ÒlGW;G¬Òѽ8ìjA·ù³ä'¾Ë˜”)â*ØÂ]@|ãØîÐéÃì±CkÉP®Å£µQÄIÏ}öÁm²³¼ãÚþP}Qàs¼{¸ÍÓ{îÊß
‰™JÑ«9Šùˆˆ²T&ЀgÕå4¯Ëjúˆ’{ï"¶Sˆ`p)]KîÒŠ*”EˆŽaÅRΈ 0>æaQŽ`ñg{
PÉöÙ—„&ÒÉœ$*L1oœxWb*Áé×bö|V7Þgx8” +ߎ·ž2cä?;íŸÖ6è’èý$®¶˜$wÛçÅÅ8QV´¥C¦ 3YüÙ ðBš 2(¦ù¤xÇ$·Ý:@^V¯ øÍÑQ@³m¡‡JÂYLØgß:,%žC0ÊýAd„
¤âûð.ŸÞØBÚB}W࣠+úNQùXÖw(Åa˜ŽTäYX´ÅMws僌¥˜ýØ–!aGñ7ªè¸z,/R=GõuQ×Å=œdؾ©Æ¾×(žýGœ,\vWÍkTy_@©º ¢ëœ/·™,¨Aâ…4ßùÓpµÙßRC¾Í9Þ5Dã$F·¥aÒaï]\
|„4ë#î +žU¼%Â)¥áÃ~ÿÔS,eù²ô•fUáʦÂe¿(¥µAìP}rêI,CÙ°eÙbEáí±ój8f‹(•ˆu¦¥xP‚ÃQ²h¿³P,¹_N¹ˆR~X±InºÇ”FA^v’·N <VýË#(g¥±:;B@¦MÝêóâþ¡6ad8,æó$†<ñ;ˆ›\Ø‚Þo2ï}†»³†µÀK-Q¸Lo7„dqúE\(Þ…ï>ŽÊ]ÆQi¡F·ÐgÈKD3“Ó%”a`¸ +_˜ebòüU‘-€ä}/1 +Éh…)µùDˆ´#èBúx»Š†ÒËéklsÅf+AÀ³Z\RNµ<Z¡@p´Ù×¹GLÄÜäŸú—púÚs>߬+<΋á ãøGsÁܸ.b¿»¼Fi0ˆ—"AõR¾ÅÕãÔ›Xò†&Jà¹~2^“ãaXÜ×9êø²Ë‡,ŒúQG©jŠïå¼~:Þ3ìóßÕÔ?„Ò0Ï +ɳAëŸ
¤Á +á²Å¡x¶Öè¥ÿ +0¨øŸw`¾ÌV,ùÒÁ‘–¦qTÞø±oöŠdah1×%Nã³Òh‘ ‰Ç8»˜Ý|@äŠébâ¹u6ePw½¨Q®a î®–Úa5™-êÐ?1¾ ŸÓ¹OMÏÜ.F¹®‚Ÿ„)¨j2——Ñ(œ5gi6—pPæq +!~zá‘”FÝhƒâ¼˜“ÍŸ´Æ¦ÅfÛ¤½Ï¶1”pÙö¡³Š+ãfÔE°
Oß!"†gÍqSø$4"Ö3P”H$A‰[c¦yOhx²5f~¬^3l^8Ëo¹^” ³ÛŒ• °[cí4Ö1©/ñ–XÇ4#ÖŒuƒÁåé ¤nwÙG¤˜±´Ì–góòvš×‹†;xÕ(¯sÿÝ]߬ô§˜ñMß}¡…¶oõ¤³+Ìßáõ9ü' +µÌ…Àà58&»ò‹Ä‚V‹ºèÖwñ“”[ÿ\¨ìÚºÀ¯„n6Šuxÿ<Gé«—<ôÇ@#C¯÷}§¢Œ—kÝÊF%ÚuèÙ§ðDØ¿òóR$‹žÖÊä5J8µ'»¶Y˜«•g]f7úª¼¶}9&˜ïêM÷;¸@)k[”êð“®°•u.YŠÆïÄòÆËOÖ¡W5ëÐËHñLÜs2PA,ù÷Æu¸ää‚©'œ\0ääþL^ø¨–1â'ÿ"’Åý(è0¯Ë°}~FÏ1èÔ`kÕAýWÑz¾âó
o5ïòÛö
ûÒo3/Ðb¸övÖ–=÷£Úi¥ÿ/ý Äêg Òa7}§Óô‚Yû¡<ÀÉÏ9ˆ#Etï{]LG
¸—‹Ù¬òìÕ7þH?¤gÈÙøUŒÔÀ²ãú¬Aˆ+¼¹c‚ endobj -2090 0 obj << +2094 0 obj << /Type /Page -/Contents 2091 0 R -/Resources 2089 0 R +/Contents 2095 0 R +/Resources 2093 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 2072 0 R >> endobj -2092 0 obj << -/D [2090 0 R /XYZ 85.0394 794.5015 null] +2096 0 obj << +/D [2094 0 R /XYZ 56.6929 794.5015 null] >> endobj 2093 0 obj << -/D [2090 0 R /XYZ 85.0394 229.6198 null] ->> endobj -2094 0 obj << -/D [2090 0 R /XYZ 85.0394 217.6646 null] ->> endobj -2089 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F40 1218 0 R /F42 1288 0 R >> +/Font << /F38 1082 0 R /F22 997 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2097 0 obj << -/Length 3051 +2099 0 obj << +/Length 3362 /Filter /FlateDecode >> stream -xÚÍ]sÛ6òÝ¿BôŒÍ# -ØÝwg¯tÍvÐ|¡µœÏÂHùQ¨”ÃTgoÏþ9õÚ©“b/U,'ä$唜"íÇJ*+§M¶íhS¿Q0C;ů -Æ5G}Ûs‘z¦mzäŒ]˜²^X˜6ß–Sø(LØÑ¥H|djÙ»G: -¸Y›¬¶sTÙUÙQoäÝßOäÏT5Ê–z3]®yxU®ËŽMM¿«fÇ}
zYM˜ùœÚyÆcLæ½Ù0•²>X)Ïò•›ŠS;plЪn“Â×Q$í&‹ÆØ!«K0ð²Í¦z"\×0ªïVͶ첮|4ÔUd]F1x›Ú´ÿ8¿à:îcâYÕ2)”DAȦï.`x ¼EÏk/ÜÂ$]§ÃVåŠÕ ¼MS•yéxh¶‡›#G$*:´¬L’P°VGzÓ¬*¼¬mËem™¬åD‡{Y±.ë²í¶Y«YÔêp!‚v+CLQNn€.Ë:ëLkY“Þ¿Vee¦”Ô‚ðÑ R\·Y“@ -S·˜fKàÙ$’iÑçÖ*±Ù–Ä«&ß”#2Į̀S, -™d6ek‚€*ëžcl–¿ça
r‘•š@ø1«zãÐUÕì†È<ÄpZü(>'ûø,!u’K!„¡HÆ>qTÕš¼+›šÖBqܼ¥™eKˆ<ÛnK»hdŒäUòf½@Çe*b ‚Øí/Ó¡`ÝÄš)Í:sLÖÙ]Bâ÷n÷ÃpÌt™µz«Y¬ä¨ñGoêã6âúAOùMÊpÓ”èˆ-‡Úiº•Ó 3baŽuñæîer»åv`^)_ˆQõ#| ÅN y!„g>t=zR16[¡¶©Ó6ª€ˆËCâ2ôu(BKœô¤åHÐ xÃIä`w¯)5á€A1Ú:ûš êuÖˆ
˜éxË—–û^Ø>ç˜Ø5yS¡/Š}|õ-ìºzz‘IËÆ„
¬ÊåÊNµîÚdŒÚñ¹qG.¸¶k8TP»d|F?h:4¥5ÛG«iÀ6üëʤ -{ÀO Ô©8 MSØ—€‹ÙzSYŒµÂcY/:¿¹¢™P…†SÁ£g -*²~¹¢äµ¬{’`m -jkÀõ/Û·q±ƒ‡Õ6Ѷ§+b+Еî -ûʳ{ûcÙô‹r>¯‘[®Ž#{óÐrlÕ.¨ÛzeÂÉŠlQBÝõdcí¤ænöé}›Œ -8=Æ1{;ÆW¥ÀÆC¡J¹`ÔÓÆðx÷—W L¦ùp4Óî«ý a"#¨oÍÑÄumÖM]æ픆 -ƒ~_9zÑ<Zçˆ]4Ž]‹…Áˆ9̓o/ÉPÇÍ ÷qõ@¼!Äg;ÜG((4bÞß;¼!töØ”Ž+¨–=ªæ >gk¹„FÅe&"mC…N¸îEb›{{FQ¶ÿÁdUêŽ -Ç£xë•ì¡]#@»-†ˆdˆÔªœÆ°4VAÈÁÆÝÞ¹>¹/0_R+?á
œ`»Á(û¬]I1d¦©ºÅV=”亣»àq{ÂqŠÌpê2°®ô9›†Ï+Îp\q†õœ¸qÂœ~÷û††Nžàb4€ïëfW™biNN-{†Gõe‡éLu$1ÜÖ¤8nÜP9Ÿ -v<o
EÇBʨT)õEãâz¤.®:¡Èm³åbÿ~|ÍE…/”R3¥µ¦Qü9]*ü8–ÑáEן›å…£“м -ãOY†>”{òÐ2œw¨ÓB òÉÂþ æÿ‘êBj=ƒ@áÉá[г7!&˜œ4–$yùMH¦¨‡zôè"•
ÙJ†T4 b•=rÝ’>+µ°k(µ°±[•ùŠ†ò½'“¢`E·¸¡'âË…}° -í«XÈÏs0ý§LN-ùÂœÛÓ¥?âS±?òƒ@G°õÀj”þÞ½ó¿¿zëÿp{Ï¥Ô è°h‹#aÓ -ö6ç+µÖò!XÀãÙ”Ô§ž))óÙ‹)zÕVö¢+óÞ>-ØviìÕâG;üTa¼;uÑàçRŽŠ»pÈFJ¸g€ðû®6,If½ÿàíÒ]Ž-ˆ4na—³×i'ßI„²ïÏøA><è„K$À·¥½õÂÊEàÃǡ훆°xÃŒ(+<!AûU 4í—B‘Ò•6Â>~[› +xÚÍÙrÛFò]_Á·…ª,3ƒkvŸ[Š™ud/E'©Mò +å`q'*Lb¥<¦>»9û×æÀÞ¬ÛzˆMq$B!5¸H¢0âøtC·2(U¨‘ÎÝKᡳ0N2ä|‡‘Ž¶œ—²Çy«0W*d‰S%•cýÍ»—À«X%Ápjš®ú5Š¤±À´LÝÜ Û«ŽÀö#ý´ä¶1{ënÞ®ªîá\€ T–¯-WÕÄLiMÕÐïèê +eÅ¡N|€t”Á£&á¾ÌbZ–¦rÐÖ¿Æ?ç¡U\øÏ) +óHž <j&…&‘¼¿‘äJ¯Ú¦+ªÄGyЋ +Ÿµ¾8-ís‚bÝü0~.¤^и›ÝŽ(©ú Ø®—ÝíŸ0€k¾âÜ'Hšƒ4NI0Iá’˜BÅÏ2Áb1ÉÀ/,)ÊZ¨ã}Í‘+W˜ãïÏ!.Eh[eÀ ˜Ny›5ÈÒ,ÒÁåýÒ¬ªžCL=,Ç“á[äOYUïiŸK(ÛÆË©NîÉ¢l¯“ó¿íò„ˆT‡*“ +”#£l·ô¨¤¢4Ì¥Î@îBÁ¾äˆÜ}›*Ö $’S^ךl뺽«šòù›«8êí¥:á:ÜRÖŠ˜ÖíÜ u(Bë\#g“²Ù– +™ÒLäØH7µ ŦaÓ¹ P·E]í)IçàõõÍß÷udc18+™«ÿ?I4ú"q.NA_e|ÊÎã\¯Ï!OÒä‡MgV`ÊÇ-¬ÏsÅ-HÈó4ù3™„ßqœJ¤Å)v$€LRnƒÓÓà½^Í‹Ö^l»’i¼}‰½á4È#¶][¶5aJÒM(÷¦´Ö˜øa8&„ÓP@†°¨¦Bg‘}ÂŽŠ^S@¨`mÝùBRÇ
QUg ˜o—ëÕ²µAFÁ£.¢éÀacüoÔÿ‰v;w“uUw›8‰iâÊ›]/¼#·–£ gáö;¬Ï@¬J³_€³,Å“ª™p" ¬™¼ö ì û¯)ÐÕI¥Ó0Ñ*=¥“’»ÐøÐo —‚ú%Þ`Ô™›ÇAázÝ{XDp¢Dƒ©¹5u»¤yLè”Ò5‹ +|û!ó`ˆF)ƒÊRƒT 1ØÌBŒo<·[¸Ó®„yß®„¹ÛbUµk>É>Ø‹]ý#+èÌ‚#´èŠIa7*ö8åjV~vF϶^z„k{Á<oi8xØ–~±5sLÁú’{.ûjÒ +XuÜg¦*mÆ÷<O¦x·Vü"Î^r{t6Å‚‘¤H0ù±3
£Ëº*+ô¿JåÁª +’¾ít*œ±B ¸G÷vµžÒÀ™Sæ^5¸ÕÕ‚—×Õ¢êé<1üÎÛ;žké +,ˆA¹ã¸,xí„ùd–|JÕìÜTåÜ€~¥@瞺õ€¦{• PLw ñr‰öƒ8KÅï}!|ܚ @ÀYÇ?@³à:žãËÚòQȉ)!!þ¼À–‚ò"œø‹‰»^†Y”sƒ–ø^´ò´£F0$:EÇŽ4,A/ÇGrÓ,*´ak«Y㈬£DÇÛ3Š)ø90pƒÎWiö¸uç"‚îÐWrøÝ£<ß +ɱ¿<%åð8˜·¶©6ä½ý€·of}8¬ÔLò»…]bm‚±-Îýeš5€G›ˆ§ÓuIÉÆ܉hÕœçõŽabz“º§8ªš+Ço +5]¯8z“(HˆÎ}±—®a2êË_wYß-šå'^ÆY]å=7 +Û.·E½~ÔêØõátùqÿ,ÓˆM +!*ï|8ÄNP!”…$›òô”c®s±:%‡…ˆ²X**#9M©_‰síb‚†Ë§ˆÍ)ˆ]=ð52Öolø¤M«va&aÃCß´úQ·ü@K†}ãïë^Of½‘„ÏÈ•2^¶”x#¼+–2;ŸÜïæ„\Š^²a6j’æãZ"”ç"Š"à<~)dî»uÁßš˜ûåÊX»)V}ØF<®<ápé’:œä¤e0àO'¶R÷ôšB.ØFKŸjþRI{mј]•ŸLÇ78º´ÜÎÂãÓú~ãm9òi»tíšsÑãD:2èÀ¼šÍÝÖT`®5NiÀôCl¼#öÈUиb|A?œ³f½¶`[þõiR3`'!}Î2lhÛ’ö™¹¥ÑrûUÅÞ¥Ô"ÎÜÞøÅ!çˆÞ3Â/Ïjà x©ºXÑÀ9¯hãü#Úç’
ø]àÅx=&^Ž.Ü ¶}Øß×›«Æ‘;)“®S^>Í
øÄä=MhCe Êm×øI‚Ek]ç'g
º§)ðƒ÷7:»$;œ/RBÕUC$ÈFjÈÈÖ³9M U³ö. ¶áRK`ï"[¦7©ùÚµ%‹…oìb µOy\µùf0Uìû”WånFHºoÍìÞ,מwºb!ÏtŽ?QA\œ¹/澫ºyoLÖEó ÙÂáètä技Œo½àO?ö»¯öœ %[ê¹Öm…ò¨ak¿¥î +y9~kù-RK —Õ¾gçRœcl½žz§NئÂ)¦Å¤ª·_eùV%aLï9÷û +Ñàd#üs?“Ý~*g¡Êó#ßú¨(Æî£ðD¹oB…BËJTÿëàP‡ù¶F¼¼ïðÛHfÃ
½+¤Áh\ÓU{\HT&¹Ì°á¿Í‚Û~endstream endobj -2096 0 obj << +2098 0 obj << /Type /Page -/Contents 2097 0 R -/Resources 2095 0 R +/Contents 2099 0 R +/Resources 2097 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 2072 0 R >> endobj -2098 0 obj << -/D [2096 0 R /XYZ 56.6929 794.5015 null] ->> endobj -634 0 obj << -/D [2096 0 R /XYZ 56.6929 622.0858 null] ->> endobj -2099 0 obj << -/D [2096 0 R /XYZ 56.6929 597.3835 null] ->> endobj 2100 0 obj << -/D [2096 0 R /XYZ 56.6929 411.8393 null] +/D [2098 0 R /XYZ 85.0394 794.5015 null] >> endobj 2101 0 obj << -/D [2096 0 R /XYZ 56.6929 399.8842 null] +/D [2098 0 R /XYZ 85.0394 492.6335 null] >> endobj 2102 0 obj << -/D [2096 0 R /XYZ 56.6929 231.7148 null] ->> endobj -2103 0 obj << -/D [2096 0 R /XYZ 56.6929 219.7596 null] +/D [2098 0 R /XYZ 85.0394 480.6783 null] >> endobj -638 0 obj << -/D [2096 0 R /XYZ 56.6929 131.5008 null] +634 0 obj << +/D [2098 0 R /XYZ 85.0394 173.0867 null] >> endobj -2104 0 obj << -/D [2096 0 R /XYZ 56.6929 107.0349 null] +2103 0 obj << +/D [2098 0 R /XYZ 85.0394 147.5597 null] >> endobj -2095 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R >> +2097 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F40 1218 0 R /F42 1288 0 R /F21 994 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2107 0 obj << -/Length 3250 +2106 0 obj << +/Length 2950 /Filter /FlateDecode >> stream -xÚÍZKsÛF¾ëWðTe"ó¹)‰œU*–½²v+µI ‰¨.ZÖþúížî -”ìµ\‰tÀ<z^=Ý=_wSÎüË™³±Ð™™¥™‰v¶XŸˆÙôýt"™fˆæCªï¯O¾}Ý,‹³D%³ëÛÁ\.ÎÉÙõò·è‡¿½»>¿:++¢$>ÛDDß_\þH-}~x{ùúâ§\¦&º¾x{IÍWç¯Ï¯Î/8?Km¬‚ 4Oñ¯·—çDôúâ—óÓ?®>9¿î·<<–÷ûŸ“ßþ³%œîçëÌÙÙ=TD,³LÍÖ'ÆêØCKuòþäïý„ƒ^?tŠMV»Ø:•NðI©)>Ù,N´ÒžOÛS颢*>äuç2&ZæÝný -Ë6Êë%5¶]C”\¿/»÷4ë‚JùrYveSçÖuÔ=l¸§¬o›í:ÇNjèú®ŠjÃÓ<´]±nyEWl×eÍÃïWE·*åpî¹”qfò‡¸â{.[ú÷Ò8ÓÊùo~=k-™pAg[¶Ô˜S+Uv-K¸gE´hêÎS4u,‹ªüPl¨ÖÜÒ·Xçe…Bcut½âÙ€·9ÍÒnŠEù»*L_Ö¼L ï‰Âé³Ù–ͶìxeYÔ;â)IJ
á&ê|]ÀÖ!xkÐ6˜Ë$ÃC¶ÔßBÞP±¥*Í™À%•‹5ù£SqÀ¤m‰6ïà®7]±1Ó©diR5÷EÛM]v½[ßàâJ»¸máŽçZ$ÑÅ-¶fQwßP7Ÿ©,Zª÷7‹¿’·ÀSy‘÷¬ÅÞ¶Ø~ U2+h[¬šÖK"”·Àíf]=œJ)£Ñú.ªžØÏÖîøKŸ;`KMd=ç'»ß±Ó,í¦©—e}‡ûÍÙˆ˜Žtl¨¶Uó»Âë¶Cµ˜æ6§’‰nòÅ¿y\Ãß0e]|ä9*ÚÈÞ‰ïê7Íç7RDïzÂ!tO-‘/›)™¬œM¹h•À%UBü@MùMÛT»® ÚºÈk83Ñü®TJÍ°Ó@Þ3 -Œt7uÅ„‰Å¢+âþàHóm©ˆb?ÕÀB`'X³°¾¿V cõš’WV6¥XÙ¬Ù+#”±ŸJ,Xôšb
ëƒÅÛ]¬¼Aô
}ƒÎ ½îÙpÙXº Ë’6’!ç=]x%ûöµƒ§ž‰X˜Ÿ<Âz×2ÕèAQ@$²„‰èq™œø - -žiÕÜS¡jü@)“„yy©›b°Ð2´Ý6{ÿGGž…ðmWÍ®êi&CRe»ÈY+ЧÐR„KàcWUsß‹D·¢5¸c‹íXèx(‹ýn ²Ø‘Ï·V±FPHÏû‡5 Ï›ºî¦P ì‡O€” ~653íLœù)öZg`#Eª?Ï^O`}vL‰Ï3aÄÁÔŸ 0CgJ±æRI -z›*ÒÁ÷oáÙ4`JÂÅ™¨Ê}Œ Ù@Ù4óÚ•Ô4Tq¬º0C]Ü圱$k,^†c"º^…qãX%ö¡D£¼âóÂ6Ò)–rkûp÷¡:PÎ`Þl¯PP¬›9˜ÙÕ<„n°
íüå¯?¾}svqBv¦k‹vJîoi·k’µ‡fOé~¯ ëüc¹Þ15Úº Ûð:ìÙ%†ìÚ@4}@#·í> ¢W¸éLjY¸X%‰š
âË„ÅYçÀ€ë8“Ÿ5eq\n…ùœÔ*ÿ)Âó·£”’ƒ§˜Ú´JÁ,q ˜ŠåÓŠcÆHÓ5jñá~×Ð@FKdD¨Ù=4”£É@Hz°£M-¯z\ˆ—Åm¾«ºË׋D±ÿCncìÍ®¼>º²8˜¨-º'Ä¢ç÷—Ýà¡P˜— -…¡‚,Kžaâ$ -§::Ï1Àª”¥Neù-„BˆY[ÏMø÷°ÞÒ—š²¨¼7ŠP)ëÊ«+ût -¶hlG©§£¢AÏ9#:±7tbh蟅Ûò‰›2õ¥îþÓ=Ÿ¯ñ’Êpwªôçz>ÐÂ==íù(£öfäžùh|ÆBÊÜ €Ç&’8l\b*ŠuÛ5DÁ›h¼@Lã
P³»[KºbuÃK7U¹(=ÂöA„ÕÏ”Á.öy^M8o•\i1å×é\ÜŒ#¾Ó<r
»5J,‹ç›|³Ù?o,¾ï>˜çý…«‚çÑ™Y—í±õŽòÓØ‹æšr;HQ-%Ö*ÎccÏþ%ÇQï¨u”ÑÐâÆ\”-}F³'‡¶¶¤V„üØŠ/N.Böû Wspe=÷ë§&Šóí&Ÿày2œÕ>åRN!»$zw}E…ƒü€¯T‰èìϪ⠜ð{æ¶à»Gëôï t¬óe1ž©* -So6M[vœŒ¤Á±3ÌÅÔàŸåÔ‚RßT<õ »«À-ÙåUÅÉÓûmÙͧPaWÔ>û‚~Ý®åÔK/œ#¤Ü‹O?¡|qÊ„6r žŠå;$˜ÈX¡Kî'`÷
:ø©Ëú•@ÆÉèœ9¼xÅRß/4q$
kb'>î㘪Gú.Ìsï\Ú>yyG‹õ Ú;_XÔý8¿˜ÂsËÁÇ¿ÑÀÆÿâú`{)ÃÍêÿ:%„gûkQûÜ›(Qô{þoÕÑŒ¹©x -3Ñç û_@Á/OHXo•3åzï¤{z’ -ØC ä<µÑ '½†/€ßØt~»O›ý6ˆ‘ýÁ¡(¯óßõ£Ñv.ùýè‹Nï¡gªb§µ9ȼhCüæíÕÅO†¶R‹h¬½ ŸÄcƒ•¾ló{8öø‘€XN=ÃÄÄ&1ôó,°@.^ SðGJ^°pÛ4O§Âgk¾gþ\ Š0)“è+¶4I:õK@1{öö>õw‡ûß^‚G¯ÝàöFHÝ'
¨rØ
çòXPjt_e2ü¹eœÅéüÚÇÎ?ÂK¶¸÷»
ÿ^ *ÿôÆ ØF–/9üÞ‘pâuÚ9êendstream +xÚÍZÝsã6Ï_áGgfÃã—$òÞÒÝl››6íyÓÎε}m%ÖÕ–|–œlþûP–m9Ù¶éÝnfVü +J Ÿ$:¨4/~‘RWðÑ°¨ù´~@©tjˆ¹NÊL½eÃTu”U[܃æ¡qZÜÕ›såÆu†ù±ƒdÃNU,稇UãkæB£æ‘O[SsþP—QªÕ´¼ß–í‹Á×ù¦Å`qÃ4’ÆFp±¸ƒ$TóNn¨ÌËæß5h†lC凨Xõ&Pe»IHk,ֽɰ–†Èmù˜?qk û†Æ'ã뛾Ô{z©ž^°Áhy ð/·ECå°P©ïÚ¢ââªlÛ‚GÞ¢zEµâS¾Z/#ƒ’B¡¡-ˆiÓ6‘/}AÆ
®ŽRj,:Y3ávAVÒ*µcfPoCaÆó¼Í©Toè;yG^ÿ»¤¦¦˜µe]1Ý}ÛÈx2¡ïNo¨Ü—Ø6aÛbñ·ª~\óûâ+X¹r–/û¯Yî¢jó Ä€ÝÙûˆ¡ZpdìG6{¿¡Ú#[•÷‹–ŠÍ¢~<à:™0ú³|³)ãRÆåÊ™EÑ4ù=È›¿ú^ð·Bp•i*Eæ>Ëù MSì;ß?6*ÊÑÃð¤4N/.Æû¬.:.Rë„Ó™ë\»í»v%=8~oGi¢…UÖ†5¹þp-®ÞýÛ05NŽ¿ûx~‘™L•„)Ç?]Ý\M.EGv +¯²ä%‹Ñ +–ð¾EÀVËÀnÀYe1J/@$}™Þœ_02J#æ%KQ)Ä^Îd:`À yƒ÷/x·HPCfú%ëQzCGÞÞæ€(¯o )À¢³Ó°ô&ürM#q`á‰~Á2¯!‚vé¾eÄíaNbÐãþJì®ÿ£vº0ÖÃ
MgBfû÷“£{ +8a]@9U"É^¸¦ÀµG¤Vë]´w–౶2`Ã"à.áC×~ …]] …•ÇE9[鬮š2Ä~Øî'Ȉ:Uz1-[jª¶«)FóX¾W&ŒRjúÔdÆóz•—,H•¯ +1çÞÆÀ'ŸÏ9k"¡pçéE?MÁ1E‚]ÿp‚Dm«œƒpóÀÀª†0ï 2šôë"áªhX>û&|·Ú‹ûv1KÓ”Ÿ:ÕbPX¶ï±>Ð; +^ä³Å~DÞ.H¦‰2ÐXF ›Á°ôC¹*!’_>G‹â(”ô¶·±#ëÀú“ÏÝ_þí/ÿ? +%£N6u"“Æœòü ¸iŸŒl¦…vžN¿Å·o?ˆï®o9 Ô>£ûM°ÉÒD…C +[µÕò4&½é^ “ßs*¼¾ÕªÌ÷N«AüLéçÊã,;¢²yÞýt¦çÓŠ£ÄU9Ü`øÊÀLrÀô‰~O0Ç”K5“¿9å¾ØéÎË;”âŽóUÛ¥Ø×wÕ-0°‡îD8åq}¡”L»ü¦>‡ÈÌë]Ù̶MC™„Þ”xVçZÌêͼFìpc¤P&äàôx^4³M9
GfÍ8ƒfüÎíb{SlŠ
iÚ.U†}eEǺП3]Þ-n¢¼ Ȥ`/µÎ8¥Ö9ÜMÇú@ƒÏ¾˜RaLH´µålg×Ë"¤n à3j_…0tZoq½ŒŒ\b6ŠÝye<¨ô‹L$Ç%±m¶ùrIÙ¥7”›k\sÒioe ²‚اnZ˜A›±>ã Ú›2d½0v·\¨ƒlheõ5ð”Ž1å„U”ëyüòÀ§u° hYç冉… ©!\í"yg+ÐK` jÌœ( YV–Y<äa¯ØZÛ®5›pÆ;óã:ÇØS‡Å€¸€W3$¬‰ùLk–BÜßE±\3›§¦-V
‹P@¸´*+þ¸(â¸Å`ÂvÂ
Ñ[õ•Œ[B˜6p`üÔØ%M0¥°$P +Ëk(Ö£,è’:æÅìtóDµ°^ð-`q–øð‘¶$
iK,5kX¢bV†7ÏÓpüX<&ŠRÒg½)ëI¥Æj{‡2÷Ñ`lÆÁs8>I:hëñ²i_φúÛHØË¿c•x¦]äMA{*öàAÚ†hó–{Ýs´éLE3íÏ‚· +Ží<8q_œœŽÈË&{HMäu<÷rçz±¼î“AŠŠGÅÙ‚þ~Àj m³½y\Ðôéà½,¬’à5<¼%3àÊfÎÞ3}â>ëG pK2•ý¾káð¨¿"™uºPÖÂ]îDƒwõ,½mAuwL°È€&ã$fõ*¼ŒAÔ†‰£¥çì¢tá=(“ìªÄÞÃ{¼‡{<HØ—äÏ)‡0ªÌèWÇ+ŽFç{"·!¡Œ½Ê¤Â2^‡àøŽ àèÏ@GùQâ×…G½&<Z‚•æ%xàTITêOà£ûøŒ]¶kQoîŸA§7ïl<Ò ŸàÏl6¥E’*ºÇoˆþw;Î…½6r‡ê4D½É¿\ˆ@Z „/ $¥Heštì!8óžHŸ„¨7ùk!ôù™Ä¿âÈÀ
ç¤MFF 8¿íó™Dà€ƒMG)ø7ôc99zqÍ?÷§y»Ÿ'ÚLç^È[šD +\òÞÏHº‹¯>µE5Aç‡íš/HPù)\bà®RÖE”6£ÔQ²½û9 ÏØCΰƂendstream endobj -2106 0 obj << +2105 0 obj << /Type /Page -/Contents 2107 0 R -/Resources 2105 0 R +/Contents 2106 0 R +/Resources 2104 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2072 0 R +/Parent 2115 0 R +>> endobj +2107 0 obj << +/D [2105 0 R /XYZ 56.6929 794.5015 null] >> endobj 2108 0 obj << -/D [2106 0 R /XYZ 85.0394 794.5015 null] +/D [2105 0 R /XYZ 56.6929 673.1367 null] >> endobj 2109 0 obj << -/D [2106 0 R /XYZ 85.0394 613.3608 null] +/D [2105 0 R /XYZ 56.6929 661.1815 null] >> endobj 2110 0 obj << -/D [2106 0 R /XYZ 85.0394 601.4057 null] ->> endobj -642 0 obj << -/D [2106 0 R /XYZ 85.0394 465.8716 null] +/D [2105 0 R /XYZ 56.6929 493.0122 null] >> endobj 2111 0 obj << -/D [2106 0 R /XYZ 85.0394 438.5672 null] +/D [2105 0 R /XYZ 56.6929 481.057 null] +>> endobj +638 0 obj << +/D [2105 0 R /XYZ 56.6929 393.3436 null] >> endobj 2112 0 obj << -/D [2106 0 R /XYZ 85.0394 397.0946 null] +/D [2105 0 R /XYZ 56.6929 369.004 null] >> endobj 2113 0 obj << -/D [2106 0 R /XYZ 85.0394 385.1395 null] ->> endobj -646 0 obj << -/D [2106 0 R /XYZ 85.0394 216.4249 null] +/D [2105 0 R /XYZ 56.6929 169.1494 null] >> endobj 2114 0 obj << -/D [2106 0 R /XYZ 85.0394 186.4354 null] +/D [2105 0 R /XYZ 56.6929 157.1943 null] >> endobj -2115 0 obj << -/D [2106 0 R /XYZ 85.0394 97.1422 null] ->> endobj -2116 0 obj << -/D [2106 0 R /XYZ 85.0394 85.1871 null] ->> endobj -2105 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F40 1218 0 R /F42 1288 0 R /F21 994 0 R >> +2104 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F42 1288 0 R /F21 994 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2119 0 obj << -/Length 2154 +2118 0 obj << +/Length 2813 /Filter /FlateDecode >> stream -xÚµYÝoÛ8÷_¡‡{—ß"‹ÅfS§çEãô\ïæ°m[IÈ’kÉMsý
¿dÉQšîõª19Îpf~3dH„ቄDRS¥š#‰ˆÖÛ Žî`îõ„xž$0%}®_W“/˜Š4Ò’ÊhuÛ“¥VŠD«ÍûX"†¦ Ç^-fÓ„ -_Ìß -Ìn†¨Öò›t$i-ø¸Ž8Jƒá䟕åÖaåÉ°b(êèrÉ)â’ËÎå”F„ -5>—±”È(%šrëó…q‡åÔHHN#ÁH0˜Ç–ãjšH¯à?qÈÄ)M#)Ä–âfëèSDæZ3ÇÔ£Ç3°?η4zUƒEQϨ 8éK¶FIÒ‹c_à‚ýUŠR.©ÕxuŸ;«$í±‚± Áª¿]-ç¯çÞúH!°ô|eQåÍ4aÇEå¾-ˆ·D>e8þ’mwe`Éö~êÖLÕ{÷c·¯§DÄŸ‹MQݹ¡u]µnyë…Ö_ZÂI¤1’Î¥ ^]•ÀOpüÒÔQFűßÔî[Õ'òuÞ4è:ay¶ÛåfŒâ%A3¹nYéèC“ÝåÆÈα=ìãnî -8/à0ÆñÐÞ!ôŸu•{Ð/JO½*öùNÖŠlj)àPšBLrÒ¥]B•Š/38ê½£½(¥ã‹z¿µ…ч¬qDQm‘•&VÌÏMþcZY?ÙY·tyqî >Ge•ç¹w¢tÜnšüÓ!¯Ú í&Ï+Gå_Ú¼Úä³#×÷F«‘˜tÑvw&N£3è¢mòòÖÓû®Ë¬ñ$Är¾3{VžŒtÄ~J@¡um¿›ŽÝs}mûí¡ñÂnüHíèôn²mÞÓuF‚׸wÿ¸pð´SÌyÛkµ.¦´’*¡J%CÓAŒ4¥Ð…8¾FDq¤aAÐ|qþæ÷W³I’(¥GI͈HÊc*
2W«7î *¡´i Ä4¤*çÇ|@ÄgÄ*œå/îóœµISÜU@’—óàúÞ†£ú€bο0âD™Ý䥛3D2ÃøÏîâg0Í˱•‰°–ÅY³Ë÷.`‰[ -£í”ÄVÍ£Ø_‚,7Û›Úïè<½sŸB´9Ñn}Ø»I½°¢Þw`yš3gíi¶Ù¾}&>ÿÝaŒ±ÌÉ4L¤6Tp2:@3ŠiºŸï»Âtãíf'ðN9xZ8¡H¿‹‰•RÏ q'0éI´H<PŒr…‡¶"p·Gì¤i‚C§òóHÄA‡F™ÆÓ·uYÖ6Ü><úsÜgEi›ókS·&ÐHÆ@+ 3R2Cô2ƒžfFH÷a‰x93Þ=Vmöåï#û3ØH1'P{`‘"F(õ|›z›Ur<ÆÁæÐ8RÎC´¼‘Æ@X6]×Û‰÷#Hq};>¢!4Ü9HûX;(Úä6 ‰B¼i†v ¦]ù!ñCáê ñµ€ÚÎÔ8ÏY»oV=:âP}‚®°²q+N*2ýðe$º•!g‰OObswß´Sƒ)Pp¢3»‘ðÕÍ"˜›ðÃûfvZÆ4vźhÇê
IÁœÈ wŒ6’Ñï‚Q‘²ˆAª2Åþ$&}‘# !R -÷eep˜àTm 0œ»À-È×××àØ狳Kóz£€¾<›/’w³å³å8P»ýÒÁqC?]|ÎÊÎ68ð§:ã¡®°=šýëìòí›:¿ºDNi¯Šj2d|ê
‘¦Hÿâ‚Ø“ršÆÿ[=t¥ƒ"\¿:¼¹…vú™j$ £I×ç¾X\Ã5"4SRˆ®Y›ÇÄiD -¸>¹àÀLW9€öýPŽçs¾÷\öDŽr”;ÆÉ„ÁG7zŸùývûÂ^ÏN–Žà$(MÅ7Ü‚o8qUWë| Ö<6I˜zQý@r/&ö!¯úoÙ=÷8¨c^ÔGžÒq÷ÜôÝ÷ÇW-ã|¥hÿ!ûéß.¼NƼÞ!”ñä-=ÞÝgþíǼ;ìvu¸žþ1…‰ó}SÔîn-
‘1!üÉ9Ø—¤#ñ#þ2¼endstream +xÚÍZÝsÛ¸÷_¡‡>P3‚‚û–‹åT7‰*º¶s¹<ÐlqJ‘ŠHÅÉýõÝÅ%SN®Iç:™ ¡°À.ö㷀ňÃ?12šq•Å£4‹™æB–›>º‡¾W™„A“þ¨ŸÏ¯”e,Kd2ZÜõxÆ£Åê}ôòo/Þ.¦óñDj%l<Ñ ~š]_%£ÏË›ë«Ù«_æ/Æi-f7×DžO¯¦óéõËéx"T¬%0PžÅ¯7×St5{=Xü|1]t[î‹%¸Âý~¼xÿV ÝÏœ©ÌèÑüàLd™m.b˜Ž• +”òâÝÅß;†½^7uHMZ¦Lô$åžtÆ%•ÓÓ›¼(A)£•-‹Ov÷‰è¡(=ýÖÒ7o[»Ù¶vE?Û…~÷—Z€ÜICæ`Îìç|³--[Öšq´©,eFóÄOÈ«Õ׌qØt©ü +WÐ=3ÒH?å7®yQy1*/a½Rï W<Cš ë&*Ì$´+Ë´–ŽOqGG_Ù¢]Ûý¨=±]×¥f³_.]=£_=Åâ°A½%ÓJôEd·ùòßû-«w÷Cj“Lè8èÙp¿õ;è‹ùÉbÔ r7šÈD°Ä$ +ÕLÀ‰96hå +Lžs½³m[T÷Äm±xÝl‚£˜e±ˆÝôÅÚ-žDm±±“¶ž ØD!¥ #O˜ÏéûçÒ–+úQ44*§ŸJNn‹ÖwU½''‘;8»¥Oc+²I7Šì«¢mú+'Qc—uµjÜ‘Ð9÷–L¢í®Ø仢üâ4–À-ö'Êï ©K8׆Hk[Q„ôÖùÒ Íù¼¢bãÕ$Ð*5V¶YîŠ[ë9ëj”µ; +áÛ¬ë}Ù9–Žbæªh–¹÷ŠîVðp¨<º«Ë²~èL¢]Ó¾·ý²uÛïù‰‡¶Øí~,÷;úYµ¥÷§l×¢óãd +q‰ŽpIZÅμ¥oK£!³Ô[¢`øq„À‡¢¶(ŠP7ê»)˜+ù õmüªçxeïò}Ùž„¾Î&ì +…hMS§Ô>Bc;¯ƒVNÒþnèK1Mj¨}ˆ‹ð£¨NFÎçBZa倎u?Ø7Êè Fˆuüëx?Öq/‹>„O}O©?êìµÆŸ‘KEÐ;…òŽpÿqÑó¨øQm?ƒâGKÍ RRO?š§P"yÀûOQe‚‚F&ñÐÃ#‰,‰+;‘÷n7¨¦e"‰æ‹ÊŒ]ª÷÷ë“Á‚ŽgÝú¥ìçmY,ˆÞEWBÄ`z.Ž`—/{ž
Ô'IM¬*dÆŒIC¥q¦<ðcU±¯fZ¬7Ï7ùv{ÈpÞ|go?Å_/æÖóQäÍS©2Ù^ïÛ¢®¨v»vqF¤cpÓ]^5eîÇAÏ!™ã¬Ù[¢æ«•gÚP‡;DèÀE}¬Ï(?»á³ak+¢"êGêÆÂZD¢ç.JÐQðóGQT·~G,ßmó½@™/2êÕ€i”I©TQ&‰Þ.æÔðÉÐׯXV¤’GSˆC…KT0‰&'>£9ÂÉ\÷Ñ:]&„ŽM¾²ÇœJ0‹ºM
pÒÕÈaÏG(©)î+Ê`y…¹ÍÈC¡«c,“§Åò(í«Ü± eWܯ!êMbžd TúdŠ¬·Ûº)ZKäÃB®3ðò£¡DË¿¿=«°žõ¡Xþ}³ÏKW¦àì]ÑN†àck+æÀìtv©8%t4‡þ]FŸÈ.È{ó”§æ)½}a‡€É$V厯à 纬[ ìá + ës?rs¨ÓÝx² +ØC‰ò i©$ºrH²ŸÜÆÀ=‡,2 ‡÷½k²þ6Êùü_Ï–Ò +Ké,Sb)DùvHfœÅžJ%,‰ãC-bOµ´T€¤]Qr3Ÿ½š]'Z(;DÇAYµï“à +×çÇýŽ²Ž‡Eu€®aÇàWäA~H¾ó]wØE5 +CíÛõƯÝíýUQúÖe±£[¼sÏI†Îuï¾Õ¨/AÕ;j{V + ^¬Ü9¹^š:¿zIÁ•¦=ãÁjö·ý¸ïÐukÝ´ìgÀüôF‚5è?׸«§pX'‘6:ÜOcË»ã[âe™7M(«Wv‹kVáÂ0¼ø=Æ R†—ßì›öøÕðð”2óp»íöÒÝ‹Kˆé2½ 1¿ìßÙv»Z–û•í®zR¡I1Ml£©Ú{6À +2°*0š]¿|ýËåt¨â'Jåé+¼?±À¢ <ݛǙ‡åî †žéùè«î[ÿ(àà®qÊ”1røÊKqÜw&Â¦Ü endobj -2118 0 obj << +2117 0 obj << /Type /Page -/Contents 2119 0 R -/Resources 2117 0 R +/Contents 2118 0 R +/Resources 2116 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2125 0 R +/Parent 2115 0 R >> endobj -2120 0 obj << -/D [2118 0 R /XYZ 56.6929 794.5015 null] +2119 0 obj << +/D [2117 0 R /XYZ 85.0394 794.5015 null] >> endobj -650 0 obj << -/D [2118 0 R /XYZ 56.6929 617.17 null] +642 0 obj << +/D [2117 0 R /XYZ 85.0394 729.6823 null] >> endobj -2121 0 obj << -/D [2118 0 R /XYZ 56.6929 591.42 null] +2120 0 obj << +/D [2117 0 R /XYZ 85.0394 702.3779 null] >> endobj -654 0 obj << -/D [2118 0 R /XYZ 56.6929 518.3317 null] +2121 0 obj << +/D [2117 0 R /XYZ 85.0394 660.9053 null] >> endobj 2122 0 obj << -/D [2118 0 R /XYZ 56.6929 489.3118 null] +/D [2117 0 R /XYZ 85.0394 648.9502 null] >> endobj -658 0 obj << -/D [2118 0 R /XYZ 56.6929 437.3327 null] +646 0 obj << +/D [2117 0 R /XYZ 85.0394 480.2356 null] >> endobj 2123 0 obj << -/D [2118 0 R /XYZ 56.6929 411.1024 null] ->> endobj -662 0 obj << -/D [2118 0 R /XYZ 56.6929 208.889 null] +/D [2117 0 R /XYZ 85.0394 450.2461 null] >> endobj 2124 0 obj << -/D [2118 0 R /XYZ 56.6929 179.8493 null] +/D [2117 0 R /XYZ 85.0394 360.9529 null] >> endobj -2117 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F61 1416 0 R /F62 1419 0 R /F21 994 0 R /F11 1509 0 R /F42 1288 0 R /F54 1383 0 R >> +2125 0 obj << +/D [2117 0 R /XYZ 85.0394 348.9978 null] +>> endobj +650 0 obj << +/D [2117 0 R /XYZ 85.0394 144.8272 null] +>> endobj +2126 0 obj << +/D [2117 0 R /XYZ 85.0394 118.1807 null] +>> endobj +2116 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F42 1288 0 R /F21 994 0 R /F40 1218 0 R /F61 1416 0 R /F62 1419 0 R >> /XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2128 0 obj << -/Length 1895 +2129 0 obj << +/Length 2274 /Filter /FlateDecode >> stream -xÚµXmoã6þî_!N*._DQê§s'M‘uöwQÜv?(6ðKbÉ»Ý3Ò–Åuoï ‘Ãá¼>ZDþD”kÆU‘F¦H™æBGÓeG°vÕž' LI›ëçIïݥʣ‚™Ì¢É¼%+g<ÏE4™}ŠÏ|˜ÇýDjg¬ŸèŒÇ?_.h¦ áüvty}õÛxÐ7i<¹¾Ñôxx9GçÃ~"Tª%P^Ä¿oGCbº¼¾ö?O~í
';•Ûf ®PßçÞ§Ï<šu¿ö8SE®£¯ðÁ™( --{©VL§J…™Eï®÷¯ÀÖªÛÚ妨Å×â¤c…dE¡Óîcy”ŠI™oË¢}dy2ì8µbf4ĬØGQÊHVh-1ŒgF@ôŒF¶ŒÂ8B;΂é,È(8ÓJ‚æŽã¶Ÿd"žÀ¿ŠÈL¨f8¤†I
=G‚ñ´(1µhgëÞnâÝõRFk°(j'mÉÎ(P|ŸšB\”d)x5_ž÷“Ô1dˆ*çqýd§ÕœK[ÓRóX6²Ä3Ýn6våg×HMWÕŠ&êÇõv1#Î{Ks[7ëõ³å¼±Z(WäÖL¶tU b¦Séýzv=J+JvÉ.ZX`7¿]½˜¶É*eJá¥ü¦:¾ïKoQ÷4‹«†&«šÆºZ]@¯WÄóõÑ‚áš$ -pÁ¯×4y¿n‰ZÏiõ–~ïä±òlSRÃí°ajU7·‘ìÒ³—4Ìl_ñøKU’ëù¡Ë› -Ý#MÏ7ë%Q.™Àdú‘ÈÒ3¡,[6ÛíÙ~3G´ƒ½¬—´0,S™ŠÚµú}å@£AT”ì!ìûÀéQ´{@× “FRí!k–B8ç.KX~6™ÜuQmì´©¾Øð‰™²"$ëîÛª)ÿüÉ3Ô -ÛhÏ0]/—X'¯/òTAŸ©*`#3®+ X¡dNæY(4Yp*?$¼Žô1ék(á¥
_…Œ×Dß ÷õ׌‡AÐÄÜeõö¾¶Ï[WÌø½é‹<¶Óµg5M~°ÔÚ®fáq…uãΛÜÔPs)døG<º\T¤D\’PšÆb
Æ”–Ç€rõàs'R¤&ÍU–š©A±Õ¬f‘æ‡>Û‡úÀëêàu„Û6 >Ë\óá*©ànÙÙº)“ /D‚g»ÔÎ|bï÷eí`ßu, -Q…áŽë’U0!µ …¶(ë.dÁòÜí2{!FƒÊyйùöä
Üt˜B¼¡þÿ/åÿ"P‰âS ºÏkóVÀñI2£3ÕNp ·\ír¨¡Afñ”J²l,Í—4ÔvSY¿É*ŒÄY¯·Ž˜Zð'Pºk–ÜæÕâQ³jŽ,s—ûð=w;Ü bl9}ô;¨Í@òÞo-W4VP8%Üüø6èªý$X}pIÿ¥«àeíú£)¦²Œš„ÌxŸáúG[Bƒôè»B<¯«Zœ®mSåzXzå'\¤ÉçmEÄÁ9 ùéi½i¼Äí=ïdÚÞüÅnjßKC¬ŸÙ…}(±QÙ\=ÝT÷G@NBçXL[ûÐ..Æl0þ€Îyá -•§ %“ë6 -oËGÀãNd]Í<¯KĽ2Ï[7#vxäT«wŒö-vàðâ¿V‹E—;ïý-ˆžžfÀ[УƮMÙxå€ôÊá.RQÆWÉþ0ŸwÒöó^üwuýËíÝ$ñÅ=Ù+¡5;ëJ«Óä` qüÓÈ~8ùw -^ø†›7~©ÄB*D~ oUžwýTÉw¯˜ïþatÿ#@j˜ÊsÙþU±Õó”)O%x€ ,ÚB6I‘µf3ÉI_ønuO¤YÀ »ÐáÇǾ"†Nº÷¶}á\r¦s(&hËÿUVl,endstream +xÚ½YÝoÛ8Ï_¡‡}ŠËo‘‹Ãa³©Ûó"{‰·=\¯Š$dɵ䦹¿þ†_6e«×ô‚Dc’Îg~3C‘ÃI„DRSäš#‰H«œÜÃÜÛâ×daQ¯úm~òó¦´¤2™ßE¼ÂJ‘d¾üJÄÐ8àôŸW—ÓIFNßÌÎ"ŒšžýíôùôÚMH¿ô·Ùåk7¢ÝãìêòÍìíŸ×§“œ§óÙÕ¥¾ž¾™^O/Ϧ“óßO¦óȱZ3#陸q²í~?Áˆi%’GøÑš&«.œ±0RŸÜœü}Ç0šµ¯Žš‰`D™¤#v¢dÌNB#É(ÛÙI fÁ§ó‡Òiø«{ü\ôYWÝ7@£.0¥SœdøR‘[vïÊ^e4ÝvåÒP,üHo™Q·eíæÌíÆ
7Ū´»øLËzùÊüá]–ݺÜÍÒ½â^…Ñ~BR+æží¯M»§ÕmëwÜLˆJ˵{teÓwÒ-¶7ÙôîvSÝW
2Êu AZjÕ=íú`·®/6~¬½;˜ûwÛ”Á¬˜Öå+÷£òë«n¿ÞڙćGàô(¦æÐÍÆqKx|9ʹÊý»ÙwR'-ˆJrJ‡?Ç?)ÒJ©qïÌv³˜¥u½h”+D8–ûŒæÀGT¥i‚¹Wä¯#Ng^‡æ°ïÚºnÇ oŸ¼)7EUWͽûµl{ãÈ3Œ·Ì(Hè\$“p¼ŒGÁAƒã§«ëÙۙǂ×Õ¦\ôÕçòÛÁqóÔôÅ—_Fög°;‘Â+øÛu‚GëxŽ-ܺe»*ª&Û›q°¹TˆræÃ7Ìò°é¢]ŒË3â)Σcæ#¼“L…p®Ù±C– åÁW»Ò¡ !VˆWÍÐÂtÑ;걪kGÝ–nU±^—ÍÒy +è‹ÓÙev3½~5ß(PÇû™ËOÛêsQïtƒË|ð.l¦ÿ8½øã|ŠÎ®.Ú‹"‡’ +°†Ä©±Q:bGéhvyvþçëéËGaƒã"Â{¼¹«ÀVãÙH +XFÜIìtBBŸàú*Ŭ·îä+’Îá?Mn:€'Î!im†Ô¶¢K>%7µfnQD[]÷6°?ÏV4yÝ‚FI¤T`œÅœR2ömʤ< ¡H‚CX€~s6z\§P + T\unʳ£J·Æƒ
3jü•@mnƒÇtí¶^º•¦×0c›²ëÛMéG‹»0ØNå +q5ê„*Ù¹´)Á´0Ï®r¥‹¡ÛÆy|(mb ¸ˆLÀÅÌr‡–Y°ÐEݵ~vA¸aäÍdj &üíË…¹]c9ó¼Du”¹91OoåßÛeNûF†š®wç¶-—Žwá—î±,'ð»*²±’±¯ŒyÀáÒ»M»r”u&CgzåÈÂ/2¼Ê¢ßnÊ ìé'-ÒÁÓèq$\jD8sª/‹~ƒ3BÃx¶¿|6Å€½‘”ÿý‘âÜÜ#’¨6åGµé|~þãêRÃü¸òVŠëPÒ-Ë»b[÷Yß×ÿçKð±Ì˜ãƒk‘[`èP3 +‚5ææe´õ\%íŽz`õáQ‡*)V)j|]DaʦýžQ¢Ì¿ŒAÛÅ…Þ¹¶ôŽ½ÿBpQtö퇅*Ó/}Ùt +ÓçÇx„‘iFÕ÷6luÑID5‚–Hï"‡)ˆ¬‚ÌýÓÚ+¸UÀXAüÿð#"ûŠƒw~øâoF{7M„R4.aÜËd䎾!0ôþuëݽÓÍv½nÃgŽwè³ÒrcœÞá—‚¥„È##„ïTÇVøÁ®endstream endobj -2127 0 obj << +2128 0 obj << /Type /Page -/Contents 2128 0 R -/Resources 2126 0 R +/Contents 2129 0 R +/Resources 2127 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2125 0 R ->> endobj -2129 0 obj << -/D [2127 0 R /XYZ 85.0394 794.5015 null] ->> endobj -666 0 obj << -/D [2127 0 R /XYZ 85.0394 655.4043 null] +/Parent 2115 0 R >> endobj 2130 0 obj << -/D [2127 0 R /XYZ 85.0394 633.1281 null] +/D [2128 0 R /XYZ 56.6929 794.5015 null] >> endobj -670 0 obj << -/D [2127 0 R /XYZ 85.0394 552.1893 null] +654 0 obj << +/D [2128 0 R /XYZ 56.6929 769.5949 null] >> endobj 2131 0 obj << -/D [2127 0 R /XYZ 85.0394 525.0283 null] +/D [2128 0 R /XYZ 56.6929 749.4359 null] +>> endobj +658 0 obj << +/D [2128 0 R /XYZ 56.6929 700.3679 null] >> endobj 2132 0 obj << -/D [2127 0 R /XYZ 85.0394 90.0274 null] +/D [2128 0 R /XYZ 56.6929 675.416 null] +>> endobj +662 0 obj << +/D [2128 0 R /XYZ 56.6929 479.5947 null] >> endobj 2133 0 obj << -/D [2127 0 R /XYZ 85.0394 78.0723 null] +/D [2128 0 R /XYZ 56.6929 451.8334 null] >> endobj -2126 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F61 1416 0 R /F62 1419 0 R /F21 994 0 R /F54 1383 0 R /F42 1288 0 R >> +666 0 obj << +/D [2128 0 R /XYZ 56.6929 222.9107 null] +>> endobj +2134 0 obj << +/D [2128 0 R /XYZ 56.6929 198.9501 null] +>> endobj +670 0 obj << +/D [2128 0 R /XYZ 56.6929 111.8829 null] +>> endobj +2135 0 obj << +/D [2128 0 R /XYZ 56.6929 83.0375 null] +>> endobj +2127 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F11 1509 0 R /F42 1288 0 R /F54 1383 0 R /F61 1416 0 R /F62 1419 0 R >> /XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2136 0 obj << -/Length 3678 +2138 0 obj << +/Length 2817 /Filter /FlateDecode >> stream -xÚÝZKsÛȾëWðàª@U"v^À -Ú*¿³€‰ß œC•Ï
qœÃhˆÝjeÕ¸%©,’ý%<Ø‹ÚÍ&±ûàiü±L)
Ïc€F?ßI¿U1›&}!uü
k¶SNá<ÌDŸÇ9p‚I±©_ˆräršÕË}¾ÈL“±¿z,‘¥ØW&[×¹2¼Ïêê`*ËŒ>Sï²2ej7Bìa¹°ƒ–4*i²ÔŸBûuyÄÊ«ór]8Áí„[iÚ#½š8tz.† ÎÒª@ÀØu×%ζŽÛEUÔÔxÌ›M^RÏúto®À&è–ŸÓ<ç!'°cêf'¡E ´5¨¾+’e–NÌ…€{åŠejÚé -½¼ÉöIct?$Å!CÙ‰¥w¯¢þµ‘~¨$4ëµð|ƒÕªC³;UÞ±:Ðç2ËRúÞØõ -|¼³¸UÌWàVc»çßLLª™^Sî3˜x†]=B¾ïlcvñÉ. -58Ôî½]_Î9cÌ»NÓ¼¿É›Üì9Ø”˜á‹3 -Pk•Ô«÷ž%†àÐ<'®Ïƒƒù‘ŒÃ:Ìâ5•Ùp¸·$C†»UT.,}Ïš]¢déoepò06W¾ÀŒØ -¦ÜnLuÂu#¼Ý §±ÞŠ!Ôñ龦*@•dë6ÛɪªD”qI(³ÛìkÛ°‘"navÆ<]ù +xÚµZÝoÛ8Ï_a,œÄ,?$Qº§ËvÝnmÚK|‹âÚ>Èm'K®%7íþõ;ádÙ¡]ï?âÇ3œùÍi1àðƒ8d\%Á@'¹³Õ, ïõ…pcFí QÔÏ“‹¯T<HXÉh0™÷hŌDZL²Ã—¿Þ¼ŸŒï¯F2äÈ]ˆ¾½û…Z*^¾»{uûú?÷7W:NnßÝQóýøÕø~|÷r|5*%PŽÄßÝiЫÛ7ã«Ï“ß.Æ“nË}¶W¸ß/?óAÜývÁ™Jâpðœ‰$‘ƒÕE*Jµ-ÅÅÃÅ¿;‚½^;Õ'¦PÅ,Œ¥öÈI +ŸœÂ„EJ*+§Ë×ã»1ðŸÈáIJ“doR$™#XߎÎkà]†Ãmm2ª5–Ñp¶¹ñФ¡ö”ŠÚlrã&Us*id]mmefˆ +̬Hëº0µ›y{7ºùå—{vsÿ…yÓÒkpGô…Ëa7š% +ÔܞŻûÛ×·`®çCÎÐv$ëѽ±4쬧'§g牑¤Ê¿¨¸{ òa|ÿûøþ’?ܼ}ÿf|)!5U/©xywóÖu^2îQ—Žr'<ůiaʆ¾áOH#¶sQ +4ãü¹¾ÝôCP! ¡ƒ +"¦cž„ªD1ÍõAú÷fµvTÈâ(<±šÇ–«¶3öI:¦0œ`ɱWHÁ”Rá@AHA¶¿IË…ñØ•èü(^›,aE1EnX± eUÚŠ&<††æ±¢Ê¼Ú¬jrÇtÓŒê¦Z»Y*wí/êƬ=#5¼mI-Ý"Ÿ8—›ºñi®ƒA¶pK^cU!’‘úþ0r$Ð`£t(®Î!"lÀ
˦
·i@»Glµj³ò€–uUçMþÕø!/³€P’0ijšGÓb<§¢CõO<äò“„<I@’Q´hFCÜÚP+«¦%Ie‘Z°°1¾õ iÙú˜jýÄ,B3E a;zžN¢ö+È7ÁÑp€0žæ|šÝ”£Š.¸f‘ÖâGšÎ%$ˆQ`…_,ë3õåÜðöS¸œÚ«Ç…Šmeºj磞fqØý4;œòAG‡ƒv¹bæEÍ›“"€ß/…ñ$h¡`´céÒÃtù7œ
@M˪UÆÑ]”¨rîëûjZ5}<æÍS¬#¯O×€«J‡ÒÑöË\DÈNèÆPÜDDIm
}P}]¤3‰lî%¥õ¾gU6Õ-Zh½Ë`m3„[ƒÖ“¨áSªŠÚHÆËiLMð˦j}jÕ¶Yo-@\÷½ÚRwi(îÓ{–®ÍnòSáFSÞ“‘œd¶5 F&¸G,¦éì5ä‹Kš*‚þT–µ’/=ÄAÕcÑÞV\#0'CÃÌCL‚{2> &‰'”lo5¼ +´
‹Ÿ’7žpœTØžXVéw’FµÆ„8- +÷mMÊ9hsõh}lýNÊ#"X&2÷U•åè],*£@—9^’¨ +[^œax¼²B1ßÒÕº0מ-E!ªÃΣ\çrþùZ]g>H˜R'8Ø;z;uG.c@÷@èý#o@eìe]%§²g9qk9P™m7¤Ú˜»aƒp°¡@JHmAÕëƒÎÛn7!uR*23ËWiAÖ}Ù>ÉýahK£ušeß#¾3[ äòÖ|±Š—ß +?{÷ù5Í‹tZ7Úºf£aªv¦‹cºÝÑZ!÷¤½1ZkÌ|÷«ŒÇZîÌU\Óq(ŽA•8°ÀjÖX(}tI°¢¤U£Ê³bÈB•ì¯9M2\‚öîD®âc+h´Ïîòü›‚TÐ0؆ÇÆ%Óª³³¾X€ŽwñÝ-¹Þ®×tÖ30ae°U~c™Oí)žF™ÉnqŸÃMXt&rw>·Îd'çzõ9‚÷;€ë3|¶EžÄ]WAž–™yjí?v¾¿5fNˆE±Jž³®ñkîÇ#Á SJ%¿ŸQîD‰úQ´*ñ©÷Èô(塤Ӻ*¶qö&ÌÜ=®tx}ló¤»”ó° È+¤ìo3G8Ú2k/mPÚ¿:Äd…ò‰¾†BîkÆmy¨ø1ž¿3‚Zå°˜Úìm¦M]g³K]¨Ã1täsúÎú~¤mZéþ#KF# +Ð +vx2p ¡n½ƒÿHÀ’ýwí>Ë endobj -2135 0 obj << +2137 0 obj << /Type /Page -/Contents 2136 0 R -/Resources 2134 0 R +/Contents 2138 0 R +/Resources 2136 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2125 0 R +/Parent 2115 0 R >> endobj -2137 0 obj << -/D [2135 0 R /XYZ 56.6929 794.5015 null] +2139 0 obj << +/D [2137 0 R /XYZ 85.0394 794.5015 null] >> endobj -674 0 obj << -/D [2135 0 R /XYZ 56.6929 306.3415 null] +2140 0 obj << +/D [2137 0 R /XYZ 85.0394 359.1341 null] >> endobj -1880 0 obj << -/D [2135 0 R /XYZ 56.6929 275.1221 null] +2141 0 obj << +/D [2137 0 R /XYZ 85.0394 347.179 null] >> endobj -2134 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F14 1020 0 R /F42 1288 0 R >> +2136 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F14 1020 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2140 0 obj << -/Length 2837 +2144 0 obj << +/Length 2969 /Filter /FlateDecode >> stream -xÚÝZYsÛ8~÷¯Ð¾É•ˆÁAäîS{Ö©Z;c{¶¶vfh ¶X¡HHùȯßn4@-g&ªÚT*åj4Æ×ÆÁGþñQšDLfñHgq”0žŒ¦‹#6ºƒºŸŽ¸ã™x¦IÈõîúèÍ©LGY”)¡F×·¬4biÊG׳_ÇïÿùöÓõÉåñD$l¬¢ãI¢ØøÝÙù¢dôyq~zöÓ/—ou<¾>»8'òåÉéÉåÉùû“ãI–¥ÚÇ×öê¹–W×g﯎¿þxtrÝ
$gµÿãè×ßÙhcýxÄ"™¥Éè~°ˆg™-ŽâDFI,¥§”GWG?wƒZÛtÈh‰L£$zÀj‚xÉX‰žÙ’„&‰5ŒôxÂë´ÍÛ¢i‹iƒ#9"°>MD)I+À™Xqkb%Æ‹¼¨ZøkˆZÖmCõ-QštK/ªÛzµ -Kzžòš¾$
-5då¹Ã©‚S«úNëªù"
œ˜è0êôÑQ&°¨™xzÖêªë oÍ]½*¾xé -©¥Dð)þÚM)& ->&Cû¯f3øwüTF*UfD¾Å3À‹bÎ’ýÀ+FZøÓ[È4]ôùðÎA\6fÏ DØÉ·©½Aþ~Å=ò{ŠSŽ%›;S”cÍ
ÁÒ–T™Øä¿”<cž´
EoÈàU6µÖŒYçi*óĺ;aÃ*t¤[ç@ÂÔt -l?¦ëý¬Úò IÐÃCMux-K¥ðæVº[Zdµ·´2¸¥ÝT:HÊÞ2&ù±_T®¦h¼|×µo²,s¢á}ë£ë„.‡bÝl½XZK©ÔÝ »Ô - ¿1&JWn–fZ ¸³ñÍ“kEÙ×ô9ìû5Wû›LœÐ]œ&Y¤dæ[Lë -9ïÖ«î¾Òž%–°¯¢+1ÐÄ_Ûƒu対ukÊ'b";7Ô5„:®" Á¼çÇ÷Edq¢ï@žÎóª2%UZ§wiÜ bXØðècÇN̳BÔÔZ¨ YØÌû±£Cµzs‘ -°‚fݱÔvÓ ˜ä5Æ<÷®CheÐC;ÕîFT¸zÆò?¿t\v馫jÿŒEÀÊ´
ãHÄ*멳³ u\/h±+ÍÆC›æïÎÞà(˜N0A‰øæ
IK¨{GÒÝè_mEÐÓbà˜òÅ -ÎË]ÓSÏvCX¿Çìò÷1\ó0‘SÚ£Øçù½!ZN?Bå$溴 -hUÝÕ§JÑÊ£´_·f;ˆÑô\®…Þ›öÚH¡]àÃC®4B(Ò(ñÚù’‚¬-äèHݱÌÝbO1µg«‚R $·^™^ðϪ'3%·±ˆ=ªô,Ô<Bœ*É…†V^HèñäÀBNö7¿¶Ü,ܘ‡§Ï˜’Å‘”÷JÙ0ȵ
²*|He‘ž|›5âä±…Éò)øÕz¹¬Wn]û·…(À²À…Vþ6Û½òܵÄÿ +xÚÝZKsã6¾ûWè°U+WE\<H<:OÖ©Ä“ØÚ=l6Z„mÖH¤F¤ì(¿~»Ñ +^¤÷ú凛÷×ßýëÖMðᆺo¯Þ_Ý^Ý\^ÿ:ÿþìjÞm Ü$g¥ÿtö˯lRÀ^¿?c‘Ìt2y‹x–‰Éê,Nd”ÄRúžåÙÝÙÏÝ„ÁSûê˜Òb!#%9™)I¥ÄëËÒ–uU™DZ%É`Õ™†}p†ç EÄe"»s<8‡LD™N'i’EJ +ia±Ì›õcE06£,Ipqu·6‹ò¿Œ Ó JÅ´}2X‘î}ÛW?ž=šÊlòÖÔ¿9çzjµ-‹Qòt:*¾Ú6-\åíâ‰:Ûs>õóý^WE¡fœ“|ýìQ—®l]éú›nEävjftÂC¥ˆ8bI–8¥äU12Ï"™¤±Ó¶Ë‘y¸ˆâXzå.òŠ„¼7Tšª5¤¬ÂíÂ
0%èvCu§FhÖ£!²ãVãv€ˆ¯™Ìd$Á|½ªøLé•û*nÔLÇ-Nª”&ÅîÖæMØ^T;RÖs¾,.ñÅ#ê +ùº½
Õ%N©.¦#!’ãÚ‚I4çÊ*bóv ˜f¶v¨6
¹ÓÚ7`붬«|¹ÜsÎ}ï§mÝzX6í¦¬(³óTºìýê[ŽßIY:pÔì-/Ï@§ +hME’ïÚ]öwÏctØ*ò6ï\ní–æqÏ;ÓÞwÖVõøàÞÅAjòÍGЄë+W$SýÜ ÔÙѲ΋¾·\Qä´GØé{„Š +K²v¬[²o]CÝ÷4ž:P™RÉW” !ÓR—UÞ€UÑ Ízƒr! ¦ý;I@HN¾<™jd%…™A¬Âc™ZÂQñTû€ŽÕí‹ü2Tºg&5ð-ô¾W…ãƒÈÜú¸ýÐút ±í&¯š‡ M°¥•›^Z¯—»Î¨ÁVýíüŒi&Ntä£<#P°Ø¯ÆâÞx¡n·äÝ#Ö;3„zeLÑP J6„õº°G»ÈQãˆ2. en™Mã.QÄ%ìÊ ªå°c6d³ÐƒPª©êÄé
ÖÉã¦Ø¥”¯à @ª¾Ð83ô +#Èt¾Ëvþø„Šç¯%"Iþñ +,K)EÄZé=U«Œø+tƒ06eÀ¾œº¥…ïа×rX|q0à[¢¬è-Ä( &µüYåÍž,½¾±ó>_|Ü®Ý~zylGgçÉÚ#À§eãLA¤º$ñ
EûA0
ŒÚÙúÀÂìíÀüÓ½ÞÑvŒ3`½Ö©ÉV|Gùd+f‘PRûb—j…Äø~,ãµôJGË0}TÜ^+¼VZ
õ.kG•»¹„ž¦ŸÝö—¹a匟t”¹0n¶Æ€æì®í‹˜ò…H¤JY¤o\ŸÕ¤B²ÙºÉ¨¾•€|e –è)›LÁ¦9û©]V‹å¶ðcm +T‘'t4\Þ· ¥L}Ù×èK^ +´(ˆÔG¿\âù7—x~GÈIðf2¿
S¯/ÕD¤à)ÝM 8¬Ni·æÓÖ4tÃêL²4J8¼p…¯º›ò
©%GBƒçŠMJ³iµ]Ý[¤¦äı¯ì÷w7wô˜àé6h¡óq&'VǦ~ºüðîêBLã=,?¡:, õ%±ÿ/¨”ø S¤o 2Áë©8AåÏ[³)ÍPœ”G…îAJmA)SÙë–Y@Ùƒ[ŸÜ–lÃÆ0¬Xà endobj -2139 0 obj << +2143 0 obj << /Type /Page -/Contents 2140 0 R -/Resources 2138 0 R +/Contents 2144 0 R +/Resources 2142 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2125 0 R -/Annots [ 2145 0 R ] +/Parent 2115 0 R >> endobj 2145 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [84.0431 269.7901 145.2431 281.1822] -/Subtype /Link -/A << /S /GoTo /D (statschannels) >> +/D [2143 0 R /XYZ 56.6929 794.5015 null] >> endobj -2141 0 obj << -/D [2139 0 R /XYZ 85.0394 794.5015 null] ->> endobj -678 0 obj << -/D [2139 0 R /XYZ 85.0394 769.5949 null] +674 0 obj << +/D [2143 0 R /XYZ 56.6929 624.0783 null] >> endobj -2142 0 obj << -/D [2139 0 R /XYZ 85.0394 748.5408 null] +1884 0 obj << +/D [2143 0 R /XYZ 56.6929 599.7387 null] >> endobj -2143 0 obj << -/D [2139 0 R /XYZ 85.0394 686.2137 null] +678 0 obj << +/D [2143 0 R /XYZ 56.6929 389.5082 null] >> endobj -2144 0 obj << -/D [2139 0 R /XYZ 85.0394 674.2585 null] +2146 0 obj << +/D [2143 0 R /XYZ 56.6929 357.4026 null] >> endobj -682 0 obj << -/D [2139 0 R /XYZ 85.0394 255.5751 null] +2147 0 obj << +/D [2143 0 R /XYZ 56.6929 295.0755 null] >> endobj -1746 0 obj << -/D [2139 0 R /XYZ 85.0394 232.5802 null] +2148 0 obj << +/D [2143 0 R /XYZ 56.6929 283.1203 null] >> endobj -2138 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F49 1308 0 R >> +2142 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2148 0 obj << -/Length 2946 +2151 0 obj << +/Length 2798 /Filter /FlateDecode >> stream -xÚÍ[ÝsÛ6÷_¡Gj&Âá›Ä½¹±ÝºÓ:‰¬ô2×ö阉TEʎﯿ¤(™2-[Íh<c‚K`±øíbwñ!6 ðÇJm¸„FE™Lç'tð¾ýxÂ|Q]iÔ®õÃää_"b4׃Ém‹WDh±Á$ù=ÐD’!p Á—Wgf8âŠ×“a(ƒSûory=¹|=ñàýO§'çc¬¥[
‘⛿ÿpuqùãç±gðá -Éãó‹óñùÕûó៓ŸOÎ'Í -OEºG]4$Tz$@]çI^Ò~%µXØ|B -B>©4ŠPSãôCœXT~2Èg!<¾ÛU^®‹bYaZ‹`c Ân‰9å‹oåˆñÀ#ÈN„lBÄäúòÇ×ãìZïƒdKÆÃ"yHw uH”=ÁV†ØÁ¨j€ -E“˜-œ®ª»OËÇqú¬L"©‚ñç¤w¶U±Ììòð>][q¾½VÐîÓµõÚ$-K7€ÿ+VÏßÒ[23$y_J ¤PuN1a—Šq€ý%iõ¸Æôõx¶$=b<!¡XØ—1 -…DQ§v§Ðî8‚/Áõi^¾Ä`#a™æÕ3е„:bèB[õd"TDÁ€&nY¶\åÓØ®«úÓ¡±&u‹–
îƒiKÚ#ÆrWc´êÁT¢"ÁLíº”îm„Ïn"ô ‰ry¤‡*¡öœñy4#šGk}ája–ëÕA„-áŽB¡ í@¶0|é*v†O—±=X¶¤<–°’‰8ÝÇ_Ô-vaÉ£Gªoró„,Ä`içõʬö£ù©N0!¨ýãjæ<¦¤þ€¾Äø(‘ííjæÉyùÐ Û½Ý îíBËycˆ{rªŠ‡µb½¡+šÃSŽ° -ÿÄï-up -Ó“)îÁ-wjaÔÔÜÀf}~¨ðÀÞ>õ!±*7öËÍzë*»¾mNo³Ðr™ËAXÀÒÌCC"¿ 6o—¬/J«>=]TÕ6[7þ°õé¸mï;nÉ~¼.šk +UÕ㢹훨†øªˆ=È#.aÖ\_ŇD¼Ù]x-ôAïy*—^²gõÀ•"&ÒG§°x]Ƴ}\º”[`[ŠséÍÏÔQ6¼¹2¢ö…R>ñ…]~½ðínÏk¡RTq¹{0”Á‹k_ñ;8Ä–6uJ(ì"v/[·Øi3 ® -MŸCœÐP‹fº~[.Ë´Úg~òp{~%ó—iÖ1x]Éŀ䃰½ûâoÔ$q“.kAÓbæ©i9¢5&÷ì4& +xÚÍZKsÛF¾ëWpoPÙDæ… {òCN䪕‰Ùݪ8„D”A€!@Éʯß~Ì€ ÉÊÚ‡TÊÁ°§§g¦_w-'þ““4‰…ÎÌÄe&N„L&‹õ‰˜ÜÀÜO'ÒóLÓtÈõzvòÃ;N²8³ÊNf×Yi,ÒTNfËߢ7?¿ú8;»<ªDD6>&VD¯Ï/Þ2%ãÏ›ïÎúõòÕ©3ÑìüÓ/ÏÞ]ž]¼9;fYª`½Hðk¯f¸È¯¼š¿¹:ý}öþälÖ_`xI)4žþ“ß~“%Üõý‰ˆu–&“;ø!b™ej²>1‰Ž£u T'W'¿ô³´tLi&Q±UÆM¦ÚÄ©ÏÚVÆNØñ]XBÇ6µOˆâuDùaXq( +Mš%édjŒ•½E•X4S±ÖFNKYíØ¢ùbU°êß¾övºl‹®=V»Ö [Êl2ÜäÛŽÝ‹üÊÁµQ±JÓÃÏðØ&K¢z·ž[Û¨¹fš¿Ñ6<‰Dþv÷›‚§òz‰×D[H *L‰®›ºøR¶]Qw§S'DTçë¤Ù,‹Ú®ÙžÊ4*–<UÖLïð8HXB¤rì,ó.Ÿçm>Ÿ‚–Ïñ¨ZðB_U¾Î»²©™°Î·ŸyôI$âð?ÉKËvìÔ›mYwx,•ÊèNIƒœ?xwüâÝ_â0ÊŽIë"¯[?»Ê=q“o»r1ÛgWå [;ç©]JzG +é‡pHšú\7wµço˜4/ø7éy:¦« |øòÝŠÄ)…o^µ(MÉ~$úÉOJ™‹ÿ^^^Ípˆš‹Ç®ò¯THk XrÜ–ÅÝi¦¢ø8 +íÀû£ +z.JÝ +ì«ü¶`Z΄pCë$áúº +huÓ15Ô@£Ôc]ÈÇ=1ÎAGÅÖ'Tz°&=ðáLÁ¡4öP¤q壜=$Ý
ʶ!G@*õ¯`»%`O¹@£oÃä.æ`
Äg} 3å°!¹=éŸGehñpªz:„X!Ÿ mú0ïyCfH£áD´tR +ק³ÌŽ÷xœçyyLkl¯*ÐP@F¤t軨i
Åìn½Î¸xêÀÊz謴œéüÖ´Œ ²ms–Ã@H’„Y8Ô‘‹™î˜Le:Öý¹^Ž"óH +öðP|0(ƒB°åqÍê?Ž2Ø +ýìKMLx›¾Úm6ÍÖ¿÷ü›Z7€üï¸~?Tm')ô~Çþ‹£‚endstream endobj -2147 0 obj << +2150 0 obj << /Type /Page -/Contents 2148 0 R -/Resources 2146 0 R +/Contents 2151 0 R +/Resources 2149 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2125 0 R +/Parent 2115 0 R +/Annots [ 2153 0 R ] >> endobj -2149 0 obj << -/D [2147 0 R /XYZ 56.6929 794.5015 null] +2153 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [84.0431 525.3808 145.2431 536.7729] +/Subtype /Link +/A << /S /GoTo /D (statschannels) >> +>> endobj +2152 0 obj << +/D [2150 0 R /XYZ 85.0394 794.5015 null] +>> endobj +682 0 obj << +/D [2150 0 R /XYZ 85.0394 511.1917 null] +>> endobj +1746 0 obj << +/D [2150 0 R /XYZ 85.0394 488.2129 null] >> endobj 686 0 obj << -/D [2147 0 R /XYZ 56.6929 741.8766 null] +/D [2150 0 R /XYZ 85.0394 285.3314 null] >> endobj -2150 0 obj << -/D [2147 0 R /XYZ 56.6929 717.2979 null] +2154 0 obj << +/D [2150 0 R /XYZ 85.0394 260.7527 null] >> endobj 690 0 obj << -/D [2147 0 R /XYZ 56.6929 609.8545 null] +/D [2150 0 R /XYZ 85.0394 153.3092 null] >> endobj -2151 0 obj << -/D [2147 0 R /XYZ 56.6929 587.5432 null] +2155 0 obj << +/D [2150 0 R /XYZ 85.0394 130.998 null] >> endobj -2152 0 obj << -/D [2147 0 R /XYZ 56.6929 587.5432 null] +2156 0 obj << +/D [2150 0 R /XYZ 85.0394 130.998 null] >> endobj -2153 0 obj << -/D [2147 0 R /XYZ 56.6929 575.5881 null] +2157 0 obj << +/D [2150 0 R /XYZ 85.0394 119.0429 null] >> endobj -2146 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R >> +2149 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F49 1308 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2156 0 obj << -/Length 2554 +2160 0 obj << +/Length 3086 /Filter /FlateDecode >> stream -xÚÍ›Ksã6€ïþ:RU!ïÇÞ<;ëT=#;[©Ir )z̬DjHÊç×oƒ EèIÉÖÔª|âÑøÐèn -H4…ÄÁ‡ë›.ǸŸ‹Û›«ëŸî¯oo\öèòêrtysq9Ñês¯…¦îݽÔÔ¼»¿¾¸þyÿËÙåýb -¶¡Ã2šB5AeAê'HT¯³&3ÊÆ.O¢²\É{iFäžÊùC™@ßY5y]îÉéþ¸.\cµ%Ü?¥¶M ÔþÖøl¢¹MÛ‘Û_¯›ÑtøÆóÄ.T¹ýuã¯3œÌQ™gîEò}6‰Ò̶i_¿¤ÕSWÃ釯QD2Ä$kÔ#ž¤0à2œ9¡•èuƒV…mµ%!-Éõ(AšÙô0¾‡ûöB0G†Ö«ÇVÍgUšg@–ü.“Ä>hÃ掓2.ÒYX#„I‘H »ªü‰³ -åC¿ÂúÒ]ow'p_$NÀ&`£—DZ·Im©
‚øT×[³‚ -ƒ)¦ÑdÒ´¹ŸiÞú/ûôÆ4K6výµh„Rí K÷TÎç·©¨Üä-Àv€êµŠt>¯ž@ñFÉ_¦BŠµjŠnö
ªDœlm-$†ÀrRrŘ?E•]ò"xÉç“ÚçI™»ÌG€äòÒ¬jò*gÞ„ð
TjáÙ7þ¤ÿd³d;€µ€Ã®Ü¶jSá…T6™å•K<$î·Ž€àwZ3gXéuÝz¥UMfæŠÍŠ(Þ8U'ÛíoKŽeïÚÞ÷o²±ÅÞI€í6wBjp,FÖcþí±%ß>æY²OÌV®¬\D„ƒ¿m¥:UQV>:݇G»`'Ieã¹0;Aß7ðÈRP¤±Ò=0xiÃy
è×Ù8ªÀtõ²Ç•vÈœ¦Öxˆ`[3¸¤'åÉ’äiØ -ôä×1C—H–³7¢´îµLdéÉy\–äx,©FÚ¨žm`q͉8Ú¸¦ŸåÇWØñ¥±#7÷Àz›ho'OOÖ“ÕM"‘á´ÏdRŒ`4Æ㹟ÉÜ -‚¸4ƒ -™„P—ónupì«:̪f >LJ€MÜò¸{>ä“a(¹¡ÁGwÔ]Ÿf¯žÃ) Jáwò>Á-"†µþ1,†°›ºu,W"\4{“Wéãëí¼zæL…mºàíÙÓõ'(T+[µìÁXk4Ê$«Ðv|ž\§ŒA”Ê8éÃÇ)ø¬VðÉ}ðÉ7áóä:.>rT|TBoúè1hO -éÑ»ÎÞ¥{ÍUg’>oØt;éNY Dš”é>ˆD#J0_†ø
Ü¢'Þ)SÄâu-û(‚Ÿ¦íᯣ¸ùÌ|b{÷ú¢};H·ÚÒ“ð„—4…T&z@R -Ëß÷QN…åàƒ¡ªÀ=÷™3pÒ›Ÿí§Ö!epwõ2þÜèÞyþþˆ½è wª +xÚÍ[Isã6¾ûWè(WEìËÜ:m;ãTÆŽew*5I´Dw3#‰j’²Ûóëça! I”(/I©\e€X>¼€È +CÆ4ÈÄîÀp;ŠÝeLå{aÉÒTþáCúj7–`E´ =Ò-4L¹·åàvÞ®&“´<ÀÄÜÔ&3¦V«™S™Û0Ö×$>)ý°«Y(^”OàR)>D§#%ôðîKVúžó4ñ&&jXÌÎX}q.s¾í³Ï>}É&ni àEéëŸ\]ŸÇ×cÿkò0B`h_uÍ:K“²¢…:—Ðfõ—ÃñùB¿››äE;Ï4VyHaÜx;(Då˜À-wî¨iÙÛa’¯Uí£æ>]z*³|U®#–ëí¢Ãõ=L±ÓÛ8ô/U à +B(ð–òã‚×"™½D¥s¾µ-q*½© ƒº’5m.«u!TmêÂ5
ëÐjFhwkF¢*E ±Ø½ˆb@‹ËÐð¯WˆÑf¼m{[ŽaÁR_"ÿu#"RöèCÐ…HJÆaýVeZ½D:©Ú”N(qÒ ik‚Ûf+EÁCn‘ûtšT ê2Çž³ˆÙæ,WhyÉ¥¼à#&+»Ø¹LÆW‚lò’ÙòˆM×yÉ– +¹í8ƒ8
¸#vêЇb?-u8Íç ̺M¸=[¥šü}¶5Ú„ã5®L™Ð¸OÝaŒŒR´õÇÜEMîvט_<Mo^È,!ìuL¬JÏ1ÌGÈ6S¦Å£PmaîÓeZ<äÅ<涚§Ì13öÎZNÝ`ûÁ øwŒébÊܬu¡÷ ñ†O¨ê߶Ûæ[?ò+ù¶ˆ×±É¸6ó¿qc–x/;-RêE²P÷Øɸ„!…yWÈ$€GHc<ÎVËY6q5Œ21CÁK—JÓœ×@Öç@¦fV›Oª*/½m±mrŸ¶ìúܯ*Ÿ™f娋q&ypÇü”~ôiú-+«lñÙÙ£¤S2|ö_Þµ9GœÍ”É<ä.M§{Ëïº$Ç>àúˆc¼9¨¢fxyæÊ R…Cuõ¼L}mbeÉÖNfIY†²™Ÿ&™>ûºûÔ‘m³žgóî•aö¢l$Ms(¥º„Ny|]Ú-f ö¥”*lä´Ùÿ9‰Tr+ø²cƒüx‡Ø„íƒÉ5jßWú"¾~›¨´ÒTKN^r;æ{ìö0(Ñvì×a—|VäËå!WXÑC +§%BöœäŒS³d¹|%’ko‘„2¢ò˜D'é‰n¤Z©€ñ°Ÿ/‡#CŒ·ÿr
¥Çüð´´0}ÏÝÁ¿¦"‚ó0…Ùåá*2¢ìðÙep +.¢B”ÐÎÐz±=ô§»í™¹BLkÚCÕ˜@v(‹W|¤Ûß·œ«ÒÅ´6<·þgœþ£þ]¨uìBü%!j'o!6‡BÄ]Ï¡ðêAb…endstream endobj -2155 0 obj << +2159 0 obj << /Type /Page -/Contents 2156 0 R -/Resources 2154 0 R +/Contents 2160 0 R +/Resources 2158 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2125 0 R -/Annots [ 2158 0 R ] +/Parent 2163 0 R +/Annots [ 2162 0 R ] >> endobj -2158 0 obj << +2162 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [333.4761 684.0956 413.3061 696.1552] +/Rect [305.1296 229.7992 384.9596 241.8588] /Subtype /Link /A << /S /GoTo /D (clients-per-query) >> >> endobj -2157 0 obj << -/D [2155 0 R /XYZ 85.0394 794.5015 null] +2161 0 obj << +/D [2159 0 R /XYZ 56.6929 794.5015 null] +>> endobj +2158 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2167 0 obj << +/Length 2520 +/Filter /FlateDecode +>> +stream +xÚÍ›[s⸀ßó+x;¦ê Õýò˜I`[;É°[S{yð€3ñN°‰m&›óëOË2X!ã„©ãšÊ`lµÔþÔRwK‚ô0ü#=-f†÷”áH`"zóåî}…gïÏHUf°)4ðK½›ý4bºg‘Töf7^]aIo¶ø#¸øÏùÇÙpÒP‰ú!qðn|uéî÷qq}5¿ÿurÞW<˜¯¯ÜíÉp4œ¯.†ý1š‚<÷j¨d§3+TINgã‹iÿ¯ÙÏgÃÙöü—$˜YíïÏþø÷ð®?ŸaÄŒ½ø‚1†ö–g\0$8c›;wgÓ³OÛ +½§¥è>hœk`EUoÀ4âBè—›uM`h¶º$!v[\¡„D˜µíJ¼^0 +|pYöò1 —ñÜÁ]—‚¹ûròÑíâŒ!™èùŠ½íM9gK¨r°)p2xœ#l°h€Ç’JÞ»pñ1‹²èþ-³>ÑAôw4/¢…»³XGî¢HÝçÊ•qÿ߯ã<.¢ÿÚÝ?ÐÞûu¶E„ ÖÐL E‰)‘N>þ>‰²Ø’lä?‰òUšä¶UzÏÝõÓ$ò{ÂÕx€¦Ó”wš&…bÓš”!%¥v€À"/³tµ+<šfe‹’œ“-o|©ØfáÆPïâe\¢êiÜYªX#J›¦ ¨C"·P§wñ« Y_ëdo Zk|*¨µ{kô— Ã%}ê._%´Qƒ‰7à?©AðnÊ÷²Ï¼-ÃijKK¥!Jïï¹M( aš4ÊÛΰaA´? ãà÷íñ!Œ“"JÂd^ݘaçE<¯ºí"]C,ß툂f¨€MAÈ `PX±v÷KmÁ'Û—HᮧoŽ}C‡NÕ¬G#ɸÁ1}\~IïúÉ
.£|žÅ«"N“]r:¦)ÚóÚx›ÚƒpôÇÀÁ—ŒF¸ÎKWiß<^¯‹ï|Ï<!ª‚«ibü +•¦–€ÔŸÓÍŒ‘GI^¦çéuZ|ä”ø„
U
ø„)N¶ƒOƒO¾Ÿ¯W‡O(ˆR™Mø4Ln”ß8y“ñ¹àiÅß÷¤5EO½.S”IMYEi•Ú<¥ø<’¢§^—‡2¤ÄŠ*ÚDQ(ÄÓÅIôw3Ädž.ãäë!.«: +duŸQ~pZ–=¿í“¬ ËÀG@‰_2¶-a×k¡Ëç„ÜÖ‹!e0=,>5¯¸×~¿9b¯:åT§2ˆ#kت`¶}Ž‰P¶(Ûô”ë,@˜î¸Ñ
Û‘Œ(ÍÍ“íkRKL&m,Ð9§';@ƒjœžªÅI„=Apƒ6`¶8e;œò8ª´Ó81ƒ0]7ÐÄ +Å]0zõùòúÃùø +ã"˜À÷fšµP|µj]¥G
±§`ðQ#%¦ò¾Ã‰=KôÛ¨/Dp>þ¥oãWLŽ;=c¥A¤í¡$+}<O_ÙÎUÆžŒip×T3D%wîzt=ù0„=à¥9Ž†YÖÌq+ÔŸ§Úiñ‘Óá“ +©ÆsTA,sÖ×Åm”³4³–HH09 +`)æðE™;³‘µš}U;kÂ&oªÁuSy`Îu/¯¦ø¸±l‹þ‰Æð©CŸÇgDZò=
OE^G©V‰êFb?EÓŸ1¤É(¹²
8ý!Ηa1¿“4üõåzu„Ë®¥ÀŸ¹mµk™H^ƒÙmäžAg8¹ñå¿ŸWð¯2¬87vòÔõPy€ƒ‘ \,*¡ÜÖÁD&‹ŸÒ¾«,PÜV%wê.ïíÖ¶J³Â]-Òh§}7õ%©- +sßÓl_ãeí‹Èn–%åÉ"CÜÉ"¸m_Õõ˜ßÛ0‡iÕaeãÏ»•¤eU¡´LB‘$øA—ŹkkV•Ãg˜¸q²ˆçá TÛ® ƒ±xÚwef[Ž´ôÆ}†îcÎo·gûâ<M¶ƒaQDËÕtÄ·ô·
7§Í†¬ýðh$Z!I©›Óf}~!Û k‡³¾±cmçÈÙ«Ãh_ã®z +¢(|’†¬„($Ä%¥_Â%˜™ÂÖå–×\DyJ2º‹¾†Ö„Û‘ô´ìjC$£
‘ÌNÕÉȨ°N³$9OqÄbçÚÏ:rE½â°Š²›4[äXëØYƒäR6Ü™S]DßB9ÿ²NÞpK,´2/ž8¿_§ÅfjM“ÂÅŠwàzšŸŠ.HKÑf^ÞH¼@—Pˆ ›Ž˜fÆÔ[Uœ¦óoLJ#/üxØú4÷™®¢Ê%á:`Ä6|˜‹ì ^ð€<¸.÷-àö<].ÓJÔÕænMwסßØ€fw†ní}„ºgqîž„î«WÀÝ·ÎÔ>ØjéN¢÷Ý©ênZ{ÙZm¬'ôN'‡žÏ®>mèq·Ý’5$"¬Ëë¹·™Â»°0›œ fÈ0©jëšÙ¥x¥ë¢ÕX8™CÔ<º:ãi
’܆f +MܦÒû»u4Š p¶ë¦L1L§y«µþ2g°VZþUöfëÝÌqò=ývÈŸ”ªw:VÀDÃÕP–J¾W¶†+O +×S½«t%G\ó†˜Gj„!æÙ5ÝãÜɱ&{Ì/ñdÏÓ÷HÁ×cNË-dHðä¾ß:â^#ïcYYÿÖÔ®6híbñá1ÌcÆî"[—%H¨M?¥`þÏK8ø#xøO%‹M 4]¯ªä¾üV¦PQ–ƒ+3Ùghµ=-£6-zþ~RÛendstream +endobj +2166 0 obj << +/Type /Page +/Contents 2167 0 R +/Resources 2165 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 2163 0 R +>> endobj +2168 0 obj << +/D [2166 0 R /XYZ 85.0394 794.5015 null] >> endobj 694 0 obj << -/D [2155 0 R /XYZ 85.0394 411.8739 null] +/D [2166 0 R /XYZ 85.0394 662.9325 null] >> endobj -2159 0 obj << -/D [2155 0 R /XYZ 85.0394 386.7533 null] +2169 0 obj << +/D [2166 0 R /XYZ 85.0394 637.8118 null] >> endobj -2160 0 obj << -/D [2155 0 R /XYZ 85.0394 386.7533 null] +2170 0 obj << +/D [2166 0 R /XYZ 85.0394 637.8118 null] >> endobj -2161 0 obj << -/D [2155 0 R /XYZ 85.0394 374.7982 null] +2171 0 obj << +/D [2166 0 R /XYZ 85.0394 625.8567 null] >> endobj 698 0 obj << -/D [2155 0 R /XYZ 85.0394 161.7348 null] +/D [2166 0 R /XYZ 85.0394 412.7933 null] >> endobj -2162 0 obj << -/D [2155 0 R /XYZ 85.0394 136.6141 null] +2172 0 obj << +/D [2166 0 R /XYZ 85.0394 387.6727 null] >> endobj -2163 0 obj << -/D [2155 0 R /XYZ 85.0394 136.6141 null] +2173 0 obj << +/D [2166 0 R /XYZ 85.0394 387.6727 null] >> endobj -2164 0 obj << -/D [2155 0 R /XYZ 85.0394 124.659 null] +2174 0 obj << +/D [2166 0 R /XYZ 85.0394 375.7175 null] >> endobj -2154 0 obj << +2165 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2168 0 obj << -/Length 3574 +2177 0 obj << +/Length 3361 /Filter /FlateDecode >> stream -xÚÍ\ëoÛ8ÿž¿ÂßNÁY¾¸ÃÝ<ö²ØMÚØ»¸Ãî~Pl¥jË®e7í3"eÑŽl9·¨%Šr~3œ9Ö£ðë)M´ã®gœ$Š2ÕMOhï|ûñ„…>ýºS?îõÃðäÍ¥°=Gœæº7¼hYBe½áø÷DINM~¸º>w§}®h2ž™¼Å†WƒáÕÙà´ïœåÉÙÞ¾^Üú^:è[Âð³›ëË«½
n®}óíÅåÅíÅõÙÅéŸÃŸN.†kb&¸úO'¿ÿI{càõ§J„³ª÷/”0çxoz"• J -Q·LN'ï×£¯ÕÐ6Ф´€ Ó–H¥ìîiý¦
Œ§Ôö¬}͈(àˆJeÖrà,’ƒ¶À¥3=£Ñ‚‹J×ÿ=¿ùåí@%„TÉ-¼#L0”GC™u°h'a¾ÍAˆïâ”Ù$eùçlLž`L%1ΰ^¼¶—±+¥ TÕë׎ˆ ”„:ª:”†hc¼&@/Aß~»<U*y{õói_*+“ÛË4ŸtC‰£aŒFÍÇÑÏ€4Zì+†Tp„ -Eg®åòæö—‹[Øî²ÒÉË‹Å¢Éõ g -Šf(ºÝê¹X?‘g“ìCŠJü<(£UKvL,'ÊŠŽôD3M˜¡>=¹Í–è:+0à.Þwƒù¾ñ¶¼å"¯sž-îg‹é^(£E¾bµãJ×Ãh`Š³`+\ÞÞµÛæ× ¥8¦ÞíãUÐÔå¬nfËÚÄΊ¥'{ðV~,|!w°Z=‡d=b¾±@4Ý‘³(Ç WÎ5ðf£‡…‰—Q èQtnþw6Ï‚o¢MèH1Ž}Ì–5‚+”ÉM‘ùæÑl:…¡ž^ -Îͳßc¸ÂœHÊFÌñpÔËKÿ%õ¯Qߎ^?¬Wu.²Gÿî—êQaZb¬Z}‚êLòi¾L#ç~1™¬mc9Zäó%ä$»Õ+ÜËTá[î^øF,5NE)
SHÙ¨× -òi6[-Ÿe—~Ì>Ø¢½^«§ z± -¸Ý›”D -ç•þÇÉ*»Ì Œþ,132¾–¸‘«w8Ñ«2TÕ&
ÉÒd^|ž}ÜçXâÅ¿^ ’±Ît8%8‘V²-ˆõ³!ÖÇ…8Zü+Öbpœä]Î…Sü¸m->̽ª½Í©Ä^\£¿b\a¹ÎÖ+µDˆï¶T÷`\õqõ+~åÇeÒmÑqÎ#&šYŸXþV%–éäϬ»a=¿.Î<hŸÓI>ŽBžïÃ1Zá+†Ñ2Bîpú`U‰ÖBnàxóñeBÀ7ʲñ^£ÕC.ˆÛ{¯ö„d=b'†Ê¦u‡w’†C-ßÀð:ûðt0š”b{Q¥èŸ3ßš˜RFÝ -ŸDúd}UŒCÈ®Â$¥ÄcåÛSa`b<þ+õR¹÷T>ùÃÒ¦ó)ø§çÅ"t½> -ngH!µ]Êy6Ê1Äe Xuuä.˜ƒüwÑœ@Ž«”¿ßo -ÎCà•Þ¸MÁ-JÊvï@+ÀoØž -PÆ@ôÅÊXSìÇ$[”‘A$aiën¸BÚjêTÞ'#Ówy -°‚*ùB -–0ÇÓ
„dš¥E°¯ÌH4ãmö•+»¶¯`Àõ¼mì+6ûŠí›ö?®í+~†¸,øv…`}þ~Î-²ØŠHŸÊ‚›¡u]AÙ˽ښb?&ùTÜ@°c›yw9uX?øìZ›6Ç®T(N1^˜¶4¹PS×ÚY(c Äßè/
Z‹‰k—AÒ齉ËkŸ”ÙrcÁÛ -"@®¨ÙqiP× -¶”Ð ðƒ¯Ó»ÙƒMÇ“óÆíˆv?àƒ£)^¶lHP©ý9°|ùÉq„„æD©ˆÍ
Y^–:e÷oKsȶ”[Ûr'•›yÖv^¨Àž¡#§‘“l‹lY¸ -)ËûÕd²>”TÔÕ§vízýÐ<ð%¹ðÎ瓼ßV^3 -ç«QmT{±¬`5g‡Xh‰G#!Á©,ÌN¥j¤õ2ØÖ)qTȨ +xÚÍ[moã6þž_á®fùþ‚;°Í&m +4»MÜm?8¶²jK>ËNºÿþfHJ¦bÙJ'(XK9äÌ<œ72l@á(M´ãn`œ$Š25˜.Nèà|ûþ„Å>£ºÓ(íõÝøäÛaŽ8Íõ`|—в„ZËãÙ¯CM$9 +tøÝåÕGw:âŠoƧF?àãË›ñåÙÍéÈ9ˇg?|ø<>¿½t20´ÄágŸ®..¿ÿå:øtš¯Ï/ίϯÎÎOÿxr>nH™dTàêÿwòëït0^<¡D8«ðB sŽ'R ¢¤uËüäæäç†`òÕíš”d’ K¤Rvÿ´a + +ÓÆGƈSêé¬#͈(àˆJe=p–èA[àÒ™QŽhÁ…×Ã÷óMv‘§÷úb’ÏQD0Œ'Øu°`'a.pùùA¹^Ý„ßÉl¶:ev˜UUh¸Czñhf3²#y*‰q†
Ò¿NR +BµPƒQÝáˆr•’PGU\¥!Ú˜€ïÿœ2Ɔ“ù‡õ:[,×ýrýxuss~¤ö0™ç³É:/‹(á@ä “%þ)8aB‰A +Eg®%ÈO¼N†Õf:ͲÙA†ÕÉcÊâ} É0Bì—!µ„ó>,£µm‰ð*ûò)éZR4 EÿíEöZ²Ðšwåj‘tap" Ø I÷j`ËÛë¤õ– ÖN®=¬í±JË–žgbÁ¸Ï ¦‹;š †(§_d[ê!û„¨¬c)z,¶†8Ê‚«úyõõúT©áx\ýB¼>雬˜~Ù91\OnçYxôâtrè;•›b{¬òe|ÊY£Š^Ÿ +Ÿ:À6¼³Hå.PIVyV‘.ÈŸOÀ†Õ¦rI¤ÛÍ"Bj»TËlšÿF)Çe Xõú>Ã7œ–«è—e1Ë‹/áû]K +<b:ßT0Eç! ¨§Ó@È!$eûw ¤à7`ÛK +Ù4èùÕ;°¦8JIvÙF4Ck^wÛ@ýO¸ÏþÜá~‘Ïçy•MÁcß *‡å*|k„PšJóÄ1Mþ@¤i€ +¿@ä!+òè á1þÎ2t˜EÖeé$(T½Œ0§†(e 9#üPVð\0ÖG)É02 €¥5Ýp…´ÓÔ©-ë20}™§ VPÕp|æ“jäÊ´Â茵›ëDJŠau_næ3|–´…=¾Œ¡tÎb‡IÕ)_IøÖítɸ4ëk.Ö<¯üÒ#ßHq”’ì’/ì1
KkºyWò®,‰m"Jð%0,aŽÕ
É"›Ñ¾2#ÑŒwÙW®lc_Á€‡¨ÚûŠÑ¾b{Û¾âÇƾâgˆË&óÐŽ*Ç&¿qð÷æØÕÅ“ˆtWÜ °¤Ž®Üë½ZCq”’ÜÕ7ìØí¼ûœ:¬|v¦¶ñØ— +¥)Æ+Ó–m.´ìõ– +a„ømý¥Aš +ÜXð¶ÀþH)4šw« ®‚*ÞYÚ¦:ˈ<…ÔÒáM9ý#[‡üóòÛO±V»†¬´ZçÓXô;ƒ,jªåþ Ýq°?=ñšs‘>T 9|ŸÖäü[³ð¥¶ê³ðºÄ}åI$t×_—Y–S^oØ”NGlâ,ºv¼¿|ü,;8¹CÆÃ׿½üü ѳuEÔ z-œÚ’Õ/!«÷‘KÙ¡0¶ÞÚ¡ê8>ë^¶¬Û˜„>t<¼lû±váÐY¿„ª~Õ_ŠüÏ.ª€mSQ`¿Gó±\Lò"÷ùwwå1¶öŠ'ë&o¥Eâd#“™€ª0Y¹Ì<Äüóf]å³,¼lÓfa£öIxÒl5\”³ÍÜ=âpíSo®tíÔð®œÏËGŸ³ûv_¡ðke-oŠæT5aá¿:¸eH[ËmüßÏçdp‡kY[ÑwG® Øzž—_…UOÂjSVqÃE&¯Êuø>™ÏÃÇífö£·Þú<LòyÍ5Ø &0}m™ÞGkŠ4™:îõ†gˆ4³%VË¢UJæ¢Ã¢ô1÷Ë8ö>~›eÕt•/·…6_j™ïVÚu„Á)‘ƲçøŒ±
5âeÎ {T½zÄÚfÃÔH +ð€œoݵ¤-728 Ñ3tWÁž]Ü–s6~Läø4âƒí/¸¯tŽ×%$(†ÔuøÕ•ãD€EŸðÔ¢hoÉZ`¼™’âðÆ4ÏÙ˜òÉÆÜKåÓ2ë**°hèÉiâf½5c‰5‹'!Uu·™Ï›º ¤…¼ +=â~
CóH¢ðÛ&Ëå<ï.ïÇ+n¬r»Á:‡€„³çØh‰µ‘˜áx³U‰º^§¨’ÇD•°»qÞƒ*ª—ò½Aµç|¢
,ì´‰>3w+FÔ£,ÔŸ¡1zS—µ\Ø©vÊ#.üú7Wªµc«ÜŽh½!•v\ÂB6Áã{¢ëlŽùíómhwŠCft’0{,7òUh,2×£í„óê=uò]^ÌþÂŽGÝ„ÞæñÄi”U4–ˆâï¬1àÞ +mz4†\qñ®Žÿ¬,ŠWjl +$²éúJK¤q\¥×ôAHj-ë‰Ö„D[þÞJëUØYTK“¹d&ƒyu_§,aÛ^•%²8–Ê„"V«—ܨGìWÅdÝç„€4û]·Ù‡)f‘a£)!ýFSB'žˆßgØœÓrѼMu‡÷款Zw_#ˆÁ9“>~:eßÃ{Ýâs&BUGKðÁGKÐÞ-1¥‰sZn+TÝE®E]]è.»0tdØ5┎S»TŽYüH'XyþÞÒX÷fŠöX!îð”Ϩ÷Çt/ž/˜ja˜VØ`# +[|GØúß=°eXw‡a‹wš4Ý°åŒ +T‰5Fa„¯ï #›:!¶U^óÂ'ÈSWþNf§ÚÒ:;…OÛìÔÈíͪ΄Ô_·ªšŒt—Œ5¸«ëÝ7Ý|pHQ5¿ÛÊKÙ:ˆ"4«ñêïÀw(hÚÑÀg¢øcåµoaVŒ†\¯ŸÂk˜~O€^gÓ‡—”Ó +Ù´>aŸfþ^-~lá/Æ(ÀŸÎ7³,¾e[ê- †S¡ú›¸°ê¾%¤‹xÐ~¢ÙÏbo4®@Su7h·ÃuÄY×Þ¸ýëﱚ~yöÓç×ÖK
¯ð&“/*/©êeAŸˆû…{æS}.ü1.å!
ê;ÆÅ‹–‚€;|ŒËÀêhßÖœãªxŽ{V.– õÛ|ž¯£~óutv:ý“Æ
Aôì™ÖN±—óÆÈô0Ô¤V +ïU„ø秲BÍyëXp–á×õý$ö{ÌšûfÐk{‚ä?æ7Ï(ZÍ&Øc5è’ó-?HnÒšj^•q©›å²\…+0û&e²J)ø&uqÒ(€ê¾|,š¢êÓG#‰TâÉéãä¶|¨‹¤(·ŠÑáYz¶s*VŸ–Ý–›x¨VÂD«ºb°=½£Q
þȬlÄáËe6Yí°UOôô¾Œ¶1„ͺÿÒ,ö%öoº“·Ï³ëonðÿ“<ÍÁiCÝI['¦HËdkÖqàoœ& †·-œ¤ŠEohMѯ·Ùt²©:£^çkÛý8V:…Ðœ•Y\BœU
'³rÐÜE«ŽÎ endobj -2167 0 obj << +2176 0 obj << /Type /Page -/Contents 2168 0 R -/Resources 2166 0 R +/Contents 2177 0 R +/Resources 2175 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2173 0 R +/Parent 2163 0 R >> endobj -2169 0 obj << -/D [2167 0 R /XYZ 56.6929 794.5015 null] +2178 0 obj << +/D [2176 0 R /XYZ 56.6929 794.5015 null] >> endobj 702 0 obj << -/D [2167 0 R /XYZ 56.6929 292.3223 null] +/D [2176 0 R /XYZ 56.6929 543.3808 null] >> endobj -2170 0 obj << -/D [2167 0 R /XYZ 56.6929 267.2016 null] +2179 0 obj << +/D [2176 0 R /XYZ 56.6929 518.2602 null] >> endobj -2171 0 obj << -/D [2167 0 R /XYZ 56.6929 210.7732 null] +2180 0 obj << +/D [2176 0 R /XYZ 56.6929 461.8317 null] >> endobj -2172 0 obj << -/D [2167 0 R /XYZ 56.6929 198.818 null] +2181 0 obj << +/D [2176 0 R /XYZ 56.6929 449.8766 null] >> endobj -2166 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F11 1509 0 R /F40 1218 0 R >> +706 0 obj << +/D [2176 0 R /XYZ 56.6929 164.2442 null] +>> endobj +2185 0 obj << +/D [2176 0 R /XYZ 56.6929 135.6997 null] +>> endobj +2175 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F11 1509 0 R /F40 1218 0 R /F68 2184 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2176 0 obj << -/Length 1560 +2188 0 obj << +/Length 607 /Filter /FlateDecode >> stream -xÚ½XmoÛ6þî_¡60±|§ÒÔn] ij»Ã†®™i„9’kÉñúïw)Y²e{Y‹"@$RïÈ»ç^h`ø#A$fšJs$0Aò8ÀÁøöz@<&¬Aaõr1x1aQ ‘–T‹û–¬á("Ábùixýæêv1žB*ðP¢Q($¾œÞ¼r3Ú=®ßßL¦¯?ήFŠÓ÷7nz6žŒgã›ëñ(Ô:¢°ž·$øµó…]äWÎÓëùèóâí`¼hÐ>$ÁÌîþëàÓg,á¬o1‰`ŒˆÖ4xpÁàŒÕ3«Á|ð¡ØúZ-í3Ç*XJŠ˜”ô´Z§ƒZÿÊŠ¤ZCÂâBYG0Š¬q!-GÎPĘ”ÐH2Ê*OüjÍòbBÛH…H·€ÅŸ·c‡éH£qÉ™ývJJäWIbÖ¥GÑ -l¦4Õ6Í’ü1;ŒBÉÔ0ɳÌ$ešg…ˆ†ÅÄÅýˆ·«Õ77W¢Í8@¸¢ÃÅCZXE 2$i!h%;É·Yi6£+=HõÌòÒ½Äëõ*M⻕qã2÷ÏÓs6"R8ª·ýñÕmÏѨDKé1q¶ìD ¸¢±ÒäÕ..“‡Y!ÅQ`W÷Lå·µ)Ð!³9P[Ynµ ñ}$c<BÂ6Â>.G"ë§y‹#D©¸D[§Š~&mç&[Ž7›‹¼µ
ó
Њ)6L3ûäÃ"Oþ6¥›+@–{Ë×fW´ÎÊ;ÊVŸ’ÚÕIîÄš°ÏÅ:Ï–…ËvÀÖã“p8+\Q¥ÿ”"NDmµF½šß÷ U¶HmŸ*e÷…ƒWDgº÷ü÷‘iÏÏšÀ?0¯J¹ZèK•Z£HHþ3 :3ÉÓs J±#(Å´!¨s\KLúdÜÇO©æž§n}²Ú.™½ôQ]±Ÿ” -«ƒ†ãÿª7B¤F’)¤r…°ê6*G
ÃET+ˆÎQµÒt‡•u7%Á
- •lgF€ÂŒ1´sùã¼~—®ÒÒûg—–¾ÚÉvÏH`g–=GI¦)„Öå5ò-£K`E_ %B",™„ƒs¤9q{|—6ASˆ…vW”ibs1%u2,Ü×ò!ö¸q‘âPñSœ®\ß`?B`õlÛ¬)Åù¬ÉÀ—”îÏcÅÅU«"÷[Ý®×ù¦Š“J xŽsFŸ¡T{¥Þ -U;ØúÙ:ýNÜÅwy•<lI²6±‰ƒ<|Ó˜¬ŠÊö -<þ§„{Dí¥¹sšü>"„@‡_€½ -8ŽªKüèBendstream +xÚ•KoÚ@Çïþ>⃷;ûòî‘P“:Æ*¥9€Ù&H`?Ô~ü®ñ#©Ô +!kgÿ³3ó›õll~`KŽ0UÌöC·ã½…í³woA£q[‘ÛWÝEÖ§)•¶BJaG?{gI„¥;Ú<&_Æ‘:.áx$ãrGwÁìsmQõc2ŸMƒû¯áØñØ( +æ³ÚúS?ôgßq•’Äø³Þ ï2ªœÏeL–Îsô`ùQW@¿HÀ´ÊþÍzzÆöÆÔú`aD•äö/³À”"öÞbœ"Î(m-;ki-º{»G×!hŒKÄ ¶Ë ’˜“ÅsCÊõ ¡Ô;YCd[UE6Ÿ†ç¥(DîI‡Âvª¸¤C”w8zÝæ5ú8-“Bgõ¢5®âXçùv½Ó=©ŸÅkc’8Ýo“—zµ(u¶Õo®ãb›&袃
' +½©—k¯Ê\WŸ•B!CÁ3ÉUçÇVê'CX¶¢f*mR}6^eÈQÓºÕ:-›à±~¦‡ªaù•^ÿÀ˜dyãrØb®
:ÊQ5›¿Æ9ù÷!øþY`ž¹Ú’·Šš„RmR# Ôq™à´ÿ%@ +ɶRŽýß…N6m‹–uÇêÅ7 +œšÉ+‰7€áر‘!endstream endobj -2175 0 obj << +2187 0 obj << /Type /Page -/Contents 2176 0 R -/Resources 2174 0 R +/Contents 2188 0 R +/Resources 2186 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2173 0 R +/Parent 2163 0 R >> endobj -2177 0 obj << -/D [2175 0 R /XYZ 85.0394 794.5015 null] ->> endobj -706 0 obj << -/D [2175 0 R /XYZ 85.0394 629.6971 null] ->> endobj -2181 0 obj << -/D [2175 0 R /XYZ 85.0394 602.1058 null] +2189 0 obj << +/D [2187 0 R /XYZ 85.0394 794.5015 null] >> endobj -2174 0 obj << -/Font << /F38 1082 0 R /F11 1509 0 R /F21 994 0 R /F22 997 0 R /F68 2180 0 R /F40 1218 0 R >> +2186 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2184 0 obj << +2192 0 obj << /Length 69 /Filter /FlateDecode >> stream xÚ3T0 endobj -2183 0 obj << +2191 0 obj << /Type /Page -/Contents 2184 0 R -/Resources 2182 0 R +/Contents 2192 0 R +/Resources 2190 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2173 0 R +/Parent 2163 0 R >> endobj -2185 0 obj << -/D [2183 0 R /XYZ 56.6929 794.5015 null] +2193 0 obj << +/D [2191 0 R /XYZ 56.6929 794.5015 null] >> endobj -2182 0 obj << +2190 0 obj << /ProcSet [ /PDF ] >> endobj -2188 0 obj << -/Length 1326 +2196 0 obj << +/Length 1324 /Filter /FlateDecode >> stream -xÚ•WKsÛ6¾ëWp|’g">ëSâ$3™LZ»½$9À$qL Æq;ùïÅbŠ²·†‹åâÛ÷‚`µ?å ¡¢ˆ£¬ˆIBY•û¶öݯæeâD$Â.fÞ®‘“$çY´š‚¼º^œ½å,┤)O¢ëͨ+ÍRÂYÌ£ëõ§åÅN¶Fu§+žÐevúåún‹I–g¶Q«Âj`6¼ºüð¥|\©rè*s«ÝôÕZuÒT–ñXLDœr—¦$ÎYêð2ÂNWŒRº|Y–ªïGÓéï«Þ(¤Hyê‘'Ö¶‘âöS–/aÉdù™&ôåÅûÞ>¾”NTùÅzË€µ—¦Ü!YPÌNdÞë‰R6HôÊ¿Z–ÍMUÞ6rïUmtç‰ÁS†^»à c¤HÌUÕŒñ<Á -PÁ¸•Y×únÕhSmîg"–ØÀÇYæ…_ÌÀÅ$OÒ#°¯ƒêf±›Rþ|¨•nfÐ2Jxžÿ7 - ^¥×W󀌨±çØ7âÍÛ˜§Dð$þŸ7µ,owºV3H±äìyyp±Š¡33Û‹G•a:ÙôÛÆU‰„Ä,=¨r¥LI/¼^Á HDì¤þì«fk%SÛ”¶SrVxÚÕ<Fãs'¿)¤>SÊ7PR¶,mÙòЊÀÓßð-]Þíün×9NG¨ÃËaÇ -;M÷•q%‚7‹Ç›}sEg{“¥1ùaΛF890 ìL’å¹PµOb‹áþ¦ƒŒ¾ÕÚ•žÏ¦óˆµj*Y§
lªJòžÐ×ú -·ÕÛ¹^·ÜʪéÍÃÒ™†d&Û¿©0ÎA¸ -XÞ
õ]îÛZÛ´ÓwH¸–]Ôêj¶Ê¶
$d÷_B3G"ÍñL<;³ £pF$ à ¦ÀÓâ =¶FòäFo‡¾Q¦?Ažu@ÝUuÔMËÛ¹6*ÿx{Á -–ã¢o%„5{5½Þ{V§\8×Ù^ß®‚³ÈªJ[©÷{Ý@tœ—} -àåÈLÏý‰plzñcTÂ)ŸY¥ö!†¶èWâ«Úz̦ÙU}(
³<5Ø ¼SÒG¦§«½a£º‡éàÇéV„l¸Çwâ~‡0æ?f£[ü<d6¼>²™Y£~ž~/M¦ÿÄ$6ûEó€':|†LÇâ~Ò¦ -퇋rêÅÕâ÷ÃÅ.hƒyÎ׺£ï;j¯V¢`Á(7L¸°.géô¶F -’>òá÷æ»QÍZùsòjh[Ýùƒî¯SÆØR¹Jtãƒ@ŒwÎÇ‘ø¿[Âqendstream +xÚ•WÝoÛ6÷_!äÉj†¤¨¯å©MÛE1lK¶—¶ŒLÛBeQ•¨¤ÙÐÿ}<)ˉš-0OÇß}EQûcQž"Ê +AÊ’¨<,h´³ï~^0/#’˜$"Žíbæí:‰s’ä<‹ÖSW׋ó·œEœ’4åIt½u¥YJ8<ºÞ|\^îekT·Zó„.³Õçë÷¸M,Ïl£V…ÕÀ,.lxõî××(]àãJ•CW™{\]ꦯ6ª“¦²ÔˆÇ‰EÊ=^š‘³Ôáe„ÖŒRº|Y–ªïGÓéªÞ(¤Hyê‘bN¬;(lã·¯X¾` „%“å'šÐ——zûdøR:Qå›
.ÖAšrd}D1{iy¯$JÙ Ñ+ÿjhQX6d4Uù¥‘¯j«;Of˜Ú0ô +Ü#E’`®ªfŒç1V€ÆŒ[Y‘uïÖ6Õö~&b‰
¼È2/übN<IOÀ¾ª›ÅJlJùó¡Öº™AË(áyRüÜ(€x”^_Í2C=ǾoÞÆ<%1OÄÿ„¼©eùe¯k5ƒ$¬ gÏ˃«ˆµ€ÎÌl/žT†édÓom?V'D°ô¨Êu”2%A¼ðz
ƒ"‰…“ú³¯š•LmSÚNAÊYáiWó@Ͻ¼UH}¢”7n ¤lYÚ8²å±§oñ-]Þíýn×9NG¨ÃËaÇ + 'à£NVë”vš*ãJoŽovôÍ=íM– +òÃœ6pr`@[Ù™*$Ër¡jŸÄÃ}«ƒŒ¾ÕÚ•žÏ¦óˆj*YŸ¦
lªJòžÐ×ú +·ÕÛ¹^·ÜɪéÍÃÒ™†d&Û¿¨0ÎA¸ +XÞ
õMÚZÚ´×wH¸–]Ôêj¶Ê¶
$d÷'_B3G"ÍñL<?· £pF$ à ¦ÀÓâ =¶AòìFQ¦?Cžu@ÝUuÔMË/smTþñö’,ÇEßJ7jöjz}ð¬N¹pn&²/¼¾}g/Uÿ”¶Rºè8/û +àåÈL/ü‰pjzñ}TÂcR0*žY¥ö!†¶è×â«Úz̦ÙW}(
³<5Ø ¼SÒG¦§«½áp£º‡éà§éV„l¸Ç7â~Ç0æßg£[ü<d6¼>±™Y£~Àž~/M¦ÿÀ$6ûEó€':~†LÇâ~Ò¦ +ÿDHçC6÷§n?åßâÍõx× +7(øh²÷±™Û³/¿.>~¦ÑÆ +½_PyÝÙ%¬(xtX/vÈ©W‹ß»
:<Îs~¼Ö|ßQ{µŠŒrÄ'«µ°§Ñô¶F +’O¼7ߌj6Ê’WCÛêΟrcKåÊЊ¢0^8‡á_»ÁËendstream endobj -2187 0 obj << +2195 0 obj << /Type /Page -/Contents 2188 0 R -/Resources 2186 0 R +/Contents 2196 0 R +/Resources 2194 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2173 0 R +/Parent 2163 0 R >> endobj -2189 0 obj << -/D [2187 0 R /XYZ 85.0394 794.5015 null] +2197 0 obj << +/D [2195 0 R /XYZ 85.0394 794.5015 null] >> endobj 710 0 obj << -/D [2187 0 R /XYZ 85.0394 769.5949 null] +/D [2195 0 R /XYZ 85.0394 769.5949 null] >> endobj -2190 0 obj << -/D [2187 0 R /XYZ 85.0394 571.259 null] +2198 0 obj << +/D [2195 0 R /XYZ 85.0394 571.259 null] >> endobj 714 0 obj << -/D [2187 0 R /XYZ 85.0394 571.259 null] +/D [2195 0 R /XYZ 85.0394 571.259 null] >> endobj -2191 0 obj << -/D [2187 0 R /XYZ 85.0394 538.9404 null] +2199 0 obj << +/D [2195 0 R /XYZ 85.0394 538.9404 null] >> endobj -2186 0 obj << +2194 0 obj << /Font << /F21 994 0 R /F22 997 0 R /F40 1218 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2194 0 obj << -/Length 3316 +2202 0 obj << +/Length 3313 /Filter /FlateDecode >> stream @@ -10446,314 +10556,328 @@ cLâ».£*U&XL Æ7dà ší#Q¬# *Jïçö+{TmC?–MA`ø
Þ q–‰ÑÖN¥RÀ€ý’ê&: ²q³- HËl>9w%W
T-5T~©üÎî£ ¯˜S ¾GzèÊ~àEåCÉœGS›€WôôlÚO(aϯ*À kz„BÄF$øÜ‚šš‹†Ó” Ó©¡þ=ÛG/:ÿ¹ÿ÷<sêN x;(×¹Ó¬Ûmùd B¼Qì—b^¯3ئ‚§Ž -çæÎaa›WqrLD5éë#Ú—òDƒ|WxtJZfh;EXÔBêä“žî‚mÙÇÖF“LØË|“cÊž/¦ÞÔ`p Æê¡„õ !lGÀÙ$6o*>ÀiA¤l/Ô´9¶u•Ÿ–Ûaìîf¶Œ#ð`w®öŠ—ˬÐÇ?ÌXø‹ŒÀÕ3ûï?Î8OhKù×ÚÁk²Ýfþ[?õãÍGy®o¯¿
à=öïóx(ÍÎûo£xBRT½*)"OÐMûLöÏNž+âÿ‡¸F[endstream +çæÎaa›WqrLD5éë#Ú—òDƒ|WxtJZfh;EXÔBêä“žî‚mÙÇÖF“LØË|“cÊž/¦ÞÔ`p Æê¡„õ !lGÀÙ$6o*>ÀiA¤l/Ô´9¶u•Ÿ–Ûaìîf¶Œ#ð`w®öŠ—ˬÐÇ?ÌXø‹ŒÀÕ3ûï?Î8OhKù×ÚÁk²Ýfþ[?õ“sq{ým endobj -2193 0 obj << +2201 0 obj << /Type /Page -/Contents 2194 0 R -/Resources 2192 0 R +/Contents 2202 0 R +/Resources 2200 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2173 0 R +/Parent 2210 0 R >> endobj -2195 0 obj << -/D [2193 0 R /XYZ 56.6929 794.5015 null] +2203 0 obj << +/D [2201 0 R /XYZ 56.6929 794.5015 null] >> endobj 718 0 obj << -/D [2193 0 R /XYZ 56.6929 730.0613 null] +/D [2201 0 R /XYZ 56.6929 730.0613 null] >> endobj -2199 0 obj << -/D [2193 0 R /XYZ 56.6929 694.6148 null] +2207 0 obj << +/D [2201 0 R /XYZ 56.6929 694.6148 null] >> endobj 722 0 obj << -/D [2193 0 R /XYZ 56.6929 556.3845 null] +/D [2201 0 R /XYZ 56.6929 556.3845 null] >> endobj -2200 0 obj << -/D [2193 0 R /XYZ 56.6929 529.3116 null] +2208 0 obj << +/D [2201 0 R /XYZ 56.6929 529.3116 null] >> endobj 726 0 obj << -/D [2193 0 R /XYZ 56.6929 413.847 null] +/D [2201 0 R /XYZ 56.6929 413.847 null] >> endobj -2201 0 obj << -/D [2193 0 R /XYZ 56.6929 385.8516 null] +2209 0 obj << +/D [2201 0 R /XYZ 56.6929 385.8516 null] >> endobj 730 0 obj << -/D [2193 0 R /XYZ 56.6929 226.4875 null] +/D [2201 0 R /XYZ 56.6929 226.4875 null] >> endobj 1810 0 obj << -/D [2193 0 R /XYZ 56.6929 193.9525 null] +/D [2201 0 R /XYZ 56.6929 193.9525 null] >> endobj -2192 0 obj << -/Font << /F38 1082 0 R /F70 2198 0 R /F22 997 0 R /F21 994 0 R /F40 1218 0 R /F42 1288 0 R /F54 1383 0 R /F49 1308 0 R /F61 1416 0 R /F62 1419 0 R >> +2200 0 obj << +/Font << /F38 1082 0 R /F70 2206 0 R /F22 997 0 R /F21 994 0 R /F40 1218 0 R /F42 1288 0 R /F54 1383 0 R /F49 1308 0 R /F61 1416 0 R /F62 1419 0 R >> /XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2204 0 obj << -/Length 573 +2213 0 obj << +/Length 570 /Filter /FlateDecode >> stream -xÚ¥TÁŽ›0½óA*®1±Ù„¶¬Ô4MØJ«íxT‚i ›¦__Ã8 ÚÒSE̳ßÌø=ë±9C˜ŠÀžˆ -©O{÷Öj/;M¡Ól ÌvJ5f¹UÝ“9?¤¬a%-Kòs•î‹Lã³w¬ó´•9lÌ;?{FÚ¦”1°9nrµOaU—¬Lf.K¹Õ…Lï]Úø^g·Öì‚c~/À¡NJEßBÃFÖéJiô[URß,Å¡“슘§ôìBœwX·“°ÞªÚ+å«,o¹eªju¿¢Ú|(ÚÎ +xÚ¥TÁŽ›0½óA*®1±Ù„¶¬Ô4MØJ«íxT‚i ›¦__Ã8 ÚÒS…óÆof<ÏcˆõClΦ"°'"@fg{Û[½öÑ"†ã]HÞu—Xï?Pn$B?´“—A.Ž0çÄNò'göiºL¢•ëù;äz,ÄÎ]¼˜ƒGÀgÍVqòhöe±ŽçÑjêN'‰5r½€c®ã©É0\L?Ç3à?,ç@Þd{Nî(¹62l–`ÚuñÓzzÆv®{¾·0¢‚3û¤FDßÞ[£ˆ”^<¥µ¶¾^VûÐ1ñåˆq2¢žï©Ç +©O{õÖj/»žB§)ZÙ€™í”jŒ»UÝ—9?¤¬Á“–%ù¹J÷E¦ñÙ;ÖyÚÊæž=#mS°Š +ÒØ7¹Ú§àÕ)+™ËRnu"S{—¶¾×É{öA‚1¿oÀ$¡vJE_BÃFÖéRiô[URŸ,Å¡“슘§ôìBœwX—“àoUí•òU–·X°2Uµº^Qm
>m' endobj -2203 0 obj << +2212 0 obj << /Type /Page -/Contents 2204 0 R -/Resources 2202 0 R +/Contents 2213 0 R +/Resources 2211 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2173 0 R +/Parent 2210 0 R >> endobj -2205 0 obj << -/D [2203 0 R /XYZ 85.0394 794.5015 null] +2214 0 obj << +/D [2212 0 R /XYZ 85.0394 794.5015 null] >> endobj -2202 0 obj << +2211 0 obj << /Font << /F38 1082 0 R /F22 997 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2208 0 obj << +2217 0 obj << /Length 69 /Filter /FlateDecode >> stream xÚ3T0 endobj -2207 0 obj << +2216 0 obj << /Type /Page -/Contents 2208 0 R -/Resources 2206 0 R +/Contents 2217 0 R +/Resources 2215 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 2210 0 R >> endobj -2209 0 obj << -/D [2207 0 R /XYZ 56.6929 794.5015 null] +2218 0 obj << +/D [2216 0 R /XYZ 56.6929 794.5015 null] >> endobj -2206 0 obj << +2215 0 obj << /ProcSet [ /PDF ] >> endobj -2213 0 obj << -/Length 2050 +2221 0 obj << +/Length 2047 /Filter /FlateDecode >> stream -xÚ¥Û’ë4ò=_‘7<UÄ#Ù–/@Á.s¸ì™bk—Ãc{ï±`Ë Ã×o·ºå8‰Y¶Š™‡´ú®Vw«-¹ð/שòE˜Eë$‹|%¤ZíJ¬w@ûj%™'R¡¯¢0„Åu£ÂÔWi¬7s%Ÿ?¯î¿ä:~jýü2ÙŠ“ÔÏÂ([?—?{ûü`ªþn(á¥w¿<Cb‘Ÿ¤‰D1&”Ÿd"µÏwRJ¯×㶩†½Ö¦îv“˜Œü0Š‹C?‰ÙI}y·‘BïA·îÈàÛ^ƒšv8+~¦”S‚ó‰L‚IÅ£ùàN)o %6œtÿ¼ù˜V{}" ÈÙÚ#ý¼"Ø}E+=:é}~¡öÔën÷{¬3?‹ƒ˜ƒðd‘Œ( {ÐFÒÛVƒ!hÐÍhjÜ$®Œž°G–]Ô0K/ošüÌ™w%…îØ˵†±|©ÛäïÙ‹C'S¯:VÙ#cÛ*F¢°äö·†›™b›*ct$‰7ð7ö½ÛMHô«A%HÙV/š´îÁw4g‚Âr72 ;¨uÉl9áMŒÖ/„ß×as6>ˆ«;°ÛrlbàðˆD§
À¶ºÜ ´‡ª¤óÅÐÍÒÁîb!%‚pº´°îÛpÀ’\š§Û\ïoŒÚ³fÞ;æ¼ÿE ?ˆC—óËø®è«œ¨oCw» =™zªú:oþ~l·PãË©œBe¡µ÷oÝ¡tœB°4À•Æ#ˆ3/Ÿ”ÿŒ˜ñW<©÷.âo^ ÇrÝ,Pæ†•Ê ² +ïïDh4óÚL -ÐNuÓÔÚú™nëÁœqpÖËÅ -“!Ç ”õÀäô'Q¤‘Xw;/£áÄGFÖ°¯[ÿÊ€&R¡{â.®ì†ØM,ËÔ?–Ýš,£½bdu!.ô 9%°ÔÃR 9±=¨l^P6ù”½¥ùœÆb–¢jžÆ°àž»ÚÍ Re]p†Š)_2:œÌûëª>g…Û -ƨñPº\Sïñ…è”*@f—Ž“¸”gûZ¬œXì
M~¬ŽŽ¯è·Ñ'‡o;’aa5ƒZ°2cló‡$ò>œ -˜U,Ûç¹1U{0‹õÆ‘"Cpmøš-ôá•ÛîËUÃ0û“†˜rPáÓtK¥Îy -³ÉæPõ®Å¸0—·Í_Š'ÝØ2ž
.LH·D—mš†~㉒—%%QÆQB„wB‰à] E(7òZcE>N¸ t·ÎË+N®9é¦ -ìe=z¤˜ÁÒ¶³p9ŽBqÀô„ÐÅY'ãíè‚dž44Xú½*¶v®ûÚ¼‚ÌÞvÜÂÝË%Op0ÔÝæeìJ«5Dø!fÎ-pÿ -ß[f°S)ÜäOÀeYcD¿¡ð)N€¿ÈȘfÐc\WÒ!²ýs"×<áxÌÍ‹÷ùŽ9ík8×…íÌŽV*—ļêÝ.^èZZÙH!ÀŸ'æ]GW¸œG
lŠãÐj!•óÝNh -¾ÃYA30ÿ¥Wîˆm)álQ]~ÑØ2’Aæ]]Vî"ƒü¢Á³nÑs'=,{W¼*æâU“çvœOðÛä…!~Mþ
4ùô-ËÏRÎZ¨ò•Šp}øYV_<O¯0a”AÒµ?Q)½ÔõýÚAßž_m&ÍLÂ>ÚDóÖy£·ÐŒþhæöîÚhç~&ÓìÒŸ«—£‰éƇ‹½ßèB>]èónŽLf#øc=Ôfúò¡SÁ¢Á£Ý„iêËDF—¹}ª¶<÷P`r˜…SQÊW‰ü£3‘\_* ~*‚??”Ib3¹=•[Ív¦0æðÑýýétòùTî]YÞsöÝßäMB^A/}¼:¨‰ëÖ¯‹xÜjû_G…oâb@§jϹ[~Úñ¯v‰¡òñYrÁc1=äñ×ÕÏ¿ˆu L߬„f©ZŸ`!|™eÁº]ß7 Ó¬žV?œ7ï¬ÁMêCºç×Í‹B0Ä„p$ìnKâ3Dˆá¹É€„ŸlÞîF‰/~3_øl25gXüdß:¡£×ø£ÇU ¦§×ÛHü6±°@endstream +xÚ¥Û’ë¶íÝ_á·hgb(‰º¤¦Íž\6™¤iv§6'´$Ûê‘DG;›¯/@€´l+Mgºû`w‚ +ŠØT>/(“|”½¡ù’ÆÁ,Eå<aÁ=!±µ›C¤Êºà
\¾ät8¹÷+× T½b…Û +ƨéXÚ\Ž2ïyGtJ ³KÇÉ \Ò3}-‘V,ñ†F*†“å«úmôÙ¢ÀÛŽdXXΠ¬Ì[5à0ÆÞÇ®€YŲ}Î`СƱjãb½qG¤È\|ÍúøÆmwwÓÂ0̾S˜ÂÐS*|q·TfÀí2›í4ý*ú±¡ðÂű˜«ãXXÕ'§Žâ{a½ç†.ÝnpBãEh©–YÞ0Üf“ͱêm‹±a®o›ÿ+žtc‹d6¸„"%Ý]6iúME•%B§q%qJ„÷Â÷¡"±°·+Bð pÂ…‘½
´*o8¹æ„Db›&‡Ëý&~ˆÆ Ká>P´ƒØ–+.¨Ó!’¬¢«Î„aóA|I3$_¹O
®#6{§Œ¬ùÀâ.çfæxÎ +!Ä,9A)-(z¡uNuÁRjOÁ4³û‚#®áüìù»wK¦±=H¼w_=}í‘\1Œ¢_àhk8Ì›`tyyühÍf‘àüÄ…»©Ìâ¤êFmør°k»RÅafƒT×]ÑLe5,èÅ]-\®T;qèA´ˆì»ïU;`æÅPõ¾«q¾-(K½¬‡BO3Xšr.§ÂR(î + Ƹ®¤Cdû—4D®yÂñ˜«ŠjÏŽœ5œëÂvfG+¤Mb^õö‹ +›óˆ¢MrZM#¤´¾› MÂw8+hæ¿öʱ¥-%œ)ªë/SF"̽›ËÊ>@ä_4cÖMÃ@#ºÂqÒò·Å+.^é<7ã|ŠØ£*F"á×äŸA“Oß²üœ!Ĭ…*_Ê$gЇ?"ËêóW÷ +Å9ôÐ8[‹(ôS™ÑK
Q?¬-ôÍåÕÆ lfæÑ&ž·Î;½h½…&0êOfnïoývîç"˯ý¹y9rLw>\íýNúð§…>/àæÈEÎ1²?ÕC=º/:,<ÚM”e¾HE|ÛçjËsÕ&Ǹp*Rú2¿u&"†ëKæ endobj -2212 0 obj << +2220 0 obj << /Type /Page -/Contents 2213 0 R -/Resources 2211 0 R +/Contents 2221 0 R +/Resources 2219 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 2210 0 R -/Annots [ 2220 0 R 2221 0 R ] +/Annots [ 2228 0 R 2229 0 R ] >> endobj -2220 0 obj << +2228 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [348.3486 128.9523 463.9152 141.0119] /Subtype/Link/A<</Type/Action/S/URI/URI(mailto:info@isc.org)>> >> endobj -2221 0 obj << +2229 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [147.3629 116.9971 364.5484 129.0567] /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.isc.org/services/support/)>> >> endobj -2214 0 obj << -/D [2212 0 R /XYZ 85.0394 794.5015 null] +2222 0 obj << +/D [2220 0 R /XYZ 85.0394 794.5015 null] >> endobj 734 0 obj << -/D [2212 0 R /XYZ 85.0394 769.5949 null] +/D [2220 0 R /XYZ 85.0394 769.5949 null] >> endobj -2215 0 obj << -/D [2212 0 R /XYZ 85.0394 576.7004 null] +2223 0 obj << +/D [2220 0 R /XYZ 85.0394 576.7004 null] >> endobj 738 0 obj << -/D [2212 0 R /XYZ 85.0394 576.7004 null] +/D [2220 0 R /XYZ 85.0394 576.7004 null] >> endobj -2216 0 obj << -/D [2212 0 R /XYZ 85.0394 548.3785 null] +2224 0 obj << +/D [2220 0 R /XYZ 85.0394 548.3785 null] >> endobj 742 0 obj << -/D [2212 0 R /XYZ 85.0394 548.3785 null] +/D [2220 0 R /XYZ 85.0394 548.3785 null] >> endobj -2217 0 obj << -/D [2212 0 R /XYZ 85.0394 518.5228 null] +2225 0 obj << +/D [2220 0 R /XYZ 85.0394 518.5228 null] >> endobj 746 0 obj << -/D [2212 0 R /XYZ 85.0394 460.6968 null] +/D [2220 0 R /XYZ 85.0394 460.6968 null] >> endobj -2218 0 obj << -/D [2212 0 R /XYZ 85.0394 425.0333 null] +2226 0 obj << +/D [2220 0 R /XYZ 85.0394 425.0333 null] >> endobj 750 0 obj << -/D [2212 0 R /XYZ 85.0394 260.2468 null] +/D [2220 0 R /XYZ 85.0394 260.2468 null] >> endobj -2219 0 obj << -/D [2212 0 R /XYZ 85.0394 224.698 null] +2227 0 obj << +/D [2220 0 R /XYZ 85.0394 224.698 null] >> endobj -2211 0 obj << +2219 0 obj << /Font << /F21 994 0 R /F22 997 0 R /F11 1509 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2224 0 obj << +2232 0 obj << /Length 69 /Filter /FlateDecode >> stream xÚ3T0 endobj -2223 0 obj << +2231 0 obj << /Type /Page -/Contents 2224 0 R -/Resources 2222 0 R +/Contents 2232 0 R +/Resources 2230 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 2210 0 R >> endobj -2225 0 obj << -/D [2223 0 R /XYZ 56.6929 794.5015 null] +2233 0 obj << +/D [2231 0 R /XYZ 56.6929 794.5015 null] >> endobj -2222 0 obj << +2230 0 obj << /ProcSet [ /PDF ] >> endobj -2228 0 obj << -/Length 1309 +2236 0 obj << +/Length 1988 /Filter /FlateDecode >> stream -xÚµWKoã6¾ûWèÅV¢EQ Ù$Åî¢i»6¶‡$F’¡²èÕ#Núë;IY¶d;{(|03ü†¿RÄÁð#NÈf‘瑇8&܉×ì¬`î· 16gˆ{ŒAgdÖå,D<¤ãö¹ZL.n)q(F¾O¹³XvX~ -ƒ„ˆ†‘æãÀFm©í‰$)g$œ¦UeW ›2«ßt/«ªÆÀ%i—ÙSš˜CÕÇo7.-¸ÜÞùßb +xÚ•XÙÛ6÷_a /6Pkyèl‹›f·mŠnòuE’Z¢×jdÑÑagó×3J–ÏmáSsp†3¿|ÌàÇÇqà1™øã(ñ½€ñ`œ®Glü¼ŸGÜÉøô_Jø8Ã2ö‚XDãÙp’WóÑͽàcÁ¼0Áx¾ìm…QìÅq2žgï'·›.³üËt&6¹~œ¿!5ߋ∣Ë0²èB«Z“ƒitÝ+qß“~(œR(½˜…1™ñøtÆcçÔípi*¼úõá5þœrÎ'ºªsS%ñ/Þ›ã^9ɼH&²3×üµl*“µiƒ³ªÃD¡¦€¸°˜¯rpH†b’™´]벡¯º]¯U•ÕŽ›®TùÔ}Ôy™j6+7(TíT7ՔǓÞK³¤.H0Kü—nõ–R͘šŠÔꔕO¸ô¿ø¿Vÿt<°„E¥Êtå]Š_à‰Ð}ü„‹ßk³+£²;0Äk‡´64ÞRþjúÂeâ?-G ýÕfÙì¹L”T•4PÅN=;ý…c.M[fŽÝgœ<aì ƱdгPdt7ï‹F†ÌKb¨_ÂJÃDPeûÓ¸ý¶¯²^c6T±Uæcr:3:°jšÍw77»ÝÎËëÔ3ÕÓMæâZß;H¨#„ò¡s'eï¤N:ÅélèÐgÒy‘©¤Y˜ÀÜAä1?Ž:”ñ.Ó]ªDMžM‹ƒp²Ë‹‚H˜!«,ËúÊñòŠ}¨PM-LÛO«tE£|¿J,#%¦Îlj²Ž¥:[Tlz–šõ&/´£ö <S1}ãù=O©R‹Dúkà.¤Êu)³Ñ8µg?ëçºÑëúß–”t%õ¨Ó¶Ê›gšä>ÿB=tˆ®WKâÉYtB³¡!Àä5a,s¡?Žr惒]·ÚKš=€g0öÃC³·ØÕb og)öINXÓªz&t¥ÓO,ýS'É·ïîÞýüî·»¿‰açÉT£šçvê¦-2’nªüé ðjéÊÍ¥êZW®ÃçRåK{ç@BÛf€-ÕŽÆ-ƒš.Lmцd·[ýôçÝšP0’8ôÀg“÷Le4™“À7>qøñbîyäñ +÷íׯvÅH}Gaý +º¦"êš(—Üt@F
[x@îì<ˆ¸çÇ’†&ˆ„¸r..‚\À#bß¿ò¡Ôe÷R/‚üªÕ=ÈOÌžùÙ[·3ltš«¢p=>Ô²éúÃçVWÀÃÜø¡\€Û’‡à¶šµ®kõ¤½ô +8»—g×¾†à´gEçàض›Uçνû·‹Ùì‚~] ++šIÂ
qr‡¸ID;à-©Ã_o_NèÂtÜUYïÈqD$5•µÃÄyðŸ.…ìú§‘?¹†YÁ÷˜fx‚Y YÌÂÿ+¢bSEǼØê¼RÄ|4î–Q#Ž…k‚(—¦îpŸÇðßãn¸q̆8od%ÁÇsgÁ\§†§GBß ´«Ê{š¶º| äpŠç‚Éëå0”º\½Ô‹åpÕê¾NÌž-‡³váÂ÷¹5Ý.a¼R[{ŽÃŸ.‰·»/Áëÿ‹|7Ž´r +Ø\s]wTåøýÕ?jºÖjsHq'Ñ[=$Õ¦ *ÚUm³2–?;W 9Diš Ü—¹„«„þ²AïÊ”6e`gº„J™™åsûŒ +`si„ï=xA®4
ÔººZŽn¡Â™^ª¶h¾ŸÎ|aïÒày$€ã£ïnú{L¹™>êgž-u“®¨ÌN߸”žÏ ™Ñ<¶:@®vE›QŽ +7WÇâ|;“Ì>¬ðÎ)\´6ˆ{ÈÁ3&=ZºãWÀî¾4ºÌ:H=¶›©šÓOå§Cî¥÷4ÿʪ‹endstream endobj -2227 0 obj << +2235 0 obj << /Type /Page -/Contents 2228 0 R -/Resources 2226 0 R +/Contents 2236 0 R +/Resources 2234 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 2210 0 R -/Annots [ 2234 0 R ] +/Annots [ 2242 0 R ] >> endobj -2234 0 obj << +2242 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [359.9931 399.4934 535.3356 411.5531] +/Rect [359.9931 427.4636 535.3356 439.5232] /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.isc.org/downloads/)>> >> endobj -2229 0 obj << -/D [2227 0 R /XYZ 85.0394 794.5015 null] +2237 0 obj << +/D [2235 0 R /XYZ 85.0394 794.5015 null] >> endobj 754 0 obj << -/D [2227 0 R /XYZ 85.0394 769.5949 null] +/D [2235 0 R /XYZ 85.0394 769.5949 null] >> endobj -2230 0 obj << -/D [2227 0 R /XYZ 85.0394 582.1334 null] +2238 0 obj << +/D [2235 0 R /XYZ 85.0394 582.7558 null] >> endobj 758 0 obj << -/D [2227 0 R /XYZ 85.0394 582.1334 null] +/D [2235 0 R /XYZ 85.0394 582.7558 null] >> endobj -2231 0 obj << -/D [2227 0 R /XYZ 85.0394 547.1398 null] +2239 0 obj << +/D [2235 0 R /XYZ 85.0394 548.2193 null] >> endobj 762 0 obj << -/D [2227 0 R /XYZ 85.0394 547.1398 null] +/D [2235 0 R /XYZ 85.0394 548.2193 null] >> endobj -2232 0 obj << -/D [2227 0 R /XYZ 85.0394 519.7244 null] +2240 0 obj << +/D [2235 0 R /XYZ 85.0394 521.261 null] >> endobj 766 0 obj << -/D [2227 0 R /XYZ 85.0394 446.238 null] +/D [2235 0 R /XYZ 85.0394 473.4398 null] >> endobj -2233 0 obj << -/D [2227 0 R /XYZ 85.0394 421.3738 null] +2241 0 obj << +/D [2235 0 R /XYZ 85.0394 449.0328 null] >> endobj 770 0 obj << -/D [2227 0 R /XYZ 85.0394 360.5567 null] +/D [2235 0 R /XYZ 85.0394 389.2565 null] >> endobj -2235 0 obj << -/D [2227 0 R /XYZ 85.0394 332.7277 null] +2243 0 obj << +/D [2235 0 R /XYZ 85.0394 361.8846 null] >> endobj 774 0 obj << -/D [2227 0 R /XYZ 85.0394 231.9611 null] ->> endobj -2236 0 obj << -/D [2227 0 R /XYZ 85.0394 207.097 null] ->> endobj -778 0 obj << -/D [2227 0 R /XYZ 85.0394 172.8402 null] ->> endobj -2237 0 obj << -/D [2227 0 R /XYZ 85.0394 142.3611 null] ->> endobj -782 0 obj << -/D [2227 0 R /XYZ 85.0394 111.0692 null] +/D [2235 0 R /XYZ 85.0394 173.2909 null] >> endobj -2238 0 obj << -/D [2227 0 R /XYZ 85.0394 80.5902 null] +2244 0 obj << +/D [2235 0 R /XYZ 85.0394 148.8838 null] >> endobj -2226 0 obj << +2234 0 obj << /Font << /F21 994 0 R /F22 997 0 R /F11 1509 0 R /F42 1288 0 R /F14 1020 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2241 0 obj << -/Length 852 +2247 0 obj << +/Length 3487 /Filter /FlateDecode >> stream -xÚ¥Ußo›0~ç¯à‘HÅñO0Ó4)]é”®j»&ª6u} ‰Ó Rœ(ë?BBªMšxÀ>ßßw¾C.TrY -‹P.aª¶Œ`…[ÃýxxkŠ`U…!TUF¦ÌæøÙmW_w%ï"ü~HSrÚ/Ô0³°.ËMña<®ë¤Å¢ìú„… ‚ê»S®rû4^Ê:Ïd²,Æ…\•u²¾îǶ&f³‘YºxRÃœNBꆃP}âhu^~ß¡³WÈa6ñ“í½^ó1æ -Ô51T€…ê÷»ëPE×̾ŠÙú*Úƒ
Bʹ-xoØ(}é qìù߃h7Ÿiçx7cð‘ñl1iÜ»‰»²z·?´¥›ÍxNŒ8¨C;ÿ†…øñaþendstream +xÚ½Zmoã6þž_a NÁÕZQõÒÈîfi÷²{›´¸¢ÝŠ,ۺȒהâuýÍpH™z±T ‡C€˜"‡3CÎ3äÌHláÀ[ðÀb7^„±os‡ñEº»rûÇS4KM´4©^?^½zçE‹ØŽ7X<®
^‘íD[<®~µnlf_ÇútûþöæáözérǺÿðxû@Íw>QãõÝý[jý|ûéáîÃ==€ +; +Úͱ½ïÊK/s¬ßîÜWuö=þTù³¢øƦ æÔi‡#ßjÐIOB’ëcSw••‚·ÈŠõ²nJЉŒ”wAgF |hÇžJåðøàýBƒ¾)ëì ž¶É‹’‘¢Òî‘éÅ®VÚ+´“Õ‡$}îùXk#N§.ù6òYãb×YZkvO§–‡0=UØ—®Ù€CÀ<o:š0©$N™oà-dxy¼¤c8,ì
‹Üi¡šh(´rí²¡7¥rÓmY`û1÷•; ÃfeòTdKÜÌîü˜EÊèÓ¨w¢!¼K +m=k tÔ³:BoRŠá|Ç·Þætx¥u…A)vQVMOÂØ%}ïQk“vË…’õ¨£ùŸó'Íqf™n€E=t×¹«TØc!Šc»~àÿÑ`cQyÀ×c‘“o‡<ˆ'¸0ÂÐÕ5ŒDߨr«‚ØHÒ4ÛËL>©í‡+W]ÛJÔFºírÐ0 +Ü^¾½Õ h#:çæ°:¶ß†{Y§ÏË–}Oÿ ‚ÝòÙ°ÓßUÌëðÿ×®‚
½6ÌÔ>
ùz¡îÍýŸ³gŒY©ü·:bÞPýÃe¨lO{ØÍËiµ@ÒÉý™"½I5q$hªÙ#aJèùHè?L¡÷äó,f2,JrŠ#YìZ°[©³¯5µZ#±ìmA,Ÿ
#ˆ!¼ZÑÓÇ’C5üýøøII£Óˆ°±êQAj´|xkBb-²±È¬¨ªçfO¦Ä"š¶µN‡Ä>KsLù54têÓ»7ÔÂÀ»„EQüy4eØÆNèŒ%h3–@e,¯å•ïò¯—sÀµíûáLFkR]ÆVK5‡I¡-¶BG±Õz#Neº¥ ¬¤²#‹¥Q¨UTÉJu³¶þOTµƒd2«B + +½ÁM,Y™“Us ËÅdµ©ñ- +ÈBÒª“AêT"ŠCÚ07M¡X&j4";œ‰×I^œË|Ð!
SwÙŽ,㸆e`à/ŠÃø²e|h¸àõÓ–1¨&,£©f-3%ôl™¾Ðq˘Bª.l—â¨á,ë|uÝzÔ*_•Qyر:<kÏèú)æõv¤|ëÜv]W×bá:&ò¿ŠJ6zŠƒ¾!óõÝ?îL°éì²Éðm0$æ3&3¨&L¦©fM6%ôl²¾Ðq“™Bÿ™hy@|x…‚i©œƒ‚Ìú´§[1ÀúQZ4+².ß?Ü|$" +‡ ñÓýÃÇÛ7ßÒ¸ö7äÒzHmxž&ÆNÑs¸Šgô9`•a†¾¸Uõ|¾ÈĨ©}Ç
ýÏô0‰øE¸qdGŸIu-Õ&…¶ AG(òžäÝÃ8dêBäô2:õMtÕ–Ìä»Cõb=¥ay„*V²}÷ïÞýB}¼‰DVqä)#Ã!?iê]õB³¹Y‰au7ÖQÅ›1P R +J5ýZ¬É.˜ßãÎe#Cö³hÆÆg¢ +¢YOH<¸'qܾ†ÄG]ýZeë¤)ê‘”ŽC*::½:@`\/«Ãj´àØËéÖcïë„-;8 À#¥ËÈöx ³Û£Ž¯áDÁo¾¨ÐDzß9VYFèóಹcÇŸ ˆMª ;jªYCN =[²/tÜ”¦Ð×7oñ£*؆H;ü’Cë¡ëì6øôDOÏxVâsÿãè„ +[¡ú²Dñ9GÓ’£il´Ñ4>toiÆ^§!ÄÁÚ<#.ŠÆReè?ž…*ºÕ ¶~áý>_½uˆ—Ïü3þ=æªÓ<æá·hÔ…ŸÜ~¤É—îØó@=¢ûY.v%ÇØ‘3"9ÊBŽ?)Îm›²ÎÅM™ÁÕ—®å`F‹``Æ=׬~˜ ‚u +ïé$ïÒö;eõi2eæ…€=í… ¿h\~À=‹yî`d•¢›á.ü×ãendstream endobj -2240 0 obj << +2246 0 obj << /Type /Page -/Contents 2241 0 R -/Resources 2239 0 R +/Contents 2247 0 R +/Resources 2245 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2210 0 R -/Annots [ 2244 0 R 2245 0 R 2247 0 R ] +/Parent 2256 0 R +/Annots [ 2252 0 R 2253 0 R 2255 0 R ] >> endobj -2244 0 obj << +2252 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [413.5986 730.8852 511.2325 742.9449] +/Rect [413.5986 175.1724 511.2325 187.232] /Subtype/Link/A<</Type/Action/S/URI/URI(https://www.isc.org/downloads/software-support-policy/)>> >> endobj -2245 0 obj << +2253 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [55.6967 720.1754 285.8336 730.3372] +/Rect [55.6967 164.4626 285.8336 174.6243] /Subtype/Link/A<</Type/Action/S/URI/URI(https://www.isc.org/downloads/software-support-policy/)>> >> endobj -2247 0 obj << +2255 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] -/Rect [74.1651 636.213 231.5748 646.3748] +/Rect [74.1651 80.5002 231.5748 90.662] /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.isc.org/donate/)>> >> endobj -2242 0 obj << -/D [2240 0 R /XYZ 56.6929 794.5015 null] +2248 0 obj << +/D [2246 0 R /XYZ 56.6929 794.5015 null] +>> endobj +778 0 obj << +/D [2246 0 R /XYZ 56.6929 598.1755 null] +>> endobj +2249 0 obj << +/D [2246 0 R /XYZ 56.6929 570.871 null] +>> endobj +782 0 obj << +/D [2246 0 R /XYZ 56.6929 436.5045 null] +>> endobj +2250 0 obj << +/D [2246 0 R /XYZ 56.6929 409.2001 null] >> endobj 786 0 obj << -/D [2240 0 R /XYZ 56.6929 769.5949 null] +/D [2246 0 R /XYZ 56.6929 222.0515 null] >> endobj -2243 0 obj << -/D [2240 0 R /XYZ 56.6929 752.4085 null] +2251 0 obj << +/D [2246 0 R /XYZ 56.6929 196.6957 null] >> endobj 790 0 obj << -/D [2240 0 R /XYZ 56.6929 705.9863 null] +/D [2246 0 R /XYZ 56.6929 150.2734 null] >> endobj -2246 0 obj << -/D [2240 0 R /XYZ 56.6929 680.4013 null] +2254 0 obj << +/D [2246 0 R /XYZ 56.6929 124.6885 null] >> endobj -2239 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F11 1509 0 R /F42 1288 0 R >> +2245 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F42 1288 0 R /F22 997 0 R /F14 1020 0 R /F11 1509 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2250 0 obj << -/Length 2701 +2259 0 obj << +/Length 2699 /Filter /FlateDecode >> stream @@ -10766,127 +10890,126 @@ xÚ}YYsÛ8~÷¯Ð[èªÃS$÷Í–ÄÉØ嵜ªÌ$B&¼ÂÊæ×o_<äál¹\h ÑÇ×
È]8ðç.âÐvü$XDI`‡Ž. Šn8DF0gt]óÁÈµî… ?âaF…±õjR|2//jIˆqS/à3÷þ57OÈUª™Fg +d…¤IJü@í/ "p¨âă%& ¯tY‘û -˜~äi¢í9¤˜¥¥¶¦íY®ëÓÀ£õî0¦\¯[ìQÄgVÅ8xbÖ±}1[S6†˜b¸öÍ9üjr¼_e™¡QSZ{(³”‡=ÞìÁaÿÐ`.Qµê½*¸,ò—ì0¤4Hµ|Rx£†ßÈþ€HŽx+¤há»)eôW}4ó¹>Ôø +˜~äi¢í9¤˜¥¥¶¦íY®ëÓÀ£õî0¦\¯[ìQÄgVÅ8xbÖ±}1[S6†˜b¸öÍ9üjr¼_e™¡QSZ{(³”‡=ÞìÁaÿÐ`.Qµê½*¸,ò—ì0¤4Hµ|Rx£†ßÈþ€HŽx+¤há»)eôW}4ó¹>Ôø endobj -2249 0 obj << +2258 0 obj << /Type /Page -/Contents 2250 0 R -/Resources 2248 0 R +/Contents 2259 0 R +/Resources 2257 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2210 0 R +/Parent 2256 0 R >> endobj -2251 0 obj << -/D [2249 0 R /XYZ 85.0394 794.5015 null] +2260 0 obj << +/D [2258 0 R /XYZ 85.0394 794.5015 null] >> endobj 794 0 obj << -/D [2249 0 R /XYZ 85.0394 769.5949 null] +/D [2258 0 R /XYZ 85.0394 769.5949 null] >> endobj -2252 0 obj << -/D [2249 0 R /XYZ 85.0394 573.7247 null] +2261 0 obj << +/D [2258 0 R /XYZ 85.0394 573.7247 null] >> endobj 798 0 obj << -/D [2249 0 R /XYZ 85.0394 573.7247 null] +/D [2258 0 R /XYZ 85.0394 573.7247 null] >> endobj -2253 0 obj << -/D [2249 0 R /XYZ 85.0394 543.2172 null] +2262 0 obj << +/D [2258 0 R /XYZ 85.0394 543.2172 null] >> endobj -2248 0 obj << +2257 0 obj << /Font << /F21 994 0 R /F22 997 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2256 0 obj << -/Length 556 +2265 0 obj << +/Length 554 /Filter /FlateDecode >> stream xÚ¥TKs›0¾ó+8ÂLê Ø©ÿ}$\’¸¹tFûÖî·ÃC\¢PPáF"@învv€ï³ClÌlšM£.2çã%‹]DHC7ÛNjÅÇ1q3yç] ‚|¨€½uò)KWKFˆˆ"o~s“,é7F9†0ÂØ›[õ6M.x•®3ŸÄÞêÖg‘÷ÝWÖ™]%FX,×F˜/¶D -ÒCví$Ùi’é´³~Œ_ÎÝv%}í`ÄDÌÝgP0"BPwçœ!06ZJgí|9œx‡Ô³èŒ(éø(=(d”øÒqžƒjÚBWÑ8áå•4zlŽ¼é¡RFÑÛ^¹Ç˜nŠ¼,&EªÚmòNI€ì-µÍ—²èà–¼4ºTUêz§ªÎŠÖVÑÕxK5Á{ÚéØ(ì +ÒCví$Ùi’é´³~Œ_ÎÝv%}í`ÄDÌÝgP0"BPwçœ!06ZJgí|9œx‡Ô³èŒ(éø(=(d”øÒqžƒjÚBWÑ8áå•4zlŽ¼é¡RFÑÛ^¹Ç˜nŠ¼,&EªÚmòNI€ì-µÍ—²èà–¼4ºTUêz§ªÎŠÖVÑÕxK5Á{ÚéØ(ì endobj -2255 0 obj << +2264 0 obj << /Type /Page -/Contents 2256 0 R -/Resources 2254 0 R +/Contents 2265 0 R +/Resources 2263 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2258 0 R +/Parent 2256 0 R >> endobj -2257 0 obj << -/D [2255 0 R /XYZ 56.6929 794.5015 null] +2266 0 obj << +/D [2264 0 R /XYZ 56.6929 794.5015 null] >> endobj -2254 0 obj << +2263 0 obj << /Font << /F38 1082 0 R /F22 997 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2261 0 obj << -/Length 2489 +2269 0 obj << +/Length 2488 /Filter /FlateDecode >> stream -xÚY[së¸
~ϯð[™˜I]}:ɹä4»Ó4qۇݩ,Ѷ&²ä¥\ö× H]¥Û‡&â@à# -£ˆy1‹MþóòætRU^¼^®Dà-¿\þºùÖù,Š#Žë<±Ð÷C³â»ªT“–´àëOÔxP;Õ¨*SÔ½«vusLÛ¢®z–ÜgÒ…e,ä–åÆ/WÜó`ÝýsHÒ<o”ÖJS÷/ðnà¾Ür‹„%¡-CÉ™ï ß0´lâÈ°¹äñÒ±ŠãeJ4ÏE¼Ú-͹ªÚâ’ƒ4O¨ÆÒÃNˆ¶¨ZÕìÒ¬gTå4¡U«©Uï,§ i´|9ÙÁ6Õ ßšnw™Êšk -·Š›ãœ%A@.#›GɲérŠ²hÓVQ_gi™nKÛ»CU*ÕR„umQíÙåJ&Ñrs‚tÜiÔsÝ·“Ù4ÍF‘|lß5yÆ÷Fž‘> ÍóØ*ÿªÈRÝθüÉžî -M‚‰Iy†Üb7
^Aã¬dÃB>µQ -{óùRÃ6ÑÒ÷—|šÑ2LÆRXá7ÕÛGJJ óGJÊP%QÚTI1ÐAáNt6Ð|¥ô'0ÎgÔãpv¥„3NrÿÖ•í‡fL˜qùÿÐÌë{,ˆxäìË
ßAo@‘úË¿ö ’ž -3Ð4ú3‚ñD&ÖjàÚ—ºyš$>‹ƒÐ…D2“ÌWB¬°&çš´Ú㱕Ó7ŽªG´Ï:ŽhbJéÊ:3žêW¢£Ðb"Z;“NaÊê -(Ñ -3ÅLÈ$«ÑÔ/ÐÏÒSºÅ²ÏYÚ õ1Öš1è±€>/à -0¹T¯BAÔkfZ-µF\ý5øQÈEìªrMS˜0€ºvÎ%Æ‘¿¤ÒuWå)¬Ó¦²±Ö‡ «=´‘tH†¡—ô©¦ï—2Õº$œ@×Ôv_ëcê¸=ôá:M¾Ü}}À0reù˜H3ó]5é/ï7ÓÐy!‹ÚȨʩ¶(Ç\X[°²ÉŠfœò±^O*z0-dÉÓ(“©g¨¸-„¯+·@¥º -â”»-7ñ±¦>b€=ÀuGü@" Ôv[xœâXÀ-1¯³Îq„ë ‚qrmèŸ`Ø–·m
0¡ÝrÑ7¡C+¹;tùh ß\Qkxi€ù ®Ðc*œ³:œÒÆJ3x±ŒfÒTo"){©…Æ`"ìMLdF´ÂŒLms%‡/œ½CE!»UÝšKn ›lp]›b6Gýs»Ï’Vå³c×ï;¹¹ST&1@ïvÍlá>˜Nø·jÕ“jú˜¼¹L°Æ}¢Þ-Õ<™
!¸Ç»o›[›|w¹HâQ–ùïüÛ¡/¿Ûûȉ&‰ÿãwäψMJ“Yw(ë-†ÊÑÁ„µŸ[¬Þnîí‘l×sé~מÖ××///hVè‚©¼».ª•qÓ5Þ÷
öœ=ü„Å€›=^áoæ„Éî9"Ö¾Ú×>MD,ä‘»ÿ).¾múÇXKÆ}!ÀˆÅxË2/¶4ý´p‡×Û~Åj¼Ä¼ÞúíÞqž˜cl -ÀªG°½>×Ï÷ñ
Ü2ÕïìE¹§z¯ÓÄ﹡N™K¼2€NÄSo"˜^úçÇ÷Žƒp(xÀÿÀo™=GShw±ÈªºãÖ]MÜ;K? pq8¦ž]=D&ì”Ú^dÒç´p«cÐöüþ…¨TÛ ‚Ïl¶C„<äSC¼R"`2æø¢"!KüŠùj ¡3ž¦Fh +xÚY[së¸
~ϯð[™˜I]}:ÉÉ99Íîtç4qۇݩ,Ѷ&²ä¥\ö× H]¥Û‡&â@à# +£ˆy1‹MþóòætRU^¼^®Dà-o/Ýü@ë|ÅÇuȈXèû¡YñMUªIKZðå§Gj<¨jT•)êÞW»º9¦mQW=Kî3é‡Â²rËò–ñË÷<X÷ý9$iž7Jk¥©û‹x7ð_n9ŠEÂ’P„–¡äÌ÷„oZ6qdØ\òxéXÅñ2¥šç"^m‹–fŠ\UmqÉAš'Tcéa'D[TjviÖ3ªršÐªÕÔªw–Ó„4Z¾Šì`›joM·Î»LåN͵…[ÅÍqÎ’ —‘Í£dÙÖô9EY´i«¨¯³´L·¥íÝ£*•j©Gº¶¨öìr%“h¹9 +A:î´ê¹îÛÉlšf£H>¶ïš<ã{#ÏHÐæyì•ÿGUd©ng\þ‹dOw…&ÁÄ$†<Cn±›¯ qV2Ša!ŸÚ(…½ù|©a›hé{ƒK>Íh&c)¬ð›êí#%%Ðù#%e(’(mª$Žè p§ºh¾‰Rú˜
ç3êq8»RÂ'¹ëÊöC3&̸ühHæõ=D<röå†ï 7 Èýå_{IO +å*=ŽÙ™E
˜L´÷ß/¹HŒ‰`˜L
ÌrV«ý¡|3ÉÎ,ÈêÆBèTW¹¶¢ëA…hý‹Áx"k5píKÝ<ÍŸÅAèB¢V™Iæ+!VØ“s‹MZíñØJÈéGÕ# ÚgG41¥teOõ+ÑQh1-I§0eu€È•6š +1v›ñĸðl§‘ÝiäTÏÍgˈ‘r”h +¡ ê53–Z#®þü(äŒ"vÕV¹¦)L@];çãƒÈ_Ri‰º«òÖiSÙXëÄÕZ‡H:$ÃÐKúFTÓ÷¶Lµ. 'Ð5µÝ—ú˜:n}8ƒF“Ûû/F®,ia¾«&ýå÷ÍÃt't^È¢62j€rjã€-Ê1VŬl²¢§|l£—AÀ“ƒŠLYò4Êdê*náßëÊ-P©. +Ѳ…lkeÒgEdE••ÕHkê¦]Í9âÐ_Oû¬ÙÍî¼ÁGô%dOŠÃ0–×ÁÚY]š£M<êÿ^¯ÿD‡î@&'UÜ
·uÐÊ”¶ÐÁå«LoʽQ›Ô.ͨ^|W°ƒ3ÚóÒ2s9gkH§U9¦ÕוU_‘žƒ“}ð\ᇮ }®ö¹â3ì¨÷Mz:¼
!±Wë±Û£)œ**Íaÿ£'â¶Fop½Lz!ý«Èƒ‚8ånäM|¬© F$pÝÑ?(µÝ§¸pKÌë¬sáºE‚`œ\ú㧶åm[LhDw€\ôMèÐJî]¾È7WÔ^`þ¨+ôÁ˜ +笧´±Ò^,£™4Õ›HŠÀ^j¡1˜{™0#SÛ\ÉágïPQÃnU·æ’ÈÀ&\צ˜ÍQÿÜ.dz¤UùìØõ»ÃNnî•IÐÅ»ƒ]3[¸f†þµÚCõ¤š>&o.¬qŸ¨wG5OfCîñþëæÎ&ßÄ].’x”eþ;ÿÇvèÅËoö>r¢Iâÿø
ù3¢@“ÒäGÖÊz‹¡rt0¡Cíç«w›ïöH¶ë¹t¿kOëëë——´+tÁTÞ]Õʸéïûû?Î~ÂbÀŽÍ¯ð7sB„d ÷k_íë +Ÿ&"òÈ]ÿŒ_7ýc¬ˆ%ã¾`Äb¼e™[š~Z¸ÖÃëm¿b5^b^oý‰vï8OÌ16`Õ#Ø^Ÿëçûøn™êwö¢ÜS½×ibŒ÷ÜP§¿Ì%^@' â©7L/ýóã{ÇA8<àà7ˆÌž£)´»…XdUÝqë®&¸8SÏ®"vJm/2ésZ¸‡Õ1h{~ÿBTªíÁg6[!Bò©!Þ)0s|Q‘%þEŽ|5п‡ÐOS#´€T»cu³¿nvÙ;Ü2Wé±>g¨éiΕ˜ìÿœÓGˆ‰XäÇ“§±>î§0üadF¯Ï¬0ùÛÅÏ¿z‹ˆ~¸ð ÃÆÁâ:ãI"Ç‹á)//þ>ìÌI[ù“q,†ßW&ï%p¤L¸S +ç2À§Ë@.?ßÿô…p+X<ä쯯PK檯N§º±™þŸ¦Ø†[dh—ÖÇVèùyo†ÿ endobj -2260 0 obj << +2268 0 obj << /Type /Page -/Contents 2261 0 R -/Resources 2259 0 R +/Contents 2269 0 R +/Resources 2267 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2258 0 R -/Annots [ 2265 0 R 2266 0 R ] +/Parent 2256 0 R +/Annots [ 2273 0 R 2274 0 R ] >> endobj -2265 0 obj << +2273 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [282.146 101.0883 446.0314 113.1479] /Subtype/Link/A<</Type/Action/S/URI/URI(ftp://www.isi.edu/in-notes/)>> >> endobj -2266 0 obj << +2274 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 1] /Rect [91.7919 62.7606 237.2464 72.9224] /Subtype/Link/A<</Type/Action/S/URI/URI(http://www.ietf.org/rfc/)>> >> endobj -2262 0 obj << -/D [2260 0 R /XYZ 85.0394 794.5015 null] +2270 0 obj << +/D [2268 0 R /XYZ 85.0394 794.5015 null] >> endobj 802 0 obj << -/D [2260 0 R /XYZ 85.0394 769.5949 null] +/D [2268 0 R /XYZ 85.0394 769.5949 null] >> endobj -2263 0 obj << -/D [2260 0 R /XYZ 85.0394 579.1401 null] +2271 0 obj << +/D [2268 0 R /XYZ 85.0394 579.1401 null] >> endobj 806 0 obj << -/D [2260 0 R /XYZ 85.0394 579.1401 null] +/D [2268 0 R /XYZ 85.0394 579.1401 null] >> endobj 1589 0 obj << -/D [2260 0 R /XYZ 85.0394 540.7142 null] +/D [2268 0 R /XYZ 85.0394 540.7142 null] >> endobj 810 0 obj << -/D [2260 0 R /XYZ 85.0394 244.5601 null] +/D [2268 0 R /XYZ 85.0394 244.5601 null] >> endobj -2264 0 obj << -/D [2260 0 R /XYZ 85.0394 206.1735 null] +2272 0 obj << +/D [2268 0 R /XYZ 85.0394 206.1735 null] >> endobj 814 0 obj << -/D [2260 0 R /XYZ 85.0394 206.1735 null] +/D [2268 0 R /XYZ 85.0394 206.1735 null] >> endobj 1321 0 obj << -/D [2260 0 R /XYZ 85.0394 177.2481 null] +/D [2268 0 R /XYZ 85.0394 177.2481 null] >> endobj -2259 0 obj << +2267 0 obj << /Font << /F21 994 0 R /F22 997 0 R /F40 1218 0 R /F54 1383 0 R /F11 1509 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2269 0 obj << -/Length 2772 +2277 0 obj << +/Length 2769 /Filter /FlateDecode >> stream @@ -10904,757 +11027,765 @@ qe lp.ÎÂB‹ù–tîÿš-°³w4Q—ê·%¥Ù‚% Z¡[¸Â6ÚB[ÜQUÅ®`GUàA‹}ç=$"•“>žð$…¹õ&Iž° ð =f/º‘~¦až@Á¢m¡&t·ÎF…¸4áßÅÊ-sáüï1‹«ü-@NH»7ÒO ¤³ú¦’X) Yc@}-Äy˜½ðIj¶UÚ,ãWþ¹©:ÀQD{NJòð@6© õs-…4ª-·²6܆é.°‘hxVü°Ë3VÇ?0¹àtç’ËðÝ ›Ëá -—i¾ž-W%Pí“•6ªùƒ•u“œSy3²º4…Õ´>ˆHªtgJ-Á{îõM¬ºví)ÊÙÕì÷~Áî”Íù7Rîÿ/&ªÑà Ã_-Þ©¾ï_Í‚˜Ü>í6à½:%Ð+âŸÅ½KÙø â1u¯ô ¿N½VÄ +—i¾ž-W%Pí“•6ªùƒ•u“œSy3²º4…Õ´>ˆHªtgJ-Á{îõM¬ºví)ÊÙÕì÷~Áî”Íù7Rîÿ/&ªÑà Ã_-Þ©¾ï_Í‚˜jWy,úîÕ^ÿ,.¥X¾Æß\ߣcLý+%ÈOS¯µð]íendstream endobj -2268 0 obj << +2276 0 obj << /Type /Page -/Contents 2269 0 R -/Resources 2267 0 R +/Contents 2277 0 R +/Resources 2275 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2258 0 R ->> endobj -2270 0 obj << -/D [2268 0 R /XYZ 56.6929 794.5015 null] ->> endobj -2271 0 obj << -/D [2268 0 R /XYZ 56.6929 748.2159 null] ->> endobj -2272 0 obj << -/D [2268 0 R /XYZ 56.6929 748.2159 null] ->> endobj -2273 0 obj << -/D [2268 0 R /XYZ 56.6929 716.4106 null] ->> endobj -2274 0 obj << -/D [2268 0 R /XYZ 56.6929 716.4106 null] ->> endobj -2275 0 obj << -/D [2268 0 R /XYZ 56.6929 716.4106 null] ->> endobj -2276 0 obj << -/D [2268 0 R /XYZ 56.6929 710.5059 null] ->> endobj -2277 0 obj << -/D [2268 0 R /XYZ 56.6929 695.7413 null] +/Parent 2256 0 R >> endobj 2278 0 obj << -/D [2268 0 R /XYZ 56.6929 692.431 null] +/D [2276 0 R /XYZ 56.6929 794.5015 null] >> endobj 2279 0 obj << -/D [2268 0 R /XYZ 56.6929 677.6664 null] +/D [2276 0 R /XYZ 56.6929 748.2159 null] >> endobj 2280 0 obj << -/D [2268 0 R /XYZ 56.6929 674.3561 null] +/D [2276 0 R /XYZ 56.6929 748.2159 null] >> endobj 2281 0 obj << -/D [2268 0 R /XYZ 56.6929 616.655 null] ->> endobj -1440 0 obj << -/D [2268 0 R /XYZ 56.6929 616.655 null] +/D [2276 0 R /XYZ 56.6929 716.4106 null] >> endobj 2282 0 obj << -/D [2268 0 R /XYZ 56.6929 616.655 null] +/D [2276 0 R /XYZ 56.6929 716.4106 null] >> endobj 2283 0 obj << -/D [2268 0 R /XYZ 56.6929 613.6196 null] +/D [2276 0 R /XYZ 56.6929 716.4106 null] >> endobj 2284 0 obj << -/D [2268 0 R /XYZ 56.6929 598.855 null] +/D [2276 0 R /XYZ 56.6929 710.5059 null] >> endobj 2285 0 obj << -/D [2268 0 R /XYZ 56.6929 595.5446 null] +/D [2276 0 R /XYZ 56.6929 695.7413 null] >> endobj 2286 0 obj << -/D [2268 0 R /XYZ 56.6929 580.78 null] +/D [2276 0 R /XYZ 56.6929 692.431 null] >> endobj 2287 0 obj << -/D [2268 0 R /XYZ 56.6929 577.4697 null] +/D [2276 0 R /XYZ 56.6929 677.6664 null] >> endobj 2288 0 obj << -/D [2268 0 R /XYZ 56.6929 550.7499 null] +/D [2276 0 R /XYZ 56.6929 674.3561 null] >> endobj 2289 0 obj << -/D [2268 0 R /XYZ 56.6929 547.4396 null] +/D [2276 0 R /XYZ 56.6929 616.655 null] +>> endobj +1440 0 obj << +/D [2276 0 R /XYZ 56.6929 616.655 null] >> endobj 2290 0 obj << -/D [2268 0 R /XYZ 56.6929 532.675 null] +/D [2276 0 R /XYZ 56.6929 616.655 null] >> endobj 2291 0 obj << -/D [2268 0 R /XYZ 56.6929 529.3646 null] +/D [2276 0 R /XYZ 56.6929 613.6196 null] >> endobj 2292 0 obj << -/D [2268 0 R /XYZ 56.6929 514.6599 null] +/D [2276 0 R /XYZ 56.6929 598.855 null] >> endobj 2293 0 obj << -/D [2268 0 R /XYZ 56.6929 511.2897 null] +/D [2276 0 R /XYZ 56.6929 595.5446 null] >> endobj 2294 0 obj << -/D [2268 0 R /XYZ 56.6929 496.5251 null] +/D [2276 0 R /XYZ 56.6929 580.78 null] >> endobj 2295 0 obj << -/D [2268 0 R /XYZ 56.6929 493.2148 null] +/D [2276 0 R /XYZ 56.6929 577.4697 null] >> endobj 2296 0 obj << -/D [2268 0 R /XYZ 56.6929 478.4502 null] +/D [2276 0 R /XYZ 56.6929 550.7499 null] >> endobj 2297 0 obj << -/D [2268 0 R /XYZ 56.6929 475.1398 null] +/D [2276 0 R /XYZ 56.6929 547.4396 null] >> endobj 2298 0 obj << -/D [2268 0 R /XYZ 56.6929 448.4201 null] +/D [2276 0 R /XYZ 56.6929 532.675 null] >> endobj 2299 0 obj << -/D [2268 0 R /XYZ 56.6929 445.1097 null] +/D [2276 0 R /XYZ 56.6929 529.3646 null] >> endobj 2300 0 obj << -/D [2268 0 R /XYZ 56.6929 430.3451 null] +/D [2276 0 R /XYZ 56.6929 514.6599 null] >> endobj 2301 0 obj << -/D [2268 0 R /XYZ 56.6929 427.0348 null] +/D [2276 0 R /XYZ 56.6929 511.2897 null] >> endobj 2302 0 obj << -/D [2268 0 R /XYZ 56.6929 412.2702 null] +/D [2276 0 R /XYZ 56.6929 496.5251 null] >> endobj 2303 0 obj << -/D [2268 0 R /XYZ 56.6929 408.9599 null] +/D [2276 0 R /XYZ 56.6929 493.2148 null] >> endobj 2304 0 obj << -/D [2268 0 R /XYZ 56.6929 394.1953 null] +/D [2276 0 R /XYZ 56.6929 478.4502 null] >> endobj 2305 0 obj << -/D [2268 0 R /XYZ 56.6929 390.8849 null] +/D [2276 0 R /XYZ 56.6929 475.1398 null] >> endobj 2306 0 obj << -/D [2268 0 R /XYZ 56.6929 321.1331 null] +/D [2276 0 R /XYZ 56.6929 448.4201 null] >> endobj 2307 0 obj << -/D [2268 0 R /XYZ 56.6929 321.1331 null] +/D [2276 0 R /XYZ 56.6929 445.1097 null] >> endobj 2308 0 obj << -/D [2268 0 R /XYZ 56.6929 321.1331 null] +/D [2276 0 R /XYZ 56.6929 430.3451 null] >> endobj 2309 0 obj << -/D [2268 0 R /XYZ 56.6929 318.1932 null] +/D [2276 0 R /XYZ 56.6929 427.0348 null] >> endobj 2310 0 obj << -/D [2268 0 R /XYZ 56.6929 303.4885 null] +/D [2276 0 R /XYZ 56.6929 412.2702 null] >> endobj 2311 0 obj << -/D [2268 0 R /XYZ 56.6929 300.1183 null] +/D [2276 0 R /XYZ 56.6929 408.9599 null] >> endobj 2312 0 obj << -/D [2268 0 R /XYZ 56.6929 276.0486 null] +/D [2276 0 R /XYZ 56.6929 394.1953 null] >> endobj 2313 0 obj << -/D [2268 0 R /XYZ 56.6929 270.0882 null] +/D [2276 0 R /XYZ 56.6929 390.8849 null] >> endobj 2314 0 obj << -/D [2268 0 R /XYZ 56.6929 244.6437 null] +/D [2276 0 R /XYZ 56.6929 321.1331 null] >> endobj 2315 0 obj << -/D [2268 0 R /XYZ 56.6929 240.0581 null] +/D [2276 0 R /XYZ 56.6929 321.1331 null] >> endobj 2316 0 obj << -/D [2268 0 R /XYZ 56.6929 213.3384 null] +/D [2276 0 R /XYZ 56.6929 321.1331 null] >> endobj 2317 0 obj << -/D [2268 0 R /XYZ 56.6929 210.028 null] +/D [2276 0 R /XYZ 56.6929 318.1932 null] >> endobj 2318 0 obj << -/D [2268 0 R /XYZ 56.6929 140.3717 null] +/D [2276 0 R /XYZ 56.6929 303.4885 null] >> endobj 2319 0 obj << -/D [2268 0 R /XYZ 56.6929 140.3717 null] +/D [2276 0 R /XYZ 56.6929 300.1183 null] >> endobj 2320 0 obj << -/D [2268 0 R /XYZ 56.6929 140.3717 null] +/D [2276 0 R /XYZ 56.6929 276.0486 null] >> endobj 2321 0 obj << -/D [2268 0 R /XYZ 56.6929 137.3363 null] +/D [2276 0 R /XYZ 56.6929 270.0882 null] >> endobj 2322 0 obj << -/D [2268 0 R /XYZ 56.6929 111.8918 null] +/D [2276 0 R /XYZ 56.6929 244.6437 null] >> endobj 2323 0 obj << -/D [2268 0 R /XYZ 56.6929 107.3062 null] +/D [2276 0 R /XYZ 56.6929 240.0581 null] >> endobj 2324 0 obj << -/D [2268 0 R /XYZ 56.6929 80.5865 null] +/D [2276 0 R /XYZ 56.6929 213.3384 null] >> endobj 2325 0 obj << -/D [2268 0 R /XYZ 56.6929 77.2761 null] +/D [2276 0 R /XYZ 56.6929 210.028 null] >> endobj -2267 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R >> -/ProcSet [ /PDF /Text ] +2326 0 obj << +/D [2276 0 R /XYZ 56.6929 140.3717 null] >> endobj -2328 0 obj << -/Length 3095 -/Filter /FlateDecode ->> -stream -xÚµšKsÛ8€ïþ:RU>´¥ÈÊØŠFr²“š™-Ñ1+é©$þ÷Û iœÝ-L
´ˆ¯»Ñh’L0ü‘Iè!Ì"wD.ò0ñ&ûÓž|…¾å‘23%43¥®®~yÏÂI„"Ÿú“‡'c®á0$“‡ÃN¼Ù,ÖóÕïÓõ°sƒ¦3cg¹X/¶ñhœ¯wâb»x¿Ø.Ö7q»Z¿ÿ¸½§ë<¬>®§~H(Ì@ù>v®W×w«Ëm¼¹ý"ü‰=¯çâf÷i¹\ìs5w<_— B¦=|¸Z<èç3×€`Æîï«?þ“,Ň+ŒXz“pƒ‰":9]¹CžË˜j9^í®~Ó½õо5Õ23æ¢Ð‡9ì+ïEÈg”镧´oå•_ù?¶ïo\¸uŸ—x…%sÒ7ªµÔ[Ý.6tÏCaÀ¼¶ò›ât*rXz9÷Yù˜>'ß³âræ-¡M²¼¬D·À¿]Òs––Bä©8‹ÖÕæ»/®âÃá<…®´,A -ª³ -Ô§l$€ßÏÂ;E=çË”â ùSŠsV>gU"”$ùA´?p#“2²ü”f︂ÉLÏ9#EžGë©ï“WaUcÉŸ«Dž`Ñ`õ˜«Ç|DˆÕã¶i k°O¥I¦ûâ|×Ó;¯/â¹úŒÓaž tífbJ
›‰–RfBHȆÍĪº1“7ºûͤ¥|þà‹Î”0g»•
éŸÓ<«²"ïƒM°Öó°y|y?¨ ÉœÅ÷´6˜çä\ÕĹ“]±üŸœ’oSâ¥ØÊŽOÇã)És9¯4æl¦„Fjþûbÿ-yI+°)i.úWµÌåã¾*Ó³
ñ£AÊ°JQE#”
)e%¥)Ø·P¶©6(wuP6•ë -ó†Ú<øÅî%ÝgO¯µiðûš9—ll„7OR<=Ïöi‰ú¶i! Icg€˜d>ry9>žW™æBAÍŽ÷h#à7†ÔÕg‹M[ihY„«ˆAâjÇjJ
cÕR+ñ-Û«Uuƒõî~¬-埄/ÃRH`p±Ê«ôœ§•¸Äy!²ö³ÇK%ÅïW¿/¶âò¦ —c—Çâ19Šk#7“ã’—®¼ÇíݹÄeþ|¢ãLºµkA<ûýsV¸m8Ì×
S'l„¯!e᫤¾¡…¯MµÁ·«{€¯©œï¢Ç‹ŒÈ̯ݲÀù”gœ”hìlµÐ²:¤y•ñü*=—¢é"£>SáÚt8g:œ3k8g(=f†óHlÄ|²$ÏÒ£˜B„ch¼G*„Ë¡í,;MŽGøY -ö%O5é`˜4 <ÙH -eJYH+)Mš2l!mSmîê m*ÿ5•V¾ø¹Nò¯r%æé1ýª¶äΑBlíp!€ÊƒvOzOKkgW*Š«Ö>ÙM †1¸àŒùv¦Ô0-¥1À~?ŒÁªºÁðFw?†–òù.ÏþëâKÙÉ-v«¥lÊòîÂ+Oâ9°ð$>@x’.] -¢©MŒ_|”ÂËËátÔVf8zæÔ&ØþG¾K1"^4R2¥,´•”A;²Ð¶©6hwuÐ6•sÚ‰ØëB‘Üxd¨Ouê2»Mëè…
²ý™l‘Ñ74¢o¤£ohDßhÌŽÐn«þÊðµ,Ào…_Ÿ¼qc5“$NÆݘ…ðCbçj
cUB
U×’ËØô6P»Šû™ššçi•ìŸÓó1Š#¼Q†èa˘ëýŸ·Jˆß(`ÁHyÈ”²pQRLZª -k‰âÏ*ÍËúuæŒEXT\áyyy)ΕZmDã÷ô\Šª:4ú}Uظ±™“zΉÏÅI$xël½½d൉lý¬ëéÐõk™åI^É.q8†fU ÓÚÚ1¶¸de™õÕ† -endobj 2327 0 obj << -/Type /Page -/Contents 2328 0 R -/Resources 2326 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 2258 0 R +/D [2276 0 R /XYZ 56.6929 140.3717 null] +>> endobj +2328 0 obj << +/D [2276 0 R /XYZ 56.6929 140.3717 null] >> endobj 2329 0 obj << -/D [2327 0 R /XYZ 85.0394 794.5015 null] +/D [2276 0 R /XYZ 56.6929 137.3363 null] >> endobj 2330 0 obj << -/D [2327 0 R /XYZ 85.0394 769.5949 null] +/D [2276 0 R /XYZ 56.6929 111.8918 null] >> endobj 2331 0 obj << -/D [2327 0 R /XYZ 85.0394 771.5874 null] +/D [2276 0 R /XYZ 56.6929 107.3062 null] >> endobj 2332 0 obj << -/D [2327 0 R /XYZ 85.0394 701.2317 null] +/D [2276 0 R /XYZ 56.6929 80.5865 null] >> endobj 2333 0 obj << -/D [2327 0 R /XYZ 85.0394 701.2317 null] +/D [2276 0 R /XYZ 56.6929 77.2761 null] >> endobj -2334 0 obj << -/D [2327 0 R /XYZ 85.0394 701.2317 null] ->> endobj -2335 0 obj << -/D [2327 0 R /XYZ 85.0394 698.1335 null] +2275 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 2336 0 obj << -/D [2327 0 R /XYZ 85.0394 674.0638 null] +/Length 3092 +/Filter /FlateDecode +>> +stream +xÚµšÝw›:ÀßóWøŸSëJˆÏG»ŽÛÄ͵Óîíéí±•†Sr
n›ÿ~GèA@twÏž<¤‘Æè73
†?2‰|„iìMÂØC>&þdw¼À“oз¼ Rf¦„f¦ÔåýÅoi4‰Q¸Áäþј+B8ŠÈä~ÿÅIîîëùê¯éÌõ±s…¦3cg¹X/6Éhœ¯·âb³x»Ø,ÖWq»Z¿ý°¹M¦¡çܯ>¬§AD\˜Áåsع\]Þ¬>,7ÉÝõg1àoìãd=7ÛËåb{¿˜«¹“ùj½2ýzÿîbq¯ŸÏ\‚)¸.¾|Å“=,Å»Œhù“Ÿpƒ‰cwr¼ð|Š|RÕr¸Ø^ü©'4zë¡}kªefÔCQ +]¬,A +ª³ +nà"°‘~?ÿ o`”ë;Ÿ§„ÉŸRœ²ò)«R¡$Í÷¢ýž™”y—åG–½á +&3=çŒû¾[O}›¾«r1ö‘ü)°°Jä
Vz°z4@„øq=nÃJXƒ“&ÉvÅi/®ï§1v^žÅsõgÁ<aäÙÍÄ”6-¥Ì„ˆ›‰Uuc&¯t÷›IKùšýä‹N•Pg³‘
ìoŒÝ<«²"ïƒM°Öó°y|y;]A’:‹¬6˜§ôTÕĹ‘]‰ü›ÓïSâ¥ØÈŽ‡Ã1Ís9¯4êÜM‰«ùo‹Ý÷ô™U`SÒ\ô¯j™Ë‡]U<°“
ñ£AÊ°JqÇ#”
)e%¥)‡8°P¶©6(wuP6•ë + .VyÅN9«Ä ÎûÙ•°Ÿ=œ+)~»úk±—W…ˆ +ö9gšt8Lš„žl$…2¥,¤•”&íRl!mSmîê m*Ϥ•/~ížÒü›\‰9;°ojKî)ÄÖ¨<h÷¤Wð´.¥íìJåOIÕÚ'» Ô0œ1âÀŽÁ”Æ ¥4Øï‡1XU7^éîÇÐR>ß&âÙß/>—Üb»Zʦ,ï.¼ò$žOâ„'éÒàQå‰î–I=‡AÑ\"Z¤euH¿3ÙLkWß¿QÙ±ðü',FažHÄHSÊ‚LIÈB2›jYW÷ +¿â„ø±U‚ŒÂƶz€ÄƯG°1 +=l$øÎÏnpó°Éß5ÜdBÎÔÍh,4aÕ¨ŽÄASÊBSI4-;žUµA³«{€¦©|[§z§"1u®ØIlc‚òº‰½"ï«!ò‘7 +ˆüJAä#]ŠHÎÇÇsˆ|¬é|ØW…Lmbüâƒ^ž÷Ç3¤¶2ÃÑ3· 6Áö?ò]#âÇ#å!SÊB[I´cm›jƒvW÷ +–RÏÿ?o•¿QHÑò)eᢤ4˜0²T¬ª
2]ÝhLåunªr]$j±Ð 3ÉÈ)* +C¾Qº‘‚‹2S¡VMØ +µÅúå€4€·ìá4œæDéb<\ª¥AàÊ#Ù’)e1%¥M &¾Ålª
èê0Sù='êy÷ƳçQ'9WO°íV/¢ë®Èx
Aôqªëäî~#<”÷×y_ûäÉ»äù¤?Æ°Í4ĽØåçÃz˜: n˜X&ß4AµÚb»eÏCôYÅŽ’ +endobj +2335 0 obj << +/Type /Page +/Contents 2336 0 R +/Resources 2334 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 2256 0 R >> endobj 2337 0 obj << -/D [2327 0 R /XYZ 85.0394 667.9451 null] +/D [2335 0 R /XYZ 85.0394 794.5015 null] >> endobj 2338 0 obj << -/D [2327 0 R /XYZ 85.0394 653.1805 null] +/D [2335 0 R /XYZ 85.0394 769.5949 null] >> endobj 2339 0 obj << -/D [2327 0 R /XYZ 85.0394 649.7118 null] +/D [2335 0 R /XYZ 85.0394 771.5874 null] >> endobj 2340 0 obj << -/D [2327 0 R /XYZ 85.0394 622.9921 null] +/D [2335 0 R /XYZ 85.0394 701.2317 null] >> endobj 2341 0 obj << -/D [2327 0 R /XYZ 85.0394 619.5234 null] +/D [2335 0 R /XYZ 85.0394 701.2317 null] >> endobj 2342 0 obj << -/D [2327 0 R /XYZ 85.0394 595.4537 null] +/D [2335 0 R /XYZ 85.0394 701.2317 null] >> endobj 2343 0 obj << -/D [2327 0 R /XYZ 85.0394 589.3349 null] +/D [2335 0 R /XYZ 85.0394 698.1335 null] >> endobj 2344 0 obj << -/D [2327 0 R /XYZ 85.0394 562.6152 null] +/D [2335 0 R /XYZ 85.0394 674.0638 null] >> endobj 2345 0 obj << -/D [2327 0 R /XYZ 85.0394 559.1465 null] +/D [2335 0 R /XYZ 85.0394 667.9451 null] >> endobj 2346 0 obj << -/D [2327 0 R /XYZ 85.0394 532.4267 null] +/D [2335 0 R /XYZ 85.0394 653.1805 null] >> endobj 2347 0 obj << -/D [2327 0 R /XYZ 85.0394 528.958 null] +/D [2335 0 R /XYZ 85.0394 649.7118 null] >> endobj 2348 0 obj << -/D [2327 0 R /XYZ 85.0394 514.2533 null] +/D [2335 0 R /XYZ 85.0394 622.9921 null] >> endobj 2349 0 obj << -/D [2327 0 R /XYZ 85.0394 510.7248 null] +/D [2335 0 R /XYZ 85.0394 619.5234 null] >> endobj 2350 0 obj << -/D [2327 0 R /XYZ 85.0394 496.02 null] +/D [2335 0 R /XYZ 85.0394 595.4537 null] >> endobj 2351 0 obj << -/D [2327 0 R /XYZ 85.0394 492.4915 null] +/D [2335 0 R /XYZ 85.0394 589.3349 null] >> endobj 2352 0 obj << -/D [2327 0 R /XYZ 85.0394 468.4218 null] +/D [2335 0 R /XYZ 85.0394 562.6152 null] >> endobj 2353 0 obj << -/D [2327 0 R /XYZ 85.0394 462.303 null] +/D [2335 0 R /XYZ 85.0394 559.1465 null] >> endobj 2354 0 obj << -/D [2327 0 R /XYZ 85.0394 436.8585 null] +/D [2335 0 R /XYZ 85.0394 532.4267 null] >> endobj 2355 0 obj << -/D [2327 0 R /XYZ 85.0394 432.1146 null] +/D [2335 0 R /XYZ 85.0394 528.958 null] >> endobj 2356 0 obj << -/D [2327 0 R /XYZ 85.0394 408.0449 null] +/D [2335 0 R /XYZ 85.0394 514.2533 null] >> endobj 2357 0 obj << -/D [2327 0 R /XYZ 85.0394 401.9262 null] +/D [2335 0 R /XYZ 85.0394 510.7248 null] >> endobj 2358 0 obj << -/D [2327 0 R /XYZ 85.0394 387.2214 null] +/D [2335 0 R /XYZ 85.0394 496.02 null] >> endobj 2359 0 obj << -/D [2327 0 R /XYZ 85.0394 383.6929 null] +/D [2335 0 R /XYZ 85.0394 492.4915 null] >> endobj 2360 0 obj << -/D [2327 0 R /XYZ 85.0394 356.9731 null] +/D [2335 0 R /XYZ 85.0394 468.4218 null] >> endobj 2361 0 obj << -/D [2327 0 R /XYZ 85.0394 353.5044 null] +/D [2335 0 R /XYZ 85.0394 462.303 null] >> endobj 2362 0 obj << -/D [2327 0 R /XYZ 85.0394 326.7847 null] +/D [2335 0 R /XYZ 85.0394 436.8585 null] >> endobj 2363 0 obj << -/D [2327 0 R /XYZ 85.0394 323.316 null] +/D [2335 0 R /XYZ 85.0394 432.1146 null] >> endobj 2364 0 obj << -/D [2327 0 R /XYZ 85.0394 299.2463 null] +/D [2335 0 R /XYZ 85.0394 408.0449 null] >> endobj 2365 0 obj << -/D [2327 0 R /XYZ 85.0394 293.1275 null] +/D [2335 0 R /XYZ 85.0394 401.9262 null] >> endobj 2366 0 obj << -/D [2327 0 R /XYZ 85.0394 278.4228 null] +/D [2335 0 R /XYZ 85.0394 387.2214 null] >> endobj 2367 0 obj << -/D [2327 0 R /XYZ 85.0394 274.8943 null] +/D [2335 0 R /XYZ 85.0394 383.6929 null] >> endobj 2368 0 obj << -/D [2327 0 R /XYZ 85.0394 249.4498 null] +/D [2335 0 R /XYZ 85.0394 356.9731 null] >> endobj 2369 0 obj << -/D [2327 0 R /XYZ 85.0394 244.7058 null] +/D [2335 0 R /XYZ 85.0394 353.5044 null] >> endobj 2370 0 obj << -/D [2327 0 R /XYZ 85.0394 189.2701 null] +/D [2335 0 R /XYZ 85.0394 326.7847 null] >> endobj 2371 0 obj << -/D [2327 0 R /XYZ 85.0394 189.2701 null] +/D [2335 0 R /XYZ 85.0394 323.316 null] >> endobj 2372 0 obj << -/D [2327 0 R /XYZ 85.0394 189.2701 null] +/D [2335 0 R /XYZ 85.0394 299.2463 null] >> endobj 2373 0 obj << -/D [2327 0 R /XYZ 85.0394 183.2071 null] +/D [2335 0 R /XYZ 85.0394 293.1275 null] >> endobj 2374 0 obj << -/D [2327 0 R /XYZ 85.0394 168.4425 null] +/D [2335 0 R /XYZ 85.0394 278.4228 null] >> endobj 2375 0 obj << -/D [2327 0 R /XYZ 85.0394 164.9738 null] +/D [2335 0 R /XYZ 85.0394 274.8943 null] >> endobj 2376 0 obj << -/D [2327 0 R /XYZ 85.0394 150.2691 null] +/D [2335 0 R /XYZ 85.0394 249.4498 null] >> endobj 2377 0 obj << -/D [2327 0 R /XYZ 85.0394 146.7405 null] +/D [2335 0 R /XYZ 85.0394 244.7058 null] >> endobj 2378 0 obj << -/D [2327 0 R /XYZ 85.0394 132.0358 null] +/D [2335 0 R /XYZ 85.0394 189.2701 null] >> endobj 2379 0 obj << -/D [2327 0 R /XYZ 85.0394 128.5073 null] +/D [2335 0 R /XYZ 85.0394 189.2701 null] >> endobj 2380 0 obj << -/D [2327 0 R /XYZ 85.0394 113.8025 null] +/D [2335 0 R /XYZ 85.0394 189.2701 null] >> endobj 2381 0 obj << -/D [2327 0 R /XYZ 85.0394 110.274 null] +/D [2335 0 R /XYZ 85.0394 183.2071 null] >> endobj 2382 0 obj << -/D [2327 0 R /XYZ 85.0394 95.5094 null] +/D [2335 0 R /XYZ 85.0394 168.4425 null] >> endobj 2383 0 obj << -/D [2327 0 R /XYZ 85.0394 92.0407 null] +/D [2335 0 R /XYZ 85.0394 164.9738 null] >> endobj -2326 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F40 1218 0 R /F21 994 0 R >> -/ProcSet [ /PDF /Text ] +2384 0 obj << +/D [2335 0 R /XYZ 85.0394 150.2691 null] >> endobj -2386 0 obj << -/Length 2603 -/Filter /FlateDecode ->> -stream -xÚ¥ZKw›HÞûWh)ŸÑõ xÌN¶dGGöÈN÷ÌIg²Ì@N§ýÜ¢J™žã…¡êÂ÷»o„'þð„^“xƾÇf“—ýšì`ïö+™™šÙRWO¿ÜÐh{q@‚ÉÓ«u¯ÈCQ„'OÛ¯Ókx—p4½Z]Ýîo7ó‡ÿºœ†¦¿#†æë…<yür{»||ZªÓÍr¾XoA_&ÓùÃÃr½XýSn_‹›"4½]®—›ù\\¬õÅ7ËÍr}½”§«õÍýæóü2ô§O«ûõå·§OË'ó~¶0¢âåþsñõšlAŸ.GãˆM¾Ã òp“ÉþÂgÔc>¥z%»x¼ø‡¹¡µÛ\:¨SŒ<B2 T‚'{1c¤£U{%´ÑªyÓû/“:-òjô(†§8ë‘‘@†X•2ýëææE¿õ11!ðâ,t™>ª,TLB‘ÐF]û$Íåk'Û}š§U
ï^”•\+ZU4ç»cºåžxÄÞá€y~Dð<⾤øgOþ¿+j¸§°µ±.Þùþ™—òÇQèêx#Ê„Ú¶¤úÖRF㌆» -÷±‡µnc_û}‘÷<l‘Ô‰<ºI3®|²ÈGˆìŽ’¹¸,ËKMKL€.ýÀ÷»L<\bOWœ—5ß'jïþ¥.,.b:ÊEcQt&¢ÙRã\)ÃEŒÉ8Nè–‹ìA.:؃\˜dÊ;òí_e„`æQDºŒ,4Ii{Æ
./£é1)B‚qBBäEEg±¤„h)MA9qA[„ô±‡ ±±Ot]¦5/S寅2ÕMQÔ*œ${å/¼|çe5¢Â0 -º4\)>'yžæ»Ù·ùõ’±iúGÊGüÆAC^â3,µB’”áˆàØÁ‘×¢¨<Ìü¥RÚ.^{n3ÏÒ¤âU¨5¯¿å¿[†Ò>LQy!éÇ.E>&û4«µËŽ6jû7áEeº{«Gø 5d§˜{ŒAI1ó‰"p•ƒÉåÊÓ?¹³¦°ºÑ…±!|¦H°¥ÆI7R†õˆ°qÖÐ-í'؃¼w°çðâA0}ºÄ»¬QK‚î šòç¿]ΨO¦«ª:6F - BhÔÓ™zAža½r®„4çÔÑØ…kQÞfÜîy”µR_¹A³,—Øt~8dé‹)aE´%«ÅzÞô)’fÌ°Å\ÔF_8¹I²ŠÓ†÷}#v>‚©Áæë>É›íHÑ,žGÑl`f& -±&ð‹½ *öµõDûÅmöQÐ.nc.ïÕð-v>k¾õM:|_eIþòÆë¿À·QhÎer[jœo#eñí(€Ð-ß'؃|w°Žù—bËEôfaäC:½‚êªjøçþ”ç £Î¨ë°ú%OÅ¥rQ&|XJž°o¢FØF
XÖK*jÌîP7[=è™P˜‡ÒkDçž.ÞÊÕOjL˜ÅA¬k™uz’ЬäYRëBø
|H ,$gj[ÊaEZÊ´QÐü9¬ÈmYQ{ØŠlì/Ucù2C{Õ::òU.V -×Rm¯ê;*X'´¥ð>ö°Âmì¹R,ßéÂUR¥'VÞëìtC›²œ(P8f]îÍ´ &Óä¸{“åèá=) -!ßDgú[ÊÁƒ–2<PßÑ=:¡-úØÃ<ØØ&&ý‹CYµÁÁu±?$ùV@m8ÄzþÜ
0Ïàþm¬éô“'¯ü{ÆsÈJÍ*1Î!v~äÙ«ºÀ<ÂÚ¿‡¾¯zþÑDDu¹I³Ÿ)¢Q:Iȼ08—*l©q:TK's”Nè–ÎìA:;Øs3}çy; -½Ñ¥ -‚žëéºOLp*ÇLå¤AD^D0þY_3ݺ›(Y䟡¥r°¢„L-BGïæµ8éSbo8ta”¿XŲfEŽTd2ÿ`*T¥"ãý)7T²»ü®êMú®bÔ‹¿WxRµ®88ä†Ê³D™ç#ÿL`K9xÒR†(ÈË¢\ÐS}ìaªlì…øÒ&JØÆI|LçÇú
4^C¶yçrIAq¤æÚâ$œ¾‹Qx³ú&ÑtˆsÑ%Uî·ÝÊͪt) -*üК‡CWh¢¤¸ÃGy÷m3ñ›²Œ3}u' -dœGè® u:ó%Ï–rð¨¥1r9œÚâ±=Ì£mª¹ÕÃ{ «0‘6Ê$¯Úòîä›Æø’š¥9þ†‡¼8¶Óš]L/Ž¥ñSs mõ&I×®öȵUu -ÉpdåBµ°ÛÉ…þŠiŸ€»lx~v>Ü{S0 †vßÅ’¨ËV{[•3Õ…§ºÖŸ7©õ£ŒOÇìg¾7‰’‚Z:2Ñýÿþí•5“=´Ègjf¥Šb^8{ í·¡p«ÓGgòk“A¡ÞIÅ-†Œà`Šip¢ý“¯SEüÀ°[endstream -endobj 2385 0 obj << -/Type /Page -/Contents 2386 0 R -/Resources 2384 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 2258 0 R +/D [2335 0 R /XYZ 85.0394 146.7405 null] +>> endobj +2386 0 obj << +/D [2335 0 R /XYZ 85.0394 132.0358 null] >> endobj 2387 0 obj << -/D [2385 0 R /XYZ 56.6929 794.5015 null] +/D [2335 0 R /XYZ 85.0394 128.5073 null] >> endobj 2388 0 obj << -/D [2385 0 R /XYZ 56.6929 748.4854 null] +/D [2335 0 R /XYZ 85.0394 113.8025 null] >> endobj 2389 0 obj << -/D [2385 0 R /XYZ 56.6929 748.4854 null] +/D [2335 0 R /XYZ 85.0394 110.274 null] >> endobj 2390 0 obj << -/D [2385 0 R /XYZ 56.6929 748.4854 null] +/D [2335 0 R /XYZ 85.0394 95.5094 null] >> endobj 2391 0 obj << -/D [2385 0 R /XYZ 56.6929 743.3452 null] ->> endobj -2392 0 obj << -/D [2385 0 R /XYZ 56.6929 728.6405 null] +/D [2335 0 R /XYZ 85.0394 92.0407 null] >> endobj -2393 0 obj << -/D [2385 0 R /XYZ 56.6929 723.1655 null] +2334 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F40 1218 0 R /F21 994 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 2394 0 obj << -/D [2385 0 R /XYZ 56.6929 708.4607 null] +/Length 2601 +/Filter /FlateDecode +>> +stream +xÚ¥ZKw›HÞûWh)Óõ xÌN¶dGGöÈN÷ÌIg²Ì@N§ýÜ¢J™žã…¡êÂ÷»o„'þð„^“xƾÇf“—ýšì`ïö+™K-tiK]=]ürC£IìÅ &O¯Ö½"Ež<m¿N¯=âÍàhzµºº[Ýßnæÿ5»$MGÍ×yòøåövùø´T§›å|±Zß‚ž&ÓùÃÃr½XýSn_‹›"4½]®—›ù\\¬õÅ7ËÍr}½”§«õÍýæó|úÓ§ÕýzöíéÓÅòɼŸŒ¨x¹ÿ\|ý†&[PŧäÑ8b“ïp‚<Çd²¿ðõ˜O©^É./þanhí6—ê#Ѐ(•à Æ^Ìéh•Å^@ m´jÞôþÀˤN‹¼}+Šá)Îðjdä!V¥Œ@ÿº¹¹EÑo}LL¼8] F¦ê#“Ðc$´QÅ>IsùÚÉvŸæiUûe%׊VÍùî˜n¹'±÷F8`ž<¸ï)þÙ“ÿïŠî)lEm¬‹w¾æ¥<Ãqz£ºÞˆ2!‡¶-)‡¾µ”Ñ8£¡Cã.hKç}ìaÛØ×Å~_ä=[$u"nÒŒ+Ÿ,òß"»£¤A..Ër†£©`i€ Ð¥ø~—‰‡&ñTÑqÅyYó}¢öî_êÂâ"¦£\1öEg"š-5Î…‘2\ĘŒsá„n¹8Á䢃=È…‰I¦¼#ßþUFf^E¤ËÈB“‘”¶gÜðçrMIùÃŒ"/b(:Cˆ%å DKiBÂÈAˆÚ"¤=Lˆ}¢ûë2y™*çx-”©nŠ¢Vá$Ù+yäå;/«ÁFà€QÐ¥áJÑð9Éó4ßõÈî¸Í¯3Ʀé)ñMyAˆÏ°Ô +9HRB†#‚cG\‹¢ð0Cð—Ji»xí¹Í<K“ŠW=¢Ö¼þ^”ÿnJ_ø0EAä…¤»tù˜ìÓ¬Ö.g8Ú¨íß„•éîá'ÔZà’ÐØcJŠKŸxð ÒW9˜\®Ì0ý“+0;a +«-X{ÂgŠ[jœt#eXgÝ ÝÒ~‚=È{{/Ó§ÆØeZ‚tOД?ÿmvI}2]UÕ±1ØiL®YáhýAÂv£C±jFA ~ãr÷ŽJu}ïåÙA†Ûºx)²¡KIì!Û† +Ctòòfè/ˆ¤vFÉ™ÈnK9×RãØÁ¸Ú¢¼=̹-•ÆàÑŒÅÂñ)D×ǺÐ{b
H’”ˆšHB¬ übo ˆŠ}m=BÄѾED1dkÛƒ}´„‹ÛX„Ë{5|‹Ïšo}“ßWY’¿¼ñú/ðíGZ§s™Ü–çÛHY|; +`'tË÷ ö ßì‡cþã¥Ør½YØùN¯ ºª¾Å¹?å9Ȩ3*Ã:¬~ÉSq©\” V‡’'웨¶Q–õ’Š—
w¨ŠôL(aÌCé5¢sOï?åê'5&Ì‹â Ö5‚L‡:=É +è²äYRëBø
|H ,$gj[ÊaEZÊ´QÐü9¬ÈmYQ{ØŠlì/Ucù2C{Õ::òU.V +×Rm¯ê;*X'´¥ð>ö°Âmì¹R,ßéÂUR¥'VÞëìtC›²œ(P8f]îÍ´ &Óä¸{“åèá=) +!ßDgú[ÊÁƒ–2<PßÑ=:¡-úØÃ<ØØ&&ý‹CYµÁÁu±?$ùV@m8ÄzþÜ
0Ïàþm¬éô“'¯ü{ÆsÈJÍ*1Î!v~äÙ«ºÀ<ÂÚ¿‡¾¯zþÑDDu¹I³Ÿ)¢Q:Iȼ08—*l©q:TK's”Nè–ÎìA:;Øs3}çy; +½Ñ¥ +‚žëéºOLp*ÇLå¤AD^D0þY_3ݺ›(Y䟡¥r°¢„L-BGïæµ8éSbo8ta”¿XŲfEŽTd2ÿ`*T¥"ãý)7T²»ü®êMú®bÔ‹¿WxRµ®88ä†Ê³D™ç#ÿL`K9xÒR†(ÈË¢\ÐS}ìaªlì…øÒ&JØÆI|LçÇú
4^C¶yçrIAq¤æÚâ$œ¾‹Qx³ú&ÑtˆsÑ%Uî·ÝÊͪt) +*üК‡CWh¢¤¸ÃGy÷m3ñ›²Œ3}u' +dœGè® u:ó%Ï–rð¨¥1r9œÚâ±=Ì£mª¹ÕÃ{ «0‘6Ê$¯Úòîä›Æø’š¥9þ†‡¼8¶Óš]L/Ž¥ñSs mõ&I×®öȵUu +ÉpdåBµ°ÛÉ…þŠiŸ€»lx~v>Ü{S0 †vßÅ’¨ËV{[•3Õ…§ºÖŸ7©õ£ŒOÇìg¾7‰’‚Z:2Ñýÿþí•5“=´Ègjf¥Šb^Ôpþ¶:wt&!¿6éŠTüÒ‚a(=Àÿ¦˜F'Jп÷:ÕÂûµendstream +endobj +2393 0 obj << +/Type /Page +/Contents 2394 0 R +/Resources 2392 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 2446 0 R >> endobj 2395 0 obj << -/D [2385 0 R /XYZ 56.6929 702.9857 null] +/D [2393 0 R /XYZ 56.6929 794.5015 null] >> endobj 2396 0 obj << -/D [2385 0 R /XYZ 56.6929 688.2211 null] +/D [2393 0 R /XYZ 56.6929 748.4854 null] >> endobj 2397 0 obj << -/D [2385 0 R /XYZ 56.6929 682.8059 null] +/D [2393 0 R /XYZ 56.6929 748.4854 null] >> endobj 2398 0 obj << -/D [2385 0 R /XYZ 56.6929 668.0414 null] +/D [2393 0 R /XYZ 56.6929 748.4854 null] >> endobj 2399 0 obj << -/D [2385 0 R /XYZ 56.6929 662.6262 null] +/D [2393 0 R /XYZ 56.6929 743.3452 null] >> endobj 2400 0 obj << -/D [2385 0 R /XYZ 56.6929 599.7666 null] +/D [2393 0 R /XYZ 56.6929 728.6405 null] >> endobj 2401 0 obj << -/D [2385 0 R /XYZ 56.6929 599.7666 null] +/D [2393 0 R /XYZ 56.6929 723.1655 null] >> endobj 2402 0 obj << -/D [2385 0 R /XYZ 56.6929 599.7666 null] +/D [2393 0 R /XYZ 56.6929 708.4607 null] >> endobj 2403 0 obj << -/D [2385 0 R /XYZ 56.6929 591.7571 null] +/D [2393 0 R /XYZ 56.6929 702.9857 null] >> endobj 2404 0 obj << -/D [2385 0 R /XYZ 56.6929 565.0374 null] +/D [2393 0 R /XYZ 56.6929 688.2211 null] >> endobj 2405 0 obj << -/D [2385 0 R /XYZ 56.6929 559.6222 null] +/D [2393 0 R /XYZ 56.6929 682.8059 null] >> endobj 2406 0 obj << -/D [2385 0 R /XYZ 56.6929 534.1777 null] +/D [2393 0 R /XYZ 56.6929 668.0414 null] >> endobj 2407 0 obj << -/D [2385 0 R /XYZ 56.6929 527.4872 null] +/D [2393 0 R /XYZ 56.6929 662.6262 null] >> endobj 2408 0 obj << -/D [2385 0 R /XYZ 56.6929 502.0427 null] +/D [2393 0 R /XYZ 56.6929 599.7666 null] >> endobj 2409 0 obj << -/D [2385 0 R /XYZ 56.6929 495.3523 null] +/D [2393 0 R /XYZ 56.6929 599.7666 null] >> endobj 2410 0 obj << -/D [2385 0 R /XYZ 56.6929 420.5376 null] +/D [2393 0 R /XYZ 56.6929 599.7666 null] >> endobj 2411 0 obj << -/D [2385 0 R /XYZ 56.6929 420.5376 null] +/D [2393 0 R /XYZ 56.6929 591.7571 null] >> endobj 2412 0 obj << -/D [2385 0 R /XYZ 56.6929 420.5376 null] +/D [2393 0 R /XYZ 56.6929 565.0374 null] >> endobj 2413 0 obj << -/D [2385 0 R /XYZ 56.6929 412.5281 null] +/D [2393 0 R /XYZ 56.6929 559.6222 null] >> endobj 2414 0 obj << -/D [2385 0 R /XYZ 56.6929 388.4584 null] +/D [2393 0 R /XYZ 56.6929 534.1777 null] >> endobj 2415 0 obj << -/D [2385 0 R /XYZ 56.6929 380.3932 null] +/D [2393 0 R /XYZ 56.6929 527.4872 null] >> endobj 2416 0 obj << -/D [2385 0 R /XYZ 56.6929 365.6884 null] +/D [2393 0 R /XYZ 56.6929 502.0427 null] >> endobj 2417 0 obj << -/D [2385 0 R /XYZ 56.6929 360.2134 null] +/D [2393 0 R /XYZ 56.6929 495.3523 null] >> endobj 2418 0 obj << -/D [2385 0 R /XYZ 56.6929 345.4488 null] +/D [2393 0 R /XYZ 56.6929 420.5376 null] >> endobj 2419 0 obj << -/D [2385 0 R /XYZ 56.6929 340.0336 null] +/D [2393 0 R /XYZ 56.6929 420.5376 null] >> endobj 2420 0 obj << -/D [2385 0 R /XYZ 56.6929 325.269 null] +/D [2393 0 R /XYZ 56.6929 420.5376 null] >> endobj 2421 0 obj << -/D [2385 0 R /XYZ 56.6929 319.8539 null] +/D [2393 0 R /XYZ 56.6929 412.5281 null] >> endobj 2422 0 obj << -/D [2385 0 R /XYZ 56.6929 295.7842 null] +/D [2393 0 R /XYZ 56.6929 388.4584 null] >> endobj 2423 0 obj << -/D [2385 0 R /XYZ 56.6929 287.7189 null] +/D [2393 0 R /XYZ 56.6929 380.3932 null] >> endobj 2424 0 obj << -/D [2385 0 R /XYZ 56.6929 272.9543 null] +/D [2393 0 R /XYZ 56.6929 365.6884 null] >> endobj 2425 0 obj << -/D [2385 0 R /XYZ 56.6929 267.5392 null] +/D [2393 0 R /XYZ 56.6929 360.2134 null] >> endobj 2426 0 obj << -/D [2385 0 R /XYZ 56.6929 252.7746 null] +/D [2393 0 R /XYZ 56.6929 345.4488 null] >> endobj 2427 0 obj << -/D [2385 0 R /XYZ 56.6929 247.3594 null] +/D [2393 0 R /XYZ 56.6929 340.0336 null] >> endobj 2428 0 obj << -/D [2385 0 R /XYZ 56.6929 223.2897 null] +/D [2393 0 R /XYZ 56.6929 325.269 null] >> endobj 2429 0 obj << -/D [2385 0 R /XYZ 56.6929 215.2245 null] +/D [2393 0 R /XYZ 56.6929 319.8539 null] >> endobj 2430 0 obj << -/D [2385 0 R /XYZ 56.6929 149.4956 null] +/D [2393 0 R /XYZ 56.6929 295.7842 null] >> endobj 2431 0 obj << -/D [2385 0 R /XYZ 56.6929 149.4956 null] +/D [2393 0 R /XYZ 56.6929 287.7189 null] >> endobj 2432 0 obj << -/D [2385 0 R /XYZ 56.6929 149.4956 null] +/D [2393 0 R /XYZ 56.6929 272.9543 null] >> endobj 2433 0 obj << -/D [2385 0 R /XYZ 56.6929 144.3554 null] +/D [2393 0 R /XYZ 56.6929 267.5392 null] >> endobj 2434 0 obj << -/D [2385 0 R /XYZ 56.6929 120.2857 null] +/D [2393 0 R /XYZ 56.6929 252.7746 null] >> endobj 2435 0 obj << -/D [2385 0 R /XYZ 56.6929 112.2205 null] +/D [2393 0 R /XYZ 56.6929 247.3594 null] >> endobj 2436 0 obj << -/D [2385 0 R /XYZ 56.6929 97.4559 null] +/D [2393 0 R /XYZ 56.6929 223.2897 null] >> endobj 2437 0 obj << -/D [2385 0 R /XYZ 56.6929 92.0407 null] +/D [2393 0 R /XYZ 56.6929 215.2245 null] >> endobj -2384 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R >> -/ProcSet [ /PDF /Text ] +2438 0 obj << +/D [2393 0 R /XYZ 56.6929 149.4956 null] >> endobj -2440 0 obj << -/Length 2194 -/Filter /FlateDecode ->> -stream -xÚ¥YYwâ8~ϯàmÌ9ƒZ‹yÞH ªR$
é™é©ªÇ(àcÓؤŠùõsµØÈ`›>3‡k¹‹t?ÝE‚0üÈ€{³Ð¡‹<L¼A¼½Áƒ5Ì=ÜC3ªˆF6ÕíËÍ/÷ŒBúÔ¼¼Y²8Âœ“ÁËê«3~~žÎ'³
GÔÃÎŽ<Œ‡é|º?êÁÉ|©‹éýt1ßMuw6¿Z|×y™=͇>'$P)ÃÇÎíìöqöô°?ÿýwÍð
{x<ŸèÎò·‡‡éòe:©d'³ùá÷—O7Ó—z¶
frsÜ|ýŽ+0ŧŒXȽÁè`D¶7®Çç2V¤7Ë›_kÖ¬bm³©Ç8ò8
ZŒJÉ€zmXÕ‘Ï(SV}z-òT”bufÁ¥ˆû¤<š=ßß›e.òC^Ü¢Òk£m€WTri_A+ž÷ý\3ñ0â!l®WuMu©ÛÅ–nâyˆÌk*ŸäÛ(Ɇ#—bgm…lgy,J±Õ£'É™éÏRdE’gÊNgÛ#£€>,LÊþ+°øÌ™ Ãe½‰#ÔŒë°ýpg¥õD™iÜúÏÑámeFʧ(;Dû£Ô -{®jÜA¬ -i>aN´R¶5êx Å1‹¶I¬;¿íVQ)Ú0 riè0T¼H
†Â -/°Â"&:,O3,ê1
&4žÑÃaµ=d«¢S£X m X‡ÓÊOY7¦2Öºä -¤'¢D
‘hO®ëÓkáy¦¸NKóD¤bmB™´*C¨¤¶Ô8©«MÃ#õˆöÈŠºÓ# ”9®ËI3h>™ ÙÀI—)•ïý D\†\̯”‚6U&U
JÐëe}ª-TÎuwÀb+TâãÉîéGeŒ»|»À^“´Îpoù¾2ÛŸB³ÅÙ‹çµâÒÀ£}-IARà:ur;Öà¸ÝàP¹`Ã+àXT=àTT8=·¦^Õ8çº;À±•×uº[U‡²U×éÐVYL6La}ãG0væGjÄø‘á0~¤ÅÚ·4èO³rÔÍç<ÉÊ×rú|b»O£uЮ½”ðÓÝL…Åz´+÷üœ§ïú-{ŸÌè2ޤDzq&T -] N–—FuÞ܆®4ç:ªÜ(ÀB7"õeNuãI>¢Tž%^…@•ÿGMUlòCjF•VÙxúûÇ!×o¬@¨òŒÅ‰r•}”ÆÌ{“§>Õƒ6¾Ð=d)˜ÙÐÇq¾µá³‹²DI'Øy=ê¯>ÐX%EœFÉVeQ5•5‰!>Bè|£Ô•g®Ð]µ\øjóµ&- -$éô”6"46чéOš¼‰–§{ê´Â·H~êÆ6ÏÊá…ó^-ñÇ&+gËFÍŠ={ÅÐY ëU»6™l«>3ñjXAHb*ŠH½iÁ_f‚ˆ¨ê/v^󃉷³ùä$×…zÕ¯åb’ê.ò&öÒ:ŸÜiÈÆÞ•;˜Mu™M
<~¦Ò éN$½ZO‰äBm{"i¨Õ‰{Ư°o›Ê^µ•3+äÏstH5Ó8…[×’<çnŸÄï*úÅcr\Ä…ŠswÜ'ëJ-päA-/ÿhÁæ%9Öú!~Ÿô( -ünZÝ7L¼¶Û…ýñªú$aÈõz–â5*Ê|—«X!önü7=óô—¤©y˧žÔuv©«‹‘1Ü+âNrÑYsÀQ•µ …ëCýÿCe/b¼ë. Ý2’jQÊ$,€ÐL‰[m8P0z¦§A=t*‡]v»|oÜéCBˆ#öò¬íï¸úŸ±KKüÂ…¼“endstream -endobj 2439 0 obj << -/Type /Page -/Contents 2440 0 R -/Resources 2438 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 2258 0 R +/D [2393 0 R /XYZ 56.6929 149.4956 null] +>> endobj +2440 0 obj << +/D [2393 0 R /XYZ 56.6929 149.4956 null] >> endobj 2441 0 obj << -/D [2439 0 R /XYZ 85.0394 794.5015 null] +/D [2393 0 R /XYZ 56.6929 144.3554 null] >> endobj 2442 0 obj << -/D [2439 0 R /XYZ 85.0394 749.4437 null] +/D [2393 0 R /XYZ 56.6929 120.2857 null] >> endobj 2443 0 obj << -/D [2439 0 R /XYZ 85.0394 749.4437 null] +/D [2393 0 R /XYZ 56.6929 112.2205 null] >> endobj 2444 0 obj << -/D [2439 0 R /XYZ 85.0394 749.4437 null] +/D [2393 0 R /XYZ 56.6929 97.4559 null] >> endobj 2445 0 obj << -/D [2439 0 R /XYZ 85.0394 746.6461 null] ->> endobj -2446 0 obj << -/D [2439 0 R /XYZ 85.0394 722.5763 null] ->> endobj -2447 0 obj << -/D [2439 0 R /XYZ 85.0394 716.7581 null] +/D [2393 0 R /XYZ 56.6929 92.0407 null] >> endobj -2448 0 obj << -/D [2439 0 R /XYZ 85.0394 701.9936 null] +2392 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 2449 0 obj << -/D [2439 0 R /XYZ 85.0394 698.8254 null] +/Length 2193 +/Filter /FlateDecode +>> +stream +xÚ¥Y[wâº~ϯàf⣋eË}#¤ÌdHä´=™Ç(àcs°ÉýõݺØÈ`›³ÚŃuÙiÚ <@ðÃÎ\DCo„žËfƒx{ƒk˜{¸Á†fTlªÛ—›_î)„nèðòfÉâ.â^V_ñóót>™ýk8"9wîpÄr¦óébü¨'ó¥n,¦÷ÓÅt~7ÕÝÙüþiñe<<çeö4ú@¤9·³ÛÇÙÓÃbüü÷ß5Ã7ÄÐx>ÑåoÓåËtRÉOfó ÁÃï/Ÿn¦/õþl`Dåæþ¸ùú
V`ŠO7È¥!gƒÐA.C2ØÞxŒºÌ£´Io–7¿ÖYÅÚfSF¹Ë8 ZŒJð +,>u&®aŠ2Þ‡ØjÆsè~ˆ¹³Òz¢Ì4îýçèð¶2#åS”¢ýQj…=WŠF5î Vàv‡<—ë³ÚƒÞ‰¨<CTc‡iЃ]^º3ÅÈYš,Ò|Âœh¤lk Õñ6@*Šcm“Xw~Û¢R´ab×#!;a¨x]ý5 +3l +’Ê\E2Byþ!¶¯b¯CYÅ߈d!Ô
]ä…×@³¨z@«¨N …¨´>Õhçº;@³•wdäÚKL9”FûäB$ŽÊz°úþ;Ï*¯+£òÐæW. +oúÕÔøÕ£ø‘ínˆànDv1öùD,ªD*ªÏëh}ª-DÎuw b+L¶I©} +qÔcªbPKrŽ¼1‘‚ÓMDl;Y%óÜËH'¦ò !üJ¹gSucZSÕ˜ú¬Ó^Õ'L/t·cÚP¾+!Ý'K´ûÐ +×^‚ùén¦Âb=Ú‹•{~ÎÓw}‹–½OftoÒcÙ8* +0ÕF‚Žjç‡õf´’<zðG¾W¨ä_åñauI¡çdÙ"¿ªø”óMÍÓldBì
»1vT¼kb0·öaùØ„av#ôÛjº‘Y£*`¸£n•Aà(B³X†úÕÆýz^ÄÐØiöJéL¾^©Á¢ŒÖ¢Ðm]|ùÎJ|ˆ4ßÉýÁŠü;³í.²ŸïôÚ^’1Ž2Uè-p²¼4ªóæ6t¥ 9×QõàFภ+BSQDêM£h
è2(Pž@DU¯XxÉ°óšL¬¸Í''¹Ô«~-¹!®î"ob/ݨóÉ„ÔEˆ]¹ƒÙT—ÙÓÐ%ã'a*àîDÒ«õ”H.Ô¶'’†ZH3~…|ÛTöª}ˆ¨œZ!xž£Cª™Æ)ܺþÓÄœ»}¿«èÉAra*ÎÝqŸ¬7*µpÀ]µ¼ü£™—äXë‡ø}Ò?"nà‡pÓ²è¾!ÌÚnöÇ«ê‡!×ëYŠ×¨(ó]®b „Ø»ñßôÌÓ_P¦æ-Ÿ0©ëìRW#c¸WÄ œä¢³æ€£*ÿ:jAÕ‡úÿþ‡Ê*^—ò®»…tKiˆ«E)“ÐPþ…Á¨[m8\~ªÔ+תòÖåa·Ë÷Æ—þ1Ä;b/ßÀÚþ‹«ÿ»4Ö»íendstream +endobj +2448 0 obj << +/Type /Page +/Contents 2449 0 R +/Resources 2447 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 2446 0 R >> endobj 2450 0 obj << -/D [2439 0 R /XYZ 85.0394 684.1207 null] +/D [2448 0 R /XYZ 85.0394 794.5015 null] >> endobj 2451 0 obj << -/D [2439 0 R /XYZ 85.0394 680.8926 null] +/D [2448 0 R /XYZ 85.0394 749.4437 null] >> endobj 2452 0 obj << -/D [2439 0 R /XYZ 85.0394 656.8229 null] +/D [2448 0 R /XYZ 85.0394 749.4437 null] >> endobj 2453 0 obj << -/D [2439 0 R /XYZ 85.0394 651.0047 null] +/D [2448 0 R /XYZ 85.0394 749.4437 null] >> endobj 2454 0 obj << -/D [2439 0 R /XYZ 85.0394 636.3 null] +/D [2448 0 R /XYZ 85.0394 746.6461 null] >> endobj 2455 0 obj << -/D [2439 0 R /XYZ 85.0394 633.072 null] +/D [2448 0 R /XYZ 85.0394 722.5763 null] >> endobj 2456 0 obj << -/D [2439 0 R /XYZ 85.0394 609.0023 null] +/D [2448 0 R /XYZ 85.0394 716.7581 null] >> endobj 2457 0 obj << -/D [2439 0 R /XYZ 85.0394 603.184 null] +/D [2448 0 R /XYZ 85.0394 701.9936 null] >> endobj 2458 0 obj << -/D [2439 0 R /XYZ 85.0394 579.1143 null] +/D [2448 0 R /XYZ 85.0394 698.8254 null] >> endobj 2459 0 obj << -/D [2439 0 R /XYZ 85.0394 573.2961 null] +/D [2448 0 R /XYZ 85.0394 684.1207 null] >> endobj 2460 0 obj << -/D [2439 0 R /XYZ 85.0394 558.5914 null] +/D [2448 0 R /XYZ 85.0394 680.8926 null] >> endobj 2461 0 obj << -/D [2439 0 R /XYZ 85.0394 555.3634 null] +/D [2448 0 R /XYZ 85.0394 656.8229 null] >> endobj 2462 0 obj << -/D [2439 0 R /XYZ 85.0394 540.5988 null] +/D [2448 0 R /XYZ 85.0394 651.0047 null] >> endobj 2463 0 obj << -/D [2439 0 R /XYZ 85.0394 537.4306 null] +/D [2448 0 R /XYZ 85.0394 636.3 null] >> endobj 2464 0 obj << -/D [2439 0 R /XYZ 85.0394 510.7109 null] +/D [2448 0 R /XYZ 85.0394 633.072 null] >> endobj 2465 0 obj << -/D [2439 0 R /XYZ 85.0394 507.5427 null] ->> endobj -818 0 obj << -/D [2439 0 R /XYZ 85.0394 477.5928 null] +/D [2448 0 R /XYZ 85.0394 609.0023 null] >> endobj 2466 0 obj << -/D [2439 0 R /XYZ 85.0394 453.2532 null] ->> endobj -822 0 obj << -/D [2439 0 R /XYZ 85.0394 369.7201 null] +/D [2448 0 R /XYZ 85.0394 603.184 null] >> endobj 2467 0 obj << -/D [2439 0 R /XYZ 85.0394 345.3805 null] +/D [2448 0 R /XYZ 85.0394 579.1143 null] >> endobj 2468 0 obj << -/D [2439 0 R /XYZ 85.0394 310.6805 null] +/D [2448 0 R /XYZ 85.0394 573.2961 null] >> endobj 2469 0 obj << -/D [2439 0 R /XYZ 85.0394 310.6805 null] +/D [2448 0 R /XYZ 85.0394 558.5914 null] >> endobj 2470 0 obj << -/D [2439 0 R /XYZ 85.0394 310.6805 null] +/D [2448 0 R /XYZ 85.0394 555.3634 null] >> endobj 2471 0 obj << -/D [2439 0 R /XYZ 85.0394 310.6805 null] +/D [2448 0 R /XYZ 85.0394 540.5988 null] >> endobj -2438 0 obj << +2472 0 obj << +/D [2448 0 R /XYZ 85.0394 537.4306 null] +>> endobj +2473 0 obj << +/D [2448 0 R /XYZ 85.0394 510.7109 null] +>> endobj +2474 0 obj << +/D [2448 0 R /XYZ 85.0394 507.5427 null] +>> endobj +818 0 obj << +/D [2448 0 R /XYZ 85.0394 477.5928 null] +>> endobj +2475 0 obj << +/D [2448 0 R /XYZ 85.0394 453.2532 null] +>> endobj +822 0 obj << +/D [2448 0 R /XYZ 85.0394 369.7201 null] +>> endobj +2476 0 obj << +/D [2448 0 R /XYZ 85.0394 345.3805 null] +>> endobj +2477 0 obj << +/D [2448 0 R /XYZ 85.0394 310.6805 null] +>> endobj +2478 0 obj << +/D [2448 0 R /XYZ 85.0394 310.6805 null] +>> endobj +2479 0 obj << +/D [2448 0 R /XYZ 85.0394 310.6805 null] +>> endobj +2480 0 obj << +/D [2448 0 R /XYZ 85.0394 310.6805 null] +>> endobj +2447 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R /F14 1020 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2474 0 obj << +2483 0 obj << /Length 69 /Filter /FlateDecode >> stream xÚ3T0 endobj -2473 0 obj << +2482 0 obj << /Type /Page -/Contents 2474 0 R -/Resources 2472 0 R +/Contents 2483 0 R +/Resources 2481 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2476 0 R +/Parent 2446 0 R >> endobj -2475 0 obj << -/D [2473 0 R /XYZ 56.6929 794.5015 null] +2484 0 obj << +/D [2482 0 R /XYZ 56.6929 794.5015 null] >> endobj -2472 0 obj << +2481 0 obj << /ProcSet [ /PDF ] >> endobj -2479 0 obj << -/Length 2181 +2487 0 obj << +/Length 2179 /Filter /FlateDecode >> stream -xÚËrã6ò®¯Ð!U¡«F4 -|ó¾!&UW²]ô6†³@Ç$xrg8Ü;õÁæbѺ.Ëú¸ñÐè®'ií/¸Ëŧ‡Ñ· -ÓÄ¢(›uÒh5¥r>*Éýf -âUa6'²~_€A78ÇÙhr4¹W·$ÁˇCM¶[éâ «œ/S3ä[&v…'¿ÿôẴ…¦³;šª ¢\ç[Ø)ì>N2ºÙ³MKOxýäA§áè±vJDü±Ê·tUÝó4iÙiàŠ{ÍH–ò='<½áƒLô¾¾!râ2çp"Óù_$è gÝÞÝ“ƒ9„ùÛj]7»á– -´~º|ÒîMnqiN$ÀG›¾4sÁzÙ‘´ñÓ–:a€tÝ+ƽ×ù“Þ°uã=´æ2‰€óÆî9vD,óœ¤jùèĆöç\Ä@¢4ûŠ¥™ôCpË·M}JõºTïû›ROÖþB쬹Ÿ‰½qŠÝbX]©ÆOÀÔˆ1ÌÆrÌR0kwûÒ`™â² Ú,‰#,±†j…ï»]q^ -s +xÚMsã¶îî_áCgªÌ¬R¢¾Þ-ín;étvÚ$ï]v÷ÀH´ÍYrõá¬ÿ}’eGI:µA A|R.üå2|fj™dÊ„Œ–ùn!–˜ûu!™FE¡©0„ÁÌì* +S?Jƒd¹š2ùéaqýK —ðã8ˆ–ëQVœ¤~œÅáò¡øâÝì÷¦*ì÷«U ïãÕ·‡ßhò“4‘¸N€ŒØ,Å?Ý~þHÔ/ú|OÀïö±ÑÍ‘÷ý~_7ÝÈP*?TqÀãÐϲ,r?úòj%…ÿŽu°Ìü,bæd¸ÕÔq~ØÚXg¡w0MkëŠõš¾$¡Œ>_ƒ@™ïÈ»E¶c¶êLSé’F¥Û‘5<ÙÖôí¶º s$(×,øÑàWy}k +ÆbÛ\ÉÔ+V{ÝtŒÔû}isÝÁÆ[<,OJ?‹¢ÀoW»5À4‘gtkKÔPÞW‰gÆçº, ;ÚîtP:'âJ{%½ñLˆ±};§FäPÔy¿3Uü¥¨,òn™H…휊¨š±ƒìþ?ìÖáàRW´ñRw¨DÞüq;{Æ&á¶ß¼oˆIÕ•l}k«Í‚á¬Ð1 žÜ÷ŽA}°…¹X´®Ë²~n<4ºëIZûÜåâÓÃ考[©4ñ£(Êft ZM©œJ5±ßÀ4œðB|2¹*…‚E*y[êHõRì™ÛH°ŠÏÅ>8ed™W™g§a +ßw»â¼ +d˜*OÕ[ræ{f…,À +Â:Á÷±·Î™a'à†Öá©‚€ÍyÐ$ÌRLFÈyu0ôÎHšÂ5¹´Å¦§ÍI8¯§úÙqrìgÔÙ÷®¾OcÊ endobj -2478 0 obj << +2486 0 obj << /Type /Page -/Contents 2479 0 R -/Resources 2477 0 R +/Contents 2487 0 R +/Resources 2485 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2476 0 R +/Parent 2446 0 R >> endobj -2480 0 obj << -/D [2478 0 R /XYZ 85.0394 794.5015 null] +2488 0 obj << +/D [2486 0 R /XYZ 85.0394 794.5015 null] >> endobj 826 0 obj << -/D [2478 0 R /XYZ 85.0394 769.5949 null] +/D [2486 0 R /XYZ 85.0394 769.5949 null] >> endobj -2481 0 obj << -/D [2478 0 R /XYZ 85.0394 576.2232 null] +2489 0 obj << +/D [2486 0 R /XYZ 85.0394 576.2232 null] >> endobj 830 0 obj << -/D [2478 0 R /XYZ 85.0394 576.2232 null] +/D [2486 0 R /XYZ 85.0394 576.2232 null] >> endobj -2482 0 obj << -/D [2478 0 R /XYZ 85.0394 543.993 null] +2490 0 obj << +/D [2486 0 R /XYZ 85.0394 543.993 null] >> endobj 834 0 obj << -/D [2478 0 R /XYZ 85.0394 294.9358 null] +/D [2486 0 R /XYZ 85.0394 294.9358 null] >> endobj -2483 0 obj << -/D [2478 0 R /XYZ 85.0394 267.3765 null] +2491 0 obj << +/D [2486 0 R /XYZ 85.0394 267.3765 null] >> endobj 838 0 obj << -/D [2478 0 R /XYZ 85.0394 200.5197 null] +/D [2486 0 R /XYZ 85.0394 200.5197 null] >> endobj -2484 0 obj << -/D [2478 0 R /XYZ 85.0394 170.3103 null] +2492 0 obj << +/D [2486 0 R /XYZ 85.0394 170.3103 null] >> endobj -2477 0 obj << +2485 0 obj << /Font << /F21 994 0 R /F22 997 0 R /F14 1020 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2487 0 obj << -/Length 2600 +2495 0 obj << +/Length 2599 /Filter /FlateDecode >> stream @@ -11667,57 +11798,56 @@ tëÛT…ݤ9èðŽa*Í·sb!u¶uùjÑÆêåÉäØEtšç¤†<ç„'HH•Ýè>áæXš¬óÁÝÊbI%iº‚É¢Ìñ² ¬î‚½ €êMp+²túW 3>ì‰Û½×Ñiϲw+×US…ÈøúB÷‚¬E;~ýÍ¢Hïéç:N–ð4î߀¦¡y¦)ï«L™’F±BwO$oÓk('íðP¤¦¾®bÄͤN˜òÈ[ùЇšrkÉn~›GλÎìk+h JÆ'ÏB
ô-·Ýá ¾à Y”N/¼Ø@ô8˜sG8¿ëJ€Aj!u
”
p·ùÃìÛ±ÇMͤäþ9´íÀ{Ö¶„Ç-y…"j@z¶ýŽBw·ª[·q§+÷г0IäÉûq;òäéóòPÕSµƒÀáö°"®›±æŠ)Ýõ/9œ>I¢ôà\Jp{#x6gW7¸G0â‰ÀVr[ÄÒXó2!âi’=ûtÈž’ÏVÅ<›E×çHÕLŠÓÝ„<b"Ð.Vô\oì"ä ”#¡8Þá4&"ÓABm™}Ëi*²vä6vIíÙ>Órï‡uÚ›í¹F7Pܺ†]飧CìpÐøèÖR¿ÿñ³€zÿøàð±7˜Œ¸šS=;Ķtw:ÈA±ËÒÄY–õ®E‚–™ø9o -³Kl¹iM±9ØÙ;9DBëƒc ¨Ë÷½ˆá‡#æç½þïß(em˜0•¦rÜNö„çüèÊ Ú¦ÒUJe÷ß\ê£ß\ýÅ?~µGè%ñ -%B~¦ÿÓè¹"þdѯendstream +³Kl¹iM±9ØÙ;9DBëƒc ¨Ë÷½ˆá‡#æç½þïß(em˜0•¦rÜNö„çüèÊ4K]™!vÿÍå=úÁÕßêñãW‹w„‡ô"ÆSE(Ï”à=× endobj -2486 0 obj << +2494 0 obj << /Type /Page -/Contents 2487 0 R -/Resources 2485 0 R +/Contents 2495 0 R +/Resources 2493 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2476 0 R -/Annots [ 2492 0 R ] +/Parent 2446 0 R +/Annots [ 2500 0 R ] >> endobj -2492 0 obj << +2500 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [344.9397 142.7828 406.1397 154.1749] /Subtype /Link /A << /S /GoTo /D (trusted-keys) >> >> endobj -2488 0 obj << -/D [2486 0 R /XYZ 56.6929 794.5015 null] +2496 0 obj << +/D [2494 0 R /XYZ 56.6929 794.5015 null] >> endobj 842 0 obj << -/D [2486 0 R /XYZ 56.6929 769.5949 null] +/D [2494 0 R /XYZ 56.6929 769.5949 null] >> endobj -2489 0 obj << -/D [2486 0 R /XYZ 56.6929 751.5714 null] +2497 0 obj << +/D [2494 0 R /XYZ 56.6929 751.5714 null] >> endobj 846 0 obj << -/D [2486 0 R /XYZ 56.6929 588.0121 null] +/D [2494 0 R /XYZ 56.6929 588.0121 null] >> endobj -2490 0 obj << -/D [2486 0 R /XYZ 56.6929 559.805 null] +2498 0 obj << +/D [2494 0 R /XYZ 56.6929 559.805 null] >> endobj 850 0 obj << -/D [2486 0 R /XYZ 56.6929 252.161 null] +/D [2494 0 R /XYZ 56.6929 252.161 null] >> endobj -2491 0 obj << -/D [2486 0 R /XYZ 56.6929 225.1993 null] +2499 0 obj << +/D [2494 0 R /XYZ 56.6929 225.1993 null] >> endobj 854 0 obj << -/D [2486 0 R /XYZ 56.6929 124.408 null] +/D [2494 0 R /XYZ 56.6929 124.408 null] >> endobj -2493 0 obj << -/D [2486 0 R /XYZ 56.6929 93.9095 null] +2501 0 obj << +/D [2494 0 R /XYZ 56.6929 93.9095 null] >> endobj -2485 0 obj << +2493 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F42 1288 0 R /F22 997 0 R /F14 1020 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2496 0 obj << -/Length 2193 +2504 0 obj << +/Length 2190 /Filter /FlateDecode >> stream @@ -11729,36 +11859,36 @@ v׫l–¥”gsܵ>gÉ4›mÖ5ðí´^Û#Çrú#Ò¤¥#^ó²©íùí‰#F)Þž¸YØÍà,ȯÞÖBOÓçSüZäuƒí±`ææ¦ =¸;ÛÔáÃK ä¿-#wO(˸LJ~0Ðv,%ƒ½…áò¸™<Õ€è /h¨bï‰nßI5¤äg‰£0K÷ ®Ó‡ï¡ºW -Æî9Uû<Ã×<lø<Ün´yJ?Ó¢+¨¡ÔÈœ"ÝÆÖ¡À<ŽC@,+õfµªÖ¾·êžë팅@뜩õÞÏG|ÔÚWCî=î£}ªqõTá»ÙÁÅSÕ8[ŸëÛü³ãxBQÆ ±5|×öõ“'Çíã©ä†EKlŸFY(÷Mïzàoïý¨Ç„
5s¢oèSq…Žª}JŒQ‹:ûƾÁq<¡£í/$ßPÉ×TbiLMäqãxªÉ¡p’$& %§Ý¯u^ø~1[‡ÀCÐ8´µÕÜùD–v=Âëo3Hc b¯ýð¥kùTŒÔÐŽçå姇/h€öbtø:·ÝnIÿÙl Ä[î<E™5CeMv;O5ö;¤€úxøíþ·7ÿFùú£®Œ‰H>RiPI„0¬SÊž‚I(¨gºÿû+1$Ž®9~³éár×då¼Cõ[yüò¯¶ôÍ '
ùÿmôÐÿsþ=¦endstream +Æî9Uû<Ã×<lø<Ün´yJ?Ó¢+¨¡ÔÈœ"ÝÆÖ¡À<ŽC@,+õfµªÖ¾·êžë팅@뜩õÞÏG|ÔÚWCî=î£}ªqõTá»ÙÁÅSÕ8[ŸëÛü³ãxBQÆ ±5|×öõ“'Çíã©ä†EKlŸFY(÷Mïzàoïý¨Ç„
5s¢oèSq…Žª}JŒQ‹:ûƾÁq<¡£í/$ßPÉ×TbiLMäqãxªÉ¡p’$& %§Ý¯u^ø~1[‡ÀCÐ8´µÕÜùD–v=Âëo3Hc b¯ýð¥kùTŒÔÐŽçå姇/h€öbtø:·ÝnIÿÙl Ä[î<E™5CeMv;O5ö;¤€úxøíþ·7ÿFùú£®Œ‰H>RiPI„0¬SÊž‚IqIDÿ÷WbH‚C›.wMVÎ;H¿E„Ç/ÿjëÞÒ0–ûFÍð_ÄÎ= endobj -2495 0 obj << +2503 0 obj << /Type /Page -/Contents 2496 0 R -/Resources 2494 0 R +/Contents 2504 0 R +/Resources 2502 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2476 0 R +/Parent 2446 0 R >> endobj -2497 0 obj << -/D [2495 0 R /XYZ 85.0394 794.5015 null] +2505 0 obj << +/D [2503 0 R /XYZ 85.0394 794.5015 null] >> endobj 858 0 obj << -/D [2495 0 R /XYZ 85.0394 769.5949 null] +/D [2503 0 R /XYZ 85.0394 769.5949 null] >> endobj -2498 0 obj << -/D [2495 0 R /XYZ 85.0394 749.8211 null] +2506 0 obj << +/D [2503 0 R /XYZ 85.0394 749.8211 null] >> endobj 862 0 obj << -/D [2495 0 R /XYZ 85.0394 323.3339 null] +/D [2503 0 R /XYZ 85.0394 323.3339 null] >> endobj -2499 0 obj << -/D [2495 0 R /XYZ 85.0394 298.074 null] +2507 0 obj << +/D [2503 0 R /XYZ 85.0394 298.074 null] >> endobj -2494 0 obj << +2502 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2502 0 obj << -/Length 2706 +2510 0 obj << +/Length 2704 /Filter /FlateDecode >> stream @@ -11774,41 +11904,41 @@ U‘¡Â–^˜¹£™zè…:ÎswÚXT›¼p{a…±£eUjíø$™Å&˜Ÿg÷>N `ÜO wê?
»Å„lY]!ÕòTÖ„\ÙQwݬ£v‚rFñžß•t/È aqš>‘HÍx,ÔyEuT#3÷¯ ;1ïÏl³ƒÄeý!¨MØÝí5 ƒÄÀ¶òÖßæî¾0¸gá®ÆÑ®1îÆîæ›Xoò=™w Y‚ˆÓ¾y?y34xùÖZ¾iY, ;=n‘ÓœAËó¨gz®šÿÑMÍ7uE5”ˆ<“çÝ! :í
žÈ:ß45æ_£QQ2ËôÙé;¢ãù{6å‚NÀ;BÏ÷EúÐ.Qì!—26'/w&Å¥«ŽæÌÅÑ Ø§k/«K1(½ø7”^Gª˜†ãœøÍ‘ü}ŃÂ1bx½:¾
-
·Úš:w æ·…»°u%#(ÄV‰D Ü";ÜfçMß{fpœ±S¿Ç ÃQŒèþ9oÿîßj~Ü‚¥R'²‚L¨ÑàÇ'L³lv/eúí)þx|Øm·Uí4ð/{ˆk˜»Ûv àé‚ö±9»Ÿˆ+âC³Ñ˜endstream +
·Úš:w æ·…»°u%#(ÄV‰D Ü";ÜfçMß{fpœ±S¿Ç ÃQŒèþ9oÿîßj~Ü‚¥R'²‚L¨ÑàÇ'L3u¨ÑoÿhM¹ðgãÃn»j·üÙ3Ð@PÃÄÝvqÓDN!Û²û}ȱþÕÐòendstream endobj -2501 0 obj << +2509 0 obj << /Type /Page -/Contents 2502 0 R -/Resources 2500 0 R +/Contents 2510 0 R +/Resources 2508 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2476 0 R +/Parent 2515 0 R >> endobj -2503 0 obj << -/D [2501 0 R /XYZ 56.6929 794.5015 null] +2511 0 obj << +/D [2509 0 R /XYZ 56.6929 794.5015 null] >> endobj 866 0 obj << -/D [2501 0 R /XYZ 56.6929 769.5949 null] +/D [2509 0 R /XYZ 56.6929 769.5949 null] >> endobj -2504 0 obj << -/D [2501 0 R /XYZ 56.6929 749.768 null] +2512 0 obj << +/D [2509 0 R /XYZ 56.6929 749.768 null] >> endobj 870 0 obj << -/D [2501 0 R /XYZ 56.6929 549.9391 null] +/D [2509 0 R /XYZ 56.6929 549.9391 null] >> endobj -2505 0 obj << -/D [2501 0 R /XYZ 56.6929 524.2635 null] +2513 0 obj << +/D [2509 0 R /XYZ 56.6929 524.2635 null] >> endobj 874 0 obj << -/D [2501 0 R /XYZ 56.6929 422.5891 null] +/D [2509 0 R /XYZ 56.6929 422.5891 null] >> endobj -2506 0 obj << -/D [2501 0 R /XYZ 56.6929 396.9135 null] +2514 0 obj << +/D [2509 0 R /XYZ 56.6929 396.9135 null] >> endobj -2500 0 obj << +2508 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F14 1020 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2509 0 obj << +2518 0 obj << /Length 2487 /Filter /FlateDecode >> @@ -11821,2358 +11951,2430 @@ Nó&²Ì8EUË)žËFû–`<ÈýqÆ|Ž„'Ɉ|}ê©Ê€X€äGˆäo‰0rééFì®ÊE~æ͆vnÞÕ4ö“Iá¡T¨ðžÄ‹ À€ey¿n6+Ö#tDÁ X2½°ŠAnPÏ›~HuØô=•7ýsyP@¤fF—Q>é9~CVè*X¦wdÅ4ˆÈ®”*!Ÿ·Q$Ú³îè–ËHè•/Üö·\ÂQ¯”Bá{Þ‡½Ð¥÷Œ‡ÐÚnZjÝ`ä3×
倂èBÁ‘öS¦¼'ƒÙ£ðF 8][šEù`0ËçZ
°²r|ÖÒŸ&7±.Çzšàå*>Ï¡Q<ß)R‘ù‚ ªuÂq¾*v¸÷¯ýí ¢àª€sä*ë8ÜO
ºŠ-_óˆ¦rßEBQ^ç;!nózB(†ž¿‚Ÿ8˜ÊÂqóT6¤z&ž"å•=ç²ð7hÒŒ–}YEŽßQðg8QÆBÒ¹ü4ڑĪçÓSíYyIÐ^Yëìxåœ.Ä‚ -[½Ë÷p.éÃÈ_×Y›Ü-ÊpG×,«ÎW ~Þ"ˆÔvùjêØ%í8¦ŠÜsô Ý„Í÷`<€MHÿc–©MN|P!¾¦ë;m‘cbQ0â-–j=8HZÌéí]¦F![1 ØÆUó0Ë
lgûâ,ttb“šj 9dUnè,T}M¢«öW‚€]ú{SÄ]•qFIˆ|]Þê‘œÌ “¶‰˜ðõG†«+Dá¶oWtÙï§ÓÙ¼§Å@é—À rŽPc9
Þ ðı»»»©K“aht1Í›î\8
¶cC‹ðpßÚï“ +[½Ë÷p.éÃÈ_×Y›Ü-ÊpG×,«ÎW ~Þ"ˆÔvùjêØ%í8¦ŠÜsô Ý„Í÷`<€MHÿc–©MN|P!¾¦ë;m‘cbQ0â-–j=8HZÌéí]¦F![1 ØÆUó0Ë
lgûâ,ttb“šj 9dUnè,T}M¢«öW‚€]ú{SÄ]•qFIˆ|]Þê‘œÌ “¶‰˜ðõG†«+Dá¶oWtÙï§ÓÙ¼§Å@é—À rŽPc9
Þ ðı»»»©K“aht1Í›î\8
¶cC‹ðpßÚï“ endobj -2508 0 obj << +2517 0 obj << /Type /Page -/Contents 2509 0 R -/Resources 2507 0 R +/Contents 2518 0 R +/Resources 2516 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2476 0 R +/Parent 2515 0 R >> endobj -2510 0 obj << -/D [2508 0 R /XYZ 85.0394 794.5015 null] +2519 0 obj << +/D [2517 0 R /XYZ 85.0394 794.5015 null] >> endobj 878 0 obj << -/D [2508 0 R /XYZ 85.0394 392.8463 null] +/D [2517 0 R /XYZ 85.0394 392.8463 null] >> endobj -2511 0 obj << -/D [2508 0 R /XYZ 85.0394 364.3909 null] +2520 0 obj << +/D [2517 0 R /XYZ 85.0394 364.3909 null] >> endobj -2507 0 obj << +2516 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F61 1416 0 R /F42 1288 0 R >> /XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2514 0 obj << -/Length 532 +2523 0 obj << +/Length 530 /Filter /FlateDecode >> stream xÚ¥“Ms›0†ïü a&¨Z} -/èL…ýÕ†Š¹:·»ª¯¤ü™&zêÐm; +/èL…ýÕ†Š¹:·»ª¯¤ü™&zêÐm; endobj -2513 0 obj << +2522 0 obj << /Type /Page -/Contents 2514 0 R -/Resources 2512 0 R +/Contents 2523 0 R +/Resources 2521 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2517 0 R +/Parent 2515 0 R >> endobj -2515 0 obj << -/D [2513 0 R /XYZ 56.6929 794.5015 null] +2524 0 obj << +/D [2522 0 R /XYZ 56.6929 794.5015 null] >> endobj 882 0 obj << -/D [2513 0 R /XYZ 56.6929 769.5949 null] +/D [2522 0 R /XYZ 56.6929 769.5949 null] >> endobj -2516 0 obj << -/D [2513 0 R /XYZ 56.6929 749.4437 null] +2525 0 obj << +/D [2522 0 R /XYZ 56.6929 749.4437 null] >> endobj -2512 0 obj << +2521 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2520 0 obj << -/Length 2115 +2528 0 obj << +/Length 2113 /Filter /FlateDecode >> stream -xÚµ]oã6òÝ¿ÂÀ݃T\~ˆÕ§nwÓÛØlÛäî²yPlÚV–´–”¬QÜ¿!‡”%G®Q…‹‡ó=C²9…›kI¨Hãy’ÆDR&çËÝŒÎ7°ö¯ó8±DÆBÀdb5’B©y2†D~¼Ÿ½ù‰³9§D).ç÷ëþ,•$„¦óûÕÃâm]›r•»Š¸¤‹ë«ÇûŸqWL0»‹Â QB*·ãcVvYøu¶1M¿‡ÅDÄŠû=JE¥v{® »Š¥t±Ê7ß"ˆ„¥Ûlg<>OIª¸òd#BÏËnvç~æ<ÁÑûÛ;Uõ¥«qܵy‘·‡#cŒ¤RÆbF¸f(ÌÝ¡¬ê&w2Ì®ï{*J˜ -I´’ä²È& ò”h¤§× ®ó”½ÉÇL&DsšœÒüò7ÐÜõ£z‚z$¬×KçQï?°»®öí?ÎéBŸñõ"ÛgX悤ŒŠSzíEzí¡þôžûÑ· ʉCÇš¢®ô+'8\äôa»Ë–ß?Z|ÿÅ&H§”Äék»Å.…DøÓLó±"0-é0¶z cçÏaòµ3ûCU·„Çsi@$œÄ û+i`Hâ|è±Æi ÚžgMr¢R‘üÖ$þ€µ€5fmSTOY´1Þk6¨õB"~}÷î·›_îo>ÝöØ£:Àm0²cx],ÔAƒ#~¦’®ª]–—PbºÈËuµßem^Y€H›ýÓ‹ª6{@e©Áµ§Ÿ)æ[þT·UUà -Ð -d[³GJ ^nˬ»ðv Ìä
¹ŠM7-BáxËWƒØv›sí Ëȳ±Äª`Àb¹‚·µ©‹ìàÁíÖ 8+›8.@³Öos¼z·Ý¾4+\^£(»b(…¡V¹
ªÍ.ÉÑ>̬äf"K˜}¬š6Ôþ¡XNWB1H0»¼Ì¯Ø¢i÷Y[9æÜ5fÂ%Pi_|θ4FB…ÒVH°E!;°k³*˺¢G6j\†Õ]ƒKOf™Y.ÜrµÆoÞúÕà%Øs -±¶YãA8ÊÚ¥'¹«Vž”³³ýBXcªq -P1¤PݾO!1Ù -“G<0(ä\„@jZŸ#Ž!jgÇLÅãr‹Z¼EØÄÞ‡MBï8©<Ð9°=c¬Gu¨rÞd·×V°¦O˜]ïmZ´ø*^¼lM‰#›N^ù$%Œ©Ø2ÚN{•ÔJyd -ØBu÷Jâ xBS1v±ÿbàEçÉÀ5è“ŒN“€\ª„ÇÜÓãùM.LzX¬¡øH}ÑÃ×cu +xÚµ]oã¸ñ=¿Â@ûà +Óäe‚S$M‰Ê´‚sÝæ|¹ÜÙ6Xetn¤`¯§¹˜ )1ZE’‹2Ÿ$È3bLš\]$¸*J[õ&3™ÃizJóÛÿæ¶5Ôá¼^3KzÿÝM½ëþpNæôˆïÙ>Ã2$cTœÒë.ÒëÍÿ@ï¥ý˜ !œ*1t¬)Ê’pmÞ8Áá"§›m¾øùÉ)àçoö0A:£Dfoí&Ÿ| +Iðg˜ác=&:b:ÒqìôÇÞŸãäûÞîuÓBžÎ¥‘r"Sö{ÒÀÄù4ÐcÓ@²9ÏšâDg"ý=¬
HükkÌÚº¬Ÿó2i1a¼×lTë…DüñæþÃßoÿúpûå®ÇÕî‚‘ëÀÛbÁ žñ+UtYo󢂚 鼨Võn›wEí +EÙžC)¥pÊmQmnùHŽŒôaæ °KYÁìsÝv±öÅòºšA‚ÙUqÍæm·Ë»Ú3à}k'\‚ õÅçŒK@c$tL ];rvm7uíX×ôÈFƒË°ºmqéÙ.rÇ…_®Wø-º°½{àkþ,ÐB~º'¡ÞzhhA ‡®)ª„Å‚»sÄ|7ã6ûï¾köóFç_À6»·óÐ6óâw“¿Ø°Å5~´ÚWyÙŸÖ¬&.\6Q*ým…K’IË yZHb²LŒIÓ#þ}Ùmêýz3q”„ºc„¸dZ™2à¸À‚Ï+ãeyp3¯î%Â_‹nƒ°E½Ý‚ö“²¨,®aH¬÷[[u3â`\ÄÎ˶F¬MÞΟónHnëe åíì¾Ö˜j¼´„JåØíû‚“/1yÈA!?à"RÛ…qQ7;f*^ZŸ[ôü=ž!öV8l÷ ô: +L\úu¬ÿä¦)f7®Õü—Û»ˆ‘ªÛ‚dÏ'իɘ€‹ë[ê³uIA»¨²¬_Qk‰t·¬ŒÉqðo÷eW4¥Fw;Žäç°X´íÞ†(ø…‌ˆ…Io±A0‚Î0%ô}.D(†-—ñÇÄvåi»(œ.pËžã:•ß*ÓŒÀ•„_R ‡NÀy-Ê20™°¹EÐsêÅwŒaÕEhY´è–NÊj™R„q;Ôw¶[¼ƒËT]¾ÄTfàŸûû¢®V|{î¸oC6¯‚)÷mþmtåǾÛv±ß¶6X¿¯ÝÞÜõ¾ZN©b¸WKuI¥Rô8A¥žƒ¾hDŠÆ¸_¿VÖ‹ø°ê”ÄAð”fbìbÿÂ<À
ŠÎÓk0$& +Wζ
M(@½ +5—g’HÆOŠ®Ïm§¡”7
‰eLN_ÇÅó‰tH)xëdn}À.ZÏoïÜ7»žø„_|_ñk.q¶!”yƒ“ÐÀÀ(4åi §OÉAa«Ã¦Ò¾Ø‡ñ*ÔŸášr¨ý76’»ÓpÄÄ+ +Ü×”1Ñtñ-bdݤG©=´»§ž¹?ë›Ådq®òs1ªü¡äc,=«Ã±ÅÀ{ñëÁ_$j9Ô~/êùž„e4TÖ‹úý"kýÁvÄÚßDaìÔبCgØ>ÜÞÅ+ýEš]h5R5îâ‡OÜ1t[¡qÀ–ÒU™¦÷æ6:vÝÄË€÷7D6ч
Ç7 endobj -2519 0 obj << +2527 0 obj << /Type /Page -/Contents 2520 0 R -/Resources 2518 0 R +/Contents 2528 0 R +/Resources 2526 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2517 0 R +/Parent 2515 0 R >> endobj -2521 0 obj << -/D [2519 0 R /XYZ 85.0394 794.5015 null] +2529 0 obj << +/D [2527 0 R /XYZ 85.0394 794.5015 null] >> endobj 886 0 obj << -/D [2519 0 R /XYZ 85.0394 769.5949 null] +/D [2527 0 R /XYZ 85.0394 769.5949 null] >> endobj -2522 0 obj << -/D [2519 0 R /XYZ 85.0394 573.0107 null] +2530 0 obj << +/D [2527 0 R /XYZ 85.0394 573.0107 null] >> endobj 890 0 obj << -/D [2519 0 R /XYZ 85.0394 573.0107 null] +/D [2527 0 R /XYZ 85.0394 573.0107 null] >> endobj -2523 0 obj << -/D [2519 0 R /XYZ 85.0394 538.4209 null] +2531 0 obj << +/D [2527 0 R /XYZ 85.0394 538.4209 null] >> endobj -2524 0 obj << -/D [2519 0 R /XYZ 85.0394 504.6118 null] +2532 0 obj << +/D [2527 0 R /XYZ 85.0394 504.6118 null] >> endobj -2525 0 obj << -/D [2519 0 R /XYZ 85.0394 432.7569 null] +2533 0 obj << +/D [2527 0 R /XYZ 85.0394 432.7569 null] >> endobj -2526 0 obj << -/D [2519 0 R /XYZ 85.0394 303.3232 null] +2534 0 obj << +/D [2527 0 R /XYZ 85.0394 303.3232 null] >> endobj -2518 0 obj << +2526 0 obj << /Font << /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2529 0 obj << -/Length 3735 +2537 0 obj << +/Length 3072 /Filter /FlateDecode >> stream -xÚÍZësÛ6ÿî¿Â3ýPe&bñ ²÷˜sÚ4u§u}±{×›¶h‰¶9‘HE¤ì¤ýíb )Av2÷åÆ3¸x/öñÛä©€?yj²$+Tqj‹41BšÓÅúDœÞAÝ›Émæ¾Ñ|ÜêÕõÉWßéü´HŠLe§×·£±òDä¹<½^þ6{ÈäŒ fßž¿y1W™jvvyùúâÛó_áÛh
„˜ýtvñËÙD»|Q@³7¯¯^üqýÃÉëë°˜ñ‚¥Ð¸’÷'¿ý!N—°îND¢‹Üœ>‡HdQ¨ÓõIjtbR=euruòÏ0à¨Öu2@ŠDéLE8 ä©”IaŒš°ÀI¦•v,¸:ÿéòÇ×´¯_®`S¸'è©F¼§ÀšDY¸.gÔºÿ¸©åŠ>êæ¡]”}Ý6ôÝÞò8r4°$&nœe}™LÚ$Õ©á6«¶}×Ñ«ú]õ5uHÇæR¦Ij€ws™'Öd6Œ>ÏàäþÑUÛ‡jKM¹®¨Ë¯"ÓÏMRX›MÇz¼‡þ2ŸÑü“—‰•2;Í2“(s쀨Í|ÔÈOZDÔ7Âyyå{s*1&OŸœÓ·9˜s²ÙÂ&Fv2gìÎ?÷À(ef’Ú-ýž_RM¹\[:î§~¬¯?¤ö-ÑÞïªíÇRÊ(™.ŠÙõ½Ÿ}Q6Ôö†û»o7÷Czdöš›,Û¾¯–sd#œg*P6¼" lT‹z¢«‰¶gÁÕyáöˆÔ’¿a¾Œ)ãùPs“E»j›ù²ZÕë&žŽ -;³ª˜ýû¾âÖŽ7Ø¢Ûm6«Ú;!4éè\4ŸµR±b°/¬¡!oÌZéÖy·[WMÏêÉ:TÒÏ}Ûõx4/cJ -æÄÈ4û%e¶´«‡ŠçéïKž™% -ä*:‘«Þ›Á—p>¨ -ã95Jm³ú-S9æˆã*ní…± -‹vË6m³$=ÂúmÙ -2€>…ù@ 3êüB†ö"" àjòÌø¥â€8ØázS ç§ýù¡d©“À„ë]×Ó47<sI^fWkg~ÇmS‘(«±¦Sh…›ÒÚpt 3çžìˆØTýc»}GuÓƒ¨”‹Š+]ÀtÐèT$î‹ãJã*¿þÿ»|‡5ÜÀŠ…`Â
H_—©pÃëé63ýÑ»p°â#U”›MEø·'¦Š3~Aœ–MÁ’?¿FŽÂ&6Í}·¬ÃA -9š]P$„€‹)Ú_%óLï9]Ò”t†Æ`UÅÄN%E¹oëUå!ê¾¹g¤„™Û<õŠ†wÂán_Ö/ PéˆPÒO³[ƒ}Â-ºOçàöŠDIQXs錯«ÙP -*–5ÏøºDŽ#œ=©»¡ð
H¼[3ZN:ëîÛÝjIô6ë -êœÏ†Ï "@Ôü˜½×21:÷[›oâ»/ -!÷Q˜9Å,Ã2æÀ™h1v£_Ä@¡T>r -oŽ -šÊ÷±0@Žý¡T;˜¨ÍH´‘Út=˜AúpJï‘“Ò “Sêo/®¨Ày=lËà¿hõ,¢²×ACø‹ìæY[þëÊV“75õ†Ÿ–`¸÷^ó¦ªX¾Áô¡é¹Û
áÛ(.FËï[?9ð -½i3 )ÅÚĬ'¾„”ë§:T[i³4îP…Uf_„¥žqRx÷ª -¼Uªnw«0›[Ê€(ê®îî‡EFÖ‘6
¹‰cË -{WƒH"L’º#bÒÐ9Üb‹®^ƒ? ™DÉöLj²C"TÈÅĽB¯Ì<ŸË -{4‡=éø=Ž¨1xú<
<ý$su‘In‚â<‘ÏTÒúVe{`ƒº\dòÙ!…¯£¯„º$¢ÕF¯zþö ¼3Ùõí`Q®ÜÍ42”®˜ñ%q;܉¢<WÇ× T:ϦxÛ÷½š‹h:Öd–hp%pLu3GÁJÊí¦ŒZ8“˜ÔÚwÝ4ìm¤7LbHžC‘ѬCŸOüê.¯ß!4rYv9\¼W‹¾~¨VþÍa„B -ò+Zîî€srEû -Ù®hxSÌÞ~÷ÌóŒ>ÖUO9õ"¬ÒÞGn ç×ôA³S™!óÐ<v!áT!]^¹èÓÁM{ûXÎÎ^¹GB8U¿
[•7Õª£2BhØp*å» –#£4Ǥ¥°z/¥Ô´Þ½ÒÔ–N<_9~oÆ–©`ˆ×›>öXƒïü5N:v‘/ÂÅêÿü¶wx¹œÚD繊? Ø[“nŒ2ÝV Ybç—Š¾•¯?ô!3àŠÂTúø—S‚>`‘ÙL¦Ùá; -~R|Ȉÿyº„Ôendstream +xÚ¥Zmsã¶þî_¡™|¨<sBˆ‚@ÒéÔwç\œçZûÚt.ù@‰´Ì1EêDÊ®ûë»,(R¢¤f:ž1A`‰]<Ø]ì.Ä'üñI¬™¶ÂN«Xñx²X]D“%Œ}¸àD3D³>ÕÛû‹¯¿“fb™ÕBOîzsÃ'÷Ùçé5ãìfˆ¦ïo>\΄Ž#1½úøñúöýͯðG@Q4ýùêöÓÕO¾ï㥲×w—¿ßÿpq}ß Ó˜G%ùrñù÷h’Ü?\DLZO^à%bÜZ1Y]¨X²XIzÊ‹»‹¿uöFݧ£ +Y“ð{l`qlÔi¶èí`Å6a±´Ém @éà‰%à°«ÞøçÍG?’f™§¡o`ï}¶{ÛÚ÷}Ùæ›×KÎùLMZ;½Üiåiçô½{w¼ŸÕî‘duÛæÙ‘ƒÍ„]UjH0Ô|Q¬PaÕÓªnI}¥±nØ›Ò;ðÓÔÓ燑,ê²®fY^«g…•%ÂNÿù˜µÃ)šíz]@ïT1V½‘°I™ÂNöU¶#¤åyç–:9—ÛU^µd¤dI©<ÖM‹[ófÌTÁ©Ä\é?`ªK]>çħ}L‰3i +¨º³öx¢¶1Ï ¦Q†ÿÈiçïÖù|üj¦¡¶o×ä²jrG)åYWcvÄ:©zÙßL@¬#èÉðQÓ/ïo~¹½;fBJELMkúT!ï<4¡Žjw6÷Yj8
-7§Y¢–}x54ɇ,?5ä>(y@/…‡Ï<Ž +ÇI•÷£n¾ê1¸úSã;«¼}©7O!ÞmÁƒ¥‹¼ÁÓ‚i€“lÑýa“lü{¾ùÿ»Ð?ž^ \`íB:˜ƒâYè_¥¯¾Ë×ø´YC.ÿ[ w²á€?2¢½”x½ÎC”!ǯ<²¼¯¯:biìŸG°OhH€ÞÉu8$xànC +ÔQ9zQ Ë´éªEy,[Ð0K<)V k¯Ú!4„[±Þ¦íâ³[3]ÕY(—c™RÒž«ÑD\%ƒWŠ‡§þQÎñFÖ{|ì¡€
Û!îΛ–>Ãd©©ˆ´ðìÒQGæŽ
h,‹g_18(iI–Á÷`Þg%³xá‰ÐdL<½N8eQ›"T%4„¯Üꃚ^€ëjœîc½-3ß?§>¯‰Ë´*þ“Ó«h¾›£ñY"t½8?®]=畺ç\Ó¡Qx˜3müЮ愓Ô#Û,¼X‰Ï2ceͶñ'„îêL +|ý~L¸d‚9vñ—NWd(È·6í¦‹Êtž—»úS*Ü¿Eq"“(hrÊÍúõíª¦éÒ¶ÍWëöDqˆ
îFœÑŒ>ÕqÍ訜f<
µŸò×1G× +4ïïðvvÐIî7AÁ}#xgÿÖw¦Ip¦ 9S÷½÷dÎ#òéaßK"¸ú6æÁçU¾IÛ<ÔÇ%¸J¹WÀíD×ËŸ¡¢TdŽ‹n‚"Þ§ëeÙb¸-•*Ž¾í㈃ë !âÓÒF%
ѼÁj‰¨p*Û!ßPñtÒ» +¶œ‰EAõiñÂ(Ƶ޳¥*ÏÝùhè ƒçSU¿PcYß4èI±¼ëå²ÞÀWÒñ†VA³Ís4Áš3w¡¢ò]oonß¿ Ÿ†OÂ3s‰Œ›äÕóß]àà¤ã‰‚'Yo +Øï±ðA1¥ãõŒnYdM—ÌVÙØU‘…`/‘go¦"ĺ»ÀjA&,J…ús5r‹IŒµ]©
·8;va¡P’ĶŽù'ŽågüSê„ +TÎ?N.BtÂO³D#,Y–Äzœ²¼®èŽà[å«:\)l›tIÝY>ß.— G1%yÑq8‘Cc}Ö[‡Œsï'ÊšÓBšC¡ö~ ;êÎ]ÄHAù6(s}µ¦þQÕÕt´ÊÒP×Ç^Ÿ¾cËy´þT»+^4b…wÓz_Žä{ä.Ók÷g…xørKC¿p_®w÷ÿÆ€1Çþ×*VvA§¥ ºÐÉø–»}€‘6oZß“úÝvØÞÕ&’Sa^N]”êæ̉ ž0Ëm¯¿ã€©D ¤Röâ
endobj -2528 0 obj << +2536 0 obj << /Type /Page -/Contents 2529 0 R -/Resources 2527 0 R +/Contents 2537 0 R +/Resources 2535 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2517 0 R +/Parent 2515 0 R >> endobj -2530 0 obj << -/D [2528 0 R /XYZ 56.6929 794.5015 null] +2538 0 obj << +/D [2536 0 R /XYZ 56.6929 794.5015 null] >> endobj -2531 0 obj << -/D [2528 0 R /XYZ 56.6929 752.0221 null] +2539 0 obj << +/D [2536 0 R /XYZ 56.6929 752.1413 null] >> endobj -2532 0 obj << -/D [2528 0 R /XYZ 56.6929 467.8664 null] +2540 0 obj << +/D [2536 0 R /XYZ 56.6929 470.7332 null] >> endobj -2527 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F49 1308 0 R /F54 1383 0 R /F11 1509 0 R >> +2535 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F49 1308 0 R /F54 1383 0 R /F64 1435 0 R /F11 1509 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2535 0 obj << -/Length 3224 +2543 0 obj << +/Length 3651 /Filter /FlateDecode >> stream -xÚ¥ÛrÛ¸õÝ_¡·Ê³ ¶“'vÓìl.[;Ûv²y DÈâ˜"µ"¯öë÷ -©áY¤€aS4%˜«-aÙ^s5Õݦm:BœOw]Õ<ZÀmÑtÅ¢¯ZK3R_ô;ûýÊ${¸ÿžü•er£ÕrOïHØdÆS‰ž<Ê¥ŒI0ð¥Ó'm 38ŵ¦EOIj„eøKü±T&ƒ³§1$‘bJXvƒÌ€q%<Ÿþ×èeGECu×ÒRÀFæÔ•Ž]õ®—´H¢J|6]´ëµ}:«fÀ‰†çQÌ€³pΰœ¡ÑKÇñ~ŒcÅ SŽÿNp2 àD¹Çnµ.#‡Å€/O-L*‚of°ßà(ΧíòhÅôŠ†¥^»º'À~¸y;ûp+_P³4byæôÙk}Ž$¯ôšÌ[çi¢ªÎÈ^ÄÆG„“=÷®rJªI2'{Ä1qDxšÄÅ"·Æ°)8Ó®¨iàœOÁ»r0O×|j,Æó¢Ó³4¡=Ý,ÚR—´Óõ[°'ô¿„£ZªEQ×öGÝèmÑã±%Ì÷ôVÙt^Ì€€AGVèÅ‘MÉ4C«|[ì(–M»U»«KÏ5=ûâIÛíç•YO6ûãfÀM{É®|`×t¦{®ÁʪٮÓ[Kß¾ëõº£IÑ0ã¾(yãú!ß«®š×vR5ÖKó<Rùq#ÍfâH¿ÙaÄÎ’éÒÈvM;›%ËQ²tK`UCsF·Òuý—Ž&«ªëÛíž@),¢¥(6ý·‘+¸ C– -¡°ÔìÖscœ®¡îí’ +ö•çUAs±²,ñÈ¥^ô4'“„¥ç¾lV•{©nÛ§ÝÆ‘@…‹RÛecÉÜ•„°b,g
>–¹o•U·©‹=Y4ıû3_,1&L¬ëìR§{»·¥=‹Ã-C„Å#ç•1‘GÂQ&¢‚½•¶×q^QVé<þR÷z»¦ZGä/Aºqöt*—Ž½ªÏg -˜Äz€[5½._Yo£(À¦-œ±µ&¢—ÌÅTkÝîú£7I½a¦IÁA¡<Màg9ZÐtWj³ƒÕ(ŸŒpÙ„X˃ ŒÛ8Ø™[肦à÷ÏAnÕO6«º<óƦÞÙÃmÁ3S~80ØC¤Rå¢öcŽåYæ¢å}pÔÜ™W!…a#sáÖŠøЊP›,#•¤ÉPŸ¾úŽs‰õŽ±M–€+ ŸLšŒG’À=í.a -ž±R4ˆ0.4íX¬…bÞL¶³ýˆÛoñ -pˆ /ù‰-X”drÔ,¬ïÚù·“¶ŸEL*èÖsIÅã÷hB™.=ÉGºte¸üڴߊbYǸ¹dQ–Çê2ruŠý¨Ž•1>Dc£Ï¾i›ýš& ž‘6$…Ê@úÜlÉn›z¬ŠH•ôíbtV¨)¤WË„@]ªƒ¡n\¨—B=Æ~F¨!ú{íªŸ~ã¤(ð¿»¼G¥Ð˜L—š´s¢2Je’½ º -,à™PrV«þ¬Ö°ñ’«ËZ¡ÎkÍCZ»E."?ü öqƒ ¿ÇDÌ!máÀh£¿ÑÈh -7·ôÄÂw´T}A+Î ¤zÈàˆÐC ýÅ <Tn‘n 뻣·\WhÛ¼ßmm ‘ÈHÅŠSÅóJÛôãMZXlËÈØ™ î¸ÂÑŒK‚B±QÜÓzP‰ÂŒ’££Sñ6À´Ù0‚¼W@L-ÓMB ;_Ñãúba³=HQK '®ëŽáKÔm
íFµØ‡\©WVjPpG ¿×œ¶ª¦Ä~_wîSŸ„2²UPÎ
¸>ì -™â~ÕA²/•ï9'ï…'w$93á -"«žÄª' Õ“\VÏ#ŽŸ/«'€º åÕ3‡t¯—йôg+Ö‹*Ö -Æ+Ö 7}¯×P“`R&µ½/-4ÊtšÚ4«kÝuţɣ0sW -‡w·ï™=¾û‰¤òßFÞŒÝ{DI%€ù¾Ç+ÙÜÅS ³ø½ZïÖ4±—ø˜?%^ƒäC‹XW…ÍrÃBGCcš™ÿ:£¿Yx¯“TBÃo×MF÷µãÏwĘ<›þ‚ÃíÝ“Áºë»ªÔÔŠ™‚?$Òl€˜ -º]ƒwv#%Ôn3ÌÿeûÜŒ~1¦¦]îž×å¾Âžð‡¦hö\¹zbQì:=HwôkßÛÜ\»üÙœŸ<f‘ÌòÂguÁ×”Ÿ‹ËãE䇲ãûxÙ1@OΦ¸MkÊÕê0 ÖGöW
|úö–žØ:.Vzñdªa¢m1¯ui¿w -UÄŠÓýJxÊ {L £±e4l
»ÇXŇ·ü7E<ª½Ð-úغÑ[sÕi&`÷woeüI±4ø]ÌYSȲ(ÎÒ,! +xÚ]sã¶ñÝ¿Bo•''_$ÁëäÁ™snœ¶>çì´é\î)‰s©)ûÔ_ß],@‘$%ÓŽg,Xb?°ß Ÿ0øãL&j'*'óõ›,aíý·034ëCýøtõýORO’ ‰D4yZôöÒÓšOž²OÓ›‡‡Ûûww¿]ÏDȦ·Áõ,dlú›û_oþNs׉˜Þ¼¿}„Ç(d€8‚Elúîîýõ租¯nŸ:bús&‘’¯WŸ>³Itÿ|Å™èpò +,àI"&ë+Ê TRº™òêñê—nÃÞªyÕ' +‘æø 0ó;Ùì
¿ a“74t´4Èð,…š6yKë~§ÃA—˜ŒåÈ4½‹cí€jŸF€û
•3ñâÛbûýg' î7 +“ˆ4RY{dV6|pz0ÿZ”%ÍÏk€6fbù¤ÙUZ-óÆš¸*-!Ìcf#ߺH`±Â¨ªòÑj“o‹Ôºùj·~vŽ×ÅŽÁ6±±áñÃ
Žœ
̽¦çxÀ{ALŽ…•—O¢aÄqÔ ô„¯$„Ù0ŠÎ;û>ÔioßAÛ£L$ôèJäAÙg’,Ç#”Û¢jGr~É·
9˜Ñ‰¤•pþhO‹‡ñ@ðäBÊÓ‡:#ÕwÔ‡1ä<öÌÒ,Û‡Ã$ˆ%¤qg ë <”
¢ +bÁÂ!iÅÜïïŒ ãëôÁË’‹ÕÚºØ]IMõ–¦×éfCŽ^2ä›Úä
Mc8Ìa ý˜)!Œ{rˆ# XíHÇî'î\Ta‘ +Hî^Ô%4ÖhŒ_JÈš¢D½iV·àågøõµ±ešS·)*äX‰©a¦ÑÙËüLYWðBY¬ +°ø#uÀQ‰ÅÎû+v"ŒJWZˆqT*•ô¹W&ÏÌ,‘&íC´´b €Øª¶,å@)‰ò"-b>ôæ° ZÙP2ùR K„âDÀˆ ^(y!I•A™²@o<»€WÓ̱=/Ó¦ñÅ +ŽÆïp¡!{â—F¿p!zëOšŽs㑇"eɲbé;”(H¤t¤»ê†Ò–²Ü[iæ[0—uC¢Li’̉ÆƘzkN”ÃÈ8ˆ$–2ýc*‹/ÞDLƒit +Ö$, +çvqS8¬Šçç2§e<™´µ U†¡‡†c\¿{ˆ‚›T²Ó’«qŒYØó®%Ð&·èÓ²©iÊoêlxœ³Âoê +ªðAÊŒ¹ÞÉ°bÖÅby>lõ¡N‡Ê·÷Wêò 2ŸVëtþöó—|ªû¶ÉçÛ¼*ðÌ£ó„: ¡3†0 XPúX,‹•FO‚À)Ú“Çù§Ç»÷4ùZ´+š#冩%è¡}¬Ü5Z±-U`¸;èèQ½Õ%ÎÍYAxŽUU†‰>xp£ï +¸¹™9é жû Elª +œ±KqGø8SŽÑÔ_±kŽgìd±4ïG—ªç´É#E“y5¯3ca°Ð¬¬ñe´ˆû›çÖ'*AO´jŽÏOÇ¥>E‹“ˆ¶éjÓ Š!ˆ¹e÷('ÈÀO”Ëzg¿þ+&2IW“ÃÒ|UsÊ[þÄãfᙎâ³uú;†ËâaìSÄ]jÅû;0¹/³—(4ñg·‚ªÏ³Y1„µ?½YýŸ6³'}¬´zy@àËÅ7¶Ñµõ85< Ø5äâ"ù¶—w·ð).$ΪkbœÒÛ~OÎ5!“´¥"6(Ë~3*Zê z¸’ÄäªÝ ļ7†ìš¡°uiNåÓý‡§Û·Ôèù7†¸zGͪޕ™í + >Ì°Ù'ÒÑ5ûr¢ÿ÷`OJpðRÙ9< ¨QÔen.(yÐÄ4o\WgžvŒßïÁ +ÂÖu¬ñ¡!¡®«Ã†|5TX“Aƒt“)ëÁ+>Û‰‘$peO+t–0Ç„U„ÿú#‘Ú9‚ªöù +$IwEB]5ò%ÝmÀöЖ§•+0kôÕP%*ÎôDdùú`¯ú +C‚~›îŽ4]çt½)s_Š,!¿r¹ÇwóÌ—[ò@ñîæÔ!Äk”ɾ™ÍCF}ëA¢FáÈËϳE™.ÿÈu
Ýzçýûpr]L뮟ó·§Úˆˆ”ŒÏ·-úP¦ OÛ¢ƒ2L~ªêÏiê˜tÔCLY…>¼ƒ:Æ>4îJˆXñ!z{½Ó쫺ÚÛ[ù…«V†]Ô˜ì:¤–ìº*÷'«•ðÒ
0uI¦ 3"µ@Òü=ƒ¹'Ðêòìá~¤^d?ºâ%ušâÿ.™¤ŒÂw÷Ö¿?!4®£@ÆìBuZlÔAnYV Y¤å‘ìb(,™¼@@uLÁ(-MÀ;ªpHÂ;JÝ0oŠ¦Ÿ²šT—ÂÀfvŸñÉåþ0Ý£Ù<ÛdŠLlB ú!3ß”‡O"Xb½"èª[e?5€_ŸÅNN)Âk,=ꄹãJ‚¶è_®ô¡ÎœšƒêÚYÿqùAÝ°ûõ}€þSñÝœÌiá +¹b¾ïs¥\Y©A)cEÂùýÀiÉ}òÒ¸WLæ×—Ñð‹#®O0«ûÌq=~õA²— +£„“õÂ/9ôº •ù0 Å5–Ú³¿>ÑÄ?ÀÀû_i¸ev³Ã> wÌ&]is›tkñ)&öj}ª^ÓÆíØ;LÏA¹¶Dדë¤tôŸ±•þ}« ]oºµÓŸ„„ôü‡ÌiÇdan©<Ž"R¼ˆÅÙÁŒ‘ŽŠ•’E>Àúè8wâs]&Ìðʲû¶Ñ™.{>8´,A6‰ß zÈd]'çþÔõð!/¤fRkáçX2H™pGrÌUÊ…’¾µ3<Ávì…ìö[›W™ëW=Ò—zôðOãHé;× ëK!”:µˆ=bø/»%endstream endobj -2534 0 obj << +2542 0 obj << /Type /Page -/Contents 2535 0 R -/Resources 2533 0 R +/Contents 2543 0 R +/Resources 2541 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2517 0 R +/Parent 2515 0 R >> endobj -2536 0 obj << -/D [2534 0 R /XYZ 85.0394 794.5015 null] +2544 0 obj << +/D [2542 0 R /XYZ 85.0394 794.5015 null] >> endobj -2537 0 obj << -/D [2534 0 R /XYZ 85.0394 626.0593 null] +2545 0 obj << +/D [2542 0 R /XYZ 85.0394 385.1749 null] >> endobj -2533 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F54 1383 0 R /F49 1308 0 R >> +2541 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F54 1383 0 R /F42 1288 0 R /F49 1308 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2540 0 obj << -/Length 3155 +2548 0 obj << +/Length 2975 /Filter /FlateDecode >> stream -xÚ¥]sÛ6òÝ¿B3÷BÏÕñŇ<$µ“qÛK|±›ëLšZ‚,N$R©¸¾_»X -þõæïo~¡¹»ËÀÞßÜ_~}øéâæÁ3Óe˜E9ùãâË×h±¾ºˆB‘¥jñ/QȲŒ/vR‰PI!ÜÌöâþâßagÕ|:& -ÅôÏ/eõu¹[n—E q&âE瀲‡’æ¼CšEY(3yBûe]==mu -’A³Ñ8ÁþP”MQ>Ñtµî-Ë (‹¦¸dA¾¥÷eµÛé²q‹'Ȫc³?ºÅÀëÛC}ׇº¨JOä›`Mˆ8E„ -3ܯŠ'ÔÛiª„9˜¼4‚E2ÐQca¦7‹Dlî£>¼Ð°Ú7ÀDM/Í&oh´É¿[ØGKåûý¶Ð+°aÁ¢àaSدZaÀ‹›4Õ+‹Ã[éu~Ü6áÀÔ=%°Á³ìŒÑu fŒÎAµFG|ÖËS—èë³ä=Ô~_"EÊÓ>å9IÛÁª¨÷ÛÜ)c="ÑmQj+Ô¢<ùš,ÍkD÷ÄÜWHSuÓ#SOê#Nã0Ky2¯.Ô´><”×°Yæ;=POCÉE6OÝC
ÉŸ¨C€ÚÀzô¯õþpÉÒ@/s0Ò¬„h*÷f›[Ñåô¨_ʪ|ÙÑ˺:3*Ù¥›rçŒf—µÎËͤ„Q<B©3î@ÍHØAµ.ëZ/‡æ¡”±˜'Ôûæ (BMü'
1¦_»b™ -®?ÜßßüHc+÷Ê<WàQÓ³6Vof^ÜLCq_ŒÝŸ"üø³ý¢°Ÿþ©èú#üÏ轆eqÐ@ -ž‹fƒ™—ÁgÌNòm±¢•ïùöH)‡ -òVÔ*ˆºÈd -î#ÆrZ[R&ô -+9=îo>]‚~~w™ÈàÍí/!M?8ô>‘F$¨,ÃÅ[‰c+%¶Œ@ö™&ØPè¾ãÕIJMa¶—©»œØF“Òý¬¢¬;Ÿv4ÇÇ.8ù£†:®€Ü¶7i<ãAIÎ$ù]¨iãñPÞx\ý;!gÉ·r@<Bö¸ßTÏt~©Ð4 Î^U4Aʃ‰`¾ÒœÍ0Dp{GkáY™Ö´`OKì«CcM0°r‡õHµr1 ,k<»¦Câó‹m¡äÄ) -1JÉXúCtƒ|Œd Œ¹çŽNDkŒžtÜc-sÜ®i–ð™!Ô7;Óö;àM¢oŠ(‘ºX©DÇw:dI츽Š¤Ê0‰êÈÚèç -uu¤”¤M¾[Õ˜‰Òm¤ã%V5£ùx×Û¶‡Ío¾ƒÕ®NÓ}Òݬ'EYÈUz&ïBÍx’ƒj=é Ü^Os³ÄÛbn@}¼˜ë‘¿EÊ.
ˆL¡œÇjgcW,˨:‚¥_¯ïhÂjg_•µI%"ì^€ä+Z7 -‰\ЂJéC™¼„`~¼»d<›…·/4m-«vìz -71¸tí3й;N·Uõí¸?×&Œ,M!&e¼M»j:‘m žòUØ´qÆJœiót¡fÌÈAy3ÚÁ† -lìHF¡H26OßC
èÛ8”ˆ#ÙçàŽú‰’§ÃÖNn‹ošFÆÎppÿñ
’ñ0”à3§DéǪ¶_š^™šwôÞÜR§¸£Íq——WdB$qt’€YÃ[QÉ>Ôi…^%±"sÁyo.ø‚§˜Œ¨?ﶕŠSdv8yÒP2s%*§W×ÁÀ)ÜD2)2v/A›MÞXà¶Ê…õ6²‡ÅÖ]ý3nØ• -4u—›©´ÍN¤Rg×}Ò…;{Y¨œ3L¶E -QÙ²»‡éãá¨|‡h®óÚ":i¼ZfG¯<LÛô௖éïºÆR±Á Ç$è<â}‰OwI¥i{œmi2\³dÂÏõˆºPÓáÚCù£Ådh–tÛ#Ðïõˆß–ËíqåK4û3ß`3ñtPïÝ^w&¦~uÍw×
¹òkþ—¯pXÌÂ4Îœ‰]¨!;¨ŽÇ/}!0K¾-ôÇË…ÿ¡ÎÈlB8Œ|cٰΰ…Ù0ûÀÓŠË3éG²È9VÞ@Œß79ŸàiNŠ•cDÓ ?6›ê€5ø`ŠO¡â-:÷ì·&‚³T…k[´äxÿ0Ãä2swPÞ(ÂÁ‚5-‰h¿Š5‡‰t0}ÜÓÓw&Ú«~˜õxL2ÜZc›8”ëLغ¦G¸kÓ›¼‹Ù¾.ò}ÜÚ´ýFIs!ÎØojÆ~”·_ \Wùdc–xÛÁPï`ôÈß¹=`.¾}q##n.Œá >`!J×Ƹl3Ìèñ)˜ë!X`6±àÍoï>…l‹OÖ->™
ÚÌöü¹&¦;U³9mbY¦OZ`ÝØ5a^3¿ù€"³s¿Gp0s¿F00^ùN)¹¨Ä,AqJï$ÇŽo"ºïÚ߸|YU®gÞt~ +xÚ¥ËrÜ6ò®¯PÕ^FµMàëàƒlÉ)%^[)©rtà1Ër2äHQ¾~»Ñ +æR]ÚPÎÞ} +ÓóÌËâ >ØZg¥žŸ¦ìü¡ø¶ºñ˜w'ø«ëÛ/.ƒ8òƒÕÕÝÝÍ—ëÛÿÀ<ò +x¬½ÀO‚i61/a€Î¼ ã¡aϦؤ¡MÿüV7yݾŠÃðÆ,<ÎãðÜ>v„Ü@±…‰Çƒ$qÑ_—í¾Ê߈÷ߊ†uÓÑ íGšuÏ‚Š^9nŦ+›š&ÍVÐãpÁÒ•ØWoŒ±H;dþêAŸRˆm~¬¦²U8³Ú켑:(žÃžï3vB0Ô‚`4T/˜c÷ÜÊîm$Z“dl¿àʆG^ûÜ¥ —
ײáZ6Ü‘
ײAO²œöâ 3'ñð)ñø‰·ÅÕx¸·ÅÃŧ¾—øé²t, yáh #›µh;±Ý6‡n,œØ£8YÄn€Fè]Ñ +n·J†GJ2°ÑK& ¸>Ü"ó’ÜØ%¨PE¤´›1hš¶U·ó²SGY|B˜Ô‚45”çú¸mË¿Äû#I²Øãqš.ã6PcäÈ`×g.ö{!y“h÷–¬~½¾£’M€HΖ_²BŠq¯òâEº²%F&«c[ÖO4¼¹þrï«ã¼Ý»O·H +âCf +™9û©—žb=Ìw ¦çmÝB;›Ë, í3™Þé<ÆBü‹IX™Pc7æ( +dY±—daìšå&*¯¦Þ…Ùð©ž7*.yÙ¨,¨£ÒPƵ +ðßÞÿãq6XDߧ#üÓi„CÀ=êäVf‘ö3‘)¬¹•Sâ~CO“íEPžwϘ-\÷eA;/¦Î¬ÖL|û0¾‚±< BëÖåÅéQÁ%$)$¯ŽH
hqÔ,@•TÍi†´BwÂE>¥“€Íµ‚5Í‚Ì÷|ž2xuƒB›r‘—Æcl*PÐV¡’®'՛ؕ u'®JœãúÞ‡ÎÇZѹ‰™ÿ÷rå ã +Nh6Ô¼’(£äÛ¼¬Æõ¯5–Q¨1nWÁe#.ˆ\ä×(ažPÅ‹ƒNÊž§J ¸%þT{ºcé‰àùÖ ^yTAvrzÜßürzúÛ§‹„¯®n?{´ü 7É3‚Â’TÌ•h²R"‹ZŒ¡—&Aæ*€iœÈZÛvvî–ç¨RÂÍ*êæ°3iGw\;Íúðµ€Ú„Ü®7¯<*“S…–
µ <Ê(®yg=ä"úÞCŽðO{H‡€ûçæ•â÷7ìv†P[
-ð`¡˜GZSF¸º½£=ÈðO[ÚPÑ’¯öøM…:Jg Èõ©GªƒùªÿŠ9ã©cF|&Š‚ŠxÌM}Vßv†p#cÚåéЉÇJ%†'…{¬ßã€n·´JçÉ!õép¤>z¨‰8±zƒ²p +Sí+£Ð²-±¯§ú…)÷²0‰ö!åæ˜BÛ)%é“ï^4ôiFj$i%J4“ù¸mƒ}«Cå7/e¡ë¾áÝ%Kb1#w¿hI6Ô¼%¨Þ’žÀìÅl·ˆ¼/äFاK9ý-bÖi€/‹ãtu¬7ªa˲Œª#Ø’†pÁéÜÒ^YƒžäíKøÚi¥ôÁ÷e^B0ï.XaS7>¼Ñ²Ò,¬Ô±ÓññÎ=©íB—Û©£êG‹ùÖ'cþ¼!:!RjA¤Êˆô»ûf/êY縈¾wŽ#üÓÎÑ!àgÀ½"Õ…YH¬Ä•¶Ù|—õŒ%}r{-ºWA.31ä´œ_b.åo°^ª39}-BúZ„«Ýc¡RÏ¡G-^|$ \ú¢R·`ä@ä:œVMóý¸?Õ'Œ,MÁ'eAŸ0Úbð6†/2UØüo0/HN}«²€~¡€Œíà6%ö瀱€ÜúýÅ endobj -2539 0 obj << +2547 0 obj << /Type /Page -/Contents 2540 0 R -/Resources 2538 0 R +/Contents 2548 0 R +/Resources 2546 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2517 0 R +/Parent 2550 0 R >> endobj -2541 0 obj << -/D [2539 0 R /XYZ 56.6929 794.5015 null] +2549 0 obj << +/D [2547 0 R /XYZ 56.6929 794.5015 null] >> endobj -2538 0 obj << -/Font << /F38 1082 0 R /F49 1308 0 R /F22 997 0 R /F21 994 0 R /F54 1383 0 R /F42 1288 0 R >> +2546 0 obj << +/Font << /F38 1082 0 R /F49 1308 0 R /F22 997 0 R /F54 1383 0 R /F21 994 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2544 0 obj << -/Length 3246 +2553 0 obj << +/Length 3210 /Filter /FlateDecode >> stream -xÚ¥ZK“Û¸¾Ï¯ÐmåÚC¼øHÕf=³Ž7‰k²3Ž7åõ¡Ë)‹ÔŒ'¿>Ýh -™š¶WáìúÞ\1K³pD‹>Õ/WùU$³4H#ÍÖ½¹’ L6{È?ίïînßݼýãÕ‚«p~¼Z¨0œÿóúÝûëPÛÝ«”ϯßÜÞC5R!"†dQ8¿yûæÕ§‡ß®nübúf¡À•|¹úø)œå°îß®Â@¤‰š=C%XšòÙöJ*()„k)¯î¯þå'ìõš¡c* —Ñl¡d ”ãb -ƒPÁ¶±NJNL2“£B1ýø±ª?}9è¦-êêxÏ,âA,“YÞîŽè”;ç=î,Šƒ˜§bÈþn_T-Ê_Ì?æ5ªÚ¶ì°ó–ù¼Ýhjôk5µF¯ºJ½¦oæ)÷/T|ÞèŠæÉ,mV5ÏzO墡ïþKæº=ì+„LçÀ„ò‡Õ'pXÆ‚T)Z}®×Ù¡l Nfø¶5}wvkØd…Þâ¡Ö-*™žÑgUo·ºjƒÚ³ŽÒ(ˆ•ˆ§Ñ§:Oå±×«Ã¾Ñ'xP@‡rš»§:e„½,òÀ[Y?>– 2‘0’H8H«}Õ¢z¤:žv€Í¿¡ïŸ¡ -é(qFÀHŸë¦ æ(Ñ.‹– -EuÄŽÐÛ`7 -=ž0¦1ا:AOÕY½µBÍ cÄ¡¸° -Ô´ŠèQM¨GÕ™Œ6É -8Ÿg’wç0÷ŒÜ)ËEâ3xP¤•[“2°46”ÛCFé×ôÅ]@PR¬š¿RNÄY¡£Á=NÏ™y›å˜à’utMñ_íÀRðñã<¿mtÕvå‹sÃìõl쵬«I°-õ&{*¢¾ñùÁ%=»ŸEG¿)’bA}ªóòTAíjwÖÈLrîŒÌ ëq#3àm¢xáœ9|â¡Ü‰rQ<–^ßQ]GáDGo8ÆDTÂ8{˜ÉDÇ$ -S›¥‘i/K38(a -IŒ!¶TÀ”)E»°ðTq>-6çõbsÆ¡øºÞÿün<
®R¥ÁaÒÂNN¨4/U:Gˆ'6*ˆ…´ -+ëº,ëç>“µÞï³Ò¾õŽÐÓÞ‘‘=h| -»æ3zn™#Ïhý¤jÇk:ó™A÷NÉZ’g÷W îUÄ°Œ®=ŠÅpzœ¡{6±† Ç[¬Æ=ÃTyÏЇ™¥GÌ¿\†Aªý³Å -}ý„Ç#’ø7)^endstream +xÚ¥Z[wÛÆ~ׯà[ ãÙ+°xȃ)®ÓVU-¹Nã„Dƒ +Vv몬ó
웪 ÛØý¬êª86™ÆÂbÉT2FQà4L¤dzæ-7 2ÊÓcј—ç´8Úþ¼6O+9Mù;!¬ÔlàõXç 5„³!³ß•VèЬ›´ÉvYi¿w‚=‘)2À•ÝðY³þáÁžCØÛ㘀d êDø=ÌD å<¨e… +ÆBÁÈ +ÄG³|=Ñ ã¾¥<T4é1~W®‹ã&3ûNKëü¯oïMKR+“ó>;Ð~wmžFÑ_YݘŽ—mV:òrã}ij@xx½¤”ÓÒE§™ðøŒx;T3òuT·@è 9ba,Ô<wGtʽ/ä(cn°Çþ£§hˆµå†VµoòÊöº>@Þ÷#á†+”Ågâ
p¿„9ï–6`Û÷Wû%xj±q+ÉL#=6Ûê7Ö®a—Ñ»YêÝNcüýV[nŠÒ¦LõMܪa#t€
cÙ`À"Z«ÌUõE[8è>îÍÓØUÜäõ¾H_M¯ŸçþW]0®+ýÜ8ªÔ"3K×Û!ã.¤·`ã{¶šµ¾]74pk“ð•€*‡o—j¾žÊÃ8×Uz^IÂ8
Ì2÷T§Üû ’2ŒcAûìï¹ö»’UY +$ƒzdÓþH>úЀ*¡M
Õ
=Õ
|âl
öÙä¼³( ÖÑàê·_Þ‡†øÁˆŸ¶á¾{M5º‘j¯—©q)d¨˜U«J]uºE;h±Öµ^«§Q +a?øÄk +Œˆµq“b¬4ÞßuY£% ÁûkóDïhlÂ}@¿Éj›+mŒÏDÚ•.%@#/ìºáóvL‡½lGë/ðÑêÕžA0êDÆ£gstŠ9×1R’»ÎøH +)X˳e¯„E®`P‚cO2$‰Î +p…Ä;S”‡I¦½Á<«1—*xß±&ˆ X…4´É×fV‚À0]ÙÆF¤4 +#Âx?"m3Ÿ1÷Nœ#P¸+Ö½éf +ƒý–˜RÉ mî‘Ѓz1½ié:O›9„Y–¬ãâLfàŒš/OÀ˱žqt-d ó°C4}þ‘^þ!k¯?>LÖçض5Ä!ßñb—ñ}¦+4Ül¸""¶µÇÂÁÜ”`¸¹7-Nxýp}g`}bŸ˜¾‘Ú¢€zá4þ0¢I²ØçeÝdéf°H·ƒN|ÃeÀÐUÂIþ€•º"ÿ2†L@=á$ÿ ¨ÂŒ J"ød[3 w.vSeà +/{8±µi okÓÌD‚Ø©a…ºæ +üÜ!ßlt)û_Çb%B%}™ÝÜ Ž¹™$„“àCÁ¬É°‚“ÕfjsÁ#Ú:!—,dbp¿c+qÌ]™®×Š=µ`æÂtŽƒ;èÑ .÷ÌVq b¾µã°Í`-K`†{@€îܲȞÁmÔ +t¶>eVÒã7il¨Â»ê„Í›.Õ´±ñT±ÙV‡æÄÖPÑÎòöT§ÌwàVàxö¹ß8?çþÆÀ
Ù¡öwº8‹`xîþtÆïë:é1$¯*Ç•3 +1$^ìÿÏi˜/-…büodá0÷ÿU°ý#¤ˆ!SRA'ø÷„ºE¡”)FÒ"’<øéÝýŸ|*§9In¾5YÚûã~á˜~ù—®‘dºn©ƒòüÿOÅð_š/4endstream endobj -2543 0 obj << +2552 0 obj << /Type /Page -/Contents 2544 0 R -/Resources 2542 0 R +/Contents 2553 0 R +/Resources 2551 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2517 0 R +/Parent 2550 0 R >> endobj -2545 0 obj << -/D [2543 0 R /XYZ 85.0394 794.5015 null] +2554 0 obj << +/D [2552 0 R /XYZ 85.0394 794.5015 null] >> endobj -2542 0 obj << -/Font << /F38 1082 0 R /F49 1308 0 R /F22 997 0 R /F21 994 0 R /F54 1383 0 R /F42 1288 0 R >> +2551 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F49 1308 0 R /F54 1383 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2548 0 obj << -/Length 3034 +2557 0 obj << +/Length 3172 /Filter /FlateDecode >> stream -xÚ¥ZmoÛFþî_!à8‰6ûÆ·ýàÄNª^⺱}¸"ÉŠ\ÙD(R);îáþûÍììR¤DÛ9´EËåìpwvæ™·•Å„ÿb„,Ld2‰Í.‚I¶:ⓘ{w$ÏÌ3Íú\¯¯Ž^½Uñ$aI(ÃÉÕ²·VÌx‹ÉUþizÆ;†øôtþîx&ÀËéÉÅÅÙùéüßðp`ΧNίOÞíâ8¶wg—Ç_®~=:»ê„é,¸BI¾}úÂ'9Èýëg*‰ƒÉ=¼p&’DNVG:P,ÐJyJytyô{·`oÖ~:¦ -*©:5édLMžÕô¢Ý¦ùùjÿ¸‚ƒÆ… -'ý5v–²·µà Ó‰ÞÛûÒ´
h= §í¡Aµ]-̆ÆõÒM+ãùj÷Ü<Ðàúô‚߶2dkÌæί48â«·îÉ%Á‰ -¦UkEàÐRó—î$¢w’H0pŽÐ$/nFN+"Æ‘t<÷EYÒe]¥M–pC…“:ðú|eÚìUfþÛLJ€†wsð´jÌT’© ñ+?¿h"™æ‘èBÉOnâg[k‡™³X¬@'<³Xå,”΂m
qU1µÆGˆ%Ž³ñÞmœÕ«5„‡M;šbÞóB©¦¢XOÂ@‚ŒÕ~ §J–Äq<žQgÝŠ³þ’‡+aV… -;Ù”¸$Øà.+¨@‹uéÛ•Å(@EDòL €1V \¢b¦Ñgð æyáR‰¾¢KþÔgÑùW¶FQ\{ùÈH¿5#YOpÁ`Ÿöf˱sƒ½¢Äëf‘¶X“àX‹)ž_ë5Jbc˧#áªÜYdiokë•@êt‚ô,uÒ/ÌNú²@(#•RÒmÙbW¼¯§i»=HA†9¦û€¬*½i\µM¢:8“îa`=À°—#ª‡Ð( -5j‹qePÒáÊ*œ<ó¡ÓGtÎÞåiŸCE+(SxìM{³]Q… -4œýÈKLV2xî$C׎hkuÕ5ûn©Œ`ˆóMM_øe¼3cŽáÆëƇ“z`Ñ·‚â¢.]Gƒdç™É
M(`ã҆؀º]—ŽNQHZÐ „&sº1ZÛƒž–p¢‡=x#Hrù¨ˆpÜÙ°¼.µv9À·@èå€Àub°V<=±Ð†Î¾0ïÍ©uf@ÇŒa¾gfÝÒäxÈ—q¸º_d«|¬þ€ò4=ã.¼;‘Swˆ…;„ƒÍ¦Èsj¯ éQ “¶îkaá$í¡{Öu”™sÓo@ÆB³-XÞvW,ßSÌö?œì ‹uwÙ}r>}ñmCƒûû{V4«7nÆz4fßé) à€¦› z0£úírUým3^®ô·G»GƒAµ£‘b$PŒs?Û?GÊ·´™s]XÒžt5£%U†+zs
jqðâÒ -7íàá+ -ë’çqþAkUÑöä<ÞÅ] ·ô\¥¹ã$[ÁÀ¸â3vÆÇš4ÖÔ,àÅ0F›j¸$;aÀ ¤Ëa:ºMm©gѲÎ(Ûî¯t§r;½p¶Gõ—|¬ÅÎC|Ž§4iåäxLÝ€hÏÅpÏpx÷KÒ]ì
‚ßÆÐ ³Àޑݽ֘WMýÕ ¹]“N¥ŽXí·¬ÝÕzÓáE¯Ù<t'€•Ö\þßÞ4ÖB.d2ÆÈÓoHç§ç$ÀåõÅÅoƒ`ô‚½^t>Ö]&LÈç㹊orB›†BÚ+cŒ/Û¢l)åº;= ’˜.ùƒÙìU„m‹?©Ú§y½J—¬±öñ9<ôMâKz³„g—ÙÓÌá´«Nòî¢ -¨U]¹¾T†,|¯ë:¹|3ŸS{æ…ðXÃÆúpá󜮒{ŒC4¢¨M[S>ÐvЇ@üo]I–ݦ›4k͆&M•Õy×SYx(¡ïH—H÷}—ý”‚…äy£½ÎèLœÁWì<ln
c¼Ë'B÷ËŒk÷têAÄô†HƒõÖö7xíåu\Û:,îÖ„üË('Úë{˜x¨·ÿȉ¹,lrïD‚çvSh–]VMÌPdBÌX}K¡W -H Ô”I'rÚÔ•mÀàtÆÆ]Û÷ç#—P ðHúÔ„{ï_Zs7úÉD„!ƒ úë—Ö~ÅYIºÝdDè…%Ôr»íåíüòäõû³± -Å1€jj/âúö~JôÅö}÷ËÈ0§@]&ä³ñK+í-f@«šGÂ-hëh/ܾ¿÷w}ú‰øjñÙ˜¦.ï¸ørì’¿ÿç—ß>œý÷Q7ÙcA †?ûÜ9óNÜ¿ü×»¿Ðàc9~½'ÂÝe‚U€E³é®\!ÌŸ}oÍî§ÞK|ù—½(€Â·kÕ +xÚ¥ZmsÛ6þî_¡™û"O"/|Cg:sníæܦ™´vîz“æER6'©ˆ”÷×ß. +ÈÞÜÜ]~ºÿéâæÞ Ó˜3‰’|¹øø‰-2û§æI‹#|0+%Û?^àKi{Ê‹»‹_Ý‚½Q=uN~{ðCP…ðb)N¨‰{ç@ùÜCå´ä«9-"TÒ«Uý©i“¶oÖóü0Ž½5'ŒÑ„³=Î\pχ㰾,P¹Œ—_ùþ™šõ®-êŠÚmýðP憦}Ì©±ÛU[T†~C¿¸…¢i‹´ùör%™¿<=_V£É=NÇĬ¼M²ü54}ÞÑ5ÅŸ¹c +ÑEÁ?4·G»Ã¤¢§ŸcQ–}Ü8[Âdâ?»½¢£ÞÖ£½Z'MQÙíÊ"ÏN[-86¦äFÛ±YCÔ9Ûz—ÕÇjâp¨JHu–µ#šðZ®”žÏàTúÌÿ£ý§ +tñB4ïS¶/GÕØ>Ió“`ð,ï
N˜ÏÃÁ÷{ÞògQÑ¡0B}/uç£Íò2H,"Á.ÁCÆ‘6˜z;˜’C¨5B€nö¡e¾™«C;P;>!ÝÿÓ`°¬ëÏhr’GËÃ3.qSà‹ìF`Dc$+šd]Zúõ³é%'¬'sç°¿["¯ô +¯ßä}hÀ"H¬Ë7·f|1ä1 +ò¡$Ég…7Gÿšà§äû1Þ¿ä
q,^ä«:Ö.Ô‡i¤ïAø˜AµöÞ²×ÒÚðŸ9âë‘å:Ý÷ÀlÛ™¯» +6¢ï|ÆÒàDÊ¥J?³åŽRÈ +ˆßgw.‰ä7˜p™Rµ2'KÐ e;tb¶4˜™D)mkð«œóåè4hÒ(¥Ò†güeOÂWd.þBÂEôÿvöäV\õ—œÞX€ÊC0Gö—²' Ip©‚pŸê´ÃrT]öÔB +{2{:˻˞&Ì糧÷ë¢Ù•‰ñçº"ª£Aí¬CE‹ûû·cÕ«¯OŸs'µ+„¼¿ðLѧ:]Gå´û”ž¨×ekëu®óõº[*2û®ÈlTŠ
Sdö]‘Ùj³‹~‘ÙÂbluEæ fæ û“i¥¨&{†˜ò•Ú³˜Gúº¦g½d¿?X‹Pâ/a§Âý×Iúù˜Ðé7Ÿ€4q]”Ek=Îð‘ã!ü§ÿïž**;Û¬‰Š}ë NJþ)=-Žu)„uƒ^ÂS,Ä›x‚*üòá-ðûÛ÷ooh_?ÜüvKoy#½0Zë¢ô¥ë ñòûÛw×ØRKEÅvWæ[ð³¦Ú€Cõf&pq,ȇ‚¿¹|9ìvõžJÂ1Æ
™
rÔ¤-v¥¬Ç(@E¦Š¬ð0¶ô콋©õXa„N²¬0…lËQOÕ&)Ÿg¾•™I›'bgÜ>6ø6sû]GÊêf´ˆLLôsú¤@oýˆƒÌu
ˆa²^ë[ ]N'ØŸ&FúuÞIuZê¥@†ý¼è•¡ÄÑð 3fô d•ÉCc07‰ÚŒžüzy³!˜GEúi5J¯ R?ÃàÊ2¤êÂôÒG¤]áà½g&i°Âb«hº±‡-ái«';\wbä)ª¬€ûO—Qv¯zÈŠœ‰ÉæVÆÜ Çú-lgy“î‹už²¼¿?*%ëú)×å.eOZhHÝ>%AiŒ„ñ¤zîufë<Ư$¹";Ögƒîü¤Œºé¶6E§¯ÍwW ÂœÈÌÓf&ìñ‚¢f*Gý÷…ç]>²‘´Lš±ÝèÝÍи¸Ô<Ö‡2‚¶Äšz?më¦Ð¢3¨¬ñŠì×tð‘©šH“!Ë°³„ÐÊ¥U¹§Dœd%"-üv’¡ÎkÓ©»t)¿Y*%3m‘GFn{™õ»S€þZ¿Z…‘zp +¢ +’ñžA0aòì6÷ ͳœ†È(`ýÒžÈ ÷°+M?y!¡
‚ûtœ¦§›AOK8г=î“d⤈°ÝÕœaY]ú¾‰6i€Ž^L>kÅË+mZ@àÎÆݳ¢ß33èLj‘MszËóO¸|+qá÷ñGºÍæðóDZÂν‘³‰µÙ¸ƒý¾È2J² ¼Kå Š=ÏÓ×¼•Ë+ÓQÝÏÖAæ\³,?ºBË×£ý·3;F¼ +[¾ú²§ÆñxôŠ&õê½Ñ7«¯ôËEäAêíqú£úõrUýeêO endobj -2547 0 obj << +2556 0 obj << /Type /Page -/Contents 2548 0 R -/Resources 2546 0 R +/Contents 2557 0 R +/Resources 2555 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2553 0 R ->> endobj -2549 0 obj << -/D [2547 0 R /XYZ 56.6929 794.5015 null] +/Parent 2550 0 R >> endobj -2550 0 obj << -/D [2547 0 R /XYZ 56.6929 524.6888 null] ->> endobj -2551 0 obj << -/D [2547 0 R /XYZ 56.6929 222.1988 null] +2558 0 obj << +/D [2556 0 R /XYZ 56.6929 794.5015 null] >> endobj -2552 0 obj << -/D [2547 0 R /XYZ 56.6929 104.8912 null] +2559 0 obj << +/D [2556 0 R /XYZ 56.6929 242.5709 null] >> endobj -2546 0 obj << -/Font << /F38 1082 0 R /F49 1308 0 R /F22 997 0 R /F54 1383 0 R /F42 1288 0 R /F21 994 0 R >> +2555 0 obj << +/Font << /F38 1082 0 R /F49 1308 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F21 994 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2556 0 obj << -/Length 2784 +2562 0 obj << +/Length 2467 /Filter /FlateDecode >> stream -xÚ¥YKsÛ8¾ûWè(W…ñâãè$žŒ¦fo¤™Ù$J„,V(R#’özýv£Š¤¨Q¶&® -›
°ÑhôãkˆÍøc³XùHä,J¤¯¦f›ýM0{‚±7ÌÎñÜ$¯?ëÝêæíO"ž%~òp¶ÚödÅ~Çl¶Ê¾Ìïï>,þuëqÌïý[OÁüw¿ÝýJ¼ÇÛ„Ïï>Þ/ñ5ä8‰ã´0˜ÿüi¹ºý¶úåæ~ÕiÓטUùóæË·`–â¿Ü¾Hb5{—ÀgIÂgû©„¯¤ŽSÜ,oþÙ ìšO§, D쫘G&àlƘŸ(Å6P‰ -.Œ
–÷÷´Õ»_—Ÿp?ðï.˜y<ôc!#3}WÕÍ× -?’RÁR¸ÂçŸÞƒéÔ„*°ÏHuó|;c°EÜ—I2óDâKÎB3õÝo—µ5šµÚéã-‹çš6ö_æ¥Z§ëâ•8MU±OKËú³ÕGKV‡&¯Êº§£ôan—•pN‘ŒÍ²àQ·ÀñжøΡ¯TÀÍŒ°ï´ú" -Ú‰PÌÿØé’¸eEOJ¶Oí^—H†…;6OJ¥ýyFd4ÊŸuùfâ TûTÎ
/‡ä¢ÜIŽy·tJzW¡IÙî÷©Iî°nµ%fîæo*…-“="DŒ;‹Ô(òrPWN[E–1×YÙ8¤TîJZ9]Àÿ‚@õœ‹3(U;MDVíÓ-Ϙ
N¢º*š³¶3зÐcnÆÅ"ãbÈؤ%iQ¾KݲM£3/Ó›œx‹ÇgI“{.ECæàO_oª¢*=k[ÚÞÀ×2]äû¼AýQpˆ”êL"„˜ãÞqäe—ov4}“ÖzƒX0‚'WH1Þeļ(Hæú•–Éô6m‹†˜6pé%¥ ¤F†&¾+ÓH›G‚Îg´£)‘~"™ºe¹)<•øŒE¬ç-‚ƒnh$Y_Äó2Üž×ǦºOuÞ †2<ãtÈ$GCª²C˜LŒÌþÉ› Û‹ßÚMØá´™83‘ -pÜ%FÄîP:½÷“”Ý•Ý©þ³ÍŸÓÂ8¡cgŽ¦1µÊnB¡º‘ Û’÷|U£¾]êLëï¸Ð¹[ÄÀ*ãWB™ù±ŠÜMí¿»¤}Žð7 °¢êáß·š;Ê$v‡B(JŸ`â‚5d' ÐÚãý”1ÀÍ#&GÆ@‘&á‰õ}ª.‚¥.øÕ¬P™²š˜§Ä÷‡Æ*_á“ϳ¼>éëiG†X~º#‚Â{S™gfµ³‰MÌÿ[•z -‚áÀÅ
.Uºö¹½l©?Û[UÎÖÆõÈ„½£Þŧàrž¶
”û¼I@ÄrÙG¢Ù¤?61…;Ák¨1«ý…Ó×”ÖNòäPeO,_ƒ€—N!SEÌ*ö#Dz8olTÛ1öS¾-éã.v[µ.\¶.auÙŒöà„ýHIºÚáš®±Ÿr™ŒÝT0“U·€p7€„ t#pÈI‰aà-y·lþJoÆ¢ðì5rCbáqŸõ{ür¿‡¨8l7·ZdƒË¬5= 7÷î -6ð~Öu^eVÁ£ƒÐ5±€ýîý.êRÛ#"íiËaÕb£ûÜîÀD.Z¹ƒë`ÆH˜ËÍ‹{- -ÓÇuUñ€ÚæÐ6D“H@ÞºÔÇÔÖ¶]uB¼Pªs‘ˉ7áq—m¨1PÑ¥ì(üê…óºlºT(p\ëuS=4ž„Pá•zBØY½9Y -”'èéâôs^µ5IÁÜ”C´ÁÞgú8„’PBqå<$ëNgJX·~ɛ͎¶ -€À€=/Æ8Þ\EèùÕäzØt_eš(ã)ð¬u¡7*Ü„Šy^ÀBP|!¶]KáÓjCfb!s¢.u5 ‘ÖS`(ð›È«1òØÙ®k\PnJS¹iÇ´¬·sç‡nÂÄ=0Â+¥}p‰äöv›@&´‹QM‰Ã0z -Õ3K«#P¦µ'ßÁÔl’Ý̇%z9dðÇÕgâªãægˆ™˜YïÞÞÁ?Ê«†¹ØÒâo›ªŽoàó»©HŠÐyx–sÕõ7ã\ÔÈÀ6Š§8öCüé` -ç'‚1ZÇ›¥ú 79¢œî~É -jr÷™~Zš,ÂÓ–ç$]Xº[é1ä‘:Ã\R`#†¨F:< ,{Él˜PÏÜcÛiÜJáaM rm…¸¶v„à•/»>ã2€ÝÂÔ(¯±KUô¾¶KC;\C½£#Ïh,]C§Ü6y'ÌY
j*¸<¿—w6`w¨Á-ž|fŽ X3Õâ8¡)w˜9šºð7d
-ƒ¦k#n²ÏW‘/£îªèÿîóßP4Ù–dôÈ·´¤¹DPÊ^š %|hlh«1m¡Š¨
8õ„ùáÉš¼e¨~¡t[oAêrP ‚L+Í>Š2$vaÛ,䔧U(ïšåLzã1e*xÖšÖ°ˆ©Žn=ZÂu{£fˆb}úJf|¡ãÖ^êt÷¦Hç6áÚ
\¼Úˆƒ ú[W;S¿-Œ-1õ«ZÐý€ñ·w>ý¬.!L㘟~R” -gxO$ ˆÌß->…à?òù©¹ÿO£ËÌIJ=è®^\ÝTinF†è~ï>·Äÿ +xÚ¥]“Û¸í}…:Sy+⇾ú¶É:9ßä¼ÛعëM’D¯5+KŽ%{ëvúߤVörëëtü A +?”BXLuµ¸ú[Ïp0«—º4ŠÄ;TÀ¹KaêG‚‚vÝ<µp¸Xz +>¨]«AB#,½fE8Æc?€£¡ÖÎæ âAô”Vbæ‹áFy£¿EÛoðòØ<~œF©‘÷ž=?
¼kÚî¡jv!ù´æDû25'ªk¶]Ù€yDô"…r¸HXúËCÎÀY/31˶۪Tªœs¯mÛ³ÎáÌ ‡›Òçg† + +dâÒç Fú)ƒx´³›9 °ørwwûy†ÞÒ±A +½œAJÐʃä@"gmSc¶p:¥ã®j‰ù¿¼Ü* æ65áÞgU‡I(¨"&ýÂõ©û¸Ÿ&Iâ®ú&=ÇÉ¥.éNó8ĈH@zèÉPÄ›Ùâúݧ©+ +ä(çYĵ;Q`+M„mUG€ŽåŽœuãã—ÒZl7N¼}ݾn¨»d|n?Ì>AÉÿÒÎâë[ÕåowªmªƒW|Õûaâ³öGš?ýë§Û_¦ÿ~냨»Ü%C`÷¦‹é”pýiq{9Ư›¶ÃhË0Ž¾¡•/ +D&dQ·Ê'êø êÁ$2ª/‚ZLöúûüá=ô2¡«4Hü8ìéÜ +æDešžê÷Ý—‹ËGß³±
&ÌÞƒ Ó5
ÐH” +l¤My•µ³Oñ“$¶mJÏqîàjJ¢Ðúb]4Ý«“s~Ÿ/óÛoŒ|Î%;çØ]äØ·®lÃX»/'z~¿]ä÷”•Ý«üdÏZ´Ô—G_'Ç.§ªìÁµ‹ôeœðs©eE=ô쿈ª£rá»3Ä"Ô4'âfºxÿyv·œÝιÂ*Ým¥É „ŒŒU~Úr³ÅÅÒ¤¿¦zB—lÕà®ßp¬o8æiò(tÛÞ¬#&–
k²ª2Üè}!,ðk*FZ¤+ÔÓùÙ‘³((,BpoMíKç9±-ÕËPPÊÜ”fø ‘éªLx¿QßØÚT…löX´¦Û™/…Ò!f{åAÕo†àaY6´nøš!8—ÐZB÷}vSM®uá¡Áýf“éàû6¦¨,-½}N"}ÄøäwÞC›G¦>¯<QZ]/ÒÆÉÅèó<9WíΠЈý³†®qX` +Y +‡Œu]zM3æUÉó¬U®^,†2‚§(d}¥No ÈóþHÛj•í±kE¤¹¸4Ȉàô©ðýSÀÔQ +Їά}4//aö¬Á…¤œ„±Ý ëKûG´_VøÖ°°¢jþû˜A@ó_û›* üoÅQ}éñÿ…óü•Ägµ„»ÿ4$"eV(<6Åx"£Pxïfó:¬ðÓV€#LÿÑ©º°>½°½9~Õ‡ßÛhg9ÓBÿ¿ÑK5ühMá^endstream endobj -2555 0 obj << +2561 0 obj << /Type /Page -/Contents 2556 0 R -/Resources 2554 0 R +/Contents 2562 0 R +/Resources 2560 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2553 0 R +/Parent 2550 0 R >> endobj -2557 0 obj << -/D [2555 0 R /XYZ 85.0394 794.5015 null] +2563 0 obj << +/D [2561 0 R /XYZ 85.0394 794.5015 null] >> endobj -2558 0 obj << -/D [2555 0 R /XYZ 85.0394 751.8041 null] +2564 0 obj << +/D [2561 0 R /XYZ 85.0394 668.555 null] >> endobj -2559 0 obj << -/D [2555 0 R /XYZ 85.0394 685.5478 null] +2565 0 obj << +/D [2561 0 R /XYZ 85.0394 559.5183 null] +>> endobj +2566 0 obj << +/D [2561 0 R /XYZ 85.0394 480.1278 null] +>> endobj +2567 0 obj << +/D [2561 0 R /XYZ 85.0394 418.9117 null] >> endobj 894 0 obj << -/D [2555 0 R /XYZ 85.0394 644.3563 null] +/D [2561 0 R /XYZ 85.0394 381.2224 null] >> endobj -2560 0 obj << -/D [2555 0 R /XYZ 85.0394 610.3574 null] +2568 0 obj << +/D [2561 0 R /XYZ 85.0394 348.7616 null] >> endobj -2561 0 obj << -/D [2555 0 R /XYZ 85.0394 573.8073 null] +2569 0 obj << +/D [2561 0 R /XYZ 85.0394 313.7495 null] >> endobj -2562 0 obj << -/D [2555 0 R /XYZ 85.0394 504.6292 null] +2570 0 obj << +/D [2561 0 R /XYZ 85.0394 249.6117 null] >> endobj -2563 0 obj << -/D [2555 0 R /XYZ 85.0394 429.3826 null] +2571 0 obj << +/D [2561 0 R /XYZ 85.0394 179.4053 null] >> endobj -2554 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R /F42 1288 0 R /F54 1383 0 R >> +2560 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F54 1383 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2566 0 obj << -/Length 3314 +2574 0 obj << +/Length 4249 /Filter /FlateDecode >> stream -xÚÍZKsã6¾ûWø¹jˆ! -˜öÝÕôìÏ»ïO®î¹e—±F¡>üþg|º€-|]äæônb!‹BnN£…I´ö”údzòïáÁS÷jP2J§* ¥BÊ0…HµÒNwk{éDMšÝfv&'vK·í’®?_Þâ@N¶g2ŸØ~[ÙŽË–§–t©áí¶ý¸»§ÛyÙÐ`fiþ|]6+» âcÕ¯‰Üƒ -9ª?¬ª#‡kìªì«Kwhxxý‹6Ó¾¡Û~ÍÏñqî’®cñÀê…Ñ~ëȤ¥«|à,O$!‚dIæĺi›ˆÎwÛÎÉ¥<ç@ì!Ú»€fP`'žúP±×„Í_©È²¼ðæ¿}ÆüÓ¬82ÿÈäùdjû¾jV~…Šå¡9ìžµ-·Lï}øpI„?”ʈr°KxÓiDI%dž2:Ð…í*6-P`,™‡‚È9«z"U
è €à-†ëj¾8ŽL´ÈrõŠãHP…ñ¾»)?ÚN e&`ß΄`ÑnÝîj–mcËA”’…c¡ÀzÊ
‹×Ù탳£Ø‡¿¹œbÛpÊ‘©ådGÊ![ÓqFN‰ƒ²ïíæžoÐèðJ‹tmý`Ž$a›*Ñ>&:9ºÐ¢ÀÔC“Ð1séÜ<d3Ë!(=gd±ÔãK²Ú¦œÕÁX—fë’äÕX—(ã{lªM5g8£„Á̮ˇÊ%¸sy õÇút‡…#>,2Q9Ia†S ¼?SÓYöAÎã&àÉ@Æ%7†›²Á¤•ÇûùÞÎûá]'4\÷¦aýg»ñ¬âNˆìKbDä]·+뚬*[M[Úí¶¬»qÔjAkøØŒaDšéÄÀËE²Üñúöù ÇÀ7¡ÔÎU(ùzê*?i×Q’H>ààqmJ^ýHeM •&ÏY©L¡U:˜é]ÈL1½Êc3Å\0 aÅip×Y"”#.XÆyÛ4xÀ-Kêd&ƒ2`ÓEr”Ĝߓ9ÈØlámRzÍŸe ùaAKáŽ0gÆo•»¾Ý@’›»cç×kÇA&˜@xÈ{ó‘>€ás2‹O»j0#x\Á‘FZ%“n7_©ä7ÿj;6/r“~ö»ôfôGlâóßÞ}€«<̤ Dׇmê™c„SÌ´äQ>ÅÔHu|ŠaMXuŽ7€œuúºÆé°¼óàÛ6¨k•Ål@º¾}Hˆä³NîÛm/Ð;Õ–ƒ!ù=¦ÿÇ{L=¼QX¨¤ÃæȲßù訳—Ú$¹÷ƨÆa÷h{P`—¯á -Âb¶Î)‚"…ÜÆ”{aàEEÚ—{Âÿ2KAâØx½À´ò -[nwN-]²|åý=õûmu+£Ð"IU¶¾,ã#…ªKQ¦Êò}¦¶Óab
•gG\œDšS)^áï
=s©i?þFWšîºè˜ël×ÓüjÉríâ*X±bÚEØÐ3™Ë'þžMKxÀ¡á•}l'çÔÿ£øÌ©C§”:àÊeŒ(GÀ -&°AmX8¯Z&IbÌ+@Ùì掖tY´€oÑìmS²¸Yݤł¡nGRz±çm
€lakÀ”øè=ŽV²ÈDWßÜBV
JÌŠìõЙÄI1*½58Û"I·0¸½û@ƒ#Ý¢OBª¿^ÒÓò rHµ<眚FNp#Lt;ñˆÂLº¾Ü2îÄ;0‘’åÛ×ѧQ -,>‚(ÇÁ÷!€p µÍ‚Þò{èK®“—m]·Çï
U÷^H•ñ°G<aÅJ‰¸êF=üS*˜4Ëj<›m €&®Ë£–®¥‹0"÷ׄîàÂÍœà–ƒs -)"=2E:"
êÅ# -´érP¦ñ[t³ÃAâ$OêÀùçxÆáî“Ñ -èóéÅõ5uz!`ì¢}c‰cQì¡ÅKÝ¥!<Õó57Ê ‚A¸â?sŸ|Á5zgpk›yËö¥–ai4³-Ð}ÇÅ ‡b@uŽ~”±1õ§Åa’ÎzÓ¿öaø®ã–¯¬_DNVDñ£n—´í
óvnæãV¯N3Wâƒ/íî›M®«öP$¸î¶
Mk :¸lg(2™Lès -TÔº¾³ò_íʮŶ‚Ö°;‹%_ãšÆê¹oî˜àâlÀʸöÑÏTCÕŒŽµPºÈ¿æ -áAþyC4pŒYºß.!€è€ö+£ˆ—×Óóoß_Œ51"Nß™±ÍuÅÛfc1‚¡J°ÜYý%£þ!(ÏéÜé“uînš‡§`'øÒ‚©K¢²B±CaDºo§’aú•ÆÙH”þ3Ãqô* Q¨üïÄéíY>Ù5ÝsÁVŠ$‹‚í»ë÷ô3–#…¢ë[ÛÏßnâàáËÿxÌwzuE»;?ýéµè½¨VH%†È7ûÏW$îÛ´bUPêWLb‘é¼ð?ë9‹ ”²h: -’FžÇ#>Sè³6nŒ.ô"ij÷C…!þ«ºâÃÇj€<}ÛÖ⹟2±õøÁO<¨ýþyÑþwTI5P®^þåËä>^ß\Ò.`šÈ¢[µïï\}†-/<0œz7›_\ÉB"¸Q:‘F=уÿUÓSEübjÀ$endstream +xÚÍ;Ms㸱wÿ +ßBW8ø HðU½ƒ3%»^gìÝl*›%Ak%R#’öx}ºÑ
J”¨ÑlÞåÙ‚M Ñhô7 y-à_^›4Ns•_gy!Íõ|s%®ŸàÛwW’ûLB§Éa¯??^½ý¨íuç©J¯—¸l,¬•×‹Ebß +Í^Ã,<èîú3(†#ÊPu +êM/˺«¡¹£†G
ZC@fãTÈÜ#{T Í,HÉd>.§*ÉÅT˨¬švwc£nÞâÒµ q‚/›â7G‚ +–[2Uó‚ ž9z¢^
^×õoÝ–`qMY/˜ÀÉÊLl¥PÃíy·*ê¦r¼EDoÒf5uçswí7<FÙ$høyá–E·>EVòszGÏ_…Óªu;˜Úr¸ÙDÙÏ7RÊÈífuã±gQݵۮ¥6aÌ¢'W¹]áU_AROmÔylLvÉØ +ï$±±X°EnpÏ íêíÛ[ø#«êÓ%=Aýf¥÷éø"¿S¤eQõ6©8³ñÆ„mñÎYŠ|ÐFêdAL1¨ÓŒEÛ³
Ù©#8ãô¡ƒÙ«U9F'lŸöHáen£fëæ%†8¨º{s”‚ŸØÝq ¿ÚÐz{ì?½N r°1Ž;5«º[/¨cÐøMÆÆô>§wô²¨7EYQׂ‡ïƒ/⛊ÕÙP¸ÊŠØöéã;iA—¾æ‡ƒómkzvÁœ %·Ÿ(£ùvÆ+‹¼WÊÉÝx¸¥3so%l³’K¨ê63T[ú` +`‹zßͶ +SJz”Kš²ªÇ‰š°C>+! +2S¬,»)‚€ÆG&0ŸŽî`çø£·Z¾µt/dì-K¶ö"Ä +ÆÌy˜4s8ÙÆ=)ÇD .©!ˆJjÔfF¸ò™¼÷é2(™K
0';Š¸â)2RHlìKŸðâ£x†ZÍúy4×eªD'ß’ëìÍþ$±ò\˜ÅBö霌‰}Ý´ •²Û1;—f`ç’ärIÂî°)7åœyâ…3cé=
¼y§$|ÞèùIõO‘…ÍâÄG¹9Ú_ýÌr”RhW#Š`ÜQÒbxñQ„¶"r_¶è§ÃXO4<÷¢á +ü~ê\].ðšÐ©kÈ?$:`ƒËpà2÷ÊŒ@!MÎ ©LóX«}Eèq<‘µVK)Î@eß,ÙRÚ€‚MÄ;¦â¨ +÷·fJ=Í$OoÛ<9*¹zµ'i"ÈkDRÆßd ©aNSaŸp"È3 +[8p×yx¨ó`>âÒ#ƒýÂï$Ÿ»²—"ø\¶oøt à A•cé:¨¿p÷ö—Ÿ°qèFˆ¦mþ@–›˜õéÙ$ßÄÔÈ“²^Fa¦¯]ZK^–O‘öÓ{mÉ°‰¬VYH¥4½N| +Õ—Â&éÿã5¦!´QxÆ™ŽÈu_
+ÿ#§8&±A'í}UéqAòl +÷àIÇ"Ê’ýDiµÉóB#Š°×ýe–Æ"ë+ ØmŒynY*>nC¤3ž‡b{ÛÛúú©*' +Oˆø´æYôîîö‡oŒõ@2$ˆ@\t +?üxë;ªèaú·þö៾²î_e„:È_ óCs"ü"̧ìðìIQ´P?–xªŠe£'¹ zØô¢”É, ÖøÈjùYü>54uÁô[>aØîJȨ˜¹Ž“TåãÒ—e¼¥o)rT™Ý;*@Ë&:bi¯¡”Å̳Ÿð÷†¾Q9 +JM-Ï?xÎ1Hôv(¬°i‹GÂß(¦oŸC_ORÁŽ…ÉŽÑWçL +êªEÆŸ/Öát½®_ŽÇík]=‘r–aàa.Žá„‹Ÿ¸Ì=áŒùð¿RéĤ™==F>ð6`@__áVMÏ—Â[Í)°QЃË&Þ8Á+1DS½Ùêª%Ë´¦£:é0Aº§O3ž=giÒýãÌ ‹ÝŸ°Œž+‚¿ÉîѼœCstxìÏìAÆ0¬&Í¿¶'¬“³g}©'ÙŸ•ŸÑ¥ d¨à"Ò#Q¤-ÒšîêŒTè,0Óô§öØ{Üè€äN
(_åϘ|¼ôd4„d}ü›°’)Óњ͓/¬UԂٛРœ +&‡»óóÅÝÙ_)Ã[†¾7bß}Õõò:kú©ÃÖú‹G›ëou…I-d/e÷„ôº³D=šlìvX'9ÙÝé{¾YøðÓýý^»Æ +~krq® úò£–c7“À ô—FÎ/ÕèýíeŸ“É,\ŒE›u¥? Yˆ†³ÞíW2¿XsQ +PR.è\ÌçnË@b#bw¢=:H’XžVÕŽèÛ‡wÓ)Uzz" í-b<vÂ"DœïC‹¯U—zû|”ϯ¹PîDÂ'ÿ™?íÝh½LÀ««æ5g]·#‘Z3¢zo89a[Q”fè±Ñõ§ùay’ endobj -2565 0 obj << +2573 0 obj << /Type /Page -/Contents 2566 0 R -/Resources 2564 0 R +/Contents 2574 0 R +/Resources 2572 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2553 0 R +/Parent 2550 0 R >> endobj -2567 0 obj << -/D [2565 0 R /XYZ 56.6929 794.5015 null] ->> endobj -2568 0 obj << -/D [2565 0 R /XYZ 56.6929 356.965 null] ->> endobj -2569 0 obj << -/D [2565 0 R /XYZ 56.6929 248.4087 null] ->> endobj -2570 0 obj << -/D [2565 0 R /XYZ 56.6929 187.673 null] ->> endobj -898 0 obj << -/D [2565 0 R /XYZ 56.6929 150.3174 null] +2575 0 obj << +/D [2573 0 R /XYZ 56.6929 794.5015 null] >> endobj -2571 0 obj << -/D [2565 0 R /XYZ 56.6929 118.0031 null] +2576 0 obj << +/D [2573 0 R /XYZ 56.6929 107.6182 null] >> endobj 2572 0 obj << -/D [2565 0 R /XYZ 56.6929 83.1376 null] ->> endobj -2564 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F21 994 0 R /F40 1218 0 R >> +/Font << /F38 1082 0 R /F22 997 0 R /F42 1288 0 R /F21 994 0 R /F54 1383 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2575 0 obj << -/Length 1654 +2579 0 obj << +/Length 1729 /Filter /FlateDecode >> stream -xÚíX[oÛ6~÷¯Ð[e by•È½¥±Û¥Í’¬rƒ
m4Kv„Ú’g)]³_¿CR’%Y–vÀ^† -ìÎÑÔ»¿\Ü|¼¸¶swSEÝ‹·ópêÉ©âZÌÇîì&ç—ÞåíýüHLï&óE¬
ž`¦Qý9ùô€ÞáÝ#¦¤pþ‚ŒˆRÔÙN¸`HpÆê™Í$œüÚ(lšCÆL"!i0`
JB‚vÌ!òeÆás–迊x(
A!dèh¦¦‚ÃxÐIaF÷Ú*,N‡œTKiTqVÉÒ[>&Ë/q1õ|pÑ'o£A¾z'¶ -¸>ÕlÌ·QšY¹Î1L éQ‰=Ô*W*»¢«t“è£)íâž¾ø¬¾8][á]T>(æ’}ųóŠ‹Õ>ß~IžGÕK†|éÓ®ú¿ó,9I -
ù -wtkü•®*Xó¨ãÝ–ª+ÍqD7RúÜ:Îü6}¡IÖ³6,B$Ô*(€£¸©`´“)€ú„û]dW@H`ÙãX!âRÊ£DÐQK}ˆW+”V]ËC/>˜iÎfvÍ°—=L€™©z›åCÛ§•yÌ·Vº|ŒJ;¯õnªenWõ\w`šÍïç¿·U7Tƒž†3Y½>u³¼|i)- L%ï2ºÂD³ª>¨>ËâfKõºšÆv‡}Ø@˜Õ<~ÚuùÞ>b-W±@ªqÖ¶¥N³¶‘2¬Ý²JNpTn:¼ep(Ãþ8²Fj -/_˜J¦s®}9[ëšsêxYq½H~¨”¾&æ5Áz½°Þ´4¿ñæëzf¥Ååûµmá<0 -„à㩈Àá -̺ÆëE§¦<6éäõ±w¤Bp-ó[/s\tÙ`¼.l¤Y´¶Ž¦ì~,êtwÈ‘IQBèœNq˜Cƒ">î±–ÔˆÇj)ã±ÙÇô6o+;n“I{Ga6R8;æ“Цº@ÿU·õïÇ>cq}çþN·ÌA€Úï™ÃùÜoP4]3íã¶`×ͦÔmf•U*XY'Ù‰ÅaˆZËç[Ç‹‹Ÿo?Œ´éî*+“}–”öÄð*ŶrÙežù¾LŸ¶‡ó8bÜoÎ涾ͤX‚qz™Ã- Z'uŠeª…o¢m2ŒŒÕ¦c¾F‘Á¹<°#“cëæå©|j÷(ín§»¿qÔjrÎ[óì—‰$ÇôGîÝ
#×îJhÐ<öâù~ð»ÜiRDº‡X¾è¡Ä0ä¿¿w×.Ôò‹ÅõTÆ~_õö¬êmômL/ø]*ûz÷z=IR0¨–þ(Õ1õ5Úœü\pzy4ô;0±mÊG>(|Nxï -uendstream +xÚíXKsÛ6¾ëWèj&‚ñ$ÁÞKN•8Š[:™v’²8‘HU¤¸¿¾‹i’‚ä4é±ã–‹}|ûaA2ÄðG†R Ìb>ŒbŽ&b¸ÜððÖ^ˆ“×Bã¶Ô‹›ÁÙ%“ÃÅ!
‡7«–.‰°”dx“~ί¯§óÉìј +LÑh,0ÞœÏß_Ù¹ëQLƒó—Ód4&1‘„˜q0™'Éôb|ñëôâõ$}ºy5˜Þ4vµm'˜i£þ|ø„‡)¸ðj€‹¥~…ŒHÓávÀC‚3VÏlÉà·Fakռꋅ` I#O0(õCÄ(d”™`¬ŠýhÌ( Êb«ôˆû‘Z”Eþ&X¤ê#Æ4W¥•¬ÖJû}vÉÛÚ Ž¨ +¤yYªåx¹VË/ii’£í¡ÜˆÎA¹ß*På¡•ê©1f}¤4ržÙË(vœªº]TY‘ÛgV™••Ê—nB«Êò[ûTÅ}O0òbŠú‚ˆƒC(´xè…€wTp{y#,€WÇm‡XSO#å‹Nÿ0ÞX`Ç·`ÁˆÔ´Ø.²Ü;(sŠš‚>Õ*W•]ÑU¶ñqe(Ö4ÞÓ—>©àh…w‹jíQÌ#$)SOñäiÅåj_l¿¨‡“ê%€Z†´«þï"WG@9¢1a?€–Š +Ú·Z¬ìâ¤Ešz>Énsµ·kšÿ'‰> +Ї#¸kÙÀô‘õ´®â¦ÉìA·W +¡^¡¬iÃ@]+CºYÆLc6·k½àa +ÌLÕ¯¹;µO+Û]ntµ^Tv^ëݸ7«Â®šN<ílÀ4š_Oÿl«n ý)gÒ¹Oƒ¼¨ž[H‹:kÞE´³]wkÕt'Võ“(n^qîjÛ7ìÃʬÆñÝ®‹÷övè(j‰æAΟ@mKêjk)ƒÚµpäDÇM·Ðëa†ÃÓ–5RÓ:(šÇȹcÛ…¦NMLÔ]Õ49ÙÇ=ö¡›;—åö×Ñ(íò‰žØ´©:7ÈœÊ ‘ ‡Þsad™£[ÚjA½F%^p\ãPôNš#Yh„_k$4|ž•v¼sÊ+sý–Á¥ÙŽEú¶Øî6JˆLuhù¥‹a0x<@¸# +½9wŠáž²Õv7;œ%ÏšAÛ¹fŸºÜ=ä®T¿xNÊPó`ž›ÀÒ^ +6÷#¸~(+—¨Ø»Þ¿e籂!!$DOL[êxÁ4R¦`ROÁ@,d,رö§S8œ£H~ÚÂFÊcb§pxŒ"F]“ëeçL5ö¸ÛS½à½>sÁ–3‡'‚>6¯¶ÏY¾Ø?ØDRÞ•5Ý=r¤*+(£§¹‚H,ŸÈXKêDÆj)“±‰/cú#Utºì¤MR$¼{ÒÌFÊcg'|:`Â⮡ÿiÚú÷‹ÃB°¸þæôƒ9<l™£E´ß3ÿÛvÛÆ endobj -2574 0 obj << +2578 0 obj << /Type /Page -/Contents 2575 0 R -/Resources 2573 0 R +/Contents 2579 0 R +/Resources 2577 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2553 0 R ->> endobj -2576 0 obj << -/D [2574 0 R /XYZ 85.0394 794.5015 null] ->> endobj -2577 0 obj << -/D [2574 0 R /XYZ 85.0394 748.4923 null] ->> endobj -2578 0 obj << -/D [2574 0 R /XYZ 85.0394 649.7239 null] ->> endobj -2579 0 obj << -/D [2574 0 R /XYZ 85.0394 567.9518 null] +/Parent 2550 0 R >> endobj 2580 0 obj << -/D [2574 0 R /XYZ 85.0394 354.565 null] +/D [2578 0 R /XYZ 85.0394 794.5015 null] >> endobj 2581 0 obj << -/D [2574 0 R /XYZ 85.0394 284.748 null] ->> endobj -902 0 obj << -/D [2574 0 R /XYZ 85.0394 241.0823 null] +/D [2578 0 R /XYZ 85.0394 701.5337 null] >> endobj 2582 0 obj << -/D [2574 0 R /XYZ 85.0394 202.4391 null] +/D [2578 0 R /XYZ 85.0394 636.6739 null] +>> endobj +898 0 obj << +/D [2578 0 R /XYZ 85.0394 596.4526 null] >> endobj 2583 0 obj << -/D [2574 0 R /XYZ 85.0394 168.3603 null] +/D [2578 0 R /XYZ 85.0394 562.8799 null] >> endobj 2584 0 obj << -/D [2574 0 R /XYZ 85.0394 95.6215 null] +/D [2578 0 R /XYZ 85.0394 526.7559 null] >> endobj -2573 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F42 1288 0 R /F54 1383 0 R /F22 997 0 R /F64 1435 0 R >> -/ProcSet [ /PDF /Text ] +2585 0 obj << +/D [2578 0 R /XYZ 85.0394 458.9743 null] >> endobj -2587 0 obj << -/Length 3376 -/Filter /FlateDecode ->> -stream -xÚåZ_“ã¶
ßOá·ÓÎœU‘Ôßäé’Û¦—¤—ëí6i'ÉmѶædɵäóm>}¤%Y»×iûNgL ø´bÁŸX$i˜²XdE&‘HëýM´Øï›Á2K'´J}õpó‡?ª|Q„E*ÓÅÃf0WFy.åÏÁ]‡·0C¼~{÷õòë~¼{ÿê›»Û¥Èc¯Þ½»{ûúÍßn—2‰@„£(øó«·}õ=ÑÞÝ2€7îo}øöæîÁ+6T^D -µúÇÍÏ¿F‹öðíMª"OgxˆBQr±¿‰&±RŽRßÜßüÅO8àÚWg!¢PªTÎXCŠ…a‘$rdŽ¤S%•5Çë»û¯ß¿y÷ð懷¸ûÎÅ‚Ñb)Ó0VÒÊ–M×™õrÝ~4G½5,/òYFqÃ{(bÕ/Q$Mv‹“ ßéG)Œ‘ÈDü`;mÚ#±5=o«¦!Êomcˆ8‘éLOÏí†(ÉïôG~©¯öU³%êÞôºÔ½Æ}€ñXõ¥·ì€&—Ž·"Úƒ9ÖDé[ú5Mw²LCÏ
Ó7§~D¯õ¡³úÀ¸jè×ïÆΪ¡U/ò°ˆ³ØêñfCÆŽ‡Æ¿Çqœ±±a®="³0Í#ÁB( ²<èfM®)_Þ.c!Ð#
ñÈ
*+À
§¦$bÅLë8äQh‡¶«úöÈ´½î×;kg%·#œ‡4íLcµYë¦aM¢@Óš ÓgT -çcÏ´v‚ÒÐ<ð†,DPWú«ˆìF‘²5
Xµwöl‚ÏÈ8X=Ëvë)Oµ“¥Ch…5Ïj7¤_¢$ªB‚Ê*Áá´ª«µî«¶aŠ^÷ÕÇ!¡j†$çâÁ†JSdÂÔsN¬‚kl™ñ¾”ÌíâôFšu*Ðκþ€Ê[ZÃòÞLV„^òz}:’éšµ±ËÉà'LkúØ€ãxæ‹—àÝ)í -<•n*yF;¤Ì;°¯ÊdpÞUëœýSÍÔµ>u††|Ö”?6ÒþÂJvKÀÔDézP†tVÕe|ÔuUZÛÓóFW5GgGÂûj»ë‰ióØ$Iì!˜q–ù¤÷‡Ú o!©TìRX¦AsÚ¯Æ&ÏèŒt;2_f³ŠÚSÁæȃѦå·5Ûž }¡Þ¶Çªßí‰Srbâà÷7 -Œ–5t«9Mµ_S‡
Ž¤U8RÁ†&Äe#ç›ÈûF}Û¯k™¤7䦈ܼƜ陖†=½À¡éëÚæ%RÎ ±ÖëÓÂækZ¥Ú6Žºâ¹X+ éºj“…vzöT6-§ø.9³W{3ÉñŸÕ0—_lO|ŽÚú#nÖærÔ¸›dòäéLž‡yQ|.‘§¡PÉ0‘K©X{O2º”9gtäéúr#ù’…Wí%$ÙhÌ"Ê4¥#í\Õ<ÃÊå’µ¥M¥[¬&¾»aH©˜’¼,›”’|FjšäùGùè¬ÒVÌÓ®3%f2PÓóÛ¶7Ä1ñÃŽR¤Â+×–4¦À”~·Çžn,ÉgEšú‘„4æÊ0Èßð²NŽ|é6M4{íIEðcæè±/€@ÓÃ;þp
|´n§‡§‘ˆtíîÃCÕƒ>¢°ñbño -Há¼µùç/³Õth¶Æb$ Ð!ÁÛ )Ý,Àô»»¿Ålˆ&IX`ššQ(Aà€“ -~ò -hzw²DxÌŠ0ÎçUgq>צ„½U1TQÍþDõ§`À…X{ÚîˆFx©\¶ˆâà2”hT›Š1h"Ò -¢1pkÛЕ…TëQûnK„§ Õ±ã¢Õ—òžÆ=Žd'îÊlZ¿ýÂ70 -îzxãdé÷pâÛuv=»|Ï]¬H|ÿ¾3=81Ç Ì@¾]jÆEë¶)+w -"¸u\+É—/úp¨)˼aÉ3Uôü@(F+¾]|U?[Ø„ÌUP›f‹®‘¹¤£™»Âg¹"« ÈŠ9Ô?˹ذÜI÷’Û1Gw\QŽô|j*›rÅ‹JWœåTôá¯.KÚ_n«LêNœïÚO_`QŸ/öÕ’¹*ééÄ@àžzÓ±ñ^ì^p©×rM·kOGÏ-§ÜR?zæyÊ<óÁs÷픽o›~çùSö£ÑÇî ïØB¥H’à˜°"Ò4hîÉùÔÔ¦cÖ< ÈŠ$R mæ"–Ø%,©í„+cxuÊÍv‘–(öl‰¨‰Æªm±n›ouæYXDRü»ªqêìX“ï‰[äUqp9³Z/iW}õWA„›þ’+¹~iØ×=Vå´Xs÷›uõÉá»jŠþØ>®x›2Ã$“ùóàa(õ4xðRC,<Ìœ¸CâòÙSØ0ºJcñ¼Ž^jFÉ‘‡• -UœÄc- ;úo™³-v¼\ClÅ,>ŸXõt“®ÏÍ\ôŒ;q^ÌÝV®‡—]ŠþÌA;ÿ: ⤘ÅPý±Üêì@µá¥Ìâæ65=Ž±ƒâ.·ŠÆØèì)‡.sR€g·†oËÝŠ $F)›Vðå\:å¾E׫a;ÖÞí’Z¶2ã^ >âx¾1ü2º+y]C|‚8Z1ÅÁó1ü°¤Ëµ5/îZ³÷.¶ôˈpæp˜¹‡×z&'0Âv²ŒÈäF8”Û¸Ê\o[ÖÜ…ö8ŒÈü)÷½ž–olþ¼¢l#T»oMpQ,ÓŒðù;Áñÿžÿ{x"à »ó_Æ•J–ñ’ž@ÖSxJ=•¦Ï^Úq˜A98¼´qBÂvªõ²”c5»à $j¢q9—¥|_¾d'GR%UóD£L—
ú["K1GOzÐgÍ(ìÙÃOy\¤ðWë}cW'N=Œú~~ÛE’;¬;»þô:¤…p³ð§wPzKpf2ašâ„ KCˆÓÄÁ)«´©è:Aµ[¦õ»¶ã&ôHÇÛ<8Ù["a$„t0AÖ"!$2Bš½^ÄHÈ~„,Þ³eY½=½ýþK‰óðçz÷_BOBÁ)Íñ<zJ=ž¼”uüñs
í£ÁÜMà©Â/š°á+…Ý®8’Ïëé¥f‡¤F'cM Aáÿ¾P*½éc,µÁ-
WÌ¥ Ä‘ž¾È×ݾâ÷e¹6 äÉy8r,FS´fbú÷8ARNzÏa-!Ë0˜ÂÑL1ë–Q”}¶7R®˜R›&ðg„§`ã%½ôbÐ ¼ÔR¥IÔw°H£åHrÍE¥¸£¿R† 5vøP‰ðŸ²˜á¯®;~ƒp¾àò›•kf’Š2,ŠÜe•FïÍ\¿[E ¥²K6‹jÏqN¬•ý†Kñ’Ts)áÊAPi½Ó
õDüxQø:m.e¬Bü¨qyVm—Öîàå0H®ÚÃy‰¢õè}¸^-–¡ï€Z3„ -endobj 2586 0 obj << -/Type /Page -/Contents 2587 0 R -/Resources 2585 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 2553 0 R +/D [2578 0 R /XYZ 85.0394 366.1927 null] >> endobj -2588 0 obj << -/D [2586 0 R /XYZ 56.6929 794.5015 null] ->> endobj -2589 0 obj << -/D [2586 0 R /XYZ 56.6929 751.9327 null] +2587 0 obj << +/D [2578 0 R /XYZ 85.0394 289.3777 null] >> endobj -2590 0 obj << -/D [2586 0 R /XYZ 56.6929 541.5045 null] +2588 0 obj << +/D [2578 0 R /XYZ 85.0394 84.0373 null] >> endobj -2585 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F64 1435 0 R >> +2577 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F42 1288 0 R /F21 994 0 R /F54 1383 0 R /F64 1435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2593 0 obj << -/Length 1894 +2591 0 obj << +/Length 2688 /Filter /FlateDecode >> stream -xÚµY[sÛ¶~ׯУ<c¢¸ Ñ77VR7©íc*ž“ø!™‰tE*ûëÏâF‘$5M;™ !`Ýýö -˜Œ1ü#ã”#Ìd<NdŒ8&|<_ðx koFÄÑDž(êSý0}÷š¥c‰¤ b<[ôÎJNS2ž&W÷÷ÓÛë›_/"ÊñdŠ."Žñäç«Û÷WïìÜý…¤“«7Óì""IŠ%qM&ðäú6˦¯¢ëìõÃÝÏo§ÿ½xœý4šÎ:ÉúÒÌ´X¿><âqJü4ˆɔ‡)éx=Š9C<fÌϬFÙè?ݽU³5„FÌSÄi,ÆSÌ“0faDIL•<í0£$„™§Ò˜Esèw¯EÜ£$QÐcC2¯×ÏåJýYWê"€èsÞ>íÃC$F’P6îËp iG•ö¥’‰¡¬Ù³š—1¦ª±æÌíÇÈcFmíŒRCõ%ȽRU¾VEÔWÍîèK––¤Ûñ©¬òÍË!d.Þ¼oTaù-ê@5mY-QÇŸ$9§ú¸A”:Ž˜@±ÀÒj5Ú½Wï²»€6rÄYò¢j5æOjþ¹h>bŽSø\Ú3ÜjÑ,6$ÔëÏêå
¬,Uud±)—•F¥[)„‡Š\½Ÿýx÷p^ƒ›ªU›Jµ–aöÒ´jíúª®šzÓ–ÛõŽ_ŒX,<?pAbî»Æ´6ëÍF:À;–Vº[0øÙ$¢ ødÝ~V´”&vd3…göûð`¿€¨ÚämYWÞ!ëÕ)è¬&ÙKU?7e³T£É8Ž%" æºPÃødjèaâ-¦ÔÐQíaápÐÁÿ!úb⃌¡
L%s±²R_”Ó{À NÓD:ªG"éF´å.?"&žI¾ZXȘ‹}«Àqà©à>¾‹z—UàÄ!Ywâì쉳ٻ°€Ââáq -•'æ§Ý¨Ou¼ýî¨LûMöYJ†Kéi–ž(ÀrÐÀ¦ˆA+=d ]«ë¼~¼Šˆë—›=$‹r ¬[\-ëMÙ>]#°îèÔ"ß®aÙ»ðçô©ö
zŸgUìæ(¥‚ 1h0Î Gu -Û-Q Òã?óW'€ë˜,ÏÀA¿#¥Gî+Ã<ÂP"SßÀuH”Ëõ=¢ãŽà‰Œ,~ -ßüÌ¿û‹FÙ-MiØõÖ‰E/”–ŸpjR"&?ÜÜ^Û;PÝÓ]ΛþѪªð/ÑÙöù¹Þ¸l÷‹yV›n{þ·g)â)Ü¡‘ø?ßýnendstream +xÚ¥YÝsÛ6÷_¡·È3Ž +õ… +B +4Ž¶5íjã쌢äv¤“óf¼iœ6+SU¬ @6í 2yÂUª0z¦vä–Ö*“ó²hÐ_YàŠ”{[U[/àb#“ g!°Z–mà®É¥—¥ t†Wu‡FÒ§ + +a¨¬9ß–e±2mQWL1«¶x芪Oò.v¢DÌmi‘ KK,ZB=¿sÆV ŸK«Ô +v +)¬âyuØ.‡&O(Fš
™/qè…¢.*ØÂœy0Z×<Û°í +j§r¨Ö5V»S¤deg}ÑYÞÆ`é~ÞÆãtÕ²K×Ä'dìk]Äí†XävT@íÁŠ}™R¸niÄuÃÓj%ͽu5(Hð6¨r¿Ëv5p¹wÂÖUdSƒ;â‰:†"
+lWBá7£æªuU³¨¬#ÞOw'Å) +ì"À¸â»¹@K˜<—š'¡'2“…œEÞN$¦Ô"ê"ðÌÐWÊvP¬žÔ¬:Wmà•Á
!£n·‹`™ed.™¥½˜sx‰<DWdñíƒ$‚^Á-FÜ¥%‚ëzÖùzþƮ͡¤=RçÐÁ^§"º%Îc½ÿânüj"¡Éú®çdŠTeÙÓ®ëK}ßwT?+†ÎE‡Ù鑤ضƒ‡’u"@yõ´’Ô„–ÃTR"ÈT4T“üHoÜ©CÉ~àG—Hð»dt9÷þãYÝaJ +N.oVç%㻯ö,‰ðÐ?r'׎3
ßu÷E>nÖüýæ\}ðõ]1®þØ>¾y›úw%´Îø?Ɖ[9èú¼ÿû_™§Ú†‰ endobj -2592 0 obj << +2590 0 obj << /Type /Page -/Contents 2593 0 R -/Resources 2591 0 R +/Contents 2591 0 R +/Resources 2589 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2553 0 R +/Parent 2599 0 R +>> endobj +2592 0 obj << +/D [2590 0 R /XYZ 56.6929 794.5015 null] +>> endobj +2593 0 obj << +/D [2590 0 R /XYZ 56.6929 751.9601 null] +>> endobj +902 0 obj << +/D [2590 0 R /XYZ 56.6929 711.8811 null] >> endobj 2594 0 obj << -/D [2592 0 R /XYZ 85.0394 794.5015 null] +/D [2590 0 R /XYZ 56.6929 674.813 null] >> endobj 2595 0 obj << -/D [2592 0 R /XYZ 85.0394 697.4218 null] +/D [2590 0 R /XYZ 56.6929 642.3093 null] >> endobj 2596 0 obj << -/D [2592 0 R /XYZ 85.0394 635.4265 null] ->> endobj -906 0 obj << -/D [2592 0 R /XYZ 85.0394 597.1957 null] +/D [2590 0 R /XYZ 56.6929 574.7324 null] >> endobj 2597 0 obj << -/D [2592 0 R /XYZ 85.0394 560.9392 null] +/D [2590 0 R /XYZ 56.6929 501.087 null] >> endobj 2598 0 obj << -/D [2592 0 R /XYZ 85.0394 529.2471 null] +/D [2590 0 R /XYZ 56.6929 291.0574 null] >> endobj -2599 0 obj << -/D [2592 0 R /XYZ 85.0394 464.33 null] ->> endobj -2600 0 obj << -/D [2592 0 R /XYZ 85.0394 356.6715 null] ->> endobj -2601 0 obj << -/D [2592 0 R /XYZ 85.0394 282.721 null] ->> endobj -2591 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R >> +2589 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2604 0 obj << -/Length 2152 +2602 0 obj << +/Length 2436 /Filter /FlateDecode >> stream -xÚ¥YKsÛF¾ëW°rYªlNæ ÌäY”£H–Qöf7É"†Ê À doíOÏHríJîžî¯_ aø'#¡HQ5ŠG1š/Oðèž½?!žfˆ&]ª³û“/˜)¤"î^a)Éè>û}<E<>¿™Í¦ï&糋»®¦ÿ:Xb5Nno§7ç—¿N¨À@Ô?$7Ÿ’k·w{ªè8y?þyÿËÉô¾Õ¬«=Ą́õ×ÉïâQ‡øå#¦¤½À
FD):ZžpÁàŒ…âdvòkË°óÔ¾:h
‚e0¥sH‚„Rb…"F™5ÇåÂœáÇÞ¥Tˆ)»¡Xä…v4=n48ñDy
–áj\ëÆ™¨©ø2ê‰Ø¿óÃ䇾$FŠÑ ücÛ<éÒó}Ònë?UéWYÚ¤îaÐb}JäX§™»[ØÛj¹Ã nÒ2Kí3O˜—«MîfeúEûeî·ªê:(<#wÔÑDJ¤á£ !H Aí6µîÊ…Eµi@Œ_/¶)H×
Å2RÞYþ8l.θð4ój¹„S9¦iíbŽõvwï'ïÕašD©=ƒDTÚJžDYYÑßÜZM—«B£¹1¬ÙøoKSëù$«ëjÙROþºÿòn"¥%*: -TS…‹¦ˆ÷³(m“]V-SÐ|G1‚ Š$dÑ£šµTªõrÝ"Áûº½wÐ2ö‘rœºËùµ)aŸÍMì½ »yY7.mÂÍMáØ9nÜÃ)ƒéyÖ+=ÏÀéûIЄXDöì°£<“(f°ìÔ#|µÒe¦½JL K$—éÒ¯€(›…fP½ Ìõ -q"H_䤧RLÿ䌲*Ò¹Þ¯˜v™ÿowH\‘Ü,uÙôÐt¼ë]âðÙòêKM[™ºNøA/ ÉÁĘ÷R—ê°—Z*ë¥ù@ʱ i»"÷|©"$ åÇDŠõ@±¸¯Ù¬Mì4k%Ó‹tSìøæòÆr7ÇKA×Øÿky ,ÂÇ}Õ¡:â«@e}õ<ä+‚¹÷U¡Ÿu±ç+è…©¤ÇDŠõ}E‘Â{šÍt³ë¤L?l]'·V±Ã&£Ñ8~% u©Ž˜,PY“=í%¡a¿"2
ˆìuiáX5͇·Æ¦Nu +xÚÍYÍwÛ6¿û¯Ð-ô{& +€?vO®´nS'k)ÝÝ—æ@‹ÄŠTEÊŽú×ï I‰v’Íöù pf8˜/Ìü@‹ ‡?1IãANâ4dŠ5YlÎød¼ŸÎ„•ñß—úq~öÃë ™¤,d4™/{ºÆ“DLæùïòÝ»éíõÍ¿Î}©¸7eç¾âÜûíòöý墽;O¥wùÓtvî‹8á))‹¸w};›M¯üëÙë»·¿ý:ý÷ùÇù/gÓygYßzÁ4ëϳù$'~9ã,H5y„ÎDšÊÉæ,TSa8Jy6;ûG§°Ç5¯ŽE#T S2Œ&>ËX$ã1ãŒ+ˆ‡‚I™Æ]̤‹™“˜ù9:úÃë(ìI +Á’TeF"ƒñð#æ|þæ80BE,<šôw?±±“1Rö·Ž‹R‘œé¶9÷{íZÓâ!+÷fymM¤{ËÚ7:§U6|+ê|A"úbËzw$öW]Y]Ž…”ÆmST+«¿ÊÊÃ_ÚÄr$Xªœ,UJÓ׺‚â„—ëVï6EeÞ–Gì¸#®Y‰ÄÓÄ+"gô¸›¦¸/Ê¢=½^ÂPäY[Ôv“eV”{R…ðÀûgg€ÕõI[n#^—¥>#‰ôW¼]g¼0ò¡k´Í¶ÌoÞcÑ®i…{ÅÒ«ô#=æ S\àSjm÷ÕÄßì›–V÷–¢«z¿²ÚÚb£I¡É•!\]ÚÍ]nQìî®ÑVVþ®³§ùó¶ ½ó¡[ÔF–
„4‘`S—˜© +s QÜqËÌDeeÎ<ï«{.iSéª(÷úÍòœüK¨RA¨Ù/QÏœËÏÃÀFÞ«MñŠd0É#†Ã¼oucƒ÷jýŠT£°X×û]Ç͹yvè˜ÇÌG?uÜM}ÌÞÔU»îø‡cöAg»æ™ì˜SÞÕ[[PJŽ¶jÌÚzw ò¾*ucY˜93)Âa»–0T"eG…¿$™aKYÌaü‘È:³ +ﵶ»S¿6›ÔDi¶zQ,D̈F= ˜£R_Ø$ïR¹^fû²%uº8vcBGØ£ã£mæ—T{¶‘!iÜïX±$ŒÜ„ôߌ»ª$¶"à‰ˆáœ…YZ‘¼j Ô}0؈Â(B….ÔÐÂH™Fm'hvmiíºn4‘LBÒî<ñö¿@(ptW(»ÉDlZsü‘fÆ+0]§ùW´6¬QÊB¦ÃFúÔ9jhž»"·ýƒš€ân†Séî±â²¨ŽÄlæQoJ,,¨Ž–ÀfQ‘J`%\½úRÏC§NÊd}7R%ËÑNcã&äTT0ýÁáø”„ 2Š_¶³“1tPtIÊ‚(Jè)”6¤¸°‘%”Lâš–÷–KWÙñ‹v·ð•Î-Ã5
h O¹Ã•cY$Eûa6C'ƒcÙ¡+?ˆ"¤p5 +sàcÊõ†Nê(6xú?øä‘´È°’©ù%ÌðrdB¬“$vSî£Ó(º•ìVÙÈ.p€¢P¸M²r5vL˜â<:Þâª[•#Š#ÅbtW z“Ns(¨$RêX÷|DãPÔÞüNM…nvêÌœ9&"9`þ%tªç +o>i'ßQ }ÏH'õ|øÍ·¦Uò +i€~:+³¦ùúSô¿*C«nùEu®"Í€-ø‰¾Ë/5á ü¦þeXÙî>z6‚”°þŽ“Ñ)xá\ÌKmsÝùÿûǯ˜ ×ÓÙÕÝÍ»ùÍÛÛ43Ž +ðhÒ¥²ûgJ½o·{º¥²0ÿ-¡K½rÓ3@¤KúÂs=3PÀȺÒt-]h’"ê‚>FçOoÞÝ9Œ¯fvß\#˜«´•3×`ß½¾"B endobj -2603 0 obj << +2601 0 obj << /Type /Page -/Contents 2604 0 R -/Resources 2602 0 R +/Contents 2602 0 R +/Resources 2600 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2611 0 R +/Parent 2599 0 R +>> endobj +2603 0 obj << +/D [2601 0 R /XYZ 85.0394 794.5015 null] +>> endobj +2604 0 obj << +/D [2601 0 R /XYZ 85.0394 449.673 null] >> endobj 2605 0 obj << -/D [2603 0 R /XYZ 56.6929 794.5015 null] +/D [2601 0 R /XYZ 85.0394 387.3591 null] +>> endobj +906 0 obj << +/D [2601 0 R /XYZ 85.0394 348.9069 null] >> endobj 2606 0 obj << -/D [2603 0 R /XYZ 56.6929 450.6118 null] +/D [2601 0 R /XYZ 85.0394 312.5533 null] >> endobj 2607 0 obj << -/D [2603 0 R /XYZ 56.6929 310.2734 null] +/D [2601 0 R /XYZ 85.0394 280.764 null] >> endobj 2608 0 obj << -/D [2603 0 R /XYZ 56.6929 218.4821 null] +/D [2601 0 R /XYZ 85.0394 215.5282 null] >> endobj 2609 0 obj << -/D [2603 0 R /XYZ 56.6929 156.8972 null] ->> endobj -2610 0 obj << -/D [2603 0 R /XYZ 56.6929 83.357 null] +/D [2601 0 R /XYZ 85.0394 95.4636 null] >> endobj -2602 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F42 1288 0 R /F21 994 0 R /F49 1308 0 R /F64 1435 0 R /F40 1218 0 R >> +2600 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2614 0 obj << -/Length 2627 +2612 0 obj << +/Length 2543 /Filter /FlateDecode >> stream -xÚµYÝsÛ¸÷_¡™¾È3&ƒO~äͱu±/‰íFʵ©“Š¢,Ö©iûÜ¿¾,@‘4$uÚëd,ÀÅb±ûÃî¢#ÿè(’>á±…±ð%¡r”®OÈè¾}<¡†Ç³L^—ëÃìäÝ/<Å~°`4[vdE>‰":š-îÇçww“›Ëë¿ŸzL’ñÄ?õ$!ã/ç7ßÎ?ãØÝiÌÆç'ÓSÊ( -€)Pl_ÞL§“ïÓäû/_o¿|>ÿ0ù|úsöëÉdÖ*×Ý -æ@\Ë54Dk„ -„Í-&sg5$nl0±±Iò-RÕÛ„°Â²7«¤AJ—Ù2öLóòÁ-±šÿ¢ -j—Pïh8Úû,$>”βï~pä–I¹0õ§^U¤ÍSbjØEGò¨Aä¦HÒ¬‡Zø 1S!ÏV® -9ÛùZOM¡6Oš@!œáÛÀ•IM‚¤ÖžZ{·7‚Üwžµ&·¡fá¼ Ä[ó¦onk¦®ç!d -¼‹ÿ.—½\½-þ[.µ®-ǃ^Oü0Š¥«ï*GEULxD»–Ë¡^Wª&" -ÿ+£R¢ŒZäk³ÐïòtÒIJäe•uÞäÏÃøÂõZ×ÊJa4.+ÕÆÓëa•1HgtÀÕ§·D6c#ä}É‹‡µO 5É -¾Í_qd‘-“§¢1‚žJÈî5~iœ€CBm4ó¸TÀ¶"[,Wó40Ø…g€ÀÕˆ“AXÏÛý èÒ -\;ÏA¤Â=¸Kéq[[ªuW’˜0íΣª‹/` -2gž&Eal zP`x挞<øûò”³>‰É‘|ÕåÚŸ¯Z®.»KÆÜç²ÅÁ%-“cÉÞ]!ò9…Ä×[òÆ3¦QÍ$Gàxi²IæÄ¥G{eèbhm`D ïîQ‘é‚R:Ö!6Ä ¨æcaTM`¢3QM+eE{z(÷,`oÃPc¼šý±)ò4o:þF¢}×´nß•_ÐQå×Yçí€ï<šVW‚Z÷¢‡F/¤£§Ëµ=-—FÏÄUíPŠþæ}¬WêpæGš«Ör9tcƒ7Ô0¢²¯Ü´5¦km}E`ñª(UXô>a%„ôÛ{¡Uÿv“•ÓégÀÚ» üMçR-
âe^(w©†JEÝ}º˜þ…R{+ñ#.ªŸ6›jkà“7=?ÛRµoëbó˜Ö”*j?÷#Fét¸€ÀriÀ¥†Épø¨Ýƒ -wXŸA'±õfa6f}T¶I8fö
¦æFCJЧÉ÷wÀ -—êï¹®ÔÅJ³é¥ ÜÌ®gßñëN‡S~WnR×UšlCߤÀ’àÀªÒ;Ý©°[ÛQë}›N¾ªÍ²îÎqÕ€™UƒÁªA»j@-'déí`=ü`%Þήº+íÌâã ½lw7T·wC蘻!Púnè¹n £ëwk.}õc³ã@öyåþM{÷¾}í{²àD@YS«”RŸÊN£ÁøÃõÍ%Æ$˜á‡Þ³¥³$“?]£ãÈ´›<ÓÇ*ÛÖ2íå¤kˆö·ô·–ø7ˬ]endstream +xÚ¥Z[sÛ6~÷¯Ðô¥òÔBq# äMŽí¬kÇq#5Ûíå–h›JTEÊN:ûã÷à*’©ìîø +äõ0̳~¶ï–ùSVÕöeñTnóúye¦àïqÙcº+,0w»”æ¹s”Êúùæz¹_£QûÔ§ +h¢úàQZ´Oƒ$½I†Ð"ÙR +.å5Pr(- T‘üñ*æ
$øZ"d»+ÈÞ@:ÌJ8æΣì5…IhŒ(8x‹½YVdcÒˆŽ1áE§¢›DI<ž;ÐKZì2ƒ)Íy‹œH +²ÃY” ’Pb‘«£ý`I•ë=!ý´n Þ)w‚)Qæ¦öM¨ˆËD‰Æ…-uÒ¦µØ¯¬Ûœ™Åwfs3*·{c‚·¾¹qµ #X‰Ã™£ˆµÂt{JÄؾX¤’¯«l]åuþ’õ["¨žÇ\µ°D‡Ò–øöÀUD1ãÃ$(@²©Ã„""¸h“|—³mZëÓ‹ñÛ‹™á,Jý\j‘É1àž³ÔÏéÚŒz>QÒgHßÄLac§ã©wiQ|5«Ù—E±«@Úfúš›8*ÆO†±|ýd>+ÊòsZåËL[˜£´Ìç€õE‰D4aGR]Õ¯>Òꛇ EÜ©õœùü¶Ë8!N„fËl5UAǘ¶Ùšm²EþÆ4ë`Åñ¦ÇΣTüí2å1q‰&j@¦¥ez’)K‘´"]æ[ˆåöëalæfΣܵc³D˜AÍÕbï¬ÒHêÑE¤ÏÙW0-œÌUhDÂÇg.Ðxx•Ù$¸*—ÙY(Pƒ‡'D2{bóÉ$¦9GŒÚ
Î2 b¡§y¸9ƒDOD’f7 0%¶ã¢ßˆîGu5`¥má1`Pâ +æ¸Ì‹¬Ë–„ªY@´dËlµü+‚ü,H›ßtò£qdnÆJ—o rbT
K›"]Ø·Úáài.Ž•N›_¯ÓU¦%–ÙŒõ´[eëÚ¬èÚÜZ³²,W©#«öjSM
úoŸÎÇàPq6Њ§«´ªU¸g˜Ø“©Œ_ŸóųY_¨,À05… +ÉS¨V†µeï[7ŸóÊ]
d¢E3:I„"Þ' §°¸8㮶^”«•o]#¤uÖ]{cõ#›çÐAPÂÛ6¢(ObÔºÒiG³/éjSdh¡«þí1U¶˜,«Çm¹òhˆ©æyøqOxçÀ€Þh8¼7QýáÝ£txŸªß$Å
’t +£§ÒëÜ`l¶ùZG*íƒÐß?îìöö(ŠÆ +:ƒÎaXKMT¿–<Jki¾Ä¤ªeµ5H‘Vº”1Ð3æ@ÆÚa ¡ýlqÖýà¥l8ó}rðÊýúÎÞé©ÉpjêÃuåÿCR¢1E<&G’R5 +‡Òºz 銀È×éÙKVè +J?*è0c`¬+ +íDãg³¬>¸¤ÏvOO>.iÆúEÆ(ŠvLd
Ô€ÈJ‹ìù A&•É’ Ùª
‰º]ë¼W%Oå~çIŸü1d´•N(ýb +‡ +¸·ÑåŸKÞ÷Û?‹Tò7ìÝàÿþ¿€ý¿@ð1!hØs;<)öϯï.ŒÜ†Ä>»^~©]å®~?Ûm6åÖ*ìÓ)!dlœÜÇ<ŽØ˜Dâ0ÒÙÿE8” endobj -2613 0 obj << +2611 0 obj << /Type /Page -/Contents 2614 0 R -/Resources 2612 0 R +/Contents 2612 0 R +/Resources 2610 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2611 0 R +/Parent 2599 0 R >> endobj -2615 0 obj << -/D [2613 0 R /XYZ 85.0394 794.5015 null] +2613 0 obj << +/D [2611 0 R /XYZ 56.6929 794.5015 null] >> endobj -910 0 obj << -/D [2613 0 R /XYZ 85.0394 769.5949 null] +2614 0 obj << +/D [2611 0 R /XYZ 56.6929 752.4085 null] >> endobj -2616 0 obj << -/D [2613 0 R /XYZ 85.0394 744.3535 null] +2615 0 obj << +/D [2611 0 R /XYZ 56.6929 160.8368 null] >> endobj -2617 0 obj << -/D [2613 0 R /XYZ 85.0394 712.0918 null] +2610 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F64 1435 0 R /F42 1288 0 R /F49 1308 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 2618 0 obj << -/D [2613 0 R /XYZ 85.0394 645.3077 null] +/Length 2045 +/Filter /FlateDecode +>> +stream +xÚµY[wÛ¸~÷¯Ð#uv‰Å•[I¼ñ–6§=Þ<Ðe³‘H•¤œõþún)!VÚnísÌ9æú&#¿d$ÂLñQª8˜ˆÑbs†GOðíÃq<±gŠû\ïæg¿¼gr¤Jh2š¯z²$ÂR’Ñ|ùMîî¦7—ÇTàhŠÆ±À8ºžÜü6¹²ïîÆŠF“ÓÙ8&Bʘ͖àèâf6›žÇŸ¦ÿx{}5y7½™ÿz6wÊõ7@0Óšýëìá-a¿žaÄ”£o0Àˆ(EG›3.œ1ÿf}6;û['°÷ÕL
D0‰„¤iÀ"”ŒAJ:0‰P(a”“¼¿¼‚ÍÂ>€›öì‡G`Ä%æ†mþœƒ‰¾æ¯¿cL×n¸ÈJMÐèqL¢Ü’˼)žÊ|i9_í³íI°D±Ì˶ÐÒY[T¥Õ‚÷µ +±ÙGçÏ{¡†hÚº(Ÿp…8ån–ÝFÎ9bŒu†,—o)ÍJ¡¼Òe³w÷P(„gÄñ!Ç1È¢˜)Œ˜³4H•a=ŸŒ UÑçéDù[ eónÒ¹©ï¼¶¨íÐf—ŽâÅqdÎ¥”ò[+ïÂjW.õW'ð%w"ŠÕëþQ4mÜ/nt6Ú)“«Ùíém†#XÇãþ£®VeÞûl=ˆa´d>±ß]Þ\h!8Rö1YnŠ6Yd“G÷ù*7æÌË…Kÿë¬ÜAÎgë€æ$IOÒÅë±Iª‹±a¸n×a‰áXÂ<eÿ±8xR +ˆƒ¼$ŒöÄÙ:Å8J 'Ã:ÅV! +i&Ü„^«§%ò0\})´}Î¥–²P ËàA
×Ì&ZU$¡^ËjÛ@1>À +õ’…â—ƒ)N…í¨O§µâ¥asÀ‚Š¿:iì¶
iøT1*Å•'ÅilÔ¾nó·ÀÝ_œi¶qá1ƒ”zˆ·Å(T +XºÑxUó/-ü+ÊÁœEýºm«§:Û>kS¯üÀ¤Ï™‘²üfŸïÒ4j ”7ØT +z—€wL88Æû4ÅH0Xkà~p¤;`NÂöÍ¢ÝeÃî-¢9²¯¹ßÛu¶È»yVÔyàà‚!P°€U.{
$`$ +9ÝÝ|˜àÞ6܇wÖ€g³ÍævȘ8°ÞOÑßlìváëÄ1à +tô26»¦uTÖ.ž-g7ßÝ…p‘ýO.4²áß¾A>»ÖG-L®~ÚÞÕËÁ
KÞ™¼»èù‘³ö©y³£[F‡ë%\aocÿ“¿<†þžI/ê±x2 +§)Ôˆa4¯:MH_ÚhÈnçÈjêl +endobj +2617 0 obj << +/Type /Page +/Contents 2618 0 R +/Resources 2616 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 2599 0 R >> endobj 2619 0 obj << -/D [2613 0 R /XYZ 85.0394 536.5897 null] +/D [2617 0 R /XYZ 85.0394 794.5015 null] >> endobj 2620 0 obj << -/D [2613 0 R /XYZ 85.0394 406.1825 null] +/D [2617 0 R /XYZ 85.0394 752.2365 null] >> endobj -2612 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R >> -/ProcSet [ /PDF /Text ] +2621 0 obj << +/D [2617 0 R /XYZ 85.0394 660.1634 null] +>> endobj +2622 0 obj << +/D [2617 0 R /XYZ 85.0394 598.3452 null] >> endobj 2623 0 obj << -/Length 3136 +/D [2617 0 R /XYZ 85.0394 524.5718 null] +>> endobj +910 0 obj << +/D [2617 0 R /XYZ 85.0394 486.4641 null] +>> endobj +2624 0 obj << +/D [2617 0 R /XYZ 85.0394 450.2617 null] +>> endobj +2625 0 obj << +/D [2617 0 R /XYZ 85.0394 418.6236 null] +>> endobj +2626 0 obj << +/D [2617 0 R /XYZ 85.0394 353.8836 null] +>> endobj +2627 0 obj << +/D [2617 0 R /XYZ 85.0394 247.2095 null] +>> endobj +2628 0 obj << +/D [2617 0 R /XYZ 85.0394 119.271 null] +>> endobj +2616 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F40 1218 0 R /F54 1383 0 R /F64 1435 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2631 0 obj << +/Length 3250 /Filter /FlateDecode >> stream -xÚ¥Ërã6òî¯ðÍtíˆÁƒÉÝ“gì™8?ÖvR›Jr %Èb
E*"eæë·nP„DIµµö`£n4ú…†ø)ƒ~«Pe";M²(ŒOÇóvú -c_N8áŒÒ¨õñùä§Ï2=ÍÂL uú<핆,Mùéóäà*Tá9¬À‚Ë»§§«O£›«ß??Þß~½øxõõ|Äã4UÁÅÃÃÕÝåõÎG"f0&0Ü^Üýzñaç™.¾\=ÿõüËÉÕsÇ\œIÃÙß'üÅN'°_NX(³4>}‡ò,§ó“(–aIé åÉÓÉ¿»{£vê@¢8
c)S§ÃbãaÂ9 %•Š“Nl‚‰Ía±>moT%¡`2:í/¶CÒ!
=’‰y¥>ÉOõ|‘·ÅKQíN&cÁ¼žè¤,xÕ•^ænp$¯°Ëɨi×¥ÆÏoz}Î9>À$&‚÷¢Õ«ÖMq«ê6ŸämÇ,àó#'zš¯ÊöƒÙø–ˆ¤b J)`“†ÓIÕ4z<bÓe=/ó]Ò¤þ&G@d)Hƒó0‹ca'¿ey>’<Šj\®&?Ú™í(³…³aãå9O
B©+„ - -OÅ+é¯AÑkã0ñÃ:xÓy¼úíþæj¯¾Ä„jI0úXûõ¥Ã²úòe'ÁHCÉ2y˜¤C é%"/S>É/”B°égðùb²Ó™ÔØ¢}Bdž©†ÜAÀšb@‚ÞEkL38qgš}î`‡¢Ìèaë´FûOJ “{ñ#'ÕÃ:pRËžÔlç¤TȲäI‡4@Ò;)²$Ý"ù°,ª¶ñÎ |í²u±o>Ï—k?Þ¢×ídÜl åu5×ÝÂm=é‰(…Éÿ”éçá©p‘|ÿ IØbÊ„à>ÖrXö„n†B0\#ºÔaR,õRÂõ6o`!xq˜¹k€;/‹,d&î{ìn¶ øAŸgy"; íŸãÙú7çÐŒ.]¾ã9À–ìõÅѲh[]í?&BgÇ[ëÀa8,{ßöšË!’sÙ!9h.}’¾c³áÇtüðCB¼™Ë\!#"¡»¨50m¯#¸ÅE2=âpúXû%ØaY ~RgÞÏ–Û¶Üf+Up%懹"œ¦<sæ!ˆWúL¡KáÂ=tèˆÏÏ_i¸ÆÒ0ìLMÀ‰-aõÙtÞgºÂ^Aë8È>ábÑÚtÀ€+·nŽM—g@ÿñ1ÄŽI*=;Be°K&Ò{Î|Q#%‘ÄDI$Êz^ -Æ«Ö -Ÿ(çmn˜wÏ*f‰yg›µ{šéär½p*û‚µOÝ¥4o‹ÇÔ½‡u@Ý–U÷·á˜&£Äe•¥~Ó;iX–„Ü 3æó«ýBAûœ
UôËêõµ+€ZÆö‹ŒÉP$É‘4 u@dËŠì·§ÔDqy˜¤C ¹õ”šDBù$ûõ3zžr¾2±¹u¶{ÁÊX‰Ã‚ècíD‡e±“ë¨8Œ£ìI‡4@ÒcɶH^”eýnN&éýƒ9Þ‹Ø”Ô^±ø¢±uoÎõ©p ˜Ò„avë]_â]
R÷²°Ï¼ô"`¼'¾#H›G™¶ÞÆA€m±^éŸwicW´T:ãNñ¹å´Å.ÖGùÂÕ}¸+§qØ('o÷V3G#É#›í»Òµ r5§WÓkò)‘Cÿ$(¸ -ì©T’¿á›²5›·º|ÉØW5îx›‚‘Fà’”½'„BHtIÏ×·×w_p‰û‡çëû»§°Épv†G{IA;‰ƒ±M¬!}¡:dãݛzoê0hß8ø;üÝÞ^^âV\6П¾½}z -qÐ>G&Ñfÿz†Ep¥ƒ—,’§«ÇÄÁÙ?ΰ0ƒ40:£2½K$‚±Ü¤—´®•Ó`N»ƒ£ñ)•rT0Åkñ|kïN:Ëm1·™oª‚ÏŽ[X« -Sš¡ª–ÕVëÍì0Ýb0£ÖÆËXÞ9äõÆ<xBé§äœ»ä +xÚ¥ZÝoã6Ï_aàÎÖ¬HJ”Ô{Ên½Í6Ù‹ÝÞõÚ>(¶‘%×’7›þõ7äeR–A@Š’ÃáóEóI +ÉîW‹WiŸ‹²ÄæûËC“¯±ïþ[ÖùCv([šèP•yÓ`Lª¥úÝûÐå]†)‹žÀŽ5×3‰4ÞþxÈb‘ÄDRïÚ¢®Nw1Ó#'3©BÊ šÌ8gi 3ÈlÑì/Ô´€á2Ž¦Ï›bµÁê*kr¬Ý +€›˜¥Innê6Ç“ãß÷*µÜ@μÉID{ì[MÖÖû$m ñÅvWæÛ¼j{ÀÌ£<Í:‹+gZ˜`É“iÛ›u¼;’„×9øùmÁö…Þmô‘D|hë-k••%ɪÉÛÆžš=a ç$³Gv¢„8‹9WÅ, ExFi ÑÌ¥BÁ´hGuÄ¥»$\¦4…Û9º¤%XÒ¸‚j,¹¿äÏÙ»0¨‘DàÌVÙ.»/µNÂV¢ÊǼÊ÷Yk§@ZÄ
6=å/—œó)ÓÇ£RÔã7次ÖihÛH«¦¨b´¨Ç‡>~€ì¯jèTóo»²XsÞXÁåœc¤mi¥`ZUþƹCGà^MËk€JÒÀçÑŠ&}=Õz,•Aϵš +]ÆY’F’´Z^=Âöúœñ +.f<ªtú¤-ßÑr©¤»¾fåá8lÀÓ‡„Ç€S)ôX¦ÒŠk{hZœ6Í„<’£«þçöfŽ-Zã¡‹™u9cPÍã01&ëì0ÄTÕ‡)Ç¥›ôD¥}dPh©ÿß ÕÇÛÅÉÌRPÎo–Ÿ–¿b¾;oÖ4õª xÃ7ù¤@’aæ6;=²p\{ÀÝûy1¿Ó›îÎqU%hUÕ[Uu«*n)ÁPï{ëa‡ñvùÑ]é(†€ +6ƒq7ÿåöz~/àYÇ‚¿zºT#x±T/NŒ„AÐ%Ç—´DKz†Ë(ÉNþ© \A‡W°SˆŽ÷*ÆL5?¬·ÙÕÝ7EË0 \nìÕt5xÑEkçÌìKï´fWgO +®‹cõÊÍv©ÎŸTGeNjsrRŠiüÊ’–h`Iï¤8⤷ä—}QÙ\ èZ›SiÛm¶ñím—ŸC7=Ááey<èó1 sêé‰0eBˆøòô@óðDXK~þ„@¼‰|Í»T#'d©Ì ]™`É¢ÎuXû|e’îýøZ„4†g®£àίSè^½ÅiîøAGNÖ‚žy<ò'«Ð´ +.¿ã)@›R³©Öç}Ѷyuþ0p˜(õÊa8T#‡a©Ìa<½.cK¯ËÉ’ƒ×Å]ÒWlÆüèŠo~Hh@·±ž+xD$tkµ†• 眔d\‚.Õy vTF‚Ÿ_MµíIRôx~ã\Í +ñc¹üLÝ5–‡†ÈL4&*¡òlòͺVÐ<–¼O,L†Â4WvÞ‹ÎÏ€úÝÊv*=»…ì{#ì2Iï
d«óÕø6ÑJ"Vø`™ly…ë^bðýÒÐà…³lÁ·Á¨{ŽèZu/Б}7T°o37w^Ÿ•7ê‰2jÏJŠˆ×/Ø“a; c 6½»Ã`T?VXîÀ‡+³UN¯Þ¶Ùê¨Rb&Níö`ÉoEÓ¢+Í´YD€&ÍžˆÖI
W+T–i¬ñcÇÛÔ!ê äÍj-“/ö‚Ó`À%,ÛF‹ûIô-R‘}¶®êj(Õ(t2Õ¾~ã^¶õW«u‹óU\rÿ¯¸ .ÕˆF°TF#ì^Õ»}ÝÖ«º<›@eî˜@>ån0ì±GºÁÆ~b?Ä +‡~Ê&#¦6 endobj -2622 0 obj << +2630 0 obj << /Type /Page -/Contents 2623 0 R -/Resources 2621 0 R +/Contents 2631 0 R +/Resources 2629 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2611 0 R ->> endobj -2624 0 obj << -/D [2622 0 R /XYZ 56.6929 794.5015 null] +/Parent 2599 0 R >> endobj -2625 0 obj << -/D [2622 0 R /XYZ 56.6929 106.9827 null] +2632 0 obj << +/D [2630 0 R /XYZ 56.6929 794.5015 null] >> endobj -2621 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F64 1435 0 R >> +2629 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F42 1288 0 R /F21 994 0 R /F64 1435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2628 0 obj << -/Length 3017 +2635 0 obj << +/Length 3094 /Filter /FlateDecode >> stream -xÚZ_sÛ6÷§ðÃÍXžV,ñ—àôÉi”ŒÛ4ÍÅîõ:Mh‰²9•HU¤âºŸþv± -”)9swÉ `±Xìþ°Ø]Zœ§ð_œ;“¤*×çY®“ -s>_Ÿ¥ç÷0÷öL0Í4McªW·gß¼Qî<Or+íùí2âå’Ô9q~»ømrõáÃìýëë_N¥I'³ärjÒtòãÕûŸ¯ÞÑ؇Ë\N®ÞÎn.§Â8gÈ"™M'¯ßßÜ̾›þ0ûõÍÇŸ~|wõjöîò÷ÛïÏf·½pñDªP²?Ï~û==_À9¾?K•;sþ?ÒDä¹<_Ÿi££• -#«³›³ö£Y¿tL!F¹Ä8™hDÊ1˜<±J*¯‘¢…sgn¢¬¡ŽÔÓ‡f·¥‹â©ýºÎLªûºÙVõ=M¬ÊbC½§²Ø¶ŸR#˜nÝÔÝ3…átQ~JSY—ê÷Kl±z,Ë?Âö‘$HúÍM -‘äÆH¨uUïºiTê&ÛKá&e»)ç]õ¹\=] -!&`SóÉ/—ŽÖËæÙ¤ÀÆNÚÝW¡è1›î¡¤¹ÆO-Û’—T-Ï›õ¶]Яª¦Ù¶œ7õ¢åýn^
Q”mVÕ¼ê@"O¹!A?—uG/Š®;åÒÓ7kî]IÆ.Hö5õvmI‹º©Ëê7Û0{A?Ó“‹ä’Ó$5pk²Ô$JH7~™hSðÄðJ?ý€[~óÆꈎçrh÷$xðoš¥×ôxÂÊĺ—äë©FŒo†°Ybmn†Þ”·lʦw9™Â55µÕü&ù£|¢ßUXÝP{ÇL6»»UÕ>PöÓý&ƒ©.2Ÿ\-;´MÝ^É°†7EˆLM–dR™!R«Õ -o˜$ êùj· K) «Ð;è ¼À_ŒLE<ê¦2”1#h[ð̺ƒ£¨ÌN®—«¥èê Çò@Žé[j›MW5Ìñ\ˆòœ×‚|ü]YÖ=ú|ˆ#tå²Ø:úá-í')uÝ<bsô"X“&y®ôé‹S¿=•¿WcܾɿäèDáN‹×SÈ7¼y¢”Cé(p”^‹Ø¡{€=´Š2:܃•¿ Ø©Âú†Ú;&(Ð#«`ÄJàNLîa/„»#œ •Ì“. -ÈøSÁ™A‡ñ§0ðS@ S…õ
-ºc2}WQ»ð.Jõ -*¬o¨õ¦€E‹rUÒ+RÑ¥ž…Jy'4²t#|ÙÊc6jWM}_nû;(Fq_ì¤ØÑa²œÝºxŠýẟ1 {ÊMÓV]³¥‘AûÐ<úD ò¤³ÓcÈÓ`håiäÅTÇ‘×SyäU£NMHWÕ`’ÏÅêì4¨ÔÙIÙzªá°Óú™JÇ°³–•jMÈd}¢3/8t·v/¦§ZúDÔRžk)¨ãÔ\™Œy‚7ZMc¼“<Û‚Þ*ÛÇ–ý´%À©,I¥8×»Á£):•ÚÂÆ›b[PBÃOÔL¶*Z÷7×;» ×UkÌ4§“è µ>M‡p9>X¨°úÐï¾ëL†G©0O‹·º¾ð*´Y¯BT¨U¨£•|oq¬1-»Ï‹#|lƒcÓØ]‰Fð*ÚPX†\Ç·ha1™7õt,Â…ë׆Ê
>\ÒP\-B€ãxÅú£à?‚£6hŠÅ¯XìÄbáï°Vô -ÄmIcôün -~‘…¯ÃP؈…X}è®H}è—H}t±—…nd¡¤gä ¸P¹gäñå4œ%J¼p ‡`hN6a\Ãœa¢¨éw(KÑh»›Ï˶õW&½é=q»m÷Û™«€±X =|ܨwÑNä+¢¬Æ—
1/žÚo¹œ…‚<V¡ÒUäA—T&ÕÜ•¥0ì|¼¥û`ÌDe>_H49\ .<ëûÝÚ—ìpŠ‚3
¾mµ‚gcA£wO4Êi¦ç혓ÔKæqñtá7¶“‹uÓw/Xš‹E?özãåЋuuáï¿{~ÿÍÀ)kR´kðn;%Íø‚/³£b/ÿè˵v_8†n_®÷CßDZ¤8R ñÃr-ÞŽ‡åÚÁ?¤ƒóE¡A_°õo.¼Î½*—çàx“<µÞ›8Ž»ÞÎÞÏ>^aa÷vöšxü0û•:o®ßÍn˜Sü”¹¤I²”’‚_Ð*a»=‘„7>•}5´nA´)\¶å¶Y¯Š»r5Â8Ï@Ø>ÙÁ’4†n\tç˼Üö¾Ô»‰Žæ7[P–§¥j&.éöEÿfI-—ç¾àk’AÇ2H•&NÛìÿPÿ䫢(¾ªð߈ÔøàƒbåƒlLÙvð¼Ó¥c£6»Ž#ÀÛÞ¡†¶aßn¨wûýCçÙmûšù2TÅŸG†¸lU¶C÷ò2îû².·TÃ:ò1H›¤Â¦“_³b*z‰A´]§"^TÙ³ˆ/„ZÞµ§z¾íÀ’"…¾¶ÃmÑœ#6”6Ñ©i{L›uqÑ1UAhf¬zIUÕ Uª—Uuj×HU‡ÛŽ«*Þ0?¦©4Ñ$<¢ªÞ“m5¤%ì"Å~ý}ŒW«ûfîq}\Á}J._PpDuBÁêeŸÚ5Rðá¶ã -Ž·=æP”LTæì‹hÜ;†la|Á²i:ï1íKF<4~n*‡QÅ{êLÙÁíÃ2/+äÞûeÁýøgÍq¤‚x‘Z"¹+ úä3JõMHÇLFnž9ËN/sÛF'ÂeÙ·pòšÈ¥ÖCWÍߟNžÕñC[P¸·K”yc2÷\N°8&%ö30}–¾Xf/ˆÃëòðÙe.ÀÜVÍ}ûPŽI™'™ì•™Q&ÔiøÎC–ÆœÑFÒᯛÿ~ûø;„šyÞDã:2Á÷;>#À°Üz(à( ¢‰øÛðz±(þ+>—çþk5²Â;‚³:ï™üãú=åpSmñë«"å»w?¿žõÏyWbìÜ_¯Ãø|\µ -{(>—q¨±Š†‚ã M¹]Wm2Äø5倕Õz3c\½»ùéÅètïÎ@ -‚·T)pŽ, -.LŽ¥ac…'à¦äþÉ›ýÕ•u_g½Ùm6Í–CÝyXn]cõÏþïžkâ?X¨kendstream +xÚZ_sÛ¸÷§Ð›èiÄ’sONì$¾Ævû®½¹»J¢,N$Ò);¾OßýŠ”)9ÓÖ~ ¸X,‹»K©Q + ÙQlRßêP“EŠ2›5ÅcÖU °±7Ïš[Ö«Li–97òïEÝå=¿Ue–Ñ`™;Ç𰮊٠°§bµbÚT˜ë¼ù³´óR)öÖE¹Ñê°ô‰R~jLHëà±°›S•xy_ e“o³Õ~}Z³%7çù"Û®ššßHxê@z³çÚ±ÏÀT¬b_ie‡*L“.o‹ªãÂåLœòíu8S_…&á´àç‡|_-¥ +¸MsR)d¸BO½-Ï[†µ‹ +Ý鮬7Åó¡b x”DèÊEè@¨·$}ÏwÚkèÉöÈFaä×7µ7~j[ó¶µt-ZŽ^Ž„ñO#óÅýU(1=<gÕúaË6®B†=çÙF”B0ÏQϸVÎû”xÚn„ÑdYm7ü‚Q9™vù¾¬6||¡c•gÜ¢ÉðT ߺ*›¥íÏN¤v¾àÀtQOyþÍMßÑù][¢É=4cúgð
zãDcýcº“¯\”<‰¢Ôûç©¥5 -›Æÿ´¿Á"†7#µýÍ€!´io3à6#Åôà:¯e¾;ŒT+æ +ÔÚ»"‡1ÍLêõ!øqWJO?t"Žé„];>¤»\¼„ÍL=Cs +Á_ÎÍ~"ƒ›v¸Nœw¾F*|!^9\'Áׇ©î:ŸèìþžÜ/æL²÷û©`à]6.q"/nä6¢Ì¨½ èmÏ_ÊM@ Ùü¹ +7¾âASa4¬à眕n¨[ +PÜå~ØI‰£Ã”Ó9»uöÜõ‡XE: @êiŽó¡ª‹¦ÚtJtdO”.A¶Ô‘†§ŒÀÕ+wj—ë0òZ.B^ñÚ·*÷ííì"0ilGuk¹”ëÁ.²ÐŽU_;Ýîó¢þDhíNMâZP:j9Ûµ¦ó<SÌi]¶¸òˆuU#úb +¾«¬ÙûÄIßrr® +œ~!Á•ˆ€4ã=\C…Ž‰ÔMáݧ˜Zog³¼®é¨B'm=1WR}—霿LÛ*fW¡|’Aï0°å_ÑÉmº?øIŠZ¨ÈSáê]Å^6ôWÎŲAËQ,eܧµÁX·~LåD#Ó.Íæ~»88‹:ee¤NŸ™*ɦáÏF:r’Ì‹²2vŽŸÇ4±u5ej>E®)méZûEQ6¥«0Ûäåù7=§±Ùà¹ï&ßzæŽ{¨ì+â¸ä+/mÑÖîÊÇÐl‹¶ø‹–
ËÚ•i‘ã@™v`%ý¢-ž‰ûEÛÞ
?¤½õuBƒ¶l{à§GÂúáÔ h?+ýÏ?KÚý+Š}$áð¬ƒÈ×:UN)´‘² +rK±ÿ»Ëës^Œð©@˜tñ½ÉË6¨ºÝ><T1è¯d|þî<ì´¿…zi†ÿ endobj -2627 0 obj << +2634 0 obj << /Type /Page -/Contents 2628 0 R -/Resources 2626 0 R +/Contents 2635 0 R +/Resources 2633 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2611 0 R ->> endobj -2629 0 obj << -/D [2627 0 R /XYZ 85.0394 794.5015 null] +/Parent 2599 0 R >> endobj -2630 0 obj << -/D [2627 0 R /XYZ 85.0394 304.665 null] +2636 0 obj << +/D [2634 0 R /XYZ 85.0394 794.5015 null] >> endobj -2631 0 obj << -/D [2627 0 R /XYZ 85.0394 83.5598 null] +2637 0 obj << +/D [2634 0 R /XYZ 85.0394 532.8321 null] >> endobj -2626 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F64 1435 0 R /F42 1288 0 R /F14 1020 0 R /F40 1218 0 R >> +2633 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F64 1435 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2634 0 obj << -/Length 2644 +2640 0 obj << +/Length 2148 /Filter /FlateDecode >> stream -xÚµYKsÛ8¾ûWè6t•…àÁ¸7ØžLo¤™ÚÝ$Z‚lÖP¤F¤ì8¿~h€")(ÊîÖTªÂÐht7úñAf# -ÿØ(ŠIœòt”¤!‰(‹F‹õ=ÂÚõ³<cÇ4îrý<?{óVÈQJҘǣùª#K*%Í—Ÿ‚)IÈ9H ÁÕÝl6½¿›þûzzw>f©ŒÒ`r?½»ºý×ù˜G˜•Òàýäî·É¯8wžò`r=™ÿr6·juUgThþ<ûô…Ž–`Á/g”8aôJXšòÑú,Œ‰B!ÜLq6;ûg+°³j¶z]Á(á"æ_p6bŒ¤QÄ{ΈR.Œ3&¿Ío>|Ô† -‰ŠõÅ…>sž …Œ4p |j›5yeÙ›ª*öšïý¥Õ‰H˜XOÍ^ËjSçõðÒ#‰Œ¸Ü*Á]žKb >àÜ I‹uTïE˜¹'˜[.ù18öÓ8Cs¢°³›Ñ„DiÁ‘z_V<VÛ¼y²wÖ?H4LbËùÅI}ðHÉ8rBA‹:ÿ¦<"CFd(ØPdyRd Aмn¼2"9M†2EKM<ÒÇ\—ýãöªµ³F½©V«"üð¤8"I$¢áI—-µðœ„›B»iQduíÍS"e’E_tÌhÅNOŠUåc^ú¼Ýgk%®NJ\Ù£ÏðRrØÉÓ`,ÒH×é°9ŸÆ×íyžó ^¡À+ʦwµõE6ÔeHŸ¡O-u{ò"ÿ'¿ç'½”ëúúœ?çïN‡H¾UpÄ«ßP“Yßý!ФtîgÖý¿zŽâP$tCMãÓœ%$\5ÿ£¥îÿwoNºf³šjQýîþ³¥>þ=Jo}Õ -. -y£ŠŠ†í?œòàæýärl½ç†ÎE1çápýÔ™³¼žråÀñGµùsPRk[Œ‰¶$d®]êÁ"s,yY«²Î›üY
-4†þ‡De¥¿i'òÌ´)80mŠ+ÔUã–¥¹{ãêÙlˆ ïK^8Þ–º!.qíág–j•íŠÆ -Ú•…ªk\i¼C„)I(s l,<‰ÁB’ðUÛÓVŒíS.†žØg@ÞÚ§{¨ë¯¶$k«©nj¸n¯íÖÔƒjÀ±\C£²¥1À¯p™ -
¸´³À¾æ~=åÒ׶+AŒO>=UÃߨ¥ögåýÏìÝOîý‹XÇÀìÐ\’S—áò{‚ßiÁ¦YÄû—#2š¦ìûÓÔXÉÜ3mìžµnºv ÞYÌכּi³ˆNChÕ‹zÆÀ¸ÀÄ4&æ„èca»$|Õ×M‘/òF÷&=î_<ì·CÐ#x’G‚š:°èÞ§ƒú‰,VA‹yQp¹kU3@ZÐNè÷€®Zƒèo -!¿~–&I?hÚ¬<… +xÚµYQwã&~÷¯ðÃ>ȧk +„xLOêNšÉÆžîöLçA±q¬S[r%9Ó̯ߋ +ÉÇ„Û>÷۱mƮѸÝê‡ùàûwa<”HF4ÎW-[1ÂqL†óå§`‚ÜÜÏf“ëñûɯ·“ûјȘËàêáar3ýßhL9†ÆÐãàç«ûWw¦îa$ipu;™>ÏLæ[m× µO>}ÆÃ%Ìà§F!Œ0ü/)ép;`<Dœ…¡«Ùfƒÿ4[_ë®^(F4Œ¨J†„ É9=ƒK…4¬Á€‰O¯ô„æ“3=€ÃÞMïÌÁm¡Š‡c*Ä„Õ&þ»V™mEZ¨`\7Zfe©ãßÕëªÈ·›äIm<–%˜å!·}ùv·Q•*Áå~±Pe¹Úo6¯#BHðo¨yVæû®H³ªn+ƒÄv© îÙ”ó•yVke +«¼ØXÛb3ÀÓ8ñ>ƒ?ô]’$ߥúÏãõ8äXmèXåE3Ê*É–I1"q°45ù¾Úí+ˆ°à`¾NKSížIfß—*«Òß0¦‹¤JóÌ™³sƒ2L¥3 +ºÛF9Ë•y®[ñ¬2U$•Z¢s±I‰b€ôò6l·ªCbã +Ò1LìŠ;øO±Ì’:”€qbˆ‚Ë@µZ] +ñîà #F›ýyT¶ßª"]˜—:ÐÕÎ<JˆàVìÖ{±Ý3Ù<çEZ·çáÖ’!e=ð¶Z]€×µê…÷Ò x»ƒúámzŽJBŠBG½‘x U¸}αcUžW5B%AnaujÆ‚J&Ä·q´#á8Ú¬obXšGAõ¥æ=áˆG“4ƒ/°¸¦ÞD¥iò””jDŠÀGäf+¡«¥©5t‡|„Íá´…8CØuÍÑÀÍ”±c’Ö€žsÖC»iÖ]‹Ýþiãb]›q'RMÜKŸ„2$É9/a²/€¢ÇÂ88LE;¶ÿ‘?vîTXîˆ/÷||^J$h&:PE,m#³ÒpŠá¨å~KôCheÞki¡&j¹;
u]µN*kDŸ|ºð¤Œ0¨Š:t-DEÞ²_óÌßvEïˆejGª@3Ô¦ôÑ_M@¶Œükz?6p1ØØ1l£H¹¾ûx3iòJmUk{iIÔ-„Ä)¢+V)aq^FÚð²kŽËZ…`ÚÕÌ°Y–Z½Æ4xWÏêó§—4ßÛî°Ù÷ÐýÕ|²¹Ì3½gÃ(„I˃9çÂ2W¶–W0Ñ„W°uò¢Ú"cÓ>«€vªØ¦e æZ’`eÅǵÉÙÄ®ÀÕÝìC¿0=ðx £!Öf÷¨ýX¦Ï™ŸÖg³p¸½'Hl)ݦøazo¥²´î,·i–C%•£àGµRfªÙÂÂðs’í£’(F4Šëû< +µ ¶*Æ¡t©¤]ããµr[*pÂF¦é=~ÇB}ªËðtÉíÁH©0%“îuNR«€iRåùæ-¡øšå»öGG9€3p~‡EÄHÀn÷)Í”kðçsHìÓ6q*+œäiZy¦°ŸÆVÈñ¶"X€*‰œ’kˆÄÃZ‚¯¹àüì¬>y¬†ÅwFÁ‹2ýê#B
$I×dÖkRk‡êuçµ)@åcѵ6¥+u8c„u.|D]K åïóÕªT•g¤ˆ#qHRû×MiáÉtj$Å&)Kß ¡¸]Ó7½À¼ÅcÖ5;é5«²ç4ó¡}ܬ±¸êµ¸Ú$Ͼ‰3ÄDL{F²I®om:’íÓø¶ïÙ3Ä«±;eíöZöD6èF ½nJÓÞ…üK¸§½(iÝ[¼¸Ãâ-qþ¾?DÒdP^¼ú‘ˆ('Çð3±Æ±ƒŸXøï<CQ }ãeT•Ïs"tþw=ÿ½)=ü3pïz¡Ùy•/òo€û¦ôøÏ8]øØ +q¦óÜö†( ÝÈ·Kõrfa1?aÚÙ[ÈÛ·„pÖÀ±Ñ5Wöšm\ŠûÍW½6ÏÇ¡ØØ{éµ·Q/jsŽ”OÂö—¦ôÕ–²ƒBéh-¢Cæ¤ n&³ëÇéÃ|úáÞ“¡_’²•~ÌyµL¯ÏaSª¯ uÁ)!]ÖÊw¦3Z6ßTÖo‰í¾T:Èê4^ÓÌ<k9ª i¸í‘-;ß´T…d$b2˜º¬Áø|Ä.&óI™›’›y³“ÌNªö¥ýfS:(ÍgÓ[SÒ³›$Ö»¤LFçé3þo’ÀN¼Ô¶c—æÙž/¼¦¶§™hÌ8@Ä yt¾Ìu†ëÂÖõºQ_¶«W3p}o`5tkàú²Ç¶mt?•!þ†¼ZPË–†ò§ôœPÇõ]DìõŒ^†B}'Ñ É8Ý
ÔÕ“j÷ZäÛmúeRBßu³Ð䣺G#ÉÍõmQÄlæ©+·û²²¥¤Z¬;öë¹Ô¥|e- SÙÉD›;sOptaþeÖVý·lv=žTsÓÞa¤¢±ñH{Ü°Âßþaèpã ô ÇÂáj—ú’ëS'yE@l‡ËÃÉŸ•Ê–.æfûÝÒ8óòK}™¤ +§›heÑÜQ§(üMTÓKendstream endobj -2633 0 obj << +2639 0 obj << /Type /Page -/Contents 2634 0 R -/Resources 2632 0 R +/Contents 2640 0 R +/Resources 2638 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2611 0 R +/Parent 2648 0 R >> endobj -2635 0 obj << -/D [2633 0 R /XYZ 56.6929 794.5015 null] +2641 0 obj << +/D [2639 0 R /XYZ 56.6929 794.5015 null] >> endobj -2636 0 obj << -/D [2633 0 R /XYZ 56.6929 752.3578 null] +2642 0 obj << +/D [2639 0 R /XYZ 56.6929 751.4635 null] +>> endobj +2643 0 obj << +/D [2639 0 R /XYZ 56.6929 514.2042 null] +>> endobj +2644 0 obj << +/D [2639 0 R /XYZ 56.6929 444.452 null] >> endobj 914 0 obj << -/D [2633 0 R /XYZ 56.6929 715.1156 null] +/D [2639 0 R /XYZ 56.6929 400.8314 null] >> endobj 1513 0 obj << -/D [2633 0 R /XYZ 56.6929 679.2933 null] +/D [2639 0 R /XYZ 56.6929 362.2079 null] >> endobj -2637 0 obj << -/D [2633 0 R /XYZ 56.6929 648.0354 null] ->> endobj -2638 0 obj << -/D [2633 0 R /XYZ 56.6929 584.5411 null] +2645 0 obj << +/D [2639 0 R /XYZ 56.6929 328.1488 null] >> endobj -2639 0 obj << -/D [2633 0 R /XYZ 56.6929 479.1127 null] +2646 0 obj << +/D [2639 0 R /XYZ 56.6929 255.4748 null] >> endobj -2640 0 obj << -/D [2633 0 R /XYZ 56.6929 364.6338 null] +2647 0 obj << +/D [2639 0 R /XYZ 56.6929 140.8669 null] >> endobj -2632 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R >> +2638 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F14 1020 0 R /F40 1218 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2643 0 obj << -/Length 3405 +2651 0 obj << +/Length 3224 /Filter /FlateDecode >> stream -xÚ¥]sÛ6òÝ¿Â3÷z.bðAðãòä:j’&縖Ó^¯í-Á6'©Š”]÷×ß.vA‘%wæ&ãX,°‹Å~’§þÉÓÔ„BgÑi’E¡ÒœÎ—'âôÆÞŸHÆ™x¤Ië»›“7ßëô4³Xŧ7w½µÒP¤©<½Yüœ_]M/ß}üÏÙDLó‰"ø÷ùå×óÏ»:ËTpþ~:;›È,5 %ˆ‹àÝål6½˜|šþò~zyöûÍ'Ó›Ž>ëRhäé“_§ØÁ'"Ô°ÚétD(³L.O"£Cií!åÉìäÇnÁÞ¨›:&ŠÈ¤¡QQ|:1*LãDŽL„€ -7úæû8êaJ¦™ÎJ•/mû¼²»‘Q&Æôc®ÃáNõiFY˜è8²7[Ùyñ›Ê6p|q´–õSe×ØÌÇïv°¾Ùç3)e -v½Â³ŸG7YoZ?ŪYù"osT‘ß11V™×Ëú2Eæãþ¢j;Ÿ -%f‘>3"SÛKúÂr\Fñ^×l6«‰”°éè,úy¦LÒô¸ècö–c|>–!‹Pú0ãó—½ôX™PXä(gÖkIi(""!‡¼}¬¨YN@‘öªáZ–&±¡æœ¬fAƒóºjó¢*ªûY”A£¿R2öCþhx*hºôܯˆ’)¢aFXU3S›âêDaMÉ¡BÒJ¯é´I¨®ùñ’¾÷1V¡B•ˆøEèaQåaúb©d«{ˆè{š ¡xƒgÃám¨ I˜@Z5d
Å®ËÏ3ðÏ+—@èbîâ©‹½Eßôee«Ùì3M!î)§F—¶bc
î²^RµYÞZ†ý©„DýÁVCÃ×õ#¨JtâI˜j³“Jõ“`˜ž?»…T”`¢´*JR¬Ä{¦(
®>]Ìþ!%™u -þ.¶é8ô\:óVßæ”o©Ãœv¹rQšXäQ‹¥%R\x$‘ñy~Å_ßA½Œ¢4ŒD¢Žëeë°^vXN/ïFô2c6«å]™ßï)¥L¡ÌÖú8_Öc¥T:Œe9›aœÔ"â˜ÃРÉk`Î
ºßÇÞ:Du&[òDŒCämLý¡ÃÃ$(Ñt€£u…©zï¾*þrEÉ -
ŒØ¼sü`¬ÄÉ×ß_XQ‹«#hÝò¾‡ -^Ç£@¥þh×àïêaÔõ‰/´¯¯CjøHݱØ*8µ…m -•I±¤úîr‰’JbçY€oP¯é‚‘¯œ«!²D -…'Ô¼þ.q=¾Fw7’U]=è*¨\„ø-v#RC—Vx¨´ùcWæùeST:LÌ«E”½pWÙÇ:ì0;,ç0W/:ÌÕºnëy]|Í?ÊÜö5Ÿ»Ñ×ü{ì5eæ]’`ë`–Ü[’¯ì£ûç‘Á{–¹9¼*9RÊÞeïKa*Ð>Yçxa@0[ÙDÃ>2‘TÒmý @Éž^+zbįÆðѳ酈†±/üó -Û¥6¤`wøXe1Èñë -.‘Š¹ÄÍü¥<]Q -ªDfC7圊dðàÂU„ÞŽ.Ø%8—«w£m1ÐUÞPZI>I,Š¶ÈK6…¥w ðJ¶iAÞÒé½úç+/m^1µœ £œ(ùµ«ûÒúé6!þ^nÄøũ׀ÿûgyÛŸFP£¦éo-¢PëLz¦PÞ2Ƈ%c÷8JŽf„ÉäJmB½¹ðõ׬{À€ÎO.˜Ñs«»-Þ„U4©JF$ñ?$Úaendstream +xÚ¥Ërã6òî¯pÕBW8xð™œ[c;Nlo¤Én’Í–`‹ŠÔŠÔ8Î×o£»A‘¥9lMÕ°4ÐF¿ey.àŸ<OB_è48ÓÀ…Ïë3qþ +k7g’q&iÒÅú~~öñ“NÎS?Tt>霕ø"Iäù|ù»wùô4}¸¾û÷ÅD…›ú“Pï§Ë‡Ï—?ÒÜÓEª¼Ë›éìb"Ó$L)¶h‘ð®f³éÕä~úëÍôáâùgÓyËV—u)´åé¿g¿ÿ!ΗpƒÎ„¯á´ó7_¦©:_Ÿ¡öÃ@k7SœÍÎþÙØYÅc¢u⇉ŠGd¡ä¹”~†ª'Œ0õ#4 +ãñi~÷ø0;¸‰ðEòŠ•ôƒ HÇ‘&],Gxä–¥;É,ÉŸ¢ ƒ)…'i§[”¬x¶y³Z™“\@Å_á®ÅaOu‰† n¿™)Ì¢©Aí5+cÀ[lß7MõºÍ6«|Ak-— Þ§jK¸¤)„ô§y¯? +š&i'Þ®6KZ{~§™¥yÉvEÃíÊÂÔ5Ø÷±°ïXÈ„µ~¢GC~¬’˜QªM“Wåá-&d-: +ü@%oïÖ²‰Ç¡÷ö¿"k¡®i0ÞÛBÏŒC÷Ö íðÉ–ð„Q¢žÝ¹`ßCyò–¡¥"`{³.¥ÐËÊàïþEív +y¯v¯«Î>ò2´!Û5Õ^m‘Å;áÔ¦q»
!MæcNÔúc¼ +Y ,Û°©L$Tp:ÛèbÏ6Z,4›ç±lCúlh6¢ó¿ÍA®ÇÄqœœæÅa®ï4s*ûÜÍZ«I7Hœ +µ0e>v
±1·D#LÙ +¢úŠ×61RÅnJ¥’u¦ÐLýhð±fìJbÀºµe=¢!)øNæwó_iuÏ,dƒs³º®99";fÛ”Œ&VÞtÏžöˆÏý<›þl/«º7'ª‘bªÑ€jÔR¤Ã#ÙèÑ‚;ñq~Û¥´‹O“®P°-Ô-áÖkÀ€u€°PŸŒe%®zǨ|Mn…c+@øòkwË.b‡`öô§²q
ÊERž¶ú.Öq«o±öEl—d +®W'ê4I‡4B²kiâCì +û$?S.¹VTeNÙ&{.ÜR·*–(H‹éb"#Ѥ³÷Rî–mŸàþUâªí;ØYš“mu®\u.1LàðA¯O—4$\ìK# +0ðíÅ>c]fìv¤® +&0(òÒØÀ/’AëÂ.r-Ÿrƒ¾Ü²±3L‡š5‚Ô•æH.kÆÔ¶×Ld·3ˆãa/0ë†.M‡Í@^Ýç¢#® ×ë)ÁQ;PIà•|¥ÞÅ:n-ÚÁÕ„~¤éi’i„d/¤ á‡Zª>Í«Aë% +©Zšo©ätûÞ˜rÁ·*–“ºy/LÛÍnÛ«)%VÕ®q[ðT(ˆL“-³&³Ê!Rï{&Övù(–ue6à‹ÔÅýeY×f1ZÀÔH䃈 +Ö'ª¯bÜq“!xÏE±[p YÞ¿©inAª±qÂÌ’Ì7ö¹ëÐtÝT´yIcŠ
¡·Ùæ_ø¸¨+1¥KÞC¯¢(mQ–(ö±º-ÃD‘ã8|ɺuÜO7!×ô}3h¹šâüf÷¾/i'-!ûr¤Ò‹Æ29¶dšÇ--"ïžËéÄuÛ€z+_šÎëöŒŒ .ã#÷‚ý¬‹…ö +OëAé¸8$Ô‚éWë$S¾B8?l_*?{ä«E:d¬¯±Ûú¾ËÙg´-eæ)ÿDJS+Š¶Ë·6êÚYë•7¦œÍ~¤-Ä:÷6'¬Ø‚£¬Ö„Ô¶B6©¬'•¢címç¬ÉVÛƸ«DôÖ±ŸèpDuÓ_Øžzÿ¢">ˆñlj¼ •ŠO +ïéþjö)iš©Ñ çïrŸˆÃqØ·ùsQKù
XwcϬ7´åAìr‘؃G§ËðKþ’øŽk¤„'L¿â™:H'4’‘öMŸF¦~¢f…|)²×u”‰i¨®O1Õ"rÕSG¥ýHQþ"!ŽÃ endobj -2642 0 obj << +2650 0 obj << /Type /Page -/Contents 2643 0 R -/Resources 2641 0 R +/Contents 2651 0 R +/Resources 2649 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2611 0 R +/Parent 2648 0 R >> endobj -2644 0 obj << -/D [2642 0 R /XYZ 85.0394 794.5015 null] +2652 0 obj << +/D [2650 0 R /XYZ 85.0394 794.5015 null] >> endobj -2641 0 obj << +2653 0 obj << +/D [2650 0 R /XYZ 85.0394 751.9964 null] +>> endobj +2649 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2647 0 obj << -/Length 3225 +2656 0 obj << +/Length 3383 /Filter /FlateDecode >> stream -xÚ]sã6î=¿ÂoqîbHŠ5÷”n²»é]²¹&í]§íƒl˱¦¶äZRÒô×€2eËNgz›™%‚ â‹ Å(„?1Òq§2%ièPèÑl}Žžaìó™`œ‰CšøXß<}ø¤Ì(
ÒXÆ£§…GË¡1bô4ÿi|$ÁPÇ×÷7'ÿ¼ùñóÍýÅD¤F§ã«‡‡›ûëÛÿ^L¤PÃp|wuÿýÕ¿öp‘ÊñÕç›Ç‹_ž¾=»yêØòY¡²<ývöÓ/áh;øö,¬0z…0i*Gë³H«@GJ9ÈêìñìßAo§ŠB„T±…”ž,ŒtšêQ¢Ó VR¡,¶ÂŒ«¶œ_L”ÐãjAm³Ì©sW¬V9"M¾Ë¦EIÐͶXg«¢ycì¼nþÝÈŒ3‚Ô›lÆÖyVÖŽjÖìÑ/Ûõèc™1Þ&«ëœ9ÊV+Û‰wSìjµ•<l"Dj-q/™Ý…=Ÿ¢¦6£¦Îš¢^d³¦Ú¾ä×üíB1P‰ñ(Ih8!M|,’·Ò=‡eyœlí’>Å‘‡ çaTÄñD`Õzž¿ìó&$¨H%§™ë°¸óµAH÷¹{Üä³âç0”¹=‰P°ÐC9®«µ -Lû -1# ’Ș¾b“D¨'•¡J¦S¡šqþ[[¼d«¼DeMÇ@¾˜å—ð¡:͵ÐEÖ®šÒÝÀ‚vâ!xQpZe8eÎ#å¦m‚¡Í*˜04Cê±·‰J¢À(ð¼}òwuÿT#w6j\fëœ@tžÚ/4³e¶ƒAË<’ -¡-€É’Oa> J
W§aE9/fY“³_!?ÆŽÄ;Gô=ö™¥eÕ®<e6ížz:iÊÓ^ÇÇ:îu:,ô:^„jRv²ØgËÄÚ'¹bœ¦|i¦zB°×SQl9ˆÕž7…Ž0—ù+}[Žòº,fK‚¡ý -j»ì¡ŠZòhöVµ~
¶$âô´ñ{HÇmß!¡é×C¦o3FÈÉôëf›—ÏÍò áSÔ)Î:¤CÖúž7
Lø¼í¥¡L¡e %l!„\:v)@xؾġ3å!*/”QÓeŸ¡5Ãæ5ÏKú
óbèm]€P¡LÃBÂ>z&2k·¼b³âT“ZÛ)+§!vÇeÎaÓn7U;½¢–î%Ç5%Šio3§UÅÃ:¡+•åiHYd -Î<}¬ãæÙa¡y6ƒ—G¸Ê¹+ÌmëyMzš-‡4ÀV/‘go=¶n½ìXºè)Ÿä,h7ž´,!e Ldöv´Çˆ„(êž]YÂS^Ò‰þÒWß?}ùøõþ“Ü\èþëP01œŠXqê¾Þusʘí:;;„T%hýÅ‚Èö4ûªE¾edÔ5;‰ÅãlZP½ÅÍZ/>¯—-˼œ°Á.ËÙÑö´</gÛ·Mãò–&;®îÂq¤ßSw넺;,T÷—á[‹Š’ˆO~•¿ä«}ÆRðÒÈÓŒ9¤Æú¡HB¦Ÿê>gy³Ÿ*ÎóiûüÜ9&dì¨È”1ÐIÍi‘ùXÇEÖa¡È~Ø_2N‚$†‹ìÉ%ÒÀ’¾0Àè“HÆý%¶
³4 Ô^’~uY3Û¹´9%КUFi«jHGÒʧۻÛ{vå_žn¿Þ?˜?¨²Œ GàDòš½O¢92%Te° -žö–g[fÊ&»¨LçdÆ*ÖÔ‘ÑdisWü°WD1œòs ™zXåÙ†z¸˜Í^o]•Í’‰öWGP·^xd9Ü€~uË{œX|×ç ¸·){{¼¤ -«$ìp÷ÎW»ÛÜÇÿs¡ak
Ä\2¡ü³ÀL†‹qÿ0` -嶽À/<!é/ç5¯÷dnE#9¨WŒð~ VÿR ’Cz»³",ëu˜»ÜËiÏKÐçó~Þy^ÂZзq~4>H¸]&&R§ãƒu<>tXÞ-Ú¨(ìý[žŠ øŠä4Ö -w#ûÕc#kW¡2]ÙÇVÓ¸œåê-0˜ùÅ+ø.ÜìÊ+®K8õ2Ÿ÷‡»Eþ ”¢]-°îMÃY³câÒ+;¸E1?Ô>¥Šöý;֨ɑ\f9[µs2KÉAH:G,‘ž€¦‘(>øÄÚÚ½@[ƒ¿`ÒX×KÊ›ÍJj½BéøXìñ1ùLmw÷>U1€#Ki°6˜—»÷åAnäòaïqîgpÚeõj›£v ùȼS÷±ŽÛA‡…vp5d*Ð:ý3f -zïN©8 -êp÷sŽCü¼r?K±9þ«Ž$€É;eséÄo: õîö½ŸtœT;™¦'yë™ë'TI -âöæÑendstream +xÚ¥Évã6òî¯ðé™7LNNÛ½$iwÇv23/“%A6_S¤ÂÅnçëS@(P¢¤¼7O +€?ëJƒÿ™ X¬qPý +sèïÄ2Å€ŠÎ®Íƒ¾¥Ý®:èY('x^"8_¾àLŽpbÆ„k¼½muG;UØnÊ|’Ìè.òVΖú[Ñb°cFÃIŸë¾¼à=QtùWBwꦗ¦«…6·“){;¸®ãž
gˆ:U5‘;Ðm<ÓÄÉ|%~‰iD¢|šê¤Åô-KÌùSIG +:tiÐÛF0èhÙ჻ϗ×!t·Ýq@ô–Qv›ÑYPƒÄXãyš:ïÄ&|jFIæLFÄûkdIìbç +$ybu#Æ §ØuCm¾¦^NS¥ÎŸðœÆ’R¨ÑWÀÕƒ¶2–d'L¥‡tØR:$k(7'
妩»zQïYKØ©£”
Hû¤=:d(`VF´‘½äÊ#FzAôØ)’3‰VÒG§¨ÜZ@€»ìÁö°ÌýáUÑ„b´Ãª_Ïuƒ ¹îžµ5¹0Áôk&U˜*–ŽESÄ&•˜Ú…àžDÃÀÊ´Ò4&øˆ&»Ðã!Î}¶ºj».¾Ç‘Kg„c€’y€žŠúúÚPrkR
%¶6ó0È<búlÚ„.æjûÅŒoÝ´%8Ê"HCùq öK°C²üÇ¡XèØ~C,´·ßT,äï÷s_³*ã4X×Ký/%!ƒ»~C6bø§ûªÒ†'6}qÔ}·éÝ”™qÇ‹²_bþ;‹_?¸Ep‰¢ZsAŽr@úöï‹<g÷K!EÐÃ\äµ½%Î JaÉXm¤0‘…¤ÀŠ„ÿÝ$D…2J VÌ"4ûàýAé]ñ¤x½ ÔZhJâ(§onïŒ+€ŒÞJ0 +™úËz^—-&IVQHçLÚn©›f‚A`À¢(sü¡ûCSï|tö¯[$l f@£ŒD
å+RfÁ%Â_…¯°C;iw¡JiUЀ×kdg,)W;¥2r"âÁ£uT‘±vºBЪîm~ms'€nò²ˆÓešÌ 芼D`[è'] ®ƒ;ú/ðÕ?_!xóŠvË2IÉh'·võPê©h +Œu§R”8Œ9°yI·°œ`eÌBɹ{'=ä+y7ï±Ú³é»¡8Ú—ËqÌœù°ÕY˜q0
ÇŽ‡uÄê8,kuîN&/Æ$NWyŽRåª<ûDMUyFD½¥úBgÅ]ƒB?ãë) +Ú(ÇfˆA™_´€#4C‡ÇÆpé•1²‹DeÑ7´cWRÀùèêYUíäÄœ¸ro›¾ÙÔ?`mã°¼r.Nx눼8,+/÷Sò"Â(–Îs6µq»ÒÂâ$mÀš m$-ú{Ä¥E5,P†èGbtQ±–ÈÈ>ÛkléA¹oÙQ®°O@–\‰’=®ìÇ™<r¼[÷m‡KÏi]`ÑÊô·o
•YAÊXªLíˆÙöÑ̶tÆ_z%3ØTÚ¡(ÜCˆö-¹, È|÷gâ¶Þ-Jí"§uæ´uý©~±\ºõÑ“EÁƒ•{ëè?Ò»ïM}aiÏ}œ’Ø~üK;Ô…óŠÔì¾"£Ý½SÆìç˷³Ðm|õÁ¬Oïs5 Îà\‰£±I?ùdÇÍ›uzB;=¤ÃÊé¬nv“ù#ds.‹™RÌÌØÝL¥ÉáìÓ4ŠäÀÒ›?ù4}ô¢cἧàt«‚¢ í;ªS\ˆPfCaè€F‰$;2Ò(!(–‚ÍãÃhëË_î?¼ý|óÎüÉé5‚n>ï9 ÃéOx˜0¶“VÝ|vßÚÒsâŠÖ‰_´¦Ç&hýÍÂ-Èôb²R+ݲ•2ážÅ “Ϭ·ø³yóUg™O;C²eˆ—œ¢Q€ÙM§µHW†µ=ùÖÕ¢yÙt.néòƒ‚®â0'¢–-Îa1'+åO'ÿ›UjS5Ý!I}™8F’CÙ#iìzÄ÷*öišúׄž÷ƒ²$~‡¥NþÈC:ò€OH–S¿îõÓ0M s=¶ŸÃÙßoTÔÕ‰d´Ÿÿ 0öƒý\SáõÀ?%,$')bçN2ÿïnÿE¥`H²W¼C“9Û÷o®ð0€f[ÏqýÓÕÒÅjæcø×Ó¯ÖŽ!#ЕDI,Èq÷åÀD܉˜àÂ_ñ«O;endstream endobj -2646 0 obj << +2655 0 obj << /Type /Page -/Contents 2647 0 R -/Resources 2645 0 R +/Contents 2656 0 R +/Resources 2654 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2650 0 R ->> endobj -2648 0 obj << -/D [2646 0 R /XYZ 56.6929 794.5015 null] +/Parent 2648 0 R >> endobj -2649 0 obj << -/D [2646 0 R /XYZ 56.6929 346.2413 null] +2657 0 obj << +/D [2655 0 R /XYZ 56.6929 794.5015 null] >> endobj -2645 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F64 1435 0 R /F42 1288 0 R >> +2654 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2653 0 obj << -/Length 2607 +2660 0 obj << +/Length 3222 /Filter /FlateDecode >> stream -xÚ¥ÛvÛ6òÝ_¡‡=ÇôI„ -¦"®ƒ…¢Ï`
6¼FE_½Õ²…)Pň#Æ,«Í«r>¯L}h¡%KÒ4´‰×`õȶ¹ê”EWÀ‰©+ð\õÂÐ%¢SYà5žùtq€õ‡ÙÑ!÷ï—t½7ôÒÌ,Mmfàüˆ‹`4¯ÍÆ“Èê=§—xLzè>åË% -GyY@¬Å"…ê–*EáiYCæÅt¹™™¿£+±€Ã_eaP,Áƒo\ñ›šÀ«lG‡Í•H³Êü‹GHÆs]Vy]nvWBˆà%=Y”Oæ„eÀ€‰8ŠwT:M™I|>òÚX§#¯Á²‘—÷D^ÊD¨|äå¸ä1[…ÄdL|^¶«G¸NØI
çXt¥sa§µ3ªVÁÚs{¿Ì§YÛà„FL‹5/7Îè]fGª8¸™² [§sœtpÄ"+f„’Mëü±õ -|W/ðäƒaåßÃf^¡ï•¹È©…È™%ý°]™¢¦G6Ìàɼ\.¡mÌŠ¥¡Ð¬Úà(¡™-7ÌïÆѸÜ]ZÆ:¸\•ÍñéÒIs9k`*7}v¹Ê/mþ'Çù¯:EY’Ùຂê¶%GÍ<=Ù™lS9r«²¨þæɘ?üý㎋rëðã€*>”ɼØB9vÄ32ʧ9ëÓäWè†H:/gti›ïåA‡ï¤ýZ£Ae -Í*F=ºs#À| -†ÆQ¸É Ãq»ß´P"y,üsÆã@5294¯móÊVi6ÛÞ”ðlò/q¸ª$ÞZ^Þ?æåÖ½ù¼…×wôÈelU69í"k§|G΋0+{V#2Xò&úàÃÖ"{4í9bÙ®ý™›kÖf³Ê«êÔÂ÷vž>CJÛ¦z&Fc¦eêK@J†ØÕšô¼G”jª›«a`…X¹ÝëýÈDÏì´…‡j·Z™Ú6@¼5Åt³[»•^kéhVvO¶Ô䧣7.<±Žœ);ñùñZ¹êcMóñ¯Ü>,ÎÔ-úˆÔW=èqóYÉþ¹œ%„}ïÆÀ»«Âø×ÑÇÏÆϯw¸NàX ²Þ•ÀŒA
CðŒ.±N†÷vJxp=”¤ühR ³Ò~%¿§¿LE?˜ïn–Š¾½C±X5“
Ù7$dF0Í×ÀH¬Èªðì©Ü.g¿wèì[3û¡G&üxÇ’ÒþLßj΃aFWk¸§+Èæ¿>ÝŽét^Åžòe}¾×n¼6ÊSÝÅ´µcp¸Mõ©|Àö}KHö‚óèE¨…æÏË{cÛ…ò‹K¯îËžñ&–0ÌGâ?_:Ótß{;c
÷_H€¡/ Ç5Š#©/V't<QÃðwXÓ³E:vÊ›fÜ0pŸ€SÜš•8i:ÌÏÌ>®}+êÿVÐ ¹ -@‰=»v9ú0ùt®¨¶#ªü¡ÀvŽÍ;Áþê\(yûǃ„Ák^¨×7·îcDêÎVy‘CDfµz¿˜9}ƒÊë‚òcVl釄#£ÃN®µnþX +xÚZ_sã6ϧðÃÍؙ֪HŠ5}J›t›n7ÝkÒëuÚ>ȶkjK©%'M?ýHS¶ììÍ]ò ŠAüá!‹Qÿbdt«<eyéXèÑ|saìÝ…`š©#š†T_=\|ñ2£<ÊS™Ž–/ÅƈÑÃâ×ÉÕÇ7w×·ÿ¾œJOn¢Ë©Žãɇ«»Ÿ®¾§¾—¹œ\½»¹¿œŠÜèˆ2$KãÉõÝýýÍ×Ó÷7¿¼»¹»üýị›/V(ºˆÊôçů¿Ç£ì໋8RÀmô/q$ò\Ž6‰V‘N”r=ë‹û‹z†Á¨:¤ +L¤Ìt!ÅHˆ(×Zö”¡ó(URYe<Ü~¸½{GÛþáãÃíw÷¸+˜+=Æ£©L¢<‰t]tes2=™56’ɬ¤Žò¯§í¥0“²mË
U5
u+¦Y6ÛMÑÑà/ð÷áÃõ54Û~ï·ß~øpÑàí’=ŸÂ®ô¸Û”uG=³ò±ª[ÜÊì72¿TÝŠgÑcüÙ)¯ ÓñçÐ2bRu4Rñ&«º+·¼Žvlx°àÝ5K_¶%O^Zúfs°w§/rWmJØ 2éä'ʼ©ŸËº*ëyiE’“jI#ín¾:¿nu°}ý²Y¯›+»H'³W|f“¦.©£YR‰ íβý-Žå_ö¬apüz)&VG2™Œ7
5Õdüâ[ßZ¹–ÝÎÞT®V©i^/ëïB°êá9o6O;Ò9PU<íµ,¶,Ôo±Ž%ÊYÕÀÁÓ9™‰J55d2]5»-½,Š×ÖªNù±n¶UýHë²x¢–]–L·iênÅLû«Û.¿^|b¹€ÕKYþá–$Az×õ
ljSÕ ¤Q±™0¤žÊyW=—k8&!&€©$É'?_jØZ,Q³yfáŸ÷˜ÙÐaäiÿ0`Š=Œ¼wðfFÛàºhy½ô
Q€/XWóª[¿%cÿ™°õ/ÀŸ‚voBàžf%4A²Ï©µkKjŒk +f3JÑ'ÔNŽåÓwôlžºªaŽ+r!Êr0‹YiÝ'¡Á†@¡±(—ÅnÝÑ‹=!xþ.»n^ðqÒt." ê?o!ÕiCðTÖ®†2Š$‘ÒÂœÏS
È×·ƒ<RJ‰¾€dJs˜ÆÙ¶ðT”Nœô¨¬%`£rózΘ @¬€‘¢&Ø ÜÝZwÈ<Ž9*™' +
ëÐæ›(t87)×È9âÄÓ›6Œä2`Ö̬£{{`Ö;û’ …cnú\¬O›µÔQ’iý†YTgÌÚQY³þqجãXÈO±ke!Ëa³&¢ñúVm¢,ƒ¨Ú“Ú°±ÁVm(ºáÓYuHE¶gÈ{Ú‘†¬sùoIMÎdš?¬ig©œiÉÜ‚ +g0õh ŠU©Ó*;°°åI8•ÁmW +ÓÌ«ÐÕKaø@…I0“íû|®²{°,¬¸ÐÃÛÆ>Ø6õÍJ<`ÄÏ¢“ƒ“!×ñ%ž°Àçt(Õók] —ÔtÁ.Aƒ~ܤb~+ØÇ¡UpÖÏžb±Ã*¡Xøîæ +¯@\–8DÏqSpD1åüÈ +ƒöè-q«m÷Ë9™ûBn(Ð>fÐ;h'ðAÉÂÖO±žQ¼¶_r]y©\ɯ:(rü]R½pPsW6—Òü@©Ä'ca ÝVT5CN¹›>÷?5à%gIPYÇÞÙ+õò}Ûò¶ÌIUÖqpü:¶§®¬n›/c–†Êê¶oåZÃuaWdOͱýëžSNHmðÜ€wÛq*éèhÄV¾™U½ùÅ×Ó}š¾n
î‡<¾*ÕHq¢R=°“~Ý„3Ã~ݺá‡t°¿ 5ð•kúâÕûZf?xÅi +1$‰2‘P¥èÝÍÝÍWXâ~¸¹&&ïo~ù„Of?ãi¸eöTb»Ð©Ë*ëDš‚‘=zê'ä‚YâjÇXŒÇ\ÍÖ +sg½ËÝzï<¥ÉÈHÖ@;L[PWÛ¹Ï9} +ÿ„ÎM”H_é£úiî=ÓDšHj•öO¿í º“Íñ™žv'€ÞŸºgá²¾¨õúa‘ÄïÚK÷uà81teåîØpå–Êw'>õŠ<ŽŒŽåù¯Ô!•M¶D/¿ƒ¦Q/ºõ‹ì(Ç‹Qi’_ÕS/Û;JÛÔ®¿,žçÀ!Ê4JbwèU{Ju™Ð)Ue2ÊEöÆýꌪÕÛª:·j ªÃe‡U. ÒTp O¨ª†²æ½‹Èþ‹p +vTo+øܪ‚—Vp¸ì)¢d¤2“¾‰Æ½/pé^ù/›¦³N/zÑ€oÆ/MÄÈ~ñ–Îb˜”;áö)Gú4 +.Ñ'\. +²+¹%÷
¹k, Æò„·Žø£ÚÁ°<å¹8ðÉ+»]qP˜¶ÉÝ^õÁuohÇ2 Œ‹§H{æÏÁGwR
ÂÈÌÇ¿aqx~OÊ0ðf™TfîD
ýfUI ±Vfn±š’xKŽ]l£#Å‹`H‡o>2üñ½CÎ@
‚Ǽq‘û¸x‡L0ªaÃ^3büýC[néØc{Çnþ©ûÊPû®Îí·xd…f€£Œ¼=“ÜÞM94§øm9í_6¿þþ§ëUAј{Ú'ÝçT.2΄ËcÎœ8p•"1‡êMD¨Þ$pSç›5þµýq‚6’~`ƒýÍì¹jv<ìyÓ_iˆ-¶mjkœö:ks}fçDX4%ÏwŸi§ÈkRÑWتx.Ãlbúþ‚³›§r»©ÚÖ]û†¼»ÒþlÀËÆ>oýŸp¶I)cN”‡¸u¥ÀˆY(ܧÀß×$©V“¯nï87†‘Ù»Þ›¿º²ö¾ûÝÓS³å”ë_ÖNáî*ª¼ù_¹«á?ˆÝ·endstream endobj -2652 0 obj << +2659 0 obj << /Type /Page -/Contents 2653 0 R -/Resources 2651 0 R +/Contents 2660 0 R +/Resources 2658 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2650 0 R +/Parent 2648 0 R >> endobj -2654 0 obj << -/D [2652 0 R /XYZ 85.0394 794.5015 null] ->> endobj -2655 0 obj << -/D [2652 0 R /XYZ 85.0394 536.6509 null] +2661 0 obj << +/D [2659 0 R /XYZ 85.0394 794.5015 null] >> endobj -2656 0 obj << -/D [2652 0 R /XYZ 85.0394 289.3885 null] +2662 0 obj << +/D [2659 0 R /XYZ 85.0394 752.4085 null] >> endobj -2657 0 obj << -/D [2652 0 R /XYZ 85.0394 144.0724 null] +2663 0 obj << +/D [2659 0 R /XYZ 85.0394 238.4558 null] >> endobj 2658 0 obj << -/D [2652 0 R /XYZ 85.0394 83.2075 null] ->> endobj -2651 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F42 1288 0 R /F14 1020 0 R /F49 1308 0 R /F40 1218 0 R >> +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F64 1435 0 R /F42 1288 0 R /F14 1020 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2661 0 obj << -/Length 1661 +2666 0 obj << +/Length 1693 /Filter /FlateDecode >> stream -xÚ¥XmoÛ6þî_a`_`æHŠ¢ÈíSš¸]ú’dqš
hóAµh[¨-¹–œ4ÿ~'¾(’MɆ -;x?Â(”"?Ã#PFÇ›‹B±0tOÖ£Ùè¯F`ë^ꥂ`DCN=\P2&…^¶Éˆ$¢"¦ŽØ8†¦yYªùd§žŠïªÞˆŸ„1 -±0Ðëd£Ÿƒ\Úâ¸F†˜k”sFD`DiξR›ÑLUfPì;Ãÿ¥™|Ëìë"7¿‰ù1geÆßÕ‹56HŒ"j-amÉì%/¶eVžXŽ9…¥XøH%°=í=Œ£˜>ž´$h¾õøžµÉ±Äp ýËdµ{tÃ'³ˆµä¢ú±–°VOjmPmT"!„5òšÑd¡8 -™]”f;5¯ŠÝ‹Gzħ9?õ
#$xY¨Ê—Y®<»°Fâ¢Ý=jœ„#8_õæ¤axÀ"[+ŸL(¾9ï:Ãåtvqwu{usÝ,êø0Q$)÷Ó±ËsˆŠPrk¼qõ$-Á9¹ñWN^ý•Õƒ¯Óµúµž„A©*»ÄDoGH0‘Àm$´aV + Uµä\¥fšÙwo/²ÑZiä©!Öm¢ÃëÜn¦Re'úrõlÛ$ÛÙø\¼£ q½9»n^äU’åY¾<ö¼xn%‡ôU!$@ÿ!¬oô!ç^”Œ qFnåRåqè6¨Zïdu¨’s„e|B¥yT¶]*&Çâ@åtã’á¾L––À*_'õiêú™U¨—Â!Ú„8ÁI5À‰CiNlZá„wV$}Y¥m0ŦÃÆ5(umúä?ÂÕ×1of"¬í~`v>c“~”Ù‹æy•ÍWp¿s'F†Åæ×<+³TõžC("Dâ®ÙõŸ‚éCØ9f—A$õ9̱¾N¦ÀfL:úΕ²9ày—UžwÉØ+Ýmß!Ðpµ)žÔÁÒb—Á…‘¬{×÷s¥ax‚Üj€]‡Òô>ù|*³ÃK¹m˜Œ¡†€ÒiÐ0òÖqoLáN“Q×2Ÿ{«oûå²9mX?eP™ÄG'(k¡(s(MÙÑGÆ(æ$Vé@•TIQÌ(謁Ýe¹cãIíÊÌ•Y¾(v›¤‚½DP‰ë$}"?¶QýD4(MÄÔï;Bêâ²[!u²#fŠ1lZƒòØÖu‰Xõ[Ǹϥª{n¼‡È8XfO*7Ïn¶*ŸÍ>š‰±:!*Ãàï•ÃÌ‹ÍŠ°ÔÌž³jeÄÜ~¸˜ýBˆy\î·ÛbW™IVDªÉ~]Ÿ—Ö_˜§Ûïó’?Lyõ˜¡@ì”'Ÿ«Í¶²™9¯Û’vn¢Â]ž.Cçö×m§ÏGŒÉSÞÐB
xƒCioXô%êA•M¦>VéKÕ•oMʼf“ -â7W×Ö¤U—n O*«]%©¥C-”ÙZ>·ú”äûdí1‹@ÜSÎ]3ê3 +xÚ¥X[sÚ8~çWðÓZÕÝ־ф¶i›ËÚél›<;‹MÒì¯ß#K26²—aKòÑ9Gçúɤ‹áGºB"©¨êÆŠ#‰èN×Ü]À»÷âh"O5©ÞŽ;oÞ±¤«’TvÇó¯á$!Ýñì{oˆÔ¸w~5
Ï¢Ûá×ëOÃ~D”â¼7¸¹^_|ëGT` RŒ{—ƒ«/ƒÏví¦¯hoð~8êß?v†ãZ¦ê3£ÓŸïw¸;ƒ|ì`ÄT"ºO0Á„ÑîºÃC‚3æWVQç÷šaãmµ5h +‚e’lAiÈB!É(«lñ6/—æoÞñ&-åˆ`„+"ôS?[¢C#ÉsD“lb„‘ÄBzF›ôqRê +êÊ0Îç{±žY‡Ž¼'öSCIô +cöŠJ"ñËú^˜ôÁ¦&M0÷Ç}]‡ènoÌÇŒ:w¶Íp>õ ?µ™ +ô¥à°¶ÄjDù"uäŒGj‘ ,MÔÉâE`ˆ±Ú`‹S +Å\v•Ø~¼ÞËÄWÆPÊG5Q+õGáõþàóèúåàQ¤‹ì¯<Ó?°À üçBŽ[“%Jx¥Þ^\[IÊ œÓ,…ˆœ”UI€¥[=×ÖwÙÔåå$ÛNVA£' –”uÂ*À‘Jˆo)·ïÎ,G*˜ +ðãQãÍ.á⿳ãûì èù‹ìÂfÊø•Äm¾Œ?\ß¾ìÙ‹¬Ô›L»z1z.Jmú›™œåY‘oÊt»ÞÉ…žÎ¥ï%Cú å€ÅÌÅÊF?æ?«¨Ú;NxEz5Yë#Š)’fÈÙ¸¨XUJý 4vºz¥ëJf1˜7Û‹LÁËZµÐâµ]}¹MŽž³ü¡H‹}¤‰'’Á“¡˜$!`e²ÆaÔû JF
æâ!Ì剚Æq†1=ä{´ÜÜùá£=–àÍÌáßÙXZY…À–BIâ“·æ÷µ} +pn÷àYºÑSÈíç +KÙ†óáèìöâf|q}h_á²¹K…ýþ#ÆjÀêÚ×̤Ÿ´ñ*É.^¥}0°
Í Éz….Ý› ²™ ÀÁf‚t™Ð$süH`ÍÂLΙAÆfšº
¶LÜH%•úv×ü!Ú=¬Ù‹Ù—é'R&é¦
HjD[wr²`b
_êdÏò§Fq˜íxBzÿý^WN<¼¹¤$BÀÕ„°Ó™Û¤²×%HÝšÊÈ–û"Zb¿ ÒDîš8Ù9\ûb¸-&gÀµ.v“Gê_©½;mÁ
‰.^°Iƒê„M<UeWVd«`1sU•¦næ¢p„žV®¦ +hׂ¦1¸µ¶ÔÙk†èSŸÕ©ZJ]£yZ¦Óý]8¸[w·2·O»V¤3}ÔÐñ!ŠãÓnh÷‚'ªœ°9LÍ +ßí[´¶Zçzo+\Ô¡a +*©ù¦Ð ×5÷ºÚ}¢ãÐd’„žþ*åtÚ»v e ©u½ÀÃ_¥Îf¾_Œ¶ endobj -2660 0 obj << +2665 0 obj << /Type /Page -/Contents 2661 0 R -/Resources 2659 0 R +/Contents 2666 0 R +/Resources 2664 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2650 0 R +/Parent 2648 0 R >> endobj -2662 0 obj << -/D [2660 0 R /XYZ 56.6929 794.5015 null] +2667 0 obj << +/D [2665 0 R /XYZ 56.6929 794.5015 null] >> endobj -918 0 obj << -/D [2660 0 R /XYZ 56.6929 769.5949 null] +2668 0 obj << +/D [2665 0 R /XYZ 56.6929 704.5976 null] >> endobj -2663 0 obj << -/D [2660 0 R /XYZ 56.6929 747.4361 null] +2669 0 obj << +/D [2665 0 R /XYZ 56.6929 558.8408 null] >> endobj -2664 0 obj << -/D [2660 0 R /XYZ 56.6929 710.1279 null] +2670 0 obj << +/D [2665 0 R /XYZ 56.6929 497.7352 null] >> endobj -2665 0 obj << -/D [2660 0 R /XYZ 56.6929 638.4656 null] +918 0 obj << +/D [2665 0 R /XYZ 56.6929 460.1226 null] >> endobj -2666 0 obj << -/D [2660 0 R /XYZ 56.6929 560.7349 null] +2671 0 obj << +/D [2665 0 R /XYZ 56.6929 427.6955 null] >> endobj -2667 0 obj << -/D [2660 0 R /XYZ 56.6929 480.0392 null] +2672 0 obj << +/D [2665 0 R /XYZ 56.6929 392.7171 null] >> endobj -2668 0 obj << -/D [2660 0 R /XYZ 56.6929 153.5839 null] +2673 0 obj << +/D [2665 0 R /XYZ 56.6929 328.6896 null] >> endobj -2669 0 obj << -/D [2660 0 R /XYZ 56.6929 84.8435 null] +2674 0 obj << +/D [2665 0 R /XYZ 56.6929 258.5937 null] >> endobj -2659 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R /F40 1218 0 R >> +2675 0 obj << +/D [2665 0 R /XYZ 56.6929 185.533 null] +>> endobj +2664 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F42 1288 0 R /F21 994 0 R /F49 1308 0 R /F40 1218 0 R /F54 1383 0 R /F64 1435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2672 0 obj << -/Length 2670 +2678 0 obj << +/Length 2095 /Filter /FlateDecode >> stream -xÚµZ_sÛ6÷§ÐÌ=œ<P -8ƒÑ %ó¼!RÂÅŒ7À4°2,ª¦)òIS´m¹)´i ‘BÖÛÉ —
œL,%7\bŒCcLakV´ØhWvì÷âÅRÊMY=b{S´Ù"k3ì-ë6lƒÐOGÀVJR!˜UŠ+•¥f/U½mÊæ0`¼ÎÁu’GD²p²Q0•‰ÚÁLŒH$ ³&CÆù1dbÇr•„(|ž,¿¸Ö;´ÖîјÏ%”»"oëõ·¤ˆa%A-g'ô}@(9‘BXÖ¶]ÄQERÎ’Cqw¯Šƒ8ß×Ë%˜+Q‚LJb¯b'°<©‚Lï"ýÿÊ¿ÿSÔ‡boþo\ÿ5bW_Ì.‡II#æüŠ8ùyò©ã| -( -&ö(gp0xp=½½¿¹›ß|¼ífù &H‡wê1‚iK«Ôî’&ã"[4—?¶8Uãí®|‚á€@Ýø-ŠØÚ³j
X´ÁI3½ 3u»ÇL͛ٵ›m‘—ZnaÅ=¸©«s'Îo‹¹]î™ìÐä7!"2¥Ê2¸-ý‡dÜÿ 2n¾A@
5$´ÞK©K?·5}i‚PÑeh½m˺jtÁâñÜĤ½<«tƒé°THz°ŒûÆ„Æ^™ - -¡ °™Z>Vÿ«`ªGQ§ÝW©aá.£çê¬BlH(I”L}lhêeûœašÛÓ»Æï¢h‹ÝFï\Ó}6æÎîÃØ›ø`gl÷ë²Y‹7TÍL²ÕC³ª÷ë…?ýäÕÎ’¡Ú+VtÑæÄÕ94äÒXw³G -hÒ8†é¥ýjøÅѪ›€„¼ÞlpKu]8åïã¨2! \Dõ$þHhrê‚Ú”›íúפ©€€VCA -Zv+¤ö°&hm§²—o.¿²sF1@J“ïJ³Ý€»1vé±z¸cÈÕ¦Ö-1Þ®³Üè¬G½!»3zj'Ò"VÌ¢7P{CA<²üÝŠÚÆ„I—ïƒPnʦAÔ0›i Ùú9{±MwK: -Tò^ª>—ë5$4Çˬ4-aOsMËڶ؀ -¦ø„†šî¼¢i’ÖÅc–¿ ©?&Bû`ë]êƒÉŠ1öéYÎ>ˆ˜´»ÒÎ7ÃN;ePp/å>Z³Ýa¸¬ü}ˆ ƒ›AÉqU<ë†c¸ôa’@¡eü
Ã6^Jô3ê] “ldŒ,m„´œñ`aË lh.`×0¡Ù:M
¬YŽ¡ušö`)ˆ@0û]IW¾Ì¥6€lšë¾0ZD¦¬Ñ$“z*î`HOÙzoŽLh÷¨<ƒëƒöJmjD£U¼·*ÆêíR׳ήo2FrÞjÔ´Ülç‹ö †!ð;`ómÇ¥‚œ‚(
§Éyˆr†¨ŽË@”}¶‘Þ³
'B¤¡W›¡nT0ÂS)Ï+×q´ó¯! -”g©àþC—“D*q^¯Ž+ ˜LI'‰¯†€3Wm0]â,³ýºÅÎ|þÞ×øÝ7–m‰·µØá$su -4,6C«´rK^WOÅQ“+'7ÃÏõíìÝôßؾ¿'Ø0w ¡ŠÝBøŠ -g*\#ÙA© -÷ŽWÒ …+i´²Ðèî^ s'™æjzD3c?RÌ: -Ï69.¾–
žšº×Yú×Y@Mc‘·Ùï–ÝB¯W9Byj¡\v^”ˆàV;Kªj«n§·½NÃÎG2ÁùÒ–(2ê,“.[tÛ¸äÍð4 -,éUÕ)‰õ(Þ’ÓóƾÉ÷³OÓw°lÐÏ4_Ëö´ObJ㯸¤g:ãËdòéÈ!’À}U]Ïñ¯çßÔ)‰’Ô[ïÎ>Òhs«,‘ÌAŒ…)N»€F2ó5¸Î8Áq/<…P«£gïÕI*–ç5븪yþâà'!}ÕBeLñ°|ìžûŒf'}¦¿‰ç]6`:í1Çd6}µæèÖð<ÆI œ:«WÇt¬˜ï/ETB…§Ù/ú$¢©=‰(\ Ë']0hÚÇmQÍfﱃ -jN¹}ŸÓä¼Þl˵>suïEZÌÝ»·³¿QŠäf¿Õç?vÊ9,j7vý©Ûßó†Ò`)ÁI¸¡;šÞÿpÑ´%g•¹Ÿ”]ß`«+=+ûuæœø¥ž¢^¸;ê^?þð¯øýWˆõJrâõG1á<¥N)í*…yŸ—ãnn¯Ñ$˜AÔäŽõo8Ó¯mQ-ÜìÌEAw>™#!Å< -8¢ûßÇžø-…=endstream +xÚµYÝsÛ6×_¡™{8yZ"ø&q}rm¥§&±}–’v&É-A'"©Š”]ß_‹/Š¤iû¦öŒ €‹ÝÅîo»4cø%ãD ÌÇŠ#‰/óoàÝO#âi¢@µ©~\ŒÞ¼eÉX!%©/Ö-^ ÂIBÆ‹ÕçÉùÍÍôêröëYDžLÑY$0ž|8¿úxþÞÝœ):9ÿi:?‹ˆJ"eÈ$ž\^ÍçÓ‹h>],f¦g_?¦‹F¯¶î3£Ôo£Ï_ñxGøy„S‰?À#¢ç#.œ±°²ÍGÿi¶ÞÚC¶à"A‚r9Ž„@"–ÃÃ0@³)*N£dÈ`Ê,úÔ?§’p¼8·™=ˆDÒ–H‚ øFuEÞ²¢®œ7îõ¡ÊÊÂM²b]ò´†ôÄúþŒ1–ˆJ&^1D‹êC*këð7o%oëOP¢xÈ’èb“º¯a%Ó—Uk¨tëXŒÅ(N +9b‰Ší±æS¯Àùûùõ +@Fã1Üît(Ή2’ÉË/æ›8H;hÈN|ð9Z
£wîX¢Söp†øéFÉz x÷èHIÚ °aú~€)J¨üÅSïØAêRŒ&}v7¯²'ê7åzmòÐS¶Ì!ï³=`ƒŠ[™Ò¶}ý!þ·‰Ú¢Ïvö÷Xãòïa»ýênxc$ îÝðŸ£O
åý€Ð"AòáÊŽ!Ø@ÆJ’XõEO_=Ñ©¢ïqì’yŽÖPD_S¡Pùõî©Ëéüâvv³˜]_
Tn÷T+3ö2 X`nP[A:f0JÝ#ä,F H?d÷©)ëÌ›ÿÌ Thv“)¤ÌÀUâf“M˜
!ašñ)aÚÔË®öz™¾Ú³»[·CÆÂA:PQÞ½1=A÷Âìd $‰=Aé?Åãö/à1û?x@ª!Ö€6±¤üBhv¹ DDƒÐroºæÊ|È |²°>î-wÁl™f@[ +·tç ¡·X¹wwC=†Ji%ÔlSü·,¡ +‰ãF»ƒ“R‚àƒcö6Õ?ƒ²+‰MÒî «r]?¤æÝîp¥¡*ÉMäº"Õ§uq7w}Vu7ÞùûãÝ.«¶zõ}ÃÁ©ÖîE«myܺ:ÅB8I[cÏZ×KªŠ´õ‰«¬ æfØÔÇæÌt|~4©Â’s«[ÏüÓÖÚömÑlpÐåç.¤au—YaÎßO½J…DL0Ùóê³ùG‘àÔ*Ë÷»G'kï?é°Ð?2ì½`W\q®¦ÑDnìwë°nßhL\»Þ8Ø>+^j!ú–v_A(U´Æ̲Í\;“HÍì„8˜,·i±q0alrWÚnˆ†$êwØöÉììIñí²• ðP˜ÇÐŒCþ÷}WÀú.MÓï2óƒNEg'ò)DÃa×pr’pÑåì<À¡È’qœtƒ%5\’qµ‘0MxXµlf&n–†6I¯ 'Å"ž|8¥"Õ69SIw{ÛÙfnœmžW08]kžÑN{çnm{„(ˆü‡… ro_é½ 1‡”R-™
7·à¢‘8óv.…™FXJ3“ý.]ZÍ[ÏĤö‘qZmXúá§Sð˜úì
«§ƒ{GòOÏjïzÎ(à½LYU¹¬aƒ©@ÓÝCúXõZö~rÌŠt¹ÔÀçM‘eHºå)aÖÛ´åCÞìçåÊ¿ÀPHÜ ç>¯Cåe¾‰4A¸¹Aÿô§÷ÓÿxÕZ«Ÿêà,S$(e¬K$´˜\ +Öþ:€ endobj -2671 0 obj << +2677 0 obj << /Type /Page -/Contents 2672 0 R -/Resources 2670 0 R +/Contents 2678 0 R +/Resources 2676 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2650 0 R +/Parent 2648 0 R >> endobj -2673 0 obj << -/D [2671 0 R /XYZ 85.0394 794.5015 null] +2679 0 obj << +/D [2677 0 R /XYZ 85.0394 794.5015 null] +>> endobj +2680 0 obj << +/D [2677 0 R /XYZ 85.0394 564.1149 null] +>> endobj +2681 0 obj << +/D [2677 0 R /XYZ 85.0394 490.7088 null] >> endobj 922 0 obj << -/D [2671 0 R /XYZ 85.0394 769.5949 null] +/D [2677 0 R /XYZ 85.0394 444.5492 null] >> endobj 1514 0 obj << -/D [2671 0 R /XYZ 85.0394 747.9633 null] ->> endobj -2674 0 obj << -/D [2671 0 R /XYZ 85.0394 712.3063 null] +/D [2677 0 R /XYZ 85.0394 408.3686 null] >> endobj -2675 0 obj << -/D [2671 0 R /XYZ 85.0394 646.0551 null] +2682 0 obj << +/D [2677 0 R /XYZ 85.0394 369.6367 null] >> endobj -2676 0 obj << -/D [2671 0 R /XYZ 85.0394 561.7803 null] +2683 0 obj << +/D [2677 0 R /XYZ 85.0394 293.3088 null] >> endobj -2677 0 obj << -/D [2671 0 R /XYZ 85.0394 389.4928 null] +2684 0 obj << +/D [2677 0 R /XYZ 85.0394 198.9572 null] >> endobj -2670 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R >> +2676 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F64 1435 0 R /F40 1218 0 R /F42 1288 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2680 0 obj << -/Length 3071 +2687 0 obj << +/Length 3040 /Filter /FlateDecode >> stream -xÚµZKsã6¾ûWè&¹vD ’›“{§vïXÙG%9Ðe±F"µ"5ͯßnt"%JöljíA ÑÝh|ì 9ð/Ú&Ué N£@©ÓÕ…<ÃØ’iÆŽhܦú~rqõ>Lie“y‹Wˆ$‘ƒÉì·Ñm—ÀAŒnîo?ÞN&wn/Ç2M¤]?<ÜÞßÜýër¬´ -d?Þ>^þ1ùùâvâõjë.EˆJýçâ·?Ä`KøùBašèÁ¼ˆ@¦©¬.": -C׳¼x¼ø»gصS{m!E B£zŒ¡ä@Ê ÕZu¬¡ÓÀ„*´Ö€•ßÝÿHëúåar÷˽]ÌU-CŠÁXP0TvÒMÖä5̉õhš•ØˆFO9uä_Ö›K™ŒòºÎg4T”4Ô,˜f^mVYCƒÿ†¿nnh¤Út{úéÇÇÇ€ïæ4èùdVÒóv•—
õ<åÏEYã -Pg¿xÐù¥h<‹Ã¿±aX&tŒ‡ï •ÈQÑÐHÁ‹,Ê&ßð²Z°áÁŒWWÍq|^ç<yné«ÕÁÚu¼ÊM±ÊaabFï*Óªüœ—E^Ns«’s©·ÓÅy¹ÅÁò õój¹¬^¬îÒŒžvøŒGU™SG5§R:êeû»ê‹Ýkr„ -©h4\UÖ\*
_|kæ[ײkÂÙ«Âu”’Ä°¼¸» -ɦ‡ç´Z·ds *xÚ.Ï6¬ÔïB‹YŽz–@Õ³ñ´OÉ(4š*/ªí†^fÙ®¶&†]~.«MQ>ÓÀ2ÏÖÔ²Â@ŒdºUU6fÚ•n»¼<qB\‹ÕKžrâ[š ½kƒùzµ*J°Š¥ÑjÄZçÓ¦øœ/w—RÊb -LõÏK
Kk€eCÄ=ÚlÙ„¼0ÖÙx·›ÏÖf`oÉœr€ë¬fytŽlKÏ‚¥ÎÀs°´mÍÒ†%ÀpÈ’7}à–ùç,ßþ08rº2ˆ¥4© Uà¡ú$ÛTÎGO…ÒÇäMÔ¢õ’Tƒc¶$¸¬«jn-v ž£ Œd|^?OÕ£`ÛË0
Ðuw|ÌÜ Tð&©Uˆºª’ž/‹Âz̨çS¾£÷ÂÍ®èùÄLÖÛ§eQ/ì~·†½¯°o°ë‘JG×ó7ˆ†kg%`³Cáæ°PÜᱎƒX…Ñ¡“^.)YàY”ÓåvF9Ç_Ƀá·hñ(«¦Ël[;Fv-ð¬á£gÖÍid ˆ°*yX{¢3¸b"«ë>XA¼×é[Pe! -7¿¢í~bŠiŸ«O(1ø”Äù'
€Aâ~È[: $b”$HTv10ÌžŸÝÞÛ -7¿¢IOLÀ©~AOÜ~
‹ N€D˜0ÈBÑYé>ŒAhÕoz8ê@ÛíùF¿õî æÿ·ØÅ°C‘z%«jSF—§²èºéómX7Ço°#Ñyõ<U~]×&Á£EqWAΪ”Ë‹¡ÁY5h9¥|VÕ¦¢¼ -…›_ÑÓnLšåËœâ_(¤O,›:±$[,%=|y—¡U2çeU>çS€b7ƒþ?ž+çïVÙ®íW™›xÄ€tô”ëª.šjC ƒve(fóÌX -DžJ10½¼=ÑÜ1‘…Ýã«Éüz“Ïòi^×X¹BNärÖ -0±ž](—¿6ÀçpÅà“‚ -äõ&„Ôô¬nžªG¹ŽW‘I`”0]í8¤wîftÿ& -ö±W“\³cXì°†ÅFÇ#J_rJé
ˆbÉ€}ôì%'ü(Ëú_i+žhÀæÃThëÜ›k:Îà ÙÚ¡À3J‚8‰RËñ*þþ ˆæ˜ NØÁ»H)¤®Ü½c¼ÆwŽ×—XØŽvÀiÍË XäÜé¾]´’ý ¬•ö:™=‚pnƒèÙõ–»ÐbäŒÕöÅßQÓ*òRÔy·pq3¾ætkÒk¼k[i¾Ê ÃÈ—{í[úŸ?Íi„K²èඇ¨ü‹Z—#Øû´£^[³3oÛÁœôÑåwC+ظ›Û|²6t3bû®Õ´ïîILrìtÇ/Gd6LˆÀÁm9ert4b//˜]\ð‹¿z0ûKhú«ð@äôuû²(N\6ô|5W‚RYq|õÐ* út°¾Våá/èÒ²sá ¾7H…16Œ¤F’Vïî''î<åé;ÏYYƒ¬1 -gð¸ü&¨gî|ª®¦G;[ô7‹Ž}÷ÑùDúƒ·
qhÎg?-¢ÓÉ#²¹ÏöPž1Hãóòͱ¼¶qcˆ8éÊ{hY
¶¤îã×{w…U¨óÙtñ|Ú."ÒT§¯¦EuÆ2ŽÊšfýjÕùÃÕÃÕõÕÇ«»«›«l¹<UpžUÑWœÇ*ö–œ91^ÐɃÀSênÁFá#Ýæ4`†[À˜-¸úgØ{B¨Y¸’¼zµUSð%‘?rv;8® ” “TkNOPœ=§ -œññ¦Õՙώá¯=vÁ!<xzÌ”I¹k‚9Çšq$uF‘îZ„`FSZ²KùbÃ'QÇÄ)dæÊ?ô*+[ -X~^T7™õIIR¤ -à"´>~û¢ÜÁÛÖ¥J·‡w=ÒÆ‘t*̱9 -›ÝÚ[ìoÚç‡Ò³4A7½kL¢:km˴ǘy|t¸ÿ @'´eîlÚ~JmNÎM¼ó²Ï5„&ˆ"í]ƒ=œc_y z¨ƒÄø} -NýPï¾Â°Ï— -ŸHüéqíÅA˜$'JöPïïïîoÈ$@ÄãEox6{û¥ÉK’û¸]¯«
ú6úƒ3‚ͱ'¬ÈK3’Æ>þíر!þ!ß,endstream +xÚµ]sã6î=¿Â3÷`enÍŠ¢¨¹§m“nÓÝdsk·w¶ŠMÛš•%Ÿ%çcýHK¶¬ìöæ’Q € +?†kñe]«ù¤VM“oá·7=M'b4qV‡uOyQ\N„½e–›‘ôžÖªDXÖ4j"”+œi*„[hX† B²ù‚´"8çž9If¡—_rOkÅ1ûÓ«ìþ&BF +é²#j_!Å4,Ô2Û
¾ÌfhºÂç¾&4PvaN$0€â2Œr¢cQæUù¨v
5¸´t3|@-óþú7úÄp EGDÇÈêC:]úAÒ=ªùf[!'°“ŽT¿T¥¢ðJYLcÕ‡hf +gsµP0]Î1Œ§Æ#§Å£7IG ²"qÜ: +÷ضŽ¢×GTžDi[f€ZoÑc£’7íL +g°Ì9@úéöv:e8‰Ax ƒ¥øj¿¡.PWN°ýº¯²9t¸T§ÿ>¶.&cªò¦]d˜Oíh[®ðËh2£ÝUK=¿tuH+¶÷~Ô¸ÊCã™Ôª®fË\•s[JæKê÷óõ0ß¼î+–UQTOFvݶö/{:Á€¹Ø +4-TÈãMeÔoüäF7ZÛ‘Ù“^½É-ˆZknkF-I{œTÏñîQ瀕Ӳ•íH¨? C\(-g©z?´Sâ‰Hâ 'ëj¿Ã—EöRƒ•Weµ£²5¨šmqd˜Nx›ªlÖD´ËÝ€?ÿ»©'¥>[ö-I4¾cvìÍ›¼Øà°UúÞAîêI€ªºWk€œá£m`CÆV·0×1¼cÀ³e
-‰’w5WyšßL_þV8³/ âªoBˆ›iø4l¬ëÌ1qÞõ™p\BŠ
ÂÙŸMtt«aÊ_)ÛXçÃ2‰îþÕD§·õ]µ4;ÎvlEÈãaùV€l'R¦¯¦;R‰Úz'{eë{¦¼J0™!¯7à=·«+|>sÇU¯½[ÓŽ‰îtõnzo—¹b3Ó&´“úbÓ·kˆ©É²u ¾»Øö-X^΋ýB-º·5.W~Á¦ì)#h`oØ"Fýt+mÖpèmB=ïYaÈ¢ðìçëY-¬Ï²XƳ޾zƒ6äXЙøà‚ƒâ9¬ù:Žú,M 8èH·8’ò—е7Œ´g ZÏê`áEŠÄ‹3SáóèŠÔÜGNȈv ËK;PÂ{(ÓÍ8ÒD—‚³‘Äüè¶ækȵbÕK |O|hž‡½¤…5à%Ëxɧ~/ñ}|›H¥±–Ïaõxì&a$] ÉMÒ«›$€ôÓºI ƒÜ®¯ÐÜ„€™í±úl%†Hb%±‘ÆrG ypB›[GIüƒ£$,r¿ë( E¶ZYÛgu»ð¶î{7'曃•óµSÑûxäk#‰aïkc÷>‡e¼ï¦ÇûR%"úçÒtX<‡Õ#_7ùÅ*› + 9Ÿ°1öÓ9@¬óµ±èGçÓ3.z *øé£6¿„ºÅ: ^ +lu[[éÖFk.\mÕÆÂê +¹]_áÓ˜-T¡0ÿ Ÿ»Ê0q2-SÒC—¬ÐwNxU¹R;—S}+Òñ©oˆSëtcãÝ&{i‡ÄM–—g¸gˆ¹êÜ|qÓm 9íšQ]ÓCIÏtCtö1ƒ¦ö•—-¤ŸW’q»é«%ýv§j®êZ÷¯‘ï*׎B"®ePH‹s*dÇù"Á!DGÊ)xÈÜ(?ÄþÉ~†—ô•LC܇K{/"C‹¥+#º%¡k]Ð÷mZGA‚nn$](À»zÞù<'Æõ~NZЦ¢wôM~’p ‘t{S}iõ?fdÅ +Zêf½1ï1›/nʤÀ¤~ÙšO/!"»Ð]ÉÁˆ›ƒÁf_7¸P=C †Š²xÁ÷MÖZUMÔNÈ%«¦3?VÒ•‘èM\¾»]ûŸÈtøÅVC›œ‰QG2imsw…G +ÐXb?XKÿú¹Q¥;äS{U©_~5'/ßÍᛄd6%§Ç~<uª…ÿ"‘]ÿendstream endobj -2679 0 obj << +2686 0 obj << /Type /Page -/Contents 2680 0 R -/Resources 2678 0 R +/Contents 2687 0 R +/Resources 2685 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2650 0 R +/Parent 2691 0 R >> endobj -2681 0 obj << -/D [2679 0 R /XYZ 56.6929 794.5015 null] +2688 0 obj << +/D [2686 0 R /XYZ 56.6929 794.5015 null] >> endobj -2682 0 obj << -/D [2679 0 R /XYZ 56.6929 752.0089 null] +2689 0 obj << +/D [2686 0 R /XYZ 56.6929 752.4085 null] >> endobj -2683 0 obj << -/D [2679 0 R /XYZ 56.6929 184.0458 null] +2690 0 obj << +/D [2686 0 R /XYZ 56.6929 393.873 null] >> endobj -2678 0 obj << +2685 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F64 1435 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2686 0 obj << -/Length 2490 +2694 0 obj << +/Length 2512 /Filter /FlateDecode >> stream -xÚ¥YÛrã¸}÷W¨*y«F®$<ymí¬w<²cy6›ÌÌ-R6w$R)Ïz¿>«H ’œ¤\e@³Ñht7ÎÉ -ên¢¾†¹#ÔûÚ†nS¬K_ß²‹ÓqW/³²z»Æò¤ÆR×¼—¨•âáú
:M8ÔëeÖFô¦¥lo›~;©ö·²[c‹O¥|Oã$ºSpè©DÊ~V4u6²»uØl‚ JˆÜ«õéüX—Oÿͮݾ9ãº8E)–{±{Z«ÐºuÌ_T&PÕwŠÈ:« óâå@âý,œ†Vs°üùÕ5m¶nU)@Ni*ä®þ‡“>kÛX“)F÷Ôµ¡µ —ƒÕÉC˜EñR,Þ~ÎüZ¿Æ‹ -b Qý¢RüÞB
/rûê‘r~(^?B‹\Z“-bFœÓx¯¸ÿtºF@*gm °êí{|áZøÃÜD$ÉÖM6D?CQG}ÂD
úp²ƒ¯ÆÓËû뻇ëÛIxéïâºü)È(÷ÕSj(™ða¦˜YP&Èðºµ]€çµS -'8±ˆ Ýl×ý=ðÛgaø¬6¿¹×mÙpeºë|3+úÓjC -§í¥X7°v ž[wz»{A×>kD©X}N†Æp.’áƒï_lÖec¯®£ÍÚžYIÙôåÅ¢xr{næÖÈ¥vsȉf¾Êõj*Ó>gí/ <Œá÷ç^\[™`æì¹\ä¶Okhlof}æAxï -…¦º -J@¯PŒ"ç/'Hò€»µƒ«ø̓ ˆ“€à|IÑóˆµväyÙš“ƒ%úb!b–¤H*åð¼9`Tœ4Ê×9¨ú•=®8" …ûÌ«{ñ‘mCêÝNiÜ4E¿„׋¼pcîtÜFè>( Š §_åiP -^¤$é~×E -¥£;ê>B€ŽÃe¢ùâéwA?x¬1° ÚG„oÞûžø\éÐýendstream +xÚ¥Y[sÛ6~÷¯Ð›é™Æ•—öÉÔm*»–Óíl’Z¢l6©);Î¯ß +áfæGã£?=ÃΪÙBC‰”¨”'88ïÀÁ(Œe<HTFbÁ…cQOËÏ”òb +Ê8‰nŠ“¡ <Ê'mù˜·e]éwMóÖ®Ô3|¶H*¢f=™MS¯pþkñŒƒ§r>GŠ;»µ)Zœhë•Õ\®NXC?€0dŒdJqcÑ´°º$2›“hW,Z®ïæåÄÊÐ(ƒ+§«ž»³ÄFW½¤uÕcÓÕT8.,Z”ÕºÙ¢¶ÊnÉÖ·Åê1Ÿ¿ YñôPNЧÅ,_ÏÛßP jWóç†ìø!%TÃ'TË,E–hØ¥B·a¡(rTZ½a©Ež¾‹e‡2#Œ«˜k +gݶjL‚•)½¨›§ +(×óiÃ8a}íÆ…A+Ží!Ä*|@àÕ4T3íÂz:ÇwíÉŒ1ãG*‰.g8
žñF Õü+œ³’âhGD^M‘¤ç6° ݦ1‡? ¡œ1瘪ëF{ Tè’2ÁË|»¦vúŸ¹%›9îІ—
N.ÖÆ‘`Ô–‹B[B3´D:å–nðn]89>Ͳ˜ØTa¥¯Û“¾é¡ÈDž± +=ÎÂiŧ£|±‚ÃÎ Ï(%œ²Ô0Òþ%¸?Á[8º“ž¸+Êê§P)M]»5|Ï+|/¾-AšF²Å‰nÁéìË«ÚI»%¥NñƃôÞ@‚œz'](<Áí\ü3"Oec¡+ÛþŽï…WÁ;Ó Ç×>è‘ó=¥öÍ +´‡r6€ÜK2ÇPFbBMŒV×7—£ÛËÑ{Üu}{y5ûí› +ÆpE„€ý&IW
È‚ƒ™ÀGúnÉ3"yÆl™ŸäVÁ|ÞØÎäΚ¸nœ®gY®ÊªÝ¤˜D€æ·9¸º…/‡ +î:m¹^läJ·nù€v,x{Ð_+O†ŒÒóp½+8UCk”›<$¼Dª^Sè>C Â~µ7¿®©}k×Öõ<í7ãçª^6e³ÝÄ”0¸¥
˜HIÌb꨹êņ¦ËÂô +½¨s
§ +š¯ñÓ0ÿâF4Mõ mœÈœNæÐφ€4q)Øsœ8öƒ|Z®àjR¯žL•$1÷ÞꙞûÑE€=ô‰.ßÕ}Y…òR_ϱpÔoHùTöÓyQM‡›ËE¿ÎCŠâ¾òÌgÑ€»×rÝgå<Ķošg{ïG~ô{@T]•dòþëAýõ]&P´ ü*ïBžÝ‡ Ö [ÆûX7Ūt ò5Ç8?ìwõ"/«×s,rì~*~?\¾‚§qs +usŒ$bç˜þ9ÈöŸRw½!ãchÒåÇQð¤ ôeqšö{Ҧ·xZûÕf”AVJw²E}8>VåýœÚÕ«#n/Ä Ihºã»×~´ô£?Z…ðâpÏËøVYåxâ´xÜ…t7 +Ç~ÔìMκ¦ÍWí¾,¥2’$*Ýæ{³¶
99KH&ø»ÖÖ~ô¸7;¹Ff^<ó××™¿üèïpR"Ã
¡ŸÀ¿µÃõ…Ro}!ïó×o~ôÝÄAÓš|Þe’1º“Ü=œ# ”Í
¢yýŸÙ‘î\±˜XLR¶ #ú$uBÈ—}¿ƒ6ú§Ý@·B}‹ôÿ‚¼ù±r©HSþFEª\¼¬RZgú7a%ºÝ9?²ý´÷ÞLÓº^.¡OÅ—¿Ì·¹bÕ endobj -2685 0 obj << +2693 0 obj << /Type /Page -/Contents 2686 0 R -/Resources 2684 0 R +/Contents 2694 0 R +/Resources 2692 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2650 0 R ->> endobj -2687 0 obj << -/D [2685 0 R /XYZ 85.0394 794.5015 null] +/Parent 2691 0 R >> endobj -2688 0 obj << -/D [2685 0 R /XYZ 85.0394 752.4085 null] +2695 0 obj << +/D [2693 0 R /XYZ 85.0394 794.5015 null] >> endobj -2689 0 obj << -/D [2685 0 R /XYZ 85.0394 692.9976 null] +2696 0 obj << +/D [2693 0 R /XYZ 85.0394 542.1146 null] >> endobj -926 0 obj << -/D [2685 0 R /XYZ 85.0394 656.7581 null] +2697 0 obj << +/D [2693 0 R /XYZ 85.0394 384.5878 null] >> endobj -2690 0 obj << -/D [2685 0 R /XYZ 85.0394 621.0947 null] +2698 0 obj << +/D [2693 0 R /XYZ 85.0394 323.2406 null] >> endobj -2691 0 obj << -/D [2685 0 R /XYZ 85.0394 589.9956 null] +926 0 obj << +/D [2693 0 R /XYZ 85.0394 285.46 null] >> endobj -2692 0 obj << -/D [2685 0 R /XYZ 85.0394 527.6628 null] +2699 0 obj << +/D [2693 0 R /XYZ 85.0394 249.4013 null] >> endobj -2693 0 obj << -/D [2685 0 R /XYZ 85.0394 399.4857 null] +2700 0 obj << +/D [2693 0 R /XYZ 85.0394 217.907 null] >> endobj -2694 0 obj << -/D [2685 0 R /XYZ 85.0394 316.1644 null] +2701 0 obj << +/D [2693 0 R /XYZ 85.0394 153.6379 null] >> endobj -2684 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R >> +2692 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F64 1435 0 R /F42 1288 0 R /F40 1218 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2697 0 obj << -/Length 3408 +2704 0 obj << +/Length 3133 /Filter /FlateDecode >> stream -xÚÅZOwã6¿çSøõä¼ÖªøWd÷4í¤ÓétÒÙIÚm·íA‰åDolɵìIÓO_€ -„H~ -ÿbblb½ô“ÌëĤÂLnWgéäú^ æ™E¦Y—ëËë³Ï¿Vnâo¥\/:c¹$uNL®ç¿L/‘&ç0D:}yyuuñÕìêõ«Ëÿ~yq>NŠlúâÝ»‹Ë—¯:ŸI“?0§éôí‹Ë^|G´wç^N_¼º¸:ÿíúÛ³‹ëV²®ô"U(Öïg¿ü–Næ°ˆoÏÒDyg&ð’&Â{9Yi££•Š”åÙÕÙ¿Û;½áÓ1mhã#µ½èDaÇu&’L@ß,Ói"µ÷ΤÓYäBÍÄòvÒì`ÊÈ42¥ìL™¥‰Qé`ÊWEUlòmq>SÎM_^Ñss.Ü´¸ÃsÞ 1›.à5ôÞÞ—Ë95ÿ¬«¢¡æ"0×+\Âç_ëîÌ«ę¸8ç¼iŠíŒøz*ŸdÒ;fƒéF†R‰T^0ˇâñÈPÚ$Yšæû5Må² -œd2“N$Ò¦f2"ñƱÓÇ«úc1Ol•
Âzdê´Õt¹Ž[Mˬæ
ß꾞ŒñQá妸Ý֛ǡlBê$5©<-\Ë5"]oo¤OR(ÑïMñÞœzVÒºnJå :?½Z·å‚9rz€¸´Aä@ÚÖøtÓ¦ÈCßí=уMbƒ0†Úh°×ÒÛé둪zKçCs(æŸ`h^,òÝrÛÐþê,ÑJø¸½2,!Ìx´½/¨q»ÛˆÕ–}‘…Óãv -ÑŒ9?zÄc²ˆf›o¶3´ÖÃ0`!ZBuR¼–kD¾~ˆFóé.gï -o A¥Û{ˆ°Jé0,¢°€dž¸úZBvRBO^J¢J«Ä•´úp¬7ýôºô`6eH:Ÿ\Ò£s¨æLkóÕðF~hÇž¸Š² UõHf -ŽñÏ:ÛÀC¬LRí,³F!{©I°E•eÅev€KG³Ö´Veµk¨)èq_ï6ÔBØ–/—õ5)•Âa—õíj6Š[x+yÄ]s"ÍÕ.K¼O¼.×q„k¹Âã—A~ÚDÇ7ØØ?qZ¸–kDº~š°ê´î‹×â›ð°Aø†€o¡/l¶ßzü|ÃWÆ7áÓC|CbñÇšÏ -©™}Ž‘(Ʋ¶„`‹ÔJb’¡ú ð£ƒkF¶Ö(ØpDÏs¡äÏ®ZdBZD&ô<a7ºr€³8]Í<÷Ìq5Š2.A0¯{‚yEÚ*HbPñÍ@º¤×=¨ -R'BÛA ùþ}[Ñ!¶zp®Œy*KM·<2dgð$Óß—SRŦ`fN ñ³X±`¡eu¾ÝÑŒüIUÄñh&;] -³úD9IÇfÉñ€ìX$‡ÔÃiów9O!Û¹nȆÉ8A«ä黑1¼Òó d;×
ÙZf!ºÅ!É2pÓt€ÅƒJÀÝ¡íô!B?öôòäê5cbPƒVˆÜÈÁ‘{ÿ‘ÁÈŽ‘Ù:qǘ‘É-MŽ»5ņJ&G|aŸèŒ,CGã„F?€kµ¯Ù\ñÙÑ>¼r^¢³6dc;T%6b'Ò@
ž:ÿ$Lîh¨ÝîÖ(0Çàø”—CÅŠP9gªï<Puï‚IIô¸;v*õ¬€k¥ïf8&ôr¦z¡ÑFyˆ#tx4–Ѥ+óŒŒFg‰“iÖõ¢”Ý&Ým*&µÇÉÔQÓóœ TÈs¤ÝL±+õ¾íBÔ^@óÇP“l6(SHõwöZ¤Þþãd&ûßáèh2#3(“=‘Ìt¹Ž'3-WHf£G§Ö©¨€z·]ﶳE¹<L`BýãýiñZ®ùú'eY@öç–JX>oÄòR–D$"]n -MZ+*ýÚz¿¯i¢E*Æ÷sxÙc&}·T‰Bv¤¨Ç£/l[4÷OfŸŒyDh%Ý0x«ÁêÚIu¸Nå5³›r»m¿©2ó+sä\ܯšÓ=§¤Ïè…£žþðåUÜø=k{$´Ê·ý#ï_¡®[ì–K|w^Èd -Z…ƒL,îôît¹ŽïNËvçǃÝÁœÊä“SF¦‘){«“¥íOÙÝ”)¡ÌÀ„¼"ë
é1EÀ*´ÒO\Éw¹N("rE”O]ÏÔÅ’£Ã£JLH¼:-[Ë5"\!#©íK÷Ÿ¶àÍ鱦<ôcYïšåã,"v"a«äbw7MìÍ™á%•ãr¸gÅÆMÑ£i&>»¼¾/Æ œÀKGô6XìL9›xm°¯{ûGìÍðØÿñvïâá-gÎœ‡ ºqAÕûàª{µGo¨…ÙhYõ.%0¥×²½fÈiœxÉ%‡?R+V÷GœgæÊÝ\<…F\¬íb?£®Ü2™¿¦¡0¥Û¤!}õûCÙG>Õ4å¼ /ç<sMÏž5H’|kê:dÏΖà|„¹¡+•Ô×ëe~ËwÃ:úšŽdÔ>Ê /£¾ßîðÖ›½šþ¾ƒ\¶ØÐ<önÛAK2^nuËô›bûP—u¸çH*è<Jƃ©ö¬›û_rg@Ü]kW|Cyè?Æ$Þ ý¬Kk}úÇW wϽâŠsæí9 <¼ä ©!2-žñ²DI3Çxl×ð\§Px|žsy¥6ÊÁåÚ^X•Ñ•16-ߎ-Tr@ÀJ.”ÀmBÄœx¢)Û•Q‚ +xÚ¥Z[wã¶~÷¯Ð9í}²Bqå%yrlwãìZÞ®¼iÓ$´HÛ<+‘ªH×ùõÁ +cÄBêã‚y¦Ádo:X@¢¢¾dóu¾(Ðózànœ-ZÉz~Ð2µÆ9ªNØÛô„:;\GÔ鹬:/÷L-b’+}|JÏ42e/&H&b÷§¼¬Vk@ćbY4`l*ÁªÊòï!Ú*¼uæFc(!4´•1=”˜£éZ…,ÖJ8>Ôo™®ÆB(P#x‚ó¥“#ˊƆéCSˆK'‰Ç®¬> ”2 ‰Vøo + ¿¤x¥¹ÜJô +:N ‘¨ã¦Ðå:l +-—5…«=¨µqè=:¥g™²gèŠÉ„‡ý)ï¶ÍzÙ›Š£ *—ˆv1flz!ûI-Ñš×5j9ÓmS +Ý +¦ó‘Ez!½]c~‹Cb~‹O +÷ÌòéXÁþ˜Løâ¢re÷çE-ăb"_—àÙôÒ¶|î‡(šþP¥{Òvô†,2Õõƒ.×a?h¹¬<íhÃŒNNLé™F¦ìE9Îòþ”jÂíÕœžû ¡ÏÚöºlºsl¶F3Z „'#£“Yd2‰fqe¨DœÎ⤠+Ñïâ„ä‰SÒºªª]'tfðè8Rz€¸´VdK²ÊsZ{¶tÂ@hÐ6µÑ*þ…6ŸB[hÔí&;xæåU¨¸Œ ˆAââñ¡E@B±tÒO’ÚŒ Ë0æD¥×å:l-—µƒÏ'£(bö@¬8dP—ÊñŒÕÝ~¨ŒÁHT_¨ûóÄã.žâ*)º[@Š$ÐHk÷ìÑe'zu¹Éž'§åë ¦Pé“ͬ¥òÙÐ]vfÛ«ÔMa³ËpÖ `}\Æ}w_a²ºöG®M±:r(UÈO¸}—ëÈv{.»ÝË‘íN˜¦ÅY(¨díçLP°ÆZ—¬åŸ3lXV÷dÛE•ö"ÂWï±ú…hx®m©Eé˜Ú&¤Z]Z
»«Øƒ¹Õ'.Ú]‚ænôÚ^µ¸:ûœ6l¿=ÓZº†,-ó[-
ã¡Ôs{¾¿K'öN0÷jº6!¨Lxº\‡m¢å²6QŸ<†TqÓLÑf÷ƒäà3ÇÅk¹Fäëj4 îbÛ#b‚{¿¹ÐÈÈT¸¿÷¾bå:íÁ_—_õNäù-&»wd@| +Å›g{¨ í°ö”CÝ£¯%d'%ôäuØ©$v*‰JZ}ÄNqðÝÌVG ˜Ma“„Î'3z@!S•™£un#¥¿J„F?Àcß?E9Êjô4’qžŒ:ÛðJ2®cfã…ì%(î!ŠÂ±Ú±\Äé +Z«¢ÜºRÇ]f>W[WíÛ›Õª½êª^çä‹eµp³õçüeÿ>Ï‹#äŸB‹·_]®#ç¹,ÂåãÅíy ú8¾ÁÖÀþ‰ãµ\#Òõ“]€ÕXë¾x-¾‰ÄÅl¾aËâ›í³›„-·ßðÕá›Hø>¾!1ÿº.Ú +\áÂu8CR +ʱP‡ßb¤J²Ý…´³H$æªï£?:¸fdkÂŽèy.0î3W-2!Í#zž0ˆHÝ
9ÀYœ®r<ÏŽÅãªe`‰î –(w^*Hr ’8hÒŒ^w ´îO|ز%iÃÖÜ.*iA?iƒÇ¹Íƒa%Ð å!W5³ïý~œ‹TZv©t{(eõòÝŒQÛCk1qB+,ãwÛ¿Áƒ€d:‡ƒ÷K0é˜âÔ“¥¯Ž§s¥ÝfÚOIƒ–fõeWä¾A@¢¾ÔQR2W‘h¦c£ûæêê>6æ !MB~Ã9SàÿŽqµGº`™þtµyNËñKS·ºüWŒ^ù³ÃðWS#ØÆÛ;€ÿûÇY»ß¡AÁ¬âø@u0 åþñfvE6ï‚Ñõ׆rqK™ûSA|ñ¿ÍÀËY +D:„Ô^D|?þ¸„íká¿‹endstream endobj -2696 0 obj << +2703 0 obj << /Type /Page -/Contents 2697 0 R -/Resources 2695 0 R +/Contents 2704 0 R +/Resources 2702 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2699 0 R +/Parent 2691 0 R >> endobj -2698 0 obj << -/D [2696 0 R /XYZ 56.6929 794.5015 null] +2705 0 obj << +/D [2703 0 R /XYZ 56.6929 794.5015 null] >> endobj -2695 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F64 1435 0 R >> -/ProcSet [ /PDF /Text ] +2706 0 obj << +/D [2703 0 R /XYZ 56.6929 751.6082 null] +>> endobj +2707 0 obj << +/D [2703 0 R /XYZ 56.6929 659.4312 null] >> endobj 2702 0 obj << -/Length 3449 +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F64 1435 0 R /F54 1383 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2710 0 obj << +/Length 3657 /Filter /FlateDecode >> stream -xÚ¥]sã6î=¿ÂoUfÖ*)’ú¸›{ØvÓÎ^{iºIï«íƒl˱º²ä³äͦ¿þ -•éE’éÐiëý•X<ÂÜ·W’q–iéc}õpõå7*]daGñâaëÑJC‘¦rñ°ù9x{wwsûîý?¯—‘ÁMx½4B{{ûÓÛï vwEÁÛoo2dHR ^,‚w·÷÷7_/ïß{ûïno®}øëÕÍCϙϽ -ÙúÏÕÏ¿ŠÅñ×+ª,5‹'ø¡Ì²h±¿ÒF…F+å ÕÕýÕ=AoÖ.’†6ih"/–& -S“M‹L„€–‰–a¬£Ad‘œ™ÃB‘-ßã9¿ü&ÖfÆ©2@1Êúpê–Ûæ¸Ï»s™È8áÙÂßù=Öƒ‘·Ld¨•‰Æ>ìŠë¥’&``¬ƒfK°ÎMZ.iî÷¦fà/BDUaÍ@wMÛ–«ª $"Ö^~¼–iP$F2чI,"–Å/Q¤»âs‡ÿÛ?@‚ËŒtȈM±ÍOUCÉ[Õ›‰mb F¬´·Ë1šÛ$ %Ø.ㆈvÅ¡Ô1 -[†™1’EW £ÌÍ¡+›šÆv8–ûüXVÏ®»¢Þúêü«‚¾O›ÉÑ`ó\çûrMmùX;T -A#‹ ]9¿gö¬Ò0K¤óúÎ(í¡X—hŸöT ÞœàLÊŽŸÊzÓ<јÜ+">•VZ -&:ŽÇlÚ -K‹$¸ÿá-âþB"ÐiÇ®ÒCÔ:Â:·Úù$œDŸ*O EJÿBKó¥ÿ23è;㳊ÒÇ¢8ÌçJ‡&júàÍÄ.:‚T1õ+Ì’l†4³…IC•öÚ›~OY¨L¢<ª§ºüŒ!nŽ¨3‘fþ£Âèž
¨:Yh(Õ@yjúž;¬¥öÒP¥€±ŽbS‚mRÚįlï°&¶¹„"Š³ñþïWr÷ù¦ܞçÖ</Å‹YÁÁõ0ÑÌ›§'8í‚à֬͌é°ZŽ_a‘&8?щ0•‰³ðÞOìÿ€Ä8PöAðÃ7_Ó@fiÄÙd»=¤ðëv^¸ -¸2 ø”ËÂõÑæ…ÛcÍ]±lAF§¯°à°&XI—”y¸/þ°L]2Ò¯ð'›[‰÷Æ•k`BŒ[šõn6R)-ÂXÉär¤ò±æ#Ue#U3ƒ(Ý;²æX>–õT*µHt™µk‚·óT8RÊŒ™{p‚ä÷£e†3Ä÷Û3ïá%˜oÎuÑ×NÝKêý˧—pæm{ÚÏå›=
Çלþ$+ÓWôça]ПòúûáµL -ß„’DÈ×/òç&øé0•xÔ˜Aj$$bh$$’ÇÄ=úÀ€˜¤±S"ò«2–%¶Jä°¦/…áҎ潎C¿kKK/¤ ¦ÝB¼H;.7¤ŠÍLãa"ë@ç=ê7lOU5G<ÍÐAkŽeð´+©ÀNÙ<³€_ãâdˆPûloè!¦ú‡z -x»Æ=¥¨Ô¸ÎN%ÕÀ)=¿UYçÇg÷æMc¢xÌå†`UÃQváó”lÒħ]:ˆk3#–r/i<7fîK¡W¥£ ÇÈúúÄ/ -X …‹DôW>îFï)}4e/uÆÖlìŠVKpi/Æ.k>võX6vηÌt¨µ~eK‡4±¥¯“,udζü Œ‡¶8mš%=Ê#È›¼Ëiò‰žà¸ÁJ·6s/_ÜjÅ"W+nö*nð"Ö6o»¾“¢\vØ -(<·Ê‡žô°¯ôúµ±áT,ç·õ¨)}ÀÉn7ÙáêÜoÌõgõ@<zmôNÞ9ôþê#‰å¡íWº 1˜Ôä]P’½ö«éÂ]c${×~|q×â06&¹¸ŸÃy¹ß¨ -å›ýÙG|õþöÝÌ&˻ȥÇFÜ|î%‡q§Ã¡9òõü»½W”ÇOuñŒJC“BùRÿN#²endstream +xÚ¥ÛvãDò=_‘ÃÊa,ÔW©Ï>
L€&ÌNÂmÅ–Ç[2–œLøúK·,ɲ3g7yP«TÝU]]÷¶¸Là_\f&N”Ó—©Ó±I„¹œo.’Ë÷ðíëáqfiÖÇúâîâó¯Tvébg¥½¼[öÖÊâ$ËÄåÝâ·èåÛ·×7¯^ÿr5“&‰®ã«™I’èÍË›_~Ï°·WNF/¿¾¾½š‰LŠD‚x6‰^ÝÜÞ^9»}ýõÍ~¸¹¾úãîۋ뻎³>÷"QÈÖß¿ý‘\.`ß^$±r™¹|„—$ÎÉËÍ…6*6Z© +àr†Ú m;±3FŸïÞ5EgMôX®×<*>lK& +§ŒîVeß³ùy_ðsß “„QáÓFó¼)<2<¾gŒÆMù¾ÊÛ=SôSª"¬Ç”l´½Q±kʦå÷u]½/v´µ$쉫]åD.XÙFµÿV/;Ž„ù/€¦ …ø}ü‡¢Û€
H£í®| ÓÄ—y½ÙÖUQyÖê%ƒ;äïn¿ãAé™ø«Ø¶ž%ý=ITYylÔÁ¶¤ßVÁ®WƒÁ`{"ð$©ÁóÞÃgé%±"áx“Wû|½~ºMâŽj;—:öT¸`æ@;ÚÛŸîk¿ÔLoM›ïÚÎæF†b\œ¦&ó¨(Yç":©,‹òû¦^ïIž@ŒG¥'_V‹rΖÀ¯üüþÞ¼yõê›oÞ¼¹½å¥ªºÍÛ²®@wµL£—½%ÙÒ8µà:ÂYÃćužõuŸÄŽ +“7$Ù?,U¨ÔÀ¤¼b½¥¤ô„ 4Pù>#ˆ>ÖiAtX$ˆr2ÎÈÈ‚‡© ¬B‚td …r?=Ï[‡5ÁÜ@dÚÂ8Cî~îŠÞœ[ÎEÊz߬ŸfÁá'öE8*}Á»Í›&|Í=Œ|3:–DNWɛܗå÷E¿–fJ1gOw«bÊÉ‚8©õ„ÜF›©v«:D¶A !³^ +Û0€-ó§ùÚ;ô–{ÌÜ/Áµã’+xxïår*ˆÀ¼¤åøHŒs|™QFZž¸Á´+ %õH’×ñ„e;U‡Ú>×Ì—œ¿ÁÐ'š¢Û,Ãf_pW¶ìgóR˜IÐ1i??`
ÿX6ʼn)°›¦\<sá)×ü¼÷T‰KÊMð©kÊ 3wª/Û´¨]rTco×ùœ¨¥ï¸-£ñM8$€ðÃqÓ[Ã^íUô÷òÙbÇ/èàñkÛ-Z²:øíVs¿/ÚÇ‚¬‡=ê ¨àž”Í)ªN¢Â4ñÔ1ßRƒØ¥®‡Žª¢¤ÖʱýžB¨*² B†L¥ÞMfT ×Ì}L¦oeL6ïz%Àð ˆ<y”<kññ/•ì’÷кk<£N”ÆÆ—XJ@Å$å(}:0«R,`KÔ`e¹Í‡0ªæ +ƒ{¿lÇ8`.¼}ÏÛ®
þDZ +"2Hä°7¹ +-ÀNÂ0^Ô\U·S¾e“ÿåí~³ŸûZ³)ª¦èÊJà&b6œs6§ý”õ©LÍ3¢‡uÆC,r>—´ÿ‰UøîÈ9( +ü<gÖk÷ €7!Ü·Ÿ»Ë<J>u¼µ`;øPdYƒ +šŒSÿÑZÚuFÌoA~R£ZQphëŸMðèŽ åñ=ðGAx§Ì7oë]ãסÞN‡l¶Øy¬û'‰@¤h8˜çóÕ¤é€ië$Vì¢| kß)#‘ɨÚoQ¾×&ÙQyØ¢®>m<<>Å>ʨК“¬÷bɬWËã®5%o¡éæ÷—%MœØ\w{Ò¥Ís¼:o'}H£Kß5ÌCm;>È"\‡,Ýß,mˆ«¡?»©›vý4êB†ö”j*° + š6ÏdÞ}¬ÓµÃ¢ÀúýÔH]¨KAʉf˜’qZyžµk‚·adMã4fÈÜϾo¨ÉÎ÷%Hç›jËûkjx~ + ì§ü‘s3êï»pm C{ßP¶ÛÔl´skP“"Ø6åÀò7¦8,«Ñ+0/r‹Ì€¿ˆ¡€1§n +-Š–µµvbF¿múòí§L’ÆR:ùÌÉö°ÎœlÀ¢“½™:Y¼Øîn¥ë|Æڢ— dÛá,“Ö—Ãߧ™8ÕÖÙ¤ +K'itûÃKØÎ NÇ¡ÒC<u„µavðIøÑßঢJÿà +
¿œ.ýgÎ ï5ÁÐ!ýUÛŹұq‰šî endobj -2701 0 obj << +2709 0 obj << /Type /Page -/Contents 2702 0 R -/Resources 2700 0 R +/Contents 2710 0 R +/Resources 2708 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2699 0 R +/Parent 2691 0 R >> endobj -2703 0 obj << -/D [2701 0 R /XYZ 85.0394 794.5015 null] +2711 0 obj << +/D [2709 0 R /XYZ 85.0394 794.5015 null] >> endobj -2700 0 obj << +2708 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2706 0 obj << -/Length 3050 +2714 0 obj << +/Length 3276 /Filter /FlateDecode >> stream -xÚ]sÛFîÝ¿Bo•g¬Í~ðcÙ·´q:i{Ž¹×»6} EÊæD"U‘²“þúXj)QÊår“™Ä‚,¾²šHø§&q"’Lg“4‹D,U<Y¬/ääÖ~¸PL3óD³ê»»‹¯d"Kt2¹[{Y!U“»âéµPR\Ârúêf>¿þ~6óÃÍïoo®/gÊj•N_ÞÞ^ß¼zó¯Ë™Ž%б”Ó¼¼ùõåÏ„»½Ìôôå×óË?ï~¼¸¾ë%¥WÒ X]üñ§œpˆ/¤0™'Ïð"…Ê2=Y_D±qdŒÇ¬.æ¿ô«îÓQmÀ´Iôˆ:´Ôa•ˆ³,ž¤q&£SG³¼œ<íK¢i³*Úùéúß„|÷®-;T„‘Ó; „c¿x…›«(F&1ˆ„ÛÎ~!š -Hu&TGLZÔm[.fmõPÿÝÔåÈÖi*2
¢ï:‚cP®›'>nw;B·D³toÍš(>”ŸZ¯¼CF“™N'ÊLfJ‰,Žµã‘Ó.àZO놞«¦~(·ç‹®z*AiF*PZÕº¬óûUÉ/¿Ï"€„X@Tþ|×VõÎ6dÚÙ¢,v!÷¢lÛê¾,赪éùîõ÷DI¤®´SPcW5µ;˜(Z(¡ÈÃßËX¾×:º%>³ÛÝýªjiñ§òïXb¤„/”8Š%R¥’I*#!uÂ}‰f‘óª±Xf"çdïù%©ÐÒDgùyšc~‡eØÈø½cW£ºâö®„oäJ9WrÐÞiàÅ9
<{§xCz.§J'R ÄLe"•qê¤`WÊ’i³q¶8z\[«U¾¥ˆƒ‘H•™QjÏF*û‘\ÑnåÇE¹é˜]G¸³AœF"Õæ‹‚8‰Ã¦(¸Š -V4ž—
{Eºn8S#L -Ytà÷^ýFÔ?‹âŒu+}Øâ‹[Â6Ë|Øâ"¥TÜõ8l„-¾bØ⓶â°5Ê|>lõ0l_5pv³y¨@BýŽúï)ÏüOqh+Rë€èt\{"ç’[rŽ$ -¡fY“°slóºhÖEùt(˜ÒPFÓ(=+YOt,Ú 4Ô«8ˆ6ß”‹ê½”š\Ay#ëiÛì8hÁVx’¨uÙ¶èSI<}³| ”›r›wì6°Ñ§¶+×´T4žOÝt´ÌÎôTüy>ã&Ñ3íKíÐÔŠè"DY;t"r$$
ä -“¦¼Oƒa‚nô×®zÊWe2©<ù©Z”è«&æs9ì2ß:úd <À’ˆöê!¼‹7ÀCPß7ůԛ]'Ækba¥´c¾qpœ™œdÍ>Pbo‡V¼mÌ´Î×%¡Èž¨Û=ù*<%Ã`Ê-=qÃãMÝåUÍF6^ánÈ;ÞÔõ-ð¼gî»–’C‡§È‹¡(ub‡õŽ‡¢v*2_ÑXo7ÚÆA«> ³ŠUÆБ*å=¬ª‹j‘wåQÅÚ1ÎŽ,Òc³[1úžÅÄ3ŸÌ7І §Éù„RÎ8=•K9G<4}2K?ÃÒ°6%djXÎ×ùõ`SWãÀ5¾‹YH`ëí¥îÝXUÅúm´²_RVqÖUäY’UØÔYËM&,|pU -œ›>xýe‘×_Æ™ 0¤?$uúË":rfü~‘×›‘ñ€Só>¡Þ`¯ T9¸ì¯\s‡¤Í2ø„{ÒsQb¼|™ Èn. -.u$¢ìq¤®§¦÷wéýWž%úû%=ÁNn‘Éݶˆð®®¢ç~OGímÇŸt®žþFû;/Hû¿±µÔûúýØ×þ»ø06"JUô¦
v8cZOåMk2=-+n|ôÚ0šî™òGÜ®îC -»»Ÿ p¶€§k¿A"DmŠÑÓº|&Œð#LÖñ]%o^7ͶóTµßœÌ -Ôó·/ 9Ô‹ÇÓAXö“X„«vØ“SAlÐÇT'“é3Ý8xÂI}'¢!‰4»nìjn¬ˆd¦üÜv~rn«†sÛ®N< íMð±Éy07å)oà8óL_¹1H|c÷Folœ$p˜agê.•*³.iá“n’-ò9Á~â
£¨dÙi¾j.H¡JÉÒïSúc¸//53Ýð/åǪ¥áb½‚öe²p #Ä{!¹æZ·û¦üˆZ—®2\Íž+wÇŠ2wF‚("£ìÐ$ßP¤à†eç»-ÁÏÕjEÐ=ïBý -©…¾¢A„ÿÆ`¯©¸•µÊ‰`ýP¡ÓìÌ(?‰ü\cV#aÊÂB‹ëØb«ÛÐÓï 3¨€Ôz^r‘p?b -~ö·ú=Ñ™ßê™È…æÓXC„‰Rÿñ -þQKávÀÍîœTžæXªáïÞ @‰ÿˆ5/»öàÎR”÷»‡‡^•N*qê}L,ð¯sF¤’ýè_ýG@û¿wŠRa¬Õã< ÷Ý››Wt éì6øøúcWÖ…/ïóÝK"½üÓ5á VXÁ’©Jå±Óðß+â?§³f†endstream +xÚ½ÙrÛFò]_Á·¥ªÌ1æ +0÷Ý•dœ•GZ±¾þxõò[m‰H"->Þö²"°V.>f?/o„Ä5l,_ß®×7߬Öo¾»ýéÝíÍõJZ%ãå«÷ïon_¿ùçõJ…àr,ÿöêöÇW%ØûëD-_}w³¾þõã÷W7{ÎÆÜË@#[¿]ýük°Èàß_B'6\<ÁK d’¨ÅîÊ„Z„Fk)¯ÖW?ôŽfÝÒ9iÀ´ˆ¤±¡Cmf‘âq2 /2%G"³R„I.z,Ù/J™¢Úò]^µør|l©cal-Æ›Ÿ°ÐcÍð F<H£„‰ƒdÊÄ`àZÚ¥c‚ÔÐns¬ß½¢A“Š´¤qÕíîò»¦¨høáÛoh «h”Šv»ËÛbÓˆã£y¹Åðo¿ ÜÖáz,/Ü®*>·Å.Ÿ—·æ2=ÖÙ’â)ëüwK´VŒ'ë{¿xSWYÃ/`BŒ›ïëÍöDÔ¡±”Ñ"Šc¡"°“Y×g¤ÕëTÔÞ{,<æªF’/¿ÌX"RhØQêCñPT':´H‚Ð^fÇšám¢½µ±œ2÷ÑòßuÅ#bâ–Áò
Ë´ªYWÍ>߿ʳǺHwùTíéäqÁ:J›¦ÛåÙTÅwùÑž¯sú3¡°š¢ßý°.èÏc9ý½›ÓFÚØ«¯k÷]»º¯»´=Ñ¢±è#áe{¬'Z„Èžd§,:-ê8X20–N ký$±Ic¯DoiÓ¢*®åÂú5MñP¡fpŒJ³ˆ`þ}Ý4Å]9¡ÚÐÒ”â%Él"ÝU,…M€åX†ªDmþ¹ðGV‰: +YÒ¿aå÷iW¶0”3D x‡J{ÇÂMﻲ<·y$ #+FF{Žäòi[l¶hr–
4Y"ñ2D(x¬{¦4åe ¦+ÚôŽìÜÍxïdSoòÆg»¼{¦9 ‘* +z°¦e±o›È÷b•DB©@zÙQvJ«lF*Q$õH‡ôéŒt ©zC>Ìl'µQr´Ý_nÏlh¤0P:"5Òx‘jÕÖl ðê
!p„bÅgJ»¢JÏ4î͛ƴã!ÝÁÊ:Íœ`ÝÂç9ÙXâ3 ó‡!+;#–DGŒ%æŒÙ€ñHóEéhaeâÅ=ÄR´3s¬Ó#[àc~hŠº¢ YÌNÿD3bD¾ýH!0Ë‚ÜVÁ”4vyŸxÐ0Þ¤LöÎSsªK3†>4žÉHýñ&2ø§Ì0㳑0PBþ.ü™SgšÛiF‘ǹiœvèT£3:BŸÇÐ2OFVDàs=·ÅÃÊØ,9_öù”£Ô[g³WA(Š¿”½ÆXç³Wå²×þ˜$ÌIü’i†äX'уؑü¦³Ü7y—Õ«„©z‡ p™¥mJ“OÛ¼"æòZ +ô4Ëû´iIîa48»Kl€QBl%(;Ò!ã´Û´¢).ÌŸu_:–˜<‚#Ÿöì«X9öQÓqÌL©X/ë}Kö
»ô™Î¶`²kòûByI¯tjDèO/%eÍ^„gohÆY<ýBÍ6
¸‘P>Ù3ͦ¦ox`OL“FYìŠ6ÏΛ" Cª‰¿`Š#¬¦è±œ)¾?kŠ—H¦xBrÖÇ$_OÃÁr_7¾ˆÙÓ‚“‹À›´ícT›7-]ÉF‘@Ùeä¨ÚJ,o¨“„7DØñ†Ã
i”W
ÛdCÁ&yŠòâ¤.WÂ(-jwI$Ü‚·ë¦ßbìá\šXv¨GxG]<¤ä +sU]Mm‚mÜmóXrU8AM^bdT_"ôíú-?åÏ×R**™B>b¤eI~G0}ÞTùåynä«Å QÉDyw¬rô,™
ÕîÎQ“è)30\FêáPêŽs@Ÿ?zUôqÞÇôÞûq‹OžéWú¼1ØÓœ» m¿àm#¤óÎæ‘œ¯ýpâkVè +Edã/$Š1ÖùLÑc9;ûp’*b¡m.“ôH3$'V±ÆNIþ²Åž¤Íu.0d$pqTÇ9ƒJ¢!‡'ñÒÃ(“±,w/m=ç¯ÜMl/ú+[ÇÐa‚ÝòÏ›|ß2¹–`]96"šZÿ•+G=QäÜŽƒ}< ö‘4ž—c{<Ží +šÜJ +-ûv}QeÅJÑ“Œ7Õ£ë*ò]YÚÖ]™M»šxæ³ñFZüŸ¨ËgŒu>âôX.ä¬Ï5y.’ì›<§$çš<’ë]z@9ØØ7Õ°÷m!@€®×vÙmÚ¹¬Šù[+iOZ…"6çU¤™“VÜG#k¹Ô„ º)Yß5ß×MÑÖ‡g¢oB„ÕЈu
£]ÚžìæyÅpœºÞ]Þ§Ÿ¡{‚•Ruôaµ¨6e—
_Ww|ö›o²§{Ž™ûC&*zŸUÿ +·rþ7IÞ©z7pò®rÌ©ªŸ†°Z¨¶¨V7ËÜñÈ•qÆ/Ë?§»‚nëŠg³" ¼Ÿ˜XKó½c( +øDÇ`úéÆßÀWsõ|/Ñ“ßÜcbêç•AUáâ&Ýpßt÷µï1Ÿ òné'ïç Qì/qÙÀUИ CàYò_ûÅ~æå|¾6"±.ÐÌy ÿ™Èj¼Ã©Z¸ÈÙ è¸_É Ä’ +qü|ìµ ã‘6áš0à¦FŒ]?×P Ø%ü×gP›‘Û9ÑîïÖ—›®Ž6òÍé{2’S‚Ãb®]×u}#‘à7çã–Åàg°…Rþ¸ð‡õçDo=^ðc3Éü©Ý€Æ}mîpŒ¾G5þ8}ð3'Ñ`Ÿ6í‹SbÓUc5œ)âÜ¯× øÀŸœÍˆ'è¯Qÿó/Û†ñ™XhkÏä™#žPÔ_¿¹}=|´Ã5áæs›W™?óºÛïë‹õïÎzéû§û½Öz)cuš—¡t¤f¤ðl}endstream endobj -2705 0 obj << +2713 0 obj << /Type /Page -/Contents 2706 0 R -/Resources 2704 0 R +/Contents 2714 0 R +/Resources 2712 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2699 0 R +/Parent 2691 0 R >> endobj -2707 0 obj << -/D [2705 0 R /XYZ 56.6929 794.5015 null] +2715 0 obj << +/D [2713 0 R /XYZ 56.6929 794.5015 null] >> endobj -2704 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F42 1288 0 R /F21 994 0 R /F64 1435 0 R >> +2712 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F64 1435 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2710 0 obj << -/Length 2567 +2718 0 obj << +/Length 3035 /Filter /FlateDecode >> stream -xÚY[wÛ6~÷¯ÐKOéS‹Aâì“’¨©›ÄöFN·»mh‘²¸‘Hה⸿~gp¡H -’·»{ü@\fðÍÌ70›Pøc“,!Th9Iµ$ eÉd±9£“{{{ÆœLì…â¾Ô«Û³¿|/²‰&Zq5¹]öÖÊÍ26¹-~‰¦77³«7—?ŸÇ<¡ÑŒœÇ ¥Ñ‡éÕ§é{Ûws®y4};›ŸÇ,ã,!FQNÑèÍÕ|>{Ï/ß^ýóújvþÛíg³ÛîdýÓ3*ðX¿Ÿýò Äg”%“'øA ÓšO6g2$‘BøžõÙüìoÝ‚½Q35d
™d$áRMb!I¦` Í(¡ Ø NM”ࢳg!›y)´Yüu¬¨DˆŒOú‹lé…[òÞ–p;‚éd¸åu½~>K¢¶º¯±%£íª´]pïfÿ°íÛrkÇŸªíÊv~.ŸcœWÕ÷¾ãœEÏíü,ÊëÂv7›j»ß%ßîÏY•]oi~5+ñGS—ãEŸ[‚–™0F@™dCC' 7*üJz»ªZ‹*ÿm«MµÎímã¾ ¬3º
w¡ÀTÔ,WÔm[.bø vŸÛÏ1N.Û¿ºù}Ã2®Iªxâ@¬|ó°šÚ«ì¬¢S–¹‰u¾)‹Àú‚…rRôeáP—²\± Ù“:M/e ùÇQhžÚr̓-ƒÐìoyy_7'ˆ&½›¿Ã†„§"¿·h^üÂ]ÙÁ§U麊r[>n*‡#èxZå[ÛB< 0ÂÌE‹ \件l»=c»Ý}YØ9ˆÆþ*Â{ŒåëõqœZ]V§}„ë$ª8ÏTô¯]ëZÆÿ°áýÛÆÿ଒é>âaÄ÷ˆÇ5šýZ‡¸ãJ¥˜vÚ=ù¶Œ«rño§ÖMì”’4•bvïÀŽG -=J)šåÿ€z¥8IR™žF}_ê8ê;)ƒza¦äÀ$Í´÷ö6_oÇçb‚€qò`TàdÃð"IÊi2<ÚÛ².áÖ -l¦Ñb•W®×lhÙÐûêKéFWåW;£¬Ma`½¨ÀMiMíp‘·nÄŸ5LÒ7Œ` -Ü8Q#ËŒÔá‚hÌÙÔof]xîJ»x¡;€½* \¥r ª.ª…±„
ñèäت]Ð7çäŸîÜ»¶lôÀÖ½µ¯ >u˜†316‰ÉQTrhp‘¼€ÊžÔ Tz)ƒÊB¨D&”:«V[sö¦n $Fs¸“§ë¤Ç@∦ःóýý¨ó:lËýUmòÚ%ß½NiFl']”Ë|7¾c¤’G.&É4‘<}ábúRÇ/¦“23=H’ -o%=½¥ -l9Œ¼’£nélÅÐÖÀ¬s×ïm
].$`¯!sØ°¸†Áë›[LLןní€Ï²8Ö¸Y˜ßÆ‹ŽÒšD懣Ec;lšÛÓd¥IF²$zs‡+Cç²yô„ -hÚ΋ƒuyï!‚ËSX:#JRm–þÔ:ãt -ôøê‹Ot§Ð‚]=„6ä»fíØAQ9·Íãó9c,ºè¦ì'{âÌdŠ]rO¤«x:›CÉÔ]S…OF)‘©¶o.³Ÿ§nÞÏñTC‡Î˜êù±’°ÙzÝ<Yk¨\y³±FT¶†mms§uî jšI…ë’À"(¨Ä35zÊPþÍ7ßúC½™OmÃÔÞØð¹½°’wÏ*A¨3‡¯-°Ä}YÎÃiH’Bo>ïzšï _~ÇR.S̳XÓs½*M- -ÝS¦%ŸˆýÑ—*(í»Š9¾]Ítp‡–ž›€›p9d¼ß@š;'ÃHa=;a3ûmì·;kÓ÷+2„øâP”G,Ç ~V¿Ì>>‹ò»æ_÷ËíszóÕ„±.&Ž
t¸qš¦;.¿°Ø€P׎2ΞônH%L’ݯg„ -É ¤wé¯Ã^ÙôÓí×_¾‡Ë\¬.ÒçÏ@l6.½nêlµÛû'°Hþç6PÒîˆÿó?ˆ÷ÿ—˜²ìHi •B3(TŽ¥Ìð9ÕÇ
Ñ$oøžÌ¾n˺ð‘x¾{@Zaüd¼b0пA‘aîO–ø7)"Ý
endstream +xÚÑrܸíÝ_±o'Ïx‘)iúäk|©ï®NzvzmïîAÙ•m5»ÒÖÒÆN¾¾ +‹3‘ÆVÍW+&Z©È©r¦Z*\ôÒäÕw6ºœn´îHÒu›I J#aqR¯@5£Ø(ÚT,’ØÚ±f·»rUýÇ +#Biô¹»û‘ +¿•†6—•›Ž€6¬Ó–N}\Ü7÷Å~ãè8¶êGpäS±Ù3®×yDŠ‹r[¨oß^rlVïîÑËiv”¾.1ök£¶M¦ri£g—oÂSÕŒ†<Òì; +Àd:ƒˆÈ9 +õrÑÍx8Ö»òM»Ò< +Zñócµz‚$w$ˆvc’Šû†’ mlvqÛü\m6}`.ÔÒà¶(|·EçeªÛ‹AúZ +¿”vhî-Sô.7±7ËLXÏä,z,Ö¸ì”ö[qœª2Z‘À&ÓF×5QrâÀf¡¬y‚ÓgVЯUSCÐÕŠ©>”ÝsévT/#í¦)ÌÜwÕ2ÛöbÎ[¡ŒµHÞvlºœv.GK”‰PJêÓ%jHu¼D*·ý»C‘¹6M’Ó"=ÑŒÈaîÕ“ŽE¾{ªj6BÛAïÛfÅ6(¿j¶;ì^šú¨E’TCæO“ÓR·H rÙO,’ˆ$I¾"Ò͈Y$Ǫ} òýŽZumlt'ÔWøŸÆßi´z,\;f|¦GˆsNHøHXÐç£OU³o7Ÿ ‡t§HF½ïÒª<úùܨ•DÔq²\„°.fšØÒ4êîbaÔaÁ
²Ø‚pŠš +I==¥uAÊu×X¾¹Ì’#ª¯anRä!È=FhÀ}äß°á³$ûÊæì‰NìM&r[óÓ\?-…†ÝÄkß@ŸvÔÊ +•ÂÉì”Zhª×¸{’B;Òë¶ìÚƒ3˺ü°x¶tjµ–Nç_Ie¢ãÖòDÎZ/“D¦…†8)ÏÓLåÒX&´ÌÍHÞÛÚåègé§%_,!Ê7Dÿô9aœ7 ¡~ò™C@†ÀšºÔZòÙÐͶêz)E·§ˆl‰ß +Ü-‡L?·‚òT0uxJÅ«'jƇ•¹¶Õ¦xŸSqeÓ›ƒ¬Rã\ÝÇöcãL„Ó?—íŸæo•‹Ô*þ„.Áœ^õŒdkDžÊŒ'Ö…Ö3üu,r8œ3•p·cÇ‚hu–ä_‰ÊÕ‰°ôT..¿ËS"ûÀœˆœÌ¡ÈëÐâc4éè‡ÛH"lýŠBºs—?kâ ×[@1¥o+Ž#@<»#†æƒ2c˜ñ53ç`pU@W×™K÷àjÌÁhrÑ~çÀX±ÙÓƒnÙП³2ý{ß2Dù(œØ +MÈ#y›t¤ßÏGXÔó6¼~ðÆö®Ú†Ëá~Mxm 1c‡¶Íß0|Œï‡G#á<§°ó>é˜!ÕqÇ*ç˜ËI‘´è•ô´HO4#rœyÁÆY>ɶÎõØÖîa€ðÞÖ€ò‡Àò3`xõSÑÛwwX˜Þ¾¿ó/zTeq¬áY…»z3¹JÔþqQEë†|Ô¤si&2“Žwó 4¦œyï_!ªÚ´}¸²tq°)|ˆøÓ"äØ<£Žÿ}ËÆ –z4Ä>WtY*]ŠÃÓ®(ÅÅÜu¬JAuîc//çJ%ðà@7ÊtNÌþ©n½%cëÇëK¼ÃS+
Ðú`_LÌ„=ôÞÀ.âEÊÈ/6Øýž§¹TGW´‰ÁŠfÇuyߎrßԉʦқ`?g¼_1ÞJÃvاàm‡òϧ³ƒOÍt +àáu âèÚÑXÓ?¶MÇ2£_ÿNg‚Õ‰Là©|[„/›rz¬ÅL ýÓIÙjFø8á‘ÃI™‘Uàë¹ï¦?¯ÖEº²9j½\‰8ùZ×5 :n;O„Êc'?yå…~:IO +ô4Sãj¡3ÏôH¢{WsAhm3k¹ÓG¨}lö›5ÁÎ8ðå¦Ár¯mµ¾ƒ€/î´ÉèÏ6¬¥¶dĽwA&£G.•ú·yØjc¶¬.½^¸›áÀ%ÓƒœZ¾p¢KoŸAT>xœËµŠÞ;p/æC¨àЮ|q×÷ -L¹çƒ–éúþ¾Ù×,ºðÀà•Æq?tL¯¦÷:þAK9wûG·÷þt=j¨ý%Ÿ+/1<3^„)ýd߀°Yg{ÄPŽÞ§ù´øwD3чǺßýçJý_f%)œ³#/Êx;©u.½Rh?™B–M¬ÑÑ·×7¯iM0Cd>y˜øê¥+ëµ_ùí~‡¯'ôãïΈåS[ácÌôpft&Låoj†ÿ/·]Aendstream endobj -2709 0 obj << +2717 0 obj << /Type /Page -/Contents 2710 0 R -/Resources 2708 0 R +/Contents 2718 0 R +/Resources 2716 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2699 0 R ->> endobj -2711 0 obj << -/D [2709 0 R /XYZ 85.0394 794.5015 null] +/Parent 2691 0 R >> endobj -2712 0 obj << -/D [2709 0 R /XYZ 85.0394 416.8284 null] ->> endobj -2713 0 obj << -/D [2709 0 R /XYZ 85.0394 147.2076 null] ->> endobj -2714 0 obj << -/D [2709 0 R /XYZ 85.0394 83.7467 null] +2719 0 obj << +/D [2717 0 R /XYZ 85.0394 794.5015 null] >> endobj -2708 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F64 1435 0 R /F54 1383 0 R /F42 1288 0 R /F49 1308 0 R /F40 1218 0 R >> +2716 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F64 1435 0 R /F42 1288 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2717 0 obj << -/Length 2332 +2722 0 obj << +/Length 1745 /Filter /FlateDecode >> stream -xÚYÝrÛ¶¾÷Sè’ž Qâ$æ\¥ÚqÓ:n䦧“ä‚– ›‰TEÊŽóô]`”(93çŒgÌ%°À.v±ßîRt’ÁȜ䊩I¡‘•“ùú"›ÜÃÜ/Ôñ¤ž)¹~¼½øág^NQ9Ë'·Ëh¯’deI'·‹É”PJ.a‹,ys=›MJ?Lß_ýü÷eʲ,+’×77Óë7Wÿ…w™7°fYòûëë?_ÿ†c7—Š%¯™Î.?ßþz1½
zźӌ¥þ¹øø9›,à¿^d„«RNžà%#T)6Y_ɉœû‘ÕÅìâ°a4k—ŽÚ‚f„ñœƒÑ „˜Œ!aeÁ‚5.S -'OM×éyú¨·õòÙ
öOyA2‘)Ë{]µ‡YdeÃEI–ƒš†k¸5Ø'Æ -¤ÐâHk”áý”el^õuÛàX߶+'NA‰’’9i"#’+ÔöÜ´›®î]eÎ'9ã„ÓRŒ™ŽÂ˜ãž°+)(Í'i¼…5«`#w,pØ ë~Lçx)¢Õ4+ˆT¹‘fÝ|Uu²
„0EʲPŽë³ßq:²#—¤Ì¥ßP7÷u£Gv²…¯^ܱn6»>]¶ÛuÕì[€Õ8=ܶ}qÛv[ƒ¦ß¯èãÈŽ)Ï9Éáß$
Ö¬ô£^}¿Q?êk ¾9Ê\Ùe½Òc3•‚@Êáý|3ýôþêæöêÝuX4VÎäص9Ž48ÏJ¯±ÝAÄ™ôà DRá€0 ê'–»Õꇺú¾Ñ¤Á›8¯«ùU«{pIÿ°ö»Æ1×
òönsˆé·Ó¿‘~ÿ¾ÓN ·©´ŒMR¯¾ó±Qò†|eE˜ØÇ“XÊAÄu€öÉùCU7Ûc{IËÄ-š·ëÍJ÷š|¼³>:†t‡ÂŒç¡"æò|ËÈõ°a ¡B¬˜ÊII™8¯˜gQŒ
ÄÁ¬‚Ùf³žï/Xìð¸3°ÕÌ’íò€É8–œ4'ƒR°ÅysF\gÌ鹬9¯FÌ©H^òü€ÅêQ^Bâ.äyý׈‚³ -nÊŽr¨á187q* -_¬ ˆR´</Ò3ˆÔç@šîg ò]ƒ%·HBK,xT¬»:ZDu4ëh¬ÝyT°‹ä *s¤¾èçÔÌàÝ6èJdeò×¥„DØ?´» ÊoñΫûW®¢H!ð
ðCDÁáäþQyN™¯WxPÞ:å
ùT¯VHÝ9F;öŒÏÊ3Uó¾~tŒî BÉ_ºñòê)<Ò8{ëŽÄYadFöò-TÆŠT£™Momí„ÙJ%õŸ.’ÕÞIyœdø:|:@V{o}÷ŒO·‘³`Ä;‹—¾ºÁy‹:ènÓ67ˆø«|3uØ$—’0ó+‹nùQ5 -ÍNáY¢ÜžraËÀ -øà™‘Äs -[µÎ~¹1Ý8l±t¶kú±“QTŸÌÇe‡5‡+ï¬ã°(ïIØN)%Öœþ.˜Ú_†.@î×Ò,+iò¤q¤ÅìªúÏ®_`Š`¹Â7Z@8sÑ7&·gtWÌ´³PwnÄïµÒU×{ùnîèú>¾N,d-Ó½ÂÜâ;èÅJ›ÏœawdæñªWñ}P +xÚ¥XYoÛ8~÷¯ðËbe´byKzt·ëI6v‹mYN„êðZ²Ûô×ïP$eÉf“,â9ÎùÍPdŒáŒ…D2¢Ñ8ˆ8˜ˆqRŒðøö^ˆáñ-“ßçz¹½xÅÂq„"Iåx¹îÉ +C2^®¾x3Dš€ì_,³3ÿãìzþêóħãÀ›^]Í.ÎçŸàY`àVŒ½÷Ó‹ÓwzíjQoúz¶˜|[¾Í–^}Ý fJ©F_¾áñ +Lx3ˆE¡ÿ€ŒHÑq1â‚!Á³+ùh1ú»ØÛm_uú‚`D™¤gP2[#!èÀ"B’Q¦½ñiúþêÝLYü´ç<<ö©D˜r͸¼KÁzɽu•çÕ¬¼UÂKª¢ˆË•Þ«³Û²ÖdüPõ„0ˆb°·BÓŸq±ÉSBȱPZÞ_Ui4ø‘5wúðÆ*u¾˜jâ{z¯‰Û´L·q“®4çͽ9€ôµ‘Ea™Ve]§‰"àe‡>>hƒDù[ᵯXà·=KÐ3ŒÙ3PÀV›kTz/Ó$ÞÕ .£äàœ¡:F˜eü…CB‘$80,զɪRI¤^Vëß²j4q“¶!R§Á±«ç@r¬¦¶•7ÿ4ï€Á†*vu÷º‘[4†œÀ ŒtQqݤ[pu„Á˜æ©¥6iзCPHYã÷ôp"„É°c7NåŒ@R*»ÕAY¹¯’XûC=çUõÝl«CBâ!±¾\AèÇÑ4…ºêŽV¦ÕÊ™·¾Qè,Œˆ—ì¶Û ½´lôÎ*ÓÏISmï'„ϼZWöÕ¸1~à$ÌÄ0·ÎrŒ˜ªý]Õz1‰KM¨`©ß¬ØT[òð´n™Á¡í(i¨CL†ÙHPaâߺB!ƒAN=ë“P@™P®($%Ô—bÿcâK°Ü™B +]ÑjÓ¿•þí§ƒ~k˜"íÚWÂxë;<ôÙojÑÅ:‹”Rà½#1Ê;²oß¼ìâÅ7Õ~B<ódÎyîð|AK +ù…:Ð+¨
C¢s ®(Ðâi„¤@à’ÀY~='œ€„•F̼%ÈHW‚¢W÷@×wÕ._iËor0 +`¨oy/ °£Y„Ii?CŒ¹”šÒw™c°T¼ +˺ÑH•uUåOIßû²ÚÔ€qG—FPJ6¦TçA躔° +S÷„H0®'¢½°‡Ds_é¸>PeýÅO´9‚÷óƒ-QèI endobj -2716 0 obj << +2721 0 obj << /Type /Page -/Contents 2717 0 R -/Resources 2715 0 R +/Contents 2722 0 R +/Resources 2720 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2699 0 R ->> endobj -2718 0 obj << -/D [2716 0 R /XYZ 56.6929 794.5015 null] ->> endobj -930 0 obj << -/D [2716 0 R /XYZ 56.6929 769.5949 null] ->> endobj -2719 0 obj << -/D [2716 0 R /XYZ 56.6929 743.9636 null] ->> endobj -2720 0 obj << -/D [2716 0 R /XYZ 56.6929 710.4805 null] ->> endobj -2721 0 obj << -/D [2716 0 R /XYZ 56.6929 639.6941 null] ->> endobj -2722 0 obj << -/D [2716 0 R /XYZ 56.6929 562.8392 null] +/Parent 2732 0 R >> endobj 2723 0 obj << -/D [2716 0 R /XYZ 56.6929 483.0195 null] +/D [2721 0 R /XYZ 56.6929 794.5015 null] >> endobj -2715 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R >> -/ProcSet [ /PDF /Text ] +2724 0 obj << +/D [2721 0 R /XYZ 56.6929 752.1524 null] >> endobj -2726 0 obj << -/Length 2253 -/Filter /FlateDecode ->> -stream -xÚ¥YYsÛ8~÷¯ÐÛÈU‚“ǼlyeÆ3Ûkf·*ÉMA‰Ôˆ¤üúíÆA‘,;µ•ª -*Ú:»ómZ»^g[‡¯¦Há@?eƒÖÁö!Šã¬Ó£:bOe¬ã0:ê÷I) ¯ŠC]R_7&cØ7¤£ÊuTí¸© Š%ÀÒ@½ó¥EÓŸÐs6PÜ¢8ÜÕ
!7"Iܬ®S¬Tfäê¸ -ÈzýôÆ<õøî|{·ÍÖ?’Ü,epÙàì¸úTÏ; £2Ø<}GEvÐw(2}‘=Tm³gëá
+&IÂû–~]»ÚÙt×tïîÁ>iœ·¡V%öGv -ÿz˜UØ‘ÿô:œ?hŸ³¶n -ŒaÓv«mk>°7Ì탎ìýX feëÍJ£Çd:~°a[ÛÛuѸÀ€ùmëÎ5Õ¶©÷™¢à$¯Ö)×Eݱh»··9=ÏšŒø7µ¾7gK]6»G04ó„aŠc×pyhð—5•À]ˆû[µÅËýÆÄIï½N† ÅñãÐ#z -endobj 2725 0 obj << -/Type /Page -/Contents 2726 0 R -/Resources 2724 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 2699 0 R +/D [2721 0 R /XYZ 56.6929 482.2756 null] +>> endobj +2726 0 obj << +/D [2721 0 R /XYZ 56.6929 418.6749 null] +>> endobj +930 0 obj << +/D [2721 0 R /XYZ 56.6929 379.3286 null] >> endobj 2727 0 obj << -/D [2725 0 R /XYZ 85.0394 794.5015 null] +/D [2721 0 R /XYZ 56.6929 342.5823 null] >> endobj 2728 0 obj << -/D [2725 0 R /XYZ 85.0394 752.2879 null] +/D [2721 0 R /XYZ 56.6929 310.4003 null] >> endobj 2729 0 obj << -/D [2725 0 R /XYZ 85.0394 690.9973 null] ->> endobj -934 0 obj << -/D [2725 0 R /XYZ 85.0394 653.2561 null] +/D [2721 0 R /XYZ 56.6929 243.8778 null] >> endobj 2730 0 obj << -/D [2725 0 R /XYZ 85.0394 620.7725 null] +/D [2721 0 R /XYZ 56.6929 171.2868 null] >> endobj 2731 0 obj << -/D [2725 0 R /XYZ 85.0394 585.7377 null] ->> endobj -2732 0 obj << -/D [2725 0 R /XYZ 85.0394 521.5252 null] ->> endobj -2733 0 obj << -/D [2725 0 R /XYZ 85.0394 463.1995 null] +/D [2721 0 R /XYZ 56.6929 95.7309 null] >> endobj -2734 0 obj << -/D [2725 0 R /XYZ 85.0394 323.943 null] ->> endobj -2724 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R >> +2720 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F49 1308 0 R /F42 1288 0 R /F40 1218 0 R /F54 1383 0 R /F64 1435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2737 0 obj << -/Length 1938 +2735 0 obj << +/Length 2243 /Filter /FlateDecode >> stream -xÚÕYKsÛ6¾ëWèHÍT^$À£j+ÛÄvm¥í4É!›
Eª$Gýõ] -BŽEÈ‘‰?^®Gx|c?Œˆ¥™:¢i›êûÅèÅK&Ç! -Œ«/‰°”d¼ˆßzsDš ->ì‚/„YŒð«7P3qAv—6âè"ò—ÕŒºË“¯7Iªju÷;J…iµú\¤€öÇ(Mâ¤Ú™·ši’Ý[O³K㣋]•çéä¸çt»,ß”IÙ¡"³Ø˜ ‚(øP%`=õ!<ÛÛ,ê -²†ãËÓq¬c9'q¦3o;–¿&CXtBù:Õ5ëëýáY½¿ŒßúÛøñ>¿×'Ö/;±~¯žåWª"q±õs<)à±K" %ÎÌs•ìÏN=æ\ I±è3/Ngù¼ùÕ.UÇv¦ìó»=±~Õ³ü⤀#@^ì˜úÔ'}¦‹+ù8¸â{Ù© -&™štíõà^TØɘ„k.u[¥¶sÀ:¸
SˆÑa/FǹÒÌ%÷TfZiÅæŽ)Ò˜ªsB½ÅCRš±uôA
©D„¯“²l«ôô‚†noKµÚ¦FûB£u#ÉUè7¨Z·=ÉÖç¦& -àÊoþ’µÿhÇbRÒacz:õÊå(DbzMݪûxþ b_ìüív»ÙäEÕ|÷€@¤Š2Ñ.ã“:ãüpÕ1¢, @üB‚ú˜endstream +xÚYKsÛ8¾ëWèHU…<ù¨9yeÆ“‰ãµ=L´IÜH¤F¤l+¿~h +^ÌEGË69§$‰(ME‘– +iÇÛlËu¾-W{Ë®ZUªÀ·¶ÖÏ8xRø¾kÜ ‡D±¯òu9צ\TNBo€ÕÑÔvº¥Þ9¤ìŒÅn½Á/bÜ2½Ò_ +XÃà$(›â„EBPq9Ut¥Î§ +/eRE=*`\$Üzc½-eu’%8‹˜'¾hš—°—%x1é©gîŽ)4Fï%ÁÍüýf£fvãß!§uS +5«_ê± +Ø@Àbn±«Ú¡³¸WEõŧùîáÃÀaOyfãðlÞF~:Ý"Ûéœ/è@úf@¾M¤M°,¥Á‹BNÕ
(4õŸ]éö§ÁvÆõ[@X¸òpÛ9;¾¢‡-f@=YŽ›k¥ò¦uúí؉
î}ט¯Zº=z‡œbt±RMƒüzBƒ9’èm@ ·1~ˆ ›º4=™ è@ø‰‰=[Ƽ/i¶fã‚uê¤æíñ™-êháx/ +èÛcfçÐo2‰¾¢¯´'!%/2Šp¶T³oà,s—AÌŠí¼ouδÍôé\bª<š}‘±äpaRx§Ô>ºØmóCüw½¶Ùƒ×¾Za=áÁëz5„+9rÉ}UoÈeGq“ˆB3Žã(¾N‡¢i”È×~ž½<è/ Pf›ÿ.¿:êÙSÿñT‹•Ý«F²ˆQér\QnáôYo÷éXB6dÞí¬ór¥ðê +ul¼¶WO}ÿzî
.#ýgÄ endobj -2736 0 obj << +2734 0 obj << /Type /Page -/Contents 2737 0 R -/Resources 2735 0 R +/Contents 2735 0 R +/Resources 2733 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2747 0 R +/Parent 2732 0 R +>> endobj +2736 0 obj << +/D [2734 0 R /XYZ 85.0394 794.5015 null] +>> endobj +2737 0 obj << +/D [2734 0 R /XYZ 85.0394 337.9406 null] >> endobj 2738 0 obj << -/D [2736 0 R /XYZ 56.6929 794.5015 null] +/D [2734 0 R /XYZ 85.0394 269.4528 null] +>> endobj +934 0 obj << +/D [2734 0 R /XYZ 85.0394 226.7107 null] >> endobj 2739 0 obj << -/D [2736 0 R /XYZ 56.6929 684.7381 null] +/D [2734 0 R /XYZ 85.0394 192.0309 null] >> endobj 2740 0 obj << -/D [2736 0 R /XYZ 56.6929 622.0142 null] +/D [2734 0 R /XYZ 85.0394 154.7998 null] >> endobj 2741 0 obj << -/D [2736 0 R /XYZ 56.6929 559.2902 null] +/D [2734 0 R /XYZ 85.0394 83.3902 null] >> endobj -938 0 obj << -/D [2736 0 R /XYZ 56.6929 520.5531 null] ->> endobj -2742 0 obj << -/D [2736 0 R /XYZ 56.6929 487.6322 null] ->> endobj -2743 0 obj << -/D [2736 0 R /XYZ 56.6929 452.16 null] ->> endobj -2744 0 obj << -/D [2736 0 R /XYZ 56.6929 386.5142 null] ->> endobj -2745 0 obj << -/D [2736 0 R /XYZ 56.6929 236.5364 null] ->> endobj -2746 0 obj << -/D [2736 0 R /XYZ 56.6929 95.5488 null] ->> endobj -2735 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F40 1218 0 R /F54 1383 0 R >> +2733 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F42 1288 0 R /F40 1218 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2750 0 obj << -/Length 2982 +2744 0 obj << +/Length 2245 /Filter /FlateDecode >> stream -xÚÝZYsãÆ~×¯à›¡ªådî#©<ÈkÙYÛ«ÈYÅqÅñD‚"l’ r×›_Ÿž UÞª¤â2ƒÆLO÷×çˆÌ0ü#3-f†Ï”áH`"f‹íž=Á»¯®H ™G¢y—êó‡«?|ÉôÌ #©œ=¬:ki„µ&³‡åÙÍýýíÝo~¸žS³[t=gooîþ~󟻿64»ùêöÝõœ(B fé$ÎînÞÞ~1ý—Û×ßüó¯w·×?=|}uûÐpÖåž`fÙúõêÇŸðl ‡øú -#f´˜}€Œˆ1t¶½â‚!Á‹3›«wWß5vÞºOSÒàB#A¹œÍXARfa2˜+Ž‘ÂJ52£$%³Hee6_ -ç㜓Yw±“-#QbKÚÙÒÄ©ly¿/w¯Ãºðƒc?…a}ÜnóýGÿï–~PüVЉNÂÁ6HÓsÂi‰&dˆœh~ÍÄ~d†û%ÓÙï»cY¹l«eƼ=¾-šWÕnóñš’ÊE*×lZ0]ªqÉ4TN4ïODÃ6òÌ–‘(±eO8i¥[¦Pó¾Ø×eµâXµo¹Á1ÀdA/X#vµ]¾-–óźXüòïj?è2¡9˜%#þyMtV=íóíK€)9¸'9bÜ:T -ˆTN?Ÿ(€ ©8ŸÞ2%¶ì)@")„êoùu$½©òe¹{(ÃÉÑþ…1Ý„±“[‘/Ä?WÇý.ßø‡2h.BDZêq¡…ˆÖg̽K5!ÔH儺ð8¼D„!ƒÅ&¯ë!c„ -D,2ÉYC•`+| \pLú¼½{.åêã@Œžø7ú€ÐÆÎÞ„w»*H¸¶«Y5ËWAg”ò7wöÿAaYXÿ¦2ª¡%bØiet©Æ•ÑP9e” eRTAÎIUA -JP¨Tù4g
U‚µ~A+FõyK´ŸñŠ¶Ûaµ¦Úbõ:^OAÅÃqϸÅo‡Iäšt=Õ6„N·Ìê°n‚¿Ï?ŒmÒ!
”ÆÑÂ%¢Ö-M£¥C5–HåÐòeªýAãŠETÀY&Yk¨¼õᢸ Ñg®#"†iÑÀÅŽ-\z/!Ùx>†—±%eÇ懻"Ù—Ï? ¿¼cžSÞTsÆlÎPÖ~ÛeU„‘kÃØÁ"?Ö!j28µ¶ÕiÏ¡æ»` ÅÊyž- û¸Û±õûfËãö¹µ™Eµ;»ÐWFÀNGB³Ö†ìø
ŽÀüée&΂)ÉÇLÈí”4!i=·0™lbXÃQR«„!b°î/÷绑9A\pÖê”s'Ër}¨b8µ{ºéÁÈ¥–öpþç±ÜÙË
§sªä -B÷uÞ¸@%íØöùs¹ôöûª„Í4G¤)&X¹#Â2LvýÍPô‹éÅ¢‚Ä7Ô‘ÕžmH¦æ|m_yîQÂn~@#oÇYJjûÆ^ŽXÚœkPLÜÁ†û´~±5H܃ð«Þ¶«a¼Èw~ð©Úþ5Ô.±‡Yo—0h -ó^0 M{–›jOC,Pº×ž†F8Ÿs^XÓAG°š\.•SQÄ ëïÇåjû\nŠ‘Èl@R´ud#=pÈúîz»ù~7žöK#OƒÙ‹ù>›Otšø“™¦½]’¢«€òiWíG먳0eç’MŠRŸ¹këRMØh¤r6úíY…â¾Ì7©dS§Yk¨¼
“M¥‰è3ç¯:•™Ç•·ö1÷?±ß)CÿTfŸA4ùÌcNúÊ÷Äëâ×᫺ò¦·sþ¤þòÍ>¿Ï}ÿ -†ånðý\¹ïÞ¶»‡+o›Q ¨í°gû®Wãë»(ÇícÏ›[0?¬›fJÛ3¶ªŽÄÑcó×ñÍó¾Üæû2¶£VM£¨¨Í•ñóqÿ\ÕE¦GG ï36ï›D^—jy
•CÞ6…<Ž¤äz2:0pä\N3ÖP%8ëÇ„·=ÖÚ"Ûò²Íû@ý½Nu/a²^WGÛã²c«ûs,E˜t8±„Exk÷b]„Ýš®{h›¦¶™=ç²`|¿7ÃÂe4Raï1Íeœ¤ßüÜE û}Nû²"ž¼Ìµòs®Õf„œ¹8ïMÀ;9t¿M¡|›ÂÓ膒|à$W
Ñ)[}lƒ¼01=¾^[<úKn>î+" ÍYⶑµép?î¯,ç,{mÿfùeºwêìÂ;uÛdZ¾‹l‹A8bQ"ÙôïO«a>V
ϙˆcÅúyú§Š÷J!(³Î€²C4ñ—tÈr÷»ò)¦š|ü„©d:Þåªí@2æ¼í5ɜõÏîò„±Äå £Ãµ¡OÞ8\×G¯aúé®’c48Ü“6üÐáÚê®ÓÖdÑáö¾Lµåá˜óSlLáZÙ +xÚ¥YIsÛƾëWð°JÏŠå]^)2“(±%=‰~IUœ‚"bP°XR~}ºg¤äJéÀYz¦{zùºb +l¢|âG<š‘$Š25Iò3:y€½Ï˜¥™9¢YŸêûÅÙ»D8‰Häs²X÷î +
C6Y¬~÷æ„q2…+¨w}ñqþ~vùÓüò—Ë›ë¦30!½‹ÛÛùõû«ß¦3®(Ð1¥ÞÇ‹ëOÌÚí4âÞÅóûé‹ŸÏæ‹N²¾ôŒ +믳ßÿ “<âç3JDªÉL(aQÄ'ù™T‚()„[ٞݟý¯»°·«ŽjƒQÂ…ÏGÔÁÙ„1)ÅúPñZïç÷—wW·‹«›k|>³S!ÌxFyEœ§«Y²I“/IY¬íÞ;‚¼‚…pé5e= Á¼f“â€zõKÑÄÏç0QÌ[¶Y-ÊfŸ.Íã¢É’Ú’–kCÈÉi +9™uj†{ãªö3Á¸v UáV×e…¡uÌâg3M«jÊB¯¬ô›yàÅÛ²x0gž²fc¨âíÖ,‘j3ÉŠdÛ®‡å‹]mà2ò½«µ9\”ý³–È^Q?¦I†éêÜhOöµ'¹ ¾RÒªï]Ú$´ÈGñ9ᾯì](F–~~¯Ì¿«t·[x‰fæNÎ8E7¾.›ô?ðRöµ"Á›âfÄ_J¨d¯{ãÔ‰èD³g…ùS0wܤf¦MomoÒçF›Ý¹M6†(®G”Ë€²“©*V ù’¾Œˆ¥(ø\à[Bt°‘Û` G³ÌŠ^VÝ&ࣰ”VÖØ<Öˆ‹‘i¬Ì +û>³VÚ_kÜî,‚ëéóã6K²ü‰1æ[°¥ ¶€C÷Û”O j +Çv¯è%=È`RÁ™Q÷Ît‡‰›‘€1Rd@hG!šõ©\ž=,;:*ä;Ûì³ô}Ø
^aéˆFXò=[áËÛ*ƒä¢TçT´uü`‡u›çqeV§)¤Ï™ÁÙQ퀋 +*ÓÚéQÐŽ£ÒÚ±íËeè«\F_eUš4eõ²/¨ó™®£‘n€›ÐUò¡x—ƒ(ºD¡ÆìHvTD…¾?&ï>äú$”«‘êÒ^Š™Jl&7¸H£iÒd_5b!”…;eé‹Xì’<Œw˜“Gó ƒe "x€ô÷ÁÝæe€!›Ÿm÷²slý)˳m\míjÒé,µ®eÊc¾ÈH$(ð´oõ©ŽûVG¥}ëëAä¥ $:ÍÒ°äÃBBB‡,Ç"0ªÖvÁI¹ÞíŽåFA¤¤þ·@oÀ#‡ïÖ¶UœKpƒô~Ù+èQ0€£Òx<}'YvÐwÈrú,{(ÛfO׃¨U CÞ×ôÛ +ÖN§»²g»4¦·l(ÄEY`}d¦Püçèš\Û§W¹àü)u1kªàPàTqE‚@¼B=ªtTÚ‚ÏÄ +Ú¼“,ÑËba6dùë+ !¸3Ø2Ó]´ñ„ˇx'{êGŠÌ^ÐS?Ò ú±Ìõ¡YÖIÛÁ"ìÕ‹’+s´N3ojC Û*Ø0«Û8±’é¾5×H +ø /SC 5ݯnàAháÐ7@ +{ð,_'Ä0„$bTöÃh¿}ŸÉ„,6ñwóŧ»kã5ÿŸ2Àí‹ŸÌ×øýýzPJÛäN[»RzWIÛ¶§‰›¶B:øÛʺ½ZÚ+Á
ª§¬NǵãĨç~>7‡/>Üߌ¼qL)Xg„Xeœ÷š5£)Ûݶñ Úwmd.˜³ã÷W×ïÍ%‘c•gÄ6øoiqù.][%‰ÕÃǸhãíXî<‚ÊÛ?é&& +댾".>-~º¹;¥MvåRU¤Ö ÷/>rkªË²¨¡”ÈÚüØ¿ztÍBŒ!íü×ÿÚýÇKD`Ã2Š1{2íƒD$t]Š¢óg¨»¾å¾}Ä’©)Æ<Ó¯¢Í¡îô•ðXàb³ý×Ó¡þ‘€¿Þendstream endobj -2749 0 obj << +2743 0 obj << /Type /Page -/Contents 2750 0 R -/Resources 2748 0 R +/Contents 2744 0 R +/Resources 2742 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2747 0 R +/Parent 2732 0 R >> endobj -2751 0 obj << -/D [2749 0 R /XYZ 85.0394 794.5015 null] +2745 0 obj << +/D [2743 0 R /XYZ 56.6929 794.5015 null] +>> endobj +2746 0 obj << +/D [2743 0 R /XYZ 56.6929 751.2574 null] +>> endobj +2747 0 obj << +/D [2743 0 R /XYZ 56.6929 599.2261 null] >> endobj 2748 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F64 1435 0 R >> +/D [2743 0 R /XYZ 56.6929 229.2295 null] +>> endobj +2749 0 obj << +/D [2743 0 R /XYZ 56.6929 157.3613 null] +>> endobj +2750 0 obj << +/D [2743 0 R /XYZ 56.6929 85.4932 null] +>> endobj +2742 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F64 1435 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2754 0 obj << -/Length 2588 +2753 0 obj << +/Length 2378 /Filter /FlateDecode >> stream -xÚÍZKsã6¾ûWè°ª*Bð$£cËÉdg<^K“¤6“-Q#ÖR¤ÃG<Þ_¿EJäÝä°å°Ùh4º¿~Èd‚áLDŒbEÕ$Q LÄdµ»Â“/ðîû+âhfžh6¤únyõí“…TLãÉr3à%–’L–ë_£9"MŽî¯?Ìog7?ÌoþþÏ÷óéŒ$„’èúáa~ûî—éŒ -ô@ŒqôáúþÓõ{»ö0U4ºþ~¾˜þ¶üñj¾ì%JO0Óbý~õëox²†Cüx…SRL^`‚QŠNvW\0$8c~¥¸Z\ý£g8xk>
iƒ‰å1è…#E”ëŒ „ J˜BB’¤×%!y*³Y¥úí]Ì”„ ÆÜ5É&/²2Ýe‡!D ãÃp=U@::Ü“b$9ecñ~ž&<ªó6›Î#Ñ¿«ÒŒpTuís×ÚÕÖù©Év8>ÃÁÆ<A’âÄj“4z· °$ RBñË,áBàØÄæMˆFœ$‘ÌL¢ QŽ Ýf¥=ì‹×Öç6KM›–ë´ží -hÇd¹…í
µc2£ ;PB_
œGP³ÁN³h«úÕºÁ¦ªHCŠcÄ%öçÒ‡_ÏVÕî4an&pŠ8¥²Wî¡S9Ë•@1ÅÌ{HuÚ¼{*£Ø:`Þ -Å’ÅN¦]µ>²l…•±</–' -ˆ5Ò€@4€‰u³ÍVÿMÖhMÀEæþ²Ueï±±oÛmÚÚ×ö~3·l'i›íBÚXªu¾Ño6™%([ûúéÕ>oï‹ù%}êÜËg5XB›¯ÒbJ¢âÕ.f¿w07Äyi—ž‹†Æ -8i°ÐH¡—žÜ3u̲ç´N[ǬYÕù³ L‰ˆ>–v±õV02h
§rG°iÝ”ö
Ð≱K«#»²?‰|ÈÛUÚôê¶h›9ä\û3Z}Ön»ÆEÖlf¯âõ£l·NÄI]ܽP<¾Au08?%‡X…iŸhi¢¢u•¹QYiOd´J»&³kiùj™‹«ÖQw%X½çîCí>nɺTÒ»ŒVUÙBià\LÅÑ»ÖmQ4Õ@c€^Øñ|B+ç̨Ë2vYZ%êI¾±O+ƒØ§x.1·k]üè9·Ù×ö$‚ -paɘ8 CªÓÚS]„3g©;—[@hSò‚\ž( ×(·HOÔ\.·``„Z¥ú™ÚÇâq*Dô“ŒÓ
½æSHKcÌý÷7ºªBv¼êz梺¡=
¦2F˜Ðø¯Šê1¢‚ñ7Fõ.ºÌ#h6‚¡yƨÏ?H—ßßÙ¥ø.h¢Ë”ø‚u¨ÎX§§2ÖÙ_B…WÂ:¯tÆT×A‚Lbu^¸ž* ݸ®ƒ:^I:ïfkã‰va†U¸„ã -Á8É{XpébOø2C#“aj’g=ÊËUÑ3;FÖöuðhà|é¿rt€|:‡øÒAË+÷ÖfvÜ'Îz2ÙÚ%Æp -.E9`¨ái0TÆ)·^±X¨A¨ÑÂ4ô‹]Ú´Y=$²ã¿½»¿yÿévng8ì 3Ö]•gÐŽê¬Ùö³†NàPÒ¥‚ÕA¹ß¤ïm -—)k&e@eÃíöC²6!¥AÕ¿<'“)”¼TÆ©NgOeŒóöpËX‚»(v~KOØrxº„!¨•ãñ–·P.Xå¹"Fþ’JšÓ²*M#iÁŸ¼Å´xI_ÝL -ðj}® ubŒ±¿¾Ébˆ(’“W5 :sUžÊ\ÕÏ!`?=УfŒX,ÎÊå‰r6\˜|,XßpÑõÝË63u¸™˜üž+WR¨ÄÀ°—;'ß奾aói^¬W®
ËÅ„Ëèþ<•]ÚçQ°AZ˜^„Eð.Þ5N ¼¥pêÜœûxÝ@Ô±sÓ#â&$뇮3º¾ÍÉme£ŸNLÿü€áPL»Ö»ÚÚjU3.¾TuÞnwvªÃÞãÝ̸~ÚرÜà@oãMáXÿBA0ÿ?ì_^ŒÊp~„ãAy@tÆ—‘ÞN{xð)y‹”üì¶=Ññ¾c_‘Ê›d´ñ²+Õ.õ@g$±‹ÃÆ!Ÿ²¾Ña¼éLÞN¨“cÊÎ+mHuZk=•µ¯@Fã;àÂÙ=Q`ë±â0Œãd¼w¯¹7iË÷n½™öþ¹í}JÝïDDq›ú?ΗŸïíÇ?M!SŠ®ßš/Â-8 -*({Ž©¾«k´íêÒ»³(\2pÒvÍøŒd\ôeµ-åjGö’õà¤+k!_ñÐb°c©ñù%oN¨Ç‹;RÏb>·_¿_|œ1¤ÒæðûbÓjJ'Cƒ×6ƒÂ£ô
‘þ×K‹ŒZ
˜‰P;› Ê{ì 1ý‚óÝ»û[ËO¹S!À@mVë_0íÒcÖÿ¶rjý–úg¬ãí ¤C4î
a½BÜ&j¬ØëOË>>^Ö転`™9Y¼B~¼swS•MU·y·;õ/ +xÚÕZ[wÛ6~÷¯Ð#}NˆâJn¬vÝ·vÛœfó@‹”Å„"‘²ãýõ;¸Q$EINâݓω@`43øf0ˆd‚áLb0S|"G1™-OðäÖ~>!Ž&ôDa—êÇÛ“~bñD!Ñhr;ïðŠŽc2¹Mßg××Ó«ó‹·§!8˜¢ÓP`\ž]ýqö«»>U48ûyzsI("Â4]„ƒ«³ËéyøúÓ×ÿüûÍÕôôýí/'ÓÛV³®ö3Ö§“wïñ$…Mür‚S±˜<ÂFD):YžpÁàŒù™âäæä·–agÕ|u
Áb$b*Gà dB8b<¢=<„B4–Ôà¡7Å +Hô<°¦¤Š*$…´½²¸ºÙj¹Ê‹Ì0Óÿ¢TÚQgcZ¸ñCRäiÞ<Ù'Ã4/ïíSµv³Uù›v¾©ªÂ© ¤„ NO&‘ˆxlô¼y*«U×C3F`€F#JH4;ÝSÁa<ê¡avY“p:â¡-Õz§a¶y¦ïýhÑŽ>´£Oíè¡Í, äV"b¤‡2²fER×–¬§X3Ž¥rT-ÇùGp8‘Ϋõ2iF8öÉZŽ?½Gí®!'qíakvX|æcX0¤ô)µ–Uš!aˆøPïGõ>È
ù-¿ßŽ~—/¬_ùÂü~=ʯÎÖyR<ß“ªŽ»b¤i7Øð4‡øS¶¬Ç›KS,‡¼×/¼ûúø"Ûw0ã!¿›Ö¯9Ê/Í×Ù¬©ÖO#LGdÈôö…•|5xÌ SBrêÿ¯Ðö¼ý5"'‚œ(ÿŠ£©Cºq>óÔuű$¤@‘Tò2P—ÅþÔRu2P7SsÐWdA´Fâë2ÏëŽÿ›Lîådß¿”uþ›ÿÞ“×÷Ÿl^,!Ø¢GˆCõ<,Zê£EË—¥‰ÿÛ°þÍJ>'šº{ªŽ˜C9¯È³Ëèò Iõ¼÷§ˆa?ÊIÌU¿9ŸÞ¼þýâúöâÍUû¥~¯!¬Õë6v›;ا²í4eÛ,4Ó£ñ ~*›ä³LÊÔNæe“ݯ]çÆ‚jîÖíªoö˜kö ÁfÐk_4vr•u”Üd`ÑS[=xÔ#ûdÐJ}p1ûÙ]È)…‡/2Í<æÁã"+í¨¨’Ô¶˜±ÝFl·ªsBƒÛE^Ûµeò1S‰@’•„Ä]•ŽA/©òÉpSgóMaåÎMëƒNC’ª0oQu{¸Ë4=‰·ý²^¿mü¡PnpèœúlÖÛ~z‘-íŒZÙQ²íêíb(4᧒hÜíÔâQÄ÷”»»WNQäϲÄä˼HÌî 4ú#¢ Ä”«ç£›ÆÔ}[ÇÁݦ±òòÆŠJŠÇäÉén–+7´® ëzsÑdeã *÷}§þ*›yØæLôaϵeÀUC†E{ÂpÐÛ¹Ä>jF=Z[Uhg”28KӼɫ2)Š§SBˆÞ#ÊìÆ0YŠ\»‡aÕ¬óY¶3K*»PdYQÛé»'û™fódS4šÕÖ(g™]0HèoitüåQ7 +iŠp|$t©€ê©¨îÞ*â=ÇAP¨í\[u#T " ß>¨YK5¢Z|^«¤¯ÛNåó§ŒV÷oí¡»*‚ƒ·VVÍNaðªýŽ_\éÿ-j_U@TÎÒýÆп>u$=u©ÃScä#Æ +h2°ü°^-Õˆb=S@ÓE$ûš]ÛÞ åШVuêa]}Ê{í¯^°ýª.)c\Wu›@Sê}Ô–*q]ÚHm&#¨M•÷Cm(hc°ÝàEa(·ÄX`W¶Ã¼aÏ9±bî¡ÖNú)¼T$IÛ8í²…î:Ž¥¯æWT³dŸúÐ NÄÆ©˜ðŽº†Ý1}!ë2ßê +Ú—.ßÚëG3Ûõ§uwrn= Õ©ž>³ÕÚ=¿1&–JûÒt:–"/Cïñ¦DÃiÓ„Õ<l_"…Þ&a}'€6¥Ñi¸Ö>éÕ˜L.¦ñÐÜû̾·£6UÒöÝÖ.ßvÓS'=ù¸Èg‹îºÌ¾Xàû¨p›îÚx endobj -2753 0 obj << +2752 0 obj << /Type /Page -/Contents 2754 0 R -/Resources 2752 0 R +/Contents 2753 0 R +/Resources 2751 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2747 0 R +/Parent 2732 0 R +>> endobj +2754 0 obj << +/D [2752 0 R /XYZ 85.0394 794.5015 null] +>> endobj +938 0 obj << +/D [2752 0 R /XYZ 85.0394 769.5949 null] >> endobj 2755 0 obj << -/D [2753 0 R /XYZ 56.6929 794.5015 null] +/D [2752 0 R /XYZ 85.0394 747.9385 null] >> endobj 2756 0 obj << -/D [2753 0 R /XYZ 56.6929 225.6507 null] +/D [2752 0 R /XYZ 85.0394 712.2038 null] >> endobj 2757 0 obj << -/D [2753 0 R /XYZ 56.6929 155.4035 null] +/D [2752 0 R /XYZ 85.0394 645.6981 null] >> endobj 2758 0 obj << -/D [2753 0 R /XYZ 56.6929 85.1564 null] +/D [2752 0 R /XYZ 85.0394 494.6816 null] >> endobj -2752 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F42 1288 0 R /F40 1218 0 R >> +2759 0 obj << +/D [2752 0 R /XYZ 85.0394 352.6554 null] +>> endobj +2751 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2761 0 obj << -/Length 2741 +2762 0 obj << +/Length 3352 /Filter /FlateDecode >> stream -xÚÝZÝoÛHÏ_a ç -´fXj*óº6ÜwJ#3ºÉë´ÌÓÚÜ-Šm’åf¬ÈͨJ˧´´@c‚b!¨“ '"Òf/y±«²jhöPi©DTÐc&zSÁaìõ#Œ° -ïÛ]$v¿zD™U»½{³Éª:ÍÓr|oN. ©\z
Ø=µ£ßÛÑOˆX §ø<™¯Ó±#:´¼'˜´!œsÔLؼºž]~¹¹»¿ù|Û¾Õ‹±4„ØO»1ö03ð|Ž]4@П&ære£®ëP®G³Ø†Ç_ÝÎàBÌ„
ÉŸ^ÀD„§»Z?*–æZ¯-£÷7·Wf›Ë6¸Ìš:+¬ÔeyNä´°Ònf—ÈŒ>¥lM‘ÚaWÓ‹Y¾,Êmb˜ª´á®Z5€\¸Œb§¾|¸¬Ì]´Cn‡I¾hçr¹HÈ6«ýkj91(ðT<š'§ÏY½.šÚ<I´ò«f›æuuáÙEH`ˆÉ(´û3º‹ì#ìÜõ9Ûlc›ÄŠ¶ë!º/“fcu€òcºjÊÖDrªf¼îJ"Œ8k#ÑÛ´ž¿ÕZ!•‰<ªÉ…!sþ}aƒ€ 6é`£ºÚ*¿˜A–gu–l,Hêd¸&.˜ñR9†üÙ¤e–Vè(:0;õYŸ¡Ù&³© Žçÿ.•ƒP‡ù¿¥Rr>3ʤÇE:"È®á±2‹¾È¯•õï›»'îNÃƲ½µb¶œuQY$¶…`9ÜÒÙ32OvÉÃÆNËVDˆ|¡UËÈåc…òDä6*ªö¸bŒ˜ˆœ'ái66T˜u4u“lÚ¥ÿœoš*{Jј0pdÌã^Ð¥÷‚–j¯¸ÏŽŠl½àP¤Ïz"»^þï½€ÿyˆDì”t¨Žx£ÒŠ[¬ö°>†b?ÔïªGBˆ§”³ãúµT{ö -C„1”N=
•Óx Fa$G«‘ßR„l÷AaXX8óÃD¤žÚD¤ÇYq^¥EÑD÷u›Ô.|¾FBÄE&-WYP€ëlPYŒ$´>(<"C>½Wqp& È©çcê¾^'µq›à6E²Èò•{h©V¯&ÝêÕË@Pgy“VöE+í¹(
A²„ŠyÀÕÂ1=^'•Y®[AÏ×I¾R …1@,ueŠ»ÖUÝ -ê.ð3Oo„¨xÈXƒŽ7àsM¯Ô++íðZ£2™«ó¦¶•ˆ¤ŠÜœéqÔ"á‡4p±Ú³(z krµŽ¾ƒÓüP¸ôTƒíl¥@±±•Ðs+ˆ½ÎÇ%‚ŠVžð¾Õ÷sTÚÿ®Oúß /ä÷¿cúuð@A¿v5ÔxˆQ¦£…P[¾ìt ƒ©µÁ‹ç7¨YU÷~Þ¥ùlö›™0+°u0°Ðuˆz`"ºL‹]jâSe¨³ÚÌWÍN5€*U;sª™h -vç!ƒ£’nwõË°¡l–W¥ŽEV÷Yåöj”=JÀ¹„`tü(u©ÆRK¥Òò V -êAò˜š™dñ”äµ §ð@7‚àºä—í6–èòîke˜qc 4ØPϪ]:ÏTO ]ø¾¹(ÿÄ!>UÎÀ…Z‚³A”±_ ^×*öëŠ\u¨ê´Üš¶)·•äÍöA'~nV£h•þffç@i^› “ò¹ª(ÚÐï{ÎO)Š…ã\‘¡½Yš™Ì2ͬ´&·-\Î-Z÷î*ºá]E§ù«Vá¾ÖXyϵˆÝ¾6ý¯?îÖ¾§²_íý|rŠúÍ‹Çáqûýç¿þiÍþ·C\}œ“#͆9bªa•R¶#Q¤ -=â¾}ªuÁ( -îè'_ÿ¬Ó|á¢ØÌJúæ÷sBÈ4-«Lõ¹¢ýIÏ¡%þµæãðendstream +xÚÝ[K—Û¶ÞϯЮœs*OhO{’:'ngšä4É‚#Q#žH¢"Rž¸¿¾÷â%’"©qìMëY/À‹‹ï>³…?6S)I
7³ÌH¢(S³ÅöŠÎžàÝWWÌÓÌѼMõÅÃÕŸ¾zfˆIy:{XµæÒ„jÍfË“[¹†)hrwóööõüÕßn_ýýßßÞÝ^ÏYÆ8KnÞ½»½{ýæ‡ë9Wè˜ÒäíÍÝ¿n¾q}ï®
On¾º½¿þùáë«Û‡ÈY›{F²õëÕ?ÓÙñõ%Âh5{†J˜1|¶½’J%…=›«û«Ä [oíÐAi0J¸Hù€88o‰C3¢ŒQ³L’ +.¬8ÞVËW´¬EË5áijàHôçruÜlð×·'æ›yâźXüR£ TÒ¬ó[i²,6ÅSÞ”Õν¹»w¿‡k¦“bQÙßeÝî\7¶©\÷û©|÷
üšÄõýD}¬šµ{*wóÿT»Â
Ìwž¦:6s\È0#"£j6gŒ¥¸]Iµòƒcɺª›]¾-j˜˜&¤É›Æ½Ë7uåZañØv‹ÇÖÓæègÉ—KÇlí‰ÎÖå.Ì`‡ñظf‰ØæÍbª:Îü¾84e],íŠhw)ríŒØX¬ËÍ’àP:†H&3ÖÂÀ¦Zäc ’PÁuµÛ| +p ~ÓéЦÓäy].Öí÷~ÿ©ßÚÞDzÚ÷XZ8šÔÕ¶p›Ë˜!YºåEâûȯÇÒ5–n”Û*l¿•uSÿ±?mÙ-v=™ZvŠÃûÀw -=aÞ½kârHÜ/P#mص¤’f=µœ×åã¦Ü=ìL* ×RúAþó‰í·åÙ^_šÙ€•PeYç”…‰ˆ<º# ÷ñظÎÜí€ë•-Ïeí8áâ„ \G‘ט3Ma“¥éâþ²å3¡/‰F¨L~”pOíu}_,šò}*Á@S݆Ï5'RRöý’5fmv€›1aR³îžÔgÚÛ@ÎÜ#c) †dŒq7ŽhÞ¦rÞ†
8ßH…ìÌWŽãT¶(Ái‘z†WÕì[Ÿ1FaɧDŒµÄhF8 ªËÙ=ìQ¹ê[Iϳ0«ÞË“-ú‰R¾)¼5}WÕþÎ^þè;,%‘”¦=nŠßš)ØFe/‹U~Ü4èšü—¡Ž?3ªå‡üyìaL C´I˜s*-ª ¨*•/ BF]Ê †*=ÍZ¤à‹M´/Øa.¢E0¼´ŠhÁ6¢¥óbýÑ¿txqm4%vKiªäKðe#*B2ô5˹Õc‹Ãó
„pÏP®<=ø1!0`(k÷ÝeUøÖ®òl-òcí]¦ÑRô¬i¾ó +R¬È+0kÙÇÝƆ4ÖÝy…Y·ûzTgÕ®)vMÝsö;'ZœTÆUb_%™ ˆ§³TŽ©ýÒ +¥hµ•y‘ +ÁGŒˆ
î*ä"ÌDä§ûëÝÈ„’©â„°¥’¥!nB–ë¦ +®ö á£XhÙÈç~Ë]~øගgÌ!xóΖG˜¥ØvC¾/—®¹©ò¥óó™Â(s`‰\’L(ÞLL"ÈèÁó쥢‚ ‡ò°O'%«ÛnMq}¸Õ.AÉœw(ák®á1-§ÇY¦<)W^Ž4ÅxKu£Í;a¤ á—¢>Ro°ÃÍ`°½Èw®ñ¨ìîæ({H?lP½N-¡qZ +49$!©jo@ù´«£9¤X”‹K±¦„|d=¢mªqTVE¿¹¨¢×—ùæ<Ö„°] =ÍZ¤àk"8ŒsßÛBƒàiâpe½->æîÇ;wîêdøûp&ÀfIÑBK5‹Æ®ýܺrª·ð}n¥v§ìóûÜU¯ Yîzã×`ɱÚÑþ:¾ôÑBõjjÝ·e'XW@9n;ÆÁü°Žu”:Tf0¡„êУ·ûÇ:¼ÙÊm~(C%jkDEݸ˜‰Ž‡}U5±˜CO!sâòòZTÈTyÛ!äI’¦ÒL9Ex +Iþ$_h€¯.ê(¤ÍFv;e8”a«2øÀ“·?¸ÎóÊ%tÖëêˆÅ-lã†à +ßiQ‚„…‹Q…}±.ü×b9È>œ +¦°Gñ¦— +}"Icº‘׸Ÿ`éË<X3»E»<&1š‰O³ÖŸ¼¿À¦ÊK6² + ˆ%7„€h‡Ã0_í(§ªšŒ€3O_|'KJ1~FŒŸ>à‚ˆÀÓ>f)69^_˜8iɺ7®äÀdOmi^0 À·o…#Sh;ç A-kßSËÆ])ñ´®±·2ªºbôåǦ‚™ÐX ¥À®Gÿ›ûÉŠ}~È?Y½8”{ë˜2•|»sM`Ð^BºGµ¡a5M…ËY"ÜVr2r=§U±$¸¼íéhz×G0mópÖèô¹3¬YkïY€™“<XMŠeÙxA0¿jj9õ~wø@™vË$/ˆ=%ø*Êc`Ëq™ñ'Éز'É<Óþ$Ùö¹Ã)htÏŒ¡#žC»ôÙqT*‹jÓ™ñ\˜Ô^¿³Ÿ°×ï"+îvg¶³{Ž?<5ÊßÁ€ú(c[ä»X,ûw=Bˆ×¿J’qf<sµ L@¸/è…”¶M5nA#•µ ÷Ÿ”ÒNòSÚs¾†RÚ_¡Ö¢|~s÷sÿÏk¥’ïÜÃYÁEõ +.@cÌÓøXpQ‚‹Š™©¥(¸¤xÆõ.\ ùâ‚KÆ¢Á</¸ ããÁ¤ú]—‹y6èq/¤u-¢ql"Íf0êe¼uoð +â‹7w¯Ý2ðr÷ù½ý
\Í2¬ñþ¸ßWo㿳×8Ý]§³2‹Å2}®Zþjþ¹þÐÒì€endstream endobj +2761 0 obj << +/Type /Page +/Contents 2762 0 R +/Resources 2760 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 2732 0 R +>> endobj +2763 0 obj << +/D [2761 0 R /XYZ 56.6929 794.5015 null] +>> endobj 2760 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F64 1435 0 R /F42 1288 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2766 0 obj << +/Length 2207 +/Filter /FlateDecode +>> +stream +xÚ]oÛ8ò=¿ÂÀ݃T,Å/QÙÄÙË¢us±³»@ÚU¦m¡²ä•ä¤Ù_C‘b$›¶ìÁQ£™á|Ž0ü‘äÓ˜¢˜!ŽC>J7x´‚w¿^„'è‚>Ö/ó‹·TŽb"Fóe–DXÊp4_<¯îï'Ó›»?/Âñx‚.ŽñøóÕôñê“Ù»¿ŒÉøê×ÉiL …Lã <ž^}žÜ\~›ÿv1™;yú2‡˜jaþºxú†Gý·Œh,ùè0 +㘌6ŒSÄ¥ÝN~1»ø¯#Ø{Û~êÓãqÂÄ( I4¼šÂs8yñ J¨Ó }šê°´¦‚¹>èÇ[Áz˜!A êeS.Ô¾6B"†I<ê³<Ìay$#~QÉÈP´ëµJ\!*[šu¦Š…ª|_æYújàÛ*Ù¨—²²è_1dzû[XB³Q]†r¬Ò²]µÙT?³º1`R,,£ºÞ)û>1ËKRY± +’V ûÛ`YV›¤iÔB+ -£’ + Ž=¿Âô¡ôj±ûÆ ‰Xt¸ É…Z&»¼ÑÚüà¡ÎŠ‰d=âÙª(+uŒ|Œ(&::3ëËQ·2vÆá{X'¾ÃjþÅçð:¦#+Ó"«TÚ”ÕëÓs8*ƒh<)œÃòH7pzâÄPºt
Ü/Fظ) ¬ÿÈHât:$Ðr‡©Ý©¥¹NgÉ“&{Vfç+Æ$WR7ø8+Ì‹MR7ªê#øßwÓëO7ó¤ån][S¬m(0â +&9ë8µÎ<_w¾ßu¶Érpåö¡±QЬ»¿1ѧn·Ò<ÙÕö5H|¨2‚Á¸$ì¼_pÒ²Xú´£rÐ9çƒâ´sö±Ž;§Ãjó ìÄ Î£Ó,;$ËÇá²k4dy³Ûlöþ.«ÇÎÊV§FÏIQYšäæÑ$½£fLò—äÕÂàS¯î;_†Š$¢T×Â7i¹Ùf¹jÅ:4U5ŠyÖTŒ¢(¦ñSõ°N˜ªÃjMõ‡/pð,ON†"‚ùiÁ–G²aá‡ÅàÛÑf[•fKˆ‹ñËZAøTæA”^SSZiµi÷À¼Äù&+´ÛO³|‘&¶f‚©#&ÇÓÓXf«+E-ƒ$ß”PgMB +Vó³G +è¾ßq +«…ÙnÛn’ CêL[‚sOœÂ„%Á +endobj +2765 0 obj << /Type /Page -/Contents 2761 0 R -/Resources 2759 0 R +/Contents 2766 0 R +/Resources 2764 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2747 0 R +/Parent 2732 0 R >> endobj -2762 0 obj << -/D [2760 0 R /XYZ 85.0394 794.5015 null] +2767 0 obj << +/D [2765 0 R /XYZ 85.0394 794.5015 null] >> endobj -942 0 obj << -/D [2760 0 R /XYZ 85.0394 769.5949 null] +2768 0 obj << +/D [2765 0 R /XYZ 85.0394 513.3852 null] >> endobj -2763 0 obj << -/D [2760 0 R /XYZ 85.0394 747.8192 null] +2769 0 obj << +/D [2765 0 R /XYZ 85.0394 449.6998 null] >> endobj -2764 0 obj << -/D [2760 0 R /XYZ 85.0394 711.7108 null] +2770 0 obj << +/D [2765 0 R /XYZ 85.0394 386.0145 null] >> endobj -2765 0 obj << -/D [2760 0 R /XYZ 85.0394 643.9803 null] +942 0 obj << +/D [2765 0 R /XYZ 85.0394 346.6093 null] >> endobj -2766 0 obj << -/D [2760 0 R /XYZ 85.0394 558.2262 null] +2771 0 obj << +/D [2765 0 R /XYZ 85.0394 313.3949 null] >> endobj -2767 0 obj << -/D [2760 0 R /XYZ 85.0394 450.5864 null] +2772 0 obj << +/D [2765 0 R /XYZ 85.0394 277.6293 null] >> endobj -2759 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R >> +2773 0 obj << +/D [2765 0 R /XYZ 85.0394 211.0221 null] +>> endobj +2774 0 obj << +/D [2765 0 R /XYZ 85.0394 126.3912 null] +>> endobj +2764 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F42 1288 0 R /F40 1218 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2770 0 obj << -/Length 2658 +2777 0 obj << +/Length 2931 /Filter /FlateDecode >> stream -xÚÅY_oÛ8ϧ0°'k–%ñî)»MYìær×ôî€Ý}Pl&V+K®%7Í·¿©H¶âôÐbj8$‡Ã™ß‡bÆáOÌLÊR+í,³š.Ìl¹9ã³{èûéLžEdZ¹~¸9{õFå3Ël*ÓÙÍÝ`®œñ<³›ÕoÉšÍa -ž\ÿzñz¾Êª49¿¾¾¸z}ùø6¸€…óä×ó«wç¿íznerþÓÅÛù7?Ÿ]Üôòe\¡0Ï~ûƒÏV úÏgœ)››Ù|p&¬•³Í™6ŠT¤TgoÏþÑO8èõC§t MΌԩ×ì&Ö”`™À”©ŒYÍm¯))¦4¹PS‹-nôÕ›T8…`¹5 ™gÙ6»îPV2mót6\ñH®È4!—¬f3¦3{ ×/eÛ¹šÎä®ÙQããÞíJ×ÒGz£x¯Þ˜ñ4“‚˃M¬-³‚ëÀö O.ïhæºé¨ÑnݲüséVߥ[;j¬Ü]±¯_ÙDò-8ã#C -§•qÐjó‘¸NiäòGÚ.™j†–Ÿ^22M,9ÔXj™FŒ—ü÷<ÓÉ®ì‚R6nÓ쩽o‹û@n»¢ƒc-—AM]C'¢‡ómXªã±µÝªÙOœÊ™2id‹¶à>—Ý‘ÂsÁŒµf–‚èÒ(ù%®«r&ù´ërPRÆÒ4=4ŽÃ\¡GŒ§ZDéÆB+OGNŽh‘¸á<c2Ëå,…3çR’—\
4cR-¼9ƒMF“þû|‘ŠäþËäâH3)³€g³>ÏýÒ³3Á¸¶VÓ í÷ú¤Oxu¹‘³×
ìh6ÜT˜x1œÙo*š¯ - ªˆ> -pñ71l|WùÚ4^x#¢³Ï†ëGÄÈ5!Þ¸î -9ëÐ:à:‘k”j<_ÓÅ:Òso'åêßåšzkÉõÖuûÒ§Uò™†dÌ~ ãáSbÊra³ƒ»L 0¹\GP ßÛ]ˆäaI¬…ø$¿õ)Ö4<ZZ’-@¨`Ým垈¾œ‹U£À, -YÅm¾õE£àÿš!ˆ•%^¹ »[() +xÚÝZëoÛ8ÿž¿ÂÀ~8ˆQ|H¤Mv‘Ý6Í]ÒÛv÷ƒbɱP[r-)ûëo†Y/˺÷å ¢¨áp8œùÍi:óá΄$Rj*N„OÅl¹=ógOðí§3ji<G䵩Þ=œ]üÈ¢™"Jrö°jñŠˆEtöü>¿&”“°ðç·—¯¯^À“óË»»ëÛ«›ßà]ø@$¾?ÿxyûùòƒé»[¨`~ùÓõýâχŸÏ®yÚ2SŸ¡0_Ï~ÿÓŸ% úÏg>a*³xñ U*˜mϸ`DpÆ\ÏæìþìŸ
ÃÖW=tTÔ'“Áˆ:£”(!‚Ž„"’LkáÓÝÃͧÛáJ( )•³*`ò#3"¯Må&Ѿ£Ây=ÞŸRr¢¦§tD#S)%4CF»S~.S³7wÏÜ´Š|ófZésš›V¶2ÏjmÉ×EY™Ö6^®³Üvg¥y.ã]ü¸±Åª™B\áż-X QQˆë9h¡'<˜%ç"²$qžŒðu12ÇFe£›ý‚Fs+嶮êxÓ,ýu¹©Ëì9%Ǭ@F!áUÓVЦ:n
ÕAð1+˜œ²±‚á”cVЙ²mòoüÿÈ +@jÆä ,hSMX£Ò‚/àðÚQ
°Ì¾,òUöä2PqO<Ê"ÃPMË×PØщ +»˜‘UŒ(l†„ÆHòù†Ãbáq&æi^ÖÎÆð½ZǶøÜônŠ8Éò'÷ÑR
Vnõ8ª,¯ÓÒ´³½û/† ^Ué¾ÇµL÷Ï®s
×Ëu+è®vçO)*—©yV•¦Üµ¬ø’df˪ؿٮ:5
§ýŒÍcW”eö謡»)Ì'Ê÷ݦ +çÅΚ +jŸÆ + 14"è4j<1_/ˆ +%uÊ ßbÇ 8wÈU®‹z“ +6M0à6Ób—ˆ*
uV™þ²ÞíŠ}UžÃ+4m!€a +ƒ,½+k"OƲêÜGt˜Œ å0 +0ÕèÓ*Ø +)i +‚Z¨Ú¦Úc$ å
Éc}+(S‹}rOò)!Ô=^à}÷á²gÇî<¬[þtÎöËêõ[Î00"?¬SWTÀ +m´+\tq Pnîß÷
+6ð#Îhh^2IbW:~cÁ€ã¡+Dø¹ à.òC#¯·:¼sª¹‘ßôì\‘•W¦Ã¤°+äf#ô˜âÀÙ)ѲpÜ+1´7+Ó“Y¦™Îíç6ûígíU´®YEë>WaÉØ&íù܇Ûwæ%2~Ë\BîŽ «MŽzc€a™‹O›ê¸76TÚw'½ÑUçgWÑ ¹Ñˆ\m{kã¡êÉõ!ƒŒ.?T4ºñµN÷YZº»*[ÕPH ‚ƒ+¨&â¬
7«^QÚñ«þ9›ÍíÛW`z2Ýìø–B¦àãuÄô–¶¨&¶ÔQé--G®9cÑô”ŽhdÊÞõ
§ùw¦üu¹ö>sGÜMŽm›!j5Vo—U¶,'ŠP<¸•<8Ô E=¶qj4!™³…ô5« +(J‰YàC#TßôcéßG ÷ +IFЂA§W}ÛÒ‹œÚËBÁgПž¤Æ{2˜_ô"‰ +!å§=EÿVböu!‚+ÅM«zP€î¸¸Ù³«–3k¯ÈòõZŒõŠd礖+!ÿ‡Â–Æ”¹xX +›ZÛ¦OB½˜ÙêÐ"qhªËÔÜH‡6=
çïnn¯Ìe:’tÁüùó"xõqÃNcMBàofæ²üm± ÂŽKÆŽ/M)nÎðÅ”ª‘Ž
ðXÕU½OM{Ÿnðô¹,•ƒs‘Šf-[ø>ëb`7Rá-ßáw3ßgûž+·<¬FüÕ0b»/Å4z9"
^÷§³Ãmüê•ÅòË +ˆ±¦¬ìª Дü²9Ū´9Õp¹¹@ØÓ”ßàÏwÿzëðó4Ž×}Ñ‘L 'ŠïÙŸ‰gÈׯ$®,º·—úåßJé\<Ãk`¼ˆáR°9üa,¶¿já¿ÔûVKendstream endobj -2769 0 obj << +2776 0 obj << /Type /Page -/Contents 2770 0 R -/Resources 2768 0 R +/Contents 2777 0 R +/Resources 2775 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2747 0 R +/Parent 2780 0 R >> endobj -2771 0 obj << -/D [2769 0 R /XYZ 56.6929 794.5015 null] +2778 0 obj << +/D [2776 0 R /XYZ 56.6929 794.5015 null] >> endobj -2768 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F54 1383 0 R /F42 1288 0 R /F61 1416 0 R /F62 1419 0 R >> -/XObject << /Im2 1405 0 R /Im3 1580 0 R >> +2779 0 obj << +/D [2776 0 R /XYZ 56.6929 751.3779 null] +>> endobj +2775 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F64 1435 0 R /F54 1383 0 R /F61 1416 0 R >> +/XObject << /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2774 0 obj << -/Length 2422 +2783 0 obj << +/Length 2910 /Filter /FlateDecode >> stream -xÚµYÝsÛ6÷_Á·£f"_‰¹'÷âäÔIœ\¬´iû@‹Í‹Dª"i;ÿ}w± MJ”|½ÜgL\ì7v€xÀài1iTÅŒÇÁj{Á‚;øöî‚{šyG4Rý°¼xýV¦‰Œ:X®¼Òˆ¥)–ù¯áå§OW×o¿Ìæ"fáU4›ÇŒ….¯¿\¾§¹O3#ÂËwW7ð*Ô@ÄÒi^_~¸z3û}ùãÅÕ²×g¨3g•ùãâ×ßYƒê?^°Hš4á…EÜl/T,£XIÙÍl.n.þÕ3|uK§| Di©“ -ì‘âãl®y¸„ÿ"¼: 2•"Nmt¤Lœ ðà€GL#‰j0væ>ûÁM¼^lE𦛂¡Yçùµ³TN>ƒ‰)KƒD‚ù2Ѥt9›K¥Ã÷E9ã,lŸ^‘Z–*
têí,³Í=ÕP€Œ£8NOÕÖ¶&Öͽ¥Á×™`¡ÝcR‡¥Ýüm¹íiVÙ.»-6EóÞ·vuŸ•E½Å×$l*šÎ÷ÕŽFÙfCƒ}U5¨lB9¡bôˆ%¨±q<‹‡bcïœF:
íL²ðiew
½“†Ú„Ï:àlEFª¡+¸L"!•ðVÞeþ‹™€|Â' -|Ây—!ÎàœÑc¬[N*ì*˜U,ôªeeNƒÚ6ݪjNs°8Q±[¼²5˜© Lìm]µû•Å·$ÜÛ¢©g JGÊMø¥\£:ym™5vó
²€…¯`*‰Á/EM‹·6+=×æ>kº‘ðа+Xª½ÍóvÂ-¸C™àž¤Ú5EUϪœu"¬ã,鬣møˆYZ‘ã¾b8… ïm9‘µ1ìnÔËY+SÑåváY’€7‡Hê¤Ùƒ¦"O‰ -“Tôó0‘1óÝÞJ²Üð(ePhFau,³fIX%FÜ ™áû¡¨ÚšˆäùÙ¼ÈiAY54»©ÂÌx¤×ãM“.yaÑ¥÷½m²¢ti‹Ö¨Öq6°±ÅmqvÇ@§ö(}<¢Ã:ªL‚]FÃ"þA¦ÀÓ@Ÿœ?··ïk\sa"üˆ*r:
XÄ\Ù:2ü¹j>:"·¥½bd”pã€Õ‘¸ŽæXÞ0^€LÒ$Ëûl¡(5„E\©ÄÁƒÝ×n×âKÙno)ÍU,ا¢9ŠÍƒØ€g ²œñ†T§}ÓS9çütä
úÒY‘Ñ„ÈQùgФS3ù_úç¶-6~H°~õ—<¨¡l$„îÎxp@uƃ•óà“ß–jdx”¤&öÛr•îí|
åáç -ª[íC¶>ø–ÛuÖn|<öQûQô:K Òÿ 9I -Àå®Vµ
'šÀØe˜JØ -¾ ®íÓß½®#š&¢^û2_MX$àÄ%Ò=«v¬fqÝØ,?ÙÀ$$ -0‹ErpÑ®îA`ªÂ5IãðßU»‡}O“^G¬ˆF†¥uÚ¥”þH|Ÿ=XšYäs΀1tñmQ×ÝIVžº!‘aÚ¼±D°ä°×‚ ×kA
w'ˆöi·)VEƒ@ßÝ–Hc˜ }æ/ÖÂ÷äàÚÐ÷íAÍ«›lxª=`gŽ®ì¥„V©êz”µ ˜†óÞPÍL©±.Þ_Ýœêê {é*a@äÚ‘2±#B‘¯m³z팊 h®§ú!œHÏKÄuC‚'‡ò—“Ë£ú“”®'±Ô(€+ê¼D§ýÓ9ÿ<dû×û¶$yOíŠüP!RüILU£':Òc?]2Áf*2í¨A¢Í‹ü¼Ÿzáo\ú±>E¿û§´çß -UÁ±DL[ -Æ2¼S -
…4Ác¨¥ƒ6™(™1»zj +xÚÅZ_sÛ6÷§ÐÌ=”š±Pü%È»§´ñeÜIÝ\ãôn¦í-ÁŠTE*Ž¿ýíbš”(åzi§ã X,€Åîb÷·ÅŒÃŸ˜e†q•ë™Í53\˜ÙrsÁg0öêBžEdZ¹¾¹½øúŸ*›å,Oe:»½¬•1žebv»ú9yñæÍÕÍËëÿÌÒðäŠÍ†óäû7ï^¼&Ú›y.“¯®ÞBWå*&¡‘/åÉÍ‹ï¯^νýîâ궗g(³à +…ùíâç_ùl¢wÁ™Ê33{„g"Ïåls¡bF+)ÕÅÛ‹õFýÔ)h™±T¥v23Åø_¶U™×D6½-Ÿ-„Ê™¶RŸ^Œ&rX,4û)ãÅ‚ƒ%t:[¤2gaIo# sË‘h$!K¥¶3k³¹´ÞJÿF{Öœ™TâdÆ‚e9Ùq'?úÏøÉuß–É«Cá6Jšl–fše©ñVšýŠÈ…ÖÊs
ÛþüÏŠñ„¯¯7jö²CΆçŒ+/†Kû“¦bàÂÀ¡3žÍ¬’ ÜŸâv]¶àfy–4Û®ljj·ëf_¨}çè{_×néÚ¶ØÍŠ'OD½ŸC»ÙQ§[Þsi’¢í¨·)Þ#‡0IÙùi6iîâ۵s÷Ö\ƒ8®@
z—ˆ¶qqžR +vB±•’½ØH]’ÔØt(—ÃÕĈçÀ‘5 +@Ëvç/u(Ðõw
)Eñ]¸Y5®¿êˆìjÈgKGÖ-÷Š$á{Ó´a¬öéxÔÂP´ ß„’ ¨r+ƒè¬¿pÃ%|ˆ …Áí3šÇìçi
$6¼µµ7™Å|[†ñÃ)ªÉ½z°¬-R1Љ?–•{pa2 „ÜYlé„ +«Æx¦ DHg öû¢¬NgÄá]ý²ëÿgD +ELHûHÕ"Òï +ŠÀšŽRÞFi®Gbs×é +W|MØ’W(͉±Sà ’Rx¨B±å|Im¤Ð¨úš±ú¸¢˜)fÊh +Å„÷p|%B—y ±¶Y~À"¾¼Á`v¶q“šÜ ,£u~cF—l›]מ,4 1Iìy%)SÙ¹'çãê;N9Ujˆ.¤âös¥† ÷V{ÜL•œ%#þÁ—·¾°¸:YXHHÖŠ~F€ºB@Å™çTKÛ'ê +y®®¬|¦¬oRòìë4y]ҫӧˉ×
Ž«Òìs; Ü––¦Ç6hÐsYx|qÕWsp¤Àø´¸++ìÐ߸%„â²Ý`×ÒKW»fKS36<b%Ç•àxÃÇŽ{€‹ááÝré¶õÃs`ž<Ë€Ôf"”e™T:Æ黲^Ãütò\$уdækø˶"F/•åiløLF³šð +_Žiƒ~ )›}KÌûê +SNðÐÙì±ê¤îñ¥áá5‡ßV ¿s]QúºÕ¯à³ÙgQ\ëéÙ*YA’Åtº†ð/Lq *R
!ŦçRÏå/ÕÇC½@uå ÈábG;F¦‰-‡6Ë3–Y{°ås~„’áò#ýëã3Ræ±¼ +‡s€By¬a–P¯»Å}I¿:Ÿ8 endobj -2773 0 obj << +2782 0 obj << /Type /Page -/Contents 2774 0 R -/Resources 2772 0 R +/Contents 2783 0 R +/Resources 2781 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2747 0 R +/Parent 2780 0 R >> endobj -2775 0 obj << -/D [2773 0 R /XYZ 85.0394 794.5015 null] ->> endobj -2776 0 obj << -/D [2773 0 R /XYZ 85.0394 404.0791 null] ->> endobj -2777 0 obj << -/D [2773 0 R /XYZ 85.0394 253.9299 null] ->> endobj -2778 0 obj << -/D [2773 0 R /XYZ 85.0394 130.862 null] +2784 0 obj << +/D [2782 0 R /XYZ 85.0394 794.5015 null] >> endobj -2772 0 obj << -/Font << /F38 1082 0 R /F22 997 0 R /F61 1416 0 R /F62 1419 0 R /F42 1288 0 R /F21 994 0 R /F64 1435 0 R /F54 1383 0 R /F40 1218 0 R /F49 1308 0 R >> -/XObject << /Im2 1405 0 R /Im3 1580 0 R >> +2781 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F61 1416 0 R /F62 1419 0 R /F21 994 0 R /F64 1435 0 R /F54 1383 0 R /F42 1288 0 R >> +/XObject << /Im3 1580 0 R /Im2 1405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2781 0 obj << -/Length 1447 +2787 0 obj << +/Length 1852 /Filter /FlateDecode >> stream -xÚÅWYÛ6~÷¯Ð£
DQÇ£“uÒ]$ÞíÚ) -$yàZ´T¦\IÎÖýõ^²¼Ö&A[ 0`‘Ãáp曋$† xŒâŒfA’EˆcƒÕn„ƒ
¬½Çz¦°Ïõj9zù†¥A†²˜ÆÁrÝ“•"œ¦$XæÇ3D8š€<žOßϮ›Û÷óé»»ûëùržÄ|<½»›Í¯®Ÿ„”cØüßOç¦ï,ín’Ññôíl1ù¼¼Í–r}fZ³?G?ã ;nF±,åÁ#L0"YFƒÝ(âñˆ1O)G‹Ñ¯ÀÞªÙ:Áˆ²˜ BI@Ê8§gðÅŒ2Éb6³FMß-nµ=/ßD¸‡#B£HïÓì÷o^Nƒy̲SÚc0Š£8…mšûÅ€@"#Ž¡/.úÅñRLÇJìd®¶rõǪRëO˜ãþÈåòß•’O—k•¯žÒÊÇzBÒ±lòAaÈÃíÊ¥Q!aeQÃÈû~u=¿²ÎÊœÏò]¡Š¦E[Õ–t/×Òž®VÒ’Þuå -IŠ²4µæÜxù,ÊœüÆN„¦'éXÚj'Úb%Êòh×Wî°Væ–ðp@¤Ð -íD.-¹ì7?‚ôbe'ÀÆűD5%lXËRŠ8ϒ󊧚Ã>‡j9E˜So—®¤Ð©£,/·RD 6uW•ùæ–&ÅjkG"Ï‹¶¨”éú©¿¹,eºv¼}
xLt}½<F[Izñ¡P¢vúèPa -7
7åàmiçöøPì÷e¡#¡ã‰»`Ï|<Éúö´ƒFÖ_em‹¦/µiEÝz¡bÝz.á6nm^=:y¦ÁwU‹fÎ`,¿:ZZ.×âP¶/|©¶ÖÙ[™Õœzä²(ÝÒ)aÒe!p}¦±5ŠÂøáh× +xÚ½XÝoÛ8Ï_¡G¨~‹Ä=y['ë¢ur‰swÀî>(ëÖ–¼’œ6÷×ßP¤dYV’=„Ôp8Î×oh`ø#HjªƒXs$0Ájwƒ'X»¾ ž'j™¢>×/Ë‹Ë+¦´¤2X®{²ÂJ‘`™þÎh"p¸˜~}Š>ß<Ü-¦_nïæ‹å$""–"œÞÞΟæÿšDT`Øü‡_§‹‡éG»hN¯g÷“?–Ÿ/fËN¹þfV³¿.~û)ÜãóFL+|ƒŒˆÖ4Ø]pÁàŒµ”íÅýÅß;½Õfë˜A8UH2 bX9–©Æ,jüXÖ‘búuQnQ~ê7œ +ŠABkDRÄDÌ;oQ‚´ÔºKÅˆÆ +¤bMãÆ]ÿ´öm85’Ë{Dë¸á˜N"Iûæÿþ“pÞÍix=ô’Hƒo‚¤H¡e‚¿ÀšpΦþ¼¹üÑ&
ár¾cÁ§îô¯éG}ÉÍ5%é%¡\ÒcÊ‘T°öËMVM"0NXìë¬ÈÝ|7!8<TµûÊ?y4n<T&µ¡©àÊ~©“’o_ülíWòÚ”ÆÉ’a]8ê/óÅ'7ÓnHÍ„áðyBEh¶ÅÞ”•5 †ÎS n’§± +w‰eqV/;–fWLˆðR<gQºqµIò§–˜ånLÜ°>Ô‡²²5Ie¬4ô!—Q¥UШŸŠQÁ'5¤kt̲ŸËŸ~ØC@ ¥aOúaß)(ÂŒ8ßϯ¡&Ý÷‚¿ð•ˆsìÊÙÜZÊ°œ°ñ¡ÎrãÖw‰
¥ðÍHXeOy²Übµ)[ëêÃÊýNVnf£ÄŽ«"¯Ý[·§ÞxÞ<ٙʔϦü›×µëŒÆ(¦ŠûL-ót5r#JIJÏtTí\#ÅUm’ô,"Av2€´ƒ¤¢z6<SÔçj=r—wȯ·ÃcuŒ°&äíc[¦‘cûf üEáôÜ«¢1üÊ8ØIÜÐÐ ?“Ô}Û$·£óLœO&1_7•d(Ž¹zÇT=®7LÕrySY(|üà”Ârv÷u¨áiÉû¦&׈*'æe²ñT—Í¡vJ¤Å·üm#§8 €¾‚(HOæ+³éÛ¼:lëS›W&O³üÉû'ñ«pJéºÌ³‡ãJ4óÌ3òÔüŽ1Í‹ôaÉÀ¶`!A™SñãÍâj~ýp7µ6_Îoï—
{«ó|%Ü eÕe¢ÍítDãI=Ô«êÓÁU@ÌBKÙZ”ÂÜAÐê¢p“U±ÛoÍw·Z{bjªU™=¶{ò–Z'ÙÖÍ= +JØÛÈØçjàˆëdì¸ì©—¦^]6÷BP6×ç€(¡›…WÜ› +t\ç endobj -2780 0 obj << +2786 0 obj << /Type /Page -/Contents 2781 0 R -/Resources 2779 0 R +/Contents 2787 0 R +/Resources 2785 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2793 0 R +/Parent 2780 0 R >> endobj -2782 0 obj << -/D [2780 0 R /XYZ 56.6929 794.5015 null] +2788 0 obj << +/D [2786 0 R /XYZ 56.6929 794.5015 null] >> endobj -2783 0 obj << -/D [2780 0 R /XYZ 56.6929 751.9132 null] +2789 0 obj << +/D [2786 0 R /XYZ 56.6929 644.329 null] >> endobj -2784 0 obj << -/D [2780 0 R /XYZ 56.6929 674.8216 null] +2790 0 obj << +/D [2786 0 R /XYZ 56.6929 498.5963 null] +>> endobj +2791 0 obj << +/D [2786 0 R /XYZ 56.6929 378.8143 null] +>> endobj +2792 0 obj << +/D [2786 0 R /XYZ 56.6929 270.9876 null] +>> endobj +2793 0 obj << +/D [2786 0 R /XYZ 56.6929 194.069 null] >> endobj 946 0 obj << -/D [2780 0 R /XYZ 56.6929 634.4081 null] +/D [2786 0 R /XYZ 56.6929 153.7758 null] +>> endobj +2794 0 obj << +/D [2786 0 R /XYZ 56.6929 116.6136 null] +>> endobj +2795 0 obj << +/D [2786 0 R /XYZ 56.6929 84.0158 null] >> endobj 2785 0 obj << -/D [2780 0 R /XYZ 56.6929 597.1931 null] +/Font << /F38 1082 0 R /F22 997 0 R /F61 1416 0 R /F21 994 0 R /F40 1218 0 R /F42 1288 0 R /F49 1308 0 R >> +/XObject << /Im3 1580 0 R >> +/ProcSet [ /PDF /Text ] >> endobj -2786 0 obj << -/D [2780 0 R /XYZ 56.6929 564.5425 null] +2798 0 obj << +/Length 2089 +/Filter /FlateDecode +>> +stream +xÚ¥ÙrÛ8òÝ_¡·•ªB‚Ǽ)±2ãTâxmejk=~ EØâEzDÊ^míÇo7àa3±«¦ô@ Ñhô}HÌ8üÄ,ÑŒ«4œÅiÈ4z¶ÙðÙ=œýr"Nà‘‚!ÖûõÉOU2KYÉh¶¾ÐJO1[ç×óåÅÅêüôì_‹@j>_±E 9ŸYž[~&ØÅ"•óå/«+ØÊPE€$"Ä‹øüüêÛÅér‡óõjq³þt²Zwl
Y\!O\ßðY|:áL¥‰ž=Á†3‘¦r¶; µb:TÊCÊ“«“v§öê”*´J˜Nd<¡)fB°Tk9R†NY¤¤²Ê¸:VõCS4ÏE‰€Dc¥˜q<õ´ +À^œ+瓧¯ÂÔÑoh“1Ü$óìÐÖ»¬-6YYé|ãkMN€Ûã„öD—zÛXåMèK…,Œ¯¯§©ÜÛ¬ºŸdh—å†ÀmMßüÔ‹
mPJsÃîÙ;ØÆjšKoÉ´NQ9Þ]Ýæðƒ€‡¼Zz¹à
y!L£ùzkPABΉÝMm¿9ÁL¶ÙÒ*Ëó¢-êŠv€d¿¹)Í +Å÷Å£Í +ê¡Cžúú´ËŒ[8†åk éçUšûêœPg²ZÑ•å端ÎÔÕgÝ; æü“ò;ºêù +ci¬å·õ¯_/_ýf_™–¹:‚âwΔꪩ÷mqØõφL…‘×x¨Xê”|ºÜE 8ç£ +h
1©8%ÎsL4“L)Τ–ḆR‘2¦Õ©/×vs~E‹!î¡-Ê¢=¾ÅE^i^&¥ø;ÍëÄ÷›×k,yš¼ò¿:íVŸ§úY³0 ½–æÑ”S¥"eI§«£xO‹ÿÑ'¨ÇÛr¼=N=ÕEËÔ— ëí.Ûü|ó§A{™Ÿ³Ù›v‚¡Qâ®ùþœx!PiŠJ2.ÄðÄ]Qš Ú¡ +ΡŠMû¼ï̇M‰é®»F=ßagm6vƒ[wRÖMûÌX‘‹8
úበë à ³¸µªþ#¡»ÿ\xD¼>׌÷ô|ða玢¾4±‚VT']+úcG2õµa›=:nl&pcº²£…gÞ×½AŠÖЮ‰hböÃ`å1t¹]ˆ…²Z†\§j lUºù
À?Ü7Øõ0Zò”õðˆ¾b^ä@¶À„a§8±3uèGY +ÝÌÛ³!=sÎÕ×åwƒzêß\¨øìD›È»Ú÷·ÿéíÿÑc¦’DöâÊg¢T*<S(HÔ"#†£ƒ.Ñðš¯ð¯7"„pxx€¡€6¿-„s³Ç?&pBz®…îïå—jø?Í6 endstream +endobj +2797 0 obj << +/Type /Page +/Contents 2798 0 R +/Resources 2796 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 2780 0 R >> endobj -2787 0 obj << -/D [2780 0 R /XYZ 56.6929 496.4842 null] +2799 0 obj << +/D [2797 0 R /XYZ 85.0394 794.5015 null] >> endobj -2788 0 obj << -/D [2780 0 R /XYZ 56.6929 434.3126 null] +2800 0 obj << +/D [2797 0 R /XYZ 85.0394 748.9414 null] >> endobj -2789 0 obj << -/D [2780 0 R /XYZ 56.6929 259.4673 null] +2801 0 obj << +/D [2797 0 R /XYZ 85.0394 686.699 null] >> endobj -2790 0 obj << -/D [2780 0 R /XYZ 56.6929 194.3308 null] +2802 0 obj << +/D [2797 0 R /XYZ 85.0394 511.7534 null] +>> endobj +2803 0 obj << +/D [2797 0 R /XYZ 85.0394 446.5461 null] >> endobj 950 0 obj << -/D [2780 0 R /XYZ 56.6929 153.9173 null] +/D [2797 0 R /XYZ 85.0394 406.0834 null] >> endobj -2791 0 obj << -/D [2780 0 R /XYZ 56.6929 116.8171 null] +2804 0 obj << +/D [2797 0 R /XYZ 85.0394 368.9615 null] >> endobj -2792 0 obj << -/D [2780 0 R /XYZ 56.6929 84.0518 null] +2805 0 obj << +/D [2797 0 R /XYZ 85.0394 336.1746 null] >> endobj -2779 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F40 1218 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R >> -/ProcSet [ /PDF /Text ] +2806 0 obj << +/D [2797 0 R /XYZ 85.0394 268.0454 null] +>> endobj +2807 0 obj << +/D [2797 0 R /XYZ 85.0394 181.8927 null] >> endobj 2796 0 obj << -/Length 4061 +/Font << /F38 1082 0 R /F21 994 0 R /F42 1288 0 R /F54 1383 0 R /F22 997 0 R /F40 1218 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2810 0 obj << +/Length 3355 /Filter /FlateDecode >> stream -xÚ:ÙrãÈ‘ïú -½™ -7ѨÀøIniÆíq÷ôŽ4¶wÛý -Ò”€HÍ¡^(|¨Êö$ÔtõçoB=äuÑìŠò!TG66rô¡oý™©¯tB<fê“âøŒüCáøB°§Ïk)u”ÅÖÂno™¶\]ß¼ûùý§Û÷?}ì÷øÄ° Ø,àž©§•Ö™H msx®Kxœ‹c[ØJ]C#íqµ«:»BA®Ö4qõñ†Fᇅƒ‡‘.ʿ˶ki6gÈEù·8–5OUMÓ?ÿŽ¤PvzrN]$£RÊ*ʈEšï0‘èÛ»Œ°‹|»m¹MˆµÍÑ5Öåxtݸ߂—ºóáwå™E^k‚…£}»æÁOܹ‘fÇÓÏ?ššÏy¬º
ʺëìòú¨=Q¯,ª®ªïùèM9ÚŠwŒ§ƒ4Ü–.Š—d[ZØZÀµ½’Ãöˆ4°Îkn4u—Wõ³e- ð.N
¼ö°¯MýŽ{ÝÆÃw÷6Œ©>ŒzªGý=ÓHÜÿNpØŽZ¹?
;Ǻ(Ô,±¤»3¶4ðPå‡"R0YÂzùù¡H{×ð™9ý\ýáÝ'j±pR˜½-¨]7ŒýŠG†—<¹z¢_ Óa)Áj¥Æ&S¾p2CäC -¡ª53EŽZ=yáípª—xø¼:ïò©¬xfÛ´]Y·NjMzdýèø‘Á sZW¡Ã¸òó°qÿø`Α¾‡ç¸«>g±ŠÁyI~‹Ì¼ÁÙäŒÓð»â¾SZyhQ7‘~71:jÊ6|ÆøXãdñóðÄ´.-µ -opä„
”õÆ~Â{«"›%é«X¯T:€.dË -:²Üw¤Œ`ÄiøýGI"Á£Ú¼©î7~o[:™„É4¶'!tøá¶mùPnQg¹x?;à
vÓ~+‘ÈšÙlú.*–Þ¢jóÕ¶<¡m.²}÷6_óÛË@ÕV÷uÞÙPјs‹°áÔ<ü²-g -óhlÌÑ—5”Nâ„Ÿ-)n¼V^ý>·üéâÝñ@È×à'„Xà;ÒzØLˆ»ÍÇ=ê½’Á—õúðäUôóí}s -æ“H†É+ É*QÃ¥Pž†|†ÔçXcbÊb$HMí2ØÏl‚Û[r–d\mÙƒ6É4œ:iîù~CªˆÝbú»éAL²$ÏAp¬Ç”R½“<“Z -Z9ªÀäçPY-Î"`ŽGÀ•hº"_’ËwóU¤Db†2ਾ̰À2>dÅi_^£B-ºñ6Ò2–SâL§ñUh¡ÚÂß~jl®Sá\Ÿça#Yê¸*çÏ;“²Ôø¬UÞ–VS¢—†“óûý‹‹BØØ4Ê’LâCâÒç—žáò
’pZXRExú0½Sø;"ÙC¾oqþ¢…¦ZS*qˆmB*,‰ÒLÉÑ–»Â„,,”½v€e£8éKÐS@%Y_à~5()u -‰¼øPµÕÊ—„}·Oå7ÇnìBÙþ}‹‘˜ Hl\øõ0¸2x@TÅî)•¤}¦¾r•å¹ÛŸ
ý†}ÙvSn·a{ïÜ^ç¸JuÚ´Rg/ºqý$i6‘7¡hLE&Éä«‚19|Gâ#¯v@Ó5&r#§™œ~¼‰xûÆF©Ö2ôé<ýIŽK£ ˆÄž2£‰òãNb -–3ûN‚•ÀܳK› -þ´~¹æ%ø£øužÂÝÓð¹ŒÍsu™Oý… -Ùü -0 +xÚ¥Zmsã6þž_‘ÎtÍå«^î[Ú¤{i·Û½&½^¯íÙRbÍÚ’kÉɺþ÷P–lÙéÌMf"‘‚H +•¦úruaÎz–÷ÿêì=õ¯ŽšBI¡M¤Gl¡õ˜-\*"£·ÅÃU*'›¬j²y[ÖÕÕÔ¤jÒ”OUÖn7W*™
õÍ3~8+èºmŠœîÚš®Ù¶]U[γ–e M77»*[•sn|¸ç!Ö9ˆ6`áؘÉâhöcðp÷
Kž*%Rç´×Ÿu¬IÙ9Hk“rï¼ö×û’I»[óÓ¼hæ›rVðƒ²¢î¾þŠ:tbuÁ + +Ö‰9!&.ÄS‘céénd@å É0 ÝÁ(Ê¥dˆþé§×GYãúƒf5]96ŸË¼Ø«ìoÈÅÀ lød¼àî(q]b‚gƒIø5j¬¶í6[.w´‡”‘"Nî¡âó| Qö\ŒBñAn±’-š¬·³%¦OìåÍ)y³[_aú}ÚdëÅîJ)EÈcZ‡%1ŸLñÅŒ.‡ó(?"¾ü›:l,š& ‰U˜XÂZ›–ºf<tÓÖûì`9Y¦üöögjdË‘ÝRWF—?êª ;Uœßf;º’¦nir +˜ì‰Õ¼f¤¯«)¤•RXy˜Ñz‹ATZvfIÁÏÙfßð˜ëäû +ØwÈOWÎóú…‰‰–RÒá$ÊOõ#É0®3Œ;e«Ž9Ç
cK°³ + 'u"w%Û ‰2jÈ=‚æF5Çv6‚³1pÄ8˜þlÝáRÇÚNI½Þi"ˆAÝóær§õºª¯«¢€˜dð‹r¾ •½™ðfÆk +ÙcE„–¯—æž“‘änŒ«T
åÎM^£éZ@ ÏZ"k‚á}-©‰¸hàNYÉ>wBÏÞÍÐxYÔž–iÂîíô^ +}û'ù—øB¹X|ñç +u +à,Qn¸Ûx,Þ¶a?3iBÀà'ͺ˜—þ…4ìç’=ľG¼aOwÞæxÞæßäDŒ÷ýDì¡*îjŒ·žƒkŠ7É“A$-C¼;ƒâ·ªš9dàÿüîú«éw7n? +ÁÂH&Pr.ýG@lÃX%~Ì…´j˜ú^Rlô1€mŸÎặµK¾BrŸÕݹ¿R·[™±}Þ6pýñO2’(î>Ùv%TÃ$*UPDÄú° óTÂ1 ÜDFüa6ç‹l“Í[Oxµcs°$÷í9ŠëŽƒ€Ó‰c¥ùõ¬åq=ÃÖÌË¡Í?ÑÎ@/²|¨M§([^Œ•—D¯”¥Õ{¾®ðäåvŒ
%R8Ûñ8vÊku¦0aû•Uî‹ã†¦â#gåÝ +ϼ[éaøvÏXK\²ÿE
‡äÐID‹^¢ƒ)zƒ?«”:†îQ¹¼•ë%§®¶\ÍIKR¡_ÍS=¡Ó0„<Œµ£YJéý÷hÐ +÷1LÆ"ŠT|V¯NèX±áù+”MÖ£IØös¹Ú®¨ÊЧ؉Þg€¾AúÀ"âø^ö‰efÅcÝ}r€vÉ¢Þ0^6¢âÝËt¯ÅG:Y31RòžUBZsÀÄ›öXÞ0Aù/'ÂßÅö_ÕçaRy@£ØâÔÐŒø˱gÈîØÿýµýñl,Lrê4ä@'´É—wnh! &ºÅ£ŠÛÏmQåÁ÷Ûõž/þÛ¬šédÌFÎLTb· +ÿ(îØ +ÿ0“Šendstream endobj -2795 0 obj << +2809 0 obj << /Type /Page -/Contents 2796 0 R -/Resources 2794 0 R +/Contents 2810 0 R +/Resources 2808 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2793 0 R +/Parent 2780 0 R >> endobj -2797 0 obj << -/D [2795 0 R /XYZ 85.0394 794.5015 null] ->> endobj -2798 0 obj << -/D [2795 0 R /XYZ 85.0394 749.2922 null] +2811 0 obj << +/D [2809 0 R /XYZ 56.6929 794.5015 null] >> endobj -2799 0 obj << -/D [2795 0 R /XYZ 85.0394 666.7399 null] +2812 0 obj << +/D [2809 0 R /XYZ 56.6929 547.9024 null] >> endobj -2794 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F42 1288 0 R /F54 1383 0 R /F22 997 0 R >> +2808 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F64 1435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2802 0 obj << -/Length 3412 +2815 0 obj << +/Length 3456 /Filter /FlateDecode >> stream -xÚ¥]sã¶ñÝ¿Âo•gN Ñ7§çd.Ósœ³/é4É%R'ö$R)û|¿¾»ØHJ´â´£‚‹%°Øï]H\Æð—ÚDÆJ{™Ú$ұЗËíE|ù 澿Œ3÷Hó!Ö·ß|§²KY#ÍåÃj°VÅY&.Š_g7‘0Ñ,Ïnï?Þ½½¾J“ÙÃÍÕ\ÊD™ÙõÝÝÍíÛwÿ‚w2`ÆñìýõíÇëìîÊÊÙõ÷7÷W¿?üpqóÈ’.b…4ýqñëïñe'øá"Ž”Íôå¼Ä‘°V^n/"(å!›‹û‹ŸÂ‚ƒY÷é$+DIeä/¤˜â…¶‘QR9^Ôù¶,ð€,È*‰2+Å«Z]Í•³¼~¦Á¦YæÊÙ6o»rOà¯M]Òh·4hËŽ—Ò"’,2:ãå»"ïÊù®ÙTËç bŒ‰l[Æîš©e¤3O.QwºŽ‘N3¿6U øuÙŸ©«ššÞ>r·®Z:èç’ÿ[Ë
´ÌQ↗s™%ÀæD]Î…ˆ¬ÖÒíÕ<–û}UeMôTukuë’(M†”ÚØŸzJçŸ'#’(I´GivHzD4ˆXG*C˜ubˆ†o|›YQ®òæ{3ÁÅ5#¼fÝ’`&6OP¿òòkË–Öþøö) -ÉÚ².Âk9èþJd³òCÙvíÙá -Ð=+§{§ÂcŽRa½u̧¥/U -fÅž™±nçüI#™xåùŽý
‘6•(C•#²à“Q‹dŠ¬ÀÊÚ%.hÊcµ,Q”×;õúŸŒ˜ïŽ)€Ô3…à?!7^4”o„ Ù‘˜íØÉHIˆ¤Ìsâ„ÔÚFiz5öÊ#YªÔš6ªŒHHNå:ßçKW©à,ñ€¦Ÿàéóz‡ÞÔ]^Õ$\åNs` ¼¨sóð\ðž -Êa¤OÖXS¤ö™N}x¨ê¢‚j‡ÒvôÎ9ûö#AÂ\Uï<Ù®›Ã†Á¦’³YŠ>2ôÑ'á´/xød <vòB¢ÑÚt,ã-0¨ÚmÎýe¯ìPæ?³_F!ÚÕ&§Ù0VÊ6‘¯Ê†u"³¾öäÔµª»£ø9Y6š}Ê/•· &Ô\(ð˜š%Pø%’4áÝíÝÇúò»?¼¿Æ®ÃÃÄY€!ÀAÈL“WFJü¨sïyBY4C„=uÅ©ÆyÓ]UàUÐâ&õÍb<pE°dÛ3zõò»ºD-žÝä.ÕG¿Ól·Ä6Daá\»MU2ÔqðÌÚ…1a9ŒtSÕìf!D™8r ®º—2쮥žÝ7è:Ê»·ôªK%¥ëZlÁ=´F€GþnwØïšÖ…f\: -ghì/‘_?áz`ÂM8:„ðE”ÕU[¹E Y]®Ëåç–°\WC°·w“àß øéÕÑ46rà jܺlKš®ˆ}¿RQqÙBkä£C…¯]ÜNûþóÑ©z¹`bBÇE!“0tI©¿S[@ý-Öñ‡°<[ÝøKE¥!|ß0¬âOóEKAæI%Ìp6¦<#”Ž=#:<3¾o-/³`ŒmÙñ^+šà>Ïñaÿ*T2Võé—UGé—eºáé¼<ÛÃrY:÷›(;ûè>eÎÔ`´ö(1Y&ÍúÃ‫hRY:œœV4œpcBQWyµ™tÜ7à0±£–öõŸJÓñ©q–oI†8íTž_Ë+— ¦X!šÓ,˜Ø†Ê¡STóJο Î×PÕ¹
ö®ã»WhÙ&³éÜ"›MóÔNI6GÈ -U% ;(hÜø "ÇØ[Bvy|v’4NpòˆÒ&€ëÈÛX*Gau°ØІðƒBÔÞ)…½J2
ü¤ÙOo[µ-¥GY6´x#w#௠²Øäõgúx“±·v#´f§z¼Ìi´“RF*1&´aê©t3ÌÄút‡:{Xšó‚1µùry€¬ƒDã°| Înb¢Ôš±vû„`z3>/ȹýB! oŸÁ
VK~¹½?ÛÌ·BŽ1Ý:—õ‘”šMÛÜ·V¯8UÙ–9缈Óà8«ÆiüßO®>D”Båu)M -%;¦¯*i>Äzù¦"`‘ ¹
ß3ãWl¶ý~L’€Ï¡ÀJÏÓ°&ˆU©)èÉÆDÝ—”&@z›£ÃÅAáåŒ/ÁºC¯Å÷*æÝ
ÍPÜ…J×UqÇ=MÀ¤ËHEô?°b¢†â)
K´ÄTÏ~Á+ïVG1Tcî‘(¨à<ÃݸƒSlÉ#HÊÈð9¨i‹7/\ó$q¸F:—™êHÉØSJÑ‹ˆp^FÞð¥c‰q0·PG„S¢g{Dð|ìù@à-€”G}?ï¹ß>´föþöúý
•:ÎϺRà.i±ÚWQ -{Q‰„†Ï€ Ç$ W¢w¡ -–ÿ…n©`ä´*ìã@ÎWÎ}{T\÷WŒÜ%G*r¤Bý©#Íd”û*7*ÒtìEaö¢B
¼¨H<Ãpè®±aAé_ë' -J#Îr
EnMÐÅ3Á¸rL¸:å‡\ŸGÛ£†çËî(ÜnÒ{ìˆsu(Ç3A%=©ñ†# -©Ê]ƒÒè4ì.)i†¹>ouëÓ#Xû’Þ‘DŒÆ:g‚ ºé§ÂvŽãÊgŒî/t.O<Iß?v—wµÕ§:¤’/» GöÈÏ»‰Ö7á±|$¤íqä=ùÈ5HlBfçIðH$ŒŒL€k#îGý^¢ÔÕä(Œî5_úÔ‘›am®ÝõÄpÆÇ@q‡ðJ@z.y†Œ86À4ÊdœÜ…æd\šXÛFð,=m: 7Ï!#“iœ´GcpÕýSÏ22TSç{‡V…´“6È; f×ÑKQB¶²åjÎúÒÊŽ².`Bœ†žÁ·Ãx‘S#=³Ôæ.Åî‰×q!•§ù¿/"ŠuvüŸ1e:sOqÞpzœ—͆qœËÚä>œºá‹f#S{nÿ€sBÀ‰ÑÄV)p&³z>—8Êøfû§&“**”Š F{¥ÃMügb]š™QùúÜiÀ²ª$Êo½¾»ºhe™{ë{áïyJGøŸº †Ça‰ÿû¯{ý_,039-»#šÜµÞݾ%F +xÚ¥ZÝsÛ6÷_á·£gb–ø${r/n'ÆÍÕN{3ihŠ²y‘DU¤œ¸ý-°¤(Å›ÌÄ °\,»¿ý ØyÿعQi&¬<ÏLUÆÔy¹>ËÎ`íÇ3F4—è2¦úþî컄9·©Õ\Ÿß-#^&ÍŒaçw‹ÉÕû÷×7oÞþçâ’«,¹N/.U–%ï®n>\ýŒsï/,O®~¼¾…G.…"¦Î’›Ûïß\]ä2¹»¾øt÷ÓÙõ]/V,:Ë„“éϳŸ²óœà§³,Ö¨ó/ð¥ÌZ~¾>“J¤J +fVg·gÿîF«þÕ9UHeRÅ¥>¿25xÌ*,K3 +¸Ì•Mµà¢Wgs +TNa—{wÐï~Ð2¢d,5Vdžd¿ØvõºjöÝT'Lé4g™>7>¯§š‘Ç»j–jËìXÀ»ÇÊÝ”J>\°äÍ{ï.˜Iªn÷ì/1©7]µ{*Vp"ãá™,ªe±_uøNÝâ¤ÀǶ*›Í¢õ¯°äígÿª<ëæ<Š,駰R}©W+œ¿'áÊf½ÝwÕÂièüR±4—ÊÂÑYj•âþ Kä¼F3DÎn@ªõÑ6ðTl8Øì×÷ ˜7KüûÁëAu‡™-YF&®¹[o=Ñ ã!"o;OÓý¬ +©\ +9ã1øB•¡ÆsÜFeŸC„X´i ÛmUÖ.,W‹WÈ]b3Ç|’àÿoYJ&IÊá™…h£_¼ùåîúµ;½Äܼл›p²ŠaxÊy,% ú8Nól¥ÙVKl°Å¢nËf¿+>¸…ûª,ö( +XÙ¶dP2×›ÝX’aç®ÙѦΦVU¤Þ\ŽS1Ê8a¡¢øÿ<±?P>ìuó?ÈhÛÇjµJûŒº×x„ÇL»’ÖB7¨Ä·7ï?Üá«?üòë»+W¤ßÍ$ä™KˆS5AB…Y0c¼øbáăQ½AýÁ°×ß¡óæ*U6¸ã²^UÇÂ/ïƒÅîqÛÝ I,¢]=ZdÉuá3S˜
†$$à`“îÉ'cî +ÊÕÛƧ0K»·øÔW‚3,©üìb]oÀ`v·<Ñ{ÛýnÛ´®äô}Éíæ°‰]‹"n<©j·‚ã„£XÀøÂ$ûÒ9z;Wx9 7¡œ?¤íà"ž dQåcU~¦´3«>»ÅªêM–—“å¿@‘p +i}ã ¥”(æØzÄ@N‹Å$EG$¨P ‰2ÝðúŒCù<C2Í +¨ªý«DBõ¤¥z²çöߪì¼Y͆ú}0ÄÖA¼8ohn%ÒÆÌ —E½êØ(P^CMn+r=Ø~žOí}‹wè–½©Âß¿\zŽwF;ü»nzƒ—ç¤&N_MèoÅ|ôˆON:ÏÖÆRòLV«æK;gÊ.Væî¨î ÷qµãckù=Œ'gÇ›vxŒÆÝ6NÔK$ s
™PÌ,ö!÷Â9Ò”ú½*t
÷ +¦†Ó{]×m[o\„4£€kBL6=Œ +q +EAHû 4ÃÛ¦ð‚XÏ;„’=Ñ!ÌÀÍ)i&Å ¶Rí7ÁEé”ñþ[Ùé¢}æ>ZÛ¤è@˜m‡‹ +–5•t}‡ÖŽ/?A†åhüÛÃ;ŒÝ—°}¯/fEE||T¥eŒëî³.š{äyÔì;æ><Kù7£lLuÂ}•¯U«s •KqZŠžjFŒRJåð´|>•½xùRìÙ½]†O-sŸ…H
¾€'œùÔ ¡/7jòí楩T¤·ðõf"ÔãpLbÿöfî» 9CôÝfîî
øÄ°ÓW¿ù@ä[Ý*T«þgU—J”2—'·ï‰÷Ê‚:‹3`¸ñPaºÁ d7[¯iÚ» ü]ùv6‡ ‰F_¶Æ}׈þžÞ‡Ðì[‘®$¹{=«ý,˜ endobj -2801 0 obj << +2814 0 obj << /Type /Page -/Contents 2802 0 R -/Resources 2800 0 R +/Contents 2815 0 R +/Resources 2813 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2793 0 R +/Parent 2780 0 R >> endobj -2803 0 obj << -/D [2801 0 R /XYZ 56.6929 794.5015 null] +2816 0 obj << +/D [2814 0 R /XYZ 85.0394 794.5015 null] >> endobj -2804 0 obj << -/D [2801 0 R /XYZ 56.6929 453.6878 null] +2817 0 obj << +/D [2814 0 R /XYZ 85.0394 504.8852 null] >> endobj -2800 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R >> +2813 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F54 1383 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2807 0 obj << -/Length 2989 +2820 0 obj << +/Length 2935 /Filter /FlateDecode >> stream -xÚÅZ[oܸ~÷¯˜·Ž—W‰lŸ¼H6HÑiìíðúAöȶÉ;’í¸¿¾çð¢!G—q6Û,uDžëwH²…?¶ÐŠPaä"7’(ÊÔâf{Bwðîý ó4«@´Š©~¼8ùá'¡†˜Œg‹‹Ûh,M¨Ölq±¾\ž}úôîãÛÿ:]qE—ïÈéJQºüûÙÇŸÏþæú>¾<{ÿî~r)2 bÒetùñüçOoÏNs¹¼xwzuñדw=[1ëŒ -äé·“Ë+ºXà -þzB‰0Z-žá%̾؞H%ˆ’B„žÍÉùÉ?ú£·öÓ1QH¥‰â2[¬€˜ÓœŒª@ -36ÖEÞÎ<qãž×þ÷Åù‡÷«¶º«Ëµÿ´ê»0ð¨ÈŒŽNåD‚_ìEr°’•PœÐL™T¯EµÃØÆ'y¾üp;2ø‘ȸŸ
•1fnɵ6Y¡k³l{Iß u\Qïô²ê<MÙyjgØÒ°2ÀÅæ®ÙUÝýÖý¬j÷|lË¿€IP½ÿlïœH×:.e崃 —ŠEkYm×jd=2'b›'ôÒ¹êHŒw%©"œey*Y´ßá¸ÌÈè º›f»-êµ³ææ©Üíª5
þ,joÿ½#DÒô_Ôîé$ -–~ C90`¼»¸¯¼=„gùÛc©¡¬»ƒ¡\ÂB¿3|Zʲ ¥»ãºž°-´ªi
ÂJqDƒÕŒ•åf³žR¢ ð)¬lvîžjdò@Ú„Ü—Lît(¥—…TË_N•‚H´nž[÷†SJÝ+pⶲƒîæÖuFÊÇa×ë•)"›W>¸§J•…Ê_¹¡bDŒ&íB¥Es«fÒ,Ì÷˜…Ê9”Í[ED4mYÙ•Åfë!‚kš† -!bkt/Æ0ãœh,sh$ëî… -lð#è>¦šñÞ@…˼|Ø•»ò·+¿Ê¯ëf[T>º¸ö*è4A÷ |•3ÏXO5ÂY"yI‰Bí$¬}Æ0ë3@øµ‡ïþuóh7eܪ=ׇIÀVèì`/ž¼üZµŸâ0®Ÿ¢7åög9aL…~ £ƒ…eŠäJÈcKBY“+srÅTÓÚí©†Ú}ùíRÙf–±žj„³CíRÜ HX›ÐîPà ->âJ¼NÞ9ÉdäëõWªè}*ÁðôÖØú&–ñ¯¶¬7>Õ«œHÁûšÎ…Âæö ‚@ƒ6Ø´À8Š±#:¦š1ƒ@5æä»”{C+pIüfS´íÕžåq@"„ʑϳÛSð›fCxfTÊðëú±„0`ã³-Õ£È=âí`ã:çwyÌfŽ7#ã@áj£‡Õ©•õÈ€E®CŒÁZr" ¸þ®8RÛȨ¦©tž?ï3`!¼ºÎí1À¯Ý=¯ª»rW—ššü`üÇíL⓪úê¾yŸˆ¨f|"P…Æïô b¸?ËnO5Âoê€Z8 ¾„aW†žy=DðÜ{¾/b²ØAö½{ÁOÑ)ðƒ`Ð8æÀ)ÿœ"#·°ÿ/>¡“Ê° µ}l½öm´˜sLHF½ÊC²ÿ‡°* -xÞCbªi驾ßC]Ñ„X¦ÉÁ€fyï©F˜ODM5,Ü%áþbtÓ
Dó‘½ñ]ÔŒ© á[ë)
‚öœ|¿¹Ç[:a@—MôÐñà\«÷ζ²[Ï1Iç¶ ç¶Ùm=zöÔH¦^ÐÞ;W*fÊ:t&m‘ßÔ#«Ò9V9Ù÷ú#ÔË´eÊ°!i›~¨±Ä„7‚
Íó×y#*¦ßßè·êqõ°ìëÊîË£p¯{ -Ð*¿7Ýæw„èr[tÖ -LØ-7ffPÜFºñ;çñ‡ÿ¶[6~SºuW=•cú÷ùUþ½ -‡êÌöÍ -glBá+I! çy -„¿šH*&œÓrÃŽ:oNvÄ5[>ï0øÖîGåŸþØܹƒ5!+ÚWåW{Š@¥÷ﶬ»¢s›‹@eÕ4L»ûÞvÿäÍ‘1M ©Ô?ûƒfüw6÷¹‘à^ôÈ–@L5÷{*÷Ýö§æërsYî
×m®FrÀå> \ú,p5ØxP -
~v-=ÕÈb’< ¸ÓÕ¼-7åþ0ÿ¯)Úý>À(ÖP +xÚÍZ[oܸ~÷¯˜·Ž—W‰lŸ¼ˆ7Èb¤±Ó-àõƒ<#ÛBf$ïH¶ãþúÞ4䈒œÍ-Xu†çð\?^ÈÃYˆeŠªE®8˜ˆÅzw‚wðíÝ q4+O´ +©~¼<ùá'& +©Œf‹ËÛ`,‰°”dq¹¹Zž#’¡S/?\|þøöì4çËËóÓ¥œe˳Ï?¼}ÿ/xˆãåßÏ>|>ûÅö}<Utyöîüâôúòç“óË^¬Pt‚™–é÷“«k¼ØÀ~>Áˆ))Ïð‚QŠ.v'\0$8c¾g{rqò~Àà«ùiJ\H$(Ï+Æ‘þi…”D¹P(c”õ +£$¥0O¥ö¥|±¿ºßë¿^Ÿ®Áº·.v¥ýÒ–ë}ÙëƒHŠX†å"d:§JÈFÙˆÌã n$ÜÅC¹®~Ø–íéŠ(¼ìî‹Î¶ŠíÖ66Eç¿ûS"—¥#nìóƽ_^¼·j«»ºÜ¸Ÿ¶U}ç.õøIð@*Ð<Y8ÌÅéÊjEÿâ •£©¬˜ g`B‚šß>Õ^û"¸§ùòým‚c +ê˜is$F§Ê¥TŽ¨‚yS©–m¯¨ÍèQJO¨Ößä²êMÙ9j=YÛÊ0*Ð/Åö®ÙWÝýξVµ}>¶åßÀ)°<ülSÞ[7,ˆ`¤ä‘”*G”‹p.«ÝF$æÃs$)ΡÓÎ¥·Fä¿+Ž¢$ËcÍjŽKÂJ27îºÙíŠzcý¹y*÷ûj£}F¿µ‹€>mº_Ôöi5 +sy"ÇåTˆ™dPM$O¥9Þµm>uÌb;Ë36Í×%ø†STe"Ïc¾Ÿ[g€w+æÎ\³'¸ù‘mÖØ ›î.ï+çþYþþX=۲Үqû¢ƒ&åõL”yg^ÝÍzı´Kš/ËL]‘ió…Tãæë©Œ4Û͈ µSL§y÷T æ‘0ØZ×õˆ»5"çN\,=òЦyníŠ1¶Ÿ „ÛÊhº›[ÛX_ÓØ^gýpàÀúלõÀ>Elýp(mý•VÎb‰c¢â\4ê ÉrïÍÉ1FyžÏÄuH5ážJK³/‹íÎÁÛ>ö"¡ŒF"ÌÁ#Š””2
ŽVýˆ3ò"!4–WWé댺˜³-y¢×ÈX MFr³ýÕÔ\ƸGŒ…Ni?¤p¡IL|nOª˜AÂË0žŠû‡“a „«P +1‘ó?”|9KŒ +‹&Î}^›–/÷ô"xWuÝ_€·÷ìSÇ\Uwå¾.;íøqÁƒñwÅŽçÚ= ˜'Ã!¤‡ž*•¿; ˜ø>)nO•÷8$X +Ð2L;ûÞpÌÇr.óC“2Wý0°¬b#ÁzT8Ï_ŒÚ0ÂÛoÒëÙôo*³#¯• 7Zt¯Q é)l‡±‡n˜dýŸ>µÅ™à6söʦ\ÅK@kI¥¬™à ¿´
— U~-ÖÝöEoáå®èŒ(¿Q®ÔÄ &ŸØ=tå6ÍÃþÛ`MÝ2éãç»ê©LÙ›q½Å/òï5¸Ð‹vòÍ'dÄà+k’aœoD&³‘ी'sEfƒ7Ç?¢’,Ÿ÷:÷Öö¥rOwbáÜÁœ +_ͧò«9Àð˜ÒÅw[Ö]ÑÙE 2æVÝC¯¯ºq¦ ‰XaŸÜ™¤þw6šö@©÷¹'Ó~H5žö{*“öíÞ§Ëå›r{UÞy¿ë¶×‰pu¨W®\öÛ¬÷1ƒ?9—ž*1™¨â’a1Íæm¹-‡~ÕÿšµC{Ø +#Š±b'¥~Œ8Õ¯¿«·1øÆï(lb èÌ!ÌÑwó징²? x€ÌuSm«îå”@M.TA3çGÑxjñDÃÌRl6#IEëå¢J%¡ MIß
Å?Æ”*— +å?Û·UDcý¨ËgÛHx¼"ƒ¥–î³;‹ºåÊ<™[la(À\òIŸÔ§X¿K1µÖ"ß²ØÊ^±Øb3É$Úw8h +_Íݰˇ` Ñ¥Fæ²4ú[/ú%>’ÐU½.£Úz¤óýc[øe1àžñ5(Å1>·iRM˜ÏSYln]/dšCá͉šfê‰L#ó1ˆn˜tÄô˜¶Ç§«‘í ÃÙî›ï”ºˆYë$h7Û¢þr¸+2ªg endobj -2806 0 obj << +2819 0 obj << /Type /Page -/Contents 2807 0 R -/Resources 2805 0 R +/Contents 2820 0 R +/Resources 2818 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2793 0 R +/Parent 2822 0 R >> endobj -2808 0 obj << -/D [2806 0 R /XYZ 85.0394 794.5015 null] +2821 0 obj << +/D [2819 0 R /XYZ 56.6929 794.5015 null] >> endobj -2805 0 obj << +2818 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F54 1383 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2811 0 obj << -/Length 2112 +2825 0 obj << +/Length 2001 /Filter /FlateDecode >> stream -xÚíYQsÛ6~÷¯Ð̽HS_nF•œ[Çç«”›Þ´} IHâ„"’²ãþú[`š¤h%¹æñFX -?6ñD^4 #A|ÊüI²¿ “-̽»`–gî˜æ]®×Wo¹œD$ -¼`²ÞtdIB¥d“uúÛtIX@f ‚NïVPL×ËÙÜó¦‹ûûåÝõͯÐ÷)0'¥Ó÷‹»‹[»ŸEÞtñn¹šý±þéb¹nÍêšÎ(×6}ºøí:Ia?]PÂ#éOž C ‹"o²¿>'¾àÜä«‹µ;³æÓ1W_ß8…JƒpÜaŒ„ŒS(‘Ã<6æ0Ç¥¶Sùa¸Ô0/lÒw¢Ô1(õ:J¥G˜E_é}•
ú;Æ&Ïj;Pn°MÊý>.Òšhë&0D„/üÉœIÂxè9·Y¡jdPÛ¬(²b‹Ý§¬ÙõÔjŸ%e^v´š19U/ªTÑXI t„'Û%öSc‘ñ-c$ò}O¯“NæÜ'aäÄᯋ÷÷·ˆ¢G¨YŒ'<Dìz§5H>UŸãý!7둬'/Ÿp¢Þ!åM5át¿dÂ#~(B¬õñÆQ-‘A(-cRóU<(Tp¬•iJÉŠZU
Ž¡g€HU®û :¥.†Hìbp4A—¥vMÓ+÷VÃNah™‰žŽó'XgÝAÃúÓ?ËBÁ†å2˜Þ•Mf4Áp³‹GÙ¡¬8ÍX -åb')‹&†%b/¶rª8ËI á!‹8ƒö»º*‘{‹K<š=¥CKÂP¡=³ZµÃN—…JŸ‹0ŒbCã÷ŸŽÊm!;Ýî,Ç>®U!
BZ]գݔ–è¸Ýâ\ÀË)¡‘šým6 v!÷²hŒãߑŬiM—yº+ë†ôÂ'c§©5B=K’ Ô 5
=}N0ÂÎX¡HÇ·/z 0Ì‹â0I¹›àsê¡wõìèjõDÝAÿ@ž™‹@‚†ÔòMÞ@NµŠF¡'LbYôͽ…]šÚmñ×ñ&ºe4&rFmóMòç¹™êbóÅH=¶sж©Ù -Nãg$Ök{ÿN}jƒ‡x…íšÖ0ÊÎB3øFh*U©O–ýsZîc5L/K>êýÒsã·ÂrLÆ—oîï—vå^„ùé€q)#«³æ%¦Y“™R'2eÎC ÷Í:ý¹Ì¡§Kl“J>º/:)¹Ín0w;…ýpä -kÁV;bù`o‘¿¢&~{s;r²wNñ%$ô³œ.—¹kˆhä‚ÓriWªI®*È/ù#lþb34€ùtÀÏ[ÐršÐË»Ì g~зÁ–ÕÒ,K¡ÐË6öÄKÕ&>æÍ+Ú+óB}£â¬Çº\¯{¬å2{Œ««êX\iKÒ«J8ÈGõ<4ÅcP0ÊÎÛÒrÓóÇB8±˜è[S+w1kËÙž»Ö -¶-XGQù’Ó€f®38s\ÿÚ9 ªìÑÞz`ã¡Îª³!i¹NcÒ‡‡dÆÙJ‹7uñ¦{oº}Á›î¼i¢‡7=ð`'ÎàmxÏ™¤„{<êŸË«å¡»¸]ýÓz¾þ`…ÅY$§°£‚±G& +xÚíYAs㶾çWx¦{3¤(JÔ¥3Þw›v“æÕÞ7í´=(kÖ–¼’œlúë"ÙŠ»}ÍñI @‹‡ŸiŸŒüQùLq¡FÉöŒîaìý™ žiÃ4ír½Yž]¼“z±(ð‚ÑrÕ‘¥×ZŒ–éoãÙííüæòê—ÉÔS|<g“©â||=»ù8û€}·“ÈÏÞÏÐô| +Â÷˜ +ý$[yµß¥qm–ö}X7ÔĘûMŠKÜ\`_ê©ìÉòÊ”5öÅ9
¦fcjšRN„›ªØ;"¡Í`oR¸oJ{Z¹V±¥ÖNÅÑTèù¾§€j¬ +Ú‘9XâøC5þ³È
€Eê`|SÔ™[ ºëu\7ueùnïú ±ËÄÉš(”‹¤È불˜ä”q¶Éò{”p·‰óO8 +Úª;W\=^Á…Q9±ŠÄj˜‰'E·öQ˜¦¯ ©æKVÕ´XŒ +!^Ü•†3XÓ·Âos}.ÀÕM¯ì“q±ƒüÔãÚX?kAÔ-ÄZÝ´n—Lâu·t‘ÿι̒Fª-´’Añ›"¿ŸV5ÜvöB€q9Ûºë8 Û¾?¿{‹d{>R¤;P1~Ȫ@m÷
¡f@8«{E_‡ +çpGE§€ …Ú¬èÛZHÅ3CÚF-<onÜÞ€7]”Mõ¬3,… ³±<hb9ô^Þ,ó·HgÄé,d OI…”=ˆöo\æhE8µªþð:~0$ãçÅÕûóvç¿’€œ4¸±Ëh~p6™Èm^ÚÉŒaš0)ÂÀM{wE q/·çŒ+¨ ¤/˜äa8\–Ó´ËåRq?(KZ.»ê…©“‹âËæ¾:T@€ð@óð´-×± +½¸+@‡ ðú*PVÝÉ̲ò¼lE^jVñ~S¿Ÿ½d0µW +áˆ`Q¶¢Ì¦+Èg‘²)ï,>Ž…x’E¶6F¦û—¤øÄÀ¾*dßàj_Š¯U§„h Ê© ÖTêïjäâKÌEpÒ-Ó‘3Ð% +•”O»º¸/ãݺyH,vT‡¯:§G™<m
›»nç÷™Ôj_ï»ï–Ho¸Š½ô~/m‚'‡â*oü¯ßöŸÿÃðCÕÚÐ’ûLÊH4JY3 +Ú'7%Ço®n.qc0ƒéçç¨ù—ÚäíëÖb¿Û%e¢ÿ8¦´ÙrSuÐþ¡pl†¿ endobj -2810 0 obj << +2824 0 obj << /Type /Page -/Contents 2811 0 R -/Resources 2809 0 R +/Contents 2825 0 R +/Resources 2823 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2793 0 R +/Parent 2822 0 R >> endobj -2812 0 obj << -/D [2810 0 R /XYZ 56.6929 794.5015 null] +2826 0 obj << +/D [2824 0 R /XYZ 85.0394 794.5015 null] >> endobj -2813 0 obj << -/D [2810 0 R /XYZ 56.6929 680.2422 null] +2827 0 obj << +/D [2824 0 R /XYZ 85.0394 750.8373 null] >> endobj -2814 0 obj << -/D [2810 0 R /XYZ 56.6929 331.4618 null] +2828 0 obj << +/D [2824 0 R /XYZ 85.0394 374.3309 null] >> endobj -2815 0 obj << -/D [2810 0 R /XYZ 56.6929 168.1912 null] +2829 0 obj << +/D [2824 0 R /XYZ 85.0394 186.4801 null] >> endobj -2816 0 obj << -/D [2810 0 R /XYZ 56.6929 95.1985 null] +2830 0 obj << +/D [2824 0 R /XYZ 85.0394 98.3442 null] >> endobj -2809 0 obj << +2823 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F49 1308 0 R /F14 1020 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2819 0 obj << -/Length 3067 +2833 0 obj << +/Length 3070 /Filter /FlateDecode >> stream -xÚËrã6òî¯Ð-rÕƒ7ãdÆ›ujÇñÆNj«’h‰²X#‘ŽHÙñߧ’ (y¶&¥A Ùh4úÝb3 -?63ŠPaå,³’(ÊÔl¹» ³GXû႘EZ¡¾¿¿xÿ/af–XÍõì~=Àe5†ÍîW¿Í?ÜÞ^Ý|ºþßå‚+:¿"—Eéüó‡›_>üÇÏÝ^Z>ÿðÃÕ¼Jc% -¿t£¦Ø?{?^ÖU»¿df^oýÄ¡-·eûö -Œ -7<Ö?0Ühù¦Kª#C‡Vk ¥–D)Gf®&ÐJ¬íì “UÉ—ÀÇí«
¥Ì&ÌC{Wi´Hå4ß>Ö{`áPká´
Ÿÿþüáãâó'…;Z6Ù”Ë_94E€Éý£ÙxĽÝ{±ôïG{ˆÏ"(ŠÊJg"qÂË¢ŒÔܘ–v~¿‰
ŒTýáAîï®X4íëÖ¡2c¸¹5Z -ì®9µçIì &hLã(E4…©„È_šb"ðæPΤL jÐaTÌCrçõXô®Ü}â¹,ü"òæ%@z[á60žW=i²¼”12¤Ï‡m[>Ť¬š6¯–E3Œ7ÂÚÊÛÅ6QuóíÖë*oÛ:ï¬Û:ةڹ졒_ß>ËQS: ðÂô¼(|Ì3)£ò2g:/£¨32¡œŒ.§d”BÈN¤µ‰€jF(—â<}Ô‰€jM(1J(œPL -4Èü‰Ì;Á«3€Íä@:™
’Äì„ÄÉh#qŒR–Õ¿à½3+úÏWÅ:!{7•óR¸™ŒE*ßíò=s‚ôN©QRy8)ü0–éóÂ0„:-”†/o¬a1"‘)!UWò<qÔu‰$@Z˜A`’’wRl&ùd±$A -é•™ˆç1|æ"x˜éÜ#ýÕã‚SyÝLœ¹z¦1Üš£«Ìˆ¶,#5º»yÄ‹aŸ@’3±•‚Ófz¸“·ˆýLâ(»=MpÝi~)1Þã,óñ<Áß®üÈYGxœÑÃœe1|á™Çú˜Çåº_œpF™ *c_«ë–ÉhºVu©ê62…©³QæPüU6íi…“œ0jßR¸Ô…‹PNáš7o_©KÔM0 ë8OZuL[ªBÂiY–7¬¦yˆ¶ì4Î×4lLäl -aäk6õ÷na=ú¦‡ü‡»¼]nŠðQ~ -Þ¼-v!áµ¾Ò3D²²ð×®ýLÙôÖS³|§ûÂø ä8F7Œèìt‚§LôºœQ…$‡K<¸QWf€9—âä½ÛÒ¥žðæIŠQ”T…p«BXw`±ˆs›Úåz†‡ÜMb…SAµ€îXŽä?X²EÒ$Øæ ð1pÅ8I-gx
ƒÐèDÉO@^&Å,„¤@‹¬WùqCY¦jJ¢©:©ÏÌ@vu²õyuZŸ;(§ÏOo:ÐXO´™c%Q§+MЕ›!óázDØ]QMÖìb”ë -[. -îª÷©…à–ˆ¬«ÝôPéi"i´Ó½ëˆ„+½º‘ý.DïDc*©à¶ïÂçàõN^/ø^ -—óÆõ Î\o„r×ûëxKO(γ[F ‰-“›£&›nyUõõSÐ̇:jä¶~|„dä48xBªßȆPg˜¡^§e\ô6o¢XØǜñ„®o*Öt1"ͦ‡ð}šT-1šñóŒë &8—Ü¥ØP鮿¸Ëӱ̓.K–Ø0¦êLÛ‹B¼È„úç¸Ùa<>X‹At’Q.¦ØyÄeuŒ·×^w#›v˜ô¦LÚ!l¶Ùì4k$‘>ÈŽ5Æ7XƒíP&ÌÿÏšP…ƒ?D±%DœÂÐ_ëèÒq*t ´ê:†È™±£FVÊsjXw¯Þ¨¤¾íÞÛ}¨p„¾™’ÅÄʇÊ×jp0²Õj¾ƒø.;>çÛrÕ¹k<
ö—Ë}óBpá,„E-k«ÓœŸ¾lÅ!cì/SplöÍwÝ!\0_µO§y¦º}OÞ4Dh -‘ÓS±,QÜ‹Õ»©#š¸¯è0Ê>Vò¡âF´{RtõŸUúZu•u|¸ä1ÞÃ1Þ=>}lIY¯Ò$ÜÃW×øèaiûPø– Àì]è2ˆ&ÆÝŸ-HŸZº¡rð«4à—!÷ˆMߢé¼Ú®CS÷=§´yÖ¥òŸjc7-F¿6$þV
zU}'6д˜jã ¡®-®ç7µK©ízÖ&6Ûí„„Õ.¾õ -‚‚¯–E¢ÓÌ(´ŽLÃebI¶¸å1÷Qôê¯./–«ï|ÏÔ¿üzÉ›ûî/€²#³ÿ®v̉¿:Ë×endstream +xÚËrã6òî¯Ðm媂7ˆãdÆ›ujÇ™ÔV%9Ðm³F"‘²ã¿ßn<(€¢¤Ùš”f£Ñèw‹Í(üØLi¢-·3c%Q”©ÙrsAg°öÃ0‹´H¡¾¿»ø˜Yb5׳»‡WAhQ°ÙÝê·ùa†\ +:ÿùæã‡Ë—…•ó÷Ÿ?_Ý|¼þ/¼+ +@ + ÀÕ‡úqñP¯« ´Z£„£ýrí—êíNiHÁ©ãìÎâÂpˆQh¹dcŒÏBËáj¶ðââUú¹Ýöˆ¹ õq„ø×aô6±EÎ3`ÄXêXaánÁÎhΉ`Æ~¾sP™¢˜ÖöÅ€q‘¢t‚˜‘Æ,‡ñ +°ï6šì +`1»IvÁ£iG¤Kp?~õ®—-õªŽ‘krôxïnPY¶[‡ÅŠæ©”Å#ûÉÅL‡™bH8@¢ מÌJR¨˜Ø¦%î“ÅŒVOF²èVu6Rž&q€š 1‹£”!\)“ùKWMÞœB +4µÇ2ﯴÚÈD:!yó×Åì„ÄÉh#qŒR–Õ¿à½3+öŸ¯ª‡„ìÝTÎK)¡†E*¿«úåwhÌ Ò;¥FYåá¨0`ðØѧ…!…:.”†/g
VZŒÈ$A@F{š¸j‚º<c¿j!/ËÈ;* ÖH>Y,ÉBºF¥±‰pÃg.‚§™Á=r±¿z\p*Ï£ûƒ‰WÏTA +n‹ƒ«Ìˆ6cˆ¡…nBcñbØ'†äLl¥ ôF§;y‹Ñ1`GÙíq* ·‹4¿Öïqf||Oð·+?rÖžibƒ3:Í ™‰Ñ`ò…gÛÇœ8®ö‹ÎÈ¢ûZ]·LFÓµj«@HÓö‘)ŒHmF™CõWÝõÇNr¨=§p Ô …‹PNẳÖw_©ËÔrbìiÂÌ!]¹úP=‰hFXZÌs8k9h›¯gؘÄÙÂÈ×'lîëÝÂÃè›A`r3nÊ~ùT…ÊCPðä}µ É®õUž-ÈÉÂ_¹V„2eóÏM>ñƒÞ‹Â$‡ñyÁÀI•!p2b¯Ç†*,9¤XÞÁ†Ì¹Œç ç]×.í„7ORŒ Š¤"„³Xš‹˜{j]žWð}»IÌ¡p*¨• &G²¬Ø"k¬KPö4⛬Ž“^C)÷ Èɤ8ÃBH´0{ug04É`h4SI‰fê¨.³2«£¬¨Ë)Ôq] œ.?Ÿuž±4žÒe9‘¶8CWš +åœ5 |vD×mÕL–ëb€ëjZ. +÷¹à–3”möP£”{4Ñ{¯™H„«ºº‘ýG !HÞ‘žTV,Àmß…ÏÁá½]p»” +{æv¨·¡Üíþ:Þ<Ñ`7On&¶ÌÜ?Xj¬$g[^5ûÒ)(æ}rÝ>>Brœ œ Õg’…ê"”cÂÛ´ˆiNôh +
Þ›šŒ¬o*ÓD„‡GÈ+,QÊêü¾A“»R†=sšmÔß²¸‚"XÍò]qW§CÒƒ! +½ùBpHá,R
n«Óü„öH€à–ƒÉf +ŽÍ¾YB„‹ã¡€€ë&¼`lØ÷¨|@Lv·`£–º)ÄZÏÕ²F%©Vï¦ú‘ ì+ú‘r]ùà q#Ú‹!)z˜ö‹ÏAÚK6ßúqé]6Šƒ$⯟> ¥läÒ,FÄW×)ÙÃÒö¾ò=4@qܻЖ, ·{|Š!}öhUhŸÊ$KPy– C»ÄU7,x9µCK¦0¤Þ7©ònÛû/|nŽí·2ÛP)°*iní[·¦ÅTß u}t=¿i]FMíÐä.bwÞNXOX‚bЗµÛVÒ®®îõ8 endobj -2818 0 obj << +2832 0 obj << /Type /Page -/Contents 2819 0 R -/Resources 2817 0 R +/Contents 2833 0 R +/Resources 2831 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2793 0 R +/Parent 2822 0 R >> endobj -2820 0 obj << -/D [2818 0 R /XYZ 85.0394 794.5015 null] +2834 0 obj << +/D [2832 0 R /XYZ 56.6929 794.5015 null] >> endobj 954 0 obj << -/D [2818 0 R /XYZ 85.0394 769.5949 null] +/D [2832 0 R /XYZ 56.6929 769.5949 null] >> endobj 1391 0 obj << -/D [2818 0 R /XYZ 85.0394 748.1842 null] +/D [2832 0 R /XYZ 56.6929 748.1842 null] >> endobj -2821 0 obj << -/D [2818 0 R /XYZ 85.0394 713.2192 null] +2835 0 obj << +/D [2832 0 R /XYZ 56.6929 713.2192 null] >> endobj -2822 0 obj << -/D [2818 0 R /XYZ 85.0394 649.2356 null] +2836 0 obj << +/D [2832 0 R /XYZ 56.6929 649.2356 null] >> endobj -2823 0 obj << -/D [2818 0 R /XYZ 85.0394 579.1835 null] +2837 0 obj << +/D [2832 0 R /XYZ 56.6929 579.1835 null] >> endobj -2824 0 obj << -/D [2818 0 R /XYZ 85.0394 398.1506 null] +2838 0 obj << +/D [2832 0 R /XYZ 56.6929 398.1506 null] >> endobj -2817 0 obj << +2831 0 obj << /Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2827 0 obj << -/Length 2957 +2841 0 obj << +/Length 3188 /Filter /FlateDecode >> stream -xÚåZ_sÛ¸÷§Ð[噀hŸ|±s“k㤶ÓéM’Z¤l6"é©8ΧDÉéu¦Ó¦ãñX,Àbw» ٌ›IE”áf¦MB$er¶¬NèìÆ~>ažg˜C®ŸnN~|)Ò™!Fq5»Y
d¥„¦)›Ýäïç„ir -"èüêòüÅé‚'©Iægoß^\ž¿ú;ô%&à tþúìòÝÙ_ööÔðùÙÏקo~9¹¸‰Ë.™Qa×òÛÉût–ÃÊ9¡D˜TΡC 3†Ïª“D -"!e}r}ò×(p0êT£„Å'tÀÙŒ1b¤ä#%HC”àÂ)áÅ›×°µs·x€”Fg® §T;Î3Üüºl;l5+ü]6U•Õy‹½vûðÐlº"Çîí“—Ì’™¤„R™ÂVò¦Î—ósM¡=Ó2«½ÄÂOTuœÃýnNÓù¶®ËúnjNšžhó¯ÌùXv÷ÍÖo7Ûœ²t~·Šºk‰}v¶Ž-ep -ÌD{M½Øn/0®Ÿ&µ2VJ.þ¸gNŒhÆÔL¥ŒHqèô‘g1`rgŸ˜ ûLNźÉòÝ9
'R¦ÉÑ9ÏÞœ#U
cFæ¼Â9½ê”ò»í&ëÊÆ¥¥¬ýƒ‚°ñµ©Ôø¤vÀ˜5ìõ¸Žè'pôãK•¸FÒD0o$vuÈ4É
IÓhnï'ÄHb´VÁ¼×YÛNˆ’¤JÊoó¹,§#ˆ± ™>~ÜÕ%gœ0FÙqeF®}mŽâ*&cuϾ»÷g|W~^lõxøYJT*ø3‡<à:rÈyµ)Úû©SÖ$åTW§lÑOëãÚŒ\ûêÜ •‚Pµ£Îëå}‘oƒ;¥¹V••uWÔY½ô„U³ù¦ S -ÄDJY:ÖèU¯ÑƒgÝ®³Ï{æ²rˆØT;UYÛYm±ùmÌ=3Hk -«añ+HR(Ã6pÛ*[ü :esE‰sÿLƒ¿Û¶˜J(`Ë\Ç -XÍ(nij«w0¦¡2”gÛ®©`wK°ÂXiZM-b\’QCQ1*y³ Õ‘¸ŽJÝÜcU¡2ÄNóÛÖÛeÂjÖáøÓKÀš¢]þ"¯Û¶˜*x!Š‰adr¢£
Bc³œ£jí¼£zêk™8]5ó n‹ÁåšÍ„ ˆ -2[·Ï~B¹½Ÿ™h©K,åÖô…kH܃÷"·qGÊŸê¬*—Ø+%ز1åºðÂ>pžœ÷|éüÝCÀ‡ƒoð«²h-Ó~8˜°ç½X@÷cõ±`'¯šÞý)$ óuKlÀ8¢ …†T; -¢C®Ã ¹ì.lè‚ûv ¢M*¾§¢Œ'PFIq\‘k_Ÿ;E™!4Qj¬Ð€¤4ñH -ˆ¤ÐöH --4h @# )4½KX¶I‡¼ç 1FRÆXLÒÁg“DñÃåèBy(²à¡È’Ù„"G¡Ž‹¨ñeˆ:^t…\ˆ:ž†€:v8€‰¥Ô‘VÞAzÿi*Úîx »W\-©à8hAaS¢´Ð×}óXøjÆQBº¯c½¢}º¿uÓydøUUä%‹L–¶ƒL–t뇢H‡K¶aÏÝÏw»íƳ¸8Dt>’†Å¶\ÖKœÕÞŒNb¤¿/þëÀ²*Žà ¦ÇAÛÙÕ–Š8ˆi”DQžu}9ÔX&â mßzšÃA7ï$Ø0šþø<™Ç=;øšÞ=‚Z¢ˆL%Ÿ,éÔ -Ÿa„QùÌíúë0ŠE.»Õ¦(¾ÂB¥“àñ¿¿xËŽ*µÇ²=NcÙH×Ûö¡p9œóÖY[‹gÂð›áOo¾ÐÁEû¾ë ÕM?„Ò‚ –¥õ‘ÂÕ0\b0`<$»uÐëZlö]ä°ÅuˆsÒû›oWÞ¢m¢zçɯ$¦áêÕ*Ë‹ñHÖÏŽºÙT‰mµ”{)OS‰cT–àA«ø9Õ!ÑÇ#h-³mëvÉCqÕâ€iøE Æ?ší¦v;‚Nxµc뼨[ÏØ>[çAJõrL¼÷ëÅøÅM_
oêwãK¹®+ª‡®
%Ûz=~§ˆg¶‚ý…ªî¾—ÙG*DŸ}-êƒ7Nö¶<eÉ3o©†\GÂLàˆŸ=2cÇÿ>‚LxuT¥ý»ª=N¿«)õ¢În²¤1‚I4\ fØíɽ1bŽ„ìÊe¸0^7ýRJ/xs0Ò€>ÃÌÔ…"1^„}à $ -Å` ú÷ü¶Êþ%€¥ô€e48ˆÚƒ…=Æe‡Ô€€µÜÓ» JØü
7¥]÷B¤ -Dˆ¡ir\Á‘k_ÃcÑ6oôXÅ×NÅÜ$½‘r#Ñ…L¸5Bo2@&XÕ‡6¶ßG#/cŒŒÅ9ƒsâf÷šÓ'QzDéa… ±%FN[¯¡Q`åfi±†¶½wh±9N•¡&í¥’?=Hþ4Bü†ŒR=a´¦Úsxçħ'ðNÊŽéš¿wÈ‚ãy`|råoå]öyе&€Ïdn¦Ã˜Ü+˦+WOÿ__ÓdŸ°íªr:_êòªh‹ð±Øå››W/õ·EÛfwáÌ÷?9™þÎÄ–M¿ÄäW4~UùoàÙÀ -u%ÀÒomvÖd÷ÞÒ9°½xËæHzñ¥sÕ&R®ñÛCìüÍÝÆâ;xw-NÅÔœ¥jßüýw¥ûŠø'vrѾendstream +xÚÝZÝ“Û¶¿¿B“éŒu3 +aGÖW÷WrzOõ«!(‘E*‹Ó€b>á<Ê•ŠGJPy”ˆXh%|õÝKøöEbOilJˆ2!%©‹t²®»ž¨vI×E»ÙMÙÑ]·ßnÛ]_•t;43sof®XĘÊ` œy×”‹Àúq¤H
Ó¢hÌŒ•Y¨ª·†¾î®³é¾iêæ!´&“Q,ÓüßYóP÷«voÄ-v×<›>ì7UÓw¾;™ Ç–q8‡ YJ:Ýï4/0®ƒZ«Œf®>?1'Ð’cM2¥ a0L3ŸKŸ¾Ìà¸p£EY~h›ŠôH]¦Q3«‡i4gœGYæ4ú60Šò4Mì ®‹®L#ÀÈ¥þÕiÞ×Õ!´åèsÄôî]`ðÝ\ÄÖêm³¬ö»¢¯ÛæXõBÀÁÆ0ÝEÝ;®Så¬J€ˆœñd¬ý›¬AÄpþtÑZÖÔaU¯‘äù´_™±®Ú½¯vD×]ƒÇ oVõ5Ÿvdœ1x/W*ã´A@‹M&H“)Þ/ûšˆŽFqÍátN}ÅzÝfMu˜á¾»€/e<Š¹;¶v«õL´tEWi +²õîÁéÉfi$•ŒÍ<Áµèh½‚6’,m9”[mšfgàT©R»x×ïLt™Ì$ƒX‘Cl6ꥤÒm«Eýc1ººàéTËÊ¥ƒ„á +nD\ì·}û°+¶«zAOô4úáCÕÐÚ3ãå˜ô׌ͰЩFÄjºÔÌíï¤
'JŸ)
aÇóHR€àƒ1EÈé_VU +i%LZ?Ò6T@ÖSî Šk™pÓ˜A§BŠa}{ÂÈx¨×k›‘u[”$›ÓБdؼrÙÃc +ÃJå0UG|¤x ÑW8sAG‹AaÂÈ`…¬Á¾ÂDaÀ‚f¾êW½? +›ÀÚIPKÚCïÛ£%ÊjYì×FIx`ŸlLÕñÕÓÐ b4°›%Œ9ÝèÃzàÙßéÚ?n
˦è༾ ›¥ÎÀH}⽕óOÃ?¾x|fö2ÚóOL±Wm_©a¾+?W½ötºjSÏíºm|tØî›àI8y” 4$ˆ–æ!C»¯¬¯»6`epÚqž +¿ë"`ש8úÔ¢'1¡?Í 3I~Àlßž‰ÁÒ&KÇÔŽœæ{óºiç3Ó·ڴþŒ£ï¡¬=ÐvÌ2,ðÜsX^8¬4 ñ™]k +×](†Œ>H` :Úž¶¥U†½èfÛ0HP,OýOP€ûÕy «XkèQý˜‚ÉDX®gfæ-ih¡±Ô&\Ú¥I¸æd³A<õ‚8Ð
]«_á ÎO槯´ØØJAƒGù¤¬àÝMmÃÌ!üõ(•Q*FØ9(/h%“Â}Jþ=±õZpèÓºÃH›b +S©ÿf·Å\µ9 ³u†‘ÙHŸÏ«~aâ5½€€bãþî+¢µ®5Em7fÃ7¶ +Òd×QÔñÂ<D”拾ÝÙH¤!ðB÷ú‰Ôƒh0ŒÿSÒ +íæGÙ¥n´*þwløráíÄ”®ðëëM îs-²ÿpæþï÷ÿõpøk%ö^³,>Ó7gBaÎí¦P\žå ²D ¿AÈ!Åwa÷ÝæžþG7Öî€ßÑñ«æi7ÖýßñT
ÿœ¬w#endstream endobj -2826 0 obj << +2840 0 obj << /Type /Page -/Contents 2827 0 R -/Resources 2825 0 R +/Contents 2841 0 R +/Resources 2839 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2830 0 R +/Parent 2822 0 R >> endobj -2828 0 obj << -/D [2826 0 R /XYZ 56.6929 794.5015 null] +2842 0 obj << +/D [2840 0 R /XYZ 85.0394 794.5015 null] >> endobj -2829 0 obj << -/D [2826 0 R /XYZ 56.6929 751.6872 null] +2843 0 obj << +/D [2840 0 R /XYZ 85.0394 752.1234 null] >> endobj -2825 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F49 1308 0 R /F64 1435 0 R /F42 1288 0 R >> +2839 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F49 1308 0 R /F64 1435 0 R /F54 1383 0 R /F42 1288 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2833 0 obj << -/Length 3164 +2846 0 obj << +/Length 3283 /Filter /FlateDecode >> stream -xÚÕ]“Û¶ñý~…Þ¢›‰`|ƒœ>9¾sz™æÆñ¹mf\?P"uÇ„"‘´}üø.>Š×éCÇã9\`û½†d‘„YÊ*åH`"›Ý^<·﯈ƒYy UõÝ»«¯Y²HQ*©\¼ÛF{%' Y¼Ëß/_¾ys{s÷óõŠ -¼¼E×+ñòÇ—÷ù7;÷æ:¥Ë—ßß>ÀOž¤€ˆÒp/ßÞß¼ºþðÛwœ˜d‚™¦å·«÷ð"ʸˆ¥‰X|‚‘4¥‹Ý ΘŸ©®®~ -F_ÍÒ)p‘ A¹\¬G‰„=&…pð•)’Œ²À(žN1ÊCiFŠMSoËÇÓãF!&‹xÏæ -œ -bÙषu¶Öþµlöo^¶ÇIà -;†<‚³Ò¡ŠhÙüÚ/Yg›_?YÛÍí̦ÙíA˜ë²*»çkBȼ#c„mÞìŒO5?2çä$„\*ÄÐŒ³ªuº²vªvïl÷SÙ=5½·sgžÎô»¢îN”
NQ¹MÜáôÐÎY´ß¥Îƒ‰k!841db ø¡ÅÐ÷“߈7ÚXzH8 -Z SN¥ôÁJëƒÑ
Ð7öÒJ‚¦ráVuŽÄlÊí'HJæ!u`©‹jÊԫvYϽâ˜! -¼1N<e{}ævš9˜°ä«˜cM¥àŸ¡^,VÇÏ0Žê£`/ð³¾Z$ü‚¯Ž¡Îûê -i -›6BX¶vý¡6Ýíæm·ÁSŒ¨ö…6p´Îœ•
°ÆÉz^ -E.˜é„Ýsû)s±IW*UÑùP¥-loÊœs¶ÍuÆ#Ò¶AÍض‡²Uݱí9ü‘mŸ0mÛ1Ö¶iʽSfÇò&Ëðµý®lA‚æœ,ß:3Ö ÁŒõZkÆv»ÈŒõD0cýÛ±^Ó8\ÆŒÍÈ›ìY›6Ý5†Y0aÌ Ã”óQìhÂ0v&ü+]{·üS©¾^½v‹,ÑUewe:<DE. -mø[vf‡dÙöë¼ÙeemÒxEâT<Fp¢Oz©Vãszè”Ä°÷M.‚³Éø¢6o -ׄçxà0’áBE—&“9¸R¡Ó—Ù«¥bãPÌXÂÿDó‰äËŠ×{䯟ûñý3…"Ãâ9¤h„uÈE - Y"é -Q‰¿ìJPž½dáT¥³ì@#~Å ÂP5boè‹IÿjÃü²o9(cþèzèR;‹×N8g
c¾lÀgnÝe L„1:‘>n_Aˆ¤*’ˆnsCh<è„6jÍlÍë¶-6+û +xÚå]sã¶ñÝ¿Âo¥gN¾ALž.9_æÒæz9;f.÷@K̆"‘:Ÿ;ýñ] +PÐìýÛWß^-¸ÌÌ^¾{wýöÕ›¿Ã³¢ +(ÿþ‚asuù”0kùåöB*A”"ÍT7?öoç³,`”p¡ù8ð gDY«.²D.nïËöj!¨Í–Ív[Ô«ø°»byæ~Û—q€ Ý}Ñ¥‘ó{‡Ø`&Ñ(¡w±ïšÅªn[·D`>‰‘F!ì?›ÚEÔÍCW6ußá\ëÒºMÄ$‡˜¬&’Q‹˜¶EYwð?³¤4$çT#à@ÉeÖ﹨ÚæÄîÕåBHMT®€ÏŒ«`à±xN,¸Ö¸?"á×êý󲩡”oöÝj¥aÙªyŒ¬žêb[.ãü«·7$Ž~¡ŠÞ8DöçòÕÎd?=¬Š_¾kªrYºÖÅàC\-’i²—«mY/ÂŽèx'eÛ튮ÙEïÖ.Ò[/]œú¡¨÷EÇë·m"T|Z9`}Õ ™MŒƒÃ˜¾4TÉóü„2G Å*è²´söœ üê¦+×OQîZåÎH.ªZÔ¢!JnIž›¤EfÐ(bIÚ³¬Š¶A#ɵR_ŠæSéçˆÄz>~<æ%gœ0FÙyföPSnŽì‚ƒ¤–É1;ß»ÖyÛðr}û×Û7¯F‰»¶-6Þ'Œ!j<É)ák£JŸþê´ð{(þ®XºãuÁß+ñ̲3]uÄ$Q̈ñ²7®köߺÝ'0…‘ÙŸÚdwûͦ¬7ñ±rŸÚQððKIt2’™,3'Bä¸bjêv…!ÜÚ•eW¯–ˆ;1äØ
B”<iàiQqðwTÊgD5€:#ªåWümïvOU³™ÙŠ‚8ÇXÒû
zq&GQ†X)’¡þc'F‰ +:ä|ðÁ“k¿ž[ÍÇN·L2'%kˆå4¹Î˜z¶óÌ¡Lä¿‹9˜EZðN†e‘'Ó +±ÄyÂÊÍÄwRp#L<³r5]ú(²Z"<Zû½«šÂ[°4[å0•.PðÖÏŸãèS¤w§ñcÕî1NùĤ}ÇwÁ¥Á`ÕÄ_Èâ ú„Ãçî3$ÆÑA Žáªm|€€Ž4*·êÈêÊõÕ‚Ù…?ÅÑ}ñÉù‘ Ö¾ñê±àPUÆzÌC¤ßuÑv>ˆß{—çGEüx½¯ª9b
1½Õìânf´š#z-}¼wuOfJꔘ¸¦Î*ôþø¶Þoï}
î3p:~tç–Dd&¹9âNŠ.ŸšruœMÕ.E¢bÜg(~jw·mV¥É2)†YnSšê)›d©ø%yÒ¼d2¥Rœ7¯!Ôióê¡Ð¼ö»ßȾ ¤—àÄÎ/ÝCM×Ûƒ¬Þp5^üÕ~û +f6¥÷Wa.ò-d{!0{ï[~ +þ[7rŽôõËî˜ÉÝ_n¯}âüWÚ“;·„öLÜ +KÁuB}(GY<LÄ&ÏBH™Ýö@€vߎ+ЦÞ4‹9§ƒÄˆ•°¥›ˆm|ò¨}Hçàm³ƒ½ä‚Ì°êìçßR_A(/ë6ꥣ¦z›Á-I÷EÚµì[z%“»‡ªæ/ÏΈþ1‚üî;º‡;ÈÆDžóy%:¢Éó;%€40’§.¢×Ÿ;W¯R>r³xhvxHú·pÛ'Öü‘}R+‘1K§ŽïO¹ðo 0“endstream endobj -2832 0 obj << +2845 0 obj << /Type /Page -/Contents 2833 0 R -/Resources 2831 0 R +/Contents 2846 0 R +/Resources 2844 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2830 0 R +/Parent 2822 0 R >> endobj -2834 0 obj << -/D [2832 0 R /XYZ 85.0394 794.5015 null] +2847 0 obj << +/D [2845 0 R /XYZ 56.6929 794.5015 null] >> endobj -2831 0 obj << -/Font << /F38 1082 0 R /F49 1308 0 R /F22 997 0 R /F21 994 0 R /F14 1020 0 R /F42 1288 0 R /F64 1435 0 R /F40 1218 0 R >> +2844 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F49 1308 0 R /F64 1435 0 R /F14 1020 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2837 0 obj << -/Length 3586 +2850 0 obj << +/Length 3580 /Filter /FlateDecode >> stream -xÚÝZmoã6þž_¨Äªø¦—öSÚM{éµé^“{ÃvSlÅjK®%'ëÞÝ¿ÎP¢d&Ýâ¾u¬¨áˆä‡3Ï-Îcøç&‰’\æçi®#s¾ØžÅç+èûúL0ÏÜ1Í}®/îÏ>ýJeçy”'29¿ôÆÊ¢8ËÄùýòÝì:itCijnß|y1—:ËõìêíÛëÛ77ÿ€wpÄñ컫ۿ^}K´·¹œ]}}}wñþþ›³ëû~9þ’E¬p-?Ÿ½{Ÿ/aåߜőÊ3sþ/q$ò\žoÏ´Q‘ÑJ9Êæìîì/ý€^¯ý4¤m²ÈH€2t¤´|AQ"J… -o©2“‘’Ê€|¸H\Ñ’Ù|‰”Š²4I™«ªiIJX¬i’§ª|F;ûÒ2›Ýƒ„0Èù\™8ŠSeUåÆHûý†TÆ÷Ðtkjµ]ÑUÿH懲ʺ€VQ3iy„EWz¹ÿóõ?qóº\5]Utþ‡Ñ‰…³%y¥©Ñ¯ÛšÏõ²±õ\½µ-ËMÙ•¤ÔD{Ÿ$Y$µ¬TX!j?°GN‚RNùï#©H‰4a»VQŽÇ˜˜ÞŸØžG™HÄëÊè¹Nµ1²ë(ÍS=VÇÒÄ\)Ø?xÈ|¶ªžÊš(Á½ÃÐ5-4[úÔ#$·åþ©Ü_¤ÍÏè|öclâûuÕR÷²)¹U7™¥ -Ö!tw凎[ë¢#Æçæ°qÓÚ]Vu±¯Ða÷¼Û‹’P±ÐÚ:v2‰!ÀG¨©€‚ªÓš·ºqDðý -)Æ8ˆ) -FŠb‚5$ßßׄ -zWGC’ƒ«£Ô¼‰Nr32;Z¾èóÏ!>UEÀwå¶_O*ø‚K4Ö„ÜN;/ûÐ;ÔOY9»ï}(x¼Ú¥x/ÃþŠ_9Ó+'€™,¬V¨irïðøS“jH¶ù¦,6%ð@ª~^‹wBŠX-?-6+Ðy·Þ5‡¸ …3Ôñðä1’úS×m¹P»b_°G´ë%M²¸cdÙAçûЉK$9}ˆàiêÞ[_Ô·BùY -Wâwä ja)/ÕÎz¦C›&"ÀdεÌðõAÄ0‰¸\¹¦â%‚áƶy*éBG"gonï$bo¬ö¥+ºÒÿxÁyDK>º¡y(1Îw€û!¤ÓøyØCKm[´„¡šzÕÌ{ä¹^ŒòV "²²Á¥>4Öö`+‰Ð[0Õ“E±4!føÖÑoaPE]‹uQÕ-&vYÏô¶k†Z
Òkz²ÔÚÅÞ¾K»œy*(l‹)CLr§9JEƒ
•…%uŸªÝûÖ‚• -Å––È(×*\3ëKà}r=´1aBmP5[VínS9/íХؼ–Œ9 -—ÉÒäÖbvSS_ Aj{à“Š¶tŸFÈ=vŒuÜ<ª3${[YŠJÐÀŽ~—;kŒêX¦‰÷õOŸý}µšë‚M+ä¶q,¹1>¾×'0”æûÐŽÖÛýÿóÍo§ót„q{ -á;‘Yï6m.†cñÁ÷|‘æ!Ûe#!vôà°—š˜³x$VÌÌ&nGq‡Ý®ÁòÇp¹`×2ÚŒm . -µ¶ ³é˜Vñšœš–Kyj/õ˜Öy¾ù²¡ÚïŽ>&9ö4Ñѳ§bs`2;é¤'1Wm¨ê©³(ЂÕt}ìËK£ïXé°r2A˜ôîOWsa/ ÄPrW$䀷yÄÇ
h<|a§™Ã
Ûâè -íy¤D®ÆZFO¡¥ »lôw£2˜ŠRüÙ - ȸÏQZÿæÊÊШÛÈrC…e Av_á¨Å†™«mÿ]C¬Ånw!fäÍ0šo͹-º×Ôò ½µ·¸q
ܲPåö `n¢Ì†š«H›þ'xæÃÅ{‹÷†Š÷0ßY’…í@[]A”òƒ;@-ÅÆœëÙl]~(–àB·Åæ’3¥ýhäõqg€$ÄNÿšÂ™*žªnèÝ-U+×r‚§Ûñ•µ» -#ú¼j +xÚÕZYsãÆ~ׯЛ©*Æ`œ'yW¶eÇÊf¥$NÙ[,‰È‚ +¬i"m”f‚]S¬ˆ^—ØYÖU·¬žÅQ¦@?èáUÛ<–»=e¿.»Ž +/•‚«¤-Dd“Dº5ªfߢʈEN?ëÃ&o–´B^äë’ÆQÞ_R³jŠj•ï‰[è?«ÕššŸÊ玗£%¨³:ì¨ÛìëgΛÈpJ›çüįq,›ª[—Å”O +‡4{¬½{ÐÿÓꛎ/ÚšÑEÛt±lºr¥¶ù.ß„®TªÈÈÌ;Á®D…kîÁólŠ8æØu4uï®&rúÁ³À¥¦Àúݺâ…*&æ¿Päó°Ý¶;¼Pº +ÏËä.6%x +‡$‹Äd>fÕÔ ÓåÈQÍı$ÑÖ›žµ5³Å»±²±îO3KVlÉÊ[²$Kv§•2…ð“É©åõön·p’úÞ_þDsÇñsõŠþ5Ø™¨ªk^°~hw (*5¨©*è\/Ã-w ûmÓñ´sÐø\—×{«˜'ïƒæŽž·{N5…Ö¹³}3‰3Bˆ.2–•Œ{ËagLdùbñ˜×¦!u±?Žˆ«ŽîWï€V”¦Æ«½¨@Y `fÞ²ÐsRAØôöûË¥@‡;ÞËÀ–BŠHg&áïkx`[¥¢8Í,SmÀ›:mÑ€«”°j*etvìÐç`<ññÎZE)â:Z2yÀ…©F»q1Å¿!/m4ÜÛ¶WŠBBîÚ†~ŸÖ%¹zì<·ðùãcIR ·Âv¿l|Ø7*^·'c‡€M¢À‰–)IX9óü½ò‡¼2V^^)ÓÞ¿éEsØ|tqÌ&³âX^®š×L\múçZ"Í·Û± ט«µº º†ZeãXe µôÌM]‡L²OYg(ªsò‚¢ZéÄø(6…hœ%^eªŽ¶Éi‹n¿ã@—j‡±"ßç4R~öÔQh´îqj]~Îp¡›¼Fph¹~åõóÖ +\fr¨Cʪ"‹™²Oô–*¶‹;¤-sTò÷kŽÎ +wœÝ4¬fDYÓ‚ƒÜY;ÜAN‡,L˜¡eHj‰ïþI©éé1 kðú¤û4êu†›ð¾BëH«>ð¼Oú-?C–Ò¯>ÏgÒçÈ]ç+¿Lµ÷°{?J:££jKÅI&Îuj!ŸÏt¸@ÄDË1•+Žh(õTÎÁîó}7ßUY 7trÛžêxß©DÑýÅ™™nü„fàPÐÀ
xËr÷ˆa˵'¾s‘†¡Yˆ +ð’{ +ê%þ)‹0êX§”¶oúï#$ñ_½ù> ItÏ3ó~ˆ±ÓÈ +¯†ØwRÇT/ëqOEzÜn/–&Ž¿,·ŽôYeàœ …8¹OuÌÀ,Š¨(vÊÀc@Å_Çf¤´š„…”ë2 ê}v=ª#Á3œ^—xs8Š‡ç¡³ë÷ «8<¬é¹â¹É7ÕŠfÛ‚"´ž‚럿}ï+ÀQ–β½¡Ô +
ÈÕ»ðå6Ê“Hö¹¬+Á6ã"ɱ 4±YŸc¼zªI–NÍ*oÂ_ðÊ”W´âùˆ¥ê†jg$È•Ël‡+³øò•³±ºnŸŽ;!×›ì:N( +,Aàñõ=Ì\¡œ†LRñÚ‰AÚ™öÒ^ç…7ê¾&ê +õª¡7ºJhͨn‚C¼pÆ„Ý{Š?¿¹Â (ƒµûæ@‘&¼ÓDž¢‘ŠžèY"ÈS[a,Ñ•ÿýû<hL˜€>k¨£éatJw(4X‹ßÁø*ç׉‰Y
Ÿ’ºAä:ñïðê6/fÄ|œ—
õŠªûä^ZXÿ"Cñ"Ëýƒh\©ù©4î +uøÊVƒÛ̲¼«ŠQ«¬ðL¹Ï¬Àï
endobj -2836 0 obj << +2849 0 obj << /Type /Page -/Contents 2837 0 R -/Resources 2835 0 R +/Contents 2850 0 R +/Resources 2848 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2830 0 R +/Parent 2822 0 R >> endobj -2838 0 obj << -/D [2836 0 R /XYZ 56.6929 794.5015 null] ->> endobj -2839 0 obj << -/D [2836 0 R /XYZ 56.6929 104.0524 null] +2851 0 obj << +/D [2849 0 R /XYZ 85.0394 794.5015 null] >> endobj -2835 0 obj << -/Font << /F38 1082 0 R /F49 1308 0 R /F22 997 0 R /F21 994 0 R /F64 1435 0 R /F54 1383 0 R /F42 1288 0 R >> +2848 0 obj << +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F64 1435 0 R /F49 1308 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2842 0 obj << -/Length 2763 +2854 0 obj << +/Length 2029 /Filter /FlateDecode >> stream -xÚ¥Y_sÜ6÷§Ø™{èºÍ2ü/2÷ä:nëNãøbçæfš>È»²é®ä®´vüí¤V’µI:7žñR ‚ -û×ÑïðÙ -ŽöëgÊ;3{‚΄÷r¶9ÒF1£•J”õÑÕÑ:†½ÙðꔎŒrÌ8™M(IŠ™Ì#Z2žY%U8ËÕÙ)ãä·«÷tt){Gç3˜…Í
Ë·ÕjÉ–uuû‰nàŸxE¯ãÄ'îŠ -ç\o®Ê7Åj’8É -8õ‘4ï‰$dœƒzÉ?ž_¼¥}<ÉjSVeÓnó¶ÞéCq[l…›Õ² Ò»¼Úåë‰ë˜´ÖFöцª\hÃq‘Ÿ-”eBkG.÷ñú—÷¾®Åóª-¶UÑ’$WÏM[lz8«¦Þ¶ån³ßW3¥Œ|´`ÒÓvè®Q?¾¿ -–pu<@g²)†‹´v¡‚s¦‰|LJðL(e&ùö—ˤs>JðIÊlï%4‚?q.ïv`¥²®ˆˆ”u1©ðÄ1êÛ“ó>WõCS6cZ -|SÏÀ-¸‹•€Aż½/p0¡nœên*IÜ$¸ŠâYÏ•&ö–œé,Á@¬ ”v;<q;O>šbû°L¶¡õš&wm¹.ÛçcpJÀà -9¿¾§sñžäb~ŸGbŽ¢Æ8„¯ÍlÑ©ÄjÊM¹Îq3iæŽÝ|·lwˆšW«8ý\µùg·õ„]„æÌi›Ž¼eS†Ô·‹&¯ÍüªÍòEÕ6që¾£ÖuSaô¼¬ˆz³Í—E3’ÂÄ:àŸŸÊö>i3+A’¨Bv8ó¨øM Áz]W Vz~ºÎw
r—qG\Lˆ„¦'-NtÒ†‡uSÇe×ø~'\Üå:1Ü5zâe½AÎQ®öy¤H›àiøÈ–»‡ˆ‘ÅêM7![ - -§K¯7 Á篿'Ú÷¯'_øᇉW^é·@•ã ¾¥ßuYn$ÛǪüü’Û¿¾‘ÙKü÷ýZÄí0ˆ0‘ÚÍ7»å=Ž<ºÿñ†äö>¯&vój\öœÚíZqÍ›%tâ^Ñ€ÚÞ“EãÄÞ©ÞÐëyEëêŒPÍhÕ+šLwÐÊŠ‘_ÄxBÚ/Òcž4žÓÏŸÅóh›r
<ÒüáôªC’÷¥–´fžËT5ö$‚ˆ^^â9ñ UöXÄ#‚ƉC"X
ÊšÈ{UÜæ»u»ˆx)Š³XÀʸœv ÝÊ(Ám½^×O!ÀÓÍ3ýR‡AkH_Â0ùH÷uV+2sÓ]<LÐOŒþƒÐ±˜q3â¢T)ÂÃì}Ý´4z*×kÝÄ7w18ÂÜ}QE¾5þòÿ˜]`œ¸Þ•é…<’òôľÛE%…þAFäÀú-ϦÍCÊŒ¹Lº‘Ñ=_rµžqiì؈ÒÅóù¾Œ(}4"’r|´Š#«8‚ÒŸîK}žå -4R¢ƒŽùæSçñ‚‰¬«ž§"¡†åÚ÷± çÒPafFú¡s>P”ÏÏQpëÐÞ/7‡ w(µß»\Mì®àNe¼é—JÖϨúx,Á+Wá¤@•’M„m©€E&.ÊÃ@Æø…w17ÂI ¥ÈXÆMö5õX®ÕØÎÀ“„u`ç]Ú&Ô–, ›¼]ÞGe‚˜³Â
•YVwSnβ³È¡0¢àæˆeñ(¢ÁѵP ¥ ŸÉéœËñ„d‘ì:$;JHÉw kð·%°& -é–$@C¸ø.îŸHõ°’"PÔTÆÖebˆÛæB6ÅØ,; -PN/xû"—2"ñL饃afÒŠ.ÅDli-¾Ç–”óŽv@RRta÷›DÝÊõ2á.íSFsš àšÆf`<Ž\_B’1|Iœ'$e¼‡$ŒQä#Y%(Áo„R¡”ñè<àL!vá@?÷ªknu¥D½Û.‹æsÌå}ìx‘ð¶™PTiÌb>Àoz“Å£ÚÇH&¬†C,Á«cº‚Êw¾õ#ÐP!H … %”Ý@iBÇ ¡R…Áù壦9*‰dãòš®‡Ë¸¸WÚM„S’m`ô¸êõÆ:Ýa'êË“Ûv_”OG–aðúZ\vpMwzŸUžê ÄêUª½SÕJä~mM%\;w«"Þy¼7´[ô÷@JÊÖ®»`t|±\£°Jø¸Ã DBì2„þŠftGÏ å©JQƒðõ¡¥+F˜éÓð -õ -à8º‰‹b¼B~UÓy|OE|Ø%AÆh˜pûVó³<˜m¸™î
BóØ(^JPeþgA#¢Ìß5 …‡&
Pïaj…¸vJ™Š™ªÛ¯¦g˜JSrÈkáο¿)_pÅœénu¸oœªnDf2d‰Ê =ËQt?DKõ:ÁeocK,…nHÙ¥ß~ˆÙ_ég\2òÃÿA9Ù9Ü¥´üò]¿¥x÷²G¡9ºæ]èPà8´¡ÌçÁMBÃÛç @ÉK˜”rJÁGh -dÐM¡H±¿›9Gq
ÄÑíS®‰,³zäЩmòRXl9•Ü2_ßÕ[8Ífº.„êúhû«/æC‘R›´ÛçTçÂÄžix<ÐNÏ drÝýéPó -Ú¬W±ÐȲýµr¿k¦úÁ}[¤æ^t+l¾^'<î·¿XÙÀ¸lR_6uÞ5²[Õ»PBàø¯Ü²ÈǦ>üBIŒ_k'¾(ñî#ÐÿýQxÿU\gL9'÷ß{NÏñÛI(Ô”p>ô¶lÿ«)ó,[\Êô Îð³ÏmQ’®ÈKèá¿A±Å¶)ñƒ’cEt£_jâov‡<endstream +xÚ¥X[Ûº~÷¯0Ðùœ˜Ë«DæmÏ®“ú4qÒØ)Z$yÐÚ´-YÚZÒnôÇwx“%[›œ¢X`M‡Ãá\¾ŠŒ1ü‘±ˆQ¬¨'Š#‰¯#<ÞÁÚÛñ<ÓÀ4írý¶Ý¼ar¬Ši<^m;²$ÂR’ñjó%š!"ÑäÛê÷›7‚w˜)0Lá +ì¬ÚCÆãB"AyfdHRE†MLàŽ˜ŽQœPÞš˜«!.c‘ºÊvÓ<«êËû‚W„Ž»B¯Žn¹®Ï¦´s6!ñ„Šþáï̹S*UTï5ŽŠô +G+·î7Ís·¶ZÎß:ÒúT9Úº9'DFº¨ó ‰NžZ_1¦»ÆmÜ®mytËM¥åáäb†’nÌHŠeÂÇŒÑhãÙºWbà‘$N<WV8‰:]ïÝ!O™~6ÁAÆ©ŒVpC2ž2N˜5RBP»?w¦€|(ë½UuZgk¸þÉÍnTo¥…'mN t¶v“Õßfÿ2zL½+ë,»ÑU˜ûXŠU‚$†ÿ0àº\/\Ëe.ú”æÙîU‚ÁbH¾¯X`7 +”ÿøévÛ›¯÷zýG»‡¸Ñ瘸‹Ž£1¤¨óŒõƒeFȃIOKÊQüøíÒ ‚Âl‘–ëÚ$ý !%ŒÊ¾MfEúëWàG›¬jgIdC–±p{3t¹bhçØw0MåÆ=6Ü(#ˆ0Fûáv¿X.gw“)£IÇ#9‰eò‚PHÝÖ¬›¢ªôzªêé'ˆ30:Í«ÒVh½©Ü°ö¤m~eTéº]¸ö +ÏY½/÷¦ÊŠ7d°×Ã=¢¡äù„UP*c*Bó£„RVðR?écšûÀqž³¦…)TÌ*Ýé*T‰&÷oÖ’rí½tœ$<8Ü´ålæöÞ¾[~øyŒ‹ÍÁݶ΅ÁçWn»Y˜š….Ìšì¬ÙÊ:H’:Ì.šðEÝƸ¨ßæ‹{·Qù›lYe,,÷Io}nko«÷iÑ€üK(+qðôpÖ‚A“êóöóê¯>ýÜŠó¢ÖÇBûF`yªj}ð^½+‹ª<ÖYs8ŸËãqpgPl•hûæú:lœ Ì9÷7h}6$qx§,,‰Ý² +¦ýž€Jà÷+¥É9N.»œ!û4yØßSQ>VYu…'йHà¡’CZÓd¨˜Ð– +F?ì}º"®$ô>-×H@‡5÷³åݧùGƒñÃL¿!‹C7¤p°¸A¨Qعͪ7·e؆2zÑ@¬0wbi¨ŽÂë iÌ’ø|²KPsœr“úŽPé#À]«`íà.w‹MåY}šBLs¨„{w/ÜÑœDûÔS¬ÐA`ÅE¿6WÙ!ËSsÐA'2jÖuJ¦¡ÚÆÚ.ŸŠ:ýîÆm“Ò/IãÂÎÛáEÇ@ñK„lñÞx"ZB§P“+tW@©¼¬´U†Û'‡¡>Óµ®.4 ´s;™›Â¬ +ú^[‰›îžÏ×Ñ’ñÒÌÜÓ̌ɞ´_qÙh²F’—Tˆ9‚ž:¼“üÓcê-pŠŒQÂEx3¹Üi™×`[æyùl‘f'÷ëp…o + ~™¯<“>À–[6çæªrâvÁýxø§…&$²êÚnu*(«û²ªÝè93Ÿ†ÌèÁïl<:ÂÚ^^®}¾áž|_^`¤îà-ç7¤ž”†¹U{×xÅaÿÐçA`l¨sÀm±ÿ¿?ž?ªòS¾ð±áB§‹¦)$Cs%ðì{
Ð>
-ŽºÉ?l¥ÕÇ*3‚ùòÂcÁ"xg_<Âæ-D¬ð_9~endstream endobj -2841 0 obj << +2853 0 obj << /Type /Page -/Contents 2842 0 R -/Resources 2840 0 R +/Contents 2854 0 R +/Resources 2852 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2830 0 R +/Parent 2863 0 R >> endobj -2843 0 obj << -/D [2841 0 R /XYZ 85.0394 794.5015 null] +2855 0 obj << +/D [2853 0 R /XYZ 56.6929 794.5015 null] >> endobj -2844 0 obj << -/D [2841 0 R /XYZ 85.0394 752.2635 null] +2856 0 obj << +/D [2853 0 R /XYZ 56.6929 627.6401 null] >> endobj -2845 0 obj << -/D [2841 0 R /XYZ 85.0394 690.7232 null] +2857 0 obj << +/D [2853 0 R /XYZ 56.6929 543.6838 null] +>> endobj +2858 0 obj << +/D [2853 0 R /XYZ 56.6929 478.6872 null] >> endobj 958 0 obj << -/D [2841 0 R /XYZ 85.0394 652.8084 null] +/D [2853 0 R /XYZ 56.6929 438.371 null] >> endobj -2846 0 obj << -/D [2841 0 R /XYZ 85.0394 620.2487 null] +2859 0 obj << +/D [2853 0 R /XYZ 56.6929 404.7566 null] >> endobj -2847 0 obj << -/D [2841 0 R /XYZ 85.0394 585.1376 null] +2860 0 obj << +/D [2853 0 R /XYZ 56.6929 368.5909 null] >> endobj -2848 0 obj << -/D [2841 0 R /XYZ 85.0394 520.6753 null] +2861 0 obj << +/D [2853 0 R /XYZ 56.6929 300.6725 null] >> endobj -2849 0 obj << -/D [2841 0 R /XYZ 85.0394 462.0998 null] +2862 0 obj << +/D [2853 0 R /XYZ 56.6929 238.6409 null] >> endobj -2840 0 obj << -/Font << /F38 1082 0 R /F54 1383 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R /F49 1308 0 R /F42 1288 0 R >> +2852 0 obj << +/Font << /F38 1082 0 R /F54 1383 0 R /F49 1308 0 R /F22 997 0 R /F21 994 0 R /F64 1435 0 R /F42 1288 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2852 0 obj << -/Length 1824 +2866 0 obj << +/Length 2469 /Filter /FlateDecode >> stream -xÚ¥XKsÛ6¾ëWh|)=
< ¢œÄIÖŽ“¸LÒh²ØòáŠT§ÍïR”ÍÔÉtt °XìØÝbs -?6W I7sm$Q”©ù¢šÑù¬=›±À÷Lñ˜ëÑÅìáS‘Î
1 OæË‘¬”Ð4eó‹ü]tLXJ¿xþð©’#fÌŒrPà¸^=yL¿8{Šœ{b¹ÖD3aëÑùùñÙ““7‡1WÄÆŠÒèôèì—£Ÿ‘v~hxtôìøµ6;¾;˨p^ü5{÷;çàóó%¤j¾… %Ì>¯fR ¢¤=¥œ½ž½ŽVýÖÉà1J¸HøDô8ŸŠž2$\xg/Vv}ÈÒÈÆ‚¦Q¶›è¨Û6H]4UÕÔHÜf7-R»)W¶¶ë¬ºUØ}™µ6N$RÛn]ÔW8^6ë ö´vz;¶L¹³ -Wœ=Afƒ„kÏØ\³ -O’³‘‹’¢OÃI®ë|;¶y<¬ÄŒ£÷‹¦^‚ùAÒ8XÂJ‡Û³ÈÀ{.ÓèÒº¯Ž6Í‘â¢à¾»(¸õ‰ë¬Î› -ÇÚ›CÆXô -±]b0tšö¡Š|G¡ƒõ,°÷×ÇMúëãÖ—èb…+½S0,êëMG&ã‰"Ê$_K ãÀ˜7¶EÉuÓ¡îvU\#i[t+áu«&X¾é0 -5 !ëUÑbÉÞgE™]–§.¿Ü·Êêµ7mg«RB0½¶Ñg¯LoŽNÏ>ÌvѽŸažšU×½—ÄpqRµmo1Ûl±Ú…o8Ã%„#–P;¸TXpƒ^Ï)÷’F‘4Q -ØÝf,0͵³t%PDÿöéEïÝ“Ü.³MÙÅ]¿‡’3üe³ÈÊUÓvßût?’ý—YPhï/Ì‘?žÔôi&äN öz“±Ú{öªuz¿jö…ª;Ûvãù}º¹›ÍtŸ+Ëóµm[;œÀ”‡×Í:Œ”Pâ{~úzO¼IÉ8÷z‘•WÍ’ òYº#_UÙ"®r5éŒk-¥ÑAòôtù‡/Ú²¼¹äòʼnåųã¦\²²|þâÛòãÁÿð!Dõk<H¾Ôl¯Ä'éyòè§y»}³=¿¾ýióò‡¾Àê[•+RO"EÖ_îû’!L”]6ï-ÒìD&ê%ô͘5Ñ œ“T˜¶EY¢ÜËT’‰Pó‘Š–H:ÜyoUà]JGþ–ášPø1˜0äÂ6–…‰ -à€¦VÅb…+ÕE³¾eí2Éío -¹À¢Øy$ø¸¡ÜMb’Tö ÓØ -ƒ·µ6}†„uû¦S"ù®úLÈ1D(Ý󸚳nÊv*®pÀîÀ8”ÐV¿+<‘ĤªO5W¬óÏ[¯Å$éY‡×¾¿ìØu`t
-IHÁSxìi¶_ŠîMš]ýš¬IˆJS}ÿKM’²á?™1Ì$Dº?CörÀ.V
â´ƒðtôø·ÌœËöO"7Èšõ¨í +xÚYKsÛF¾ëW°| T+Næ
`U9ȶìȉd%Ö¦\y ±Æƒ!@1òVþûvOÏ€
Yví˜éiÌôt÷×PL8üÄ$1Œ«TOâT3Ã…™Ìª#>¹ƒµ×GÂóLÓtÈõüæèÛW*™¤,µÒNnƒ½Æ“DLnæ¿Eg××çW//ÞO¥áÑ9;žÎ£Ë³«ýH´ëãTFg¯ÏßÁTêØ“HØñ7o¾}eô`•¦,Öžzù‚½x{õ +YÎozy‡w\¡°ýöŸÌájoŽ8Sib&[˜p&ÒTNª#m3Z©@)ÞýÔo8Xu¯ŽéȨ„™DÆ#J’bLI&eVI宲®ç3º°”^É™Ž•¿.jN›èf™§ÞãŒYËijÎóE¶)»é‡üadW›2.õ¼³2Û´ùñTÉ$*Z|¦Ñ¢)Ëf›Ï‰zû@ÔnéÙê¬Ê‰Ô,ˆ’ÑÏsôí²˜-÷÷,æyÝ¿s.÷ÍÆî“ +&b„¿ˆLrzž¶Ëº|Šl“©–à)F¦“©,5F:Ž +$ +éX¼TÓXGßøs¼üŒTœÎ”Á¥LÌl‹ +níª©Û¼§Òqü4@œëh®šu7¢™X³8þ›Ü’͸b¨C@¥ÛÁíëFx`CÃYS×ù,ÐzÅ9%ÎéUã¯[5ßÊÃF^e 1FÊÊ2Í<ÂaŠ?‚)©øbPÜ^ð .z¦fÕ$¤"<ÞÁ‹°+Ã_#ØÒ[|‡-)£žöˆ¤ +¤èÃ3ÔNÔ +;øVãOhŒ‹fMŠK \“Æìë-#”‡*Eí…¯©‘Öy0ìdÇW–YKƒnIæ4]5m[Ü–þ%ï:ÿf‰´/IÆó2äîTõµÚÉX z6O ®.ägaõ#‡txù +¡À…ª]JM5ÉP×yRQH(ríA>¬6-ºUãhHÖµÚ[IX7â3£‡ÛC_‚0nvP–eâ)CqÈQ)žá¨ÞT·Î/q/ +÷«Û.ÏüÄi<ñî” +ÏJ" ÞÝ1ÂÕ +žwL™ŠªÛ'S´T©èUڬǶÄZ¸÷ï/Ê\±Äô]@ãÇe€º‘™Ù„@¢bHÏ2Ù‰³” ©GÎ
áé\vñà‰KÏ糌(»ÉúW†ÙY|Äð¯È#dv½”–Ÿï5$ã<Më,CÐ5ïÀi¼-º%–ùܹ R¨1\<¸JX„”ƒT +8BSàýŠDwšÆIBq6ÚÃEwtÛ&´‰,¶úÀ¡)º³E`±•¨à–Yy׬á6ÕÈ!8|gÐúb~Q>)%£¼žB»MÝtœy¡dJúþé±ÒwL®šS®œ9źNG³Íš<£îÊZljÉèû˳ÓË—†ô$SÕ—’ ËÆÖA϶SÐ?Ä=Ç®gA*ö,HÍhÚæ3’£#raÜ× +1†è.sn„¾b€Í²6ŸZMTÐf3÷…FLòöÊý¦Ýì„Ë¡-7·R"¤ ïŽDü…ÊÆ…lT6=¸¿Ý¼Ù¸Çn Ëjà ©Ã·»Iì·ïl¨ñ‰£möÐú¨!Ê]^çkj|‡Q/7RƒÜ8F/£ý—þM°µM¤/`åùÅÕKbN‰à;²»uV¸ªÿ“\uÿÍA V^€øㅼ钔‚·Þ¶>˜jÒ>wZp¶'âBhSÑ8Ø÷„¦TmÆ» +zsiÂ$ï»Âªr¾–a_2™ðPDÔãÏÉÊÖKø¡n¶µ¯;“ƒ_(¶ªŠÏª˜Pý¡'^ÅF0nð“ä§ÛúŠ¡oùBåP:T¬gž½w{;(èa}AW¬h%\Ê}SZm:6r1i
3}Âþ¼.5ŒCOÙP)‡Å::»]+"QbÁ¹(®¦^òMçó1~žJ¥ÜÇ}€mvŸeÖc4„*«}Fn ªZÞåùA¢>vyýã¹gÆtöpsÔ¬Z…úÏ8ÁÏísµØN}½
2 DJúxŽIXÐHXl ‰E’>«ÀY–óè?N1aë=?é›k_( + üe3ËJìÒNÇ"èð»3îóSßéŽôw¿$dÍ!&ºT'fì“R»£ãäÿw4Äén8êl©ýKýÉJÚ5~¿±R‹‚#£Œ:¥áß_'’jãÉ[J&_VÙlZÍÍéX3„‰"'Iyô̾º\ü[«·íG]>ÜJýö"—Åëói¹eùæí?ÊÏÆï FïîßÁkõkn`¿€Ø»€3Û³ŸÕ÷ɵ}þÃ6ýuû~{¥~ùõ‡ÍOß}÷ìiÍýøÃFþ.â½äÿóŸS»çtÌT’ÈÝÿN{±€k¦T*‚P(¹HÙb&xƒ%4ü~þW—×óP˼£R&¿¸ì™¯['À*µÐÿ#ö©þ)Ô`Gendstream endobj -2851 0 obj << +2865 0 obj << /Type /Page -/Contents 2852 0 R -/Resources 2850 0 R +/Contents 2866 0 R +/Resources 2864 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2830 0 R +/Parent 2863 0 R >> endobj -2853 0 obj << -/D [2851 0 R /XYZ 56.6929 794.5015 null] +2867 0 obj << +/D [2865 0 R /XYZ 85.0394 794.5015 null] >> endobj -2854 0 obj << -/D [2851 0 R /XYZ 56.6929 668.3939 null] +2868 0 obj << +/D [2865 0 R /XYZ 85.0394 444.582 null] >> endobj -2850 0 obj << -/Font << /F38 1082 0 R /F54 1383 0 R /F22 997 0 R /F21 994 0 R /F42 1288 0 R /F49 1308 0 R >> +2864 0 obj << +/Font << /F38 1082 0 R /F54 1383 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2857 0 obj << -/Length 2539 +2871 0 obj << +/Length 2230 /Filter /FlateDecode >> stream -xÚ¥Y[oÛÆ~÷¯Ð£DÛ½_pžÜÄM]4NŽå’<Èm•HU¤âøüú3³»¤Hie¹(˜Ôr8;;3ûÍ7K6¢ðÇFV*œ'‰¢L²õ=³÷,ÊL[¡i_ê绋Ÿ~väˆÓ\îzº,¡Ö²ÑÝâËøòÓ§«›w×N¦\Ññ™L¥ã—7Ÿ/cŸ&Ž/ß_Í&S椑 ÄÊi:¾½y÷vúöãÍ/ï¯n&ßî~»¸ºëÌê›Î¨@›þ¾øòŽ°‚ß.(ΪÑü ÐñÑúB*A”¢Y]Ì.þÛ)ì=õ¯¦\¡„%Êr“ðg#ƈSŠœ¡Ñ‚ËWaѳ«Û ,õ¸ø߸Æë÷Ÿo/Ñw×ýjA'ïù—Ž@”P NGewË|2LËùÚß©qo¿çÛ0ºÞÕM¸»O³ªüJ)Üm'ÌŽóExÚTá:ϲ|ÓÉm¹ÈÂ(¼SæYSTeÅÊEißʲê±,þ
j–qÆ¿òç0Roò¬ÀÉÛY‹ˆK ->É‚/úuËþº™&NhÂ(ƒ¶0ë!á!’Ì°(‰óò70!wã]]”8·h͸¸Æ›_ê0R7ó&_çe~+ÌüP6N‚Î_œ´Ç E!§¥sãYžØQ÷<,ÆU¹œ˜üe„4Q§_š<ùTRE‡Ó./áÞ1ñ`‰þêÁ›Ÿ¯oÞ…;.—‹uQu³7Õ6Ýæyˆ{™Å×>ÌËÝ|îZ¹EÞÌ‹UM¢uƒ
¡Š)Œ7kvwÆåï³ç“³à+UÔÂ?ö&¼‰cSŒÄc^>[ʳj‘ã8ãÁ·´ï[cˆ2\Eßþ;O/iK¸ÖºK‡„W¦B*b`ÓÀ;—Ÿï~ýx{Þ-×e“oË<Ævö\C¨ëˆ0`Õ¶)vëý¼fÐm4$%Òé !à˜Ò¡WÛ=+$´Ž˜†è“6Ìc™éâÕiñö|åÜìãî<^à
Håàå¢j³³ªV¯I¢ç²ÚÔE}X*`Ç2 -ÁWÒزCÉq\I¸OV@J¨‚Š6íið ?Ø›-æ·BÇ×àÐ/Óù·öî>, -æí¥‰`PXt0à“‘õ -$#VŠí:YB'8Éj¥ö*ŠÕ?P¹ìîþJ(× -b(@ëžH$¦æ -¸þEŽÒ—j;Óc’ÒIíóª?%ÔK!`ã¼8e+”˜²ï,g‰`N
§|çÀg×TkØ>Y"°%‘ú`ƒœ÷`¨_ÀÇî–E¦Ë®µÕDÀÖmŠ$òQ"™ÓüUûBÚV×tïÔNv¹ýSÞdéÔ5º—»ŠúýF>-Áîïɪ
lÅŠ®Õ¬ŸkÜa6†«©Ù–0Ó°YÇöÁÓ9,Þ…ÖȵïwŪÁÎ*ülÀT 3.¢@t|Ô‰øê¯ -OºQØd6†ðÁ>kIç3^pµªžÒe^0 Ò©³‘PÔµáòu'Z¶+qÊ<úÊ4bê óŠt@A–Rž‹œ Hu/rƒãŒU•µÇ˪Ž -
g÷ +xÚ¥YßsÛ6~÷_¡éËÑ3øE÷¦ÚnêNí¤¶Ó¹™$´[œP¤*Rvrs|?`AŠ’èÈ™Ž.‹Åb÷Û]ˆM"üØDÅa¬¹ž$Z†*bj2_žD“G|{{Â<Ï´cš¹~¾;ù÷/"èPÇ<žÜ=d¥a”¦lr—.B¦ÃSˆˆ‚›ëó³éÙ»ë_Þ^\ŸN™–‰fïß_\Ÿ_þ÷tÊUfpFQp5»þ0ûhïO5fo/nO?ßývrq׫5TEÂêô×ÉÇÏÑ$Ç~;‰B¡S5yÆK4Ÿ,O¤¡’Bt”òäöä^àà«›:j +…\Ä|ÄœÙBé0\8[\VØ’Œ‚va0:Èîë'C4ó5[®JóÆî²Ø@Ì™0&¡€²®ò¹g.Èy˜*<ÓsQ–$÷þ-•›‡lS¶DÜ4^ҔƬŸÌÚkå¹Êzž•‹ºi‰ü)ÂvyFø1¼0âʪ|OÖã×ÄôÒä~l9µjO¦Œ³P%܉±P+ÅÆØ»ÇàNpV/—Þ`>çA[û§[…³í@ï7€O~÷ ÒF‡ÓgfRônÍ7ö5 žÅ|A_–Í‚¬lüâ÷^Hn>E¯ÜÞ@.ªí"v‹ÑîÖ:Õàîÿ²»I’`^WVÂãfµEm§'i`)¥!†ç¢]Ј4Çghî?VýˆŒo?šùú”¥iõ1wÏB[µ,mÖš¥©Z¢U^ÌAiºeܱÓ:ÞB;{¡p†Aí™vÇ¿^ÍΦWçŠÞ²ò”õú/=ÅéˆAÑú©[eé}^ftPv\WmVTŽ3Ù.rŸ5fKz1ռ΋ê‘Þꇗ=‹ÁÒ@ˆ*ëÆ$ÞÜAâ™×›{wÿµ©a¤°¦C!½°Ë‡‘hMC
h+bS»#1Mëâ0ˆ“4L¥ðs‹†fnH=áü«YQÉ0‘â8>$I²‡{WfÞúj"nÑ€Î;Ån¼uU¯[ú „¦t(¢‹7Ð<0·ñm„Ä +Æàz«JÞYÀ¯Éø¦2=Öð¨zIãýótqsh"&aÙ8âM±ó‡ÇÞ C[ÅH +»œ;‘z3"X—å7"tÆΉq +Ž—ÔcƒÂƒÒ&?_^ŸÓHÓc–/‹ªhZ¶Kº1†Î½šûiWYµÉÊ-8Q5cPQ•T ۳ßoßw~ë¶-Hm;ðÆgçAÜÿÖ©k%ˆN¶†¶Ml.ã(þ3KnÅ©Åܸw‡«LO0 +:ÄëÌ>Üýúîæ¸Y.]ëª×Ûo
ŽÚgŒ38*§b³Ü®+‡qwÒ&4Ÿ]ïŒF9Š¢ƒÊÂ\dš0͢ϨbSÉ‘úÄéó ]ÏöÜhD%Û6‘Pƒb½³®Ë×8Ñ·ª^5E³ß°ÄL +± +j!ÆläÍ•Í·ãÝ·í„m(
D¸æ[Ž5ß=×áÞmÊø8Í>w£{Úv0ð(¬¢ò`–Æ‚ë!HfËöðz™ó™~÷µD>åˆ\ô£/#ÂQN'ª¯| ¼ê½â5ÂWGõuEÿ¡<. +¡dxçR]eiÁ,Õ#·©öùÞsôò^])Â$ÒüHÇŠ:>ƒ¬Í“à²õ+g~5w#“ê®IÆ(óKg½ŽO¦*(ÓZri±ú>ù™®çM©›ñ7TÀÄP¤2ÞõQêmuüBI îòð5õQ"ûb¹¿õѾ¬ãZù:@ÛÊoM‰YÕ•kâFÌ Kq¥õñb^"ã¾2ë[£]i¶”gü»-x`6Öéx¼^‹q:å¯lŠÞÉ»À„ÔÔõ-´)S˽ÄÙödËí¥ž„>îšIz§‘Šœ„õil<Í_¸Úï®YÚ®´¯ø¦Ù˜Yj…ê¯W>($•éVvCW^*جˆ˜*IC16ô¤ñcPöܾïHïïÜ ÿ©.r¯ÃÂo»2Æ“¨D|A
Æê°dGo endobj -2856 0 obj << +2870 0 obj << /Type /Page -/Contents 2857 0 R -/Resources 2855 0 R +/Contents 2871 0 R +/Resources 2869 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2830 0 R +/Parent 2863 0 R >> endobj -2858 0 obj << -/D [2856 0 R /XYZ 85.0394 794.5015 null] +2872 0 obj << +/D [2870 0 R /XYZ 56.6929 794.5015 null] >> endobj -2859 0 obj << -/D [2856 0 R /XYZ 85.0394 752.3759 null] +2873 0 obj << +/D [2870 0 R /XYZ 56.6929 536.0634 null] >> endobj -2860 0 obj << -/D [2856 0 R /XYZ 85.0394 668.0781 null] +2874 0 obj << +/D [2870 0 R /XYZ 56.6929 445.3014 null] >> endobj -2861 0 obj << -/D [2856 0 R /XYZ 85.0394 607.6906 null] +2875 0 obj << +/D [2870 0 R /XYZ 56.6929 378.4497 null] >> endobj 962 0 obj << -/D [2856 0 R /XYZ 85.0394 570.577 null] ->> endobj -2862 0 obj << -/D [2856 0 R /XYZ 85.0394 534.8112 null] +/D [2870 0 R /XYZ 56.6929 336.8445 null] >> endobj -2863 0 obj << -/D [2856 0 R /XYZ 85.0394 503.6098 null] ->> endobj -2864 0 obj << -/D [2856 0 R /XYZ 85.0394 440.3004 null] +2876 0 obj << +/D [2870 0 R /XYZ 56.6929 299.1061 null] >> endobj -2865 0 obj << -/D [2856 0 R /XYZ 85.0394 370.9227 null] +2877 0 obj << +/D [2870 0 R /XYZ 56.6929 265.9321 null] >> endobj -2866 0 obj << -/D [2856 0 R /XYZ 85.0394 274.6697 null] +2878 0 obj << +/D [2870 0 R /XYZ 56.6929 196.1586 null] >> endobj -2855 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F40 1218 0 R /F54 1383 0 R /F64 1435 0 R >> -/ProcSet [ /PDF /Text ] +2879 0 obj << +/D [2870 0 R /XYZ 56.6929 120.3166 null] >> endobj 2869 0 obj << -/Length 2282 -/Filter /FlateDecode ->> -stream -xÚ¥Y[oã¶~ϯð£Ô\ÞE>¦Ýt›b7›Ód -´}P,9V–\IÞ4ýõÞdI¦ísPˆhjLg¾ùf†&d!$’šêEª9˜ˆÅj{…/ðîÃñ2Ë ´K}ÿtõîG¦iIåâi=ZK!¬Y<å¿%·ˆbt
KàäýûûÇåŸïüp{½$ZšÜ<<ÜÞ¿¿ûõzIaÄ8ùtsÿå棛{¸Ö öáöñú§Ÿ¯nŸµÆªÌŒN^ýö^äp‚Ÿ¯0bZ‰Å+|ÀˆhMÛ+.œ±0S]=^ýgXpôÖ~5f -.”K0 -C)aq{xE@&å¥JìEIÌ^AÊØk¹™ŸSJ„u*ãÅŽ¶B‘-éhË” œªÙ–mY÷³væݦi{?Üo·Yûæ>4k÷ì7…ŸØõeS‡/×¹´×D%/ûm1,Ü7æ\3P®¥4…3EÚ:_-WM½~)j/=V^‚_¨qFGxðVO1|EiyÁ5#©3® RÖ5_R’$ AJ‹ Ô×âζÅ\5B0âÐrV·A*¢l)'`µ‰v»bUþŽ1-¬Åeð‘4J¹UÍŽœG2Æôn”ía²îËUf<{X6_2ª’§Mé÷Øî»ÞžýB™{|˪2wüÙfe}ÐÀ:n±d)Â챑¡{ˆ§€«¼XgûÊCv³†ç4P$çcè5aÃS¤(N/ÁFÊQ&.Àf,u6ƒ”…Íî"lv&ÚfziŠ¸Vô -B½Æ&Ð)â©žé5Óf°j äM,3-’Õ&«ë¢ro¬¢vôº)l±°ÆÁ0œÎ8=8†q¤Y¤ª²ë‹Ú«²nÚ -l¾òcÔYÛ]›md[€Öñ‘]!ñô@"@˜ÊÂ΂’cŠ0%|ŠÊ9í¼wK”#®NeÓK#©3X -RKmKIÅd858®Ù®Ëꘄ¨DDPv^»A*¢Þ„„A„19ÕoŠ)Á
0!’®Ù[¿ -7møÇ<¶N&ÏúÌÍ:ïà -¥2çu¤"ÊMcÊy®fÚMk*@Ir÷à&Œr6
v^â\^$ñ0'饼ÈQJÎó¢YÝ2£ÙHÑfvHÑöÃ8cÚïœÎ˜KD5ûÿ2¦#S“&Lô?UoÓž¡jšÝs¶úê{…‰a*[„áœF#As#©3hR}4½*‚ÏV›¶iú¼lK|HÃDêóÊ
Rí&p„¤*´¢Sõ¾8zÒ:y-ûõ›Ò$€˜©AË,âUpMep½ëãü’{Z:[¿¹†150L霵ê›Ö¿9‹x¡&œ\F¼N õR¯eU¹¥Ûk•ì½V`y‹ã¦7<¸Lnü«,_úž¢k¥f|_š³9^f»·qÊdNó§Jé(4P¼¿04͆põÊò.©°äµ-ûk ì¢vŸ±*¨L¾y —†Œ"6VLªŸ™^vƒ#~–”þ [Âú³]×ÍÞÒƒ™z;äB€²ší–cG\)R Rz‘»0Òz(FOF0ç¦dRš±Ôé¤,Ô÷›-Htí©fë¬^C³u¬W¬ÙšèåC×zˆ®ä§B—£4älè‚‘)ÑóÐÄ“®èضƒæµ¶õ”®gûO«YFÑaÿ¸ç, -$ðЖæZZƒ&.4X’U]8äsþ”øxð¦®ÞfèP=šJoöòãˬÂߌm2Ÿ¦Êp³,+\"~ñe”=î ÇJ1hw±LAM–§ôÛ_o>=|t—›³Ócø -¤çÔßï<™{ÐÆ«TUÍkĦ²&ÓäB:§0üÖ7Çe y ¨ö2Pqì- -[f+¾ì[Ûƒ}çf=a;TéѦKiò5®QHØ]ø-%Æq¼ãð-5±Ã´Ò4Mf˜¹G—mwU”Ð bLqmvŽ÷/Š«®íöN›Ž£õ5Ë®²Üu˜óÔ‡íWH°¦Ii›ª‹q& 6¥žÌ&‘Õ`Hä¨iˆÑÔ"
v=D ¿€5:÷ÞbÏþ0Ι&4̧²)”SØÍ*; Ì>àÞDÌí5Ç|œNÚW†ž¸ˆ‚!mB=
H¸ág¾’¿½uûÜ||ü|9ØÌê¿cü#Aà -endobj -2868 0 obj << -/Type /Page -/Contents 2869 0 R -/Resources 2867 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 2876 0 R ->> endobj -2870 0 obj << -/D [2868 0 R /XYZ 56.6929 794.5015 null] ->> endobj -2871 0 obj << -/D [2868 0 R /XYZ 56.6929 390.6346 null] ->> endobj -2872 0 obj << -/D [2868 0 R /XYZ 56.6929 257.7108 null] ->> endobj -2873 0 obj << -/D [2868 0 R /XYZ 56.6929 193.2733 null] ->> endobj -966 0 obj << -/D [2868 0 R /XYZ 56.6929 153.3455 null] ->> endobj -2874 0 obj << -/D [2868 0 R /XYZ 56.6929 116.3439 null] ->> endobj -2875 0 obj << -/D [2868 0 R /XYZ 56.6929 83.9066 null] ->> endobj -2867 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F64 1435 0 R /F42 1288 0 R /F49 1308 0 R /F40 1218 0 R >> +/Font << /F38 1082 0 R /F22 997 0 R /F21 994 0 R /F49 1308 0 R /F42 1288 0 R /F40 1218 0 R /F54 1383 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2879 0 obj << -/Length 3184 +2882 0 obj << +/Length 3072 /Filter /FlateDecode >> stream -xÚ½ZÝoÛF÷_¡G¨6ûMòî)mœÀE뤵ïp@›Z¤-¢©ˆT÷ÇßÌÎ.EÒ+ɇÃår¸;;¿ù ÄŒÃ?1K
ã*Ó³$ÓÌpafËÍŸ=³ÂÓ,ÑbHõãÝÅ›÷*e,³ÒÎîk¥Œ§©˜ÝÌß~útuóîú_—iøüŠ].çó_ßÞüãí/4÷é2“ó·®n/"3F‘äHgùüÝ»›ÛÅOoÞ¸º¹ü|÷óÅÕ]ÏÖuÁòôåâÏ|VÀ ~¾àLe©™=Á
g"Ëäls¡bF+fÖ·¿õžºWc¢0*e&•IDRÌ„`x‚‘0LƬ’Ê ãö¹n¶mÕNb‹&J3.´m-@ÐÒhGUÄ7 òÅp Ç––1*äª(êv±lê‡Ç²¾\XPÏ‹Y|óö;¼,¸`V¤ìˆ¯åëÇfWu«
‘ŽöIf:±žòsXuÕþŠ¬o
KŒÒþ¥¿Êç:ß”‘ŵ`©Vbºø.²¤2,µÆxÒ]^Íæ¡ZÇV=%‰I§«¶gW=Â¥ÌXš†åþMË-¾GV[¨LÄ9[ýã|oêè² Y´ö ›_¹ùLï
r¡S– -›Á~¶ãÆ-ðîêö§ß¯?Ý]¼é_:lÆgà¡ ó$b(D-ÇúSŽA¬M¹Ë»²/Oõ<Ç‹BÒýC³£Á¾-éÑýs„!Àß,©n÷Ûì®5K“44[
Él ¸"²’â,ËTØH1¿îˆÝ¶Úl×ÕŸœK:™šƒ@ðöq§ššÈšºhÄÕwY&@·AѲW4.•e(wõ²«êGºÏéBÂÃ{8Òùvw)Òyóµ*zÚnUFN.¹øârDˆàgå˜jåÈÐ."ËËTš§nŸë.ÿÍ;=Uëµ@I׺,‹²ðt
IOIÀùTM¤Gæa¤ê~ðƒz¹Þ{yÀm^Óµü–ƒæb²Ò‚©ÄóH’Yl›uµ|Ž›ù€ºí€xSÖ#.E&™ÐpàX®Ê÷¯Á -J0x‚ü(¦0ˆâ*ɦ`ì^Y¬cZp¸Dô!éå’– aÓ˜GLr¶GÜÁ›zMþ½Ð žh5¶ã“S>Z•.Ð Šë|¾iziÁ]¹Îïr¼DHAÛÂCzï˾¢Añ7p©$ÒÕ -ª°F4‘(ßÃdÝUKn -Þë
Wä=8ß{ÞTm¤âVPíˆLb«O…§Q -G#Bpq1’ CÑŽiä$ž€•;•òU´-!°—,&´#&ÂdYÒç¸u³‹,©”È‚†6ĉUÈ'ˆ· -xki8¨Mþ3 -œÏðTµ®¡®àCÁ‚¸£‚†˜;ÎQ¹ÊÍÜó’ÓÒm¹Í}&“€âåÚGi
Y±0Ù8}hÖëæÉ•4ÆõÜ•¸†ÁÐëiÆÙÙ„DƒÇM²yÉÙ±6
‡ºEÙlr¸aŠÏbJP‚Ù̺{’ýÃÀÛ?Œ6û¶ó§Ë”š˜×*ÿZN€¢â&ïÆ(èÁòk¾®<ð…êǸM€imÕv}]X—]WîZOUTT‡pö¼˜ë¶ÜUMÑ?(Ç¥¢†î ðP -7ê,MOs×SEا— œ”‹1ãpcQŒ™·
•~Ë’¦ ´ç–h ¼ÈiÖ¥š86íĆvá²Õï.Aü±RQGÈ„èÔÍ6¼L!#ƒ<A‹I6é* -¬Ö$x©KP -Z”EÅtµÀ…HÜ–¨¨<³&´ä +’¡Dñ¡Ã¸ÒÎuÙ¶¾y–ZL&HF9EǸo š©êí¾c‘S¦ø%GŠ‘™ŸGú“º/ÅÛQÅalðÊÐ&ß%ä´P,@øYv¥ó<ã¥á)wtÅ×~`´xõ0jçácö”A&6i8CC!º"Çrß}?†»¹Ìš&Ù<qúqšÀ²AK_6ÀswTjf„ÿ}ôkƒN¡°æ¢ŠxŒÖ‡DU˜}
%>Õ¡¤Cß<ÊRf±‡?©¡¨í†`v_|+‹ã€&–@$=hª€¨†Ù×´^–JL?°ÈTÈÓŒõTÎÆ=IÍŽG¬Ý‚A¡‰)m櫦íhäc~q¥TæNôÁµÅ^©~e1Õ!u£øƒ‹ƒ®žÚÀÅ
ÐnݳÒa£
¯¡ë…cßmwcBTm§’ˆ4ÉØ3†}ò—_Õ´dò€ -M Ôà§ë©"œM¡)ã³æö!ËC -¬B÷Jœ‚#¡À…Íë¾jð+Fx„;z<ÂᜳK˜hKOD_eGø0àÎûo"$òô@î©x%'ô§$d’ŒQHÊ`û’¼Ô}$Þß{G•GEW”Ø…ªÖ¿NÒúušÌÝGV˜€uúO’ÇzRô‡0}øÌ2þíC‚½ïtbSgàÉU€7µýÿ{mûßxí‹ŸM(ìƒ5Æ°e{uE,¼ýåöcdýÉ/'‰?¹áþMáƒQã3}‚“)MÒ1ùð ø‡êŽóãõÍ;z5óœÈ3Ûn‡•"Mý^"Îb;›€¦~Íë}ûäɤ~ÖíU†Û0üÍT7x/Çÿù§Y‡Ÿ é„)¨àâ -¢ÿIØKIüCÆÐSendstream +xÚ¥ZKã6¾÷¯ðÑ
¬9|‹Äž&™Î`‚¤Ó›é,$9¨-y,Œ-9–<ίß*>dIMÙ,|%•ÈbÕWOš-(üØÂ(B…•‹ÌJ¢(S‹õþ†.>Á»÷7,Ь"ÑjHõÍãÍ›ï„YXb5׋ÇÍ`.C¨1lñXü¶|ûðpwÿîï·+®èòŽÜ®¥ËßÞÿòöÿìáÖòåÛ÷woWÌÊL³H§éòçûwß®¾ýéþ»÷w÷·<~s÷س5dQ<ýyóÛtQÀ¾¿¡DX£ÏpCaBËû©QRˆødwóñæ?ý„ƒ·îÓ”(”0Dž%dÁÙ‚1b•â#a(K´à 㧇Ç?Ý|µJ¨yeœÁG0yR h5¤Š'”©pÝU>]Ò +"„á——ŒD‰%ù`IP·`V—|×€v^槮Ùç]µF&¼jNL&5,†_ë"
gçÀç6›úwJù§Óælj€‰dfù¸Z¿Üúx÷eÞ•áAî/øÑ®ôÓËáôL*"3ÍLÏåK‚E‰Î¨ +„UšŒ€2HÞ”]rCšdšF¢ß©¢ÍÑ3ù¼¾¿”ÇÄÌ€"#T”BûÒ‚ 6EuLÌ¿Ú£©Y¬z<Â7Ïy‹¦–í¡\W(²ðâ‹çmYûÑ7îß…gñåÓ©ÚuÀ,ó·°êìuY‚ ø0çÓK¸6Ý6¡y®³+ªçD2%Q^‰™ì•š(˜:ß—Eb&Á‰=‹¯ Ûl»üØ +;Ç$ä,Z~ŽJ3pE·fúÐÓÛ¤ä¯lRþsôçÁøŠ€‹5 ’Ìe· +™OÔç³Û!Õ|vÛS9‘?yFµ‹ÜØ^á Ûêïrʃl>Ë +HfÓèÆæUO5¡œê+ªP]P}¤rbÚ¾*c%òÊ’‘(±ä¨ŒµDr5YòáX…ˆºŽRß6Ç`í RócP@³™d ^eñã: #w®òөϬœ>Óá›sž}eÈ¢x~M52“ÄfâŠRÍ«¦§rªùü5>Cˬ¾ÈÛÙ¿f.éƒGÜ|0æ²AG:”H0p¬¹‘×ã€Æg,8šºå8æ%ćíЊ€û“¯GtŸzçþò%ßU…Í>¯ê3ä‚~Œ¸šúâDÑ +åš‘Ã2auÉ¢õUØà#£ö +lT`©lWas@k›b†S‚û»ÈW$Jð5BWXáOGmЀƒ¾vPŽãÇ©=cé²ü„]SHá¸×ê^€¯èë¤Ô2eXqY·g_'ƒìl|%·OÕ]‚Fûr{®t¤Dö‹¢3ib_äH!æqŒW3Pß,˜ ÙÀnˆº¦!Õ<˜z*¦cL–h#zK +ÅwHApŠ{ÝZ¢„œxœöP·÷¥^Ñ8ß©”ßtðhûR¥'[¢†ë7EùåMØW"ˆ©î;¬®¶„Y±ì— ~ׯSTëÒU aÓŽ¿†@2”(¾t.®~åºl[¿kf4F‹I¿*:pp™O×Á]WõáÔ‘Ä.
žœÛ™nà3] ™õÜÙÀô:…è.ç˜C¡å*o¤(þÚ7•ó„˜ÐÑ˳ð1¨Zð´sv@C!º,SS½à>4ŽàIU.òÂ?ö²iÓÓñ¥†Z:$«®W4 ÏSªÛÊ¥úr˜È£Št7^2Ý÷)êµ!DÏ’‰áÓaè×XÕ´Ô‡†ú±§rqïó¡k½–ï©.8´HåZ{µÔÉ‹âàœ*u.²Ö—:¯YK–:#ÞÆ)úçlùáÁ?@Ö\lÅ¥¨È ÞQɲëÝ`fŒžFEœÝ÷¢`ýs¿œÓA¿œÓq¼tßÌÇKÈŠ·âŸÅKïJ¹&Lê¯LÞ¦íìæð”¯?‡Ra$AWpC± ?6‹E®ÂÂà"‡TóXì©»dp…ì)êl½=6MΤF`„,ÓjHÅ/2×S%¸ÇVN¬ùŽØ•·µ±ò¶v®ò†tOu¥]Ç3-§•7NÙøë¹ò¶¾³kÍ ÖÛ‹ˆ‡2É®#ÞfŒ÷½ÈÝÎOZn’w8n\ûm%ÁÍ¿
¯òbJ +&PZfêŠ +÷æ½² +®:ב†{/¬ä%_…BȈ³ô1Ã˶'òn_,«p…%aþɪ›æäÜ>z9GB€òä£7Ë¡€Síß3¯ú.J¬Wk-Î8¸kÑdHuÁ‚#•ƒúéjaî8Wk]䫯µ^󕬵FŒÛuêr¶«å|×,Ë»Ò5³œÙ©íöP’¾ÓÁíÍsíÒ)n&ë“YÁ!_¤öëПžø +ýÑ
&H€›ÄF3Eíëòè{Çí*xåÃs˜<ßµq—ƒSþp6‹)>¤{M½{™Ä söH—Õô¼õl ÃnVZcÛx PÅÖVm\W~»ƒË¬8”»Tk,¬ˆÅÌÝýúöLJî>&vO1LçÇ.¼âˆšØ +´ +‹&æþÒöÇtS—Έ#\ÏŸ'9ŵ[ÁõD(VǵHË“§çŒº—8ÿ«§;6»6å5µ——ÿC¦ECú/ú|ÆÕv`¡‹<wAbOa3^™hxWÕ1ˆr†©Ý$·§ÙE\€À›„x¡¼–ô«ØÀJÁÅÙñÙ÷<r…À•Y{:3›ŠÈt³•ö–ùÿ¥îü×AÈî„1<•?™Â=0« •ÑJÎîáb¢—Rôî/ÈŠ(ú§Ã¡ïÌÿ×õdËc[¡)*6•Bÿ?¾×bø°›endstream endobj -2878 0 obj << +2881 0 obj << /Type /Page -/Contents 2879 0 R -/Resources 2877 0 R +/Contents 2882 0 R +/Resources 2880 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2876 0 R ->> endobj -2880 0 obj << -/D [2878 0 R /XYZ 85.0394 794.5015 null] ->> endobj -2881 0 obj << -/D [2878 0 R /XYZ 85.0394 749.2278 null] ->> endobj -2882 0 obj << -/D [2878 0 R /XYZ 85.0394 677.9694 null] +/Parent 2863 0 R >> endobj 2883 0 obj << -/D [2878 0 R /XYZ 85.0394 495.229 null] +/D [2881 0 R /XYZ 85.0394 794.5015 null] >> endobj 2884 0 obj << -/D [2878 0 R /XYZ 85.0394 83.499 null] +/D [2881 0 R /XYZ 85.0394 751.8648 null] >> endobj -2877 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F42 1288 0 R /F54 1383 0 R /F22 997 0 R /F64 1435 0 R /F40 1218 0 R >> +2885 0 obj << +/D [2881 0 R /XYZ 85.0394 153.4294 null] +>> endobj +2880 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F64 1435 0 R /F49 1308 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2887 0 obj << -/Length 1002 +2888 0 obj << +/Length 2329 /Filter /FlateDecode >> stream -xÚ½VMoã6½ûWèhË‘"Þµ»õb㸶·(ÍAkɉ€ˆòZrÒô×w(’²äÈŠ…’†Ãá›Çg’ -b!Ž vÅ0öiD&ô °‹ú°ýü“BJPl÷\a)I°MïÆsD š@ -<ž®WEÇÓåôf> )Qq4ž®Vóålñ|s`@b<¾™.¿N¿Ø˜ói¾™Üo?æÛ¶¬né3SÓÑÝ=RØÁçFLI¼ÀFD)£ˆ3Ä#Æ|äi´ýÖ&ìŒ6S© Q&è -Šo…þQRÂJj>wŠü²¹u}Á×Ùû°XÎ,^¹ii‘ë¼²jS¢ ³}f7¦wîÜ$ú”<
PNIáû>Üuêuýÿsé†:§yÈ4ˆ#-‹¾Õ¨a5ç^Ù±µšÄ
cLŸZGÑuœ{+é¦I“:ù|„À¾1øÁ;|¤›âº´¨J|êG‘ ÙžQ}*¾ƒÖÞÚ Ðˆ8Øý@"ÏŽETù_™]vŸ?e¸P"0$ÿô´s¡Î‘”±·K¯c226R`R´R0¡ÆüP<®ŒÈ
¦Üۀźù]ÝŸtÈv¹f©
ü8%ºÎë×~ªC•Ò2ô
2!#¶Ÿ¬ùÂ{ôò˜ïfm_¾;Ÿ*³\£ðª§ôª<5Þáìož™®›xyxµ½·›õèFQ@.céÖ¬ºGþ%¯]Mº8?Ùs¾Ëе{ãÈ\ž„[™¼ûŽv¾‹‚³ƒùÐóõk蹚.Ì)‡+ê݃ãùŸu¦SOúæt8€ñÙß'„qv¬òRÛ¿+F‰½áÁ_
ßñ7ˆ+Æendstream +xÚ¥Y[oܶ~÷¯ØGˆX^%òœ'7vRíf·Hò ¬´^!ºlVÚ8.úã;¼É’–k(X5g¾¹qÉÃYˆ%ŠªEª8˜ˆÅº>Ë{øöþŒ8šØÅcªŸWg?½cr¡Jh²XmF¼$ÂR’Å*ÿ]!ŠÑ9°ÀÑååÍ2~{{óîýÕÍyL”4º¸»»º¹¼þÿyLb Ä8úýâæÏ‹ßìÜݹ²÷WËóÏ«_Ï®VƒXcÑ fZ¦og?ãE'øõ#¦¤X<ÀFD)º¨Ï¸`HpÆüLu¶<ûc`8új–UA0¢,¡]P² éSM”!JeFË«+{¨‹ß–·ú<°ŠŽ4ˆ1M’ÊPï›|ý ,áycê9´n›þ Fš¬.òµaÎñˆ9á)$좹ÿ|}si—*'S^—MÙõû¬o÷vêC±)öçDFE³.ìÔïYsȪ€ì$‘ˆ&IâØ#G2QJÌ@}\P#…Ò”QC{ñçê—Û/êãºé‹}SôVåc×ug_Þ¶M×îûòP?mËã ul8GŠ&l€$àÐò¼ébÎû¢Ñ+5)KPŠ¹0¤7 Õ°\£”&V° #Ï'JS;Òßìèkñh@U€’ËÖ÷m[…´…§ZZ>6í®+»¹0‚R GãO
á–€ìT +qÚNƒk
\»¹ž’*$¥g÷·eÿàø"Àñ€XòWÛÙ‚fu¨œ‰ùÍ´4ŸƒŽË%’àîicûåÕòí‡ë»ÕõíÍ°è”óÎ=mæQ`>¦!e%sRhÏ‘<Êôƒ9‚÷‰O08t…ýôå1 +r+ +ÈîLwƒžml„¸5õ×qwìjzŠu
Ö¶ðSùfö¸ð¨ô¾¾ÊO¦U>ô"CÈ›ùcáˆV¹ÄéóÒ
Tñè,ƒ§â-‡D¨ÍÄ|¼Á“Tv¾µOëvÌ;âxÅjyý^Ò§h8ÃIt¡ï&¾g% ¶r´ëm[®ýž™5«F%æѶÎÖq
FNì«ó…Î Ñm3ßÜRxwq}<#’Ù“Ü/ùôt Zn‚£ÕÖÁ,/6Ù¡ruÙñF§`Eý~VcªÓ°¨¬¶ó-Á_°J_ØÒ¶C%%›älË»}Ùôîì™s¿m»wZéæö®u7¥¹nÙ½ÛJÝLãÖî÷]Ûu¾É…r® @¡é+#/E‚‰Iš†QÄÉ^0͈êÓx*cš¯!‡~Z vÜwOü]_û0ž—m +7ñw"' µ‰t‡g„»J&Å2"|µJl‹5¡± Ye˜lúríÒçàÜ^`fÝGÏî£_Ê.Ðq3(Cˆâ“ÜêJáy–†ÎQ¡Zܺ©˜chÚu9˧ÁŠ½
,=Ô[ÛàµÑ±ž§¿Ž˜*“#•5nÓîl &ʃÔ_C<ÃÅ:…•Ù:;õ&ÿ…Þ£ÏðPv¦!¾¯ÀcÅ‚ºƒŠ ¾K_¥×Q¿™9Y2˺+v™«ÄaÂxQ¹,Í¡*&BM«ñM[Uíƒii„¹t0O+5ÆnogÎÆ$V5ú¸©Š +tÞ„®ipª/™Õìpã…ŒÀxíp»ò{ZüÃÀáFõ¡ëÝA™DŠ±¼¶Ù÷bé -ÖY?
ƒ.Z~ϪÒE>ßú+i—œ ¨ue×µgP}_ì;G•—÷PTû|ö¸˜GÖ]±/Û¼;üô=}!+=Ñœ|ŽÆ endobj -2886 0 obj << +2887 0 obj << /Type /Page -/Contents 2887 0 R -/Resources 2885 0 R +/Contents 2888 0 R +/Resources 2886 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2876 0 R ->> endobj -2888 0 obj << -/D [2886 0 R /XYZ 56.6929 794.5015 null] +/Parent 2863 0 R >> endobj 2889 0 obj << -/D [2886 0 R /XYZ 56.6929 751.5568 null] ->> endobj -970 0 obj << -/D [2886 0 R /XYZ 56.6929 708.6012 null] +/D [2887 0 R /XYZ 56.6929 794.5015 null] >> endobj 2890 0 obj << -/D [2886 0 R /XYZ 56.6929 670.3846 null] +/D [2887 0 R /XYZ 56.6929 751.7548 null] >> endobj 2891 0 obj << -/D [2886 0 R /XYZ 56.6929 636.5029 null] +/D [2887 0 R /XYZ 56.6929 684.9927 null] +>> endobj +966 0 obj << +/D [2887 0 R /XYZ 56.6929 643.4496 null] >> endobj 2892 0 obj << -/D [2886 0 R /XYZ 56.6929 564.786 null] +/D [2887 0 R /XYZ 56.6929 605.7386 null] >> endobj 2893 0 obj << -/D [2886 0 R /XYZ 56.6929 498.9559 null] +/D [2887 0 R /XYZ 56.6929 572.5919 null] >> endobj 2894 0 obj << -/D [2886 0 R /XYZ 56.6929 418.2058 null] +/D [2887 0 R /XYZ 56.6929 502.9079 null] >> endobj 2895 0 obj << -/D [2886 0 R /XYZ 56.6929 349.4108 null] ->> endobj -974 0 obj << -/D [2886 0 R /XYZ 56.6929 306.4553 null] +/D [2887 0 R /XYZ 56.6929 427.1554 null] >> endobj 2896 0 obj << -/D [2886 0 R /XYZ 56.6929 268.1239 null] +/D [2887 0 R /XYZ 56.6929 238.0538 null] >> endobj -2897 0 obj << -/D [2886 0 R /XYZ 56.6929 234.3569 null] ->> endobj -2898 0 obj << -/D [2886 0 R /XYZ 56.6929 162.6401 null] ->> endobj -2899 0 obj << -/D [2886 0 R /XYZ 56.6929 96.81 null] ->> endobj -2885 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F40 1218 0 R >> +2886 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2902 0 obj << -/Length 2054 +2899 0 obj << +/Length 1840 /Filter /FlateDecode >> stream -xÚ¥XKsÛ8¾ûWè¶ôVˆàÁçÑcˉf'Ž×’·f+“MAk$R#R£h~ýv£>lÚÉÔ–l -…2w„eòû\Nôˆ#JöKùþ6 -zœ n’†p_ÃRwOúð\3¡$K8—o«Örè&ûUÌâŒ6PnVB,$±·ßf¹F2òªMu©YS”kW¥eø
¤mõ;¤‘ãÒ5]2ˆL$xLE/nùL5p,([¶ßxÈW‡K‘xÕŽ$K’ÛT4LCIªÔV—l¿×åÑÌÄ“(ý1]Ë"eâ8‚4s»8ÃÕ¦L*³f¯V§ŒÇpú›Õçz=°Z._é1Ã%‹™¾-µå;0‡˜‘`ÇÜ…»¶QÀP&fàÛZ¤‹%}/¶ÕÓ¹!!wE_C¯›0HXÄáwLØãzÄŽ‹b
ÕD÷½0¤˜R"}[vË5"|`H™2!8”¾Z«‹%g6g Ó¦È7D²riòèeÖdÖ›ê¸]ýd·ŸEÓè’Ù @¤LÆPD|@…0hB}æÓ)m½úeþy$7øÄ—ã2 HEU0Yæ£uif7HÍvuL>~õ¸øøùáûRge£¥nHÞü\7zWÓàº*ëêÐÇ]'üDN^ -Q”ùöhêÒó,"b“YÖŒXžŽkçÙ±¦ŠÆŸ¼ú'1-æ³´@ñƒ!…ß~:i“™ˆ
Qêm«rm -èf“•Ž²ËËbëƲêrÝlˆ6ÑÖgÜdµ]²N¹úg0ù¦"Cx · í¯ª!"NÄSÑÔÝnFc³§AwZºÓ`·™)wºÉm¬1Ü„ï±6Ù+à·ê@fË›íÙ„‚=aÐÁ8£½;]×ÙÚ”ÁNeSäÀW•Ä—WK» -64wÊêáŨGé»=ì}r¥áT4¶ -Tp²Åƒ›»¹-»ýVï@ W³öÌ’ MmÅ)0Pdd#p¡ÑºD*´(µ¤é¢¤¯Z -ãÿ©iŽ -Rtkºzõ<‚ -"ŒÜ$ø[°.,´fðŽq¥^¢•H4ƒ…¬&SÀpÆ}7ÕÉ-ÙCl_
Ôžr¦©òjkT† \>{ÈŸªÃï˜"¦r‡›ö¦¾W%Mgåù”µ0©ThÜŽ+ËÊäl1d˜W(vM!掇¡ýP(ïáöš¥àA»ß<• -ðÉü‹º:·
rúàì*¶0gÓe$í Œ¾ög68³<×û&k›‹'›mªèoÍÁ¾/[LÃ@îžšmÎÔź´]b§d߯6زZ?;zu,sÛáî†øPÛ¿ö#<ÈðO‘÷oÓæÿþ/²û×5ˆ™J9þ¤WŸþ©pJ¡µEbÇ"\·„—ƒ,öï¥{ +xÚÅXÝoã6÷_áG¨¹ü)ªonãöRt³¹Ä-èöAkÉálɵäd³ýÍpHYR”¤Å-„ÔpHÎço†sbn5ã*çI3Í…žoö3>ÿk?΄çY¦EŸë»õìÝÊÎS–iæëmï,˸µb¾Î‹–77«ëË«ÿ\,¤æÑŠ],4çÑûåõ/ËŸ‰vs‘Êhùãê>EšÄÀ$ò-oiõzù~uñûú§Ùj݉Õ]p…2ý1ûíw>ÏAƒŸfœ©Ôêù#|p&ÒTÎ÷³X+¦c¥e7»›ý»;°·ê¶N™"Ö–i›ù˜MB×>7g\ƒIÌ™UBv“bÊ`
¶8¢¢ï~0q3eÆ*
‡#Ç1«òz¿-wÅØ$BÇ,N÷ï}&]Ç5!žì]*tÊbËÅP¾»C±)?r.‹æb¡te8訩OÇa£MAäzK#IK<yÖfDÝÖGš|.ªâ˜µeõ™XÚ{¿?;µ÷õ±ü +kuá`¤Š®ü™žIGõ!lK€wR¦UŒ* +–jMØ<5mH#£¼F©¥QU·D:8©ë‡2/ˆ‘ýã)„…˜H½ÞåÅÃ;¯—ã˜Í +Ï”U4žÜ^ªC½+7O4'D L(0Dª&ÃÌ8çªGÝwKÆ9#@pËHi`êYN
!7÷I“RƸG¢àWût( › +Ž4äƒ<Â=áEæâU4<ÂÅ€GHßR¡o@´1žjŒWÁþÏ1HÈ$¢”!ö%e)nnNŸ|¢Ês¢b*Je»]ýè·MNMD`!œ-4!DÇ“<+æC )§—ÛQL½OÔÒ¢¦øÞèCÑß‘µÍ_ÉZ„ÛЙ)¿Æ7†‚Ç zWnW+’`ùó݇‰ã›@[)LJ±ÛG>rxsÂ?ñ
í>Ç4®èñ +-IKÞ× ôP6t®ß]]_ÒÖÔK–ï¡ÍlZxUPüòè¶@˜x-·ô>«NÐNÈ`çgL߇Ïl/xEkím“¶Ë_Öÿúpû¶U®*èš«ÂûùÎ=n|0|_WM}lËÓþ|oº‘þœXAäæøʾX]Nv<d¡d"›\P’Z¤ëéRŠBÁ—ŽãêNpr@¾%>Ô QovxtuCc–çdѦ)¼ì„/¡Çh®žçPC_Lÿù³Ã›)#óaà=Uõ¡)›1CÈ\i@—D˜)O¡a„ù«Õ§„ÃøáËÊWŸŽk`´çx¡KR+ûà€óï½ÑÉÄÙ{!yÂtjôÀ*—«»ïo¯nÖW®' +IvvBØA,Ä ³Ð[‡2\îz7ïó4û—0S¯nbÏPåaǃÁü%²k„y L†Ûu½X^^Þ²^€ endobj -2901 0 obj << +2898 0 obj << /Type /Page -/Contents 2902 0 R -/Resources 2900 0 R +/Contents 2899 0 R +/Resources 2897 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2876 0 R +/Parent 2863 0 R +>> endobj +2900 0 obj << +/D [2898 0 R /XYZ 85.0394 794.5015 null] +>> endobj +2901 0 obj << +/D [2898 0 R /XYZ 85.0394 526.0765 null] +>> endobj +2902 0 obj << +/D [2898 0 R /XYZ 85.0394 461.8446 null] +>> endobj +970 0 obj << +/D [2898 0 R /XYZ 85.0394 422.0598 null] >> endobj 2903 0 obj << -/D [2901 0 R /XYZ 85.0394 794.5015 null] +/D [2898 0 R /XYZ 85.0394 385.2356 null] >> endobj 2904 0 obj << -/D [2901 0 R /XYZ 85.0394 752.0628 null] +/D [2898 0 R /XYZ 85.0394 352.7463 null] >> endobj 2905 0 obj << -/D [2901 0 R /XYZ 85.0394 603.3016 null] +/D [2898 0 R /XYZ 85.0394 285.5926 null] >> endobj 2906 0 obj << -/D [2901 0 R /XYZ 85.0394 539.7009 null] ->> endobj -978 0 obj << -/D [2901 0 R /XYZ 85.0394 500.3546 null] +/D [2898 0 R /XYZ 85.0394 224.3257 null] >> endobj 2907 0 obj << -/D [2901 0 R /XYZ 85.0394 463.723 null] +/D [2898 0 R /XYZ 85.0394 148.1387 null] >> endobj 2908 0 obj << -/D [2901 0 R /XYZ 85.0394 431.4263 null] ->> endobj -2909 0 obj << -/D [2901 0 R /XYZ 85.0394 364.9038 null] +/D [2898 0 R /XYZ 85.0394 83.9069 null] >> endobj -2910 0 obj << -/D [2901 0 R /XYZ 85.0394 304.268 null] ->> endobj -2911 0 obj << -/D [2901 0 R /XYZ 85.0394 107.6861 null] ->> endobj -2900 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R >> +2897 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F64 1435 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2914 0 obj << -/Length 1239 +2911 0 obj << +/Length 1215 /Filter /FlateDecode >> stream -xÚÕWMoã6½ûWè(k.¿%¢'oâ|,6N;EídK¶…Z’×’v›þúEJ–Ù9ôÒ"@H‘3Ã7oHš8þˆ#$’Š*ÇS L„³NFØÙÂÜíˆX̤MÚ¨OËÑÇæ; -)I¥³Ü´lùû>q–áWw†(Gc0ÝùbvÅ»ñ„1wúô4›_ßÿß`»ÓùËô‹{+êNog‹ñ·åçÑlÙÄÔŽ›`¦ú>úú
;!„ÿy„S¾p~ÂFD)ê$#.œ±zd?ZŒ~m¶f«¥ƒ<Œ(“t€JB‚v˜ -IFYÅÄb63›š~Y<êý|¼á¸Ev&@•â„WðO÷ókƒWvY˜ÄiœÇ ÈŽfè9ÚDÇ1ñÝ(]Gfè!HË`oÌSÚ2O¤¨”ühó" -©*Ü<H¢3QùHzÊdñd¢ŠäJ=ÓÛFi©±i¨´nºµ¿>;¸¦Å3òxM³Cç}¥3‚<_2G‹OùÒR&p©Ð™–-ò‘F¿µ‰Jµœ”oƒên·Úàí -y p«€<ØCª$°ì·Ù1.v |áÆ…æ%†”™é0K‚8ÔKm±£—ëÙâêùþiyÿ8oM/Þ®b}°î{6Þ:_ZRŒ¸AjÚ:qŒº6Ë0¸ -ò(4ÝÌâÓä•>õøÆ,jÖ÷AR°ûN6†™»ÜŹAkw«È´eã ÈL»ÞEë?íЮ&ÈÚî`Òùìã0.^Úª8º4'Ä:«ÚЖPœš60MoÓ*èÿ¥º¨X[ÈÏ·/³ùòíálǤDÊ£ü²*Û¨ú,}«ÊÕhçÔ£Ècô§5hÀi[)ž±±žÓåÎÖ¶Qºî*J³qXsWeO·5øtT4eÎòÅ<¸8¹x‡¯ê_5J‡~ªÈžg‚ ”³Ë®Ô€ï΃%ÜŠBvOaûJ¸i™¬"}o)âã5œ éÖ̶`²C-¶&œs÷ª<Ú›®Ø¿öVei=”—‡\U6†Í™Ï
CUQúìÀ’t+ÊÖþ«V·‹»é„|€>eîÏ]¼Þu§í†´_ý¹z5m¡îÔ›×}òËXóè®áDŒ¾—vCz.Nô¿®ñÆŠÙ§îÁq±)÷¦õ_Fõ…f¶až^›ú™P˜sGk°âp[&àõ¬©Ïõá.½(Ã6ê¼”¨uô\+…|áE×5hÀuW…ùŒv]7ÅÛÈ°uV!œŸ¼›_qågë8ßeåÞ–ûÊ΢#°DáyRá} Kö©-ÔRk”ÞÙé:í -+‰ºì¶
¸mª¤~Ó®Û†Pëß«ŸPspբϲóæÖgU^{¯ÄÿëkY!þÓ¯å¡_QàPÿôÐn"ü׿°N?#¹‡˜ïŸ)ß^L½ä"x!Nž¨}|cgQÚ\¿sþ›ßÆ„ž_PÚ +xÚWßsÚ8~ç¯ð#ÌÔ:ý°dù‘&\šNCrÜÜLšLð¶©mšÒ¿þV–dd0Lïz“‡ é“võí·«5ñ0ü$"ya Ž ÷Ù +6³DMÙÔ!WœÀyƒ:œÐðô™ÒPÿ‚…¤ŒëDb³Œ1ݘ©E‘×qš§ù«»Ç,ã:6¶á>EœSc<À(Â2hŒÏöy±Òê8(à`(ó„˜}$¸å@ó†QHˆð|÷ˆ†à€ö(EQ"€ãg?×Wá³S2$$ 7[ò]ö%)5¬c€ : öÒseG#ªôG¢Í®ÒM’BØ¡Ñ'ÀÂדÙÕãíÃüö~ÚîꞆ(¡8ºå©F8GR†Ìød•P|&C%&E+5U”ÎR8¬’ZcŠ•žÐX³ßÕÙMÛd‘*`²Ô_wq^§õ¾{Ô¶JvË·RSJlïšðã¾&KWŽ·uºXÍƹþñňxW)s«ŽÒ«bWŽˆ.PÙWÿ“¼næ‹í^O¬ÔåD½NJ›Yšc³ÚWu’™É·´6>åEOþ$ßÒE‚~"…Æ7Ow“éü´°™ü˜_NeëÐiš´(eÙ¦…8R³Œ8;I×3‚UR^vEõøæj•àBÝqîVq®ä²‰›©)#g]·”xsÐ*}ƒH8¢?Mj")â’ñžäï¸Æ$ +)‘ös¼ÒÚÉ´eªíÖ…F€ ú§IãK¼Ý&ùR9Üã£ðF +ùï|“M¾ªŠï&ÙHê:+,"‘àÌea9¨Â²¨¶
áMŒ@iZPQ—Š0B,îѹ½³®ÀnÊ·tƒÔdõßé¦ø²¯u°ºè¾Ÿgùƒª†¸`—és@çÙ³ 2å£}8\»GÐíZÌ©ÝnÊA"ìžwY:ÈÒe‰qÊñIË #°.v›e·N¿•i]'yoEôƒ endobj -2913 0 obj << +2910 0 obj << /Type /Page -/Contents 2914 0 R -/Resources 2912 0 R +/Contents 2911 0 R +/Resources 2909 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 2876 0 R +/Parent 2923 0 R +>> endobj +2912 0 obj << +/D [2910 0 R /XYZ 56.6929 794.5015 null] +>> endobj +974 0 obj << +/D [2910 0 R /XYZ 56.6929 769.5949 null] +>> endobj +2913 0 obj << +/D [2910 0 R /XYZ 56.6929 743.9119 null] +>> endobj +2914 0 obj << +/D [2910 0 R /XYZ 56.6929 710.2666 null] >> endobj 2915 0 obj << -/D [2913 0 R /XYZ 56.6929 794.5015 null] +/D [2910 0 R /XYZ 56.6929 638.9488 null] >> endobj 2916 0 obj << -/D [2913 0 R /XYZ 56.6929 752.4085 null] +/D [2910 0 R /XYZ 56.6929 573.5178 null] >> endobj 2917 0 obj << -/D [2913 0 R /XYZ 56.6929 692.3565 null] ->> endobj -982 0 obj << -/D [2913 0 R /XYZ 56.6929 655.476 null] +/D [2910 0 R /XYZ 56.6929 493.1666 null] >> endobj 2918 0 obj << -/D [2913 0 R /XYZ 56.6929 623.3704 null] +/D [2910 0 R /XYZ 56.6929 337.618 null] >> endobj 2919 0 obj << -/D [2913 0 R /XYZ 56.6929 588.7135 null] +/D [2910 0 R /XYZ 56.6929 269.222 null] +>> endobj +978 0 obj << +/D [2910 0 R /XYZ 56.6929 226.5437 null] >> endobj 2920 0 obj << -/D [2913 0 R /XYZ 56.6929 525.7396 null] +/D [2910 0 R /XYZ 56.6929 188.4488 null] >> endobj 2921 0 obj << -/D [2913 0 R /XYZ 56.6929 468.6524 null] +/D [2910 0 R /XYZ 56.6929 154.6889 null] >> endobj 2922 0 obj << -/D [2913 0 R /XYZ 56.6929 396.6452 null] +/D [2910 0 R /XYZ 56.6929 83.3711 null] >> endobj -2923 0 obj << -/D [2913 0 R /XYZ 56.6929 211.0639 null] +2909 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R /F64 1435 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2926 0 obj << +/Length 1979 +/Filter /FlateDecode +>> +stream +xÚ¥X[“â¶~çWðsjÑÑÅ×G2CvH²ìf`S9µÙàZcl†%¿>ÝjɘÁ³[©S<¸ÕjµZ}ùÔB9üÄ0W‰?ŒŸ\Ãl7àÃ
̽+3vBã®ÔËÁRñ0aI(ÃárÝÑ3Çb¸\}ò&>Lç÷³?FcpoÊFã€sïÝdþqò+ñ>ŒéMÞN0‘R $}”¹7_LïÔÃdñ0ú¼üy0]¶6uí\¡A
>}æØÿó€3•ÄÁðÎD’ÈánàŠ¾RŽSƒßZ…Y³´ÏŠY˨ÇR…`IÈ+O •TÆ÷ÓÅÝãìÃrö~Ž§5²ã<>g°Dù‰þ}$„ðô¡Î«²•â^µ†¯L¼gó{â$ô9îi¢©hœ–+"ò2+Ž«¼ÜÜ,d!ÛÔŠ¦$òtÜÐ8K5-„ÁûÉÝxñ0ù -³·4ñEŸq§mžmñXxÖp“>ŒDìin˜xEUn€aèf›–Ž²Ó«|£ëÆŠêrÓl‰Æ£_ nÓÚN¥Å¦:äÍHxÛqþäÏ™fo`ùØ-h‚¬}Ýr"žò¦¾¬–AØw0«Í÷/ÚüÀi..3,§
HÝd`°¢ >iúk½¢ˆ[u ·eMq6©`5lt©icBƒã”Öît]§«(=‚ŸÊ&Ï@®*I.«Vv,lˆwJëëƒQÅâî»=¬}*4Uè)7 +“ˆY44B²8ØÚ„¤ÎÆÛ]šÍé Þoñ#ŒYìÇÊ.ØU«euMû4ÛªÖd‡ËÛÈ&`äQ¦ÕMÕV*ˆY7Æ2,âpþ«L±>Äôì:"»Ù„‹Ög¢MÒ +´ä’Ú̈½cÙãŒD² ¬ý7¾ˆbÚqÛz¯³Ö‚²â‡ÚÚEXb€Äç…:#×44¦¢êè +xÜ+ +@ð"ÆFÎ./+Ë¡é¿Žy[†ÀË-Ƽi–w‡Îxz¤žì¢ý!/ÍÙxWG+ëp®f.#WpþŽª"¦"IÍ4agËÿ‘Ž»÷óÅì~ú8ÁêÆnfñývfÑž3+wç?kâÑE€šŽ€Q=÷ ‚"'ñÿ,ø‚›aÃz[Áv¥^¡—ìhiM&4æCŽûn«“›²J°M"jO5ÓTYUX +ŽRЦA_×ó¼`®Ïzßàœñ +óôôeϼ•º>®9ìqY +b›uZ@¨B~Õ…QÇÂRMÓ«j—æeo¾8WŽ¹}üŠ×“æ…½×½]GÖ^/L)÷yI_8×ËÈ\óÂ3Á†¹§”ÞYJP§Ì<~j“¦È_ÓÚVðöé2œP›ÖNÙ
JenWsýÂ÷Øn`:løf[}±,ÛMŒÝA®.„ç´ÈWæ]b^[ë›<´¯BjÕWµ<Pt·ÿß6£ßOÜÉãÛï¦óåâæ›waÀ”äÉ·s³#äþ¹MM'ÔæÛ‹áŠf<J¾½e+t»ç^òñ_oºl{2“íÔ1™û9_9Ç™Ðu¯Ž\´¥Á^ûW + ÿJê1œ·1ø¿ÿ±ºü-çC ãXö»@q +endobj +2925 0 obj << +/Type /Page +/Contents 2926 0 R +/Resources 2924 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 2923 0 R +>> endobj +2927 0 obj << +/D [2925 0 R /XYZ 85.0394 794.5015 null] +>> endobj +2928 0 obj << +/D [2925 0 R /XYZ 85.0394 752.0914 null] +>> endobj +2929 0 obj << +/D [2925 0 R /XYZ 85.0394 555.924 null] +>> endobj +2930 0 obj << +/D [2925 0 R /XYZ 85.0394 468.7059 null] +>> endobj +2931 0 obj << +/D [2925 0 R /XYZ 85.0394 405.3981 null] +>> endobj +982 0 obj << +/D [2925 0 R /XYZ 85.0394 366.2553 null] +>> endobj +2932 0 obj << +/D [2925 0 R /XYZ 85.0394 333.1561 null] +>> endobj +2933 0 obj << +/D [2925 0 R /XYZ 85.0394 297.5057 null] +>> endobj +2934 0 obj << +/D [2925 0 R /XYZ 85.0394 231.276 null] +>> endobj +2935 0 obj << +/D [2925 0 R /XYZ 85.0394 170.9331 null] +>> endobj +2936 0 obj << +/D [2925 0 R /XYZ 85.0394 95.6701 null] >> endobj 2924 0 obj << -/D [2913 0 R /XYZ 56.6929 151.0119 null] +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R /F42 1288 0 R /F54 1383 0 R >> +/ProcSet [ /PDF /Text ] >> endobj -2912 0 obj << -/Font << /F38 1082 0 R /F21 994 0 R /F40 1218 0 R /F22 997 0 R /F42 1288 0 R /F54 1383 0 R >> +2939 0 obj << +/Length 838 +/Filter /FlateDecode +>> +stream +xÚ¥UÉnÛ0½ë+t”šån=©©³![#·(Ðö Xt,À’-Mó÷Š”*;Jz(XCòq–Ç7$ñ1üˆ/$’Š*¡8˜{Ø¿‡µ8̼ÍǨ+ïý1}…”¤Ò_mF¾B„Ãø«ô{°D”£¸ÀÁU¼<b§Q|:›S²`,ˆnn–WŸÎ¾ÁX`@ãà2ºú]ع›™¢At²Œg?WçÞr5ä4Λ`fzô¾ÿÄ~ +éŸ{1 +ÿ ¥¨Ÿ{\0$8cýÌ΋½ÏƒÃÑj·uŠ.B$(—ÀE!¦Ód´ 0N Gõ—,J¦ÈêQ†¬dw_VY³ÍË%˜˜ÈÌ;}z@MĦ£ØK8F!÷ƒG@¹AÑæwº26²"ÍÖI“÷vÙj»°MêR†ÓãœGmUÍHè¢Ù=ì*‹~ªnʪÑé«îìpSV† +"RXš RBÐ.ãNP³9ÃaÕöŸFsòlÊ‚§m¶Þî/»‚L\3¼{¶ß.CcôÅ›|€/[벨õcë +2+?(åÄüí;¼Ø:ÕÖzÓî¬ý+Ùµº«÷eØ1Evjo¶Æ•±’ŽÃû6‡¨è…öÂd¸ +¼x;tš½¯BŽBF÷C¯: +"Ä„?¸)Ä¡§y „#®xˆ¾¬N¯o'<pV@sº±YÄÏu£s§á#h8¸³6íµƒ€|Z#xÈð¿_¿Ï=_ †tZm9.Xóxù»ÑEª]3Æöò·ƒ¯3BH «ú ^)X@1~Ù¡Q&é +endobj +2938 0 obj << +/Type /Page +/Contents 2939 0 R +/Resources 2937 0 R +/MediaBox [0 0 595.2756 841.8898] +/Parent 2923 0 R +>> endobj +2940 0 obj << +/D [2938 0 R /XYZ 56.6929 794.5015 null] +>> endobj +2941 0 obj << +/D [2938 0 R /XYZ 56.6929 615.679 null] +>> endobj +2942 0 obj << +/D [2938 0 R /XYZ 56.6929 555.6269 null] +>> endobj +2937 0 obj << +/Font << /F38 1082 0 R /F21 994 0 R /F22 997 0 R /F40 1218 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2165 0 obj +2164 0 obj [986 0 R /Fit] endobj -2000 0 obj +2004 0 obj [986 0 R /Fit] endobj 1656 0 obj [986 0 R /Fit] endobj -2925 0 obj << +2943 0 obj << /Type /Encoding /Differences [ 0 /.notdef 1/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash/ogonek/ring 10/.notdef 11/breve/minus 13/.notdef 14/Zcaron/zcaron/caron/dotlessi/dotlessj/ff/ffi/ffl/notequal/infinity/lessequal/greaterequal/partialdiff/summation/product/pi/grave/quotesingle/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 127/.notdef 128/Euro/integral/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/Omega/radical/approxequal 144/.notdef 147/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe/Delta/lozenge/Ydieresis 160/.notdef 161/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis] >> endobj -2197 0 obj << +2205 0 obj << /Length1 1628 /Length2 8040 /Length3 532 @@ -14182,7 +14384,7 @@ endobj stream xÚíte\Ôí¶6Ò ˆtÃÐÝÝÝÝ¡Ä000Ì ÝÝÝÝ’‚R"‚´t ÒÈ‹>ïÞûüž³?³?½¿w¾Ìÿ^×Z׺î7¶‡Œ5Ü ¬‡¹rðpr‹t´P(ÐWç…CfL9g0ЇÉ]Á¢ -Äü{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 @@ -14205,129 +14407,127 @@ $OíœàÅ€DÈ t‡Í=žÝbóÆÃwî6ß"£“˵?”JËOP2RÐoQo+†â1)©w†¦ÜèådîI½ÈZ¿VÍ(e÷åû È"[vQÔü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 -2198 0 obj << +2206 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 67 /LastChar 85 -/Widths 2926 0 R -/BaseFont /QFCMYY+URWPalladioL-Bold-Slant_167 -/FontDescriptor 2196 0 R +/Widths 2944 0 R +/BaseFont /KXBSTB+URWPalladioL-Bold-Slant_167 +/FontDescriptor 2204 0 R >> endobj -2196 0 obj << +2204 0 obj << /Ascent 708 /CapHeight 672 /Descent -266 -/FontName /QFCMYY+URWPalladioL-Bold-Slant_167 +/FontName /KXBSTB+URWPalladioL-Bold-Slant_167 /ItalicAngle -9 /StemV 123 /XHeight 471 /FontBBox [-152 -301 1000 935] /Flags 4 /CharSet (/C/D/E/H/I/O/R/S/T/U) -/FontFile 2197 0 R +/FontFile 2205 0 R >> endobj -2926 0 obj +2944 0 obj [722 833 611 0 0 833 389 0 0 0 0 0 833 0 0 722 611 667 778 ] endobj -2179 0 obj << +2183 0 obj << /Length1 1630 /Length2 6133 /Length3 532 -/Length 6982 +/Length 6981 /Filter /FlateDecode >> stream -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¸ -ïeë[ă»4fÖ)Æ»'c£»¶*2‡Ìu•ÙÖ£™øM×E; -at -½’•sJÜkŒ"êC3ó®cUÉÙ4eHÎH~0+¾÷ì -£Šà> ä>-e™÷CL\¸³Äù¯“7ôwÂI:HÁ®óÚÊüÄRö*gTréïI(J‹ÕÏÀÒˆª1!øRb’>¹`ÕÕâ13W@‰MÔïÒ335,Gƒ÷îÃ'V? 9ZŽfjW]èUªŠÛ¬[ßÑY@ÞCLAíŸjÙÙ*+òæÅõÁÉÏ5~šj}‰Ûy]ç¼cñvË‹Bxi9]'±|¤“²w/±2X®‹‚8w^+ÐKºDœ~$ìl‚Ý‚I®J5`žV¯ipw/¢6’ -}ˆçãõF´£ögºts£ng]á„Ö|Õ`ˆksÕ8;¾Ï»´²?…&@È™!*¦54[«*/„“¶sÈo?87Æ…ÑS)ê¿{=ܼP‚+»Ñho†lMe$—ü¬NRž3(Þc½4ûô.¨’õ©ë~FZBô¾Y5““_ªßþÎhd%\N+œ2‹ÐèÛ—ˇ)™¼¢{ás9͆·ß¡’½¨™”qá
'N_Φíc%}#0~?3¸¦fSwß2œ]aµo1ŸJ(Ïá®óc¨ƒ~ P ʽ]HϨ}æKU«Ù0¼Q[»SÊvåg à¶"hÉþÄêYáÿ/¤g¹iŠWœeM¬”…¨AˇêžÒGªrÌ,ÒÔ‡Øn¹äV¥õ†¡¯ø]mÔÅbüÒ&‹’j´¥‚LsNù£97œ{xØ4()Ûó’:ÍÕJ QɉÓ4âQxŸ6êw´êú|©:T™$·Ü½Ê·ƒ -Õý‘–”øц1öã9ã^Ìæ‰ÍDqf -pR°‚šL\(<uØÔûÐéV‘‡á£©
ež¨ÓE§vìA7nEŸbü¤6ÌÑ
ä¡ÁDÈ;Cŵ½AŽcήšÏêYcg)äµU4ø&š˜,9D -V1-S¸`_3ÄÝËú%6BëbØ
r¨Ãt©a*Óغ0ɼ•uï´ñï¨Î)y©@[gbL¦Ç)Ä?ÊDâÐ÷*éԒꟲGê«àI÷_â‚R§—«·>noߢiŒ!L½<©35¢$2MIÝw™ôäs¢¨bâ<ûVÇ–DT£ì¶"Y \FÉ…Cóuø9TcÝI¥zÒ³€‚*lõ™s$a`FéúÀµ
(X×Ñ |
| -5ÌÄ÷
o榯‰‹ûȯg¥Ï.š%~2Œþ
Í“ 60×Ò3îeÐiÁeø¬O3KG·l¯„šÊé:ÐgyÐóud6pD‰+v°Ìb¦Nf‹Mh¯Ëaˆ>.`È.kŠI¡iøòØ"ÌSˆå0ÙÒ—ûbûj¹Dä§ Éj§×òáøg”ŸV0½Ð -½c–$îSÓ5¬´0ÏÚEdÊŒ0ƒh(‘©ðñôä‚Iµ±¾»Ú» :—2´Ä!<|^Þ‚X2›/¾5obÿd¬ë¥KºÃwƒø‰Õ˜ÞMG0C&ÊØjãž;áÔ+=ÃÜãÍEXr#à]Cg
"}Yá¾.¶aýìY³ÆIˆ/^Y»}$oί8lU†ø„=O'aFX²Åï9hRÔ¤[ÞÞ[ù~ˆ[ró—M~“j…<·ÑVG½‹Xî//¨šá‹ÉVà²hÑi·¢·æÉå6I?,·%F\œÖô™–@êõ~ø†YýE>eUλGwü^‚}«
2ë$¶Íð‚ -ïcñ•ñZ×™b”[DÌÛ³>Â&Õ—ÂaY
Kê{@”¹¸’QeUSæX6»ð¯CvòàªÇ£hœ½a¢ª§é›ßôóƒòêªÎ1‡(‡(-Ô±ßV”ÓyCC..& -®Æã -7/ƒ[\ÉcçtFqóÍÍhF4®¾¡õz»Bö¯ ÐØóÜE™Œ®
#ôÃëÅš[È -ŽM®Aµì)ÅŽ¡ArjgWLØ;'·p -²R -Øêa³!ß™ŠxW_FÅyë"3Lêû¸Ž>ê‚*8VŠí_ŠÀÊëó<"•{•îÛá[w õ(FïVqQß¼óq–QõvÕ’Tw͇\÷Yd›fÜÞ>ÄO¯Þû9÷aZjümµ=!À›œÝ>ÜüïQ3Ù¹åÔ«^ ü9â@"ñF/h•>þl`|ò\ÕIh=n‚ÜL'¿õkµf9VÒjt‹ƒS~÷Ò¤&ÀŒTú'§$à3ã!Ê5vÿÃJ -ƃ>³ÖÕ;À'uãá`:?Ó+Ôx`ïq–΢vIÀr= -ȘóiÀù ÿK1â Ýc‡É…ã9áU¦ -ÐíC¡Ówï»ëÉ“º¿Zèp½÷äOô>/¨lÝ4nlŽ°U-oMôÙ“ˆ
o:œ©Í|y„7MT{õ ¯=i3RÇVHA9jQ¾rÁ3ãaÂ3œ´X_¿ÆdhÚ—E/Oö\ìKɬÝOõš_·—&†÷ê$ÀuæbsAƒytN.`.šâb™Ê¥Ü†€ð6é瘯l¾}êÈg|ëwRŠžhXŠs×L84ØGê} 1Y³mgzÑìÅÓŒ$»9ñNh‹Í”ŸâÕ÷ºXsm{Ôg"'H±¨ª®RU\O¹<Š>ÊlSñ" -‰ôt.CB±|…—(z?п)|Æö…›‡8csa4«ªy=~U»+jð*Ì8Ó“«&ÐÐåÇw?´,IpöÛ7oå¡#½Ëõqw¾}eüJü¢šïUølœ]Rçm‘LغÂ=Îk¡·ÐóKJ;œuY8:B.²åžðŒC\„0&õê®X¨ÕåsÊ;2•©`‡¬#¿Ê"ÿÿátökä -¹Ø+`‹ï—Rp 36‚FŊݹÎ%:b‰»•¯·0Î&SwjÒV‹C%#N^©Û™KuÓÏy,ÅEŸq&¨ãò8¿ªÊ{DLGÌ8½UTmÚ5leUÍ?6¹6ÞÒ6!-+ÁöŽ·¶¯T(wu9eQ–éáö:Jmš»4
û_}ö~N†ŒÁOkôÚ‹Ö»µ§½Mìð}íîɲư™qÀ“ë`Á+–»5ãéö×d[%˦×÷[M–ŠÁÃ#ߦT\Ú*wqªÝ¯¢Øg”‰˜÷Õžà$²dß]Í|®yó9¾è?)ì#IiwñùŠ€%z :õÔÝ3°ˆKzW†Fc¾òm={‚ú³8uL‚ÂôwÌY«|í»U&›±”n{ÀeóbL=Xûy*áwSYø"FžN†j×'›<ºÚyÍ7Ì4`u¹§h‚Žï›Ô -M0 V”µ@¦ØRšÁSÇ8${^™æÒu”œqÿ›ÀÿüŸ °r„X¸"áN®€ÿ»Ãyendstream +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ƒú,'¯¤¯©Íö¯o×ß¾ê7[€Ôör†€þ;‘ž +Üú‡_LRRpO7· ˆƒ÷F7— /H˜—ßç_dýMÄý×YÅé +õqqrqqƒn~ÿüþu2ù,Ì +nýko´0ë›Uû‡álåæêz3áßoÿMáž/=â ±LOÀDƒíS3ÒUä9=ý2F:¸1zBœ‹k´_çûWÀÛýRÃ…ËÌ/*C8kE®š¼Æ·/W•X×z;È·'Cöò¨|èYÞçÍ3½d[›ã§}Õ‹òÞS^À4àÒ][ê×Ð4-º¸|Ç늽ÊâOïžïOÊpâLàk•òöÕƒÂÚ[ÄUÛ_™6OOwõ}ìén?¼û~•’-û£¨;&>S¤¿K6åSCRÙò·ª·ãòŽXXðð+yÏ—×ro1XçFèÅR61žêDžeâ§Á ×^‰mùkT³ïT¥ØÜKCvá)µKö±éû¬l´¾úï.ú¹üA¢IὬ}‹xp—ÆÌ:…x÷dlt×VEæ¹®ëºB4ߢé:°h`M$z¯=Ä*óù?7l &?QäÔ…ÚvÆ<=yÊÙûÃ㎣²=÷'ºçäÄAŸßÊ}gw‡U¸'b%6—=\5Æ„¶O€X)Ô| 6*˜Ö}ØŒôDVs§Up
ˆíbëÞ×…+Ïo_MX`êÁWÉC.Âß6¼|í½ÏÊ)¥2ÉP0–b®G+kGõýZŠÿåÆ~+`çÑáËé +Žòêˆ +âÜy@/èqú‘³ v&¹ +Õ8àñ´ZÕHƒ»k|鵑dèC<g¨7¢µ?Ó¥›-;ë +'´æ«:C\›ë¨úÙñ}ž¥•ý)4?BºÈQ1®ÑZUy!/”´C.pûÁ¹1>(ŒžJAÿÝëáæ…\™F{3dk*ƒ +ù£ÜÛõŒÚGa¾Tµ
˵µ;¥¬W~òn+–lO4o¥ø!=ËMS¸âØ(kb¡,D
ZÆ8T'p—.ø;2S•cf‘¦>dÇvË%·*7}Åçj£&ã—6Y”<P£-µdšûpÊͱá4xÜÃÍÀªNIÙžGÔi®ZyˆJNœ¦‹Âƒü´ÉP»£U?ÐçKÕ¡Â$±åîU¾¨•¯î´¤Ä6Œù°Ï÷b0Ol&‚3ûh.R²ÔEµ6¿PDÌsXykdìnq¡9¬[–º4$4´vŒwäú¾e'1 PEêA„÷ƒ?´ó2k¡†ãÌ2ž"šüœ÷‘
R´«Årg?Òûü°ºÍ(çóˆÇxemL Ïç&¯Ë0ú¼B»=0Ò\3$Kr¶êó„ÒÛ+©/fÃl»,{„ÉŠSÕÇúߥÛÌûzTÉߥ\ç› +j2ri ÐÔaSïC§[Ev„¦6”¸£Nڱݸü}Šuò{´’Ú0G/P4t‡!ïLÖöÙ9ºj>«Dd¥×VÑà›lh`2爙0#·êZ=4í%牵7h%Å Y$Zü¬ˆv±?‘©‡É=áមð;Ïcc„—÷:IêÖá°5ž’”ö×yÇUµD2>ÃÙ}ÐŽvk2š>2òQ×
›yôASLPkQ¡âZõ>×_À +ZŒvR¸pdÎ&QºÒàî¯E¦âx|E&ù'Ar0Ëèh"
’çÏvÙý½Ï»ÓçêßV¤0²iRÂyO„jßÌé&šH¹£(Âμ4™ +V1-S8`_3D ÝËúÅ7BëbØr¨Ãt©aÊÓêغ0‰¼•5ï´ñïâ¨Î)9É@[gbL¦')Ä?Ê„ãÐ÷*éT“꟱Eê+ãIõ_â‚R§—«·>noߢiŒ!L½<©35¢$2MIÝs™ôäu¢¨bâ8ûVÇÌšDT£ä¶"Q TFÉ…Cóuø9dcÝI¥Z’f@A +»<¶ÚL9’00#†ô}à…ê¬ëè¾>€à)†fbˆù†7sÑ¿×ÀÅ}ä׊³ÒgÍ¿?FІæNP˜ké÷2è´à2|Ö§™¥£[¶WDMåtè3?èù:28¢È;Xf1S§³EŠ$´×å0Ä0d—5ŤÐ4|ybæ)OÄ|˜léË@Èu±}µ\"üSÀd5ŒÃkùpü3ʇ×Î ++˜^p€&9I‘òÝÂcJ-Ù.Eâ.ÂÄSL” +”kx±saóÝÒ÷ÁÜ÷Kk ]ö¾ô3 ·/*ÉmÌKgƒwõÇ–ˆýIô‰ù¤ŽòŒ¿Ù=a£ïe€üvû# }Llb9_ÚEƒˆÓFHRòæ›=ëGýTùH:ñ9ˆe¬ù6PÃ%BÒ§4ž£Ò.n+¿ƒª°ÿ9ÌèÙïc‚4Ã_gÇÓ¶ú‰s+>傹»˜‡¬9,Épª½è!׉·ïhuFÒiU2Æâ-A6L;iY"Û±+hô3…RÝOïi¦¹Í —Š‹ä©ˆÏHžn5÷ò”JDýÉ›³¯pôÝÞó4ÇÃøJ~t‰•|§›19äÚ¸N±)¸}> ˜5.¶5Œ¥¿þ“<ö¨õëGš±×1{!•Å²ê3‚A-üMÉcÂ[ ×%Üû/¾¶°½9oØPO;fiv±}½•@ÃœJ#(G9j>2š?¤Æñ?~ªÑWåïBç¡ÛµO±B¥™Ÿ†ñúÃ&e“v”3†ÉÞ&™<)ïÈxbý'.¼Ï\Ì_³Ÿ±‡Ý'0þààõªckêUPe¤cne„žÁVó“pÜ Ê½ö>ÄÐ +½c–î3Ó5¬´0ÏÚEdÊŒƒH(‘©,ðÉôä‚<Iµ±¾»ê» :—Ò´Ä!ܼ^ÞXÒ›/¾5obÿd¬ë¥KºÃ{ƒø‰Õ˜ÞMG0C&ÂØjãž;áÔ+5ó¸Ç›“°äFÀ.³†ÎDú²À}]lÃúÙ²f“_¼²v-úHÞœ_qØ*ñ yžNÂŒ°dŠß³Ó¤¨Jµ¼½·8òý·äæ/›Ü&Õ +yn£ŽZ°Ü_N@%3&“µÀeÑ¢ÓnEoÍ“Óm’~XvK”¸8é3-äëýð
³ú +¼0ʪœw(îø7¼ûVdÖ‰o›áÞÇâ-ã±®3Å(·ˆ˜·gy„Mª/‰Ã¼–Ô÷€(sq%£Êª$¦Ì±lvá3_‡ìäÁUGÑ8[ÃDUOÓ7¿éç=åÕUcQQZ¨cÞ(§ó†64†0\LT\Æn^·¸’ÃÎéŒââ›Ñˆh\}Cëõv…ì=^ÞQ¡7°ç¹‹].Fè‡!–‹5·›\ƒj+Ø3Š7B‚äÔή˜ °w>Nnád¥ +ecŽ¡ñ³b2•ßÃÄœ¯ît¸âËA".0mÕjÛ;÷$èÓ#Ó“]Q;Òvü‘‡¦ýO¢Â{'ˆÈ‚1N;$F_<tïy ã.“yw`¸`[ÀÉ¥½¢‘öâÈwxúÎÂ-çsy¬û³B£¼!ç?7p>Õ~@ +ÈÃñôß[Ƥ7œàÀfIŸŠ¿iÍPŽêbFDt¨%Sc<ØCÞ±‰¤_¥}#툎~áß\°ÕÃjC¾35𮾌ŠãÖEf˜ä÷q}ÔUp¬$Ú¿•×çyD*û*ݷ÷î@òQŒÞ7¬â¢¾yçã,£êìª%É0®š¹î³È6¸½}ˆŸ^½÷s®Ã´ÔøÛܪ{‚€79»#¼¸ùߣf²sË©W½ørÄ(€Db^Ð*A|üÙÀø乪“ÐzÜÙ™N>uêתͲ, ¤Õè/‡üî¥IM€©*õO ÀgÆC”kìþ‡• +5Y_£cóclNŒf•@Uï '¯jwåB
^…gzrÖ¤º|`ÿ! Î~û¦ãt¤w¹>îη¯Œ_‰_Tó¾ +Ÿó/°Kê¼-œ [—¿çÃq-øz~Ii‡³®>ëGGÈF¶Üšqˆ‹¢À¤^Ý
µºÜzœòŽLy*Ø!$ëȯ²È¿Äø +Òí¸FúïšyË«mn£°MWÑl‡ög2w™SçäSCþ¹A¡‰ endobj -2180 0 obj << +2184 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 66 /LastChar 78 -/Widths 2927 0 R -/BaseFont /AZSKOL+URWPalladioL-BoldItal -/FontDescriptor 2178 0 R +/Widths 2945 0 R +/BaseFont /FGJXRT+URWPalladioL-BoldItal +/FontDescriptor 2182 0 R >> endobj -2178 0 obj << +2182 0 obj << /Ascent 728 /CapHeight 669 /Descent -256 -/FontName /AZSKOL+URWPalladioL-BoldItal +/FontName /FGJXRT+URWPalladioL-BoldItal /ItalicAngle -9.9 /StemV 114 /XHeight 469 /FontBBox [-170 -300 1073 935] /Flags 4 /CharSet (/B/D/I/N) -/FontFile 2179 0 R +/FontFile 2183 0 R >> endobj -2927 0 obj +2945 0 obj [667 0 778 0 0 0 0 389 0 0 0 0 778 ] endobj 1508 0 obj << /Length1 771 /Length2 1151 /Length3 532 -/Length 1711 +/Length 1712 /Filter /FlateDecode >> stream -xÚíRiTSבª¡¬2©¤j=,Œy5„„!£soÈ-ɽôrID¨¤*Ë"6ºd¥Âª"P”Zb^'Ò*Â#,ŸEªVEÀ©¬««ôgûëwΟ³¿ý½¿óMs‹1D¶ÆP‚Áar„ P*•pØ€<³Ù-‡å‚¡ArŽ@àVkÕ€»°ùBÞ -!O¡@,]#©*xÒ'I| ÒÀ8¢£@*'T°†¬¡«S 0¡g‘Z
ÖNÞÈ -xLɤR$„¡j=€`%…µ#»Á¤–BÖôâÁZµz\3Y~Ê©¿äåDÿiÒµŒ)Á8:¿'…!D«™ž•r5¢¡©j08+™ì•op$#ÑÁPB(T@)WgÀS8ŒBÓ•þMé`IE¡á‘Až¿íT2BŽ D”>ì?ØS1ç˜4 Gt Íd³9$‘ÜoOIÓš‰Q!h*àò¼€Çåz -9DdÄÙ€ ¬°ŽTÌb¢A^¤3¹@‰á”Éõb–ÎȘDß -þàWÇŽ#ÇJG¾bAJ^?õ”(Ç”-cmíu4Ù»Ð+÷Éf=P'&ϸTÞÞöžæÀö»æÅ–ô&Ï?º?½“yζ>ü‡_E)šY{óÆËÇyi;ûÍv_BîC¥”¤òÓá{à˜ÿÞ)¾2q?«ÆÌ5—æ'î{êüÊLm»Ý“vËÞ(0”Km®}_ÌaÓuÊN -gÚbs\™`µL8{¡×µ˜ -#°zß×Íç×Ò&ýeö`7]0èf|·GR[+‰]p´ÒIQ»@íRCµ†ÚÖµjüÐ…–†È§´†.®o '½immÊøKÚ¯KvÌ|’ôüyß³×jëE¶›•ëñ±žÞûý3=<‡élªíÕÏLnñrÕw ‘hŸÝ*C»æßþ9-cR'¸žïrãÈgîf.åžp\³·â_Òuž_7›v'ŠuV‚ø‹è‡U¾ØjØÏMLèK9uÓóR]ãùê çºÂ™I¦æààê%ͳ±ÞÁ€ùn~Î}æ:ˆ-Q@µÓ|¡GW|_u6lj71¾è˜Ðë@ÏŸ¡J£MM#‡½åÙm^¶“y?jy¶÷/6çÂêRô]Þu'LßÏ[¶ŠÊaDîM;VV»M£$˜³ç¨ á!Ǧ"çìQówÊr¼Ô{„m|ºœÞN[¹îáPñ¼*…‰ÇûŸimCqÔr|<;“{æ£õ<ŸÄÔW=~‡×¬ÉÞµñÁ£›+m_OÚ
ô -¨éâOKó^oí
ÑÚ9Š›;ÌèÝ£ÆÛß÷#‚ÁÍg:jÝ}ã¾Zê×J?ÿŸ±U‘®£2*›Ž÷,²˜ A-Uš:äb¹ Oõ0»š¤ÎßJž¸¢¦–tö`‚vèå‰êÒVž¥wÕI/7"|¬JˆÊ–JN©—[͸=sìq©«å)¾éÀÕP~cÅNÈÿVeĺÑÊ ß;ÝÚ|çË#E?^!UJ_'Èö¤ÌWféu]󲚻Ë8Tè[N”ý9÷‹S†¦MVóð5’èkUǶkÎWBcì5œÍ±÷Ù‘¸Î›ws‹VS©Ÿ †¥õcº}õ¡e–þ#;.fE¿_hºããZ&.}eS?Ôa]žxˆ+tjR45v_¨*±ÿ0Fˆ—E(Úo%o^=,o<¾Ën;ç *§¤{naˬ…;6ýèòhY¦¬òËu~çø™1gƒyýþs¾u_\¬" äÜCÅâš©wŽ¡9Ïü¿{zÇ6htÉãØ3Æ¢ÂçUßiïŠÉðå.ÑͶݴºnusMYánéÜZ§õï„8ê¸,¼ê໫£¤ƒ÷Iû8uñâUÂÉå._ëSŠ9A=†‡!áYz¸²_Ó×äÔîÏÌÏ•t_ß9¢Jnì¼Vžÿ-k¤N´Wï›Ã‰ÎgùµÏÂlfÝûàJü§ß¤ÔðÇ΋[“®ö~>¹ƒÿœĢ'3äĪÞ<ó†'Y‡ -ª©u쿹(ÿ/ð?Q@¡†å8iäxå7#OŒ‡endstream +xÚíRiTSבª¡¬2©¤j=,ŒiF
!¡€ˆEÃ(ƒÄÜrKr/½Ü@R*©Ê²ˆ.EE©°ªÔ¥–X…p""<ÂòùªUpz¬««ôç{¿Þzçü9ûÛßÙû;ßÙ49Caa †“#Á2™”Ãä™Í¦ÐhÁ8¬
Q°p°R§Üe€Íò– y| +
ciIQÀ+˜>Aâ‘Æ¥2¡†µd
¥Bä˜ ˆ4°nâF:X§Ãx1)€%6Â)JaMh’¢*ðßÂ.í]*ÆÓIQÀkR&"!Õ +MUBú7©ƒ%“Êc$k¼ÿøÚÉd„A‰HCز'cΟ1iŽèA<›ÉfsH"¹ß§4£JBÐÀåù +Ã)ÿêÃ,
œž>¾¸€•21{¤{Øߟ„é³Ë¸€Áå‘ØË}ŸÇÎùQ©Ãq%&LJ4è]¬BHOaX+)–›˜Òoë§ûNo¯ÉWu³§§Ï7ÙÚ~~Û)“s¨×Ïå:Þøs$üÑïÎÛœ?EŽ;•‡Ã‚T¼>êiQ¶9KÎÚÖãlvt£Wì—Ïx¨JHšv¹¬õíÁ÷,iÞñ|v7ã¼}ݪû~%u¸pzÍ›¯žä¦nêè³8|
y–PËάÚGÿónÑÕñ¡Xf©¾<7aÿ3××jëîÔÛŽ&±LfwÃäÿr›®WõwP8RZbK+å™ó}®G—›€Í‡þ¦Ø€æ¦pÙo3ºè‚ÓûÝÒüœ’°iÔȼc.ÊšyÿÐjª-\ߺ¾E€^,°Ö¯ÍwIïäúsÒ÷ÒÖ%½¢ý¾hçô§‰/^ô>c¤¶<TfyظŸ˜ãí{ 0ÃË{ˆÞΦÚ_ûÂì§Pu†õ:¬0¶i +ìÏn•XÁ<·›G¿ð´p)÷…cÚ}åËÖ{ÛdÞ“ ÖÛâ.¡ŸôW>ú×¥ãn’$8¾7ùlä-ï˵
ªB\k¦'š›$’ªEM3±ž ¹®óýf;‰¬‘@½Ër±[_ô@}.Û…7>¶à¸Ðç`÷K¿ÁŸK¢ÌÃG|äÚn™—º‹ù ri–ïovçÃk“
¾µ'Í?ÎY²ŠÌf¬Ý—z¼&¼f»ÖðX0kï1Aý#Ž]yö¹§¢¦Tex¨ó +ßôl)½¶áJíc©(âEe2<ÛÒŠâ¨õÄXV÷ìš
<¿„”×ÝGÖªÎÚ½éáã[ËìØ@:ô÷¨iâÏKrßlé Õ98‹›Úã-è½c¦;?ö!‚-ç9ë<ýc¿YÐB»ðÑk\gUd[ç]hÛ?Nƒš+µµn4ÈÍz9H‘âeq7Ë\¿—>uGÍÍiÆí‚vøÕɪ’hV®µgÅ)bÕh¥•/–žÖ,µ™vgúè“wë3|óÁkaü†ò]Pà튈õ#ãþw»Æuy®W†;~=³L¦’½‰—ïMž«Ê4è;çd6u•Îs*×3¼¶žY“õ%÷«ÓÆÆÍ6sðÕÒè;[uûöë®Wⵜ-1=÷ùÑØŽ|»÷s +WR©Ÿ¡ÆÅu£úýua¥Ö¾£;/eF}X`¾ëí^*.ym]7Øn[–p˜+tiT6Ö÷\¬,vü$ZŒ—Fæ+Ûn'mY9$«k8±Ûaç:»¸kvAóŒù;7ÿâöxI†¼âëõçùùÑç$¼¾ÀYß{.,RPRÎÉÁ"qõÁ”{âž°ìç?| +ìfÜÿèjÜçß%WóF/ˆ[¯õ|9²v'ÿ¥%‘EO,b(ˆÝ¼9–O3#çWQkûÙÿá¢ü¿ÀÿD¥Và¦Uà©” xŒ¥endstream endobj 1509 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2928 0 R +/Encoding 2946 0 R /FirstChar 60 /LastChar 62 -/Widths 2929 0 R -/BaseFont /MAHLQD+CMMI10 +/Widths 2947 0 R +/BaseFont /MISWFO+CMMI10 /FontDescriptor 1507 0 R >> endobj 1507 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /MAHLQD+CMMI10 +/FontName /MISWFO+CMMI10 /ItalicAngle -14.04 /StemV 72 /XHeight 431 @@ -14336,10 +14536,10 @@ endobj /CharSet (/less/greater) /FontFile 1508 0 R >> endobj -2929 0 obj +2947 0 obj [778 0 778 ] endobj -2928 0 obj << +2946 0 obj << /Type /Encoding /Differences [ 0 /.notdef 60/less 61/.notdef 62/greater 63/.notdef] >> endobj @@ -14347,38 +14547,33 @@ endobj /Length1 1199 /Length2 2269 /Length3 544 -/Length 3057 +/Length 3058 /Filter /FlateDecode >> stream -xÚíWi<”k2e$ûrYF3v*ûÚ £±S3ÏŒaÌ0‹})¢8ÙÊÒ&Yrd+BeK´˜YC©(‰’%Ktê}èTïéíÛûíý½Ïóá¹ïë]ÿëºþ÷uxd1X5Í´¤Q™jh$Ê - -Žd&ü¥šÑA“L£šã˜£°ÅÑ
€F ô´PÐ¥ùÍ‘F7 -2Õ•¡b-¨3šÿ¾¦Ÿ9™â¡ÆBÕ¥¡•L
ÿ%D$S ëíXêNTr ´1ÿ; -…Pkï÷Õèp 4*%ô‡»ÎÔ÷9Øï·µPùUÿß=MMiZWPÓÐÓÐh¨O}mÍŸY¿ëñM‹u+Gþ»VÔJ*‘èm Òò[[A Í*€XmeàŸüv4&ˆcä‰ÒFA}п¯à¿²ŸsX²(”ue_% MÀ>`M -tqÖ”!ãÿ# -çO¦„þ"îgGðë…ø›îgø+» •D5´ÆW#™aI 2ïóuv¾ÉMX¿ †Æ ¯]q(DýæèCÆûQA:”u¤~JjAÅÓd* À2¡ÅÑ ß
k0žE§C:ŸûmO$C%‚`ˆ‡öÓð»ŽúV_¾j"¬öê¡f‹ŽÓâ–Œ<‰Â1†äl¶÷»,©•» —‘mŽió1,÷Øh»‘#>UÒ"I7ØOß´¹YP(NÓ:Aâ-òÚn;ƒ3[]³¨‰´âY9oÌBïY¿—-YtS04ëÄÆÓD¢·/»¿ž´‡IJ—ä—qÛOô+ë‹®ÄLÛ[S¢`½ìFs”o̱,ž½·j}TÚëÎSóvI¨¬AЫ¯ÿŽ)¯vto¼œY9ã-évY× ±ã–ÆŠOqqå*; _{¯æ€aÕÎk.ˆ¤÷1¦*g„¯²^¿u=R"×\Y\0ÝTô4·£ZYýJQúñjÓ±&^ÁÁ†&.è@õ¾|TØà*nÓ¿li®½ÛdÅ4©ÍºrÉó’ø9éY9°@ic_ÙìvËÖ”VyÆ
ç(«ëXÂê´Äq£;ªç»_L¹n·Ýª°À}Ë
+<) k3a³Q†6è>ø½R| 䶸¶ñ/ƒJŽ8+[’Núеc°^‚\[eÕ™¦Ö³asâ
G?óõ'L¹¡ÊxK<yœc›ãÞ=öØ
ÿ,™Êá²óíV“)ц¢Ã[Õ`Vµ·&‘åê><šeÙn™ê
øƾ \|îf®©ø«ˆ©<g½Á™ýÛBΩë·q‘úèMAõAÜ^ïÆÌ^è6ÿCÇR±Ä)1ë”ÏÕY›'0vE5£i¯,<
HyS=x¾Ù+4Uevò¨ç½·lÆPçñAç ìÚúv™ókb»?{¹j¹¾1ºžY`ü%~§sÂröþù›DÇ«,K;¶sÆœŒg®êýQÁm>-œBœ<úŒ+*QiN‡£]a*?ùqŽøÃ:Kîu<yýŽY^üŠO€eØ{Ó/IØs?#¥–BÕ‡û‰Ç‡mGú…C¥4æ%D2êÕEƒU·u®vùnΕ“˜\=ÁæW¾íV!»Ì.þëű3&ÚÝLÉ'‹UæH¢Aï7Û;°ËËIé/]•Ü?D‘à._úÐKi&´zñV©Q—Õ¥ÔªJ*¡`ø›×–µTÁ—=¥úÿüSÖvÈJÂvÔNÔÓŒµîÕXÏ+O
¶¹ï½ÔSÉø,ѽéKF ˆŸùtù£²‹S¦?ĆǸoÛ°Í庀œœ£7=Þ«êûôDIgØÙƒÃEhQö Pæo/7_Ñ</a• -NÒ.%ZR¼Qmî)q±á•X¯Ó‡M
q?j{[Ø…àïN”^•u=î~é(L
žfŸ%î,؃WýK'ã¬@´˜?é0š¶Þ4ÌîQIaðy¦Ö¡Úm¾i *a‡ozƒÜÁ’`¯ÀDcÞðßv;«$Òæò™Öòíb›r¯kç# -nÚ~¡¯å°òÊd>5™‡°°:vГ?ÏÔ «'!\"¶<‡*¤¼¯êƒqß;üäŽÏ®´ãÄñtTïÁÐe7óÓ<±e‰ÍÕ4ìíSRÑ÷Š÷ˆŸÙÍ–ycÕÌOßx>F6lo½Öé‰3Ws42¼ÛbÓÍ»ïf³ïˆZO°m*J>×p„×µš[à—âÆ°¶zié[5
n¨[\TZ¨JãÚ˜ÎAË!ší®½#üûŒîoYYlžL1³a÷•Ï£K«0S·²…¯é<;40feòypìIxâw-õφRø©×RÖ3Õú"£µÈ&šÙe:syùiDc#G²!è÷ã—üì&>UŸ´ãX2È =È -s9•a¨°'uB>ìÌm·žèA±2¸.hÆÒýí §é®3®÷÷ ü.ÃS²Z?µ¶× -ô¼Tqn)¶ˆRšë2d|’[N¾bhÛ~ðŽáÛä®Ô±ò¾Ð‰=Õ<”»¡‘«?dù.÷óG‹Ñäóq·sN³¼;|ó`DïÆÌr›F¡TÛNa{gâ)Îþî%À|g‚eDá6—®Yv"òSn®˜Ðžžs÷ø|°\w‹ü
c%ŒµûãKò<x«ÝwŽÊK']¶8M– 6ßœº_±to¡Áª,V‰Gjä]HÝ&D–ûH -Ûêq–cüEãEEÜéºÀ~Q‡YIÇO£šEjRϤ‰#Gv™K<3ÒHm/¸P7&"û.Yñyöâu{·%O{>íìY§s0—ý·yŽ÷zÆùÈ‘ƒ,&ÎVºÕš®¥ï㶔ò‘}ÔáCÔÑz¿ÝÄ/¾¼ô‡WXžSÒiNZoB‚8î^|TÏÞ¼\˜” wHÞÈOû¥oç¡1å‡K'Ïv²;av:ãø’%îçsu¿ÒxŸß0»k€{ç"Þ”æÍ®‹Lw¹ÈÊô$×ÕÞ99v83/àI§›îæ…eXœNEâ¡…ÆûT˪â¥1îú¸`{7+ ——ð>‰—RÞG÷m7¹q+¥Æ3ý6o¡/+Ç1¹ÙÅ>›Y9Z£‰ëSw¶UÄY8?½"øh.5Ozí´w²(ÁiœÓí®2Z»N¶ëyјrD·"*°>¿(²ûˆ“÷GG¾˜eÔeVåÇg²zè©ÉÂ'dÔ“2e‚Hš!¥E@¯\g8ic>3µãΧr§ÔhÑøÑO/Ä÷Tù’¥ñþ:Uª“vY„+äRɾVzä›sÉ=¼Ý¸,Üë¨àâZ:“|úRÑ“‰‚Fö‡ üœ;³Ü»àüÍy’„©x‰ÄßgÞå˜qò5‰uÆöXÕßœÀZo[ÞÒÕ{k‡ßÅþè9KÞɇ܌×T'c¡?1'O”#Æ<MYQž™a{Ö¾"®¯Ü}ƒC‘¯ÙØÎù¼hµlc#ªdúŒV=A´8WçôˆüyɱBÞ/Wx±\ r£ÒÃ-$´Écr†QÜÜñ!‚C§GÂìãº+œ\.ŽeŸWž"¹<µ^ìÊÄrEÝKv$©üÅxñ"³å–½gÒ2þ\P©´Ï‘'º5=¤>Åš<^ÃðbÖ–©EÜÕ˜²É\}¹íb¨ÿòÿŸà‚ +xÚíWi<Tm2ed‰,âe„Yì¦ìƒô„ÑØ©Œ™3ã0f˜Å¾Q<ÙÊÒ&YòÈVi·%ZLˆ¬¡´(mÈ=õõTïÓÛ·÷Ûû{Ïùpîûú_×ÿº®ÿ}ÝŽº +‘¤kEeùƒv,&W‡Æâ'(ØŸÇ!‘™[u·tž—Ì +øG~C +oÍŽ…·¥ÁhÒÁæ¡ÂeìDÓ!»×…Ÿ>Ø>I?–tàÏ¿#°1CóoÌvh”ÊtÌ “Õ×u¦ìŸ1ïšRìbJÅ<º&ù©è……²Rf=GoŠp…áµË–êšÄÍÞ÷N6ª‰Pì7íØðDM)í”í!H9œ°2s›Få–Rü¢ +ISDqäuDÝ +Tž"wßþ^I`ìqã
òq¥ºÐ~—I×OôËtgÎ’Cl$È?´ÐËl/9^7*ò:]ãÑYÒ‰Ïg¯9_gqÃÒ·£m×EöYöì|(x×U +y¸V}BQ€ò4xFuª’-”™õ®XŸ¦ýçñãÜ–ƒ$¾Ù¸]òÑ°J¥€ûÒ÷/öøÐû4.‰š¯F–óVÏ,¾@¼= ’.ÔWØ.‹ý/äÿ þ'(Ì沂Éì d4äÀ?”KÿfÈuÛ@³endstream endobj 1498 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 97 /LastChar 110 -/Widths 2930 0 R -/BaseFont /LQORME+NimbusSanL-ReguItal +/Widths 2948 0 R +/BaseFont /XCJYVB+NimbusSanL-ReguItal /FontDescriptor 1496 0 R >> endobj 1496 0 obj << /Ascent 712 /CapHeight 712 /Descent -213 -/FontName /LQORME+NimbusSanL-ReguItal +/FontName /XCJYVB+NimbusSanL-ReguItal /ItalicAngle -12 /StemV 88 /XHeight 523 @@ -14387,160 +14582,153 @@ endobj /CharSet (/a/c/n) /FontFile 1497 0 R >> endobj -2930 0 obj +2948 0 obj [556 0 500 0 0 0 0 0 0 0 0 0 0 556 ] endobj 1434 0 obj << /Length1 1624 -/Length2 11252 +/Length2 11571 /Length3 532 -/Length 12119 +/Length 12434 /Filter /FlateDecode >> stream -xÚíxePœë¶& ¸Ú¸;Á‚[p—à4Ð85 îîîîNpwwww A‡½Ïœ{n¹¿æÞ_SÓUÝõ½ëYëYú®ª¯©È”T™DLl@’¶`3+@ÁÂÆÈÉQÞ,Ç$jkm¢hdmx>!QQ‰9€€[°8âh‚L - fkçê`afЪ«hÒ100þKò— -ÀÈõŸÈ›¥£…@ýöಶµ³!oÿ׆ª -_ -0™"±(ØBÞ\hÿïºÌü?×äÿÿ4ø¤½ÿ½æþ{þÓ%þïÞ秖t²¶V -¤/k`T\§§‹íÝ@€]QZ~®w¥m§Wrðo™áSU -ºî\ÌUêVn†]_ý"Ô”cÍp÷ó¹uXm.VÝÍQeýÂ'xâ_ç¿é¼)œs½q(ïìÐ<“j£pÛ0ê¡°ªóŽŽ©ã~ßÑô
ôw^Âuï2dF!R}v†E¥ó¶Ï$ÒV/s¡”ÁDÖùE¾ìŽêâÌMºÌ©œ}‹9YBb]™ºý^C÷§"mÇá
åPÛ{ö»XPð´Ó1ðegçB˜ú”žpDØj]Éy&W¢…>**g›çL·V醤¯‡¬oöÓŸz ƒ—•å4Lm¯`o¼.W¯9ú|Þʆ¿Ñv. ©Ô¼~íkLMÀWrôêk¦ÈiÂ~©ŒK©Kíw¢ÏŸŠŸÇ}½^ã¿æ²—BÔ«¸<_g-wªðÄ·ì ŸCRkÞµTå³u‘£»ÒéðŸðˆ«)unG%E="Ó)“%KÜ_½‹¹„È& %*9, …’Ö¶v£†íkEà8³»haøâ4-ï㊚*êFŠ+̈”®•„I÷\é˘eœÕss×·”¯ø•«ª•!´¦2cí7Ôaý¦"!šÿªáçÐ…tgšòî¹·þc|LDÉ\‰¤ÈäìýYX’sÈùƒÆwe•x¿µëSñ«ƒb+½:’3¥”ª¦åiC·IA(Om”9ž_-í•òÚÁ¶–— žþœã®°‘‹s§É»™x§J¢àÞ‰9²úŠ$cÙQ¥R›Æa†·îk5Árk(q€O^XÉ# -Ö%o¯ÇRé«Ž*í÷ÛŒþØ©§TZ"žÓr‚¸ÌñÑ~÷FËO,£àBŽ¯ýÐ=ê±+¯×ïˆhÓ”‘ô2š$ÞæJ•œE¥œÉ˜®‡‰z<ÒX?w’¥n°@2øÛ,g7wå‘Nè3™ëýmäƒS ¯yèøN½¢Ø¯K>™G -D<ð±ý.¤ÐÐ2Ž)—Ä=Z%W\tõ߮ -¸y´á+û8pÚÇf$J ?®&NÌÌTü%þ<Ä
–0&uÿ [?æËJÜ®'ý -¾®¿BD™¸?7””O™¢×4¾CEsqa¨¹¡
y³äÙµ±¯ÖÀ¤+½öûSøˆÑ&3¼ËDl:—´s•nwùƒOYeÞþ·/¾RB#cŒÑ˜àc×¹Ç\ .ÞMJ)ª6¥ -âë_G€ãü4 _ëN9£û‘@§4@d^Òq·Í݉Å*ƒÊã(·_–-ùâǥʃbÐÄ»@e ÷ÂÊ6â]aî{#õ¸‡eà%pû}M¢'þQ]Ö @YålY š•ÏÏÕ†„vBF^ù+º“1m§Ç$"Ú0Ñ?L«Ú
+éIƒóÍÇ)Õ²ÁÆs}ü¿ - -Ðõpe¢°®Ij8¦YnU–é…Ψêk=<ñ¶r¼cô:¦ñïÎÑ3~eâ|@—‹‹{ %k,ŸÙ—ÅÀbmI
ùÅýH -¡b¥XíÜ®[këîr‘Yê¡Ú«A(üÚ“¿4¸ŠÞU—Ì>ä°,ò3M|xòã
Tô7Á–tu`Ã71'3¢1}ãA/±¶æÚ+]Ÿ¿%âÅ]w>’Dúg9ͧ¢xF3<¯!F˜¬\ì:É æË{,â–Ù¿¶m—2¨˜y‹,‹gëŸÉ‰mUR‚ìíåÄON‚vyÆ°CÑ¥˜GÕ+Æ`vVÂÚ)ê4s¤‚”ò#æ͸1‰ r/™ßIò²NhØoú!uçÚÊÏ~ ¯1Œ7ˆk9ÙÃ5 SªþáiÖžW¦±ìÚ<!ŒóåIq)¨ÚßéÃ|•Í‡|Ì+ƒB§’É)[‹8YåÑ´VoÄ×° n–èͲp%¬†Ço„X‚ÕÅ•§ÂU«rʪF¦FŽ—·Ýé,öü
ü+žxMœÐy”É
<æ$rʨ\ zC+Ç»p°cc46Os–WóY½ÜøùdT‰Éþ²†ÇÛl;eùýéÓ'd8WYèö„34W®ª/ð̦÷õÃÐM£—УXßC¬Ýœ1»Gül°ª£Xæo¤`Áª+ë"»ìYX…{Öß08røú6¶ÆÚ-M"(’Ì`ê¸:Aá -¿ëg†ó(ÄzZM>$甃Õ*/œ_˜Çk»üs>sàráÛü.$Ûr~@4rÛtÑfîð¿¿äbNþœ©zEðlø¢7‹)õ ¸¨¬¹‘Nåül¤:Kb˜ôÉ‹ÍÆòÕÊÄ«_ðA”%3ãáº*ȇ¹H0oO혙±}¿Nv‘;3’6Ñ7ˆò«#úBÅ®Õh ÄH‡)¤@r†sóz±]$Wy“ù¹{?á¦ÎƒæÒKÐSÃbª´+оR€$ÕÇ\e¶W¹go)Ú“Yµãš´7ç›qâ#I…ñU:'.r@ù
õ¼hšGRŽWy@é2AT -ΨáíÚÓ+b7Ðk8B½4ÕE7$Ji *”ŸAQ@k—ÇÎR·©ê Qœã”=ÁÛD=who7Uî{>Äe'¾oõß¹,tÕ¯¶r!Ç—ÈÒ‡š€öíÆäÞ¦4¢C~¶Hí}NYù†?H $§ _”!‰YzVÄàJDžãËlnË‹ý’Úë1ŽP~ÔÆž|½¢ñˆ);R¦¯žÅgÙ1F†”þÞŒS8À;Y²›˜áܾó”d¹š£p æÙ¾ê<rò,2³¡xB‹¾àÔؤ zäïÛÎ;àÍk~>Ç]"Å…›þ¦îj=ûp- -Ä9݈[lÄgaœs6øßwï
ظY“AóŠbÜ´Ú‡F™,èÔǧÁfvX°Ô‚IX÷åc?ËïAeÉ—« -°Æ›Á#âÚöÇM r|ÑgøZæ}u³(£AñS„J؇1N•RÆMö9ÝVyðL×£]²šòÃO³5ÕÉô@µ¸vÓùú×x|ÕgÐåŒt
¤^õÞ‰¸A6(¤ïâ¡Tê#ØEqðIÕTÅ¢2{HÉ*± -Ýhâø¯H¤ÅÈ)–“âÊ Šñ# -Û¬´–äx¾w®›ª-éè‚g•\<%ËÃ~`–/\Õ?¨b‘’õ+öxJ2N½LSèsc“>nmTé2ëìÜ?d]>øÉèâtë;!J~á„)| ´hð€WΖÖISÀÌt:5NÉomÍ9êlo|ý:oJåhY´=î#.Oû¨‡(*/dïÄ’cŒ’Ái£
Í·lM[ËCßóª_ø0Šý¹ÞÛôÊT¬¾ž=ÚäÇϼèP/©O¾†ú+b‹-b“CFgS²‹7rÑuÌ]~Lj:ãÄ”µùII†„{ç„ú®B(EÑëÃ&TžÂd@ñ¯ô½XÃ#¢qÏKžùö–‰„û|-¼ê[¨n_Ø0‘MH»`Ó†ê¢Z.JšÜ…[€©«Ç§BsñB©»>wÝ=$*kƸ¼ „Ö+ãÛmIŒ’pœàõrš¶¶Y;5té>¯å5:‘OjQ³
{÷ -?v˜;~Jr^"ìž}0ýª£HZä2=Ô&sËeD¶|£—øqïxL\XWÈL'[¢x!µ?ì -ÛHØ™|½,µßzðlVz7¤ûd•Ïx7øóCvß 1YniŠÊÆI³ …y%"ÿ=bÔœ">ÁÀü'=yí¢eã—ÈÈæ”U—D©IZ\pcLiÿcL…´ -lÊ©4Ù@TaÊÉvX-còtéÛDÓó—¡S×4‚º¯…´14Á:÷ ˆÇ6•_û·!ïôèì.ë¼Õ½Ýø"}Én’0èfeTée„‰"|£:ß?wV°>‰c¬Ç^µÛØ÷PD“‡sŽÒãS²d£«a"ËàŽ°«VIØÒyl-¢Ð¸õ½ëȱÒÈ:sø0Êî°×ò¸u\ÍM%¸$¼Xi£!?¸„øSâø=žL̪±»»²Œ¤ˆIÅHªÔŽ.ÞâªÁ2;Ý]´ÞU ÜóP†_aô·.Ê…ï·Ådp7Å -k병-.€í9ž¿L&šš ¸£G÷é6?¢†¹^SÀŠMbcÏ7ó¸ äÎ÷%† -¢Ý+=°„ãðí…>sΡÌÔ‹ãåBgíâï°ëW~“¼{井²TgKW±s]gÄƦ‚Í; â&Yî¸ýs\ñ°î~ÚŽ&yDo·ÐC€Ë’,JKºAÇÇŵr§Q °´åàÞF4tÍ5aFD5^È}ØT‹e!MÛ•K}Ö¤œ_P{ß~197ÿàÚ"“¬^ñá.¡dlˆMqã¼èzïësÒ\Žç%„¬²†}jv,¦ºD§ b"¥)ìÃÚ;cgÿðjþï=pK0˯å3
}ÉüË4&“¾®bNfþj QMô½s·Ü!;Wª²ÇwŠÛÔ„ÂFÚAüÉf£þœ°nÈÓjX’†„-öÓ¤ÊkŒ}z¿gËmêon¶ÅsŒ_a½#}AÆßЖWWWW†×‚oš(ùÜu•
©uKË©Kiƒ¹T28"É…é…¹´ánHbØ#Íö~¬}µ“‰ŠMÉ*·ÒêÊø3îÖÿŠÐ·ý?ÞÀR0LA™uHA“eãƒ*£ì“dÊË\YÅ~ô¦º4¿÷Œ«¡ ±OL6›^‘"à©êìΞÞä#Dø‹„l÷Ñì6ÅÔ]_7ºÌ®D¥Ê -_Œßåø_Oáêù0eØPTN¡TàÞµ]wÂX›ö%7-ß2™û•´Ý›×|»ÌÖ%8P
Êß”ú”PŤL×{óû=ªáöù;H4×OÑ5¯)
à°”•ß§ÔþÛÇQ¶‹nŒ"ÅZÓ -Ð&`ØlW¼w{oFÝ÷‡=ÁßCò{z©¼'Ö„+!“ÙŠ=RÉo¬Ö˜ÿç…Ë›2w€Ÿþ¢>‹Ó±c“Ū°´™ÇdŸqLCyÓ
…$³¶È=B+Zäü‘ÿ[G’€kÏZJ]faO½òá×ÝúLæc?£nè×”LÚ–´. -ÿž. ד¥’ÁJ™8ñ*éûº‚Ò§á)v9ÜkŠ™”úîõºô!Ùé^ÞhÂÕ£öcèmà~(8vfá–=2c˜´…4Š>æ³hõuKéËÅ1,EòB|jiˆ-ú)ħ|1¯é½Æ!Ml&Øñ”ÍONÔ§H[àÈ:eVT”†ACÏÙgîï³É©LÓyn³€CBKm÷¢¥.=kƒ õÐl@Ü¥ã6òïI'ßßýô]”Ãã²ùõÓ•³'¶ ßOótBHäëpÀ‰µšôn -öÏz¡ªÄ€CŒù|®ñ½j÷ã§íÚ¾>©*ýfÀÏŸµd†ñô$ó¯ã
" ¨s ‘‘Tèó÷}(¤Xn¿~}B-±œªm|búš`Ôü1XV±ÏžïB{
šúÚ;–7\L`™oƒ -ç„œ8•õýçjÒL_y|9gfˆ®#—Ϫ¾O“ÖøË
¦ü²C+˜cIBÈ°·Y‹~,†{T“N*e÷çwB¥Š|ÇÆmÂ>B,ô1eQ„¾þ¢ön]…毶úƶ-œ‘ -¥Ìò*<É5ŠÔ7Þ«™ˆÁ_P^wqž§Ä?ËŽaÂœ_ûÔî¿u»wÄFø¨A*õ‹Êe…¡©ðÆhõ}¬—SF‚‡Î -xuãÀ4£C+Ý¥‰?hŠzÑ2AzoÉUÜþx.å3òO,ÒÚ]˜“*½]4O¶‡‡H¬Ê¢ÄÄÕ¶.y“nŒrÐ%¨ê#cúÌóÔu÷mÀüfYì×M,fÑîÙÅì㪆›ý6«ûÛœû‡®÷‰t29ÈÂЩÝíTg“õ—1›Q)‚¬ýE´q*(ôƒ#€Un?OCkaÙÝ\FÂÇÎX¦èÞ -5³Ï.]Œ>ø¿£,-î\yªbñ…v›ûÛ®-.‘ÚŒ?2< -û)<»Ï-Ìň¸áøÃÇF®¨Vö^ñV%”š¶Q‘+`µ@–ü=?®Ø—&òÜ’Ü?XÁT~_E»Gmx9[P¤€zPžÕd¡ƒãRÏ\OÊcwøh@²¡ áÒ¬-DkO¦=p4)OC²¶
ŠXÓñíUÎd-êóA&Ó…ÝžºÉJ-ú¬ðÆ—5šãuvä…‹FRùIÅ©¨Z7/ƒ„k¦7‘!Tꃵ=Kßò;]d+gO±òâW‰;};ƒ -eïÏùѦÈ4Øk’ØÞ±Ô×äÖ¢HH ÝÞ+†¤fÝå¯Íc
–«<}³ö^ñâi“ó”RÇR×z.©ÙAeJo¿tW 1¶¤ˆaψ¶9ÖK]m(Þ,唘¸?Qw†çÆb°.³ûHëZ[îÇN×N¸ÓÏ*W+,éâÌ -ÿ¸ÆfMLhˆ
¶9«žlßgøi>ª¶
„
³"ïG"~D&]4ª³¤n§Bú †É»sŒ^ö.Òt6>M‚kZzH~w`êVU:wËüG‰úçè
¤½DÓ¯@Î#{Áà—¥…?&z—Ý¥-"—ÕkFQÆvÂ[vYf&»Õv%îGÈ·›óÅ#H¼~æë:‘_$¢U‡<ôÐdØ]Ž7hɾŽ#;E’²:ðãmvÔ -}zÝÎz¿†Arqˆ{I*_ÛÌ9ŒnOdÆ|jÚzó-Éó-eI‹žmÐæ|»ô¬Š·ÿ kï…rÜÚjönLR¼ßÔF*8ÈoAõû%‰ý›·ß$RC„:ߘyÁ•›~Ûê…J'ÁÖB#÷^ÏÀ}W)å¼…nšÌÈ>åĘj€Bv91†b -–øÁæK7g"‡æ֪ϋÎÏå0öø¨ö="–‹>¦ç*ÑÑ"ö(
½æÊÃ}3“jëëc7{ör1½5YIG`Ñ|á´£ñ±Í=Gâj(ü¥¥
Êe íeƒD5±Î§ùöG{lD•)æ5Ue‹ú2F>±ŽÜ¶aëW!‡MÐÒññdÖj((ɱ(„‰Ô‰ XžcZÌ®üg¡º®A¿³¹®nË$ýJ˜e¯nØ^¸%ÃHXtH-Á'Ø¥ÐMÈkd¿‹r¥ÅMœŠv^vÙ»Þ°‰TÞÅ°ëá@¯dŸÏê ™e{ž9w¸ŸºÑ2ÌÃ4ÃÜ·Å×*!´Êaó£Dž÷¡|5¥Rõ®4Òa!Lª>]öCGø\Öçôù&V?ð~ÄUÂü19V?îúEìÇ@·€†U;'ªe/í²r3=›&£§7¤òZÖ“þø΢:ÄÉAë+ŠßsÝŸ`wØÁ›"¾Kínl'¶
Û¥V˧Èí&/„:ïN(wX’Bç6YÜ{Ì#V; „lú]¡à\O“Z8ó—¤>@%ÂçÎ…ñNŠj,[–ðöžè2ÿZ¥ÀJèe½üNnš0Ç[7·×±¿ÂWü‰J -”7LãH¨žÿmÒtƒüûÔÏÅ.Û`–_Dgç3—Þ¨ÍÜ®®,=P:>ãËt—sÕuL*$Ýs¯¿i¡ÁyÂi®6#9š3}3ôŠ$ÍÜ<>UÇótôf¯œ'HF#ÖÕKw$©ÏbùBeáù([Ó85=¥†Š£üä -ÖY9Îü`ÉÝ4Á’k;÷¶îæø`ȃ#vÔ5*r>c¢œ¥ö³hòwNkCÅ÷3çé.èÔS©Ã|©ÄõÂ0dAEóÄ\ÍH,vYíÉs_‚ÒÂé>˹fPwË&B;lû…f‹ñÝ6{¸ùíÄ¥¾ÿ ¼Çg\7›-jÿÔ°·†i~>ú™›Îuù6¢ÿå×r®›-i°ÿçÅhÏp4u{ýËXnÒEô¨Y†l<Þ«`[Mèø÷MgšŽ]‚½³¼_Kοywø¸Á÷A´J’T놰§—Nµ™DŽ;f£¿ØûüP2
y•Xm#±6jÅ;`ÔV_ÚAéÀi@g>GëÍÌSòK̶UÐó¤á¨-ReŽM‘Ž\ýè¦)›L¨³ï-šÝI†:»lŸ^>k²“ú¼œ¼Ågä<\F-U:üDˆ‡Úû³qEùÅQæü›¦UBw18„²¥àÉŒ–žyJßÊ -ª²´Æõ÷>Ö눎í•Eâx¹èµäW<X1é‰þ¬'®†{¥#Óxјt¨LUÒÒŸ3”Ï´„6¹wrøxÍwÃò†¤k²Ä͔׋–è:NÓë¸OKî¤bôÊêFmH¤ã\Œ»Ð€&1nÒ^M<úJiÜC+W˜‡D- 'X,þr¢TßÛek)}sÊKI‡£à"ç¾›OzÕ¯ -c•|z{Ù†B ¨À‡·íA?̓9¨„&Þ¯žg¯ƒQÞl6…²t1£ Â[€DÕÙ°|$–,㞸. yj;ˆO<<¡u«"Vù!C‡ÛÆî7+cÌ.™ÔHý‡H¯F'®¯lšöÝ)I³…ÕŽ"î…µÄÛ¨¿wù££ÍŠ(É¥ØKhùŸaP{‹jáÁQ.’OHÔÃñ<ˆìŽ¥>Þ¤0á¸mïÜ„ÏuìTyÃ"›Æ£]C;žëkXÿ›¤ÿOðÿ±5è +xÚíxePœë¶&î.A»,¸»KphÜi<¸»»»;Á]ÜÝ îA‡½Ïœ{n¹¿æÞ_SÓUÝõ½ëYëYú®ª¯©È”Õ˜DLíA’öv`&6fV>€¢¥±‹³‚½<“¨½©’±%àø„DE%æ‚-ííÄ`@d +™ +@+¥¨Ùœ€6 +@°“¥;@—•™••
ðþûÏï¿NúÿF#agboú×̨v¦ïcö‚¿`'§÷îþ}óß“þçùïÜA&H+‹ö&Ÿƒ¬Ò2ÓÁux¹ßÇÅuû{Ù ¿;”6ªøÕØ÷ø¦…móV=×37Mò½¶y,œ8¼ìÉÒï÷~°¡éI]ä{SÐõ`nPwp3ì°”¢¦ŸjEy]ÎËoÁèp±jî¨”<Ã}œìàpB¸üMçGáZà‡Cyï€æc’Ú‹Û‰ÑUWxrJxôûžfpäÇ÷¡ž_°}{D9±ˆTŸ]aP©#ýsˆ„t4*½Â)%FÆ0‘õE&É×¼P}Â]y!I×8Uòî0gÊIljRâ#¶±á1ôF•h»‡¥‰n!(·1€:~_ÅBÃæ\N¯{{WÂÔ¤%ð„£#7Ë/sè|S,
PéP9;}æû´+¶%¼ålŠ±Ÿÿ4‘ +ŸÑPn1‚ŒwHH¥—:9hßâ냿»£×Ý0ÅÌ
Igÿ’ÎÖü¥-ÊñòY±¬$åe*À÷-éK{X£–ËçmÁj¯PÜù§#ÑñKÄcF=t{m¾ 0$O9±7‹è™ïc¥î𤼴_d.½c¦|•û‹_—9Â4¤D
‡Õ +‘ðdiCGÏGÔÈC-ãhWvwmŒ +±GùPÁÉÄQµ¸¿â¯<á.ϼ‘Ÿ<Ãe͈}Ç_ÜéýÙXšî‰Ù¨hh‚`{.ŸÜå«·ï‰
Y%NoëÒë‰VûŽµðvÏV‚|L¸ÇžV•…*+¯·˜¢{!†ÑX¯ˆž^ó/€¹ûhICä¼êNj-§ûn§'HÁoݱZ9_[Õ¹“ÄþðKì„´žô
ÿ°Š†”¶ÓC½¢D¬òNe©¤B¾áeÉGNÉú«\O”^õÍé¼ÃÉ7z¸rŧq?‘-rÍÕr"T2ÕIyêq%zf R@Õж‰ƒh,TÞ¬ÎÖ 1µkïíjl¼Šà”%9¬BY…¹Ìƒ7•t·ï'0®{kh
A<ò·ÿ*ªØÜ>…)ŸÊ7^+_VzËuØ¥Œ?vÕ“¯qdõàH2„¥ÑZÂÞÛA'ÛÇ0¾}²å«œù~>Èf£,J¨0¥.þ‘™©L*é2܆0!ýð Û ^j=q߇~_/H1¬òq¨ ‚”O…bÀ,©[Ukey¸¹¹m§üÅ£e°Áд·½áë3S2ø„Ñ);²ÏúÑl6uï:Ëö×7>}”%ÇIî +õDƒ6‹,XèNý葸Q¼ˆI±©È>ëE7€„v»¢-1‘°¤b¬VÓ®E?½XeÊ‘•ôŸˆöTp
®Ò´–»ÀlYk[xeîGÿuîy]Šë[ä]ü“ÛžŒ†wÞG;òàGzªÃìê)¼Û ++C¦¹ÛEŸ*MÏôÚ‹Ë¿PF¤=}é=ÍåÞËû´ïgÀû¸ïÆ>ì=/ܵF$|Mó\‘¹0ŽÚ_1•·Ù¯[q#×’¾ÔŠÌú#mÙ±I›#ûÁLÅJ±Ñ³Û¸ÙÙ×ë.»ÚOuP0ž(Pò¥¿hõÇVzocû÷T§5‘ÑLñ‘‚[ˆ87Áö,
`³›‹9ñ„É_±f¶:뽟ÝRðozžHb‚r]–2P|âÂ^6£-ŽÖ¯ö]䃋d…½Wp+ÃÞ:w+TÍ}/EVLÄó.äÅ~ÖP‚¬ÅÏÎB÷y&±#Ð¥™Ç5ª' ö‚×#»(5[ò¥C•‹V¢—R̹1?>æ'¯üb†–äeÖpÜ9Dê+°WXúN^o”d˜Ø~ù}ì +ýȨ3C•ÍÍÎwy* +‡WÚsçÏÈ°²r]Éá„æh\áTRÓ!pÌfM#㿠DZ¾†ÛØxºböÚbÕŲ,ÝJÃ(Ùµ¨[n‰ì³çbµ”Ød»apäó >nï*NtY¹šÆ P +¤šC5rõ€¢7ÍRˆõ'w˜~H˯²S¯F¼r}ežjè
Êÿ|ÊË…oû»„ì§ë£¢±çŽ'ŽswÐÃ/.æ´Ï9jׄ/F¯ú? 0¥WT´¶³¨\_ŒÕHÌC²€þ… yXÚ9xMËþˆ¢dæ<\×%ß‹ ®’-º2ºççíá·È® +æÇ2§ ƒ‰¥¨Øµ[l‚…é0…ÉÂ/pn#n£wKåk~Åçi}î;LG¸mô¦ùå+è£i¹LUÑbW#@’áo¡º0 Òƒ³ˆ·çìÖ}C:ïf’òDRmrẺ‹\uK½$šéšï[Üh¶E´œ¥œ.@Ý´†5n¾C»ññÞ ÂÚŽQ„ÎöÒ-†ŠG£R:‹Š +ð¶½\â®’âÂN̹ixØ,<Þ€¯e;Q“ë¿—¯åÄÒK»%ÑÊÆWÙ ‘mÔ<wöõ-JÔÚTzWû&ÃÛ0 +ã•J¤yØc6‘·Ópøá0~*ñ1ÔÍ{fKò¨M@ÚûG<|mœ·†EþÄ홥7iïN0èïÈsIÞ ècaB´8U>gd—…à»â eAvÁ{f{13tÄæj»§g‰wé35”þÈ´’ó³‰2ü¦'Ì“…UËž? ´¼gRÚ!Š•2O×2rÚ6É–“|ºÇ1bàU¸¨Ýooˆø"ŒsÉ÷ûÞ›5
´¤$ÆM«slœÃ‚N}zfî€C-˜ŠõP51Zõ +%Gµ,ÒrþvJƒ†>’L s_³tú‚„´‚ŸÛµúD̺{¹¿ž‚eõpú\%¥8a@Š(-›}àTòdt3•¿c渜›¤utäŸôtµ¼Dü‰X2£r¶*ÝòW }RMDU•°÷`É3ÆÊâtÒFYudn¢ø6-ÇþÜ€mvm&ÖÔÄgúm´0<.ÂWúS€‘÷ºØJ»ØÌ°ñŬÜÊ|\#soà)¢îÔGʆ¢ÔT#¢ƒK"M!”Ò¸S*a2 øz‰¬‘1ÑÄ—UŸ¢bG«§¢C¾ö#Þ£jŸ¨žRl˜È¦$?za2‡cÛ•,—·z ·3‚7NÏ…’„2öýïûú¿“¨nšàò‚’;®Mîv%1Ê£p¶ªh:¯Ø¢äÔÑId}×6éD>©Ç.4<(~Ûcî•ä¼2B0Ü?ú`öEW‰´Ô}n.µSöŽË˜l+ì&_?…` ïtB\XOÈ\7O¢l9c(Ò
€„øÝeOÍCy +f-WP¨A–鬂À´šmeöÖfxýÍ#–¾gðF-1!MO¾‘²â+ +:¥k&¯Åà±Yë^‰ +ÓÌÄ°–øŠ¡&<˜Š¯hÁʇåûB¶#ÙxWgƬÈI3:e¡é“ ʹ¬7ƒÕIár1¶ÖI0G6iÇBºY#;¿¦~"}„µõkÞ÷/ËÇ+Gè¦%’ÜùgÀ*3CÛC’½f‰5YJ<œ½?Ÿ·ùÅŸro‹hÑ”~
ÿTŠŠûŒçn¤ª†÷Ë´LH'¬Úz•ØbäT#X¨W%I¥
Ü›A5Ô„€yå“n¥xM) ˜ïþDbÔˆgžÎ/:KÝéyIói)¿YâA8ƒ hŽ±ïH÷Ê]5\.Tg·Ø5"4‹m«¨´Ù@T‘*iXÁí +õèW:E³ŠÖ 365Cû®„t0´ìt@ÑOª“‡wáÐúô‘Ö¿ý4ü<ùbÈnS1èLdUèe…mˆ£b{à_zªYŸÅ1¡¶®»ÖA(¢i-#ù'Yˆ§IƹÁrquP1•°'ص$lY<ö–±hÜ~äX™d=Où|U.÷XÎO›…ܺßCÌ +áJºp¢l7X¬¾.™"þ"´šYï4è«_9øŒâL+¢€šKGUoäž3WÔß{mU™ô‘ÿÉsò-=€Ì.Ó¸ßè昺&âg^ãy3 +<€ƒ…¾ãÖâX"¶k†Ü'9ÕéGθ*¢Ã+=p„ãøý…>gÖ©ÒÌ—ãõJwsñwäÍ›ˆ÷iárãze†«•‡Ø¥ž+bKkñν¬*Pi‡¬`ÊŸ~ž +„9¥tÜø0ç@“6¦¸_â- +ÀeI¥%ݦããâZ¿×,V\ýéäÕI<|É5mNL5UÂ}ÜÚ€e)“GÛ[@}ѪRTÜðÐu5³¸÷èÑ® +Ú0n'ÕlŽraza.XÂ['’xöóƒoë'_dc†Òs«¬µ{³ÿLy} " +èºÀO2´ŒTTáFVÔbÙþ Æ(7Ì$™þºXY}·£!Ãï7ïa$hâŸÇ¦_ªx®½¸w¤÷6í–’ë;ùƒÝ‰¡”±à©N—Ó›¢\S€ñ» +ÿË9l¦,!Šê9„*,t篰(³¡Ò´²Vãµ;&‹Àò΋z·_yz„Gj¡E;ÒŸ’byBUèºnãí^Bƒã¸FE75÷|g5#ÒÖÖ|Ÿ2†îžÆ½Ù®ú0J•Ì‚…eɳ2ý;^¦Ë.+)2õËŽÎóusqö<:¢+ϼ[5¡/ЇYâ`º¡èò`mŠu¥¬f]btªN‹ŠEŠ.rc‹Ñ¦¡Øì×ýönǽG|ì¾FŒòûøªÂÔ‚-'“ ?M8R-j©Ó\úç%k;²NÅ÷€Ñ Qÿ•¹„‰™25ÚœS²Ï8f¼JYF‚B’¹?ɽ#jF-óÿHLýÖk$IÆud ®´t¤^ÿ0y¿5Ÿó4Ĩñ…àŠ’IÇŠÖ N”)1¬Ù÷1¡ßº(ŽTX¯hzƒa7KÕºs¬Ït~é[y:ê[m°nÎÛTÎÐå'QUЦ^%WõÏñˆíÆì4Á®Lu¹"ô<ŽŸ}ãÑôæö8š+|µ©¸ÎŽóžÁ20ÒçÒv ¼ƒ'ƒ¸õ“±¨T r ÊŠ¦ë(¼%/sí–4ÞŽðXÀDn"¯ ¥:NÃuEp4ÊéÑØòQ
ù5·|vjpðtÁ>,5dÖ*S®S¿n)*scWÁ¾¥›Kk<âÞlÉ3Ž'_?é<EÜ… +Þ$‚¡–ïØc²GHKPHà èã?1‹ÖÝ´‡“¾^ÂP¤-'eT„Û£ŸSý«V +[á5irìœÏÙåEýKuά³æ¥¥™´ñôœƒAþ;œ*”ñ=—¦PË8Ôéô Ô¯Ú2¶˜àqoftÀ}fInoØLÚÃýhÀŠ<oígˆQÎþ„âü@-h™ä𘷑ài6u™ý`¶$ÄÖ“þòÓ¬.b¡n_sre¾V@›¹Ÿ®´B2¾”>9°7xq;ìÅ™0œIEÒä>ó~Lª6‚”0Gò3Í
Ê}¥ªÁ€EŒŸ»Ô|ŠÛpø6j¿ùƒ/OºÖ
0:Ú@f”tDO²ô6Õ,’Œº˜C…¾~ô:„@Jà2 ÒËϦÚÅÿH_æQ4ãÄ*öÙ:bÀ°uˆ¡«ÇxmÛ݆ù.´dQøÈ…SÅ h±>ëÛܵ·Ô%3C\#¹BnãÈC¦Œæo\n;J©=ZÉ|+"†È䃺ôS1Ü“ú<Å,Ri‡?¿“kTº·ï’ O)›‰£
‚ŠVtö«µ&;›Z:£µqÚE‚=|á7ÈÑë‹3ËI—áÄ´ »<tÁ¿LÂO:g‘üéØꀰMW4Àiì³EÉFgÀ¥o»$_±_ä+>¹G´ß¡ðo@Sž€0›þ“øqæeÆ%‹½šØ/³ï5UJÙµ
8’i7Þëù蓾÷‰>çG+O¡"]ßÕÜú¼º¢ýÕÁ5§¥UrÂTx´þ6k-éÉßdž/ +Mgä¡`>u=æëç¡ÂòêÎØäx-¨Ì¡à‚»ºÇuù/@½jZŸÞ¢´Œî‚=>%¸(´(•Öí]E«šÎƒ²Ù°íËZ˜WÖØ‹yz +!îE·9‚óîrüŒkÍïŽ#“ +wmdÍvÏëÃ!BwGý¢5šáú9ÙI!ÿÔÛày5Ù[–úÕaÑÜþTB#Œø™†õ‘ô íSL§yÏr®A¯±¼ÜµØG¤Ýaˆ;}Ñ‚Ëg©(n˜rl7¥°zil¥]fèléL0â]Ónâ®–ú´*Õ¯.ØBÍåôÆôJ$&Ô‚ÔóÀ!;té¾sÖ
?¸ÈUʨjPå¹Gº¬±ð?q)ììê_hËwÖILé|Qw|ÉD¼–ÒbàË䪷“î-¹·ñ×`Ÿü
Ï-T•Ò'kÏ!¬„²1{ÃæÌñ{7 ísmÉÂ\1EõFS*á" +—µ>×>Mš&V»„^Ú;e¥=‚È'iZåb†k–
dË`ñŠÛÌõ+Óƒ† Ðxž¹Z¥`?ÑÔŒš(D ÂÅVŒ²å±yêY¸ÄQ–W)Qó¨7ùý¥#ëaí\[êY‡
Q“å ãO=„[W %í"dÛ›{½<1d¾Ñ/“ë…³= Ï&JDߎoŸÀ…Å1A³m‘‘ÈÝ2ÀËìuàç@W[k¬@ÔÏ»’X˜É_ŒêOAç%OIìì[UØmyz*Q£ìè82sÛ¼x¥L`ÕÖ-•°@qWÇÀû8Cqœûƒ?Ë¢ÓÎo=Îé(²=$YHÈ£~«+-74A_áÏ·{×åkvÝ]2T2èÎ/Ä„>jmƒ^RÑHúAÝ„èßuxÛ½§¿…àyÝ?™jt÷döa"eÕ».…ûÆe1x‡.#T+‹¯¸á\„ƒu¿Ðf6·*%ÈùÂ67_ÂêIAS0âzÛ•¦÷ŸŠýq_V‚"ïÐÕvŸÞX¢Ó›dÊ°ÖFûoÛììc|;F;Ö¤æDž7ÈÙª³+EÇhÝ4¥ƒ?šc¯qÐQ…i¡¤`æO}OÜžºl)àOVÒ‰,?£>ù×–5sñ6Ùr5W1ÇÇ»<èñ™©95w »#³y|‰1Üí%>lš›ìÝ*ìÔDà@ÿv¥´Ædï´Éa¢‰üâ&…qâgàbßÇŒèÀª§(Žû)ª¼ýIvj…öгž?x'{}4¤²=ÑÏúPZ¤ +!’×Ê
ßÏù¦ÜÑ«ÂlÌa{Û,]õŽCp6¼%™óW8 ãò*¼+`¼½Ç‹ð)5oÈmžá檣\¨™ï‡,k“ii¼Ãšõ½8cxÕ‘&Êof6ml¡_;•Ž³‡< Mć¦Z+¿ G„6Œ:oú)[—±pé”IáÏÊÁáí
±˜47ô(xË’uë²"œü¹xq*,$Ý–mcê¢(sLb·Àe–l3ÏÌʼnvFž§eå›&±Æ8~ÄmÅfµRÏcò·µÂ??T‡/Þn¿,Ú¯à> +¶¨J‰œ˜?2T ï>0÷DXùogù©¨áf8*;`‘K8z»˜c¶AêÅÜŠ/ûvÉ7a„/üFqEÈ[%÷y¯sé«»²‹¥™‹E ‚ùô&ŸU泪å…àñ”}¼©ÛgrÎ/6¡éŽ‡YXkÙò¿y»%'nBL“Ž
DŠì„ŠŒ—À{žm9Œ©7ïvCRðUìW5°¦6$gS±SWi¦ôrñ¼ ¾êßÓ$§”’œ|;w‰C¬ž>in·’
ž mÇïNcÔÂJ\º1§=+4O ËÈl›ì>mD ©ýÐPÀmyçOôC½Å•Ê®8 u^ˆÍŸVÆ‚ìŒæÌc!^G[P™ì™§”S´ÔÙtgFšŒÑøŠÿ\l!´#e)ûݨ§Ž† +†œ×²ùÚ’äׯ¢KHàI|ûî&;¾þRÈXá¹Sà‡ºGKëCïqö§øÌñ3º·ÑÙŸZ†ªávÊOU^Ûª(ÖÄÛÖ¡oÎãÑcGe±ß®Èi’F–DIë-Ò^@béÇÞŽàÙ€ÈÕõ†(ªÉD‘œƒ²ðv0Ìñ>æð$;6_Ô÷™µ H†zÛq¯þ&3” +õX~ÂW¸Úá‡2ÙåÙ~FâYPWE‰aʾušÈÇS˜ƒLêÝr4Χ<Ozp‚$N1~Òý*Œ=Çc†(kù3¹œñrsY§lM¹ðø´‡®úæåŽažÆo $NUqêäî +‘’p=ëj÷%ˆ6ÃÏI-I=Øß®2Í*èr¿;ºw`É”ÿbX¬TLñK¡ÖvGô,]ÿ .fvØ&\8ûÜœ8Þ\ü‹e¶ó°¼¡˜ˆäàŸµæƒçûœ½ K(Mµ96DÐÏ—Ê“FÞ¾þCº7û߀!EÁ"›-çÔB I^` dåwHt„ÃLÚ·ƒNjd2ç{ªžmn +LWªí_í`,²SÀö*ÊG.ïeitY`à.4rf˜¢©Ál•.²O^LÐô
önw©µ§™hicíÆi+xxè'œK9Y©%„n¢7Ùm>û§N²wÚ)c5“¡¶¹
(Ë_£š I7~]YˆÐå†Ü.4ó4âbݲ3m6»‚óš™öllž«á7Ô²“ŸSµ7B’
j®ÚñFS
”>VXd‰«SŠªRâ¯+„ó¥n@vm‰2Š2ãõù_Nd1·;áMW[<èD/$œù¿f—ƶ™ël‰Wå}`»¶Ì¢ó;›Ã[ÂU£§Ñ}™d?hjOFŒ½i 1$•¸‡yêbÏ–Á`jÃjÛç’4Ží|+iË +ÈNi{)qþ¢,9ÔdÏmYÒé/·Rý¾ƒ¯AT.7¿©q$ ƒ|Ue±)xé3m}hf–ד2CÍíqè+N”œõ(÷EÆ'jQ5BÉw|Z-Be–àÁlCŒÇÅG‚ ¶Wý“+G ê|Ö“ DŸ¯Ãì*ë„R×äµ£c$:/2bÞ]l&Šp…¦¨¬)éCaR Á·ßÚ„Á©S +Ž•™¼ +r±`JÊ*ºŠªë›Á¢£J›íþáeÀÃj´
jÝ‹ÆýxØxe²1µrr9øun{BÂ;e?ÚsÉì`ÕêùmØÕ& +•_/‹&9¾á×í•[d|€±Õ/ôë~œ^30i\þà\BÅâýÖF¥i.UáND××|Ø—L$–nј_໣'q +i, ÉQTߺ^Ô+Ãœ\ªž0fÉDñØ3)××W‹]‡Ÿ¥äeuNk¸ýƒcy¥YKdÌŸ1UЪ„gB=—«—Æò’³°Ï„m(NVs3·f;ô endobj 1435 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 35 /LastChar 122 -/Widths 2931 0 R -/BaseFont /CLPBIL+NimbusMonL-BoldObli +/Widths 2949 0 R +/BaseFont /KSQFTZ+NimbusMonL-BoldObli /FontDescriptor 1433 0 R >> endobj 1433 0 obj << /Ascent 624 /CapHeight 552 /Descent -126 -/FontName /CLPBIL+NimbusMonL-BoldObli +/FontName /KSQFTZ+NimbusMonL-BoldObli /ItalicAngle -12 /StemV 103 /XHeight 439 /FontBBox [-61 -278 840 871] /Flags 4 -/CharSet (/numbersign/hyphen/period/slash/A/C/D/E/I/K/L/N/P/R/S/T/Y/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/r/s/t/u/v/w/x/y/z) +/CharSet (/numbersign/hyphen/period/slash/colon/A/C/D/E/I/K/L/N/P/R/S/T/Y/bracketleft/bracketright/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/r/s/t/u/v/w/x/y/z) /FontFile 1434 0 R >> endobj -2931 0 obj -[600 0 0 0 0 0 0 0 0 0 600 600 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 600 600 600 0 0 0 600 0 600 600 0 600 0 600 0 600 600 600 0 0 0 0 600 0 0 0 0 0 0 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 ] +2949 0 obj +[600 0 0 0 0 0 0 0 0 0 600 600 600 0 0 0 0 0 0 0 0 0 0 600 0 0 0 0 0 0 600 0 600 600 600 0 0 0 600 0 600 600 0 600 0 600 0 600 600 600 0 0 0 0 600 0 600 0 600 0 0 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 ] endobj 1418 0 obj << /Length1 1608 -/Length2 7939 +/Length2 7997 /Length3 532 -/Length 8789 +/Length 8843 /Filter /FlateDecode >> 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 -œ6B†NšVµúz9S,nq2BÙYÒ_+Ÿ¦Þsà›`n'.@b%iî§ZüwœJ¯îsúð{^¥’¸úCHW—Z“èŒÁv,!ieí1«¥O˜–©í[oF‹£‡y‚öƒÛ¢Aùx@”SÜeMIƒZ| -úˆJý€•<.%sõJŽÅ?ANïÝy¯2}oÁ[+B”z1’áž ‚`Ïtf¶¢tÈwŒ°ÏŽ·xÀ©þ™Ììè)‰ë{çqéœÅâêsn¹ÁâÑÈ!áLâ|®Å–êjÙµXùPüðáæN…:ÍâŸiËÉ#V -.¡Þ&ä±.µÙ:á%%¯ÆƒÀ+Ùì£àrÒôdxå ~åj}vøñÅ -E“õî
÷*\ÔíÀ5´Êµ³nÝ¥¿ìv°¦Õ°“@<˜ÐÀÁæ„|º‡¹Uº–ÒSCö¡•Z„þîýÐni¯0q¡~‘ -5¿Õ¬g-Í=¥á`8Z4~ iN6ý”@}!ôk °)„COÊ,”úP¹EÞ}/šòÜ:o«4QßФháôBlågË”O„á1
QÏ—=GÖíÎ2‹$ö"Ä‚B5GmÞœ!kÊ€ÅÁFþ9¡Ë+TdùGô“Àû"6®ld&Zíeí{4BQãÛ£xæ -Çžó,g½Ã!‰âŒOòpÓª¥øℱ—ê¨,«é•¨’/+U²ðN\ú_øHîÙ;š2™´@r•zPÆœ±¹ú™5¿,Oì°v^=³ŽÐŽrûÊ`ÉØÒd±‡U”£'„/,&z‰â£óõ¾ÔáÌÚ_'z8ƒ^»‚!OUáö:§˜VeÞö¨|BVvÔ0ó+·–0ûÖÓ¶Ú,V¿š J,â^´S´+kNï¯s¥8¡ËÐ f´“[„wO¹¹Ržáè.ÁFFM„l-¿?®f$i½*Z§g´É-@$ˆð‰´…G©3ªV;eW„ôÆwœÃðÇkÝüÓï«Ï0¾B¸9lZàâèàø3x?Üßj¼¼ß· E=_a^ñêu(ýv --gھ蟖¤§I„²kZKéä”ð -›û,¥ñº“ÛýÙU@žXÒÖrÝ}Â;´w`D.à™Œ«ž¥ÅÇ3\™»ølð…Ébñƒ¥‚U³¢ÌöMÌœÞÎÛJ”…¶WkÓhý j¢’«qµD¹Kz瑳³B|óG\Caî+þ¹*ÊÛ~¡ñ¥ÎGÙ§}–ΪJæÄäû§ W÷HíÚ>ÛÀaòœúò4ó üN$ÕYYšžÇï_œ••W+vqƒÛSš:± 0ZÌ©„›a‚â[‹”%sˆ{¬Þd?zä7~ÞÛsý3M{öži17ÍÖ‚\"éýGeã3mì7 -Kygm/®SÉçÍÄ\ÊqÈbO;z¸‰ð«-4'¤§€+k=ž~(6¸hLìÈÒúô<6»¯´yjÊ^"þxNLÝ°Ç%3jz˾‘e2 ÃÏfĺEÎ>_žÝ(¸š¤²uy•“®ƒ›{!Þ4l"ùíóQtñÚIÝE°ºÙu²¯‡Ån¹¹ÄùÂGˈÃÄ › -?y“w¾G$ÜË×ß™‹<Ê™2ãtÏ¢Þ}ÿ†@´yIGbc‚²Kê·HŸ|ëÖ
x°–Ñx½Ùþ2—€_M”+=‘Û~d˜„“•/tŸ†ò³vLFd*°Ä¾ù±b«&}¢¥çË/à¥2?‘©"B¾,|BÊ1û楛æŽÈkf}°¿Åø«þŒ„g“IÆÞyã8‚©.ͲmhïF`”ÜN‚”ƺʨjÊéž=wþ¼æuußÆ?ÀTÓˆ½~.%º·2¢_½¥’()“5”ôe-èÍÜhxlšŒS+é\d®ýÞ¢Ïd=ºñbfýFÇO¹!3‚"Ž±6÷'íjCœ´¾X‰Œ]Š*ÅÂBùwK‡õiŽ€hn"d²¦…Œ·âg쎓š™Îë`ÎÓp¦»²'UJfaþ»f[Ĉ]ˆ•á®þÍz´&—À$ñZ¼¡®i¾—fG‹LßÇzbÕû\dÊÅï격|X“Ý\sÉ•ŠØÊ+¾ÿfÜŸ|>„%ýHÎÌÚ`=6"æ’P«ô9#Ñ\Ó#3z-Rô|%ñ¨$¾Gc^¤‹M]÷²³Ôú{'¢_ýDÊû1éÍ*õ,θÈêÝþ²â³Gƒg¸LMa2B Æ»é»*+M[TÏ•´lm§2!ž7V¦Ôˆ·nŠæ‘’¸†pj7ŒÙ>ò"$›XêÐ:{—¶^˜u^9Ì’„‡DW¬9%%^ÑËå,W0ß²¦ÜÝ™ZÒ×ý/õ{øúÆ>²Ý” à/"ŽDkúmù0§_ì>WTxìÑéƹœ ‹› -zƒ½Ê-%¯Oà¸L5“‡û’ªV,î½øÊáÃz‡>ò&ïw¼´rY6Ç—ÆJwŽGƒ±Â*ÜA5ƒ -ëšSùSÕi…Ÿ*z~Öå{OrÛÎâ¿z»—’M®læ|Pû„î"‡ãüi®WêæˆOâ›Ð'ñëgÏbíbœŒÉQùb³ 3.ã…ñk›ÌBd¬ilüÖw_ãcÂŒ´¾,ã
Ž -¢&tG÷ü©Ï¾2¤ûôþÌÓ(v'«.Š -òôÿÑü0íû¾€Žˆtß -sožbrÌûvE ²ÁÅ/ÍWRÙu/w¦ØÒÕÛïòxœ‘h<LšøÖ‘píÇâa
®”Y -Kqh|>6œÊ³(æÀ’ßë. - a‰ñµoWkrŸÔgÔÅÖº›Ð˜wÜ6îÂÞN¾Ùö
i± XüÐ~ýÅ´á´ÙÞVóÞ³6÷³Ý>EŽ -‹^±Šî±nl#šñ‰65%,ç_°Oê”+µNý%Ùz¯>W7¶]•fzã}A}H›ÎÀSÝÀ~ƒQrNÉ)îs¬þr]Lf¸á“ -<á¼ØËûò
Aê)¡³k¯×ývuSøGlVªs#Nu¥¬·OŠE•?.j?øÿ©ÓwGä“øݺ23oªkvSÛë>Ñ=¶ Ðz¸^"èÁ8¡-òo*N¡žº3Xl‰eÓk‹þœ%¿_> -Ý‘o•~~æHj¦ä=ß‚§§Øç÷üÁ4fA|Nç“ž@íD2ÏJªÏ ªßãfœêvæ_ïùQÎ`œTäUí`Ø@–¶Y™i"Çø¡Ñ=¸M×g•Õ´1š:Uпƒfèò©ü¢hçˆ Šl`‡N¤·èç«s¼„klbhL˜:g6(皊…KQ}ÈÞ]Ÿjƒ+ÅÁ7„,IL$¥<³
Àãyª1ÕÓ¬^Ubó¥s¼=õ¤¯æ-_ãº"/·ÒøìX¸¶å¤)"<XŠxÜ*%Å•€,Kß‹?¯‘¬’ÿ„Ç#8,Gi§ñ -D¯°4Õ4øO‰h§ª‚Ã*÷)É›%ŠØb~ø-GÈs“I»øNà9-ŽSqÈÓºD
{Ú½S\pzùÃuyjD¡«†k!ÈÅ¡ùð4yªQemˆÿÉX‡Fiomß¿»jÑÄŒŸ*m—´Ã”8Fèc…ךÆàAÔÉÜî°’Z¼5è篫a¸”dñF~²á)ž!“F³ò±Ëâ7£gªØjB}X€‰/‘'™“š"ZtÍCöEqË’¼R7ö¿Õð®ÒÂö@.)¨F…t ‘½uŸ¬®%Qò«§µEp˜Çd€™ÑÛkï#ÝýFø‡‰0A³KE*3Æ€F ‚é®0BÖLqÄ`nÿ‚Š%P爉䅟Ú*›X‹²Å·jÔi÷b¶‹ôRáó"¿¬žû6vTZRœÌ°T3Séèv\ã«%øÜýI¯”Þ¯é¡ëæ®ZÖ·mpßú”Qn?ø&Å—Â#Ôߟ›ì}ÅÀ^í° ª"Á"çt{RH:†×¼woŽ¸ÏhFO°™§éç€oÊC£B÷~”… - sœçã¸!q?Oƒ¶•G¯îW̳ŒÔ)HænÉøoÌF–A£Êå{Ç‘æä8£jýäUu;W+Aà¢ïóÇ;X;{¥ð”ÇÎwÆ}x"
Æš=×N¿nc}&±Éy[µ~œ ¿öµh¨»š«¢³ñ©"Ì‹üEmÊ`;µ -Lj -â³ß -Ì Q=w¾?‰¦6ª~ûá¤àõd‰xW/aéÒÛ‹†Cú\»UÒâàfÒ~…¶‡Í -¤´HNú2HBÃ8—GÂ+zq(6|£}h`wŽXn‘ÉÖ\ƒd0ÖŸ9yEúQ§lõ8þ4»G“‘Èh(1›‚#Tšl8ùñ\^ß/Jö\¥H§¼¿Õž‹r2Σ}‰RÕ»Y€|áCžÓ|ƒi
xCªÝªÌZ-›Çð0ÜJLÕ—D9dkùåΞ‹üÀu!!‘}U?³9Ü«eŒiÒF̦ì½Äõ–çwNRi¸Ž~ÑqÂzÊ—eh)¶M#±M¤µ.?¶%aÿ5ßóÀ€L]t“ö´ƒÓÈÙ‹CM³Sꣲlµ^÷³²ÚfÉÔë'7±‹÷bqÛG2®K œ¾’j…Ã×?“ vœ:Û¤~í^~ŒÓ}ü>[6ï¥Ô‘Uïi!~£óú“á{±±?Gywuîj>S–µ¿ƒÆçò8CëD?¯‹{ÇéëˆLŠ"X?¹ÒPÌÔÜìô|/*_6fñfw -=ÂRŸó>ÍjóðÔv)Ùyÿ¹[G¼Ü5)…ðwÃä¼Ar«òqsV -…üЦ^o{<´p–…p¤(„¬Ý¡òž#% -o–›.%§ª¿ƒàêÕÎ*4Z®÷„&§xás=G‡ü<ṼǕoÜRŠÂò7ð|lä”güâ(l€Â(Ù‘(8Å|)ÿ¿wÆô/þQL™uG«ØâÐÏœÎÎ~N*{cÀt(û6HÝB=viˆÀ%ŒÐ/ÌÐà>^P䶊ŧ¡¯ÕrȈ=ÂÆé2¾ldÔD4“kêœÐw§3\Wd†@$B}vÓmwÝK&à#ýÁ?¡e6êœÿ¸¥*IÖÔ*Àií¨²Q„É¿åAFÜd@+íy‡íj¡×Ré¬üž±àV{ñ)„ÓÜy¸KþÍç*ï¬%3Ã6ÄÐqO®Vîz -Pdž·ÕŽÝKcì" ÂñקÃ߸Ð|÷”:
úaAÞffñ~þµGµ³+ìMk{çg1Û»tîO±¶)0ÞÊœ<vŸj5Uq"¯}h‘ïÎ[
ã^ýŒwXcsÝX YVW³Zxg/ÁÍ&YÜÔŠþ6¾ÿ„×ÔĈäUu&S·+0›Ý)§LI4îÄR°vò[_•(ÉëOJ¼‡ŽÛXÄbÉÛú󅟃HÙ¾üª½[!+ØÑ™õd¶¶¹c
¡µìÉŠaüð L²ëb_Àå¦RnMúY6F¿ÅýíÕ<úx*¸÷â&?ñiÛJÌ¤éŠ Žô·Î±¯‰Ò%§¤+Žpñýïê=Ú02á=o !“®…-‰NØ ží2_Ûš,l|%ÕvW”v¨q$M1‘]–OmÍöèÂg®eÝ/Ý»ÈÔß1x±]Ô'ÎÝíÎ<±úa’'0x{&¿µx¯ùí©wÏ.o†l¬AÁ +Øο>Ú²Ê.ÔZlvp‡k³g¤…æ[FMIÁ‹£÷0ê¹³ÕvœøæhPKò´ ûäx´!vyÚ³×eœï?uúfK¿ŠÈ+>ªX'·[ò&&ÇŒÈSm"~Ê\mŸ$¯GÊ-ˆýJo%ÛÞêdyž†õJ-»Û¼`~DÒ]FB´§Aäû¹xx²Ãò`}fZ%±ÆÈr™6³Á‡å_Êf -í&2PƒóuíIŸ[^|uÊàïíŽl«0x¦ŸøpÙ(ÈÅ%mé…ÆÃð½/¯±sqØo -ŠÉËQfþNÒúðÄCzòÛgêg_åD6ºq¸I“ª¸ÊFØ2ËvÖ¦™˜¤Pé¿g¦Uu䂱~Õ#ÉUz$¼ -ÇHÄ•vËÕ$«x-‘–ß™š¦#{eöòÓ`ÐhšDŸâ°º ë«×^9ÁB0¤ñ뫽‡í»˜m×ÖÜ¢Ò ¯-‘+ÖŒ!ÇBPŸÕvî¦è ·?§¡ºƒ¼E^$‡ý…’*O*n˜.—Çw2wÏ5N¨°xNÂø,†éõG#ËÕ€ª“ŸêÅUOr3~\Å[kÒ¸!9×0ϵ -CÝ_‹{™éÉYŠúð["šgì2eàß$‹îy;Þ;Ú -_ƒ
ÃižòÆv==·%!Ãd2KVûBàùü€ÿ' +xÚítuTÔíÖ6)HJ
Ò Ý=Ò"Í0ÄÌ"Ý t# %€twwH·t*-ú¼çœw=ßùë}Ï_ßúfYë·ã¾öµ÷µï›…¨Ã-‚Y‚aP$7?Ÿ@âhé‚б€ªsËÂ@€{§0.‹l„À òH°À +Òâ~2P›{)øxøþrBŠ70AZÙ¬-îgôǯá(ø^Ë?cpóÿ-¦k±²‡þºÈ³?!0ôwæ÷òüáÍ« ¯§*¯Áù÷×ôOð^u¤®»Ó=±ÿêCú§ñCVæðàæpò‰Þ_6>AÀ3¡gžÿ¦Þ þÙH8Ä
ðê¾i>þ?ÿ×ÿ_–Éß` V0Ðï=ÑAZ@A÷«õOÇï°•~¯èŸÛ~ßò?ì?K»pg§`Vâv‰)IÈ2ŠŒ®ùWm-üè]Ny_t?eù”Àš½C–Ÿšß”òT‰ýªuŸÜqº]W}²ÑÓBîÀÖ>ȤñdâhÍz´ÀZ/ʹáÇkšG´kðÎãpB} ÃH„Oceà…¶iîÍÚ¡zA8öá9‡“k–)óO'B/«„Š(²¢Jâ²ì]Ö˜ïç?Ù:z»»:›1[ש9Ó£pXÄ]1XÃ}œÓ©¥Œô +=",sùc:Jb[‚ZõØfŽÉ«–F[8_>[}óØ-WÃ}ý<”¯MçöÑ2sZÜ´:=…‚¿åÄê¾Q¯]'ÄY'1ЬŸYFJyE¶©¨ø¬.¼QÎ
¢úQ{4ðY•wµL(q§oÐ>õYWþÉZúƒú2‹ažvŸlž«‘¯ïÔª$Jq¢•Hõã–¯…|¥Ø +·cÐ.ì+Çb²½¬½¼%~oæºæÀß•T1òþ (ðBVîž³\÷9‘e†„Ò„‰Ú§ÍäÊv””ןžºæNÑ÷k,ù<ë\öM Sž¿‹€À‡ÊÔä|^+‘. §ç|¤gK•Ú+xáÂޛ̉f[)&é—î->cÕ¯‡…hLÁâŸW‰Ö¥õÜú¨×^ã÷¦Àl# á `Q¯«“5Fç'Ã$ùFz·òe*àà;Žê6âÄ…Jųâ4÷3 /šsé5>‡7¯Çu*Ék?õŵÆÌ(:cp‡
]P +ò¸æ˜ÅÒ;hlÉwb¸8Z2Ì´?Ò’MÁpŽ»úZ\¯‹Ÿ?¢Ô8`!KÉÂB]EÈ2û%Èê~øÙ«D×[iE€Ð(¢„Óã ÈôLüúBA*ô%<Û£#›ÿ@²æcVôÔó›P<öŸqéEâsn¹!âÑð!¡ÄùO[ª«eÖbqåÂpÞ
7wbÊ×jݦ½YN±]Ðò¾¾qôùÄÓJk3S@#ê@Ò³&¯¾´¨ñ„n„A框f‚ê¶Jã¾Ø1~ìÞñ +SÓ~À‹h«á +¿oH5_aZñÖ?Œn; +?ÊW1fÂìþ†øp~‚¡€µyJEa`ªd×¹l‘>
Ä=éÖx¸–Ñp³Ùn—‹Ë«.ú$-‘Óqd˜„ƒ…'lŸúq㋘Œ¨TþbÇf…V-ºZfXKÏìÿ•36/¡±L®ìÝ„¤SÖ/;7a&Ç?³ñ·ý ª“I/½ÌòÆ1R\›eDlh¼/@)~ ”0*}-¦%}¤óã•Kãšç5¾_€±–![Ý\JtwÛãˆ~qä–r¢„tBæPÒìZ"¿SƒÁ±qþ1f@”K¡å»ŸÌúŒÖ£>(|l㢻F鸕2Á-dKauÚ®>ÄA3პÈÐ¥ \$$˜ÿ tXúˆ©‚•šüÚBÆ]q»ã¬n¢íÂqöŽñÌi•¢I¸ß® Q‹¸<±+±’Ãk¿æG=ÀÉ%’xà#/ðë4Ÿ+“£EÆó±žX>Wérq|Våœ5™Í5×\Ɉ¼"|U•wû3€“áCHÒeòÇÌ
Ʊá±ÑcCâ'ÏÕ+½h-†ë’úŠY\?æWߣ6}W¨ƒA]k×Yj}ÇÁ«ÁÑ8•ôág^¥ú†9.¼:F»€³¬ úhðcS¸´ +Ãô‰]e¾•&Í-ÊWŠ@[Û)èGÇ/+ã*X¤›‚i”ÖÃ!Ìš—¬|%Ü0‰&æZ¤¾öÞn«'jg6“Á!á5Kvqñ„'½~ôryó5ħ¬)ww¦†Ô¿ßN¯‡§o¬„õWA1â!Î"ìHôk¿-ê´ùî+u>‘×ánË :X Yˆ `ŒUN©÷Òu ìW©¦qr>¤jU#‹! +›‰šñ±Š=ùw$€ÍÞ5-M¶ÃÍ5†Ã¨1™èÕšñêp{ûyĽuéBÿ¸»¥šÏõ\rþ%8~s¼‡Ï&Ø·WšŽÖh1¡zÈcyà}M€8'%gY .¯cXu¹H–?â¡´ï[+X d;-|<e®?àÎ)ú‘§9×»*xR
É ñËɯ΋7°Ïû®S‡•‹r,I`x¿Ãh®qùùŒ{;iTe×…\4¶Õ~<@!/jD{Ô‰çGõã;}ºwïçÛ<Í"w²êÂ÷¡‚~—ÍD ¬ç—}é>¦^\Eä¨øö… 2!Ev¦+)‹l:W;S¬éí¸Þü Ð$Jœ8éH¸ñŠs@çb ©”^ +O6¼
NåZ|eÎïuç4û–ˆÇ™÷.™sÌȹ8‡ðo\‘TË×€LJ34ë„7r•¶;ºâìXµÇH^?ßI<Ñ0>jšqe¢-0¾"<-z¨yœí¿k˜–4ŽR푺22ÝLæW*ÊãÈÃZ½pFÆâàÌ¡4QÚQ¢\¯d8x£2é'é=øùmojÜÒDø=Wé&–A.‚ZŠ€ü»ó!÷©™¥`KµÚfP*ñÌÀòϺE–NÎ?•&§E±Ù4
*<¨Êë~AI¤‡fŒ q•E©k‘ ú/ÆíÞ:;V-ëŸVU<Ç{Fá.ùk£ý°{\á)óÂ( ázë$³Ô#É~ø³&A¸®ŸãZ€¸IäÁîÑûX©ÜlÝ«@"¶®nñ«– +›=‘z<×ÞuÔíŽ\ݺŒÍLuiÀ¬®”ñòNqc¤¨òÃBì‡Ì²òÎJž}8"ŸDÁéÖ‘ž ®þº›Ú^û…VÄH´^¥‚ÛƒrJSè×T”BÉæN_`¶õ,‹î…èíd9~ù(xG®U<;¬êDj¢è5ß‚«Ðçûêá4jA|vçÓžÀ‰dì•” jçq3ε;óþ{¾gPN+òªvÐWì*–
¶™Ó„q¢{°šnô‰¾>*ûÚÆxfì\A÷œ¡Ã£~zGÑÎUÏžHoÑË×`·sÐÜDÑœ0vÎl<žk**EôÁ{w¹¼«õ¯µƒ ˜3’IJ¹¾%ÔóGÈéSŽ©eöª›ž*þÄÞÓHúnÚò=®+êj+Çžùɶ¬EÄæB.·J qE~æ¥ó¢Æ5’Uò[‡x»å(5Ã4vhâõº–º&ï1”fª*$¼rŸâ¼ùy!kÌ¥ïrŸ'™”«ÏÔØ)¶óâ8%»ëûaû +Îv—¯—§F仾>Yr…6ž%O5(¯
ñ>ëpF)íéÛ ñsW+œ˜ñUã²í²Õ¤w‡B¼°[Óèßàu2µCWR‹¶}ýt4
–’Ì‚å&ëÅ°
5›•Ž]Oè
UÕ0ÔqûгQ§'Q´„´ÍCŽ…qË=S7öO¾r¯Ò@öT\Sò)È@CGë>KLÂþä·b5…7“&†¬þ^G:—||ý†8‡‰“+J†€~yã,!˜Œ‰ÂˆþÜþ%s .æ#‰¹¯:Z•M¬YÙb¤:U^Ìv¡nªÃ|…ðÕ+Ÿ†ŽJKŠÓæj&!JmŽõï·¤±•Rû_{h»9«–õÃêÝ·¾d”;2û°Q¼ óóã$ûT1°W3, ¦€»ÈñÙžšŽ"ùdÞ«7[Ü{4£'JæaÜp‚¢44*ˆwY>Âϱ´Y ‡Ëãbý³Ï·ý«h0RxІ +†³Ê;¥È†“Eæú°ûîH³å*F9çp—œÔü&à`˜Gú¦jt3óó¼ò˜~Ã3˜V=¤ÆÞ6ÀlÙ<v§×ǪÔFU³#Ì&[ËGÉ(wñXäå_7ÞWó5™Ãº^F &Ýh@mÊÚK\¯g~…v¶Jýä(à'¤«tqZ·bèR7p1ÛDYëðbXôßð¼ +(FÕA6 bLCGêË\j™œ«Ê²Ô{Ý”Õ4K¤Þ<Íø»ˆ‹Õ>’qSæð‘Pÿ<|sÉì„»ãÜÙ&y·3xU?òLGäS–Lžä‘UïÙgœ—õ§Ãx±±f·£\N»Ú´>ª*É8¢!qž¾ùÔŽ~U÷ÃÇ žôwýTå55ÅÜÊ×_;=9r…åË/™½Ø +Sf +…ÜЦno{<øó7Þ‚‘Â@œ²ö70åÙ’¢Í²áߢKIã)ëÐp^{¶³Ž–ë>¥Î.Zh¬cï›Gy(Rì.ŸRÄ÷&÷Ë!>å¿x¡>@a˜ìD’bº”ÇëU€2}Ç;Š*Áªá¤BÏòlqè6»³³ŸƒÒñ%`:Œm›UEÃL#vi×5œÀ7Ü@;(ê!kÅ¢X˜¿z6±GBø8mÆ÷ƒíŒ¯ÍäZÚ§tÝéÃôW/+>†â‚ž‡ÝåH¹é´¿ÞKÆå!½ä +8Dºv—ï[V§¬ÒcÂqgæZÉß½§a’>m|×£ìmÙ+ßS}]ñKŠÃ«?]ØqÉ‹92‡özQU\VÝ–·PÁS=6ÚâSô÷¢F™]ùåŒHœObYez.€÷´õÛÖUy—HSòÝ¢üØ-J#Î}4ÃË6¦‡‘ûHÏ&¸’ÏçAŽð¡´Ñ‚ª¯PE<9sÀËþ¢CõÚKI±ì.\—‰ðl“@Dº1Nœ„MðÞ3ù½ÆWèÕ¸øßíˆ +’¼Ñ÷7¡`ƒFt?7H©Õt¨…¦›ÍƒÕÓÅ7ÝRàoö–¢9EYo¶-ô÷iò™»s †Ì}µ„§– ¨¼ZÓMA…èÇŠJã×zd Q¦fAª!ò~záþ´C~›oâ³½_ûjtñ‘½Õç#q¡CÓ·:'ØR¤HúÒ}~£ÛCµNK&Ë);Pôc5†ò§ÈŽ&OpMÚ´•$l¥Æi #^Œù¡2±.þÜ‘OÐÈ+
ãÊÖéç1)úT» +$‡ÔÄ’\[–EŸfÇ{®ÂbDë:âtF8S"!zã?ùÕ¨Ãz‰Ç1þ$מ _[X¯|À-Çì™# N(3ª=µD€&œ*sI»ÏÏ稡¤tÄZb +’ÀÙ@¨FòLÀ/ï³ ƒŽlû;è–B¬¥NQ¤¶»@¡*}2ׂ€¤ò
(§îDÙ|£ê6òþÕ%¼®â¬dБ’Y¯§2dv†)çzêJáé/ª9 NäÇA—¶×Jífw2×ÚX4PcëD¦fWèc|ð® ”èWš62ꙿðÐuQÝ«¢Vé*D<æÜÎq)º¢Šö[®›C¹fñÞ›rœÁRU´Gß[p‰›’ßÕæñ¬ÏW`›Ù?_~ôàUb +¹Ð
Á%sûÌ8Yoª¼Ê\,°(Ö¤Þ¶*›¤ ÂALá +oÏÓš‹èKÈ“üÌrè¾z£C¸~÷mÈ îËDÆ'7’’C5Hdd×ôp›÷y\aYz¬ûr+®Ïû}ïì#ñ¹[_=‚·œ<r#ì#u2ØGÄô*€<¿ÑÀÛ© +^ØŒU~#Gñ‘iè€.0U d,”•”¤ËèIVÜ +q2ex»þbƒvW7JÓ™ú‡@LDÚãÊ;/¹W}g6ÓŒõ$8ÌY½) +‚—‰|Ѿ-¶Ž¹®Òç´7EÓ·³h þÜßVšºaŒ»»§ËɾsØ—°xSG + +M#hÆÝ“‡+K²#¬,a¸dí;μŸ†¹
BÉ3Â<~…«áÉöÉR´H?=-R})(ζ”x^îd¢f»†Åá‹7]r[Ü€É*áÒ1W‘bÙJÚh¦w`ðcîÄÍÉúQá¿V®Š‚ùJûÙϨˆ@yÐ?]ã,{y‡¾\± +;N'²·±zç§0ØP¾|ý4€;ÙÝAÓfïÃW7¬D®cÙê]K†²ÌP¡ó’ôÛé˜Tl~QÔÕaÉQóîP‘>gñËoS>S* +ߘ2@;[šXžN¾û0A!¸•Ã$d/çÛmirF¦°('ußœéœW
SŽmBûPÆhmhWÑ×ÎcöiñŒŒÛ{`’Û–fKW¿( ì·AKöt–YÞ!äÅðñrŠ¤ß6K@¦ ÂDë¹ÀÏqö.Õ|ÅlüµôO¾ˆš°\öh*"§HBÈrfÈ©vÑÞÒ¥ŽêÆ…¯f– Ws´¨
;iOèû6’}
›Ë¦‰zćí@bBÁ—ÚwÎŒ»ŽÜaëP“ªÛ}¥°ýƒ¯C=¢7;ªTÎæ1
_¤ÒŒ°èTg7¹…ìT±âÏvÙYcj7RØ×á‡/à Шõð¦u™ªì¼#©‘!ÆŒâü· *só.%öZâÁ!ë®ÐíTäΉh=€7vi½À`|jºeoWç[äñ!/µ•Óy™NYp–Z +Vge‰•Ü»ÞhpU¥¹JeŸãÃMùÉÅî
¤Ÿ× ïg殬åaÔ%·AÒ=;®É›4S9\ºôà endobj 1419 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 36 /LastChar 121 -/Widths 2932 0 R -/BaseFont /KSQAEI+NimbusSanL-Bold +/Widths 2950 0 R +/BaseFont /EVUJDM+NimbusSanL-Bold /FontDescriptor 1417 0 R >> endobj 1417 0 obj << /Ascent 722 /CapHeight 722 /Descent -217 -/FontName /KSQAEI+NimbusSanL-Bold +/FontName /EVUJDM+NimbusSanL-Bold /ItalicAngle 0 /StemV 141 /XHeight 532 /FontBBox [-173 -307 1003 949] /Flags 4 -/CharSet (/dollar/hyphen/semicolon/C/D/E/F/G/I/L/N/O/R/T/U/Y/a/c/d/e/f/g/h/i/l/m/n/o/p/q/r/s/t/u/w/y) +/CharSet (/dollar/hyphen/semicolon/C/D/E/F/G/I/L/N/O/R/T/U/Y/a/c/d/e/f/g/h/i/l/m/n/o/p/q/r/s/t/u/v/w/y) /FontFile 1418 0 R >> endobj -2932 0 obj -[556 0 0 0 0 0 0 0 0 333 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 0 0 0 0 0 722 722 667 611 778 0 278 0 0 611 0 722 778 0 0 722 0 611 722 0 0 0 667 0 0 0 0 0 0 0 556 0 556 611 556 333 611 611 278 0 0 278 889 611 611 611 611 389 556 333 611 0 778 0 556 ] +2950 0 obj +[556 0 0 0 0 0 0 0 0 333 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 0 0 0 0 0 722 722 667 611 778 0 278 0 0 611 0 722 778 0 0 722 0 611 722 0 0 0 667 0 0 0 0 0 0 0 556 0 556 611 556 333 611 611 278 0 0 278 889 611 611 611 611 389 556 333 611 556 778 0 556 ] endobj 1415 0 obj << /Length1 1166 @@ -14554,7 +14742,7 @@ xÚízU\\kö%‚»înA‚»»;PHî®!x 8îîîîîÁƒ<$ýý¿ÝÓ·{žæm~Sõp¾o}ÖÞ{}ûœz) U
1Kˆ9Pveá`e „8 l)qøCÀùÏ$AÎ@‹×¦¼Øþî›âöùØ -¶ü³%K7G6-0ÈÉ
('ù?Á¯ò¿0k +€‡“Ÿ +¶ü³%K7G6-0ÈÉ
('ù?Á¯ò¿0k +€‡“Ÿ qýñ$X8x8þÆiÚ€,ìÀ@—׳ø“‚-ÿ–R l±®¯SiælùOàÚÂÍÙùÕž?èõÞ¿öV ×@O òÊ"ÄB0Ô¶6´ý¡ZŒØƒe’«Wëî·97rŒ=ô7V˜^e»bîÜÛwŸ³$UÇl„+
`•`¡Ã㉥bø<ìøÅ;X°°Ã°`d#‰NYë„”P/駯Øûˆ¢ R¾Kx
Ê^P”ÝéÑKL`i„CpHôœTà‰ÉÊò+TŽøñž‚ÏUdíýÕàçG:%Ùmƒ#RPä»géäõQOï±+:°LûÅÑxæÃe]k/͉õJø:'º8ŸlJÛ¬žªGóy乌טòQK6‡
Ñ+íLvþ˜ð‰Å16(ÎñkX„Éßš†+…¨pœº–QÄ´Ôß^î)RêÔ[W,,¨Þ‘õÉ»ãp%n×)iuGYÖǚπñZ¬Õˆv4¹›îµ:®uľõ«GZýÖ:„<=Ÿ@‡ª˜yÝ—l:GBÎÚOAs½À:rÁUuiw™ª¨,w‘ʽVç±ÌwZ6ç]ºš½žWßÆe͹„縤h£öÙ8âØYWÑtÔ¸c}ü5æ?°5&Jt”ùËÞ¨—OÉËÛòÁHÌîZ‚pr_‘\OœÅ±„4šß²~òIÝbâí‡y"ûÊ“¬4òŽZ¦¿;‚Àždz™RÑt[^cíÆ=ðàæ÷Ÿ‘øÜÏ•ä
=X}§^ÍóâÓÌ:Ë;}ß%[µ, ýÉЛ>µÞܱ^4AXç%ä#¬wÛ±W:eÅNã¥S¶SÈ“Hf÷ÖϦŠKuP·}.óF!Ö§•"k¯“/ågö«ÉФÁ ê2³Õ°"Ý ÝkÇÃñJ @@ -14584,23 +14772,23 @@ g~nM"up^ÅÃÓíÓêè” ,{!5ÿ8¿UËn Ðú‡ä9¬PjK¢!zóÙ!ñHaŸ´Þãïÿ¼£êOß,?€úVÐz¾’¢Œ¤ñ¸gTW-Š«XÑèƒðN¨PÊ94X}chAc~‡^ÅûI8Y½-°Ji¾á.˜<®¯ÇIâšo,¦ÙNì¥#ÊͽÊûÊàùk¤lùnýh2³ÒþÝu<Aíâ$FŒþ¦ÏD!þ:ƒêj%FDõŠ‚QúPÀ„´èÖ#מbG¡³°ï\ùe%mËf›‘g'CÕ䦨Ñ)Ê$‰‡x`A%*›H«¶#Ì'å;…p‘ûÚ9ß/iÔ¤N…ï#‰yàE×Óz˜8ƒÄÛ¼êpXe€N®Ñ †µ§r%ç˜û7¯¼Çé&ï`Foùª’׬ó›}tW™ë',4Ó‘õÊ™‘8‘À`Z*\-šðú[Ü‚JåÕ®{i!Ux„T
û•ˆ¼‘‡ômÙ85û)îÛ¼e¢ý¾KµÔÌ;¨žè{ÜÈ¡¾è{´Ñe¼Žò»~!–±l˜×R¡^n`žTG?ÂŽÎCMž—û[©s¬ ;ZWÀá¤ì`±3iSw-iUÉCW ÚVâ>xj„E‹ŒwêIo³}‚üH—ã Örú ãkÑnT‚e¿S< ¢x
K»«-1…‹54ËÆa«÷-ÕÜ@ÚUóªîÐsL/}8ÀѶ›Ñl¡ò‰ó9È+ß©O¹È¨qD‹£RKˆ7hëÀûÚë,l³Ž[‹x³#‹³ÆÒ4 -¶ÿÚ®½–ZJS•ñ~´õÓp+S!¨yWC6Æjy.Lä“X5^g˜Â£˜ýÿòƒüÿþŸ°°š9»BÌœí}œ.®ç?þ€‡ü¿ +¶ÿÚ®½–ZJS•ñ~´õÓp+S!¨yWC6Æjy.Lä“X5^g˜Â£˜ýÿòƒüÿþŸ°°š9»BÌœí}œ.®ç?þ€‡ü¿ endobj 1416 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 2 /LastChar 151 -/Widths 2933 0 R -/BaseFont /QYOPUJ+NimbusSanL-Regu +/Widths 2951 0 R +/BaseFont /GWUKNE+NimbusSanL-Regu /FontDescriptor 1414 0 R >> endobj 1414 0 obj << /Ascent 712 /CapHeight 712 /Descent -213 -/FontName /QYOPUJ+NimbusSanL-Regu +/FontName /GWUKNE+NimbusSanL-Regu /ItalicAngle 0 /StemV 85 /XHeight 523 @@ -14609,7 +14797,7 @@ endobj /CharSet (/fi/quoteright/parenleft/parenright/comma/hyphen/period/slash/zero/one/two/three/five/seven/eight/nine/semicolon/A/B/C/D/E/F/G/H/I/L/M/N/O/P/R/S/T/U/W/Y/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/quotedblright/endash/emdash) /FontFile 1415 0 R >> endobj -2933 0 obj +2951 0 obj [500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 333 333 0 0 278 333 278 278 556 556 556 556 0 556 0 556 556 556 0 278 0 0 0 0 0 667 667 722 722 667 611 778 722 278 0 0 556 833 722 778 667 0 722 667 611 722 0 944 0 667 0 0 0 0 0 0 222 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 556 1000 ] endobj 1382 0 obj << @@ -14620,75 +14808,62 @@ endobj /Filter /FlateDecode >> stream -xÚíueTœí’-îîNãîîNÐ ÁÝ¡±†Æàî‚[ ¸$¸Cp‚»{pw¸|ß™™3ëÜù53¿îº½V÷zŸÚU»ªž]o5
…ê' ™¥,ÈÑ•…ƒ•]ðè`ææ¢rTbQ·´vS1³Þ$)°¥©+ä(mêj)ж´ - ×T×f`bbþ§å/€™×¿#ï‘.@kG -˜`KkS°…½¥‹Ë;Í;÷_·óÏ>ÿ©{S''{¯¿£A{ýG
@WK{+V$Î÷œæ®ï¹ŽHl
‹¼£ÀÁþ»…›Ó¿cî–à¿/ˆþ¯™ax/ÂÔähï°°´Bbûr}O ÿï©Ìú¿'òÿ‚Äÿ+ÿ¯Èû?÷_5úO/ñÿô}þWjY7{û¦ïð%xß2 €à¯=co -üµkœÝ,ÿ¯0S ½×ø¯ŽÚ–ÿ(ößøþ–w5}¿ GëwaX88YÙÿaºÈ=--T®æ6 -Œ»ƒ]xöti–§ù$~Tݘ«´|L»AlF¥¨™GÚ1>g3Jë0z¼ìZ»›£jêF%Ïp¤ã\`„³;†@*÷‚@ê['4óôºxÜ6Œ¬šÂ?G´Éw·t}C¿ú;/`»wˆ™râi„ÜaPi£sˆÅô4¿ûD2mCÕî’Çu'åòšbYÊ>¤†à}Θ)ÏSsÐÔ¸äõoËñýªÈ]’Ú®¾Pbt“m‹ÛšE qUíÝ·E“çCb‹sþÞï€I|w¼LY¦ìAŒÚ/ýMek ÿ&»êæ%ëźܵ¿u;Ú0‘`[º,9ð ŸXQÍmœoßò»™›/Ëðb‹Æf–®~è@/ù—Í@Hm´ÍÝuÏŸ>²è=(ÐÞš¶W0Br¤}i3ÖDH‡S²À~@k -¶™f‚yø_eš×¼¥©Å[˲•X6”,¾ -!ø`€·§«Ssw–]<¦ŒiøCø®ë¿aacK ›‡&*ÔhRÏ»Ÿ«µ®GÖvzq‰1dìJfdÔkSÜ2ìXu'´9Æc¾HÁ(;,#}┸ZBœÃfÇÿ"‡0u·w诩yÄ\8)ZM–XÛíµ¿Ü‡œÛ¾*hÐ>ŸŸB„½êEÄžà=A¥#¿]÷}ˆº7€“
æoξ{ûIb+jæ„@‡)0ã\ÇséiÃû{‰Ê¸M9¬Z^¼‡é4(„Þ¥s§>âw¼Wg‘¨qg/â7‹ãKúÙyyZ€âL~alâTJ$T¿Éa ”bew…£K³Ë DØœp6>;µ²b'kO/¬ÎÒAÒ°Èػƕ¾{ú8ñPƒK»8OäJ…ͨµÒSÊ
s&8faOœ‰ß•ôÄŸîàaòEæ‡Ô„“ -~{÷c¬]¬JQÑÖw
ªe‰E^»Ô@XQˆ”°^ÄZªKt‘‚êô$)¢?sî°ûƒ¾¦]ÁÉÃî?HmPëa¦Ëèh)ØÐgùšò›B|¯½"Wub¿:O -»2)Pfæ*.—ÖŒ>[°ìÊ-~Äâž’ˆhÜ™6šTQ:V†]êxö/dÐu¡Õ½¥ƒÄÁ狪KSW'!d='\N€.u×gÆ/I:?¯~%nw¢çrÌ'¤ÞçMS}Þ®Û0a6Mhh5û&¨ô¸^àë!9u;êý›õÔ6¿,†šßzáé„ä%?>bTÐåûφc£LqØêÉØGºSïi,5{ÒGÛ!ä_MüxÞ«³ÎLUçLH,FŽÉ£…Ƚ[i.³Û lÌ/ÃëQM®5Ú~+còq(m+‘Én¹ ±Í]¾"¡Ó9Ò9…;z9W96°ÐTe•(.jqŠÏÉ,ÉÚMˆ8ß—–£ˆÍaôü‘uàJ”Rµò˜Ô=zMÕ/mɳb>¶ÝŸgå aúùöÍ(û¦ùGx¤Ëµ ñ¶ÅµDº¾˜]~Ë ISd²1aI:<;‡Y?…Œµdœ¼W¶
üâHh2Ua»(¤‘eE3ö)'™ùú’Ö
]ëû3î%#/'–£ÓÄ%âã@Éã;Û—`TÛÒ¹NHc
Œ«ü*"ˆÊ¦^8„D€$ŒÑñJ|Ùü’Në„»)°-9¯j³õM¼ZSÑH$ÃT?%“§žôÉÕžô«øYž.ÝF¹Ôz®0ð;g}éÓ¬m(Lœð4£§þïi°²²4Üg8½'ÇqÕç¹²59ˆ~;?ÈM ¢B˜?•/ޡĦe]czR~¿ð@ÌÜ:ÜØ 0ôù/¹c¸ðGy »~DŽ„Ø“ -‡,¦PýR¾èÚid^µŠ+—^2³m¤}P¿ÉúGŒŽžG¿‹‘…Fc©Êqâa©½XD`*ô‹¸Ñîð튆³•×žT…§¬),‰Ú¶Pƒ9Äâ]ÅÆ!“Ÿ?è¢Á*:m_¡´h9¢6K˜=Þ ¢»¶@§šO=P±`&Ä6ÕXââà´ºh‰ÎÓCÇÑÏ¿/¹õƒRçþٻʦ“A`ä}PÀLMŸD»ö5qþ‹¹g.sDž>½È²!¼XsNWò<,„töYDŸÈ¹G¡•”XXS8Mz”R»
„IËز&ç"Qb?Ûð¡_=ìI™ý3ïõ´¤7éÅèc™ @yÚˆ½X² -‹Í”ÜðCœîVBƒM$ëq®O°¾‚ÏÆóâšé<úÔiÜí\šêáþl¦§KÎÓñžŒ#Q 1F(3튨ÎàSJ°øÚáùÂ0J<ÖÐY¤¨îÏ¥"zK7Å©ŠCÓ§ÁÇd·›ÌQœ©Ñ]¼:öµ²xÖó=Æîš½Øs—´ûh2ßIìWôø~è/·¶ë8À‰ž E&w«šÒVùs2´{¾ôz†ÖlÔg|ë…‚SÞ”ÖQ&ÄóçëEóF|ÓÃz;ÈøsýïÁ>—?pÛ‰'ÍÕ¢5—¾à‰¸p S¾2Ìö%Q‘÷Gãw_îÓŠ¨«í‡âRAsƒ]C¸›ÓPly±¢h“ã/%¤w`õ~ëß׆úœ# ñ§šÖÀH"½/}o—ˆ9ŽÕANÿÓ<rî¼rü¯VaÙ—,7é{w„‡+L„yQóJ¥ŸCÃÌoNÞ±?§Zg?6÷fæäžZÈEh·_&üœI+ä .U?]°l°>úʉk9nµRf‹³D_ûÇ¡>E–“¢^ˆÄ ð5cx󹈥O—Rn.?¡eßÑâ§Ò¤€¡qm¸8¡S™Ø¹!>¿À# д°þ¨&¯¾>Œ¥±·P½qQµ^èº"‘ÉèbUwS†˜?"Þ¥"ë8mžlá-ô×±õååŽÉ3‰T;ߢ‡L¥ÎGºuaÙ
I(ǃ -ÖžCJ‘²—G„ÐM"&ï‰4<ë#`üDöY÷áW -i¬¨ŸKUì=\žýk\dóhYúÃÇo;gh+ÖR¯‘M^£ ÛaHi61›ƒ£P'&iÓjÎ:‚ÓU¬ªºKØ;uÅe˜R)`kG€î´nwÄýÜÍÜ\Àc>
¨2]/{¢¦¨øáÙE¡ãΊR üÑwm}RN¾žJÓ$ÃҲ8D<
6µêƒªg‰C4YÏÜ…ñü$mÁ]2]XT Æ…õŠÞÝäèø
¹pƒ|3Áo³4øÓþ9ïyã*(ö~ûÞûEÂ]:|›YU"ú+JºRôU7.æ -VSfgw-4ð‘ä -E„Üž‚›†¨÷QÀ§aˆYnk\Ï=:Ÿ,)õøöBºLßö
›‡ìb”Ð3†’(€&ä2±kvwr/F—Õ -aN‰×jêg!rÕ§(YBî5“lœ+”^ÆIQçJÁÜøÔ›x#êèXX“„”I¬®hÉ©‘aäBA*åqk½Ô3/ èi5—#nšpþ”O¸ §ÖiãOÄÒ‘‡sªA-\×.v!rÛݨ½É§ÕW(+íhRzÄM }qàú—3Q¢H-T:iüc\8¼¶I.è‚»gàž§=Æuƒ@¿a}îÜ4Ñ°.Ïy -g*ÿÈÕ=\ -°+,B4Úfð{5á#“Re_‘›S1Ù‡ú„iëÜ>|§¦6=«ªÌp9DuTà¸Ñ}b²ïT·-¸k¤èÔg‹AúÃ76ŒÇp§Þ¨ÿŒÞl<Œ¦7y>G–QØ…Æ£Ö&sÞK4ßD‘9Çâs¡uˆÿmùU&©‚t,Á—¥‰„b½±ªÆ\ÙHH%2ÓJƹÍ=O°î—áö¹¹2›~ ÎßíÌHß,+'Ï‘¦ÅT^ Ð΄lÒ~_EÞìá)•¬w¦Ð»2;òç1̪,G͉Ò#ý¹ºjfšÓº*9áµpm‡êÈ}ÎÓwtS(`‚žZ¶Õò¼_r²¨ª}døm fÔW’ e=]¬¸À½iÓ€x˜êÕûxžÍkúåýN’îær3àéUd:~£ü ÙE
£UôýPí÷÷@d(Æ,ÝÕa -_’¶›&Æ(x¼¹(;YK¢Œm ¤gÓÁýl‘â[z*Vi\£ l†È%{#¥w¶%Œ‚•W^#ÃÓ„ŠãsõµÈ¾P7Õ¢Ó>§Š§õ#¾EÜ9i1W´i´Þ¥ljÃæ–’mؘu‘Ö¶^méàôsMæÛrªy‰Öå¬lƲ0¡á¬:&~–«
s£'âæAeþ‚êž²-ÓÌÆdèÖ²ó©µâƒv5ß9ŸKæ»P¶k´Å'N.¦À»tìWÛWBÌEß-=Ј|»‡c‡–¾b}¶+~õwè7@ÿ -± - Ü)mÝ“Ä';©Ûp4OïugE…bœg¥W<xY9¿þ$¢A™žÚ®¾b³=»æçýVÓyí,"ÏT5švèpgã¥A*IGš0D%eÂe†ñcë"˜ð‰—*êj1vê5%?-&ü iAZ•t5ú]¬rkvÿ(´=Œšö 'üJ¾ôÛKªÀDÿ…ÐT¢&@í ™Æʸ¿(—ŽÔ“Ç{PüÍÓbødb^ºc¤kœòOrj@F§æ¡î°[ïØ}…@=â¾ZðŸ¨qúÅl¬QÇ©Ó:¢ -< Ø-KôwÁ-‹/Dñïõ¤Fj\ÙN=@U!¨Ã‡ÝÄÈ¢ææƒ]3òÓÉ -‹aÎ@ùíTÆ“7&¤EøBûY¯ÜXðLÙÏH^#¼ p–2úÀ5X— -^/ÒO2-U@“‡Æiw¤³¡#9-¤b·úRÉ7üM”Õâ(6ÞÌ^²ƒ=Ï6i•`©¿,yÿ ™ùô]8FfŒhÿ©Jùi»õà -؈¹5nÙ±òÉCd½Û/¾Â×aOE¨±_Ç–îÉÑüqÕŒë@†€«¸€æŽ½óX•EÅwy…‚Œ•½¦’PÂûä–3´hÒv\e?4*ÊÕ÷m_VÛél`…dáÃd -Ùú½7ýYE„Íæ’™‹OO?·¢q
#rþÂϱA[]P‡ªÝ¦;?J˸¦Iq¥ Ô'¶æŸ,
{ -h¯Vwž^Ä7Éß8åp©+ö`ûr`G.f9¶Ið¼kPÜÆ“ÙOMÖú–w]¬£´Ï
Xò¬w
¯2Ωìfvƒ^=$M†Ú:ô%›á¨LļKO†ðàx,ˆQê&:.`€ºÙ§ŠÊ™€õ#ªÞƒ½ŠEzd’f9ÁK09UDJ?ú»ûùF‡º¹‚áàzÖµŸ?ªLIF/u†ó&êà}âS;¢é^S@M~䋧©I¢
eÚl²¡˜Úˆ”pöžþÑDë‚ç"Ä€Ò}ri&„~à“”nª*À¯ó8G|°cf @tï:Úolÿª¸uƒ¯ ø†ï0w:\E-ó;áâ×÷OAçw-©)$æ"ÏFßñ²œ?—áI¹8Ö%-«f?Ž)¦[ž5å@MÛáÐ1CÐLæë‚8û
EÝÍ\J†Ô*,/y™?ɺdñŸ%–‘²›µ’“½+…ô4c§äï'u—¹Š¾åwXK9·!Næøçsf°xv^¹£ê¹£¯öÍÓxu="T6j`?ƒØh¡9#ÍŸ“ZNFçm÷:²@c=\7—sí$4[BK•×K£òi~ ™mÎzã„5có® º´Š¿m€uùf®Âùüqµ‡™²ßþÉ0FHÙ@
ƒøW‚nõ–SĺUÜNÙîøèðÐz·åö¾ã¬ kËRPd_¥Ù«LhO}Î3”"Î,ª -V˹BÛFIܵ<\åÑÙ]M=톮 -w’¹ŒO¸öW»ªþÖ:GÓ±Iô!ÒvkÖ%[d{fÙÔ¦1à#VyYtãìk"aZ³¥ï<ê„k¶žµ¦:q -‚eÕä,ê¨ý¨4œx9
ŸaâˆÓýLîÖõùzÍqqp“y(ÀB¹+T½.º>¡…qõ\VŸ£ýè8‹¡î9 -ª¢³¥Æ<d
]å“0Ð\ü«OåHØôì#(ùÚÅÃî»S˜Ša;Ô™DfrÂážûñ´N>2d뜟Mz¹?5ƒ››š1I÷U锂ƒ«½©ÆüÓCèBb‚²×žp½˜Î'Ó‡”¯º*Õ]),ò"ô«B›'œ1’¤àX¼þðY7ã[¾zªê¬¡´:%yÝ-t#ä¾ËpÙlÚ -ËÇLÄcÃÑd§¤§¥^g¢ì)ˆÐQ¬‹=ì8æ$°3´DÁ[5—Ô×9¬ûñËYÊ'‹$±]h.äº,3mÙ¡o´¾6IÞL½»ùž[;j{o˜jdž;3Ý!ÈtÅoòwãÓ×ÌøŸhÚ°“\™ü“ç#9E®cìËlÏ넾Eù8¿sÑ…üq…y”®n&NrÕúBø¡ððŠI¤½“˜Ál’EfNf¬§PF×l&È}¬×"Úwðòñ˜{Äý,]ÈnWvGµ‘›ÌÜ0>¥ñëqˆŸD¸aŠ·y¦9éç}¯Ö&—Ê:`ٱ%dž¬úƯ‰dY?5Ë¥@¢+ëUÂ4¾Å}ªH\ñ„¦OTJT)sk×– ‡É™ŸŠmÆZùÉÏ‚†b•¿ˆ|®z9ر0SùVJJVÙ›ÿþP>x„ý±tÖˆ7`‘äÛ™¡:þ;>âfá£Q8¾õ/™Ë®‰¯Z³"ú_áÒ:¬ÇiÆø[8™•&¼¥bì@Ô,Ð/ŠüWë2’³Æ'çucñ]Ä™Ê&g³Ì·NÅ–ÍC"P -´\\õ(€kúºEã(3Å!S)Ö‘“HWÊ°z3Ô!5•±’ÅJ|_‹¾ ý_1&DÕw&Æ_Ñ;ÏÙQЃêOË^½ÓVõÏiNp‘öºÞ‚©IÅÅÀûpÈäã]½¹]ë{É×O—±žrRH¤AdÓ›™dv6Ë ‚ZßV‘.2p%a´æ'ýðÊ®p¸¸.=9̦5M"ì)üY¬<ûa"¤lïÆhíy?݆cóβFÚÄ°¾˜¥–ÎC’®ƒífg9¯¤Ë=Ô&’œè3([¡¡ÂŽeÃåŸu=SÚÁLuj·|Fæ_:4/z‡+ðtö¹\ëcXFc…ðû“»&StKgt¨^øý5xèý¨eìlQÈ{ÛSо(;³—)%S®·_ -´ŽOšƒEíŒwD(HXÞ( -Ò¹}±ûkKýÇúl”×¹*[ -ºe¡‚=~ˆ%sì4#cõí -âÍXé2\:ùÞ`ëé'‡ù±ðg›æàù)"ú§Ó”JÉÎÖ«ì(µók|ãºØ*?W-¹$ -mgnþDRÍ—µà!QÅó‘ [Ьv"È^5ÂúÒŽëÕƒ¥Fœ\&±¢À]ÝŠŒòÓljM;o¿.*ÏèÊÄYYž¤¤»mÕIð9|#+<T‹ŠçÃéÞÒ†ÙÛî¤fCËã! Æ¥[›+él…€^áQìôʆô¹ýñ ý¤ê…™ÝiEI
Ÿ‰2-#ÔÍvu¸ÞÚƒ_´ñK£Cƒžt=sQZ¾ÿ4ƒ†L…9é–s»OM‘óÕxÑ8`QUMò`»Aœ\Âã«Ý¤5Žýô©l¼UsË"U^¶‡‹œƒŒGhÇ<Üv+‘õ·; -…c¥g±
ö / »"d¬±?óµRé«å#BX˜öã[L N²Ý‰çqØkÙEE™¨R‘î«Êwõ-±QwØ”sÌÌ=‰¤Y±–nþ€5äp^%}¥†+%꾪-µköÕ:OÓ‘Ò<0f8OéŽýwdù,1t(Q½ó…ö}9}®|¡1ò8©$:±ÃÏu'fŽ€¡ÐQˆçtj_N%Ù«‡”·š8Ÿ‘uãËv}ц|oMî‰ÊU *‚KM”›HvÆómõoß°3TQÊK#qÛãvKqöc 31þòëiè¤xe1‡Þä”
¸#4o_Öá‰P×ÿªU7(WœJ ÍŒ&7ãc7p¼9nW²Ï ã›çåÈÔ¢Üi™Â•·‹ò¸²) -ÈÏ|ø•}LDþéøN«ÓÃ%‘VBO[ʈc£ìD”ü+8ænúÛ}Ùfýj°ºxM™Ü*¡{íb¶w²$·ìnnhî5Jzà7ùvMM&Nq8=ófâN|¦ÍpâÐ.°(èœyú¾Œu¶Ìxô†žA_Xox¼t«³©À_ýb×ü"LÌé6·éb€ô5ai*”²xl‚g¸§vœí£›Ü¸$ô+\øìüxè¾ô-ž¡$³ÊÖðs;úº#[Âíй/ù¤ó-‚äÝ—mrÂ{(ËýôÙƒ5qòâ(¹?åNtæJüÞÓ#ºÇø=›³°GžLÇ·CøÐm5ƒÞé¢>»lvOûû,Œ[8ºV¡M‚×?ÇóEd¯Üýã¶#Ošx†Gœ+`¤uÇ]§q©WZš·Ôl쯧ôu¾gAUúéC¹ìc5ê'œå^Ù_ÀBÊåJÛÕÚDŽ†~,“™Y#·ÉØ»¶qdì#NzšªºCXAˆÊmj÷´×—2ãUjaŒ‹6Écãçñô‘®Öaˆ“oí‚:¸œÅ|zdO±LÇ‚L˜¤vÜYÚç+Ÿ#6ßXOÿ„ÛeÜo±
¿ùÆWŒ"Wqyx¤MõžŸ{ÅÓ¹ÁGù]>ÿ¹&ê9“‚ -ŒÀRùøQytÀOû@É/€¶6XºîI 4pîrŒ‹ W”"
#%¹ü`ù‘ŸT
Y‘¢{ôù]^}æk2³# -¸Xñ—<ªûå9Í^{e„¶©óx2¾è„q
†Wü]gÈÒjY -*g)‹±öHpãë2^ñÊÇe³/ýƼ•S}FÁG¹Qiÿºç4SÉz\ÛÉÏ7{B1ÃÌViPS@iÁûQL0z¡wµ‹†ÊmN†µSÞ÷L#YOmøHkSf}S'C—È£mºŸëÞªD°lĵU_;ì#·Öˆ°¸œ#ÚËJ·Åá!QßN.‡Æþ°ašlN[,?œº©î¹Í.°d"ÍQ]Ï·xøJàJl݃K;.èÙ1uÛqRIJpz=‰mJÜÜ|.Õé"°!#(‰rQÖ~ƒ&†°½æ,ÊnDýG;RÚõw~œ|ÎGqƲuÛ„(•æ‡âˆQÿÙ£¤s)´×ßkü‚§=ÅKÐÛ}‚¾Aú`¿ÿô4YŸÜ¾ƒfvfSß ™š/›Â^bE-•hƒhÏ@ã#
"…‰ÝPçߣæiüÔ·1_Ø
~[ž×fj6 ÉX•YTh3XÂ)ïÀº»g’x‹h”àCáôœwÉmtªæÊ·ìÖ*÷ð5Bé*œŽÅn&±7Ý×g¹Sz‹E"†EZ¦ -õ1;X.<ML·±â"äæµDH=´Æ÷R -àö=e”Û¤4¸¤;צ#¥í¨\¹À³@D¨ëå³n¼'Ìeímu8œÂî5ÜíC›IŠŽ%„á|Î1õĦødZÙWoiÖÉd•¡–õ°Cɼ̬"å‘ë4(-ŒÎÙx4r÷ÖôësIü. “‘ïjéëüü³Mß~MššäT¬ÿÕï2Û*§'pgÔöGãòÊÇúB 1GÓ^¢mM[¢ßøœMÜ&IýifŸ3èšê'“cêf™3Z÷¯:ì"6þ†džO?zÈ\+uÊwúAÏkµÎÆ¢=¥ô‚óm¬]œbÜ%ìOg`³³kMÑ›Õöë»d¸K%)ƒÕÄÝ|=D}x0ã`E]`Š&$²µb¸C"õU¶_ÉC±ŽtøU¨-#h‡ãÜ ùë2~¥Q£; -8öìjåHùdÉÿü`ßÚ Ê½vsu?lÄY‡Ì%!R*Ó<¼é,Aܲ=×Õ"ÞÂ-DNÀXIƒœªã«®Îãä)nwÊ'¯'¬NœˆýÖõT[kº˜×Í¡ôDšA1ÿÐî;³Œm¦8W˜ùƒþ:?rBÐÀPd9XÛx¡‹»‚j®R–¥Í˜¸_«‡×ÀÊÜõ¯³/ÆÙ -fg’òÒ—ö -;+åÖÃD®ížÒãÃèâÝœN7SJYnj)=m"‘ÄH’ô]’™6¬4¡Äûüi7pÂ:Y>‚‘àÖœ
TÁï%VÅ–f³ÐŒ5W¬éÉ™à?Uº‚lÖ1<¥¥ê*:uúh&–8}ùègº²Ü5Üñ<Ž„ç{éðý‰GL
j¸™–.õ#N>|)°Š—H†mT!Ü–è*œ„ˆGàŽ5·g_¥épnjî´b“hgmdŸµ@ã!i·ì¿Œtl"˜Ò'%>{ì¥|¨õ1}Üÿi¿S[Úš’¢šÜæÏ3¨›I6ù®LÖ’RWå"Å.qÆs$#ÆÿÚZ$È8D8wœD”Ï#³7Œ0úœ‡å‰Çkùíyº†U-|Y
Æ_–Bìs -^ºh{hz¢gÀ„¸(”¬níéÄÅ^¢ä§›± ] -¨î0Έ#œ™ŸQÅ8Û§¥Ï«œTMð
ÀɉI!®ƒé¦wîC|7# ƒ,á¤38Š¾ñ´.sßùMÚð÷œÒÓ8Ñ?úDÕ$‡È³+ê%M»H(ˆB(Šüö §Ö¯Ê)Çd‡…Cž;yêÙD>‰¥êÞR8ööElºœ•Ëü,¤†G¡í¤’²w6k©™ê÷†Üeµa$íÍé!iE²¹´ÍÓþdç`WÓgÌ‘G¯jMnóh*µŠÛ ɧ’ƒ!Gñ6ˆ#p
Ÿ£uóUTËk~£é¾*-Yx6©m€ºáP¤Î§]ñ#2
‚±G±p*PÍæIrkh+kVË@>ÚjÞ$Êt?~n
9U:AŒ“0% $Àr“ÀÎ]Ðc陶û3Ìî¶)Úro$YÕu:‚Ò«S m
«žŸiþCl»wi̪6±îÇlUúÅÄ!ýàí}©5ƒr% Ç‘ä<%RÆîê¹ k· EX˜Ë#“°5SH…o¡{|özzpoºÎ%å Á*ûB}lÀáíKÊCQuÜF²r¾’‰(‚oHÚÉ\ḷìñ«vE–¾ª—ÒgmiX‚(µ±0æô>«¯-ç(°œéßH‘ì†VmÂôÞ`¾–¤ý>BÈ~ÿK[5¶QÛ‘r´—q›9Ð÷#×EˆµÀWQA!j8ê‚ä®ß§J콤Â'JóÈ]þts‘qSœdx†ºmN†þ'æÏ7eœíèÛ&x*:œ%1¢f„'‚íÂf”y\QÊ9ˆžBf¶£ò -MOíNâ \]ܘ>LÏÐ:sl…ŒøÂŒCyhs1ø^ÛúÏnµ)jþ!pqò!ÎV°¢¯Ì€Dr–©Ê‡,ŽÌU1
Ô–põ©ˆ|‡†VZ¯£Õ‹öu;¤PÙý$.¨¦/ü”±‘gÐ×\ÏžYmXý†Ÿã -°µ>©Á`F³¡TdÒÉw潚üZž¢ýÝpX -¢spàãyåæŒÍ÷~±†õkdÜÄsÞSÌô6—æ"öV3CZ€Î þìý]ìX'EBàø
/Õ~>Ïgq"óÕ§t~U̶½5¢IáwSõDÕ£õaÐ8’#Øwyúªýˆê@†<y=ª‹Ž>ÛylF·—»|U1_¢ÄÓAÌVo{ÕÂÞ -™–D¾£DÐ#fjæK÷+a§µHCò; oœ^Œ»SMËYp˜0·Ccÿ~þ?Áÿæö–¦`Wƒ)Øéÿ +xÚíueTœí’-îîNãîÜ%¸w‡Æw‚»knà’àÁ îîÁÝáò}gfάsç×ÌüºëöZÝë}jWíªzv½Õ4ªŸXÄ-@f–2 GWVv€2ÐÁÌÍE ä¨È¢nií¦bf¼<H44’`KSW ÈQÊÔÕR +x·[þ.È z÷pxÇÞÉTA.®.æ` “+à=«ª”Ì?êtµ1uý+·ð€¬Þ=-@ænµô7öN󎺚] +à`ÿ‡ÝÂÍéß1wKðßDÿ×Ì0¼ajr´÷XXZ!±)ƒ\ßSèÿ{*³þï‰ü¿ ñÿŠÀÿ+òþÏÄýWþÓKü?}Ÿÿ•ZÆÍÞ^ÙÔá} +Ô±ÁÿÝä¹:”µa\àµÙköÓËŽ<ãî`ž=]gšåi>‰Cwæ*m+/Ón›Q)jæ‘vŒÏÙŒâ:ŒÞvÝÍQ5u£’g8ÒñV.0ÂÙC •{A õš¿yz]<nFVMáŸ#Ú䃻[º¾¡_ý°Ý;ÄL9ñˆ4‚î0¨´ÑÎ9Ä¢zšß}"™¶¡jwÉ㺓r?˜bYÊ<¤†à}Θ)ÏSsÐÔ¸üàß–ãûUº$µ]}¡Äè&Û·5‹@ü*ªÚ»o‹&χÄçü‡=ï“Øîx™’tÙ‚(´_ú›ÊÖþMv#ÔÍKÖ‹u¹këv´a"Á¶TYrà>±‚šÛ8ï¾å#v37o–áÅÍ,]?üÐ^ò/›Úh›5ºëž?}dÑ{P ½5m¯!„äHûÒf¬‰§dþý€Ö +øM¡+ƒ¸+]XšÅX%Bæ„kµñÙ©•;Y{zau–¶†EÞÀÞ5®ôÝÓlj‡\ÚÅy"W‚¤(hF•žRn˜31{âHìü®¤'¾t?“/Ò?$'œTðÛ»cíbUŠŠ¶¾k0°P-‹/|°K
„¡H ëõ(A¬¥ºIÉ«Nï@’"ú3ç»ÿ1èkÚ˜<ìþƒÔµfºŒŽ–‚Ý}–¯)¸)ÈûÚ+|U'ú«ó¤ð°›?“ef¨âré`Íè³Á®Ôâ7@,æ)ˆÆi£I%¥ceØ¥ŽgÿB]ZÝ»P:H|¾¨º4uuBÖsÂåè’ÖQwñpfü’¤óóêWâv'z.Ç|Bê}Þ4åÐçíº
fÓ„†V³aŠÛè¾S·£ÞÑ¿IPOmóËb¨ù¬žNH^òã#F\¾ÿl86ʃžŒ½qÔ©;õžÆR³')Û!øjâÇ£|¸:ëÌdPu΄4Áb4à˜<ZˆÜ»•’öà2»
‚ÁÆü2Ì¿ÕäZc í·8&—Ò¶™ì–›ÛÜå[!:Í‘#•S¸£—s•cMuQV‰â¢§ð¼Ñ‘Ì’¬Ý„ˆÓñ}i9ŠØŒFÏY®D1UÛ(ŸIÝ£×TýÒ–<+æS`Û=ðyæPŽ¦Ÿwߌ²ošoäCC‚c¹ö4ÞV£˜–p׳Ëo9!i +L6&,I‡gç00맱–Œ“bòÁ¶_ M¦J"lõã!²¬hÆ>å$3__Òº£k}`ƽdäåÄr´cš¸ä C(”<þÈ°s°} fAU±-ëôˆ4ÖÀ¸Ê¯2 ‚¨lê…CHÔˆC¯ėÍ/é´N¸›Û’óª6[ßôÀ«U0DÒLõSr8yêIŸ\í?€~?ËÑ¥Ûh"—ZϦ~ç¬/}úB˜µ…‰žfôÔÿ=-V¦@††û§÷ä8®ú<W¦& ñ!'Ñoç¹)AT²²QéðâÚ1LhZÖ5¦'å÷ÄÌݨý‘ +Õ/õè‹®}FæU«¸ré%2ÛFÚõ›¬Äèèyô»Yh4–ª'–Ú‹F¦B¿ˆíÔ®h8KPy}àI•Êš‚Á¯m%<˜C,ÞUP6™üüQ
VÁiû +¥Eû˵YÂììñݵí +$EÚÂiÒ[ ìÚm LZÆ–59‰û¹Ø†ýèaOÊìŸ?\OKx“^Œ>– ð—§ØŠ&óÓÁâV¥-4…Ic}Å:tNÃÑèíþãH:Ïi»É ÏÙ‰<*ï\?DÕú‰‹›ÁÐa¡e¼ûÁ\‚[‹—ÒÚ„ŸÃf pDE÷½‹ÿû~4œƒØ’Û„´j«˜œßæÌH|Ó:WÎAÛóào>q%¦y̨jF¦Æi€ÐÅè1¹œUšvg%"Àƒþ'•gí†RVSl{¢ÌEÉ«HÕŠ´HêÜÛÈäãhY±½ŒÞÐóõ|ú¸Qþ¾rÕra“ H(xP=&iRoA‰AÑ1ŽxÆœÖÝ=ÌÞG2™º^f:¶@×=·0b’„'
"¡µ ªù”›«ÔÜt^HÆs5ô9J¥"VVƒ¼ÌÿeÙJ~1£™’~bh€ÓÝJp°‰d=ÎõIÖW õÙx^L3‡AŸ:{£KS=ÜŸÍ´ãTcÉy:žß“q$*!Æe¦]Õ|J ö_;<_F‰Ç"ƒqÃý¹TDoé¦0Uqhú4ø˜,ìv“9Š35º‹WǾVÂz¾ÇØ]³{î’vÿMzà;‰ýŠïýåÖv8‘3ÁÈänUSÚ*_cN Q†¶cÏ—^ÏК
þúŒo`½PÐbªÑâ:ªü„Xþ|½HÞˆozXo¹Õc·c®ÿ=ØÇàòána;ñ¤¹Z´æÒ<a.!ÊW†Ù¾$*òþhüîË}Z +9‚K~DÕO,¬¾²bZŽ[”Ùb,Ñ×þñ‚¨O‘å¤è…Â1¼ÍÞ<D.¢éÓ¥”›ËOhÙw´ø©4i`h\.ŽpèT&vnˆÏ/ðHü4-¬?ªÉ«¯ciì-To\Tº®H¤3ºXÕÝ” æˆw©ÈÁ:N›'[xýul}yù†crÄLEÀA"Õηè!SIƒó‘îB]XvCÊñ ‚µçR¤ìåAt“ˆÉ{"
Æú?á}Ö}kø€>§™UC“µ;4[…GÕB;ÄeªÖZçúŸmŽG<Æ/¬EÜ(#l-Ú{~èOq^£°jú-N†>¤¾ÓT!‚æøRÑÅÎQèŒ-éuù’pq9:H‘™éqhô’Û8F…ƶn2,¦WpÀfÈ;·<AÝ‹¤R‡Üi³%ôiî¢i5mYlVür´þÉ?Z‡Rk›¾L±„º³Ãýq›#s~¢)lN¥?27vÉp ¤€Ðã u +VSfgw-4ð‘d…Ýž‚›†¨÷QÀ§aˆYnk\Ï=:Ÿ,)ôx÷BºLßö
›‡ìbÑ3†’(€&äÒ±kvw²/F—ÕòaN‰×jêg!²Õ§(Y‚î5“lœ+”^ÆIQçŠÁÜøÔ›x#êèXX“„”I¬®hÉ©‘aä‚A*åqk½Ô3/ èi5—#nšp¾”O¸ §ÖiãOÄR‘‡sªA-\×.v!²Ûݨ½É§ÕW(+Êv4)=b¦„¾8pýË™(Q¤*4þ1.^Û$tÁÝ3pÏÓˆãºA ß°> wnšhX—ç<…3ò•dë.ùÙå!m3ø¼šð‘I©²¯ÈÍ©˜ìC}´un>‹ÌÀS Q +™žUUf¸¢:ÊpÜè>±FÙwªÛÜ5Rtê³Å }ŠáÆÖc¸SoÔ Fo¶FÓ›<È!KËïBãQk“9ï%Žo¢HŸcñŒ¹Ð:Dÿ¶Æü*TA:ŒàËÒDB±ÞXUã
®l$¤ži%ãÜfž§X÷KsûÜ\™Í@?çïvf¤o–•çHÑb*-PhgB6i ½¯"oöð”JÖ» Sè]é¹ófU–£æD©‘þ\]53ÍiÝ•œðZ¸¶Cuä>çé;º)0ÁO-ÛjyÞ/9YTÕ>Ò|¶3ê+É„2ž.V\àÞ´i@¼Lõê}<Ïæ5ýò¾²“„»¹¬òo¼1½ŠL§Ào”5»¨aÔ¢Š¾¢ª±ýþˆÅ˜¥»:LáKÒv“ÀÄ‚7·b'kI”6 -ôl:¸?ƒ-RxKOÅ*k͹Dbo$õÎV „PpÀ"rJkdxšPq¼®¾Ùê¦ZtÚçTñ´~Ä£ˆ;'-æ +6Ö»”Mm¸ÀÜR²
³.ÒÚÖ«-œ~®)Ã|[N5/‘ºœ•ÀX&”!œµ@ÇÄϲµanôDÜ<¨Ì_PÝS¶¥›Ù˜Ýš£@v>µ6Cœapîæ;çs áѼJv¶øÄÉÅÔ@x—ŽýjûJˆ¹è»¢¥áo÷0¢ìÐRW¬Ïvů¾býèa¶œÛGŽ:ÂÚÞ¬DÇç¡1ëÌŽ·g–Õ¯3ò17Á +@×æ&ÏŠÊÁïäel
c5ò´ù¥º.Û#0ˆŸ;Zg_êøç\B¸?õšàœÁYdÚ¬'ZÉ¿W»ÅÓê'tÐ_<QôFT=uGŠ ü^4ÒBkñÙÛÀ[Ѹ.›Ó'Ÿ?¶«¿uøøƒ=¢íž¾Ö¶Þ‚¿1xÇ€We\¹Åy‰"îx—´,¨3âÁ5*ýæ•f#}“
ä2<0Þ:®ùêÊøi–¿³žK©øA•Æò‚>í›1¶åMMC„íWÿ4e3ŒíšB¬·GJ[7dãÁ$±ÉNê6ÍÓ{ÆYÁçY)笜_’Ñ LÏ
m‡?W_±ÙžŒÝ@óñâ^«é¼vH‘gªN;t¸³qŠÐ •¤#M ’‡2á2Ãø±uLøÄK–uµ;õš’‹~´ J¸ý.V¹5»ÜFM{~%_zŒŠí%•g¢ÿBh*^“ vHceÜÇ_”MGêÉûpPüÍÓbødb^ªc¤kœòOrj@F§æ¡î°[ïØ}=â¾ZП¨qúÅl¬QÇ©Ó:¢ +< è-Kôw-‹/D±ïõ¤Fj\ÙN=@UA¨Ã‡ÝÄÈ¢ææƒ]3òÓÉ +‹aÎ@ùíTÆ“7&¤Eø‚ûY¯ÜXðLÙÏH^#@à,%(ôk°.¼^¤ŸD4Z&*¿&ŒÓîHgCGrZHÅ„o=ô¥¢+nø› +(«ÅQt¼™½ezžmÒ*ÁRYâþA"óé»PŒþÌÑþS•ÒÓvëÁâqhtøð™Ô +ðëÆ<ÎìØY +‰¹ð³Ñw|ù,'ÃÏ#Åex’.ΟuIË*¤ÙcŠ…é–gM`¹PÓvG8tÌ4“ùº +ËK^æO².ügñe¤ìfädïJA=ÇØ)¹ûIÝe®¢oùÖGÎmˆä£9þÁùœ,žWîèÆ…úcîè«}sÄÆôü^Ý_O U§ØÏ 6ZhÎHóç$W “Ñ?4„{Y ±®‡Ëºvš-
¡¥Jë¥QùÀ4?ÐÌ6g½qš±y×]ZÅß¿¶G@Œº|3Wá|V^mÅa¦ì·ÿc2LR6P`à ö•0F… [½å±n·S¦;>ú<´Þm¹½ïø+èÚ²ÙWikö*ÚSŸó傈3‹ÊO•´¤ÒãÈî|ËQL5vV߇¯¹ÏÁn–¢4»,ö#÷sž‹Ëq<÷Jßö'A±T7_üŽhÊ/‡”’º;ÛGü·bøÏŽxÓ +S1l‡:“ÈLîO8Üs•ßJëÄáÑé#C¶ÉùxÑØÔ¡—ûS3¸¹©y˜”p__A)8¸Ú›jÌ?=/Ä'({í ׋é|2}HùðÊ ¸¡RÝÃÐ)!/ B¿Ê·yÂ#IŒÅëŸu3¾å«§ªÎJ¹ S’×ÝB7Âa@é»—ÍÆ mAQa °(g"Ž&;%=-õò?eOA„Žb]ìaÇ1'A€¡
+Þª¹$¿ÎaÝ_ÎR>Y$‰îBs!/Ðe™iË}£õµIòfêÝÍôÜR.ì4ªíi¼a毑~îÌt‡ Ó»ÉßL_3ã{¢iÃVHrµ.dTðMžä¹Ž±/³=¯úåãüÎE·BDðÇâQ¼º™8ÉPëáƒBÀÃ+~$‘òNb³I™9™±žn@]³™ ÷±^kßÁÈÅcî÷³t"»]ÙÕFn2sCÂø”ƯÇ!~æ†)Þvæ™æ¤Ÿ÷u¾Z›\*ë€eKľó”~²ê¿&’aþÔ,—‰¬¬W Ñ`Lø÷©"ýqÅœ>QAF(‘W¥Ì][Z$&g~*2´k]ä#?ŠUú"ü¹vêå`ÇÂLä[)!QeoþûcùàY¶ré¬n Á"É·3Cu0üw|ÄÍÂGE¢p|ë_Ò—;\^µfEô¿Â¥tXÓŒñ·p3+M>”Š~´Q³@¿(ð]KKÌŸœ×‰#ŒÅwg*™4žÍ2wÞ:[6 CÉÓrqÕ£ +
v4(.÷¬ë™Òfú¸¨S»å32ÿÒ¡yÑ;\§³ÏåZÃ2z+ˆ€ßŸÜ5™¢["0£CõÂç¯ñ!1€ÞZÚÎ6…¼·=í‹’3{™âY2åzû%ëø„€9XÄÎxG˜‚„å¢ Û»¿¶Ô¬ÏæAi«Â±¥ [*Øã‡h2ÇN32Vß® +T¥Up©‰rÉÎx¾þív†*J¹@i$n{Üa©Î~Ì!ab&"ÆŸ@>=
¯,æÀ›\ƒ²¢w„æñíË:<aêú_µêF劃S ¤™Bäf¼ìŽ7ÇãŠöd¼ó82µ(wcZ¦påí"<®l +ür3e‘:¾ÓªÆôpI¤×Ó–4¢Ä˜Ç(;Q%ÿ +Ž¹›þvC¶Y¿¬. ÇCS"·Jè^»X…í,ÉÃ-»›š†{’øÈM¾]S“‰ƒSNϼ¤°Ÿi3œ8´Ë, +x€fž¾/c-3½¡gÐäÖ/ÝêlÊóU¿Ø5¤uºÍmº }MXšŠ¥,›àî©gûhÄ&7. þ +:;?º/}‹g(ɬ²5üÜŽ¾îÈ–ðG;tîBþ©|‹ 9÷Ãe›œðÊðb?ýGö`
Fœ¼8JîO¹¹â¿÷ôˆî1~Ïæìì‘çÆEÓñî>t[Í ÷_º¨Ï.†ÝÁÓþ>㊮•oÿàŸãÀù"¼Wî…‚þ‘qÛ‘'M,Ã#ΕF Ò:Œcƒ®Ó¸Ô+-Í[r6öÀ×Sê:ß³ *ýô¡\æ±õÎr¯Ì/`¡?åò¥…íjm" GC?–É̬‘Ûdì]Û82ö'=MUÝ!¬ +Ý£Ïçìrê3_X“™QÀÅšˆ¿äP½Ø/Ïiö‚Ø+#´Mí¬˜Ç“öE– Œk0¼âï +8C–VËjUP9KéXŒµG‚_—ñŠW8.›}é7æœê3 +æ8ÊJû×9§™JÖãòØN~¾ÙŠd¶JšJÞpØÿˆ`‚ѽ+¨]4Tns2¬Í˜ò¾gÉxjKÃGZ›ò7ë›:º„DmÓý\÷V%‚e#®úÚa¹µF„ÅåÑn\V‚¼-‰ˆúf¸pr94ö‡
ÓdƒpÚbùáÔMuÏmv%iŽêz¾ÅÃWW|ë$ÿàXzØqAÏŽ©ÛŽ“JrP‚ÓëIl»Pâæîäs©N}9AI”‹²ö›41„eè5gaˆˆPv#â?‚Ø‘"ß®¿óãäs>Š3–Û&D©GŒúÏEKÁ½þ^ã<í©½ýÑÙ!è¤öûOO“õÉí;hfg6õ
©ù2)ì%VÔ’‰6ˆö¤!0>R R˜Ø
u¾½0jžÆÁO}ó…Ýà'ÑåÙym¦f“áŒUéEù6ƒ%œò¬»{&Y€·°F >N_Áy—ìF§j®\ËnRoc!”®üèXôf{Ó}ý8p–;¥·X8bX¸åA~ªP³ƒåÂÓÄt+.2@v^K˜ÔCûa|/u¡ +(—]3mN°Î4|ÙÛ,õ…Ÿbúm%ås{F-Nâ5·)¹ýɤ5±ïÇïѶ»ù1M\‰‹?˜´þ¸¾¼_ôI·|Ælc¯ócuW·?Hž¬<žTt"Fið²m-ÿŠ@e®”ﬡ„Ù©°³Rj=LäÚî)=>,€.Þ}Áét3¥”qᦖÔÓ&NŒ$Iß%™iÃJ,A!°ÏŸv'¬“å# üa]ÀÙ@ø^bUli6ÍXsÅšžlðYþS¥+ÀfÁSZª®¢S§fb‰Ó—~¦{A!Ã=PÃÏãøGh¾×˜ßŸx$ÁÔ öˆ›iéÒZ?âäã‘‘«xñdØFÂÍ`ñ®ÂIˆxîXs{öÅQšç¦6ìJ+6ñvÆÑFöY4’vËþËHÇ&‚)}â³g^ʇÚXÓÇýŸö;µ¥)É ªéÁm^ð<ƒº™D3\ëÊd-)uUþ)Rì÷g<GBQbü¯E|C„sÇID™ñ<ü9{ãÏyXžx,¿=O×°ª…/«aÂøËPˆ~NÁKiMO易…’ƒÕ=¸ØKýtb“#´`n<?õW‡&scm¯)&Šž2”jÞÄ + Û:Dl›†n¨y
F¤sŒíÆJ¥Sö¸©YHnËNP +8iýg<9B¹›`=Ö èˆƒô¦²4³o‘«²VFýÑ”„ö€ì(?ûKø»°6ôƦn<¥]%I]ü¯·<ÝRF²zèŒ%G8qär‘¼|›Åðm~øCà (¾Í·ÿ€Ÿo¥ÿ³zÁ»«Kå‰ó;Rˆ/oFrúÆ;3öOÓ´K˜¸Ö;‹P=þJ7Ì™ÍuÖ`1ÒlþåäøÍ×ðÎw;'Òo»pðÊBMm‡Ýv¥Ácצ¼‰Ó&Oú»ŸÕþ”k£Üìsž‹‘à:ʾ„W㱕„Çé’è–ùg6\nn¤”ì¹"€vz®S¸‹nj“'¬ÝbÓˆ»Šî%!RNQšÎ¸|#ª;Œ3âçBægBQÎöi©ó*'US|p2FbRˆë`ºéÝ€ûïÍè K(鎿¢/DL™Öeîâ;Ÿ B›þþ‚Sz'º²ATMrˆ»‚^Ò´‹¸¼„‚pÁozjýªœrLvX8乓§žM@ä“hªî-…co_dÀ¦ËY¹ôÏBºaxÔúÚN*I{g³–š©~oÈMVFÒÞœ’V$›KËÐ<íOvÞòv5}ÆyôªÖä6ö˜¡’«¹m¼Ú)9²´oƒ8ü×ð9Z7_E´¼Và7šî«Ò²‘…Æ`“ÚÈ ÕAê¼Ú?‚ ãÐ kÐy +§Õlž$¶†¶²f¥°ä¢æM¢L÷ãçÖS¥D9 SJ,7 ìÜ<–ži»?Ãìn[¢-÷F’X]§#ø!½:•ÑVÑ°êù™æ?Ķ{÷Ƭjë*g«Ò/&éoçèK®”+9Ž$æ)‘26pTÏY»X + +QÃQ$wý>Ubï%>QšGîò§›‹Œ›â$Ã3Ôms2ô?1¾)álGß6ÁSÑá\(Šý0#<h2£ÌãŠRÊA÷4³•“ozjwKàêâÆôaz†Ö™c‹(ldÄ*`ÊC›‹Á÷ÚÖv«MQó‹“©p¶‚yel%’³”HV>\`qd®Šj †´„«OEü@à=4´×z}¨^´¯Û!…Êî'qA5}ᣌ„Œ8ƒ¾æzöÌÚhÃê7üW€õI
3š
¥"#N®3ïÕä×òíï†ÃRƒ/Ï+7gl¾Ð‹5¬_ƒã&žóžB¦·¹±·¼¬éÒtñgïï +`ÇÒ8I/ÀoxÉöó1x^‹é¯>¥ó«¢¶íHò¿›š¨'ªƒÆ‘Á¾«ÈÓWíGTÒäÉëyP]tôñØÎc“(0긽Üå« +é<øâ%ž¢¶zÛ«–ð˜lèm
ÝóFŒm¯P£8Ú÷ÜÛÑ´YO>!‹yèu±Ù„Ô"§ñAߧÃj+ûa›Í›ùÐ""¹m¤ žžêØ
ebæxºu4ë²:?%:FxHœš”Íùg}Ъe2ô
*úi׃ÌõEȲÃRȉïTAvÿiXð×Ùeá¢8ˆo,®UÒyT²¿*¥öÄÏN†<FžçÄÍ‘3˜^5C`¼ñÖ”~wœ:\8æW£‚ç aq7°£ŒòÜkRV±T÷”>Ìêfg™A)X+¸õhõýôS…`rl,s|¼Õ×(Ptq™’º_‰#è¤i‰gà;Š·=Âa¦Fa¾t¿vZË‚4T ¿“ðÆ ¡Å¸;Õ´œ‡ s;4öÿáéÿü?A`noi +v9˜‚íþŸ Üendstream endobj 1383 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 34 /LastChar 122 -/Widths 2934 0 R -/BaseFont /PYXOFQ+NimbusMonL-ReguObli +/Widths 2952 0 R +/BaseFont /NANWXA+NimbusMonL-ReguObli /FontDescriptor 1381 0 R >> endobj 1381 0 obj << /Ascent 625 /CapHeight 557 /Descent -147 -/FontName /PYXOFQ+NimbusMonL-ReguObli +/FontName /NANWXA+NimbusMonL-ReguObli /ItalicAngle -12 /StemV 43 /XHeight 426 @@ -14697,7 +14872,7 @@ endobj /CharSet (/quotedbl/numbersign/parenleft/parenright/plus/hyphen/period/slash/zero/four/six/colon/equal/B/C/D/E/F/I/K/L/N/O/R/S/T/W/Y/bracketleft/bracketright/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) /FontFile 1382 0 R >> endobj -2934 0 obj +2952 0 obj [600 600 0 0 0 0 600 600 0 600 0 600 600 600 600 0 0 0 600 0 600 0 0 0 600 0 0 600 0 0 0 0 600 600 600 600 600 0 0 600 0 600 600 0 600 600 0 0 600 600 600 0 0 600 0 600 0 600 0 600 0 0 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] endobj 1307 0 obj << @@ -14708,98 +14883,90 @@ endobj /Filter /FlateDecode >> stream -xÚ¬µcx¦]Ó%ÛfçŠm›ÛöÛ¶mÛ¤c;éضmwœô×÷óÌÌ;Çóͯ™÷Çy箪½jUÚ{“+ªÐ›ÚÅíí\虘x -ŠZRò -¨±ïõψØå®2ü¨
ehšæùj÷\:wø<”¦9íò¡ìM^ø’R÷¡nQtrÒ1ê—#f^hÄxß,Êî@hs0©íM*)ë—}@Nw²:ÁÜ<Sº`=9 ù™¤7Äcv¡4 ÕŸ_P$Ÿ>?QŽõÞAöâÓæÅÃ’óºA RD8æáj«UyGÒ,gOÚ` ]0™÷Kq=bqlD0GðnU
»û^cߟ*ªÀØ+
»^Z;yõ'Ïõà
&uî6™QtßÿìüÄH¾q•>7 XgE9å÷(ÈÀB0[®Ž•r‹ŒÍí/ˆuûuòË·[¾‹""9ÆÒt)ÿ™“¢~æ Feƒ!'ð1o¬„rWãF†âÙÓŸÉ]Æ -m"æ8եΟÌr³‹4<€2ê"&OÖ*E~¤2ßÒŸ]ºs'ᇪßWÿÄ’ÅDf¦çïšáÚ -ùõkLÓ9U‚G”@,˜O®4™ÈúÑ]4xA«[OöôŸj|׺“Kƒ·9uMgÇ'Æ¢¸xÏg\¬³æÁ‚H*æˆ~™vË>_f™eZ,?)iƒrvÃ+†EoNmpè–$ãx>3®JÞkÂ#˜uý3âåVÆO™å‘3‹äš‚×ûÀDR‚袴f$ÆqiéãTÙ$?b;p>µ†9»Â•›bà´%‘5qÂ%áÑÄÖ2«Ã”FG¹ г~]@TŒØ¢£s½¢¯$fT½€ž4óÍØ 8¨šÜ—ì~¦åÇ€î¸×,šùLK`·BÃó`t" -iŒÊèñ¨¿ÀHvWïð®Õbsïßaà YY¤Ö¨$DìR®l †nð¡ÜŒ–Î4?’ØË\í$…‡s›‘¹/£9ÀGßRq)P”"©WEG2´}±¥÷O?ÍåÎ\&ÚèH÷@TøÁ³ $¼$}F"v‘½2Ók»švãCž|´mtØÁ_{kS¿±ùÉÓt\†fUïèÆý Õ—¥üµ+ ñó¹gá7ƒF½Ögî<zP‰—›*lßsžãtñVÞÉ5OQn
J˜¿e6 «"…³ãnq)V‘\~=a›úK§Í·¨½w6ÓßñDÌ×&[µWíý«/Ýt3‡ZÆ4‘Ão>KÛ¿S¾A„×¹ó5ß'-¡È” öy ->b–î”XÄFˆ˜©T¦fz8eÐãì´7ˆ: ÿ¢NÝÜï¿Ã…`HÌôÝ#«šà4Á_5Méˆl*'ÿctk-& -ás>%] ïñX³@¹„YÂ;ù%tO¥Ïk ãÚ=N èÜ;#K“ç2¥ 8f[Xà«Ì²5Iú`uÔ¡°ü@h BΓàh8}¨PÞ©“ú¸c_Q‰z”†a·|ŸyÃ.4}+ e{ !øì¥{ÿ¥„RJsKi?õ)ÐüCæÛå³›¨^Êÿî;x`²¶ÚýBT«ž5Q<l>özŽ¢µ8Å’ ¨¯Åo¿yyž2[p9ª?þ#då"7‰UƒÐð‡œc -Øè™Åµm¨Y°Ž2J•Ý|ûlv»YwìѾÔJ¶u
¾ç@4Æk¯³.—@Z÷xó·ˆí.U-¼ÁzIíP£oWú8C‘>¥ùì2ó—¶Y YB”xl£§âþsÌ`ßGÝ 1+»|ѾG¦ ØÜ™>éãlâfvÜ“E-‰«¨èz mÖð¤R›¨’¾ûiFŒÍùœU¾@˜I£Ö”ƒ¹°-~ˆâ½yºÌ–Ђ¿[ïØFcqežúôôâ€IL(ü(õ¼åX¤à(nÿ8=7â.yJ€¸„¿ãUÇÞ¸½_ô¯£ÙÔÎó]û Qe¥‹Cçn°ŽÈÿtìGaϵÊd¹ÒsÀlë×äIh.*‰2/gl£+Ädûeèù£¸ÀZ Û¶ÑÌT&çÄæÁO(úS™•L~úQÈ`ÜÍÛÐ -›ò¡ƒmË™_™f]–¨Ï´Ôqa/È£Æv9”´ó¸*`g€ih<+¯Ÿp¦€;”7ç#—ÛpiD¢m*<òðųÛì”"¿áÒ_7Ù6uȾ΄îÃõA¦ývé -² ÎÄ€’u柳àÐ<ûfB'£Ù£¢”¤HO†rÚ÷C ×ù -æªdM·Fe’aR øÁ÷^¢RG"¬÷y -ƒùi”ýûóÃRøyµ!|ƒnq/—ŒcCÓúØú›L%ôQìäV¡DÌèU¼@û²¼G—\á—3áLÜÈ1\ -.ýjŒªãh<×ä»ÂFk‰Äºl¦Ù‰F`´ëW$ -rW;Åö(½2¤&F…Õ|n@€Œ{æ³´,¶Ê©Ú¯´d”,Ü¢d6d£ÊØGå6W\MýDü+;v›ÃAÓ2R†™f8u±Õ^tÞã³¥å¡O‰ðtæ -’¾Û4»®¸ =I1axyÂÒZШ\_Ï$ƒ,í!ü¡]ß -oÖ"ÊŠŠ¦/%C˜à«$7ö]jùN b s>~´|Õm›\e*¾ÜhÐ9@ml Êar‘`˜éßñöèÇâËß—Qm–]7”ž·±jeÊïÈÚ½©:ˆ9ÚûÜ=Ü«§¹MkÆ÷ê÷v·c£ÃD¾Ž_a—¶«ÀÑq—Ðl×Ôï*o¶ÿ‚•IO½”æŸÕ¬”š~µÛ=HÊQ<‰ QfµŽ¥Óó|ùŽ´jîéàh\¸ Xj~#\ø¥ðG\ÆV -Îî_á)ÇÙÖþ£i‹ä)Z< 6ÍŸLöߧ -fÍ沜k"eá2„_×E‚ÊRוãÌ^eMW§ÿ‰Á‚ie¾1×(p!‡Ò‹© éeGu01æ1qözcž$ÈòÐJ±©ò•6¼t,‘ÍÆlb¯k… -"ØÁ晨‘*³4)Þyjø Ž¾(U²G.±óÑŸ,ãVï®qÆPôÿöêbâú³[+Ä]ΑíCñsy$¨º¬[ÚF¯SŇœ³Õ ÇŽÜÊ÷‹ñ™„ÕKª_¾lRN_ûÛ€áG›5)J”i<{ò’ÎÀ.Ú¡|ÌýÔ{Ńôä1gÌ!jíèŽhàŠrF\ÿ ª*t
¹wõ†ÎûŒÅA;™ -1 -¸‹oƒë°þÉ0>€Á{éÛÎÖ‘NÄe(ˆ…OÙ(V#èÖPk•§p1UAÒû£©UJØk¬§5#ø1Lèy?ø©QIÔÁð¡+qbÙC¤k\ö½øá~Û@ì:7“`O亱FÖfåDÎõ³ä2Ã'¼©¬Ô3€w/ÇÙ!Ïq˜ïR´ë<›ù1ù$5'ÿu`ƒÌûõý„oOc¬h~TÉ5ë̯ë'yd’¾f½–¨˜îÃ\uI[¤Ý…8ݺ®ã0€ýÌóÎÿSO*ù‰:Gæ"%<LŽ}b0Áà_Ö²NÆh!CÑg‹@"c–cß÷ðy²ÅÓOûèr%ðUÒ6kGº¥ø!(ûĆc2Iúñç°~ø«VnMÃÍUeøŠe·`Uú~Ÿýk&¨]õÀÞ‚NÊùfÅ¡"ð‹ó²¾7®_¸+ñ!EÝZ…Nì_«ÍsÅ‘‰æéH„ì&FÎÅmßÔÈ8\É©·”§o;‘“dõ©ùÓ”-6ë,o[]×sëGÂ3Áõä-¸+n÷#€¨)ÄNÙ¦,RÏ’RY~œM*Œ0%\&RÞÖ äÑðçsë€á/Ö3d¶.5šò_츨À©ë¬QŸ-¾y¥†ø¼±fo3mÊ]N¸c :§°Þ·¨7¡wùùµ~†Öøí¤oi¦.O0Éœ
d~¨#¾ÜìHª;>–¡u—F±Ká&Ý¢LŸ÷æßØ6º"þȸ5Ü·ÏiMð¾ì©ïø½êPÀŽ+ÓX>ƒ>@}ð¼ÛŸ~nŽÔ?ú|@|#åñ/:hÓ˜Ñ *lHW·á× µ[™HE¯õyø?³ÎÐÒZ
T—Ú¶”‚f
ç -Øb8Gü7®æìG·¯¨–mS€E…¨v·pQj-û"–,åêTNØu^{{Èb؆£&-3Vv= ¨£ÚŒ9ª+¢ò‰´HB<.ÑirFØ0³â?'º8+Éâ$ -»™VzùâFoP>e ÙÉveÀ¥Dk.ÇéÚ:SÞ»”RèÂÕ·ÆdPu]FÆû/ËßÁØA§íaÈVP>抖påL7K°»Ÿ2@ÏN®cÕ®ûéäÓ4ߥ//û¿Ò’Û²‚!k⣇€§™.Ú_9®òR’ Nf…ž@4#Q™ÒPYg×
':UxA&êÃçþfžõª0l·)!À -•G -)»˜È%–Ôž¨)U¦×4Ô
/Ö¶ÿ>·€´¸vN&é ‹ÃŠ·RÂvqLÇÚîŸ (èF¡àVš&ˆ˜®ÅöøPÅbò|GhL_Åï(ãÒVÐ!CÑÌÿÞ1ð¢v¡ûE|wÊrŸZq„7ô"R£E'̇â8j\›K/V(¨Íé>hóý‚®sc®çň–ù5RVm“v¤â)ðò™YÎQ¦4zîûrO;\-!=p‡cú’ã8ùHËqvk"ýn¯õµÏKC -yCã»8”q¾¢˜]ŒøuA c=±¾iœ·ÏQæVûÏHID©tK©¼”¬:ËïF}²3âæÆÔÙÍA2¡úí·Y›Zåî§ -ÁpttoCì×ýsYÌ“é®22ϳzVólG/kîÛÜ•2Ô½kèTr‰fÇ?rýƒ;©S‚¬Rú -–¸É€ÌaŒ·aþ`~©·“(Ë>’êsKA'°MÞÈñr/ía™×»ãýݹxKz5]d3÷BjGAjh¸¾B kÀî¤Y‹v9§¢7XQ6Aë¢u¼ø†U¿íÖÒ<ȵfm<ŸmŠU¬Ûó@Бë7¹žè¹ÁLv2¸è[QÂùZuŽS»ÅÝhíPˆð=ÄéyÒ\‰9d¾ÞŲ£CÈÂUnÄXÓ2Æâ3³i³Ë37ÙÒƧS‰1–¬jë_”îX”*õÚßi³:,Ú¥ô1¯2íyÞÞ¢ãW˜<ºä†‰g~¥a%†¸zc!ÄÆnUÉ -p@ÿˆ/àWŸÌ:ö%•z“i>~DaC,¼5E!©>n‰X°Ž$¹ -7MSÂæ²ü"Æ©Qå#½ÄXÏŸ8ºo"$JÅÿ S´æv4¥"<šÄYY¶‹£¹‰C£ $>zá°9 ’0—~˜\B,ŽWŠÝÛ}=o°kU»ÈÁá Š|:Éìϲ·%ãüchp4:rE¿KwcfFäP›¨a;hÄq¹Ó©†·?ÄÄŠÓÞ! sI¸ÕE3ßL1<¥ÖDÙL†W;ôÖ—,„öL×L®wè[¹E>ÈÒ&AçܽŸ#Ðé*-ˆN!§jú|=¤1°%=Š2T6°çŒÞÞ6O ûÐ_Î?'Om;¥ÌúÄ@ÑÌ…Èæ€ÐÒcnÀ¢N2²„èK3>š»ˆ
|e5ÖÞ¯µø÷²ß‡O#Ã7*f%Ï¡ÏàCÆ%AÜx-YÝ©Ä
<m2C*ðü‚ñ:}}
»DÙãIܤ&!Ô¸:£šÁ=̇ƒWã±b±K´ðœÎQÏ)étáÁ«Úz¿Â`‘¤l=f"«%Dˆ(È^ãz!6IvCt·Ô£3ƒb—wºfŠ{{¾Ç¤8øÖ ò-$)=>¿º3ímÌ[ü‰÷,ePÿdž¥êl6ÇÇ=°ü¬bù=4ù¦/eQ Bã«)$ˆ]’¥…Õ - ØÌ0 -¾xú‹‹'ù!w©zÒç糚‹ßÜ£úpц›]Gd?ýÔS
94·¥ç¹˜z¦’2yþª~§n½³Ij¯ÄlHó‚)Y¡qQŸûµì•í&ƒ -lŸ,~üö,€e*›$é/?èÜCØEZ\ç4¹@OTØMX©€/¸hÙN§hÔ½ ¹ì6Iñu%2‘°2‘?²ýß(-YaÈ{¦ 5ÇëÆíM^CÖ¡¾Ó¿BiSt05°6è]—®ÿsoýÝa(f‹\¥ßQÝ -«ˆÖÆ#ܦ2ÂwÙ·èà`Vº'¦A¯÷&º$ú‹«…‚í- `a1Ø#†“‚´.õ€ßìR+`•÷aMžËÓ`ÒTyð³Fµ°¿#æCšhû]|g¯ûe`¶ºu¸MÌ}†ª L•Ï,[¡õŠÏƒýJýsŽÁ‘;ƒü2Bö£wéAð%øY\ßq‹Jî;:.yhòö4nܦ—Î$-—¾a¥Ì§õ -w!æÃ׶¿ã—rœ††l¼-Ú79\LÄŃèÑp. -°QKÍÀE`5ŒÑ£uùãî¼Q…ë,=°¿‘T«Z¼~* cävªa6YrEF¼ã¨-r_¯ÎEz"‘vÜL|g1þì-e²„²ÿfÏeSܪÏ?ûhƒ»zŒjô—/ݸ݇iïÎÂYèj_ל9«|×Fçæ&–´æª"_È~¶·wÜu"Ôõàj!ôÛiE8D„¶‡{Á&é
íÄ Ë˜EL}ýlKßO²¤¬Ìʳz%?-ç©ÜÑÍé´Wô˼Y.¤J(ý§„·âQ‹V=ÞÉÿ¾u.%™žZÚw^]“è*A≤X¹Hä+fŸw:+MÖïÇ3 -qûy4.¯ýàØílA„©šô$rå5gNJ—ùHÁ(qÖ¦„, -ù´üUlNÔùb)——…!|Âaâ%2
z+:ôï©c{ÿ©c±ª©<NN›®•”4MîÝÁC,ÃS$8<zÌ°1ý¡æ.ÅxÓîÎ7tJ–@_A»aÚ_9):7âhÖ>µ »|
ïÜ©"HüªÔ`×´çœïùåíǾþòÉéèeõ4o¶8®&òlÑÕ*’X#j@(¨Ê”%±W¿' -KXç’Wé&•~12ÎÝã
L–D$»3Yãg6ÄBóÛRá4<äÏê½Q;¤n´àÅ4òµÖ×g@I-û’¥>~¬è»®çfÖÑ8%TO^9Ѭ:üùFÞ—å–W!¢òãzëþ2™Ä](¿"0ï
é·%°Õ,œ¼Qª#`ùN:üó)ê ¯B
"†ðìƒAAéóàö£ÒëI-9<ÅFBÌîtäÅÏ ùµi
ª7<iK -›
ùâ”=ÏŸ0ÙöYñ›ú·Ï÷ˆ&Úœ|,RãRÇÒâ°˜lqv<Ÿß™½«¦²Ù›±™&bÆ7Ëáfy“Ûõ·SH2·èµ|KÃêâ -p¡à/`ëô_¶÷ܶ¤HðeŸú¤ÀFëì|îåNÀRÍ,u !¸‹Á9GÙ.mrãö~ÅáÃËg€G´íl -ùŸºë8ÁŒö$Ù")a¦2oA®ìR—©÷d£)â£$jkRÛx¿SIô‹NZERÔÒ9lÕŠH¬‹úýØo§^À’Ú°4™öü –õ{û¹Q«lKCà3#H½tèåtk™ÉöÎγh~#"ã?3nú›þÁeº£ðcñ‰‚êú®ƒ{kYãp×”fÓ%F#Âó¼æònË…•F«¼I±R܈™t‡V³EèóUÖÄÚ;À«ÃwS…+ðl§z…dºÕ<îkèºe¨çÿ+Jú¥àOOíùOH}oÛR¬^ðu… U‹;sXÇ.ÐMSl³Mr¹¼ŒcÓÁåéc ÄŸôånçv§Î—†Èˆ—YX²9¤¾óñƒ=T¢àvá´4 q㓈è=9•¨»
93œãb¸ùAñj—égê÷=£ë.èIÂ^¨Ù;Ý¿Š‡¤2Ö.
±ôŽ•.ÌÒNÅ -E‡Ùò—N›û1ÀÐãù'T‹¥þÀsv H—ÎbOr"·fFCxFÝ&oæ3–7™
/X‡xdûùbLwóG¿·»øVòI%>âjã—„;kOݼ‡ÙÞX‚JÓ'LôBç0 -˜pþ¨; …³Y¸wm—çƒ -|DãEÅßÓ·&¤ -›·¢Oý½Õ¿Õ«ïÅ3ZÉéHz8ÜNÝ8Tý-°ù#Q5Ür¢Ï}1ÇÂUú]æY†Ôáš7 ‘І[M\ìûŠšˆE»°e•uf5_j<,†poËA(·ã-Ð3otkHuÔ©ëKÖ xÕæ„ÍLbY—µ˜æ°íXãª.jE¥˜µâkPIMù¾)†ôG+±qôy?ïMÈÏ75r_ëdJ_¨}RÖ²ZëÁ
pçËCS{™ »Q¼ñ³ì4bV[X´é0+?’à€Ó™=q2 §ñýBž¦I·ÎÀ«Ä,îfiô©t*‚ÑZ•[—eç:š´"üï
8¥Ä,{„Aw¶JIi—9´Š¿®„ƒ^u˜ ”µEs¢²ØK#Ä67ž®+ôʤРôÔF"ô
<0óô%Ôè‚9MOË$e“a‰³uщÓwNÏ+‰Ôs§Xt£Z»|¨†]°v)‰ù«6…ºpî[×îCeÙÑA¶ÃD³×¼Ø#ý5NÚû7ŠJœ#5WŸå)Ä·Š¥Š³X¬¢ -‡ó;\u®ØAäcð0?Š“ ™už †»ÒJn÷dßyìv‡}ƒLcreá7‘sˆÝUÙVá—Æ^!÷`vNaYŒ‰c»å?¶æÐã§øY5éàÄ85~·Û)MÌEƒÆS‰ë?ZB¾^… ̘‡£…_Õ4ÆÜ›uKyë¾a7¦ÝÏÙ“íoVø»K>ˆ>¥8¨µ{G4iÒÖÚç©Œó<ñ‚“z1,ב=€•nR"™ÖÐ oý¥…p—°çfØ™}I«…ölÒ{ºæÿ²Óó”kAø„£ ¢öîO2¾pÐÛBÏíÜYsAEM5"»Àqa¯“;@¼$„K¯æ\„xÅæóÑa&6¦Á[¸.CÁÌÞrï½Eg¥M¦á®g±ðÎûg¦–‹…qeÝiS-i¯ÖMípým¿ô³E&È,ù§ÊBú³ÔÛ+†“AÚ…úH‘¹Á(sù]:‹îO!ÛÙ‘ÊÓ…²Wüd3p³Ò;D¢!²¼t »lÃö B|*ÐX¯Â/ÌX€ÂLFF -1¼67•x(¼M°€S~ÑëÎ tLÙyúì¦æ^+Ôp&€WHÌp)ýÀ>ƒ,œa&šó2pÕ{PZ;Z«ò”fýùdë3Q€sgß,±f·O#2‹@-uÄD§)ëf â© †õ iúâùGû2¿|†×°‰ŽFÇ$=Nqdžcø`#°°¤O¿õH+é† ßBÏH?|z)¢Nj_¦µ]î-F¦·ÄÃr×ç8ÃN{±›@¯ÊfÙLÍטݱk|zˆS–ïèÍ•r®ìÎV½×–eø,÷k{NÌÁsN_¶8²™©‰æ
Εg-<ó„ŸI^ë³»Êþ}±É¼Dý@”l©uŠ‰;õ† Ts ‡E›„;ÐfG n8EwG7 -³ Ö4=åoP "‹‘¡ -QªB¹„õj›ˆS¢‹ŠÝˆju&ßXôü•`þ9¸2µ×êwÛâ.®ŠR®y‘Ý7¡™týÅÝßÆÒw·8“&£®H”¶•Ôpu…SN>KªS‚ - -fêâÒ¡m·kê#ŽUDŠéw¿qüBqÁý Bõ®5ÅN•Ïh
Í_ûÞ¨ûEÁ¡ÍÃÒ†0ŽÝ^"X”•[ÍÛw“YýROÁ_ÃÅãµ6òæOõ3õ+ð\ÇTSNð¥èàˆ™™«œ3õþVìIœ™Ÿ_Ÿ™TÑ$sË:¥–:·! -B“ÄФ1˧(H|kPˆ¶¬ðb¥_B”+"3Ö¨ôž•ÖA]Ž¿œpï–šuhÄêÕàèÎJW,ö)‘ÊÅ •ÑTèáKT©3ƒY,‰k{ƒxÕ>?姶AéíõŒx3Ö‰.°GéQcRýƒŽ@¥£9‰Jû2%¬Gær¥’SZÿ>à~ï…%^ ÆÒ¯¿¯1{y>Õ°é¬ÚŽ‘]%¥©†`áDÛ¿ÕºtÏe1ÎÁ„A|–ƒ·©@á2îË5æEìF´Y›BVðSY¾ÖÏÒJú·-¬Wn=EZhÓQµÜ)\–,±s]¦õÁá|¯Jð}ªFöøýÐáB“Ápüú„|[´®9zøÓ#V±Ô…òAóóá=½¢€Êxé8wùد9¡† -”1àå’E˜—-Gry^+)ËYœbˆWeÜh›ë/ÜfOU9Ž^M4Ã@òçtÿ—+ÚBLÊ®†¶‰x€›ë¶ðò!I?èaý“`ÍQã§ÚšÑŽã&”è
‚•~¾;‚²ZÒHÎY¼É!½“ðâS»™O0˜Nˆóœ58þ%ïÆ”DGÉr?6N6¥%yÑ žÆ§Ðú û·çSáî„ù’ßµ§ìúe=°)ãDìKj}Óå ¤¾÷E¥;‘³u26E63%Öp*ßÑd5%ˆú¤rU -a}‘ªòÄÅ R`òiäÄÝVê[}´7âh™8ðÒ~ÒýššK™™,YÙ=ÜéñkñðÓ!,¹À=ŽáÄC§Ò~(eO¯?ï‰~]’ˆ2¨è[_3²§Ÿ ”§ì4·X‡€tmJ¿<ymx–2lŒ ì¨ìîï¶q‚¿¯ûQÓòc{ªÁ—·2Æîx’ônv —Ë8þ€ia³Í\º'«wÔŽ…G(ÔQ*Ç™(e¼¾ïJÒñÑs7«òët•kz VmăjöP{»žð‹Y»Æd8g}h\/£Õ‘ƒ=1ÿÒÔwR+Š}çªbï ˵×Å£V©âÞ×Ùã‡-“cü.¸—éM°CÒU]mM%~]e2£~é•e#LÕº•¾\ñX·r>ßK¾Ÿ‡ÿ°¨ªjÕç7Iz‘Fo_ÊW Poòê®Z²åsþW58Û\õjÊã¨ù4÷¸‹Ÿ"¨?Ì•ÈiÔcQ6fè•÷DMpžÞ$š PR¤I4¯o»_Œ:
Õ¬U~™x`/ˆø£•XŒPGYCX´Ìsd°|2*€!ý õN$`Š,9§˜xá^(! -^‡tËûú5;À»d¿IÁ>ᕾ]s#•>ˆ5©¾Q„©L -q~x•Ù;æÁö}I-‹JuíĶ—’fÉÖ:ÚÜý©nÅΔ„?þ¹¶B w*jÁ¨Ñt*æ—=IRôk• ?¾ó#×…°¢qã*Sʺï·á ™3Ær·"dâÙ6Œv‰—i'ݳҤ¨èêWz@tè’„È*›yõjhÌæ‚!_Õ†[`ˆ.JÕ-²7=zùáÖQ«K9Idšë–½á§Öë -Uxð7û"Ù‡þ佸¹åv>õn-EönËÖÀw¢òRºêÁXxˆ{øX""LBlkC¿3Þ;‹Ç»ãIgTt‹Î³ø*¿åZöƒÈ€š;‚¡ £‚gáfO«"#”`ÿw«_K.2H—xÂV¥þÓ‡«„,u"ÉŸÄ“˜Èiçýé…È×hÿ - --5`eï9s‘ÝJ¤Ù²×Þoå=È~×£–/Šž?H_xÓaB}³^–ò¶#Åwö;.DYyÈ[Zcèß)òwÖîB“á@ŽÝŸ—<YQ'¤ÂØðŒOÕ ¹Ǫ́&²å¥\‡
ùÐËÜgz“¼L¹9è@¢<4•dUÅ´íÛËM¢ä|+ëIƒÝª“ñÎ/ßÎb -OMš¸àèû´ÐΔ-ˆ -€lË•”ÊqÊ«©¥„ü'Ê4a©l%;=%H¯ùípÙ‡0A/iCÖ%×$ö2‹K8¦UÛç{=K›¨habÇ|„ÐHjñŠ>»õ,zVT[Ÿ:!Û©tWŒ_”ûS‡m´÷K{~w¾
¥ôÌÚ¸¸)|P6’7¸zqºU_&8C™@<ºÂ¢ÇÏÅ;
Üy<ȇ'ãÉümà GËX¾”À™ƒi6f(h}ô—/Å3ØpÕSp*7†nà¥I9ÖªŽqs_^’¯Á ä¤è/Êûk–Š›ž´;s &úÁ÷(^8T:/=Ì%X*x‘„'lSÎü1ðìÎ%
EddM(Bxº<(c—/~Û‘²Œò+ѽ–æÐ4£$Åz{Žª[zdMÍÓßs%ôB“ï´ª,¯LIJ[ÓYþ?%çÓ¿ûÛP{3i -ºQ]¼Ï°ÄÿF&}3=ö{XcÝòÕ(Ú/Ì
æ낇…°««á†‰’W·j&WF‘j~xù]³ó©P;hbtuÛcŠõK$œÂ±CUFÊ1"b#~Tˆô¡Ãæõa`î¶×Ž[æAi¿s¤ÿ‚C…‡ -öÓê¶â ÔDÇÝ4Vã]ÉgÆÞx9EYÄ_œŸ^š³©öååÅ,Úûac ïÀ™(—öbrc_ð4šk»mý™Ö2¸_DöÏX«½\qÃg»ÐPØ=hßÆRªô4)H›0¬˜>¶a5f.âróSz$¶ìߤ6®‡gIúÙ·Ó³}0°:f¹™X¼:Á2õ-ä
K+]§HÄRª¦*Á‰ILÃ’±RqE'–¯§z—ûTÏeÓú¸™SÀµ(¾
7é?Ñ™^9K¤Éõ6[ÇZ—ùBòb½Ù¸‰£ÕË9š Y¥9—?é*sɼ½ór0Œ‡‰>)‰Õµî?m¹«MK±³BT{ -¶
UU—fö Êê»ë²¼ÄJ¨„ÞË“ û|—ö7É,ž„äœE“ÇYF$—IžÞ¼úòwcí”~ÄÈû¾§S7néâ`¤ªøÉ¢V6ÏÎLŸÐTûÏ<'³Ì%=•xº9œ7 àQÜv…e©H«Ýi:½!Xî@ø@wÅ…í·h©úå_t1–Ñq³Ç¡qÚZXT?G'¶‡ËÒÛ ´ö¶á—241ο/J¶šDôE‚Ü÷1#æG°úÌ™/qýlf bTjŠ[:u°Lå:z«¸‹Íì?Ì˧zx¥¡"röwl¥|ŠÆKiÈAâJ‰ì™Ê#V¿EZµØA8\jÀ#_Ð'÷Eܱћˆ—dËÂ`ÏúÏ1PŠt~kGnZÖjoCm…AgÚ©’ð7Â/\¥ZiAñ#þ¼ÉIý€e–²p5nNè ëU´˜‡'ßú¨ïÃïÁ$Äዤ¾mLñEÔ½fTšÇÒµŽ>,Jý~0'Ü/¬Ç îJmoœc¿ôÖ„Ä{‘ýíªy·EÊNÈbßC_uLªÞm_|ÁýÂLJt¢¯€ýlÕAŠ -.Ù'ìJï¿ŒMTž'Åç€Ùª‘ô)ÛYè/8Á¯7††E¹/¯”ö-Úàgt½ -˜äè86Ù3h~2ÌïÅ.²
À$©ÓPKø4JD”ÚYlG&:r&ïN÷â+?¯)„ý‘»{&æÍùÏ °gs™;£“…dIdÝi T…véíåÏ#<WÚ„ÃQÿ+KNu~½¹3NýsZÊ}‘ʬ0õÆœ<œ -¢þ}Æ“ -ÁaõZva¾ï …m_›!(òF¢mõRÛÒ¥`ÑŠ°5õL½ ~wzD¡ÌšÔÙ–§>–OѼo²U´UqþZ'ý:»úìãõ_lÐÙ*z"¥œá8’²ÒZ³9N>¯d"ê\Ö÷>CrÅ/™Ó²dS2>{ëKKâF£°˜ž‰“˜QZ^!PïD·rr+¹:ØöûÓW©æsýíÌù? -ݨ¤v”½j³NžÅ¥Nl£.1†º–¼N.‡ä-01€#òê®ÎJy
vw›ôXl1‰pU§ lca{~±§j‚
é[ü!†Qu¡ŒÔ>ol´Ü°ÀùÉÜ–ùÍ[Vm ÂŒ®Åf5ÔåØÍÆ'„¨3]ºˆÍiÍÿæ‹/f¥W¨:¬®öNA¦H…¹Š^“¹cY¿»zk6[ALBG«D|Ë #‘ÿØi¢bƒž$¼Ï ºÄíì`ÙHÜËb7ÞäèLîÎ-Ÿno(»BpšÞ¤€¹¶…¹ap¢lsµìÃsÛqUúu
ŠºMe¡3£(TÜ€zôpï5%i¾!5ÊAÖêîšê• -dXu±WSˆ€!„Bmú=r @H²Ÿ^׌ôÑp8šm–y:Éþí 1nˆ×ð\Fä@»T% $$û€ŸY0õHU/ÉMzå[ -S¬""t¡c^€½?ïêZµŒàÈî—â‡7’ˆÁ?•yayºa$»ò÷‚Ÿ@ÑáL‡®KÅ‘ì~óoÚI5ý”jÅØ“ôôŽ³Ûwn€¬È§ãw›[Êá4ToýzUð¨¡ÈتÇG*ÁòqÜ%½vV¦ˆ%¦ Ã;¡É”>õ&qPì{°°,ƒ
Ѹ\6‡ÃW¼>ñ†¬=e•¦ÌÛˆ·Ðú<Tvä[ÅÔ:w“0 G칶L¹]~f¾ñ-€3ªÿX -ô’¼S¡?×æ‘ôÕYZs}`Ì“eŒ»’¦Ÿ˜Aíþºd‘.óR•¼ID*þ!üõDcrH›¯‚—Ióò¸’ ì%µìW/šhÖiHiѱò-ÏiÿHÔñŽvÛîG÷É‹0¾#¥hkž¥¤w}éjï²±üæWöû󬢄„ÅÅc“ôz °Ohè>2Ïžæ“Ä”J 9›AýréÃ/—He™‡!ÝyþæwªÇ,7&-Ýî1 -³Ý*ÃÚb\íýÀ,Á ~&[Ž×ýZD@FIßÊÛGm*í袇Ô}Ô?›×ÝNé‚Üá,lùÃÙÌ«¨A±¡¤è´(×Öˆ¬s"¢Ù~ï1Ÿ -á&¬ýGÍ3Ó"Ye«¢;šâƒ±K
Õ²þ@:¹©á…Ü5ë|å4G \“s*q\©œ'<7íf$0
àF8w€Ú‰ëÿÁÿDà +xÚ¬µcx¦]Ó%Ûv®Ø¶Ù±m_±mÛ¶ÝI:¶“Ží¤cul»¿¾ŸgfÞ9žo~ͼ?Îã8wUíU«jÕÞ›‚DI•AÄÌÁ(á`ïÊÀÂÈÌP°²3qs‘w°—cu°5ü5rÀQPˆ9]ìÅ]¼ +`e°ðððÀQ +ôtý'— `fåâhkìõ7÷_0Gg«Ñps±²·ø/ô +ĬsÍXŸë%¹Nfß{SÊ*åP„3]lÎ0×Ï4dîÅäOŽHþ¦ ˜Ý(Í hõ%gç”)'ÏOTCã£#Ã}·‡øtù °|1NùøB:êÕ>Q´ËGÙS¶XÂçÌ}#ÒÜXœ‘,‘|[Õ#~WØw'Š„ªð£Ê#$n6ÎÞÁ)óýxCÉ]ûAÍæ”=$w?º>1$S®ÝdÎ ÖÙPN<3±ÌWêGâ¤Ý£âò +ã@]á~?ÅñïVìÁ¢ˆJM†³„‚ô_G)|æ¦jœ:ªSÛbÈ~,˜(£ÜÖº“£xõdñÔ¤3ÂW¢säbÖûº.Ÿ†Ç“Xœ¡f-TûnÝö†hRâ/2z}•wKª{?…†|ëþ÷(¦¤I{Ôħjäß{ôb²4ªR{È2Ý· 5ꮋ®¥o¼WÐÂÜöš¢ª +¡s,ÀñÙ燨×qZðoñS-Ýì…|7€°4\±uhò2â·t–û +C…Cmkj"úðÝãûò? ¤L›_LM‘>¨J£M&ÂÃ¥¹Ö›Bnv“EREŸÇæ«ÀZ§*ŒVXpÈqí$~Wóÿ˜\¶œÌÊòz¬©«TX¿Â4›÷T#x0E òÄ‚ùäNÕœjÛEƒ²¾ñâÈø¡Î¥7µ<t“[ß|šytl"†‹÷|ÊÍ6g"„¤jèŸe¿âûežU~¤ÍúƒŠö!8—q7¢rDìúøÁ‡~Y*ž÷3ó²ô½6"’E/ 3A~uâ„E9«X¾9y½L45˜>ZÇú~Vr—Ž!^Qê#®¨çS{„«;B¥9NG +Y'B +MüWVM¸òØšSöÏsˆÊQ;ôà#tîWôÕd°±ÌêÐãFþY[G5Ó»ÒÝÏtãâ_± ;!µK°æ¾3’ØmÐð¼]ˆÂ:c +Fú¼ªF&/0R=5;|¿ê°yöo1ð„-ÓkÕG#w©V·‡Â6
ùQ®ÇÊæ[Hd/w’#BG8MÌÉ=VÐácn¨¹)Ë4j†c¢ Û?áØ3fž¾òçƒG/’Am
eDz!*ýáY‘’áÞR¾£Q»ÈÞYuÝÍ» ¡O¾:¶ºà¯}uiß¾Øýh;/²kvôâ¿“ÈQýÜÔ¼ýܳôŸE£ùÕ gá2vP…——&âÐ{–ë|þVÑŽ@YaJX°e>(§*³ãay!^™Rq5i—öS·Ý¯¸£ïW]V€Ó±¸ŸmŽZŸúûW†Ùf.
´¬%h§ÿB¶N@—B£(ŸK×koZb±3ìó ÊÝâO±‚cõ®wíë¨F9j,¡dÇ*¹´ dÃÃ:ôgý½oZúi`Gg|e¶þȯ Ë eX:?æ˜ö•~#3úºéµã<;‘ƒð35&EAžmJ–á6;©Aæ‘;î'’#ÊoÛD]Ñ,À£’}¿wá<˜?&HA%VÅGŒÇÒ›Ü7³„ÊÒjE +~˜›ñÑ $¡ØAÔŸü;\F$Ìß<³kNÔÒ5‘~“Oç|ŒmýŠFøãR@E_Êw4Þ"X!ižøNqÝ[åûÄôë'ˆ +}ìD"`ž,èÛ˜AfU·oÚà·¨TÛ[³'œM£L²Î;òèeñ UU=O¤ÃZÞ4@Z3uò7ÈñyßÓªsÔÚR0’ö¥1¼7/‚¹R:ðw›@»Œbâ¬ßÞ>0éÀ©ßŠ‚ß˼n8—¨9KÚ$>NÎŒyJŸ¡ÀE/àoGÂù4°·#îoî–êi7uòý~ý€¨¶Öá÷0\‹@x:ò§tà^c¶Zí=`±óoö"´“BY7±ÕLf¶û2HöþQZd«‚mßha.—wf÷ û¡ÂF®0ó l8áîcä +…Mußɾå" Bû«CŽ¸ß¬Ìqq/سÖn%Œƒ´û°&è +ÉFl§?Xº„×Jf€^."+«^öyvðKÛú x¬/|äô0“Ëm¡Ù¹ê”_f[5·Î®?°UÄظ‰÷CÕ*a…Ç.ð™¢5I^Yko(mOq†!<]ÖÏÐÖFßôd„š@SÜuýÒ¸íÝ7$PâÀ¹ƒßZ<RÕîÜ7†vzC3¡,oÁbø§¾˜¢æ\o,fôüÇ7û5Ž_‡Ý7í¼»'h³P{Ê@sn½»éõ@‘åe¹}Ø£<WõÁO’XÁñö7ÇbUd¶äFÛqÊn—ú¯E‘¯ÊX*IÈÎØTØ„èûòÚÇÂ%N…Y~ÖÑþÀhYú„áÄ*bÂéyê\’/Ñh¾öc¥æÒÑãÖŸÇ”áÓ#MôI+þ˜gÎs[¸1—±9¥ú™×„¢[8|×úÍí%÷ÊJ÷ŒÐÍUÿᙨ‰ã=¹di‘¸Ô8L5]£°+<õóî Þì+Ö •‚C´áõ…fiMŽþ<!}>ÖÆHJré|·ï•ó’’*Lö‡]KÈ®wÛ'7/š +“OÆèïb”£»$„ß#´ï_åË^BYUÕò£bz•âÁ¾M«Ø)Er)àÆÀQ¨¾i—¯J×>¨F;.@.Œ +œ¹Ëì™J‘Œ?±¸Â0í ,×fƒš¥‚®Pú±•´a¨ Ž¦&¼/N"Þo,SÙžÚ©¶ Õ~2FN¥r¹#˜Íõm€o¬æCðfÓT…ÉPé¾IÁ~#ˆ)oÛå´\s=QÕ
â/=¤4{ PÎ`ÏYuJN•¼JÄ/à +%¦j ý–Ïy´c땘ï,ÅàŠ3ž“þc3c$a²…{s†¶Ïƒ¢Òë6ùßÜ@¤c™2Ù½’"Ód—§$ºNŒî%З¤K÷"#w>RdÝ<4O‹ñoÞªÏ'¯>{´C=ÑåØ?”>WFƒ{ ËÁúydlõ«0U})¸Úl‘pì)¬ýα˜žIÙ<°¤kñÊG!å
tˆ ?ÚmÈP¢Í8z‘—uw¡Ðêaî¦ß³)ïe¦Ž¸bQëÆvÄ‚VU2㓆ÔÔ k)|j6t¿ße.
ÙË"èŒQƒMWP[ÿ\òHÙõd<½C– Î!›ÉIÉuô
ê»Üƒ}cr$¼´`’“†¦PöX‰¾è—–X-Xü³5V~ºÞVâµF;«ó#ìGÍD¯€ÎàKêM
õ yû`ÊÂcð…º¿¸´6†çÏ®ß4õìÎfl?£i!e5¿bßg>Õ{û9A ® ”rÁ +Ù*¬×'5öƺiz®„‰Ýf ++Hê!±
®Ëö'Óä +ÄŠ§h÷„Ü{É=Âݶ¡øU^–ÀàžèUSœíê±¼ÛgéE¦oDs?X™W ß^®‹
B¾Óÿ…X÷Y(6ËCÊqZnÁëà¹Ïë-ú1ÿžæxñ˜²[ö©÷VŠ¨dm1i0½ûùPšÒNövHûs úat=§ +©gÖ<L®CRÁÐöŠn,ÆXcñµ;W«`S¶"Sÿ·ˆò¥“O‡˜E +eð5²v'úå„a(»¤Æ#r)†‰çðøË6-E£Í5øÊ÷5†ßý+f¨] ¾Â.ª…¥ábAðó³òþ7_†« ¡Å=ÚEÎ_k•-ó%AQIH„¦Æ.%í‚Dêä\n4[*37]ÈÉr4é*–›
V7m‡n¿‚òF#²À›ô,y*oö#¨“÷©$Î9f¬ÒÏRÒÙþ\ͪL0¥Ü¦Ò>6 1ðòê/6]³äv®µZ +_¸¨Àé«ì1ßRmþåEÆ„üPñsKªP=.¸#`@—ˆ>Qô›ð»Â¯_ƶ„íd¢ôN3×'M˜.ÆFrÔQ?žI$µ_«°úã¸åÓ1æOÊÊ;"ŽÀîÈ?²îwó:FÅ“|/{;þ¯º”ðE*´V÷$ ÷PŸ†¼ï'E›£u!¾$Hù+BŽ:´æô ˆŠ25íøµhÖ¦2Â1¿úO€¼ŸÙ§hémFƒjË[ÊÁsFó…ì±\.cá>—ócÛ—Ô+v©Àâ"Tû¸hõÖÉÅýLQH+VÊ +
jgìzï½È=dql£1ÓÖYkû^PÔ1¦\µU1…$:$a^טôNyãLl˜9‰“Ý\Uäñ’E=Ì«}üñc×(Ÿ²ä»r¿Á¥E—j/&è;»Rß»•Sé#4¶ÇeQõ\G'.*ÞÁ8@g`ÉWQ>æ‹—qåÍ6K±{ž0BÏMc×ûëжÜf¬¬¼ÑQر!kᣇ‚§›-9\: R‘Må‡C¶ Q›ÒRÛdšÔ$9WzC&Àç=²LƒzWuØ–`…IL €©
úÀ!Ç NãCZsüôJ^ã"–ë ÂçíïY @ËA(>S9|]|u
À+‹~³±ïL˜°Pš”ú®W‘€ +õ‘%ßÅÙ/»"
)´žTŽÑÙ^ì¿%.óR/ß2{ß¿)½†ÍŒÖúà
ýÆìuQ̼¶Ç¤±/×ÊWŸµÂÖ~¢®¨ªÓDGë»+é,®ªÕòºY9ç#yÔÊý²ûX£Ì9þMd4u_‹´ÜÁïy¢¿˜¢Ñ#é©jr¥m—Ÿ¹iŦ—劒*Ã!=C˯ëCÍ>*78ö<žã$`V!”¹äÞÜÁš¯Ä®x8ˆ"‡cÍúÆâB“ˆYíHu›ö(
Áz
¢ +ïà`íír⺰¹ò4r–ú¥ÍÃ_»øf¤¤ï§cžç¢&ô˜BoÂÕ¤7YÜ;ôXæëõsb‹W…«L9ž:=\Þ«jö¾2–œÐÍ¡§³T®n1‡VtÈÓ¾LÌCôŽÕì=Ë÷ù”°tT¥×ÕÖz…ñ$YZ<*4<†¯i¤&A&Ùõ.˜n•ÇDÿ,égüáHÄ|‡ñ¶™µ“EÙ:O¹™6§ª ŸHÚVW̨VˆSLĺð˜ÖH9%Ä®qdÄÍi²Ý¸faîxqvÅøw»…d%uó¢0ÉÝœÖ|U’vKãº6öøÌ@!wJE÷²t!Ämöˆ ûjVÓç[Brøj'Y×öÂNY +ˆƒ÷ÎÁõs½/’ÛÖ[0ø´ÊßxÃ/¢µÚô"ü(Nc&uyâEB:\>è³€v¿/èzw–>Œ¸¸ÙŸ3©å5¶é¿U@<!%^>ÓÁ£*8Ë•ÇN#ü^.¡èFj$eoq`Ì^r¦è8OoLe¾À´¿öùh `üLêEW*« +uóÁBˆ‹Ûª–õ›ãðü†Ké|^ŸØ$ÉÃö¬:ÿÊêÞYdäÌZõ[nðIZ¥ïƒ&ýMp‰£5ž×@ÄqÙ·dsá×mSY#Oô‡àáiÅÅžØ'u0övFä„ùžP( 1•}äG&ý&Ûrô€ÂŽXtc†BZsÔŒ¹h
Mvi1ž¡!„ÍcýI‚#Z«ÆOv5„±^0)ùû¼™T8
ÿLñ/÷ßÓª"cÉ\Uå»°8Z›8´ŠÂcçÞ +Î(ÒÚO¨²?1ÐDµò r8!´õ™D±h’ úÓM~ϟǽ²…ë†î~µôqÜEÌ Ã7)e§Ì£ÏâCÆ'C_{/[ߪÆ>O +ºíää +ŸNvYÞb¡‘±#Æ™uiÃØþáòD„Jº
õJÌ)±ùQ'óŽéE½•+lx—.U!’o4Pe†»> ½güÏ/ hß÷
VŽO~^ÔÌðåHàj!Ï_®!‰7¡†:£L[‘xs¡°öJƒu-{—mR” ãÜ>1]ÃdKFq¸7}æ@,¶¼-Ç¢ÎÀCþ¨Ù³GìAYJ§øÕöú(Í¥ãX¶2À{ÅõÚ¬Çú=A$ÓbPI²4¯‰x¾V„÷c½áÄUŒì‚ü¸Úº»H!õ +.ø@úo‰.Aµˆ¤l”é +ZC¾“üxŠ>èï‡P‡ˆ%<ý`TTþ<¸¹Ã¨ò~ROI¯Hµ•·?}ñ7lymþÕ‘¼%-€†|~‘@˜†l +û¬D¤AôùÙL—[€EfZæTVû=ÞžWðó‹OõtG6ódìøÒfÜ_J‡ÁöR*iÖƒ¶_Yx}|!.ü9l½~ÓËöžû–4)¾ÜS¿4ØX½½ïü1Xš¹•.Ä!O 8×û…m^üÞ£ql1. ü‘B&xdûÎ !<ÏH›?©³Kì›ÇAà’°ü‰‡3ÌXo²Â°2fËÔáê.•I¹Fÿqš.ÜJ’ŽŽý¨Ï;µä€Ø”ue½ãVX ä¯u¢èLJ{BÖ´Æ ±ˆèŒ×°ìÇíç&íò-MÁÏÌ b²á—“Udf»[{¯â…LˆÌCü¬¸"ƒƒ‹'‘‡x’cEµõ]G¶ò¦‘îiæs*Íd&„ç•ÝÖskÍ6ÓåøQsèNíË°k—ËìÉ_ßoQƒ.ßaÌ/ÁsœSè×òy® ëW žc.©h–C>½t>!
|x 4oÊ°úÀ׃Õ,o-LaºA7Í°Í7)äó3̆VfŽ$0T¸Ÿ9 +ÚŸ¸\@!#^dcÉqæ’ù-$õR‹ÛGÐÑ‚ÄOL!¢köæV¡Rî6æÎrMˆã'¨_dœjÜõŽ»¢'Š@z£æìôü,–NÌüua„¥¤|a¬hž~"^$6Â^°|ÒR4€†ž 0©Vb"óãÏ ž‹#A†L6G²»0…
Â3ê6ùD¿‰‚9È\Dá:ÄûR(¸ë?}=$7zOª ‘—?…!<تyë<Í÷Æ
Qš?ab{¹F +Mp.Þý©\B„$–AìÔ‡‡}Õ»X¤ ñé£×B?¢)ÚãŸ@´Æï 4pÒSËý +±5Á¿Z¶& +Æ<H)]Ì{Á}꺽0<aÔÔ.’mWâ#ªš,)=Îܘ’)nÞ ˆ=@öõÕ<jÔÜId¶QГörº+ž¸7rªXbD¡jºçÆœùaŽG¨¸Y/°kÀµl"%¢´™º:ô7“ˆucË©èÎi½ÔzZãß'W‚Qn&Z¡gßè!ÕÓ<¤Ý¯/Ú€àuÖXž·0‹f_6ÕaZÀv`M¨¹ª—1bvÕIü‚Jn.ðK5bø½ÏÿãΔ<élS+1ïµÁQ¶ì…Æ7õWv[¸!MEXZ3tŠ·`~¶ý¢fìZp‹.fõ»c2p&«7^ö#ô¾èÓÙÖ)xµ¸åí]££Áµnešc›JÛŠÜ|g³v$BÀ!W’Œ ¸U¯èÎViÝ +§vÉ×%’Hð«.3„ŠŽX.òï˜ÀlŽ²HñÍgÅ«ÊFýri4(}õÑH!çDCOÌ|Iuúà%%Î%³“r)¹X!’=t’¡“S£*b¼iV½è6À.?ªQ7¬¦}jRÁšm‘œÇäÖ•ÇpyNL0¤ÝñÜöè@³Î¾áµ’2רcíågE*ÉR™Ò\'›˜bàáÂw½v0Å8<'Ì÷’B'Ýg‚§ îŒÁÒ›=¹Bäw^ûÝ¿`³Ø<9øMä\5ö5ø•ÂñWÈ=˜XV’¸…yô„i 6-úDA8qN!ÍŸ$öÊ“ó1 ÔV¯çÁ¡(³h—µM±wæ=Ò>zoØMé`w%óäû›ÕR÷bO飅Žê>‘ÍZtuùª£F&¼O¿NAJȼWêÉïÁJƒ6‹¨ÌjéE¶~‚ÇÑAxH:ð0î֦̽×A{5ë?]ñ-|Ùë{É·"|ÆÑQÿŠ D™X<èkeà 8êª=§fÀ¦•[ä<wÐÍ$YÆeÀWw©Ž…Nƺä
÷}‡è4×ä+Z—¥dáh½óÙ¢·Ö!WŽt×…³\|çû3[ÇÍÊ´ú«ÃyÓ +6eœn&`±Òj¿ŠäzM’äÙõDè.TbaY˜‚ì!Ɖo36ðõ‘nFk„§‹pi›ÇýÄŠ»iÈt‹Ç®:Ó5º²0“¼/ºI´„SyÕïɤrJÝyúì¡áùU4¤éB,¯˜”éZö} +Y4=ÊB<7ïm覯üë÷¯Ji/¶Ov¾“…8·-’¿láöiEçh¤3Ókɹ[x)ŠcÝk™½¸CþÑy…Œ¨Ÿå3j¦§Õ5͈WÝç9XÁ,2n<ÓK{ (¶P2“ÀŸ^Ši’;VèìVúJ)'¬ð°<ô¸O±Ó_ì'Ñ«FX7Ó +4çv웞îãU:ûò¤]ªzrÔîtäÆ?+ÂÀ½ÀÚŸ“rñ\2V,†mg«@bøÂBòØÄ*†N½àgÓb~õÛ_æ<žo²,Bÿ§X``âN¿aÕ)`Ѧàt8hOÐ=Ð
‰CálC4ƒÌN©Éce)Aù1éËua‹¿nôDW“ôÁëªj!±”/À·vy²ôI¾å”®Ý‰¨hß[sÌÌóo|ð›êÃß.£VƒžóG½|VÚš\ä‘®X+¶J`sEsߧ¬Ðû´Ú0§Ø¥‚ÔÑ{8–À}µ‘~
;¶M”¬A?¨Èˆ +‘MËÂ)ÚJìyï’盾°+ÛAX•¡<UuÆEÁ°ý”Ï©S«³óõå0þ +èP…ÃR œüZþ¸»ÈÚ—F*þ/\<>c43‰0ÿB¯u!u•ŒA¿8ÊNÎØÙùªycPÏ¢/’ü䄆¬äÊfI˜vÐi}°´ù
1Úd„fÍ9~%Ù ’Ã"´ÕÅkƒR†à<Q9˜ñ&å÷ìôNJì +ü•Ä;÷´ìCc6g¨FÏ 6Z¸ñOÉ4nFíÌæ@Ÿ(’j½9ÌRi|ûÄ«ÎÙ 8-J_ŸW䛉n¤ÜLá J¯:³Úl
j])Tʸ—iÉd8r×KÕT˜²†÷A«—h,‰BuÖƒ}͹‹Sðé€mWõv¬Âë•h
+Úþö…G«I.&â´<¼Xh +¿ˆi_þ´° z`?ªÃÖRf|°¦ˆŸÆúµ~š^Ú¯x¸m)h³zã%ÚºH—ªíAéºl…Ý”ç68c`Gàw©XŠï[=Ƹç(àï–†ãß/ìת}ÅÙ+¹†¥!\ +ÒTÅË£A}f–ü™‚Ï$±*AËý¬zï„ži'ɉkê–8º[ÎÂ!w@ìfsñjàd€‡XH+ýèNY}aK:Pä +Š€øÞ à ÕƒöEñnhóJ×T—öД‡B!p±•ù¦—l“{^.¯Ð ±LíìØK˜Ê9ˆGxC‹€U¼VX–ììÆ©škð*û}¡óŽÌTÝF[|¨ÔõÙa—UÃÔÆöIœ¯ÁVÔæé„7½&$¡N‰pˆ®Ç}E÷År{UchX•è'Mí¶Ì—ä$,ŸëeÞ·ž1ÍK™•aFïá{, -ÓÀ‹*øg•ŸÚ6`F…LÎsîã$’tdÜÜØy”®Ç¢%šð¶1W´ËL
Ñ,uþ©löW' ¸nºó³«öÒpÓºåÓfŽ¶ª¿sKn?]j‚°ÏÓ¿¡gæGˆÀhfÙ{Ô¾ Ô‰í’MPŽEoødx€Q²t•y Q
”î§V¤óMÇL9‘5òh°À!eŸ•¶¸¶ù8¬«”{†ÔuQ°b‰¹BM‹sÙ²É “ÿÆÌ]ƒ ÎôvÍ&Ì‹Ï‘'½8«“’ã*I5«6i²Ëiw ®š@¯Œ!e$}‚s¾{‰ÏÑëŽ!!cPGÛD<À-€s_|ùbò´ùAðËQó‡ú-š"ñŽÓ&”Ø5‚µ3~‚Šz½òh!Îi‚é!ƒ³ÈÒ"s‡¹;o˜n¨Ë¼
8þßÆ”$'U© +v.Z[våe±àÞ¦§°†`G‡·^—‘žÄR…ÒǺOƒò^ØÔ bŽeõþ™ŠÄÀ.2¿AÏ»bÁ²¨¹zYÛbÛÙR8ÕohrZG’Äý2 +’k~ºk ´,x™-宬¬HÖìFÉÞ NžŒ„_ ð3¡¬yÀ=ΑYÄCç²(/ï?çïIþÝRˆ²¨è‹[_³r'Ÿ‰T™'´7”X‡€*ÿ|xÖrlŒIìèUFìžovñBW¨é±½5à+[™ƒã·¼Éú×»„&+åœÀ´±Ùg/<R4:ë&ŒCG"ëiŒTâM•3_ßw¥èùiExZÔt»ËŽ´Š<«7@µzi|ÜŽÄmÜb3]²?4¯ƒMÐê)ÀžX~j8«'Œ½sWst’g9èáѨVóìëî À–Ës<|ÚËò!Ø!í®©±¡–¸ªŒ6Õ¸ð‡Ê…²¡ŒîÛÊX©|¨_=›Lè£ØÏÇÿ\RS³îwŸ";Og0N¨ã/Tl0ýu[£HÕú¹ðλœ}¾f-õaÌâ{ºGüyèQÔïÊ‚´q¨Gγ*{b¦¸¿ŸÞ¤~+6C¡¤Ê:j]9Ýô¼w©Ûبþ4õ6Ä^
@+µ¡‰¶°l;âÌdýdRCúN'æ“DÀUzF9ù ʳ>XJ²éžÿõs.noÙa“’cÒ;c»öZ:ckJc£S… +Ò§ôSëÓ&áî`âìð2«oÜ“ýÛ²z6µÚÚ±]9̲MŒ¸#úSýª½©@Âs]¥`Þt:õ¢q“ÙtìwnÒä˜×j¡ +Ò¨tWj¶q,£Oí×Aò*úüßMî´tùó—ã´Q)VÅ1Íѽ»y§ÑÁL™¸Áì$Ó~ݯãvÔå\ƒóû ÝÓTùœJ̹`¿ÅŸ +ÛÎØ,kc4Üò9¨3~`"Q€p
¶¥Î6…y»L3ñ|hk$XÀMÁ=3Èš„ƒÆ8¯ó÷øúãÁWæ§ËH‘þ#9Lñ>Àü‹tú“ïüú†Çåħ٧=Gß™nÚ[ù²kcñ>þþci˜˜0±½ýÖ$dï4ï–7ƒIÉ=&ß’(LaË<ü;±!
O$caf%ïâõžvefÁþc›k?2H·Dâ"V•Áó§›#„M韤ãب—ý™Å¨A·”€JJmu`UßK±ýj”ùŠ÷Þ£Êä€ÛïÖ/ÊÞ?H_]x3áÂýsÞV +v£–%·;®ÄÙùÈ[Úãèß(v~݆¥À¹&=/{±¡MJ‡³ã™#ªCò¤›SOæÈ:I»ñ£WX{Ì5ö%{›ñp2‚D{j)Ë©‰ë8tT˜FËûU56…¸×¤à 6ž]¼Æ˜6sÃ2ôk£ªXÙ?"Wª¨T&ãUÖÒÊŽU&iÃÓØKwzK‘^:àra‚_Ò‡mJ¯Hd—&—q̪·Ïöz—7QÑÂÅ'ø ¡‘Ô”|w»Xõ©·>uC·Óè/™¾¨öƒ¦»Úéî–÷üoýËYtpqSù¡l¥®qõãõª9¿"Mq†ï³€xºôEÅŸK·š‚¸x÷O¢&Sƒ:À!ÏbÖñP|iÁSG³hlÌ0Ðl†˜/?Êg°‘ê§4F½ OÒ +¬5]“–Bþüd?Ã!Èa)±Ÿ UwW¬•×½é·@LôƒoÑ|p¨ôÞŒú˜Ë°Ôð¢‰OØžfŠ\ãà9]ËšJȪÈZ¾P„ðôùPŒ&†®_vǢ噗b;ú-aéÆÉJ
ºœÕ7ÈZœZ'ó¥ÂSïtj‹¬¯ÌÉÊ[3Ù?–¤2ßli|˜µ…Ü©†ÏÉWßg9D‘ÉÞÌŽüß×âÙ¶üô&‹÷‹òBø»&‚áa!ìëky`¢4¬[(TP¤[î_±K"b·q>ë†L/ozÍ°~ŠFp@8uªÉJ;EFn$Œ© +€^A%CÛåÜLrjùY¢žÜn\4ìZàT2'c6ê +½‡?„i¬yè-†ÇŹ(Tv–lè4Ä¢TÁÀô>\Jf>jϘøaøÀ1•Ü<m§afæ»'Nê8¹kðèRž;|(¦b.@nz#g[Á°½™nÙ¸œLz¤Zõ’Êáa+ÿ|ÿ)\ØÇKΰ‰b0ÕªcÓ,îó5Q5²Fg:Ë$nÅáÕÒõ΀Ð<‹OŠsº²ÝÙÿDÃO´0yw·„¥ÇÊ2ø½=
Ó{ú¾í‰±Áh%‡òRsÛUc"g×>ÈZô3MÃà^ÒË«gÔQ™¯£—k½5ÖCÍôòíyÇtÛÔ¨Ù`X¼’ã$’¦½$85Éi7ÍdWꙩ/ABI±Õ燷Ö\šÃbEPE «Î~øxâ;p6Ú5´£„ÂÄ|öÊ~Û`¶\3þ'q¤ÃsáÖZwüÈé.4v/'Áxjµ¾%Y3†
#óÇ6¬æìy|^Aj¯ä–Û4ÒÆÕˆÉé +V®ØäÊÕtßJ¿Ú™\z?K*¸6¥!ÑH³Á½Ù¥‹Lº|_‹MœMI¹$Ö›»Zƒ¼¡¹ ’uºKÅ“ž +·ìÛû'ãD¸Ø“²x};èþÓ–‡úŒ4D'P{”òeéø÷ÊÏÍùøëjˆ¬“q~½©ýë¼ñ<ZxàM>Ê€·ÅV¥V˜OëüÃwK,-èÄJ„¨Ôq®ÐÍ°î +sþo§ý™ +#¶cër!¡W= „´*¯g±+¡‘À#es_‹,2™ÊãœP+ÒpuMYÖP/ºÈ˜ü‰‰;°>Û[¼”ZDñ½"ºßoÅq™Ü +èEHÁU1u”mLz‘ìåÃh p;ÞAåO‚¼ïw2}íÞ–!F¦†Ÿ’)fmûì‚Àü M½ÿÌ{<ÇRÚÖ[…§—Ëu
Íc_Tž†t¾Ö“Þ©Û÷ŠUé„òPZÜ~›…–nX õCg› +ÌãR7ù†æ9`ŠÌy8”5bX%2Z}ššÖ<.Ÿ39‹o§œgéJ€’ÏÂá·‡GæõÙI°gÙ[ããÅ)d½ T¥1vÙÍÅï<wú¤ãïWÖLœš‚œ†ÇØâ3:Wª}ѪìpH¦Ü|œ@l¯÷ŸS8±åëz,††ý;x âMJšÎH#œxå8Ÿˆ„‘Þ¬ÝçÎQøù—ÈÞyK|8aç*Asabvª†ž˜L)"Ù÷¾¤B,ƒšqe>>þ$h(O®Ó=Æòè:ià·ãa(×ÆÞc1}œSBª=9›öÁï‰âòí§ÇØã®LYÛÃ%¸ö9¶Z³cçÔ%ו<7oø÷¯÷pn=¢+‚t³@wFQ´-Zå§;VIÿòÉòœ›¯ÀémÂYªíÎ)[HZe4;ä]æIÚ1Ô +ë¶ÓÍeÖåW[v»óœ¨ý³®èM6W(Js:L9þfzoÇÕÊåÄôq7ùX›§¥å;#=)GMjÓ§§°ó>7W7WB±Ú[·ùÿz¨w&"L>bq\½·„Ѫ~yQÕákÍ«.·úû˜¿W?¬>¥¢¡@#r’ô-”‹Ea]eãò£»JÅ™|šŒ3’ÞR£ˆÉ½ÕÐüJåñDáÃhºÂ’ð‹²wíª[*Øà©r‚kº4\¾`fÜ^î
?d:ÍûEËf™³¤‹M”ÖCÓ„osCü>Kñ•¹4ÉÀOõ62|3ÑÎyõž=¹»ú1¿¾^ž®´—Ÿ5x´ !'„ú÷On,‡ÒoÝy€ùbº…q²{m ̱ÓOkÏx†E+ÆÖÒ7ó!xìòŒF™³0¬·«H{¨˜þMû¾É^Ù^ÍIösìëôòC¨Ÿ/`u¨QwO¸øˆ”zŠãDÆFgÃî43ö¼š…¨{ÑÐ÷É`²lAoÄšCÅôìc #sˆƒ6>Êjv*AjNeMx‰@³ÓÆÅ£4ìæh7ÀP–gÂýÿµ3çÿL0 +Áiz“æÚæ†Á‰²ÍÕ²Ïm7ZÄUé×4(ê6•…zÌŒ¢PMpêÑýה¤ù†Ô(Y«»kªWÀî!`Ê£mbÄ¥„qgˆœíF2X3ó£æo_ÞdõÍd¥:»T˹’E€-ä{.1ëÉ +dÜp®ÈVã_¨¦1³å{?î:Wõß~Šœ©"LùQjƒÖ±:KY5bx„6ÚbÿÃÖëlƒx¢¥
~¥,£Y§Ê½I|çȨ!VÃ3µÓÂzG#•¦n4’£Ç¦ßÒù»oôu¶Ô~«Ó +7Ÿ+ó²Vï„(a=ÔÅ>\M!†rµmè÷È% +^&ÍËâJ€°—Ô²?\9¼h¢Y§!¥EÇÊ·<§ý#QÇÿ9ÚQ·nºÝ's,ÂøŽ”¢y–’Þõ¥«½ËÆð›_ÙïϳŠ5NÒë%Àv<¡¡ûÈ<{šOS*%älõËU¤¿\"•e†tçù›ß©s°tvܘ´t»Ç(Ìv«k‹qµ÷³ƒø™l9^÷k%}+oµ©´£‹rüR·JôQ3ül^{´v;¥r‡³°åg3¯¢Æ†’¢Ó¢\[#²Z̉ˆfû½Ç|(„›°ö5ÏL‹d•ŠîhŠÆ.5TËúé䦆zp׬ó•ÓrMΩÄq¥r.œðÜ´›‘À4€áÜjÿ%®ÿÿh endobj 1308 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 34 /LastChar 125 -/Widths 2935 0 R -/BaseFont /DEWBNK+NimbusMonL-Bold +/Widths 2953 0 R +/BaseFont /CMTOLD+NimbusMonL-Bold /FontDescriptor 1306 0 R >> endobj 1306 0 obj << /Ascent 624 /CapHeight 552 /Descent -126 -/FontName /DEWBNK+NimbusMonL-Bold +/FontName /CMTOLD+NimbusMonL-Bold /ItalicAngle 0 /StemV 101 /XHeight 439 @@ -14808,7 +14975,7 @@ endobj /CharSet (/quotedbl/numbersign/quoteright/parenleft/parenright/plus/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/at/A/B/C/D/E/F/G/H/I/K/M/N/O/R/S/T/W/Z/bracketleft/bracketright/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright) /FontFile 1307 0 R >> endobj -2935 0 obj +2953 0 obj [600 600 0 0 0 600 600 600 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 0 0 600 600 600 600 600 600 600 600 600 600 0 600 0 600 600 600 0 0 600 600 600 0 0 600 0 0 600 600 0 600 0 0 0 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] endobj 1287 0 obj << @@ -14823,7 +14990,7 @@ xÚ¬¶eTœÝÖ%ŠCpw),¸www÷ wNpww÷ økd‡§¤u»€ìíÄŒ]€< `e°pssÃSDí<@–. -tøÇEp +tøÇEp ÐÖ¿¶qÒí2”"¥ŸjFy_ÎÉmBép0kìo)«”¼ÁM´}s‚»|¤ñ'w+ðǤxp@ö5Mý‹ÕŽÚ†^Wxrú5ñèñêÏðà@×5tÏ]NìJ^7(¤¯‘þŽ9‚:ê•Þá40éMˆ×—$šÞy”ø¶r/Jù+vroIÐé‚|‰òNR-{UZØW3‘|‰ÜÓ¹Ÿ«®”âÎ8|M„ãA½7SÖA“™°?‰î!®¨{üëlkh_zsg'•ÛKº7ÃìQ23†»V!‹¶88Szé-ŠÈZßʲÃìb“ÿ<Ìišð·uO[מʙåê;Õeâ*1žü =Æ:nâ(4n¼ë—jºÒQ•"/>Uöló½ˆtë% ˆ/÷€{`‰ÔÒE¨N»cj,Uoo–›U{Lê,þòÛ’`>8[œÂ—;1Œ"ŽÛd6k$T÷ó¤ï0ÃcÃ=ò8Àëø‡ël2ø©ÙB ÿ-NE>…°VQ?SÛ׊Û_ZßjcxÊSH£k‹_G–‘'²Âøøc±£~´½ Àë5ر3ìä=Í’ù9õC[¿êŽX? Cz!‹YÀGóµgàÝzŽD7 8’(GD¹‚Hñ%.fjM ýÈ#§:Ð YœƒNo‰ÓûFp=)I%ú&Ç.½Ù™£J©³k´ ¾< ý6K†#„Rcxü¸ @@ -14898,23 +15065,23 @@ M¡„£ÉãB¤&vIA{}ɨüØ?òXcçR&YØÜ„*3cµ,;S˜©fKnLXӌȊeL§KSü,‘Ó.ýï)•òýX©"pnüÁúþ î_æ7KbËͤ\Þâ?MÃòõ¬Î±Iž9ˆSïfâúó’Í¢qÖcU…D”R&ºP8ÐÌÉq‘púÛS¦™¾ì§Ó@K¹¥í2y4,ànzñ~†ŠùÝB‡âw¡8²X7Õ…VËƶê
ÿ/HñÛ‡8ž4ŸŒ[½‰;[ ]άT ¼HŠ¢oŒRUÚ÷q§X ‘ôö}‘÷S·‡¨õ`Yœød2¦ÐyÔ¾õ\¼Ã1?a#ò£uÄT!šÃZG=Q’›ü×Î]ÐÖc›9/±§dÒœ…i¬¬ õZ§¯‘6’4Lv+åÆËÈ/¾{Vsü¡æ;¥5Þ‹ÉÙ“÷°KqÐ@-Âú¥˜UJð¹;ÑÓn ïŽéU/"%ó<ÄÝ{ŸÉÖéFq+£¿
ªÎòêžëÍxì¯÷ŸQg›a+q%²½[ƒFe$™Mí%¸³År@]CÆ"pI“:%?0F»X¸_¥fÌN1¶Î®HŒ¹\Y2¾{Íï!"¹´èÊ6fB®“»Åõè¤ÑO0–0¿Hú^˜4WíagUv;Ö—FñIôüzçõYˆØýÂè`²ËÁ¬€óÈ5è”CPWžà¾2‰ssFHâzS汕˳ŒÍ¤ }<.ëÙiµD{ä\Ì£º9!özד!î0Š²÷V;Ö&Ké¯(MœV}îüøQècL“ÈÒÎ3ïAT‹ëêןÌ&Ê'g®çÅVÆ´FÚÞùÊy¢tc¬óºøÒ-yfgA‘zTz¼ì®øŽ-:y@ƒ¥±ÿ\¸"•?PVÏWÕE†È3Ê lDK\$UÔw¬>rß©Dè%<»ÕìÚW”åv\ÏÓŒ ø¿€§Jœ‹ê¸ -A}Ü[®L¼«#²GŽ_aâÍ¿KH¤ŸŸ‰‚h
¼ª»,_&½òîoy£pB7vKŽ£¬NhÄO1û_¦¾¶®rD™91Üð)ÍÞºsùTAÍöæ÷Ý¥éëc5?Í‚ÒÚ.îçþy;4Ûú/¡üà"€ps°óòñxeç…¤ü½xq4endstream +A}Ü[®L¼«#²GŽ_aâÍ¿KH¤ŸŸ‰‚h
¼ª»,_&½òîoy£pB7vKŽ£¬NhÄO1û_¦¾¶®rD™91Üð)ÍÞºsùTAÍöæ÷Ý¥éëc5?Í‚ÒÚ.îçþy;4Ûú/¡üà"€ps°óòñxeç…¤ü‰òq0endstream endobj 1288 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 33 /LastChar 125 -/Widths 2936 0 R -/BaseFont /FJPIBS+NimbusMonL-Regu +/Widths 2954 0 R +/BaseFont /EQIMAM+NimbusMonL-Regu /FontDescriptor 1286 0 R >> endobj 1286 0 obj << /Ascent 625 /CapHeight 557 /Descent -147 -/FontName /FJPIBS+NimbusMonL-Regu +/FontName /EQIMAM+NimbusMonL-Regu /ItalicAngle 0 /StemV 41 /XHeight 426 @@ -14923,108 +15090,103 @@ endobj /CharSet (/exclam/quotedbl/numbersign/dollar/percent/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright) /FontFile 1287 0 R >> endobj -2936 0 obj +2954 0 obj [600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] endobj 1217 0 obj << /Length1 1620 /Length2 20127 /Length3 532 -/Length 21035 +/Length 21036 /Filter /FlateDecode >> stream -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(øCB¼ªùÕi{Ju¡glŸÏÏìC(»ƒ¢ÈbÓËZÁçjð§fÌÁpC@¶ -¦éÂú”/é„ÐaF)¹ìÉT_Äü AÇDF@’_²–
z¿IÂ>^"ò“£œŸpÖj×Ñm¡HNZ¬¹Šù—;Ão{ô«OŠ—©š}¾ŽÈïqM gÀÁõ@‰Î -vÌó_ŸäsýðKÞ`zŒ—6$Aïܪ“³ÖUªÔ¼qTÉŒ!ÝNë”›Å/˜4ú#pöpò>ÙMBˆÁrêM<õlb®‚‡é‹à\jÑhŽ!··qèš–í:—…u>5±“ª——‡³›G¿:×MÎ{òεÁéKœJC·Ò@µ¾/)qpgŸ”µí‚ ¨•Šgý´»Û]^ÕÞƒÛ1Ü ½û߬Dþµß™á…°ä]xŠ©9 -b¤H#øÕVh@û€€Æjý)ûƒe{’Ó -3 á"Å8a¶ÌýhC©Š‚¡|«ßÎ[ÖGÏ3“GDBI‘Z8«µ¯öºÛK -’wi¡´NºóoI^0Õ–ÎÈ!C6פ AÅjc›a˜LÁýäü>wiúÁЧ('Q_´d¶lAS¬Ôæ‡äaíøîyNM×iÙòD³."KÂ.38°n -ݱÍAïOÇ4å|cåžä½Ë™à˺_…¤Bcbœp%ÉU™xíŒ`#Ë}Cºûð¥H"¹ºå)çØÑYi#,ج¿ßÁ;QÝqç·Äjí(^&+
MÌøkRÐ,7÷u¾!+o¹-}iC¼HBbÛ*1'O. Íþ~6'jïý˜ñ+gt5û¢PVÔÿ¤˜¿T?ÚãÔR¨s(S¡šq¹"yV‡ôî@v¨„3ëÔHG¹çòšu´ÉÅQ›8Ô%âÛV†w>ðÛeã‘[‹}H}öA÷4OöÖgí -„7N•{œP¾©3¹¥Œ/Ä[Ö]ªpCƒ’½f±eB8|*ÿá´%Q0d’hyŽÏË9€œH7þ5'i}=½ó{LXwÜëaä6Aº„ï5Ëo7F—Aµbñ#¹‰…O[?ˆny=¯7…³¾ÏÆ_žMSÑÓ<Ÿj²¹O-ÄËOrlºÈ|!•¡ÀºüV„,y©+¥,ßê¹2š_Sûà£#üåž·${qÛF2<üm=àmûS}ü{/°¥ÖÌ:i‚ƒ‹\’³¦ææŒ"×îS©ÄÙM>?gЀñ¤kMí!,£sê-Ð@‘œm -ï™°H¯Ñq<)XÍe.vUÀŒ‹Ææ6¼j÷(OóÈŠ¨ð"AÏ@ä_ÞžX$#–alxUeh[fdþ.Þ_lÔæ8-®(˜ÙÉë¾—©)ZóÕŸ -Ôû´Þܼõz2‹÷¤#‚JÇ_N‚aºäYCÏ>\z…„–gĈÏs³Ìjd¨¦!X¸ˆÓwÜ2mö8Ùp!os´C?yTÿ@[Qc×Üÿq…ÒŽ¥Á=5(æΡm³× ÔIìÑ/Ôa1VGKj]Ø w´Ú}oä¿8A#çÁ°\SêœM,ZkyÀºHí(¨ ·³ÔŠSñçöš]MC~ÌTŸÜ¤Pg}÷p€‡€
J¥'Þ fØ‘Vý"‡øíbÇdsªÝë~£vz-t±~ŸU²ôn5\±ìÕµIýS«Uÿ >¢KóHšÃmµ[»nKYݼ øËÈ|(ÚÍs@w³™ >sϽ°V…–šü ®ÙÞÇ+×Xª‰‘†€9õUW«K8†?é
`(zšŒÜ›×Io_eîÁ‘Í>&p×$ÏoLòŠJß´/õý…›R-“ÃOÃÄ,Á‰ þØFáÒÓýâùu.ÍŽ©X€²£ÝF:ûL@¥å߸‰+¸CVçD§›î$2ܘ±¤‚Tô¦:‡4Oòü?ŒÙì7ØC*™VBÆò6VjóšÛ¾§
÷fÝÆ1÷ídž
¿ô|ÒÞÞ@OBG À§˜«T ˜Ã1=Úuø1&\ÛTĉº(Ð64Ï›§¼ì¥—¿ž6ÇnÚ4~ÆcÅÛ[zFbÆ’RJ»žƒ.¶¡ÖkŽãÃÞDþÈÉ+GâzƒîÔ¹m_C|øþ0/–Xµ³-`_1+Rå¬Ë¸ƒðžM*&`*ó|ÜTF-ò\<óãT¢ - - -à+N‰Ø5ÚNjÔÐY›€¨áàݵiï+Zf;ˆ?Çåe³ÙvWà·kŸÒÅüµ—¢I¹ë´“F4{½*-5 …)<m‰‘·iîúó…sA€fÌTljò‰¹^›]¿w›H.’îŠI†m¸_|óÚ»b \ÝÛè#Úžƒðž1Êê
×åã–μmœh³fË]Ú¸¤„ž¯\ÇišÒ}EK¶
õ»›õx}3sŵÈûÔM¿=i‹ƒ)»o)=26¢QžÉªËC†;ß5T]hQ€Ð^šŸmúà|‰Z›!ç˜8ºs±S°È¾J¬f?ÝëÞìoåCˆ€ßlOŒ‰¯¸1]§Uxœ<Šzæ᥀•áç=ˆÎmòò‰¿½PÓ1ú”¢>2x¤iÎ#§·5ž.‰©sVñº^ñ¼ëÓýªÀ›`õVÙÅ¢UR¸¼ûpœ“åæ41$ûFÐ8ªŸ8lV{v”ƒîÞw©³î~¯ìýý«&À꾃~èôÓEKå½ây
Dj”¹÷-vá'†H=~€Œøä“þܦð!UMÌÆ‚qzÝKs"œÏòçžNIZÇ&s™/í}‡•‚ðQE´¶åï¼1àE˜»×AÖö¹›€Ú8!ZŒ%©u4¶7×)-¹¢þxÏÌŠi#Ò},V{ 3ê™Lk0Ûd±À1èÙýåÇN@ˆ<E¾=\Ðwö\#·Sä‡ó ̵ì¬j‰um‚Þ>ñ€ÖXzdöi¢ð»†¢”YµÇÙ¹þÕ‚ÅmË.»ÎÅ)6>NSã"jú¦HËèËLnE™ƒ¦üÂKh°ï_ŽÆˆ\RÙßC* 5¦
T(´eLjÔ9úÞÓ…eñrWtA…¤ÙlõtŽcKª¿ÔL©ÓšïÃÍCm á‚cÆó7ªÓû:³HAÁÏÑ×$k!å8Õ#[;mñW¨$¥„ÊQã]T”PpÎÊ©j0)¤p)8H‹Ûä—4ÞÌd9ãYVä]mze;ûµª.ò+ÜôÖƼ9+C…ŒµÍ7ÈÀaÀõñú%B{PçÑó²ŒG>¦ï\8ÞÓ>\ùë -¾07ÙtîRÝçP{myZí2÷<ijœçâzxÒô£'2ºñÉþD–£,9tÞ±¾vR§ðSpCŠ%è²³O»¢‘χæhÇeUfL†öH)”éßѦ"¥2¦TVÞ¤Vx/>’^Ž³Š$pEÚŸºþ<˜÷|š‡+œüäî˜j -º.F5|EKÖ_kßU†Ä&“ó"÷•€äûdÎ…#æ›5åØK"20¬.Fí¢Jà(2\࢚z~"‚*X¸×”•›¹-=‰Œ!‹2ZK
…‹3…~`ÊòJ&qðmvpˆ;¢¬¬Õ¼}ÜtЈD½N¸Q/pÏÐ@Øy)diDÿD¡ -ÛIX¨_QW:ÿµ
]úÐÀï9Lœ`]fd„ú1ØñœÖʨó™¢r -EþØÜlgøÕ_:jûìe‚¡¡¬ -M
q‚8IoÜ•ªÅö›ÍL-Ô…`€ToÞ½*Pvz:N“x›ÝžÜ™3*IŸeÀ4µô -;S9Á%]9Ao¢ÁN©‡’p6/€ôJš6:7õ"élÈ2îqœÞ܃A«ñ)Û«Â!F—?+ÍõÙV³d$7ÁÌ&áýWW(Þg0 ÎÜ#Úž8¤;ßJì¯ý‰Ù¡L¹ŒÙOÝ5oYÖᘠ-AÒà}…a™5‚>ÂÃNFØX4²–€žÞri¸™½‹…:'é‹NÎXªËQ±lC#Ë4’w‰ùŸÈ>ßOºÒLZx¯dTH‘™‡Ø*:ÑP=<Ylc<¢„%Vù3nË
½H¼!›Å.raìþ“¼ù÷Y:›Îxf‘…H^#ü¡ æh -ø>@[›CQƒi«m®þ²´! -ÚÕìΨWtŠã?oAZdævò6I›¼)’þ‰èRUÛÌ(Á@Ú”µ²âa»¦Ð£ñ Ûå²ÛšÖ/ì¬ý&Å%é¾ACF÷êÏa¶šƒ;öùZjûâÛQBÙ„ãljÎYIN«ä…{Ïy|—hX®t²RML‡WK&q¨aEPjÍ–_ê›Í2ÒÙmYL¡£Ý§ÎŒrêgsÓ¯NãÚ‹+A׃²„7g¨ëÞÊN óké…%¦~aÝ–o¥~F¼».û#3{9D«Áä1;â´æÍôQôÃZÏú8w&_a†¶j¡ã÷q ´r©>Ý}~9ÃQ‡“¹ýñQËöš‚¸¸ÅÒRß -nº_Ø;úáW„ZÏ(œd ÆÅÕ>¤õ„‹ÁêÍ¢*qöŒ‚#röwQ;£œjÚÆ^kNÿyŠÕzÁ<S€\ìæ¬# -)¬¹YQkfb -<Æê> tjY×rCD[")Q’£#˜Øn]Ìcõ(ð(»CÈ=g}¶F`³k940ŒÜ§k¤ÿe:ä#_tRáYL©£½N‡íAKZ' KLH§£tvH¶ÐSÑe6óSò<ø]©k>¿2 GÇNê#u0UóQŽÅÕòK»/ó<'\`ÛyæÒ5êLZ íèÄn™çšz‹ˆÆL²˜)ÏvŒX¡[M5þÉž„¤´‚o®HõÌLg‡œQäzä<¸±5î6Ýc²±ï.U¨vÉM{bUWåL¼Ù¾Î,mxÙ*û+‚ikX‚â{uõ<„NZ'8ƒ,T¥~Xè%{2Ñ/f>[µª¦Dîïö|Ý¡±šöœ©.q´Ÿ›l¢”„AMãSæKæí3r,ÁãZ<Ë›¬ïám)œ+h¯zìÏa~¥^Ø‹Yºxà½M67 -}¾Q@<gäÍd}ßÜ-âãf††Çª§è·à^.@uz¥@”M|Ý°Ìì4ÒÊ -à™<=²!>°ë_Â!¡nÒ
q£^c7Nh?–Dbk]z‘Zøù·Íà[ÛX=mÅ›P
:žž‰ÍW½G°tC#<áß×VÂ'¦ŠÒyÞÄ1ò\ðÎòˆ¿ƒˆ§9&åŒÂT«âÞ°;¯oQ -Äd²’Ø[EÜ°¿ÈÇ`n—ÅædþǦiBŠFtù£¿
mŽ<{töJD|Ï;±Æ&G‚iþco§Àå²-çaA3©±W(æ‚2MYÕô(mò¤ œFã³{gþz&V__éa6ÎÇp›¯ØalĺÃuwðnæc"8¡n‡:Ñ!1w‡Í‘˜Ý¿g•Ã
ˆ%ù[ÛÃÞI‘nÓåÙ–~gdº/~û¬ugÉp¡`ÁPþôTiHŸì2\)ÜЙÍàÿ®ºþ0æ‡zx)œE½ Úéq;7,¦ýs¸ƒ,ª‡izÕéü*ið¾\~]•mî§Æ Æ
K•!ì†ß!ou4›¿›û‹†«ðw<«^UG‰/)cy¯$Ë‹>täCÔž•6rеð‚jåº)×ä;æC'17'IÙŬõ1:Ï–¼pV%¤»Ã -2°ÅѦyWýö¾¥jÖÎŒUËü«üÂ@¹,íðÊ&©¾JèS"§oóZ²,¢t -’úC¡ãa4Ÿ—7C‘ªÜ݃~Z¨‹ˆÃ©µ»*‡‚s·@qp![~_£Œ¿:[8&‹”ŽËNp€0ËtÃ"¤ü4q%¬i¨•F³høð¡<uÖñ¾î7iÞßÐäS)–óãIÌ)¶é¿Õ+[ò5L\Ö*ãÍZóÊgDسö@WÎìÖ1üÊ,o>HÁ81äј=Þü2¶ã³âL˜lƒK¯:ÏÂiåsB¢/]ûP6 -Q+ª''a¯¥¯óm@6úâçòg}»°4ï N–³š¬0ìHñëà´Po|®RÎhkÏ–T…£¿» ”àá€#V‰YR³ŠÅ·Rßx°îV&£Ìy«úEê¥Äyêî‰;|0üŸ¸Opˆ`Ôæ:5 × -dž°Åû€{ò$#ïˆÚrþ÷øúø -Ažˆ+‰o徑ù^ÄWòó -þ¤a;åR6¨¹;áD]ëVsGm½˜¤îý‚(Œ3î}
ìfˆ¦»ÖÔÊËÅ!’uÒPPÝöF5ñ;êO"•—ni2õˆbg+€ã–¦ÜÛ%çŸoÚˣǦÅ|É)–C¹,Å‹ñìSÑ.”Qƒ—#l )tæúnÙ‡')ó×LMšýLsi|¼n°Q!gZŠƒp2Äòf;|d·sJ5[èOú»·r• -¹0>“Q80ƒÁ˜jU¥9Ãüró5½C£öñ²·Ëä—A<Õ¦¡1RÁgó[¼X- ?¼§µebÑ×k^6*ÙJ¬(І¦7Ü1)ºPïNଛ/r§tªX¥õø&™ ¥ƒÆôÏážµÓfÇHöõŒ’°.ÛJó9øP>µe't§l†ƒì1M¾#,Çä1¾#ÜÕÄš#[ÀN).·E¶/°6~ª§ˆÄ•T1˜ôY¶#ß:a³áI]ï¡‘g=㟗ì26®HZÄ+ØÃîk -z|~ÝX!ö×½’F`à[m”Ý»”}«SqÁM÷]»&ÃÍÝùԛꚥ‘ü…@ÏHÈúûÓnê -c—™XúAÒœü.;
®¯˜›'·Œ©½C›ˆ^zºnõâ塳ýæzI‡• -RÐ%åØWÔ糖Î;ÇOÏØŒI“ëöL%Ç’,úÛ¼F¬>žÜÁ|á™ôaײÍ4˜m?3’V=·_L=Rx;`‚i<’kav`Äóè·¶²ú0 -pºs*Å"øVŸûå¦ä!¥`˜nƒ³ß+ó+ŽµÐ -çøx£ƒ®Ñãz#ú€½ãJÿy‘ÃEäºF•“Róª»ÿø†D¯11tü@Ct´Y$Á¼šGj™¯%?¼äX+å•?L¤ÔÛ˜‡Í”_´Ò#(?Êô\˜ã@¨nw"àYl™À<”w„ÙY)ª5avQÿÊ%éömŒ—êÆ5=–AâŒ*$$–-Ò{OcŒËüŒÖ3n¡÷j¦&•3ì£Ç€ÄY+÷U&‡Zg\'ãMnÿ@÷W¢4’:zvlAÚ”‘…‡’>é„Üo¦˜Vü_Ù¹šÇ};*ˆux’ÆC,(¨ƒ|ýÜñ¹Ú÷zw¹ -£fÍ6•9í]ØTÉ°bµ÷áú1K/š&‘9€‡e×¢hœj4Šß.Î[)Z -dCŽREm46¬8Ó¥N¸ «Ô6<É,ÆÐÍÉÎæi:ýx(¥Ët8ÐËn ÿ`’®! -¼ë0å ®ÏØ¿îZïܪc~[Q7µê4è©Hšñq‡Ôø°7ò=³ž‰’§™òÆú˜“duˆ?ÎÕ+r^9kæÖq槜a^NžbÁ:ÐÞ“ªC=>JÅЕd›dg‡¼]ÕúˆËz@øeaªCšs5z Q/FÐéDú÷8È«âX²D›íŽO@Ñ%
U÷Méd>kZ|èdü%ÎÐ?,cYÎMw5ÊÃÃP|øTëZBŒåæxM~`Ô•ä×P -Ïoé†-Ë»ç² ¹
Y¶ñα‹èÞÛ°ëÙC¼aŸèß7嶸מ -뜻%CAÌ‚¬UV´‰Maü€¤Ï¹uñçó„áÜêÀ:œð؃CÛ(|#ºÉ&ÇëéòɼÏÈ8GÙx被Š³p<BÌýÀ«›[¤Êñ+ÇÕ˳ž8b׈×[ÍT|¥#NùæQߧCW;Gˆ|SmÿFÞÖil±^õãþ™ef C¹‡¸·á¢y JòëL;˜L]¸îÙÙeÂAÚbˆPAIÛdðIÔPîÅ -×·³÷ŒAÿÞ]ÿ¹:#¥µIä -ÑÅÛ±åprkBÙûCzÆaÑÓ3ëÌ"!²2ö]3¾v{ÌÆY»G«Œs»Oå×náR¤C2¾&`ñNƒ§Eƒ“\ÙÍ9È&Bê.üŒ¶Ù· nRV'“BV’äýáú%h:¾.l¶CÑy%4KÉÂTÙfÝ4„T·:ùÔÖ4_'áULšj€žXËÜý¤öiûÃÆûêç”´c§=`²¨øqªe˜ßC´Ü¥îóÚlméòù -H¦Ö¼9Gž¸M‡ôº„þP¼¡ïÒ4Š›µ.¾êJøiˆG•Ä$…hÎX÷lÕ-DÞßÍ›á/c;§Ü?‚Ë¥9‡l®Ñ{ÄÆ»òni†n½$›B×:õÒ©~’Xv - w/¼ÞU·O§”~EÁÏAç8Q•|ðŒGÇ=gý9,?YÁ2Ë<må,*]ß»¹5HN”¤mf`!”uåIì¦uþÕÕ>2L"ôÄEñK‡æPüÚ÷AÍí"I1„'{†§³
úº¿¯c¼NøŒß_lbéøûö—
m„nĜɫí÷Zäo£‚³|t0ó>ú>S‹Â™ÔRú—°zaI¿ î%ÕA˜">©
•N~ú‚×-†®2-QVçh-‰úó
ýÞpܹâÛ/–¹"5vÎf—GWnT66þ8éô^úÞu¾4+k‹O -Òo)³S™2áØ¢c—¶FäKa·\®ó*‡©‘@èž›XsIÅXðûh‰ðeýÖ8%W6¤¹¤‹»Ü²yÕŠ½¢uoUêJP'mͧésŠêø?¹ÄÆŽÞמ+Ü¿eB*£HH:`rÀL]¿ºH.âØð~}Êη¡>¼üHÇ8š½D ýâ.ºQÞùÎ_]Ì—%×Ïت3©W$@2?d…°Õã¾Â`¾²ß³Þ׆>xÊ:ªÔý°™9•YæÒÊßÞñ˜¥ãë^:?Ü'°‡eIº¼¨-„~ä˦MÕ7W¥_ÓÞàÁ¥MxqÅß)w¾€Ì}®+È Á‘ÄâGu™.Y6¸D£‰ý}KCîý§WçRPn"8U+Sœ÷ÂøÌûyvÝôL½3ìüî3QÁš\É–ä>¨UHC{ϊѼ•€Q¹!÷Å“÷.¼?;L9§ZšÒE¾é«v¥Ž}03|˜6þ–ˆ¶9£,whœ-ÇËŸ×;?zøpÙÍ„y8àŽ9Ë¥H»Ñ<TÒ>HîÍÄû-q˜˜\—1άÄ.5HLUcß|{¨8óŒòZßÔç`äô³ÁPß½Q5åŽèz”=ûŒW0zúU÷Þ r còRˆžÿžDCh-&¦)¬u#Å>"1™k–ôÿ»žÍÌÃá±N”vD#¹¢Açª ›`_ÝxXÒÈwgÞ„ÏÙå솋ÛÈK+´CܦA"Ê -âc§x~XÃJo(¦cé;‚÷ÿ¨š#1âŽøé}SUx °f=”4+ÿ䎧õZ›…H -—€_úØî*Ý– ·£ý7<³Y6ªãvl¤ÎݱæŒú‹Ù¸™‡ÈÈc?m·Ò†h¡ˆÕ©Åç•¥RäÍ×”»L|âÊLwõø
Ρò°¤¼AçYKr¼Ï¹ÙÖJÑkW½b%òyQ·ŠTæ9æ‹Ló"$N¬½ôž‡9ȯòL¡åùö;û¿ZÆMú›¦Ýj{wAÆILTI¨£%èÔ&ëö…ôâÞ %§½(1ã:«/h•¶µôÕ9óUÖô”‘Í¡i¬rÝxUæ¸ÂÝPÂ#á61”#,*@Š
–üb±·Tx8ÙÄç{ëG79yçÐê°ÀCþ“væ$Põ`Ò匀V–ƒÿþu6®%…Ùqc†¬Ó:†wtÎì•NôwØÒPÄv©*û&<û'ývýЊâ¹!ÔA"OýMBð¼"ðÛQܸ…ÍK) z²>Ç'áØóô-oâŠÌ#°±ÛÓÀD/&Ësgk7/;ô^D÷‡ÞKÉÁ¤ ŸCH-²oS<ÛõCoõšÂÛw˜´øŒª"ØK–_Š"H‘¬ûVpÆsáõpa¡£_Ì×SÈÚua¯õ°Ü±l|ÚV±{+ wókÎ:¤6=s÷(HfUôRê¸zP¢[E ïcYÄEùºŽsûr~3§Ÿ°3ŸMÆ?å¦T‚°ÍZ5ÕèR˜±˜rL‰buO[ˆ`×w\ÁU·?‚‹œWà&ó+Дzu(“ Ø!ÌìÅûR% 2ú§8xdßÿó <ÌЃ|Šˆîç}®rw‚RÕ:Mp’òÛBÿÉ]˜RòöÖ„½®íX((gÿ¶Ä?ɸ‹e»¿èÚXÄ -ܯ*ù V}ÒD¦ÿôð¥ÎÈ -}ˆÒçq=G/¦8õ6ÙüÍ/]Z?ó{P>yêU•œµú}éË2&@žÊå:Þä®þ;TÆ -݂Ư9ÎÖïSftt7,-–‘hV©©<
®ÙÒ]+,àŒA‡Ø •;…ÔzEå]þ<Ïßý‹ÌɤC™Ñ6ïðÖR®{ÒºsŽyZÍÒ+±êÈÜôÄk´Ñ¤FÈZ‰!FÝmP€×:%•éd -Ü)„lk2'¨á"€”Öó±âµ|syùͱÕe€\ûÊJ;YýMªI‘_£ƒ~Æ1bfÓõÝd=–ÙþÅ|SÅ=UkΫ -S‚DÍ0 -G7ôæøÆnuÒ{«ýef‚‰@ÆÚJt'D©Ñeèb
ÕÓþÿkŸ,Ûš -ÅGÕkX:gׂ še£¤xu®ôØ\CùqKå1¦g¡lø 7[Ù²Ì4Òÿ¹[PÞÿøç¥ÏFÔ´²ÿšûI#pŒ"ªºóöWwxN¥&ÿÊYGúéÆ„¾åoK?\aùt@½=¥¢D#UŠ&ÐmÂ΃:Kó#˜´ÏÙf`ÃN¯Ú¬5}=ÿúfy$V·‹Id”-é%#©¾¯{z²5…رF’oö¾!²’»÷ØIáMØïä†H}ØÝÖR´x`î/Æ]è›Òª^3±Í7é¶ûñâ¬Â^µñŠ -·(FLH³~å¶ÞÖ@Õ6Jäó¾xÌ0V?K£ÈÕJÑ}gy,‹¨†/ã©$þ¸Ì~“Æp\!#…þö/»-ñæ
–Ú3Uv+l•EM ´Dýý_O‰uò!÷¶:)
G‚·Ñ é91¬ÄdÐ~í@§q&±ÑŸ<¹¥ËŠ)üÁžjÄÆpîp ãO`6ÿÓaÌ€“Ê ‰bœ›³ƒø*Ln<rüME‰J¬#Å<ÝþŽð»Z–êÞ§é -Ö/y³¤¥6f,¹yK@ðcõÏ’bÖ3Jca~Äï¬]+)T!¿hê (ò‹gÙ׺Ñ9QÀî/LÆ. |ºy‹ÔOIûè{£dç*ÇU6j—áÅ+”S•ÙÏ=¡ …–› öHL -ú¼ÌìÝÂYÛ…(tf¦ƒ>•OA‚+«ä¿dWÍXäøkÚ— ÞÎÓÒU±?*›¢jžêß_ -+µ¸¹Cíu†Æ…¥v‹øò¬WU˜}öÔ“LÂØÏÚ(kœ¾¨RoiÍ^$Hé~ÒøÈz’Tñ׿·xû0®Åψ_ShúÜ2\oEŠã¦=U´ž$¸_N Ó–jz͉Q -Žò2Oa}=AÀmãUv”'·ýÆû9û¨,Yó‹Äg“ˆÐ‰$¥°®ÇªÍ3|Zí-Ä -ïùnS;ÝŠM‚fˆðÓ%¸<%kDpu47û95%–T+G“¢æ×*T‹J<Èü«˜t‡'On¬ÄÂ. -ðž¯ÔÏ´ZÕ׈‚œâ^ž>ñ·!eÖ²ØäÛ¶(¥/J‹@Ëz¼–F]¢wò¿ÝÓÏõwÁ/…=£ÆhŒcsËtö„t˹¢Æ1|Pú1—ŠR,·²ÖÑï„$8É -,f¬S¼‚Ô·Nï¡Ó¡›¾¼xœñÏ‚È¥éJ#ìKÛ1íü±SŸä{årsê,<+ö‰ÙöÙœ¼U1*µþôD'î¿ð|ÂBÕF5Ç .‰Õ+‹f¬æ-åuÝÓ±oFã”’zeíðÓ„A Ç«á±™—KØ+·,V cšðôŽ/EþrË<g{³™$ÇÜ-+ÓxYt3É°¯‹çq¬¸”‚û@k{#lŠŠBäƒûO€Ä¦ù%ÛèúCÝt@AÎ]7DXÒþƒÅuOî¾[©ÞÌ
m_'y…,ÒÈŽAìÊxi -K› ÀöYt^¬evQ&57Ñ„t9Æ©‘;ØQLV2²ûËI2U^¹¨%Ô~ŸŒ×ˆzW -—wyÑ7a﨑Ýâ‚\Ð8Ó}`\%êp‡có'Æü-ú稛ù2ü@/øç0´âs]1Ñ“ì³ h«Ñˆs.:5üókÔLžQdBöǺs+úof´Ôë§hÖ"³ÍÞ„ôî¥J¬°aÿì·µid´¯<îûöÞŸpÖ=×&¸ùï|A½WKÏÓ}‡õ2yÐ2f:oü0Á¹=}”%4€%³ì~46¬“âNÑq›äøáõéí”Ú,VÞyš0ÐYjš¿c\êàøªà躮´Cg6Çh¥8=’Š%hU åí™Sî·’|Ì¡)‡{—zBÅŠº¿ð"qج5å§\ -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(ë¿Pm-FG*åTA¸¡WK2z)· Ž×?3Ì›QOl -s¹ -¹ƒ%ÔÕÝÙêjý¿áóendstream +xÚ¬ºct¤]·.Ûv*I§culÛN:FÅNÅFǶm۶͎í¤cwý¼ï·÷>cŸóëœý£jÜk^s^×Zë5FQ’)©2›Ú%ìí@,ŒÌ< +ê +ùk¤¿c¡àwõ +ñªæWçí)µ1L„ž±}>ó¡ìŠ"ËMoEß«ÁŸZ1Ã
ÙX ©‘¯DÌýñdAÆRIx%Q¼Kâf†Îo¿møWcwúŸò‚‘ßÄÎ׊ü;L§Ö‘;æT°£6®ãGvíÌÓ.õ=n¾Õ.7èX¬ÊÌ[ÃÚUýùbjÜÁ+_®›xF»-b¨À(e⩃w¸ÜÄ$ÍÓ…
(_,Ó ¡Ã4S4s-Ù“©¾ˆ3‚2Ž‰ŒŽ$¿ ä¬ô“„}¼Dä9%G¹<á¬;Ö6®£ÛA‘œ´Øpÿ(wßöìט.S?62=ú0zQØãš@΀ƒëì˜ç3¹>9È%æú..àŸ¼Áô/cD‚Þ¹U'o?¬§\¤u㤚Cº4šÖ-7#Š_0m@àìáä}²Ÿ„ ƒåÔŸxêÙÄ6Z/3Á¹Ô¦ÑCnoãÐ3+Ûu)
ê22zjþb/]¯ +îïø`—÷¹K³†>%y‰ú¢%óeKšbå6$O÷€”×95]§UËͺˆ »ìàÀº!˜žÆG‰§)‹È£¿¨DÿWaö=M&þ¸}•ßý;¯YZ8"¯+ß´ˆü(s!ó²uxb|î•fsÀ<²ïu‹ ?¹’Ùúsœœ×Æô—ƈîÅ$på?ŽœA7y†›n@‡ä›ãâòèŠGmjø^’áÉU5óç$·ÍîA˜¡¹S轈mú|š:¥©äب\ð$ï-XÍü¸L¡ÛñSL*4!Æ Q’\•B€×Î6²Ü7¤{\_Š$Ò‘ë [ž‚qŽ\”7Â~˜÷÷;úü@ÔpÚù-±ZD»Š—ÍÇJC3ùšT4ÏÍ}oÈÊ[kn@KdÚ/’صJÀDÌ)Èð„¿ŸÍ‰ÚÂû<füÊ];(”
8)æ/5ˆö<µjFàÊÆT¨e\®HžÕ!=„;’áÌ:7ÒQîy…¼forqÔÆ&ε@‰øv•áüöäxä6b_g+RŸ}ѽǓ}4ÃY»‚àMReÇ'TnêLïC)ããñ–õ–*ÜêÐ ä®Y옟Ê¿;oI™&Z£Åó²A`þH¤Žš“´¹žÞù=&¬;îõ4vŸ ]Â÷žå·£Ë Z±üžÜħcL·¼ž…×›ÂY_‰g À¿¦¥äe‘O5ÙÀܧâí/96]d±ÊPàH]~+B†<Ô•R–…€õ\ͯ¥sðÑþrOŒ…[’½¸m+þ¶ø¶ý©1.Õl©5· BZ«àà"—䬩¹9£ÈµÿT.qq„ÏÏ4dG<éZSËèœz2T"g€E‡úÅ3P&¶ãäQ,À‹é$¨ +]rSÓ|¬U]Iƒsuoé$½9¢c÷U¹“:äx°Ð¶¾Ø¤Û‹«RÜIÅQ¶?³…á6.S¼à‡n|ÑG{×Bµ”¥fÑ…ÝL”ŽˆÃSù8Ø'ȸŽô‹ÊôÝ´àÝ÷¶¹ö5‘PÈœ¯æx*&ô•¤š1S¶²ó¥w\·+z›DÊ´v¸$ÌLßòÈîk>^µ³.L±¥ +>+l„T°\:&j‘ñ™û
^òÕPkNÉ«±löñü«DÙj‹+Y9‚dÌœÊÖ„ê—6<€ÌVcŠ§‹Íš‘Ýþ³¥SÕsiÚÚ¤Ûò>vü[Âë +Ð"$©p@‘zŸÖÐGƒ›‚·^_vñžtDPyÂñøËɘ.ÖÆÐó†·ÅDã^!¡¥ 1âóÜ,óšYªiÖc.â4£÷LÛ}cN6\ÈÛÐCÕÅ?ÐÖÔØ5÷Ü tbgipO
‹¹shÛtƒt{J'uYÌ„5Ð’Z6è¬wßù/NÐÈy0¬Öƒ;g‹ÖZ0….R; +*Èí´ãT¸žfWÓ35&7)4Xß=á!`ƒSé‰7ˆvdÔ¾È#~{£Ø1Çœj÷àºßŨžG]¬ßg•,½[
W*{ukÒøÔn•Ã‚èÒ:’ƒæp_íÖ©ÛRÑ°((þ22ߊvóÇÝl.ˆÏÜs/¬]¡®p‚ko¾÷ñ@ÆÇÊ5V…jj¬i
`N}ÕÆêŽáOú +¥xûSáéʾ£»#§ûa»ƒ’áÁÙI>$]
Ur•×éz¼¿1VÞ½=Ï"ü,výçyöd +‹ª¥'NP +¼ VÕ],ZeÅË»§99nNS#²o£‰ÓÑÉÀfõg'yèî}×8›î÷ñú Þß߸jï;è‡N?]µUß+ž×Ú@¤Æ™{ß²a~bˆÔãÊŠO>ŒAÁm +RÕÄl,˜¤×M±4'Âù.îé–¤ul2—ùÑÞwX+*â +˜h9cOÍ~µz„<„FCçb¶áý±ˆåÕ +EÏèŸþ%§ß`Z4ÁK]#d7„;0Ñ6s’‘KÆZ¸‡nkIRŸÆõ‚àrJÆ ÖÍ*n؉ÝÅu½šÛŸ–„^¯Á_`iË BÅ©ÃßüÌ6»öá‹41U$÷-œn|eŸW‹è·á£àëbT£‡Q$°dƒµöP…ñjHAl29/r_ H¡Oö\8b¾YKž½ä("ÃêjÜ.ªŽ"Ë>!ª¥ï/2 ¨Šõ0€{MY¹™ØÒ™ÈÒ¸(Ë ½ÔPèAYë¹8ãY覢 lßf‡¸#ÁÊZÍÛÇMHÔëŒõ÷
„—F–AH +Ä$’Ãàõëþ²sà˼¯î 80¦µ“œâ[ŠH$Ç$‰f|Èuº©K<¡Ï“äx¶{w*Êk5¬öHbÄaá3èGëÚê'cS˜F…ä!ò¡V Ò3£…øz¸.ÉÆwê¥&¼Ô t¿ç¤+Æü¥¬O4ÝŸg‘JkyW ÔØ3ŒVä1U•ü‡Î²kö× +ðš1cÒSQØvS¾Ï>q.ØãwÕþgdtMJc²Ä:+Ä-pÀ¡:ýckÀ^èæͯ¯ÐÔ'ˆ“ô&]©Úl¿ÙÌÕC] Hõç=ª‚䦧㴈·°ÙÈ]8£’XÌRK¯°3U\ÓUô'Œá”{¸! góI¯dh£s#Q/’Ά¬âÇé-ì1´ï‘²½+Ãqaô8ñ³ÒÜÞ*í40KFrÌmÞu•Âá}ë,<£ˆCºóÅÞúÚŸ¸Q‘ËTʘý5ÜÂð–õa©$
¿Ñ÷áQ•Ù <ìd„E#»c èë/—†›;ȳXjp¢‘¾èæ쀥º[Â64²L#ù”X\<‹ìóý¤+ͤ…÷NF…™yˆ¢
ÕÇ“Ã6Á£!JXbÕž?ã¶ÚÐIJ]ì"ÆîÏ1Í›Ÿ¥³íüŽg)Qˆä= +bŽ¦€ïó´µ95˜µÚõçL ËX¢ ]ÍîŒzGw¡8½€ðódDfîa'o“tÈ›"éo‘ˆ.ÕtÌÍ€¤MY+ûð(žvkŠ=šŸ°]®»)aýÂ.:oÒ\’4dÄá`p¯æ«9¸cŸ¯¡±/~%”Á8þ˜èœ•ä´ÊÞ¸W`ðœÇw‰FåÊ'+EÑÄôqxµd‡šÖe Ö˜a…¥Ž±‰Ð,cÝÝ–Å:Ú}êÌ(ç~6wƒê4®½¸t}(+x†ºî=¡ì:ÿ–^XbêÖmñVÚêgÄ»ëB°?Â1³—C´šLž³#¾ðGÛa~ÐLEßmÔùl‰sgògh«:~A«”ÐÝç—3|u8‹;µl¯‰ ˆ‹Q,-õ}¯à¦û…½cp~E¨ýŒÂIb\\íCZ/A¸è¬Þ,Š¡gÏ8 8"gµ7Ω¦mìµá˜§XÌ3ÈÇn~Ï:¢ ‘¶Äš›µf&¦Àc¬î“@§–u-7D´%’%99 íÖÅ<V²;„<rÖgk6»–CƒòÁhÁ}»Fú_¦C>òE'ŸÅ±À”;ÑëtÙ´et“°Ä„tºÊg‡d+Ñ=]öa3ï0%σRÊ]óù•…8ºöÒ©ƒ©Â˜Œs,¯–÷°XÚý˜ç9á‚¢èØÎ3—®Q¿`ÒiG'v˼¾#ÐìÐ[F4f’ÅLyµcÄ +íÜj©óO&ð$$¥|sûC2¨on6;ä‚ò àxÐ#ïÉyG°‰è“}w©JµKnÖ«¶*oêÃöufiÃÛN%@ LGÓ +ß«;¨ï)tÒ:Ál©&ý[ÀR?Ù‹‰~1óÙºU-%r·çëöÝàˆõ´×Lu‰“ÃÜ$`¥$jzŸ2_2oŸ‘c ×òY~„Øt}o»Hñ\QgÕs‡xó+õêÄ^ÌÒÅïm²…YUèó"â9#o&ëûæn734<VÝ8E¿%¿ðrjó+¢<hâë~„Uf§±vþ +D<Í1)o¦Vµ÷†Ýy}+ˆR &›¥˜Ä.Ø*âaý€èD!s»,6'ó?Þ0MÒ4¢ ËïýmhsäÙc€¤³W"â{Þ‰56yL‹ï{;®—ýh9ZI½B1”i*jfGi‹'Mà4ªÐŸÝ;óÐ3±úúJÿ³q>†Û~Åvc#Ö®»“€w·èxÁ u?Ô‰¹;lŽÄÌèîü=+¨nH,ÉßÚîø¶HŠ¬x›®À¶ôó8#ÓcñÛgK†+†²ð§—j»˜8@æd—áJñ†Î|ÿwÕÝð‡ ?Ô{Ä»Há,êÕNû¹Q1íŸÃdQ}L³«nÝHOàWIÃ÷ðåòëªhu1¾hXªawüþë£ÙüÝÜ_4\…¿ã±Xmõ«:JüHË{½!Y^` #ï£ö¬uƒ¯…Ô*×͸&ßa0:‰¹9IÊ.f¥©Ñy¶„°*!=W-N¶Í»·÷-UÓ°öæ¬ÚFà_j,äh‡W6 Ì4ñUCŸ18ýŠ˜×’åeY‡ëG—Ö«ÄØI»è#´Ôó[ÊUÅ‚Jóc+Ó4ÖHZ¬Ï÷ŽDºœ·’.J5/n¬k(4N]㶾½[Všáí±_þt8îá«õá§ïÙeTÔg £ù¾¼‰TåîôÓB]DNÝU9œ»_Àp +ˆ$B?ô—CVžHBT¿.;"ûâê̬)Xe~¡ƒ¢(I…ůX"µpÏÚZ‘»ÑÈ‚"qmíÂê;-³¬s7#×DPÂ; KŒxj>y—qÏi‹íA·g¦ «ƒ3„ÿ”âD7/âšÅ Œˆ¼êÇ™iE½ŽîûFí<gðSL2R\”˜um’|Ø¿I"-‘*ŒQ:‡‘w˜°ƒ„~U—ÒÛãäÚ"(ûy—k3WÀqr±·IÑ&§døäNÃ0ɼr!7%tj[®†ð¼¸‡¿¬e°¢zñ÷pöZù¹Üvi3l*.p.&€Ñ·Ëðâd¹¨Ë ÃŽ¿NõÆç*猶ölIWQ8(³J8a•˜· 5«Z~+Õüëam:Êœ·jP¤QJœ§á‘¸ÃsÀÿ‰û‡FmA@ [r«@æ [¼¼'O24ö‰¨-ç¯Ô‰Q}"ð빟z¿–6¯\ÅC]õõtј;G@ +´¡é
LŠ.Ô»4,›æË…Ü)]Ã*V}¾I&È ™à1ƒs¸g´YÄ1Rë}}ã$¬Ë¶Ò|>”O¹‰@½)Ûá`LS)„åø<Æ·q„»µšXd«øÂ)¥å¶ÈöÖæÃO‘¸’*ó‘>«vä[Ç#l6<éë=4ò¬güó’]ÆƵIËxEØ}M@Aï¯kÄþzãWÒ|ë²{ײouª®¸é~k×d¸¹;€úS]³4r£‘RPôŒ„¬¿¿0í¦®0v™‹h$Í)ì²Óàú‰¹{qËš98¸‹ˆá¥§ëU/^º8a®—tX`æzâR»'öÄe‰Aþþ¶‘±,4A8-e·
0]cúå^‡€¸rëWÒŽ7 ÊÂÕ§{ä-^YíÀ©„¬÷‡hÔ®‡œ-´æC˜áì-61}éÍÉ¡3ä<ÃóúNÃ=†ŽØ¯CÝÏxÚöÀ'*#uà;ÑÛ{|B#Š˜ðKwiEú»)ÞÇL?¸`ÿ
l&WC(ô%Û„–:JøcWUò(#ÙØ3‡Ìµ‹}ì +É1L`ôæÒÇ×tÛ¨øy¨— 7Ïùº?Ëcýrlƒ&tŠ=8¥Ìgù×V‘jĆø•ƒÉñ‰ôŸÓla3J’’ö +By¦'¯D5ðá#éyIá´|oªúŠ³Õ¶ÀÊG..qÂ7œ^Y±×Ľ‹ +$¨;;‚vå(s$[îdÚÓê&°?Š²ÛÆThYa%‹Ý~*CçÊ,59LYÕëÝE_·Ž€Y2 Ç„•ýÇ¥ºñÖßGgÞ\¤>/T88?=Ü?©5žîm]ÜàšÖÏ8®nÂz¾Öc¨¾l=jÜLx²4nâupÃRþ’nÝJ%¸Ê†>7V.O&«ppÒÔÓ/FI°Ü?y#=z…X»5`5FœŽËü,Áh”e-¯™Þêå©Hþ‰pñ»š«%âž|Í §©¹8E´—*¯SFš\Ú–ÝËHI§o?çþ§_`ù
5!Q‚ìñWŽc’Tœ§ùõÕ´u»ÒÈw±úË>¯Iâ^J+à^×Ï‚æzù³û +´+¢&ØÒä\3‹'[~)mOdb&Ñ
} ¡.b¸Ý ù@P¿¤àÅÐ?Ñm„é²}¶½:ÇeÕù-÷uÆÇ9·EdrwÙxm£,]Ô(IÇéÓÂQ„/V‹i/öVxÞж{óVmyc~|´«4ÎññF-]£çõF$ô{Ç•Áò"‡«Èu'¥Ö/Tiþñ/‰ž_bbèøFèh³H‚y5(Ô²3ÞKþxɱÖ*+˜H©·1›)¿è¦GR~,”8º2ÇPÝïDÀ³Ø2y(ï³³žÒTkÂ좕K2íÛ/ Ôkú²,ƒÄUHH,[¤÷^&—ùgÜBÕLMªg,ØG‰³Ö«LŽµ.¸Î&›†ÜA$¯Di$uôìØ‚´)#1Ž%}¾2-²¸ßÌ0ù¿²s5ûuTëò$‡.2XRPû:ù{àsµïõîrÒ.? +ê CŸqQ7Å+’zr'œ9ž†ªiäUnÓ_å6Ù²êÓÕ_}©bîz^LmùsØ-nÉêÒºsKf~@»îùL5¦ªÖÌmÎèRfOò[ªÞ +ÛHÔÀ]T7Chµ©Îéì¦J†ë®½×ˆYyÓ4‰ÌÉ<ºEãÔ¢QüwqÞJÑR$r”+j£Ù°aÅ™†(uÃݤ‡°áAHæ1FîHö¶OÓéÇC)]fÃAÞöý“t
Y +Ò”˜`4Â<KXè9?&)í´ÅMãâGÃ¥F]Ï^Žç¿ã!Û²S"þ$Ôd|·AÎT3ÛÒ’¸<Njbö\O"kÂ!^%²ªÒÀÔ¤À»S îúŒ}ð/á®õÉ:æ·uW¯NƒþÐœZ¤/wL{#ßÓ>ë™!¹pž)o¬9IÖ€øãR½"ï³6lf§iqʦéíìõ'ܹí=©:Ôó£T]Y®InvÈÇM½¸¬„_¦6¤5W£õfÞJ¤KÅA^Ç’%Únw|Š.i¨ºÇhJ'óYÓâC'ã/q¶€aËòîz«QžžF„âçÚ×b,7Çk +£n$¿†Rx~Ë4Œh[uØ?—ËoȱouŽ]D÷Þ†]Èâ
ûFÿ¸)·‹À½öÚP\?àÜ-) +f†dÕ¬²F Ml +ã/ +vÎc‹õj÷Ï,3ň*õ8Ľ
ÍKP’_gÚÁdëÂõÎÎ.ŠÐC„ +zHÚ&‘D
å^ªí^‹×1ŠG +l»<¯e55‡foHσòÞÖŸ‡vÑâÚL¿‘aªêZVœ˜„mQaÖÖ=¥}¿¬Å83dŸÌ†× Ä÷é˜d0[MÅ ½áÈ€ùÃÜ߉TSÓᆎ?tÃÝ%•Êغ—ÛÑƦsG3œ1ãDÅIpdwE^ßÊþ¢ÿÛS‹’Ö¥/YK³0üK 7ª±¹æ‹+¸Árû”¯¬ûM¾Æ$®ÖFË©Ù¦75\Výí -KêA_I%Q»Z ‘h±ËD6Ñ¢2é›&U¥ºzˆBÚCSäøQ–Õ[S'ÐK¹³Žs¦£:»¹P¦¬!àkXPð4”r¸½ƒÏ`ºTwýçêŒx”*Ô&‘#àfîÉ×kBi‚ÂõÅ{à1æˆè#žwKH×\’Ëœ!w[™‹Ë)ƒ?q[ø,YçÔYÿª²‡¶Ë•:Žè“tG£3èÔ*þmèÊžÜ`m +¨ð]øùd’åºLÆ›Pçìl‰ï¡[íD JûÖÌÉ”ü®Çt?—ÇWˆ.ÞŽ-Ç“[SúËÞï23Ž‹^^Yg– ‘•±èZñµÛc¶0.êÝ=ÚÐXeœÛexZ(÷¸ö—"rñ0‹wšÌ8-šœä*>°h.ÁŽ0Òwág´Í¦¸µ +ó‚ÐÕu˜ÎþÑòã². …oêeÌ·”ˆ!æL F¸îú+F-:ÈZGCÅÒÑWWVþ +A¡|\¿[9Îà„ÓF5ó³5ŠÏó÷ßc8ô9›BQÏ9´H"ۈƒI1ò” +ÅÑ^†#]…Âb9Â0GÁ«×TàœƒÒ-I0S¬JÔDsa¹#^}Pc:®è—qs5 +–YæikQyèúÞÍ…¬Ar¢$sCK¡¬+ÏHbwíó¯n‘aÉ çÀ$.Š_ºœ0‡âÐ~êîIr؈!<Ù3<í˜mÐ×µø}ãuÂgü>øb£HÇRÛ_6tºs¾'¯¶ßk“¿ +ÎòÑÁÌûøjVL, +gRH`\Âê‡%Aþ‚¸ÿ•LTa†ø¤>T:ùQè^·.¸Ê´DYAž£½$À<ô{ÃiçŠKl¿XöŠÔÄ%㻺J£Š‰ÉÇI§ßð’T×ùÒT¬,¬>ÔDu±eƒ„Ž¬‹C5áj¬QjCì©TÒMvhfÃÑάêa‡LÙ½#†[’›» ʯ¹Œwq¨¹XÑ)-Ìžfw¼"å¤=ÌY¦,ŸÁîMòZýÌ™&W(sì4\e³ð®¬Ö¤æ¿ºâ‹©íà~Y7É®« +]5)±Î +6‡´±]ªÆ¾ ÏþÉ_ÿ½Ý ´¢xnuFÈË`“<¯üv7naóRš@‚ž¬ÏéI8vÁ"}ˇ¸"ólìötg+(Ñ›ÉêÜÃÆÝÛ½Ñã¡÷RòC0)øçR‹ÜÛÏvýÆ[½Ö…ðö&->£Ú£ö’ÕWÄâFëR$›¾„ñ\x}\XhàèÀG‹õ²vD=Ø+A},A,[߶UìÞJÂÝüš³éMO£Ü=A +’YUý”:®”èAèÂûXqQ¾®ãÜþŸœß,è'ì-¦E“qàO¹)•!ìG³VÍ´ºg,§œR¢X=ÒÄ"Æ
œVp5Žà"ç¹Éü´¤_Ëdw3{ñ¾T ¨Žþ)þ1²ðùfäI>EÄ÷ó…>W¥;A¹jæG’ÊÛBÿwÉ]]˜RòöÖ„½®íX((—€¶Ä?Éž¸‹e»¿èœ¬ÛXÄ +ܯ*šŒù¢V}ÒD¦ÿôð£ÎÈ +}ˆ2àq=G/¦8õ1ÝüÍ/SZ?ó{P9yêU“œµú}éÇ2&@žÊå6Þä¡ñ;TÆ +Ý‚Æo +©õŠÊ§üyž+¾û™’i† +£]Þá•|÷¤Mçó:µº•wbÕ‘…Ùˆ×hg¢I͵#ŒºÛà@ïuJ*³É<¸S!¹ÖdNPÂD )×cÅkø2æòò›b«ë +JÎtŒ.a½AöB¿×n
8b¦´w»V
Žn$øÍé)4Üú¤÷VçË̬µµèN‰r£ëÐŪ—Ãÿ×>Y¶5(QD‰!%ÝHîfà¨Ñ9º‘n i’"]Ò-Ý1ºKÝݵ÷þ‡÷Û}îùçÃyžã•”4|œ"ïñ`Ûý]_€ßÿ¼Ý²í\£$«:ê¯{¶F†Æ»lìÏ3¢?ÑL$G@Öóå×vmôãŠ#Žª×°tή4ËFIñê\é±¹†òã–ÊcLÏBÙðn¶²e™i¤ÿs;<¶ ¼ÿñÏ7JŸ¨ie/þ5÷“FàEZUuç!í¯îðœJMþ•³ŽôÓ }Ëß–~¸ +Âòé€z{JE‰FªM Û„u–æG0iž³ÍÀ†^µYkúzþ'ôÍòH¬n“È([ÒKFR}ÿ^÷ôdk +±5b$ßì}Cd%#vﱓ*š°ßÉ
‘ú°»¥8hñÀÜ_Œ»Ð7¥U½2f +b›oÒm÷ãÅY…½jãnQŒ˜fýÊm½ªm&*þ8”Èç1|ñ˜a¬~– F‘«•¢ûÎòXQ;(_ÆSI0ü+p˜ý&á¸$BF +ý1ì_v#ZâÍ,µgªìVØ +*‹š@i‰úû¿ž8ëäCî3luRŽn£ÒsbX‰É ýÚNã0Lb£?yrK—Søƒ=ÕˆáÜá@Æ žÀlþ
¦Ã<˜'•AÅ87gñU˜ +Üxäø›Š•XGŠyº'üá9vµ,Õ½OÓà¬KÏýØIC`”¿¸9Âò§é¸ˆßcZ”Âh.RÕŒI8¬_$òfIKmÌXró–€àÇêŸ%Ŭg”ÆÂüˆßY'ºVR, ¨B~
ÐÔAQäϲ¯u£s¢€Ý_˜Œ\@øt-ò©Ÿ’>ö‡Q÷FÉÎUŽ«l$Ô.ËW(¦8*³Ÿ{>B7@-7쑘ôy™Ù7º!„³¶QèÌL}*Ÿ$‚WVÉÉ®š±Èñ×´//2ZA$¼§¥ªb;>~T6EÕ<Õ¿¿Vj3ps[‡Ú[ë#.JìñåY¯ª0ûì©'™„±ŸµQÖ8}Q¥ÞÒš½.HÒý¤ñ‘õ$=¨â¯oñöaZ]‹#6ž/¿¦Ðô¹e¸ÞZ‹ÇM{ªh=Hp¿œ¦-Õôš£åežÂúz‚€ÛÆ«ì(Onû÷söQY²æ‰Ï&¡I(Ja]U›-fø´Û[ˆÿÞóݦ6vº%š.[Íá§KpyJÖˆàêh2nösjJ,©VŽ&EͯU¨•x9øW+0éOžÜX‰3„\ +‚¾¡ÉzŒ:s[+ž:[´‚r7À«_ó熈ÑFÂ2Õ:¨Ù˜-Aè +œÆâOŒ,Eß÷;XM«âU†æüìeçÎ&¾¸cë2“.D£T«h8&Ëe7nV"ÎCøpÁ¨Ö#}&_ot-ç2ÃæXL¦ºŠðï"’‚Áf&Ñ탔w¤éʼŽE9Ãê¶Y|t\dà=_©Ÿiµª¯9ÅÝU5½<}âoCʬe±É·mQJ_”–õx-ºDïä»3¦Ÿëï"‚_ +{8þFÑÇæ–éì é–sEcø ôc/
¥Xne£ß Ip’XÌ,X§x©oÞC§C7}yñ8㟑KÓ•F<Ø—¶cÚùc§>É÷"ÊåæÔYxVì#³í³9y«bTjýé‰NÜáù„…ªjŽ\«WÍX!Ì[Ê뺧b'ÞŒÆ)<$1ôÊÚ[,ৠƒ@ŽWÃc3/—°WnY"¬Æ4áé[_Šüå–#xÎöf3I¹[V¦;ñ²è2f’a_ÏãX;q)ö&Öö4FØ…È÷Ÿ +=X¤9ƒ:Ø•ñÒ +†*Nñ(ßc“À“ +ÎQÓp/6è~ +ê™ã2ú»‚îY$óµÉ•ßª2^IÑPYm3ïÜÚ×Juý¼=ÕùÌ~9Äÿ 2©”pmPkDÉ Ç¥)DcX¨Ù콘ûk*+ÇMCÆ{Ù´~͵)²è5¿¯ÅL|yÿ1ª5u‡Êëñ÷Òc9„ÍrU¶óBDøò3TyÈ嘙 SzH1ß+`Îð¶+§`½°W5Ó㎎²ÁÑÃiÁ™,÷ò}cýö3!§ïÒƒŒ‘PuaÛ›”Ë tòÍ|T\ÅL,pÈBHðì9çÑô)8H-úäjj*ê=êOŽ +Œ†<\a/r¼ˆvÈxµfíÉCvP€ÕóuóföÈy§Åm4ÍÛÆajùlW¤JÕ4pñûZ¢Aÿ6Ñ®–B][¢µš×´B©®¦Ö +åUÔwUMõ»gÕ"& +C•Á&ûA×"4ÂÌ]iÅÎ|,›ž(mÍ…pêÖ.‰ý³oRŽÕ]¸kŽ¬¢PÖ¡ZÛZŒŽT2Ê©‚pC¯–dô.Rn®f™7£žØærðk®–-!OõŽž1t¿9~‚ó–‰æ·q¼mxYæó”9gK’}ÃÜÕè×å HéÏAf™\pCÊˬM‚._óBâÚjq
À¶]qL÷‡Âa¯¡n—ˆ›´¢('â¥&Cvpñf–¿‡OFÙ2ö +# ð:øF(‰¥YäsäLèÆùxÂJßÓ%ÌgæÂîˆñe:‡¯#0®ÿëÊ»3¯‡óíLM¤\“wŒgßRkHäŽÅ_KØwÓªÂìni–ŠØ±
¨wŠlNþjsßÑ8v<o¸ÞâÖ²ãU8^ë|Wš +ÆúÁÿ%ž†ëÿ öÿÿsK¨«»³#ÔÕûÿ endobj 1218 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 2 /LastChar 151 -/Widths 2937 0 R -/BaseFont /ARYEPE+URWPalladioL-Ital +/Widths 2955 0 R +/BaseFont /LHHJGP+URWPalladioL-Ital /FontDescriptor 1216 0 R >> endobj 1216 0 obj << /Ascent 722 /CapHeight 693 /Descent -261 -/FontName /ARYEPE+URWPalladioL-Ital +/FontName /LHHJGP+URWPalladioL-Ital /ItalicAngle -9.5 /StemV 78 /XHeight 482 @@ -15033,7 +15195,7 @@ endobj /CharSet (/fi/fl/parenleft/parenright/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/emdash) /FontFile 1217 0 R >> endobj -2937 0 obj +2955 0 obj [528 545 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 333 0 0 250 333 250 296 500 500 500 500 500 500 500 500 500 500 250 0 0 0 0 0 0 722 611 667 778 611 556 722 778 333 0 667 556 944 778 778 611 778 667 556 611 778 722 944 722 667 667 0 0 0 0 0 0 444 463 407 500 389 278 500 500 278 0 444 278 778 556 444 500 463 389 389 333 556 500 722 500 500 444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 ] endobj 1081 0 obj << @@ -15049,77 +15211,92 @@ xÚ¬¹eTœm“-Œ»kðÆÝ‚{pw×Æ¥qwwwBpwwwwn‚÷/Ïûž™9kÎùu¾ùÕ÷U»jW]µë®^½š’TI•QÄÌÁÄ\ÒÁÄÈ R ššÛ»˜Ó,œ¶ÿ> üfîajîøÄ -hjcÿOó9ÿ
™Û›ý÷úÿÊô¯ê™µT´•TDéÿ½Ê¨jûw¾Y¹¸ÿ¡ôw@jžŽæ€ÿ•NSÞÁì?ÿð‰Š:x -2¶7û;nÿiø6uuvþ«ò¿6ÀßëÿÇù_ƒonîanŠ°¾â`Êb‘ ªÃÍ™×èc… u,mT+*¨qèõψØå4z«
ejšáûh÷\>s|?üFw4Ö‡cKÝ›f~ùЗœ¶¿ý'U'7ýQ³A)ræ¹fŒ÷Õ’Ü”‹ÆÑÞ”²ŠAÉÑL'»3ÜÕ#m -‰ªV¶ý^]n?É÷oŠ üÐìæÇÕQÿÑŠ´Këñ¯0AÙ¬ŒÚ#Ûõ½ü¶Sz_“Ò¶Âæ°Â¯£Z¬4¦×âÚpj~¿H]c}jÇyŒ{ì|yz0Òä$·‘×ù³›'È úKåWµ0wïèåóä»÷ ¦¤†®ßëÓôäNg@«ÔËfR~7øX3X¯§º<†ž‡:;D݇Y‹’‡±ÇƲ ¾qv"©Î.嶱8Á[Ö†¸gÛyŽ -‡Ø -œQdÓžˆo¥j›*÷ú*yèõA®È›ŠØùÞ*9Ö¤û¸·ÂÃmÈŒ¿Åû×táú9ÂÌ¿×jŒîuÊOà7¬ä'½£[»÷HsHs¢4xÅÈé ývÞh÷»&N™3ï²,ä¯òàÞ¼«»PøÛÖ……Ì\!nÊ—Iž‘Ýù™,dsa‹™2,ÉÜïéÏé›_Ôn8Zr烹ªv{ˆW1óLN¡¦‹JD¼¥"eéUMäãëj“µB‹ND·ó›^ÖåÓܦÙv‰çxD‹ú)MènÁŒ;Õ×`xÞý¤ŒAhàI%ÜúáG`¦‡SØÉň,ø,^‡QXÒ<5µ[OtÂ×{ù…Žö„F×Ï+N•W¾¤Tær U Œ€´q^¾tÆ^?Ø|%uÂŽ¯B_µ÷Åás-™^±`Ö¹Ðü|ñ.ù½„õœÏ¡-eýËÅÌ…£×ïO©èOÕRÁ]k¯þ)¿ÒÃú çøbU'þ÷˜ÀÁ±CŽÊ|Øo‹VÀ,÷QYáŽeƒTÅ€4ù`hõhÃÌ"ÎÕ -¾•Qÿfí2FZ Ys“^É2ç1›èŒ}´x•oøLÅ~êú¼Sr6Ã,f“Å$ÖÁ~¸!’Åu£Ã¾¹fu[¨½$|8GŠ XP&k©:Ä0[gIJõ„ç)C‘
ŒÄ«é3TûÂü‘ë8‹(Ù‚.àu6s v>ñ±=ei™t„Ãcþ9 -ËžŸÜxªÄ®»~dÿ|°ƒÝ{ú볩P¤ˆC{TÃÂb ~3˜˜ Ô¶q-ÖTkþWBµRè1 -œ^Å}÷b"áŸÙ÷?'q
‰–Å/F?®ÊD¨%·ŽÐrm‡6ÓÃȈWw[ØÊ.K.¼€–X¸¢¶ei—ùy¦ ÚI‰sÁÙÛèFCëšË‰°Áº¬Âì§4{ô_ju5§qWb¡â:‚F®¹‘ -£MQùžÑéÄ›—\Jo£c
ÚSAЧÏñ`K¡ˆC%oÝ«ü°¢’N½`ž¾VDÚº‘´^álmÌb'OŠ žQS‚sxCþíº7pážÄ!Jà
wF‘›UíG7íoY{º³ÕãbžÕ\Û."{Š~ï!x¹Î+~SÆeT•±ZЯÆ7 -«ˆbÉ4‡\·L0<Vö†GÉ'e÷Ôß6ˆ'„)©oè–¿aŠC!*uȨÈ9ý$JÄêpêütÏröýr–™·j«œ'“°ˆâd§Í,=~è»EÔúò#¯ùI/r˜íÓúY«hu=}þú]%HÇ*»a4W(¾‹uó2§ÊÏ}5›z—”í»¹8NÒ7“;ðѨ -›ˆu61j&všQÌ/‚·bénx;Á8G̾ -Xþ®qp…rÆm`‘ /Iï¨ë‚‘;ýR¨•å)’Ô`m ^f©>¬OÛÎ3[~½›ÍÄŠ -x¯°&ù.±óh|-ö¤²K¶ÉÉ6
N¿È¿ð.·ÐøSýAH×ú¤ÅÌÞ°—‘,ŠeV®D’R¹ÏÎ_ƒ¢‡):?¨\)Ì/ -ásÆ#ûÝaØü¾C-(^Ÿ¼,•}3Ûð–VG¼:Žˆpöø
‡~fê"¡€«ËöDñqšû„\ãL={,Y6èsÓö&ÿRžéãÎvøüÆ’ ©—2[<Â]*ŽUÍö~Fº*Äe¤A¬ -‰&$_׉<%@v©Ç1‰4~å¢få¶_±Eû´½ó*`,ÇÂÍ“)‡D7^[#¨eNÄî]›Ä|ccÌ.g‰æRuõ~êP„¨öþ²øwâ¯Ú¬9ˆÆoDà{éøk JPÔ箫¾<àØ¡{ÒŽƒ£H ˆš9Û¾>,v§ßÚˆ37ïegiZØÃÎ’~92ïc¾q`¼„¹WËmÞ/ŸªÈ"Ëùtþù¡Î T¼
1¨3 -ŸáG®o4± ÖQÓo$øµì;ÑbV!ûykAžÔ^¶ª¡/©ƒÁ7ÙÈS÷ƒœÔdíMèSAˆ2xî^vΨÊXdºo{g@½ËZǃ¤ÃMp¦|€…¤}øí«š -¹˜%AÇ©OOûØ+VÄ‹~{HŠ¹l…¥mß,+?(òÖÜþòHaöjZ<Dgº¢(ˆSN÷jÖI€µž„*m÷5eÉ
ø;ë'{ª´äú\U·®¿nâ8¬÷Ó‘àfä -,"õRbzR_'Ï4\ÎG-M -ælSŒNà Ëù}ì3½ÿÚ»~¾-ÇÓ]–Í -ÑÙÜôW3>Çz¶P\üõº"kw5·D -(ÙüՅ'•±²ò±—gÊ1HðḶݜœò*ãN_RÓýÈõ´Ùž®Svt¤/wpõL;AÔÑ8—šåÄx{K³íeS”Áñ9UMe›ŽˆÍ×ßÉ¥al‘Âèi×N~¾Î3±ÙpYbdÕŽðéa/å…8•H þÐeý%‚BÒØdÎö¬/~.¯mŒ“Óø5ÝÑ„ßÓIÆk´í0ùX,ãHKKÙ©qä6ç¡•ø;~¿ÉoŠœç”÷-mzË9é‹.òÕºû+Ó·œª7ÆÔ¹D´!úÅA±´âë9œ¶a¤<Ïëá_í°Á‚L=€@°ù¶NM¹•íô™gFNó®äìS!à{ù²gâA}*ßZ¬¾"L;¡!&{SºGÚõvÿáIt˜h<Êo`Ð
W•˜÷¨º=áp¬
]3#"ŒBŸtª”‚¥‡˜QðëÿDŸ°Xüù§—K`!6ïH©/ôyþËZ»ùc¥ÏÇÖ™„ÚÝ"ØÑ6Ølšä–ãNdn>‘W¨f4Ý…ÊðB÷=Iâ¹²ÞDŠ¡éóñL—eMåu/÷r5ÒÄØù?¶ßíž;>#ØŸ#J¬ïíýwÅ\á0NJ]þî\wL‰ËW) á«jû콪:‚ÄŒq˾t/eÖ’Ÿn…‡þàObë·¶tóÅ@Ý—†v9p%Z§P4n¦khÛ%ý®äÇ=v±¯l8E45)ÂcŸfÕ‡³QùâïsÊ9
YbÜ„ƒlï^ë)ý—$ÕŽþ9%AÊf|(—À»‚††î^müu¹ƒŸŽC©¢p°°ð(3ïû{TªÓýᓘï,îÍÔ}»ŸÇ4¼ékv×
з5™\Å«ñNKå'®ÌhüMÁüúîVµü~¦@Œ1ÙYЯx¹éœI¶ä¹O¹˜ N‡6õqéà/ð¸7^–@€OÜslDåÓîjßËVS!V6U%áÇÔaDšò“£u»7Z3c‚8p€È3˜£Iº¾œˆ²#>‘¿ŒRýŠ˜–—œ-¤®ÐáZhOÑŒfuð4±wCóÀ:t²YÆ -àé nرn¢YoIêŸ<vIS Y°ÆÒŽ5Gæå0Mö½Aˆß„«ÿ/kZâüÂz×bAdð)9Å’6Îö‘Ðk¿Ý§Ä7#ÀjhD(ÅêùÒÓ|[Cªé¶w€áàrÏxéÈsCptE’÷$eŸ‘ƒcö2o¬ÝœSaTS¹/]v¶Ag`æÆ¡¦Á§GlÀ¢?væͶuŽ+¨Î_¸¤ k1¡v=œ°úš§¼›:ܵÍ2¯·^&,ˆ(:˜Kw²´.Ðf‚fr:=P]_ðµW2Vƒ4‹"úCñSðåÙⰬثõÏR ,{zvþÉ
ûÕ™€”{uuVœ¬už‡ìNŸûâˆl, -_…Q×G×züù²žxZ5„3&° S&áŠT›D«HÎÓMn@gl"º7÷qÔEÔÓÔ´´¥!e†j³7·_ßÛ* -«4èÑ?jú9‘`¸âQ[è)µF¬j,>.¡ÿžByù˜únŸ‚)L©uwŽ6 f -(ëI0r/*•6#ˆ,º¨YCYæɧàIfðcWζ{À`Œ" ίí+¸6¶qÔ…Æ*zcÑêZ ô, -keFüŸÒù -d§'¬ö
¬Âõ=¹»+¢Ûžß›-°6Ç´mQ@hbQîÀ@¾<˜õJšBHçJÑ#ëµmVi¸×0®*YEᜠ-ÒÇ™¼ïw±w9=rž„%É÷¿´á
…ˆÛaçE„Ì|ÔÝîÄOÜå!ƒî8$á[¢ôbIe©93«•ìƒUëÔ8Ÿà% !U ÒRÓAšx®PöÔ™JØkóÇ×ng"¼Ð+7tF|…;þí|PvùçÆg/CD?Aæ`CFF9€”’Ò󮋇ùã9#H…Kà{p”¦§ó×XzƒÐhÃƧ ×´;{ØÉ…OÅY“óç"÷ -ãÊÅF_ÕXƒÖw_¡ØKèJVDËXcïEhÛ‹Ô—–ÙR¡pŠÔ€V§éêÆÎ~'%œjeö¯´!ç˜ö: cf
f(æ’"äËèÁØ\ûÖôùiÁ<„îvÔÏ:¥•F²,ÎÒ$£ÞzvbsÓÚqÂQ V-/°í-2vŃäƒHì£
߬«&ÍÀµÓ©ê^; çÞÇóó~ì/ŒŸðþh¿ÂÞ Á†ž^tW÷´]þ¿À·Õw2tIW1‹*íàNk-ûÈȯÃîoÕ8çâ•<ÿfZÑÛu1¤u“&LÑßÂZ*4|Qdù ˆêó½ë½Sý0z'D%4•cŠHÆ#Gmqu ÜFu7â¨pq³ì~zS•>¦…¶˜¢¥‡EíØ^þ®Hj×-Þˆ-11e ±%ɾYö^‰Á†ÚÍÝïx௰éý"ûcÑ®žêön=F8^£GônW?&L1wñWþ“—¾Í؆ŸÏêÆ€#§R·¼ÚR룸þæ -EÚªVMo·Œ$yg@;”¦ñ4]„逵PØWJ]¥0îNÚ”}0ý?ÜwüÄ -"¯RÊ*×Qú(À4ö³)FO›’ ‚äêàþ(ÇÀN-ÅBÁÚc·}2«Õëé¢~ÒR¯ÛûÇDã]ÛÁ›75ÑâÛ?}’^¸Ã/T89B"j':up·ýÁÀËuŠwX¨ôN,[œZÕz¡jð^[éÐÒÊB¬ ?ùéˆ&µ_8èè¯\¿T~+¯þzF¹õ ã+¹6sÕétäïøë÷’ç6é¢MLqý/V‰{k˜ÖtáŽ
5Â3r;þªOé‹-ò°Yüeå‰4Š\uÔ®¾O½ÜlMÀ¢€rº%bABõ΢8ò1âGÝð+kLiyûƒ7õ;3»à%h#üï[)ÍápµÄsÙHObgÐô»ÑŽ¹?§Çe×ĵ{
ì«þ&ÄqKZÖ¦ ¿ðÒ;qÛª47·‘)<´2‰Ç-Ò¸6,éó}›‰Êá]Â?…®ù6Çœb„5ÂxÀž^èvíÙœþÉã…~È’Õ*Epב~솳ŸP§Í!ðœÚ
^*ŽÒ¹\ÝMÙàvu¸2ÈL].ÍàE´”NDJösö–êä*\Ðqeùšß±œ²ƒ¯êrýrxÍ!¸ï%ծΟÖòÄͱœ·qšZ%ªæé»V7äÌ¿%þ_ÿVš*Ý\„ÊÒ$ǬǙVaÖÃVáÙàYú#gXõÜ¿Œ²ÕÞ·èêµÁ),|d œ¢Û¶†ñ;îìSJh"¬t§?ßyiKYLÚ´pØŠG?'â{âÁ:ì&~&¨*Ir‰OŽŠÜô«þaÀäOÀÝ0ØÔ››Uñ@t°'Âÿ}û¨ÃšA0IùúL{—p.ðZ¦{xyYOÛ–©Äï´+ÜsHuOŒ¨ÎU
G£–@¬Èo`ñý"qà‘±îø•¢†>MÅ€žQg¯¦ün(Nß_äz[òô:ÕKœ²S—|vîc50ð>rá*˜RLZr§±æ¨F÷ÓËÅRè¯%ùdÏÌnw°GAš¤’€\êÌp½{ë;îÿ©£1ö§¤Z…(Œ£ŸâÓlXzøÓ£g®éË7âE–$M@òŠŒ!‘ø„~!Óm¡.YAuõdOÉP)$0+17`´¦>‹Sºšà`Ù|ÃùõZ+iÌ%‰Õ-ŽLf„1®Á]L?ç©Žý²ødµ§jÄaš›ý’«+}W¸½C…÷ .ìñHÖ¯b sú=l!î‚0Q%— ̤¥¥®.©Q0cÑ…2¡ùÄr*Û>ŸÙ8ðrõÜôÎGùÓ%'§Â5æ+)Éñ;wF$ö’/=Ô=†1Ñ¡*^À½”»ÑœäJû¢œ%uÅ,ºs+§ItO¸’ýôí^êÓqVÆ/õø˜¸èc è¬æ²ao¼¸=¦ªò^y#et…Ëõêj‡sKÆÝ{%&é³ ˜PÅFU1ÂäÿÈ8Lˇ™§”ÁW‚e¾Sî3_×ÐR…%«~Þ¶‡ªR¹¼0Ö¡|!GZ¬7™D¡ÂmlÉ« û¬ÅÚ›å'û!ªXÌƥЇŸ$Ûn¬ßi¶cNÖT{·dìD§Xw¿§ÄšU ~pÌßíÛ/“8 -—[«R^i52)úIí8Ž?œðí•(Hù%‚¶§q‹©[&H…U½3È’PǃjÞX¡(ìÁõJ[Ú(y4\9{1¯€kÒ‰X)×'Ùʱiüƒ²{æxŠH.ž?–… Ý®CÚS‹|¦iŸÎ+—^Pcª(¿œ($&:W§||RÏä|ó„Ñgx^ˆI4¿,]…ѧ <‘å ãÜ5u@܉܊4 -î~%³€8Áj·ÌÓ¥í©ªf‰¾„ö§Ï‰óçô$zƒ1Ž¤PP9*'+p9øx3T.Œh“öJ™¿Âõæbo¸ó¾4¯íò¯ý ~µbàÜÄÆÅëº -ÅïBú¦·bF3‘¿Rm«v—¾NhŽµŸSs-©®ØVû$ß±:ÆMÏÇa£é¬¥Òžwu¸`†>I2"m)pŸ†¬)LJ-sE¤wBÆ\ûàx¼uÁ ìàà)†ý®?w-þÄÛóS*‡Û×wün>òîº佇1©úìIn\@Áû‚#–ÊI£óþmü€Êå^MåQ5Û†ì+fÌÉ)sm%$¥®2AÁ*r¾¯i`ƒÿë÷/Éf×(’eŽpý -’EbŠøÒò÷³órrx¿Ùî…Ía"”æ$çÆ:O[½D—ÏMmî”ó¯åŽŒlº7›ßÔÁ¬„dp‰e=ãvÏA6ä“Ûc4ªÙ ž)ÊÏÓŒMëU—)Å#ãùp¥)~Ø߇gºte© wuÃ^-Ù†œ3m6vxÐ.ú»Cd&ÏÌ ]ˆ -%"뻵 4-ÎøYmº¬<ÄÕàÈVTøEʦl'‡U3ž,3îÔ€K6:á…Á ز0ÒöuXêçùpƒ$ó¶žÅûšR™=?ì¿3OZ0œ‡‹œ$%fÅ5•.," ÅÕIKfL&Ýd«ÒÛ¶ -Ò*Ñz>~|åÄ!á“;Tÿ¼°wc8 -Ÿ(*mBÊp‘77cq²¯„#eµˆ½eñ”æ¦KN84e -þ&mÕõ1Û™P·£SÓ<òÊVµ}÷Zê§@ÞMë€<€¬åË&ûqÝA_ÁXRz½–¬X;w3ª¹BË?#,d?¥®‹#{œhï1»D‰LÄшÔ]Lª0‹G€~8îK‹žo H]¤äë®ü²þ“’Bö¾w€Ö:8Y2Ÿo¸È£Ç}ÜÕV%$Á½ôK”t³15^@$N5k›¿W²àéîJXɺÝh‡ŒqÇ^èð^—ÛÁîHú¸5<ºL~_ÜOùoÝ#ãP÷C(oqZo~„Øq}·wy™søÈ -Îs!V •ãrMLñ<'šP¾ÔŸ@¸WYÒ‘wçÿò¾Òç–Ö–V.wÚº7qËw ¾y2obW}ËÐë£ ~W·Àg¸sbj„ȳBMtèi(\ùê“í&×ÙzzÁð4#C®x@åHCK‚[ÐÚ¤[Þ#Ç©rÖ{°“ÈÕ84S’cmáË“áôÚ¤È*§6MM*sËY$:_Îñ¤C“Ø“›Ó¬ªc¾ìi'õs1z³vØhæ:¬—µ¼ÙùÆLå†Ò–³i]¨W@†–M˶ڧ‰I܉U¡€G‡• -ª'>Ûf4C¸MvtrZnàyTÉZÕ$KËýaGåEìÝ¿krÀ‡~fµŽúî„ÙGé¦éåGa5ÜÓ1ƒÌZ[\
U¶…\Ðר·ü¥ÀæêÛ‚Rèmà>ñº4ëµ÷VyG~ü½m4ø0QÍÏ<5&6,Å*Ô" €öºàÏ`]M$¥¹¼$ûË«>Sîy -i¢§£ !㺲”ÐÙmPžY1áÈU—¬h…øƒß'p¿X²0«Åû×N¿”UVÀzÔvƒÜšýâ„å®ðÕæjæ–Ä9Þr`òٷ…Zî¢ôÃ5†Q¯„ÿÖež&Zç:€âÜ3ùO7î•r+B«(ô]gþÒ¦ÈÑH=Fˆezu±!DÓÆQfl³C%q§Kõ¯ÏÖZ®^®¹Nˆ;–¤ßÀ¨ZÕS¡…ÄñÎ_\‘닼‹óDo®Fø>¦R°ÝÍj‘~É÷¯[÷oìÄæòn?[Œá)m’@©—‘Œ1´bÖ9ÍÂn8-MŠÝšá_jÂåêÀ:BÝ{8J4 4q†ea: ý>F‘-¼ªø¬Oð…àŽóMA1bÒvBŽ0{«i~n"É(ãUeAqò`Z(سRl8ì|–½v:øŸ”‚'Š’^ÄÏlÇ7…·}¡…4íKœç:©ú,X…¥¡bt‡~Wî¥öÕcE«ÃÝS‹†=@å ´Ê×æåóÞ=hj3áRe*ý¸ -Cà ê8ÎÉ]Özá·}6ù\ø*ø1B%[3DŽG -ŸH¡ó5q¤Ã·i±‚”p³×S“š¡¬p£“
¿ EûÙc¡ó,ßlÁ5Á²È¬íŽÏl©-fͿ궘SOpø¼5Sy˃øú¶(û -.3Ÿ–§ï¢Uí,?H-ýÖÒzÆ¥¨>#uQ4ŸÕÃJE,°NN•SONãó‚©;0ãb°^‰Uåª<& ²Nåð I[•Æ«çº´ÉQì\ïåºÞïñ8+ìNH‰\¶¥S‰)½0@ÌJ,yßÙ?3FçÐi®“© -X%Ž…¾‡¸ÝëÄìk|ßâðmbØ|¶®¶LïÄì†Ùû¸ä¡›¿å4žUt§Í-Ú'ÏxñwÓƒhÜ£¬N¦ú€·$:–©<©?æÌ"7{•åQιv – YRÀ¯Téœ'Ob²)7_ùÖÊ$ùÐGDËky—Ý·¢ÉŠ†Ý¡í¸sx¸ìqŽ#cßê©Ê±•góf©õÏ)mé¼³_«´`—¦„j?ùÁ“³Û)„„)F'ÏÔJL%%›«Éw‚¦¤‰¡g¸
¢ÌªBé±¢W>"BYÉ:VS=e=X|ùÁ±¨Þw ö¼Ž”ò°=èäÚD¢z*•(J":“–ÝæÜ\ÒËâ¦òUàñ+º¡îîñ,XbAeL¼Ásg]ÔPŠûÕ!‘I´+SdDÞÀð®¼b–ŠÇêqüÆŽ·ß0º¯¬÷Y®M»®¡J±˜|‡à6RBÃðšÍØøæU÷¹¨E—9Òêÿ„l™– ÅÚÎÔƒ™GÝê™"âX[zq3H³Üé[‹ãq»©¦-ÚÞ,ÈŒ3:I{r¼â:Ü?#©+²÷%g² X6F~“K0'Òöé½0r=ŸËH“¢“éÞiŒúR7a´Böj»å¸’CêOm‹FE „m&V”'TKõœ - -¿*,‰Hç[`öR{w…ÝƸ5¹¾ŠÇŸÉz¼ÃWDgãX°+>BÃ]‹BámƒéIÜ_<©œ+V§UžÌGTÆ‚(ø‡Þv9N{ Óü -Óúš"ýSz×âת 2\Ö´ÝõØŽHhKÌ´¥sšùíio=¶ïÇ·‡¾Ü⪧–AL!¾ëøãt¾tblkMÀé¹7AÑ|e·šáfa$|”?²Å0ËvœÁ×°(Õ‚î)=í†þ ±T1ß<” î³ PÔÚƒÞzçäu™»Óƶ»]÷so›w~ª°äƒ]ÛG…,¡ñó!XúÆ‘ŽÝo-*d~}áóÖö2§Cv¿*ìiëÕÎøˆIXrg]é‡
³Yèîã`"ùÞW×·sÔ¿A^nÒÕùIÖÇZˆ‹ÕúMºpnc1à€ôC…M¯³ùmlU”Ø—XzìS;ÒÁ’½yXžMÈð›’]h|¹ ˆü¬a^6ÕévH£ÊšÈØDuöGÑwdp7™õñàéÖd“ó?¢Ñ>;ô¥:žu ôÍáS>3ÞÒ÷“ÉU·ák&½þ½e|‘ÝÛZuFÒ0
¬±üÕ¸¢ -iÑ$Œ.ÞoŠárò"~ÖùôÕ³zUF•=GÉÝ©‚~éRÜ×h4ÖÀeiâw±ÂžRü/dRÁŒTkÍ#wƒ0&§šžh,Gë±Ãñ°`¿pLsî'úm¯=±çɱe—~–¯#\‡zó,ªÊÃã•ì9»^Bü¹“ÿC=u°cDk þD8œ/'V¶4¥? a¶d»Ø\ñQmÓõ:F,ÇÇÔ²\ñÎ<šr9oâ\è‰ñÓb]Å»¦f;Uˆ#e2S> xV¥˜ÃŽˆ†ê§—jŠP™¸¡.!‘#È÷©voÔ`ÒSº’ûþž}°S -T S!õ\¶ZãÒJ)¡#¢:sÌæÀŽ_îR·è¢#Ô¦Bò -êOqÚô¡9U¤$Ö=6Ððü|Hò‹°s%nS,{¨üˆ&õÊ’—8$²cå’6¿p[Žx7íj£\k@?®ð¶"Ü<4s=3Ña½BÚ_Z¼–âç0h^×IÓ¡gÀDFÌû"O,v}V%t ïæûüH¦¼¯¸Êi¹ò¢Œ -Vº<3ÿiúü`+zв±ƒõ¤âBy¿e5m¨á^[ÄyaS©aŠ€()ÞŸíÆÜ=7w3ÔV³Md& ðÑÈå’½Teöä´þe¢QŽh¬õäØîαÿ”øg´>»6¹”¼g´(>\PóÔkºßo†‘vÝ8‹¥‡HZR¯±˜(rÔs•Ì7R¶s×»LíªøŠæüz!ÁÈ
U[–Õ²69§QŽƒ.[¿’6çÏhüS—Wse®÷±dßbfïyîI‡dÁFbNþ%ÕgÔÆGœ¢,bœrü(šÙÂ%+'‹
Òl£g"îuªrC`Wro¦1€5ÇCÈ…çpû¶šÍÄ]sG¹ÑOnäàrqœìZI=…M}…)äCQÊ~ ê!µŸ¾Dz9·%eÞ!û©ÆÁ”,Ý,>׿¿âb‰lGûrs
RøV0'uV·ƒÔ)É ²;^%!#úㆹå"à÷È“µ‚i4Í p#Öo·¤_Œä%±!¥Óæ`…(`¢ix¸ü={Pìr{[£3þÝɶ*\ÔvµvÈÆe~0{zŠJ"É®Ñc -µÄÀ‹í_~ …U¢÷íýwõœÅ6o¸JÚè¨OÊÿ7E®Õ?ÿm]~»úàD¾?œñŽ¹,à¾$ôƒc2‹™‹ãé¸æß‹M|&ìšp{³×Ó\Ì «e
•Œ¤·Æý:®s”CrªÞr±[G^…_x[´?ÒØæå'®Öܬž¥Škv5‰GlŸë½º>QÄè5ó†…¼~šÒÙŽÝÙvnÂ|*ÑÐaòÝ¥ÉÿÞ^á=tønÚÖ•_ÎïxPðdòùCß•bRæwWbgÖJ?~årοþC¬[BýädƯ{ñ h§úÍwÓ‰Ï'}2~Ñ]Ø6å°âÙŒ9û²&ÜÔîNÖñûö¡î±`luî‹)G2O=ßùEßCùä”Õùù[ -¹ÓÏ™wŸ˜sìÇÆâ@•»¯M·åöMXvºóEÿÿu9~Û¤k²¹¶…꼪?yÉg“º”òÌÜ{ç;OÛ«YŸ$3iÕæ#ÛÏn•8²oväóŽ7¯ã}ËÏëÕýÜá?÷þ¹ësÿ„æÕäÈ©Ù÷pö.Õ`¹fýO©a›K<ÛNîêè=|ˆuÖïD©â¹µßýÝ^Ú(šDªM?T¹CÂxÝ;)ñ´g¥ÙENÓ/Û¾}õ%×ÊÛJ®Q†…É9©‰E%ù¹‰EÙ\ +hjcÿOó9ÿ
™Û›ý÷úÿÊô¯ê™uÔ¾IIJÐÿ{•QÕöï|²rqÿ;Béï$€Ô<Íÿ+¦¼ƒÙþáuð +9êXÚ¨VTPãÐ럱Ë[iôVÊÔ4Ã÷Ñî¹|æø~øîh¬Ç–º7Íüò;¡/9m!úOªNnú£ fƒRäÌsÍï«%¹(.£½)eƒ’7¢™Nvg¸«GÚ +ð±(f°^Ouy=5uv0ˆº;²)$5beA|ãìDR]Ê'lcq‚·¬
q#ζó`Èznª*—äpzGHzl—Žü•ü¡ÙéçXì#œ!qµ¿Í:ƒèÄï”g'EñƒÖ×Zò³ +:Ì•#î8Õ|0x6>Xõ£èRoÂÑXä0ÎEäÖöj¿qè^Ÿ^vJußÌbõK.X) LÚðªSŒÂí¯&ãsÉ,êA0ªB_‰¤–¯ÒóFºÖÕ‚`¥¹òß+sUd˜1‘ÇvÇ\Ü7lIo¶Es°+’3ÜÃBŒ-C›«ÏÒÙþä^q%Õª\‚§¦˜©8c‘Òüø«ï:·×lã4ýrmÆl?fGŠO°ç‡'LýÖºù˜5²Õ°ª+ØÄ2âÛ +l‹²O¿k€uÒ¥²‚ß¡ú¾ÕPo¯ûR&?¼?H¡_xÑdVetÇFx–ü¦ÒbË”ã¯Ø›'Kœ„Nƒh
çs+È#¤>ÝÚZóÿàßóÝÅ—rùJ¿JžÅÖâÀC5׎@«©Î}ú~йPÃ.Ý?þ%ÿ·†Ø…|8V¸+.Äe«iÖtÀ•"¬}g_~ÆI;>aäHb/ÏŒ(o=!!r–M˜”ê>T_×$¼ f~®1Ôtȃ IØQïþ®Ô»JTdc8Cøc q^Wùì +çüˆ“!Ò£àÆ<y[¬‚-êš^ب8gïÄ~½^µæ:~¶¸K‚”ph3»
Œ]ί”…Fö;Çj¶Å.šF`¶×1½UÎ2Òþ’–q× Ë tÞV!c>öäô—Ií¾_F h[ÄyCˆ%‰Šù©„MË/ß9û}õͦC¢ØFñõBmÇÇ)ZÆkCeƒÝq<úêšFŠÖût¶G}’éáÊ7DtKÅpSÆsV!+%°¤'þ}n€þ-ò +Y¸_Þº‹’¶Vé0j’æ’w™ýˆ½Ý³˜ +DÄmXÆàÁ–â-fºêgsêÈžG‡æh5˜CPa}f'£³™²§ÛaÎ +Wá*os¦ ƒ¸È)†V²…úaKVk$×FhÌJÆ-‹ä=Á–¤†(ñFÝRe¼Î— ›6Α38î¦ãÎwò.X0m¢;h¾³µ‡“V\#ߥÑÄKþ!éWƈô +‚À@ŸCðPdUÒa"Üd+ŽBCÍ¥×£°œ•j$öuݵA2âIþЦÉßÇB•E3¢³’»Áp=â.Nêþ¡U_»iÛ¢ñ‰&^e=ìü:raó™”÷„ºCñ‡md-ÛÙ£MšOR\ºÏ1MGMe˜×ÅãNäè1¶ñ»Òu‘èËçOœuZ›°Y†ôRÚ|pµÖl
¦»V}ðuX²Kþ5‹S +:SRK"‚°óhy{ +îõUòÐëƒ\‘7±ò½U<r¬I÷qo…‡Û‹ ö®éÂõs.„™¯ÕÝ딟Ào2XÉOzG·6vï‘ææDiðŠ‘ÓAûí6¼ÑîvMœ2fÞeYÈ_åÁ½y/W)v¡ð·™¹BÜ”/“<#»ò3YÈæÂ3eX’¹ßÓ!žÓ7¿¨Ýp´ä"ÏsU1ìö¯b晜$B'Lÿ”ˆxKEÊÒ«š<ÈÇ×Õ&k…ˆnç7½¬Ë§¹M³íÏñˆõSšÐÝ‚wª¯Áð¼úIƒ>ÐÀ ’ +J¸õÂÀL§°“‹YðY¼£°¤yjj·:Ÿè„¯÷òí ® žVœ*¯|I©Ì1ä@ª@iã¼|錽~°ùJ8ê„_…¾jï‹Ãç"Z2½8bÁ¬s¡+ø
øâ]ò{ ë9ŸC[Êú—‹™G¯ßŸRÑŸª¥0ƒ»Ö^üS~¥‡õA,ÎñŪNýï1ƒc,†•$ø°ß0,€Yî9¢²ÂË©Ši"òÁÐêц™Eœ«|+£þÍÚ1dŒ´²æ&&½’eÎc6Ñûh!ñ*ßð™Š'ü†=Tõy§äl†YÌ&‹I¬=‚ýpC$‹ëF‡}1rÍê¶P{IøpŽ::± LÖRuˆa¶Î’”"ê 9ÎS†"‰WÓg¨ö…ù#×qQ²]Àëlæì|â!c{ÊÒ2é7:‡Æüs +3,‹_Œ~\•‰4PK8n¡äÚm¦'†‘¯î¶°•]–\x-±pEmËÒ:.óóLA´“炳·Ð†Ö59–5`ƒuY…ÙOiöè¿ÔêjNã®ÄBÅu:]s#F›¢ò=£Ó‰7/¹”ÞFÇ´§:‚ OŸãÁ–B‡JÞºW1øaE%zÁ<}ˆ´u#i½ÂÙÚ˜Å,NžA:<£¦çð†üÛuoàÂ=‰C:•ÀîŒ"7«ÚnÚß²ötg«ÇÅ<«¹¶]DöýÞCðrWü¦ŒË¨*cµ _oVÅ’i¹n™`x¬ì
’OÊî©¿mO*RRßÑ-Ãÿ†B"TêQ‘súI”ˆÕáÔùéžåìûå,3oÕ3V9O4&aÅÉN›YzüÐw‹¨õåG^ó“^Zå0
Ú§õ#²VÑêz.úüõ»JŽUvÂh®P|ëæeN•Ÿûj6õ.)Ûwsqœ<¤o&w†a£Q´éUâÈcË%õ[§ƒWZEáÝõç2[â³Êqd¥z÷¿&³äëº6{Çtø’_}ðÒ¾,6¬#¸ÖjMÉÍhk6|ýEJÜú +ùÖ6ëlbÔLì4£˜_#n+ÄÒÝðv‚qŽ˜}°ü]ãà +åŒÛÀ"A_&’ÞQ+Ö#?vþú¥P+ +ÊS2$©ÁÚþ¼ÌR}XŸ¶g<4¶üz7›‰ÿ¸!Öë®í(!\ø ãÅpÀÿiçžm.¢EÔ*®…ð^aMò]bçÑø*ZìIe–l““mœ~‘á]"n¡ñ§úƒ®õI‹™½a/#Yˬ\‰$¥rŸ¿E18St~P¹R˜_ÂçŒGþö»Ã:°ù}‡ZP¼>yY*ûf¶á-Žxu áìñýÌÔE"BW—í‰âã4÷ ¹Æ™zöX²mÐç¦íMþ¥<%ÒÇœí0ðø%AR/e¶x4„»T)ª,šíýŒtUˆËHƒ:YZÅ¥¡÷âîC©Ô(Â_åTˆ¢,¡Ýp¬cù¯½ÔÝkDµ=º–š +cž†äG¡¼ð<%lyAôPjº<TwåLH¾®yJ€ìRci8>üÊEÍÊm¿b‹öi{çU8ÀXŽ…›'S‰n¼¶GPËœˆÜ7º6‰ùÆƘ]ÎÍ¥8êêýÔ¡Qí[ýeñïÄ_1´6Xs߈À÷Òñ×” ¨Ï)\W}yÀ±C÷¤G‘5s¶}}XìN¿µgnÞËÎÒ´°‡-œ%1ürd0ÞÇ|ãÀx s¯–Û¼_>U‘E–óéüóCA©xbPg +Ú|÷xêQ"î^ì*µÓÁì[ƒt9Дz%r1K‚6Ž…S;žžö±W¬ˆýösÙ +JÛ¾YV~&Pä¹ýå‘ÂìÕ´xˆÎtEQ§œîÕ¬/’ +Zš +üz±±§yÌÙ¦†–óûØgz;þµwü|[Ž§»,›¢³¹é¯f|Žõm¡¸øëuEÖîjn‰.>P²ê˜«O*beåc/Ï”càÃqm/º99åUÆ œ¾¤¦û‘ëi³=]§ìèH_îàê)˜v‚¨£q.5ˉ+ðö–fÛ˦(ƒãsþ «$šÊ6›¯.¾“KÂØ0"5„ÑÓ®ü}gc³á²ÄÈ(«áÓÿÂ^Êq*‘ü¡ËúK…¤±7È8œíY_ü\^Û'§ñkZ»£ ¿§“Œ×hÛaò±X(Æ‘––²SâÈmÎC+% ñwü~“ß9Ï7(ï[Úô–sÒ;]ä ªu÷W¦o9UoŒ©rˆhCô‹ƒbiÅ×s8mÃHxž#Ö[ÿÚaƒ™z +ýÁŸÄ×omé拺/
íràJ´1N hÜ4L×жKú]É{ìb_ÙpŠhjR„Ç>ͪg£>òÅßç”s²Ä¹7ÙÞ½ÖSú/IªýsJ‚”ÍøP.=v
!
;ݽÚøër?9‡REá`a þàQfÞ÷÷¨T§ûÃ'1ßYÜ'š©ûv?%Ži.xÓ×ì® ok2¹Š#*Vã–ÊO\™Ñø›‚ùõÝjÿøýLc²³ %^ñrÓ9“lÉsŸr1œmê?âÒÁ_àqo8¼, +fÊP<ãö®•n|~š¸¯|b„'h®ÅI;èËL +}ºFÜâlóž¼Ò
Œz-FÞ÷ûðˆâ>µÙ^é°íJmD&k…L]úÀïˆÔÃgßF’“O“"‰fY·?೶~;¶ZÍK1énÑ X˜ED +ê‹#DgLÛ‰ST[…DZȡïeÿN”‚~§/ìàuÍ?°aŒñên#2ÎDÝl>•Ù ÖLÏ|¦ìõH§_*ßЩdªîL#•z8\
úÿø‘µx¼Ÿºwl{Êì-êc³Û’Å…Yybèaç;›?S_D¡ö')Àߣ²mÍKy¦Ì½xÇþ®˜|V X¹GÓ8ÏaŒ×©è¦Æ6áv/vE¡jB™l*â©¡l¤¸BŠs»ø¾icí9 +ã‰b›…GÊ¡•¯fÄò#¿ÿbÆ©ÒÒ4¯+.ë(¤Ã‰„¨*…Ã*©0iL¿—B*èÿ‡¦%êÚOEˆ£‰}uƒÄTÚ|ÃÞ`U™øKô=îÈX+…o$¡~ ò° +¢®®õøóe=ñ´jgL`A#¦L©.6‰ +V‘œ§›Ü€ÎØDtoî㨋¨§©iiKCÊÕf;nn¿¾·UVi†Q£Ôô'r"ÁpÅ£¶<ÐSj4XÕX}\Bÿ=…òò1õ'Ü4>S˜R/êîm@Í,PÖ“`ä^T*m8FYtQ³†²Ì“O=À“ÌàÇ®œm;÷€ÁE@œ_ÛWpmlã¨UôÆ¢Õµ@éYÖÊŒø?¥ó¿¯¡S>+iÞ”X=bz!qÄK b^A¬Êqb„¬A¼‰jb¦—0?8{
v Ÿ¦ÍÖ +[Hz¶…Œ;Ö¼Ð\¿WÆ0ÎQeq9IÎÉè5?°0x?Dveav +¥.åÞ÷{O³t'ÜËèȨW‚)Z0öàámn›Xƒ}´5Ò:cùæuãæ ä£sjJÇÍ +>6Âäý1˜žáô™œ"ÞíòcÕÌPŒ1nKùÄs~⧵Xâ}çÍ®ø‰¢˜ºQ&Ñ•ý˜ƒÊl ئt¬!\Mo‡úÇ õ^wü}±áDcÄÔÝݾ£áþuG©n\¾¸ÈÝ7Àcå¬U‚Y–ƒ¼eÅjx_ûÏgu¼¤jO‘œ+Ø#rtŒîPdºC¤Ö–ï%DT,fî€é‹¸ˆIØžÇÓɾ2•–Ž¨
‹Ô(@¹ˆÛëìøïy<ýÄKÑ;e«T +·Ã΋™ù&¨»Ý‰Ÿ¸ËCÝqH·DéÅ’ÊRsfV+Ù«Ö©q>ÁK@Bª@¥¥¦ƒ4ñ\¡ì©3•°×æ¯ÝÎD$x¡VnèŒø +wüÛù ìòÏÏ^†ˆ~‚ÌÁ†ŒŒr +—À÷à(MO篱ô¡Ñ†O®iwö°“Ÿ:‹³&çÏEîÆ3”‹¾ª±þ=î¾B±—Ð7<”¬ˆ–±Æދж©/,³¥Cá©NÓÕ
ŒýNJ8ÕÊì_;hCÎ1í't + ÆÌÌPÌ%Eȗу±¹ö¬éóÓ‚y5Üí¨ŸuJ+dY,œ¥IF½õì<Ä榵℣¬Z^`Û[0dìŠ?È‘ØG¾YWM,šk¦SÕ½vν!&ŽççýØ_)>àýÑþ~…½A‚
=½è®îi»ü1~ €o«ïdè’®b5TÚ-ÀÖZö‘‘_‡Ý;ÞªqÎÅ+yþÍ´¢·ÿê0bHë&M˜¢¿…µ.Thø¢È&òAÕç{×{§úaô2NˆJh*;Æ"‘ŒGŽÚâê@¸+ŒênÄQáâ8fÙýô4¦+}Mm1EK‹Ú±½ü]'þÔ>*®[¼)Z4b:cÊ@cK“}³ì½ƒ
µ›»ßñÀ_aÓûEöÆ¢]=ÕíÝzŒp¼FþéÝ®~L˜bîâ¯ü'#.}›±
?ŸÕG*N¥nyµ¥.ÖGqý=ÌŠ´UšÞnIò΀v$()LãiºÓk¡°¯”ºJ
`Ü´)9ú<`ú¸ïø‰D.^¥”U2®£6ôPZiìgSŒž6%É/ÔÁýQŽZŠ…‚µÇnûdV«×ÓEý¤¥^·÷‰Æ%º¶?‚7oj¢Å·ú$½p‡_¨pr„D ÔNtêànû‚€—7ëï.°PéX¶8µªõB-Ôྲྀӡ¥•…X~òÓMj¿pÐÑ_¹~©üV^ýõ40Œr[ëAÆWr!læªÓéÈßñ×ï%ÏmÒE›˜âú_¬÷Ö0?èÂ[j0&„gävüUŸÒ[äa³øËÊi¹ê¨\1|Ÿz¹Ùš"€EåtKÄ‚„êEq:äcĺáWÖ˜Òòöoê%vfvÁKÐ:Gøß
¶RšÃáj‰
沑žÄÎ éw£s/~NÿŽË®‰k÷:Ù-VýMˆã–´¬#L7@~á¥wâ¶;Tinn#Sxhd[¤q%lXÒçû6•Â»„ +3 5\'òmŽ9Å<k„ñ€<½ÐÿìÚ³9ý“Æý0%«3"TŠà®#ýØ
g?¡N›Cà?8µ¼T¥s¹º›²Áíêp1d™º\šÁ‹h)ˆ”ìçì-ÕÉ/T¸ ãÊò5¿c9e_ÕåúåðšCpßKª]?剛c9oã4µJTÍÓw%+¬nÈ™Kü¿þ%*8¬4Uº,¸>•¥IŽYŽ3¬‡Â³Á³ôGΰê¹e«½oÑÕkƒSXøÈ@97D·m
ãwÜÙ§”ÐDXéN +~¾óÒ–²˜´iá°Ž~NÄ÷Ä‚u.ØMüLP1T’䟹éWýÀ9ÈŸ€»`°©77«âè`O„ þûöQ‡5ƒ`’òõ™ö.á\àµL÷ðò²ž¶-,S5ˆßiW¸æêžQ«ŽF-X‘ßÀâûEâ"À#+bÝñ+E9:}>šŠ? +Q;G?
ħذôð§GÏ\Ó—oÄ‹,I6š€†eC"ñ ý.B¦ÛB]²‚êêÉž’¡RH`VboÀhM}§t5ÁÁ²ù†óëµVÒ˜K!ª[Z™Ìc\ƒ»˜~ÎSûeñÉjOÕˆÃ47û;$WWú®p{‡ +ï\Øã‘&¬_Å@æôzØBÝ)„a¢ZJ."˜IKK]]R£`Æ¢eBó‰åT¶}>³pàåê¹éò§KNN…kÌWR’ãwîŒHì)$_z¨{þc¢CU¼€{)w£9É•öE9KêŠYtçVN“èžp%ûè- Ú+¼Ô§ã¬Œ_ ëñ[1qÑÇ@ÑYÍeÃÞxq{LUå½òF2$Êè +—ëÕÔç–Œ»÷J LÒg0¡Šªb2„Éÿ‘q˜–3O)1‚¯Ë|§Üg¾®!¡¥ +KVý¼mU[¥rya¬CùBŽ´Xo2‰"B…!ÛØ’9VöY‹µ7':ÊOöC„U±˜ŒK¡?I¶ÝX¿Ó2lÇœ¬©önÉ>ZÙ‰N±î~O‰5+ª@ýà˜¿5Ú·_&q( +«zg:$ ŽÕ¼±BQ0؃땶´Q$òh¸röb^%Ö¤±R®O²•cÓøe÷Ìñ‘\<,+@º]! †´§ùLÓ>Vþ.½ 4Æ$TQ~9QHLt®N%øø¤žÉùæ[ ?†#Ïð¼Z“h~Yº +£ÿNx"5ÊAǹjꀸ¹?i +Çjø-Å~…Ÿaó¥èáE¨šnµéøôξÝ4I°åúnpÙ1v1¬«¨Ì©¼zp¡‘ð¨53c=2f2¾b¾J"«AÂ5…øœýÆ/Ü;D(#?iÎâ²u +/ÏÀ2ãë;‡êF·Ì€pmÞ‘¡L€AV\dÐË‘b@º:’]ì¹:Q©,¿e1’f—"4T9ˆ§>ý×+¨‘Ê…¦0B#G³íźـ£eƉ‘F+¨_ÁŠ\ÖH-ùŠ‘™è{3…UѳyÝ«h ‡”Vq¹Œm|´ÑÍñ][¾ÙÁrÜgò’ËECåÆmÒ饑ÅM<ÔÕ³ñ2²z!Fi\NBÄ'¿q+—ŸÏ¯û|À¥ÛŒÑdtZíj¾}}rÑY“H¥XçKÚ]yÆ ²»§Z±ÎG¯éóBCò™+ŸÉ‰M\™¿Zú*ñ¹™Á\ ŽÊk’¬ +"¥ÚV-ì2.'|Ðj?§æZR]±¬6öI¾cuŒ›žÃ$FÓYK¥=ïêpÁ}’dDÚ Rà>
XSŽ[æŠHï„Œ¹öÀñxë‚ØÁÁ;Sû]î 9Zü‰·ç§T¶¯ïøÝ|äÝ…uÉ{cRõܸٓ€‚÷G,•“FçýÛø•Ë#¼šÊ£j&*¶
ÙW̘“SæÚJHJ]e‚‚Uä|_Ó$Àÿ×ï_’Í®Q$!Êáú$‹Äñ¥åïgç5ääð~³Ý›ÃD(ÍIÎuž¶z‰.Ÿ›ÚÜ)!ç_Ë+Ùto6¿©ƒY +ÈàËzÆ힃lÈ'·ÇhT³A<5(R•Ÿ§›*Ö«.SŠGÆóáJSü°¿Ït/èÊRAïꆽZ²
9g&Úl<ìð ]ôw‡ÈLž™º(!JDÖw[khZœñ³ ÛtYyˆªÁ‘¨ð‹”MÙN«f6<YfÜ©—ltÂ/ +ƒ°ea6¤íë°ÔÏóáIæm=‹÷=þ4¥2{~Ø~gž´`839IJ$ÌŠk*]XD,Š«“–̘L0ºÉV¥·m¤U¢õ|ü<øʉCÂ'w¨þyaïÆp„>QTÚ„”á"onÆâd_ GÊ,j{Ëâ)ÍM—œph ËüMÚª‡k[c¶31 nG§¦yä ”#¬jûîµÔO¼›Ö=4x +Ü"÷€,ºïy ,½M +ÍÏi£ÁK¿ADÅ
"(æñÙËïOÓZp‰L3j2R¾Ç[çg\þÉÜFœçB¬@+Ç嚘ây$N4¡|©?p-®²>¤#ïÎÿå}¥Ï--\î´uoâ–ï@|ód ÞÄ®0ú–¡×GAü®nÏpçÄÔ‘g…šèÐÓP¸ZóÕ'ÛM '®³õô‚áiF†\[ñ€Ê‘†– · µI·¼GŽSå¬÷`'‘«qh¦$ÇÚÂ!–'Â;èµI‘U$NmššTæ–³Ht¾>œãI‡&±'7¦YUÇ|ÙÓ*N>êçbôf;í°ÑÌuX/3jy/²ó™Ê
¥-gÓºP¯€-›–mµO“¸«B5*TO|¶Íh†p›ìèä´ÜÀó¨’7 ´ªI––'úÃŽÊ‹Ø»×ä€ý:Íjõ!Ü ³ÒMÓËÂj¸§c™µ¶¸ªl¹ ¯QoùJÍÕ·¥ÐÛÀ}âuiÖ/j-îòŽüø{Ûh;ñ+`¢šŸykLlXŠU¨E. +ñ¿Oà~±daV‹÷
®~)«¬€õ¨í7¸5ûÅ Ë]á«ÍÕÌ-‰s¼åÀ†e³oµÜEé‡k£>^ ÿË*<M2´Îu +„º÷ +6p”hþ*hâËÂt@û!|Œ"[xUñYŸ4þàÁß1盂bĤí„aöVÓüÜD’ 4PÆ«Ê‚âäÁ´P°g¥Ø qØù,{ítð?)/N%¼ˆŸÙŽo +oûBiÚ—8ÏuRõY° +K[[CÅèý®ÜKí«ÇŠV‡»§
{€Êh•¯ÍËç½{ÐÔfÂ'¤ÊTúq†ÀAÕqœ“»¬õ†Coûlò¹ðUð5þb„J¶fˆþ +ó)f.Æš‰Íµ‘,T6ã>‘BækâH‡oÓb)áf¯§&5C
XáF'~A‹ö
²ÇBæY¾?Ø‚k‚e‘YÛŸÙR[Ì$šÕm1§ž,àðyk¦ò–ñ%ômQö\f>-NßE«ÚY~Zú¥õŒKQ}Fê¢h>«7†•ŠX`œ*§žœÆçSw`ÆÅ`½=ªÊUyL@dÊáA’¶*WÏui“£Ø'¸ÞË<t½ßã
pVعlK§Sza€˜•Xò.¾³~fŒÎ¡;Ò\7&…)R%°J}!p»×‰Ù× ø<¾Å5àÛÄ°ùl]m™Þ‰5Ø
³÷qÉC7Ë):i<«èN1š[´Nžñâï¦Ñ¸?FY#œ6LõoI +t,SyR0Ì™Enö*Ë?¢œsí +A,A²0¤€_©&Ò9OžÄ Ze3Rn¾ò•Iò¡ˆ–×ò.»oE)’
»CÛqæðpØãGƾ9ÔS•c+ÏæÍRëŸ'RÚÒyg¿ViÁ.M Õ~òƒ'g·S SŒNž©)”˜JJ6W“ï MICÏpD
˜U…ÒcE¯|D„²’u¬¦zÊz°øòƒcP½ïìy)åa{Ðɵ‰DõT*Q”Dt&-»Íÿ¸¹¤—ÅM7ä«ÁãWtCÝÝãY2°Ä‚:˘x%‚çκ¨¡÷«C";“hW¦Èˆ¼á]yÅ,9þÔãø)o¿at_Y)î³\›v]C•b1ùÁm¤„†;á5›±ñÍ«îsQ‹.r¤[Õÿ Ù2-A‹µ©3[-ŽºÕ3D0ı¶ôâff¹Ó·Çãv1RMZ´½Ygt’öäxÅt¸FRWdïKÎd°lŒü&&—.`N¤íÓ{a.äz>—‘&E'Ó½Óõ¥nÂh „ìÕ>vËq%‡ÔŸÚŠ@ ÛL¬(O¨–ê9 +»
pkr}?“õx‡+®ˆÎƱ`W|„†)º…ÂÛÓ“¸¿xR?8;W¬N«<™¨ŒPð½írœö@§ù¦!õ5Eú§ôþ®Å¯UAe¸¬i»ë±? Ж˜iKç4óÛÓÞ:{lßo}¹ÅUO-ƒ˜B|×;ðÆé|éÄØÖš€Óso‚¢ùÊn5ÃÍÂH&ø(d‹a0–í8‚¯aQªÝSzÚ
ýAb5¨b8¾y(ÜgA ¨µ½õÎÉë22w§mw»îçÞ{ß6ïüTaÉ»¶ +YB%âçC°ô#ºßZTÈüúÂçíeN‡ì~UØÓÖ«ñ“°&äκÒf³2Ð;ÜÇ/ÀDò½¯®o稃¼Ü¤«ó“¬µ«ô›&táÜÇbÀé‡ +›2^góÛت(±!.±ô"ZÙ§v¤ƒ%{%ò°<›á7%»ÐørA4ùYülªÓ3ìF•5‘±‰êì¢ïÈàn2ëãÁÓÉ&çD£}vèKu<ë@/è›Ã§"|f¼¥ï'“ªnÃ×Lzý{Ëø"»·µêŒ¤a@Xcù«pEÒ¢I]†=ßÃåäEü¬óé«gõªŒ*{Ž’»:R$üÒ¥¸¯Ñh¬;ËÒÄïb;„=¥,ø_0Ȥ:ƒ©ÖšGîaLN5=ÑXŽ†W?b‡ãaÁ~á˜æÜOôÛ_{bÏ“cË.ü,_G¸õæYT•‡Ç+Ù rv½„øs'ÿ#†zê`LjÖü‰p83^ O¬liJ4ÂlÉv±¹â£ZÛ¦ëuŒXŽ©e¹â/x4årÞĹÐã§[źŠ/vMÍvªGÊd¦|&@ñ¬J0‡[#ÕO/Õ&¡2[qC?6\B"GïRí:Þ¨ÿÀ¤§t%÷ý<û`§ +†ô†Diôc\2°> ›!-O––0LÓôuõF¤]Äí;ÿ2:º<O®©_¤¿°¾`1üñhá‹—gGHÉEV¡r-Õ@,£1,…²Úqn ôD’ž¤ñÂç°Ù>c7“áÖn–<àƒÎ_’‘ò›p<m¨@§Bê¹lµÆ¥•RBGDuæ˜Í¿Ü¥nÑEG¨M…ä>tý:g˜¢qɤ(²µ0£Š#ŸÈïß”ºXøT˜bâ„N>RŽ™*0dIœ]2ÇHƒûdhÉ/ÔÅãôŠpÓ¸Q +•iÊ_-ùÜž\œ¿mYÞŸâ…ž{¯ë=ÙÈ°ù€!Ø– ¢eħ‡AœˆÐ÷:
ä…ØÂó.¨6g¤ ‹,^>êÀïõ¹~ou¹Ï<Ønb—7¢EºEfB}dQ†Ç=Ë>7¡ ¤ä®>WE†¡KI³°Úóã‰<°²lÐÔŸâ´éCsªHH¬{l áùùäaçJܦXö"PùMê•%".qHdÆÊ%m~?à¶"ñnÚÕF¹Ö€~\álD¸yhæzf¢Ãz…´¿´x-Å)Îaм®“¦CÏ€‰Œ˜÷E ŸXìú +¬Jè0ÞÍ÷ù‘Ly_q•+ÒråE' +›ú +3Rȇ¢”ýÔCj?} ˆ.ôrnKʼCZ(ö3Rƒ)Y"ºY|®ÅÅÙŽöåæ¤&ð`Nê¬n¨S’Aew¼JB<Fô'Æ
sËEÀï‘'k?ÓhšA/àF¬ßnI¿ÉKbCJ§ÍÁ +QÀDÓðpù{ö Øåö¶Fgü»“l3T¸!-¨íj+ì&8Ëü`öô•$&D’]£Çj‰Û¿ü@ +«DïÛûïê8‹mÞp•´ÑQž”ÿoŠ\ªþÛºüvõÁ‰|8ã?sYÀ}IèÇd3ÇÓqÍ¿›øLØ5áöf¯§¹˜WË*Ioûu\ç(‡äT½åb·Ž¼ +¿ð¶8h¤±ÍËO\¹Y=J×ìjØ>=Ö{u}¢ˆÑkæ
y9ü4¥-²»²íÜþ"„ùT¢¡Ãä»K“ÿ½½Â{èðÝ´+¿œßñ. àÉäó‡¾+ÅZ¥Ìï>®Äά•~üÊåœý‡2X·„úÉÉ_÷âAÑNõ›
Oúd"ü¢»°mÊaųs'ödM¸©Ý¬ã÷íCÝcÁØêÜSŽd&žz¾ó‹¾‡òÉ)ÿªóó·r§Ÿ3ï>1çØ5ŽÅ*w_›nËí›°2ìtç‹þþërü¶I×dsmÕyT;ò’Ï&u)噸÷Î-v>"Ÿ¶W³>IfÒªÍG¶ŸÝ*qdßìÈço^Çû–Ÿ×;«û¹Ãîýs×çþÍ«É‘S9²ïáì]ªÁrÍúŸRÃ6—xZ·ÜÕÑ{øë¬ß‰RÅsk¿ûº½´Q4‰T›~¨r‡„ñºwRâiÏ6J³‹<œ¦_¶}ûêK®•·•(\£’sR‹Jòs‹²¹ +Kendstream endobj 1082 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 35 /LastChar 90 -/Widths 2938 0 R -/BaseFont /XRYPRB+URWPalladioL-Roma-Slant_167 +/Widths 2956 0 R +/BaseFont /ZTJGFE+URWPalladioL-Roma-Slant_167 /FontDescriptor 1080 0 R >> endobj 1080 0 obj << /Ascent 715 /CapHeight 680 /Descent -282 -/FontName /XRYPRB+URWPalladioL-Roma-Slant_167 +/FontName /ZTJGFE+URWPalladioL-Roma-Slant_167 /ItalicAngle -9 /StemV 84 /XHeight 469 @@ -15128,42 +15305,42 @@ endobj /CharSet (/numbersign/parenleft/parenright/comma/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/X/Y/Z) /FontFile 1081 0 R >> endobj -2938 0 obj +2956 0 obj [500 0 0 0 0 333 333 0 0 250 333 250 0 500 500 500 500 500 500 500 500 500 500 0 0 0 0 0 0 0 778 611 709 774 611 556 763 832 337 333 726 611 946 831 786 604 786 668 525 613 778 722 0 667 667 667 ] endobj 1019 0 obj << /Length1 862 /Length2 1251 /Length3 532 -/Length 1860 +/Length 1861 /Filter /FlateDecode >> stream xÚíUkTgnõJÀ+Å€€¸ -æ2%X4•;*(¦2$H20I0@(PÁ Bå"Pi¥´^€–‹ÁŠ‚g¹iL@°rÕtÐc—þÜýµggþÌû<Ï÷~Ï<ïwÎgaæåKpæ A°+"’@"H\Ü}‚d -¸#-—úÁKæÜa_*\Î2%€Ïv`€ -Ú$6e`öÂÔ$ìAHAXæð 2ÃPˆ
`îaÛ·ðÒÐßãö¡ï,`‡Š˜·ÿ98‘E( -‹$‹g‹ÿ]Íåc#ƒaÌÆõt!lÇÄܪ¤ò˜/Îßùá#’ÎËÖ -Mv“MLŸsÌ—zÎÛ,XR2R¤ºzBU~Év<¥^1J÷HûjªXÿâÕÔÂ2ÿÌ8j#±Û™*_õÚÆr„©?p:ÿ•1½}töÛ-[{¦¶Ä¶ê㨇Î7Ìté®·ö9im¾‘ÖsA»ÿÃ
øÈþ'›'jbsolgß¾ïÆô‹]S-•\'Ý )hæ1ŽÅP*m¼‡›ï©UG
9sk=ÓdOMSÌ“-ž·ø–ɦScŒ£»¦¿›2š^4ýµ§®Ñ”q½ÿŽ"ñ†Š”·»ÁÔͤõ‘-ïÕÆVù'ÁäÛ—†kŒÚBïÿ¥L~£ÖÞXó¢ -ͯÎ1Ýõ4*üûºí³ûñéLj{«N|VR§Ðíª3 -’²xQ“)çþaþ2và÷‰ï׆~Š¶×BníÉšŽv7:YÊ{®ò¬u¬*55#ö8ŒÑ»C"pN¨<±Mµê)þ¦m`Ç¡=(¦á±™GÂGͼ´ô=ËäWuãã…žÛ&Ê|FWèxhö?+”S¢ê§^éઞÍÛvM|¬{9ßgøÔ¶Ÿ4kiËwÕû8¦ªöox“qày;Ã0ç“пéÏøk^…çÎÒW{Ê{—qæ5È~þþ—Á’‰ðµy×n)®)ˆ®„–ñ–¾[…öTåчªë7F¥õ7-å$ÕmÊþø3™œ€’\¿‹?j<#ÙWÔV+ºkç’ÄóaÐ=eå§ô9”ûÌu¬Üq¢¢$€þ¹ïž_c©îIç?Ez“ÐõB«¶EfRêǨLžœ*Öiy³Ù+³mÐsÀ@>kcÍ T’îi" -•‰e1œö:;4ö ´ûX–Vœ—¿:°'§œûù?|pÿoð?Ñ +æ2@ Š,Ë%€ +ŠT†dr$“T`E*T.•VJëX`¹¬(xÖˆP›FÁ+W]Aw +h2ꀳ +1à‹a4fq °ù, sù"iÁCÄA +|¨Òp/Ëé”>zÅ(Ý3í«©bý‹WSËü3ã¨Än_|dBª|Õkˆ"üÀéüoTÆ´FôÑÙo·lí™ÚÛªwŽ¦:ß0;Ð¥»ÞÚ礵ùF‡žÚýnÀGö?éØ<Q›{c;küö}w/vKµTrœuƒ§ ™Ç¸@N„Riã=ìÒ|O:jÈž[ë•Ö {jšbžlñ¼Å·L6cýÛ0müÝ”Ñô¢é¯½tp¦ôëýw‰7T¤Œ¸Ý
¦î&ly¯6¶ÚxÊ?á’lW\®1jy¼ÿ—J0ùZ{ciÌ‹2(4¿:Çt×Ó¨ðïë¶Ïîǧ#~Yuúà³’:…nW¨¿ã^kÆËÏvTŠ‡ôꌼ†wb”„³kﺳ»äQœð=£ï¾ö¬Æ¥{An¯µÒ›‡Ž_£è˜Ë;L,¿:ðŠ±²lµ¸Øjƒ¸øRÜhï(Xy³£| K?œÃ˜`¤äp¯ÅÃ8rœc¥uÓzyAwõY¹¢WÏT»O•e 4“WH‚øœ3º3iéÌ@Ooÿ/µb7å&z>×hz_”?+EÎnÝ?ê§Ibœhy90n3)óÕ¥]ê,ñO6¶Œ„/Õ;ÛMçk»”]«f(‘춛tÿ‹û:yIY¼¨É”sÿ0;ðûÄ÷ëC?E[Žk!·ödMÇ{,å=WyÕ:U•šš{Ç»C"pΨ<±Mµê)þ¦mPÇ¡=(¦á±™GÂG͘Zú^eò+NºññB
Ï}e>£+t<4ûŸÊ)Q‹ õSf:¸ªgó¶]ë^Î÷>µí'
ÅZÚò]õ>vЃ©ªýÞdxÞN7Ìù$ôoú3þšWá¹sG†4ÇÕ^ò^Åe܇y
²„¿ÿe°d"|mÞµ[Šk +¢¡e¼¥ïV¡=Uyôá„êzÅQiýM'K9Iu›²?þL&; $×ïâ¯HÖµÕãÊƆîÚ¹ä ñ|tOYù)må<s+wš¨( }î»ç×Xª„sÒåÅßO‘Þ$t½Ðªm‘™”úÑ+“'§ŠuZÞlff¶
z
Ègm¬é”ªUÒ=M ÕqgŸñ¶]œÙ¿É›×Œù)¢õ|¸
®8ëõžþ|·içk^Þ³ãZÑÉŠ¡B:>aMÀ}õ +µæ´Ií¾"°|”X[záWϪ䤹ˆMyƒ×ÊwÈe4ù6?t8¾n¦ñU‚•úÛŒJ¦ùJÓ¢Þùâ +€¾e¨H“ßÿI²µ´ß#Ü0Bc^_ßÎìŸí”f×çÄg{*®D‘3ž” Eþ-vzeø¢îèËâ®up”Iku}࿦8í\3}÷œRW uW¯ˆÖî5Ò¿ÛáV:¢ß2_ÃÞÙ|{Ä9dÐ嚎4XЪýó¼üPc H8ä—›¦=m·.1ËNëÊßjh¼&Ëd7‰#À‡5ÎáŸPÎlö°›Ì¢¹ä5f•O¸ÑçÍ~ü&êˆz8`uøÈ/½Í†êÚÚ#§;:“übÜÍgÛdÉgT“ë··uNìÈòzÌ8Ù»—î~F«oV¡³2±,†ÝRg‡Æ”vËòÑê‘óòWõä”s>Ð#ÿ‡îÿ
þ'`W7„J!„†âþüãþVendstream endobj 1020 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2939 0 R +/Encoding 2957 0 R /FirstChar 13 /LastChar 110 -/Widths 2940 0 R -/BaseFont /XNQLKI+CMSY10 +/Widths 2958 0 R +/BaseFont /CSLCJR+CMSY10 /FontDescriptor 1018 0 R >> endobj 1018 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 -/FontName /XNQLKI+CMSY10 +/FontName /CSLCJR+CMSY10 /ItalicAngle -14.035 /StemV 85 /XHeight 431 @@ -15172,537 +15349,515 @@ endobj /CharSet (/circlecopyrt/bullet/braceleft/braceright/bar/backslash) /FontFile 1019 0 R >> endobj -2940 0 obj +2958 0 obj [1000 0 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 0 0 278 0 0 0 500 ] endobj -2939 0 obj << +2957 0 obj << /Type /Encoding /Differences [ 0 /.notdef 13/circlecopyrt 14/.notdef 15/bullet 16/.notdef 102/braceleft/braceright 104/.notdef 106/bar 107/.notdef 110/backslash 111/.notdef] >> endobj 996 0 obj << /Length1 1616 -/Length2 25435 +/Length2 25525 /Length3 532 -/Length 26323 +/Length 26426 /Filter /FlateDecode >> stream -xÚ¬ºc”¤]°%\]î²,Û¶mÛvuÙ¶mÛ¶»lW—mÛúú}ïܹ³î̯ùæG®õœˆ8;vÄ>'Öz2“„@^‰FÀØÎÐDÔÎÖ‰†–ž ¢¨&o`mm`la'M£hgc -áàUûZRRŽ_&½þ’ÞŸfx¯%Ê3® ôEþsÈC®”ô“‘Bå0²TU’?…šÜ¡ˆhÍÒVùòýåm»TúÃ8Z§ä‚Û°ý ³:I?Ôöz"6›Èbœ^% -yá×h}×¹Z ypÓ‚u=jëé 3\xœa(74nŠïRýƒ&cx£aYKÜ¿‰~ػբÉI·XiêS¨“2ø ú›G²¨†lkÕ›$ñé³øIñƒ<½*;:̽¤PœT1]š«ÚowŽ0~,A¸ÕO˜Ó%/‡ìdccÅ÷‹k×{GKÌ‘›j™(+ÔBUÞD#¡6ª:Mð%¿s¾†I¼;v#wïRUèB&%Ô øªÕ(cÊïZB™ª³/7í¿'|8¾—}Z£6Ã*DLi´¯kâ'/rn¶èXÐ60µ!~Èaïގا*\Dxc(uè³?^NWù±CVØñ Áá´ÅÚQ[´¬5üŠvȈ0Kïø^•vµÚ*V¦°cœ
(p3“¸µMÖiÒ|#Óƒ}5ãByE¦Ç•yÖÌÞ¢º<^×<;>3ý -ÎÈ;V<g5j‡ùôIH›C„ÿæaTÓ€ -úÍòÊix¹Öî]牨ùƒU)ʘÕü¬è»à&ðŠqº_Eþ>Mv–ԌΡ»:0jÚꬰŽCgþ!ñ!YBRÕ¿i†D¯@!µrC!,ç´¦Üoieq$wj¤q•M4räMÈ©X¢Z_ì¹Îãi¨ä/JF y Ètp(¬2îZ‘Ç¢Ùð‚:–ÃOxäb=ê:äH@,bŽ“t!ÅãKMdþöÑ•`£ªj•*ЪC[L+x¯Ù}£C”‚ÿ€!‘Éã|†ëuî—ÔU’ÔézÔerðˆá Ã\·ÍZ åjWqFW [ï•~sÉ"Ëšã±ÄÜ]£Vf;ŸTiËá® -Xz‚G)gàcúl¶É©ðÝu½^QC˜ûèÕi]s]°?Å"*Âü$fOv‘¢ö¬ì› T!ŠåPXÙÖÐœ³P•Õ¸« "è
ƒ7käþkÂ[ŸŠÐâÓn¥%
„¸rñƒ‹3!ö†¿wqŠ+÷-×}ñ¨C}3X¶[G\v¿Vl=Šþ~ƒìBjÅžµ@L
wº Œèf‚ý.ÓÐr›'<Òü¶Ž¿Âfæ4ùJ äŸt^
gÃÓŒr;‘s¦ŸVhŒ@€'ǽêdòÉ,·œ -lô³î@p®’Œ”JEcžìe‰;LÙƒ*#.P8Ý^NrÁO®w¢êåÃPäåú‡ªî©¯HÏùñâÊ›%ƒÓÆ{¤Û«Â¹}‹÷þta2XÑ`È°½W(Pl®ôt‹8áníÝ1¯v«Ÿ<ñ¾Í4åF¦˜4d¤Dr´4J„)Ÿùë¸L²µ% ç?·ëÚUA§tkݱxèLë…3kàN,ˆÛ3«QÉĸǹ‰–B´‚7’ûÄL³_ËgƒÕ
ñŽ1Ü -˜šæ}›Û}}<‘3°2èRÍp´$ðʧFu(#6A<x•)Ÿö·QÜ´Ç -å,´,œ6ˆå|ëÒtлå$3ÊŽ¢¨'‚±×ÄŠé›v#c5ÉÇâÔǤwÐÛµ0ÁoãiÙíà°Añòœ¥µ¢Ã® DSêá©ó,zé6A²”VèFšxzGˆâJæls¬>ìFÏÊ2/ÕÐ:C -Ífg4ÎS"
>ˆö—H¨äµ>8h¡Š¡3lÒ -{%ྼ¿#‡«BÈ,>‚^@Ò¬Ç0nÓCížU½šÂZ^u»éên®p% À#d_Ðby¾ÅéZDzl€÷„R%ìS¢Ù+L}êPS«‰$1Ád8Ç2cæÃJœ¸Lx™Š¬3µ”êR'1ãø -ø—I›&ÃX9!«<O |è¥5©ÓÑ -ÕMêÔž5…ÅÉmW¶Ä!ßCXéží´*m¤ÈjÏCB€5BŒÏ)Õ‡d"ZÕጼ B^moJ¡ì‘×Y±øRAD%HX—«Èë·ÀÇ*ÆÚ0Úýé –ì?9Ö–]©e¢ßÄŒB<ÙÁ„CdÀ‹l•z -GzX°ö0F!ëþ½{¬‡VH•ZÄ2[t”€pS³õ.aQ[í)©u3Ñ -/üI*Ô•ª"ù(T€}vÄ8™xfüzYX¥û™w·$]-aÁ¥æ»ãBó!xCšœÍþe‰7Ä…`¯n‹³¹êûÅÛ -§ÔrDš‡ê_ƒç8ÉÈ˳f^‘±Ðòé£ÆK$xþdC#‹C7‹Úˆì´½‡hâžrvôîešxÐÖðà˵ˆ$ÔïJÄ›'¯ë¡¦¯Cy2äÀªŸå‚¡ŠÆZd1”ûÎçÐ"ÁØSX}j3r>“¢0¥\Ò;QõԾɇ¥-§ ¶ŠX©Ýo‹ LëèR×R$A[sã¦ø—òÂ`®/lÜ#ùhŸÁœŽq½Ä'õzkü™]sÑÜÞ¬(Q¹Íþ©iv`cöù¸-Óz X_ÑZzVm÷ïȆ·ÐQfúq¯<–^È¥Òî\èƒçB©.ô lräê‰åÓÊgj´øod‘ƒ|¤ˆ¡Ð \yh´v‚öµ:ãY_¶”œJË”(Øž#¼&bd·‡¥”<Xd”¾×!}ÔÃúŒT†‰ÀR‘‡òÕ¥×Ý“ÐÄJxÝ&Æõ…/¾uQ~4NŸ]º›?•‹=gæ8ã
+ßçœ;…!à< ->î]&“ŸYdŠÃ/"Á&ZïY±Åº,nGÔ®Gz§õk+ñ¥\£>k•á„žjß6Ù6–Ô8tµÄO§&¢„œ´bú‰|uTè@ê^[Û5œ¼N<vñ•we·!XŽù²)uê^½´É¤²ªµ42Ý´Œç€Ù¡Yú ó—Y JëØ ûŽgL¨KqHÍ(~ŸÌAMª_¼lkµz/(«·ä´X)‰F_6JxF¿K·ÊôñÚѦï{-wM"TШ`¼~Ÿ“¬ªvFüÔAŠª<Zô”ׂªìk<Lתø˜(cK©ž³€bSVlä"{å]Ùó€ZïDFý…ÜÐå½™¸<‚ïïï³{ -„,Î8½ÕMþk¤«Á5 ܪUôæ^NÁ&ºg#w²X4YeWn1•#~™¼qâõh¯jP¨Åö¤TpëÏè¾ö\]–öö<…¸GxVÿ”K<$L -ÔUñ@•5Þ" -¶¾¨1&µwÉù\ì9UÛ39TQ÷亹í\ ¡Ã=̈º; GLâ§6ÿãì˜Ì¡"¾Ž•w…B|(iïˆ'Å'º¬ú[7ô
¹r+£²*iÌÆÄ;¹E}—ûOþÊF\]¦l{YåF=AD -»÷ ¦!ô ãÔ'§»ÞÄû✨œ¹Zzñ -‡™r@ŸZo_ß±¼AÚ -êú<V{VIÚÝLná_ïÞ‡¾’õ™”÷Õ. -óBÂ:2s²uá§(•ÈaŽÌ9:¯Ü·2tƒ³DKÖ<ôG¡Âç龡31•ÝÊt#íg\ -.˜íu6îi²ÙJŽÈoµïxöZ××_sZËòh°V5¼}r¯ÙÑþ3DXÿ8Ëé6æQàÊ)’v÷ØÜkxÞÝé÷)Jæ¿ßd%ÌAm=ÇÂ(#Õ KY8ý_ -u1`ÑΑI¬ÎP¨@àÜžÇ?M}®‰# ¯‘½Ð‘˜W–íg
wÃ!hºÊ¢ßµÝf‚]\@˜¶Lyìodªš¹øw‡“>B«Õ·¼Ë¿/K€µUræÈŸ¾UI±íº«à -g…ß·.:ÿaâ5’Ö‹AZiD+¦ßuFƉ}¶û½é2™¸ (ùp~·ª³x¢
:’3¶¾/e…)ÁÌ -¼äÇRi¯z>ïuÙ1VÏм ÿ¬&‘3ŸL.~Y -_²©Ð‹âOàvH"r§¦$ µé -º'7$c²ÐˆÐ!•ÎݧC½¬ç$Ê?bï¨þìl"OâŽK±¾'˜w -bx—‰Üêüj¹£O@ÿÙ,s[»6ýªícávÑY¹hd_æ“,VŒ œb¨ -‰ð#"^ÆÃg¶µ¸!ÿÉ#i/“ªñd—ÁÐRD4ìŒ-%…·#àrþvf"I(&!QƒÑCG¨swEe`Ff÷ËÚŒæœRC†×Ëîï+ZsÃãØHz–Xf--¦¼…”N)±;±shs{£•aVXAת]¾b9ï"Áúpœä•Ôm90$j®„ÎxLYxCÀ8ÏB¿Ãí¼ìùìéÒeEá…i˜Uê#‘ÕA¤’¯ÍŒ’a -«Ç´©¾T#$5? éŸè¯¡³präZè<§ ÑM{å«¡x¦¯¡É!‚)±6¿Up‚Ó¼ÌÑÜŒ0+ü9r×óÕ>ÞYãÃô d3–Ò_`gbת}û -rÂWf¯(¾ Ê.T³ûœ$rG~‡ÌR)G…-ú²O2£l?ÂBüX CÇäd"iXćÎà÷ÈÏ:ŽçEN -}
ö&Õ>o´×ã®æ¬Ñ@z-Ã=é÷îÛƒîø»^]bÄËŠ¬N-IýJ€°ÀjDM;©ËœU×ô™Ã|ÁÊȳ5à -¶!yJ6Ü#½ºø5ÒÇ-u
´–Otÿ‹Ê‡ßk§]Ã3¤¬„0¥`áÊ“êí~©/^Cë÷•µpÉü7scË Oó‹¿£hˆ-Þ€îi î¸[jÄ'Õƒ´§!¶—7žÝÔY¿EΜީÊËi`µêm£¢>TÓñ1Z`NŸ‡¤'ü±i“’Jbÿ€‰9XêÊÚ—µp,½ÓW¥ÂÔr×!KšÂÎèü`‡ž„Õà@l®/Øúæ.z”ÈÙä+ö<7›ƒ\i0zlý£b©UÐ{S›|€h•Yƒ‘æ>…mL0‹¾¾„,qÊdnï#çK{êºýÂI_r(®¬µ×‰Òõv/ˆÏñó÷†ÙÈBDßÑÑ#…iâ·d‡W¸ˆ½÷šÐ›ðƒ‹_ -ä¶Ôñ{uÚ¸M¯ýœîdßË -‹¬)Ì Ÿž6Ö=jÆdÝ;í¡Ô¶„µ¼n*_>;y<"¸ü,߸藵’ðð’d
ËD¨Q TÇëÌÙêÏÜÍåïØ`.ø|Mõºí$õ´ÃÉ*šö7 ´¢Z•—C^“úkVa=žBž«ÃUõu‹VQVQJÕÞL§Q¶Å¡ïºÜöÞÖøMØ¥b]«®[¿o:}ºûg<$ÈVX„~\î@uOG®1uçæM ‰0).
UòòÉÈhW'Vws˜‡×ˆ¢ƒ•\ -=;3؇ZÑm{§fÇu1{©‚q®‹é%Ñ)(Û+Ë*jóºpd±NáNK¶›áóú E‹´Ø*ë_ªŒ®NvL¢Q°-ëlr±ô¦‡³ý4Ý!aA…ÚxYGmfBv_C…³ØÞbšÅ³”ÖšÐÐ -¢œñ £‘I½… -M©:l/
?Xå›èSîvåžÉ›åÎÁñiM„ED“¬Êòòn[»yÙ§” •Ýõ§âCå5úú©:‰È•5 -.¨CAV²¶šH't¨_ömjAžï•Úqm«B -fÖ˜>içtd9,kQÏŽùpMî8Åx¢Ew=sõóŒ«ÓjÀ˜#ˆÛ•¾€áꌳE–o!)»)öÒoõoÊQQ<RñðzËå3¢XõYf^åvò´¡b†à*õÖo4kyO‰Š§7É_#¢wm›Ÿ
IJªì'þq .½aø°+rã³—2!š™ø`%<Rˆ‚ÖWˆÓö³&¬ ç)UvCÜ)s6(âÃÂ[ž•« -%Íë6©]’´a®Kó5”t>ù,bR¬÷„Sö«NÁ\S_+Ç‚øÚ¾‡Üzh(èˆÃA¦ó_Ûð¡v/Û¤¼øAÇJ -½dcb4Çåøñ¾ -™1ü˜|Þ_"UZ¤l€¹y%N -ENcwî ¬ O-¾”+ÉagÙ€ÆAÇ>Ú/ŽÏ×Ë_‹¨i*ˆ{ºº„˼WÐPºb껾ÏÈXÌP@d˜‹ïU%¥:©a:ƒÚ’¥Þ³4IDÁ•ß%_…=!ȘÎa\*ß¼¼ê<»áae)£éŒð"0£míɦ€|°Uá„6ÁâPx0-öQ“ŠCÜ4Œdx^Ždh:)³]4Û',PÅoènoƒ=ë줾mz{ôÆøÃi?ê—á4ô!ö åðA5±÷ÙîÏçì}
%ÕEJž;l¶¸Ûü -³]AQ°ë±€2½'T/]y{ˆs”és†îæëqÀÇ$Ië¾í(Ò̯³’”šeÞ¼é4nGGq·¸Ä0uZí‰b
óÑ£€‡«
²``ƒ¿ísœl·ÎF)peÍÑôpÅzFÝO•Œ~3SºË?¨àÉ>î#À€B8 p’Ù)À`¤cLå?Æë'DÒk±G*7,}LðüDÉSXV¿;Â)‡É*{õ\Úz5pÇ-Jêè Íî»KDO²‘×oyAƒ5ȃèòö6w Q¼RxÜ^ÏGçÊÕÛ·Ì9Ö=øÕ!ކ˶±€ü©¦âù)X“`I:qSŒÄ¸Œ)>]K!@ÌYqQÁ‰¸âÇQÔUw¹jKNFÀ-§W<¬ -<òÚU¡~^d‰ñÓÉ°´eÖòóh
–PBåÃ=¿ò‹BDêôðÉ\Ÿ³Öy LJq¼X*`Ú6wY=Ò*PØC2À×ç»á0ñÓ -òDG^d£~‚ÈâÌ -øZŠ.V«‡§G¯Kb)¤ž†¤Œ,]1ccQÎO2œ…á´ÒåÇh‚TÓ÷ãφ»™¼u‹gÂö<†¤|d±‚Z5Úd¥ÇøG?fIiÿÑPU=Ý <G þ`GCp”vö©.W¯Ò*³À}%)ÒÓ/“çÀy:P‚N§ÓX&O2ÌœÂ6ç -êh»c±ƒI%+¸3“-_†éqí¢BfÑ?X¢=¦ú<=U¶8hÎA/*Ï ÌI¥ÍÝHÑÐ[ælÄ•éînx™60ª_{tžõš“KFÏ)`¶Ïß*‚Ó±¹‹ë.V˜o—“ñ,C±±7'Š´Œã"œKýóG:ÃJ‹¶;êF'þ-Ö×RñI±+Æ·êûVÍb|‰(Ñþ£`wœa+ŽâX|G°Â’ûUölG_ÝQÕu—OÖŸ‡Óƒy@’”÷TÀ±Ù´ÈÙ³[•ãqPæW“ÌðÉ[çñ–GMÎÊf„V½Õ¶¬ûÔ&`¥?£˜CÍnÜÖW}˜L=»FO+fÕZsÈUÉ -qÎèÁ(/3ìã[¯ÏõC‚Sçü°b¤ -BšKä;*t»Tåà™Ÿ1gô5_§jè’®H¤²Äª<‘& -:þÙiÓ„ZtM/e*iùüYüxçmMßÝÎú +D×Åo{
TˆdÚ[»o쨔̬u‚i9¡n~p -GÈfêìð.†t DRmfÀ&Qý3áv•}Ó¾}À÷òóK…²×™V)*¹Eµ é£ûÏ=è㨡‚€¶h®`ÚS΀Wvm›bÏŽù2‘¨È—œR?\«®Ï–äTgš®ˆ$gÞr=¯;˜QW碂»Øí¡.ØöÅßÈŸë}‡îy—>Ì}¢à“RIêM¼•e½¨pl,¤3*ÄT·þÑ)0v’ôz‹ïü1Š4jH¤†¼a\P™ï&?§’©7¨— -Þ=á”7?îÖ
ñËu.›ÄZ=•“ز‹,-~ ‡JÐÚôr&ëm û\Zæâo®ð¼‹I^†ÀÐùío¤Ll‡ ¥TeæN"‘ˆc{Oп ›Xñjÿd'ÚŽ“La.Ï4ag•¦¬5ÎÁ -^|eV - ó8BгMðöŽ5·krÌ¡¦É‰†Î*óî˜E” -}Åó–CglxkSÅšg;×rÑ?ÇÈ8Œ‡„¤•Ö}Y©¼tíƒÓÚ",É«2EÅV€|ÈÑcþ–í‰øȨՈ -›¾Ë×±BnWMèõ¦Í;öy‹{?%Zp¶þï,OOÑ^:5šçð0Ä+¤‚¹§jÀøÿ™BX?„ÔÙðµÇ¸ˆ ÐUä·¿Dü. -é+ý®ÞfDäƒ[䉰eתG×»–m»Ñ€Žve¸‡×o òƒUËG#Þ¯3¥HÐçW²Ðh´XÖ….ÍÎ-€¿BÕ
2µA ¨“¤ý"¼¯;Ùò mf"8vzP¤ìúH¾Iø6[‘#aЙ…gªÃ&F']-+†Z7üRûVë^ ‰j˜©KZNÊýA?6~ç¨Û욃áqÍgŽWÊüzǃ½+àIcauÑ“‡Úþ`öŠ„˜¡‡€ A(¡8ÅiÊPH°:)âŽvÕu‡5›„™±Àíc¶«kèÑXËa¸Žæ5Ç”sõü3øE +¢2WÑÅÈ°•òÍ,äÃZ&ÓRÖïªr@”ä4¼8è‹EìÀ°?a*²oѾtü§ÐäxÖØ<ØDÞÛ<Ž6“K)¤½wíåIXìtcíZÁGPŽDÎú'…H¼hë ›ý÷I~žŽ©e¿6ßpÝLàAü:IØ°³ƒŒRoÞasmÐxÅ»ÖÈõJg½V Ê!n—ú1̃*<¦UY!=<É8õ—LòÝK2_TÑéÓ1Å kžsÕ -OÁúFbáË^€ á–ßô¶Ø<ˆ’*¦®ôÚÚ[ªO@/iMô—±™µÈÕò¶¹j‡ƒ9GMzOUõ~<m€ÄÊ“ÅÚŸF—ë*ú·¿…¶ˆç%cíЬòré!’½œÎ-'š!ÈJ¥¾±MFÿÕ“úå: ¦©at4g$©\-ið1¤r§å}êëŠëC¡ˆ -.“Ÿ²l8mdÇÄ×ÕB„¾É•‰¿eI¹Q!b'ìž´ô§W)±„LŽå•ºgÏ‘„™°w‘£: -3¡=ϧ‘¥QTŠú¾šèÍzÅ„(¿¡gÎ"ßl®3‡ ”‡îoÞƒ+Z¦oáöà4Ę=tÉK-Æ4ä|~üaPX/D&_õÅ;*¡ÿªð!„i,ö,–xou*Œ…Â0c*SäH˜èµù¼ŒÜ’µÙ:üØr9Њ6p(ŒˆÿÔLGEË?9Ø6E¦ø Cø6ÜìzU‰ÉJo½TÓ xõ3ÇÂæ´Yæ ¹ZK®ºµdy—ªÀWÄ
÷—Jbæ°W‡Õ$“¤)!`'<ü¡a¾ó=¤#Û·jõ嘕Wqo˜ý–)_¬HÅ3ÔAIW²~{ŽÑÇî/‹&Ëß]wÞÎZƒòO°^åûµÁHñë)¯ÿ
z¤ÙÖ¶5.7N`‹O:KõhìÙœ=ºû1¯å'ˆ¨d[àÀ®¦ží¡¥gío²wG³Í\û¢922 ñŸzK}·Øp$ÖÈ,b—›rd)^ÔYW†×1š
Ëœ¦6p-eÑù[n$„:J°¨&bSEa‡H—‚ÑW¾öqŽ11ÀcyÇK#m)!Æm±¾59õU$}À[çÓƒç¸×‚%÷‚~H®‹>¬¬ß5LzcxíEk“ˆ¹ú¼Ñs:A²óp6¹önÁ¥+²àP õÉA¡‚éÛôÄ”,,¨Íb6ôʘŽUÀ%"ðÔ”ç~qf?2ÎƉRW‹êKС:¯¼(Pò~£¿˜e*²»ž¬hq»¯ù‘1'¡Û~PŸÓìªLqŒÙ*£0ìÔϺ Ÿ`tÞYïwý.Ã×›Ù/ˆ'xû:ï+#™:ãàiÝAÏDÛ -ÛÁ@^“H·vîâó1ôצs²5?ns÷ü*<À´eºbME„NÇúDš`¡æWÃ@V©h£ÿÃ8´¡
”v}‰¤ìcJVÐ}e!¥´ï»QV=´›|8Ñ»äëTË+E¾+,»0–¸µ'su\~Ñ -ò$7c¢öázh˜O¥ó 8Ýúæj¡Ã‹‘/%j±A³Àóë™c5$ Óür’ o|*…i(²^j”-°ó!"÷ñ,°ž'Ôqˆ¤âùŤCU#‰†y0-Hr\'¾Ñè5‡¤%O_JíS<^ÖácP°ZþZ5‚Ò¶m…ú[éîI’àÙ0ÃQùÎÇhpð§Ò•>þ‰žuê]O‰´ödã)/P2‚©:Îçùþ–
b ¶9G\ -,IŒ¿&˜^ý¾"Ϧ¢Øqr,Íß®Ê>î&x콋Ád@ÜhìÒZtES·Úå«\¹ž@mú -eî$Âjp¥dJºlw Äì³j -Ü5Ç+Iö*|Îü®’UZp_%6opõÉ_IO7;”Cô@¢™”人D@2¡B'…õ,0™ânN-ÖkƒS[7p,sÍ>ëÝ]àÚt¶Ÿ¾ÿòM5nڛē
ìhT?]ÙÅ+e@Ch@JH$êÏ&>2ýã°£ YúDXQÕ¾ŠÈ‰ÕŠÃÒâ¦Æ\x+¿`2eÉ µ^´ôB|iCEÊ·\=Ùü*7CRLžÜt›x,3¶J%A ~†Ó`®*w‡Zý.¨#WÈáˆêS‹“É*&ÖLL~'Ñ;¶M'&%ê"×[*moº¿ôH^ú‚ nM6)•U«¬¢WVg§Ä&xKí{Ç¿]zÉ -¹º˜X£fÜ<#}ôÞœl:\ö%\á·Ñ–Ôõ<Eña›ýE>WYŠd÷ŒÂ[‹¡Þ
äº\œÚ9IxúIÞpÌšäµBÔ:¶—³ìôxÅÚQn¸ÌÄ/„ÂœõÞwŠëÂ\ÓùÐÈ/ç:køTqjNÅë“j…㜸\—³†g›d8¤¤ŽšÚ’ãLZ¾Ã¸]âì´¶Ï T&¬ï66ªÌ½*|¥0w«
vî&‹®l5fÙšEÉÿô̹ñ$\wñ£O*9ÑÔ -MpÂœ(i¹p—ÂMœ;Uk>$×,>c§ˆa&¼(öBŽ“,Ÿe£Ü -ýG±ýN;ã8ñsø¨ï牑1\°Q“âæZbgxÁqÚŸ¦)1âÛw!hK{…Ñh¯\¾ò–§¢,ˆOÀ°h|ÎÞØéjn‰‘£#ÍúÅ4|ÑÓ²qÔÑÁ¹õ1³Gï¶&dðb<àËVOÇWR‰<¦*›¸!ôøP_1[,±Œv÷~Î Š¾rŠ€¹³¶fúÎÒ6Ð…i„
€ƒC#ÂuÃè÷Ê¢‘i˜=ÒL\™¼æÕÙ¢'¯Æ’•Â835PòîL±ÇSÌÍQýí–Ór&€cÛ¶9±&¶mÛ¶mÛ¶&úbÛ¶mÛÉþï°w[ÛÐ7]§ê´sÐç eˆ%Ó29§b²øǦ+îäò3ÎøÅ/åÚ¬¿ÛŒS¾\æDéH¶ÎÇhyvÿ9ž^¹þS”s9õsꔜ\ÊP[ ãÇcƺîÄJ¡Cr‰ŠÂéå»N,à] 5ý…– -ý¿'¾-ØGŸs¶Ö¶ -48§4î²Gá0>¾Wlx{O..ʼn6mD¸—ÚµQ¤]ä]Ž.†Ø0k–:3ê‘M}úf¸âH]*Ñ|ïâ|@…Òï‡H™ÂÖ„ Æ;¾æ™œåâÈÑ¥¹Ìx0»°WäîÎ{Þ~ -ƒÐñ2×"ËOÿi"4§^¦"ˆËoå<ðáÏ'¸ä[ÓÄõ* wX¼ê `؆
ÅuŒÕ×´$¦0o±ƒ¢ã ÿnlkÄ=³÷0ú@TÓ~"Ó,àçÜñOÞ\à}ü½ mxTÀȲ?+Ÿðwíxª¬ò“ÞcÄ1¨+EâyT;°O -”¼´„Ì•4YHU†Ûî:À’´6c§ŸL<ôwÐvbif”” èAÆ1`Ï”yþ–b“àÂ…–WƒÌà.šžîý˜ìãObéFv©rüh€ÕÌ} §¾FUStŽüõ¥¶£ŽÆÝAï¥i’h Õj=úè@ÂÅðÂÅþ°•¼Sá"ŸÎîÓb¸®"úáÀT°îJƒôúïë&n‹™Ë‚'ÊøOIµé„o„œrÃîä8й+óu¯é¬¦ÎuܬȔ - AˆÄÒŒS€w¢3"cöèF‘þH™ÿU¬þ›€ªb;6ý@>œãžÊß7)Sz'ÌäCs"Oõ«—$Ö‡Xž|ê#ϳ݀¸®3Éþ¸x0±Ý¾Æ@ÁJ&íæ×jJ¨µjÃ[ä-ÙL˜N`žFšxóMCÜÞ ›³R_Óf·âéÛßVçv¡>  $àdã<#OG1Û¢F7û™m@`ƒ“rº”®½C><ªˆF[·ŽI<.f$#Ðüõ‰F¼úóÓZ—zð}‚4JÚ‡©‚oI†yjø[xWûêJ¢rédªM.<T¬¬š–âà˜.LVÙÓÔ¸û‘P·ïëÂ1ÌfŸ@@¯1yO~CnÅŸædçn$»2âç -J’8±ûüÙM’æ”[¼®Á'Á„SbS -¸âÆ°ŸË_¯h jŸ*5Îþ¤.D#gÃQ‡wÏEœl,›^BŠLg<$¼]àÂñõøzGÖÀùš>£é¤+ÿÖÁHc4àÎ’» KA(‰ÔÎH$<!%È…ë5
ªÇ„÷ØÑ -ü}«Ò@ÕAšêïÚX²aÒ -˜=–ú™ˆ©hi$BnÛÕYoÊcFTNŸûìèÍ2õë”™Ûøà§{¢Ið§!U/M眼ԴŒÈRgªÛOCº2Èz –æÅ/ñŠvqü0kZÎ$‘T.R©fÇÐêƒ -MhÚÿ„¤BMsß{€ðÕí,UtËm YÅk¦X—|Žª…Ò/M½l=¸0Ó-R1ˆ¯ -f_iz,©”›6]%¼5¦D–Së:I™›&ziŠ…D¦>ƆÑåϨÓ})mŒ=TmñyDÊö7©ÏîEx×$Ž¾—6êñUÙªû®'.•ÁÛ|uKuË 5y¢¼qžYàΈf'«|~ÁÅ
Þ°Mœ6Qï¥ùTú‹K¸«ÿ*èžø’ªq7 -ìÎ[ ¶
ÿøVfÄX#Û;Á7å‰ -SCsìtLÑp|† _VçuÞEª¡ôx7?Ž ëDäMvŽCÛp—àŒCˆ~xeÇè ñ„E
©Vš‡Ûé¥ÀÜpŒc1C xnÏÛppÔnÆÀŒ:ݨ¬}tS4ÎÕº´ÐûKÜ^ÅÝbh6˜,•áNfÊm×A˜ªŠ·×é¶ ™‚mƒpÞÄÄ%å˜swÃÕö) -5n
V¨~vu²H§<mUv€[A„!‘#%2‹Ã¤ -Lø9Ñ{ýœËå¦ÑMj]3þ -ƒÄ(}®™˜/—BÅeUx -Sêò Uµ°W¦+¨SÒÇp§-ÿDjë3Žsneé6O¾ÍlY¡¸;ãß¿Ç5ú˜Lý:àÑ0Š[5´q!‹:Ms<”ýñÊ’º?ú„ -›Ü«¨Ö5"sVÚGZò×gkïá.W -ÈMBU7{:ãKIÐ -ˆ—ˆw›&(8Ü“æ½Ì±ñ1ÑÔ^Ú¯Ãàrð£0ë[kf÷Õ*}¹ß@„Æäö}7YÃê¨Æz'·KeªÛ$Ó²bI
EÙ#ßï{†,’æÕ~ExT.!Ì.ѸqGhý9p2À@Êp_Œ^Šòû»âÑ@Æëøæn ^ãÂÍ’ºñjQ‘ãj韹ԤíÌw/®xáúÄ3@ŽKÑå=µ…T¯à™ªFãõÏ'‹J.ô'¤w£1’ñú8ŠCå#ðóÔ†,éx‘ï6ÓÆ/Hi4’&ÕM~ÿh/ˆGðvâ2•øÃ:jp}¤gIp;pƒRM1¸ÄÜo¡\ -rGþ@Lrêjhx%8ŸÚ>l«Ý^=é⪲
F+©d€†µ‰¼½¾B`o%冴ržÊ7.Õ…þÓ”.ÓÃOçkÀîöHÐ?šnü\ûÊ—–ò¦þIØcl6_å?2aZòEô‡C8žF~Ôè,KzŒoŒ‡JO*·ÒÄh^–R…{Q '!²·¤äõì‰ -ás(;Í9r£aC¶Ê`:ðY;ÛQ™!¾4Ê——rÌ|¸’¢Î_”àvî‰ÐRëX.üfvÜd¢9=‚Ð]·b>ùÆÿÌÎë'Ãè¢9"¶•†³¡Õ—lS-†ÜZAqªïÙØÕèúD žÓ”5Š•sAŽª¤{ žç?˜X{.ú:„bíò·ëÕÊÝEhâ.ÍúB_ƲÁæSË<hS†–èð¦‚ÅóX0áJ÷¤æoHÖ^'‹¹.W‚…¶‡{¶Éxl‹¶gœJ„fž²Díâ*ÔpÞõ‚Þ3¢3ÿ7v¸œ=¡kÖè6zø+òᶑþhóf …Y>vçô]þŸê7Xà…ÕÒ—Î UÕD”7¥OªˆÆr#\¿»õe]©ôwÞ#Êq°ŸuMÙþ›Šü$ÔÍÈͨÎÜ°é´=•qð#çgþÕPäŒÏ´áÏûójb2Žû‡¤S°RY«Ã€…rSðûÁ2ïü‘lãïPi5v\?%•–ì|]‡?jßSšaõæ…à ·ŸâK‹âS7§xÐhît²ííXÌ÷»øñ½QYM·õÉÛ*02÷—'(~@÷*cx.ag$Ì.6ÊÎ0~zGóÓþZ²¿oxä²&ËN‰U]œPÄZ/ú~Q¶Îö\[Ö$ñãR[öé–’t—/)$¯h´<¤ŽcéýÃÄð±9>Z|É ˆÞ¨¬ghH€ñj~…îç °QÏšd"ÄÙdž>É×¥‚–ÉsJ¿öãô5BíìÀ½Ã¾DÑYÁß9TFÛiô…H¿=~!µ”_£ÿÕhz Ûé³RÇ=@QXÚ›$ùQŸ2laŽ(ðvºQ„]jŠÖ-`ëÇ8öJ•§ä.?N*êh âÚ2T -êÙ©ï•×`±–¼ì«í‚ú{}Xíl\ER«êb{E,ìêlÁ¨ž¶`Ë eFõÌÔøܤó¼ Ú˜Â_‹Ú}L݇yûCö=z´©Å¯ž.ÉÔQ;¨iœ„ 6J†b<YÔþKKv”x–•L@ªžZþä&$' -ûÛÎ ´*5R]‹ŽÅ^ØÕB¹*ú[wD„¶ù×Wàaͳ®nNo<cÂQÝ~;ž™>j‘ýÎn¤‘M©l"cÊ9Ѷ›|îÄó¯”ííU}]íbÐnܮфôK¤‰þ䯸¡§ÚŠ±[ÂãÏ.åð¢XØm‘yLpÅì•\’ho;¶ÓèïÙ±Zظ¿‘+ÿ¼÷£Ì®Î2é€_zñÌ·^ioůW'<ßf(àÂÏ›¡‹"Ç™·Åô%O™Îr(ÊQzΩDP±pH*u`ب#_çß!×Vê´P2âý/ˆ|ð ‹„oçš>“ÇCü±ð+5ëã(w8ëÉ,4ë1Ù|†U_5Y}6bïü§a…«JhÛà’;îdÁq¤Ÿr(ÂkVU˜U”UH3~Ì cs_lŽ+ä¨<L¦Oy§ÞŸZ6Œ"ès~fûQ6ƒ›™J÷WãIø²ó`ø9„Q3¼j9p¬ð<еó¥ËbÖm–à%»Ã p¸«C’ø|' yܹ·ñyYð'µ -»°fp¾bDºi7n©•7¶·tišy‚‹Å„ïÕi-šyç<á‹™ãžG”2š$M…8†]æœxÝ™+ì—ƒIÂ48 -PÔ3)lmŒ;œ¸—ü“5|—î”+ÀTÅv‰¼Ô_òF^›bQãLT?yÇ¥ðb²èewïA© !ÅdYò]mÝÏÈÍ[ŸC9Év%?Ó8| -\°l{ˆ<û$\Û5•/—»ì…ñVT~B -‡)Í1p’}l‹ÈÙ¤û¨¯šð1ônQ“Öü:”ƒ‘96êì(…+õƒ<“4Ã7Q|ÿF1°²¨üñ#\õl1ï,äÝ?7Âeì7®Œ½nØ<É„3ÄÓ›rhNBRòÂÑC -^[ÜÀ!ÄŠxMcOÝ—ÙPFt>l¿‹JF¢‡ßÂöð1’£†°åïxDÑv hÇÚ -¥åã—r¢fY—òU·zifÁUÆz*JfU¤ËÞ ½ýä|ÿ:Ð(Pk<’¥WÝìo*Á]ö…gP³Šþ,ÚFjî¶%™;ɘ¹á9L9.DœÇǦÝ@sOµhòÚ³BãtÑsÒ~ˆ®›×)-ÉA -ÇГöÞVMýͲ:“®³m›ÓWBÖþü/ùÁÿ ±©¡“‹½¡“5Ìÿ +xÚ¬·ct¥]´%œŠmó¤bÛ¶m'¶mÛN*¶mÛª¤bTŒŠýÕûÞ¾}{Üî_ýõ3Ƴ4×\kî½Ç8dÄŠ*tB¦öÆfâöv.tLôŒÜ +%ÉžÿQ•«,Å€;4¾;îì¾aC|»-œƒQ™œánbh`ÚRs–ÎŒ÷'÷š=©NEÿúä[ºAŠ©²:1åÏñ†îs;v6@Ëð}3fûñ0;Rt’i$?<aFàRó›.kôW㚎d`3ã¨o°ÙE¿D˜eæC¤‹:
ü>À']\K±ýÓ—,ùñ£äQå‹2³:£'6³ô‡$¹&s¦,OMÀÞÂ÷Ä)ˆ$ж +Pª4]ýùÏD¸ø‘£‰}œ³Â\
øøYÖa*ûàýÝS0ühù¹FàŸ!; ´ÆDaG}û»êˆQ‘Má´áO„yÝsؤN!¸¿‡‰f$í±ò6Hëºac¢l}“û14º5?q³ElÁC[X¬!mlsNS›Xîj˜—º);é€Ù^Ç4–9+ðûËšŠ„Ý‹œD¬ŒCy¿Šèò1&Áf°§0µúO
Ÿæ
Õ&*ä·¥â7¯T¾²
øê™Î„D1áê†ÚLL(¶NÔ…Ê»czô×7ÿì×Þõ‹§‡+ÝP/Nž&ŸÊ-Ç5†šíìÐ}"e=î9³æ×DV8³©<m`ô¼ÑïøZ‚F6Ig|ϯç«çòêZ§[Á£œYŸ³L¥›<¼âÊIÑM¸O:øåQÂd4…þ#Í·"£®&TAõ(yC¼ö8 +Q,gQSÙÅKì“ +zšõ\‰Ì…>jÍ~˜£—pV‘]øêkãZ<*ÏF* @DŽøC|Ž¦ÐÓg¿@|bM¾1–¶\mX(Æ|¯ê¥„ð[¾þnÑpRÇ)œr57X9²Ô˜Ñ3u?\#T¹©0zy<^ûÝxª7ŧ’7ô>
w6_êòãÍ}³AYK”÷øÅeS{Sx0ͪ +¡GORþ N
b3†ñîŅ̺{‘„Á2\Q ÉÍçŸ7@ëmèXèë&Ѻ +âçÍó¹ËY-(î!ðï@ŒÍ +s:ŠNrzº÷C•ïi…›B,òFu¥Iç0;õêà3úuž¸|fÆ
¢ÙµHJF'@ÒŽì + ÞI^’•0‡-—Ô~ óæ—ŠùPMcÂÃßØE,Í‹þ-ËÊþÎ~ÞhY¸Yé–.È:R„3ãzÔQ[àÃN^üªÔ;èº?€N:@—_¤¿üë3ô°z¤s÷ȪÎâ'Âñפʙ[öcµ©¿%i“ÿ ‚Ûy¨ƒ}ÌÈí€D!NTä.«uï'™ÑŒ\J_d3È´
‘§¶Æ2Ѧ"48F‘T±äX`÷ã4yR•{®é„ÓËQj±8£skôCq¸DÅ ¬óÃÇWŸãUÚ/…ô爣 +žûëý?™åU™ü¶-$¥ào²ê˶Ä"S³áUùxµhõÐeÔX¾„¾V±:Ê›Õ_娽Ätü>ÐM¹ƒïŽ€_Zg—¾2ˆkqp‰éo‚ÿó&ˆÞò÷ý™†¯óx‡(|…e„¥ÇÒ_IÚ¡%õ5Ыwy~Õðp°ÂÐ +N91M÷ø,“S Ÿ}·«aß`Ç8Ö6+M.!‡°d‘g‹tÀê¼Âž¶†:½Ø¦4gô^-GÉ{É“¿‚¦¿§“Ǽy¡#“ç¸Î'¼®4*\#ožŽ`熮öZ>%öcX–qÖ¦ÍÄü¡iV¯ñ¤-*Ii·¾Í$ ýÆÎðdߨS¹lç$CQwªfzN9"Õ¦‰hâ#žôbw;p$5‚¾OYoÍæO[“$eS¡n¤hØŠ¯oËl3ÖI+=xòÛ0T~½Ž…q'>åd…‰0ºMæ1õ~ÉÆËŒ¢g`ï·æšôb¶ùò+$ä›Úí7H)`]·´Î&DBÜâE’è¹Hwºšôƒ0HÞÙOðtRZð™éËe à'íLNŸÙ) †ÿ®Ý7äÐ=lYJ !Òó +˜1:ñ~ý6wKõ׳¯5~™Õ˜,+&Í3‘ßïsïÚEeæVt>bx`I SH'[Ø"Ø9\ú9¬p&tŽp^âÉûªIx±{—’!Û£ÃÏ×bÒ°ÛU(7>×#ÍŸG\ŠhÁÕ0ÂáʦE:qÔ®£§pb¡x3]^¸Mýs +~Óâðe<²\»1
´þ©Ge§àvʸé=¯ËI,›X2×2T@2ªí…É s¢KEQ÷gÞ±BÌPnç„>Ò¥“àƒ
Áìî…Ø%Þ_vô˜ü–ÀôÊû{ˆ ‡B‚ÖY0ÜOXëö;¡·"4(ã[¸Ã„>+´‹2YO.¬ás®‡t·UXÛ<ňRÅŒŠ¹ZÁy´?Ù$RX¬ab÷e>:ÝÐãÔ¡®„ïìÏÛ*.eå*TOQ>Sqò;£2*^Ilr*_›Ð~šÃý&j£$éh#…Î6²›ž )˜¥üžÖS“†"Ã_úèßšfÏ6.=&-+$ž²ó\ IFUïòÎ]"ñïÉ…ï‰Mö/S)Ï€Ù’H˨É6ûÖñnË;Qu›Ñ¾ƒº*iWO:åø᧺·ÍvM¥
AN݉£³éÉèaçFm8bŸ•zPÃú×6ö'/SÝ¥¢Ý¹íÈVþJ#]úWÏíré§M,7EB“yö˜Vû墂åÖ²†BöB¤~Á“YSš2\Ò&sÊ_'°ÓšÏ;:m¾KªšyÖª$â±—MRÞ±o²m +ëý üö$ô€Ù»>«=³(5ÌCxŸÐs²Ÿê]Q0z¨1UÇËÞŠ:°UýMG™:•ïSåi5@XUå&AŠ—yþõ}/ØÍ.4G´Ž nßäµ1¢À@¿½C·#ˆ(ZåŸÙ}ü‡Ã–šÕNì…Œ#%.ò³+Jºì<£5Å 7óùz¡¥éìOsõØÓÐŒzJ«ÁOõx|š’Ôð‘Þ`üªø&\Ìê0¦`ä3Ög:üòcpF¢ +±Ù'Bo¿i¦
T[ +„®qá¬qn‹Qý7¶Ï%0®>¼W|)H¦º2õ
®š¾3µLèT”´6ûGfysºZbk‹Ž§ÇT(Hˆ2¶êÒâqZiã¶
DzAc÷Ï-Öôsχ߷M»½t®Rx×9æ¼h‹®ì8D×~ÈèÙïú'97h,7Ø÷$·¼ÊG9Ïëf¨M"†ówO"P¾ƒ´ÏJWo-ZŸ»aogÀ(L3Ûì1Û?ǺÝ3:ˆ+¬ÛÄ?áï”l£lzå/QY•ˆ§ªí),Gcp%®Q6M½ïW‹´Ú” o¯Žè.Ôçèî,RIú‰pEæθ%Bá«°cLÇ ÃÓ”UÛ.£ãŠ›âÐú–ž/ÄŸQÒ´?Q†ô\AoZÚ-wc„Óô$ãŠKþмg>”Ÿ;R&Òs¢ñTJ'ï;ó¦úÀ’wÂzí;¦ £TmcVU';Ôšz£6t{ÂV5è+±ä:È«1£PÙ¿M±Œ`M™¦?ºüéK¾{/"Í‹É[¨c”¹VSÍn˜79…1;?JÉ t\~ÊHúÃè!cÒ°Hoݘ”Á1í˽•Ø*3ÀaÑÆäÙÂÄê®ü‚¯sp +Ö\¤‹ +ª«–·@ùø¥NŽgßSh@þ²zBÐ,^#7l²Gi¨ì˾„ºÉAò5”m—í´R~kÊÝ_,ŽC€ßÐ|/D¬îËù’êòzÜôÔCü Ƹ"nRšÚÛA“çî…æjOåP’ámQ8{'Òœõ2^•1Ú´7ƒù\î|ÐJ˜ÏáB‰ŒC‰¬¢£‰¹†üv„áù˜"'ÿ¢6úVÊêúŒÄÕ‰`]è=ªÐÿ¼Ý˜Á¼ÂýþˆQë:_~€u._¨µ§™½×6®ˆŒÙ•/šFz׶ìºÊÂo"k‡ºÞ„)Q¸犆3þd?°å6¼$¬}þç§Þò‰.øXÞP(BÄæŒ5Ž+;èŠo[•ƒúù¢ÏeçDS{'è’ⓆT*üb*¥äeRéN¶Rz ±Ç™Ø
!h'8›=Ü0Ûª|p–§{—±~Cžz2ÚŠµy‹_Õj6ceL4ºsœWQ“²Sâ.[¯ŒÁ!ñ v`˜²foø»ƒ¾AϪlÓ/á4qaø쌩—Š¼Qr^º£MŒ7ÌÍãϸ_?=£"”Ž«2š»"=ÄÀ×D¸ò¬€Øå᪠—&?ïÌå÷Ô$¬o(ÂêáW‘M…ȲöîZõ=;€Ü¬VÍѾ¼Ô/R8÷2úI4ZÚß\N®ek¯¯·~ÁEZ7™!¸»~ŠsBܪSË R£Ÿ·8Eÿ×»ãrµÑÞà„û pÈ1aøs(ÙeͶÄKAÀÄ<
¬3ŠèNw¸Å¬Ÿ|ÇMñÛrqOاì<W—$ÉÔ~Çž-×èOY‚wçRK3Œ*æÈ`·uwÒóµZ8tG÷ +äø>þDNs4ÃViDKF—j—¡DŒê×_•
áÚαB†|`½‘Í[Ô4R‡,¬¡2W6þì=€ßŠx»ýÕ†àa,:åÉÓ8™]ï±Rðp› +³úY¨×p.-.Ì—H‡K, ¨AÀë„ÑêÏÅ‚“-á¸&—É-VÚAŸ¹<\~WãŸ`Ÿïìû˜aØWðd––Í&úW-a/bô»¥ß>x„ñ•k’Mäc6oá»üzû2ÜæFèØjñ“Kv‡ìŒ=ËëI]ÑEŠãOs¥l·rµÊ„Mƒ
7X>õ¾K嘟ûç/u…&w
êIJ¥/ÌAktEâÓ$P(?˜àÜ}mÁÀÖ-èE…ÔÄYfOÃÜ_2?¿iyz=÷[ç”%jÙäíöÌ F•EeàGMy·m½ Á!w¸ÖwGf^PžïyP„Q<Òò™…X;ˆ•—e±d°6µØÓ£šµÔëªàwßPMò£-Ã:Gjx_¹>ÉT úu‚àuÊÏ÷¢œï°ˆ*Û5>˜Bõ»¤8~=mjÏÅAJl bpš˜ö¨!³~AÐŽë>“½)JþçøˆÁ¹ÇíP|fïâìdžKmÖ\d/ç!¤Ã-¶3l1¥âPåËEX¾ +ìÕ|ùÍ1‚¹ýd~ÔOŒí¨,o +ð^üW‚Õ†²Š+öZÞ‹cÍW^tk&ÔgF¡.øò{iGÉt[m—žáW„µÅ»º›ù¥Xsþ¬í¦“¼Ý‡¹†ä¾WPS^VkãÚÏzóhMŠ?òœºd&÷ßBbÉHöÎ?ê5S1C·D¿¥j1ÎÆìÞ™§mÓåï—cÝLêIV¡ó¦Œh½æ6'¦–éÉ:¨u=ß›ïe›¥mžü—NªÌ[€oð4/*îù9+2:‹…ñI¿Âm["¶ŠõrF†‘n +*{RNÝٷ饩Ä2ìປ:@êûÜ.¢ÉÕ¶2 +úóV¢ZYëÐÊè=7BÅòλŒàZr´Ë5nYýÅo¼¡Û?·âD7~W]ñ18páF݇çœýpV.¾h¼
ÿŒ?·Zã˜E:Ä +ó”âVaéõG
ÀLÐ â§c7GèzýélP¾‡N½4éÕ¨ÃùÅ?ß½¤ü€ŠÄý•þ.[¤ÕòGø¤}¾3Ó8v +2ã
€WôCCÄ«j-@ÔR\dÊm1¶ô}ñyúü|Â"›!±€ûŸÓ¦ybíF†ü?K>rVâÓ…Œ3/¢«.vPÞ‰>-Èk}IAlŽ#Ò7èØ3žÐûv× +Ù¶ hïtåíÉÛB’åÝ·ên…¦&=™²¼‘ÝktlÇL‘ñ—y"·ãÓ®@3{ï'ÜÆoö“‡^škT#çM™wR†Ûl¸á M»K©E@¼˜Tãâqo˜t¤K³uÒ¥’Ñ„žƒõÝ}Ne‡nÉn¸4H"Ëz÷ÓõèlÝÉãË0‡ÎÈ°ÚÄnXr»ÎÊ:Å;Öòš²Þk$¨€“ÖªÍÖÔêÁ+ÚÙ‚|YÊºí¶šyÉ’{(„Œ’z"üÖÀoÝ/ú_-¿*‡S
Á?ó+n>åÎ>ð„jY9™t+YÞ³î5„7)õ›ö3ñ"]vëv¾÷Æè %eoxàóYM˜\E¼Ä"§'ÄÅAÅšÌ3vÇÄØ@I`œ"#UŠ""‘w¨;ïPndäÉDó}fø¤ÅRéñðä&ßµæ¢ø‹Ç }ògTü‚Ø|šŽëÅNèîüÅ=R»øqq;:¨µËý{bsm.áí¼‘Ø=%t«š6ƒh•Hby(&$—¬GTÝ9=D—§ù¤"kûõJ|>6uf,
‰L “ò©Óõõ’5z^0§y—>E¾ªjÖhÕ¨¾ÌË
ÛGAÌ@H«…Ç#·.’zmñ´Ù Æ…´
«Ð„×LÖ4¯h‹«ÞO(‚ZB3Ÿ2²›R-àô¤%Õ¾ñ÷+7ù%âîîÙLa_êX’§ÐáæØ
̹ù7rüÿRª%VÏ Ï÷ƒbG@Á ¯
=ù¤¤@²“=mS†l²¢½‡ŽqAÆû7«Q0ùk¡_•³Âã2j±‹eÂäÁ~!uië/s¦Í?- U +‚úE +¯„`©qZn;j‰3»rßv²Ï>?9qšÌ¯¯I%a7Tqûñ>õãsòÖ?3ÏäU©KÜjÙø䥡–‹&ý¸ßì±IöEîÎ*0•…0Š'ãWø;ã@™Üsý§)ÜÔ ‹³¨0 T=™«ÑhÅá‘ébó,–b·a1ßÜŽDÍ °À°!)Ú9¬€"¹CZºèQåÃün«EŠJ“g©è>ÐÔ**nÕ©üßS¤ðC¹…‹”h?3oÙ0…lk“¥kñ£CĦ˜užND„Ùx.Õ9ÈEÍ<_€íâVÞîï¾#Ò?…iõò-˜Èÿ^$³îÌÒ; ô¦‘fA9™Û>íì0P©U\ßRJ¤m§s_‰.Ið‚˜Ap‡eÂV–™>”àòG©ä³—@µàZ£´×BÚ¾ø`é#ØÞpxýša8i—ò5ð›8ù0Ü?ü2‰ú>k]mרíÇŸdnÏ…ú*?·RPuˆWµu¯ˆà¼üŽ‹>ÚàTÙ@p[$hÓzÑëÄB$O»8ĺC1z¬ÅÝÅI)\܉"3lÈüyÏQ@*‰Ì;"Ó•õ†BÍÖÕÚÉ'ÿ½As04Jäëí|$¬»Ýéx¸<d¿J0ÄeŸ‡JñÐuèùDv¹½ôžúÁÅw7
™v¢ý¤a`‘y*žÈ:Ù˜üO|¬ŽÛöF^d+vBç¢ì&ZSaý|j¦ýgÙ^Dg¶ðt˜#ÔýËŸòþHs,®ë´ÖU£}[Œ„bEnHˆ2‡*:D‡AP!„çH#ÝéÄL~Äq®ë±—µbçkÕÍò*BÌHx£‡ÔÈJ\±ìÖ‹Û)KžÏwÀé½ +’fûýùøµNê{ÐG4"Mçï®Àvà÷ÅöLQ)H¤–²¤–U³™Fmpøu€Ù±ÐÄþB$Y +¾Ú-
fë<½áÄH5£)` +SÞ¯ïLöå,5aÇFe>d Ùl5—ä/ÍÚ\ç/Õqyõ[—Yäg£›âÜ)}CMû~b½4d¾ž +GvFpÂ)ÌPq*lûPr<¤9FÒ2l:%îÊþV«¿C‡48èëë˧D&§c'˜HÉf̨l«*h0¸uï!hs*ç̃ÕÈ¿=Þîa†&ëŽõy
u¢õå~¦.SµèÁ½Ô1Û"ò‡fCÓæ³à’¦"WÈŽ!Ž$*·Ï(³û‘Ÿò&kêcoåZ㈮ìLcË”O¤Áª›n_½Ô- 00®‡oì½½¼¦¸ù˜2Mœ•ìP¬^fáäb™â—ß>Š4D£Õü™Ù¹ØJÜFë]c¥îÒV¥h|ëùžz6’F%ýÝ®Þ@·kâ&:{Þ“(>L¶à9•™ô|¢¤ +%ºåÓÐ-ºò41/b¸ç¯Y<!~à*T.E)¡Þ£×Œ½ebzÙáP¡×E\¯7:!c\K¾:º.‚NkßÒ‡JñÞv}ºôI¬)NÞN(-Åïú±ÝKí¼»A¦¦0Îpx*“€ðÚ,Ò—æ«ÇÀ¸a3¥A”øÓn|gÀ.½xõŠÑ—?7ÈñjZ®I¹‘ûÚ¶™å¬¤‰œ‚ô!;¥Åö4ØÂÑIÛ.‚ÿÕJÌŽõ„¡‚ò$vö#]Ð5~åM®T4:§îUf@‡QÖE¼WëF½É¼ésŒJ°Lòþ»³#B¬ë€¥l!ÛÂ?q² ýúKã©ÍÆvŇ…Ê:®Žy4¦t[jÁ[¯üÒÔÛ³JˆiÕ®T>èzÄ_x~<à2¨£KH®þÃrµP6Â{UXZ†·€ËçVÍe»ÒÑÑ.-i\>ñÑ6f€ÍX§’{)‡ÒMŒnS_Ò\ÅšîÂÒ‘{‰JZb4ULó¬T«æ©¹yë3Vî}Û~½l<“s>¢Î÷Î{xPÀ<Û>ñ ê8ùq+*™96Xþªïç¿rìñˆ.å +ª
"-^åßEyIú‘ý™ŒèjŠ¤‹‘“]ëítéU,åv›u%½M+| fË¥òºžezoÒQï.YϼÕÐýõ6ÛîtûœÞ?®ä‰”ªLv^ÐíÛfšõû¶?nÒ`kzI·:ïuÓ‹ìFˆÝ,â#ô9~B1êu\ƒ™pÓš+Ç_£Ê‡=là.+fc0·u†8â¥ëÝ•;ÅH$²—üဆŽ¡ßmý"&‚k 5”B
‹´r¨þÁ;¢ÀÉ@×f(T +"
@÷Ìæ—{:»ÕÉi×â0ò©‰jªgQ·t’3R%VI¼¿±Oy ûl“v@Xºu¡nïÙ¾T8î(¦ÚNÅòs~ ªoØÆÒâê¢ïà÷ßþcʆ@Tr”™ËÀ¸qïNµQ²Y +‘»BLƒóÈÑ‚l§÷*ÏmqŠ|/?HNΘ¬Hg9üùÚ<ª“èÅÁ7:ÿt™-"‹è;zPÏžš©Æ¼¢{-…Ò)RT8ðmJ˜ GõÁU +_Ãß(ɸ¼Eá·4^1Ìî—ìEIÉ#hÅ_žÉ…X½ê’õüžœ^I Å?¼ 懻÷¥Ô«kú¥v<ë,ÂC•YHØ$®¶1ÏÂz^ +ª§5$…¯^%µ/… +*í+ `¨ŠSäcÐØ52˜èÕW:œÝ;gшô±ó–)”‘[¾»àbuô÷¶öùª¶_æáž+5øÚƒP*@šÌiÒèUÊÖ‚ïÄfÍö“±ÌèÉýf\§´t”þÓì%dKÔÎ}Ž¡r\²…òq@}~Ã=?øJµà`î*Øò£5¯eí«x~yÖ$令+_`Tf2c²ü&wé´ +',ßÂÛ/"·°¤á¤îÚ¨oUJÌ›Þuk¬FZû}1ƒ¤Î[ŒÓ +{YùW2Ž¸‡³9‹ÓP²©0ûÃ*‚4Í4shw‘#`LYxŠžtOµ§ºæ;í7À¦ãZ–w«õg¼ö-^Šçü•å/Ê~ÐhZ¨¢"‘óå·°‚zã!õ)–oòQD G¤ùÚªxC.”WÏ%¥5bÉ +ewcb²|M±=sîºEöuÒßc¸«‰Î¯»íï(¿öÃÄÜz%j<Û£Z/ðm1hIjî—·]ö—Š’†ˆ›§_¹¯4¾Öq +]¥Xîƒñ£Ìh2Èkn… TH~-OD~Ûi.Ìœ! +zDìûŠº˜%„úæd¨÷˜{2;èíLºZ Êbi0â™jªÅ[ûVpg‘Gµy¼e½Öœð‰œMͯãg1ÝaZH!´½áÉ¢ó¥Òùt?%³B"ãûªóŠ\±Ã÷ÔEkÙY¤qßÖjÀ¡Š X(*ÃwRÀß]ôéBXåÍúÁæç:øä²bâ×jA†¡œûq`üÕgÚ´—NˆEÎßNìÚö9I`téY)dÜvIb0ŽW\Eir6ÌŽËd$´ýèÍjÊùT“™E—´¿œxq`&x³0Ú.H˜þFw +ä®Á#cÍæûˆ|{$Þ?…©Ð\•RÊ[ânŽ(¾’‡>KÙÙ+îà,d<ÔgÚ–§¼\¡Î‡¾ÄW}<Å»E#óF¶Y%ªÈ’™Ö+Ù`OœÃá~1ë³a[¢æ „¡!Ò}}ƧÞóȘ纩َÌz~G#,¹¦1ɧX>¿7'úìî| +â'Q9LF+±órÊto•è•CsS«Ç'©«žé«O”œlds|‹0c—ò07 +NuÚ¿^ê&Â~‹¹¼\øœH¥eÕ~Jz•ŸÊÛw±æï{sßÙñàY=ë. +¦Tø°èo²œNYÅž7ÁøÙÄAê_Ê—Üz¥-ü~ W8VQ~°óX‰¾ÝMbèYZëÀsZöÎñòL\è,/Å2ÖïoþE5suKLA-ûH¦¤„ÙxšTÞÍ»yQæˆç:Zwñb”x?Úâ¨Í]áù9¤o‘𘋟aeúGw?“€às% ,öf”jº$ŠîÆÄHÔ^C°#@ VÎ'LíiL*õ—'•;TÀùqRÅ(E·Ë®íb){·—¬PóVŒwˆ±’©Èya—Õû9‡U2Ó kÒ%1]YPÿ¬_¥4½Êl°C‘¶Ê°Ž&…2op• ÅÀh=añyøö—Ê\@0G ŒU4‡gü4иJ€Vç¥é|ñú +²G‰_çê²Ëq:M”ã6’Сƒ +bÁMˆstIÃÍuÿ6%üd°ÁKe»ÕT¢¿8b+À[ЬÃ|"¸·átV²Á±ŠjhÆÞ âo—'ȼ˜ +ž ³b-¤uðúÆý†>äÌ»n¯¤îi[|ãï"¦~qiùRÔmz¸÷¼cBäªaïì ¾294·‹€„¿‡„BäŽø–£.‡Ç~ci«ÑN[²ž +›.ò£ÛwÎRñû%s óÏg÷Ï䘖½)î‹À‚«— ŸˆiqKo¶¶ä×#afD»mP+/¹ïCÕGs‘b‹´H¥t#øÅcAº d4"k°}çß–V‚nq«1°Û¤SNM…áв4é֨ȳƒ\Zøør¨úx34‹cM„3“‹#‰/.”°ô–ú+”jFÑßV/?õhÝm^ض;™>cnÝG )¿ÏX¾Ý1‹Hì9³éb:œ;Æ‹“žÆlxsö¤NÚüùQµœÙY¼G׬rìk?1táñ^†ØB[t½®ž©¤‘‘ÜÛ®£œQÖpg•ƒ/¤†¡,¼³ÍµojÿZ[©«ž”Ž
ÒŸ¢Ùcêäív–”µ¼O·M&ÐÐZU¢n_5׋¤®” +ãfx§ÐÉô#5ðP ˜{j1v÷¯6†6,êl]¤N°ÐµÅé´zN™HNPÎÔˆý]z÷
ÙÃÜ¥S÷”·¡Ìá¸ì”F\ÓÌö°LŽ; Â$’ö]?ÐýnJ”hö)§Ó#$ÈpÖl¤Åãö)î†B®>m:ψ#ÀÈj_?œæÚ¹OrBƒÊ9íÕ¤¼§ØQíBI””²¾k]gtöP6>ñ[îö¹‡oK†à±"XžZO@¯A‰™~e·….í¾n†ºèRŒ"LŽç‹Õ(kýã^7@‹4 ÂÁɂיÿôðêlãsËÓY×þíÖÓz +¤à·EkÐRІy&<~Æ=´IúúñõË):›gî|ïrBÿ+9#@õÜ ¯;?•Šü2!À@ÙwF`oN‰êgÖ7|Ö"›«‘›È>þ +•Ö##*S«µKt„M‘—a¯cÅ{=‰_=µt53á÷ˆÙÛ²Ÿxå+éæŒè€U„ö’Gé +ë`LÍU©ÃÎ3ʼ±4ûe¥O®,(—̳ùˆî6ŸÑÂáy>øzí×ÍUë²QLd- +o|—òÇA}ÝÖâ©ï%Ëu“°,QYð[èùé{½‡8Ó÷©†ÁÏ[KyŸ‚gk¹±ÅÇS¸¡hì ž†8eÀ +”ûÈê!ø€>)Óa±Jä\ßwÝÎð4Ø‚Óàr$êžåxìØ)“š’„yOi/#ú>)Å)¡Àë‰P³áÕü£JBe?§@»ó.†· >šv>Æ<Ðq,«k”ŸàbíÛ¼£%qi–ȯuΚ\¶éý>J‚<1LJÁ î}«ÛÈŠR1뎙V)€K6'GRÊÝZÚe)Vñà¶cE-‰*E.„¯|ÜQÂŒ•œXü÷"a À^[$C7d¥‹è›‡Xg×jj«´¹3nwé·‚P@*cÙò\Cälüö÷GZ… ‰="ø(N“Ô×@!ý(‡“fÈ(¸mTež¡«ûâ¤jäµîÁ†;J{®’ylÐ,f‹!½˜ïßòõ£9(ÐõŠ%Ã?²Ú‚:‚'/Ãçß×mévo:76jëþÚx –Ä•D–d‚>y®ýR&èÔ—D1?Ù‡f¼Þ/ÍY²3ÛZI1ñ Ôy2·öqÙ¡ýnÿB›ÚÎy¹:·WÇì²¼öJ¦Íœ"‰À*€,~vâ<çãõ€U7Ú=ÊÒ¸õ'ú÷˳óšÅ{(éÖ?ªPSõ89•72>ÜG*‡ÝÖ†K*øžš¢e$)¿b^zxq¡Œ÷ÓØf„熆A…J¢ý±:ºÃ†v©‡‡¤7¬§·ßë;°-/óÞ!°Žp˜lž¹³)„%¼[_!4¼É0óU¾˜P[\}µ¯€.°”ŽnEÙ½•"®rå#7…7~Œ8¿Bæι×~שRõiwâøIJV̪s&iA•›÷ v5å—Ÿ¢qºYèÚj§lk»g–so]š?Ÿ£Ó+äS[™\uV`‡S¥©Ûh²~\®-:ŒÚ¾ñš>ÙptP¤µ…5,ý‘ns,À<yB´þ©6±ÿ‘¦‚EHÁÛôÅ›®Öͳ۸VQ>ùg-zìSyN<¥ý¸Üâüeõ©êñJžèÜÕÆIý4ÖI•¤r¹èαiš½v‘3àœ˜M]zIŸ¿Ö yF64‚“¥jû¦e}mä™i¼Ñ +“TªÏµhGS¯1Xê䧳™ŽOGMè$ðØNìîG±]±'#÷U“£cCýÓ!ÃárÖ03ã`dˆpCŸÂ¬µøUQ–ÈÄ°—tz’{e°¾9³oTQ5ãéþ`Ä;D+ºyº®E´5.ân2Ó +!·OÂö™{åÖ䆪þ›eb)ƒùÀc¼Âùn£7`Þ‹–ÁeE¼¸ âó„spˆP±¼VãëD…+ŃMcT2Ŧ}óìÖ—Ï'£Q0»êuãŒë#W9®ÐÄ=dÜƆ}–xq)ñ¥†UFZÀÈ_9ÜÁÀD+~CÀ´ùñïÍD7Ú<˜½BF@ð<u7l‹€;%Jå’ää.rÁ'Ý!zÒÖŠˆ8Q]nÚn‰ø +°½_Và ¶kŸG‰ÆVcZmG_TãÿeÕH‰p$¾8lˆ¬ñHå•åh£ÜF~-ç¸{6²ùÕÐ6–dzf%ÇBëÁÉlêD€Üm按{’9A¯Cf>©˜!C/vƒ +ºãë;Ä%5øHà)[-¸¯ACJbýÅÁgPÃÜÔ¢ŸälG‰ØÑ´ö.Ä9©3“pÂfÕ +Š +\±ÁGY°w6ÂYê @bx='Ë%ÙÙ߳簘ü¤í°w3Æ% v7³}õ¹SÊç".PÚï·NãSÎóï]E‚<‘ÏÀKÍGå:MD +?!³ñíÅ׸c&uú:šÓ1ØÆóÙƃȹ8˾õÉå´W–Uâ„CÝ!Œb`iº•õw¨=zÓ¿ÃmOÁìà‰çãî[‚ãyëÜòÅ€5†•TlòÌTèüËã,Ù“+þ†çÝ©¥þÑL™ùh›UÍOºêW;[mæE¬?¹J\FZµÜ‘'Ð7.õiÚ±X¬³ +aâ\7&¯·ª{\õø³ñ7uòÊ»†T}Ö¾§ •-¥¶äÎ"=´+àçí}ˆ´e,Y6kÇU»E²y&ÅUT„nžèðúмfMàiJ„*_ŠÒÐŒ¶Úº,P +ñGJU/"î_î<!ؾù¸ç +6êx´yÃÔ·ÍxfÉðg4†=º?®žc¾%–ÇÝ`åc"äÖÉÑÑŒ'ÚÐÌí»¸dþÈÚD" +X¥€¾žž×µ@ôÓÎ/Þ¼½LÙ~X{ôntgVPè
¯ ”+“ÅÊËyyÚçgÝjÊ +Èøè¼Äô‚„u¼*3²6çoF±ÛÍòwå1þmHÄ.ºv¢9—×+‚Ëþ3{4‡øµ¨ò·¥÷(lË<EÈpٱζt6,SƒDÔ@s ,Þmþˆ×“«‹üU×!CÛmW+ŠãíË)×æ,+t‡ÁÉ)mT?Ä^7ù^Æ#1ˆA|ß‚QU;Ã;„Ù:ûuå¨Rû^oÿßÛ}ª<&„öH,O_3†}*\,ˆ4Šö`fh#Ø{wiÞj®h¦ßÂjS×Ø;œ¤4Îô>Q=–ÙŸ¯*åCã@=ý +¼<™¼ÓY®×±®bQ+0?ê$ðña5=ý)§ÿ'ELÔ+(Õ/¿ü7BaÍ;<*Øè[ØÞœ ¼ÁÊ&œn™œÑ£GåjÇp€$õ¯’Nge>c <™°íeÔóÌxÇ´“ç%yî
_ÍüÁ`Œæ 8^'K“ké +@‚åÃË‘€ä%VaQÌ¿eþ hueþ·9Óêc¤Å¡(õN)ËØšWVj[@¤¶¤¥Î„š®YQeH—MÓöíâw_±uäÕf¸Æîì[éV›§Ìï|QA"+áJ»ˆjôÅt<û·PJ“$ö‡Æw·8¥Ñ<Ã4
e~xØ¢¾Œ‚¼(3L!ýTvŒÁ[ç_Ø:û–J¼X¨\`X‚ÊHÜk¦—ûž5™û,üIgT]”ùt#´tIùhUòÜÓãŸÁ•–Ø8ÐY'×vÛ‘‘GöÍ?_,̼„S™
ó“\Œ5s´µ›A“]˜†\/·Æ‘È1R€¥ñ’ÏǨGyá$¹(᪮)Ÿ¥¯ŽJzôÈ–.<S©û°âpªq¥K€ß#]€Ñ1y¸‚QºÍDS—½‘Kì©R®Qÿ AÞ" +ÙŽ‡òIGËÈìV\ç¨;sõTuÅ6Ú@åo†hËFàë-åJ×”çüCäõ¶am§Øõ9«TS¥s(O¡!ˆöç>¼½Z†-‰ ®ñJëÙ/fo—-„BÀãf€1²Çyg$Ñ•²nû¾PE8¹‰V³Þššà³Ú2îÒŽopöU+Yýˆ$®'©"àqa»øˆ +:Ñ#%1“Œñ™Òdø—2¸¬LŽHƒøÏ7ÕºË{Û8–÷¯‹ÊÇAÞÅfN@êá_-ªºùùšU¤‹™¼±¡V_Ý.ºNGš¢Ö᳆¤ŽßéRžáLêOWk2-± VpDò¹ë:ŸÜçT/•€fàþÖéÑm?¾S¤Fγï*§3upàì ·Øe2»þ·³™›ûV¶¯”¤TW¹ðª÷A:,·‡„?~¨ÝÏáÌ®ÂbÁ>Ö›2ýöÚzR¬ÇÙÇêòfyʇzçõŠ“)J;–¯µk)FRÿOcµc^ì<›ô¹*@yb:Ì«
k`o•<=ƒôšjf‚Hx—$Ú µÆ82cÎô^Ë6Éy‡Íøý5QKÒÅú…Éd¶XM·vÏmå6&†¤>®Êœ¦UîC6™¬£1©Åþz‹°€§[=ÒaiËM/]Ì¡ê×¥6;<—ÎJÉ]•äó2M3ˆùËyRÇ8h›Çï›OÝëÊÈJŽ˜ùδN
§ˆhOß
8M£Œ!#Áá/Œ>z‡ð81ðm´Ò»ï©b€ÇQf¡SÄÙaðóïˆZU²çò·× +@‹zǽ9¾ÙyI~ùÑ·`¢Ùª¹˜ïÜéð!?¾ªÊXð±¨VL~K‰Œâoí¸=ÈøûF2¢Áð…®CíÏ/L‹äÑ`—×[Õ}ŽÕ‚òâÚÑd.âÅ!°D ¿-¦èurIEc"H‹ðº™ö\ÄÉ;%–vâ³:ËW‡vÉ!9"ƒ¬¥kX^Ü;ÒoV›„±·_èG»ˆ–µ…Z?ˆ·–&S¤’k“¿N²=¡>{4T‡Eì†Ó´4ówKÁ\HŸ‘,ÓÓêHL+÷ˆsìØpT"+罬ÈH]uy[çSIË ¿‚šÎ‚!{õÚÓ_G}²>˦ÐZ æ®yØ(Ý¿V'7w×¾1³÷ez›Iì† toàÆôUY£ås=W½ŠÙ¼sò4”Ó¨õÚ¾Ùù§y{¼AzæøÝ9ýˆç] +§²Û%ÀhÃ!¾Ù?ï¸O`ÑLD0RøßD–ºajÑëßþœ)®“©y´±»–oÛìÑq`j £©–ÈâÌƬ-{Ó‹"@½¨8˜=ø9ª–·Öì +æòÌ÷ôªCSöÆRXZöülÁØ»D´àÍ÷ÿ‚,åè(KUrÅ¥»ªJG(þÅ9`N@=ñ)Z:í‘/r.ÕºHÒ‘9ãéÈ}½ò(‡'¹mñV“d®>±7=rŠ§t±‰gT>ÏÙ +[ðÝêùªqÕºÛ4-Òä¤óI ‚5—,BÀ(.dCÖÞ¿· +¾9i(ø©¢'¤„Õ_Kï½Z0mNÆ'¹÷ÁPoT[W+âÑ»^C$¥’\t…&Û1C[ÅÒ'ü½û>ïJÀº +‘Ð +[òàa}Õ†âç¬ À“€ì'SÇ£ã'rº{êJUåÅt£óÓzÏT»^rzÊ$•…ì% û~Œf‘ŠòRiDRoP˜i‰Möó r'\¤ÂOù9ìÂÊ~_Oí•ã÷_²õþéçO&O¨Ö$gL¿üå?.ä x¸£…ox\•åMedG/¡Bo§#Zlr±·/ÎÒ¤HS”²Sg’½Ò¨þi‘ƒí_ êYÁwj{5ÇŒ¨““§¹ßøÒg1/Q sÏrÊ~h–
½Ø•hŒ× ŒåÛ˜<žk½bºo‚55þgE+ ’¿Û˜2÷?M’]-Ô[&/«Þ5sbêÉ?H´ý ª0Ag%%ÖÑëKåõÍ91jÚ¼}oKŒü-Hš¥^¾Ì<‰e=€ +ÄfuöÒÞ¾|ÍEŸÈJUä°OW„Â~Ù©Zx°(ÁýU
ø.éu¦¯½/îÞãç´kE9%4ýO ¹ö™šÎ=üP~åèH(6Ø÷fÍ©æÿ7ăž»:èc_ê¼^Ƶ¿ê0•rÕ6Â\]CW‡kŽf¶ˆÉ˜V~²vÖu[ŧ(Š³^y +ù›®xeýÄl·º–ŠŸÝ»™¥°*_^«é-Ýù: Cm.üÌÆõ<6ÁéÇõ :©O¥ÇºÑz™Y§ü5^,;FÔZ°ÿŽ„úÊ!’ÈÒðß‹¦(D·
Ç•µÏ¬¿ú6jË/§CĽ™LüKŽn÷†ÐKÜë¡Ùw“‚Ô”(Ü]Bx\0«Íb‘‘DÍAÕÇ°ð×sý)ÓØW¶s§—±‹$r4òÎlvdì"Ðâ§þ(¸þ3ÄÃ5 +Š›»¼ü‰ãëKãBóU…žÉÔ°žü"éÛÇO—¸móö¤Øýžyå’oóyÝ¢+Y;5áÁÓ¼n›m¢Ôé~ú%’=“ð8‹…jnÛÜ×ù|yB‚ðÕ5ŠÌ9ÎÚVháW†3*Êê¹óE¬ÇU
íV5Bé:D¢1ìâ-Má¸P‰µ§/å³×ã-¸5òhܬ¯Q·†éï—ý¸áõ¥ÒÓ]‰Ž=ÛÂåóÀð'`Ûàø]ˆvvèáÄx[½k¿ÀÇX”×¹×1Nø´cá4™Ë8d‘Έ¾ÞD ’BZ0Þ‰<†Ë•ok:[hnÎø!ÓL|¹êŽ$Žã}Í^}Õk¾ëWHS¥Ï1‘]²Ô$\²ç~HLjŠv2–ïå]⨔aiÂ|G_ŽÏ1<ö÷4¿„NìT¤o_±?</ôt&܇–.A¬U‰P¤ÅFÓ.¸‚}»+“v@ôœŽ½!òïègöe‘›Û+÷Óë‰Ö訥p^‹¬VCŒ´Ú=Ÿî6çñ*J'JF…bq¨sc²j,ÿÏàþüW endobj 997 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 2 /LastChar 216 -/Widths 2941 0 R -/BaseFont /BIOUDM+URWPalladioL-Roma +/Widths 2959 0 R +/BaseFont /ENTCZU+URWPalladioL-Roma /FontDescriptor 995 0 R >> endobj 995 0 obj << /Ascent 715 /CapHeight 680 /Descent -282 -/FontName /BIOUDM+URWPalladioL-Roma +/FontName /ENTCZU+URWPalladioL-Roma /ItalicAngle 0 /StemV 84 /XHeight 469 /FontBBox [-166 -283 1021 943] /Flags 4 -/CharSet (/fi/fl/exclam/numbersign/dollar/percent/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/bracketright/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/circumflex/quotedblleft/quotedblright/endash/emdash/Oslash) +/CharSet (/fi/fl/exclam/numbersign/dollar/percent/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/bracketright/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/circumflex/quotedblleft/quotedblright/endash/emdash/dieresis/Oslash) /FontFile 996 0 R >> endobj -2941 0 obj -[605 608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 0 500 500 840 0 278 333 333 389 606 250 333 250 606 500 500 500 500 500 500 500 500 500 500 250 250 0 606 0 444 747 778 611 709 774 611 556 763 832 337 333 726 611 946 831 786 604 786 668 525 613 778 722 1000 667 667 667 333 0 333 0 0 278 500 553 444 611 479 333 556 582 291 234 556 291 883 582 546 601 560 395 424 326 603 565 834 516 556 500 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 0 0 0 0 0 0 0 0 500 500 0 500 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 833 ] +2959 0 obj +[605 608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 0 500 500 840 0 278 333 333 389 606 250 333 250 606 500 500 500 500 500 500 500 500 500 500 250 250 0 606 0 444 747 778 611 709 774 611 556 763 832 337 333 726 611 946 831 786 604 786 668 525 613 778 722 1000 667 667 667 333 0 333 0 0 278 500 553 444 611 479 333 556 582 291 234 556 291 883 582 546 601 560 395 424 326 603 565 834 516 556 500 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 0 0 0 0 0 0 0 0 500 500 0 500 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 833 ] endobj 993 0 obj << /Length1 1614 -/Length2 24962 +/Length2 25005 /Length3 532 -/Length 25846 +/Length 25894 /Filter /FlateDecode >> stream -xÚ¬zceß³eÙU]¶ÕeÛ¶m[·lÛv—mÛ¶m³ËìrMÿþOoæÓÌûp"ÎÎ̽re®Ü;î8dD -Ê´‚& -CF&ìhjèl °1t6å"T75!15&db"däää„!#Ø{8Zš[8RüÅ ¤¦¦ù/Ë?!„Fÿáù»ÓÉÒÜŽüï‹«©
ÀÞÖÔÎù/ÄÿóFeSSBgSB3KSBayMI9qB -q9UBqS;SGCB#KcBKcS;'SJB3€#¡Í¿-v&–ÿ”æD÷KЉÐÐÉÞÔØòï6SwcSû\4„ö¦Ž¶–NNß -Í
íœÿöÀ@higlãbò¿v3À¿Ù;þFØþõýS -fH{ð1Ycgl -ñi0–Wä¯}Ã4¿ðtóE&Åt¶Z \&—Ešà’º››¹š#/(/25©â¾î‚C‡ã{»ò-o8J<îqæÔ§
- -㼑a1Š¯@x×"ÙÍÕƒHQzHÈÈH<àtáŒË{â,ȸ†ÍÊ·K3”’/Y”Ôty®žˆW"So¼¥¯Úh‰í}oSOw½MOY%9 -Ü~ü¬1ÑYpy(Û©˜_H÷²YÔïÄd¤P\Ó8xü0°lmçä+öôkç9cí%ˆ5ï׫M‡G}«/¶»+¡CUa.44@BØ^»÷GQê-îØ-¦e©%C§,µpj s—„„¦?l•%Ë1àLx‚wcŠ2cQ: -\´Ò+j|.÷`ÆiNººÏ¥ÍiÔnÌÔp=fu˜…îF×vÉVv¥®‡ÞÑ¥ÄÚ ÃòF-C?Iƒ3q+ºë¡8yŸ^q[bÏÉN-w¿*÷üAfÊR"ì-vkìi:‹¸±ª±8±ä‡¿
T`ë=ÎT(V¸ýw¿96@â2b4¨ñùƹ°+÷é0Lݽ=¯¨üÁÏò›¬<²Ka‡Y|:Ò—žú-E¤M…š;Wl~(بâüuù‚½E¿û˜ÐÅÂœ‘ƒ(ub°†Ñðâ%Cä%«xzªÀ¸Èûj§¼.²_ǵ'Ô–=m7ÛBÀÆ£¨{×ÄÍ꼫ÂVÅè4ïÇ.M¦À³ì†´= Ò1 - -áê¡×ßO¿UæÝ¥šQ=ÑlËs]T+$O¶18¶ðææ#¶V0BxkÅx‹‡YT•º]Ö²Äò}‹ZZ–Äëe1该P,É}éîjÀ(RŽ›¡ÛDZù4P˜bw×4ªeÜêI˜@ ¿Rq24§iÒƒo•æ7…j,;Y;ŒqªúQOhIäÊÓBuNí|ÚÌ -6q #z~bj#ü¨Šèò‚Æj~Ä•C{")ñ`uà*hñÜ>—UF«,뢇7æÛ–8*Ä´‰·mz¾ÞGW‹Qù©“öæ^ˆ$SÐz¶~a•6©áºÐ…Pí—>l”é›/Ü{\kkàÏI¼‚èbÈÇd¡!èEUÓcˆÝýd
¿†#[Î+¥º*™ïˆ¯€Ü°@·¿ßå|Ë>SsüîóFPF¬ÙB¨þŽ0¶m粿R‚–Pï[#@Y4K£»åí8c tÔÙÇYm̃z‘HÄcKKÑœ¨ÈÏM›ÕœÏÀmí¤š–ÍEy -<…:0´oè%VèÅŽi”Ú¤ËöÑÆQ/f ó³X(g‡¹4JQ¶&–
%CDÌ\jö$„"é^-NývÖj)HLò¨ºè•µÍ“ œ‹H)·4¹
HÑ8Ïÿú(õ«!4ÿѨŠ TQ`([ÑX|oãh†¹¼-]‘ŒÃS¡(ú&Þº
௉ÿ”ör7Z è3¯LêØ÷k£˜#úÜ2ñäüä½x†EÝû!rÎì¢Úƒ\·ãQ¤›ÀЇÝ.
:“>Kà¶PNøPÚ¶;e£SoIáªÁ@…>Y§%Çu
EåhÊŠåFô¡ÊˆwwÉd[ÿîÿƸê§!^z‰†—T¯ ¹ \ òË"Ïþ¤ X÷½Ÿ}‰s¤´¯çœÏ¡À˜5/䊬t ”èÕØ„"Â[k!ì„FŽuôe>‚•M‹.Wa6æ„pà]c†J7´žÆ”=GÇ p}JP{Ÿõ¼Ý E™Ùê¼I~ˆÛb¦(g¿SsÃîÃuik›à:ÌÛG³a²Cå^X¦ê.ZÅ{Ò -`'æA!˜üåöhzBåFüÂO/Ësmu«¤†,óHë‘c¶»²‚lq 9ÛÒ1,&Õh?Ú{†fùíÇî–b—.Îú¤X†×Í…²þ%ÜÂôûÄö([žA«ÞÃú)µÁ‘Ò\x˪wÔ!„k·gÒs„
¦’/`0Š]AP§!$þ‰öÜa£Em¯ˆkõS}¨á9´úÝÑÅï´x©"ÃG…ØY+çZƒ‚<i÷»2þžoÄE3éÚSçM«Í1M‡# åŽ'©¹Ix<ŒAÉD£EŸúìbkz?•&Jû7&Ø3Õ È³ãll'*QjSœÉå-«J}ö¨PU0vóá€>0˜Ú+-§np¯ŽõÖ!2>T¾¡ú”÷.6yçÇC¾ç5ŸÉ»p{á0|õg-#™Š¼Öê‚}‰€D&8ºÀd··oßxð°Ï¯ØËV;AdðŽÔŠÚJ¹Nd-³º5¬(> Þcd‹²bCÕðD½ƒåù¨àua¼rI¤,âÇÌÍEGªK_bò-T¡þ`fØ«Ì‹Ž©3ûH@W¿ëŸ#·¤‚Ó•JxÚ…aì~ÒG`Áæ©dlv@Ý -b>l -œVŠ(‰zÖu
ÞÐu¹˜3ý\7n%“´Œ@TÁ{0¸JØü -‘y„›K
¢UÃÑäs ¾&¹G -Ùp3Šþa°³Òi£·×¯t¯B.ãA%ÐÝ¡ÿxcû}`¢¢ñ' -fÊIûþÏ‹±hÒÏ£èÛ9û½ú¸v7òr蟮fA‚åêÛËêããYaŽïuSi?eXAO‚8ôÿÜ -;ßýBtÆÅ3{’ù¹Iøõº9Í”\V†õ+ÛÇ€¶‹ˆn„ÒdK;h¢¢ïïñXOÕŒÆBW÷ƒd#öMDâá¹{F&Æü¹*|ö«:È^?\
ʽK–ôÜa›\KR1§8_üŠ·å’&G¢±H]š+ÜFÇÝ>µ[zY¢àÈ‹|N™Í·C¼ý8H?»¿§5BfØLÅÇ£Oœõ -vN±1¾{‘/IÖ‰¡ƒÿÛa/¦Àl+oDNk1Ç~âtjÐâS*Ó<Ï|µßCqiÄ™àå^Ös‡oôT»ãœTEÁ«£É ®3¥Ý õ}>²–7²@éã#ÂÖÝb'§8zðã3ÖÂlÞ¸oW¶Ïκa«ø%ýÈ1Éa€%ë굶疉£ÊÎ0zÀ!>÷º˜µÒÿ"qWîàdÝjê}_ -7ÿéqó*Bjû’€’V(HóŽx -/ƨÏÏ9êc$§Ôcµo©Š~DxÀrßõ¡%´ÎSݪ5H•ž%ß·‚S|úKžÜÃ9²^É¿šj(o÷׋YÞ§‰'7í…Úª½4«üÏõg4œcõƒD“zuP¥ãeñ»1o.øN™Na«5Ø¡F‹W]âÉ+‹j£qD÷3…±¨•öÅãìææ˜VÛ‚u¦êä÷™qTƒ‘´ZoVÀÍÏÓaàïß|ð]Îæ{{jeD˜¨t¹çµ*aPÔñ®†žåVaü2Î\}‚–z3²žzû¾æ調Üp °ñ:cù夨i¥½xÚáÞ(ó6»‘Ö/k©ÀKÏÖÃj©Ågâã4*&Ä‹Ù%.‚¡b¬‚Ću–èúØï߇ày|Ê… ò®†©¡æw˜W–ë`md…û«‚Öq`ä1²jÃYߥB! fð+Ƽ)éêd$@X{Lé·ÃfEƒšíºDKÖƒ)®H|dëbÆèá’«§å3C b—ƒz°>ïzAìÕhõ.‡[Ð ^ -~†sR–ðþögØ=΂/Qqqˆ! SíC幄{ìyÇÄ—¦‘¨êVeÚ&ò<\4Xõ#¸òYȵ²„Û¤
ŠfÇ/
Èa‡óm‡SyZAð‡°âŠŒAÝÈ{ûßüxm¤=Í=ë?ªâÛ9fÐ
‚;’RóJ4Y§W#($EóqÃ.ÃöŒ€VCÐcÓ
-|&dòÒô’ÇÃA -~x¢˜¾eÄ6žŸpã"ˆtBù(iQ\mBj7}¹íƒ®€rfLJÀ)q&*»2K¾%c£Ø“Hâ®!?©°ÉJ½¹è
¥&´3o:ðKÞ†c§Õ¡©Fì¶$ʧ@ºO¹D¿ù)ûÛ—»³Þrµ0ºG÷J… -2™ê[drKX©+²áWnC-¹&TIªhÂPü! Ó_t‹yó–L¬ -›
Q‚Å9XF„qœ{¿'‹©Ý‹ük[K´› -Ž3^ïîtl7éEÐR^™UY5.ÔÉ<ÙŒ?tLúdJ¬OÔÖ -œ$#Ä ªôÔ¶Õù·y-Ë.-ŽAš¦Ï$ôT}]Hyû$öæ““m{Ò ¸ü†Uó|+kcP™>Ä N÷>éå4Ÿà?÷÷'o̲[6PM4Ó÷€»‘«4׮ͳó¬Ý¹ÞRRé’;™Ý¸#Üš}3‰òìÌC‡—xˆ™Ëœ7¶Ð–µ*Ó»ö}†¢ßÊÐR.$D
í}Óeï)FqÞø œìî -ÅX¤Ö*qÊífˆC!TãËüÌeSŒ7p
/077’m&cW -VáÆãþñÇŸZyꚌÆ(e‰GHŒ¥ÁÖë¡„ÞhÚY8LÝ6ú}96wc$ÚêÿþÛJªèè„C/7&_JSËñ´z ÔVg¿NÃ}aãµ4·º<â¦?y—†õâÁÕëònà°JV€5…\ô±ÅÿÚwTä¤iô…uvjc—`\<U|ŒÊd/Õó))ÔÒþãR-Åå\-‡¤¤DoÞå±($ú&—èôV â½âî”Ø`(fþQ̤Ön•G †:mr¦ âäéŠç—D᫬<1xSPŠfès -zÿÖc:›#é¦,‹ h¾1M¼ï™áˆ
¶èIÊ¡1Déœ
]ÍT%b#Æ”^…+>l$Â'üÃéú[úHõCÿ»O»ÏðsÀG¹zÇ%Á¦«ËªIšÚF=/çó~Ãç‘qç*Oéâ¶;¸‘_ºNê½&úÓ©8õÏh°WäÒýÒ±wÒð3ú©á¸X‰„›¸ˆRÛz9Ðø|y2—º¸ôôÅò‹>.CC{¸mÜl|³„ýˆÈ7n€§;[í:`ØÏÓp×>ø0=Çù^|V”áÚÀUññ,±[ý&¸¤h«¸YÊArÇ3{%-"CøuiíÄÀoóô2^þë•5EêOÐã–`ª«¨ï6ú×UüÇ^’,†‘jp.å)tiÒ+"¨¤ïë¬,÷ØéØaKÔxjTèD0î}Ó$Óïn\¯,\>~šX6ô‘¶5ÙüF;ÜRåÅ-SnŽÖÏ)PÖ’maKËîf×èËÀŠXTø®ó·œè—ôÑ–`9$&Í·µÄÉmv"c°k›íŽ¾¶‘n|ʺtw³z ÂíÛŠ²žYÎ%ÈB¥*(\=È.αˆ¢8w#Ðù÷–ºÒÑ$1wlºL1AjÕÅ#j)KÜk²ãùmË¥4šHkÛMáfyÉ7ϽfêWp^ÂãmlUüî_qRy:+dóÞ™?
ˆÔošÃ»ÎJÅi4ÍER‡\¤äbc¨ÛJin‡¤˜n|YÆœ!¾ÿ`TÓqÖ'6¾ZÃ:‹†XµX–Oß•vnw³sÚDbF:Þ]Õ– -‘c啯úäQoà.ó+i‘ =ÈÕýŠN¬m·þÃpí.=Œ¥5®óš®H·><ǨíÉ:‰[¢óÕ³Ž_ùg›ÒXtItàó -ÂÞeî£õ‡ùÞƒýÙ¤ç¯sÌ†Í Ë -ëo4†H]9[
5Ûü¢ð9OàÃs(ª%re™¼8Í$Û&}Z͵eãÄlw)†Ð†m”s{f36MSøJ8¯FÑogŽÇGó8™ÅyŒ4ˆâJcñÁ>bxx9Ùä"< -P ZB¢«tÆJÞ®Lg}9d11×B0î•e7!(›Åð -,y¼,
—ånêdAéUš’_ÛõúæáÈ›X
™¯[ïãƒb†Dë4¢[‹ß’R¥áÇÅU±—ã$ž7U$›Ó°¥ëÙ+ÂXÖó;_LE'Ä NÎE¸™GÉÎËòh±F2¤ìÍ4%¡ -â_ñÐîI~:idt—ÅìÒfù*ÖŸ|1^(¬x"ïh(“
Tc÷8)Iʾ%•u«õ]Õhµ‡ cI” -Ægè-—“a´(ö«]A™°u¥$k¿ùítAz;@;3ò‹¡M]w£6IãnxWd?7¨'ãv¼ã|åço¾>U%€`µæ~a¬P?ŒŒàpŽ¯H¿{5ìà‰=ºZõPìa®”|0r±ø(öÇ =„€ ×÷ÁÃ86oÖþ%KdX]‚Â}x9ó5ÜÄÛ0® -¢Go± -‚Ùr"ƒÇ¦Û¹gš¡ÄÑ‘ºö6èl•*?õ×{Û'´£·b„éLÚþg&ÂW$„tçñŒiû0÷wÂî±í‹IP7 \¼m£ºe&ÿsá "¹M9Ÿ7dò?æ¼ÜFº´È¡ö?í_¨Ô§Ïj–[‹x‡—/{=Y2-vÂݪ-Uº_ä¸ô"aHÍÿé,“ÂÓQv‡ŃG•qƤu±!4 ·³Tú¬@R¨3³š¬z(7vÖ¼Ëï)h“Ü&°vŽa$:„W?Sv©ÿ¢Q“Fn[·‰ýª‘;]£óØ[ºâ&üe¼—N…6˜ZSFÄ¢üÊĤ£” [q’EÓ•ìxd§rP?.tÕG¤“|áÝkØ!× $ñ:º?ûüËéW,#½çÎ=©EèåE.t]}©váG^,š;I!{¹Ú½X[ÙÚJå_3¢-ÿûaÌp2~銃ÜG«ÂG -on®±ˆÒž¶ ®áJ<©ö; €öÜ x3ø÷µ¦'qטáŸodôY™(±Ÿ¦,óÓE_3µ#¤1š‘jsÅû³Rñüd~ -«ä…ÛÁ0|XÛ(rž[äñÅ -n£?ÀïÛjë&a5"Gçã^ªxv¬ûĉ1µ§i–Î+VÍÀ§Ušš"súØ€ˆÐ¾§4gW¸Öïd}/®W(¥Z-å™ì£ÎØŽæ>BG‹z©k[Yš¼õ‹}2I#‰Ç½È‡™6¶B÷_È0Wši?>üŠ¿ý§ˆg²¾/ýôºèô¡¶Ë’…P‰œÀWëÐâl?/
nãöS׳A‡Œœÿx‘P»p†SæÅJ3o6^lIðB,<9ù}Š`'‚(ÈY¾U÷»«|oOŽn¨‡‹òÁÃÞ
ä‡ÙD-€ðÀCô¹Å -óÛײ‘–RX›0+R -èùú÷f©ý‹‚Îzø3ºd”ó‚oˆŽH×üÅöOé% @¥¢Ñ‡"<ÓR:Ï£‡±|Ò-#%<õxZö:YÊö;¿;OL;S¹~ózA´®#Òhc0lúÙ1™ÔéÆ‚·(ímÂïi¸„ -ž/rÿؼ@“ž\±mbçQR†Aɽ»C|ÛÛ$÷cdñW&Áe_¾y©Öó»Þ?cîŽsç°t.Dì]¿ÇË„Yv¬@ôVêèïiå]?—ÉŸ¦i4ß
©\¬Òœ0æÔ=þ «, -i ‘
fÚ åg5NAV–£OÆÒHë˜ñA½=ôk~–B´ð+õ.´ÃZ†=0ѸDÌ[P5xœS_ξê\ßÛk£{ºy*V—†ƒÊ»âç!åhÚéWf5vK¾ íÊÐ,6E5‹˜Lä´ïná™ $t*0m®ŽF,–r^Ô.ÙLþ†Ý-)˜¬½ãükN¸ÎAÓ_TÀôLšûªÞ -“سïñ¼g‡œ&{(¾Öx4¦¾æ±»Ý9ˆ’9ÌYÕ]”ý ®3[ù;ìÛ. $šÃžúSá2ZЯ -ϼ'ýPb€Hù‡š^•9¥vv&!Q ¥±¹ÏT>KIëkO‡T*ÃL÷
giÒÆíÍ5;¯>öšühöu1mì~ýâ(f -Dbôô´¹¡`C°áP/þõ -6‡@%ì„gùyÀgl‰+Èe©,²’4¸A&3;}Œq5¿&³@†+*´PÌ^°A—+‘YIz¿o0lü›…ûã~3ÜJsW!©„0‚{21ì +xÚ¬zcteß³mlÛN:¶“ŽmÛö‰mÛîØ6;¶m[ÛÉëßÿêûÞ§÷î‡=Æ^UµfͪYksÆØäÄ +Êt‚& +·(:8hŽôJá3ÎÕ£½®evÀ´ØÕŽö&•ôJ> ð§;X¡®Ÿ©üI]üÑÈžì|ÓâÐ;‘š€Pê +ÿœS$>?ýê¹ï;ĥɉƒ&çqƒ§ˆòwÈÁå×Rj¢¿jÏ2á=xhÉY*eÑ”·ŸœòÚ€ä3†K*·9/vƽ:JŠ›æsË°¢U;¯Qj°Ç?ÓcçËК¾üÄ{¹ùa‘‚ÒüBBÞØ›BrŒíyûÓ¾a +™ßx*‰å<“r*[-P.“Û"MpQÝÍÍÜ +&åD£Až!"[›VNóúœWù,^h±{q¡’ðž¹ |FWÉB€;]M]¬^^Yˆá´þû+òíZzÜÐ0ðl +š1 ²»It‰>@ày’43L‰Xe’%=8KNŸ¨y©5ròA‘CÆìšÈÿZõÆy=Ãb3^€ñ®E²“«‘¢tŸ‘‘¸Ïå—÷ÈUq
›•o—f(%_6¼ ©éòT=¯D®ÞxÃPµÞÛóÞ¦žîz“ž²Bz¸õðYc¢3ïr_¶-R1·ØŸîe³ ßÅD©¸ª±øa`'ØÚÎÅWìé×Ï{ÊÖCkÞ§7Z›öV_lw[B¦ÂRhh€Œ&°-¼8zçª ÕSÜ-°SLÇZKŽAU +jáÔ@?ê. 7ÄpÐ*KžcÀ•ZñïÆ(eÆ4¬t¸8`¥W ÔøTîÁ‚Ûœty—K—=ܨݘ©ázÄë0Ý…N í’ìJS½+J…½†íV†qœgâ:ZtÛMyü>µì¶È‘“Zî~Yî‰HnÊZ"ì-vcìi:ƒ´w¾¢±0¾èG°
T`ï9ÊT(V¸ùs¿>2@æ6b2¨ñùÆ=·+÷ùm˜ºssVQ‰ÈÏú‡¼<²Sa›E|*Ò—æ=E¤M•Š'Wln0بâìm霣E¿ëˆÈÅÂœ‰“8u| †Éðü%Cä%»xj²À¨Èûr»¢.²O×µ;Ô–#m'ÛBÀÆ£¨gÇÄÍꬳÂVÕè$q‡6ÓVàIv]ÚPé +±lAâm›ž®ö0ÔbÔ@~è$}«¹"Ë´ž®[¥Mhx«Îw"Tû¥¥Dúæ÷ÕÚøs‘,#¹òÇ1[hÈzQ—ÆtâüÆy´†_Å•-ÿ)¥º"™ïH €Ò0O¿¿×é|Ç1]sôîóFXF¢ÙB¤þŽ0ºeç²·R‚žPï[#@U4C£»éí8m¨tŽÜÑËUm̃zžHÌkËKÙœ¨ÈÏC—ÕœÏÈcí¤š–ÍMµk
T³6ì§c6jé‘„¡@3=iåìü±å=Ê?bÛ vn4¶m•¦ +ýÆÔ¾fX)d¤o; Uj“.ÛCC;Ÿ†ÌÏêg¥šâÖ(EÝšX2”1s©ÙeBLEÖ=Z˜üã¬ÕR˜àUuÑ+'nÿš#E8‘*Rnirë—2¢vžûõQêWCdŽØ¨Š TQ`([ÙX|gãh†µ´Ž#]‘ŒË[¡(ú&޺௉ÿ”ör7š'ì5¯Lú½ç×8J9Kü¹iâÉ+øùóü m'QäŒÅEµ)¸nÛ£H76±§]t:}†Ð6l¾œè¾´mgÒF§Þ’ÂUƒ‘c¢N JŽû +ŠÚÑ”
ÛøC• ÿö‚Ù¶þÝÿiÅOC¼ô?©^As^¸@å—ežý-HA±."ƒŸ}‰s2¤´¯ç"œÏÀ*˜õOÈeYé@)ÑËÑqE„·ÖBØqÌëè‹|^+›]îÂ&¬qáÀÛÆ•.Z'Bi=I{znáú” ö^ë9»cÊ2³•9“ü·…LtP®^^~§æ†û«²Ö6Á5˜·gÃd‡ªÝ°LÕôŠ÷¤eÀv̽B0ÅËÍñԸʵø¹Ÿ^: –÷ÊêFI!=.X.æÎ3ÇlgyÅb_%r¦å÷<ºT£ýHÏ)ºå·‡[Š]º8Û£b~7êÚÔpÓïcÛà `yFzëÇÔG*sá5l«ž‡îî ÏaRt˜J¾€(A2„øGº3‡õµÝ"î1´OõÁ†§ÐêwG¿+ÐâÅvˆVgœ+
:Š¤ïÊø;¾aͤ+O9Ü7Aî6Ç4΀”S08Þ¤æ&á±0F%AÎ}šÓóÍ©y|‚TÚ(í?X`OÔ OfL3±hÄ©MÝr&7l*õÙ#BU!À8̓†ýúÀ`Zè¯ô¶\ºÁ=:Ö›(PùJD“Þ;8÷ùž/4|„B&ï>Âí…ˆaêOZF2yÕ{‰ÌpôÉnoÛÞ¾ñàaŸ_±v‚(à¿S+j+厹P´ÌêkØP}¼GÉdÏÅ«á‰{ÊóÑÀëÂ~Ê%‘±Š±ô7Q~¨.~9ˆÉ·P‡úƒ™á¬°,8¦Nï!]îKü©ŠÜ” +NW*ám†±ûÁ#w’#¤’±Ña +…Œµ@×oý—˜ÀkÛï}ç +Ì6ó†å´rìÇ¿@',>¥2ÍóÌ—Ñú<‡ _îd=·ùFN´Ÿ‘©(xýn2èëHiwB{Ÿ‹¬ýY ôñáaËá?¾S=ðñ™ka6gÜ»£Û
ŠogÝ°…]ü’~è˜äÐÏšuùZÛ}ÃÌYeg½
àŸ}]ÌZGí{‘¸-wp²n5õ¾+…›ûô¸~!³}I@M+$‚Æ}G:cÒççñ1’Sê¶Ú3TÅ8¤‰NÜg½ëüÐZ㎩nÕ NÏ’ï] +Á->ù%OááY¯ä_ÍN=˜·ûó׋YÞ§‰'ݹڊ½4›üµ'tÜ#õýD“zuP¥£%ñÛQoTnø™a«UØÁF‹W]’‰K‹j£1$÷S…Ѩåö…£ìææ˜VÛ‚5æêä÷yT™14ƒá´}:o6Àõ“!à{ï?|”ðÎæ»»jeÄXhô¹gµ*aP4ñ®†žåVaü2Îãܽ‚–zÓ²žz{¾æª¿Üð±ð;bùå¤h褽xÛáÞ¨ò6º×.j©ÀKO×ÂjiĦãã4*ÆÅ‹9$΃¡b¬‚Ćté{9îÞáy}Ê… ò.‡h æ¶Y–—ê`md…ûª‚Vpaä1³jÃÙÞ¥B! ¦ Œˆ*F½¨èëd$@غM€·ÂfDƒšíºîEKÖ‚©ú/I}dëbÆœà’«§å3C b—‚û»±?o{@ìÕçiQô.†Z0_ +~„sQ•üüãϸs +ŽE M+PÕÊ´M>à½?o(°êC på³ke
·IÍŽZì—à çÛ +§ö´‚àaÃ'… ߺ.+0öö¿F|m¤=É=í;‹ªâÛ>bì×
„;”RóJ4Y£W#,$C÷qÃ)ÃöŒ€VCÐc Ó
-|"böÒô’ÇÇE¾¤œºaÂ1žwã&ŒtBý(iV\iBn7}¹é…®€rfJJÀ-q&.»4K¾!g§ïß•Hâ©¡8‰©°ÉJ¹>ï ¥!°5kÚ÷KÞ‚ã Ó¡Fê²$ΧD¾K¹À¸þ!ûÇ—§£Þr0º[÷R…ìãIÜû>JPðêðB ™t')uvŸ.+߶Rƒm¨"#jSµo’2…ú[dbSX©3²áWnC…&TIªhÂ`ü Ã_t“eã†\¬ +‡I‚Õ%XF„iŒg¯7‹¹Ý›âk +}Їÿ+ßP‘㦑¶]ºÉõ^|€Epñvñ³½T÷[¤¤PK;â=)¤ZŠË™ZiIˆÞœËCQHôu.ñèaÅ{Åí ‰Á`Ì(üƒ˜I/¬Ý +¯2MÚÄtAåñã%ï/‰ÂWYylð¦ ÍЧ -†äÝk¤…–ZZØE€,Ã+nÊÑÄøœ2ã(À|ÐB0ÌnAÏ -jr•Ï„¦ÁÔO‰p¡¾Ÿ°á¡_YM)—‚Á–˜ozWÔ†üºx¹Áœbè6 D)W¬ÈøFÞDËççòH^ämZ’¦Cê퉃OÒ–7pô¹î2õÙJr/•õÓ³uåß¿5Ä!#6dGº,
âCàKy‡õ`…Öô[;¶íÔÑaÖgw\òöl B}¬Qpú¶ù‚˜œû{—šîÒ•j4Ô -Të¥k#ZÌkÆ Ä¬}\°ŠË‡‚—ÕMCEýLw· -Þ0?†+»Þ[øj˜[NiäJ¸«v¹.±ÅÑ·!4Íçî‰Ø·ÅÀnuʶ‰éíß©Fu“/FMÞsËÇÙaeÊò2ð”/@ -¾žÈbÇ]‰-ùË[}F¼¯¬gŤTí®1¤<y1ŸOC°Kê—ÁÛfˆzæÝ&ýnƒ?‰Æ-s{$î3Ñ~“¤Ù1Ží—|‚<P瘽éº
0Ÿµlª¼¯`Ìë\%-IC5%<JPS‰V’ ‘çOµŸ>]žÁÞ÷å*„È…³Y£Ž®Íïå>÷Ô‹eÜ.å¿38ö§hgXWü„{Xß%ƒ5*˜Ä…›Ô¸«úÊ*1²ñ°Ö’&þÑgºl×Dàpk•o¤ògªëk«NËcqÌ;#Øa‚b'H3ßè´x¥ÓqWŒƒ¼ÖíÏGH8P–Gm¸xÙæ¼^#©‚TNØ ´Þ7ÜU¢·f±¿á>÷j¢+Ö@׸—oÏH‡çR=2Ž¥›»»?y…AbäÖlTòÜBgⵑńÄëV ¢@í8XÔìÈô‘±ù EMIÚV‚àµðµ¸ËìiÜ*¼ð`Nö}ïT¬?AÛÊiÎò ú[¢5] «-ŠS\Ë×ME4ÐÐéëh¤®W^ƒÙZR=þ¾€‡8vm7;m&ÚC:GõVcG‡z¾9ê =ô!:0Š -×Oq/Ëf…hm‡y¢iñ’Öñ]ùÆñû‰_ÑMÔÍyÈäaMx3,Hr»sGù®TñƇÛd;Ò6±nô‚âÑ‹'Ÿ’5ÝGê -¼,…I;q©h…o{“T DzaZÚrÒºŒ¼?»A~v+œ6•ÎF¨)¥V˜ŒÓÀ7Ò©|
¶©Ê`ô‹S+ÙWZ·†-à9/°9Pû£©0×¼hEÿS»¹¤DöšÇ©|؃‡ÅôQ§é
‡õ6K^9÷9AÚ02í
ôJþu"3PÉÝ0.@;îpíWê–¢%ÅË)ÓÔ±Ä(a»„Š•ds,¥œ€°fKRìî$‘Ûò ZÂ[²’&ÞƒVb$×@(· ÆEPÚj·ŒOÜ ¬vÜŽÒÂ0ÑÚú+ãÏàªèšúœJ0LöØ}‡‘åʲY¢Š†„WYø‡õê9VäêüÖX‡ˆ‹Þ`÷§9Q±GÀ6a°!PÔHú‰nœ\lÝ7iÇüq·¶@ùä|ûCITÌk?›uÃÃã¼o÷d¶j«/OÝr 7ú;È<Ü+£¶qíæ#›4Ö[Lõº˜`Õ)¦ÈÌÂï—¬w¿I,ÕÑ¿ð_ϱs–õ¤›ÚáÅÿ±3mÁ㬩¶uÉ]Ÿ&¾šdð™žA³‡¡jJY¥»Œ×QhéÛßkhÔdÕPcŠ5¥õ¢J´$~¿5 µÅþ¾3ئúQnEOê_
ß2Åiâ(ªt…Ö¨¶–+ÈÓk¿(ŸQg䔈‚jl.¬¤žmtkñRP|>Š=}nJ *8ÇÈ„g_WÝ®Œ—õ+¼•Íä6¶ðhÕmØóÚ¹ ˆÿwkÍn‹ØÖæaðÙF=U§k\!÷é“>Í}Éþ²Ò6c°ÅìC½ïPUÈñ¾Á¾FÖ,Éà¾eö4°GñeášÑ¢Å"W)œÇzO§$#G^†¾I6ºb¡lì4=E§8ÁâÄ«ðÔc‰þo˜iw¨ ={€õôI=Wlº·(N˜]ü;h|-Pn%Xª²ˆ~~»'"«òÉ@Õ]͹à*ΪDÝ*Õ&¯æZL‰~TŒPé–¹CL
è$Ù‰™”ÈÌ=cöñUa~-,'lÉ÷ûMZ9×Q)¡7HüÏ$_‰qšÑÁ%Û‘º/Ó"Xô{nKï"£2œ¥¦ ‘ì¬d)³ÐŠ¥ƒÔçSìýÜh× ÁɈÒ%zæÃȱåm™,~ÇfVߨ-¬&¨u¨úáê$Ý›7üg5úІÓd6Ш†ù¦Sº
Ì”L·„€çï*w«žJÿ䟋ã¤æt‚¢«0¶\Nê´e“ûéãÏüŸ¨ö5M.áäþ;ÿÑ÷7øÕq‚ªˆ@üuk… Õ˜Vº›à)(Ѽ.¾1½€”(ЈŒ£´¬)¢bwµý -OmÅE5ÃÁ‰ñT9Ý%ઢ#òJ&Vû0/ËÔ%ྀÏ9RÒÛN…Ô°º‘”óÙÀañ< i«ˆajàX±‹¶"A—•ÁødÙdµ`Ö?ɸӿaûÐ#7Îò¬'Z0ñãèhm£ªš`”±<g¯xì}t)âK(91£íÐê‰)vïïzf·4"òJ
sxÈvz=ùºœæ󒪾ß\-±ôk -=Ú‰i7˜F¼Ž†_+JÒðôÚØKgµh4
(Ür,ÌÓŽLÃzEœÑOpÁ‹hè©Ö’•^ÌűuLB+}ɹ!=Ýúm’.?Ä?¯•±Õõ¢/f–VVÄJãÇì~ÒÙÀx®áÎœçËÏô:Ö‘¼Õ|·¯ÔFðe/¨£jB3º/]É{LæÛºl_$”¬÷[p}¬A¼<å÷Ï»-@Ù?³¯QÔ‹»â8€cyæÙ#èrJ‡šhúGˆ`‰õ¯µ°JÓlCúQþ•&i¥=¡R,Ð/@…zÂX0MŠ4Ùþz„”Ù®p8çˆS±·šê÷q(þSGD¼1'æSÒT2j¹ôi<¤é½ˆ½ÔA)YÎÑDµ5Þ“_âÚàð‚ždO͆ø€’ਟœ‰ßï“ãùí„í½OK¤;]â:fßQ#—Ýåy°˜1ŸÜ¨^.Š`ϯȌ)Ƭ!°îÍÓ¤~@Ü›Z’ÈÄm]R½Ì±lÉ–ˆÛM=‚è»o]%î5H8ÉñðJ¬s˜{ÕmoRÝœ”Ü%¶¡A€mžXŒNzÓùxî~ÓXS ª>wh Bú#Û>öcðÁ§yÿÍÓËì z>½ûÔCÏÌç0¤d‹÷èóx@©%p‡;¾Ë0ÄîÞ›ñS"GÝ8m°>I»Þq|=…ÍÞºÖÁPŽÙŠ`*¾âõ•W±2å —Ê„s(ҨʑieM¬î3ò °vÓ.ÈøÛæê:‡d}ȃüÂF[ËM¥þC‡e/Eœ·ß¼¢Ca-(PÞB‡‚_ŽO¶ó:Z•žŸOXM³¹)@õ'
¬(–3ºéìجDæ7"|¶Òp -¬>;äò4 -H -,¿TPÚ£>Ÿ°8ÛWò¸¹‰ÜÁ0›ZÂÚ`íL^ìRIs -s#—Œó¿å26Bbm@*QæóWv™zħ;ŸÃƒ¼%›mĨ)•ÅD²›õÇ™5Ïçiöäô2dÏÈ¢üˆÌú£KgîVËœ÷кÜöÀÉbÂQ]±·aáPüøòÀ!~&58¤ UéìôvlüÚtÅkCYwO(Z’èøãɆ¤ÎJ•î«ç@Íw÷È ÞàµcNÛu -‹w~öÍté-7µ³{-¬§±È+Jèä?$üyüÎGnŠÙVËz—‰ãÒòARáJSIðÊ}D“Ä(íŒäˆ²«ØÇ–w½SwR᱌ú½©ŒiDÂœéî[“ä:¯–â§ù‰Æ–äAlw’.ò>ªìJ•gvX9Y#òêjèžW.Ò*W®.1õ×ÛF)7Àa^¤»<š‹44EŠXòî¯Qœt ¨þ‚+Wrëu¿ßœp@[Ç7ƒ}§È‰6y”ò‰Q#Â~e;r¬bxSîæ(|åaôÉ·ŸËSÇ·IYÎl'7W?Ø`m,ËÉŠ9³–-ÄhrlWÓ½òõa… 3Gˆ Q³âuÚ«Z`é¨[†‚šÀqHkU<¸‹µøDhW&?׳fךîOŠ£Ù'UÜ¿5µ·Y<Ÿž™ÞúýyìÖgJ¯bèsõŸ:†‚†ÐNòÐÜ«•£»ÎØWÚ|¤º(R.g8u$=Vâcø”§„áä¿‹¶I+É«Xg•Q8“9!®î )Ò¥mjô\oBÓc<y<ffµqñ>l^Ü‚¹=aä–>T~E¸Í+ý&¤ iX£¬mý®Ê‹†TÆfx¬ÀjΈ]þ!ˆ„ô„¹Ï -|
WfìxV'ÆSɈ·ëc–&øY -ŸÅ¦Rþ¨ò[,rhtDx㤣ڶ -ì”íÑj#]…—°¦škSÑNf†#bÅ·.ÆÚð°ú™ò«P!›è„1Aü’v‘ — dBDv'OWs˜:n -*vÛ ³ðX±BgŠ¦wµ3ŽþXÜC«¸ñÊE‡œ.ô«Ö¾
޾ˣÜ<”¿;³©µËä‘PTåðã°ñ\þüo*ú¿ŠÿÄ\5•Yt™‘ÖÎhý¹j¦aµšS`¨ÓÁBÃryx/7KèƒAMñÍs;žØ‚+Ÿ<È{/yq C³‹3¢«;šk`ŠÓùõƒ,Ï«Ã1Cdæ}ÝÖ“!ƒ#©á+³g› á–{r<”æÄÀ? -”p²‚Ì’>›®Ì!—Hûç¿Í»LûJ,Æw‘É/S±l{;0bòÏß™V®héá[æƒßOX8÷Ƹx&Ÿ§8GÔL‘-‰ÕÿhÔ~Å°Ó_vÅ;]hyÞy ¯Co¥ßä<ç|˜U -¾×¶±ýX:½ë£`Íò|Ï/\Û0wwN†½-Ÿ©,‘ýœp`ì…Ζ
4C–ŠÅÎm’s]ßxÙˆ´Šà&ð®²É)ÑêûÄ«.å}#2,dþ"(y¦–Ai|N[TðjÄðº/†,d\rjÏæ]?öt¼wÖ¹œ
®æ¬è›Ná—Ÿ8çÇ"OðùÁ›‚jÚw -‘T ï’«ºàmf¬®–ˆ‚8VÙ17f“®If)¶˜ÉÇ{§˜µ†¿o¼É î0–HÓAýñR6b5}c¼àoÌM r*'WèU+”z±öÍÀl#GKfaÆéQôTZÉqNÕﬨàdg‰÷i+3|ª#@Ýì&ÞM„ÙÝÑ>©LV¼«¹wJöº/$pžG ¾†6ªìk¿ÏÈ6úXð7ä´/3²† -{¿RÓ„¥cpçÊ´(§×"¿îzQcöê0ÖóŸ\¸PCåYsP¥ä+}›Tã|ìÔ:Pd¨~½9iÜü1I4]‚Ýdë´m¼°ÃÞ¥íhqËÖD€•6Ñ©M,XJ:ß,ú´÷zk¯IÿÅ´(„ª¡Z©#äÒH]Sø?BĦcêO–‹Â†òö-À<q»×ëMX,SŒáy±ÍôwWf2%n§./[v}|5z|{ÿºx«:CB'ÇC^._C®u -+ŽáoÑÑoJÓoä€à).D¦\u𼓠-m|-zÐ#çbûŠ×—†rÿ
쥑Zèñ‚%Qú¥.¦™?úgÚC)àhÄf‘¢qÿŒ‘ -Øwh¬ƒÁ’ãl„«$I<e.qÄz/9ŸV’±L,âNÓ/Ú¤:c¥èó¥>¦‘5œ]±RžχäÍ(GƬ/áOtgO(P»Scí!|@¬¿|N0É¢"¿±íq¶P5R@hAiËDì[pêñjÀgÕêõ¢¦‘ÿ@‰Tn£6Fz¸;GË‚5‘r0çÔcÁ[ï(þ;ÎÙØ0d»UÕz<ºÈ&ÇZô¾¾
`§ù§€×NåÑ99*‡ ñôˆÌÒ"â©üsÈLSM^÷›MÇݦ¸é¹ùc!CFEYÝO§_F¦À¡1¿ÂÑï9oú˜}SSQ¼ôìCÁžÉ¡N(²õo¢áÐ윅Dé}ñfi¹“ël¼&‚m~¸«¸òÂÇM´9t‚VTQêƒÕ~뻀Ÿò1AjEñÚ¶ÁP6#V ¡ÜJ5äàýµ›{Þöþs|¥P9bT¦ºX4Yp’P;ÎÊõëYý—†½w@4*4¥¢y§©‘(ƒ‘Om:Η²¬ÀÐÇô™§¯yCöÉEá S:äúK AüQwÞEè³4Í,ya;dÈ”/#ðƒ“co;Æ©¡£«åhÙÛÕÐJ¹¡0q½Î• -C§Gußx{ÛÄœ„B;ÀÐ\g•~—àèiœlðv¿¹ôõÇ™‰7ßZ F¢¹fŸq:ƃ¿øëC -}bÉ„•Óµ Vß¹ D¶53Ÿ¸‡vðGПO*&æ\ŠÛ+>h-s›N¾)h2ÞGŽ>hÌÂéG:süFeæV6Êœ-ª‹¼¦)¯tà‡\§óŽŸ2E}˜Äç—å1£¹VY…4È)‹®x¹ -5Cð -hó¾èmÆ€‡qŒÆá:4›ùÆaB-ª-nÍØðneVŠÄÖL$Œç_68ý0¿gዶ‚›ž´ýÅ©<^W¹?·eÜ/ - -l¥&,C†Œã·ÖQŸ8RÔV»ˆ:»ß
¢ÿÕ°¥¦o…Äóô¢&›Dñ„æ„ñ>%åqUEV -Jã(†N`
/õÍþ`ôV’(H…ó¬ÐC>ø¢H§A®æIØO¯õ–0ÄhfÙý˜)š_x〘ÄIMme}Wì‚|Èà¾NÅÁä2¼Ô°yÅÑ¿_ÑdrEˆ»ÙŲVÓ¬w#ºÞp}§—;Å_G°n\OªˆàPcŽ>n?ÿcpåÈñò‡VA0] -ƒÂóqI¾ÞŽ´n‹TèÔ=ZÓBÿü:åT(a
v|(‚bV~Qù`N~‚ñÑÕÓéáîÞ¸
RƒÀöðša‡ÄP@xD|i`-.O&~F`4y£UÓÿ
HÉMÌöÞ8Y€T¯B"y”x†\äñŽmÄ´Õ¤Ê诰¹ì·÷O±,‰D¶8–ëÈá
û0Ñô<¡;+BP¡juÛ4¡ú…wÒý}"íç…ïÌ -ùÄì©¢"£ÂŒÚ1§@ÓÇ%ìÏã:ptu2DØ/jÏNÚ‚âî -þ ª×“?ŒÎ^TEul ^´—çq<Üÿ-¯+ž4ÛŸ^êJìZá¡'+ŽÊÕJuˆá‚Ç+~¨ìóh~)à‡A¤ž¢(ÚçèÚØJUË€/)²|(8îñ¨¿‚Å_Ñúõ@ -€Ërs»îX
ˆ—#®#>|:+CƒMü\ûÅðêUT°ÎšÍOa\ŸÊTÅId`Éÿ!)µkâºüzwˆÔ|êˆ •Dà^ -«9“ö¯#ÕQÅô/•p±ëtTu¦ŸÑoÕoÑF2ÎçÖºó¨F¿xüþÙDQ)‹€®¨G.eáÔ÷ºÙh®o¢_ý/_íÃÕ£ T\‘YÂCû->×kl,¨ÊEX›Ý¯¾ÜWÀSÇ«GôV -h›À -JJ”ðú»,aüø‡´Oe=²§ùsõB.-9É?…–ZEè·v"‚‹ÏCÿ£3N©eçí û9–¹ŒäˆÊæ9a#Þò4)CË;ùW¦5Á™-öO¥DÉ¢Ra‰¶µºçiN¿°4ÿ!VV(䂸„ih%tL_ܶ?ó&·ç\cT -´1rÕ¤‹©Â–C|YÙEoç“âÙšFæm†‰bégâáH:ÏwüØ'Ѐ±ÇPzüܯ*ªÍÅë¯Ö:N/jÛÆÜ„PÏHEÆSsÏùo’OÜ¡³Þ+"¡&íÌßèæEÍÞè„Ðg &ÜMÖOßõ!pú7Øɯ2Ž!l3YÅB!6tÓº²vo›·ãfÜg+/“ácÒË`Èqèa;žñËxù<ý}(ìšLÐöBýÊ”ˆ;ÍÖL„ê(õ~D™êq¢˜M©Çá5b*àÎöæÞúŸ{ôÚ8iøxÃk|ƒ¬n›Ôš…ÒÚE_SXï=ˆ÷ãf+¤m"ðÞзs®õ:é‹ÜKÎÑ4åÖ·!D›ÕñØúÀHþæ1}’ Cej»ÌO²oDª2Œ°š@ÞªÄhGO‹& fÑŒx\q¨åÓH*“«×EãñÎŽ`ghÕ`Uð1í$!7³NN¬âä–NM•)ña{®yµWϺç)®‘nS˜~Ø€gÆI ôÈû8³¶}ÊàL‡TòíÌF¯C0‘;pŒ/h°[Ç.ùõ§¨²B4 '…¡ºtdˆÀ4¡~0$îãò†W`TAj@qy‹2 UÉl\²lå¯ì×½T¤Š]×ÈÌO“bq<1~úÂfÍÊ’ì—W¨8’…¶ÓÃI¿ÞK?›@‹§² WSuÝG4W¿!ÍrÞø§ˆ(ªyô[üÚ´æ»Ú•ã¨öï¶aÎûBá±j{6úMóT÷¶×9—0:'@:5+¹×ñ®¶ëde=—'’M•~‚†L=F¾‘d cƒ~N¬5s²czçR5$þ'6«3yi@1¼¢r¤y¬ƒÒNXr˜‡š¦ù‘÷·HQ¢H9=WZ8 ¦ú;M/åEÔ±²ïp ʹ1M„òÒñžT;¨ÙŸ[bÙøøáïj ù¶–è.h¶íùÂ’í1§Od6ä2Ó•€Sõ„ Ò¸oMîî›@¢Ÿq<rØX?+e¨aÃE› ÓzŸÂÓˆ¾/¨”% wÇŠ¢?ÛŸ‹À›® -‹'Ô Öe‹Âo†÷L~¿ñþ\ì<h¿g¡‚™ýcJCK¥wA½pƒ ï#“ÑD$_´âÀÞÍ¡ˆN5Å?¯Uµ‡å?7`ÿî crâÊÜç<¾¿ˆ\ I}¤xÝšN.PõÈ»Œê½pRUõ– Ÿ®ð$öµ©!ê£QÅÑØäkØ´ŒÂ„j¬@v”Â’ÑlLÌnmUEX’æ±}mî´z*l9Úï^IöqJJaþLÁäc“Ñ&júi`•¢%×î—ÛØÝAA‡Æâ¿ñ -emÓÉÛŸ«3^4TòÓ¶¬@ÈjA1ÝiQ·ˆ ‰Ý÷ĘtÙö¢KB:Aÿ¸‹ÿ~…¬QN¶è•]à^H£î8‚x÷7^LMûžÄh5ý‘y.ïë`Ï $G^ãÒt°x\àü¹Qµ -¢“˜.]âeŸýcxŒHÁ‡¹mbÞ
¾
#{Z¯ÆSŸÕ‚¥¨žÉºølõíý73\»ö&ÛT¹™Í`9Í}¤™å¦ï[ê¼<N5z ½_|ïh-óÔ)áäâöl?Þ9)9š°¿c(¤GEüÛŒëÈjK°ÍÚ$ ¨ñ¾ž2»ÓŧbžÙ,½_‹ÈIT>RMº(v¬|ŒQ|Þ¸V-'±é·ÞóVÈTú¦Jeˆ«Ôa‡ˆur Ûõ¤)gˆµæÂi{Ç¢VP€ææp¸D7ý™ÑÍH¸p½÷öÙt£¿#rKاjŠ-üòPýñöÕe©,´“
föö’ -^~ -Ãå‡8q¤Â麈^ñLŽq–}¨Bƒ
CáÛ–åÊ—
>²–{lõᾃËS×ê&“U -9èpa0õƒÑßœÀƒwsi‘÷ëÛÇ* tô†tŸš… [¥wÝÙ.Ÿ+$è+ÚÓ_ý¤iÌÕKÕ6(ý"oˆ¦—2'å™GÉž?IHééæóP´¾÷‡Ê§)ê^pA9"?kòowÖÕ—Ÿ†_²;tÊ+ioáÜ‚•êú -_ÏfZYX/JÿŠPžUºÐ±;Äó™Ã¾¨5ÃÎ~¢M~;-5”äÖ$„€`3’’˜à0ßnpöã¤ÒE›ðÆúb89qÄZ¥| ž½¢ MæƒVþu– -!µãmYgKà”‹ù÷ÿ•£B}ôçüÂÛZ
= U³W¯Û䉊ù¥tàC½^¦W -QŒÝ›îl6;¹E& ˆÈš.®*·Kcî):+©†¸uó‘=t‹b'´á": -EúPjAõ¶Õ ª±E@
ûõo`¦iqKQ`_`+§|,33yºGÖÿÚæa#^¸“¯™ÆÀ¤Çð—àBÝ®éãó8OÝòUÐÇ3&]¥§J°Æ$h
‹YH<(|í HhtÊcµ YjCorpôaá‘Ögnj/#;ÌèâCŠ7±]c¥£ÿ|I4aü½ï¯kÅ3|M&ïæ†Àh¿}®²L¸¿‚fµÝ¤TíR8g¤=Œë&í‰A¬ >ª¢Ûd÷C{z‰-6ð7Tœçܧž
p"ÿ²±(¯Ÿûº`h/áw»7¢»ªîÈ”
û½U6´‹°ÚS
+ÑT~¯Tç°Ç&µÖªñ˜ü¶×êI z{çNÊ€‘±6qZü(úX(ø¢ZyÁ´~´ãÅ¥ÙÛا°ÞÊ›H#æ -½¨©5¯O3þU¬–.œ)
@X±®Kàð`ç0’’A©2ã?Â’§¤1à*\Ü& Ï×ò•Es”òœ³e»`Ž-Ä_ø£½—†›}t`òC;]t:ü#?=*rež‡¾ZNžÿµ×Þ ÞÏ-aæ:-ƒ;ž""·È¶ êÝ'(ž¶b—PÝò$&¦‰É&ŸydÌG<‡#{BŸí’Tdõ/úYýþª·Áè`þÜ(JæsmjžãdàѦÞ#¶«âÝ]¹CÑdH€
Aþ–/“6óN#å +W'sûþ‚á +·ò$«4Ù%1TÒ÷¼uV–{ìTì%Z<
št"ÏžÆI’éw +žWŸ¿ m,;ÆðzÛªl~£?^©òÂ&§)gëç$([I†Š¶°¥eW³kôEൠe,|çÙ[NôKúHK°2³æÛjâı1H?Ø•ÍÖïÞ¶á.ªºtw³n ¢›ŠÍ²Þ®EÈBV¥*(<]Èkn®Ñˆ¢8wCй{÷–ºÒ‘$1wBú{,1AjÕ…#)K¼+òcã¹-ËÅ4ÚHkÛ
\áfyÉ7ÏÝfšWp…ŸDG[8ª]¿â¤ò8u–Éûç¼3 ¨_7‡wž–ŠÓjš‹¤ ºîKÉ7ÄÆд•ÒÜJ1_û²Ž&8C|?“|`VÓsÕ'6¾ZÃ:‘ˆ†XµX–OÝ–vluqpÙGbE:Þ^Ö” +ëk4†H]>] 5ÛxŽ@Uøœ#ôÀå=Õ’¹´Ì^˜b–m“>©æÞ´qb±»ÃhC‰6ʹ9µ¢-|%šS£ì³3Çç£}˜Èâ:B@u¥µø€à6<¸˜hrîqØ'å÷rïv‘U|_šJ‰3¤áØ÷ k¸k%ÓÓN`˜bÜ-´%t΄æâ_¢èÑ—ðœJ(üU˜ÞNÔ옒p¢¾½è¹ù><‡âJòcâ€[¹.>³ †Î®ìL!½J“QEÛ¸"‡p@b=×ðÓÅúÐ.éðŒ¿/¨6ñ¼~lÉ¡ãÞá +vB”5Ò;˜¿J¢zŸ:ø¼Mo¿À’×ËÒpI>àº~_6”A¥)ùµ]¯wŽ¢‰ÍåªõŽ)>(fPô N#j E±ø- 9P~T\{0Fêy]Eº1[º–½,Œm=·ÝúÅ\ôpLâä\„—y˜\á¼´.k$CÆÑL[ª ~ÿížä§“FNQ<Î!m–¯býIÈCè…ʆ/òŽŽ:Ñ@=zG‰›’¤ì[RY·RßYM^{ +mð-£¢~; ™˜Ñ4i¢º„
Š.é±·†¨þyŒ “KsD4c䌹,ùö¼¦ +kbÔl¡ÃÜjxƒÜ—’˜RˆQ˘:-ƒÔ›|r|œCÌE\“’Ci}cµº²ú£®å#¾öƒæï¬4ÈßÖâNBb@Û¦x8mu™ý2 +80·bʈb3¹Œ´Aw"\5~F„Y ä^wþà=V C³ +˜¹˜*ÚPv!”-*¡¯°¥ésbZ˴Ἔê +Ægè-—“a´ ö«]Q™¨u¹$k¯ùít^z+@;3ò‹±M]w½6IãvhOd//¨;ãfì÷Ùê?|½0ªJ +ƒöáå,WpãoCØxpÀÔ$àZ—LNÌæ(4] sÚ€I¸ËfSIȃ˘„à˜†ã|ÙúäYÃIˆn½…(X;ÈñdL^›.çî)ÆGGšÚ› ÓFêüÔ_ïmƒžÐŽÞŠndÓi{Ÿ™_I.ÐGÓ¦í‹|À<ß
óºç$¶/&A]¤pñtŒ–™ü›,…H"´åÏo(Ïæ?yŒtéÎQBíØ¿P«O5Ô,µýZºè9òdÍ´Øw«¶Téz‘ãÖ‹0„!36ÒY"ƒ§§ê€‹ +*ãŠIëdGh@igôY†¤Tgc3YñPnì¨y—ßUÐ&½L`è2:ÅLt¯~¢ê +RÿE«&Ò¶fûU#w²Jï±»xÉCVùËx7!œ}.0µ¦Œ˜Uù•™Y!G)¶â8‹¶ï&þ2ÙñÐNe¿~Lè²—X'y?»Çð·\ƒ0ÄëÈÞÌÓ{,—_±Œô®?8Ï,t¦‘—…ÐUõ…Ú¹E°hîxp$M†ìÅJ×BmeOh+µÍ°¶üŸûQÉø]æKN +¶ +)üÙÙÆ"*{Ø‚¸†(ñ¤Ú3ƒà¬à?7Ö2Xž$£†Ïß(32 Pb?LY禊¾¦k“Å4jFªÍïÍHÅóûI(¬PnKÀðao¡ÊynRdÄ+¸0"‚ß´Õ&ÖM48ÂjDŽÌÅ)¼Tñn[÷Š“`jOÒ.žU¬˜O©45Eæ0ö²/ +èéêÏ4V©ý‹‚ÎZø†d”ó¼oˆŽHçÜùÖéE @¥¢mÑû"|Ó~2zÏÃûÑ|²i-#%|VTõx:Ž:Yªö[¿[O,;VS¹>ózAôÎC²hc0†™Q™Ô©Æ‚·(í-¢ï)¸„ +Þ/ +ÿؼ@“î\±-ç2ÆÉÝa»Û›$÷#dñWfÁ%_¾9©Ö³ÛžçQwÇÙ3XzbŽÎ?ceûBŽŠ¬ÛV zËuówtò®€KS´šï†Ô.ÖiN˜³êÏ*ó@3³!÷aÉùO%Z=CÚr›ØÏà +Ÿ‚¿Ÿ…¨Õ/j‡\к.ÌxÂp¬\>™Lê}{)ù'˜y
^d1]À‡ó¤K\ÙL7)Û×8F'!i‹cÝ›ôû!™¹®-:m$øgiÚVÏ +ÈÙ!zºZzD¸¡\™–]`ü<IÇcÜšÄÎfví£¿ù¥3²AHGdƒ™6HùYQ’‡•å蓳6Ò9f|Ðl
~çšß€¥ÏÿJ½
ým-Ño\$ùYP5p”S_αâ\ßÓc£{²q"V—†‹ösÙÏCZËѴïÌjô†b^Û•±Yl’z2)™ØiÏÝÂ3HèD`Ê\D,å¬.¨] +²™â
ç7´¤`²öRŒó3ö¬p9½ƒ¦¿¨4.€ù‰,÷U½K7±
fÏ'âiÎ%Mö@|µñpT|Õcg«c +¢š~•9•v'N&q •‰¹Ïd>kIëk÷o©TÆK˜nžk®Ò$däõ›ë+ŽŸú8«ò#Ùû|4Åt±{õ/ X”,üÌYÜçè0¬pwÃ-§â$ö‹3nãá$kbHâó#3‘ë@!û3½y¹êöBM–uÑö‰NÜD¢DM^S”ošƒõó6v5±Sjçþ¥Që[ã÷Â^#áåQÀÐäY÷T
l°0à)šdbÁ·%âlïwëa)‘H0¦1Òfƒ
Á††u@½ø×ÈϨw©¸<!³0ØKí‰\ÚáŪŽÏš ÈA'L\‚`P8)÷*ÒåAöè~ +oˆqiþ¾ã»M‰WÃŒE¡rB¤¥ìrÉqÉçφcO©ÛA"ŸÙDQϯr€ +®É§ßr7³©Ê +R–9ÊòvÕiÂ<Ïš«µ2µý°êNdéxúû½åŠ£MT„"”àÆfn(%}Jíê;}å>JU·Ù2dè3ö|œ#èJ¾Óžããší8ÊÌÌG¤Jª÷íîèØýÇz®×7Ò÷ç7E¦M,(Ò…ea%Ïc-‡ž|#''‹h§^“üþq÷æÓø <êF +A2ì¬J8 OòsO8—KRYä÷¤ipÌfvúZc´„j~M2 +fŒ—Ôè¡X=`.—"3’~ß`8×ówG}fx•æ¼®BR a„wäb8ÔŸ¿\€c5m‡è¬s¯½€¡ÑöÁ~¯aWKK`÷ÁiájÿT~Á«ÑáR*Q«/ö‰Úhõa~?Žt+YQ7 íÄTzôÜ£I!òÌÄ
E@ +YÅ>¿‹ií 7µZ|Ryºƒ.Sƒ”¹’ð¬«c[ä±`¸~Õ
w}Ù¥EÞ†lš>F9‚™ó±o)g‚x”9Oá‡ÃÐ"wypAÖç€Mïƒí‘ò@óqÈ$=ʪh= 2Jžƒ)s@ˆ· cúôIK¸qŽz„
Zfü$E¬F3„ø1HÂFÌM‘yMN*“´dgðP7JdºQUVŒz¯Ô }eCº_Löõ¨
Qj¥gû£‰”¦}îžbÿüNÖÃF3ÒjŽ6å@OâU>
2ÁäÇO9Ô€¬—ÊD§Ú£€_{Hª¹®|)3ûŒs^#;¯Y¤0B¯ËÌxôt~ä¹FÅÖ–þo¹6”Ù¼Äw¿LܪðXB“ô¬,‡B#)bðùðVÔ·Ñ™"'ËhUZÏ +AOê‚õÀ¾©“x6Q÷ ;¦…%p„ÞôÎ\*ù>½[ØTl±Õs9䤩– …#–Á1ý"›‹o/tCumœÜ3W<–œ‡1?SNq«=8·É§³åQLhÏyŒ%¿/ÉpT»Uê„•c¨°såsØN›,!o]õ’ëÏ31-@*ûÔ§†ƒ2JRÑNìÕÌ/mý’£‰ÚÚ
Ȕ؀õäå„AœŽ‰®¬ÇYwßµc–{2i3o€è›¦fP¬~{>íïT†¡Î?¥‰Ët«f+æE©pXå ÍÎ4X0úÉÌ
Y3¢¨EݲuÅJâÇ9Àé3QÀiïð~|øÒôe.Ž¹†¤%‚Hæ•ûðøIëT3O1œÜêüŽ‹1!ŽÖ~úš‚ 9gm:Ø¢³^ñZ¼5±™Ç³ûvR -ÒT$¤Z3}õªHVû ¼¶†´ÇåOê™P'iE¿ù±z)K”9)çÛ‹ÐÙ”ÙBña½D¿ˆP?;–¦ÏY[°é[,ʵ—™J±‚!{÷i¡§–v¢Èü”7e‹hbzN™v`Ùo!â°``5¹ÊçAF×`î£B8ÇTßKX÷Я¬¦…”KÁdOÌ7=„+jCy]¸XgI1t뢒+Vdz£h"…åósy (ò6 +IÓ!óöĆÁ„'mËë?ü\s™ül%Ý—Êúá‚Õ…¶üï_Šâ’“r _”ñ!ð¥¼Ãz°AkúÙvèè°ès8.z{6P£=Ô(8}ÛÔ ‚ $&çþÙ¡¡¿p¥ 5€»ùóq†6æ¦A†ï2NHÀø˜–ä×Séc&cÓ¬„xʳ‹9èÖ×~›$ê• ©a,Ê[Þ£.à•½rgIºÄ¹
O½¸Uðûð šE5UÕfŠ†ÏS‡þ룽ui*‡ï +î¡™RÒ@znÝ0ODztuX‹eÕ„„—Vqé@ð¢šP££i°¨ùöFÁ;q¨"°ó½…¯†¥å„V®„‘BµÓu‘=Ž¡
¡i.wWÄ–¤-v³C¶MLoïV5ª‹b!jâŽGF8Î;Sö'#où< ,÷—q%÷ȦyÔEbæÄü‚«b¤àë±,Nܥآ¿¼°ÕgÄûòZVLJÕÎ*cÊ£ËÙ‡¤~¼¡a†è€gÞMÒŸ6øãh¼2·’^í7IÚmãØ.pÉGÈ}uΙëΛ +¦¼nÁ²’4´SÀÀ´
µh%)2EþdûÉãÅ)ìMqo®Bˆ\h1»5*ÙÈêÜnîSw½XÆÍb^ñü;£c_ŠæPq†u5á¸ûyñrX£‚ <¸ €Ûª¯¬³Akm!iÄ^Ó%»ö ¢h‡«|» •çÉίÍ:-…Q3œŒ`‡qÊ]Þ Í|£“âå.Ç1NŠZKôç p ,Úp ð(ò/x½F2©œ°h½q¸A«DoÍb¢=ž•DWBìþÎ1/ßîáßž‹õ(¸–nînþ‰Y›3QÉëpó‰WFJ”㯛H^ +™md °ÇBé ¥À+ÁR˜µ‹–ùÆPq6ÈA•p-Û¦¤-'¬Ë(ú²äg6ÓÊéRémÔŠšRj…ɹü +Ø£ø¢ðÝhÁb»NŽs»CÈ‘3/Cß$
C±P6vŠ2ƒK“paüUxò¡DÿÌ”;Ô¸‡ž=Àz긞;6Ý[÷7'˜}ü;h|-P_n%Xª²ˆ~~»'›ò>!iÕmÍ™à +îŠDÝ +õÆOÍÕ˜ý¨¡ÒMs‡˜Ð òc3)‘é;¦ì£Ë:ÃüZX.Ø’ï÷ë´rîÃR"oøI¾c +þ´#‹¶Ãu_¦E°w"<–ÞEFe¸‹MA"ÙYÉRf¡‹¿
RŸNpör£]ƒ×'"rtJX"kÄ–¶dJ8eü±ù›Ù|£6±› Ö ê‡ª“t¯ß@žÔBN’ÙA£æšNè×±R2ÝžB¾«Üº+ý“,Œ‘™Óˆ®ÀØr;©Óy”Mì¥=ñ¢Ù×4¹„SøoÿGßßPáW†Å «‘€øçëVA«±¬t7ÀSP£~ºøÆô +TÆ^_ÔƒV¼}PZY+M³óIo㹊7}–/?ÝãXGúVóݾ\gxÁ—=¯Ž¦ Íä¾xz)ïM8‘oë²5vžP²ÖgÁý± +ñò˜ß7ç6egüıfDY/îŠë +ß8Y°«ÈÎÉ/Vo +ácÏ=‹ÿŽ™<—ÝQEù,æåÂ_Ä3˜cë É£êU@H#VsÃmŸôP]BeºUbŒE¡²mµâä•áÌðx„1#˜5LgO,Ô$:sÏ…‘àþãh«Ú:ÿ vÿ|&½ª¯[†Kº"ÿœ¶ªjÌ°AË–†ºÞxTñ§Éæ¬ËJè‘N~r¤ô×]?#V +ðŠîÀ\Ã&•S½ro¢ýu®÷áä!¥¦Râ Té9ôG– ªf×”u‰=ÒÐ)Ú3WÐ/ÐþáøÜiÅã=‰V¯qÆaË +G|¶`ŽˆÄîX×LŧY¢-,3¢ +k( ©¸§ëЈâ>Û^vWÀ„ŠP„³Âô9æ®æT8vEÕTØ›šíçs’¨3®ø~‚º^àWßÁ£pâ³ë¡„¹_N¨ê8\Ž´Q¿5îÎÒYµÐI0ÜÛX +›9yZ7W$[šÝùZW»VÓ/£Î±ºkTò¤Ôì§×‚·ŒPîé^ zß.W›«!OæC¿1»÷‡8<GoÞAdë £ú©@ŠO!dû½L†¡çÌ´ÁÝËdî˜nÄ—Zœ3À2àÁ²µµÀZÝǪÝBo÷ÓM¿0W¦ê̦u0a“i Ê ð})|Ô8E[„h¯]׉×õv#wÑ‹ÚS‘e^3øy¯£%#>›ÛÜ«`ò8ÀæBJ¡?ì«•B¾&ãÊUÄ•Ø[o}ÊqäìÖ(n+µ•âïÍÔ|Ôøâ&ɵs„ö…pònSÊîÕG•CnËŇóBÓÍ+0x1·<1ü(UJ›|]-7ãkJ‰ºS[œèí»ƒ×5’ŸÿÒ$-/µ«ß–f›ñ°Æ9 :…WN¨Ü]ÉtQ™û÷P´M‰ +\1µ,i%,Õ´”9cNXÎýoåÜvy;hÎô_«="íIºj²!ÔÆöóW°ºXpÕÄ‘MrŠ8^i2-Þø«hŸÎfÈ#ðE2nfQGà{Ò\µÝ[ÙúD¬”<”ÿäz2q·Yª·û%ô½QuÉe%ÍÏ#–
›¿Ú±wÈWîÑ£pÙþÏ`Â'?J•»†!g
9©Ò÷±5- J¼Y²®âJ)Sô°„ÀH½âý%³¹‘<¹ZBKsê‚‚ÞÎó):ª°¶x¾ë„ëO@)Ä(É(®ž’ðö q<nÍm~GA$Nµ¦EñŸá0cTŸ~“d‰Œc!‰®p¤{LÖæíó,éÁ0Ñ—¼’ÌöG‚Ž-3ô}Ä@½€W†Ø +Æ&ì»4T<ÒiõxhgY4¶þ½yà™Š®ÖŠˆoõ:êö»€°!QµòÒÓJ¾ù!?~£-ÇJ«ÊΛ¥^Áª¼ÿè+á4#œ(¶õ'ÍH15@¹y-¥×¨‚o]eÑK]ê@˜¼+fnŸ™›3¾õï†cm«üs¶»´ÿ+žjæ£}°û®{It™e†Ko#¥ÀNÇ«É +âO(/k]!„Ht‘Å㟩äûàÑëè)6ùHn yóÞø¯£Žt¡ùèÆû«Ò//ÓøÊø©ÆU#ØK S¬Š-öã× ¬iñIÚCjÄ´bÔ?Õ©}ÈE~&ñôüœ°¨}Òwdßý4·¿´~”ͽlÑtFôþz@r6ûðá³r£>k›Ð° +fDÛÔ5þÞÊRËI”]å›Íð'ƒÕ)†žhýWªo=תn'|@ŒJ"'G{ÕÎ×l©J”U’ôL,ûm‚ë¦ìDæŠÿ¬î¹l#Ùò¢©gVÿ9±@õ(êQñåÕ€Wðï¹M…SÛ„LJ”Ò®ªÝCþíW³@Yíõ@ya¸… 6`gÈȲÒHÂNxà!Áµ£±ö|h€'¶%bIŠÕ^Þ@é·ü™½8ÑËöQT‰évž¿™Zû¡I“rNä|4Ž„c +Ne¥Ì[×Ŷý(5™s¿eêDƒ7E7õAÎ|¤“H7ɱE¯é¸=º))Cq"þáù üGŒ£âo’7 <‰ý8]»M'ÿ• 0LYÔ©8ÜʃãÑ0·`6ž ø[AÛºqÞßð›XÕ[Ù˜ª{OáKè×càå"ÚÕêôú”o‹Ù{mSÛÊz*,ì¡ñÌ9yrb)èÆnxŠ©×;N›¾ß¨Öjï“Vj/Ä™*%~0Jí_Œ”É~¦~lIš°é~ìøú¾žÝó‹S– +2et+þ}óØhŸ#ï’wâàdf|¼ßßߘYjÄÊÖ +dzŒjÌ£.ÇõqãÍÆå?-±×aÆ s@Jƒtg?&ôÊ—V!eDÿ‹Ñ¬¿jWŒ»E’ÁÇ®´?by¡(”¶o +Ì1K1øæãIr½3'JØ_=¦¢¹ª¹€Jªö²D»ŒÖ4•ÁwTô”œ÷¬ºÍpJõ¹”°6Y…G—¦ª¬ +uòZQÕ1+.DÉòmXg/Üçèâq#×oÚjlYº…L9ÿ¤€Š›mÎWš–ÛÀÑTwÌ¿ánë¶nÚ¯ÅqüîÝ~^û!¦ ç°©8½ùñ"~^ggµ¬âG&‘|«'¿sj~pš8Äì5ßßà=9;œyGGcá¤_â"P{òùC³ªÖì³à1é8ÆT•3ÃåNp7‘{¾(Wï[„øÝËÏë1dÁÞaÒ)Û´àK6&hæÌÌF?_ùƒÉnì%šZÇŒàXWqµïœ£4äabÑa°ê£üT¦‚š=ÿºË5rÙŸ +‡Œ–e@_¹>‹®!©ÆýZÚÔ‚ J‘Ë6—ÞðÓ¢R¯›€nr‘AS}.Ë‚(te²‡±Ñ¥ûÏti/”Ðl¿+kH0æ8†éÈ•±ìµ÷šØ›r$–Äàù@e²Ä€1å¾jõ’OŸZ 3¤îðám=Ø2eWí¢×7ê>‹@±¾Èp·yý¢™OYDT z…ÜxtVÕð.à©×Dt^ÿ‘8ì©Øÿæ6õÞÀh7£þú™¼]b°™{©ÍS_°O×¼¦æ¬·2ôg|˜¸)9w8ÐgbÑ/zâß.$k…^茷…†»âÔ¯0"¬º8¡ŠÆÖ‡OŸDØE·3ƒÝ3ÃÖûĸ„Ð÷nAôj˜ÒæDè¦cõÇ›Ç?ÅY©l÷ÒÈg<¨&Ý»¬‘®Æš‡3i‘,Ý|¾Z:ä?u{]ÍT?ÔN>JþËÚÙL|kk÷!ÍäÔYú·»Ïœ?€¼Ññ{á ݧò.÷æR‡Ò.Üf¹,+Öâ™RÙOúÑa™ã݆þoøb‡VÑõÒ×… +c³äÈò0v‡®“Ù¹’¥='‚;*qÂ8ûUvÐdGÒC°}ƒÙ>Ô³‹»†Or"6÷é+Òwî‘yÅžÍ4ð⸃ŠsePI/׳P_?_/"õŠ©`û›©1‘dËtpgÛ×$/ÈL{ö-þ•#ûíà½Cjeç‰.p6Ë»÷P{‘ÕÑfŒ´¢¯Èg%¸„Âe±õ¬´ãô]hË›ªZucj]®,bñLªM7^c\b¬ä–«k!òŠ¼£%±nˆªcÚWÍÖîŒkà
W©ûãÞan5òï5ÐÇ7–À7š%F@Ñ<õ«#Qšê.sÂpW}¸[u¼ž#fì@ìÇÄËx¢þE¬vxÚÕð—L{NBñ(…bï·†í¬V8›PÉÞ"”1™Hé„“œS¥RÑ-6lOîÓ“ ÖùÞEÄ&5¥zS˜¿wU7‹Ì¼ck'£šmê»;a_h1Üi·ˆ•=»·>þŠÊ:"®Ðóç+èeE®Zk/Ñ{ùØy6hÆ—÷j…ü}¨ëÃÄŠë ï~ üN}é +ôŒ¤Mo‘§„ì7™f4º@ÿ(4Äpp/ +¹|7L25|È`ãÎ…åñ¯qA©FU{#ÂøÇó°ËøVwg…„"ͼOæ‚Ì: +¯?õÔ-ïjŠÁR~Ø$*ƒë_»ã–zVo¬{±e#[µ5f½«ñ[ ¾-Hzr¥Jù¾î¦Ü:ê™Å¦þ=>¦È4Ï +¸ñj£3 Ê!¼áí›LôSNø¡ÆolÀõE™iÀ +'Ý~§µO~.\A›ÎrÔÇ&—£»<ÄNõ+vñZP6²(.°»8NƒLñÑiÉëÌš(†—å¡„9Rƒ`
w8˯þ0*Õ3¼Ã„¥œC¦œË`7Ñw8€Áj¯¸p˳dLã +ôf¬ÍPaC
'¥.ÒQõ¶óÇ™j~H´8£,ïFƦÄëË5!uÂûÝǦ1’ö’Þƒu²õOÅW…À2²s¬¨¾SL¾p_AŸCW€3/-Âì?]C|µ*(XqÕ¹ð`}·Í‚FˆMTž÷Ýæ‡Eu›¢R&à™w0.tÁ+¬-üðI™2MËBÙ1쓽¥/aYý4RêÆ<Wt6ûþ²ý"t{s-’ÌXšm™éd3wéXæêÏݚȞx?ÇÅéX¡Ÿ‡Ò6Ò+ØÅM(°†#œL¨—¹î¿™¦²ÁÒ,ïŽ ¼Eº nf§9§ÕŒ9°háG~%É8OHk}¶Ulî˜HĦ%Zê~N¿ãÀ +—)GáåebŸ¢…š*ØFŽnàIþþx1ÅGÜÍÓ\â'¶g·ušóý”=?¯-I;¿êC´Ì¢kedáŠXµy!íÍæ .‚KrýŽÓhªÕ)}*™ÞQÏÙO½LÏÍNŽ} ú‡ãs¹Áì@fæ‘lÅñw9—š†¶3àñÝiÿÙ8(åE/àé—ÞF\ö½Í|Êí×€¬Ï©>"ò¤v´ï±F)=çvk51¢3Iôg”XÇë^v\2Äav>³ðªÖO8¡¦&ãJ^Ø=®Ìæ̺Ò_Ëëwˆ3_X’Áxµ 9.Œ×¢jêˆæÙBÇl³\ƒä)Ö¤s"xNœ\©×…òùªÇ/<+zÛw'Nf®*ꂶ˜¬Ý}r EjVéÌ;uöÑå3èÖô·Z$û2ŒœuA{Ô 0vù/×QZþlºü¾ŒršR±›Â²4¢6WÄr[î/ÑX}þeTB4´¸7'’IÎë0ú}¢ë9¸²Äø
[EC¹ýe +ž…ÜÙs {&-æÞ·š»?ö×ê+XBÆý4‚¸¿øÕó½Ù¤å† D16¹‹Õ.y +hÞ9ëåÝÂÿ’aX–5®‹Ã"ˆº¤Ö +þHBL„™J(ªÜ„£$V¿¾6ŒCÍ…a‚çùˆ_ø5°Ó˜DQq ;1œÒö×Uua +¡äŠ¨ïI¡oV™«óÎ~ýeŠ0voè,æ…šD2A„$3—„B{8ê¨×]¨aãÇýÑQÄ,Ù ¥¸»Ù)H;ÔW1ûê#Þ’~*sjY[øþQ;³r\«¦ô~zù3Vû”áÐHw#wèaº•½4¨çàm]VìéÄÃx‰”œ¦¿§RSpUXô‚ps¸MÂgåjñYGEz.ë¬D(JË7¡KCrŸšMÆÀfËÊòâ'sÙÊY +¼ùCÞLà¤Ðäï5„«dKAÕÉÕOÅö¢o,¸¢c$e0ù‘Äi¿UK'Zx,MÂÃ]Šë¼Ã³z]Œšë®µú"‚HXZðÖ)þØKs¸j&VDÅÔš½å/¾ +•gÄJã»U?ÔCï â`‘Ö¨{Ö°gÊ”CWRË¿žŸGVg‚¡ï†_¸ tËÙãuoÚ'„mÖP•®(2M”ò{ÚáÚ-+}VG¦>hžq%cX›W[§F
6e%Ž˜ûÛäÂbUéz{rÀMÉëˆt|‚"8º\ÈT—-°Â”xa%Ï +úÑ#|@ª¹N·#±XŒÌðš(U þ¾¡¯Éâ†6?’Gò±WÊjØ3U –Uc@®“yYµèÎíçý 4œ•)Œ«2ï®\|æJ)x¼þ2lË—™ýÓd§«bAmÍOÁã«ØÚ#ºtáÈ{L9ÀKÈ[¡!¹µ£XÓc@N’ë’‡ä—
ÚGDj=”ܯR¢ÆãÎz4¹s'«®1æ)ZGxCþ·¦ye^s¨Èx“Š0ZçÐ2ŽK=ÏûÌ9èÐÍ™'Îlà‰Î¡;§@¯áD©ä‡Xs‡Ï]¶T
ùæí/Qj.P+ÿF0Rf:3ó0‰ +š?d6!f¨Ì¸# +ñ3<Mê¶ÓÔ,ÎÇÅÀ9¤1<XZqø +»N?΂…¸HF„t‰2VþMÑíéB‘ó+3Q%«¾”ÿêèTóÐ1k9Ûº},n·³A6q‹c \%•÷Õ…´¼@X%}éHk±2%ngÖ(ÂeItý«D_1” endobj 994 0 obj << /Type /Font /Subtype /Type1 -/Encoding 2925 0 R +/Encoding 2943 0 R /FirstChar 2 /LastChar 151 -/Widths 2942 0 R -/BaseFont /VXEYMU+URWPalladioL-Bold +/Widths 2960 0 R +/BaseFont /LFKGMY+URWPalladioL-Bold /FontDescriptor 992 0 R >> endobj 992 0 obj << /Ascent 708 /CapHeight 672 /Descent -266 -/FontName /VXEYMU+URWPalladioL-Bold +/FontName /LFKGMY+URWPalladioL-Bold /ItalicAngle 0 /StemV 123 /XHeight 471 /FontBBox [-152 -301 1000 935] /Flags 4 -/CharSet (/fi/fl/exclam/numbersign/dollar/percent/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/question/at/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/bracketright/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/quotedblright/emdash) +/CharSet (/fi/fl/exclam/numbersign/dollar/percent/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/question/at/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/bracketright/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/quotedblright/endash/emdash) /FontFile 993 0 R >> endobj -2942 0 obj -[611 611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 0 500 500 889 0 278 333 333 444 606 250 333 250 296 500 500 500 500 500 500 500 500 500 500 250 250 0 606 0 444 747 778 667 722 833 611 556 833 833 389 0 778 611 1000 833 833 611 833 722 611 667 778 778 1000 667 667 667 333 0 333 0 0 0 500 611 444 611 500 389 556 611 333 333 611 333 889 611 556 611 611 389 444 333 611 556 833 500 556 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 1000 ] +2960 0 obj +[611 611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 0 500 500 889 0 278 333 333 444 606 250 333 250 296 500 500 500 500 500 500 500 500 500 500 250 250 0 606 0 444 747 778 667 722 833 611 556 833 833 389 0 778 611 1000 833 833 611 833 722 611 667 778 778 1000 667 667 667 333 0 333 0 0 0 500 611 444 611 500 389 556 611 333 333 611 333 889 611 556 611 611 389 444 333 611 556 833 500 556 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 500 1000 ] endobj 998 0 obj << /Type /Pages /Count 6 -/Parent 2943 0 R +/Parent 2961 0 R /Kids [986 0 R 1015 0 R 1022 0 R 1077 0 R 1141 0 R 1204 0 R] >> endobj 1296 0 obj << /Type /Pages /Count 6 -/Parent 2943 0 R +/Parent 2961 0 R /Kids [1265 0 R 1298 0 R 1310 0 R 1323 0 R 1334 0 R 1341 0 R] >> endobj 1357 0 obj << /Type /Pages /Count 6 -/Parent 2943 0 R +/Parent 2961 0 R /Kids [1353 0 R 1359 0 R 1367 0 R 1376 0 R 1386 0 R 1394 0 R] >> endobj 1404 0 obj << /Type /Pages /Count 6 -/Parent 2943 0 R +/Parent 2961 0 R /Kids [1401 0 R 1407 0 R 1429 0 R 1442 0 R 1447 0 R 1452 0 R] >> endobj 1465 0 obj << /Type /Pages /Count 6 -/Parent 2943 0 R +/Parent 2961 0 R /Kids [1457 0 R 1467 0 R 1476 0 R 1483 0 R 1489 0 R 1493 0 R] >> endobj 1512 0 obj << /Type /Pages /Count 6 -/Parent 2943 0 R +/Parent 2961 0 R /Kids [1502 0 R 1516 0 R 1523 0 R 1533 0 R 1543 0 R 1549 0 R] >> endobj 1559 0 obj << /Type /Pages /Count 6 -/Parent 2944 0 R +/Parent 2962 0 R /Kids [1554 0 R 1561 0 R 1569 0 R 1575 0 R 1582 0 R 1591 0 R] >> endobj 1598 0 obj << /Type /Pages /Count 6 -/Parent 2944 0 R +/Parent 2962 0 R /Kids [1595 0 R 1600 0 R 1607 0 R 1611 0 R 1621 0 R 1625 0 R] >> endobj 1637 0 obj << /Type /Pages /Count 6 -/Parent 2944 0 R +/Parent 2962 0 R /Kids [1631 0 R 1639 0 R 1650 0 R 1658 0 R 1670 0 R 1676 0 R] >> endobj 1685 0 obj << /Type /Pages /Count 6 -/Parent 2944 0 R +/Parent 2962 0 R /Kids [1680 0 R 1687 0 R 1693 0 R 1698 0 R 1704 0 R 1713 0 R] >> endobj 1722 0 obj << /Type /Pages /Count 6 -/Parent 2944 0 R +/Parent 2962 0 R /Kids [1719 0 R 1724 0 R 1728 0 R 1732 0 R 1737 0 R 1741 0 R] >> endobj 1752 0 obj << /Type /Pages /Count 6 -/Parent 2944 0 R +/Parent 2962 0 R /Kids [1748 0 R 1754 0 R 1760 0 R 1766 0 R 1771 0 R 1780 0 R] >> endobj 1787 0 obj << /Type /Pages /Count 6 -/Parent 2945 0 R -/Kids [1784 0 R 1789 0 R 1796 0 R 1805 0 R 1812 0 R 1817 0 R] +/Parent 2963 0 R +/Kids [1784 0 R 1789 0 R 1795 0 R 1805 0 R 1812 0 R 1817 0 R] >> endobj 1825 0 obj << /Type /Pages /Count 6 -/Parent 2945 0 R -/Kids [1822 0 R 1827 0 R 1831 0 R 1837 0 R 1845 0 R 1850 0 R] +/Parent 2963 0 R +/Kids [1822 0 R 1827 0 R 1831 0 R 1835 0 R 1845 0 R 1849 0 R] >> endobj -1862 0 obj << +1858 0 obj << /Type /Pages /Count 6 -/Parent 2945 0 R -/Kids [1858 0 R 1864 0 R 1871 0 R 1876 0 R 1882 0 R 1890 0 R] +/Parent 2963 0 R +/Kids [1853 0 R 1860 0 R 1867 0 R 1874 0 R 1880 0 R 1886 0 R] >> endobj 1897 0 obj << /Type /Pages /Count 6 -/Parent 2945 0 R -/Kids [1894 0 R 1899 0 R 1903 0 R 1908 0 R 1914 0 R 1918 0 R] +/Parent 2963 0 R +/Kids [1894 0 R 1899 0 R 1903 0 R 1907 0 R 1912 0 R 1918 0 R] >> endobj -1926 0 obj << +1925 0 obj << /Type /Pages /Count 6 -/Parent 2945 0 R -/Kids [1922 0 R 1928 0 R 1933 0 R 1937 0 R 1945 0 R 1958 0 R] +/Parent 2963 0 R +/Kids [1922 0 R 1927 0 R 1932 0 R 1936 0 R 1941 0 R 1949 0 R] >> endobj -1966 0 obj << +1965 0 obj << /Type /Pages /Count 6 -/Parent 2945 0 R -/Kids [1962 0 R 1968 0 R 1972 0 R 1976 0 R 1980 0 R 1988 0 R] +/Parent 2963 0 R +/Kids [1962 0 R 1967 0 R 1972 0 R 1976 0 R 1980 0 R 1984 0 R] >> endobj -1999 0 obj << +1995 0 obj << /Type /Pages /Count 6 -/Parent 2946 0 R -/Kids [1992 0 R 2002 0 R 2022 0 R 2036 0 R 2050 0 R 2063 0 R] +/Parent 2964 0 R +/Kids [1992 0 R 1997 0 R 2006 0 R 2026 0 R 2040 0 R 2054 0 R] >> endobj 2072 0 obj << /Type /Pages /Count 6 -/Parent 2946 0 R -/Kids [2069 0 R 2074 0 R 2084 0 R 2090 0 R 2096 0 R 2106 0 R] +/Parent 2964 0 R +/Kids [2067 0 R 2074 0 R 2078 0 R 2088 0 R 2094 0 R 2098 0 R] >> endobj -2125 0 obj << +2115 0 obj << /Type /Pages /Count 6 -/Parent 2946 0 R -/Kids [2118 0 R 2127 0 R 2135 0 R 2139 0 R 2147 0 R 2155 0 R] +/Parent 2964 0 R +/Kids [2105 0 R 2117 0 R 2128 0 R 2137 0 R 2143 0 R 2150 0 R] >> endobj -2173 0 obj << +2163 0 obj << /Type /Pages /Count 6 -/Parent 2946 0 R -/Kids [2167 0 R 2175 0 R 2183 0 R 2187 0 R 2193 0 R 2203 0 R] +/Parent 2964 0 R +/Kids [2159 0 R 2166 0 R 2176 0 R 2187 0 R 2191 0 R 2195 0 R] >> endobj 2210 0 obj << /Type /Pages /Count 6 -/Parent 2946 0 R -/Kids [2207 0 R 2212 0 R 2223 0 R 2227 0 R 2240 0 R 2249 0 R] +/Parent 2964 0 R +/Kids [2201 0 R 2212 0 R 2216 0 R 2220 0 R 2231 0 R 2235 0 R] >> endobj -2258 0 obj << +2256 0 obj << /Type /Pages /Count 6 -/Parent 2946 0 R -/Kids [2255 0 R 2260 0 R 2268 0 R 2327 0 R 2385 0 R 2439 0 R] +/Parent 2964 0 R +/Kids [2246 0 R 2258 0 R 2264 0 R 2268 0 R 2276 0 R 2335 0 R] >> endobj -2476 0 obj << +2446 0 obj << /Type /Pages /Count 6 -/Parent 2947 0 R -/Kids [2473 0 R 2478 0 R 2486 0 R 2495 0 R 2501 0 R 2508 0 R] +/Parent 2965 0 R +/Kids [2393 0 R 2448 0 R 2482 0 R 2486 0 R 2494 0 R 2503 0 R] >> endobj -2517 0 obj << +2515 0 obj << /Type /Pages /Count 6 -/Parent 2947 0 R -/Kids [2513 0 R 2519 0 R 2528 0 R 2534 0 R 2539 0 R 2543 0 R] +/Parent 2965 0 R +/Kids [2509 0 R 2517 0 R 2522 0 R 2527 0 R 2536 0 R 2542 0 R] >> endobj -2553 0 obj << +2550 0 obj << /Type /Pages /Count 6 -/Parent 2947 0 R -/Kids [2547 0 R 2555 0 R 2565 0 R 2574 0 R 2586 0 R 2592 0 R] +/Parent 2965 0 R +/Kids [2547 0 R 2552 0 R 2556 0 R 2561 0 R 2573 0 R 2578 0 R] >> endobj -2611 0 obj << +2599 0 obj << /Type /Pages /Count 6 -/Parent 2947 0 R -/Kids [2603 0 R 2613 0 R 2622 0 R 2627 0 R 2633 0 R 2642 0 R] +/Parent 2965 0 R +/Kids [2590 0 R 2601 0 R 2611 0 R 2617 0 R 2630 0 R 2634 0 R] >> endobj -2650 0 obj << +2648 0 obj << /Type /Pages /Count 6 -/Parent 2947 0 R -/Kids [2646 0 R 2652 0 R 2660 0 R 2671 0 R 2679 0 R 2685 0 R] +/Parent 2965 0 R +/Kids [2639 0 R 2650 0 R 2655 0 R 2659 0 R 2665 0 R 2677 0 R] >> endobj -2699 0 obj << +2691 0 obj << /Type /Pages /Count 6 -/Parent 2947 0 R -/Kids [2696 0 R 2701 0 R 2705 0 R 2709 0 R 2716 0 R 2725 0 R] +/Parent 2965 0 R +/Kids [2686 0 R 2693 0 R 2703 0 R 2709 0 R 2713 0 R 2717 0 R] >> endobj -2747 0 obj << +2732 0 obj << /Type /Pages /Count 6 -/Parent 2948 0 R -/Kids [2736 0 R 2749 0 R 2753 0 R 2760 0 R 2769 0 R 2773 0 R] +/Parent 2966 0 R +/Kids [2721 0 R 2734 0 R 2743 0 R 2752 0 R 2761 0 R 2765 0 R] >> endobj -2793 0 obj << +2780 0 obj << /Type /Pages /Count 6 -/Parent 2948 0 R -/Kids [2780 0 R 2795 0 R 2801 0 R 2806 0 R 2810 0 R 2818 0 R] +/Parent 2966 0 R +/Kids [2776 0 R 2782 0 R 2786 0 R 2797 0 R 2809 0 R 2814 0 R] >> endobj -2830 0 obj << +2822 0 obj << /Type /Pages /Count 6 -/Parent 2948 0 R -/Kids [2826 0 R 2832 0 R 2836 0 R 2841 0 R 2851 0 R 2856 0 R] +/Parent 2966 0 R +/Kids [2819 0 R 2824 0 R 2832 0 R 2840 0 R 2845 0 R 2849 0 R] >> endobj -2876 0 obj << +2863 0 obj << +/Type /Pages +/Count 6 +/Parent 2966 0 R +/Kids [2853 0 R 2865 0 R 2870 0 R 2881 0 R 2887 0 R 2898 0 R] +>> endobj +2923 0 obj << /Type /Pages -/Count 5 -/Parent 2948 0 R -/Kids [2868 0 R 2878 0 R 2886 0 R 2901 0 R 2913 0 R] +/Count 3 +/Parent 2966 0 R +/Kids [2910 0 R 2925 0 R 2938 0 R] >> endobj -2943 0 obj << +2961 0 obj << /Type /Pages /Count 36 -/Parent 2949 0 R +/Parent 2967 0 R /Kids [998 0 R 1296 0 R 1357 0 R 1404 0 R 1465 0 R 1512 0 R] >> endobj -2944 0 obj << +2962 0 obj << /Type /Pages /Count 36 -/Parent 2949 0 R +/Parent 2967 0 R /Kids [1559 0 R 1598 0 R 1637 0 R 1685 0 R 1722 0 R 1752 0 R] >> endobj -2945 0 obj << +2963 0 obj << /Type /Pages /Count 36 -/Parent 2949 0 R -/Kids [1787 0 R 1825 0 R 1862 0 R 1897 0 R 1926 0 R 1966 0 R] +/Parent 2967 0 R +/Kids [1787 0 R 1825 0 R 1858 0 R 1897 0 R 1925 0 R 1965 0 R] >> endobj -2946 0 obj << +2964 0 obj << /Type /Pages /Count 36 -/Parent 2949 0 R -/Kids [1999 0 R 2072 0 R 2125 0 R 2173 0 R 2210 0 R 2258 0 R] +/Parent 2967 0 R +/Kids [1995 0 R 2072 0 R 2115 0 R 2163 0 R 2210 0 R 2256 0 R] >> endobj -2947 0 obj << +2965 0 obj << /Type /Pages /Count 36 -/Parent 2949 0 R -/Kids [2476 0 R 2517 0 R 2553 0 R 2611 0 R 2650 0 R 2699 0 R] +/Parent 2967 0 R +/Kids [2446 0 R 2515 0 R 2550 0 R 2599 0 R 2648 0 R 2691 0 R] >> endobj -2948 0 obj << +2966 0 obj << /Type /Pages -/Count 23 -/Parent 2949 0 R -/Kids [2747 0 R 2793 0 R 2830 0 R 2876 0 R] +/Count 27 +/Parent 2967 0 R +/Kids [2732 0 R 2780 0 R 2822 0 R 2863 0 R 2923 0 R] >> endobj -2949 0 obj << +2967 0 obj << /Type /Pages -/Count 203 -/Kids [2943 0 R 2944 0 R 2945 0 R 2946 0 R 2947 0 R 2948 0 R] +/Count 207 +/Kids [2961 0 R 2962 0 R 2963 0 R 2964 0 R 2965 0 R 2966 0 R] >> endobj -2950 0 obj << +2968 0 obj << /Type /Outlines /First 7 0 R /Last 887 0 R @@ -15877,7 +16032,7 @@ endobj 887 0 obj << /Title 888 0 R /A 885 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Prev 827 0 R /First 891 0 R /Last 983 0 R @@ -15984,7 +16139,7 @@ endobj 827 0 obj << /Title 828 0 R /A 825 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Prev 803 0 R /Next 887 0 R /First 831 0 R @@ -16028,7 +16183,7 @@ endobj 803 0 obj << /Title 804 0 R /A 801 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Prev 795 0 R /Next 827 0 R /First 807 0 R @@ -16043,7 +16198,7 @@ endobj 795 0 obj << /Title 796 0 R /A 793 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Prev 755 0 R /Next 803 0 R /First 799 0 R @@ -16115,7 +16270,7 @@ endobj 755 0 obj << /Title 756 0 R /A 753 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Prev 735 0 R /Next 795 0 R /First 759 0 R @@ -16152,7 +16307,7 @@ endobj 735 0 obj << /Title 736 0 R /A 733 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Prev 711 0 R /Next 755 0 R /First 739 0 R @@ -16196,7 +16351,7 @@ endobj 711 0 obj << /Title 712 0 R /A 709 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Prev 363 0 R /Next 735 0 R /First 715 0 R @@ -16818,7 +16973,7 @@ endobj 363 0 obj << /Title 364 0 R /A 361 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Prev 351 0 R /Next 711 0 R /First 367 0 R @@ -16840,7 +16995,7 @@ endobj 351 0 obj << /Title 352 0 R /A 349 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Prev 131 0 R /Next 363 0 R /First 355 0 R @@ -17237,7 +17392,7 @@ endobj 131 0 obj << /Title 132 0 R /A 129 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Prev 91 0 R /Next 351 0 R /First 135 0 R @@ -17311,7 +17466,7 @@ endobj 91 0 obj << /Title 92 0 R /A 89 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Prev 67 0 R /Next 131 0 R /First 95 0 R @@ -17354,7 +17509,7 @@ endobj 67 0 obj << /Title 68 0 R /A 65 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Prev 7 0 R /Next 91 0 R /First 71 0 R @@ -17463,3000 +17618,3018 @@ endobj 7 0 obj << /Title 8 0 R /A 5 0 R -/Parent 2950 0 R +/Parent 2968 0 R /Next 67 0 R /First 11 0 R /Last 23 0 R /Count -4 >> endobj -2951 0 obj << -/Names [(Access_Control_Lists) 2191 0 R (Bv9ARM.ch01) 1300 0 R (Bv9ARM.ch02) 1344 0 R (Bv9ARM.ch03) 1362 0 R (Bv9ARM.ch04) 1410 0 R (Bv9ARM.ch05) 1603 0 R (Bv9ARM.ch06) 1614 0 R (Bv9ARM.ch07) 2190 0 R (Bv9ARM.ch08) 2215 0 R (Bv9ARM.ch09) 2230 0 R (Bv9ARM.ch10) 2252 0 R (Bv9ARM.ch11) 2263 0 R (Bv9ARM.ch12) 2481 0 R (Bv9ARM.ch13) 2522 0 R (Configuration_File_Grammar) 1642 0 R (DNSSEC) 1480 0 R (Doc-Start) 991 0 R (Setting_TTLs) 2111 0 R (acache) 1351 0 R (access_control) 1801 0 R (acl) 1646 0 R (address_match_lists) 1619 0 R (admin_tools) 1384 0 R (appendix.A) 754 0 R (appendix.B) 794 0 R (appendix.C) 802 0 R (appendix.D) 826 0 R (appendix.E) 886 0 R (bibliography) 2264 0 R (bind9.library) 2482 0 R (boolean_options) 1425 0 R (builtin) 1885 0 R (chapter*.1) 1025 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 350 0 R (chapter.6) 362 0 R (chapter.7) 710 0 R (chapter.8) 734 0 R (cite.RFC1033) 2391 0 R (cite.RFC1034) 2276 0 R (cite.RFC1035) 2278 0 R (cite.RFC1101) 2373 0 R (cite.RFC1123) 2375 0 R (cite.RFC1183) 2335 0 R (cite.RFC1464) 2413 0 R (cite.RFC1535) 2321 0 R (cite.RFC1536) 2323 0 R (cite.RFC1537) 2393 0 R (cite.RFC1591) 2377 0 R (cite.RFC1706) 2337 0 R (cite.RFC1712) 2433 0 R (cite.RFC1713) 2415 0 R (cite.RFC1794) 2417 0 R (cite.RFC1876) 2339 0 R (cite.RFC1912) 2395 0 R (cite.RFC1982) 2325 0 R (cite.RFC1995) 2283 0 R (cite.RFC1996) 2285 0 R (cite.RFC2010) 2397 0 R (cite.RFC2052) 2341 0 R (cite.RFC2065) 2445 0 R (cite.RFC2136) 2287 0 R (cite.RFC2137) 2447 0 R (cite.RFC2163) 2343 0 R (cite.RFC2168) 2345 0 R (cite.RFC2181) 2289 0 R (cite.RFC2219) 2399 0 R (cite.RFC2230) 2347 0 R (cite.RFC2240) 2419 0 R (cite.RFC2308) 2291 0 R (cite.RFC2317) 2379 0 R (cite.RFC2345) 2421 0 R (cite.RFC2352) 2423 0 R (cite.RFC2535) 2449 0 R (cite.RFC2536) 2349 0 R (cite.RFC2537) 2351 0 R (cite.RFC2538) 2353 0 R (cite.RFC2539) 2355 0 R (cite.RFC2540) 2357 0 R (cite.RFC2671) 2293 0 R (cite.RFC2672) 2295 0 R (cite.RFC2673) 2435 0 R (cite.RFC2782) 2359 0 R (cite.RFC2825) 2403 0 R (cite.RFC2826) 2381 0 R (cite.RFC2845) 2297 0 R (cite.RFC2874) 2437 0 R (cite.RFC2915) 2361 0 R (cite.RFC2929) 2383 0 R (cite.RFC2930) 2299 0 R (cite.RFC2931) 2301 0 R (cite.RFC3007) 2303 0 R (cite.RFC3008) 2451 0 R (cite.RFC3071) 2425 0 R (cite.RFC3090) 2453 0 R (cite.RFC3110) 2363 0 R (cite.RFC3123) 2365 0 R (cite.RFC3225) 2309 0 R (cite.RFC3258) 2427 0 R (cite.RFC3445) 2455 0 R (cite.RFC3490) 2405 0 R (cite.RFC3491) 2407 0 R (cite.RFC3492) 2409 0 R (cite.RFC3596) 2367 0 R (cite.RFC3597) 2369 0 R (cite.RFC3645) 2305 0 R (cite.RFC3655) 2457 0 R (cite.RFC3658) 2459 0 R (cite.RFC3755) 2461 0 R (cite.RFC3757) 2463 0 R (cite.RFC3833) 2311 0 R (cite.RFC3845) 2465 0 R (cite.RFC3901) 2429 0 R (cite.RFC4033) 2313 0 R (cite.RFC4034) 2315 0 R (cite.RFC4035) 2317 0 R (cite.RFC4074) 2331 0 R (cite.RFC974) 2280 0 R (cite.id2513918) 2470 0 R (clients-per-query) 2165 0 R (configuration_file_elements) 1615 0 R (controls_statement_definition_and_usage) 1392 0 R (diagnostic_tools) 1332 0 R (dnssec.dynamic.zones) 1499 0 R (dynamic_update) 1420 0 R (dynamic_update_policies) 1427 0 R (dynamic_update_security) 1810 0 R (empty) 1887 0 R (end_of_life) 2243 0 R (historical_dns_information) 2253 0 R (id2466586) 1301 0 R (id2466611) 1302 0 R (id2466682) 1303 0 R (id2466692) 1304 0 R (id2467437) 1312 0 R (id2467721) 1505 0 R (id2467757) 1506 0 R (id2467888) 1314 0 R (id2467909) 1315 0 R (id2467943) 1316 0 R (id2468027) 1319 0 R (id2468104) 1326 0 R (id2470380) 1329 0 R (id2470410) 1330 0 R (id2470432) 1331 0 R (id2470461) 1337 0 R (id2470497) 1338 0 R (id2470592) 1339 0 R (id2470626) 1345 0 R (id2470721) 1346 0 R (id2470733) 1347 0 R (id2470759) 1350 0 R (id2470770) 1356 0 R (id2470802) 1364 0 R (id2470818) 1365 0 R (id2470840) 1370 0 R (id2470857) 1371 0 R (id2471262) 1379 0 R (id2471268) 1380 0 R (id2472321) 1397 0 R (id2472332) 1398 0 R (id2472912) 1439 0 R (id2472930) 1445 0 R (id2473294) 1460 0 R (id2473448) 1461 0 R (id2473486) 1462 0 R (id2473505) 1463 0 R (id2473515) 1464 0 R (id2473552) 1470 0 R (id2473609) 1471 0 R (id2473726) 1473 0 R (id2473740) 1474 0 R (id2473789) 1479 0 R (id2473926) 1481 0 R (id2474005) 1486 0 R (id2474154) 1487 0 R (id2474510) 1500 0 R (id2475036) 1519 0 R (id2475074) 1520 0 R (id2475223) 1521 0 R (id2475256) 1526 0 R (id2475351) 1527 0 R (id2475361) 1528 0 R (id2475370) 1529 0 R (id2475383) 1530 0 R (id2475420) 1531 0 R (id2475430) 1536 0 R (id2475467) 1538 0 R (id2475490) 1540 0 R (id2475592) 1547 0 R (id2475825) 1552 0 R (id2475962) 1557 0 R (id2476011) 1558 0 R (id2476162) 1564 0 R (id2476170) 1565 0 R (id2476202) 1566 0 R (id2476238) 1567 0 R (id2476286) 1572 0 R (id2476317) 1573 0 R (id2476789) 1578 0 R (id2476835) 1579 0 R (id2476889) 1585 0 R (id2476951) 1587 0 R (id2476972) 1588 0 R (id2477074) 1604 0 R (id2477221) 1616 0 R (id2478254) 1628 0 R (id2478282) 1629 0 R (id2478420) 1634 0 R (id2478435) 1635 0 R (id2478465) 1636 0 R (id2478608) 1643 0 R (id2479080) 1645 0 R (id2479116) 1647 0 R (id2479270) 1653 0 R (id2479629) 1661 0 R (id2479646) 1662 0 R (id2479670) 1663 0 R (id2479693) 1664 0 R (id2479921) 1668 0 R (id2480115) 1673 0 R (id2480167) 1674 0 R (id2480727) 1690 0 R (id2481693) 1696 0 R (id2481755) 1701 0 R (id2482145) 1707 0 R (id2482286) 1708 0 R (id2482419) 1711 0 R (id2482462) 1716 0 R (id2482484) 1717 0 R (id2486177) 1763 0 R (id2488488) 1794 0 R (id2488615) 1800 0 R (id2489357) 1815 0 R (id2490442) 1834 0 R (id2490502) 1840 0 R (id2491061) 1848 0 R (id2491495) 1867 0 R (id2493548) 1906 0 R (id2493742) 1912 0 R (id2494241) 1925 0 R (id2495534) 1943 0 R (id2495773) 1954 0 R (id2495820) 1956 0 R (id2496187) 1965 0 R (id2498101) 1983 0 R (id2498108) 1984 0 R (id2498114) 1985 0 R (id2498853) 1996 0 R (id2498886) 1997 0 R (id2500919) 2066 0 R (id2501582) 2077 0 R (id2501601) 2078 0 R (id2501621) 2081 0 R (id2501858) 2087 0 R (id2503164) 2093 0 R (id2503292) 2099 0 R (id2503314) 2100 0 R (id2503745) 2102 0 R (id2503881) 2104 0 R (id2503899) 2109 0 R (id2504304) 2112 0 R (id2504428) 2114 0 R (id2504443) 2115 0 R (id2504624) 2121 0 R (id2504714) 2122 0 R (id2504730) 2123 0 R (id2504791) 2124 0 R (id2504860) 2130 0 R (id2504897) 2131 0 R (id2504972) 2132 0 R (id2505415) 2143 0 R (id2505850) 2151 0 R (id2505856) 2152 0 R (id2507556) 2159 0 R (id2507562) 2160 0 R (id2508007) 2162 0 R (id2508012) 2163 0 R (id2509029) 2170 0 R (id2509061) 2171 0 R (id2509470) 2181 0 R (id2509698) 2199 0 R (id2509779) 2200 0 R (id2509838) 2201 0 R (id2509918) 2216 0 R (id2509924) 2217 0 R (id2509936) 2218 0 R (id2509953) 2219 0 R (id2510084) 2231 0 R (id2510746) 2272 0 R (id2510748) 2274 0 R (id2510757) 2279 0 R (id2510849) 2275 0 R (id2510872) 2277 0 R (id2510908) 2288 0 R (id2510935) 2290 0 R (id2510961) 2282 0 R (id2510985) 2284 0 R (id2511009) 2286 0 R (id2511064) 2292 0 R (id2511091) 2294 0 R (id2511117) 2296 0 R (id2511179) 2298 0 R (id2511209) 2300 0 R (id2511239) 2302 0 R (id2511266) 2304 0 R (id2511340) 2307 0 R (id2511348) 2308 0 R (id2511374) 2310 0 R (id2511479) 2312 0 R (id2511544) 2314 0 R (id2511609) 2316 0 R (id2511674) 2319 0 R (id2511683) 2320 0 R (id2511708) 2322 0 R (id2511845) 2324 0 R (id2511880) 2330 0 R (id2511921) 2333 0 R (id2511926) 2334 0 R (id2511984) 2336 0 R (id2512021) 2344 0 R (id2512056) 2338 0 R (id2512110) 2340 0 R (id2512149) 2342 0 R (id2512174) 2346 0 R (id2512200) 2348 0 R (id2512227) 2350 0 R (id2512253) 2352 0 R (id2512293) 2354 0 R (id2512323) 2356 0 R (id2512353) 2358 0 R (id2512395) 2360 0 R (id2512428) 2362 0 R (id2512455) 2364 0 R (id2512478) 2366 0 R (id2512536) 2368 0 R (id2512561) 2371 0 R (id2512568) 2372 0 R (id2512594) 2374 0 R (id2512616) 2376 0 R (id2512640) 2378 0 R (id2512685) 2380 0 R (id2512709) 2382 0 R (id2512827) 2389 0 R (id2512835) 2390 0 R (id2512858) 2392 0 R (id2512885) 2394 0 R (id2512912) 2396 0 R (id2512948) 2398 0 R (id2512988) 2401 0 R (id2512994) 2402 0 R (id2513026) 2404 0 R (id2513072) 2406 0 R (id2513107) 2408 0 R (id2513133) 2411 0 R (id2513152) 2412 0 R (id2513174) 2414 0 R (id2513200) 2416 0 R (id2513225) 2418 0 R (id2513249) 2420 0 R (id2513294) 2422 0 R (id2513318) 2424 0 R (id2513345) 2426 0 R (id2513370) 2428 0 R (id2513408) 2431 0 R (id2513414) 2432 0 R (id2513472) 2434 0 R (id2513498) 2436 0 R (id2513534) 2443 0 R (id2513546) 2444 0 R (id2513586) 2446 0 R (id2513612) 2448 0 R (id2513642) 2450 0 R (id2513668) 2452 0 R (id2513694) 2454 0 R (id2513731) 2456 0 R (id2513767) 2458 0 R (id2513794) 2460 0 R (id2513820) 2462 0 R (id2513865) 2464 0 R (id2513907) 2467 0 R (id2513916) 2469 0 R (id2513918) 2471 0 R (id2514014) 2483 0 R (id2514024) 2484 0 R (id2514049) 2489 0 R (id2514148) 2490 0 R (id2514225) 2491 0 R (id2514251) 2493 0 R (id2514260) 2498 0 R (id2514350) 2499 0 R (id2514472) 2504 0 R (id2514536) 2505 0 R (id2514551) 2506 0 R (id2514750) 2511 0 R (id2514814) 2516 0 R (incremental_zone_transfers) 1436 0 R (internet_drafts) 2466 0 R (ipv6addresses) 1589 0 R (journal) 1432 0 R (lwresd) 1605 0 R (man.arpaname) 2890 0 R (man.ddns-confgen) 2874 0 R (man.dig) 2523 0 R (man.dnssec-checkds) 2571 0 R (man.dnssec-coverage) 2582 0 R (man.dnssec-dsfromkey) 2597 0 R (man.dnssec-keyfromlabel) 2616 0 R (man.dnssec-keygen) 1513 0 R (man.dnssec-revoke) 2663 0 R (man.dnssec-settime) 1514 0 R (man.dnssec-signzone) 2690 0 R (man.dnssec-verify) 2719 0 R (man.genrandom) 2896 0 R (man.host) 2560 0 R (man.isc-hmac-fixup) 2907 0 R (man.named) 2763 0 R (man.named-checkconf) 2730 0 R (man.named-checkzone) 2742 0 R (man.named-journalprint) 2785 0 R (man.nsec3hash) 2918 0 R (man.nsupdate) 2791 0 R (man.rndc) 1391 0 R (man.rndc-confgen) 2862 0 R (man.rndc.conf) 2846 0 R (managed-keys) 1541 0 R (notify) 1411 0 R (options) 1735 0 R (page.1) 990 0 R (page.10) 1388 0 R (page.100) 1982 0 R (page.101) 1990 0 R (page.102) 1994 0 R (page.103) 2004 0 R (page.104) 2024 0 R (page.105) 2038 0 R (page.106) 2052 0 R (page.107) 2065 0 R (page.108) 2071 0 R (page.109) 2076 0 R (page.11) 1396 0 R (page.110) 2086 0 R (page.111) 2092 0 R (page.112) 2098 0 R (page.113) 2108 0 R (page.114) 2120 0 R (page.115) 2129 0 R (page.116) 2137 0 R (page.117) 2141 0 R (page.118) 2149 0 R (page.119) 2157 0 R (page.12) 1403 0 R (page.120) 2169 0 R (page.121) 2177 0 R (page.122) 2185 0 R (page.123) 2189 0 R (page.124) 2195 0 R (page.125) 2205 0 R (page.126) 2209 0 R (page.127) 2214 0 R (page.128) 2225 0 R (page.129) 2229 0 R (page.13) 1409 0 R (page.130) 2242 0 R (page.131) 2251 0 R (page.132) 2257 0 R (page.133) 2262 0 R (page.134) 2270 0 R (page.135) 2329 0 R (page.136) 2387 0 R (page.137) 2441 0 R (page.138) 2475 0 R (page.139) 2480 0 R (page.14) 1431 0 R (page.140) 2488 0 R (page.141) 2497 0 R (page.142) 2503 0 R (page.143) 2510 0 R (page.144) 2515 0 R (page.145) 2521 0 R (page.146) 2530 0 R (page.147) 2536 0 R (page.148) 2541 0 R (page.149) 2545 0 R (page.15) 1444 0 R (page.150) 2549 0 R (page.151) 2557 0 R (page.152) 2567 0 R (page.153) 2576 0 R (page.154) 2588 0 R (page.155) 2594 0 R (page.156) 2605 0 R (page.157) 2615 0 R (page.158) 2624 0 R (page.159) 2629 0 R (page.16) 1449 0 R (page.160) 2635 0 R (page.161) 2644 0 R (page.162) 2648 0 R (page.163) 2654 0 R (page.164) 2662 0 R (page.165) 2673 0 R (page.166) 2681 0 R (page.167) 2687 0 R (page.168) 2698 0 R (page.169) 2703 0 R (page.17) 1454 0 R (page.170) 2707 0 R (page.171) 2711 0 R (page.172) 2718 0 R (page.173) 2727 0 R (page.174) 2738 0 R (page.175) 2751 0 R (page.176) 2755 0 R (page.177) 2762 0 R (page.178) 2771 0 R (page.179) 2775 0 R (page.18) 1459 0 R (page.180) 2782 0 R (page.181) 2797 0 R (page.182) 2803 0 R (page.183) 2808 0 R (page.184) 2812 0 R (page.185) 2820 0 R (page.186) 2828 0 R (page.187) 2834 0 R (page.188) 2838 0 R (page.189) 2843 0 R (page.19) 1469 0 R (page.190) 2853 0 R (page.191) 2858 0 R (page.192) 2870 0 R (page.193) 2880 0 R (page.194) 2888 0 R (page.195) 2903 0 R (page.196) 2915 0 R (page.2) 1017 0 R (page.20) 1478 0 R (page.21) 1485 0 R (page.22) 1491 0 R (page.23) 1495 0 R (page.24) 1504 0 R (page.25) 1518 0 R (page.26) 1525 0 R (page.27) 1535 0 R (page.28) 1545 0 R (page.29) 1551 0 R (page.3) 1325 0 R (page.30) 1556 0 R (page.31) 1563 0 R (page.32) 1571 0 R (page.33) 1577 0 R (page.34) 1584 0 R (page.35) 1593 0 R (page.36) 1597 0 R (page.37) 1602 0 R (page.38) 1609 0 R (page.39) 1613 0 R (page.4) 1336 0 R (page.40) 1623 0 R (page.41) 1627 0 R (page.42) 1633 0 R (page.43) 1641 0 R (page.44) 1652 0 R (page.45) 1660 0 R (page.46) 1672 0 R (page.47) 1678 0 R (page.48) 1682 0 R (page.49) 1689 0 R (page.5) 1343 0 R (page.50) 1695 0 R (page.51) 1700 0 R (page.52) 1706 0 R (page.53) 1715 0 R (page.54) 1721 0 R (page.55) 1726 0 R (page.56) 1730 0 R (page.57) 1734 0 R (page.58) 1739 0 R (page.59) 1743 0 R (page.6) 1355 0 R (page.60) 1750 0 R (page.61) 1756 0 R (page.62) 1762 0 R (page.63) 1768 0 R (page.64) 1773 0 R (page.65) 1782 0 R (page.66) 1786 0 R (page.67) 1791 0 R (page.68) 1798 0 R (page.69) 1807 0 R (page.7) 1361 0 R (page.70) 1814 0 R (page.71) 1819 0 R (page.72) 1824 0 R (page.73) 1829 0 R (page.74) 1833 0 R (page.75) 1839 0 R (page.76) 1847 0 R (page.77) 1852 0 R (page.78) 1860 0 R (page.79) 1866 0 R (page.8) 1369 0 R (page.80) 1873 0 R (page.81) 1878 0 R (page.82) 1884 0 R (page.83) 1892 0 R (page.84) 1896 0 R (page.85) 1901 0 R (page.86) 1905 0 R (page.87) 1910 0 R (page.88) 1916 0 R (page.89) 1920 0 R (page.9) 1378 0 R (page.90) 1924 0 R (page.91) 1930 0 R (page.92) 1935 0 R (page.93) 1939 0 R (page.94) 1947 0 R (page.95) 1960 0 R (page.96) 1964 0 R (page.97) 1970 0 R (page.98) 1974 0 R (page.99) 1978 0 R (page.i) 1024 0 R (page.ii) 1079 0 R (page.iii) 1143 0 R (page.iv) 1206 0 R (page.v) 1267 0 R (pkcs11) 1546 0 R (proposed_standards) 1440 0 R (query_address) 1820 0 R (relnotes_bugs) 2238 0 R (relnotes_changes) 2237 0 R (relnotes_download) 2233 0 R (relnotes_features) 2236 0 R (relnotes_intro) 2232 0 R (relnotes_security) 2235 0 R (relnotes_thanks) 2246 0 R (rfc5011.support) 1537 0 R (rfcs) 1321 0 R (rndc) 1656 0 R (root_delegation_only) 2000 0 R (rrset_ordering) 1374 0 R (sample_configuration) 1363 0 R (section*.10) 2400 0 R (section*.100) 2734 0 R (section*.101) 2739 0 R (section*.102) 2740 0 R (section*.103) 2741 0 R (section*.104) 2743 0 R (section*.105) 2744 0 R (section*.106) 2745 0 R (section*.107) 2746 0 R (section*.108) 2756 0 R (section*.109) 2757 0 R (section*.11) 2410 0 R (section*.110) 2758 0 R (section*.111) 2764 0 R (section*.112) 2765 0 R (section*.113) 2766 0 R (section*.114) 2767 0 R (section*.115) 2776 0 R (section*.116) 2777 0 R (section*.117) 2778 0 R (section*.118) 2783 0 R (section*.119) 2784 0 R (section*.12) 2430 0 R (section*.120) 2786 0 R (section*.121) 2787 0 R (section*.122) 2788 0 R (section*.123) 2789 0 R (section*.124) 2790 0 R (section*.125) 2792 0 R (section*.126) 2798 0 R (section*.127) 2799 0 R (section*.128) 2804 0 R (section*.129) 2813 0 R (section*.13) 2442 0 R (section*.130) 2814 0 R (section*.131) 2815 0 R (section*.132) 2816 0 R (section*.133) 2821 0 R (section*.134) 2822 0 R (section*.135) 2823 0 R (section*.136) 2824 0 R (section*.137) 2829 0 R (section*.138) 2839 0 R (section*.139) 2844 0 R (section*.14) 2468 0 R (section*.140) 2845 0 R (section*.141) 2847 0 R (section*.142) 2848 0 R (section*.143) 2849 0 R (section*.144) 2854 0 R (section*.145) 2859 0 R (section*.146) 2860 0 R (section*.147) 2861 0 R (section*.148) 2863 0 R (section*.149) 2864 0 R (section*.15) 2524 0 R (section*.150) 2865 0 R (section*.151) 2866 0 R (section*.152) 2871 0 R (section*.153) 2872 0 R (section*.154) 2873 0 R (section*.155) 2875 0 R (section*.156) 2881 0 R (section*.157) 2882 0 R (section*.158) 2883 0 R (section*.159) 2884 0 R (section*.16) 2525 0 R (section*.160) 2889 0 R (section*.161) 2891 0 R (section*.162) 2892 0 R (section*.163) 2893 0 R (section*.164) 2894 0 R (section*.165) 2895 0 R (section*.166) 2897 0 R (section*.167) 2898 0 R (section*.168) 2899 0 R (section*.169) 2904 0 R (section*.17) 2526 0 R (section*.170) 2905 0 R (section*.171) 2906 0 R (section*.172) 2908 0 R (section*.173) 2909 0 R (section*.174) 2910 0 R (section*.175) 2911 0 R (section*.176) 2916 0 R (section*.177) 2917 0 R (section*.178) 2919 0 R (section*.179) 2920 0 R (section*.18) 2531 0 R (section*.180) 2921 0 R (section*.181) 2922 0 R (section*.182) 2923 0 R (section*.183) 2924 0 R (section*.19) 2532 0 R (section*.2) 2271 0 R (section*.20) 2537 0 R (section*.21) 2550 0 R (section*.22) 2551 0 R (section*.23) 2552 0 R (section*.24) 2558 0 R (section*.25) 2559 0 R (section*.26) 2561 0 R (section*.27) 2562 0 R (section*.28) 2563 0 R (section*.29) 2568 0 R (section*.3) 2273 0 R (section*.30) 2569 0 R (section*.31) 2570 0 R (section*.32) 2572 0 R (section*.33) 2577 0 R (section*.34) 2578 0 R (section*.35) 2579 0 R (section*.36) 2580 0 R (section*.37) 2581 0 R (section*.38) 2583 0 R (section*.39) 2584 0 R (section*.4) 2281 0 R (section*.40) 2589 0 R (section*.41) 2590 0 R (section*.42) 2595 0 R (section*.43) 2596 0 R (section*.44) 2598 0 R (section*.45) 2599 0 R (section*.46) 2600 0 R (section*.47) 2601 0 R (section*.48) 2606 0 R (section*.49) 2607 0 R (section*.5) 2306 0 R (section*.50) 2608 0 R (section*.51) 2609 0 R (section*.52) 2610 0 R (section*.53) 2617 0 R (section*.54) 2618 0 R (section*.55) 2619 0 R (section*.56) 2620 0 R (section*.57) 2625 0 R (section*.58) 2630 0 R (section*.59) 2631 0 R (section*.6) 2318 0 R (section*.60) 2636 0 R (section*.61) 2637 0 R (section*.62) 2638 0 R (section*.63) 2639 0 R (section*.64) 2640 0 R (section*.65) 2649 0 R (section*.66) 2655 0 R (section*.67) 2656 0 R (section*.68) 2657 0 R (section*.69) 2658 0 R (section*.7) 2332 0 R (section*.70) 2664 0 R (section*.71) 2665 0 R (section*.72) 2666 0 R (section*.73) 2667 0 R (section*.74) 2668 0 R (section*.75) 2669 0 R (section*.76) 2674 0 R (section*.77) 2675 0 R (section*.78) 2676 0 R (section*.79) 2677 0 R (section*.8) 2370 0 R (section*.80) 2682 0 R (section*.81) 2683 0 R (section*.82) 2688 0 R (section*.83) 2689 0 R (section*.84) 2691 0 R (section*.85) 2692 0 R (section*.86) 2693 0 R (section*.87) 2694 0 R (section*.88) 2712 0 R (section*.89) 2713 0 R (section*.9) 2388 0 R (section*.90) 2714 0 R (section*.91) 2720 0 R (section*.92) 2721 0 R (section*.93) 2722 0 R (section*.94) 2723 0 R (section*.95) 2728 0 R (section*.96) 2729 0 R (section*.97) 2731 0 R (section*.98) 2732 0 R (section*.99) 2733 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.1.3) 18 0 R (section.1.4) 22 0 R (section.2.1) 70 0 R (section.2.2) 74 0 R (section.2.3) 78 0 R (section.2.4) 82 0 R (section.2.5) 86 0 R (section.3.1) 94 0 R (section.3.2) 106 0 R (section.3.3) 110 0 R (section.4.1) 134 0 R (section.4.10) 274 0 R (section.4.11) 286 0 R (section.4.12) 338 0 R (section.4.2) 138 0 R (section.4.3) 146 0 R (section.4.4) 150 0 R (section.4.5) 158 0 R (section.4.6) 194 0 R (section.4.7) 198 0 R (section.4.8) 202 0 R (section.4.9) 218 0 R (section.5.1) 354 0 R (section.5.2) 358 0 R (section.6.1) 366 0 R (section.6.2) 394 0 R (section.6.3) 622 0 R (section.6.4) 678 0 R (section.7.1) 714 0 R (section.7.2) 718 0 R (section.7.3) 730 0 R (section.8.1) 738 0 R (section.8.2) 746 0 R (section.8.3) 750 0 R (section.A.1) 758 0 R (section.B.1) 798 0 R (section.C.1) 806 0 R (section.C.2) 810 0 R (section.D.1) 830 0 R (section.E.1) 890 0 R (section.E.10) 926 0 R (section.E.11) 930 0 R (section.E.12) 934 0 R (section.E.13) 938 0 R (section.E.14) 942 0 R (section.E.15) 946 0 R (section.E.16) 950 0 R (section.E.17) 954 0 R (section.E.18) 958 0 R (section.E.19) 962 0 R (section.E.2) 894 0 R (section.E.20) 966 0 R (section.E.21) 970 0 R (section.E.22) 974 0 R (section.E.23) 978 0 R (section.E.24) 982 0 R (section.E.3) 898 0 R (section.E.4) 902 0 R (section.E.5) 906 0 R (section.E.6) 910 0 R (section.E.7) 914 0 R (section.E.8) 918 0 R (section.E.9) 922 0 R (server_resource_limits) 1842 0 R (server_statement_definition_and_usage) 1778 0 R (server_statement_grammar) 1931 0 R (statistics) 2142 0 R (statistics_counters) 2150 0 R (statschannels) 1942 0 R (statsfile) 1746 0 R (subsection.1.4.1) 26 0 R (subsection.1.4.2) 30 0 R (subsection.1.4.3) 34 0 R (subsection.1.4.4) 38 0 R (subsection.1.4.5) 54 0 R (subsection.1.4.6) 62 0 R (subsection.3.1.1) 98 0 R (subsection.3.1.2) 102 0 R (subsection.3.3.1) 114 0 R (subsection.3.3.2) 126 0 R (subsection.4.10.1) 278 0 R (subsection.4.10.2) 282 0 R (subsection.4.11.1) 290 0 R (subsection.4.11.2) 306 0 R (subsection.4.11.3) 322 0 R (subsection.4.11.4) 326 0 R (subsection.4.11.5) 330 0 R (subsection.4.11.6) 334 0 R (subsection.4.12.1) 342 0 R (subsection.4.12.2) 346 0 R (subsection.4.2.1) 142 0 R (subsection.4.4.1) 154 0 R (subsection.4.5.1) 162 0 R (subsection.4.5.2) 174 0 R (subsection.4.5.3) 178 0 R (subsection.4.5.4) 182 0 R (subsection.4.5.5) 186 0 R (subsection.4.5.6) 190 0 R (subsection.4.8.1) 206 0 R (subsection.4.8.2) 210 0 R (subsection.4.8.3) 214 0 R (subsection.4.9.1) 222 0 R (subsection.4.9.10) 258 0 R (subsection.4.9.11) 262 0 R (subsection.4.9.12) 266 0 R (subsection.4.9.13) 270 0 R (subsection.4.9.2) 226 0 R (subsection.4.9.3) 230 0 R (subsection.4.9.4) 234 0 R (subsection.4.9.5) 238 0 R (subsection.4.9.6) 242 0 R (subsection.4.9.7) 246 0 R (subsection.4.9.8) 250 0 R (subsection.4.9.9) 254 0 R (subsection.6.1.1) 370 0 R (subsection.6.1.2) 382 0 R (subsection.6.2.1) 398 0 R (subsection.6.2.10) 434 0 R (subsection.6.2.11) 450 0 R (subsection.6.2.12) 454 0 R (subsection.6.2.13) 458 0 R (subsection.6.2.14) 462 0 R (subsection.6.2.15) 466 0 R (subsection.6.2.16) 470 0 R (subsection.6.2.17) 558 0 R (subsection.6.2.18) 562 0 R (subsection.6.2.19) 566 0 R (subsection.6.2.2) 402 0 R (subsection.6.2.20) 570 0 R (subsection.6.2.21) 574 0 R (subsection.6.2.22) 578 0 R (subsection.6.2.23) 582 0 R (subsection.6.2.24) 586 0 R (subsection.6.2.25) 590 0 R (subsection.6.2.26) 594 0 R (subsection.6.2.27) 598 0 R (subsection.6.2.28) 602 0 R (subsection.6.2.3) 406 0 R (subsection.6.2.4) 410 0 R (subsection.6.2.5) 414 0 R (subsection.6.2.6) 418 0 R (subsection.6.2.7) 422 0 R (subsection.6.2.8) 426 0 R (subsection.6.2.9) 430 0 R (subsection.6.3.1) 626 0 R (subsection.6.3.2) 638 0 R (subsection.6.3.3) 642 0 R (subsection.6.3.4) 646 0 R (subsection.6.3.5) 650 0 R (subsection.6.3.6) 670 0 R (subsection.6.3.7) 674 0 R (subsection.6.4.1) 686 0 R (subsection.7.2.1) 722 0 R (subsection.7.2.2) 726 0 R (subsection.8.1.1) 742 0 R (subsection.A.1.1) 762 0 R (subsection.A.1.2) 766 0 R (subsection.A.1.3) 770 0 R (subsection.A.1.4) 774 0 R (subsection.A.1.5) 778 0 R (subsection.A.1.6) 782 0 R (subsection.A.1.7) 786 0 R (subsection.A.1.8) 790 0 R (subsection.C.2.1) 814 0 R (subsection.C.2.2) 818 0 R (subsection.C.2.3) 822 0 R (subsection.D.1.1) 834 0 R (subsection.D.1.2) 838 0 R (subsection.D.1.3) 842 0 R (subsection.D.1.4) 846 0 R (subsection.D.1.5) 850 0 R (subsection.D.1.6) 854 0 R (subsection.D.1.7) 882 0 R (subsubsection.1.4.4.1) 42 0 R (subsubsection.1.4.4.2) 46 0 R (subsubsection.1.4.4.3) 50 0 R (subsubsection.1.4.5.1) 58 0 R (subsubsection.3.3.1.1) 118 0 R (subsubsection.3.3.1.2) 122 0 R (subsubsection.4.11.1.1) 294 0 R (subsubsection.4.11.1.2) 298 0 R (subsubsection.4.11.1.3) 302 0 R (subsubsection.4.11.2.1) 310 0 R (subsubsection.4.11.2.2) 314 0 R (subsubsection.4.11.2.3) 318 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 374 0 R (subsubsection.6.1.1.2) 378 0 R (subsubsection.6.1.2.1) 386 0 R (subsubsection.6.1.2.2) 390 0 R (subsubsection.6.2.10.1) 438 0 R (subsubsection.6.2.10.2) 442 0 R (subsubsection.6.2.10.3) 446 0 R (subsubsection.6.2.16.1) 474 0 R (subsubsection.6.2.16.10) 510 0 R (subsubsection.6.2.16.11) 514 0 R (subsubsection.6.2.16.12) 518 0 R (subsubsection.6.2.16.13) 522 0 R (subsubsection.6.2.16.14) 526 0 R (subsubsection.6.2.16.15) 530 0 R (subsubsection.6.2.16.16) 534 0 R (subsubsection.6.2.16.17) 538 0 R (subsubsection.6.2.16.18) 542 0 R (subsubsection.6.2.16.19) 546 0 R (subsubsection.6.2.16.2) 478 0 R (subsubsection.6.2.16.20) 550 0 R (subsubsection.6.2.16.21) 554 0 R (subsubsection.6.2.16.3) 482 0 R (subsubsection.6.2.16.4) 486 0 R (subsubsection.6.2.16.5) 490 0 R (subsubsection.6.2.16.6) 494 0 R (subsubsection.6.2.16.7) 498 0 R (subsubsection.6.2.16.8) 502 0 R (subsubsection.6.2.16.9) 506 0 R (subsubsection.6.2.28.1) 606 0 R (subsubsection.6.2.28.2) 610 0 R (subsubsection.6.2.28.3) 614 0 R (subsubsection.6.2.28.4) 618 0 R (subsubsection.6.3.1.1) 630 0 R (subsubsection.6.3.1.2) 634 0 R (subsubsection.6.3.5.1) 654 0 R (subsubsection.6.3.5.2) 658 0 R (subsubsection.6.3.5.3) 662 0 R (subsubsection.6.3.5.4) 666 0 R (subsubsection.6.4.0.1) 682 0 R (subsubsection.6.4.1.1) 690 0 R (subsubsection.6.4.1.2) 694 0 R (subsubsection.6.4.1.3) 698 0 R (subsubsection.6.4.1.4) 702 0 R (subsubsection.6.4.1.5) 706 0 R (subsubsection.D.1.6.1) 858 0 R (subsubsection.D.1.6.2) 862 0 R (subsubsection.D.1.6.3) 866 0 R (subsubsection.D.1.6.4) 870 0 R (subsubsection.D.1.6.5) 874 0 R (subsubsection.D.1.6.6) 878 0 R (table.1.1) 1305 0 R (table.1.2) 1313 0 R (table.3.1) 1372 0 R (table.3.2) 1399 0 R (table.6.1) 1617 0 R (table.6.10) 2082 0 R (table.6.11) 2088 0 R (table.6.12) 2094 0 R (table.6.13) 2101 0 R (table.6.14) 2103 0 R (table.6.15) 2110 0 R (table.6.16) 2113 0 R (table.6.17) 2116 0 R (table.6.18) 2133 0 R (table.6.19) 2144 0 R (table.6.2) 1644 0 R (table.6.20) 2153 0 R (table.6.21) 2161 0 R (table.6.22) 2164 0 R (table.6.23) 2172 0 R (table.6.3) 1648 0 R (table.6.4) 1691 0 R (table.6.5) 1702 0 R (table.6.6) 1764 0 R (table.6.7) 1868 0 R (table.6.8) 1986 0 R (table.6.9) 2067 0 R (the_category_phrase) 1684 0 R (the_sortlist_statement) 1854 0 R (topology) 1853 0 R (trusted-keys) 1953 0 R (tsig) 1455 0 R (tuning) 1869 0 R (types_of_resource_records_and_when_to_use_them) 1320 0 R (view_statement_grammar) 1888 0 R (zone_statement_grammar) 1803 0 R (zone_transfers) 1426 0 R (zonefile_format) 1880 0 R] +2969 0 obj << +/Names [(Access_Control_Lists) 2199 0 R (Bv9ARM.ch01) 1300 0 R (Bv9ARM.ch02) 1344 0 R (Bv9ARM.ch03) 1362 0 R (Bv9ARM.ch04) 1410 0 R (Bv9ARM.ch05) 1603 0 R (Bv9ARM.ch06) 1614 0 R (Bv9ARM.ch07) 2198 0 R (Bv9ARM.ch08) 2223 0 R (Bv9ARM.ch09) 2238 0 R (Bv9ARM.ch10) 2261 0 R (Bv9ARM.ch11) 2271 0 R (Bv9ARM.ch12) 2489 0 R (Bv9ARM.ch13) 2530 0 R (Configuration_File_Grammar) 1642 0 R (DNSSEC) 1480 0 R (Doc-Start) 991 0 R (Setting_TTLs) 2120 0 R (acache) 1351 0 R (access_control) 1801 0 R (acl) 1646 0 R (address_match_lists) 1619 0 R (admin_tools) 1384 0 R (appendix.A) 754 0 R (appendix.B) 794 0 R (appendix.C) 802 0 R (appendix.D) 826 0 R (appendix.E) 886 0 R (bibliography) 2272 0 R (bind9.library) 2490 0 R (boolean_options) 1425 0 R (builtin) 1889 0 R (chapter*.1) 1025 0 R (chapter.1) 6 0 R (chapter.2) 66 0 R (chapter.3) 90 0 R (chapter.4) 130 0 R (chapter.5) 350 0 R (chapter.6) 362 0 R (chapter.7) 710 0 R (chapter.8) 734 0 R (cite.RFC1033) 2399 0 R (cite.RFC1034) 2284 0 R (cite.RFC1035) 2286 0 R (cite.RFC1101) 2381 0 R (cite.RFC1123) 2383 0 R (cite.RFC1183) 2343 0 R (cite.RFC1464) 2421 0 R (cite.RFC1535) 2329 0 R (cite.RFC1536) 2331 0 R (cite.RFC1537) 2401 0 R (cite.RFC1591) 2385 0 R (cite.RFC1706) 2345 0 R (cite.RFC1712) 2441 0 R (cite.RFC1713) 2423 0 R (cite.RFC1794) 2425 0 R (cite.RFC1876) 2347 0 R (cite.RFC1912) 2403 0 R (cite.RFC1982) 2333 0 R (cite.RFC1995) 2291 0 R (cite.RFC1996) 2293 0 R (cite.RFC2010) 2405 0 R (cite.RFC2052) 2349 0 R (cite.RFC2065) 2454 0 R (cite.RFC2136) 2295 0 R (cite.RFC2137) 2456 0 R (cite.RFC2163) 2351 0 R (cite.RFC2168) 2353 0 R (cite.RFC2181) 2297 0 R (cite.RFC2219) 2407 0 R (cite.RFC2230) 2355 0 R (cite.RFC2240) 2427 0 R (cite.RFC2308) 2299 0 R (cite.RFC2317) 2387 0 R (cite.RFC2345) 2429 0 R (cite.RFC2352) 2431 0 R (cite.RFC2535) 2458 0 R (cite.RFC2536) 2357 0 R (cite.RFC2537) 2359 0 R (cite.RFC2538) 2361 0 R (cite.RFC2539) 2363 0 R (cite.RFC2540) 2365 0 R (cite.RFC2671) 2301 0 R (cite.RFC2672) 2303 0 R (cite.RFC2673) 2443 0 R (cite.RFC2782) 2367 0 R (cite.RFC2825) 2411 0 R (cite.RFC2826) 2389 0 R (cite.RFC2845) 2305 0 R (cite.RFC2874) 2445 0 R (cite.RFC2915) 2369 0 R (cite.RFC2929) 2391 0 R (cite.RFC2930) 2307 0 R (cite.RFC2931) 2309 0 R (cite.RFC3007) 2311 0 R (cite.RFC3008) 2460 0 R (cite.RFC3071) 2433 0 R (cite.RFC3090) 2462 0 R (cite.RFC3110) 2371 0 R (cite.RFC3123) 2373 0 R (cite.RFC3225) 2317 0 R (cite.RFC3258) 2435 0 R (cite.RFC3445) 2464 0 R (cite.RFC3490) 2413 0 R (cite.RFC3491) 2415 0 R (cite.RFC3492) 2417 0 R (cite.RFC3596) 2375 0 R (cite.RFC3597) 2377 0 R (cite.RFC3645) 2313 0 R (cite.RFC3655) 2466 0 R (cite.RFC3658) 2468 0 R (cite.RFC3755) 2470 0 R (cite.RFC3757) 2472 0 R (cite.RFC3833) 2319 0 R (cite.RFC3845) 2474 0 R (cite.RFC3901) 2437 0 R (cite.RFC4033) 2321 0 R (cite.RFC4034) 2323 0 R (cite.RFC4035) 2325 0 R (cite.RFC4074) 2339 0 R (cite.RFC974) 2288 0 R (cite.id2515289) 2479 0 R (clients-per-query) 2164 0 R (configuration_file_elements) 1615 0 R (controls_statement_definition_and_usage) 1392 0 R (diagnostic_tools) 1332 0 R (dnssec.dynamic.zones) 1499 0 R (dynamic_update) 1420 0 R (dynamic_update_policies) 1427 0 R (dynamic_update_security) 1810 0 R (empty) 1891 0 R (end_of_life) 2251 0 R (historical_dns_information) 2262 0 R (id2466586) 1301 0 R (id2466611) 1302 0 R (id2466682) 1303 0 R (id2466692) 1304 0 R (id2467437) 1312 0 R (id2467721) 1505 0 R (id2467757) 1506 0 R (id2467888) 1314 0 R (id2467909) 1315 0 R (id2467943) 1316 0 R (id2468027) 1319 0 R (id2468104) 1326 0 R (id2470380) 1329 0 R (id2470410) 1330 0 R (id2470432) 1331 0 R (id2470461) 1337 0 R (id2470497) 1338 0 R (id2470592) 1339 0 R (id2470626) 1345 0 R (id2470721) 1346 0 R (id2470733) 1347 0 R (id2470759) 1350 0 R (id2470770) 1356 0 R (id2470802) 1364 0 R (id2470818) 1365 0 R (id2470840) 1370 0 R (id2470857) 1371 0 R (id2471262) 1379 0 R (id2471268) 1380 0 R (id2472321) 1397 0 R (id2472332) 1398 0 R (id2472912) 1439 0 R (id2472930) 1445 0 R (id2473294) 1460 0 R (id2473448) 1461 0 R (id2473486) 1462 0 R (id2473505) 1463 0 R (id2473515) 1464 0 R (id2473552) 1470 0 R (id2473609) 1471 0 R (id2473726) 1473 0 R (id2473740) 1474 0 R (id2473789) 1479 0 R (id2473926) 1481 0 R (id2474005) 1486 0 R (id2474154) 1487 0 R (id2474442) 1500 0 R (id2474968) 1519 0 R (id2475005) 1520 0 R (id2475223) 1521 0 R (id2475256) 1526 0 R (id2475351) 1527 0 R (id2475361) 1528 0 R (id2475370) 1529 0 R (id2475383) 1530 0 R (id2475420) 1531 0 R (id2475430) 1536 0 R (id2475467) 1538 0 R (id2475558) 1540 0 R (id2475660) 1547 0 R (id2475825) 1552 0 R (id2475962) 1557 0 R (id2476011) 1558 0 R (id2476162) 1564 0 R (id2476170) 1565 0 R (id2476202) 1566 0 R (id2476238) 1567 0 R (id2476286) 1572 0 R (id2476317) 1573 0 R (id2476721) 1578 0 R (id2476766) 1579 0 R (id2476889) 1585 0 R (id2476951) 1587 0 R (id2476972) 1588 0 R (id2477074) 1604 0 R (id2477221) 1616 0 R (id2478254) 1628 0 R (id2478282) 1629 0 R (id2478488) 1634 0 R (id2478503) 1635 0 R (id2478533) 1636 0 R (id2478676) 1643 0 R (id2479148) 1645 0 R (id2479185) 1647 0 R (id2479338) 1653 0 R (id2479698) 1661 0 R (id2479715) 1662 0 R (id2479738) 1663 0 R (id2479762) 1664 0 R (id2479921) 1668 0 R (id2480115) 1673 0 R (id2480167) 1674 0 R (id2480795) 1690 0 R (id2481693) 1696 0 R (id2481755) 1701 0 R (id2482145) 1707 0 R (id2482286) 1708 0 R (id2482419) 1711 0 R (id2482462) 1716 0 R (id2482484) 1717 0 R (id2486205) 1763 0 R (id2488594) 1798 0 R (id2488652) 1800 0 R (id2489258) 1815 0 R (id2490480) 1838 0 R (id2490539) 1840 0 R (id2491459) 1856 0 R (id2492029) 1871 0 R (id2493900) 1910 0 R (id2494094) 1916 0 R (id2494661) 1930 0 R (id2495877) 1947 0 R (id2496116) 1958 0 R (id2496163) 1960 0 R (id2496666) 1970 0 R (id2498375) 1987 0 R (id2498382) 1988 0 R (id2498388) 1989 0 R (id2499127) 2001 0 R (id2499160) 2002 0 R (id2501330) 2070 0 R (id2502130) 2081 0 R (id2502148) 2082 0 R (id2502168) 2085 0 R (id2502405) 2091 0 R (id2504262) 2101 0 R (id2504390) 2103 0 R (id2504411) 2108 0 R (id2504910) 2110 0 R (id2505047) 2112 0 R (id2505065) 2113 0 R (id2505538) 2121 0 R (id2505662) 2123 0 R (id2505677) 2124 0 R (id2505789) 2126 0 R (id2505812) 2131 0 R (id2505828) 2132 0 R (id2505889) 2133 0 R (id2505958) 2134 0 R (id2505994) 2135 0 R (id2506138) 2140 0 R (id2506581) 2147 0 R (id2507153) 2155 0 R (id2507158) 2156 0 R (id2508722) 2169 0 R (id2508728) 2170 0 R (id2509105) 2172 0 R (id2509110) 2173 0 R (id2510126) 2179 0 R (id2510158) 2180 0 R (id2510568) 2185 0 R (id2510727) 2207 0 R (id2510945) 2208 0 R (id2511004) 2209 0 R (id2511084) 2224 0 R (id2511090) 2225 0 R (id2511101) 2226 0 R (id2511118) 2227 0 R (id2511318) 2239 0 R (id2512117) 2280 0 R (id2512119) 2282 0 R (id2512128) 2287 0 R (id2512219) 2283 0 R (id2512243) 2285 0 R (id2512279) 2296 0 R (id2512306) 2298 0 R (id2512331) 2290 0 R (id2512356) 2292 0 R (id2512379) 2294 0 R (id2512435) 2300 0 R (id2512461) 2302 0 R (id2512488) 2304 0 R (id2512550) 2306 0 R (id2512580) 2308 0 R (id2512610) 2310 0 R (id2512636) 2312 0 R (id2512711) 2315 0 R (id2512718) 2316 0 R (id2512745) 2318 0 R (id2512781) 2320 0 R (id2512846) 2322 0 R (id2512912) 2324 0 R (id2512977) 2327 0 R (id2512985) 2328 0 R (id2513011) 2330 0 R (id2513079) 2332 0 R (id2513114) 2338 0 R (id2513155) 2341 0 R (id2513160) 2342 0 R (id2513218) 2344 0 R (id2513255) 2352 0 R (id2513290) 2346 0 R (id2513345) 2348 0 R (id2513383) 2350 0 R (id2513409) 2354 0 R (id2513434) 2356 0 R (id2513461) 2358 0 R (id2513488) 2360 0 R (id2513527) 2362 0 R (id2513557) 2364 0 R (id2513587) 2366 0 R (id2513629) 2368 0 R (id2513662) 2370 0 R (id2513689) 2372 0 R (id2513713) 2374 0 R (id2513770) 2376 0 R (id2513795) 2379 0 R (id2513802) 2380 0 R (id2513828) 2382 0 R (id2513850) 2384 0 R (id2513942) 2386 0 R (id2513988) 2388 0 R (id2514011) 2390 0 R (id2514061) 2397 0 R (id2514069) 2398 0 R (id2514092) 2400 0 R (id2514119) 2402 0 R (id2514146) 2404 0 R (id2514182) 2406 0 R (id2514222) 2409 0 R (id2514228) 2410 0 R (id2514260) 2412 0 R (id2514306) 2414 0 R (id2514341) 2416 0 R (id2514368) 2419 0 R (id2514386) 2420 0 R (id2514408) 2422 0 R (id2514434) 2424 0 R (id2514459) 2426 0 R (id2514483) 2428 0 R (id2514529) 2430 0 R (id2514552) 2432 0 R (id2514579) 2434 0 R (id2514604) 2436 0 R (id2514642) 2439 0 R (id2514648) 2440 0 R (id2514706) 2442 0 R (id2514732) 2444 0 R (id2514769) 2452 0 R (id2514780) 2453 0 R (id2514888) 2455 0 R (id2514915) 2457 0 R (id2514945) 2459 0 R (id2514970) 2461 0 R (id2514997) 2463 0 R (id2515033) 2465 0 R (id2515069) 2467 0 R (id2515096) 2469 0 R (id2515123) 2471 0 R (id2515168) 2473 0 R (id2515209) 2476 0 R (id2515287) 2478 0 R (id2515289) 2480 0 R (id2515385) 2491 0 R (id2515395) 2492 0 R (id2515419) 2497 0 R (id2515450) 2498 0 R (id2515595) 2499 0 R (id2515622) 2501 0 R (id2515630) 2506 0 R (id2515721) 2507 0 R (id2515843) 2512 0 R (id2515907) 2513 0 R (id2515922) 2514 0 R (id2516189) 2520 0 R (id2516253) 2525 0 R (incremental_zone_transfers) 1436 0 R (internet_drafts) 2475 0 R (ipv6addresses) 1589 0 R (journal) 1432 0 R (lwresd) 1605 0 R (man.arpaname) 2903 0 R (man.ddns-confgen) 2892 0 R (man.dig) 2531 0 R (man.dnssec-checkds) 2583 0 R (man.dnssec-coverage) 2594 0 R (man.dnssec-dsfromkey) 2606 0 R (man.dnssec-keyfromlabel) 2624 0 R (man.dnssec-keygen) 1513 0 R (man.dnssec-revoke) 2671 0 R (man.dnssec-settime) 1514 0 R (man.dnssec-signzone) 2699 0 R (man.dnssec-verify) 2727 0 R (man.genrandom) 2913 0 R (man.host) 2568 0 R (man.isc-hmac-fixup) 2920 0 R (man.named) 2771 0 R (man.named-checkconf) 2739 0 R (man.named-checkzone) 2755 0 R (man.named-journalprint) 2794 0 R (man.nsec3hash) 2932 0 R (man.nsupdate) 2804 0 R (man.rndc) 1391 0 R (man.rndc-confgen) 2876 0 R (man.rndc.conf) 2859 0 R (managed-keys) 1541 0 R (notify) 1411 0 R (options) 1735 0 R (page.1) 990 0 R (page.10) 1388 0 R (page.100) 1982 0 R (page.101) 1986 0 R (page.102) 1994 0 R (page.103) 1999 0 R (page.104) 2008 0 R (page.105) 2028 0 R (page.106) 2042 0 R (page.107) 2056 0 R (page.108) 2069 0 R (page.109) 2076 0 R (page.11) 1396 0 R (page.110) 2080 0 R (page.111) 2090 0 R (page.112) 2096 0 R (page.113) 2100 0 R (page.114) 2107 0 R (page.115) 2119 0 R (page.116) 2130 0 R (page.117) 2139 0 R (page.118) 2145 0 R (page.119) 2152 0 R (page.12) 1403 0 R (page.120) 2161 0 R (page.121) 2168 0 R (page.122) 2178 0 R (page.123) 2189 0 R (page.124) 2193 0 R (page.125) 2197 0 R (page.126) 2203 0 R (page.127) 2214 0 R (page.128) 2218 0 R (page.129) 2222 0 R (page.13) 1409 0 R (page.130) 2233 0 R (page.131) 2237 0 R (page.132) 2248 0 R (page.133) 2260 0 R (page.134) 2266 0 R (page.135) 2270 0 R (page.136) 2278 0 R (page.137) 2337 0 R (page.138) 2395 0 R (page.139) 2450 0 R (page.14) 1431 0 R (page.140) 2484 0 R (page.141) 2488 0 R (page.142) 2496 0 R (page.143) 2505 0 R (page.144) 2511 0 R (page.145) 2519 0 R (page.146) 2524 0 R (page.147) 2529 0 R (page.148) 2538 0 R (page.149) 2544 0 R (page.15) 1444 0 R (page.150) 2549 0 R (page.151) 2554 0 R (page.152) 2558 0 R (page.153) 2563 0 R (page.154) 2575 0 R (page.155) 2580 0 R (page.156) 2592 0 R (page.157) 2603 0 R (page.158) 2613 0 R (page.159) 2619 0 R (page.16) 1449 0 R (page.160) 2632 0 R (page.161) 2636 0 R (page.162) 2641 0 R (page.163) 2652 0 R (page.164) 2657 0 R (page.165) 2661 0 R (page.166) 2667 0 R (page.167) 2679 0 R (page.168) 2688 0 R (page.169) 2695 0 R (page.17) 1454 0 R (page.170) 2705 0 R (page.171) 2711 0 R (page.172) 2715 0 R (page.173) 2719 0 R (page.174) 2723 0 R (page.175) 2736 0 R (page.176) 2745 0 R (page.177) 2754 0 R (page.178) 2763 0 R (page.179) 2767 0 R (page.18) 1459 0 R (page.180) 2778 0 R (page.181) 2784 0 R (page.182) 2788 0 R (page.183) 2799 0 R (page.184) 2811 0 R (page.185) 2816 0 R (page.186) 2821 0 R (page.187) 2826 0 R (page.188) 2834 0 R (page.189) 2842 0 R (page.19) 1469 0 R (page.190) 2847 0 R (page.191) 2851 0 R (page.192) 2855 0 R (page.193) 2867 0 R (page.194) 2872 0 R (page.195) 2883 0 R (page.196) 2889 0 R (page.197) 2900 0 R (page.198) 2912 0 R (page.199) 2927 0 R (page.2) 1017 0 R (page.20) 1478 0 R (page.200) 2940 0 R (page.21) 1485 0 R (page.22) 1491 0 R (page.23) 1495 0 R (page.24) 1504 0 R (page.25) 1518 0 R (page.26) 1525 0 R (page.27) 1535 0 R (page.28) 1545 0 R (page.29) 1551 0 R (page.3) 1325 0 R (page.30) 1556 0 R (page.31) 1563 0 R (page.32) 1571 0 R (page.33) 1577 0 R (page.34) 1584 0 R (page.35) 1593 0 R (page.36) 1597 0 R (page.37) 1602 0 R (page.38) 1609 0 R (page.39) 1613 0 R (page.4) 1336 0 R (page.40) 1623 0 R (page.41) 1627 0 R (page.42) 1633 0 R (page.43) 1641 0 R (page.44) 1652 0 R (page.45) 1660 0 R (page.46) 1672 0 R (page.47) 1678 0 R (page.48) 1682 0 R (page.49) 1689 0 R (page.5) 1343 0 R (page.50) 1695 0 R (page.51) 1700 0 R (page.52) 1706 0 R (page.53) 1715 0 R (page.54) 1721 0 R (page.55) 1726 0 R (page.56) 1730 0 R (page.57) 1734 0 R (page.58) 1739 0 R (page.59) 1743 0 R (page.6) 1355 0 R (page.60) 1750 0 R (page.61) 1756 0 R (page.62) 1762 0 R (page.63) 1768 0 R (page.64) 1773 0 R (page.65) 1782 0 R (page.66) 1786 0 R (page.67) 1791 0 R (page.68) 1797 0 R (page.69) 1807 0 R (page.7) 1361 0 R (page.70) 1814 0 R (page.71) 1819 0 R (page.72) 1824 0 R (page.73) 1829 0 R (page.74) 1833 0 R (page.75) 1837 0 R (page.76) 1847 0 R (page.77) 1851 0 R (page.78) 1855 0 R (page.79) 1862 0 R (page.8) 1369 0 R (page.80) 1869 0 R (page.81) 1876 0 R (page.82) 1882 0 R (page.83) 1888 0 R (page.84) 1896 0 R (page.85) 1901 0 R (page.86) 1905 0 R (page.87) 1909 0 R (page.88) 1914 0 R (page.89) 1920 0 R (page.9) 1378 0 R (page.90) 1924 0 R (page.91) 1929 0 R (page.92) 1934 0 R (page.93) 1938 0 R (page.94) 1943 0 R (page.95) 1951 0 R (page.96) 1964 0 R (page.97) 1969 0 R (page.98) 1974 0 R (page.99) 1978 0 R (page.i) 1024 0 R (page.ii) 1079 0 R (page.iii) 1143 0 R (page.iv) 1206 0 R (page.v) 1267 0 R (pkcs11) 1546 0 R (proposed_standards) 1440 0 R (query_address) 1820 0 R (relnotes_bugs) 2250 0 R (relnotes_changes) 2249 0 R (relnotes_download) 2241 0 R (relnotes_features) 2244 0 R (relnotes_intro) 2240 0 R (relnotes_security) 2243 0 R (relnotes_thanks) 2254 0 R (rfc5011.support) 1537 0 R (rfcs) 1321 0 R (rndc) 1656 0 R (root_delegation_only) 2004 0 R (rrset_ordering) 1374 0 R (sample_configuration) 1363 0 R (section*.10) 2408 0 R (section*.100) 2747 0 R (section*.101) 2748 0 R (section*.102) 2749 0 R (section*.103) 2750 0 R (section*.104) 2756 0 R (section*.105) 2757 0 R (section*.106) 2758 0 R (section*.107) 2759 0 R (section*.108) 2768 0 R (section*.109) 2769 0 R (section*.11) 2418 0 R (section*.110) 2770 0 R (section*.111) 2772 0 R (section*.112) 2773 0 R (section*.113) 2774 0 R (section*.114) 2779 0 R (section*.115) 2789 0 R (section*.116) 2790 0 R (section*.117) 2791 0 R (section*.118) 2792 0 R (section*.119) 2793 0 R (section*.12) 2438 0 R (section*.120) 2795 0 R (section*.121) 2800 0 R (section*.122) 2801 0 R (section*.123) 2802 0 R (section*.124) 2803 0 R (section*.125) 2805 0 R (section*.126) 2806 0 R (section*.127) 2807 0 R (section*.128) 2812 0 R (section*.129) 2817 0 R (section*.13) 2451 0 R (section*.130) 2827 0 R (section*.131) 2828 0 R (section*.132) 2829 0 R (section*.133) 2830 0 R (section*.134) 2835 0 R (section*.135) 2836 0 R (section*.136) 2837 0 R (section*.137) 2838 0 R (section*.138) 2843 0 R (section*.139) 2856 0 R (section*.14) 2477 0 R (section*.140) 2857 0 R (section*.141) 2858 0 R (section*.142) 2860 0 R (section*.143) 2861 0 R (section*.144) 2862 0 R (section*.145) 2868 0 R (section*.146) 2873 0 R (section*.147) 2874 0 R (section*.148) 2875 0 R (section*.149) 2877 0 R (section*.15) 2532 0 R (section*.150) 2878 0 R (section*.151) 2879 0 R (section*.152) 2884 0 R (section*.153) 2885 0 R (section*.154) 2890 0 R (section*.155) 2891 0 R (section*.156) 2893 0 R (section*.157) 2894 0 R (section*.158) 2895 0 R (section*.159) 2896 0 R (section*.16) 2533 0 R (section*.160) 2901 0 R (section*.161) 2902 0 R (section*.162) 2904 0 R (section*.163) 2905 0 R (section*.164) 2906 0 R (section*.165) 2907 0 R (section*.166) 2908 0 R (section*.167) 2914 0 R (section*.168) 2915 0 R (section*.169) 2916 0 R (section*.17) 2534 0 R (section*.170) 2917 0 R (section*.171) 2918 0 R (section*.172) 2919 0 R (section*.173) 2921 0 R (section*.174) 2922 0 R (section*.175) 2928 0 R (section*.176) 2929 0 R (section*.177) 2930 0 R (section*.178) 2931 0 R (section*.179) 2933 0 R (section*.18) 2539 0 R (section*.180) 2934 0 R (section*.181) 2935 0 R (section*.182) 2936 0 R (section*.183) 2941 0 R (section*.184) 2942 0 R (section*.19) 2540 0 R (section*.2) 2279 0 R (section*.20) 2545 0 R (section*.21) 2559 0 R (section*.22) 2564 0 R (section*.23) 2565 0 R (section*.24) 2566 0 R (section*.25) 2567 0 R (section*.26) 2569 0 R (section*.27) 2570 0 R (section*.28) 2571 0 R (section*.29) 2576 0 R (section*.3) 2281 0 R (section*.30) 2581 0 R (section*.31) 2582 0 R (section*.32) 2584 0 R (section*.33) 2585 0 R (section*.34) 2586 0 R (section*.35) 2587 0 R (section*.36) 2588 0 R (section*.37) 2593 0 R (section*.38) 2595 0 R (section*.39) 2596 0 R (section*.4) 2289 0 R (section*.40) 2597 0 R (section*.41) 2598 0 R (section*.42) 2604 0 R (section*.43) 2605 0 R (section*.44) 2607 0 R (section*.45) 2608 0 R (section*.46) 2609 0 R (section*.47) 2614 0 R (section*.48) 2615 0 R (section*.49) 2620 0 R (section*.5) 2314 0 R (section*.50) 2621 0 R (section*.51) 2622 0 R (section*.52) 2623 0 R (section*.53) 2625 0 R (section*.54) 2626 0 R (section*.55) 2627 0 R (section*.56) 2628 0 R (section*.57) 2637 0 R (section*.58) 2642 0 R (section*.59) 2643 0 R (section*.6) 2326 0 R (section*.60) 2644 0 R (section*.61) 2645 0 R (section*.62) 2646 0 R (section*.63) 2647 0 R (section*.64) 2653 0 R (section*.65) 2662 0 R (section*.66) 2663 0 R (section*.67) 2668 0 R (section*.68) 2669 0 R (section*.69) 2670 0 R (section*.7) 2340 0 R (section*.70) 2672 0 R (section*.71) 2673 0 R (section*.72) 2674 0 R (section*.73) 2675 0 R (section*.74) 2680 0 R (section*.75) 2681 0 R (section*.76) 2682 0 R (section*.77) 2683 0 R (section*.78) 2684 0 R (section*.79) 2689 0 R (section*.8) 2378 0 R (section*.80) 2690 0 R (section*.81) 2696 0 R (section*.82) 2697 0 R (section*.83) 2698 0 R (section*.84) 2700 0 R (section*.85) 2701 0 R (section*.86) 2706 0 R (section*.87) 2707 0 R (section*.88) 2724 0 R (section*.89) 2725 0 R (section*.9) 2396 0 R (section*.90) 2726 0 R (section*.91) 2728 0 R (section*.92) 2729 0 R (section*.93) 2730 0 R (section*.94) 2731 0 R (section*.95) 2737 0 R (section*.96) 2738 0 R (section*.97) 2740 0 R (section*.98) 2741 0 R (section*.99) 2746 0 R (section.1.1) 10 0 R (section.1.2) 14 0 R (section.1.3) 18 0 R (section.1.4) 22 0 R (section.2.1) 70 0 R (section.2.2) 74 0 R (section.2.3) 78 0 R (section.2.4) 82 0 R (section.2.5) 86 0 R (section.3.1) 94 0 R (section.3.2) 106 0 R (section.3.3) 110 0 R (section.4.1) 134 0 R (section.4.10) 274 0 R (section.4.11) 286 0 R (section.4.12) 338 0 R (section.4.2) 138 0 R (section.4.3) 146 0 R (section.4.4) 150 0 R (section.4.5) 158 0 R (section.4.6) 194 0 R (section.4.7) 198 0 R (section.4.8) 202 0 R (section.4.9) 218 0 R (section.5.1) 354 0 R (section.5.2) 358 0 R (section.6.1) 366 0 R (section.6.2) 394 0 R (section.6.3) 622 0 R (section.6.4) 678 0 R (section.7.1) 714 0 R (section.7.2) 718 0 R (section.7.3) 730 0 R (section.8.1) 738 0 R (section.8.2) 746 0 R (section.8.3) 750 0 R (section.A.1) 758 0 R (section.B.1) 798 0 R (section.C.1) 806 0 R (section.C.2) 810 0 R (section.D.1) 830 0 R (section.E.1) 890 0 R (section.E.10) 926 0 R (section.E.11) 930 0 R (section.E.12) 934 0 R (section.E.13) 938 0 R (section.E.14) 942 0 R (section.E.15) 946 0 R (section.E.16) 950 0 R (section.E.17) 954 0 R (section.E.18) 958 0 R (section.E.19) 962 0 R (section.E.2) 894 0 R (section.E.20) 966 0 R (section.E.21) 970 0 R (section.E.22) 974 0 R (section.E.23) 978 0 R (section.E.24) 982 0 R (section.E.3) 898 0 R (section.E.4) 902 0 R (section.E.5) 906 0 R (section.E.6) 910 0 R (section.E.7) 914 0 R (section.E.8) 918 0 R (section.E.9) 922 0 R (server_resource_limits) 1842 0 R (server_statement_definition_and_usage) 1778 0 R (server_statement_grammar) 1939 0 R (statistics) 2146 0 R (statistics_counters) 2154 0 R (statschannels) 1946 0 R (statsfile) 1746 0 R (subsection.1.4.1) 26 0 R (subsection.1.4.2) 30 0 R (subsection.1.4.3) 34 0 R (subsection.1.4.4) 38 0 R (subsection.1.4.5) 54 0 R (subsection.1.4.6) 62 0 R (subsection.3.1.1) 98 0 R (subsection.3.1.2) 102 0 R (subsection.3.3.1) 114 0 R (subsection.3.3.2) 126 0 R (subsection.4.10.1) 278 0 R (subsection.4.10.2) 282 0 R (subsection.4.11.1) 290 0 R (subsection.4.11.2) 306 0 R (subsection.4.11.3) 322 0 R (subsection.4.11.4) 326 0 R (subsection.4.11.5) 330 0 R (subsection.4.11.6) 334 0 R (subsection.4.12.1) 342 0 R (subsection.4.12.2) 346 0 R (subsection.4.2.1) 142 0 R (subsection.4.4.1) 154 0 R (subsection.4.5.1) 162 0 R (subsection.4.5.2) 174 0 R (subsection.4.5.3) 178 0 R (subsection.4.5.4) 182 0 R (subsection.4.5.5) 186 0 R (subsection.4.5.6) 190 0 R (subsection.4.8.1) 206 0 R (subsection.4.8.2) 210 0 R (subsection.4.8.3) 214 0 R (subsection.4.9.1) 222 0 R (subsection.4.9.10) 258 0 R (subsection.4.9.11) 262 0 R (subsection.4.9.12) 266 0 R (subsection.4.9.13) 270 0 R (subsection.4.9.2) 226 0 R (subsection.4.9.3) 230 0 R (subsection.4.9.4) 234 0 R (subsection.4.9.5) 238 0 R (subsection.4.9.6) 242 0 R (subsection.4.9.7) 246 0 R (subsection.4.9.8) 250 0 R (subsection.4.9.9) 254 0 R (subsection.6.1.1) 370 0 R (subsection.6.1.2) 382 0 R (subsection.6.2.1) 398 0 R (subsection.6.2.10) 434 0 R (subsection.6.2.11) 450 0 R (subsection.6.2.12) 454 0 R (subsection.6.2.13) 458 0 R (subsection.6.2.14) 462 0 R (subsection.6.2.15) 466 0 R (subsection.6.2.16) 470 0 R (subsection.6.2.17) 558 0 R (subsection.6.2.18) 562 0 R (subsection.6.2.19) 566 0 R (subsection.6.2.2) 402 0 R (subsection.6.2.20) 570 0 R (subsection.6.2.21) 574 0 R (subsection.6.2.22) 578 0 R (subsection.6.2.23) 582 0 R (subsection.6.2.24) 586 0 R (subsection.6.2.25) 590 0 R (subsection.6.2.26) 594 0 R (subsection.6.2.27) 598 0 R (subsection.6.2.28) 602 0 R (subsection.6.2.3) 406 0 R (subsection.6.2.4) 410 0 R (subsection.6.2.5) 414 0 R (subsection.6.2.6) 418 0 R (subsection.6.2.7) 422 0 R (subsection.6.2.8) 426 0 R (subsection.6.2.9) 430 0 R (subsection.6.3.1) 626 0 R (subsection.6.3.2) 638 0 R (subsection.6.3.3) 642 0 R (subsection.6.3.4) 646 0 R (subsection.6.3.5) 650 0 R (subsection.6.3.6) 670 0 R (subsection.6.3.7) 674 0 R (subsection.6.4.1) 686 0 R (subsection.7.2.1) 722 0 R (subsection.7.2.2) 726 0 R (subsection.8.1.1) 742 0 R (subsection.A.1.1) 762 0 R (subsection.A.1.2) 766 0 R (subsection.A.1.3) 770 0 R (subsection.A.1.4) 774 0 R (subsection.A.1.5) 778 0 R (subsection.A.1.6) 782 0 R (subsection.A.1.7) 786 0 R (subsection.A.1.8) 790 0 R (subsection.C.2.1) 814 0 R (subsection.C.2.2) 818 0 R (subsection.C.2.3) 822 0 R (subsection.D.1.1) 834 0 R (subsection.D.1.2) 838 0 R (subsection.D.1.3) 842 0 R (subsection.D.1.4) 846 0 R (subsection.D.1.5) 850 0 R (subsection.D.1.6) 854 0 R (subsection.D.1.7) 882 0 R (subsubsection.1.4.4.1) 42 0 R (subsubsection.1.4.4.2) 46 0 R (subsubsection.1.4.4.3) 50 0 R (subsubsection.1.4.5.1) 58 0 R (subsubsection.3.3.1.1) 118 0 R (subsubsection.3.3.1.2) 122 0 R (subsubsection.4.11.1.1) 294 0 R (subsubsection.4.11.1.2) 298 0 R (subsubsection.4.11.1.3) 302 0 R (subsubsection.4.11.2.1) 310 0 R (subsubsection.4.11.2.2) 314 0 R (subsubsection.4.11.2.3) 318 0 R (subsubsection.4.5.1.1) 166 0 R (subsubsection.4.5.1.2) 170 0 R (subsubsection.6.1.1.1) 374 0 R (subsubsection.6.1.1.2) 378 0 R (subsubsection.6.1.2.1) 386 0 R (subsubsection.6.1.2.2) 390 0 R (subsubsection.6.2.10.1) 438 0 R (subsubsection.6.2.10.2) 442 0 R (subsubsection.6.2.10.3) 446 0 R (subsubsection.6.2.16.1) 474 0 R (subsubsection.6.2.16.10) 510 0 R (subsubsection.6.2.16.11) 514 0 R (subsubsection.6.2.16.12) 518 0 R (subsubsection.6.2.16.13) 522 0 R (subsubsection.6.2.16.14) 526 0 R (subsubsection.6.2.16.15) 530 0 R (subsubsection.6.2.16.16) 534 0 R (subsubsection.6.2.16.17) 538 0 R (subsubsection.6.2.16.18) 542 0 R (subsubsection.6.2.16.19) 546 0 R (subsubsection.6.2.16.2) 478 0 R (subsubsection.6.2.16.20) 550 0 R (subsubsection.6.2.16.21) 554 0 R (subsubsection.6.2.16.3) 482 0 R (subsubsection.6.2.16.4) 486 0 R (subsubsection.6.2.16.5) 490 0 R (subsubsection.6.2.16.6) 494 0 R (subsubsection.6.2.16.7) 498 0 R (subsubsection.6.2.16.8) 502 0 R (subsubsection.6.2.16.9) 506 0 R (subsubsection.6.2.28.1) 606 0 R (subsubsection.6.2.28.2) 610 0 R (subsubsection.6.2.28.3) 614 0 R (subsubsection.6.2.28.4) 618 0 R (subsubsection.6.3.1.1) 630 0 R (subsubsection.6.3.1.2) 634 0 R (subsubsection.6.3.5.1) 654 0 R (subsubsection.6.3.5.2) 658 0 R (subsubsection.6.3.5.3) 662 0 R (subsubsection.6.3.5.4) 666 0 R (subsubsection.6.4.0.1) 682 0 R (subsubsection.6.4.1.1) 690 0 R (subsubsection.6.4.1.2) 694 0 R (subsubsection.6.4.1.3) 698 0 R (subsubsection.6.4.1.4) 702 0 R (subsubsection.6.4.1.5) 706 0 R (subsubsection.D.1.6.1) 858 0 R (subsubsection.D.1.6.2) 862 0 R (subsubsection.D.1.6.3) 866 0 R (subsubsection.D.1.6.4) 870 0 R (subsubsection.D.1.6.5) 874 0 R (subsubsection.D.1.6.6) 878 0 R (table.1.1) 1305 0 R (table.1.2) 1313 0 R (table.3.1) 1372 0 R (table.3.2) 1399 0 R (table.6.1) 1617 0 R (table.6.10) 2086 0 R (table.6.11) 2092 0 R (table.6.12) 2102 0 R (table.6.13) 2109 0 R (table.6.14) 2111 0 R (table.6.15) 2114 0 R (table.6.16) 2122 0 R (table.6.17) 2125 0 R (table.6.18) 2141 0 R (table.6.19) 2148 0 R (table.6.2) 1644 0 R (table.6.20) 2157 0 R (table.6.21) 2171 0 R (table.6.22) 2174 0 R (table.6.23) 2181 0 R (table.6.3) 1648 0 R (table.6.4) 1691 0 R (table.6.5) 1702 0 R (table.6.6) 1764 0 R (table.6.7) 1872 0 R (table.6.8) 1990 0 R (table.6.9) 2071 0 R (the_category_phrase) 1684 0 R (the_sortlist_statement) 1863 0 R (topology) 1857 0 R (trusted-keys) 1957 0 R (tsig) 1455 0 R (tuning) 1877 0 R (types_of_resource_records_and_when_to_use_them) 1320 0 R (view_statement_grammar) 1892 0 R (zone_statement_grammar) 1803 0 R (zone_transfers) 1426 0 R (zonefile_format) 1884 0 R] /Limits [(Access_Control_Lists) (zonefile_format)] >> endobj -2952 0 obj << -/Kids [2951 0 R] +2970 0 obj << +/Kids [2969 0 R] >> endobj -2953 0 obj << -/Dests 2952 0 R +2971 0 obj << +/Dests 2970 0 R >> endobj -2954 0 obj << +2972 0 obj << /Type /Catalog -/Pages 2949 0 R -/Outlines 2950 0 R -/Names 2953 0 R +/Pages 2967 0 R +/Outlines 2968 0 R +/Names 2971 0 R /PageMode /UseOutlines /OpenAction 985 0 R >> endobj -2955 0 obj << +2973 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords() -/CreationDate (D:20150714233442Z) +/CreationDate (D:20150909021804Z) /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) >> endobj xref -0 2956 +0 2974 0000000001 65535 f 0000000002 00000 f 0000000003 00000 f 0000000004 00000 f 0000000000 00000 f 0000000009 00000 n -0000353481 00000 n -0001261351 00000 n +0000353451 00000 n +0001277051 00000 n 0000000054 00000 n 0000000086 00000 n -0000353608 00000 n -0001261279 00000 n +0000353578 00000 n +0001276979 00000 n 0000000133 00000 n 0000000173 00000 n -0000353736 00000 n -0001261193 00000 n +0000353706 00000 n +0001276893 00000 n 0000000221 00000 n 0000000273 00000 n -0000353864 00000 n -0001261107 00000 n +0000353834 00000 n +0001276807 00000 n 0000000321 00000 n 0000000377 00000 n -0000358181 00000 n -0001260997 00000 n +0000358148 00000 n +0001276697 00000 n 0000000425 00000 n 0000000478 00000 n -0000358308 00000 n -0001260923 00000 n +0000358275 00000 n +0001276623 00000 n 0000000531 00000 n 0000000572 00000 n -0000358436 00000 n -0001260836 00000 n +0000358403 00000 n +0001276536 00000 n 0000000625 00000 n 0000000674 00000 n -0000358563 00000 n -0001260749 00000 n +0000358530 00000 n +0001276449 00000 n 0000000727 00000 n 0000000757 00000 n -0000362903 00000 n -0001260625 00000 n +0000362869 00000 n +0001276325 00000 n 0000000810 00000 n 0000000861 00000 n -0000363031 00000 n -0001260551 00000 n +0000362997 00000 n +0001276251 00000 n 0000000919 00000 n 0000000964 00000 n -0000363159 00000 n -0001260464 00000 n +0000363125 00000 n +0001276164 00000 n 0000001022 00000 n 0000001062 00000 n -0000363287 00000 n -0001260390 00000 n +0000363253 00000 n +0001276090 00000 n 0000001120 00000 n 0000001162 00000 n -0000366306 00000 n -0001260266 00000 n +0000366269 00000 n +0001275966 00000 n 0000001215 00000 n 0000001260 00000 n -0000366434 00000 n -0001260205 00000 n +0000366397 00000 n +0001275905 00000 n 0000001318 00000 n 0000001355 00000 n -0000366562 00000 n -0001260131 00000 n +0000366525 00000 n +0001275831 00000 n 0000001408 00000 n 0000001463 00000 n -0000369596 00000 n -0001260006 00000 n +0000369556 00000 n +0001275706 00000 n 0000001509 00000 n 0000001556 00000 n -0000369724 00000 n -0001259932 00000 n +0000369684 00000 n +0001275632 00000 n 0000001604 00000 n 0000001648 00000 n -0000369852 00000 n -0001259845 00000 n +0000369812 00000 n +0001275545 00000 n 0000001696 00000 n 0000001735 00000 n -0000369980 00000 n -0001259758 00000 n +0000369940 00000 n +0001275458 00000 n 0000001783 00000 n 0000001825 00000 n -0000370107 00000 n -0001259671 00000 n +0000370067 00000 n +0001275371 00000 n 0000001873 00000 n 0000001936 00000 n -0000371216 00000 n -0001259597 00000 n +0000371174 00000 n +0001275297 00000 n 0000001984 00000 n 0000002034 00000 n -0000372966 00000 n -0001259469 00000 n +0000372922 00000 n +0001275169 00000 n 0000002080 00000 n 0000002126 00000 n -0000373093 00000 n -0001259356 00000 n +0000373049 00000 n +0001275056 00000 n 0000002174 00000 n 0000002218 00000 n -0000373221 00000 n -0001259280 00000 n +0000373177 00000 n +0001274980 00000 n 0000002271 00000 n 0000002323 00000 n -0000373349 00000 n -0001259203 00000 n +0000373305 00000 n +0001274903 00000 n 0000002377 00000 n 0000002436 00000 n -0000375838 00000 n -0001259112 00000 n +0000375790 00000 n +0001274812 00000 n 0000002485 00000 n 0000002523 00000 n -0000379218 00000 n -0001258995 00000 n +0000379167 00000 n +0001274695 00000 n 0000002572 00000 n 0000002618 00000 n -0000379346 00000 n -0001258877 00000 n +0000379295 00000 n +0001274577 00000 n 0000002672 00000 n 0000002739 00000 n -0000379474 00000 n -0001258798 00000 n +0000379423 00000 n +0001274498 00000 n 0000002798 00000 n 0000002842 00000 n -0000379603 00000 n -0001258719 00000 n +0000379552 00000 n +0001274419 00000 n 0000002901 00000 n 0000002949 00000 n -0000386675 00000 n -0001258640 00000 n +0000386618 00000 n +0001274340 00000 n 0000003003 00000 n 0000003036 00000 n -0000392355 00000 n -0001258507 00000 n +0000392297 00000 n +0001274207 00000 n 0000003083 00000 n 0000003126 00000 n -0000392484 00000 n -0001258428 00000 n +0000392426 00000 n +0001274128 00000 n 0000003175 00000 n 0000003205 00000 n -0000392613 00000 n -0001258296 00000 n +0000392555 00000 n +0001273996 00000 n 0000003254 00000 n 0000003292 00000 n -0000397166 00000 n -0001258231 00000 n +0000397106 00000 n +0001273931 00000 n 0000003346 00000 n 0000003388 00000 n -0000397295 00000 n -0001258138 00000 n +0000397235 00000 n +0001273838 00000 n 0000003437 00000 n 0000003496 00000 n -0000397424 00000 n -0001258006 00000 n +0000397364 00000 n +0001273706 00000 n 0000003545 00000 n 0000003578 00000 n -0000401186 00000 n -0001257941 00000 n +0000401124 00000 n +0001273641 00000 n 0000003632 00000 n 0000003681 00000 n -0000404418 00000 n -0001257809 00000 n +0000404351 00000 n +0001273509 00000 n 0000003730 00000 n 0000003758 00000 n -0000407396 00000 n -0001257691 00000 n +0000407326 00000 n +0001273391 00000 n 0000003812 00000 n 0000003881 00000 n -0000407525 00000 n -0001257612 00000 n +0000407455 00000 n +0001273312 00000 n 0000003940 00000 n 0000003988 00000 n -0000407654 00000 n -0001257533 00000 n +0000407584 00000 n +0001273233 00000 n 0000004047 00000 n 0000004092 00000 n -0000407783 00000 n -0001257440 00000 n +0000407713 00000 n +0001273140 00000 n 0000004146 00000 n 0000004214 00000 n -0000407912 00000 n -0001257347 00000 n +0000407842 00000 n +0001273047 00000 n 0000004268 00000 n 0000004338 00000 n -0000411411 00000 n -0001257254 00000 n +0000411339 00000 n +0001272954 00000 n 0000004392 00000 n 0000004455 00000 n -0000411540 00000 n -0001257161 00000 n +0000411468 00000 n +0001272861 00000 n 0000004509 00000 n 0000004564 00000 n -0000411669 00000 n -0001257082 00000 n +0000411597 00000 n +0001272782 00000 n 0000004618 00000 n 0000004650 00000 n -0000411798 00000 n -0001256989 00000 n +0000411726 00000 n +0001272689 00000 n 0000004699 00000 n 0000004727 00000 n -0000415689 00000 n -0001256896 00000 n +0000415615 00000 n +0001272596 00000 n 0000004776 00000 n 0000004808 00000 n -0000415818 00000 n -0001256764 00000 n +0000415744 00000 n +0001272464 00000 n 0000004857 00000 n 0000004887 00000 n -0000415946 00000 n -0001256685 00000 n +0000415872 00000 n +0001272385 00000 n 0000004941 00000 n 0000004982 00000 n -0000419890 00000 n -0001256592 00000 n +0000419812 00000 n +0001272292 00000 n 0000005036 00000 n 0000005078 00000 n -0000420018 00000 n -0001256513 00000 n +0000419940 00000 n +0001272213 00000 n 0000005132 00000 n 0000005177 00000 n -0000425240 00000 n -0001256380 00000 n +0000425157 00000 n +0001272080 00000 n 0000005226 00000 n 0000005294 00000 n -0000425369 00000 n -0001256301 00000 n +0000425286 00000 n +0001272001 00000 n 0000005348 00000 n 0000005408 00000 n -0000429387 00000 n -0001256208 00000 n +0000429301 00000 n +0001271908 00000 n 0000005462 00000 n 0000005513 00000 n -0000429516 00000 n -0001256115 00000 n +0000429430 00000 n +0001271815 00000 n 0000005567 00000 n 0000005621 00000 n -0000432635 00000 n -0001256022 00000 n +0000432547 00000 n +0001271722 00000 n 0000005675 00000 n 0000005721 00000 n -0000432764 00000 n -0001255929 00000 n +0000432676 00000 n +0001271629 00000 n 0000005775 00000 n 0000005817 00000 n -0000432893 00000 n -0001255836 00000 n +0000432805 00000 n +0001271536 00000 n 0000005871 00000 n 0000005922 00000 n -0000435831 00000 n -0001255743 00000 n +0000435740 00000 n +0001271443 00000 n 0000005976 00000 n 0000006025 00000 n -0000435960 00000 n -0001255650 00000 n +0000435869 00000 n +0001271350 00000 n 0000006079 00000 n 0000006136 00000 n -0000436089 00000 n -0001255557 00000 n +0000435998 00000 n +0001271257 00000 n 0000006190 00000 n 0000006245 00000 n -0000436217 00000 n -0001255464 00000 n +0000436126 00000 n +0001271164 00000 n 0000006300 00000 n 0000006356 00000 n -0000436345 00000 n -0001255371 00000 n +0000436254 00000 n +0001271071 00000 n 0000006411 00000 n 0000006472 00000 n -0000436473 00000 n -0001255278 00000 n +0000436382 00000 n +0001270978 00000 n 0000006527 00000 n 0000006573 00000 n -0000440332 00000 n -0001255199 00000 n +0000440239 00000 n +0001270899 00000 n 0000006628 00000 n 0000006671 00000 n -0000440461 00000 n -0001255067 00000 n +0000440368 00000 n +0001270767 00000 n 0000006721 00000 n 0000006777 00000 n -0000440590 00000 n -0001254988 00000 n +0000440497 00000 n +0001270688 00000 n 0000006832 00000 n 0000006878 00000 n -0000440718 00000 n -0001254909 00000 n +0000440625 00000 n +0001270609 00000 n 0000006933 00000 n 0000006980 00000 n -0000444377 00000 n -0001254777 00000 n +0000444281 00000 n +0001270477 00000 n 0000007030 00000 n 0000007087 00000 n -0000444506 00000 n -0001254659 00000 n +0000444410 00000 n +0001270359 00000 n 0000007142 00000 n 0000007182 00000 n -0000447187 00000 n -0001254580 00000 n +0000447088 00000 n +0001270280 00000 n 0000007242 00000 n 0000007315 00000 n -0000449830 00000 n -0001254487 00000 n +0000449728 00000 n +0001270187 00000 n 0000007375 00000 n 0000007448 00000 n -0000449958 00000 n -0001254408 00000 n +0000449856 00000 n +0001270108 00000 n 0000007508 00000 n 0000007565 00000 n -0000452369 00000 n -0001254276 00000 n +0000452265 00000 n +0001269976 00000 n 0000007620 00000 n 0000007678 00000 n -0000452497 00000 n -0001254197 00000 n +0000452393 00000 n +0001269897 00000 n 0000007738 00000 n 0000007815 00000 n -0000452626 00000 n -0001254104 00000 n +0000452522 00000 n +0001269804 00000 n 0000007875 00000 n 0000007952 00000 n -0000452755 00000 n -0001254025 00000 n +0000452651 00000 n +0001269725 00000 n 0000008012 00000 n 0000008071 00000 n -0000455722 00000 n -0001253932 00000 n +0000455618 00000 n +0001269632 00000 n 0000008126 00000 n 0000008170 00000 n -0000455850 00000 n -0001253839 00000 n +0000455746 00000 n +0001269539 00000 n 0000008225 00000 n 0000008265 00000 n -0000458645 00000 n -0001253746 00000 n +0000458539 00000 n +0001269446 00000 n 0000008320 00000 n 0000008388 00000 n -0000458773 00000 n -0001253667 00000 n +0000458667 00000 n +0001269367 00000 n 0000008443 00000 n 0000008514 00000 n -0000463045 00000 n -0001253549 00000 n +0000462936 00000 n +0001269249 00000 n 0000008564 00000 n 0000008611 00000 n -0000463173 00000 n -0001253470 00000 n +0000463064 00000 n +0001269170 00000 n 0000008666 00000 n 0000008727 00000 n -0000463302 00000 n -0001253391 00000 n +0000463193 00000 n +0001269091 00000 n 0000008782 00000 n 0000008852 00000 n -0000466989 00000 n -0001253258 00000 n +0000466874 00000 n +0001268958 00000 n 0000008899 00000 n 0000008952 00000 n -0000467118 00000 n -0001253179 00000 n +0000467003 00000 n +0001268879 00000 n 0000009001 00000 n 0000009057 00000 n -0000467247 00000 n -0001253100 00000 n +0000467132 00000 n +0001268800 00000 n 0000009106 00000 n 0000009155 00000 n -0000471570 00000 n -0001252967 00000 n +0000471453 00000 n +0001268667 00000 n 0000009202 00000 n 0000009254 00000 n -0000471699 00000 n -0001252849 00000 n +0000471582 00000 n +0001268549 00000 n 0000009303 00000 n 0000009354 00000 n -0000480037 00000 n -0001252731 00000 n +0000479915 00000 n +0001268431 00000 n 0000009408 00000 n 0000009453 00000 n -0000480166 00000 n -0001252652 00000 n +0000480044 00000 n +0001268352 00000 n 0000009512 00000 n 0000009546 00000 n -0000480295 00000 n -0001252573 00000 n +0000480173 00000 n +0001268273 00000 n 0000009605 00000 n 0000009653 00000 n -0000482766 00000 n -0001252455 00000 n +0000482640 00000 n +0001268155 00000 n 0000009707 00000 n 0000009747 00000 n -0000482895 00000 n -0001252376 00000 n +0000482769 00000 n +0001268076 00000 n 0000009806 00000 n 0000009840 00000 n -0000483024 00000 n -0001252297 00000 n +0000482898 00000 n +0001267997 00000 n 0000009899 00000 n 0000009947 00000 n -0000486089 00000 n -0001252164 00000 n +0000485961 00000 n +0001267864 00000 n 0000009996 00000 n 0000010046 00000 n -0000486348 00000 n -0001252085 00000 n +0000486220 00000 n +0001267785 00000 n 0000010100 00000 n 0000010147 00000 n -0000486477 00000 n -0001251992 00000 n +0000486349 00000 n +0001267692 00000 n 0000010201 00000 n 0000010261 00000 n -0000491565 00000 n -0001251899 00000 n +0000491437 00000 n +0001267599 00000 n 0000010315 00000 n 0000010367 00000 n -0000491694 00000 n -0001251806 00000 n +0000491566 00000 n +0001267506 00000 n 0000010421 00000 n 0000010486 00000 n -0000495825 00000 n -0001251713 00000 n +0000495703 00000 n +0001267413 00000 n 0000010540 00000 n 0000010591 00000 n -0000495954 00000 n -0001251620 00000 n +0000495832 00000 n +0001267320 00000 n 0000010645 00000 n 0000010709 00000 n -0000496083 00000 n -0001251527 00000 n +0000495961 00000 n +0001267227 00000 n 0000010763 00000 n 0000010810 00000 n -0000496212 00000 n -0001251434 00000 n +0000496090 00000 n +0001267134 00000 n 0000010864 00000 n 0000010924 00000 n -0000496340 00000 n -0001251341 00000 n +0000496218 00000 n +0001267041 00000 n 0000010978 00000 n 0000011029 00000 n -0000499542 00000 n -0001251209 00000 n +0000499417 00000 n +0001266909 00000 n 0000011084 00000 n 0000011149 00000 n -0000499671 00000 n -0001251130 00000 n +0000499546 00000 n +0001266830 00000 n 0000011209 00000 n 0000011256 00000 n -0000506998 00000 n -0001251037 00000 n +0000506866 00000 n +0001266737 00000 n 0000011316 00000 n 0000011364 00000 n -0000513979 00000 n -0001250958 00000 n +0000513842 00000 n +0001266658 00000 n 0000011424 00000 n 0000011478 00000 n -0000520754 00000 n -0001250865 00000 n +0000520611 00000 n +0001266565 00000 n 0000011533 00000 n 0000011583 00000 n -0000520883 00000 n -0001250772 00000 n +0000520740 00000 n +0001266472 00000 n 0000011638 00000 n 0000011701 00000 n -0000521011 00000 n -0001250679 00000 n +0000520868 00000 n +0001266379 00000 n 0000011756 00000 n 0000011808 00000 n -0000522848 00000 n -0001250586 00000 n +0000522703 00000 n +0001266286 00000 n 0000011863 00000 n 0000011928 00000 n -0000522977 00000 n -0001250493 00000 n +0000522832 00000 n +0001266193 00000 n 0000011983 00000 n 0000012035 00000 n -0000530739 00000 n -0001250360 00000 n +0000530658 00000 n +0001266060 00000 n 0000012090 00000 n 0000012155 00000 n -0000552034 00000 n -0001250281 00000 n +0000551938 00000 n +0001265981 00000 n 0000012215 00000 n 0000012259 00000 n -0000574283 00000 n -0001250188 00000 n +0000578137 00000 n +0001265888 00000 n 0000012319 00000 n 0000012358 00000 n -0000578122 00000 n -0001250095 00000 n +0000578266 00000 n +0001265795 00000 n 0000012418 00000 n 0000012465 00000 n -0000578249 00000 n -0001250002 00000 n +0000578395 00000 n +0001265702 00000 n 0000012525 00000 n 0000012568 00000 n -0000586375 00000 n -0001249909 00000 n +0000586502 00000 n +0001265609 00000 n 0000012628 00000 n 0000012667 00000 n -0000589981 00000 n -0001249816 00000 n +0000590388 00000 n +0001265516 00000 n 0000012727 00000 n 0000012769 00000 n -0000593123 00000 n -0001249723 00000 n +0000593340 00000 n +0001265423 00000 n 0000012829 00000 n 0000012872 00000 n -0000600496 00000 n -0001249630 00000 n +0000604877 00000 n +0001265330 00000 n 0000012932 00000 n 0000012975 00000 n -0000604807 00000 n -0001249537 00000 n +0000605006 00000 n +0001265237 00000 n 0000013035 00000 n 0000013096 00000 n -0000604936 00000 n -0001249444 00000 n +0000605135 00000 n +0001265144 00000 n 0000013157 00000 n 0000013209 00000 n -0000608994 00000 n -0001249351 00000 n +0000616948 00000 n +0001265051 00000 n 0000013270 00000 n 0000013323 00000 n -0000612782 00000 n -0001249258 00000 n +0000617077 00000 n +0001264958 00000 n 0000013384 00000 n 0000013422 00000 n -0000612910 00000 n -0001249165 00000 n +0000620980 00000 n +0001264865 00000 n 0000013483 00000 n 0000013535 00000 n -0000616110 00000 n -0001249072 00000 n +0000624158 00000 n +0001264772 00000 n 0000013596 00000 n 0000013640 00000 n -0000619627 00000 n -0001248979 00000 n +0000628144 00000 n +0001264679 00000 n 0000013701 00000 n 0000013737 00000 n -0000632317 00000 n -0001248886 00000 n +0000637133 00000 n +0001264586 00000 n 0000013798 00000 n 0000013861 00000 n -0000632446 00000 n -0001248793 00000 n +0000637262 00000 n +0001264493 00000 n 0000013922 00000 n 0000013972 00000 n -0000639130 00000 n -0001248700 00000 n +0000647900 00000 n +0001264400 00000 n 0000014033 00000 n 0000014089 00000 n -0000643745 00000 n -0001248607 00000 n +0000648026 00000 n +0001264307 00000 n 0000014150 00000 n 0000014197 00000 n -0000647946 00000 n -0001248514 00000 n +0000652164 00000 n +0001264214 00000 n 0000014258 00000 n 0000014326 00000 n -0000659950 00000 n -0001248435 00000 n +0000664107 00000 n +0001264135 00000 n 0000014387 00000 n 0000014439 00000 n -0000664434 00000 n -0001248342 00000 n +0000672575 00000 n +0001264042 00000 n 0000014494 00000 n 0000014545 00000 n -0000668465 00000 n -0001248249 00000 n +0000672704 00000 n +0001263949 00000 n 0000014600 00000 n 0000014664 00000 n -0000673180 00000 n -0001248156 00000 n +0000677078 00000 n +0001263856 00000 n 0000014719 00000 n 0000014783 00000 n -0000673309 00000 n -0001248063 00000 n +0000677207 00000 n +0001263763 00000 n 0000014838 00000 n 0000014915 00000 n -0000677946 00000 n -0001247970 00000 n +0000682625 00000 n +0001263670 00000 n 0000014970 00000 n 0000015027 00000 n -0000678075 00000 n -0001247877 00000 n +0000682754 00000 n +0001263577 00000 n 0000015082 00000 n 0000015152 00000 n -0000678204 00000 n -0001247784 00000 n +0000682882 00000 n +0001263484 00000 n 0000015207 00000 n 0000015264 00000 n -0000678333 00000 n -0001247691 00000 n +0000687281 00000 n +0001263391 00000 n 0000015319 00000 n 0000015389 00000 n -0000682559 00000 n -0001247598 00000 n +0000690790 00000 n +0001263298 00000 n 0000015444 00000 n 0000015493 00000 n -0000686070 00000 n -0001247505 00000 n +0000690919 00000 n +0001263205 00000 n 0000015548 00000 n 0000015610 00000 n -0000687849 00000 n -0001247412 00000 n +0000692686 00000 n +0001263112 00000 n 0000015665 00000 n 0000015714 00000 n -0000693490 00000 n -0001247294 00000 n +0000698450 00000 n +0001262994 00000 n 0000015769 00000 n 0000015831 00000 n -0000693617 00000 n -0001247215 00000 n +0000698579 00000 n +0001262915 00000 n 0000015891 00000 n 0000015930 00000 n -0000701523 00000 n -0001247122 00000 n +0000706488 00000 n +0001262822 00000 n 0000015990 00000 n 0000016024 00000 n -0000701651 00000 n -0001247029 00000 n +0000706616 00000 n +0001262729 00000 n 0000016084 00000 n 0000016125 00000 n -0000723638 00000 n -0001246950 00000 n +0000728567 00000 n +0001262650 00000 n 0000016185 00000 n 0000016237 00000 n -0000734745 00000 n -0001246818 00000 n +0000739638 00000 n +0001262518 00000 n 0000016286 00000 n 0000016319 00000 n -0000734874 00000 n -0001246700 00000 n +0000739767 00000 n +0001262400 00000 n 0000016373 00000 n 0000016445 00000 n -0000735003 00000 n -0001246621 00000 n +0000739896 00000 n +0001262321 00000 n 0000016504 00000 n 0000016548 00000 n -0000745712 00000 n -0001246542 00000 n +0000750717 00000 n +0001262242 00000 n 0000016607 00000 n 0000016660 00000 n -0000746101 00000 n -0001246449 00000 n +0000754455 00000 n +0001262149 00000 n 0000016714 00000 n 0000016764 00000 n -0000749996 00000 n -0001246356 00000 n +0000757926 00000 n +0001262056 00000 n 0000016818 00000 n 0000016856 00000 n -0000750255 00000 n -0001246263 00000 n +0000758185 00000 n +0001261963 00000 n 0000016910 00000 n 0000016959 00000 n -0000753066 00000 n -0001246131 00000 n +0000758444 00000 n +0001261831 00000 n 0000017013 00000 n 0000017065 00000 n -0000753191 00000 n -0001246052 00000 n +0000761304 00000 n +0001261752 00000 n 0000017124 00000 n 0000017169 00000 n -0000753320 00000 n -0001245959 00000 n +0000761433 00000 n +0001261659 00000 n 0000017228 00000 n 0000017280 00000 n -0000753449 00000 n -0001245866 00000 n +0000761561 00000 n +0001261566 00000 n 0000017339 00000 n 0000017392 00000 n -0000755943 00000 n -0001245787 00000 n +0000761690 00000 n +0001261487 00000 n 0000017451 00000 n 0000017500 00000 n -0000756072 00000 n -0001245694 00000 n +0000761819 00000 n +0001261394 00000 n 0000017554 00000 n 0000017634 00000 n -0000760464 00000 n -0001245615 00000 n +0000768733 00000 n +0001261315 00000 n 0000017688 00000 n 0000017737 00000 n -0000764011 00000 n -0001245497 00000 n +0000768862 00000 n +0001261197 00000 n 0000017786 00000 n 0000017826 00000 n -0000764270 00000 n -0001245418 00000 n +0000772486 00000 n +0001261118 00000 n 0000017885 00000 n 0000017932 00000 n -0000767731 00000 n -0001245300 00000 n +0000772615 00000 n +0001261000 00000 n 0000017986 00000 n 0000018031 00000 n -0000767860 00000 n -0001245221 00000 n +0000772744 00000 n +0001260921 00000 n 0000018090 00000 n 0000018149 00000 n -0000771245 00000 n -0001245128 00000 n +0000779565 00000 n +0001260828 00000 n 0000018208 00000 n 0000018272 00000 n -0000771504 00000 n -0001245035 00000 n +0000779824 00000 n +0001260735 00000 n 0000018331 00000 n 0000018387 00000 n -0000775722 00000 n -0001244942 00000 n +0000783830 00000 n +0001260642 00000 n 0000018446 00000 n 0000018504 00000 n -0000777940 00000 n -0001244863 00000 n +0000784089 00000 n +0001260563 00000 n 0000018563 00000 n 0000018625 00000 n -0000780192 00000 n -0001244730 00000 n +0000787318 00000 n +0001260430 00000 n 0000018672 00000 n 0000018724 00000 n -0000780320 00000 n -0001244651 00000 n +0000787446 00000 n +0001260351 00000 n 0000018773 00000 n 0000018817 00000 n -0000784150 00000 n -0001244519 00000 n +0000791273 00000 n +0001260219 00000 n 0000018866 00000 n 0000018907 00000 n -0000784279 00000 n -0001244440 00000 n +0000791402 00000 n +0001260140 00000 n 0000018961 00000 n 0000019009 00000 n -0000784408 00000 n -0001244361 00000 n +0000791531 00000 n +0001260061 00000 n 0000019063 00000 n 0000019114 00000 n -0000784536 00000 n -0001244282 00000 n +0000791659 00000 n +0001259982 00000 n 0000019163 00000 n 0000019210 00000 n -0000788920 00000 n -0001244149 00000 n +0000796037 00000 n +0001259849 00000 n 0000019257 00000 n 0000019294 00000 n -0000789049 00000 n -0001244031 00000 n +0000796166 00000 n +0001259731 00000 n 0000019343 00000 n 0000019382 00000 n -0000789178 00000 n -0001243966 00000 n +0000796295 00000 n +0001259666 00000 n 0000019436 00000 n 0000019514 00000 n -0000789307 00000 n -0001243873 00000 n +0000796424 00000 n +0001259573 00000 n 0000019563 00000 n 0000019630 00000 n -0000789436 00000 n -0001243794 00000 n +0000796553 00000 n +0001259494 00000 n 0000019679 00000 n 0000019724 00000 n -0000791845 00000 n -0001243661 00000 n +0000799641 00000 n +0001259361 00000 n 0000019772 00000 n 0000019807 00000 n -0000791974 00000 n -0001243557 00000 n +0000799770 00000 n +0001259257 00000 n 0000019856 00000 n -0000019919 00000 n -0000792103 00000 n -0001243478 00000 n -0000019973 00000 n -0000020011 00000 n -0000792232 00000 n -0001243385 00000 n -0000020065 00000 n -0000020099 00000 n -0000792360 00000 n -0001243292 00000 n -0000020153 00000 n -0000020193 00000 n -0000792489 00000 n -0001243199 00000 n -0000020247 00000 n -0000020285 00000 n -0000792617 00000 n -0001243106 00000 n -0000020339 00000 n -0000020380 00000 n -0000792746 00000 n -0001243013 00000 n -0000020434 00000 n -0000020469 00000 n -0000794755 00000 n -0001242920 00000 n -0000020523 00000 n -0000020560 00000 n -0000794884 00000 n -0001242841 00000 n -0000020614 00000 n -0000020649 00000 n -0000798114 00000 n -0001242708 00000 n -0000020697 00000 n -0000020754 00000 n -0000798243 00000 n -0001242643 00000 n -0000020803 00000 n -0000020834 00000 n -0000802517 00000 n -0001242510 00000 n -0000020882 00000 n -0000020937 00000 n -0000802646 00000 n -0001242431 00000 n -0000020986 00000 n -0000021033 00000 n -0000802775 00000 n -0001242313 00000 n -0000021082 00000 n -0000021144 00000 n -0000802904 00000 n -0001242234 00000 n -0000021198 00000 n -0000021253 00000 n -0000827202 00000 n -0001242141 00000 n -0000021307 00000 n -0000021348 00000 n -0000827331 00000 n -0001242062 00000 n -0000021402 00000 n -0000021454 00000 n -0000830684 00000 n -0001241929 00000 n -0000021502 00000 n -0000021550 00000 n -0000830813 00000 n -0001241825 00000 n -0000021599 00000 n -0000021649 00000 n -0000830941 00000 n -0001241746 00000 n -0000021703 00000 n -0000021741 00000 n -0000831070 00000 n -0001241653 00000 n -0000021795 00000 n -0000021832 00000 n -0000834366 00000 n -0001241560 00000 n -0000021886 00000 n -0000021924 00000 n -0000834495 00000 n -0001241467 00000 n -0000021978 00000 n -0000022030 00000 n -0000834623 00000 n -0001241374 00000 n -0000022084 00000 n -0000022127 00000 n -0000834751 00000 n -0001241242 00000 n -0000022181 00000 n -0000022226 00000 n -0000837471 00000 n -0001241163 00000 n -0000022285 00000 n -0000022351 00000 n -0000837600 00000 n -0001241070 00000 n -0000022410 00000 n -0000022498 00000 n -0000840820 00000 n -0001240977 00000 n -0000022557 00000 n -0000022632 00000 n -0000840948 00000 n -0001240884 00000 n -0000022691 00000 n -0000022776 00000 n -0000841077 00000 n -0001240791 00000 n -0000022835 00000 n -0000022916 00000 n -0000844079 00000 n -0001240712 00000 n -0000022975 00000 n -0000023059 00000 n -0000845169 00000 n -0001240633 00000 n -0000023113 00000 n -0000023157 00000 n -0000847785 00000 n -0001240513 00000 n -0000023205 00000 n -0000023239 00000 n -0000847914 00000 n -0001240434 00000 n -0000023288 00000 n -0000023315 00000 n -0000870406 00000 n -0001240341 00000 n -0000023364 00000 n -0000023392 00000 n -0000874651 00000 n -0001240248 00000 n -0000023441 00000 n -0000023479 00000 n -0000877235 00000 n -0001240155 00000 n -0000023528 00000 n -0000023567 00000 n -0000883837 00000 n -0001240062 00000 n -0000023616 00000 n -0000023656 00000 n -0000890167 00000 n -0001239969 00000 n -0000023705 00000 n -0000023748 00000 n -0000900853 00000 n -0001239876 00000 n -0000023797 00000 n -0000023834 00000 n -0000914120 00000 n -0001239783 00000 n -0000023883 00000 n -0000023920 00000 n -0000917736 00000 n -0001239690 00000 n -0000023969 00000 n -0000024007 00000 n -0000924760 00000 n -0001239597 00000 n -0000024057 00000 n -0000024097 00000 n -0000942219 00000 n -0001239504 00000 n -0000024147 00000 n -0000024185 00000 n -0000945405 00000 n -0001239411 00000 n -0000024235 00000 n -0000024275 00000 n -0000948354 00000 n -0001239318 00000 n -0000024325 00000 n -0000024365 00000 n -0000958459 00000 n -0001239225 00000 n -0000024415 00000 n -0000024445 00000 n -0000967111 00000 n -0001239132 00000 n -0000024495 00000 n -0000024538 00000 n -0000967565 00000 n -0001239039 00000 n -0000024588 00000 n -0000024621 00000 n -0000985895 00000 n -0001238946 00000 n -0000024671 00000 n -0000024700 00000 n -0001000712 00000 n -0001238853 00000 n -0000024750 00000 n -0000024784 00000 n -0001006501 00000 n -0001238760 00000 n -0000024834 00000 n -0000024871 00000 n -0001009794 00000 n -0001238667 00000 n -0000024921 00000 n -0000024958 00000 n -0001015351 00000 n -0001238574 00000 n -0000025008 00000 n -0000025041 00000 n -0001015804 00000 n -0001238481 00000 n -0000025091 00000 n -0000025125 00000 n -0001018788 00000 n -0001238388 00000 n -0000025175 00000 n -0000025214 00000 n -0001020958 00000 n -0001238309 00000 n -0000025264 00000 n -0000025298 00000 n -0000025711 00000 n -0000025833 00000 n -0000290662 00000 n -0000025351 00000 n -0000290536 00000 n -0000290599 00000 n -0001232100 00000 n -0001205958 00000 n -0001231926 00000 n -0001204722 00000 n -0001178103 00000 n -0001204548 00000 n -0001233146 00000 n -0000027146 00000 n -0000027339 00000 n -0000027421 00000 n -0000027460 00000 n -0000027544 00000 n -0000027669 00000 n -0000027935 00000 n -0000028295 00000 n -0000028328 00000 n -0000028423 00000 n -0000029457 00000 n -0000040594 00000 n -0000106185 00000 n -0000171776 00000 n -0000237367 00000 n -0000292125 00000 n -0000291935 00000 n -0000290775 00000 n -0000292060 00000 n -0001177416 00000 n -0001175269 00000 n -0001177250 00000 n -0000304030 00000 n -0000295268 00000 n -0000292212 00000 n -0000303900 00000 n -0000303965 00000 n -0000295855 00000 n -0000296010 00000 n -0000296168 00000 n -0000296326 00000 n -0000296484 00000 n -0000296642 00000 n -0000296805 00000 n -0000296968 00000 n -0000297130 00000 n -0000297293 00000 n -0000297461 00000 n -0000297629 00000 n -0000297795 00000 n -0000297958 00000 n -0000298125 00000 n -0000298288 00000 n -0000298443 00000 n -0000298601 00000 n -0000298759 00000 n -0000298916 00000 n -0000299073 00000 n -0000299231 00000 n -0000299387 00000 n -0000299545 00000 n -0000299708 00000 n -0000299871 00000 n -0000300029 00000 n -0000300185 00000 n -0000300347 00000 n -0000300515 00000 n -0000300683 00000 n -0000300846 00000 n -0000301002 00000 n -0000301160 00000 n -0000301318 00000 n -0000301481 00000 n -0000301639 00000 n -0000301797 00000 n -0000301960 00000 n -0000302118 00000 n -0000302281 00000 n -0000302449 00000 n -0000302617 00000 n -0000302780 00000 n -0000302943 00000 n -0000303106 00000 n -0000303269 00000 n -0000303432 00000 n -0000303588 00000 n -0000303744 00000 n -0000317576 00000 n -0000307510 00000 n -0000304116 00000 n -0000317511 00000 n -0001174681 00000 n -0001157260 00000 n -0001174495 00000 n -0000308160 00000 n -0000308324 00000 n -0000308488 00000 n -0000308651 00000 n -0000308810 00000 n -0000308974 00000 n -0000309137 00000 n -0000309301 00000 n -0000309465 00000 n -0000309629 00000 n -0000309793 00000 n -0000309957 00000 n -0000310121 00000 n -0000310285 00000 n -0000310450 00000 n -0000310615 00000 n -0000310780 00000 n -0000310945 00000 n -0000311105 00000 n -0000311270 00000 n -0000311434 00000 n -0000311594 00000 n -0000311759 00000 n -0000311928 00000 n -0000312098 00000 n -0000312268 00000 n -0000312433 00000 n -0000312602 00000 n -0000312772 00000 n -0000312942 00000 n -0000313106 00000 n -0000313271 00000 n -0000313436 00000 n -0000313601 00000 n -0000313760 00000 n -0000313925 00000 n -0000314090 00000 n -0000314247 00000 n -0000314406 00000 n -0000314565 00000 n -0000314721 00000 n -0000314880 00000 n -0000315044 00000 n -0000315213 00000 n -0000315382 00000 n -0000315546 00000 n -0000315715 00000 n -0000315884 00000 n -0000316043 00000 n -0000316207 00000 n -0000316371 00000 n -0000316535 00000 n -0000316699 00000 n -0000316862 00000 n -0000317026 00000 n -0000317188 00000 n -0000317349 00000 n -0000331746 00000 n -0000321190 00000 n -0000317676 00000 n -0000331681 00000 n -0000321858 00000 n -0000322022 00000 n -0000322191 00000 n -0000322360 00000 n -0000322528 00000 n -0000322692 00000 n -0000322856 00000 n -0000323020 00000 n -0000323184 00000 n -0000323348 00000 n -0000323511 00000 n -0000323680 00000 n -0000323849 00000 n -0000324017 00000 n -0000324186 00000 n -0000324355 00000 n -0000324523 00000 n -0000324692 00000 n -0000324861 00000 n -0000325029 00000 n -0000325199 00000 n -0000325369 00000 n -0000325539 00000 n -0000325709 00000 n -0000325879 00000 n -0000326049 00000 n -0000326219 00000 n -0000326389 00000 n -0000326558 00000 n -0000326728 00000 n -0000326897 00000 n -0000327067 00000 n -0000327230 00000 n -0000327394 00000 n -0000327558 00000 n -0000327722 00000 n -0000327886 00000 n -0000328050 00000 n -0000328214 00000 n -0000328377 00000 n -0000328541 00000 n -0000328705 00000 n -0000328869 00000 n -0000329033 00000 n -0000329202 00000 n -0000329371 00000 n -0000329540 00000 n -0000329709 00000 n -0000329866 00000 n -0000330029 00000 n -0000330196 00000 n -0000330364 00000 n -0000330527 00000 n -0000330690 00000 n -0000330853 00000 n -0000331016 00000 n -0000331184 00000 n -0000331350 00000 n -0000331515 00000 n -0000344848 00000 n -0000335410 00000 n -0000331846 00000 n -0000344783 00000 n -0000336033 00000 n -0000336196 00000 n -0000336359 00000 n -0000336517 00000 n -0000336685 00000 n -0000336848 00000 n -0000337016 00000 n -0000337184 00000 n -0000337352 00000 n -0001156369 00000 n -0001135035 00000 n -0001156193 00000 n -0000337520 00000 n -0000337688 00000 n -0000337844 00000 n -0000338002 00000 n -0000338160 00000 n -0000338323 00000 n -0000338486 00000 n -0000338644 00000 n -0000338800 00000 n -0000338958 00000 n -0000339121 00000 n -0000339279 00000 n -0000339437 00000 n -0000339594 00000 n -0000339752 00000 n -0000339915 00000 n -0000340078 00000 n -0000340241 00000 n -0000340404 00000 n -0000340567 00000 n -0000340730 00000 n -0000340893 00000 n -0000341056 00000 n -0000341213 00000 n -0000341371 00000 n -0000341528 00000 n -0000341686 00000 n -0000341844 00000 n -0000342007 00000 n -0000342170 00000 n -0000342333 00000 n -0000342490 00000 n -0000342648 00000 n -0000342811 00000 n -0000342974 00000 n -0000343137 00000 n -0000343300 00000 n -0000343463 00000 n -0000343626 00000 n -0000343793 00000 n -0000343958 00000 n -0000344125 00000 n -0000344292 00000 n -0000344457 00000 n -0000344623 00000 n -0000350931 00000 n -0000346546 00000 n -0000344962 00000 n -0000350866 00000 n -0000346909 00000 n -0000347066 00000 n -0000347224 00000 n -0000347381 00000 n -0000347539 00000 n -0000347696 00000 n -0000347854 00000 n -0000348012 00000 n -0000348170 00000 n -0000348327 00000 n -0000348485 00000 n -0000348643 00000 n -0000348802 00000 n -0000348961 00000 n -0000349120 00000 n -0000349277 00000 n -0000349436 00000 n -0000349595 00000 n -0001134056 00000 n -0001113929 00000 n -0001133881 00000 n -0000349754 00000 n -0000349913 00000 n -0000350072 00000 n -0000350230 00000 n -0000350389 00000 n -0000350548 00000 n -0000350707 00000 n -0001233269 00000 n -0000354122 00000 n -0000353355 00000 n -0000351045 00000 n -0000353543 00000 n -0000353671 00000 n -0000353799 00000 n -0000353927 00000 n -0000353992 00000 n -0000354057 00000 n -0001113087 00000 n -0001094387 00000 n -0001112912 00000 n -0000358690 00000 n -0000357551 00000 n -0000354250 00000 n -0000358051 00000 n -0000358116 00000 n -0000358243 00000 n -0000358371 00000 n -0000358499 00000 n -0000357707 00000 n -0000357901 00000 n -0000358625 00000 n -0000734938 00000 n -0000802968 00000 n -0000363415 00000 n -0000362357 00000 n -0000358818 00000 n -0000362838 00000 n -0000362966 00000 n -0000362513 00000 n -0000362676 00000 n -0000363094 00000 n -0000363222 00000 n -0000363350 00000 n -0000379538 00000 n -0000366690 00000 n -0000366115 00000 n -0000363543 00000 n -0000366241 00000 n -0000366369 00000 n -0000366497 00000 n -0000366625 00000 n -0000370235 00000 n -0000369069 00000 n -0000366804 00000 n -0000369531 00000 n -0000369659 00000 n -0000369787 00000 n -0000369915 00000 n -0000370043 00000 n -0000369225 00000 n -0000369378 00000 n -0000370170 00000 n -0000639194 00000 n -0000371344 00000 n -0000371025 00000 n -0000370321 00000 n -0000371151 00000 n -0000371279 00000 n -0001233394 00000 n -0000373478 00000 n -0000372775 00000 n -0000371444 00000 n -0000372901 00000 n -0000373029 00000 n -0000373156 00000 n -0000373284 00000 n -0000373413 00000 n -0000376097 00000 n -0000375467 00000 n -0000373578 00000 n -0000375773 00000 n -0000375902 00000 n -0000375967 00000 n -0000376032 00000 n -0000375614 00000 n -0000616174 00000 n -0000379732 00000 n -0000379027 00000 n -0000376211 00000 n -0000379153 00000 n -0000379282 00000 n -0000379409 00000 n -0001093665 00000 n -0001080288 00000 n -0001093486 00000 n -0000379667 00000 n -0000384642 00000 n -0000384081 00000 n -0000379860 00000 n -0000384577 00000 n -0000384237 00000 n -0000384391 00000 n -0000985959 00000 n -0000491758 00000 n -0000386932 00000 n -0000386484 00000 n -0000384798 00000 n -0000386610 00000 n -0000386738 00000 n -0000386803 00000 n -0000386868 00000 n -0000387401 00000 n -0000387210 00000 n -0000387060 00000 n -0000387336 00000 n -0001233519 00000 n -0000390152 00000 n -0000392742 00000 n -0000389987 00000 n -0000387443 00000 n -0000392290 00000 n -0000392419 00000 n -0000392548 00000 n -0000391795 00000 n -0000391957 00000 n -0001079382 00000 n -0001069362 00000 n -0001079208 00000 n -0001068798 00000 n -0001059712 00000 n -0001068623 00000 n -0000392677 00000 n -0000392119 00000 n +0000019916 00000 n +0000799899 00000 n +0001259178 00000 n +0000019970 00000 n +0000020008 00000 n +0000800027 00000 n +0001259085 00000 n +0000020062 00000 n +0000020096 00000 n +0000800156 00000 n +0001258992 00000 n +0000020150 00000 n +0000020190 00000 n +0000800285 00000 n +0001258899 00000 n +0000020244 00000 n +0000020282 00000 n +0000804927 00000 n +0001258806 00000 n +0000020336 00000 n +0000020377 00000 n +0000805055 00000 n +0001258713 00000 n +0000020431 00000 n +0000020466 00000 n +0000805184 00000 n +0001258620 00000 n +0000020520 00000 n +0000020557 00000 n +0000805313 00000 n +0001258541 00000 n +0000020611 00000 n +0000020646 00000 n +0000808569 00000 n +0001258408 00000 n +0000020694 00000 n +0000020751 00000 n +0000808698 00000 n +0001258343 00000 n +0000020800 00000 n +0000020831 00000 n +0000812969 00000 n +0001258210 00000 n +0000020879 00000 n +0000020934 00000 n +0000813098 00000 n +0001258131 00000 n +0000020983 00000 n +0000021030 00000 n +0000813227 00000 n +0001258013 00000 n +0000021079 00000 n +0000021141 00000 n +0000813356 00000 n +0001257934 00000 n +0000021195 00000 n +0000021250 00000 n +0000837645 00000 n +0001257841 00000 n +0000021304 00000 n +0000021345 00000 n +0000837774 00000 n +0001257762 00000 n +0000021399 00000 n +0000021451 00000 n +0000841125 00000 n +0001257629 00000 n +0000021499 00000 n +0000021547 00000 n +0000841254 00000 n +0001257525 00000 n +0000021596 00000 n +0000021646 00000 n +0000841382 00000 n +0001257446 00000 n +0000021700 00000 n +0000021738 00000 n +0000841511 00000 n +0001257353 00000 n +0000021792 00000 n +0000021829 00000 n +0000844806 00000 n +0001257260 00000 n +0000021883 00000 n +0000021921 00000 n +0000844935 00000 n +0001257167 00000 n +0000021975 00000 n +0000022027 00000 n +0000845063 00000 n +0001257074 00000 n +0000022081 00000 n +0000022124 00000 n +0000845191 00000 n +0001256942 00000 n +0000022178 00000 n +0000022223 00000 n +0000847908 00000 n +0001256863 00000 n +0000022282 00000 n +0000022348 00000 n +0000848037 00000 n +0001256770 00000 n +0000022407 00000 n +0000022495 00000 n +0000851255 00000 n +0001256677 00000 n +0000022554 00000 n +0000022629 00000 n +0000851383 00000 n +0001256584 00000 n +0000022688 00000 n +0000022773 00000 n +0000851512 00000 n +0001256491 00000 n +0000022832 00000 n +0000022913 00000 n +0000854514 00000 n +0001256412 00000 n +0000022972 00000 n +0000023056 00000 n +0000855602 00000 n +0001256333 00000 n +0000023110 00000 n +0000023154 00000 n +0000858216 00000 n +0001256213 00000 n +0000023202 00000 n +0000023236 00000 n +0000858345 00000 n +0001256134 00000 n +0000023285 00000 n +0000023312 00000 n +0000880233 00000 n +0001256041 00000 n +0000023361 00000 n +0000023389 00000 n +0000887558 00000 n +0001255948 00000 n +0000023438 00000 n +0000023476 00000 n +0000891178 00000 n +0001255855 00000 n +0000023525 00000 n +0000023564 00000 n +0000894544 00000 n +0001255762 00000 n +0000023613 00000 n +0000023653 00000 n +0000900672 00000 n +0001255669 00000 n +0000023702 00000 n +0000023745 00000 n +0000911039 00000 n +0001255576 00000 n +0000023794 00000 n +0000023831 00000 n +0000924917 00000 n +0001255483 00000 n +0000023880 00000 n +0000023917 00000 n +0000927972 00000 n +0001255390 00000 n +0000023966 00000 n +0000024004 00000 n +0000935000 00000 n +0001255297 00000 n +0000024054 00000 n +0000024094 00000 n +0000952483 00000 n +0001255204 00000 n +0000024144 00000 n +0000024182 00000 n +0000955686 00000 n +0001255111 00000 n +0000024232 00000 n +0000024272 00000 n +0000961733 00000 n +0001255018 00000 n +0000024322 00000 n +0000024362 00000 n +0000968690 00000 n +0001254925 00000 n +0000024412 00000 n +0000024442 00000 n +0000978465 00000 n +0001254832 00000 n +0000024492 00000 n +0000024535 00000 n +0000981463 00000 n +0001254739 00000 n +0000024585 00000 n +0000024618 00000 n +0000999049 00000 n +0001254646 00000 n +0000024668 00000 n +0000024697 00000 n +0001013476 00000 n +0001254553 00000 n +0000024747 00000 n +0000024781 00000 n +0001019599 00000 n +0001254460 00000 n +0000024831 00000 n +0000024868 00000 n +0001026426 00000 n +0001254367 00000 n +0000024918 00000 n +0000024955 00000 n +0001029213 00000 n +0001254274 00000 n +0000025005 00000 n +0000025038 00000 n +0001031309 00000 n +0001254181 00000 n +0000025088 00000 n +0000025122 00000 n +0001031826 00000 n +0001254088 00000 n +0000025172 00000 n +0000025211 00000 n +0001034736 00000 n +0001254009 00000 n +0000025261 00000 n +0000025295 00000 n +0000025705 00000 n +0000025827 00000 n +0000290656 00000 n +0000025348 00000 n +0000290530 00000 n +0000290593 00000 n +0001247675 00000 n +0001221485 00000 n +0001247501 00000 n +0001220238 00000 n +0001193516 00000 n +0001220064 00000 n +0001248730 00000 n +0000027140 00000 n +0000027333 00000 n +0000027415 00000 n +0000027454 00000 n +0000027538 00000 n +0000027663 00000 n +0000027929 00000 n +0000028289 00000 n +0000028322 00000 n +0000028417 00000 n +0000029451 00000 n +0000040588 00000 n +0000106179 00000 n +0000171770 00000 n +0000237361 00000 n +0000292119 00000 n +0000291929 00000 n +0000290769 00000 n +0000292054 00000 n +0001192829 00000 n +0001190681 00000 n +0001192663 00000 n +0000304022 00000 n +0000295260 00000 n +0000292206 00000 n +0000303892 00000 n +0000303957 00000 n +0000295847 00000 n +0000296002 00000 n +0000296160 00000 n +0000296318 00000 n +0000296476 00000 n +0000296634 00000 n +0000296797 00000 n +0000296960 00000 n +0000297122 00000 n +0000297285 00000 n +0000297453 00000 n +0000297621 00000 n +0000297787 00000 n +0000297950 00000 n +0000298117 00000 n +0000298280 00000 n +0000298435 00000 n +0000298593 00000 n +0000298751 00000 n +0000298908 00000 n +0000299065 00000 n +0000299223 00000 n +0000299379 00000 n +0000299537 00000 n +0000299700 00000 n +0000299863 00000 n +0000300021 00000 n +0000300177 00000 n +0000300339 00000 n +0000300507 00000 n +0000300675 00000 n +0000300838 00000 n +0000300994 00000 n +0000301152 00000 n +0000301310 00000 n +0000301473 00000 n +0000301631 00000 n +0000301789 00000 n +0000301952 00000 n +0000302110 00000 n +0000302273 00000 n +0000302441 00000 n +0000302609 00000 n +0000302772 00000 n +0000302935 00000 n +0000303098 00000 n +0000303261 00000 n +0000303424 00000 n +0000303580 00000 n +0000303736 00000 n +0000317565 00000 n +0000307499 00000 n +0000304108 00000 n +0000317500 00000 n +0001190093 00000 n +0001172672 00000 n +0001189907 00000 n +0000308149 00000 n +0000308313 00000 n +0000308477 00000 n +0000308640 00000 n +0000308799 00000 n +0000308963 00000 n +0000309126 00000 n +0000309290 00000 n +0000309454 00000 n +0000309618 00000 n +0000309782 00000 n +0000309946 00000 n +0000310110 00000 n +0000310274 00000 n +0000310439 00000 n +0000310604 00000 n +0000310769 00000 n +0000310934 00000 n +0000311094 00000 n +0000311259 00000 n +0000311423 00000 n +0000311583 00000 n +0000311748 00000 n +0000311917 00000 n +0000312087 00000 n +0000312257 00000 n +0000312422 00000 n +0000312591 00000 n +0000312761 00000 n +0000312931 00000 n +0000313095 00000 n +0000313260 00000 n +0000313425 00000 n +0000313590 00000 n +0000313749 00000 n +0000313914 00000 n +0000314079 00000 n +0000314236 00000 n +0000314395 00000 n +0000314554 00000 n +0000314710 00000 n +0000314869 00000 n +0000315033 00000 n +0000315202 00000 n +0000315371 00000 n +0000315535 00000 n +0000315704 00000 n +0000315873 00000 n +0000316032 00000 n +0000316196 00000 n +0000316360 00000 n +0000316524 00000 n +0000316688 00000 n +0000316851 00000 n +0000317015 00000 n +0000317177 00000 n +0000317338 00000 n +0000331726 00000 n +0000321171 00000 n +0000317665 00000 n +0000331661 00000 n +0000321839 00000 n +0000322003 00000 n +0000322172 00000 n +0000322341 00000 n +0000322509 00000 n +0000322673 00000 n +0000322837 00000 n +0000323001 00000 n +0000323165 00000 n +0000323329 00000 n +0000323492 00000 n +0000323661 00000 n +0000323830 00000 n +0000323998 00000 n +0000324167 00000 n +0000324336 00000 n +0000324504 00000 n +0000324673 00000 n +0000324842 00000 n +0000325010 00000 n +0000325180 00000 n +0000325350 00000 n +0000325520 00000 n +0000325690 00000 n +0000325860 00000 n +0000326030 00000 n +0000326200 00000 n +0000326370 00000 n +0000326539 00000 n +0000326709 00000 n +0000326878 00000 n +0000327048 00000 n +0000327212 00000 n +0000327376 00000 n +0000327540 00000 n +0000327704 00000 n +0000327867 00000 n +0000328031 00000 n +0000328195 00000 n +0000328358 00000 n +0000328522 00000 n +0000328686 00000 n +0000328850 00000 n +0000329014 00000 n +0000329183 00000 n +0000329352 00000 n +0000329521 00000 n +0000329690 00000 n +0000329847 00000 n +0000330010 00000 n +0000330177 00000 n +0000330345 00000 n +0000330508 00000 n +0000330671 00000 n +0000330834 00000 n +0000330997 00000 n +0000331164 00000 n +0000331330 00000 n +0000331495 00000 n +0000344819 00000 n +0000335380 00000 n +0000331826 00000 n +0000344754 00000 n +0000336003 00000 n +0000336166 00000 n +0000336329 00000 n +0000336487 00000 n +0000336655 00000 n +0000336818 00000 n +0000336986 00000 n +0000337154 00000 n +0000337322 00000 n +0001171781 00000 n +0001150446 00000 n +0001171605 00000 n +0000337490 00000 n +0000337658 00000 n +0000337814 00000 n +0000337972 00000 n +0000338130 00000 n +0000338293 00000 n +0000338456 00000 n +0000338614 00000 n +0000338770 00000 n +0000338928 00000 n +0000339091 00000 n +0000339249 00000 n +0000339407 00000 n +0000339564 00000 n +0000339722 00000 n +0000339885 00000 n +0000340048 00000 n +0000340211 00000 n +0000340374 00000 n +0000340537 00000 n +0000340700 00000 n +0000340863 00000 n +0000341026 00000 n +0000341183 00000 n +0000341341 00000 n +0000341498 00000 n +0000341656 00000 n +0000341814 00000 n +0000341977 00000 n +0000342140 00000 n +0000342303 00000 n +0000342459 00000 n +0000342617 00000 n +0000342780 00000 n +0000342943 00000 n +0000343105 00000 n +0000343268 00000 n +0000343430 00000 n +0000343592 00000 n +0000343760 00000 n +0000343928 00000 n +0000344095 00000 n +0000344262 00000 n +0000344427 00000 n +0000344593 00000 n +0000350903 00000 n +0000346518 00000 n +0000344933 00000 n +0000350838 00000 n +0000346881 00000 n +0000347038 00000 n +0000347196 00000 n +0000347353 00000 n +0000347511 00000 n +0000347668 00000 n +0000347826 00000 n +0000347984 00000 n +0000348142 00000 n +0000348299 00000 n +0000348457 00000 n +0000348615 00000 n +0000348774 00000 n +0000348933 00000 n +0000349092 00000 n +0000349249 00000 n +0000349408 00000 n +0000349567 00000 n +0001149467 00000 n +0001129340 00000 n +0001149292 00000 n +0000349726 00000 n +0000349885 00000 n +0000350044 00000 n +0000350202 00000 n +0000350361 00000 n +0000350520 00000 n +0000350679 00000 n +0001248853 00000 n +0000354092 00000 n +0000353325 00000 n +0000351017 00000 n +0000353513 00000 n +0000353641 00000 n +0000353769 00000 n +0000353897 00000 n +0000353962 00000 n +0000354027 00000 n +0001128498 00000 n +0001109798 00000 n +0001128323 00000 n +0000358657 00000 n +0000357518 00000 n +0000354220 00000 n +0000358018 00000 n +0000358083 00000 n +0000358210 00000 n +0000358338 00000 n +0000358466 00000 n +0000357674 00000 n +0000357868 00000 n +0000358592 00000 n +0000739831 00000 n +0000813420 00000 n +0000363381 00000 n +0000362323 00000 n +0000358785 00000 n +0000362804 00000 n +0000362932 00000 n +0000362479 00000 n +0000362642 00000 n +0000363060 00000 n +0000363188 00000 n +0000363316 00000 n +0000379487 00000 n +0000366653 00000 n +0000366078 00000 n +0000363509 00000 n +0000366204 00000 n +0000366332 00000 n +0000366460 00000 n +0000366588 00000 n +0000370195 00000 n +0000369029 00000 n +0000366767 00000 n +0000369491 00000 n +0000369619 00000 n +0000369747 00000 n +0000369875 00000 n +0000370003 00000 n +0000369185 00000 n +0000369338 00000 n +0000370130 00000 n +0000647961 00000 n +0000371302 00000 n +0000370983 00000 n +0000370281 00000 n +0000371109 00000 n +0000371237 00000 n +0001248978 00000 n +0000373434 00000 n +0000372731 00000 n +0000371402 00000 n +0000372857 00000 n +0000372985 00000 n +0000373112 00000 n +0000373240 00000 n +0000373369 00000 n +0000376049 00000 n +0000375419 00000 n +0000373534 00000 n +0000375725 00000 n +0000375854 00000 n +0000375919 00000 n +0000375984 00000 n +0000375566 00000 n +0000624222 00000 n +0000379681 00000 n +0000378976 00000 n +0000376163 00000 n +0000379102 00000 n +0000379231 00000 n +0000379358 00000 n +0001109076 00000 n +0001095699 00000 n +0001108897 00000 n +0000379616 00000 n +0000384588 00000 n +0000384027 00000 n +0000379809 00000 n +0000384523 00000 n +0000384183 00000 n +0000384337 00000 n +0000999113 00000 n +0000491630 00000 n +0000386875 00000 n +0000386427 00000 n +0000384744 00000 n +0000386553 00000 n +0000386681 00000 n +0000386746 00000 n +0000386811 00000 n +0000387344 00000 n +0000387153 00000 n +0000387003 00000 n +0000387279 00000 n +0001249103 00000 n +0000390094 00000 n +0000392684 00000 n +0000389929 00000 n +0000387386 00000 n +0000392232 00000 n +0000392361 00000 n +0000392490 00000 n +0000391737 00000 n +0000391899 00000 n +0001094793 00000 n +0001084773 00000 n +0001094619 00000 n +0001084205 00000 n +0001075065 00000 n +0001084030 00000 n +0000392619 00000 n +0000392061 00000 n +0000391566 00000 n 0000391624 00000 n -0000391682 00000 n -0000391772 00000 n -0000552098 00000 n -0000593187 00000 n -0000723702 00000 n -0000397553 00000 n -0000396618 00000 n -0000392913 00000 n -0000397101 00000 n -0000397230 00000 n -0001059111 00000 n -0001046690 00000 n -0001058932 00000 n -0000397359 00000 n -0000396774 00000 n -0000396939 00000 n -0000397488 00000 n -0000806932 00000 n -0000401315 00000 n -0000400995 00000 n -0000397709 00000 n -0000401121 00000 n -0000401250 00000 n -0000402933 00000 n -0000402553 00000 n -0000401457 00000 n +0000391714 00000 n +0000552002 00000 n +0000593404 00000 n +0000728631 00000 n +0000397493 00000 n +0000396558 00000 n +0000392855 00000 n +0000397041 00000 n +0000397170 00000 n +0001074427 00000 n +0001061691 00000 n +0001074248 00000 n +0000397299 00000 n +0000396714 00000 n +0000396879 00000 n +0000397428 00000 n +0000817381 00000 n +0000401253 00000 n +0000400933 00000 n +0000397649 00000 n +0000401059 00000 n +0000401188 00000 n 0000402868 00000 n -0000402700 00000 n -0000404546 00000 n -0000404227 00000 n -0000403034 00000 n -0000404353 00000 n -0000404482 00000 n -0000408041 00000 n -0000407205 00000 n -0000404660 00000 n -0000407331 00000 n -0000407460 00000 n -0000407589 00000 n -0000407718 00000 n -0000407847 00000 n -0000407976 00000 n -0001233644 00000 n -0000411926 00000 n -0000411029 00000 n -0000408183 00000 n -0000411346 00000 n -0000411475 00000 n -0000411604 00000 n -0000411176 00000 n -0000411733 00000 n -0000411862 00000 n -0000416075 00000 n -0000415498 00000 n -0000412068 00000 n -0000415624 00000 n -0000415753 00000 n -0000415881 00000 n -0000416010 00000 n -0000420147 00000 n -0000419699 00000 n -0000416217 00000 n -0000419825 00000 n -0000419954 00000 n -0000420082 00000 n -0000422189 00000 n -0000421998 00000 n -0000420275 00000 n -0000422124 00000 n -0000425498 00000 n -0000425049 00000 n -0000422290 00000 n -0000425175 00000 n -0001046415 00000 n -0001043057 00000 n -0001046236 00000 n -0000425304 00000 n -0000425433 00000 n -0000429645 00000 n -0000428837 00000 n -0000425669 00000 n -0000429322 00000 n -0000429451 00000 n -0000429580 00000 n -0001042702 00000 n -0001040705 00000 n -0001042537 00000 n -0000428993 00000 n -0000429157 00000 n -0001233769 00000 n -0000900917 00000 n -0000917800 00000 n -0000433021 00000 n -0000432444 00000 n -0000429773 00000 n -0000432570 00000 n -0000432699 00000 n -0000432828 00000 n -0000432957 00000 n -0000436601 00000 n -0000435640 00000 n -0000433135 00000 n -0000435766 00000 n -0000435895 00000 n -0000436024 00000 n -0000436153 00000 n -0000436280 00000 n -0000436409 00000 n -0000436537 00000 n -0000440847 00000 n -0000439960 00000 n -0000436729 00000 n -0000440267 00000 n -0000440396 00000 n -0000440525 00000 n -0000440654 00000 n -0000440107 00000 n -0000440782 00000 n -0000678397 00000 n -0000444634 00000 n -0000444186 00000 n -0000440961 00000 n -0000444312 00000 n -0000444441 00000 n -0000444569 00000 n -0000447316 00000 n -0000446996 00000 n -0000444791 00000 n -0000447122 00000 n -0000447251 00000 n -0000450087 00000 n -0000449639 00000 n -0000447473 00000 n -0000449765 00000 n -0000449894 00000 n -0000450022 00000 n -0001233894 00000 n -0000452884 00000 n -0000452178 00000 n -0000450201 00000 n -0000452304 00000 n -0000452432 00000 n -0000452561 00000 n -0000452690 00000 n -0000452819 00000 n -0000455978 00000 n -0000455531 00000 n -0000452998 00000 n -0000455657 00000 n -0000455786 00000 n -0000455914 00000 n -0000458902 00000 n -0000458454 00000 n -0000456092 00000 n -0000458580 00000 n -0000458708 00000 n -0000458837 00000 n -0000461893 00000 n -0000463431 00000 n -0000461746 00000 n -0000459030 00000 n -0000462980 00000 n -0000463108 00000 n -0000462819 00000 n -0000463237 00000 n -0000463366 00000 n -0000802710 00000 n -0000464231 00000 n -0000464040 00000 n -0000463602 00000 n -0000464166 00000 n -0000464673 00000 n -0000464482 00000 n -0000464332 00000 n -0000464608 00000 n -0001234019 00000 n -0000467376 00000 n -0000466798 00000 n -0000464715 00000 n -0000466924 00000 n -0000467053 00000 n -0000467182 00000 n -0000467311 00000 n -0000467817 00000 n -0000467626 00000 n -0000467476 00000 n -0000467752 00000 n -0000471957 00000 n -0000471191 00000 n -0000467859 00000 n -0000471505 00000 n -0000471634 00000 n -0000471762 00000 n -0000471827 00000 n -0000471892 00000 n -0000471338 00000 n -0000480101 00000 n -0000476721 00000 n -0000476530 00000 n -0000472057 00000 n -0000476656 00000 n -0000480424 00000 n -0000479846 00000 n -0000476863 00000 n -0000479972 00000 n -0000480230 00000 n -0000480359 00000 n -0000483153 00000 n +0000402488 00000 n +0000401395 00000 n +0000402803 00000 n +0000402635 00000 n +0000404479 00000 n +0000404160 00000 n +0000402969 00000 n +0000404286 00000 n +0000404415 00000 n +0000407971 00000 n +0000407135 00000 n +0000404593 00000 n +0000407261 00000 n +0000407390 00000 n +0000407519 00000 n +0000407648 00000 n +0000407777 00000 n +0000407906 00000 n +0001249228 00000 n +0000411854 00000 n +0000410957 00000 n +0000408113 00000 n +0000411274 00000 n +0000411403 00000 n +0000411532 00000 n +0000411104 00000 n +0000411661 00000 n +0000411790 00000 n +0000416001 00000 n +0000415424 00000 n +0000411996 00000 n +0000415550 00000 n +0000415679 00000 n +0000415807 00000 n +0000415936 00000 n +0000420069 00000 n +0000419621 00000 n +0000416143 00000 n +0000419747 00000 n +0000419876 00000 n +0000420004 00000 n +0000422108 00000 n +0000421917 00000 n +0000420197 00000 n +0000422043 00000 n +0000425415 00000 n +0000424966 00000 n +0000422209 00000 n +0000425092 00000 n +0001061416 00000 n +0001058057 00000 n +0001061237 00000 n +0000425221 00000 n +0000425350 00000 n +0000429559 00000 n +0000428751 00000 n +0000425586 00000 n +0000429236 00000 n +0000429365 00000 n +0000429494 00000 n +0001057702 00000 n +0001055704 00000 n +0001057537 00000 n +0000428907 00000 n +0000429071 00000 n +0001249353 00000 n +0000911103 00000 n +0000928036 00000 n +0000432933 00000 n +0000432356 00000 n +0000429687 00000 n +0000432482 00000 n +0000432611 00000 n +0000432740 00000 n +0000432869 00000 n +0000436510 00000 n +0000435549 00000 n +0000433047 00000 n +0000435675 00000 n +0000435804 00000 n +0000435933 00000 n +0000436062 00000 n +0000436189 00000 n +0000436318 00000 n +0000436446 00000 n +0000440754 00000 n +0000439867 00000 n +0000436638 00000 n +0000440174 00000 n +0000440303 00000 n +0000440432 00000 n +0000440561 00000 n +0000440014 00000 n +0000440689 00000 n +0000687345 00000 n +0000444538 00000 n +0000444090 00000 n +0000440868 00000 n +0000444216 00000 n +0000444345 00000 n +0000444473 00000 n +0000447217 00000 n +0000446897 00000 n +0000444695 00000 n +0000447023 00000 n +0000447152 00000 n +0000449985 00000 n +0000449537 00000 n +0000447374 00000 n +0000449663 00000 n +0000449792 00000 n +0000449920 00000 n +0001249478 00000 n +0000452780 00000 n +0000452074 00000 n +0000450099 00000 n +0000452200 00000 n +0000452328 00000 n +0000452457 00000 n +0000452586 00000 n +0000452715 00000 n +0000455874 00000 n +0000455427 00000 n +0000452894 00000 n +0000455553 00000 n +0000455682 00000 n +0000455810 00000 n +0000458796 00000 n +0000458348 00000 n +0000455988 00000 n +0000458474 00000 n +0000458602 00000 n +0000458731 00000 n +0000461784 00000 n +0000463322 00000 n +0000461637 00000 n +0000458924 00000 n +0000462871 00000 n +0000462999 00000 n +0000462710 00000 n +0000463128 00000 n +0000463257 00000 n +0000813162 00000 n +0000464119 00000 n +0000463928 00000 n +0000463493 00000 n +0000464054 00000 n +0000464561 00000 n +0000464370 00000 n +0000464220 00000 n +0000464496 00000 n +0001249603 00000 n +0000467261 00000 n +0000466683 00000 n +0000464603 00000 n +0000466809 00000 n +0000466938 00000 n +0000467067 00000 n +0000467196 00000 n +0000467702 00000 n +0000467511 00000 n +0000467361 00000 n +0000467637 00000 n +0000471840 00000 n +0000471074 00000 n +0000467744 00000 n +0000471388 00000 n +0000471517 00000 n +0000471645 00000 n +0000471710 00000 n +0000471775 00000 n +0000471221 00000 n +0000479979 00000 n +0000476601 00000 n +0000476410 00000 n +0000471940 00000 n +0000476536 00000 n +0000480302 00000 n +0000479724 00000 n +0000476743 00000 n +0000479850 00000 n +0000480108 00000 n +0000480237 00000 n +0000483027 00000 n +0000482449 00000 n +0000480444 00000 n 0000482575 00000 n -0000480566 00000 n -0000482701 00000 n -0000482830 00000 n -0000482959 00000 n -0000483088 00000 n -0001234144 00000 n -0000486736 00000 n -0000485898 00000 n -0000483310 00000 n -0000486024 00000 n -0000486153 00000 n -0000486218 00000 n -0000486283 00000 n -0000486412 00000 n -0000486541 00000 n -0000486606 00000 n -0000486671 00000 n +0000482704 00000 n +0000482833 00000 n +0000482962 00000 n +0001249728 00000 n +0000486608 00000 n +0000485770 00000 n +0000483184 00000 n +0000485896 00000 n +0000486025 00000 n +0000486090 00000 n +0000486155 00000 n +0000486284 00000 n +0000486413 00000 n +0000486478 00000 n +0000486543 00000 n +0000491695 00000 n +0000490908 00000 n +0000486722 00000 n +0000491372 00000 n +0000491501 00000 n +0000491064 00000 n +0000491214 00000 n +0001036684 00000 n +0000496346 00000 n +0000494948 00000 n 0000491823 00000 n -0000491036 00000 n -0000486850 00000 n -0000491500 00000 n -0000491629 00000 n -0000491192 00000 n -0000491342 00000 n -0001021684 00000 n -0000496468 00000 n -0000495070 00000 n -0000491951 00000 n -0000495760 00000 n -0000495889 00000 n -0000496018 00000 n -0000496147 00000 n -0000496276 00000 n -0000495235 00000 n -0000495386 00000 n -0000495573 00000 n -0000496404 00000 n -0000499800 00000 n -0000499351 00000 n -0000496624 00000 n -0000499477 00000 n -0000499606 00000 n -0000499735 00000 n -0000504229 00000 n -0000504038 00000 n -0000499928 00000 n -0000504164 00000 n -0000507126 00000 n -0000506619 00000 n -0000504343 00000 n -0000506933 00000 n -0000506766 00000 n -0000507061 00000 n -0001234269 00000 n -0000510519 00000 n -0000510198 00000 n -0000507240 00000 n -0000510324 00000 n -0000510389 00000 n -0000510454 00000 n -0000514108 00000 n -0000513788 00000 n -0000510633 00000 n -0000513914 00000 n -0000514043 00000 n -0000517628 00000 n -0000517307 00000 n -0000514236 00000 n -0000517433 00000 n -0000517498 00000 n -0000517563 00000 n -0000521140 00000 n -0000520228 00000 n -0000517729 00000 n -0000520689 00000 n -0000520818 00000 n -0000520947 00000 n -0000520384 00000 n -0000520538 00000 n -0000521075 00000 n -0000523105 00000 n -0000522657 00000 n -0000521254 00000 n -0000522783 00000 n -0000522912 00000 n -0000523041 00000 n -0000524682 00000 n -0000524491 00000 n -0000523219 00000 n -0000524617 00000 n -0001234394 00000 n -0000526277 00000 n -0000526086 00000 n -0000524783 00000 n -0000526212 00000 n -0000527773 00000 n -0000527582 00000 n -0000526378 00000 n -0000527708 00000 n -0000530868 00000 n -0000530548 00000 n -0000527874 00000 n -0000530674 00000 n -0000530803 00000 n -0000535029 00000 n -0000534838 00000 n -0000530996 00000 n -0000534964 00000 n -0000539544 00000 n -0000538996 00000 n -0000535171 00000 n -0000539479 00000 n -0000539152 00000 n -0000539309 00000 n -0000764334 00000 n -0000543822 00000 n -0000543425 00000 n -0000539672 00000 n -0000543757 00000 n -0000543572 00000 n -0001234519 00000 n -0000548216 00000 n -0000547670 00000 n -0000543964 00000 n -0000548151 00000 n -0000547826 00000 n -0000547996 00000 n -0000552293 00000 n -0000551843 00000 n -0000548344 00000 n -0000551969 00000 n -0000552163 00000 n -0000552228 00000 n -0000556736 00000 n -0000556370 00000 n -0000552407 00000 n -0000556671 00000 n -0000556517 00000 n -0000561573 00000 n -0000560605 00000 n -0000556864 00000 n -0000561508 00000 n -0000560779 00000 n -0000560964 00000 n -0000561138 00000 n -0000561323 00000 n -0000668528 00000 n -0000565797 00000 n -0000565606 00000 n -0000561772 00000 n -0000565732 00000 n -0000569806 00000 n -0000569615 00000 n -0000565911 00000 n +0000495638 00000 n +0000495767 00000 n +0000495896 00000 n +0000496025 00000 n +0000496154 00000 n +0000495113 00000 n +0000495264 00000 n +0000495451 00000 n +0000496282 00000 n +0000499675 00000 n +0000499226 00000 n +0000496502 00000 n +0000499352 00000 n +0000499481 00000 n +0000499610 00000 n +0000504100 00000 n +0000503909 00000 n +0000499803 00000 n +0000504035 00000 n +0000506994 00000 n +0000506487 00000 n +0000504214 00000 n +0000506801 00000 n +0000506634 00000 n +0000506929 00000 n +0001249853 00000 n +0000510385 00000 n +0000510064 00000 n +0000507108 00000 n +0000510190 00000 n +0000510255 00000 n +0000510320 00000 n +0000513971 00000 n +0000513651 00000 n +0000510499 00000 n +0000513777 00000 n +0000513906 00000 n +0000517489 00000 n +0000517168 00000 n +0000514099 00000 n +0000517294 00000 n +0000517359 00000 n +0000517424 00000 n +0000520997 00000 n +0000520085 00000 n +0000517590 00000 n +0000520546 00000 n +0000520675 00000 n +0000520804 00000 n +0000520241 00000 n +0000520395 00000 n +0000520932 00000 n +0000522960 00000 n +0000522512 00000 n +0000521111 00000 n +0000522638 00000 n +0000522767 00000 n +0000522896 00000 n +0000524534 00000 n +0000524343 00000 n +0000523074 00000 n +0000524469 00000 n +0001249978 00000 n +0000526116 00000 n +0000525925 00000 n +0000524635 00000 n +0000526051 00000 n +0000527622 00000 n +0000527431 00000 n +0000526217 00000 n +0000527557 00000 n +0000530787 00000 n +0000530467 00000 n +0000527723 00000 n +0000530593 00000 n +0000530722 00000 n +0000534943 00000 n +0000534752 00000 n +0000530915 00000 n +0000534878 00000 n +0000539454 00000 n +0000538906 00000 n +0000535085 00000 n +0000539389 00000 n +0000539062 00000 n +0000539219 00000 n +0000772550 00000 n +0000543731 00000 n +0000543334 00000 n +0000539582 00000 n +0000543666 00000 n +0000543481 00000 n +0001250103 00000 n +0000548123 00000 n +0000547577 00000 n +0000543873 00000 n +0000548058 00000 n +0000547733 00000 n +0000547903 00000 n +0000552197 00000 n +0000551747 00000 n +0000548251 00000 n +0000551873 00000 n +0000552067 00000 n +0000552132 00000 n +0000556640 00000 n +0000556274 00000 n +0000552311 00000 n +0000556575 00000 n +0000556421 00000 n +0000561475 00000 n +0000560507 00000 n +0000556768 00000 n +0000561410 00000 n +0000560681 00000 n +0000560866 00000 n +0000561040 00000 n +0000561225 00000 n +0000672768 00000 n +0000565779 00000 n +0000565588 00000 n +0000561674 00000 n +0000565714 00000 n 0000569741 00000 n -0001234644 00000 n -0000574411 00000 n -0000573733 00000 n -0000569920 00000 n -0000574218 00000 n -0000573889 00000 n -0000574053 00000 n -0000574347 00000 n -0000578377 00000 n -0000577564 00000 n -0000574525 00000 n -0000578057 00000 n -0000577720 00000 n -0000578186 00000 n -0000578312 00000 n -0000577890 00000 n -0000687913 00000 n -0000582595 00000 n -0000582034 00000 n -0000578548 00000 n -0000582530 00000 n -0000582190 00000 n -0000582359 00000 n -0000784600 00000 n -0000586504 00000 n -0000586184 00000 n -0000582766 00000 n -0000586310 00000 n -0000586439 00000 n -0000590110 00000 n -0000589790 00000 n -0000586632 00000 n -0000589916 00000 n -0000590045 00000 n -0000593252 00000 n -0000592932 00000 n -0000590224 00000 n -0000593058 00000 n -0001234769 00000 n -0000597367 00000 n -0000597176 00000 n -0000593409 00000 n -0000597302 00000 n -0000600625 00000 n -0000600125 00000 n -0000597481 00000 n -0000600431 00000 n -0000600560 00000 n -0000600272 00000 n -0000605065 00000 n -0000604256 00000 n -0000600782 00000 n -0000604742 00000 n -0000604871 00000 n -0000604412 00000 n -0000605000 00000 n -0000604587 00000 n -0000609123 00000 n -0000608803 00000 n -0000605179 00000 n -0000608929 00000 n -0000609058 00000 n -0000613039 00000 n -0000612244 00000 n -0000609251 00000 n -0000612717 00000 n -0000612846 00000 n -0000612974 00000 n -0000612400 00000 n -0000612562 00000 n -0000616239 00000 n -0000615728 00000 n -0000613210 00000 n -0000616045 00000 n -0000615875 00000 n -0001234894 00000 n -0000619755 00000 n -0000619306 00000 n -0000616367 00000 n -0000619432 00000 n -0000619497 00000 n -0000619562 00000 n -0000619691 00000 n -0000623943 00000 n -0000623569 00000 n -0000619926 00000 n -0000623878 00000 n -0000623716 00000 n -0000628447 00000 n -0000628073 00000 n -0000624128 00000 n -0000628382 00000 n -0000628220 00000 n -0000760528 00000 n -0000632575 00000 n -0000631937 00000 n -0000628575 00000 n -0000632252 00000 n -0000632381 00000 n -0000632084 00000 n -0000632510 00000 n -0000682623 00000 n -0000634364 00000 n -0000634173 00000 n -0000632717 00000 n -0000634299 00000 n -0000636132 00000 n -0000635941 00000 n -0000634465 00000 n -0000636067 00000 n -0001235019 00000 n -0000639258 00000 n -0000638939 00000 n -0000636233 00000 n -0000639065 00000 n -0000643873 00000 n -0000643554 00000 n -0000639429 00000 n -0000643680 00000 n -0000643808 00000 n -0000648074 00000 n -0000647529 00000 n -0000643987 00000 n -0000647881 00000 n -0000647676 00000 n -0000648009 00000 n -0000652465 00000 n -0000652274 00000 n -0000648230 00000 n -0000652400 00000 n -0000655446 00000 n -0000655255 00000 n -0000652593 00000 n -0000655381 00000 n -0000660079 00000 n -0000659759 00000 n -0000655574 00000 n -0000659885 00000 n -0000660014 00000 n -0001235144 00000 n -0000664563 00000 n -0000664243 00000 n -0000660207 00000 n -0000664369 00000 n -0000664498 00000 n -0000668593 00000 n -0000668274 00000 n -0000664691 00000 n -0000668400 00000 n -0000673438 00000 n -0000672645 00000 n -0000668707 00000 n -0000673115 00000 n -0000672801 00000 n -0000672953 00000 n -0000673244 00000 n -0000673373 00000 n -0000678462 00000 n -0000676641 00000 n -0000673552 00000 n -0000677881 00000 n -0000676833 00000 n -0000677008 00000 n -0000677186 00000 n -0000677367 00000 n -0000677546 00000 n -0000678010 00000 n -0000678139 00000 n -0000677727 00000 n -0000678268 00000 n -0000682688 00000 n -0000682368 00000 n -0000678590 00000 n -0000682494 00000 n -0000686199 00000 n -0000685879 00000 n -0000682830 00000 n -0000686005 00000 n -0000686134 00000 n -0001235269 00000 n -0000687978 00000 n -0000687658 00000 n -0000686313 00000 n -0000687784 00000 n -0000689657 00000 n -0000689466 00000 n -0000688092 00000 n -0000689592 00000 n -0000691140 00000 n -0000690949 00000 n -0000689758 00000 n -0000691075 00000 n -0000693874 00000 n -0000693299 00000 n -0000691241 00000 n -0000693425 00000 n -0000693554 00000 n -0000693679 00000 n -0000693744 00000 n -0000693809 00000 n -0000697572 00000 n -0000697381 00000 n -0000693988 00000 n -0000697507 00000 n -0000701779 00000 n -0000700975 00000 n -0000697686 00000 n -0000701458 00000 n -0000701131 00000 n -0000701586 00000 n -0000701715 00000 n -0000701298 00000 n -0001235394 00000 n -0001021651 00000 n -0000708090 00000 n -0000705148 00000 n -0000701907 00000 n -0000708025 00000 n -0000705430 00000 n -0000705592 00000 n -0000705754 00000 n -0000705916 00000 n -0000706078 00000 n -0000706249 00000 n -0000706411 00000 n -0000706574 00000 n -0000706736 00000 n -0000706897 00000 n -0000707057 00000 n -0000707220 00000 n -0000707382 00000 n -0000707545 00000 n -0000707699 00000 n -0000707862 00000 n -0000713350 00000 n -0000711434 00000 n -0000708204 00000 n -0000713285 00000 n -0000711662 00000 n -0000711823 00000 n -0000711991 00000 n -0000712160 00000 n -0000712322 00000 n -0000712483 00000 n -0000712645 00000 n -0000712806 00000 n +0000569550 00000 n +0000565893 00000 n +0000569676 00000 n +0001250228 00000 n +0000574168 00000 n +0000573616 00000 n +0000569912 00000 n +0000574103 00000 n +0000573772 00000 n +0000573937 00000 n +0000578524 00000 n +0000577579 00000 n +0000574282 00000 n +0000578072 00000 n +0000578201 00000 n +0000577735 00000 n +0000578330 00000 n +0000578459 00000 n +0000577905 00000 n +0000692750 00000 n +0000582680 00000 n +0000582118 00000 n +0000578695 00000 n +0000582615 00000 n +0000582274 00000 n +0000582444 00000 n +0000791723 00000 n +0000586631 00000 n +0000586311 00000 n +0000582851 00000 n +0000586437 00000 n +0000586566 00000 n +0000590517 00000 n +0000590197 00000 n +0000586773 00000 n +0000590323 00000 n +0000590452 00000 n +0000593469 00000 n +0000593149 00000 n +0000590631 00000 n +0000593275 00000 n +0001250353 00000 n +0000597563 00000 n +0000597372 00000 n +0000593640 00000 n +0000597498 00000 n +0000600530 00000 n +0000600339 00000 n +0000597677 00000 n +0000600465 00000 n +0000605263 00000 n +0000604160 00000 n +0000600687 00000 n +0000604812 00000 n +0000604941 00000 n +0000604325 00000 n +0000605070 00000 n +0000604484 00000 n +0000605199 00000 n +0000604659 00000 n +0000609351 00000 n +0000609160 00000 n +0000605377 00000 n +0000609286 00000 n +0000613602 00000 n +0000613411 00000 n +0000609493 00000 n +0000613537 00000 n +0000617206 00000 n +0000616757 00000 n +0000613730 00000 n +0000616883 00000 n +0000617012 00000 n +0000617141 00000 n +0001250478 00000 n +0000621109 00000 n +0000620441 00000 n +0000617363 00000 n +0000620915 00000 n +0000621044 00000 n +0000620597 00000 n +0000620759 00000 n +0000624416 00000 n +0000623776 00000 n +0000621280 00000 n +0000624093 00000 n +0000623923 00000 n +0000624287 00000 n +0000624352 00000 n +0000628273 00000 n +0000627770 00000 n +0000624544 00000 n +0000628079 00000 n +0000628208 00000 n +0000627917 00000 n +0000633044 00000 n +0000632670 00000 n +0000628458 00000 n +0000632979 00000 n +0000632817 00000 n +0000768797 00000 n +0000637391 00000 n +0000636752 00000 n +0000633172 00000 n +0000637068 00000 n +0000637197 00000 n +0000636899 00000 n +0000637326 00000 n +0000690854 00000 n +0000639365 00000 n +0000639174 00000 n +0000637519 00000 n +0000639300 00000 n +0001250603 00000 n +0000641123 00000 n +0000640932 00000 n +0000639466 00000 n +0000641058 00000 n +0000643794 00000 n +0000643603 00000 n +0000641224 00000 n +0000643729 00000 n +0000648155 00000 n +0000647709 00000 n +0000643965 00000 n +0000647835 00000 n +0000648090 00000 n +0000652293 00000 n +0000651747 00000 n +0000648269 00000 n +0000652099 00000 n +0000651894 00000 n +0000652228 00000 n +0000656739 00000 n +0000656548 00000 n +0000652421 00000 n +0000656674 00000 n +0000660121 00000 n +0000659930 00000 n +0000656867 00000 n +0000660056 00000 n +0001250728 00000 n +0000664236 00000 n +0000663916 00000 n +0000660249 00000 n +0000664042 00000 n +0000664171 00000 n +0000669387 00000 n +0000669196 00000 n +0000664378 00000 n +0000669322 00000 n +0000672832 00000 n +0000672384 00000 n +0000669501 00000 n +0000672510 00000 n +0000672639 00000 n +0000677336 00000 n +0000676547 00000 n +0000672946 00000 n +0000677013 00000 n +0000676703 00000 n +0000676854 00000 n +0000677142 00000 n +0000677271 00000 n +0000683011 00000 n +0000681327 00000 n +0000677450 00000 n +0000682560 00000 n +0000681519 00000 n +0000681691 00000 n +0000681867 00000 n +0000682046 00000 n +0000682225 00000 n +0000682689 00000 n +0000682817 00000 n +0000682406 00000 n +0000682946 00000 n +0000687410 00000 n +0000687090 00000 n +0000683139 00000 n +0000687216 00000 n +0001250853 00000 n +0000691048 00000 n +0000690599 00000 n +0000687552 00000 n +0000690725 00000 n +0000690983 00000 n +0000692815 00000 n +0000692495 00000 n +0000691162 00000 n +0000692621 00000 n +0000694442 00000 n +0000694251 00000 n +0000692929 00000 n +0000694377 00000 n +0000696003 00000 n +0000695812 00000 n +0000694543 00000 n +0000695938 00000 n +0000698838 00000 n +0000698259 00000 n +0000696104 00000 n +0000698385 00000 n +0000698514 00000 n +0000698643 00000 n +0000698708 00000 n +0000698773 00000 n +0000702534 00000 n +0000702343 00000 n +0000698952 00000 n +0000702469 00000 n +0001250978 00000 n +0000706744 00000 n +0000705939 00000 n +0000702648 00000 n +0000706423 00000 n +0000706095 00000 n +0000706551 00000 n +0000706680 00000 n +0000706263 00000 n +0001036651 00000 n +0000713034 00000 n +0000710091 00000 n +0000706872 00000 n 0000712969 00000 n -0000713122 00000 n -0000718281 00000 n -0000716411 00000 n -0000713478 00000 n -0000718216 00000 n -0000716639 00000 n -0000716792 00000 n -0000716946 00000 n -0000717100 00000 n -0000717254 00000 n -0000717416 00000 n -0000717578 00000 n -0000717737 00000 n -0000717897 00000 n -0000718058 00000 n -0000723767 00000 n -0000721912 00000 n -0000718395 00000 n -0000723573 00000 n -0000722131 00000 n -0000722293 00000 n -0000722447 00000 n -0000722610 00000 n -0000722765 00000 n -0000722930 00000 n -0000723096 00000 n -0000723259 00000 n -0000723413 00000 n -0000728054 00000 n -0000727733 00000 n -0000723909 00000 n -0000727859 00000 n -0000727924 00000 n -0000727989 00000 n -0000731020 00000 n -0000730829 00000 n -0000728196 00000 n -0000730955 00000 n -0001235519 00000 n -0000735262 00000 n -0000734192 00000 n -0000731178 00000 n -0000734680 00000 n -0000734809 00000 n -0000735067 00000 n -0000734348 00000 n -0000734518 00000 n -0000735132 00000 n -0000735197 00000 n -0000738752 00000 n -0000738432 00000 n -0000735390 00000 n -0000738558 00000 n -0000738623 00000 n -0000738687 00000 n -0000742274 00000 n -0000741953 00000 n -0000738853 00000 n -0000742079 00000 n -0000742144 00000 n -0000742209 00000 n -0000746230 00000 n -0000745521 00000 n -0000742389 00000 n -0000745647 00000 n -0000745776 00000 n -0000745841 00000 n -0000745906 00000 n -0000745971 00000 n -0000746036 00000 n -0000746165 00000 n -0000750512 00000 n -0000749675 00000 n -0000746344 00000 n -0000749801 00000 n -0000749866 00000 n -0000749931 00000 n -0000750060 00000 n -0000750125 00000 n -0000750190 00000 n -0000750319 00000 n -0000750384 00000 n -0000750448 00000 n -0000753577 00000 n -0000752875 00000 n -0000750640 00000 n -0000753001 00000 n -0000753128 00000 n -0000753255 00000 n -0000753384 00000 n -0000753512 00000 n -0001235644 00000 n -0000756329 00000 n -0000755752 00000 n -0000753776 00000 n -0000755878 00000 n -0000756007 00000 n -0000756136 00000 n -0000756201 00000 n -0000756265 00000 n -0000760593 00000 n -0000760273 00000 n -0000756514 00000 n -0000760399 00000 n -0000764399 00000 n -0000763639 00000 n -0000760721 00000 n -0000763946 00000 n -0000764075 00000 n -0000764140 00000 n -0000764205 00000 n -0000763786 00000 n -0000768119 00000 n -0000767540 00000 n -0000764513 00000 n -0000767666 00000 n -0000767795 00000 n -0000767924 00000 n -0000767989 00000 n -0000768054 00000 n -0000771762 00000 n -0000770868 00000 n -0000768233 00000 n -0000771180 00000 n -0000771015 00000 n -0000771309 00000 n -0000771374 00000 n -0000771439 00000 n -0000771568 00000 n -0000771633 00000 n -0000771698 00000 n -0001021618 00000 n -0000775980 00000 n -0000775531 00000 n -0000771876 00000 n -0000775657 00000 n -0000775786 00000 n -0000775851 00000 n -0000775916 00000 n -0001235769 00000 n -0000778069 00000 n -0000777749 00000 n -0000776108 00000 n -0000777875 00000 n -0001040424 00000 n -0001033140 00000 n -0001040244 00000 n -0000778004 00000 n -0000778552 00000 n -0000778361 00000 n -0000778211 00000 n -0000778487 00000 n -0000780448 00000 n -0000780001 00000 n -0000778594 00000 n -0000780127 00000 n -0000780256 00000 n -0000780383 00000 n -0000784665 00000 n +0000710373 00000 n +0000710535 00000 n +0000710697 00000 n +0000710859 00000 n +0000711021 00000 n +0000711192 00000 n +0000711354 00000 n +0000711517 00000 n +0000711679 00000 n +0000711842 00000 n +0000712004 00000 n +0000712167 00000 n +0000712329 00000 n +0000712492 00000 n +0000712646 00000 n +0000712809 00000 n +0000718300 00000 n +0000716383 00000 n +0000713148 00000 n +0000718235 00000 n +0000716611 00000 n +0000716774 00000 n +0000716941 00000 n +0000717110 00000 n +0000717272 00000 n +0000717433 00000 n +0000717595 00000 n +0000717756 00000 n +0000717919 00000 n +0000718072 00000 n +0000723230 00000 n +0000721358 00000 n +0000718428 00000 n +0000723165 00000 n +0000721586 00000 n +0000721738 00000 n +0000721892 00000 n +0000722043 00000 n +0000722197 00000 n +0000722359 00000 n +0000722521 00000 n +0000722682 00000 n +0000722844 00000 n +0000723005 00000 n +0000728696 00000 n +0000726846 00000 n +0000723344 00000 n +0000728502 00000 n +0000727065 00000 n +0000727224 00000 n +0000727377 00000 n +0000727540 00000 n +0000727691 00000 n +0000727856 00000 n +0000728022 00000 n +0000728185 00000 n +0000728339 00000 n +0000732971 00000 n +0000732650 00000 n +0000728838 00000 n +0000732776 00000 n +0000732841 00000 n +0000732906 00000 n +0001251103 00000 n +0000735934 00000 n +0000735743 00000 n +0000733113 00000 n +0000735869 00000 n +0000740155 00000 n +0000739086 00000 n +0000736092 00000 n +0000739573 00000 n +0000739702 00000 n +0000739960 00000 n +0000739242 00000 n +0000739412 00000 n +0000740025 00000 n +0000740090 00000 n +0000743759 00000 n +0000743439 00000 n +0000740283 00000 n +0000743565 00000 n +0000743630 00000 n +0000743694 00000 n +0000746866 00000 n +0000746675 00000 n +0000743860 00000 n +0000746801 00000 n +0000750846 00000 n +0000750396 00000 n +0000746953 00000 n +0000750522 00000 n +0000750587 00000 n +0000750652 00000 n +0000750781 00000 n +0000754713 00000 n +0000754005 00000 n +0000750974 00000 n +0000754131 00000 n +0000754196 00000 n +0000754261 00000 n +0000754326 00000 n +0000754391 00000 n +0000754519 00000 n +0000754583 00000 n +0000754648 00000 n +0001251228 00000 n +0000758573 00000 n +0000757735 00000 n +0000754841 00000 n +0000757861 00000 n +0000757990 00000 n +0000758055 00000 n +0000758120 00000 n +0000758249 00000 n +0000758314 00000 n +0000758379 00000 n +0000758508 00000 n +0000761947 00000 n +0000761113 00000 n +0000758758 00000 n +0000761239 00000 n +0000761368 00000 n +0000761497 00000 n +0000761625 00000 n +0000761754 00000 n +0000761883 00000 n +0000765364 00000 n +0000765044 00000 n +0000762146 00000 n +0000765170 00000 n +0000765235 00000 n +0000765300 00000 n +0000769121 00000 n +0000768542 00000 n +0000765492 00000 n +0000768668 00000 n +0000768926 00000 n +0000768991 00000 n +0000769056 00000 n +0000773001 00000 n +0000772114 00000 n +0000769235 00000 n +0000772421 00000 n +0000772261 00000 n +0000772679 00000 n +0000772808 00000 n +0000772872 00000 n +0000772936 00000 n +0000776673 00000 n +0000776296 00000 n +0000773129 00000 n +0000776608 00000 n +0000776443 00000 n +0001251353 00000 n +0001036618 00000 n +0000780083 00000 n +0000779374 00000 n +0000776773 00000 n +0000779500 00000 n +0000779629 00000 n +0000779694 00000 n +0000779759 00000 n +0000779888 00000 n +0000779953 00000 n +0000780018 00000 n +0000784218 00000 n +0000783639 00000 n +0000780197 00000 n +0000783765 00000 n +0000783894 00000 n 0000783959 00000 n -0000780562 00000 n -0000784085 00000 n -0001032819 00000 n -0001023606 00000 n -0001032633 00000 n -0000784214 00000 n -0000784343 00000 n -0000784471 00000 n -0000785737 00000 n -0000785546 00000 n -0000784892 00000 n -0000785672 00000 n -0000786165 00000 n -0000785974 00000 n -0000785824 00000 n -0000786100 00000 n -0001235894 00000 n -0000789564 00000 n -0000788338 00000 n -0000786207 00000 n -0000788855 00000 n -0000788984 00000 n -0000789113 00000 n -0000789242 00000 n -0000789371 00000 n -0000789500 00000 n -0000788494 00000 n -0000788666 00000 n -0000790019 00000 n -0000789828 00000 n -0000789678 00000 n -0000789954 00000 n -0000792874 00000 n -0000791451 00000 n -0000790061 00000 n -0000791780 00000 n -0000791909 00000 n -0000792038 00000 n -0000792167 00000 n -0000792295 00000 n -0000791598 00000 n -0000792424 00000 n -0000792553 00000 n -0000792681 00000 n -0000792810 00000 n -0000795013 00000 n -0000793935 00000 n -0000793002 00000 n -0000794690 00000 n -0000794819 00000 n -0000794100 00000 n -0000794307 00000 n -0000794948 00000 n -0000794513 00000 n -0000798372 00000 n -0000797923 00000 n -0000795141 00000 n -0000798049 00000 n -0000798178 00000 n -0000798307 00000 n -0000799286 00000 n -0000799095 00000 n -0000798458 00000 n -0000799221 00000 n -0001236019 00000 n -0000803033 00000 n -0000801943 00000 n -0000799373 00000 n -0000802452 00000 n -0000802581 00000 n -0000802839 00000 n -0000802099 00000 n -0000802278 00000 n -0000809848 00000 n -0000806028 00000 n -0000803175 00000 n -0000806154 00000 n -0000806219 00000 n -0000806284 00000 n -0000806349 00000 n -0000806414 00000 n -0000806479 00000 n -0000806544 00000 n -0000806609 00000 n -0000806674 00000 n -0000806738 00000 n -0000806803 00000 n -0000806868 00000 n -0000806996 00000 n -0000807060 00000 n -0000807125 00000 n -0000807189 00000 n -0000807254 00000 n -0000807317 00000 n -0000807382 00000 n -0000807447 00000 n -0000807512 00000 n -0000807576 00000 n -0000807641 00000 n -0000807706 00000 n -0000807771 00000 n -0000807836 00000 n -0000807901 00000 n -0000807966 00000 n -0000808031 00000 n -0000808096 00000 n -0000808161 00000 n -0000808226 00000 n -0000808291 00000 n -0000808356 00000 n -0000808421 00000 n -0000808486 00000 n -0000808551 00000 n -0000808616 00000 n -0000808681 00000 n -0000808746 00000 n -0000808811 00000 n -0000808876 00000 n -0000808941 00000 n -0000809006 00000 n -0000809071 00000 n -0000809136 00000 n -0000809201 00000 n -0000809266 00000 n -0000809330 00000 n -0000809395 00000 n -0000809460 00000 n -0000809525 00000 n -0000809590 00000 n -0000809655 00000 n -0000809720 00000 n -0000809784 00000 n -0000816831 00000 n -0000813138 00000 n -0000809962 00000 n -0000813264 00000 n -0000813329 00000 n -0000813394 00000 n -0000813459 00000 n -0000813524 00000 n -0000813589 00000 n -0000813654 00000 n -0000813719 00000 n -0000813784 00000 n -0000813849 00000 n -0000813914 00000 n -0000813979 00000 n -0000814044 00000 n -0000814109 00000 n -0000814174 00000 n -0000814239 00000 n -0000814304 00000 n -0000814369 00000 n -0000814434 00000 n -0000814498 00000 n -0000814563 00000 n -0000814628 00000 n -0000814691 00000 n -0000814756 00000 n -0000814821 00000 n -0000814885 00000 n -0000814950 00000 n -0000815015 00000 n -0000815080 00000 n -0000815145 00000 n -0000815210 00000 n -0000815275 00000 n -0000815340 00000 n -0000815405 00000 n -0000815470 00000 n -0000815534 00000 n -0000815599 00000 n -0000815664 00000 n -0000815729 00000 n -0000815794 00000 n -0000815859 00000 n -0000815924 00000 n -0000815989 00000 n -0000816054 00000 n -0000816119 00000 n -0000816184 00000 n -0000816249 00000 n -0000816314 00000 n -0000816379 00000 n -0000816444 00000 n -0000816509 00000 n -0000816574 00000 n -0000816639 00000 n -0000816703 00000 n -0000816767 00000 n -0000823067 00000 n -0000819629 00000 n -0000816945 00000 n -0000819755 00000 n -0000819820 00000 n -0000819885 00000 n -0000819950 00000 n -0000820015 00000 n -0000820080 00000 n -0000820145 00000 n -0000820210 00000 n -0000820275 00000 n -0000820340 00000 n -0000820405 00000 n -0000820470 00000 n -0000820535 00000 n -0000820600 00000 n -0000820665 00000 n -0000820730 00000 n -0000820795 00000 n -0000820860 00000 n -0000820925 00000 n -0000820990 00000 n -0000821055 00000 n -0000821120 00000 n -0000821185 00000 n -0000821250 00000 n -0000821315 00000 n -0000821380 00000 n -0000821445 00000 n -0000821510 00000 n -0000821575 00000 n -0000821640 00000 n -0000821705 00000 n -0000821770 00000 n -0000821835 00000 n -0000821900 00000 n -0000821964 00000 n -0000822029 00000 n -0000822094 00000 n -0000822159 00000 n -0000822224 00000 n -0000822289 00000 n -0000822354 00000 n -0000822419 00000 n -0000822484 00000 n -0000822549 00000 n -0000822614 00000 n -0000822679 00000 n -0000822744 00000 n -0000822809 00000 n -0000822874 00000 n -0000822939 00000 n -0000823003 00000 n -0000827720 00000 n -0000825456 00000 n -0000823181 00000 n -0000825582 00000 n -0000825647 00000 n -0000825712 00000 n -0000825777 00000 n -0000825842 00000 n -0000825907 00000 n -0000825972 00000 n -0000826037 00000 n -0000826102 00000 n -0000826167 00000 n -0000826232 00000 n -0000826297 00000 n -0000826362 00000 n -0000826427 00000 n -0000826489 00000 n -0000826553 00000 n -0000826618 00000 n -0000826682 00000 n -0000826747 00000 n -0000826812 00000 n -0000826877 00000 n -0000826942 00000 n -0000827007 00000 n -0000827072 00000 n -0000827137 00000 n -0000827266 00000 n -0000827395 00000 n -0000827460 00000 n -0000827525 00000 n -0000827590 00000 n -0000827655 00000 n -0000828189 00000 n -0000827998 00000 n -0000827848 00000 n -0000828124 00000 n -0001236144 00000 n -0000831199 00000 n -0000830493 00000 n -0000828231 00000 n -0000830619 00000 n -0000830748 00000 n -0000830877 00000 n -0000831005 00000 n -0000831134 00000 n -0000834878 00000 n -0000833994 00000 n -0000831313 00000 n -0000834301 00000 n -0000834430 00000 n -0000834559 00000 n -0000834686 00000 n -0000834141 00000 n -0000834814 00000 n -0000837728 00000 n -0000837280 00000 n -0000835006 00000 n -0000837406 00000 n -0000837535 00000 n -0000837664 00000 n -0000841206 00000 n -0000840629 00000 n -0000837842 00000 n -0000840755 00000 n -0000840884 00000 n -0000841012 00000 n -0000841141 00000 n -0000844208 00000 n -0000843888 00000 n -0000841320 00000 n -0000844014 00000 n -0000844143 00000 n -0000845298 00000 n -0000844978 00000 n -0000844365 00000 n -0000845104 00000 n -0000845233 00000 n -0001236269 00000 n -0000848238 00000 n -0000847594 00000 n -0000845398 00000 n -0000847720 00000 n -0000847849 00000 n -0000847978 00000 n -0000848043 00000 n -0000848108 00000 n -0000848173 00000 n -0000852489 00000 n -0000852168 00000 n -0000848352 00000 n -0000852294 00000 n -0000852359 00000 n -0000852424 00000 n -0000856206 00000 n -0000855950 00000 n -0000852645 00000 n -0000856076 00000 n -0000856141 00000 n -0000859775 00000 n -0000859584 00000 n -0000856348 00000 n -0000859710 00000 n -0000863435 00000 n -0000863244 00000 n -0000859917 00000 n -0000863370 00000 n -0000867078 00000 n -0000866692 00000 n -0000863577 00000 n -0000866818 00000 n -0000866883 00000 n -0000866948 00000 n -0000867013 00000 n -0001236394 00000 n -0000870730 00000 n -0000870085 00000 n -0000867220 00000 n -0000870211 00000 n -0000870276 00000 n -0000870341 00000 n -0000870470 00000 n -0000870535 00000 n -0000870600 00000 n -0000870665 00000 n -0000874844 00000 n -0000874267 00000 n -0000870872 00000 n -0000874393 00000 n -0000874458 00000 n -0000874522 00000 n -0000874587 00000 n -0000874715 00000 n -0000874780 00000 n -0000877493 00000 n -0000876721 00000 n -0000874986 00000 n -0000876847 00000 n -0000876912 00000 n -0000876977 00000 n -0000877042 00000 n -0000877107 00000 n -0000877171 00000 n -0000877299 00000 n -0000877364 00000 n -0000877429 00000 n -0000881413 00000 n -0000881092 00000 n -0000877635 00000 n -0000881218 00000 n -0000881283 00000 n -0000881348 00000 n -0000884223 00000 n -0000883516 00000 n -0000881541 00000 n -0000883642 00000 n -0000883707 00000 n -0000883772 00000 n -0000883901 00000 n -0000883966 00000 n -0000884031 00000 n -0000884094 00000 n -0000884159 00000 n -0000887112 00000 n -0000886598 00000 n -0000884365 00000 n -0000886724 00000 n -0000886789 00000 n -0000886854 00000 n -0000886919 00000 n -0000886984 00000 n -0000887049 00000 n -0001236519 00000 n -0000890556 00000 n -0000889976 00000 n -0000887268 00000 n -0000890102 00000 n -0000890231 00000 n -0000890296 00000 n -0000890361 00000 n -0000890426 00000 n -0000890491 00000 n -0000894171 00000 n -0000893915 00000 n -0000890698 00000 n -0000894041 00000 n -0000894106 00000 n -0000897716 00000 n -0000897397 00000 n -0000894299 00000 n -0000897523 00000 n -0000897588 00000 n -0000897652 00000 n -0000901242 00000 n -0000900597 00000 n -0000897872 00000 n -0000900723 00000 n -0000900788 00000 n -0000900982 00000 n -0000901047 00000 n -0000901112 00000 n -0000901177 00000 n -0000905061 00000 n -0000904870 00000 n -0000901384 00000 n -0000904996 00000 n -0000908751 00000 n -0000908495 00000 n -0000905189 00000 n -0000908621 00000 n -0000908686 00000 n -0001236644 00000 n -0000912017 00000 n -0000911567 00000 n -0000908879 00000 n -0000911693 00000 n -0000911758 00000 n -0000911823 00000 n -0000911888 00000 n -0000911953 00000 n -0000914638 00000 n -0000913929 00000 n -0000912187 00000 n -0000914055 00000 n -0000914184 00000 n -0000914249 00000 n -0000914314 00000 n -0000914379 00000 n -0000914444 00000 n -0000914509 00000 n -0000914574 00000 n -0000918125 00000 n -0000917545 00000 n -0000914794 00000 n -0000917671 00000 n -0000917865 00000 n -0000917930 00000 n -0000917995 00000 n -0000918060 00000 n -0000921740 00000 n -0000921419 00000 n -0000918267 00000 n -0000921545 00000 n -0000921610 00000 n -0000921675 00000 n -0000925149 00000 n -0000924439 00000 n -0000921868 00000 n -0000924565 00000 n -0000924630 00000 n -0000924695 00000 n -0000924824 00000 n -0000924889 00000 n -0000924954 00000 n -0000925019 00000 n -0000925084 00000 n -0000928985 00000 n -0000928794 00000 n +0000784024 00000 n +0001055423 00000 n +0001048140 00000 n +0001055243 00000 n +0000784153 00000 n +0000785239 00000 n +0000785048 00000 n +0000784360 00000 n +0000785174 00000 n +0000785680 00000 n +0000785489 00000 n +0000785339 00000 n +0000785615 00000 n +0000787574 00000 n +0000787127 00000 n +0000785722 00000 n +0000787253 00000 n +0000787382 00000 n +0000787509 00000 n +0000791788 00000 n +0000791082 00000 n +0000787688 00000 n +0000791208 00000 n +0001047819 00000 n +0001038606 00000 n +0001047633 00000 n +0000791337 00000 n +0000791466 00000 n +0000791594 00000 n +0001251478 00000 n +0000792857 00000 n +0000792666 00000 n +0000792015 00000 n +0000792792 00000 n +0000793285 00000 n +0000793094 00000 n +0000792944 00000 n +0000793220 00000 n +0000796681 00000 n +0000795455 00000 n +0000793327 00000 n +0000795972 00000 n +0000796101 00000 n +0000796230 00000 n +0000796359 00000 n +0000796488 00000 n +0000796617 00000 n +0000795611 00000 n +0000795783 00000 n +0000797136 00000 n +0000796945 00000 n +0000796795 00000 n +0000797071 00000 n +0000800414 00000 n +0000799247 00000 n +0000797178 00000 n +0000799576 00000 n +0000799705 00000 n +0000799834 00000 n +0000799963 00000 n +0000800091 00000 n +0000799394 00000 n +0000800220 00000 n +0000800349 00000 n +0000805442 00000 n +0000804110 00000 n +0000800542 00000 n +0000804862 00000 n +0000804991 00000 n +0000805119 00000 n +0000805248 00000 n +0000804275 00000 n +0000804481 00000 n +0000805377 00000 n +0000804687 00000 n +0001251603 00000 n +0000808827 00000 n +0000808378 00000 n +0000805598 00000 n +0000808504 00000 n +0000808633 00000 n +0000808762 00000 n +0000809739 00000 n +0000809548 00000 n +0000808913 00000 n +0000809674 00000 n +0000813485 00000 n +0000812395 00000 n +0000809826 00000 n +0000812904 00000 n +0000813033 00000 n +0000813291 00000 n +0000812551 00000 n +0000812730 00000 n +0000820297 00000 n +0000816477 00000 n +0000813627 00000 n +0000816603 00000 n +0000816668 00000 n +0000816733 00000 n +0000816798 00000 n +0000816863 00000 n +0000816928 00000 n +0000816993 00000 n +0000817058 00000 n +0000817123 00000 n +0000817187 00000 n +0000817252 00000 n +0000817317 00000 n +0000817445 00000 n +0000817509 00000 n +0000817574 00000 n +0000817638 00000 n +0000817703 00000 n +0000817766 00000 n +0000817831 00000 n +0000817896 00000 n +0000817961 00000 n +0000818025 00000 n +0000818090 00000 n +0000818155 00000 n +0000818220 00000 n +0000818285 00000 n +0000818350 00000 n +0000818415 00000 n +0000818480 00000 n +0000818545 00000 n +0000818610 00000 n +0000818675 00000 n +0000818740 00000 n +0000818805 00000 n +0000818870 00000 n +0000818935 00000 n +0000819000 00000 n +0000819065 00000 n +0000819130 00000 n +0000819195 00000 n +0000819260 00000 n +0000819325 00000 n +0000819390 00000 n +0000819455 00000 n +0000819520 00000 n +0000819585 00000 n +0000819650 00000 n +0000819715 00000 n +0000819779 00000 n +0000819844 00000 n +0000819909 00000 n +0000819974 00000 n +0000820039 00000 n +0000820104 00000 n +0000820169 00000 n +0000820233 00000 n +0000827277 00000 n +0000823584 00000 n +0000820411 00000 n +0000823710 00000 n +0000823775 00000 n +0000823840 00000 n +0000823905 00000 n +0000823970 00000 n +0000824035 00000 n +0000824100 00000 n +0000824165 00000 n +0000824230 00000 n +0000824295 00000 n +0000824360 00000 n +0000824425 00000 n +0000824490 00000 n +0000824555 00000 n +0000824620 00000 n +0000824685 00000 n +0000824750 00000 n +0000824815 00000 n +0000824880 00000 n +0000824944 00000 n +0000825009 00000 n +0000825074 00000 n +0000825137 00000 n +0000825202 00000 n +0000825267 00000 n +0000825331 00000 n +0000825396 00000 n +0000825461 00000 n +0000825526 00000 n +0000825591 00000 n +0000825656 00000 n +0000825721 00000 n +0000825786 00000 n +0000825851 00000 n +0000825916 00000 n +0000825980 00000 n +0000826045 00000 n +0000826110 00000 n +0000826175 00000 n +0000826240 00000 n +0000826305 00000 n +0000826370 00000 n +0000826435 00000 n +0000826500 00000 n +0000826565 00000 n +0000826630 00000 n +0000826695 00000 n +0000826760 00000 n +0000826825 00000 n +0000826890 00000 n +0000826955 00000 n +0000827020 00000 n +0000827085 00000 n +0000827149 00000 n +0000827213 00000 n +0000833511 00000 n +0000830073 00000 n +0000827391 00000 n +0000830199 00000 n +0000830264 00000 n +0000830329 00000 n +0000830394 00000 n +0000830459 00000 n +0000830524 00000 n +0000830589 00000 n +0000830654 00000 n +0000830719 00000 n +0000830784 00000 n +0000830849 00000 n +0000830914 00000 n +0000830979 00000 n +0000831044 00000 n +0000831109 00000 n +0000831174 00000 n +0000831239 00000 n +0000831304 00000 n +0000831369 00000 n +0000831434 00000 n +0000831499 00000 n +0000831564 00000 n +0000831629 00000 n +0000831694 00000 n +0000831759 00000 n +0000831824 00000 n +0000831889 00000 n +0000831954 00000 n +0000832019 00000 n +0000832084 00000 n +0000832149 00000 n +0000832214 00000 n +0000832279 00000 n +0000832344 00000 n +0000832408 00000 n +0000832473 00000 n +0000832538 00000 n +0000832603 00000 n +0000832668 00000 n +0000832733 00000 n +0000832798 00000 n +0000832863 00000 n +0000832928 00000 n +0000832993 00000 n +0000833058 00000 n +0000833123 00000 n +0000833188 00000 n +0000833253 00000 n +0000833318 00000 n +0000833383 00000 n +0000833447 00000 n +0001251728 00000 n +0000838163 00000 n +0000835899 00000 n +0000833625 00000 n +0000836025 00000 n +0000836090 00000 n +0000836155 00000 n +0000836220 00000 n +0000836285 00000 n +0000836350 00000 n +0000836415 00000 n +0000836480 00000 n +0000836545 00000 n +0000836610 00000 n +0000836675 00000 n +0000836740 00000 n +0000836805 00000 n +0000836870 00000 n +0000836932 00000 n +0000836996 00000 n +0000837061 00000 n +0000837125 00000 n +0000837190 00000 n +0000837255 00000 n +0000837320 00000 n +0000837385 00000 n +0000837450 00000 n +0000837515 00000 n +0000837580 00000 n +0000837709 00000 n +0000837838 00000 n +0000837903 00000 n +0000837968 00000 n +0000838033 00000 n +0000838098 00000 n +0000838632 00000 n +0000838441 00000 n +0000838291 00000 n +0000838567 00000 n +0000841640 00000 n +0000840934 00000 n +0000838674 00000 n +0000841060 00000 n +0000841189 00000 n +0000841318 00000 n +0000841446 00000 n +0000841575 00000 n +0000845318 00000 n +0000844434 00000 n +0000841754 00000 n +0000844741 00000 n +0000844870 00000 n +0000844999 00000 n +0000845126 00000 n +0000844581 00000 n +0000845254 00000 n +0000848165 00000 n +0000847717 00000 n +0000845446 00000 n +0000847843 00000 n +0000847972 00000 n +0000848101 00000 n +0000851641 00000 n +0000851064 00000 n +0000848279 00000 n +0000851190 00000 n +0000851319 00000 n +0000851447 00000 n +0000851576 00000 n +0001251853 00000 n +0000854643 00000 n +0000854323 00000 n +0000851755 00000 n +0000854449 00000 n +0000854578 00000 n +0000855731 00000 n +0000855411 00000 n +0000854800 00000 n +0000855537 00000 n +0000855666 00000 n +0000858669 00000 n +0000858025 00000 n +0000855831 00000 n +0000858151 00000 n +0000858280 00000 n +0000858409 00000 n +0000858474 00000 n +0000858539 00000 n +0000858604 00000 n +0000862257 00000 n +0000861936 00000 n +0000858783 00000 n +0000862062 00000 n +0000862127 00000 n +0000862192 00000 n +0000866415 00000 n +0000866159 00000 n +0000862427 00000 n +0000866285 00000 n +0000866350 00000 n +0000869818 00000 n +0000869627 00000 n +0000866571 00000 n +0000869753 00000 n +0001251978 00000 n +0000873442 00000 n +0000873251 00000 n +0000869960 00000 n +0000873377 00000 n +0000877093 00000 n +0000876837 00000 n +0000873584 00000 n +0000876963 00000 n +0000877028 00000 n +0000880557 00000 n +0000879783 00000 n +0000877235 00000 n +0000879909 00000 n +0000879974 00000 n +0000880038 00000 n +0000880103 00000 n +0000880168 00000 n +0000880297 00000 n +0000880362 00000 n +0000880427 00000 n +0000880492 00000 n +0000885285 00000 n +0000885029 00000 n +0000880699 00000 n +0000885155 00000 n +0000885220 00000 n +0000888011 00000 n +0000887237 00000 n +0000885427 00000 n +0000887363 00000 n +0000887428 00000 n +0000887493 00000 n +0000887622 00000 n +0000887687 00000 n +0000887752 00000 n +0000887817 00000 n +0000887882 00000 n +0000887947 00000 n +0000891565 00000 n +0000890922 00000 n +0000888153 00000 n +0000891048 00000 n +0000891113 00000 n +0000891242 00000 n +0000891306 00000 n +0000891371 00000 n +0000891436 00000 n +0000891500 00000 n +0001252103 00000 n +0000894866 00000 n +0000894224 00000 n +0000891707 00000 n +0000894350 00000 n +0000894415 00000 n +0000894479 00000 n +0000894608 00000 n +0000894673 00000 n +0000894737 00000 n +0000894802 00000 n +0000897953 00000 n +0000897632 00000 n +0000895008 00000 n +0000897758 00000 n +0000897823 00000 n +0000897888 00000 n +0000901060 00000 n +0000900221 00000 n +0000898095 00000 n +0000900347 00000 n +0000900412 00000 n +0000900477 00000 n +0000900542 00000 n +0000900607 00000 n +0000900736 00000 n +0000900801 00000 n +0000900866 00000 n +0000900931 00000 n +0000900996 00000 n +0000904738 00000 n +0000904547 00000 n +0000901216 00000 n +0000904673 00000 n +0000908297 00000 n +0000908041 00000 n +0000904866 00000 n +0000908167 00000 n +0000908232 00000 n +0000911363 00000 n +0000910654 00000 n +0000908425 00000 n +0000910780 00000 n +0000910845 00000 n +0000910910 00000 n +0000910975 00000 n +0000911168 00000 n +0000911233 00000 n +0000911298 00000 n +0001252228 00000 n +0000915080 00000 n +0000914824 00000 n +0000911519 00000 n +0000914950 00000 n +0000915015 00000 n +0000918863 00000 n +0000918672 00000 n +0000915208 00000 n +0000918798 00000 n +0000922615 00000 n +0000922294 00000 n +0000918991 00000 n +0000922420 00000 n +0000922485 00000 n +0000922550 00000 n 0000925305 00000 n -0000928920 00000 n -0001236769 00000 n -0000932834 00000 n -0000932643 00000 n -0000929113 00000 n -0000932769 00000 n -0000936284 00000 n -0000936093 00000 n -0000932962 00000 n -0000936219 00000 n -0000939445 00000 n -0000939060 00000 n -0000936412 00000 n -0000939186 00000 n -0000939251 00000 n -0000939316 00000 n -0000939381 00000 n -0000942608 00000 n -0000942028 00000 n -0000939615 00000 n -0000942154 00000 n -0000942283 00000 n -0000942348 00000 n -0000942413 00000 n -0000942478 00000 n -0000942543 00000 n -0000945793 00000 n -0000945084 00000 n -0000942750 00000 n -0000945210 00000 n -0000945275 00000 n -0000945340 00000 n -0000945469 00000 n -0000945534 00000 n -0000945599 00000 n -0000945664 00000 n -0000945729 00000 n -0000948740 00000 n -0000947968 00000 n -0000945949 00000 n -0000948094 00000 n -0000948159 00000 n -0000948224 00000 n -0000948289 00000 n -0000948418 00000 n -0000948483 00000 n -0000948546 00000 n -0000948611 00000 n -0000948676 00000 n -0001236894 00000 n -0000952136 00000 n -0000951945 00000 n -0000948882 00000 n -0000952071 00000 n -0000955304 00000 n -0000954919 00000 n -0000952250 00000 n -0000955045 00000 n -0000955110 00000 n -0000955175 00000 n -0000955240 00000 n -0000958848 00000 n -0000958268 00000 n -0000955446 00000 n -0000958394 00000 n -0000958523 00000 n -0000958588 00000 n -0000958653 00000 n -0000958718 00000 n -0000958783 00000 n -0000961920 00000 n -0000961729 00000 n -0000958990 00000 n -0000961855 00000 n -0000965021 00000 n -0000964636 00000 n -0000962133 00000 n -0000964762 00000 n -0000964827 00000 n -0000964892 00000 n -0000964957 00000 n -0000967758 00000 n -0000966790 00000 n -0000965262 00000 n -0000966916 00000 n -0000966981 00000 n -0000967046 00000 n -0000967175 00000 n -0000967240 00000 n -0000967305 00000 n -0000967370 00000 n -0000967435 00000 n -0000967500 00000 n -0000967629 00000 n -0000967694 00000 n -0001237019 00000 n -0000972363 00000 n -0000972042 00000 n -0000967900 00000 n -0000972168 00000 n -0000972233 00000 n -0000972298 00000 n -0000976240 00000 n -0000975984 00000 n -0000972491 00000 n -0000976110 00000 n -0000976175 00000 n -0000979629 00000 n -0000979438 00000 n -0000976368 00000 n -0000979564 00000 n -0000982400 00000 n -0000981950 00000 n -0000979757 00000 n -0000982076 00000 n -0000982141 00000 n -0000982206 00000 n -0000982271 00000 n -0000982336 00000 n -0000986284 00000 n -0000985704 00000 n -0000982556 00000 n -0000985830 00000 n -0000986024 00000 n -0000986089 00000 n -0000986154 00000 n -0000986219 00000 n -0000989720 00000 n -0000989464 00000 n -0000986426 00000 n -0000989590 00000 n -0000989655 00000 n -0001237144 00000 n -0000993298 00000 n -0000993107 00000 n -0000989862 00000 n -0000993233 00000 n -0000997391 00000 n -0000997135 00000 n -0000993468 00000 n -0000997261 00000 n -0000997326 00000 n -0001001036 00000 n -0001000391 00000 n -0000997547 00000 n -0001000517 00000 n -0001000582 00000 n -0001000647 00000 n -0001000776 00000 n -0001000841 00000 n -0001000906 00000 n -0001000971 00000 n -0001003353 00000 n -0001003097 00000 n -0001001192 00000 n -0001003223 00000 n -0001003288 00000 n -0001006889 00000 n -0001006115 00000 n -0001003495 00000 n -0001006241 00000 n -0001006306 00000 n -0001006371 00000 n -0001006436 00000 n -0001006564 00000 n -0001006629 00000 n -0001006694 00000 n -0001006759 00000 n -0001006824 00000 n -0001009987 00000 n -0001009408 00000 n -0001007045 00000 n -0001009534 00000 n -0001009599 00000 n -0001009664 00000 n -0001009729 00000 n -0001009858 00000 n -0001009923 00000 n -0001237269 00000 n -0001013856 00000 n -0001013408 00000 n -0001010143 00000 n -0001013534 00000 n -0001013599 00000 n -0001013664 00000 n -0001013729 00000 n -0001013793 00000 n -0001016125 00000 n -0001015095 00000 n -0001014012 00000 n -0001015221 00000 n -0001015286 00000 n -0001015415 00000 n -0001015480 00000 n -0001015545 00000 n -0001015609 00000 n -0001015674 00000 n -0001015739 00000 n -0001015868 00000 n -0001015933 00000 n -0001015998 00000 n -0001016063 00000 n -0001019175 00000 n -0001018402 00000 n -0001016267 00000 n -0001018528 00000 n -0001018593 00000 n -0001018658 00000 n -0001018723 00000 n -0001018852 00000 n -0001018916 00000 n -0001018981 00000 n -0001019046 00000 n -0001019110 00000 n -0001021476 00000 n -0001020637 00000 n -0001019317 00000 n -0001020763 00000 n -0001020828 00000 n -0001020893 00000 n -0001021021 00000 n -0001021086 00000 n -0001021151 00000 n -0001021216 00000 n -0001021281 00000 n -0001021346 00000 n -0001021411 00000 n -0001021717 00000 n -0001033061 00000 n -0001040650 00000 n -0001042949 00000 n -0001042918 00000 n -0001046635 00000 n -0001059431 00000 n -0001069097 00000 n -0001079832 00000 n -0001094076 00000 n -0001113582 00000 n -0001134648 00000 n -0001156798 00000 n -0001175054 00000 n -0001177905 00000 n -0001177675 00000 n -0001205323 00000 n -0001232652 00000 n -0001237385 00000 n -0001237510 00000 n -0001237636 00000 n -0001237762 00000 n -0001237888 00000 n -0001238014 00000 n -0001238122 00000 n -0001238232 00000 n -0001261461 00000 n -0001287238 00000 n -0001287279 00000 n -0001287319 00000 n -0001287453 00000 n +0000924531 00000 n +0000922757 00000 n +0000924657 00000 n +0000924722 00000 n +0000924787 00000 n +0000924852 00000 n +0000924981 00000 n +0000925046 00000 n +0000925111 00000 n +0000925176 00000 n +0000925241 00000 n +0000928296 00000 n +0000927651 00000 n +0000925475 00000 n +0000927777 00000 n +0000927842 00000 n +0000927907 00000 n +0000928101 00000 n +0000928166 00000 n +0000928231 00000 n +0000931893 00000 n +0000931573 00000 n +0000928452 00000 n +0000931699 00000 n +0000931764 00000 n +0000931829 00000 n +0001252353 00000 n +0000935256 00000 n +0000934614 00000 n +0000932021 00000 n +0000934740 00000 n +0000934805 00000 n +0000934870 00000 n +0000934935 00000 n +0000935062 00000 n +0000935127 00000 n +0000935191 00000 n +0000938947 00000 n +0000938626 00000 n +0000935412 00000 n +0000938752 00000 n +0000938817 00000 n +0000938882 00000 n +0000943018 00000 n +0000942827 00000 n +0000939089 00000 n +0000942953 00000 n +0000946694 00000 n +0000946503 00000 n +0000943146 00000 n +0000946629 00000 n +0000950129 00000 n +0000949938 00000 n +0000946822 00000 n +0000950064 00000 n +0000952871 00000 n +0000952097 00000 n +0000950271 00000 n +0000952223 00000 n +0000952288 00000 n +0000952353 00000 n +0000952418 00000 n +0000952547 00000 n +0000952612 00000 n +0000952677 00000 n +0000952742 00000 n +0000952807 00000 n +0001252478 00000 n +0000955944 00000 n +0000955365 00000 n +0000953041 00000 n +0000955491 00000 n +0000955556 00000 n +0000955621 00000 n +0000955750 00000 n +0000955815 00000 n +0000955880 00000 n +0000958941 00000 n +0000958426 00000 n +0000956100 00000 n +0000958552 00000 n +0000958617 00000 n +0000958682 00000 n +0000958747 00000 n +0000958812 00000 n +0000958877 00000 n +0000962122 00000 n +0000961542 00000 n +0000959083 00000 n +0000961668 00000 n +0000961797 00000 n +0000961862 00000 n +0000961927 00000 n +0000961992 00000 n +0000962057 00000 n +0000965888 00000 n +0000965697 00000 n +0000962264 00000 n +0000965823 00000 n +0000969014 00000 n +0000968304 00000 n +0000966016 00000 n +0000968430 00000 n +0000968495 00000 n +0000968560 00000 n +0000968625 00000 n +0000968754 00000 n +0000968819 00000 n +0000968884 00000 n +0000968949 00000 n +0000972438 00000 n +0000972182 00000 n +0000969170 00000 n +0000972308 00000 n +0000972373 00000 n +0001252603 00000 n +0000975805 00000 n +0000975614 00000 n +0000972623 00000 n +0000975740 00000 n +0000978658 00000 n +0000977951 00000 n +0000976018 00000 n +0000978077 00000 n +0000978142 00000 n +0000978206 00000 n +0000978271 00000 n +0000978336 00000 n +0000978401 00000 n +0000978529 00000 n +0000978594 00000 n +0000981787 00000 n +0000981013 00000 n +0000978843 00000 n +0000981139 00000 n +0000981204 00000 n +0000981269 00000 n +0000981333 00000 n +0000981398 00000 n +0000981527 00000 n +0000981592 00000 n +0000981657 00000 n +0000981722 00000 n +0000985621 00000 n +0000985365 00000 n +0000981929 00000 n +0000985491 00000 n +0000985556 00000 n +0000989542 00000 n +0000989286 00000 n +0000985749 00000 n +0000989412 00000 n +0000989477 00000 n +0000992891 00000 n +0000992700 00000 n +0000989684 00000 n +0000992826 00000 n +0001252728 00000 n +0000995551 00000 n +0000995101 00000 n +0000993019 00000 n +0000995227 00000 n +0000995292 00000 n +0000995357 00000 n +0000995422 00000 n +0000995487 00000 n +0000999438 00000 n +0000998858 00000 n +0000995707 00000 n +0000998984 00000 n +0000999178 00000 n +0000999243 00000 n +0000999308 00000 n +0000999373 00000 n +0001003105 00000 n +0001002849 00000 n +0000999580 00000 n +0001002975 00000 n +0001003040 00000 n +0001006830 00000 n +0001006639 00000 n +0001003275 00000 n +0001006765 00000 n +0001010838 00000 n +0001010647 00000 n +0001006986 00000 n +0001010773 00000 n +0001013799 00000 n +0001013090 00000 n +0001010980 00000 n +0001013216 00000 n +0001013281 00000 n +0001013346 00000 n +0001013411 00000 n +0001013539 00000 n +0001013604 00000 n +0001013669 00000 n +0001013734 00000 n +0001252853 00000 n +0001016774 00000 n +0001016519 00000 n +0001013969 00000 n +0001016645 00000 n +0001016710 00000 n +0001019923 00000 n +0001019213 00000 n +0001016902 00000 n +0001019339 00000 n +0001019404 00000 n +0001019469 00000 n +0001019534 00000 n +0001019663 00000 n +0001019728 00000 n +0001019793 00000 n +0001019858 00000 n +0001023553 00000 n +0001023232 00000 n +0001020079 00000 n +0001023358 00000 n +0001023423 00000 n +0001023488 00000 n +0001026815 00000 n +0001026105 00000 n +0001023695 00000 n +0001026231 00000 n +0001026296 00000 n +0001026361 00000 n +0001026490 00000 n +0001026555 00000 n +0001026620 00000 n +0001026685 00000 n +0001026750 00000 n +0001029666 00000 n +0001028892 00000 n +0001026971 00000 n +0001029018 00000 n +0001029083 00000 n +0001029148 00000 n +0001029277 00000 n +0001029342 00000 n +0001029407 00000 n +0001029472 00000 n +0001029537 00000 n +0001029602 00000 n +0001032084 00000 n +0001031118 00000 n +0001029822 00000 n +0001031244 00000 n +0001031373 00000 n +0001031438 00000 n +0001031503 00000 n +0001031568 00000 n +0001031633 00000 n +0001031698 00000 n +0001031762 00000 n +0001031890 00000 n +0001031955 00000 n +0001032020 00000 n +0001252978 00000 n +0001035123 00000 n +0001034286 00000 n +0001032226 00000 n +0001034412 00000 n +0001034477 00000 n +0001034542 00000 n +0001034606 00000 n +0001034671 00000 n +0001034800 00000 n +0001034865 00000 n +0001034930 00000 n +0001034994 00000 n +0001035059 00000 n +0001036504 00000 n +0001036184 00000 n +0001035265 00000 n +0001036310 00000 n +0001036375 00000 n +0001036439 00000 n +0001036717 00000 n +0001048061 00000 n +0001055649 00000 n +0001057949 00000 n +0001057918 00000 n +0001061636 00000 n +0001074778 00000 n +0001084506 00000 n +0001095243 00000 n +0001109487 00000 n +0001128993 00000 n +0001150059 00000 n +0001172210 00000 n +0001190466 00000 n +0001193318 00000 n +0001193088 00000 n +0001220848 00000 n +0001248234 00000 n +0001253076 00000 n +0001253201 00000 n +0001253327 00000 n +0001253453 00000 n +0001253579 00000 n +0001253705 00000 n +0001253822 00000 n +0001253932 00000 n +0001277161 00000 n +0001303042 00000 n +0001303083 00000 n +0001303123 00000 n +0001303257 00000 n trailer << -/Size 2956 -/Root 2954 0 R -/Info 2955 0 R -/ID [<01A0E6D0B28E0F00CFA87F6B24129249> <01A0E6D0B28E0F00CFA87F6B24129249>] +/Size 2974 +/Root 2972 0 R +/Info 2973 0 R +/ID [<CA54C0412855D175BC99DB64E4F46EA8> <CA54C0412855D175BC99DB64E4F46EA8>] >> startxref -1287711 +1303515 %%EOF diff --git a/doc/arm/Makefile.in b/doc/arm/Makefile.in index 46a5c34b78fa..501133e0db39 100644 --- a/doc/arm/Makefile.in +++ b/doc/arm/Makefile.in @@ -47,7 +47,8 @@ docclean manclean maintainer-clean distclean:: notes.html: notes-wrapper.xml notes.xml releaseinfo.xml pkgversion.xml noteversion.xml expand notes-wrapper.xml | \ - ${XSLTPROC} --stringparam generate.toc "" -o notes.html ../xsl/isc-notes-html.xsl - + ${XSLTPROC} --stringparam generate.toc "" ../xsl/isc-notes-html.xsl - |\ + @PERL@ html-fixup.pl > notes.html notes.tex: notes-wrapper.xml notes.xml releaseinfo.xml pkgversion.xml noteversion.xml expand notes-wrapper.xml | \ diff --git a/doc/arm/html-fixup.pl b/doc/arm/html-fixup.pl new file mode 100755 index 000000000000..276381360139 --- /dev/null +++ b/doc/arm/html-fixup.pl @@ -0,0 +1,20 @@ +#!/usr/bin/perl -w +# +# Copyright (C) 2015 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 +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +while (<>) { + s/쎶/ö/; + print; +} diff --git a/doc/arm/man.arpaname.html b/doc/arm/man.arpaname.html index bc3ded59dfad..31c7b56fd23e 100644 --- a/doc/arm/man.arpaname.html +++ b/doc/arm/man.arpaname.html @@ -50,20 +50,20 @@ <div class="cmdsynopsis"><p><code class="command">arpaname</code> {<em class="replaceable"><code>ipaddress </code></em>...}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2618396"></a><h2>DESCRIPTION</h2> +<a name="id2622539"></a><h2>DESCRIPTION</h2> <p> <span><strong class="command">arpaname</strong></span> translates IP addresses (IPv4 and IPv6) to the corresponding IN-ADDR.ARPA or IP6.ARPA names. </p> </div> <div class="refsect1" lang="en"> -<a name="id2618411"></a><h2>SEE ALSO</h2> +<a name="id2622554"></a><h2>SEE ALSO</h2> <p> <em class="citetitle">BIND 9 Administrator Reference Manual</em>. </p> </div> <div class="refsect1" lang="en"> -<a name="id2618425"></a><h2>AUTHOR</h2> +<a name="id2622568"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -87,6 +87,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.ddns-confgen.html b/doc/arm/man.ddns-confgen.html index 69a24538c442..9743dfb8213c 100644 --- a/doc/arm/man.ddns-confgen.html +++ b/doc/arm/man.ddns-confgen.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">ddns-confgen</code> [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>keyname</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>] [ -s <em class="replaceable"><code>name</code></em> | -z <em class="replaceable"><code>zone</code></em> ] [<code class="option">-q</code>] [name]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2657944"></a><h2>DESCRIPTION</h2> +<a name="id2656557"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">ddns-confgen</strong></span> generates a key for use by <span><strong class="command">nsupdate</strong></span> and <span><strong class="command">named</strong></span>. It simplifies configuration @@ -77,7 +77,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2658032"></a><h2>OPTIONS</h2> +<a name="id2656645"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt> <dd><p> @@ -144,7 +144,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2658710"></a><h2>SEE ALSO</h2> +<a name="id2657528"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">nsupdate</span>(1)</span>, <span class="citerefentry"><span class="refentrytitle">named.conf</span>(5)</span>, <span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>, @@ -152,7 +152,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2658817"></a><h2>AUTHOR</h2> +<a name="id2657566"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -176,6 +176,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.dig.html b/doc/arm/man.dig.html index 24f3f526852f..a960bbf540f4 100644 --- a/doc/arm/man.dig.html +++ b/doc/arm/man.dig.html @@ -52,7 +52,7 @@ <div class="cmdsynopsis"><p><code class="command">dig</code> [global-queryopt...] [query...]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2611911"></a><h2>DESCRIPTION</h2> +<a name="id2613208"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">dig</strong></span> (domain information groper) is a flexible tool for interrogating DNS name servers. It performs DNS lookups and @@ -99,7 +99,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2612013"></a><h2>SIMPLE USAGE</h2> +<a name="id2613310"></a><h2>SIMPLE USAGE</h2> <p> A typical invocation of <span><strong class="command">dig</strong></span> looks like: </p> @@ -152,115 +152,135 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2612276"></a><h2>OPTIONS</h2> -<p> - The <code class="option">-b</code> option sets the source IP address of the query - to <em class="parameter"><code>address</code></em>. This must be a valid - address on - one of the host's network interfaces or "0.0.0.0" or "::". An optional - port - may be specified by appending "#<port>" - </p> -<p> - The default query class (IN for internet) is overridden by the - <code class="option">-c</code> option. <em class="parameter"><code>class</code></em> is - any valid - class, such as HS for Hesiod records or CH for Chaosnet records. - </p> -<p> - The <code class="option">-f</code> option makes <span><strong class="command">dig </strong></span> - operate - in batch mode by reading a list of lookup requests to process from the - file <em class="parameter"><code>filename</code></em>. The file contains a - number of - queries, one per line. Each entry in the file should be organized in - the same way they would be presented as queries to - <span><strong class="command">dig</strong></span> using the command-line interface. - </p> -<p> - The <code class="option">-m</code> option enables memory usage debugging. - - </p> -<p> - If a non-standard port number is to be queried, the - <code class="option">-p</code> option is used. <em class="parameter"><code>port#</code></em> is - the port number that <span><strong class="command">dig</strong></span> will send its - queries - instead of the standard DNS port number 53. This option would be used - to test a name server that has been configured to listen for queries - on a non-standard port number. - </p> -<p> - The <code class="option">-4</code> option forces <span><strong class="command">dig</strong></span> - to only - use IPv4 query transport. The <code class="option">-6</code> option forces - <span><strong class="command">dig</strong></span> to only use IPv6 query transport. - </p> -<p> - The <code class="option">-t</code> option sets the query type to - <em class="parameter"><code>type</code></em>. It can be any valid query type - which is - supported in BIND 9. The default query type is "A", unless the - <code class="option">-x</code> option is supplied to indicate a reverse lookup. - A zone transfer can be requested by specifying a type of AXFR. When - an incremental zone transfer (IXFR) is required, - <em class="parameter"><code>type</code></em> is set to <code class="literal">ixfr=N</code>. - The incremental zone transfer will contain the changes made to the zone - since the serial number in the zone's SOA record was - <em class="parameter"><code>N</code></em>. - </p> -<p> - The <code class="option">-q</code> option sets the query name to - <em class="parameter"><code>name</code></em>. This is useful to distinguish the - <em class="parameter"><code>name</code></em> from other arguments. - </p> -<p> - The <code class="option">-v</code> causes <span><strong class="command">dig</strong></span> to - print the version number and exit. - </p> -<p> - Reverse lookups — mapping addresses to names — are simplified by the - <code class="option">-x</code> option. <em class="parameter"><code>addr</code></em> is - an IPv4 - address in dotted-decimal notation, or a colon-delimited IPv6 address. - When this option is used, there is no need to provide the - <em class="parameter"><code>name</code></em>, <em class="parameter"><code>class</code></em> and - <em class="parameter"><code>type</code></em> arguments. <span><strong class="command">dig</strong></span> - automatically performs a lookup for a name like - <code class="literal">11.12.13.10.in-addr.arpa</code> and sets the - query type and - class to PTR and IN respectively. By default, IPv6 addresses are - looked up using nibble format under the IP6.ARPA domain. - To use the older RFC1886 method using the IP6.INT domain - specify the <code class="option">-i</code> option. Bit string labels (RFC2874) - are now experimental and are not attempted. - </p> +<a name="id2613641"></a><h2>OPTIONS</h2> +<div class="variablelist"><dl> +<dt><span class="term">-4</span></dt> +<dd><p> + Use IPv4 only. + </p></dd> +<dt><span class="term">-6</span></dt> +<dd><p> + Use IPv6 only. + </p></dd> +<dt><span class="term">-b <em class="replaceable"><code>address[<span class="optional">#port</span>]</code></em></span></dt> +<dd><p> + Set the source IP address of the query. + The <em class="parameter"><code>address</code></em> must be a valid address on + one of the host's network interfaces, or "0.0.0.0" or "::". An + optional port may be specified by appending "#<port>" + </p></dd> +<dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt> +<dd><p> + Set the query class. The + default <em class="parameter"><code>class</code></em> is IN; other classes + are HS for Hesiod records or CH for Chaosnet records. + </p></dd> +<dt><span class="term">-f <em class="replaceable"><code>file</code></em></span></dt> +<dd><p> + Batch mode: <span><strong class="command">dig</strong></span> reads a list of lookup + requests to process from the + given <em class="parameter"><code>file</code></em>. Each line in the file + should be organized in the same way they would be + presented as queries to + <span><strong class="command">dig</strong></span> using the command-line interface. + </p></dd> +<dt><span class="term">-i</span></dt> +<dd><p> + Do reverse IPv6 lookups using the obsolete RFC1886 IP6.INT + domain, which is no longer in use. Obsolete bit string + label queries (RFC2874) are not attempted. + </p></dd> +<dt><span class="term">-k <em class="replaceable"><code>keyfile</code></em></span></dt> +<dd><p> + Sign queries using TSIG using a key read from the given file. + Key files can be generated using + <span class="citerefentry"><span class="refentrytitle">tsig-keygen</span>(8)</span>. + When using TSIG authentication with <span><strong class="command">dig</strong></span>, + the name server that is queried needs to know the key and + algorithm that is being used. In BIND, this is done by + providing appropriate <span><strong class="command">key</strong></span> + and <span><strong class="command">server</strong></span> statements in + <code class="filename">named.conf</code>. + </p></dd> +<dt><span class="term">-m</span></dt> +<dd><p> + Enable memory usage debugging. + + </p></dd> +<dt><span class="term">-p <em class="replaceable"><code>port</code></em></span></dt> +<dd><p> + Send the query to a non-standard port on the server, + instead of the defaut port 53. This option would be used + to test a name server that has been configured to listen + for queries on a non-standard port number. + </p></dd> +<dt><span class="term">-q <em class="replaceable"><code>name</code></em></span></dt> +<dd><p> + The domain name to query. This is useful to distinguish + the <em class="parameter"><code>name</code></em> from other arguments. + </p></dd> +<dt><span class="term">-t <em class="replaceable"><code>type</code></em></span></dt> +<dd><p> + The resource record type to query. It can be any valid query type + which is + supported in BIND 9. The default query type is "A", unless the + <code class="option">-x</code> option is supplied to indicate a reverse lookup. + A zone transfer can be requested by specifying a type of AXFR. When + an incremental zone transfer (IXFR) is required, set the + <em class="parameter"><code>type</code></em> to <code class="literal">ixfr=N</code>. + The incremental zone transfer will contain the changes + made to the zone since the serial number in the zone's SOA + record was + <em class="parameter"><code>N</code></em>. + </p></dd> +<dt><span class="term">-v</span></dt> +<dd><p> + Print the version number and exit. + </p></dd> +<dt><span class="term">-x <em class="replaceable"><code>addr</code></em></span></dt> +<dd><p> + Simplified reverse lookups, for mapping addresses to + names. The <em class="parameter"><code>addr</code></em> is an IPv4 address + in dotted-decimal notation, or a colon-delimited IPv6 + address. When the <code class="option">-x</code> is used, there is no + need to provide + the <em class="parameter"><code>name</code></em>, <em class="parameter"><code>class</code></em> + and <em class="parameter"><code>type</code></em> + arguments. <span><strong class="command">dig</strong></span> automatically performs a + lookup for a name like + <code class="literal">94.2.0.192.in-addr.arpa</code> and sets the + query type and class to PTR and IN respectively. IPv6 + addresses are looked up using nibble format under the + IP6.ARPA domain (but see also the <code class="option">-i</code> + option). + </p></dd> +<dt><span class="term">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]keyname:secret</code></em></span></dt> +<dd> <p> - To sign the DNS queries sent by <span><strong class="command">dig</strong></span> and - their - responses using transaction signatures (TSIG), specify a TSIG key file - using the <code class="option">-k</code> option. You can also specify the TSIG - key itself on the command line using the <code class="option">-y</code> option; - <em class="parameter"><code>hmac</code></em> is the type of the TSIG, default HMAC-MD5, - <em class="parameter"><code>name</code></em> is the name of the TSIG key and - <em class="parameter"><code>key</code></em> is the actual key. The key is a - base-64 - encoded string, typically generated by - <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>. - - Caution should be taken when using the <code class="option">-y</code> option on - multi-user systems as the key can be visible in the output from - <span class="citerefentry"><span class="refentrytitle">ps</span>(1)</span> - or in the shell's history file. When - using TSIG authentication with <span><strong class="command">dig</strong></span>, the name - server that is queried needs to know the key and algorithm that is - being used. In BIND, this is done by providing appropriate - <span><strong class="command">key</strong></span> and <span><strong class="command">server</strong></span> statements in - <code class="filename">named.conf</code>. - </p> + Sign queries using TSIG with the given authentication key. + <em class="parameter"><code>keyname</code></em> is the name of the key, and + <em class="parameter"><code>secret</code></em> is the base64 encoded shared secret. + <em class="parameter"><code>hmac</code></em> is the name of the key algorithm; + valid choices are <code class="literal">hmac-md5</code>, + <code class="literal">hmac-sha1</code>, <code class="literal">hmac-sha224</code>, + <code class="literal">hmac-sha256</code>, <code class="literal">hmac-sha384</code>, or + <code class="literal">hmac-sha512</code>. If <em class="parameter"><code>hmac</code></em> + is not specified, the default is <code class="literal">hmac-md5</code>. + </p> +<p> + NOTE: You should use the <code class="option">-k</code> option and + avoid the <code class="option">-y</code> option, because + with <code class="option">-y</code> the shared secret is supplied as + a command line argument in clear text. This may be visible + in the output from + <span class="citerefentry"><span class="refentrytitle">ps</span>(1)</span> + or in a history file maintained by the user's shell. + </p> +</dd> +</dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2664309"></a><h2>QUERY OPTIONS</h2> +<a name="id2665766"></a><h2>QUERY OPTIONS</h2> <p><span><strong class="command">dig</strong></span> provides a number of query options which affect the way in which lookups are made and the results displayed. Some of @@ -276,6 +296,9 @@ that keyword. Other keywords assign values to options like the timeout interval. They have the form <code class="option">+keyword=value</code>. + Keywords may be abbreviated, provided the abbreviation is + unambiguous; for example, <code class="literal">+cd</code> is equivalent + to <code class="literal">+cdflag</code>. The query options are: </p> @@ -340,7 +363,7 @@ the query. This requests the server to not perform DNSSEC validation of responses. </p></dd> -<dt><span class="term"><code class="option">+[no]cl</code></span></dt> +<dt><span class="term"><code class="option">+[no]class</code></span></dt> <dd><p> Display [do not display] the CLASS when printing the record. @@ -463,6 +486,10 @@ when an answer is returned. The default is to print the question section as a comment. </p></dd> +<dt><span class="term"><code class="option">+[no]rdflag</code></span></dt> +<dd><p> + A synonym for <em class="parameter"><code>+[no]recurse</code></em>. + </p></dd> <dt><span class="term"><code class="option">+[no]recurse</code></span></dt> <dd><p> Toggle the setting of the RD (recursion desired) bit @@ -570,6 +597,10 @@ from each server that was used to resolve the lookup. </p> <p> + If @server is also specified, it affects only the + initial query for the root zone name servers. + </p> +<p> <span><strong class="command">+dnssec</strong></span> is also set when +trace is set to better emulate the default queries from a nameserver. @@ -618,7 +649,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2665492"></a><h2>MULTIPLE QUERIES</h2> +<a name="id2666982"></a><h2>MULTIPLE QUERIES</h2> <p> The BIND 9 implementation of <span><strong class="command">dig </strong></span> supports @@ -664,7 +695,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr </p> </div> <div class="refsect1" lang="en"> -<a name="id2665577"></a><h2>IDN SUPPORT</h2> +<a name="id2667067"></a><h2>IDN SUPPORT</h2> <p> If <span><strong class="command">dig</strong></span> has been built with IDN (internationalized domain name) support, it can accept and display non-ASCII domain names. @@ -678,14 +709,14 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr </p> </div> <div class="refsect1" lang="en"> -<a name="id2665606"></a><h2>FILES</h2> +<a name="id2667096"></a><h2>FILES</h2> <p><code class="filename">/etc/resolv.conf</code> </p> <p><code class="filename">${HOME}/.digrc</code> </p> </div> <div class="refsect1" lang="en"> -<a name="id2665627"></a><h2>SEE ALSO</h2> +<a name="id2667117"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>, <span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>, @@ -693,7 +724,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr </p> </div> <div class="refsect1" lang="en"> -<a name="id2665665"></a><h2>BUGS</h2> +<a name="id2667155"></a><h2>BUGS</h2> <p> There are probably too many query options. </p> @@ -716,6 +747,6 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.dnssec-checkds.html b/doc/arm/man.dnssec-checkds.html index 57b70d4b1b12..be6b514f89ef 100644 --- a/doc/arm/man.dnssec-checkds.html +++ b/doc/arm/man.dnssec-checkds.html @@ -51,7 +51,7 @@ <div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-f <em class="replaceable"><code>file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>dig path</code></em></code>] [<code class="option">-D <em class="replaceable"><code>dsfromkey path</code></em></code>] {zone}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2614337"></a><h2>DESCRIPTION</h2> +<a name="id2614811"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">dnssec-checkds</strong></span> verifies the correctness of Delegation Signer (DS) or DNSSEC Lookaside Validation (DLV) resource records for keys in a specified @@ -59,7 +59,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2614350"></a><h2>OPTIONS</h2> +<a name="id2614825"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-f <em class="replaceable"><code>file</code></em></span></dt> <dd><p> @@ -88,14 +88,14 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2614453"></a><h2>SEE ALSO</h2> +<a name="id2614996"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">dnssec-dsfromkey</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>, </p> </div> <div class="refsect1" lang="en"> -<a name="id2614487"></a><h2>AUTHOR</h2> +<a name="id2615713"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -118,6 +118,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.dnssec-coverage.html b/doc/arm/man.dnssec-coverage.html index 6620d995059b..edbdf095a326 100644 --- a/doc/arm/man.dnssec-coverage.html +++ b/doc/arm/man.dnssec-coverage.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">dnssec-coverage</code> [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-f <em class="replaceable"><code>file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>DNSKEY TTL</code></em></code>] [<code class="option">-m <em class="replaceable"><code>max TTL</code></em></code>] [<code class="option">-r <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-c <em class="replaceable"><code>compilezone path</code></em></code>] [zone]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2614580"></a><h2>DESCRIPTION</h2> +<a name="id2615805"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">dnssec-coverage</strong></span> verifies that the DNSSEC keys for a given zone or a set of zones have timing metadata set properly to ensure no future lapses in DNSSEC @@ -78,7 +78,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2614606"></a><h2>OPTIONS</h2> +<a name="id2615832"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-f <em class="replaceable"><code>file</code></em></span></dt> <dd><p> @@ -168,7 +168,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2615335"></a><h2>SEE ALSO</h2> +<a name="id2616151"></a><h2>SEE ALSO</h2> <p> <span class="citerefentry"><span class="refentrytitle">dnssec-checkds</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">dnssec-dsfromkey</span>(8)</span>, @@ -177,7 +177,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2615379"></a><h2>AUTHOR</h2> +<a name="id2616195"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -201,6 +201,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.dnssec-dsfromkey.html b/doc/arm/man.dnssec-dsfromkey.html index 4fcae1e31a1d..d78ef3ffb69f 100644 --- a/doc/arm/man.dnssec-dsfromkey.html +++ b/doc/arm/man.dnssec-dsfromkey.html @@ -47,19 +47,19 @@ </div> <div class="refsynopsisdiv"> <h2>Synopsis</h2> -<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-1</code>] [<code class="option">-2</code>] [<code class="option">-a <em class="replaceable"><code>alg</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>] {keyfile}</p></div> +<div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-1</code>] [<code class="option">-2</code>] [<code class="option">-a <em class="replaceable"><code>alg</code></em></code>] [<code class="option">-C</code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>] {keyfile}</p></div> <div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> {-s} [<code class="option">-1</code>] [<code class="option">-2</code>] [<code class="option">-a <em class="replaceable"><code>alg</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-s</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-T <em class="replaceable"><code>TTL</code></em></code>] [<code class="option">-f <em class="replaceable"><code>file</code></em></code>] [<code class="option">-A</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] {dnsname}</p></div> <div class="cmdsynopsis"><p><code class="command">dnssec-dsfromkey</code> [<code class="option">-h</code>] [<code class="option">-V</code>]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2615790"></a><h2>DESCRIPTION</h2> +<a name="id2616643"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">dnssec-dsfromkey</strong></span> outputs the Delegation Signer (DS) resource record (RR), as defined in RFC 3658 and RFC 4509, for the given key(s). </p> </div> <div class="refsect1" lang="en"> -<a name="id2615804"></a><h2>OPTIONS</h2> +<a name="id2616657"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-1</span></dt> <dd><p> @@ -77,6 +77,11 @@ SHA-256 (SHA256), GOST or SHA-384 (SHA384). These values are case insensitive. </p></dd> +<dt><span class="term">-C</span></dt> +<dd><p> + Generate CDS records rather than DS records. This is mutually + exclusive with generating lookaside records. + </p></dd> <dt><span class="term">-T <em class="replaceable"><code>TTL</code></em></span></dt> <dd><p> Specifies the TTL of the DS records. @@ -117,7 +122,8 @@ <code class="option">domain</code> is appended to the name for each record in the set. The DNSSEC Lookaside Validation (DLV) RR is described - in RFC 4431. + in RFC 4431. This is mutually exclusive with generating + CDS records. </p></dd> <dt><span class="term">-s</span></dt> <dd><p> @@ -144,7 +150,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2616476"></a><h2>EXAMPLE</h2> +<a name="id2617410"></a><h2>EXAMPLE</h2> <p> To build the SHA-256 DS RR from the <strong class="userinput"><code>Kexample.com.+003+26160</code></strong> @@ -159,7 +165,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2616513"></a><h2>FILES</h2> +<a name="id2617446"></a><h2>FILES</h2> <p> The keyfile can be designed by the key identification <code class="filename">Knnnn.+aaa+iiiii</code> or the full file name @@ -173,13 +179,13 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2617510"></a><h2>CAVEAT</h2> +<a name="id2618580"></a><h2>CAVEAT</h2> <p> A keyfile error can give a "file not found" even if the file exists. </p> </div> <div class="refsect1" lang="en"> -<a name="id2617520"></a><h2>SEE ALSO</h2> +<a name="id2618589"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>, <em class="citetitle">BIND 9 Administrator Reference Manual</em>, @@ -189,7 +195,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2617559"></a><h2>AUTHOR</h2> +<a name="id2618629"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -213,6 +219,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.dnssec-keyfromlabel.html b/doc/arm/man.dnssec-keyfromlabel.html index 603a14c64cf2..a8211984c23f 100644 --- a/doc/arm/man.dnssec-keyfromlabel.html +++ b/doc/arm/man.dnssec-keyfromlabel.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">dnssec-keyfromlabel</code> {-l <em class="replaceable"><code>label</code></em>} [<code class="option">-3</code>] [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-G</code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-k</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-S <em class="replaceable"><code>key</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-V</code>] [<code class="option">-y</code>] {name}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2616899"></a><h2>DESCRIPTION</h2> +<a name="id2617876"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">dnssec-keyfromlabel</strong></span> generates a key pair of files that referencing a key object stored in a cryptographic hardware service module (HSM). The private key @@ -66,7 +66,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2616924"></a><h2>OPTIONS</h2> +<a name="id2617901"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt> <dd> @@ -209,7 +209,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2670258"></a><h2>TIMING OPTIONS</h2> +<a name="id2620171"></a><h2>TIMING OPTIONS</h2> <p> Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS. If the argument begins with a '+' or '-', it is interpreted as @@ -281,7 +281,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2670379"></a><h2>GENERATED KEY FILES</h2> +<a name="id2671220"></a><h2>GENERATED KEY FILES</h2> <p> When <span><strong class="command">dnssec-keyfromlabel</strong></span> completes successfully, @@ -320,7 +320,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2670541"></a><h2>SEE ALSO</h2> +<a name="id2671314"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>, <em class="citetitle">BIND 9 Administrator Reference Manual</em>, @@ -328,7 +328,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2670574"></a><h2>AUTHOR</h2> +<a name="id2671347"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -352,6 +352,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.dnssec-keygen.html b/doc/arm/man.dnssec-keygen.html index b1ff9554cabd..08a32ae72e14 100644 --- a/doc/arm/man.dnssec-keygen.html +++ b/doc/arm/man.dnssec-keygen.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">dnssec-keygen</code> [<code class="option">-a <em class="replaceable"><code>algorithm</code></em></code>] [<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>] [<code class="option">-n <em class="replaceable"><code>nametype</code></em></code>] [<code class="option">-3</code>] [<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-C</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-G</code>] [<code class="option">-g <em class="replaceable"><code>generator</code></em></code>] [<code class="option">-h</code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-k</code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>] [<code class="option">-q</code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-S <em class="replaceable"><code>key</code></em></code>] [<code class="option">-s <em class="replaceable"><code>strength</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-V</code>] [<code class="option">-z</code>] {name}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2618014"></a><h2>DESCRIPTION</h2> +<a name="id2618787"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">dnssec-keygen</strong></span> generates keys for DNSSEC (Secure DNS), as defined in RFC 2535 and RFC 4034. It can also generate keys for use with @@ -64,7 +64,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2618035"></a><h2>OPTIONS</h2> +<a name="id2618807"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt> <dd> @@ -280,7 +280,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2671760"></a><h2>TIMING OPTIONS</h2> +<a name="id2671781"></a><h2>TIMING OPTIONS</h2> <p> Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS. If the argument begins with a '+' or '-', it is interpreted as @@ -354,7 +354,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2671881"></a><h2>GENERATED KEYS</h2> +<a name="id2671971"></a><h2>GENERATED KEYS</h2> <p> When <span><strong class="command">dnssec-keygen</strong></span> completes successfully, @@ -400,7 +400,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2672057"></a><h2>EXAMPLE</h2> +<a name="id2672215"></a><h2>EXAMPLE</h2> <p> To generate a 768-bit DSA key for the domain <strong class="userinput"><code>example.com</code></strong>, the following command would be @@ -421,7 +421,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2672114"></a><h2>SEE ALSO</h2> +<a name="id2672272"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>, <em class="citetitle">BIND 9 Administrator Reference Manual</em>, <em class="citetitle">RFC 2539</em>, @@ -430,7 +430,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2672145"></a><h2>AUTHOR</h2> +<a name="id2672302"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -454,6 +454,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.dnssec-revoke.html b/doc/arm/man.dnssec-revoke.html index 245bac19aafa..b6d20df063d0 100644 --- a/doc/arm/man.dnssec-revoke.html +++ b/doc/arm/man.dnssec-revoke.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">dnssec-revoke</code> [<code class="option">-hr</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-V</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-f</code>] [<code class="option">-R</code>] {keyfile}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2618533"></a><h2>DESCRIPTION</h2> +<a name="id2619237"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">dnssec-revoke</strong></span> reads a DNSSEC key file, sets the REVOKED bit on the key as defined in RFC 5011, and creates a new pair of key files containing the @@ -58,7 +58,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2618547"></a><h2>OPTIONS</h2> +<a name="id2619251"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-h</span></dt> <dd><p> @@ -100,14 +100,14 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2618681"></a><h2>SEE ALSO</h2> +<a name="id2619385"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>, <em class="citetitle">BIND 9 Administrator Reference Manual</em>, <em class="citetitle">RFC 5011</em>. </p> </div> <div class="refsect1" lang="en"> -<a name="id2618706"></a><h2>AUTHOR</h2> +<a name="id2619410"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -131,6 +131,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.dnssec-settime.html b/doc/arm/man.dnssec-settime.html index 2840bf987366..96375e91b22a 100644 --- a/doc/arm/man.dnssec-settime.html +++ b/doc/arm/man.dnssec-settime.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">dnssec-settime</code> [<code class="option">-f</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-L <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-P <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-A <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-R <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-I <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-D <em class="replaceable"><code>date/offset</code></em></code>] [<code class="option">-h</code>] [<code class="option">-V</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] {keyfile}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2619302"></a><h2>DESCRIPTION</h2> +<a name="id2620211"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">dnssec-settime</strong></span> reads a DNSSEC private key file and sets the key timing metadata as specified by the <code class="option">-P</code>, <code class="option">-A</code>, @@ -76,7 +76,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2619361"></a><h2>OPTIONS</h2> +<a name="id2620269"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-f</span></dt> <dd><p> @@ -124,7 +124,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2619497"></a><h2>TIMING OPTIONS</h2> +<a name="id2620406"></a><h2>TIMING OPTIONS</h2> <p> Dates can be expressed in the format YYYYMMDD or YYYYMMDDHHMMSS. If the argument begins with a '+' or '-', it is interpreted as @@ -203,7 +203,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2619772"></a><h2>PRINTING OPTIONS</h2> +<a name="id2620545"></a><h2>PRINTING OPTIONS</h2> <p> <span><strong class="command">dnssec-settime</strong></span> can also be used to print the timing metadata associated with a key. @@ -229,7 +229,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2619852"></a><h2>SEE ALSO</h2> +<a name="id2624379"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>, <em class="citetitle">BIND 9 Administrator Reference Manual</em>, @@ -237,7 +237,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2619885"></a><h2>AUTHOR</h2> +<a name="id2624412"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -261,6 +261,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.dnssec-signzone.html b/doc/arm/man.dnssec-signzone.html index d11b33125c3a..8fd6d070c749 100644 --- a/doc/arm/man.dnssec-signzone.html +++ b/doc/arm/man.dnssec-signzone.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">dnssec-signzone</code> [<code class="option">-a</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-d <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-e <em class="replaceable"><code>end-time</code></em></code>] [<code class="option">-f <em class="replaceable"><code>output-file</code></em></code>] [<code class="option">-g</code>] [<code class="option">-h</code>] [<code class="option">-K <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-k <em class="replaceable"><code>key</code></em></code>] [<code class="option">-L <em class="replaceable"><code>serial</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-I <em class="replaceable"><code>input-format</code></em></code>] [<code class="option">-j <em class="replaceable"><code>jitter</code></em></code>] [<code class="option">-N <em class="replaceable"><code>soa-serial-format</code></em></code>] [<code class="option">-o <em class="replaceable"><code>origin</code></em></code>] [<code class="option">-O <em class="replaceable"><code>output-format</code></em></code>] [<code class="option">-P</code>] [<code class="option">-p</code>] [<code class="option">-R</code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-S</code>] [<code class="option">-s <em class="replaceable"><code>start-time</code></em></code>] [<code class="option">-T <em class="replaceable"><code>ttl</code></em></code>] [<code class="option">-t</code>] [<code class="option">-u</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-V</code>] [<code class="option">-X <em class="replaceable"><code>extended end-time</code></em></code>] [<code class="option">-x</code>] [<code class="option">-z</code>] [<code class="option">-3 <em class="replaceable"><code>salt</code></em></code>] [<code class="option">-H <em class="replaceable"><code>iterations</code></em></code>] [<code class="option">-A</code>] {zonefile} [key...]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2622083"></a><h2>DESCRIPTION</h2> +<a name="id2622104"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">dnssec-signzone</strong></span> signs a zone. It generates NSEC and RRSIG records and produces a signed version of the @@ -61,7 +61,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2622102"></a><h2>OPTIONS</h2> +<a name="id2622123"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-a</span></dt> <dd><p> @@ -483,7 +483,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2676409"></a><h2>EXAMPLE</h2> +<a name="id2677932"></a><h2>EXAMPLE</h2> <p> The following command signs the <strong class="userinput"><code>example.com</code></strong> zone with the DSA key generated by <span><strong class="command">dnssec-keygen</strong></span> @@ -513,14 +513,14 @@ db.example.com.signed %</pre> </div> <div class="refsect1" lang="en"> -<a name="id2676488"></a><h2>SEE ALSO</h2> +<a name="id2678011"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>, <em class="citetitle">BIND 9 Administrator Reference Manual</em>, <em class="citetitle">RFC 4033</em>, <em class="citetitle">RFC 4641</em>. </p> </div> <div class="refsect1" lang="en"> -<a name="id2676516"></a><h2>AUTHOR</h2> +<a name="id2678107"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -544,6 +544,6 @@ db.example.com.signed </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.dnssec-verify.html b/doc/arm/man.dnssec-verify.html index 53533ce1207f..93d9fa4e4609 100644 --- a/doc/arm/man.dnssec-verify.html +++ b/doc/arm/man.dnssec-verify.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">dnssec-verify</code> [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine</code></em></code>] [<code class="option">-I <em class="replaceable"><code>input-format</code></em></code>] [<code class="option">-o <em class="replaceable"><code>origin</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-V</code>] [<code class="option">-x</code>] [<code class="option">-z</code>] {zonefile}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2622588"></a><h2>DESCRIPTION</h2> +<a name="id2624999"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">dnssec-verify</strong></span> verifies that a zone is fully signed for each algorithm found in the DNSKEY RRset for the zone, and that the NSEC / NSEC3 @@ -58,7 +58,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2622602"></a><h2>OPTIONS</h2> +<a name="id2625013"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-c <em class="replaceable"><code>class</code></em></span></dt> <dd><p> @@ -124,7 +124,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2627134"></a><h2>SEE ALSO</h2> +<a name="id2629682"></a><h2>SEE ALSO</h2> <p> <span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>, <em class="citetitle">BIND 9 Administrator Reference Manual</em>, @@ -132,7 +132,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2627160"></a><h2>AUTHOR</h2> +<a name="id2629707"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -156,6 +156,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.genrandom.html b/doc/arm/man.genrandom.html index 2d347824aabc..e5b14e69cd2a 100644 --- a/doc/arm/man.genrandom.html +++ b/doc/arm/man.genrandom.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">genrandom</code> [<code class="option">-n <em class="replaceable"><code>number</code></em></code>] {<em class="replaceable"><code>size</code></em>} {<em class="replaceable"><code>filename</code></em>}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2660574"></a><h2>DESCRIPTION</h2> +<a name="id2622665"></a><h2>DESCRIPTION</h2> <p> <span><strong class="command">genrandom</strong></span> generates a file or a set of files containing a specified quantity @@ -59,7 +59,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2660589"></a><h2>ARGUMENTS</h2> +<a name="id2658725"></a><h2>ARGUMENTS</h2> <div class="variablelist"><dl> <dt><span class="term">-n <em class="replaceable"><code>number</code></em></span></dt> <dd><p> @@ -77,14 +77,14 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2660650"></a><h2>SEE ALSO</h2> +<a name="id2658786"></a><h2>SEE ALSO</h2> <p> <span class="citerefentry"><span class="refentrytitle">rand</span>(3)</span>, <span class="citerefentry"><span class="refentrytitle">arc4random</span>(3)</span> </p> </div> <div class="refsect1" lang="en"> -<a name="id2660677"></a><h2>AUTHOR</h2> +<a name="id2658812"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -108,6 +108,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.host.html b/doc/arm/man.host.html index b86f1cec7c60..37b89175d025 100644 --- a/doc/arm/man.host.html +++ b/doc/arm/man.host.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">host</code> [<code class="option">-aCdlnrsTwv</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-N <em class="replaceable"><code>ndots</code></em></code>] [<code class="option">-R <em class="replaceable"><code>number</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-W <em class="replaceable"><code>wait</code></em></code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-4</code>] [<code class="option">-6</code>] [<code class="option">-v</code>] [<code class="option">-V</code>] {name} [server]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2612829"></a><h2>DESCRIPTION</h2> +<a name="id2613918"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">host</strong></span> is a simple utility for performing DNS lookups. It is normally used to convert names to IP addresses and vice versa. @@ -206,7 +206,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2613356"></a><h2>IDN SUPPORT</h2> +<a name="id2614377"></a><h2>IDN SUPPORT</h2> <p> If <span><strong class="command">host</strong></span> has been built with IDN (internationalized domain name) support, it can accept and display non-ASCII domain names. @@ -220,12 +220,12 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2615160"></a><h2>FILES</h2> +<a name="id2614406"></a><h2>FILES</h2> <p><code class="filename">/etc/resolv.conf</code> </p> </div> <div class="refsect1" lang="en"> -<a name="id2615174"></a><h2>SEE ALSO</h2> +<a name="id2614420"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">dig</span>(1)</span>, <span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>. </p> @@ -249,6 +249,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.isc-hmac-fixup.html b/doc/arm/man.isc-hmac-fixup.html index fdbe6cbc3758..33ee6df6b775 100644 --- a/doc/arm/man.isc-hmac-fixup.html +++ b/doc/arm/man.isc-hmac-fixup.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">isc-hmac-fixup</code> {<em class="replaceable"><code>algorithm</code></em>} {<em class="replaceable"><code>secret</code></em>}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2619978"></a><h2>DESCRIPTION</h2> +<a name="id2659142"></a><h2>DESCRIPTION</h2> <p> Versions of BIND 9 up to and including BIND 9.6 had a bug causing HMAC-SHA* TSIG keys which were longer than the digest length of the @@ -76,7 +76,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2661376"></a><h2>SECURITY CONSIDERATIONS</h2> +<a name="id2659170"></a><h2>SECURITY CONSIDERATIONS</h2> <p> Secrets that have been converted by <span><strong class="command">isc-hmac-fixup</strong></span> are shortened, but as this is how the HMAC protocol works in @@ -87,14 +87,14 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2661392"></a><h2>SEE ALSO</h2> +<a name="id2659186"></a><h2>SEE ALSO</h2> <p> <em class="citetitle">BIND 9 Administrator Reference Manual</em>, <em class="citetitle">RFC 2104</em>. </p> </div> <div class="refsect1" lang="en"> -<a name="id2661409"></a><h2>AUTHOR</h2> +<a name="id2659203"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -118,6 +118,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.named-checkconf.html b/doc/arm/man.named-checkconf.html index 90a7e4fd5e77..50d8cf93e5e4 100644 --- a/doc/arm/man.named-checkconf.html +++ b/doc/arm/man.named-checkconf.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-h</code>] [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-p</code>] [<code class="option">-x</code>] [<code class="option">-z</code>]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2628713"></a><h2>DESCRIPTION</h2> +<a name="id2632011"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">named-checkconf</strong></span> checks the syntax, but not the semantics, of a <span><strong class="command">named</strong></span> configuration file. The file is parsed @@ -70,7 +70,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2628784"></a><h2>OPTIONS</h2> +<a name="id2632082"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-h</span></dt> <dd><p> @@ -119,21 +119,21 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2634742"></a><h2>RETURN VALUES</h2> +<a name="id2635378"></a><h2>RETURN VALUES</h2> <p><span><strong class="command">named-checkconf</strong></span> returns an exit status of 1 if errors were detected and 0 otherwise. </p> </div> <div class="refsect1" lang="en"> -<a name="id2634824"></a><h2>SEE ALSO</h2> +<a name="id2635392"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">named-checkzone</span>(8)</span>, <em class="citetitle">BIND 9 Administrator Reference Manual</em>. </p> </div> <div class="refsect1" lang="en"> -<a name="id2634854"></a><h2>AUTHOR</h2> +<a name="id2635421"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -157,6 +157,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.named-checkzone.html b/doc/arm/man.named-checkzone.html index b3ab15eb115c..809288fa3095 100644 --- a/doc/arm/man.named-checkzone.html +++ b/doc/arm/man.named-checkzone.html @@ -51,7 +51,7 @@ <div class="cmdsynopsis"><p><code class="command">named-compilezone</code> [<code class="option">-d</code>] [<code class="option">-j</code>] [<code class="option">-q</code>] [<code class="option">-v</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-C <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-f <em class="replaceable"><code>format</code></em></code>] [<code class="option">-F <em class="replaceable"><code>format</code></em></code>] [<code class="option">-i <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-k <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-m <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-n <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-L <em class="replaceable"><code>serial</code></em></code>] [<code class="option">-r <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-s <em class="replaceable"><code>style</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-T <em class="replaceable"><code>mode</code></em></code>] [<code class="option">-w <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-D</code>] [<code class="option">-W <em class="replaceable"><code>mode</code></em></code>] {<code class="option">-o <em class="replaceable"><code>filename</code></em></code>} {zonename} {filename}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2641427"></a><h2>DESCRIPTION</h2> +<a name="id2641380"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">named-checkzone</strong></span> checks the syntax and integrity of a zone file. It performs the same checks as <span><strong class="command">named</strong></span> does when loading a @@ -71,7 +71,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2641477"></a><h2>OPTIONS</h2> +<a name="id2641430"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-d</span></dt> <dd><p> @@ -288,14 +288,14 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2679728"></a><h2>RETURN VALUES</h2> +<a name="id2681319"></a><h2>RETURN VALUES</h2> <p><span><strong class="command">named-checkzone</strong></span> returns an exit status of 1 if errors were detected and 0 otherwise. </p> </div> <div class="refsect1" lang="en"> -<a name="id2679741"></a><h2>SEE ALSO</h2> +<a name="id2681333"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">named-checkconf</span>(8)</span>, <em class="citetitle">RFC 1035</em>, @@ -303,7 +303,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2679774"></a><h2>AUTHOR</h2> +<a name="id2681366"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -327,6 +327,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.named-journalprint.html b/doc/arm/man.named-journalprint.html index 69e31735a627..c7d93d8c91a8 100644 --- a/doc/arm/man.named-journalprint.html +++ b/doc/arm/man.named-journalprint.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">named-journalprint</code> {<em class="replaceable"><code>journal</code></em>}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2615069"></a><h2>DESCRIPTION</h2> +<a name="id2620864"></a><h2>DESCRIPTION</h2> <p> <span><strong class="command">named-journalprint</strong></span> prints the contents of a zone journal file in a human-readable @@ -76,7 +76,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2642968"></a><h2>SEE ALSO</h2> +<a name="id2644461"></a><h2>SEE ALSO</h2> <p> <span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">nsupdate</span>(8)</span>, @@ -84,7 +84,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2642999"></a><h2>AUTHOR</h2> +<a name="id2644492"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -108,6 +108,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.named.html b/doc/arm/man.named.html index 77921d695d6d..1663ec650825 100644 --- a/doc/arm/man.named.html +++ b/doc/arm/man.named.html @@ -47,10 +47,10 @@ </div> <div class="refsynopsisdiv"> <h2>Synopsis</h2> -<div class="cmdsynopsis"><p><code class="command">named</code> [<code class="option">-4</code>] [<code class="option">-6</code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>debug-level</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine-name</code></em></code>] [<code class="option">-f</code>] [<code class="option">-g</code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-n <em class="replaceable"><code>#cpus</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-s</code>] [<code class="option">-S <em class="replaceable"><code>#max-socks</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-U <em class="replaceable"><code>#listeners</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>] [<code class="option">-v</code>] [<code class="option">-V</code>] [<code class="option">-x <em class="replaceable"><code>cache-file</code></em></code>]</p></div> +<div class="cmdsynopsis"><p><code class="command">named</code> [<code class="option">-4</code>] [<code class="option">-6</code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-d <em class="replaceable"><code>debug-level</code></em></code>] [<code class="option">-E <em class="replaceable"><code>engine-name</code></em></code>] [<code class="option">-f</code>] [<code class="option">-g</code>] [<code class="option">-M <em class="replaceable"><code>option</code></em></code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-n <em class="replaceable"><code>#cpus</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-s</code>] [<code class="option">-S <em class="replaceable"><code>#max-socks</code></em></code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-U <em class="replaceable"><code>#listeners</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>] [<code class="option">-v</code>] [<code class="option">-V</code>] [<code class="option">-x <em class="replaceable"><code>cache-file</code></em></code>]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2642152"></a><h2>DESCRIPTION</h2> +<a name="id2643388"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">named</strong></span> is a Domain Name System (DNS) server, part of the BIND 9 distribution from ISC. For more @@ -65,7 +65,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2642183"></a><h2>OPTIONS</h2> +<a name="id2643419"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-4</span></dt> <dd><p> @@ -114,6 +114,14 @@ Run the server in the foreground and force all logging to <code class="filename">stderr</code>. </p></dd> +<dt><span class="term">-M <em class="replaceable"><code>option</code></em></span></dt> +<dd><p> + Sets the default memory context options. Currently + the only supported option is + <em class="replaceable"><code>external</code></em>, + which causes the internal memory manager to be bypassed + in favor of system-provided memory allocation functions. + </p></dd> <dt><span class="term">-m <em class="replaceable"><code>flag</code></em></span></dt> <dd><p> Turn on memory usage debugging flags. Possible flags are @@ -258,7 +266,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2665845"></a><h2>SIGNALS</h2> +<a name="id2681644"></a><h2>SIGNALS</h2> <p> In routine operation, signals should not be used to control the nameserver; <span><strong class="command">rndc</strong></span> should be used @@ -279,7 +287,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2665895"></a><h2>CONFIGURATION</h2> +<a name="id2681694"></a><h2>CONFIGURATION</h2> <p> The <span><strong class="command">named</strong></span> configuration file is too complex to describe in detail here. A complete description is provided @@ -296,7 +304,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2665944"></a><h2>FILES</h2> +<a name="id2681744"></a><h2>FILES</h2> <div class="variablelist"><dl> <dt><span class="term"><code class="filename">/etc/named.conf</code></span></dt> <dd><p> @@ -309,7 +317,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2679914"></a><h2>SEE ALSO</h2> +<a name="id2681787"></a><h2>SEE ALSO</h2> <p><em class="citetitle">RFC 1033</em>, <em class="citetitle">RFC 1034</em>, <em class="citetitle">RFC 1035</em>, @@ -322,7 +330,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2679985"></a><h2>AUTHOR</h2> +<a name="id2681858"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -346,6 +354,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.nsec3hash.html b/doc/arm/man.nsec3hash.html index 1e928db5794f..1ee6808f50c7 100644 --- a/doc/arm/man.nsec3hash.html +++ b/doc/arm/man.nsec3hash.html @@ -48,7 +48,7 @@ <div class="cmdsynopsis"><p><code class="command">nsec3hash</code> {<em class="replaceable"><code>salt</code></em>} {<em class="replaceable"><code>algorithm</code></em>} {<em class="replaceable"><code>iterations</code></em>} {<em class="replaceable"><code>domain</code></em>}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2661658"></a><h2>DESCRIPTION</h2> +<a name="id2622861"></a><h2>DESCRIPTION</h2> <p> <span><strong class="command">nsec3hash</strong></span> generates an NSEC3 hash based on a set of NSEC3 parameters. This can be used to check the validity @@ -56,7 +56,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2661673"></a><h2>ARGUMENTS</h2> +<a name="id2659262"></a><h2>ARGUMENTS</h2> <div class="variablelist"><dl> <dt><span class="term">salt</span></dt> <dd><p> @@ -80,14 +80,14 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2661735"></a><h2>SEE ALSO</h2> +<a name="id2659324"></a><h2>SEE ALSO</h2> <p> <em class="citetitle">BIND 9 Administrator Reference Manual</em>, <em class="citetitle">RFC 5155</em>. </p> </div> <div class="refsect1" lang="en"> -<a name="id2661752"></a><h2>AUTHOR</h2> +<a name="id2659341"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -109,6 +109,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.nsupdate.html b/doc/arm/man.nsupdate.html index f4f491d4c8a4..4d53fdd28cd3 100644 --- a/doc/arm/man.nsupdate.html +++ b/doc/arm/man.nsupdate.html @@ -47,10 +47,10 @@ </div> <div class="refsynopsisdiv"> <h2>Synopsis</h2> -<div class="cmdsynopsis"><p><code class="command">nsupdate</code> [<code class="option">-d</code>] [<code class="option">-D</code>] [[<code class="option">-g</code>] | [<code class="option">-o</code>] | [<code class="option">-l</code>] | [<code class="option">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]keyname:secret</code></em></code>] | [<code class="option">-k <em class="replaceable"><code>keyfile</code></em></code>]] [<code class="option">-t <em class="replaceable"><code>timeout</code></em></code>] [<code class="option">-u <em class="replaceable"><code>udptimeout</code></em></code>] [<code class="option">-r <em class="replaceable"><code>udpretries</code></em></code>] [<code class="option">-R <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-v</code>] [<code class="option">-V</code>] [filename]</p></div> +<div class="cmdsynopsis"><p><code class="command">nsupdate</code> [<code class="option">-d</code>] [<code class="option">-D</code>] [<code class="option">-L <em class="replaceable"><code>level</code></em></code>] [[<code class="option">-g</code>] | [<code class="option">-o</code>] | [<code class="option">-l</code>] | [<code class="option">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]keyname:secret</code></em></code>] | [<code class="option">-k <em class="replaceable"><code>keyfile</code></em></code>]] [<code class="option">-t <em class="replaceable"><code>timeout</code></em></code>] [<code class="option">-u <em class="replaceable"><code>udptimeout</code></em></code>] [<code class="option">-r <em class="replaceable"><code>udpretries</code></em></code>] [<code class="option">-R <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-v</code>] [<code class="option">-V</code>] [filename]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2643939"></a><h2>DESCRIPTION</h2> +<a name="id2645064"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">nsupdate</strong></span> is used to submit Dynamic DNS Update requests as defined in RFC 2136 to a name server. @@ -75,43 +75,30 @@ This is identified by the MNAME field of the zone's SOA record. </p> <p> - The - <code class="option">-d</code> - option makes - <span><strong class="command">nsupdate</strong></span> - operate in debug mode. - This provides tracing information about the update requests that are - made and the replies received from the name server. - </p> -<p> - The <code class="option">-D</code> option makes <span><strong class="command">nsupdate</strong></span> - report additional debugging information to <code class="option">-d</code>. - </p> -<p> - The <code class="option">-L</code> option with an integer argument of zero or - higher sets the logging debug level. If zero, logging is disabled. - </p> -<p> Transaction signatures can be used to authenticate the Dynamic DNS updates. These use the TSIG resource record type described in RFC 2845 or the SIG(0) record described in RFC 2535 and - RFC 2931 or GSS-TSIG as described in RFC 3645. TSIG relies on + RFC 2931 or GSS-TSIG as described in RFC 3645. + </p> +<p> + TSIG relies on a shared secret that should only be known to - <span><strong class="command">nsupdate</strong></span> and the name server. Currently, - the only supported encryption algorithm for TSIG is HMAC-MD5, - which is defined in RFC 2104. Once other algorithms are - defined for TSIG, applications will need to ensure they select - the appropriate algorithm as well as the key when authenticating - each other. For instance, suitable <span class="type">key</span> and + <span><strong class="command">nsupdate</strong></span> and the name server. + For instance, suitable <span class="type">key</span> and <span class="type">server</span> statements would be added to <code class="filename">/etc/named.conf</code> so that the name server can associate the appropriate secret key and algorithm with the IP address of the client application that will be using - TSIG authentication. SIG(0) uses public key cryptography. + TSIG authentication. You can use <span><strong class="command">ddns-confgen</strong></span> + to generate suitable configuration fragments. + <span><strong class="command">nsupdate</strong></span> + uses the <code class="option">-y</code> or <code class="option">-k</code> options + to provide the TSIG shared secret. These options are mutually exclusive. + </p> +<p> + SIG(0) uses public key cryptography. To use a SIG(0) key, the public key must be stored in a KEY record in a zone served by the name server. - <span><strong class="command">nsupdate</strong></span> does not read - <code class="filename">/etc/named.conf</code>. </p> <p> GSS-TSIG uses Kerberos credentials. Standard GSS-TSIG mode @@ -119,108 +106,119 @@ non-standards-compliant variant of GSS-TSIG used by Windows 2000 can be switched on with the <code class="option">-o</code> flag. </p> -<p><span><strong class="command">nsupdate</strong></span> - uses the <code class="option">-y</code> or <code class="option">-k</code> option - to provide the shared secret needed to generate a TSIG record - for authenticating Dynamic DNS update requests, default type - HMAC-MD5. These options are mutually exclusive. - </p> -<p> - When the <code class="option">-y</code> option is used, a signature is - generated from - [<span class="optional"><em class="parameter"><code>hmac:</code></em></span>]<em class="parameter"><code>keyname:secret.</code></em> - <em class="parameter"><code>keyname</code></em> is the name of the key, and - <em class="parameter"><code>secret</code></em> is the base64 encoded shared secret. - <em class="parameter"><code>hmac</code></em> is the name of the key algorithm; - valid choices are <code class="literal">hmac-md5</code>, - <code class="literal">hmac-sha1</code>, <code class="literal">hmac-sha224</code>, - <code class="literal">hmac-sha256</code>, <code class="literal">hmac-sha384</code>, or - <code class="literal">hmac-sha512</code>. If <em class="parameter"><code>hmac</code></em> - is not specified, the default is <code class="literal">hmac-md5</code>. - NOTE: Use of the <code class="option">-y</code> option is discouraged because the - shared secret is supplied as a command line argument in clear text. - This may be visible in the output from - <span class="citerefentry"><span class="refentrytitle">ps</span>(1)</span> - or in a history file maintained by the user's shell. - </p> -<p> - With the - <code class="option">-k</code> option, <span><strong class="command">nsupdate</strong></span> reads - the shared secret from the file <em class="parameter"><code>keyfile</code></em>. - Keyfiles may be in two formats: a single file containing - a <code class="filename">named.conf</code>-format <span><strong class="command">key</strong></span> - statement, which may be generated automatically by - <span><strong class="command">ddns-confgen</strong></span>, or a pair of files whose names are - of the format <code class="filename">K{name}.+157.+{random}.key</code> and - <code class="filename">K{name}.+157.+{random}.private</code>, which can be - generated by <span><strong class="command">dnssec-keygen</strong></span>. - The <code class="option">-k</code> may also be used to specify a SIG(0) key used - to authenticate Dynamic DNS update requests. In this case, the key - specified is not an HMAC-MD5 key. - </p> -<p> - <span><strong class="command">nsupdate</strong></span> can be run in a local-host only mode - using the <code class="option">-l</code> flag. This sets the server address to - localhost (disabling the <span><strong class="command">server</strong></span> so that the server - address cannot be overridden). Connections to the local server will - use a TSIG key found in <code class="filename">/var/run/named/session.key</code>, - which is automatically generated by <span><strong class="command">named</strong></span> if any - local master zone has set <span><strong class="command">update-policy</strong></span> to - <span><strong class="command">local</strong></span>. The location of this key file can be - overridden with the <code class="option">-k</code> option. - </p> -<p> - By default, <span><strong class="command">nsupdate</strong></span> - uses UDP to send update requests to the name server unless they are too - large to fit in a UDP request in which case TCP will be used. - The - <code class="option">-v</code> - option makes - <span><strong class="command">nsupdate</strong></span> - use a TCP connection. - This may be preferable when a batch of update requests is made. - </p> -<p> - The <code class="option">-p</code> sets the default port number to use for - connections to a name server. The default is 53. - </p> -<p> - The <code class="option">-t</code> option sets the maximum time an update request - can - take before it is aborted. The default is 300 seconds. Zero can be - used - to disable the timeout. - </p> -<p> - The <code class="option">-u</code> option sets the UDP retry interval. The default - is - 3 seconds. If zero, the interval will be computed from the timeout - interval - and number of UDP retries. - </p> -<p> - The <code class="option">-r</code> option sets the number of UDP retries. The - default is - 3. If zero, only one update request will be made. - </p> +</div> +<div class="refsect1" lang="en"> +<a name="id2645153"></a><h2>OPTIONS</h2> +<div class="variablelist"><dl> +<dt><span class="term">-d</span></dt> +<dd><p> + Debug mode. This provides tracing information about the + update requests that are made and the replies received + from the name server. + </p></dd> +<dt><span class="term">-D</span></dt> +<dd><p> + Extra debug mode. + </p></dd> +<dt><span class="term">-k <em class="replaceable"><code>keyfile</code></em></span></dt> +<dd><p> + The file containing the TSIG authentication key. + Keyfiles may be in two formats: a single file containing + a <code class="filename">named.conf</code>-format <span><strong class="command">key</strong></span> + statement, which may be generated automatically by + <span><strong class="command">ddns-confgen</strong></span>, or a pair of files whose names are + of the format <code class="filename">K{name}.+157.+{random}.key</code> and + <code class="filename">K{name}.+157.+{random}.private</code>, which can be + generated by <span><strong class="command">dnssec-keygen</strong></span>. + The <code class="option">-k</code> may also be used to specify a SIG(0) key used + to authenticate Dynamic DNS update requests. In this case, the key + specified is not an HMAC-MD5 key. + </p></dd> +<dt><span class="term">-l</span></dt> +<dd><p> + Local-host only mode. This sets the server address to + localhost (disabling the <span><strong class="command">server</strong></span> so that the server + address cannot be overridden). Connections to the local server will + use a TSIG key found in <code class="filename">/var/run/named/session.key</code>, + which is automatically generated by <span><strong class="command">named</strong></span> if any + local master zone has set <span><strong class="command">update-policy</strong></span> to + <span><strong class="command">local</strong></span>. The location of this key file can be + overridden with the <code class="option">-k</code> option. + </p></dd> +<dt><span class="term">-L <em class="replaceable"><code>level</code></em></span></dt> +<dd><p> + Set the logging debug level. If zero, logging is disabled. + </p></dd> +<dt><span class="term">-p <em class="replaceable"><code>port</code></em></span></dt> +<dd><p> + Set the port to use for connections to a name server. The + default is 53. + </p></dd> +<dt><span class="term">-r <em class="replaceable"><code>udpretries</code></em></span></dt> +<dd><p> + The number of UDP retries. The default is 3. If zero, only + one update request will be made. + </p></dd> +<dt><span class="term">-R <em class="replaceable"><code>randomdev</code></em></span></dt> +<dd><p> + Where to obtain randomness. If the operating system + does not provide a <code class="filename">/dev/random</code> or + equivalent device, the default source of randomness is keyboard + input. <code class="filename">randomdev</code> specifies the name of + a character device or file containing random data to be used + instead of the default. The special value + <code class="filename">keyboard</code> indicates that keyboard input + should be used. This option may be specified multiple times. + </p></dd> +<dt><span class="term">-t <em class="replaceable"><code>timeout</code></em></span></dt> +<dd><p> + The maximum time an update request can take before it is + aborted. The default is 300 seconds. Zero can be used to + disable the timeout. + </p></dd> +<dt><span class="term">-u <em class="replaceable"><code>udptimeout</code></em></span></dt> +<dd><p> + The UDP retry interval. The default is 3 seconds. If zero, + the interval will be computed from the timeout interval and + number of UDP retries. + </p></dd> +<dt><span class="term">-v</span></dt> +<dd><p> + Use TCP even for small update requests. + By default, <span><strong class="command">nsupdate</strong></span> + uses UDP to send update requests to the name server unless they are too + large to fit in a UDP request in which case TCP will be used. + TCP may be preferable when a batch of update requests is made. + </p></dd> +<dt><span class="term">-V</span></dt> +<dd><p> + Print the version number and exit. + </p></dd> +<dt><span class="term">-y <em class="replaceable"><code>[<span class="optional">hmac:</span>]keyname:secret</code></em></span></dt> +<dd> <p> - The <code class="option">-R <em class="replaceable"><code>randomdev</code></em></code> option - specifies a source of randomness. If the operating system - does not provide a <code class="filename">/dev/random</code> or - equivalent device, the default source of randomness is keyboard - input. <code class="filename">randomdev</code> specifies the name of - a character device or file containing random data to be used - instead of the default. The special value - <code class="filename">keyboard</code> indicates that keyboard input - should be used. This option may be specified multiple times. - </p> + Literal TSIG authentication key. + <em class="parameter"><code>keyname</code></em> is the name of the key, and + <em class="parameter"><code>secret</code></em> is the base64 encoded shared secret. + <em class="parameter"><code>hmac</code></em> is the name of the key algorithm; + valid choices are <code class="literal">hmac-md5</code>, + <code class="literal">hmac-sha1</code>, <code class="literal">hmac-sha224</code>, + <code class="literal">hmac-sha256</code>, <code class="literal">hmac-sha384</code>, or + <code class="literal">hmac-sha512</code>. If <em class="parameter"><code>hmac</code></em> + is not specified, the default is <code class="literal">hmac-md5</code>. + </p> <p> - The -V option causes <span><strong class="command">nsupdate</strong></span> to print the - version number and exit. - </p> + NOTE: Use of the <code class="option">-y</code> option is discouraged because the + shared secret is supplied as a command line argument in clear text. + This may be visible in the output from + <span class="citerefentry"><span class="refentrytitle">ps</span>(1)</span> + or in a history file maintained by the user's shell. + </p> +</dd> +</dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2680104"></a><h2>INPUT FORMAT</h2> +<a name="id2681925"></a><h2>INPUT FORMAT</h2> <p><span><strong class="command">nsupdate</strong></span> reads input from <em class="parameter"><code>filename</code></em> @@ -250,270 +248,270 @@ </p> <div class="variablelist"><dl> <dt><span class="term"> - <span><strong class="command">server</strong></span> - {servername} - [port] - </span></dt> -<dd><p> - Sends all dynamic update requests to the name server - <em class="parameter"><code>servername</code></em>. - When no server statement is provided, - <span><strong class="command">nsupdate</strong></span> - will send updates to the master server of the correct zone. - The MNAME field of that zone's SOA record will identify the - master - server for that zone. - <em class="parameter"><code>port</code></em> - is the port number on - <em class="parameter"><code>servername</code></em> - where the dynamic update requests get sent. - If no port number is specified, the default DNS port number of - 53 is - used. - </p></dd> + <span><strong class="command">server</strong></span> + {servername} + [port] + </span></dt> +<dd><p> + Sends all dynamic update requests to the name server + <em class="parameter"><code>servername</code></em>. + When no server statement is provided, + <span><strong class="command">nsupdate</strong></span> + will send updates to the master server of the correct zone. + The MNAME field of that zone's SOA record will identify the + master + server for that zone. + <em class="parameter"><code>port</code></em> + is the port number on + <em class="parameter"><code>servername</code></em> + where the dynamic update requests get sent. + If no port number is specified, the default DNS port number of + 53 is + used. + </p></dd> <dt><span class="term"> - <span><strong class="command">local</strong></span> - {address} - [port] - </span></dt> + <span><strong class="command">local</strong></span> + {address} + [port] + </span></dt> <dd><p> - Sends all dynamic update requests using the local - <em class="parameter"><code>address</code></em>. + Sends all dynamic update requests using the local + <em class="parameter"><code>address</code></em>. - When no local statement is provided, - <span><strong class="command">nsupdate</strong></span> - will send updates using an address and port chosen by the - system. - <em class="parameter"><code>port</code></em> - can additionally be used to make requests come from a specific - port. - If no port number is specified, the system will assign one. - </p></dd> + When no local statement is provided, + <span><strong class="command">nsupdate</strong></span> + will send updates using an address and port chosen by the + system. + <em class="parameter"><code>port</code></em> + can additionally be used to make requests come from a specific + port. + If no port number is specified, the system will assign one. + </p></dd> <dt><span class="term"> - <span><strong class="command">zone</strong></span> - {zonename} - </span></dt> -<dd><p> - Specifies that all updates are to be made to the zone - <em class="parameter"><code>zonename</code></em>. - If no - <em class="parameter"><code>zone</code></em> - statement is provided, - <span><strong class="command">nsupdate</strong></span> - will attempt determine the correct zone to update based on the - rest of the input. - </p></dd> + <span><strong class="command">zone</strong></span> + {zonename} + </span></dt> +<dd><p> + Specifies that all updates are to be made to the zone + <em class="parameter"><code>zonename</code></em>. + If no + <em class="parameter"><code>zone</code></em> + statement is provided, + <span><strong class="command">nsupdate</strong></span> + will attempt determine the correct zone to update based on the + rest of the input. + </p></dd> <dt><span class="term"> - <span><strong class="command">class</strong></span> - {classname} - </span></dt> -<dd><p> - Specify the default class. - If no <em class="parameter"><code>class</code></em> is specified, the - default class is - <em class="parameter"><code>IN</code></em>. - </p></dd> + <span><strong class="command">class</strong></span> + {classname} + </span></dt> +<dd><p> + Specify the default class. + If no <em class="parameter"><code>class</code></em> is specified, the + default class is + <em class="parameter"><code>IN</code></em>. + </p></dd> <dt><span class="term"> - <span><strong class="command">ttl</strong></span> - {seconds} - </span></dt> + <span><strong class="command">ttl</strong></span> + {seconds} + </span></dt> <dd><p> - Specify the default time to live for records to be added. + Specify the default time to live for records to be added. The value <em class="parameter"><code>none</code></em> will clear the default ttl. - </p></dd> + </p></dd> <dt><span class="term"> - <span><strong class="command">key</strong></span> - [hmac:] {keyname} - {secret} - </span></dt> -<dd><p> - Specifies that all updates are to be TSIG-signed using the - <em class="parameter"><code>keyname</code></em> <em class="parameter"><code>secret</code></em> pair. - If <em class="parameter"><code>hmac</code></em> is specified, then it sets the - signing algorithm in use; the default is - <code class="literal">hmac-md5</code>. The <span><strong class="command">key</strong></span> - command overrides any key specified on the command line via - <code class="option">-y</code> or <code class="option">-k</code>. - </p></dd> + <span><strong class="command">key</strong></span> + [hmac:] {keyname} + {secret} + </span></dt> +<dd><p> + Specifies that all updates are to be TSIG-signed using the + <em class="parameter"><code>keyname</code></em> <em class="parameter"><code>secret</code></em> pair. + If <em class="parameter"><code>hmac</code></em> is specified, then it sets the + signing algorithm in use; the default is + <code class="literal">hmac-md5</code>. The <span><strong class="command">key</strong></span> + command overrides any key specified on the command line via + <code class="option">-y</code> or <code class="option">-k</code>. + </p></dd> <dt><span class="term"> - <span><strong class="command">gsstsig</strong></span> - </span></dt> + <span><strong class="command">gsstsig</strong></span> + </span></dt> <dd><p> Use GSS-TSIG to sign the updated. This is equivalent to specifying <code class="option">-g</code> on the commandline. - </p></dd> + </p></dd> <dt><span class="term"> - <span><strong class="command">oldgsstsig</strong></span> - </span></dt> + <span><strong class="command">oldgsstsig</strong></span> + </span></dt> <dd><p> Use the Windows 2000 version of GSS-TSIG to sign the updated. This is equivalent to specifying <code class="option">-o</code> on the commandline. - </p></dd> + </p></dd> <dt><span class="term"> - <span><strong class="command">realm</strong></span> - {[<span class="optional">realm_name</span>]} - </span></dt> + <span><strong class="command">realm</strong></span> + {[<span class="optional">realm_name</span>]} + </span></dt> <dd><p> When using GSS-TSIG use <em class="parameter"><code>realm_name</code></em> rather than the default realm in <code class="filename">krb5.conf</code>. If no realm is specified the saved realm is cleared. - </p></dd> + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">prereq</span>] nxdomain</strong></span> - {domain-name} - </span></dt> + <span><strong class="command">[<span class="optional">prereq</span>] nxdomain</strong></span> + {domain-name} + </span></dt> <dd><p> - Requires that no resource record of any type exists with name - <em class="parameter"><code>domain-name</code></em>. - </p></dd> + Requires that no resource record of any type exists with name + <em class="parameter"><code>domain-name</code></em>. + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">prereq</span>] yxdomain</strong></span> - {domain-name} - </span></dt> -<dd><p> - Requires that - <em class="parameter"><code>domain-name</code></em> - exists (has as at least one resource record, of any type). - </p></dd> + <span><strong class="command">[<span class="optional">prereq</span>] yxdomain</strong></span> + {domain-name} + </span></dt> +<dd><p> + Requires that + <em class="parameter"><code>domain-name</code></em> + exists (has as at least one resource record, of any type). + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">prereq</span>] nxrrset</strong></span> - {domain-name} - [class] - {type} - </span></dt> -<dd><p> - Requires that no resource record exists of the specified - <em class="parameter"><code>type</code></em>, - <em class="parameter"><code>class</code></em> - and - <em class="parameter"><code>domain-name</code></em>. - If - <em class="parameter"><code>class</code></em> - is omitted, IN (internet) is assumed. - </p></dd> + <span><strong class="command">[<span class="optional">prereq</span>] nxrrset</strong></span> + {domain-name} + [class] + {type} + </span></dt> +<dd><p> + Requires that no resource record exists of the specified + <em class="parameter"><code>type</code></em>, + <em class="parameter"><code>class</code></em> + and + <em class="parameter"><code>domain-name</code></em>. + If + <em class="parameter"><code>class</code></em> + is omitted, IN (internet) is assumed. + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">prereq</span>] yxrrset</strong></span> - {domain-name} - [class] - {type} - </span></dt> -<dd><p> - This requires that a resource record of the specified - <em class="parameter"><code>type</code></em>, - <em class="parameter"><code>class</code></em> - and - <em class="parameter"><code>domain-name</code></em> - must exist. - If - <em class="parameter"><code>class</code></em> - is omitted, IN (internet) is assumed. - </p></dd> + <span><strong class="command">[<span class="optional">prereq</span>] yxrrset</strong></span> + {domain-name} + [class] + {type} + </span></dt> +<dd><p> + This requires that a resource record of the specified + <em class="parameter"><code>type</code></em>, + <em class="parameter"><code>class</code></em> + and + <em class="parameter"><code>domain-name</code></em> + must exist. + If + <em class="parameter"><code>class</code></em> + is omitted, IN (internet) is assumed. + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">prereq</span>] yxrrset</strong></span> - {domain-name} - [class] - {type} - {data...} - </span></dt> -<dd><p> - The - <em class="parameter"><code>data</code></em> - from each set of prerequisites of this form - sharing a common - <em class="parameter"><code>type</code></em>, - <em class="parameter"><code>class</code></em>, - and - <em class="parameter"><code>domain-name</code></em> - are combined to form a set of RRs. This set of RRs must - exactly match the set of RRs existing in the zone at the - given - <em class="parameter"><code>type</code></em>, - <em class="parameter"><code>class</code></em>, - and - <em class="parameter"><code>domain-name</code></em>. - The - <em class="parameter"><code>data</code></em> - are written in the standard text representation of the resource - record's - RDATA. - </p></dd> + <span><strong class="command">[<span class="optional">prereq</span>] yxrrset</strong></span> + {domain-name} + [class] + {type} + {data...} + </span></dt> +<dd><p> + The + <em class="parameter"><code>data</code></em> + from each set of prerequisites of this form + sharing a common + <em class="parameter"><code>type</code></em>, + <em class="parameter"><code>class</code></em>, + and + <em class="parameter"><code>domain-name</code></em> + are combined to form a set of RRs. This set of RRs must + exactly match the set of RRs existing in the zone at the + given + <em class="parameter"><code>type</code></em>, + <em class="parameter"><code>class</code></em>, + and + <em class="parameter"><code>domain-name</code></em>. + The + <em class="parameter"><code>data</code></em> + are written in the standard text representation of the resource + record's + RDATA. + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">update</span>] del[<span class="optional">ete</span>]</strong></span> - {domain-name} - [ttl] - [class] - [type [data...]] - </span></dt> -<dd><p> - Deletes any resource records named - <em class="parameter"><code>domain-name</code></em>. - If - <em class="parameter"><code>type</code></em> - and - <em class="parameter"><code>data</code></em> - is provided, only matching resource records will be removed. - The internet class is assumed if - <em class="parameter"><code>class</code></em> - is not supplied. The - <em class="parameter"><code>ttl</code></em> - is ignored, and is only allowed for compatibility. - </p></dd> + <span><strong class="command">[<span class="optional">update</span>] del[<span class="optional">ete</span>]</strong></span> + {domain-name} + [ttl] + [class] + [type [data...]] + </span></dt> +<dd><p> + Deletes any resource records named + <em class="parameter"><code>domain-name</code></em>. + If + <em class="parameter"><code>type</code></em> + and + <em class="parameter"><code>data</code></em> + is provided, only matching resource records will be removed. + The internet class is assumed if + <em class="parameter"><code>class</code></em> + is not supplied. The + <em class="parameter"><code>ttl</code></em> + is ignored, and is only allowed for compatibility. + </p></dd> <dt><span class="term"> - <span><strong class="command">[<span class="optional">update</span>] add</strong></span> - {domain-name} - {ttl} - [class] - {type} - {data...} - </span></dt> -<dd><p> - Adds a new resource record with the specified - <em class="parameter"><code>ttl</code></em>, - <em class="parameter"><code>class</code></em> - and - <em class="parameter"><code>data</code></em>. - </p></dd> + <span><strong class="command">[<span class="optional">update</span>] add</strong></span> + {domain-name} + {ttl} + [class] + {type} + {data...} + </span></dt> +<dd><p> + Adds a new resource record with the specified + <em class="parameter"><code>ttl</code></em>, + <em class="parameter"><code>class</code></em> + and + <em class="parameter"><code>data</code></em>. + </p></dd> <dt><span class="term"> - <span><strong class="command">show</strong></span> - </span></dt> + <span><strong class="command">show</strong></span> + </span></dt> <dd><p> - Displays the current message, containing all of the - prerequisites and - updates specified since the last send. - </p></dd> + Displays the current message, containing all of the + prerequisites and + updates specified since the last send. + </p></dd> <dt><span class="term"> - <span><strong class="command">send</strong></span> - </span></dt> + <span><strong class="command">send</strong></span> + </span></dt> <dd><p> - Sends the current message. This is equivalent to entering a - blank line. - </p></dd> + Sends the current message. This is equivalent to entering a + blank line. + </p></dd> <dt><span class="term"> - <span><strong class="command">answer</strong></span> - </span></dt> + <span><strong class="command">answer</strong></span> + </span></dt> <dd><p> - Displays the answer. - </p></dd> + Displays the answer. + </p></dd> <dt><span class="term"> - <span><strong class="command">debug</strong></span> - </span></dt> + <span><strong class="command">debug</strong></span> + </span></dt> <dd><p> - Turn on debugging. - </p></dd> + Turn on debugging. + </p></dd> <dt><span class="term"> - <span><strong class="command">version</strong></span> - </span></dt> + <span><strong class="command">version</strong></span> + </span></dt> <dd><p> - Print version number. - </p></dd> + Print version number. + </p></dd> <dt><span class="term"> - <span><strong class="command">help</strong></span> - </span></dt> + <span><strong class="command">help</strong></span> + </span></dt> <dd><p> - Print a list of commands. - </p></dd> + Print a list of commands. + </p></dd> </dl></div> <p> </p> @@ -522,7 +520,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2681225"></a><h2>EXAMPLES</h2> +<a name="id2683108"></a><h2>EXAMPLES</h2> <p> The examples below show how <span><strong class="command">nsupdate</strong></span> @@ -576,30 +574,30 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2681275"></a><h2>FILES</h2> +<a name="id2683226"></a><h2>FILES</h2> <div class="variablelist"><dl> <dt><span class="term"><code class="constant">/etc/resolv.conf</code></span></dt> <dd><p> - used to identify default name server - </p></dd> + used to identify default name server + </p></dd> <dt><span class="term"><code class="constant">/var/run/named/session.key</code></span></dt> <dd><p> - sets the default TSIG key for use in local-only mode - </p></dd> + sets the default TSIG key for use in local-only mode + </p></dd> <dt><span class="term"><code class="constant">K{name}.+157.+{random}.key</code></span></dt> <dd><p> - base-64 encoding of HMAC-MD5 key created by - <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>. - </p></dd> + base-64 encoding of HMAC-MD5 key created by + <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>. + </p></dd> <dt><span class="term"><code class="constant">K{name}.+157.+{random}.private</code></span></dt> <dd><p> - base-64 encoding of HMAC-MD5 key created by - <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>. - </p></dd> + base-64 encoding of HMAC-MD5 key created by + <span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>. + </p></dd> </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2681427"></a><h2>SEE ALSO</h2> +<a name="id2683313"></a><h2>SEE ALSO</h2> <p> <em class="citetitle">RFC 2136</em>, <em class="citetitle">RFC 3007</em>, @@ -614,7 +612,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2681484"></a><h2>BUGS</h2> +<a name="id2683370"></a><h2>BUGS</h2> <p> The TSIG key is redundantly stored in two separate files. This is a consequence of nsupdate using the DST library @@ -642,6 +640,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.rndc-confgen.html b/doc/arm/man.rndc-confgen.html index 661608b6f932..805dddc2ee20 100644 --- a/doc/arm/man.rndc-confgen.html +++ b/doc/arm/man.rndc-confgen.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">rndc-confgen</code> [<code class="option">-a</code>] [<code class="option">-b <em class="replaceable"><code>keysize</code></em></code>] [<code class="option">-c <em class="replaceable"><code>keyfile</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>keyname</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomfile</code></em></code>] [<code class="option">-s <em class="replaceable"><code>address</code></em></code>] [<code class="option">-t <em class="replaceable"><code>chrootdir</code></em></code>] [<code class="option">-u <em class="replaceable"><code>user</code></em></code>]</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2654753"></a><h2>DESCRIPTION</h2> +<a name="id2651864"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">rndc-confgen</strong></span> generates configuration files for <span><strong class="command">rndc</strong></span>. It can be used as a @@ -66,7 +66,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2654819"></a><h2>OPTIONS</h2> +<a name="id2651930"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-a</span></dt> <dd> @@ -173,7 +173,7 @@ </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2657526"></a><h2>EXAMPLES</h2> +<a name="id2657232"></a><h2>EXAMPLES</h2> <p> To allow <span><strong class="command">rndc</strong></span> to be used with no manual configuration, run @@ -190,7 +190,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2659289"></a><h2>SEE ALSO</h2> +<a name="id2658995"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">rndc</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>, <span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>, @@ -198,7 +198,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2660215"></a><h2>AUTHOR</h2> +<a name="id2659033"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -222,6 +222,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.rndc.conf.html b/doc/arm/man.rndc.conf.html index 3ac30c6e397f..9df9d65346c2 100644 --- a/doc/arm/man.rndc.conf.html +++ b/doc/arm/man.rndc.conf.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">rndc.conf</code> </p></div> </div> <div class="refsect1" lang="en"> -<a name="id2650712"></a><h2>DESCRIPTION</h2> +<a name="id2621677"></a><h2>DESCRIPTION</h2> <p><code class="filename">rndc.conf</code> is the configuration file for <span><strong class="command">rndc</strong></span>, the BIND 9 name server control utility. This file has a similar structure and syntax to @@ -135,7 +135,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2651089"></a><h2>EXAMPLE</h2> +<a name="id2650862"></a><h2>EXAMPLE</h2> <pre class="programlisting"> options { default-server localhost; @@ -209,7 +209,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2651210"></a><h2>NAME SERVER CONFIGURATION</h2> +<a name="id2650984"></a><h2>NAME SERVER CONFIGURATION</h2> <p> The name server must be configured to accept rndc connections and to recognize the key specified in the <code class="filename">rndc.conf</code> @@ -219,7 +219,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2651236"></a><h2>SEE ALSO</h2> +<a name="id2651692"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">rndc</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">rndc-confgen</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">mmencode</span>(1)</span>, @@ -227,7 +227,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2651274"></a><h2>AUTHOR</h2> +<a name="id2651731"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -251,6 +251,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/man.rndc.html b/doc/arm/man.rndc.html index 3301abe63819..b5698b50580e 100644 --- a/doc/arm/man.rndc.html +++ b/doc/arm/man.rndc.html @@ -50,7 +50,7 @@ <div class="cmdsynopsis"><p><code class="command">rndc</code> [<code class="option">-b <em class="replaceable"><code>source-address</code></em></code>] [<code class="option">-c <em class="replaceable"><code>config-file</code></em></code>] [<code class="option">-k <em class="replaceable"><code>key-file</code></em></code>] [<code class="option">-s <em class="replaceable"><code>server</code></em></code>] [<code class="option">-p <em class="replaceable"><code>port</code></em></code>] [<code class="option">-V</code>] [<code class="option">-y <em class="replaceable"><code>key_id</code></em></code>] {command}</p></div> </div> <div class="refsect1" lang="en"> -<a name="id2644881"></a><h2>DESCRIPTION</h2> +<a name="id2645340"></a><h2>DESCRIPTION</h2> <p><span><strong class="command">rndc</strong></span> controls the operation of a name server. It supersedes the <span><strong class="command">ndc</strong></span> utility @@ -79,73 +79,73 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2644931"></a><h2>OPTIONS</h2> +<a name="id2645390"></a><h2>OPTIONS</h2> <div class="variablelist"><dl> <dt><span class="term">-b <em class="replaceable"><code>source-address</code></em></span></dt> <dd><p> - Use <em class="replaceable"><code>source-address</code></em> - as the source address for the connection to the server. - Multiple instances are permitted to allow setting of both - the IPv4 and IPv6 source addresses. - </p></dd> + Use <em class="replaceable"><code>source-address</code></em> + as the source address for the connection to the server. + Multiple instances are permitted to allow setting of both + the IPv4 and IPv6 source addresses. + </p></dd> <dt><span class="term">-c <em class="replaceable"><code>config-file</code></em></span></dt> <dd><p> - Use <em class="replaceable"><code>config-file</code></em> - as the configuration file instead of the default, - <code class="filename">/etc/rndc.conf</code>. - </p></dd> + Use <em class="replaceable"><code>config-file</code></em> + as the configuration file instead of the default, + <code class="filename">/etc/rndc.conf</code>. + </p></dd> <dt><span class="term">-k <em class="replaceable"><code>key-file</code></em></span></dt> <dd><p> - Use <em class="replaceable"><code>key-file</code></em> - as the key file instead of the default, - <code class="filename">/etc/rndc.key</code>. The key in - <code class="filename">/etc/rndc.key</code> will be used to - authenticate - commands sent to the server if the <em class="replaceable"><code>config-file</code></em> - does not exist. - </p></dd> + Use <em class="replaceable"><code>key-file</code></em> + as the key file instead of the default, + <code class="filename">/etc/rndc.key</code>. The key in + <code class="filename">/etc/rndc.key</code> will be used to + authenticate + commands sent to the server if the <em class="replaceable"><code>config-file</code></em> + does not exist. + </p></dd> <dt><span class="term">-s <em class="replaceable"><code>server</code></em></span></dt> <dd><p><em class="replaceable"><code>server</code></em> is - the name or address of the server which matches a - server statement in the configuration file for - <span><strong class="command">rndc</strong></span>. If no server is supplied on the - command line, the host named by the default-server clause - in the options statement of the <span><strong class="command">rndc</strong></span> + the name or address of the server which matches a + server statement in the configuration file for + <span><strong class="command">rndc</strong></span>. If no server is supplied on the + command line, the host named by the default-server clause + in the options statement of the <span><strong class="command">rndc</strong></span> configuration file will be used. - </p></dd> + </p></dd> <dt><span class="term">-p <em class="replaceable"><code>port</code></em></span></dt> <dd><p> - Send commands to TCP port - <em class="replaceable"><code>port</code></em> - instead - of BIND 9's default control channel port, 953. - </p></dd> + Send commands to TCP port + <em class="replaceable"><code>port</code></em> + instead + of BIND 9's default control channel port, 953. + </p></dd> <dt><span class="term">-V</span></dt> <dd><p> - Enable verbose logging. - </p></dd> + Enable verbose logging. + </p></dd> <dt><span class="term">-y <em class="replaceable"><code>key_id</code></em></span></dt> <dd><p> - Use the key <em class="replaceable"><code>key_id</code></em> - from the configuration file. - <em class="replaceable"><code>key_id</code></em> - must be - known by named with the same algorithm and secret string - in order for control message validation to succeed. - If no <em class="replaceable"><code>key_id</code></em> - is specified, <span><strong class="command">rndc</strong></span> will first look - for a key clause in the server statement of the server - being used, or if no server statement is present for that - host, then the default-key clause of the options statement. - Note that the configuration file contains shared secrets - which are used to send authenticated control commands - to name servers. It should therefore not have general read - or write access. - </p></dd> + Use the key <em class="replaceable"><code>key_id</code></em> + from the configuration file. + <em class="replaceable"><code>key_id</code></em> + must be + known by <span><strong class="command">named</strong></span> with the same algorithm and secret string + in order for control message validation to succeed. + If no <em class="replaceable"><code>key_id</code></em> + is specified, <span><strong class="command">rndc</strong></span> will first look + for a key clause in the server statement of the server + being used, or if no server statement is present for that + host, then the default-key clause of the options statement. + Note that the configuration file contains shared secrets + which are used to send authenticated control commands + to name servers. It should therefore not have general read + or write access. + </p></dd> </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2648690"></a><h2>COMMANDS</h2> +<a name="id2650043"></a><h2>COMMANDS</h2> <p> A list of commands supported by <span><strong class="command">rndc</strong></span> can be seen by running <span><strong class="command">rndc</strong></span> without arguments. @@ -154,351 +154,396 @@ Currently supported commands are: </p> <div class="variablelist"><dl> -<dt><span class="term"><strong class="userinput"><code>reload</code></strong></span></dt> +<dt><span class="term"><strong class="userinput"><code>addzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] <em class="replaceable"><code>configuration</code></em> </code></strong></span></dt> +<dd> +<p> + Add a zone while the server is running. This + command requires the + <span><strong class="command">allow-new-zones</strong></span> option to be set + to <strong class="userinput"><code>yes</code></strong>. The + <em class="replaceable"><code>configuration</code></em> string + specified on the command line is the zone + configuration text that would ordinarily be + placed in <code class="filename">named.conf</code>. + </p> +<p> + The configuration is saved in a file called + <code class="filename"><em class="replaceable"><code>hash</code></em>.nzf</code>, + where <em class="replaceable"><code>hash</code></em> is a + cryptographic hash generated from the name of + the view. When <span><strong class="command">named</strong></span> is + restarted, the file will be loaded into the view + configuration, so that zones that were added + can persist after a restart. + </p> +<p> + This sample <span><strong class="command">addzone</strong></span> command + would add the zone <code class="literal">example.com</code> + to the default view: + </p> +<p> +<code class="prompt">$ </code><strong class="userinput"><code>rndc addzone example.com '{ type master; file "example.com.db"; };'</code></strong> + </p> +<p> + (Note the brackets and semi-colon around the zone + configuration text.) + </p> +<p> + See also <span><strong class="command">rndc delzone</strong></span>. + </p> +</dd> +<dt><span class="term"><strong class="userinput"><code>delzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt> +<dd> +<p> + Delete a zone while the server is running. + Only zones that were originally added via + <span><strong class="command">rndc addzone</strong></span> can be deleted + in this manner. + </p> +<p> + See also <span><strong class="command">rndc addzone</strong></span> + </p> +</dd> +<dt><span class="term"><strong class="userinput"><code>dumpdb [<span class="optional">-all|-cache|-zone|-adb|-bad</span>] [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt> <dd><p> - Reload configuration file and zones. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>reload <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> + Dump the server's caches (default) and/or zones to + the + dump file for the specified views. If no view is + specified, all + views are dumped. + (See the <span><strong class="command">dump-file</strong></span> option in + the BIND 9 Administrator Reference Manual.) + </p></dd> +<dt><span class="term"><strong class="userinput"><code>flush</code></strong></span></dt> <dd><p> - Reload the given zone. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>refresh <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> + Flushes the server's cache. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>flushname</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt> <dd><p> - Schedule zone maintenance for the given zone. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>retransfer <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> + Flushes the given name from the view's DNS cache + and, if applicable, from the view's nameserver address + database or bad-server cache. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>flushtree</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt> +<dd><p> + Flushes the given name, and all of its subdomains, + from the view's DNS cache. Note that this does + <span class="emphasis"><em>not</em></span> affect he server's address + database or bad-server cache. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>freeze [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt> <dd> <p> - Retransfer the given slave zone from the master server. - </p> + Suspend updates to a dynamic zone. If no zone is + specified, then all zones are suspended. This allows + manual edits to be made to a zone normally updated by + dynamic update. It also causes changes in the + journal file to be synced into the master file. + All dynamic update attempts will be refused while + the zone is frozen. + </p> <p> - If the zone is configured to use - <span><strong class="command">inline-signing</strong></span>, the signed - version of the zone is discarded; after the - retransfer of the unsigned version is complete, the - signed version will be regenerated with all new - signatures. - </p> + See also <span><strong class="command">rndc thaw</strong></span>. + </p> </dd> -<dt><span class="term"><strong class="userinput"><code>sign <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> +<dt><span class="term"><strong class="userinput"><code>halt [<span class="optional">-p</span>]</code></strong></span></dt> <dd> <p> - Fetch all DNSSEC keys for the given zone - from the key directory (see the - <span><strong class="command">key-directory</strong></span> option in - the BIND 9 Administrator Reference Manual). If they are within - their publication period, merge them into the - zone's DNSKEY RRset. If the DNSKEY RRset - is changed, then the zone is automatically - re-signed with the new key set. - </p> -<p> - This command requires that the - <span><strong class="command">auto-dnssec</strong></span> zone option be set - to <code class="literal">allow</code> or - <code class="literal">maintain</code>, - and also requires the zone to be configured to - allow dynamic DNS. - (See "Dynamic Update Policies" in the Administrator - Reference Manual for more details.) - </p> + Stop the server immediately. Recent changes + made through dynamic update or IXFR are not saved to + the master files, but will be rolled forward from the + journal files when the server is restarted. + If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned. + This allows an external process to determine when <span><strong class="command">named</strong></span> + had completed halting. + </p> +<p> + See also <span><strong class="command">rndc stop</strong></span>. + </p> </dd> <dt><span class="term"><strong class="userinput"><code>loadkeys <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> <dd> <p> - Fetch all DNSSEC keys for the given zone - from the key directory. If they are within - their publication period, merge them into the - zone's DNSKEY RRset. Unlike <span><strong class="command">rndc - sign</strong></span>, however, the zone is not - immediately re-signed by the new keys, but is - allowed to incrementally re-sign over time. - </p> -<p> - This command requires that the - <span><strong class="command">auto-dnssec</strong></span> zone option - be set to <code class="literal">maintain</code>, - and also requires the zone to be configured to - allow dynamic DNS. - (See "Dynamic Update Policies" in the Administrator - Reference Manual for more details.) - </p> + Fetch all DNSSEC keys for the given zone + from the key directory. If they are within + their publication period, merge them into the + zone's DNSKEY RRset. Unlike <span><strong class="command">rndc + sign</strong></span>, however, the zone is not + immediately re-signed by the new keys, but is + allowed to incrementally re-sign over time. + </p> +<p> + This command requires that the + <span><strong class="command">auto-dnssec</strong></span> zone option + be set to <code class="literal">maintain</code>, + and also requires the zone to be configured to + allow dynamic DNS. + (See "Dynamic Update Policies" in the Administrator + Reference Manual for more details.) + </p> </dd> -<dt><span class="term"><strong class="userinput"><code>freeze [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt> -<dd><p> - Suspend updates to a dynamic zone. If no zone is - specified, then all zones are suspended. This allows - manual edits to be made to a zone normally updated by - dynamic update. It also causes changes in the - journal file to be synced into the master file. - All dynamic update attempts will be refused while - the zone is frozen. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>thaw [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt> -<dd><p> - Enable updates to a frozen dynamic zone. If no - zone is specified, then all frozen zones are - enabled. This causes the server to reload the zone - from disk, and re-enables dynamic updates after the - load has completed. After a zone is thawed, - dynamic updates will no longer be refused. If - the zone has changed and the - <span><strong class="command">ixfr-from-differences</strong></span> option is - in use, then the journal file will be updated to - reflect changes in the zone. Otherwise, if the - zone has changed, any existing journal file will be - removed. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>sync [<span class="optional">-clean</span>] [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt> -<dd><p> - Sync changes in the journal file for a dynamic zone - to the master file. If the "-clean" option is - specified, the journal file is also removed. If - no zone is specified, then all zones are synced. - </p></dd> <dt><span class="term"><strong class="userinput"><code>notify <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> <dd><p> - Resend NOTIFY messages for the zone. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>reconfig</code></strong></span></dt> -<dd><p> - Reload the configuration file and load new zones, - but do not reload existing zone files even if they - have changed. - This is faster than a full <span><strong class="command">reload</strong></span> when there - is a large number of zones because it avoids the need - to examine the - modification times of the zones files. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>stats</code></strong></span></dt> -<dd><p> - Write server statistics to the statistics file. - </p></dd> + Resend NOTIFY messages for the zone. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>notrace</code></strong></span></dt> +<dd> +<p> + Sets the server's debugging level to 0. + </p> +<p> + See also <span><strong class="command">rndc trace</strong></span>. + </p> +</dd> <dt><span class="term"><strong class="userinput"><code>querylog</code></strong> [<span class="optional">on|off</span>] </span></dt> <dd> <p> - Enable or disable query logging. (For backward - compatibility, this command can also be used without - an argument to toggle query logging on and off.) - </p> -<p> - Query logging can also be enabled - by explicitly directing the <span><strong class="command">queries</strong></span> - <span><strong class="command">category</strong></span> to a - <span><strong class="command">channel</strong></span> in the - <span><strong class="command">logging</strong></span> section of - <code class="filename">named.conf</code> or by specifying - <span><strong class="command">querylog yes;</strong></span> in the - <span><strong class="command">options</strong></span> section of - <code class="filename">named.conf</code>. - </p> + Enable or disable query logging. (For backward + compatibility, this command can also be used without + an argument to toggle query logging on and off.) + </p> +<p> + Query logging can also be enabled + by explicitly directing the <span><strong class="command">queries</strong></span> + <span><strong class="command">category</strong></span> to a + <span><strong class="command">channel</strong></span> in the + <span><strong class="command">logging</strong></span> section of + <code class="filename">named.conf</code> or by specifying + <span><strong class="command">querylog yes;</strong></span> in the + <span><strong class="command">options</strong></span> section of + <code class="filename">named.conf</code>. + </p> </dd> -<dt><span class="term"><strong class="userinput"><code>dumpdb [<span class="optional">-all|-cache|-zone</span>] [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt> -<dd><p> - Dump the server's caches (default) and/or zones to - the - dump file for the specified views. If no view is - specified, all - views are dumped. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>secroots [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt> -<dd><p> - Dump the server's security roots to the secroots - file for the specified views. If no view is - specified, security roots for all - views are dumped. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>stop [<span class="optional">-p</span>]</code></strong></span></dt> -<dd><p> - Stop the server, making sure any recent changes - made through dynamic update or IXFR are first saved to - the master files of the updated zones. - If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned. - This allows an external process to determine when <span><strong class="command">named</strong></span> - had completed stopping. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>halt [<span class="optional">-p</span>]</code></strong></span></dt> +<dt><span class="term"><strong class="userinput"><code>reconfig</code></strong></span></dt> <dd><p> - Stop the server immediately. Recent changes - made through dynamic update or IXFR are not saved to - the master files, but will be rolled forward from the - journal files when the server is restarted. - If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned. - This allows an external process to determine when <span><strong class="command">named</strong></span> - had completed halting. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>trace</code></strong></span></dt> + Reload the configuration file and load new zones, + but do not reload existing zone files even if they + have changed. + This is faster than a full <span><strong class="command">reload</strong></span> when there + is a large number of zones because it avoids the need + to examine the + modification times of the zones files. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>recursing</code></strong></span></dt> <dd><p> - Increment the servers debugging level by one. + Dump the list of queries <span><strong class="command">named</strong></span> is currently + recursing on, and the list of domains to which iterative + queries are currently being sent. (The second list includes + the number of fetches currently active for the given domain, + and how many have been passed or dropped because of the + <code class="option">fetches-per-zone</code> option.) </p></dd> -<dt><span class="term"><strong class="userinput"><code>trace <em class="replaceable"><code>level</code></em></code></strong></span></dt> +<dt><span class="term"><strong class="userinput"><code>refresh <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> <dd><p> - Sets the server's debugging level to an explicit - value. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>notrace</code></strong></span></dt> + Schedule zone maintenance for the given zone. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>reload</code></strong></span></dt> <dd><p> - Sets the server's debugging level to 0. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>flush</code></strong></span></dt> + Reload configuration file and zones. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>reload <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> <dd><p> - Flushes the server's cache. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>flushname</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt> + Reload the given zone. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>retransfer <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> +<dd> +<p> + Retransfer the given slave zone from the master server. + </p> +<p> + If the zone is configured to use + <span><strong class="command">inline-signing</strong></span>, the signed + version of the zone is discarded; after the + retransfer of the unsigned version is complete, the + signed version will be regenerated with all new + signatures. + </p> +</dd> +<dt><span class="term"><strong class="userinput"><code>secroots [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>]</code></strong></span></dt> <dd><p> - Flushes the given name from the server's DNS cache - and, if applicable, from the server's nameserver address - database or bad-server cache. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>flushtree</code></strong> <em class="replaceable"><code>name</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>] </span></dt> + Dump the server's security roots to the secroots + file for the specified views. If no view is + specified, security roots for all + views are dumped. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>sign <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</code></strong></span></dt> +<dd> +<p> + Fetch all DNSSEC keys for the given zone + from the key directory (see the + <span><strong class="command">key-directory</strong></span> option in + the BIND 9 Administrator Reference Manual). If they are within + their publication period, merge them into the + zone's DNSKEY RRset. If the DNSKEY RRset + is changed, then the zone is automatically + re-signed with the new key set. + </p> +<p> + This command requires that the + <span><strong class="command">auto-dnssec</strong></span> zone option be set + to <code class="literal">allow</code> or + <code class="literal">maintain</code>, + and also requires the zone to be configured to + allow dynamic DNS. + (See "Dynamic Update Policies" in the Administrator + Reference Manual for more details.) + </p> +<p> + See also <span><strong class="command">rndc loadkeys</strong></span>. + </p> +</dd> +<dt><span class="term"><strong class="userinput"><code>signing [<span class="optional">( -list | -clear <em class="replaceable"><code>keyid/algorithm</code></em> | -clear <code class="literal">all</code> | -nsec3param ( <em class="replaceable"><code>parameters</code></em> | <code class="literal">none</code> ) ) </span>] <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt> +<dd> +<p> + List, edit, or remove the DNSSEC signing state records + for the specified zone. The status of ongoing DNSSEC + operations (such as signing or generating + NSEC3 chains) is stored in the zone in the form + of DNS resource records of type + <span><strong class="command">sig-signing-type</strong></span>. + <span><strong class="command">rndc signing -list</strong></span> converts + these records into a human-readable form, + indicating which keys are currently signing + or have finished signing the zone, and which NSEC3 + chains are being created or removed. + </p> +<p> + <span><strong class="command">rndc signing -clear</strong></span> can remove + a single key (specified in the same format that + <span><strong class="command">rndc signing -list</strong></span> uses to + display it), or all keys. In either case, only + completed keys are removed; any record indicating + that a key has not yet finished signing the zone + will be retained. + </p> +<p> + <span><strong class="command">rndc signing -nsec3param</strong></span> sets + the NSEC3 parameters for a zone. This is the + only supported mechanism for using NSEC3 with + <span><strong class="command">inline-signing</strong></span> zones. + Parameters are specified in the same format as + an NSEC3PARAM resource record: hash algorithm, + flags, iterations, and salt, in that order. + </p> +<p> + Currently, the only defined value for hash algorithm + is <code class="literal">1</code>, representing SHA-1. + The <code class="option">flags</code> may be set to + <code class="literal">0</code> or <code class="literal">1</code>, + depending on whether you wish to set the opt-out + bit in the NSEC3 chain. <code class="option">iterations</code> + defines the number of additional times to apply + the algorithm when generating an NSEC3 hash. The + <code class="option">salt</code> is a string of data expressed + in hexadecimal, or a hyphen (`-') if no salt is + to be used. + </p> +<p> + So, for example, to create an NSEC3 chain using + the SHA-1 hash algorithm, no opt-out flag, + 10 iterations, and a salt value of "FFFF", use: + <span><strong class="command">rndc signing -nsec3param 1 0 10 FFFF <em class="replaceable"><code>zone</code></em></strong></span>. + To set the opt-out flag, 15 iterations, and no + salt, use: + <span><strong class="command">rndc signing -nsec3param 1 1 15 - <em class="replaceable"><code>zone</code></em></strong></span>. + </p> +<p> + <span><strong class="command">rndc signing -nsec3param none</strong></span> + removes an existing NSEC3 chain and replaces it + with NSEC. + </p> +</dd> +<dt><span class="term"><strong class="userinput"><code>stats</code></strong></span></dt> <dd><p> - Flushes the given name, and all of its subdomains, - from the server's DNS cache. Note that this does - <span class="emphasis"><em>not</em></span> affect he server's address - database or bad-server cache. - </p></dd> + Write server statistics to the statistics file. + (See the <span><strong class="command">statistics-file</strong></span> option in + the BIND 9 Administrator Reference Manual.) + </p></dd> <dt><span class="term"><strong class="userinput"><code>status</code></strong></span></dt> <dd><p> - Display status of the server. - Note that the number of zones includes the internal <span><strong class="command">bind/CH</strong></span> zone - and the default <span><strong class="command">./IN</strong></span> - hint zone if there is not an - explicit root zone configured. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>recursing</code></strong></span></dt> -<dd><p> - Dump the list of queries <span><strong class="command">named</strong></span> is currently recursing - on. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>validation ( on | off | check ) [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>] </code></strong></span></dt> -<dd><p> - Enable, disable, or check the current status of - DNSSEC validation. - Note <span><strong class="command">dnssec-enable</strong></span> also needs to be - set to <strong class="userinput"><code>yes</code></strong> or - <strong class="userinput"><code>auto</code></strong> to be effective. - It defaults to enabled. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>tsig-list</code></strong></span></dt> -<dd><p> - List the names of all TSIG keys currently configured - for use by <span><strong class="command">named</strong></span> in each view. The - list both statically configured keys and dynamic - TKEY-negotiated keys. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>tsig-delete</code></strong> <em class="replaceable"><code>keyname</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span></dt> -<dd><p> - Delete a given TKEY-negotiated key from the server. - (This does not apply to statically configured TSIG - keys.) - </p></dd> -<dt><span class="term"><strong class="userinput"><code>addzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] <em class="replaceable"><code>configuration</code></em> </code></strong></span></dt> + Display status of the server. + Note that the number of zones includes the internal <span><strong class="command">bind/CH</strong></span> zone + and the default <span><strong class="command">./IN</strong></span> + hint zone if there is not an + explicit root zone configured. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>stop [<span class="optional">-p</span>]</code></strong></span></dt> <dd> <p> - Add a zone while the server is running. This - command requires the - <span><strong class="command">allow-new-zones</strong></span> option to be set - to <strong class="userinput"><code>yes</code></strong>. The - <em class="replaceable"><code>configuration</code></em> string - specified on the command line is the zone - configuration text that would ordinarily be - placed in <code class="filename">named.conf</code>. - </p> -<p> - The configuration is saved in a file called - <code class="filename"><em class="replaceable"><code>hash</code></em>.nzf</code>, - where <em class="replaceable"><code>hash</code></em> is a - cryptographic hash generated from the name of - the view. When <span><strong class="command">named</strong></span> is - restarted, the file will be loaded into the view - configuration, so that zones that were added - can persist after a restart. - </p> -<p> - This sample <span><strong class="command">addzone</strong></span> command - would add the zone <code class="literal">example.com</code> - to the default view: - </p> -<p> -<code class="prompt">$ </code><strong class="userinput"><code>rndc addzone example.com '{ type master; file "example.com.db"; };'</code></strong> - </p> + Stop the server, making sure any recent changes + made through dynamic update or IXFR are first saved to + the master files of the updated zones. + If <code class="option">-p</code> is specified <span><strong class="command">named</strong></span>'s process id is returned. + This allows an external process to determine when <span><strong class="command">named</strong></span> + had completed stopping. + </p> +<p>See also <span><strong class="command">rndc halt</strong></span>.</p> +</dd> +<dt><span class="term"><strong class="userinput"><code>sync [<span class="optional">-clean</span>] [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt> +<dd><p> + Sync changes in the journal file for a dynamic zone + to the master file. If the "-clean" option is + specified, the journal file is also removed. If + no zone is specified, then all zones are synced. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>thaw [<span class="optional"><em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>]</span>]</code></strong></span></dt> +<dd> <p> - (Note the brackets and semi-colon around the zone - configuration text.) - </p> + Enable updates to a frozen dynamic zone. If no + zone is specified, then all frozen zones are + enabled. This causes the server to reload the zone + from disk, and re-enables dynamic updates after the + load has completed. After a zone is thawed, + dynamic updates will no longer be refused. If + the zone has changed and the + <span><strong class="command">ixfr-from-differences</strong></span> option is + in use, then the journal file will be updated to + reflect changes in the zone. Otherwise, if the + zone has changed, any existing journal file will be + removed. + </p> +<p>See also <span><strong class="command">rndc freeze</strong></span>.</p> </dd> -<dt><span class="term"><strong class="userinput"><code>delzone <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt> +<dt><span class="term"><strong class="userinput"><code>trace</code></strong></span></dt> <dd><p> - Delete a zone while the server is running. - Only zones that were originally added via - <span><strong class="command">rndc addzone</strong></span> can be deleted - in this manner. - </p></dd> -<dt><span class="term"><strong class="userinput"><code>signing [<span class="optional">( -list | -clear <em class="replaceable"><code>keyid/algorithm</code></em> | -clear <code class="literal">all</code> | -nsec3param ( <em class="replaceable"><code>parameters</code></em> | <code class="literal">none</code> ) ) </span>] <em class="replaceable"><code>zone</code></em> [<span class="optional"><em class="replaceable"><code>class</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span>] </code></strong></span></dt> + Increment the servers debugging level by one. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>trace <em class="replaceable"><code>level</code></em></code></strong></span></dt> <dd> <p> - List, edit, or remove the DNSSEC signing state records - for the specified zone. The status of ongoing DNSSEC - operations (such as signing or generating - NSEC3 chains) is stored in the zone in the form - of DNS resource records of type - <span><strong class="command">sig-signing-type</strong></span>. - <span><strong class="command">rndc signing -list</strong></span> converts - these records into a human-readable form, - indicating which keys are currently signing - or have finished signing the zone, and which NSEC3 - chains are being created or removed. - </p> -<p> - <span><strong class="command">rndc signing -clear</strong></span> can remove - a single key (specified in the same format that - <span><strong class="command">rndc signing -list</strong></span> uses to - display it), or all keys. In either case, only - completed keys are removed; any record indicating - that a key has not yet finished signing the zone - will be retained. - </p> -<p> - <span><strong class="command">rndc signing -nsec3param</strong></span> sets - the NSEC3 parameters for a zone. This is the - only supported mechanism for using NSEC3 with - <span><strong class="command">inline-signing</strong></span> zones. - Parameters are specified in the same format as - an NSEC3PARAM resource record: hash algorithm, - flags, iterations, and salt, in that order. - </p> -<p> - Currently, the only defined value for hash algorithm - is <code class="literal">1</code>, representing SHA-1. - The <code class="option">flags</code> may be set to - <code class="literal">0</code> or <code class="literal">1</code>, - depending on whether you wish to set the opt-out - bit in the NSEC3 chain. <code class="option">iterations</code> - defines the number of additional times to apply - the algorithm when generating an NSEC3 hash. The - <code class="option">salt</code> is a string of data expressed - in hexadecimal, or a hyphen (`-') if no salt is - to be used. - </p> -<p> - So, for example, to create an NSEC3 chain using - the SHA-1 hash algorithm, no opt-out flag, - 10 iterations, and a salt value of "FFFF", use: - <span><strong class="command">rndc signing -nsec3param 1 0 10 FFFF <em class="replaceable"><code>zone</code></em></strong></span>. - To set the opt-out flag, 15 iterations, and no - salt, use: - <span><strong class="command">rndc signing -nsec3param 1 1 15 - <em class="replaceable"><code>zone</code></em></strong></span>. - </p> -<p> - <span><strong class="command">rndc signing -nsec3param none</strong></span> - removes an existing NSEC3 chain and replaces it - with NSEC. - </p> + Sets the server's debugging level to an explicit + value. + </p> +<p> + See also <span><strong class="command">rndc notrace</strong></span>. + </p> </dd> +<dt><span class="term"><strong class="userinput"><code>tsig-delete</code></strong> <em class="replaceable"><code>keyname</code></em> [<span class="optional"><em class="replaceable"><code>view</code></em></span>]</span></dt> +<dd><p> + Delete a given TKEY-negotiated key from the server. + (This does not apply to statically configured TSIG + keys.) + </p></dd> +<dt><span class="term"><strong class="userinput"><code>tsig-list</code></strong></span></dt> +<dd><p> + List the names of all TSIG keys currently configured + for use by <span><strong class="command">named</strong></span> in each view. The + list both statically configured keys and dynamic + TKEY-negotiated keys. + </p></dd> +<dt><span class="term"><strong class="userinput"><code>validation ( on | off | check ) [<span class="optional"><em class="replaceable"><code>view ...</code></em></span>] </code></strong></span></dt> +<dd><p> + Enable, disable, or check the current status of + DNSSEC validation. + Note <span><strong class="command">dnssec-enable</strong></span> also needs to be + set to <strong class="userinput"><code>yes</code></strong> or + <strong class="userinput"><code>auto</code></strong> to be effective. + It defaults to enabled. + </p></dd> </dl></div> </div> <div class="refsect1" lang="en"> -<a name="id2682631"></a><h2>LIMITATIONS</h2> +<a name="id2684688"></a><h2>LIMITATIONS</h2> <p> There is currently no way to provide the shared secret for a <code class="option">key_id</code> without using the configuration file. @@ -508,7 +553,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2682649"></a><h2>SEE ALSO</h2> +<a name="id2684706"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>, <span class="citerefentry"><span class="refentrytitle">rndc-confgen</span>(8)</span>, <span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>, @@ -518,7 +563,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2682705"></a><h2>AUTHOR</h2> +<a name="id2684761"></a><h2>AUTHOR</h2> <p><span class="corpauthor">Internet Systems Consortium</span> </p> </div> @@ -542,6 +587,6 @@ </tr> </table> </div> -<p style="text-align: center;">BIND 9.9.7-P2 (Extended Support Version)</p> +<p style="text-align: center;">BIND 9.9.8 (Extended Support Version)</p> </body> </html> diff --git a/doc/arm/notes.html b/doc/arm/notes.html index 1a647fe01afa..99166d44ca16 100644 --- a/doc/arm/notes.html +++ b/doc/arm/notes.html @@ -21,18 +21,13 @@ </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="sect1" lang="en"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> -<a name="id2542126"></a>Release Notes for BIND Version 9.9.7-P2</h2></div></div></div> +<a name="id2542126"></a>Release Notes for BIND Version 9.9.8</h2></div></div></div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> <a name="relnotes_intro"></a>Introduction</h3></div></div></div> <p> - This document summarizes changes since BIND 9.9.7. - </p> -<p> - BIND 9.9.7-P2 addresses a security issue described in CVE-2015-5477. - </p> -<p> - BIND 9.9.7-P1 addresses a security issue described in CVE-2015-4620. + This document summarizes changes since the last production release + of BIND on the corresponding major release branch. </p> </div> <div class="sect2" lang="en"> @@ -50,6 +45,21 @@ <div class="titlepage"><div><div><h3 class="title"> <a name="relnotes_security"></a>Security Fixes</h3></div></div></div> <div class="itemizedlist"><ul type="disc"> +<li><p> + An incorrect boundary check in the OPENPGPKEY rdatatype + could trigger an assertion failure. This flaw is disclosed + in CVE-2015-5986. [RT #40286] + </p></li> +<li> +<p> + A buffer accounting error could trigger an assertion failure + when parsing certain malformed DNSSEC keys. + </p> +<p> + This flaw was discovered by Hanno Böck of the Fuzzing + Project, and is disclosed in CVE-2015-5722. [RT #40212] + </p> +</li> <li> <p> A specially crafted query could trigger an assertion failure @@ -57,7 +67,7 @@ </p> <p> This flaw was discovered by Jonathan Foote, and is disclosed - in CVE-2015-5477. [RT #39795] + in CVE-2015-5477. [RT #40046] </p> </li> <li> @@ -76,17 +86,121 @@ <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> <a name="relnotes_features"></a>New Features</h3></div></div></div> -<div class="itemizedlist"><ul type="disc"><li><p>None</p></li></ul></div> +<div class="itemizedlist"><ul type="disc"> +<li> +<p> + New quotas have been added to limit the queries that are + sent by recursive resolvers to authoritative servers + experiencing denial-of-service attacks. When configured, + these options can both reduce the harm done to authoritative + servers and also avoid the resource exhaustion that can be + experienced by recursives when they are being used as a + vehicle for such an attack. + </p> +<p> + NOTE: These options are not available by default; use + <span><strong class="command">configure --enable-fetchlimit</strong></span> to include + them in the build. + </p> +<div class="itemizedlist"><ul type="circle"> +<li><p> + <code class="option">fetches-per-server</code> limits the number of + simultaneous queries that can be sent to any single + authoritative server. The configured value is a starting + point; it is automatically adjusted downward if the server is + partially or completely non-responsive. The algorithm used to + adjust the quota can be configured via the + <code class="option">fetch-quota-params</code> option. + </p></li> +<li><p> + <code class="option">fetches-per-zone</code> limits the number of + simultaneous queries that can be sent for names within a + single domain. (Note: Unlike "fetches-per-server", this + value is not self-tuning.) + </p></li> +</ul></div> +<p> + Statistics counters have also been added to track the number + of queries affected by these quotas. + </p> +</li> +<li><p> + An <span><strong class="command">--enable-querytrace</strong></span> configure switch is + now available to enable very verbose query tracelogging. This + option can only be set at compile time. This option has a + negative performance impact and should be used only for + debugging. + </p></li> +<li><p> + EDNS COOKIE options content is now displayed as + "COOKIE: <hexvalue>". + </p></li> +</ul></div> </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> <a name="relnotes_changes"></a>Feature Changes</h3></div></div></div> -<div class="itemizedlist"><ul type="disc"><li><p>None</p></li></ul></div> +<div class="itemizedlist"><ul type="disc"> +<li><p> + Large inline-signing changes should be less disruptive. + Signature generation is now done incrementally; the number + of signatures to be generated in each quantum is controlled + by "sig-signing-signatures <em class="replaceable"><code>number</code></em>;". + [RT #37927] + </p></li> +<li><p> + Retrieving the local port range from net.ipv4.ip_local_port_range + on Linux is now supported. + </p></li> +<li><p> + Active Directory names of the form gc._msdcs.<forest> are + now accepted as valid hostnames when using the + <code class="option">check-names</code> option. <forest> is still + restricted to letters, digits and hyphens. + </p></li> +<li><p> + Names containing rich text are now accepted as valid + hostnames in PTR records in DNS-SD reverse lookup zones, + as specified in RFC 6763. [RT #37889] + </p></li> +</ul></div> </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> <a name="relnotes_bugs"></a>Bug Fixes</h3></div></div></div> -<div class="itemizedlist"><ul type="disc"><li><p>None</p></li></ul></div> +<div class="itemizedlist"><ul type="disc"> +<li><p> + Asynchronous zone loads were not handled correctly when the + zone load was already in progress; this could trigger a crash + in zt.c. [RT #37573] + </p></li> +<li><p> + A race during shutdown or reconfiguration could + cause an assertion failure in mem.c. [RT #38979] + </p></li> +<li><p> + Some answer formatting options didn't work correctly with + <span><strong class="command">dig +short</strong></span>. [RT #39291] + </p></li> +<li><p> + Malformed records of some types, including NSAP and UNSPEC, + could trigger assertion failures when loading text zone files. + [RT #40274] [RT #40285] + </p></li> +<li><p> + Fixed a possible crash in ratelimiter.c caused by NOTIFY + messages being removed from the wrong rate limiter queue. + [RT #40350] + </p></li> +<li><p> + The default <code class="option">rrset-order</code> of <code class="literal">random</code> + was inconsistently applied. [RT #40456] + </p></li> +<li><p> + BADVERS responses from broken authoritative name servers were + not handled correctly. [RT #40427] + </p></li> +</ul></div> </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> diff --git a/doc/arm/notes.pdf b/doc/arm/notes.pdf Binary files differindex feffd833e7aa..a59a87a8ae99 100644 --- a/doc/arm/notes.pdf +++ b/doc/arm/notes.pdf diff --git a/doc/arm/notes.xml b/doc/arm/notes.xml index 913098e1afe3..79e8ed6d04d8 100644 --- a/doc/arm/notes.xml +++ b/doc/arm/notes.xml @@ -20,13 +20,8 @@ <sect2 id="relnotes_intro"> <title>Introduction</title> <para> - This document summarizes changes since BIND 9.9.7. - </para> - <para> - BIND 9.9.7-P2 addresses a security issue described in CVE-2015-5477. - </para> - <para> - BIND 9.9.7-P1 addresses a security issue described in CVE-2015-4620. + This document summarizes changes since the last production release + of BIND on the corresponding major release branch. </para> </sect2> <sect2 id="relnotes_download"> @@ -45,12 +40,29 @@ <itemizedlist> <listitem> <para> + An incorrect boundary check in the OPENPGPKEY rdatatype + could trigger an assertion failure. This flaw is disclosed + in CVE-2015-5986. [RT #40286] + </para> + </listitem> + <listitem> + <para> + A buffer accounting error could trigger an assertion failure + when parsing certain malformed DNSSEC keys. + </para> + <para> + This flaw was discovered by Hanno B쎶ck of the Fuzzing + Project, and is disclosed in CVE-2015-5722. [RT #40212] + </para> + </listitem> + <listitem> + <para> A specially crafted query could trigger an assertion failure in message.c. </para> <para> This flaw was discovered by Jonathan Foote, and is disclosed - in CVE-2015-5477. [RT #39795] + in CVE-2015-5477. [RT #40046] </para> </listitem> <listitem> @@ -63,14 +75,67 @@ This flaw was discovered by Breno Silveira Soares, and is disclosed in CVE-2015-4620. [RT #39795] </para> - </listitem> + </listitem> </itemizedlist> </sect2> <sect2 id="relnotes_features"> <title>New Features</title> <itemizedlist> <listitem> - <para>None</para> + <para> + New quotas have been added to limit the queries that are + sent by recursive resolvers to authoritative servers + experiencing denial-of-service attacks. When configured, + these options can both reduce the harm done to authoritative + servers and also avoid the resource exhaustion that can be + experienced by recursives when they are being used as a + vehicle for such an attack. + </para> + <para> + NOTE: These options are not available by default; use + <command>configure --enable-fetchlimit</command> to include + them in the build. + </para> + <itemizedlist> + <listitem> + <para> + <option>fetches-per-server</option> limits the number of + simultaneous queries that can be sent to any single + authoritative server. The configured value is a starting + point; it is automatically adjusted downward if the server is + partially or completely non-responsive. The algorithm used to + adjust the quota can be configured via the + <option>fetch-quota-params</option> option. + </para> + </listitem> + <listitem> + <para> + <option>fetches-per-zone</option> limits the number of + simultaneous queries that can be sent for names within a + single domain. (Note: Unlike "fetches-per-server", this + value is not self-tuning.) + </para> + </listitem> + </itemizedlist> + <para> + Statistics counters have also been added to track the number + of queries affected by these quotas. + </para> + </listitem> + <listitem> + <para> + An <command>--enable-querytrace</command> configure switch is + now available to enable very verbose query tracelogging. This + option can only be set at compile time. This option has a + negative performance impact and should be used only for + debugging. + </para> + </listitem> + <listitem> + <para> + EDNS COOKIE options content is now displayed as + "COOKIE: <hexvalue>". + </para> </listitem> </itemizedlist> </sect2> @@ -78,7 +143,34 @@ <title>Feature Changes</title> <itemizedlist> <listitem> - <para>None</para> + <para> + Large inline-signing changes should be less disruptive. + Signature generation is now done incrementally; the number + of signatures to be generated in each quantum is controlled + by "sig-signing-signatures <replaceable>number</replaceable>;". + [RT #37927] + </para> + </listitem> + <listitem> + <para> + Retrieving the local port range from net.ipv4.ip_local_port_range + on Linux is now supported. + </para> + </listitem> + <listitem> + <para> + Active Directory names of the form gc._msdcs.<forest> are + now accepted as valid hostnames when using the + <option>check-names</option> option. <forest> is still + restricted to letters, digits and hyphens. + </para> + </listitem> + <listitem> + <para> + Names containing rich text are now accepted as valid + hostnames in PTR records in DNS-SD reverse lookup zones, + as specified in RFC 6763. [RT #37889] + </para> </listitem> </itemizedlist> </sect2> @@ -86,7 +178,49 @@ <title>Bug Fixes</title> <itemizedlist> <listitem> - <para>None</para> + <para> + Asynchronous zone loads were not handled correctly when the + zone load was already in progress; this could trigger a crash + in zt.c. [RT #37573] + </para> + </listitem> + <listitem> + <para> + A race during shutdown or reconfiguration could + cause an assertion failure in mem.c. [RT #38979] + </para> + </listitem> + <listitem> + <para> + Some answer formatting options didn't work correctly with + <command>dig +short</command>. [RT #39291] + </para> + </listitem> + <listitem> + <para> + Malformed records of some types, including NSAP and UNSPEC, + could trigger assertion failures when loading text zone files. + [RT #40274] [RT #40285] + </para> + </listitem> + <listitem> + <para> + Fixed a possible crash in ratelimiter.c caused by NOTIFY + messages being removed from the wrong rate limiter queue. + [RT #40350] + </para> + </listitem> + <listitem> + <para> + The default <option>rrset-order</option> of <literal>random</literal> + was inconsistently applied. [RT #40456] + </para> + </listitem> + <listitem> + <para> + BADVERS responses from broken authoritative name servers were + not handled correctly. [RT #40427] + </para> </listitem> </itemizedlist> </sect2> diff --git a/doc/misc/rfc-compliance b/doc/misc/rfc-compliance index 4c87c66242bd..18e6e8ba2089 100644 --- a/doc/misc/rfc-compliance +++ b/doc/misc/rfc-compliance @@ -1,4 +1,4 @@ -Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") +Copyright (C) 2004, 2015 Internet Systems Consortium, Inc. ("ISC") Copyright (C) 2001 Internet Software Consortium. See COPYRIGHT in the source root or http://isc.org/copyright.html for terms. @@ -29,20 +29,79 @@ or Best Current Practice (BCP) documents. RFC2181 RFC2230 RFC2308 - RFC2535 [3] [4] RFC2536 - RFC2537 - RFC2538 RFC2539 - RFC2671 - RFC2672 - RFC2673 RFC2782 RFC2915 RFC2930 RFC2931 [5] RFC3007 + RFC3110 + RFC3123 + RFC3225 + RFC3226 + RFC3363 [6] + RFC3490 [7] + RFC3491 (Obsoleted by 5890, 5891) [7] + RFC3493 + RFC3496 + RFC3597 + RFC3645 + RFC4025 + RFC4034 + RFC4035 + RFC4074 + RFC4255 + RFC4294 - Section 5.1 [8] + RFC4343 + RFC4398 + RFC4408 + RFC4431 + RFC4470 [9] + RFC4509 + RFC4635 + RFC4701 + RFC4892 + RFC4955 [10] + RFC5001 + RFC5011 + RFC5155 + RFC5205 + RFC5452 [11] + RFC5702 + RFC5933 [12] + RFC5936 + RFC5952 + RFC5966 + RFC6052 + RFC6147 [13] + RFC6303 + RFC6605 [14] + RFC6672 + RFC6698 + RFC6742 + RFC6840 [15] + RFC6844 + RFC6891 + RFC7043 + RFC7314 + RFC7314 +The following DNS related RFC have been obsoleted + + RFC2535 (Obsoleted by 4034, 4035) [3] [4] + RFC2537 (Obsoleted by 3110) + RFC2538 (Obsoleted by 4398) + RFC2671 (Obsoleted by 6891) + RFC2672 (Obsoleted by 6672) + RFC2673 (Obsoleted by 6891) + RFC3008 (Obsoleted by 4034, 4035) + RFC3152 (Obsoleted by 3596) + RFC3445 (Obsoleted by 4034, 4035) + RFC3655 (Obsoleted by 4034, 4035) + RFC3658 (Obsoleted by 4034, 4035) + RFC3755 (Obsoleted by 4034, 4035) + RFC3757 (Obsoleted by 4034, 4035) [1] Queries to zones that have failed to load return SERVFAIL rather than a non-authoritative response. This is considered a feature. diff --git a/isc-config.sh.in b/isc-config.sh.in index 10df275cab22..04a9e5c6f4ff 100644 --- a/isc-config.sh.in +++ b/isc-config.sh.in @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (C) 2004, 2007, 2012, 2013 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2007, 2012, 2013, 2015 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 @@ -40,6 +40,7 @@ Libraries: dns lwres bind9 + irs EOF exit $1 } @@ -82,7 +83,13 @@ while test $# -gt 0; do --libs) echo_libs=true; ;; - isc) + irs) + libirs=true; + libdns=true; + libisccfg=true; + libisc=true; + ;; + isc) libisc=true; ;; isccc) @@ -131,10 +138,13 @@ if test x"$echo_cflags" = x"true"; then fi if test x"$echo_libs" = x"true"; then if test x"${exec_prefix_set}" = x"true"; then - includes="-L${exec_prefix}/lib" + libs="-L${exec_prefix}/lib" else libs="-L${libdir}" fi + if test x"$libirs" = x"true" ; then + libs="$libs -lirs" + fi if test x"$liblwres" = x"true" ; then libs="$libs -llwres" fi diff --git a/lib/bind9/api b/lib/bind9/api index 0e57c8291191..bd19d6da532f 100644 --- a/lib/bind9/api +++ b/lib/bind9/api @@ -5,5 +5,5 @@ # 9.9: 90-109 # 9.9-sub: 130-139 LIBINTERFACE = 90 -LIBREVISION = 13 +LIBREVISION = 14 LIBAGE = 0 diff --git a/lib/bind9/check.c b/lib/bind9/check.c index e7a0200ca9ed..bc7aabe2e0e7 100644 --- a/lib/bind9/check.c +++ b/lib/bind9/check.c @@ -2898,6 +2898,7 @@ bind9_check_namedconf(const cfg_obj_t *config, isc_log_t *logctx, dns_rdataclass_t vclass = dns_rdataclass_in; const char *key = cfg_obj_asstring(vname); isc_symvalue_t symvalue; + unsigned int symtype; tresult = ISC_R_SUCCESS; if (cfg_obj_isstring(vclassobj)) { @@ -2911,16 +2912,17 @@ bind9_check_namedconf(const cfg_obj_t *config, isc_log_t *logctx, "view '%s': invalid class %s", cfg_obj_asstring(vname), r.base); } + symtype = vclass + 1; if (tresult == ISC_R_SUCCESS && symtab != NULL) { symvalue.as_cpointer = view; - tresult = isc_symtab_define(symtab, key, vclass, + tresult = isc_symtab_define(symtab, key, symtype, symvalue, isc_symexists_reject); if (tresult == ISC_R_EXISTS) { const char *file; unsigned int line; RUNTIME_CHECK(isc_symtab_lookup(symtab, key, - vclass, &symvalue) == ISC_R_SUCCESS); + symtype, &symvalue) == ISC_R_SUCCESS); file = cfg_obj_file(symvalue.as_cpointer); line = cfg_obj_line(symvalue.as_cpointer); cfg_obj_log(view, logctx, ISC_LOG_ERROR, diff --git a/lib/dns/adb.c b/lib/dns/adb.c index da77bb6c92a5..ec4af599da93 100644 --- a/lib/dns/adb.c +++ b/lib/dns/adb.c @@ -30,6 +30,7 @@ #include <isc/mutexblock.h> #include <isc/netaddr.h> +#include <isc/print.h> #include <isc/random.h> #include <isc/stats.h> #include <isc/string.h> /* Required for HP/UX (and others?) */ @@ -162,6 +163,14 @@ struct dns_adb { isc_boolean_t growentries_sent; isc_event_t grownames; isc_boolean_t grownames_sent; + +#ifdef ENABLE_FETCHLIMIT + isc_uint32_t quota; + isc_uint32_t atr_freq; + double atr_low; + double atr_high; + double atr_discount; +#endif /* ENABLE_FETCHLIMIT */ }; /* @@ -238,9 +247,21 @@ struct dns_adbentry { int lock_bucket; unsigned int refcnt; + unsigned int nh; unsigned int flags; unsigned int srtt; + + unsigned int timeouts; + unsigned int completed; + +#ifdef ENABLE_FETCHLIMIT + isc_uint8_t mode; + isc_uint32_t quota; + isc_uint32_t active; + double atr; +#endif /* ENABLE_FETCHLIMIT */ + isc_sockaddr_t sockaddr; isc_stdtime_t expires; @@ -285,6 +306,7 @@ static inline dns_adbentry_t *find_entry_and_lock(dns_adb_t *, static void dump_adb(dns_adb_t *, FILE *, isc_boolean_t debug, isc_stdtime_t); static void print_dns_name(FILE *, dns_name_t *); static void print_namehook_list(FILE *, const char *legend, + dns_adb_t *adb, dns_adbnamehooklist_t *list, isc_boolean_t debug, isc_stdtime_t now); @@ -320,10 +342,15 @@ static inline void link_entry(dns_adb_t *, int, dns_adbentry_t *); static inline isc_boolean_t unlink_entry(dns_adb_t *, dns_adbentry_t *); static isc_boolean_t kill_name(dns_adbname_t **, isc_eventtype_t); static void water(void *, int); -static void dump_entry(FILE *, dns_adbentry_t *, isc_boolean_t, isc_stdtime_t); +static void dump_entry(FILE *, dns_adb_t *, dns_adbentry_t *, + isc_boolean_t, isc_stdtime_t); static void adjustsrtt(dns_adbaddrinfo_t *addr, unsigned int rtt, unsigned int factor, isc_stdtime_t now); static void shutdown_task(isc_task_t *task, isc_event_t *ev); +#ifdef ENABLE_FETCHLIMIT +static void log_quota(dns_adbentry_t *entry, const char *fmt, ...) + ISC_FORMAT_PRINTF(2, 3); +#endif /* ENABLE_FETCHLIMIT */ /* * MUST NOT overlap DNS_ADBFIND_* flags! @@ -887,6 +914,7 @@ import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset, entry->sockaddr = sockaddr; entry->refcnt = 1; + entry->nh = 1; nh->entry = entry; @@ -899,6 +927,7 @@ import_rdataset(dns_adbname_t *adbname, dns_rdataset_t *rdataset, break; if (anh == NULL) { foundentry->refcnt++; + foundentry->nh++; nh->entry = foundentry; } else free_adbnamehook(adb, &nh); @@ -1293,6 +1322,7 @@ clean_namehooks(dns_adb_t *adb, dns_adbnamehooklist_t *namehooks) { LOCK(&adb->entrylocks[addr_bucket]); } + entry->nh--; result = dec_entry_refcnt(adb, overmem, entry, ISC_FALSE); } @@ -1479,6 +1509,7 @@ clean_finds_at_name(dns_adbname_t *name, isc_eventtype_t evtype, ev, task, find); isc_task_sendanddetach(&task, (isc_event_t **)&ev); + find->flags |= FIND_EVENT_SENT; } else { DP(DEF_LEVEL, "cfan: skipping find %p", find); } @@ -1759,11 +1790,20 @@ new_adbentry(dns_adb_t *adb) { e->magic = DNS_ADBENTRY_MAGIC; e->lock_bucket = DNS_ADB_INVALIDBUCKET; e->refcnt = 0; + e->nh = 0; e->flags = 0; + e->completed = 0; + e->timeouts = 0; isc_random_get(&r); e->srtt = (r & 0x1f) + 1; e->lastage = 0; e->expires = 0; +#ifdef ENABLE_FETCHLIMIT + e->active = 0; + e->mode = 0; + e->quota = adb->quota; + e->atr = 0.0; +#endif /* ENABLE_FETCHLIMIT */ ISC_LIST_INIT(e->lameinfo); ISC_LINK_INIT(e, plink); LOCK(&adb->entriescntlock); @@ -2072,6 +2112,27 @@ entry_is_lame(dns_adb_t *adb, dns_adbentry_t *entry, dns_name_t *qname, return (is_bad); } +#ifdef ENABLE_FETCHLIMIT +static void +log_quota(dns_adbentry_t *entry, const char *fmt, ...) { + va_list ap; + char msgbuf[2048]; + char addrbuf[ISC_NETADDR_FORMATSIZE]; + isc_netaddr_t netaddr; + + va_start(ap, fmt); + vsnprintf(msgbuf, sizeof(msgbuf), fmt, ap); + va_end(ap); + + isc_netaddr_fromsockaddr(&netaddr, &entry->sockaddr); + isc_netaddr_format(&netaddr, addrbuf, sizeof(addrbuf)); + + isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, DNS_LOGMODULE_ADB, + ISC_LOG_INFO, "adb: quota %s (%d/%d): %s", + addrbuf, entry->active, entry->quota, msgbuf); +} +#endif /* ENABLE_FETCHLIMIT */ + static void copy_namehook_lists(dns_adb_t *adb, dns_adbfind_t *find, dns_name_t *qname, dns_rdatatype_t qtype, dns_adbname_t *name, @@ -2092,6 +2153,17 @@ copy_namehook_lists(dns_adb_t *adb, dns_adbfind_t *find, dns_name_t *qname, INSIST(bucket != DNS_ADB_INVALIDBUCKET); LOCK(&adb->entrylocks[bucket]); +#ifdef ENABLE_FETCHLIMIT + if (entry->quota != 0 && + entry->active >= entry->quota) + { + find->options |= + (DNS_ADBFIND_LAMEPRUNED| + DNS_ADBFIND_OVERQUOTA); + goto nextv4; + } +#endif /* ENABLE_FETCHLIMIT */ + if (!FIND_RETURNLAME(find) && entry_is_lame(adb, entry, qname, qtype, now)) { find->options |= DNS_ADBFIND_LAMEPRUNED; @@ -2123,6 +2195,17 @@ copy_namehook_lists(dns_adb_t *adb, dns_adbfind_t *find, dns_name_t *qname, INSIST(bucket != DNS_ADB_INVALIDBUCKET); LOCK(&adb->entrylocks[bucket]); +#ifdef ENABLE_FETCHLIMIT + if (entry->quota != 0 && + entry->active >= entry->quota) + { + find->options |= + (DNS_ADBFIND_LAMEPRUNED| + DNS_ADBFIND_OVERQUOTA); + goto nextv6; + } +#endif /* ENABLE_FETCHLIMIT */ + if (!FIND_RETURNLAME(find) && entry_is_lame(adb, entry, qname, qtype, now)) { find->options |= DNS_ADBFIND_LAMEPRUNED; @@ -2455,6 +2538,14 @@ dns_adb_create(isc_mem_t *mem, dns_view_t *view, isc_timermgr_t *timermgr, adb, NULL, NULL); adb->growentries_sent = ISC_FALSE; +#ifdef ENABLE_FETCHLIMIT + adb->quota = 0; + adb->atr_freq = 0; + adb->atr_low = 0.0; + adb->atr_high = 0.0; + adb->atr_discount = 0.0; +#endif /* ENABLE_FETCHLIMIT */ + adb->nnames = nbuckets[0]; adb->namescnt = 0; adb->names = NULL; @@ -2474,7 +2565,6 @@ dns_adb_create(isc_mem_t *mem, dns_view_t *view, isc_timermgr_t *timermgr, nbuckets[11]); adb->nentries = nbuckets[11]; adb->nnames = nbuckets[11]; - } isc_mem_attach(mem, &adb->mctx); @@ -2667,6 +2757,8 @@ dns_adb_create(isc_mem_t *mem, dns_view_t *view, isc_timermgr_t *timermgr, fail0c: DESTROYLOCK(&adb->lock); fail0b: + if (adb->excl != NULL) + isc_task_detach(&adb->excl); isc_mem_putanddetach(&adb->mctx, adb, sizeof(dns_adb_t)); return (result); @@ -3349,14 +3441,15 @@ dump_adb(dns_adb_t *adb, FILE *f, isc_boolean_t debug, isc_stdtime_t now) { fprintf(f, "\n"); - print_namehook_list(f, "v4", &name->v4, debug, now); - print_namehook_list(f, "v6", &name->v6, debug, now); + print_namehook_list(f, "v4", adb, + &name->v4, debug, now); + print_namehook_list(f, "v6", adb, + &name->v6, debug, now); if (debug) print_fetch_list(f, name); if (debug) print_find_list(f, name); - } } @@ -3365,8 +3458,8 @@ dump_adb(dns_adb_t *adb, FILE *f, isc_boolean_t debug, isc_stdtime_t now) { for (i = 0; i < adb->nentries; i++) { entry = ISC_LIST_HEAD(adb->entries[i]); while (entry != NULL) { - if (entry->refcnt == 0) - dump_entry(f, entry, debug, now); + if (entry->nh == 0) + dump_entry(f, adb, entry, debug, now); entry = ISC_LIST_NEXT(entry, plink); } } @@ -3381,14 +3474,18 @@ dump_adb(dns_adb_t *adb, FILE *f, isc_boolean_t debug, isc_stdtime_t now) { } static void -dump_entry(FILE *f, dns_adbentry_t *entry, isc_boolean_t debug, - isc_stdtime_t now) +dump_entry(FILE *f, dns_adb_t *adb, dns_adbentry_t *entry, + isc_boolean_t debug, isc_stdtime_t now) { char addrbuf[ISC_NETADDR_FORMATSIZE]; char typebuf[DNS_RDATATYPE_FORMATSIZE]; isc_netaddr_t netaddr; dns_adblameinfo_t *li; +#ifndef ENABLE_FETCHLIMIT + UNUSED(adb); +#endif /* !ENABLE_FETCHLIMIT */ + isc_netaddr_fromsockaddr(&netaddr, &entry->sockaddr); isc_netaddr_format(&netaddr, addrbuf, sizeof(addrbuf)); @@ -3399,10 +3496,19 @@ dump_entry(FILE *f, dns_adbentry_t *entry, isc_boolean_t debug, addrbuf, entry->srtt, entry->flags); if (entry->expires != 0) fprintf(f, " [ttl %d]", entry->expires - now); + +#ifdef ENABLE_FETCHLIMIT + if (adb != NULL && adb->quota != 0 && adb->atr_freq != 0) { + fprintf(f, " [atr %0.2f] [quota %d]", + entry->atr, entry->quota); + } +#endif /* ENABLE_FETCHLIMIT */ + fprintf(f, "\n"); for (li = ISC_LIST_HEAD(entry->lameinfo); li != NULL; - li = ISC_LIST_NEXT(li, plink)) { + li = ISC_LIST_NEXT(li, plink)) + { fprintf(f, ";\t\t"); print_dns_name(f, &li->qname); dns_rdatatype_format(li->qtype, typebuf, sizeof(typebuf)); @@ -3474,7 +3580,8 @@ print_dns_name(FILE *f, dns_name_t *name) { } static void -print_namehook_list(FILE *f, const char *legend, dns_adbnamehooklist_t *list, +print_namehook_list(FILE *f, const char *legend, + dns_adb_t *adb, dns_adbnamehooklist_t *list, isc_boolean_t debug, isc_stdtime_t now) { dns_adbnamehook_t *nh; @@ -3485,7 +3592,7 @@ print_namehook_list(FILE *f, const char *legend, dns_adbnamehooklist_t *list, { if (debug) fprintf(f, ";\tHook(%s) %p\n", legend, nh); - dump_entry(f, nh->entry, debug, now); + dump_entry(f, adb, nh->entry, debug, now); } } @@ -4051,6 +4158,114 @@ dns_adb_changeflags(dns_adb_t *adb, dns_adbaddrinfo_t *addr, UNLOCK(&adb->entrylocks[bucket]); } +#ifdef ENABLE_FETCHLIMIT +/* + * (10000 / ((10 + n) / 10)^(3/2)) for n in 0..99. + * These will be used to make quota adjustments. + */ +static int quota_adj[] = { + 10000, 8668, 7607, 6747, 6037, 5443, 4941, 4512, 4141, + 3818, 3536, 3286, 3065, 2867, 2690, 2530, 2385, 2254, + 2134, 2025, 1925, 1832, 1747, 1668, 1595, 1527, 1464, + 1405, 1350, 1298, 1250, 1205, 1162, 1121, 1083, 1048, + 1014, 981, 922, 894, 868, 843, 820, 797, 775, 755, + 735, 716, 698, 680, 664, 648, 632, 618, 603, 590, 577, + 564, 552, 540, 529, 518, 507, 497, 487, 477, 468, 459, + 450, 442, 434, 426, 418, 411, 404, 397, 390, 383, 377, + 370, 364, 358, 353, 347, 342, 336, 331, 326, 321, 316, + 312, 307, 303, 298, 294, 290, 286, 282, 278 +}; + +/* + * Caller must hold adbentry lock + */ +static void +maybe_adjust_quota(dns_adb_t *adb, dns_adbaddrinfo_t *addr, + isc_boolean_t timeout) +{ + double tr; + + UNUSED(adb); + + if (adb->quota == 0 || adb->atr_freq == 0) + return; + + if (timeout) + addr->entry->timeouts++; + + if (addr->entry->completed++ <= adb->atr_freq) + return; + + /* + * Calculate an exponential rolling average of the timeout ratio + * + * XXX: Integer arithmetic might be better than floating point + */ + tr = (double) addr->entry->timeouts / addr->entry->completed; + addr->entry->timeouts = addr->entry->completed = 0; + INSIST(addr->entry->atr >= 0.0); + INSIST(addr->entry->atr <= 1.0); + INSIST(adb->atr_discount >= 0.0); + INSIST(adb->atr_discount <= 1.0); + addr->entry->atr *= 1.0 - adb->atr_discount; + addr->entry->atr += tr * adb->atr_discount; + addr->entry->atr = ISC_CLAMP(addr->entry->atr, 0.0, 1.0); + + if (addr->entry->atr < adb->atr_low && addr->entry->mode > 0) { + addr->entry->quota = adb->quota * + quota_adj[--addr->entry->mode] / 10000; + log_quota(addr->entry, "atr %0.2f, quota increased to %d", + addr->entry->atr, addr->entry->quota); + } else if (addr->entry->atr > adb->atr_high && addr->entry->mode < 99) { + addr->entry->quota = adb->quota * + quota_adj[++addr->entry->mode] / 10000; + log_quota(addr->entry, "atr %0.2f, quota decreased to %d", + addr->entry->atr, addr->entry->quota); + } + + /* Ensure we don't drop to zero */ + if (addr->entry->quota == 0) + addr->entry->quota = 1; +} +#endif /* ENABLE_FETCHLIMIT */ + +void +dns_adb_plainresponse(dns_adb_t *adb, dns_adbaddrinfo_t *addr) { + int bucket; + + REQUIRE(DNS_ADB_VALID(adb)); + REQUIRE(DNS_ADBADDRINFO_VALID(addr)); + + bucket = addr->entry->lock_bucket; + LOCK(&adb->entrylocks[bucket]); + +#ifdef ENABLE_FETCHLIMIT + maybe_adjust_quota(adb, addr, ISC_FALSE); +#endif /* ENABLE_FETCHLIMIT */ + + UNLOCK(&adb->entrylocks[bucket]); +} + +void +dns_adb_timeout(dns_adb_t *adb, dns_adbaddrinfo_t *addr) { +#ifdef ENABLE_FETCHLIMIT + int bucket; + + REQUIRE(DNS_ADB_VALID(adb)); + REQUIRE(DNS_ADBADDRINFO_VALID(addr)); + + bucket = addr->entry->lock_bucket; + LOCK(&adb->entrylocks[bucket]); + maybe_adjust_quota(adb, addr, ISC_TRUE); + UNLOCK(&adb->entrylocks[bucket]); +#else + UNUSED(adb); + UNUSED(addr); + + return; +#endif /* !ENABLE_FETCHLIMIT */ +} + isc_result_t dns_adb_findaddrinfo(dns_adb_t *adb, isc_sockaddr_t *sa, dns_adbaddrinfo_t **addrp, isc_stdtime_t now) @@ -4230,3 +4445,84 @@ dns_adb_setadbsize(dns_adb_t *adb, size_t size) { else isc_mem_setwater(adb->mctx, water, adb, hiwater, lowater); } + +void +dns_adb_setquota(dns_adb_t *adb, isc_uint32_t quota, isc_uint32_t freq, + double low, double high, double discount) +{ +#ifdef ENABLE_FETCHLIMIT + REQUIRE(DNS_ADB_VALID(adb)); + + adb->quota = quota; + adb->atr_freq = freq; + adb->atr_low = low; + adb->atr_high = high; + adb->atr_discount = discount; +#else + UNUSED(adb); + UNUSED(quota); + UNUSED(freq); + UNUSED(low); + UNUSED(high); + UNUSED(discount); + + return; +#endif /* !ENABLE_FETCHLIMIT */ +} + +isc_boolean_t +dns_adbentry_overquota(dns_adbentry_t *entry) { +#ifdef ENABLE_FETCHLIMIT + isc_boolean_t block; + REQUIRE(DNS_ADBENTRY_VALID(entry)); + block = ISC_TF(entry->quota != 0 && entry->active >= entry->quota); + return (block); +#else + UNUSED(entry); + + return (ISC_FALSE); +#endif /* !ENABLE_FETCHLIMIT */ +} + +void +dns_adb_beginudpfetch(dns_adb_t *adb, dns_adbaddrinfo_t *addr) { +#ifdef ENABLE_FETCHLIMIT + int bucket; + + REQUIRE(DNS_ADB_VALID(adb)); + REQUIRE(DNS_ADBADDRINFO_VALID(addr)); + + bucket = addr->entry->lock_bucket; + + LOCK(&adb->entrylocks[bucket]); + addr->entry->active++; + UNLOCK(&adb->entrylocks[bucket]); +#else + UNUSED(adb); + UNUSED(addr); + + return; +#endif /* !ENABLE_FETCHLIMIT */ +} + +void +dns_adb_endudpfetch(dns_adb_t *adb, dns_adbaddrinfo_t *addr) { +#ifdef ENABLE_FETCHLIMIT + int bucket; + + REQUIRE(DNS_ADB_VALID(adb)); + REQUIRE(DNS_ADBADDRINFO_VALID(addr)); + + bucket = addr->entry->lock_bucket; + + LOCK(&adb->entrylocks[bucket]); + if (addr->entry->active > 0) + addr->entry->active--; + UNLOCK(&adb->entrylocks[bucket]); +#else + UNUSED(adb); + UNUSED(addr); + + return; +#endif /* !ENABLE_FETCHLIMIT */ +} diff --git a/lib/dns/api b/lib/dns/api index b93481d12132..c1a2e99c964e 100644 --- a/lib/dns/api +++ b/lib/dns/api @@ -4,6 +4,6 @@ # 9.8: 80-89, 120-129 # 9.9: 90-109 # 9.9-sub: 130-139 -LIBINTERFACE = 107 -LIBREVISION = 2 +LIBINTERFACE = 109 +LIBREVISION = 0 LIBAGE = 1 diff --git a/lib/dns/cache.c b/lib/dns/cache.c index d0f05b9a09ab..098823314980 100644 --- a/lib/dns/cache.c +++ b/lib/dns/cache.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2009, 2011, 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2009, 2011, 2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -1125,30 +1125,42 @@ cleaner_shutdown_action(isc_task_t *task, isc_event_t *event) { isc_result_t dns_cache_flush(dns_cache_t *cache) { - dns_db_t *db = NULL; + dns_db_t *db = NULL, *olddb; + dns_dbiterator_t *dbiterator = NULL, *olddbiterator = NULL; isc_result_t result; result = cache_create_db(cache, &db); if (result != ISC_R_SUCCESS) return (result); + result = dns_db_createiterator(db, ISC_FALSE, &dbiterator); + if (result != ISC_R_SUCCESS) { + dns_db_detach(&db); + return (result); + } + LOCK(&cache->lock); LOCK(&cache->cleaner.lock); if (cache->cleaner.state == cleaner_s_idle) { - if (cache->cleaner.iterator != NULL) - dns_dbiterator_destroy(&cache->cleaner.iterator); - (void) dns_db_createiterator(db, ISC_FALSE, - &cache->cleaner.iterator); + olddbiterator = cache->cleaner.iterator; + cache->cleaner.iterator = dbiterator; + dbiterator = NULL; } else { if (cache->cleaner.state == cleaner_s_busy) cache->cleaner.state = cleaner_s_done; cache->cleaner.replaceiterator = ISC_TRUE; } - dns_db_detach(&cache->db); + olddb = cache->db; cache->db = db; UNLOCK(&cache->cleaner.lock); UNLOCK(&cache->lock); + if (dbiterator != NULL) + dns_dbiterator_destroy(&dbiterator); + if (olddbiterator != NULL) + dns_dbiterator_destroy(&olddbiterator); + dns_db_detach(&olddb); + return (ISC_R_SUCCESS); } diff --git a/lib/dns/callbacks.c b/lib/dns/callbacks.c index 0ef17abce7bc..c12e0c0fed95 100644 --- a/lib/dns/callbacks.c +++ b/lib/dns/callbacks.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2011 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2011, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -21,6 +21,7 @@ #include <config.h> +#include <isc/print.h> #include <isc/util.h> #include <dns/callbacks.h> diff --git a/lib/dns/client.c b/lib/dns/client.c index cee4fb268d71..b433e348fe31 100644 --- a/lib/dns/client.c +++ b/lib/dns/client.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009-2013, 2015 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 @@ -14,8 +14,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: client.c,v 1.14 2011/03/12 04:59:47 tbox Exp $ */ - #include <config.h> #include <stddef.h> @@ -23,6 +21,7 @@ #include <isc/app.h> #include <isc/mem.h> #include <isc/mutex.h> +#include <isc/safe.h> #include <isc/sockaddr.h> #include <isc/socket.h> #include <isc/task.h> diff --git a/lib/dns/diff.c b/lib/dns/diff.c index b6d4152999f8..1c073ab75e2f 100644 --- a/lib/dns/diff.c +++ b/lib/dns/diff.c @@ -26,6 +26,7 @@ #include <isc/buffer.h> #include <isc/file.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/string.h> #include <isc/util.h> @@ -290,12 +291,11 @@ diff_apply(dns_diff_t *diff, dns_db_t *db, dns_dbversion_t *ver, * of the diff itself is not affected. */ + dns_rdatalist_init(&rdl); rdl.type = type; rdl.covers = covers; rdl.rdclass = t->rdata.rdclass; rdl.ttl = t->ttl; - ISC_LIST_INIT(rdl.rdata); - ISC_LINK_INIT(&rdl, link); node = NULL; if (type != dns_rdatatype_nsec3 && @@ -462,12 +462,11 @@ dns_diff_load(dns_diff_t *diff, dns_addrdatasetfunc_t addfunc, type = t->rdata.type; covers = rdata_covers(&t->rdata); + dns_rdatalist_init(&rdl); rdl.type = type; rdl.covers = covers; rdl.rdclass = t->rdata.rdclass; rdl.ttl = t->ttl; - ISC_LIST_INIT(rdl.rdata); - ISC_LINK_INIT(&rdl, link); while (t != NULL && dns_name_equal(&t->name, name) && t->op == op && t->rdata.type == type && @@ -556,11 +555,10 @@ diff_tuple_tordataset(dns_difftuple_t *t, dns_rdata_t *rdata, REQUIRE(rdl != NULL); REQUIRE(rds != NULL); + dns_rdatalist_init(rdl); rdl->type = t->rdata.type; rdl->rdclass = t->rdata.rdclass; rdl->ttl = t->ttl; - ISC_LIST_INIT(rdl->rdata); - ISC_LINK_INIT(rdl, link); dns_rdataset_init(rds); ISC_LINK_INIT(rdata, link); dns_rdata_clone(&t->rdata, rdata); diff --git a/lib/dns/dispatch.c b/lib/dns/dispatch.c index 1c113eccb235..444bcedde322 100644 --- a/lib/dns/dispatch.c +++ b/lib/dns/dispatch.c @@ -1159,7 +1159,7 @@ free_sevent(isc_event_t *ev) { } static inline isc_socketevent_t * -allocate_sevent(dns_dispatch_t *disp, isc_socket_t *socket, +allocate_sevent(dns_dispatch_t *disp, isc_socket_t *sock, isc_eventtype_t type, isc_taskaction_t action, const void *arg) { isc_socketevent_t *ev; @@ -1170,7 +1170,7 @@ allocate_sevent(dns_dispatch_t *disp, isc_socket_t *socket, return (NULL); DE_CONST(arg, deconst_arg); ISC_EVENT_INIT(ev, sizeof(*ev), 0, NULL, type, - action, deconst_arg, socket, + action, deconst_arg, sock, free_sevent, disp->sepool); ev->result = ISC_R_UNSET; ISC_LINK_INIT(ev, ev_link); @@ -1709,7 +1709,7 @@ static isc_result_t startrecv(dns_dispatch_t *disp, dispsocket_t *dispsock) { isc_result_t res; isc_region_t region; - isc_socket_t *socket; + isc_socket_t *sock; if (disp->shutting_down == 1) return (ISC_R_SUCCESS); @@ -1728,10 +1728,10 @@ startrecv(dns_dispatch_t *disp, dispsocket_t *dispsock) { return (ISC_R_SUCCESS); if (dispsock != NULL) - socket = dispsock->socket; + sock = dispsock->socket; else - socket = disp->socket; - INSIST(socket != NULL); + sock = disp->socket; + INSIST(sock != NULL); switch (disp->socktype) { /* @@ -1745,7 +1745,7 @@ startrecv(dns_dispatch_t *disp, dispsocket_t *dispsock) { if (dispsock != NULL) { isc_task_t *dt = dispsock->task; isc_socketevent_t *sev = - allocate_sevent(disp, socket, + allocate_sevent(disp, sock, ISC_SOCKEVENT_RECVDONE, udp_exrecv, dispsock); if (sev == NULL) { @@ -1753,7 +1753,7 @@ startrecv(dns_dispatch_t *disp, dispsocket_t *dispsock) { return (ISC_R_NOMEMORY); } - res = isc_socket_recv2(socket, ®ion, 1, dt, sev, 0); + res = isc_socket_recv2(sock, ®ion, 1, dt, sev, 0); if (res != ISC_R_SUCCESS) { free_buffer(disp, region.base, region.length); return (res); @@ -1761,7 +1761,7 @@ startrecv(dns_dispatch_t *disp, dispsocket_t *dispsock) { } else { isc_task_t *dt = disp->task[0]; isc_socketevent_t *sev = - allocate_sevent(disp, socket, + allocate_sevent(disp, sock, ISC_SOCKEVENT_RECVDONE, udp_shrecv, disp); if (sev == NULL) { @@ -1769,7 +1769,7 @@ startrecv(dns_dispatch_t *disp, dispsocket_t *dispsock) { return (ISC_R_NOMEMORY); } - res = isc_socket_recv2(socket, ®ion, 1, dt, sev, 0); + res = isc_socket_recv2(sock, ®ion, 1, dt, sev, 0); if (res != ISC_R_SUCCESS) { free_buffer(disp, region.base, region.length); disp->shutdown_why = res; diff --git a/lib/dns/dlz.c b/lib/dns/dlz.c index 19c600c94126..a273156b5f95 100644 --- a/lib/dns/dlz.c +++ b/lib/dns/dlz.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2005, 2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2005, 2007, 2009-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1999-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -221,8 +221,8 @@ dns_dlzcreate(isc_mem_t *mctx, const char *dlzname, const char *drivername, void dns_dlzdestroy(dns_dlzdb_t **dbp) { - isc_mem_t *mctx; dns_dlzdestroy_t destroy; + dns_dlzdb_t *db; /* Write debugging message to log */ isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, @@ -234,23 +234,19 @@ dns_dlzdestroy(dns_dlzdb_t **dbp) { */ REQUIRE(dbp != NULL && DNS_DLZ_VALID(*dbp)); + db = *dbp; + *dbp = NULL; + #ifdef BIND9 - if ((*dbp)->ssutable != NULL) { - dns_ssutable_detach(&(*dbp)->ssutable); - } + if (db->ssutable != NULL) + dns_ssutable_detach(&db->ssutable); #endif /* call the drivers destroy method */ - if ((*dbp) != NULL) { - mctx = (*dbp)->mctx; - destroy = (*dbp)->implementation->methods->destroy; - (*destroy)((*dbp)->implementation->driverarg,(*dbp)->dbdata); - /* return memory */ - isc_mem_put(mctx, (*dbp), sizeof(dns_dlzdb_t)); - isc_mem_detach(&mctx); - } - - *dbp = NULL; + destroy = db->implementation->methods->destroy; + (*destroy)(db->implementation->driverarg, db->dbdata); + /* return memory and detach */ + isc_mem_putanddetach(&db->mctx, db, sizeof(dns_dlzdb_t)); } diff --git a/lib/dns/dnssec.c b/lib/dns/dnssec.c index 6a749ea56b32..341dbe6bc282 100644 --- a/lib/dns/dnssec.c +++ b/lib/dns/dnssec.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -934,9 +934,6 @@ dns_dnssec_signmessage(dns_message_t *msg, dst_key_t *key) { RETERR(dns_message_gettemprdatalist(msg, &datalist)); datalist->rdclass = dns_rdataclass_any; datalist->type = dns_rdatatype_sig; /* SIG(0) */ - datalist->covers = 0; - datalist->ttl = 0; - ISC_LIST_INIT(datalist->rdata); ISC_LIST_APPEND(datalist->rdata, rdata, link); dataset = NULL; RETERR(dns_message_gettemprdataset(msg, &dataset)); @@ -969,7 +966,7 @@ dns_dnssec_verifymessage(isc_buffer_t *source, dns_message_t *msg, dst_context_t *ctx = NULL; isc_mem_t *mctx; isc_result_t result; - isc_uint16_t addcount; + isc_uint16_t addcount, addcount_n; isc_boolean_t signeedsfree = ISC_FALSE; REQUIRE(source != NULL); @@ -1046,7 +1043,8 @@ dns_dnssec_verifymessage(isc_buffer_t *source, dns_message_t *msg, * Decrement the additional field counter. */ memmove(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2); - addcount = htons((isc_uint16_t)(ntohs(addcount) - 1)); + addcount_n = ntohs(addcount); + addcount = htons((isc_uint16_t)(addcount_n - 1)); memmove(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2); /* diff --git a/lib/dns/dst_api.c b/lib/dns/dst_api.c index 641627376047..680a0184319e 100644 --- a/lib/dns/dst_api.c +++ b/lib/dns/dst_api.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -1001,9 +1001,6 @@ comparekeys(const dst_key_t *key1, const dst_key_t *key2, if (key1 == key2) return (ISC_TRUE); - if (key1 == NULL || key2 == NULL) - return (ISC_FALSE); - if (key1->key_alg != key2->key_alg) return (ISC_FALSE); @@ -1093,8 +1090,6 @@ dst_key_paramcompare(const dst_key_t *key1, const dst_key_t *key2) { if (key1 == key2) return (ISC_TRUE); - if (key1 == NULL || key2 == NULL) - return (ISC_FALSE); if (key1->key_alg == key2->key_alg && key1->func->paramcompare != NULL && key1->func->paramcompare(key1, key2) == ISC_TRUE) diff --git a/lib/dns/dst_openssl.h b/lib/dns/dst_openssl.h index 99a43ef948ac..dd6740586d8a 100644 --- a/lib/dns/dst_openssl.h +++ b/lib/dns/dst_openssl.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007-2009, 2011, 2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -29,12 +29,27 @@ #include <openssl/evp.h> #include <openssl/conf.h> #include <openssl/crypto.h> +#include <openssl/bn.h> #if !defined(OPENSSL_NO_ENGINE) && defined(CRYPTO_LOCK_ENGINE) && \ (OPENSSL_VERSION_NUMBER >= 0x0090707f) #define USE_ENGINE 1 #endif +#if OPENSSL_VERSION_NUMBER < 0x10100000L +/* + * These are new in OpenSSL 1.1.0. BN_GENCB _cb needs to be declared in + * the function like this before the BN_GENCB_new call: + * + * #if OPENSSL_VERSION_NUMBER < 0x10100000L + * _cb; + * #endif + */ +#define BN_GENCB_free(x) (x = NULL); +#define BN_GENCB_new() (&_cb) +#define BN_GENCB_get_arg(x) ((x)->arg) +#endif + ISC_LANG_BEGINDECLS isc_result_t diff --git a/lib/dns/dst_parse.c b/lib/dns/dst_parse.c index 2b950d5a3b9c..989dc86300f2 100644 --- a/lib/dns/dst_parse.c +++ b/lib/dns/dst_parse.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -38,13 +38,14 @@ #include <isc/base64.h> #include <isc/dir.h> +#include <isc/file.h> #include <isc/fsaccess.h> #include <isc/lex.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/stdtime.h> #include <isc/string.h> #include <isc/util.h> -#include <isc/file.h> #include <dns/time.h> #include <dns/log.h> diff --git a/lib/dns/gssapi_link.c b/lib/dns/gssapi_link.c index 2927b676d366..e404c96ceae1 100644 --- a/lib/dns/gssapi_link.c +++ b/lib/dns/gssapi_link.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -26,6 +26,7 @@ #include <isc/base64.h> #include <isc/buffer.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/string.h> #include <isc/util.h> diff --git a/lib/dns/gssapictx.c b/lib/dns/gssapictx.c index f28c07aba436..3a3af34a9861 100644 --- a/lib/dns/gssapictx.c +++ b/lib/dns/gssapictx.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -216,7 +216,7 @@ static void check_config(const char *gss_name) { const char *p; krb5_context krb5_ctx; - char *krb5_realm = NULL; + char *krb5_realm_name = NULL; if (strncasecmp(gss_name, "DNS/", 4) != 0) { gss_log(ISC_LOG_ERROR, "tkey-gssapi-credential (%s) " @@ -228,7 +228,7 @@ check_config(const char *gss_name) { gss_log(ISC_LOG_ERROR, "Unable to initialise krb5 context"); return; } - if (krb5_get_default_realm(krb5_ctx, &krb5_realm) != 0) { + if (krb5_get_default_realm(krb5_ctx, &krb5_realm_name) != 0) { gss_log(ISC_LOG_ERROR, "Unable to get krb5 default realm"); krb5_free_context(krb5_ctx); return; @@ -240,10 +240,10 @@ check_config(const char *gss_name) { krb5_free_context(krb5_ctx); return; } - if (strcasecmp(p + 1, krb5_realm) != 0) { + if (strcasecmp(p + 1, krb5_realm_name) != 0) { gss_log(ISC_LOG_ERROR, "default realm from krb5.conf (%s) " "does not match tkey-gssapi-credential (%s)", - krb5_realm, gss_name); + krb5_realm_name, gss_name); krb5_free_context(krb5_ctx); return; } @@ -633,7 +633,6 @@ dst_gssapi_initctx(dns_name_t *name, isc_buffer_t *intoken, if (gouttoken.length != 0U) { GBUFFER_TO_REGION(gouttoken, r); RETERR(isc_buffer_copyregion(outtoken, &r)); - (void)gss_release_buffer(&minor, &gouttoken); } if (gret == GSS_S_COMPLETE) @@ -642,6 +641,8 @@ dst_gssapi_initctx(dns_name_t *name, isc_buffer_t *intoken, result = DNS_R_CONTINUE; out: + if (gouttoken.length != 0U) + (void)gss_release_buffer(&minor, &gouttoken); (void)gss_release_name(&minor, &gname); return (result); #else diff --git a/lib/dns/hmac_link.c b/lib/dns/hmac_link.c index d99c5fb00f42..690301d7c236 100644 --- a/lib/dns/hmac_link.c +++ b/lib/dns/hmac_link.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -76,7 +76,7 @@ hmacmd5_createctx(dst_key_t *key, dst_context_t *dctx) { hmacmd5ctx = isc_mem_get(dctx->mctx, sizeof(isc_hmacmd5_t)); if (hmacmd5ctx == NULL) return (ISC_R_NOMEMORY); - isc_hmacmd5_init(hmacmd5ctx, hkey->key, ISC_SHA1_BLOCK_LENGTH); + isc_hmacmd5_init(hmacmd5ctx, hkey->key, ISC_MD5_BLOCK_LENGTH); dctx->ctxdata.hmacmd5ctx = hmacmd5ctx; return (ISC_R_SUCCESS); } @@ -139,7 +139,7 @@ hmacmd5_compare(const dst_key_t *key1, const dst_key_t *key2) { else if (hkey1 == NULL || hkey2 == NULL) return (ISC_FALSE); - if (isc_safe_memcmp(hkey1->key, hkey2->key, ISC_SHA1_BLOCK_LENGTH)) + if (isc_safe_memequal(hkey1->key, hkey2->key, ISC_MD5_BLOCK_LENGTH)) return (ISC_TRUE); else return (ISC_FALSE); @@ -150,17 +150,17 @@ hmacmd5_generate(dst_key_t *key, int pseudorandom_ok, void (*callback)(int)) { isc_buffer_t b; isc_result_t ret; unsigned int bytes; - unsigned char data[ISC_SHA1_BLOCK_LENGTH]; + unsigned char data[ISC_MD5_BLOCK_LENGTH]; UNUSED(callback); bytes = (key->key_size + 7) / 8; - if (bytes > ISC_SHA1_BLOCK_LENGTH) { - bytes = ISC_SHA1_BLOCK_LENGTH; - key->key_size = ISC_SHA1_BLOCK_LENGTH * 8; + if (bytes > ISC_MD5_BLOCK_LENGTH) { + bytes = ISC_MD5_BLOCK_LENGTH; + key->key_size = ISC_MD5_BLOCK_LENGTH * 8; } - memset(data, 0, ISC_SHA1_BLOCK_LENGTH); + memset(data, 0, ISC_MD5_BLOCK_LENGTH); ret = dst__entropy_getdata(data, bytes, ISC_TF(pseudorandom_ok != 0)); if (ret != ISC_R_SUCCESS) @@ -169,7 +169,7 @@ hmacmd5_generate(dst_key_t *key, int pseudorandom_ok, void (*callback)(int)) { isc_buffer_init(&b, data, bytes); isc_buffer_add(&b, bytes); ret = hmacmd5_fromdns(key, &b); - memset(data, 0, ISC_SHA1_BLOCK_LENGTH); + memset(data, 0, ISC_MD5_BLOCK_LENGTH); return (ret); } @@ -223,7 +223,7 @@ hmacmd5_fromdns(dst_key_t *key, isc_buffer_t *data) { memset(hkey->key, 0, sizeof(hkey->key)); - if (r.length > ISC_SHA1_BLOCK_LENGTH) { + if (r.length > ISC_MD5_BLOCK_LENGTH) { isc_md5_init(&md5ctx); isc_md5_update(&md5ctx, r.base, r.length); isc_md5_final(&md5ctx, hkey->key); @@ -236,6 +236,8 @@ hmacmd5_fromdns(dst_key_t *key, isc_buffer_t *data) { key->key_size = keylen * 8; key->keydata.hmacmd5 = hkey; + isc_buffer_forward(data, r.length); + return (ISC_R_SUCCESS); } @@ -415,7 +417,7 @@ hmacsha1_compare(const dst_key_t *key1, const dst_key_t *key2) { else if (hkey1 == NULL || hkey2 == NULL) return (ISC_FALSE); - if (isc_safe_memcmp(hkey1->key, hkey2->key, ISC_SHA1_BLOCK_LENGTH)) + if (isc_safe_memequal(hkey1->key, hkey2->key, ISC_SHA1_BLOCK_LENGTH)) return (ISC_TRUE); else return (ISC_FALSE); @@ -512,6 +514,8 @@ hmacsha1_fromdns(dst_key_t *key, isc_buffer_t *data) { key->key_size = keylen * 8; key->keydata.hmacsha1 = hkey; + isc_buffer_forward(data, r.length); + return (ISC_R_SUCCESS); } @@ -691,7 +695,7 @@ hmacsha224_compare(const dst_key_t *key1, const dst_key_t *key2) { else if (hkey1 == NULL || hkey2 == NULL) return (ISC_FALSE); - if (isc_safe_memcmp(hkey1->key, hkey2->key, ISC_SHA224_BLOCK_LENGTH)) + if (isc_safe_memequal(hkey1->key, hkey2->key, ISC_SHA224_BLOCK_LENGTH)) return (ISC_TRUE); else return (ISC_FALSE); @@ -790,6 +794,8 @@ hmacsha224_fromdns(dst_key_t *key, isc_buffer_t *data) { key->key_size = keylen * 8; key->keydata.hmacsha224 = hkey; + isc_buffer_forward(data, r.length); + return (ISC_R_SUCCESS); } @@ -969,7 +975,7 @@ hmacsha256_compare(const dst_key_t *key1, const dst_key_t *key2) { else if (hkey1 == NULL || hkey2 == NULL) return (ISC_FALSE); - if (isc_safe_memcmp(hkey1->key, hkey2->key, ISC_SHA256_BLOCK_LENGTH)) + if (isc_safe_memequal(hkey1->key, hkey2->key, ISC_SHA256_BLOCK_LENGTH)) return (ISC_TRUE); else return (ISC_FALSE); @@ -1068,6 +1074,8 @@ hmacsha256_fromdns(dst_key_t *key, isc_buffer_t *data) { key->key_size = keylen * 8; key->keydata.hmacsha256 = hkey; + isc_buffer_forward(data, r.length); + return (ISC_R_SUCCESS); } @@ -1247,7 +1255,7 @@ hmacsha384_compare(const dst_key_t *key1, const dst_key_t *key2) { else if (hkey1 == NULL || hkey2 == NULL) return (ISC_FALSE); - if (isc_safe_memcmp(hkey1->key, hkey2->key, ISC_SHA384_BLOCK_LENGTH)) + if (isc_safe_memequal(hkey1->key, hkey2->key, ISC_SHA384_BLOCK_LENGTH)) return (ISC_TRUE); else return (ISC_FALSE); @@ -1346,6 +1354,8 @@ hmacsha384_fromdns(dst_key_t *key, isc_buffer_t *data) { key->key_size = keylen * 8; key->keydata.hmacsha384 = hkey; + isc_buffer_forward(data, r.length); + return (ISC_R_SUCCESS); } @@ -1525,7 +1535,7 @@ hmacsha512_compare(const dst_key_t *key1, const dst_key_t *key2) { else if (hkey1 == NULL || hkey2 == NULL) return (ISC_FALSE); - if (isc_safe_memcmp(hkey1->key, hkey2->key, ISC_SHA512_BLOCK_LENGTH)) + if (isc_safe_memequal(hkey1->key, hkey2->key, ISC_SHA512_BLOCK_LENGTH)) return (ISC_TRUE); else return (ISC_FALSE); @@ -1624,6 +1634,8 @@ hmacsha512_fromdns(dst_key_t *key, isc_buffer_t *data) { key->key_size = keylen * 8; key->keydata.hmacsha512 = hkey; + isc_buffer_forward(data, r.length); + return (ISC_R_SUCCESS); } diff --git a/lib/dns/include/dns/adb.h b/lib/dns/include/dns/adb.h index 8222bd211006..12dd1190c3ca 100644 --- a/lib/dns/include/dns/adb.h +++ b/lib/dns/include/dns/adb.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2008, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008, 2011, 2013-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -206,6 +206,11 @@ struct dns_adbfind { * Must set _WANTEVENT for this to be meaningful. */ #define DNS_ADBFIND_LAMEPRUNED 0x00000200 +/*% + * The server's fetch quota is exceeded; it will be treated as + * lame for this query. + */ +#define DNS_ADBFIND_OVERQUOTA 0x00000400 /*% * The answers to queries come back as a list of these. @@ -583,6 +588,30 @@ dns_adb_changeflags(dns_adb_t *adb, dns_adbaddrinfo_t *addr, *\li addr be valid. */ +void +dns_adb_plainresponse(dns_adb_t *adb, dns_adbaddrinfo_t *addr); +/*% + * Record a successful DNS response. + * + * Requires: + * + *\li adb be valid. + * + *\li addr be valid. + */ + +void +dns_adb_timeout(dns_adb_t *adb, dns_adbaddrinfo_t *addr); +/*% + * Record a DNS UDP query failed. + * + * Requires: + * + *\li adb be valid. + * + *\li addr be valid. + */ + isc_result_t dns_adb_findaddrinfo(dns_adb_t *adb, isc_sockaddr_t *sa, dns_adbaddrinfo_t **addrp, isc_stdtime_t now); @@ -647,6 +676,64 @@ dns_adb_flushname(dns_adb_t *adb, dns_name_t *name); *\li 'name' is valid. */ +void +dns_adb_setquota(dns_adb_t *adb, isc_uint32_t quota, isc_uint32_t freq, + double low, double high, double discount); +/*%< + * Set the baseline ADB quota, and configure parameters for the + * quota adjustment algorithm. + * + * If the number of fetches currently waiting for responses from this + * address exceeds the current quota, then additional fetches are spilled. + * + * 'quota' is the highest permissible quota; it will adjust itself + * downward in response to detected congestion. + * + * After every 'freq' fetches have either completed or timed out, an + * exponentially weighted moving average of the ratio of timeouts + * to responses is calculated. If the EWMA goes above a 'high' + * threshold, then the quota is adjusted down one step; if it drops + * below a 'low' threshold, then the quota is adjusted back up one + * step. + * + * The quota adjustment is based on the function (1 / 1 + (n/10)^(3/2)), + * for values of n from 0 to 99. It starts at 100% of the baseline + * quota, and descends after 100 steps to 2%. + * + * 'discount' represents the discount rate of the moving average. Higher + * values cause older values to be discounted sooner, providing a faster + * response to changes in the timeout ratio. + * + * Requires: + *\li 'adb' is valid. + */ + +isc_boolean_t +dns_adbentry_overquota(dns_adbentry_t *entry); +/*%< + * Returns true if the specified ADB has too many active fetches. + * + * Requires: + *\li 'entry' is valid. + */ + +void +dns_adb_beginudpfetch(dns_adb_t *adb, dns_adbaddrinfo_t *addr); +void +dns_adb_endudpfetch(dns_adb_t *adb, dns_adbaddrinfo_t *addr); +/*% + * Begin/end a UDP fetch on a particular address. + * + * These functions increment or decrement the fetch counter for + * the ADB entry so that the fetch quota can be enforced. + * + * Requires: + * + *\li adb be valid. + * + *\li addr be valid. + */ + ISC_LANG_ENDDECLS #endif /* DNS_ADB_H */ diff --git a/lib/dns/include/dns/log.h b/lib/dns/include/dns/log.h index 488b48e33de2..e7670f806e41 100644 --- a/lib/dns/include/dns/log.h +++ b/lib/dns/include/dns/log.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: log.h,v 1.47 2011/10/13 22:48:24 tbox Exp $ */ - /*! \file dns/log.h * \author Principal Authors: DCL */ @@ -45,6 +43,7 @@ LIBDNS_EXTERNAL_DATA extern isc_logmodule_t dns_modules[]; #define DNS_LOGCATEGORY_RPZ (&dns_categories[12]) #define DNS_LOGCATEGORY_RRL (&dns_categories[13]) #define DNS_LOGCATEGORY_CNAME (&dns_categories[14]) +#define DNS_LOGCATEGORY_SPILL (&dns_categories[15]) /* Backwards compatibility. */ #define DNS_LOGCATEGORY_GENERAL ISC_LOGCATEGORY_GENERAL diff --git a/lib/dns/include/dns/message.h b/lib/dns/include/dns/message.h index c678238d2224..76f78bfdfb80 100644 --- a/lib/dns/include/dns/message.h +++ b/lib/dns/include/dns/message.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2010, 2012-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2010, 2012-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -107,9 +107,10 @@ #define DNS_OPT_NSID 0x0003 /*%< NSID opt code */ #define DNS_OPT_CLIENT_SUBNET 0x0008 /*%< client subnet opt code */ #define DNS_OPT_EXPIRE 0x0009 /*%< EXPIRE opt code */ +#define DNS_OPT_COOKIE 0x000a /*%< COOKIE opt code */ /*%< The number of EDNS options we know about. */ -#define DNS_EDNSOPTIONS 3 +#define DNS_EDNSOPTIONS 4 #define DNS_MESSAGE_REPLYPRESERVE (DNS_MESSAGEFLAG_RD|DNS_MESSAGEFLAG_CD) #define DNS_MESSAGEEXTFLAG_REPLYPRESERVE (DNS_MESSAGEEXTFLAG_DO) @@ -193,7 +194,7 @@ struct dns_message { dns_messageid_t id; unsigned int flags; dns_rcode_t rcode; - unsigned int opcode; + dns_opcode_t opcode; dns_rdataclass_t rdclass; /* 4 real, 1 pseudo */ diff --git a/lib/dns/include/dns/name.h b/lib/dns/include/dns/name.h index 1a88e53264b4..d6e9a90c1eb5 100644 --- a/lib/dns/include/dns/name.h +++ b/lib/dns/include/dns/name.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2009-2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -989,10 +989,6 @@ dns_name_split(dns_name_t *name, unsigned int suffixlabels, * *\li 'suffix' is a valid name or NULL, and cannot be read-only. * - *\li If non-NULL, 'prefix' and 'suffix' must have dedicated buffers. - * - *\li 'prefix' and 'suffix' cannot point to the same buffer. - * * Ensures: * *\li On success: @@ -1161,6 +1157,7 @@ dns_name_tostring(dns_name_t *source, char **target, isc_mem_t *mctx); * Returns: * *\li ISC_R_SUCCESS + *\li ISC_R_NOMEMORY * *\li Any error that dns_name_totext() can return. */ @@ -1283,6 +1280,12 @@ dns_name_destroy(void); * non-NULL argument prior to calling dns_name_destroy(); */ +isc_boolean_t +dns_name_isdnssd(const dns_name_t *owner); +/*%< + * Determine if the 'owner' is a DNS-SD prefix. + */ + ISC_LANG_ENDDECLS /* diff --git a/lib/dns/include/dns/resolver.h b/lib/dns/include/dns/resolver.h index a533f4ed2b24..5ea2279eec37 100644 --- a/lib/dns/include/dns/resolver.h +++ b/lib/dns/include/dns/resolver.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: resolver.h,v 1.72 2011/12/05 17:10:51 each Exp $ */ - #ifndef DNS_RESOLVER_H #define DNS_RESOLVER_H 1 @@ -54,6 +52,7 @@ #include <isc/lang.h> #include <isc/socket.h> +#include <isc/stats.h> #include <dns/types.h> #include <dns/fixedname.h> @@ -84,6 +83,14 @@ typedef struct dns_fetchevent { isc_result_t vresult; } dns_fetchevent_t; +/*% + * The two quota types (fetches-per-zone and fetches-per-server) + */ +typedef enum { + dns_quotatype_zone = 0, + dns_quotatype_server +} dns_quotatype_t; + /* * Options that modify how a 'fetch' is done. */ @@ -532,6 +539,8 @@ dns_resolver_gettimeout(dns_resolver_t *resolver); void dns_resolver_setclientsperquery(dns_resolver_t *resolver, isc_uint32_t min, isc_uint32_t max); +void +dns_resolver_setfetchesperzone(dns_resolver_t *resolver, isc_uint32_t clients); void dns_resolver_getclientsperquery(dns_resolver_t *resolver, isc_uint32_t *cur, @@ -612,6 +621,30 @@ dns_resolver_getmaxqueries(dns_resolver_t *resolver); * \li resolver to be valid. */ +void +dns_resolver_dumpfetches(dns_resolver_t *resolver, FILE *fp); + +void +dns_resolver_setquotaresponse(dns_resolver_t *resolver, + dns_quotatype_t which, isc_result_t resp); +isc_result_t +dns_resolver_getquotaresponse(dns_resolver_t *resolver, dns_quotatype_t which); +/*% + * Get and set the result code that will be used when quotas + * are exceeded. If 'which' is set to quotatype "zone", then the + * result specified in 'resp' will be used when the fetches-per-zone + * quota is exceeded by a fetch. If 'which' is set to quotatype "server", + * then the reuslt specified in 'resp' will be used when the + * fetches-per-server quota has been exceeded for all the + * authoritative servers for a zone. Valid choices are + * DNS_R_DROP or DNS_R_SERVFAIL. + * + * Requires: + * \li 'resolver' to be valid. + * \li 'which' to be dns_quotatype_zone or dns_quotatype_server + * \li 'resp' to be DNS_R_DROP or DNS_R_SERVFAIL. + */ + ISC_LANG_ENDDECLS #endif /* DNS_RESOLVER_H */ diff --git a/lib/dns/include/dns/result.h b/lib/dns/include/dns/result.h index 12aacf9ba78a..7d11c2beb01e 100644 --- a/lib/dns/include/dns/result.h +++ b/lib/dns/include/dns/result.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -153,8 +153,12 @@ #define DNS_R_EXPIRED (ISC_RESULTCLASS_DNS + 107) #define DNS_R_NOTDYNAMIC (ISC_RESULTCLASS_DNS + 108) #define DNS_R_BADEUI (ISC_RESULTCLASS_DNS + 109) +#define DNS_R_NTACOVERED (ISC_RESULTCLASS_DNS + 110) +#define DNS_R_BADCDS (ISC_RESULTCLASS_DNS + 111) +#define DNS_R_BADCDNSKEY (ISC_RESULTCLASS_DNS + 112) +#define DNS_R_OPTERR (ISC_RESULTCLASS_DNS + 113) -#define DNS_R_NRESULTS 110 /*%< Number of results */ +#define DNS_R_NRESULTS 114 /*%< Number of results */ /* * DNS wire format rcodes. diff --git a/lib/dns/include/dns/rrl.h b/lib/dns/include/dns/rrl.h index ef6b72b4280d..140b99436aa9 100644 --- a/lib/dns/include/dns/rrl.h +++ b/lib/dns/include/dns/rrl.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2013, 2015 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 @@ -90,16 +90,17 @@ typedef enum { */ #define DNS_RRL_MAX_PREFIX 64 typedef union dns_rrl_key dns_rrl_key_t; +struct dns__rrl_key { + isc_uint32_t ip[DNS_RRL_MAX_PREFIX/32]; + isc_uint32_t qname_hash; + dns_rdatatype_t qtype; + isc_uint8_t qclass; + dns_rrl_rtype_t rtype :4; /* 3 bits + sign bit */ + isc_boolean_t ipv6 :1; +}; union dns_rrl_key { - struct { - isc_uint32_t ip[DNS_RRL_MAX_PREFIX/32]; - isc_uint32_t qname_hash; - dns_rdatatype_t qtype; - isc_uint8_t qclass; - dns_rrl_rtype_t rtype :4; /* 3 bits + sign bit */ - isc_boolean_t ipv6 :1; - } s; - isc_uint16_t w[1]; + struct dns__rrl_key s; + isc_uint16_t w[sizeof(struct dns__rrl_key)/sizeof(isc_uint16_t)]; }; /* diff --git a/lib/dns/include/dns/stats.h b/lib/dns/include/dns/stats.h index 5364267272a0..b033163db682 100644 --- a/lib/dns/include/dns/stats.h +++ b/lib/dns/include/dns/stats.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2009, 2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2009, 2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -61,8 +61,10 @@ enum { dns_resstatscounter_queryrtt3 = 27, dns_resstatscounter_queryrtt4 = 28, dns_resstatscounter_queryrtt5 = 29, + dns_resstatscounter_zonequota = 30, + dns_resstatscounter_serverquota = 31, - dns_resstatscounter_max = 30, + dns_resstatscounter_max = 32, /* * DNSSEC stats. diff --git a/lib/dns/include/dns/types.h b/lib/dns/include/dns/types.h index 76167c2f88da..54194aa2a920 100644 --- a/lib/dns/include/dns/types.h +++ b/lib/dns/include/dns/types.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -127,6 +127,7 @@ typedef struct dns_tsec dns_tsec_t; typedef struct dns_tsig_keyring dns_tsig_keyring_t; typedef struct dns_tsigkey dns_tsigkey_t; typedef isc_uint32_t dns_ttl_t; +typedef struct dns_update_state dns_update_state_t; typedef struct dns_validator dns_validator_t; typedef struct dns_view dns_view_t; typedef ISC_LIST(dns_view_t) dns_viewlist_t; diff --git a/lib/dns/include/dns/update.h b/lib/dns/include/dns/update.h index 2d2c491f38a3..d08bea7e0b0a 100644 --- a/lib/dns/include/dns/update.h +++ b/lib/dns/include/dns/update.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2011, 2015 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 @@ -59,6 +59,12 @@ dns_update_signatures(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *oldver, dns_dbversion_t *newver, dns_diff_t *diff, isc_uint32_t sigvalidityinterval); +isc_result_t +dns_update_signaturesinc(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db, + dns_dbversion_t *oldver, dns_dbversion_t *newver, + dns_diff_t *diff, isc_uint32_t sigvalidityinterval, + dns_update_state_t **state); + ISC_LANG_ENDDECLS #endif /* DNS_UPDATE_H */ diff --git a/lib/dns/include/dns/zone.h b/lib/dns/include/dns/zone.h index 9efa1e729767..987d06f70cec 100644 --- a/lib/dns/include/dns/zone.h +++ b/lib/dns/include/dns/zone.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -331,6 +331,15 @@ dns_zone_asyncload(dns_zone_t *zone, dns_zt_zoneloaded_t done, void *arg); * its first argument and 'zone' as its second. (Normally, 'arg' is * expected to point to the zone table but is left undefined for testing * purposes.) + * + * Require: + *\li 'zone' to be a valid zone. + * + * Returns: + *\li #ISC_R_ALREADYRUNNING + *\li #ISC_R_SUCCESS + *\li #ISC_R_FAILURE + *\li #ISC_R_NOMEMORY */ isc_boolean_t @@ -1791,6 +1800,16 @@ dns_zone_name(dns_zone_t *zone, char *buf, size_t len); *\li 'buf' to be non NULL. */ +void +dns_zone_nameonly(dns_zone_t *zone, char *buf, size_t len); +/*%< + * Return the name of the zone only. + * + * Requires: + *\li 'zone' to be valid. + *\li 'buf' to be non NULL. + */ + isc_result_t dns_zone_checknames(dns_zone_t *zone, dns_name_t *name, dns_rdata_t *rdata); /*%< @@ -1894,6 +1913,12 @@ dns_zone_setsignatures(dns_zone_t *zone, isc_uint32_t signatures); * Set the number of signatures that will be generated per quantum. */ +isc_uint32_t +dns_zone_getsignatures(dns_zone_t *zone); +/*%< + * Get the number of signatures that will be generated per quantum. + */ + isc_result_t dns_zone_signwithkey(dns_zone_t *zone, dns_secalg_t algorithm, isc_uint16_t keyid, isc_boolean_t deleteit); @@ -1946,6 +1971,23 @@ dns_zone_nscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version, * ISC_R_SUCCESS if there were no errors examining the zone contents. */ +isc_result_t +dns_zone_cdscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version); +/*% + * Check if CSD, CDNSKEY and DNSKEY are consistent. + * + * Requires: + * \li 'zone' to be valid. + * \li 'db' to be valid. + * \li 'version' to be valid or NULL. + * + * Returns: + *\li #ISC_R_SUCCESS + *\li #DNS_R_BADCDS + *\li #DNS_R_BADCDNSKEY + * Others + */ + void dns_zone_setadded(dns_zone_t *zone, isc_boolean_t added); /*% diff --git a/lib/dns/include/dst/dst.h b/lib/dns/include/dst/dst.h index 1fdce4cc44d7..1497edcb6561 100644 --- a/lib/dns/include/dst/dst.h +++ b/lib/dns/include/dst/dst.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -69,6 +69,7 @@ typedef struct dst_context dst_context_t; #define DST_ALG_HMACSHA256 163 /* XXXMPA */ #define DST_ALG_HMACSHA384 164 /* XXXMPA */ #define DST_ALG_HMACSHA512 165 /* XXXMPA */ +#define DST_ALG_INDIRECT 252 #define DST_ALG_PRIVATE 254 #define DST_ALG_EXPAND 255 #define DST_MAX_ALGS 255 diff --git a/lib/dns/journal.c b/lib/dns/journal.c index a21ec2e8a348..4811ebbd80b6 100644 --- a/lib/dns/journal.c +++ b/lib/dns/journal.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007-2011, 2013-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -25,6 +25,7 @@ #include <isc/file.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/stdio.h> #include <isc/string.h> #include <isc/util.h> @@ -555,7 +556,7 @@ journal_file_create(isc_mem_t *mctx, const char *filename) { } static isc_result_t -journal_open(isc_mem_t *mctx, const char *filename, isc_boolean_t write, +journal_open(isc_mem_t *mctx, const char *filename, isc_boolean_t writable, isc_boolean_t create, dns_journal_t **journalp) { FILE *fp = NULL; @@ -579,7 +580,7 @@ journal_open(isc_mem_t *mctx, const char *filename, isc_boolean_t write, if (j->filename == NULL) FAIL(ISC_R_NOMEMORY); - result = isc_stdio_open(j->filename, write ? "rb+" : "rb", &fp); + result = isc_stdio_open(j->filename, writable ? "rb+" : "rb", &fp); if (result == ISC_R_FILENOTFOUND) { if (create) { @@ -669,7 +670,7 @@ journal_open(isc_mem_t *mctx, const char *filename, isc_boolean_t write, dns_decompress_init(&j->it.dctx, -1, DNS_DECOMPRESS_NONE); j->state = - write ? JOURNAL_STATE_WRITE : JOURNAL_STATE_READ; + writable ? JOURNAL_STATE_WRITE : JOURNAL_STATE_READ; *journalp = j; return (ISC_R_SUCCESS); @@ -696,12 +697,12 @@ dns_journal_open(isc_mem_t *mctx, const char *filename, unsigned int mode, isc_result_t result; size_t namelen; char backup[1024]; - isc_boolean_t write, create; + isc_boolean_t writable, create; create = ISC_TF(mode & DNS_JOURNAL_CREATE); - write = ISC_TF(mode & (DNS_JOURNAL_WRITE|DNS_JOURNAL_CREATE)); + writable = ISC_TF(mode & (DNS_JOURNAL_WRITE|DNS_JOURNAL_CREATE)); - result = journal_open(mctx, filename, write, create, journalp); + result = journal_open(mctx, filename, writable, create, journalp); if (result == ISC_R_NOTFOUND) { namelen = strlen(filename); if (namelen > 4U && strcmp(filename + namelen - 4, ".jnl") == 0) @@ -711,7 +712,8 @@ dns_journal_open(isc_mem_t *mctx, const char *filename, unsigned int mode, (int)namelen, filename); if (result != ISC_R_SUCCESS) return (result); - result = journal_open(mctx, backup, write, write, journalp); + result = journal_open(mctx, backup, writable, writable, + journalp); } return (result); } @@ -2110,6 +2112,8 @@ dns_journal_compact(isc_mem_t *mctx, char *filename, isc_uint32_t serial, char backup[1024]; isc_boolean_t is_backup = ISC_FALSE; + REQUIRE(filename != NULL); + namelen = strlen(filename); if (namelen > 4U && strcmp(filename + namelen - 4, ".jnl") == 0) namelen -= 4; diff --git a/lib/dns/keytable.c b/lib/dns/keytable.c index 29f129ffbf5f..2ed49ffd311d 100644 --- a/lib/dns/keytable.c +++ b/lib/dns/keytable.c @@ -22,6 +22,7 @@ #include <config.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/rwlock.h> #include <isc/string.h> /* Required for HP/UX (and others?) */ #include <isc/util.h> diff --git a/lib/dns/log.c b/lib/dns/log.c index 70055aaf887b..7ebe015749b7 100644 --- a/lib/dns/log.c +++ b/lib/dns/log.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: log.c,v 1.49 2011/10/13 22:48:24 tbox Exp $ */ - /*! \file */ /* Principal Authors: DCL */ @@ -47,6 +45,7 @@ LIBDNS_EXTERNAL_DATA isc_logcategory_t dns_categories[] = { { "rpz", 0 }, { "rate-limit", 0 }, { "cname", 0 }, + { "spill", 0 }, { NULL, 0 } }; diff --git a/lib/dns/master.c b/lib/dns/master.c index 1fde70c3b6ec..4dba0d7c5558 100644 --- a/lib/dns/master.c +++ b/lib/dns/master.c @@ -280,7 +280,7 @@ loadctx_destroy(dns_loadctx_t *lctx); SETRESULT(lctx, result); \ LOGIT(result); \ read_till_eol = ISC_TRUE; \ - continue; \ + break; \ } else if (result != ISC_R_SUCCESS) \ goto log_and_cleanup; \ } \ @@ -352,7 +352,6 @@ static const dns_name_t ip6_arpa = {NULL, NULL} }; - static inline isc_result_t gettoken(isc_lex_t *lex, unsigned int options, isc_token_t *token, isc_boolean_t eol, dns_rdatacallbacks_t *callbacks) @@ -860,8 +859,6 @@ generate(dns_loadctx_t *lctx, char *range, char *lhs, char *gtype, char *rhs, goto insist_cleanup; } - ISC_LIST_INIT(rdatalist.rdata); - ISC_LINK_INIT(&rdatalist, link); for (i = start; i <= stop; i += step) { result = genname(lhs, i, lhsbuf, DNS_MASTER_LHS); if (result != ISC_R_SUCCESS) @@ -911,8 +908,8 @@ generate(dns_loadctx_t *lctx, char *range, char *lhs, char *gtype, char *rhs, if (result != ISC_R_SUCCESS) goto error_cleanup; + dns_rdatalist_init(&rdatalist); rdatalist.type = type; - rdatalist.covers = 0; rdatalist.rdclass = lctx->zclass; rdatalist.ttl = lctx->ttl; ISC_LIST_PREPEND(head, &rdatalist, link); @@ -1793,6 +1790,7 @@ load_text(dns_loadctx_t *lctx) { } } if (type == dns_rdatatype_ptr && + !dns_name_isdnssd(name) && (dns_name_issubdomain(name, &in_addr_arpa) || dns_name_issubdomain(name, &ip6_arpa) || dns_name_issubdomain(name, &ip6_int))) @@ -1950,11 +1948,11 @@ load_text(dns_loadctx_t *lctx) { rdatalist_size += RDLSZ; } this = &rdatalist[rdlcount++]; + dns_rdatalist_init(this); this->type = type; this->covers = covers; this->rdclass = lctx->zclass; this->ttl = lctx->ttl; - ISC_LIST_INIT(this->rdata); if (ictx->glue != NULL) ISC_LIST_INITANDPREPEND(glue_list, this, link); else @@ -2200,7 +2198,6 @@ load_raw(dns_loadctx_t *lctx) { ISC_LIST_INIT(head); ISC_LIST_INIT(dummy); - dns_rdatalist_init(&rdatalist); /* * Allocate target_size of buffer space. This is greater than twice @@ -2291,6 +2288,7 @@ load_raw(dns_loadctx_t *lctx) { isc_buffer_add(&target, (unsigned int)readlen); /* Construct RRset headers */ + dns_rdatalist_init(&rdatalist); rdatalist.rdclass = isc_buffer_getuint16(&target); rdatalist.type = isc_buffer_getuint16(&target); rdatalist.covers = isc_buffer_getuint16(&target); diff --git a/lib/dns/message.c b/lib/dns/message.c index b95e48ea2641..cd0e89b8d20e 100644 --- a/lib/dns/message.c +++ b/lib/dns/message.c @@ -42,6 +42,7 @@ #include <dns/rdatastruct.h> #include <dns/result.h> #include <dns/tsig.h> +#include <dns/ttl.h> #include <dns/view.h> #ifdef SKAN_MSG_DEBUG @@ -329,7 +330,7 @@ newrdatalist(dns_message_t *msg) { rdatalist = ISC_LIST_HEAD(msg->freerdatalist); if (rdatalist != NULL) { ISC_LIST_UNLINK(msg->freerdatalist, rdatalist, link); - return (rdatalist); + goto out; } msgblock = ISC_LIST_TAIL(msg->rdatalists); @@ -345,6 +346,9 @@ newrdatalist(dns_message_t *msg) { rdatalist = msgblock_get(msgblock, dns_rdatalist_t); } + out: + if (rdatalist != NULL) + dns_rdatalist_init(rdatalist); return (rdatalist); } @@ -1825,9 +1829,19 @@ wrong_priority(dns_rdataset_t *rds, int pass, dns_rdatatype_t preferred_glue) { * Decide whether to not answer with an AAAA record and its RRSIG */ static inline isc_boolean_t -norender_rdataset(const dns_rdataset_t *rdataset, unsigned int options) +norender_rdataset(const dns_rdataset_t *rdataset, unsigned int options, + dns_section_t sectionid) { + if (sectionid == DNS_SECTION_QUESTION) + return (ISC_FALSE); + switch (rdataset->type) { + case dns_rdatatype_ns: + if ((options & DNS_MESSAGERENDER_FILTER_AAAA) == 0 || + sectionid != DNS_SECTION_AUTHORITY) + return (ISC_FALSE); + break; + case dns_rdatatype_aaaa: if ((options & DNS_MESSAGERENDER_FILTER_AAAA) == 0) return (ISC_FALSE); @@ -1835,7 +1849,11 @@ norender_rdataset(const dns_rdataset_t *rdataset, unsigned int options) case dns_rdatatype_rrsig: if ((options & DNS_MESSAGERENDER_FILTER_AAAA) == 0 || - rdataset->covers != dns_rdatatype_aaaa) + (rdataset->covers != dns_rdatatype_ns && + rdataset->covers != dns_rdatatype_aaaa)) + return (ISC_FALSE); + if ((rdataset->covers == dns_rdatatype_ns) && + (sectionid != DNS_SECTION_AUTHORITY)) return (ISC_FALSE); break; @@ -1983,8 +2001,7 @@ dns_message_rendersection(dns_message_t *msg, dns_section_t sectionid, * not doing DNSSEC or are breaking DNSSEC. * Say so in the AD bit if we break DNSSEC. */ - if (norender_rdataset(rdataset, options) && - sectionid != DNS_SECTION_QUESTION) { + if (norender_rdataset(rdataset, options, sectionid)) { if (sectionid == DNS_SECTION_ANSWER || sectionid == DNS_SECTION_AUTHORITY) msg->flags &= ~DNS_MESSAGEFLAG_AD; @@ -2532,7 +2549,7 @@ dns_message_peekheader(isc_buffer_t *source, dns_messageid_t *idp, isc_result_t dns_message_reply(dns_message_t *msg, isc_boolean_t want_question_section) { - unsigned int clear_after; + unsigned int clear_from; isc_result_t result; REQUIRE(DNS_MESSAGE_VALID(msg)); @@ -2544,15 +2561,15 @@ dns_message_reply(dns_message_t *msg, isc_boolean_t want_question_section) { msg->opcode != dns_opcode_notify) want_question_section = ISC_FALSE; if (msg->opcode == dns_opcode_update) - clear_after = DNS_SECTION_PREREQUISITE; + clear_from = DNS_SECTION_PREREQUISITE; else if (want_question_section) { if (!msg->question_ok) return (DNS_R_FORMERR); - clear_after = DNS_SECTION_ANSWER; + clear_from = DNS_SECTION_ANSWER; } else - clear_after = DNS_SECTION_QUESTION; + clear_from = DNS_SECTION_QUESTION; msg->from_to_wire = DNS_MESSAGE_INTENTRENDER; - msgresetnames(msg, clear_after); + msgresetnames(msg, clear_from); msgresetopt(msg); msgresetsigs(msg, ISC_TRUE); msginitprivate(msg); @@ -2752,7 +2769,6 @@ dns_message_setquerytsig(dns_message_t *msg, isc_buffer_t *querytsig) { dns_rdata_init(rdata); dns_rdata_fromregion(rdata, dns_rdataclass_any, dns_rdatatype_tsig, &r); dns_message_takebuffer(msg, &buf); - ISC_LIST_INIT(list->rdata); ISC_LIST_APPEND(list->rdata, rdata, link); result = dns_rdatalist_tordataset(list, set); if (result != ISC_R_SUCCESS) @@ -3264,6 +3280,21 @@ dns_message_pseudosectiontotext(dns_message_t *msg, if (optcode == DNS_OPT_NSID) { ADD_STRING(target, "; NSID"); + } else if (optcode == DNS_OPT_COOKIE) { + ADD_STRING(target, "; COOKIE"); + } else if (optcode == DNS_OPT_EXPIRE) { + if (optlen == 4) { + isc_uint32_t secs; + secs = isc_buffer_getuint32(&optbuf); + ADD_STRING(target, "; EXPIRE: "); + snprintf(buf, sizeof(buf), "%u", secs); + ADD_STRING(target, buf); + ADD_STRING(target, " ("); + dns_ttl_totext(secs, ISC_TRUE, target); + ADD_STRING(target, ")\n"); + continue; + } + ADD_STRING(target, "; EXPIRE"); } else { ADD_STRING(target, "; OPT="); snprintf(buf, sizeof(buf), "%u", optcode); @@ -3276,10 +3307,31 @@ dns_message_pseudosectiontotext(dns_message_t *msg, optdata = isc_buffer_current(&optbuf); for (i = 0; i < optlen; i++) { - sprintf(buf, "%02x ", optdata[i]); + const char *sep; + switch (optcode) { + case DNS_OPT_COOKIE: + sep = ""; + break; + default: + sep = " "; + break; + } + snprintf(buf, sizeof(buf), "%02x%s", + optdata[i], sep); ADD_STRING(target, buf); } + isc_buffer_forward(&optbuf, optlen); + + if (optcode == DNS_OPT_COOKIE) { + ADD_STRING(target, "\n"); + continue; + } + + /* + * For non-COOKIE options, add a printable + * version + */ for (i = 0; i < optlen; i++) { ADD_STRING(target, " ("); if (!isc_buffer_availablelength(target)) @@ -3292,7 +3344,6 @@ dns_message_pseudosectiontotext(dns_message_t *msg, isc_buffer_putstr(target, "."); ADD_STRING(target, ")"); } - isc_buffer_forward(&optbuf, optlen); } ADD_STRING(target, "\n"); } @@ -3497,7 +3548,6 @@ dns_message_buildopt(dns_message_t *message, dns_rdataset_t **rdatasetp, dns_rdataset_init(rdataset); rdatalist->type = dns_rdatatype_opt; - rdatalist->covers = 0; /* * Set Maximum UDP buffer size. @@ -3545,7 +3595,6 @@ dns_message_buildopt(dns_message_t *message, dns_rdataset_t **rdatasetp, rdata->type = rdatalist->type; rdata->flags = 0; - ISC_LIST_INIT(rdatalist->rdata); ISC_LIST_APPEND(rdatalist->rdata, rdata, link); result = dns_rdatalist_tordataset(rdatalist, rdataset); RUNTIME_CHECK(result == ISC_R_SUCCESS); diff --git a/lib/dns/name.c b/lib/dns/name.c index 3b7ff3f962bf..6db373c03b0e 100644 --- a/lib/dns/name.c +++ b/lib/dns/name.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -2114,11 +2114,9 @@ dns_name_split(dns_name_t *name, unsigned int suffixlabels, REQUIRE(prefix != NULL || suffix != NULL); REQUIRE(prefix == NULL || (VALID_NAME(prefix) && - prefix->buffer != NULL && BINDABLE(prefix))); REQUIRE(suffix == NULL || (VALID_NAME(suffix) && - suffix->buffer != NULL && BINDABLE(suffix))); splitlabel = name->labels - suffixlabels; @@ -2387,6 +2385,8 @@ dns_name_tostring(dns_name_t *name, char **target, isc_mem_t *mctx) { isc_buffer_usedregion(&buf, ®); p = isc_mem_allocate(mctx, reg.length + 1); + if (p == NULL) + return (ISC_R_NOMEMORY); memmove(p, (char *) reg.base, (int) reg.length); p[reg.length] = '\0'; @@ -2501,3 +2501,76 @@ dns_name_destroy(void) { #endif } + +/* + * Service Discovery Prefixes RFC 6763. + */ +static unsigned char b_dns_sd_udp_data[] = "\001b\007_dns-sd\004_udp"; +static unsigned char b_dns_sd_udp_offsets[] = { 0, 2, 10 }; +static unsigned char db_dns_sd_udp_data[] = "\002db\007_dns-sd\004_udp"; +static unsigned char db_dns_sd_udp_offsets[] = { 0, 3, 11 }; +static unsigned char r_dns_sd_udp_data[] = "\001r\007_dns-sd\004_udp"; +static unsigned char r_dns_sd_udp_offsets[] = { 0, 2, 10 }; +static unsigned char dr_dns_sd_udp_data[] = "\002dr\007_dns-sd\004_udp"; +static unsigned char dr_dns_sd_udp_offsets[] = { 0, 3, 11 }; +static unsigned char lb_dns_sd_udp_data[] = "\002lb\007_dns-sd\004_udp"; +static unsigned char lb_dns_sd_udp_offsets[] = { 0, 3, 11 }; + +static const dns_name_t dns_sd[] = { + { + DNS_NAME_MAGIC, + b_dns_sd_udp_data, 15, 3, + DNS_NAMEATTR_READONLY, + b_dns_sd_udp_offsets, NULL, + {(void *)-1, (void *)-1}, + {NULL, NULL} + }, + { + DNS_NAME_MAGIC, + db_dns_sd_udp_data, 16, 3, + DNS_NAMEATTR_READONLY, + db_dns_sd_udp_offsets, NULL, + {(void *)-1, (void *)-1}, + {NULL, NULL} + }, + { + DNS_NAME_MAGIC, + r_dns_sd_udp_data, 15, 3, + DNS_NAMEATTR_READONLY, + r_dns_sd_udp_offsets, NULL, + {(void *)-1, (void *)-1}, + {NULL, NULL} + }, + { + DNS_NAME_MAGIC, + dr_dns_sd_udp_data, 16, 3, + DNS_NAMEATTR_READONLY, + dr_dns_sd_udp_offsets, NULL, + {(void *)-1, (void *)-1}, + {NULL, NULL} + }, + { + DNS_NAME_MAGIC, + lb_dns_sd_udp_data, 16, 3, + DNS_NAMEATTR_READONLY, + lb_dns_sd_udp_offsets, NULL, + {(void *)-1, (void *)-1}, + {NULL, NULL} + } +}; + +isc_boolean_t +dns_name_isdnssd(const dns_name_t *name) { + size_t i; + dns_name_t prefix; + + if (dns_name_countlabels(name) > 3U) { + dns_name_init(&prefix, NULL); + dns_name_getlabelsequence(name, 0, 3, &prefix); + for (i = 0; i < (sizeof(dns_sd)/sizeof(dns_sd[0])); i++) + if (dns_name_equal(&prefix, &dns_sd[i])) + return (ISC_TRUE); + } + + return (ISC_FALSE); +} diff --git a/lib/dns/ncache.c b/lib/dns/ncache.c index bcb3d057898d..013cba8a21c6 100644 --- a/lib/dns/ncache.c +++ b/lib/dns/ncache.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2008, 2010-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2008, 2010-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -151,12 +151,10 @@ addoptout(dns_message_t *message, dns_db_t *cache, dns_dbnode_t *node, /* * Initialize the list. */ + dns_rdatalist_init(&ncrdatalist); ncrdatalist.rdclass = dns_db_class(cache); - ncrdatalist.type = 0; ncrdatalist.covers = covers; ncrdatalist.ttl = maxttl; - ISC_LIST_INIT(ncrdatalist.rdata); - ISC_LINK_INIT(&ncrdatalist, link); /* * Build an ncache rdatas into buffer. @@ -614,13 +612,11 @@ dns_ncache_getsigrdataset(dns_rdataset_t *ncacherdataset, dns_name_t *name, dns_name_fromregion(&tname, &remaining); INSIST(remaining.length >= tname.length); isc_buffer_forward(&source, tname.length); - remaining.length -= tname.length; - remaining.base += tname.length; + isc_region_consume(&remaining, tname.length); INSIST(remaining.length >= 2); type = isc_buffer_getuint16(&source); - remaining.length -= 2; - remaining.base += 2; + isc_region_consume(&remaining, 2); if (type != dns_rdatatype_rrsig || !dns_name_equal(&tname, name)) { @@ -632,8 +628,7 @@ dns_ncache_getsigrdataset(dns_rdataset_t *ncacherdataset, dns_name_t *name, INSIST(remaining.length >= 1); trust = isc_buffer_getuint8(&source); INSIST(trust <= dns_trust_ultimate); - remaining.length -= 1; - remaining.base += 1; + isc_region_consume(&remaining, 1); raw = remaining.base; count = raw[0] * 256 + raw[1]; diff --git a/lib/dns/nsec.c b/lib/dns/nsec.c index 6183ef281c02..f04a4c1ce454 100644 --- a/lib/dns/nsec.c +++ b/lib/dns/nsec.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007-2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -189,11 +189,10 @@ dns_nsec_build(dns_db_t *db, dns_dbversion_t *version, dns_dbnode_t *node, RETERR(dns_nsec_buildrdata(db, version, node, target, data, &rdata)); + dns_rdatalist_init(&rdatalist); rdatalist.rdclass = dns_db_class(db); rdatalist.type = dns_rdatatype_nsec; - rdatalist.covers = 0; rdatalist.ttl = ttl; - ISC_LIST_INIT(rdatalist.rdata); ISC_LIST_APPEND(rdatalist.rdata, &rdata, link); RETERR(dns_rdatalist_tordataset(&rdatalist, &rdataset)); result = dns_db_addrdataset(db, node, version, 0, &rdataset, diff --git a/lib/dns/nsec3.c b/lib/dns/nsec3.c index 11ae837a54a8..74ab9ddf6497 100644 --- a/lib/dns/nsec3.c +++ b/lib/dns/nsec3.c @@ -25,6 +25,7 @@ #include <isc/log.h> #include <isc/string.h> #include <isc/util.h> +#include <isc/safe.h> #include <dst/dst.h> @@ -1929,7 +1930,7 @@ dns_nsec3_noexistnodata(dns_rdatatype_t type, dns_name_t* name, * Work out what this NSEC3 covers. * Inside (<0) or outside (>=0). */ - scope = memcmp(owner, nsec3.next, nsec3.next_length); + scope = isc_safe_memcompare(owner, nsec3.next, nsec3.next_length); /* * Prepare to compute all the hashes. @@ -1954,7 +1955,7 @@ dns_nsec3_noexistnodata(dns_rdatatype_t type, dns_name_t* name, return (ISC_R_IGNORE); } - order = memcmp(hash, owner, length); + order = isc_safe_memcompare(hash, owner, length); if (first && order == 0) { /* * The hashes are the same. diff --git a/lib/dns/openssl_link.c b/lib/dns/openssl_link.c index a0a2724f41c1..8683bee4d60e 100644 --- a/lib/dns/openssl_link.c +++ b/lib/dns/openssl_link.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2004-2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004-2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -88,6 +88,7 @@ entropy_getpseudo(unsigned char *buf, int num) { return (result == ISC_R_SUCCESS ? 1 : -1); } +#if OPENSSL_VERSION_NUMBER < 0x10100000L static void entropy_add(const void *buf, int num, double entropy) { /* @@ -97,6 +98,18 @@ entropy_add(const void *buf, int num, double entropy) { UNUSED(num); UNUSED(entropy); } +#else +static int +entropy_add(const void *buf, int num, double entropy) { + /* + * Do nothing. The only call to this provides no useful data anyway. + */ + UNUSED(buf); + UNUSED(num); + UNUSED(entropy); + return (1); +} +#endif static void lock_callback(int mode, int type, const char *file, int line) { @@ -108,10 +121,12 @@ lock_callback(int mode, int type, const char *file, int line) { UNLOCK(&locks[type]); } +#if OPENSSL_VERSION_NUMBER < 0x10100000L static unsigned long id_callback(void) { return ((unsigned long)isc_thread_self()); } +#endif static void * mem_alloc(size_t size) { @@ -172,7 +187,9 @@ dst__openssl_init(const char *engine) { if (result != ISC_R_SUCCESS) goto cleanup_mutexalloc; CRYPTO_set_locking_callback(lock_callback); +#if OPENSSL_VERSION_NUMBER < 0x10100000L CRYPTO_set_id_callback(id_callback); +#endif ERR_load_crypto_strings(); @@ -270,7 +287,9 @@ dst__openssl_destroy(void) { CRYPTO_cleanup_all_ex_data(); #endif ERR_clear_error(); +#if OPENSSL_VERSION_NUMBER < 0x10100000L ERR_remove_state(0); +#endif ERR_free_strings(); #ifdef DNS_CRYPTO_LEAKS diff --git a/lib/dns/openssldh_link.c b/lib/dns/openssldh_link.c index 953e8fd50e4a..4d77c5bf164f 100644 --- a/lib/dns/openssldh_link.c +++ b/lib/dns/openssldh_link.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004-2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -71,7 +71,7 @@ static isc_result_t openssldh_todns(const dst_key_t *key, isc_buffer_t *data); -static BIGNUM bn2, bn768, bn1024, bn1536; +static BIGNUM *bn2, *bn768, *bn1024, *bn1536; static isc_result_t openssldh_computesecret(const dst_key_t *pub, const dst_key_t *priv, @@ -161,7 +161,7 @@ progress_cb(int p, int n, BN_GENCB *cb) UNUSED(n); - u.dptr = cb->arg; + u.dptr = BN_GENCB_get_arg(cb); if (u.fptr != NULL) u.fptr(p); return (1); @@ -172,7 +172,10 @@ static isc_result_t openssldh_generate(dst_key_t *key, int generator, void (*callback)(int)) { DH *dh = NULL; #if OPENSSL_VERSION_NUMBER > 0x00908000L - BN_GENCB cb; + BN_GENCB *cb; +#if OPENSSL_VERSION_NUMBER < 0x10100000L + BN_GENCB _cb; +#endif union { void *dptr; void (*fptr)(int); @@ -191,12 +194,12 @@ openssldh_generate(dst_key_t *key, int generator, void (*callback)(int)) { if (dh == NULL) return (dst__openssl_toresult(ISC_R_NOMEMORY)); if (key->key_size == 768) - dh->p = &bn768; + dh->p = bn768; else if (key->key_size == 1024) - dh->p = &bn1024; + dh->p = bn1024; else - dh->p = &bn1536; - dh->g = &bn2; + dh->p = bn1536; + dh->g = bn2; } else generator = 2; } @@ -206,31 +209,39 @@ openssldh_generate(dst_key_t *key, int generator, void (*callback)(int)) { dh = DH_new(); if (dh == NULL) return (dst__openssl_toresult(ISC_R_NOMEMORY)); - + cb = BN_GENCB_new(); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + if (cb == NULL) { + DH_free(dh); + return (dst__openssl_toresult(ISC_R_NOMEMORY)); + } +#endif if (callback == NULL) { - BN_GENCB_set_old(&cb, NULL, NULL); + BN_GENCB_set_old(cb, NULL, NULL); } else { u.fptr = callback; - BN_GENCB_set(&cb, &progress_cb, u.dptr); + BN_GENCB_set(cb, &progress_cb, u.dptr); } if (!DH_generate_parameters_ex(dh, key->key_size, generator, - &cb)) { + cb)) { DH_free(dh); + BN_GENCB_free(cb); return (dst__openssl_toresult2( "DH_generate_parameters_ex", DST_R_OPENSSLFAILURE)); } + BN_GENCB_free(cb); #else dh = DH_generate_parameters(key->key_size, generator, NULL, NULL); + if (dh == NULL) + return (dst__openssl_toresult2( + "DH_generate_parameters", + DST_R_OPENSSLFAILURE)); #endif } - if (dh == NULL) - return (dst__openssl_toresult2("DH_generate_parameters", - DST_R_OPENSSLFAILURE)); - if (DH_generate_key(dh) == 0) { DH_free(dh); return (dst__openssl_toresult2("DH_generate_key", @@ -256,9 +267,9 @@ openssldh_destroy(dst_key_t *key) { if (dh == NULL) return; - if (dh->p == &bn768 || dh->p == &bn1024 || dh->p == &bn1536) + if (dh->p == bn768 || dh->p == bn1024 || dh->p == bn1536) dh->p = NULL; - if (dh->g == &bn2) + if (dh->g == bn2) dh->g = NULL; DH_free(dh); key->keydata.dh = NULL; @@ -266,8 +277,10 @@ openssldh_destroy(dst_key_t *key) { static void uint16_toregion(isc_uint16_t val, isc_region_t *region) { - *region->base++ = (val & 0xff00) >> 8; - *region->base++ = (val & 0x00ff); + *region->base = (val & 0xff00) >> 8; + isc_region_consume(region, 1); + *region->base = (val & 0x00ff); + isc_region_consume(region, 1); } static isc_uint16_t @@ -278,7 +291,8 @@ uint16_fromregion(isc_region_t *region) { val = ((unsigned int)(cp[0])) << 8; val |= ((unsigned int)(cp[1])); - region->base += 2; + isc_region_consume(region, 2); + return (val); } @@ -294,8 +308,8 @@ openssldh_todns(const dst_key_t *key, isc_buffer_t *data) { isc_buffer_availableregion(data, &r); - if (dh->g == &bn2 && - (dh->p == &bn768 || dh->p == &bn1024 || dh->p == &bn1536)) { + if (dh->g == bn2 && + (dh->p == bn768 || dh->p == bn1024 || dh->p == bn1536)) { plen = 1; glen = 0; } @@ -310,25 +324,25 @@ openssldh_todns(const dst_key_t *key, isc_buffer_t *data) { uint16_toregion(plen, &r); if (plen == 1) { - if (dh->p == &bn768) + if (dh->p == bn768) *r.base = 1; - else if (dh->p == &bn1024) + else if (dh->p == bn1024) *r.base = 2; else *r.base = 3; } else BN_bn2bin(dh->p, r.base); - r.base += plen; + isc_region_consume(&r, plen); uint16_toregion(glen, &r); if (glen > 0) BN_bn2bin(dh->g, r.base); - r.base += glen; + isc_region_consume(&r, glen); uint16_toregion(publen, &r); BN_bn2bin(dh->pub_key, r.base); - r.base += publen; + isc_region_consume(&r, publen); isc_buffer_add(data, dnslen); @@ -369,28 +383,29 @@ openssldh_fromdns(dst_key_t *key, isc_buffer_t *data) { return (DST_R_INVALIDPUBLICKEY); } if (plen == 1 || plen == 2) { - if (plen == 1) - special = *r.base++; - else + if (plen == 1) { + special = *r.base; + isc_region_consume(&r, 1); + } else { special = uint16_fromregion(&r); + } switch (special) { case 1: - dh->p = &bn768; + dh->p = bn768; break; case 2: - dh->p = &bn1024; + dh->p = bn1024; break; case 3: - dh->p = &bn1536; + dh->p = bn1536; break; default: DH_free(dh); return (DST_R_INVALIDPUBLICKEY); } - } - else { + } else { dh->p = BN_bin2bn(r.base, plen, NULL); - r.base += plen; + isc_region_consume(&r, plen); } /* @@ -409,27 +424,26 @@ openssldh_fromdns(dst_key_t *key, isc_buffer_t *data) { } if (special != 0) { if (glen == 0) - dh->g = &bn2; + dh->g = bn2; else { dh->g = BN_bin2bn(r.base, glen, NULL); - if (BN_cmp(dh->g, &bn2) == 0) { + if (BN_cmp(dh->g, bn2) == 0) { BN_free(dh->g); - dh->g = &bn2; + dh->g = bn2; } else { DH_free(dh); return (DST_R_INVALIDPUBLICKEY); } } - } - else { + } else { if (glen == 0) { DH_free(dh); return (DST_R_INVALIDPUBLICKEY); } dh->g = BN_bin2bn(r.base, glen, NULL); } - r.base += glen; + isc_region_consume(&r, glen); if (r.length < 2) { DH_free(dh); @@ -441,7 +455,7 @@ openssldh_fromdns(dst_key_t *key, isc_buffer_t *data) { return (DST_R_INVALIDPUBLICKEY); } dh->pub_key = BN_bin2bn(r.base, publen, NULL); - r.base += publen; + isc_region_consume(&r, publen); key->key_size = BN_num_bits(dh->p); @@ -563,25 +577,25 @@ openssldh_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) { if ((key->key_size == 768 || key->key_size == 1024 || key->key_size == 1536) && - BN_cmp(dh->g, &bn2) == 0) + BN_cmp(dh->g, bn2) == 0) { - if (key->key_size == 768 && BN_cmp(dh->p, &bn768) == 0) { + if (key->key_size == 768 && BN_cmp(dh->p, bn768) == 0) { BN_free(dh->p); BN_free(dh->g); - dh->p = &bn768; - dh->g = &bn2; + dh->p = bn768; + dh->g = bn2; } else if (key->key_size == 1024 && - BN_cmp(dh->p, &bn1024) == 0) { + BN_cmp(dh->p, bn1024) == 0) { BN_free(dh->p); BN_free(dh->g); - dh->p = &bn1024; - dh->g = &bn2; + dh->p = bn1024; + dh->g = bn2; } else if (key->key_size == 1536 && - BN_cmp(dh->p, &bn1536) == 0) { + BN_cmp(dh->p, bn1536) == 0) { BN_free(dh->p); BN_free(dh->g); - dh->p = &bn1536; - dh->g = &bn2; + dh->p = bn1536; + dh->g = bn2; } } @@ -622,10 +636,10 @@ BN_fromhex(BIGNUM *b, const char *str) { static void openssldh_cleanup(void) { - BN_free(&bn2); - BN_free(&bn768); - BN_free(&bn1024); - BN_free(&bn1536); + BN_free(bn2); + BN_free(bn768); + BN_free(bn1024); + BN_free(bn1536); } static dst_func_t openssldh_functions = { @@ -655,17 +669,27 @@ isc_result_t dst__openssldh_init(dst_func_t **funcp) { REQUIRE(funcp != NULL); if (*funcp == NULL) { - BN_init(&bn2); - BN_init(&bn768); - BN_init(&bn1024); - BN_init(&bn1536); - BN_set_word(&bn2, 2); - BN_fromhex(&bn768, PRIME768); - BN_fromhex(&bn1024, PRIME1024); - BN_fromhex(&bn1536, PRIME1536); + bn2 = BN_new(); + bn768 = BN_new(); + bn1024 = BN_new(); + bn1536 = BN_new(); + if (bn2 == NULL || bn768 == NULL || + bn1024 == NULL || bn1536 == NULL) + goto cleanup; + BN_set_word(bn2, 2); + BN_fromhex(bn768, PRIME768); + BN_fromhex(bn1024, PRIME1024); + BN_fromhex(bn1536, PRIME1536); *funcp = &openssldh_functions; } return (ISC_R_SUCCESS); + + cleanup: + if (bn2 != NULL) BN_free(bn2); + if (bn768 != NULL) BN_free(bn768); + if (bn1024 != NULL) BN_free(bn1024); + if (bn1536 != NULL) BN_free(bn1536); + return (ISC_R_NOMEMORY); } #else /* OPENSSL */ diff --git a/lib/dns/openssldsa_link.c b/lib/dns/openssldsa_link.c index 61e64db0d4a5..34348f07767f 100644 --- a/lib/dns/openssldsa_link.c +++ b/lib/dns/openssldsa_link.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004-2009, 2011-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -29,8 +29,6 @@ * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id$ */ - #ifdef OPENSSL #ifndef USE_EVP #define USE_EVP 1 @@ -137,6 +135,7 @@ openssldsa_sign(dst_context_t *dctx, isc_buffer_t *sig) { DSA *dsa = key->keydata.dsa; isc_region_t r; DSA_SIG *dsasig; + unsigned int klen; #if USE_EVP EVP_MD_CTX *evp_md_ctx = dctx->ctxdata.evp_md_ctx; EVP_PKEY *pkey; @@ -188,6 +187,7 @@ openssldsa_sign(dst_context_t *dctx, isc_buffer_t *sig) { ISC_R_FAILURE)); } free(sigbuf); + #elif 0 /* Only use EVP for the Digest */ if (!EVP_DigestFinal_ex(evp_md_ctx, digest, &siglen)) { @@ -209,11 +209,17 @@ openssldsa_sign(dst_context_t *dctx, isc_buffer_t *sig) { "DSA_do_sign", DST_R_SIGNFAILURE)); #endif - *r.base++ = (key->key_size - 512)/64; + + klen = (key->key_size - 512)/64; + if (klen > 255) + return (ISC_R_FAILURE); + *r.base = klen; + isc_region_consume(&r, 1); + BN_bn2bin_fixed(dsasig->r, r.base, ISC_SHA1_DIGESTLENGTH); - r.base += ISC_SHA1_DIGESTLENGTH; + isc_region_consume(&r, ISC_SHA1_DIGESTLENGTH); BN_bn2bin_fixed(dsasig->s, r.base, ISC_SHA1_DIGESTLENGTH); - r.base += ISC_SHA1_DIGESTLENGTH; + isc_region_consume(&r, ISC_SHA1_DIGESTLENGTH); DSA_SIG_free(dsasig); isc_buffer_add(sig, ISC_SHA1_DIGESTLENGTH * 2 + 1); @@ -339,7 +345,7 @@ progress_cb(int p, int n, BN_GENCB *cb) UNUSED(n); - u.dptr = cb->arg; + u.dptr = BN_GENCB_get_arg(cb); if (u.fptr != NULL) u.fptr(p); return (1); @@ -352,7 +358,10 @@ openssldsa_generate(dst_key_t *key, int unused, void (*callback)(int)) { unsigned char rand_array[ISC_SHA1_DIGESTLENGTH]; isc_result_t result; #if OPENSSL_VERSION_NUMBER > 0x00908000L - BN_GENCB cb; + BN_GENCB *cb; +#if OPENSSL_VERSION_NUMBER < 0x10100000L + BN_GENCB _cb; +#endif union { void *dptr; void (*fptr)(int); @@ -373,22 +382,30 @@ openssldsa_generate(dst_key_t *key, int unused, void (*callback)(int)) { dsa = DSA_new(); if (dsa == NULL) return (dst__openssl_toresult(DST_R_OPENSSLFAILURE)); - + cb = BN_GENCB_new(); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + if (cb == NULL) { + DSA_free(dsa); + return (dst__openssl_toresult(DST_R_OPENSSLFAILURE)); + } +#endif if (callback == NULL) { - BN_GENCB_set_old(&cb, NULL, NULL); + BN_GENCB_set_old(cb, NULL, NULL); } else { u.fptr = callback; - BN_GENCB_set(&cb, &progress_cb, u.dptr); + BN_GENCB_set(cb, &progress_cb, u.dptr); } if (!DSA_generate_parameters_ex(dsa, key->key_size, rand_array, ISC_SHA1_DIGESTLENGTH, NULL, NULL, - &cb)) + cb)) { DSA_free(dsa); + BN_GENCB_free(cb); return (dst__openssl_toresult2("DSA_generate_parameters_ex", DST_R_OPENSSLFAILURE)); } + BN_GENCB_free(cb); #else dsa = DSA_generate_parameters(key->key_size, rand_array, ISC_SHA1_DIGESTLENGTH, NULL, NULL, @@ -446,15 +463,16 @@ openssldsa_todns(const dst_key_t *key, isc_buffer_t *data) { if (r.length < (unsigned int) dnslen) return (ISC_R_NOSPACE); - *r.base++ = t; + *r.base = t; + isc_region_consume(&r, 1); BN_bn2bin_fixed(dsa->q, r.base, ISC_SHA1_DIGESTLENGTH); - r.base += ISC_SHA1_DIGESTLENGTH; + isc_region_consume(&r, ISC_SHA1_DIGESTLENGTH); BN_bn2bin_fixed(dsa->p, r.base, key->key_size/8); - r.base += p_bytes; + isc_region_consume(&r, p_bytes); BN_bn2bin_fixed(dsa->g, r.base, key->key_size/8); - r.base += p_bytes; + isc_region_consume(&r, p_bytes); BN_bn2bin_fixed(dsa->pub_key, r.base, key->key_size/8); - r.base += p_bytes; + isc_region_consume(&r, p_bytes); isc_buffer_add(data, dnslen); @@ -479,29 +497,30 @@ openssldsa_fromdns(dst_key_t *key, isc_buffer_t *data) { return (ISC_R_NOMEMORY); dsa->flags &= ~DSA_FLAG_CACHE_MONT_P; - t = (unsigned int) *r.base++; + t = (unsigned int) *r.base; + isc_region_consume(&r, 1); if (t > 8) { DSA_free(dsa); return (DST_R_INVALIDPUBLICKEY); } p_bytes = 64 + 8 * t; - if (r.length < 1 + ISC_SHA1_DIGESTLENGTH + 3 * p_bytes) { + if (r.length < ISC_SHA1_DIGESTLENGTH + 3 * p_bytes) { DSA_free(dsa); return (DST_R_INVALIDPUBLICKEY); } dsa->q = BN_bin2bn(r.base, ISC_SHA1_DIGESTLENGTH, NULL); - r.base += ISC_SHA1_DIGESTLENGTH; + isc_region_consume(&r, ISC_SHA1_DIGESTLENGTH); dsa->p = BN_bin2bn(r.base, p_bytes, NULL); - r.base += p_bytes; + isc_region_consume(&r, p_bytes); dsa->g = BN_bin2bn(r.base, p_bytes, NULL); - r.base += p_bytes; + isc_region_consume(&r, p_bytes); dsa->pub_key = BN_bin2bn(r.base, p_bytes, NULL); - r.base += p_bytes; + isc_region_consume(&r, p_bytes); key->key_size = p_bytes * 8; diff --git a/lib/dns/opensslecdsa_link.c b/lib/dns/opensslecdsa_link.c index 34f8ba03b092..7a6f69bca00a 100644 --- a/lib/dns/opensslecdsa_link.c +++ b/lib/dns/opensslecdsa_link.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2012-2015 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 @@ -14,8 +14,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id$ */ - #include <config.h> #ifdef HAVE_OPENSSL_ECDSA @@ -159,9 +157,9 @@ opensslecdsa_sign(dst_context_t *dctx, isc_buffer_t *sig) { "ECDSA_do_sign", DST_R_SIGNFAILURE)); BN_bn2bin_fixed(ecdsasig->r, r.base, siglen / 2); - r.base += siglen / 2; + isc_region_consume(&r, siglen / 2); BN_bn2bin_fixed(ecdsasig->s, r.base, siglen / 2); - r.base += siglen / 2; + isc_region_consume(&r, siglen / 2); ECDSA_SIG_free(ecdsasig); isc_buffer_add(sig, siglen); ret = ISC_R_SUCCESS; diff --git a/lib/dns/opensslgost_link.c b/lib/dns/opensslgost_link.c index a01e9f32bb25..dd421b8ddd9f 100644 --- a/lib/dns/opensslgost_link.c +++ b/lib/dns/opensslgost_link.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2010-2015 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 @@ -14,14 +14,13 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: opensslgost_link.c,v 1.5 2011/01/19 23:47:12 tbox Exp $ */ - #include <config.h> #ifdef HAVE_OPENSSL_GOST #include <isc/entropy.h> #include <isc/mem.h> +#include <isc/safe.h> #include <isc/string.h> #include <isc/util.h> @@ -253,7 +252,7 @@ opensslgost_todns(const dst_key_t *key, isc_buffer_t *data) { p = der; len = i2d_PUBKEY(pkey, &p); INSIST(len == sizeof(der)); - INSIST(memcmp(gost_prefix, der, 37) == 0); + INSIST(isc_safe_memequal(gost_prefix, der, 37)); memmove(r.base, der + 37, 64); isc_buffer_add(data, 64); diff --git a/lib/dns/opensslrsa_link.c b/lib/dns/opensslrsa_link.c index 8421c640708a..624b082fb00f 100644 --- a/lib/dns/opensslrsa_link.c +++ b/lib/dns/opensslrsa_link.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -33,9 +33,10 @@ #include <isc/entropy.h> #include <isc/md5.h> +#include <isc/mem.h> +#include <isc/safe.h> #include <isc/sha1.h> #include <isc/sha2.h> -#include <isc/mem.h> #include <isc/string.h> #include <isc/util.h> @@ -650,9 +651,10 @@ opensslrsa_verify2(dst_context_t *dctx, int maxbits, const isc_region_t *sig) { DST_R_VERIFYFAILURE)); if (status != (int)(prefixlen + digestlen)) return (DST_R_VERIFYFAILURE); - if (memcmp(original, prefix, prefixlen)) + if (!isc_safe_memequal(original, prefix, prefixlen)) return (DST_R_VERIFYFAILURE); - if (memcmp(original + prefixlen, digest, digestlen)) + if (!isc_safe_memequal(original + prefixlen, + digest, digestlen)) return (DST_R_VERIFYFAILURE); status = 1; } @@ -753,7 +755,7 @@ progress_cb(int p, int n, BN_GENCB *cb) UNUSED(n); - u.dptr = cb->arg; + u.dptr = BN_GENCB_get_arg(cb); if (u.fptr != NULL) u.fptr(p); return (1); @@ -764,18 +766,21 @@ static isc_result_t opensslrsa_generate(dst_key_t *key, int exp, void (*callback)(int)) { #if OPENSSL_VERSION_NUMBER > 0x00908000L isc_result_t ret = DST_R_OPENSSLFAILURE; - BN_GENCB cb; union { void *dptr; void (*fptr)(int); } u; RSA *rsa = RSA_new(); BIGNUM *e = BN_new(); +#if OPENSSL_VERSION_NUMBER < 0x10100000L + BN_GENCB _cb; +#endif + BN_GENCB *cb = BN_GENCB_new(); #if USE_EVP EVP_PKEY *pkey = EVP_PKEY_new(); #endif - if (rsa == NULL || e == NULL) + if (rsa == NULL || e == NULL || cb == NULL) goto err; #if USE_EVP if (pkey == NULL) @@ -795,14 +800,15 @@ opensslrsa_generate(dst_key_t *key, int exp, void (*callback)(int)) { } if (callback == NULL) { - BN_GENCB_set_old(&cb, NULL, NULL); + BN_GENCB_set_old(cb, NULL, NULL); } else { u.fptr = callback; - BN_GENCB_set(&cb, &progress_cb, u.dptr); + BN_GENCB_set(cb, &progress_cb, u.dptr); } - if (RSA_generate_key_ex(rsa, key->key_size, e, &cb)) { + if (RSA_generate_key_ex(rsa, key->key_size, e, cb)) { BN_free(e); + BN_GENCB_free(cb); SET_FLAGS(rsa); #if USE_EVP key->keydata.pkey = pkey; @@ -813,6 +819,7 @@ opensslrsa_generate(dst_key_t *key, int exp, void (*callback)(int)) { #endif return (ISC_R_SUCCESS); } + BN_GENCB_free(cb); ret = dst__openssl_toresult2("RSA_generate_key_ex", DST_R_OPENSSLFAILURE); @@ -825,6 +832,8 @@ err: BN_free(e); if (rsa != NULL) RSA_free(rsa); + if (cb != NULL) + BN_GENCB_free(cb); return (dst__openssl_toresult(ret)); #else RSA *rsa; @@ -965,6 +974,7 @@ opensslrsa_fromdns(dst_key_t *key, isc_buffer_t *data) { RSA *rsa; isc_region_t r; unsigned int e_bytes; + unsigned int length; #if USE_EVP EVP_PKEY *pkey; #endif @@ -972,6 +982,7 @@ opensslrsa_fromdns(dst_key_t *key, isc_buffer_t *data) { isc_buffer_remainingregion(data, &r); if (r.length == 0) return (ISC_R_SUCCESS); + length = r.length; rsa = RSA_new(); if (rsa == NULL) @@ -982,17 +993,18 @@ opensslrsa_fromdns(dst_key_t *key, isc_buffer_t *data) { RSA_free(rsa); return (DST_R_INVALIDPUBLICKEY); } - e_bytes = *r.base++; - r.length--; + e_bytes = *r.base; + isc_region_consume(&r, 1); if (e_bytes == 0) { if (r.length < 2) { RSA_free(rsa); return (DST_R_INVALIDPUBLICKEY); } - e_bytes = ((*r.base++) << 8); - e_bytes += *r.base++; - r.length -= 2; + e_bytes = (*r.base) << 8; + isc_region_consume(&r, 1); + e_bytes += *r.base; + isc_region_consume(&r, 1); } if (r.length < e_bytes) { @@ -1000,14 +1012,13 @@ opensslrsa_fromdns(dst_key_t *key, isc_buffer_t *data) { return (DST_R_INVALIDPUBLICKEY); } rsa->e = BN_bin2bn(r.base, e_bytes, NULL); - r.base += e_bytes; - r.length -= e_bytes; + isc_region_consume(&r, e_bytes); rsa->n = BN_bin2bn(r.base, r.length, NULL); key->key_size = BN_num_bits(rsa->n); - isc_buffer_forward(data, r.length); + isc_buffer_forward(data, length); #if USE_EVP pkey = EVP_PKEY_new(); @@ -1375,12 +1386,21 @@ opensslrsa_fromlabel(dst_key_t *key, const char *engine, const char *label, isc_result_t ret; EVP_PKEY *pkey = NULL; RSA *rsa = NULL, *pubrsa = NULL; - char *colon; + char *colon, *tmpengine = NULL; UNUSED(pin); - if (engine == NULL) - DST_RET(DST_R_NOENGINE); + if (engine == NULL) { + colon = strchr(label, ':'); + if (colon == NULL) + DST_RET(DST_R_NOENGINE); + tmpengine = isc_mem_strdup(key->mctx, label); + if (tmpengine == NULL) + DST_RET(ISC_R_NOMEMORY); + colon = strchr(tmpengine, ':'); + INSIST(colon != NULL); + *colon = '\0'; + } e = dst__openssl_getengine(engine); if (e == NULL) DST_RET(DST_R_NOENGINE); @@ -1395,17 +1415,13 @@ opensslrsa_fromlabel(dst_key_t *key, const char *engine, const char *label, if (pkey == NULL) DST_RET(dst__openssl_toresult2("ENGINE_load_private_key", ISC_R_NOTFOUND)); - if (engine != NULL) { - key->engine = isc_mem_strdup(key->mctx, engine); - if (key->engine == NULL) - DST_RET(ISC_R_NOMEMORY); + if (tmpengine != NULL) { + key->engine = tmpengine; + tmpengine = NULL; } else { - key->engine = isc_mem_strdup(key->mctx, label); + key->engine = isc_mem_strdup(key->mctx, engine); if (key->engine == NULL) DST_RET(ISC_R_NOMEMORY); - colon = strchr(key->engine, ':'); - if (colon != NULL) - *colon = '\0'; } key->label = isc_mem_strdup(key->mctx, label); if (key->label == NULL) @@ -1430,6 +1446,8 @@ opensslrsa_fromlabel(dst_key_t *key, const char *engine, const char *label, return (ISC_R_SUCCESS); err: + if (tmpengine != NULL) + isc_mem_free(key->mctx, tmpengine); if (rsa != NULL) RSA_free(rsa); if (pubrsa != NULL) diff --git a/lib/dns/order.c b/lib/dns/order.c index 853b00196d21..326b8f93cf14 100644 --- a/lib/dns/order.c +++ b/lib/dns/order.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -48,7 +48,7 @@ struct dns_order { ISC_LIST(dns_order_ent_t) ents; isc_mem_t *mctx; }; - + #define DNS_ORDER_MAGIC ISC_MAGIC('O','r','d','r') #define DNS_ORDER_VALID(order) ISC_MAGIC_VALID(order, DNS_ORDER_MAGIC) @@ -62,7 +62,7 @@ dns_order_create(isc_mem_t *mctx, dns_order_t **orderp) { order = isc_mem_get(mctx, sizeof(*order)); if (order == NULL) return (ISC_R_NOMEMORY); - + ISC_LIST_INIT(order->ents); /* Implicit attach. */ @@ -88,7 +88,7 @@ dns_order_add(dns_order_t *order, dns_name_t *name, REQUIRE(DNS_ORDER_VALID(order)); REQUIRE(mode == DNS_RDATASETATTR_RANDOMIZE || - mode == DNS_RDATASETATTR_FIXEDORDER || + mode == DNS_RDATASETATTR_FIXEDORDER || mode == 0 /* DNS_RDATASETATTR_CYCLIC */ ); ent = isc_mem_get(order->mctx, sizeof(*ent)); @@ -108,7 +108,7 @@ dns_order_add(dns_order_t *order, dns_name_t *name, static inline isc_boolean_t match(dns_name_t *name1, dns_name_t *name2) { - + if (dns_name_iswildcard(name2)) return(dns_name_matcheswildcard(name1, name2)); return (dns_name_equal(name1, name2)); @@ -132,7 +132,7 @@ dns_order_find(dns_order_t *order, dns_name_t *name, if (match(name, dns_fixedname_name(&ent->name))) return (ent->mode); } - return (0); + return (DNS_RDATASETATTR_RANDOMIZE); } void diff --git a/lib/dns/private.c b/lib/dns/private.c index c29522c52990..76a26e827728 100644 --- a/lib/dns/private.c +++ b/lib/dns/private.c @@ -18,10 +18,11 @@ #include "config.h" +#include <isc/base64.h> +#include <isc/print.h> #include <isc/result.h> #include <isc/string.h> #include <isc/types.h> -#include <isc/base64.h> #include <dns/nsec3.h> #include <dns/private.h> @@ -306,7 +307,7 @@ dns_private_totext(dns_rdata_t *private, isc_buffer_t *buf) { unsigned char newbuf[DNS_NSEC3PARAM_BUFFERSIZE]; dns_rdata_t rdata = DNS_RDATA_INIT; dns_rdata_nsec3param_t nsec3param; - isc_boolean_t remove, init, nonsec; + isc_boolean_t delete, init, nonsec; isc_buffer_t b; if (!dns_nsec3param_fromprivate(private, &rdata, nsec3buf, @@ -315,7 +316,7 @@ dns_private_totext(dns_rdata_t *private, isc_buffer_t *buf) { CHECK(dns_rdata_tostruct(&rdata, &nsec3param, NULL)); - remove = ISC_TF((nsec3param.flags & DNS_NSEC3FLAG_REMOVE) != 0); + delete = ISC_TF((nsec3param.flags & DNS_NSEC3FLAG_REMOVE) != 0); init = ISC_TF((nsec3param.flags & DNS_NSEC3FLAG_INITIAL) != 0); nonsec = ISC_TF((nsec3param.flags & DNS_NSEC3FLAG_NONSEC) != 0); @@ -326,7 +327,7 @@ dns_private_totext(dns_rdata_t *private, isc_buffer_t *buf) { if (init) isc_buffer_putstr(buf, "Pending NSEC3 chain "); - else if (remove) + else if (delete) isc_buffer_putstr(buf, "Removing NSEC3 chain "); else isc_buffer_putstr(buf, "Creating NSEC3 chain "); @@ -339,18 +340,18 @@ dns_private_totext(dns_rdata_t *private, isc_buffer_t *buf) { CHECK(dns_rdata_totext(&rdata, NULL, buf)); - if (remove && !nonsec) + if (delete && !nonsec) isc_buffer_putstr(buf, " / creating NSEC chain"); } else if (private->length == 5) { unsigned char alg = private->data[0]; dns_keytag_t keyid = (private->data[2] | private->data[1] << 8); char keybuf[BUFSIZ], algbuf[DNS_SECALG_FORMATSIZE]; - isc_boolean_t remove = ISC_TF(private->data[3] != 0); + isc_boolean_t delete = ISC_TF(private->data[3] != 0); isc_boolean_t complete = ISC_TF(private->data[4] != 0); - if (remove && complete) + if (delete && complete) isc_buffer_putstr(buf, "Done removing signatures for "); - else if (remove) + else if (delete) isc_buffer_putstr(buf, "Removing signatures for "); else if (complete) isc_buffer_putstr(buf, "Done signing with "); diff --git a/lib/dns/rbt.c b/lib/dns/rbt.c index 1b6121de7945..74aad1b3553f 100644 --- a/lib/dns/rbt.c +++ b/lib/dns/rbt.c @@ -1610,8 +1610,7 @@ rotate_left(dns_rbtnode_t *node, dns_rbtnode_t **rootp) { PARENT(LEFT(child)) = node; LEFT(child) = node; - if (child != NULL) - PARENT(child) = PARENT(node); + PARENT(child) = PARENT(node); if (IS_ROOT(node)) { *rootp = child; @@ -1643,8 +1642,7 @@ rotate_right(dns_rbtnode_t *node, dns_rbtnode_t **rootp) { PARENT(RIGHT(child)) = node; RIGHT(child) = node; - if (child != NULL) - PARENT(child) = PARENT(node); + PARENT(child) = PARENT(node); if (IS_ROOT(node)) { *rootp = child; diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c index a1398d3d1ab1..a0fa148cf545 100644 --- a/lib/dns/rbtdb.c +++ b/lib/dns/rbtdb.c @@ -753,7 +753,7 @@ typedef struct rbtdb_dbiterator { static void free_rbtdb(dns_rbtdb_t *rbtdb, isc_boolean_t log, isc_event_t *event); -static void overmem(dns_db_t *db, isc_boolean_t overmem); +static void overmem(dns_db_t *db, isc_boolean_t over); #ifdef BIND9 static void setnsec3parameters(dns_db_t *db, rbtdb_version_t *version); #endif @@ -852,11 +852,14 @@ set_ttl(dns_rbtdb_t *rbtdb, rdatasetheader_t *header, dns_ttl_t newttl) { isc_heap_t *heap; dns_ttl_t oldttl; - oldttl = header->rdh_ttl; - header->rdh_ttl = newttl; - if (!IS_CACHE(rbtdb)) + if (!IS_CACHE(rbtdb)) { + header->rdh_ttl = newttl; return; + } + + oldttl = header->rdh_ttl; + header->rdh_ttl = newttl; /* * It's possible the rbtdb is not a cache. If this is the case, @@ -904,10 +907,10 @@ resign_sooner(void *v1, void *v2) { * This function sets the heap index into the header. */ static void -set_index(void *what, unsigned int index) { +set_index(void *what, unsigned int idx) { rdatasetheader_t *h = what; - h->heap_index = index; + h->heap_index = idx; } /*% @@ -1385,6 +1388,7 @@ new_rdataset(dns_rbtdb_t *rbtdb, isc_mem_t *mctx) fprintf(stderr, "allocated header: %p\n", h); #endif init_rdataset(rbtdb, h); + h->rdh_ttl = 0; return (h); } @@ -2192,6 +2196,7 @@ setnsec3parameters(dns_db_t *db, rbtdb_version_t *version) { unsigned int count, length; dns_rbtdb_t *rbtdb = (dns_rbtdb_t *)db; + RWLOCK(&rbtdb->tree_lock, isc_rwlocktype_read); version->havensec3 = ISC_FALSE; node = rbtdb->origin_node; NODE_LOCK(&(rbtdb->node_locks[node->locknum].lock), @@ -2268,6 +2273,7 @@ setnsec3parameters(dns_db_t *db, rbtdb_version_t *version) { unlock: NODE_UNLOCK(&(rbtdb->node_locks[node->locknum].lock), isc_rwlocktype_read); + RWUNLOCK(&rbtdb->tree_lock, isc_rwlocktype_read); } #endif @@ -2330,6 +2336,13 @@ closeversion(dns_db_t *db, dns_dbversion_t **versionp, isc_boolean_t commit) { goto end; } + /* + * Update the zone's secure status in version before making + * it the current version. + */ + if (version->writer && commit && !IS_CACHE(rbtdb)) + iszonesecure(db, version, rbtdb->origin_node); + RBTDB_LOCK(&rbtdb->lock, isc_rwlocktype_write); serial = version->serial; if (version->writer) { @@ -2388,11 +2401,6 @@ closeversion(dns_db_t *db, dns_dbversion_t **versionp, isc_boolean_t commit) { link); } /* - * Update the zone's secure status. - */ - if (!IS_CACHE(rbtdb)) - iszonesecure(db, version, rbtdb->origin_node); - /* * Become the current version. */ version->writer = ISC_FALSE; @@ -5580,11 +5588,11 @@ expirenode(dns_db_t *db, dns_dbnode_t *node, isc_stdtime_t now) { } static void -overmem(dns_db_t *db, isc_boolean_t overmem) { +overmem(dns_db_t *db, isc_boolean_t over) { /* This is an empty callback. See adb.c:water() */ UNUSED(db); - UNUSED(overmem); + UNUSED(over); return; } diff --git a/lib/dns/rdata.c b/lib/dns/rdata.c index 9e1eebe70d29..6c0a3195379b 100644 --- a/lib/dns/rdata.c +++ b/lib/dns/rdata.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -223,6 +223,21 @@ unknown_totext(dns_rdata_t *rdata, dns_rdata_textctx_t *tctx, /*% IPv6 Address Size */ #define NS_LOCATORSZ 8 +/* + * Active Diretory gc._msdcs.<forest> prefix. + */ +static unsigned char gc_msdcs_data[] = "\002gc\006_msdcs"; +static unsigned char gc_msdcs_offset [] = { 0, 3 }; + +static const dns_name_t gc_msdcs = { + DNS_NAME_MAGIC, + gc_msdcs_data, 10, 2, + DNS_NAMEATTR_READONLY, + gc_msdcs_offset, NULL, + {(void *)-1, (void *)-1}, + {NULL, NULL} +}; + /*% * convert presentation level address to network order binary form. * \return @@ -313,15 +328,15 @@ name_duporclone(dns_name_t *source, isc_mem_t *mctx, dns_name_t *target) { static inline void * mem_maybedup(isc_mem_t *mctx, void *source, size_t length) { - void *new; + void *copy; if (mctx == NULL) return (source); - new = isc_mem_allocate(mctx, length); - if (new != NULL) - memmove(new, source, length); + copy = isc_mem_allocate(mctx, length); + if (copy != NULL) + memmove(copy, source, length); - return (new); + return (copy); } static const char hexdigits[] = "0123456789abcdef"; @@ -836,6 +851,7 @@ rdata_totext(dns_rdata_t *rdata, dns_rdata_textctx_t *tctx, { isc_result_t result = ISC_R_NOTIMPLEMENTED; isc_boolean_t use_default = ISC_FALSE; + unsigned int cur; REQUIRE(rdata != NULL); REQUIRE(tctx->origin == NULL || @@ -849,10 +865,17 @@ rdata_totext(dns_rdata_t *rdata, dns_rdata_textctx_t *tctx, return (ISC_R_SUCCESS); } + cur = isc_buffer_usedlength(target); + TOTEXTSWITCH - if (use_default) + if (use_default || (result == ISC_R_NOTIMPLEMENTED)) { + unsigned int u = isc_buffer_usedlength(target); + + INSIST(u >= cur); + isc_buffer_subtract(target, u - cur); result = unknown_totext(rdata, tctx, target); + } return (result); } @@ -1269,7 +1292,7 @@ txt_fromwire(isc_buffer_t *source, isc_buffer_t *target) { isc_buffer_activeregion(source, &sregion); if (sregion.length == 0) - return(ISC_R_UNEXPECTEDEND); + return (ISC_R_UNEXPECTEDEND); n = *sregion.base + 1; if (n > sregion.length) return (ISC_R_UNEXPECTEDEND); @@ -1398,7 +1421,7 @@ multitxt_fromtext(isc_textregion_t *source, isc_buffer_t *target) { if (escape) return (DNS_R_SYNTAX); - isc_buffer_add(target, t - t0); + isc_buffer_add(target, (unsigned int)(t - t0)); } while (n != 0); return (ISC_R_SUCCESS); } @@ -1579,7 +1602,7 @@ mem_tobuffer(isc_buffer_t *target, void *base, unsigned int length) { static int hexvalue(char value) { - char *s; + const char *s; unsigned char c; c = (unsigned char)value; @@ -1595,7 +1618,7 @@ hexvalue(char value) { static int decvalue(char value) { - char *s; + const char *s; /* * isascii() is valid for full range of int values, no need to @@ -1653,7 +1676,7 @@ static isc_result_t byte_btoa(int c, isc_buffer_t *, struct state *state); */ static isc_result_t byte_atob(int c, isc_buffer_t *target, struct state *state) { - char *s; + const char *s; if (c == 'z') { if (bcount != 0) return(DNS_R_SYNTAX); @@ -1749,8 +1772,12 @@ atob_tobuffer(isc_lex_t *lexer, isc_buffer_t *target) { */ RETERR(isc_lex_getmastertoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if ((token.value.as_ulong % 4) != 0U) - isc_buffer_subtract(target, 4 - (token.value.as_ulong % 4)); + if ((token.value.as_ulong % 4) != 0U) { + unsigned long padding = 4 - (token.value.as_ulong % 4); + if (isc_buffer_usedlength(target) < padding) + return (DNS_R_SYNTAX); + isc_buffer_subtract(target, padding); + } /* * Checksum. diff --git a/lib/dns/rdata/any_255/tsig_250.c b/lib/dns/rdata/any_255/tsig_250.c index 3f91f91c009a..65ceb84152c9 100644 --- a/lib/dns/rdata/any_255/tsig_250.c +++ b/lib/dns/rdata/any_255/tsig_250.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -35,8 +35,8 @@ fromtext_any_tsig(ARGS_FROMTEXT) { long i; char *e; - REQUIRE(type == 250); - REQUIRE(rdclass == 255); + REQUIRE(type == dns_rdatatype_tsig); + REQUIRE(rdclass == dns_rdataclass_any); UNUSED(type); UNUSED(rdclass); @@ -141,8 +141,8 @@ totext_any_tsig(ARGS_TOTEXT) { isc_uint64_t sigtime; unsigned short n; - REQUIRE(rdata->type == 250); - REQUIRE(rdata->rdclass == 255); + REQUIRE(rdata->type == dns_rdatatype_tsig); + REQUIRE(rdata->rdclass == dns_rdataclass_any); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); @@ -251,8 +251,8 @@ fromwire_any_tsig(ARGS_FROMWIRE) { dns_name_t name; unsigned long n; - REQUIRE(type == 250); - REQUIRE(rdclass == 255); + REQUIRE(type == dns_rdatatype_tsig); + REQUIRE(rdclass == dns_rdataclass_any); UNUSED(type); UNUSED(rdclass); @@ -314,8 +314,8 @@ towire_any_tsig(ARGS_TOWIRE) { dns_name_t name; dns_offsets_t offsets; - REQUIRE(rdata->type == 250); - REQUIRE(rdata->rdclass == 255); + REQUIRE(rdata->type == dns_rdatatype_tsig); + REQUIRE(rdata->rdclass == dns_rdataclass_any); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -337,8 +337,8 @@ compare_any_tsig(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 250); - REQUIRE(rdata1->rdclass == 255); + REQUIRE(rdata1->type == dns_rdatatype_tsig); + REQUIRE(rdata1->rdclass == dns_rdataclass_any); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -361,8 +361,8 @@ fromstruct_any_tsig(ARGS_FROMSTRUCT) { dns_rdata_any_tsig_t *tsig = source; isc_region_t tr; - REQUIRE(type == 250); - REQUIRE(rdclass == 255); + REQUIRE(type == dns_rdatatype_tsig); + REQUIRE(rdclass == dns_rdataclass_any); REQUIRE(source != NULL); REQUIRE(tsig->common.rdclass == rdclass); REQUIRE(tsig->common.rdtype == type); @@ -433,8 +433,8 @@ tostruct_any_tsig(ARGS_TOSTRUCT) { dns_name_t alg; isc_region_t sr; - REQUIRE(rdata->type == 250); - REQUIRE(rdata->rdclass == 255); + REQUIRE(rdata->type == dns_rdatatype_tsig); + REQUIRE(rdata->rdclass == dns_rdataclass_any); REQUIRE(rdata->length != 0); tsig = (dns_rdata_any_tsig_t *) target; @@ -529,8 +529,8 @@ freestruct_any_tsig(ARGS_FREESTRUCT) { dns_rdata_any_tsig_t *tsig = (dns_rdata_any_tsig_t *) source; REQUIRE(source != NULL); - REQUIRE(tsig->common.rdclass == 255); - REQUIRE(tsig->common.rdtype == 250); + REQUIRE(tsig->common.rdtype == dns_rdatatype_tsig); + REQUIRE(tsig->common.rdclass == dns_rdataclass_any); if (tsig->mctx == NULL) return; @@ -545,8 +545,8 @@ freestruct_any_tsig(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_any_tsig(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 250); - REQUIRE(rdata->rdclass == 255); + REQUIRE(rdata->type == dns_rdatatype_tsig); + REQUIRE(rdata->rdclass == dns_rdataclass_any); UNUSED(rdata); UNUSED(add); @@ -558,8 +558,8 @@ additionaldata_any_tsig(ARGS_ADDLDATA) { static inline isc_result_t digest_any_tsig(ARGS_DIGEST) { - REQUIRE(rdata->type == 250); - REQUIRE(rdata->rdclass == 255); + REQUIRE(rdata->type == dns_rdatatype_tsig); + REQUIRE(rdata->rdclass == dns_rdataclass_any); UNUSED(rdata); UNUSED(digest); @@ -571,8 +571,8 @@ digest_any_tsig(ARGS_DIGEST) { static inline isc_boolean_t checkowner_any_tsig(ARGS_CHECKOWNER) { - REQUIRE(type == 250); - REQUIRE(rdclass == 255); + REQUIRE(type == dns_rdatatype_tsig); + REQUIRE(rdclass == dns_rdataclass_any); UNUSED(name); UNUSED(type); @@ -585,8 +585,8 @@ checkowner_any_tsig(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_any_tsig(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 250); - REQUIRE(rdata->rdclass == 250); + REQUIRE(rdata->type == dns_rdatatype_tsig); + REQUIRE(rdata->rdclass == dns_rdataclass_any); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/ch_3/a_1.c b/lib/dns/rdata/ch_3/a_1.c index d25fcb50ac40..34a059b34374 100644 --- a/lib/dns/rdata/ch_3/a_1.c +++ b/lib/dns/rdata/ch_3/a_1.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2005, 2007, 2009, 2014, 2015 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 @@ -32,7 +32,7 @@ fromtext_ch_a(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 1); + REQUIRE(type == dns_rdatatype_a); REQUIRE(rdclass == dns_rdataclass_ch); /* 3 */ UNUSED(type); @@ -72,7 +72,7 @@ totext_ch_a(ARGS_TOTEXT) { char buf[sizeof("0177777")]; isc_uint16_t addr; - REQUIRE(rdata->type == 1); + REQUIRE(rdata->type == dns_rdatatype_a); REQUIRE(rdata->rdclass == dns_rdataclass_ch); /* 3 */ REQUIRE(rdata->length != 0); @@ -98,7 +98,7 @@ fromwire_ch_a(ARGS_FROMWIRE) { isc_region_t tregion; dns_name_t name; - REQUIRE(type == 1); + REQUIRE(type == dns_rdatatype_a); REQUIRE(rdclass == dns_rdataclass_ch); UNUSED(type); @@ -131,7 +131,7 @@ towire_ch_a(ARGS_TOWIRE) { isc_region_t sregion; isc_region_t tregion; - REQUIRE(rdata->type == 1); + REQUIRE(rdata->type == dns_rdatatype_a); REQUIRE(rdata->rdclass == dns_rdataclass_ch); REQUIRE(rdata->length != 0); @@ -164,7 +164,7 @@ compare_ch_a(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 1); + REQUIRE(rdata1->type == dns_rdatatype_a); REQUIRE(rdata1->rdclass == dns_rdataclass_ch); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -195,7 +195,7 @@ fromstruct_ch_a(ARGS_FROMSTRUCT) { dns_rdata_ch_a_t *a = source; isc_region_t region; - REQUIRE(type == 1); + REQUIRE(type == dns_rdatatype_a); REQUIRE(source != NULL); REQUIRE(a->common.rdtype == type); REQUIRE(a->common.rdclass == rdclass); @@ -215,7 +215,7 @@ tostruct_ch_a(ARGS_TOSTRUCT) { isc_region_t region; dns_name_t name; - REQUIRE(rdata->type == 1); + REQUIRE(rdata->type == dns_rdatatype_a); REQUIRE(rdata->rdclass == dns_rdataclass_ch); REQUIRE(rdata->length != 0); @@ -241,7 +241,7 @@ freestruct_ch_a(ARGS_FREESTRUCT) { dns_rdata_ch_a_t *a = source; REQUIRE(source != NULL); - REQUIRE(a->common.rdtype == 1); + REQUIRE(a->common.rdtype == dns_rdatatype_a); if (a->mctx == NULL) return; @@ -253,7 +253,7 @@ freestruct_ch_a(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_ch_a(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 1); + REQUIRE(rdata->type == dns_rdatatype_a); REQUIRE(rdata->rdclass == dns_rdataclass_ch); UNUSED(rdata); @@ -266,10 +266,9 @@ additionaldata_ch_a(ARGS_ADDLDATA) { static inline isc_result_t digest_ch_a(ARGS_DIGEST) { isc_region_t r; - dns_name_t name; - REQUIRE(rdata->type == 1); + REQUIRE(rdata->type == dns_rdatatype_a); REQUIRE(rdata->rdclass == dns_rdataclass_ch); dns_rdata_toregion(rdata, &r); @@ -283,7 +282,7 @@ digest_ch_a(ARGS_DIGEST) { static inline isc_boolean_t checkowner_ch_a(ARGS_CHECKOWNER) { - REQUIRE(type == 1); + REQUIRE(type == dns_rdatatype_a); REQUIRE(rdclass == dns_rdataclass_ch); UNUSED(type); @@ -296,7 +295,7 @@ checknames_ch_a(ARGS_CHECKNAMES) { isc_region_t region; dns_name_t name; - REQUIRE(rdata->type == 1); + REQUIRE(rdata->type == dns_rdatatype_a); REQUIRE(rdata->rdclass == dns_rdataclass_ch); UNUSED(owner); diff --git a/lib/dns/rdata/generic/afsdb_18.c b/lib/dns/rdata/generic/afsdb_18.c index af95fa12e91b..75f644f2c7ab 100644 --- a/lib/dns/rdata/generic/afsdb_18.c +++ b/lib/dns/rdata/generic/afsdb_18.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -33,7 +33,7 @@ fromtext_afsdb(ARGS_FROMTEXT) { dns_name_t name; isc_boolean_t ok; - REQUIRE(type == 18); + REQUIRE(type == dns_rdatatype_afsdb); UNUSED(type); UNUSED(rdclass); @@ -76,7 +76,7 @@ totext_afsdb(ARGS_TOTEXT) { isc_boolean_t sub; unsigned int num; - REQUIRE(rdata->type == 18); + REQUIRE(rdata->type == dns_rdatatype_afsdb); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -98,7 +98,7 @@ fromwire_afsdb(ARGS_FROMWIRE) { isc_region_t sr; isc_region_t tr; - REQUIRE(type == 18); + REQUIRE(type == dns_rdatatype_afsdb); UNUSED(type); UNUSED(rdclass); @@ -126,7 +126,7 @@ towire_afsdb(ARGS_TOWIRE) { dns_name_t name; dns_offsets_t offsets; - REQUIRE(rdata->type == 18); + REQUIRE(rdata->type == dns_rdatatype_afsdb); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -154,7 +154,7 @@ compare_afsdb(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 18); + REQUIRE(rdata1->type == dns_rdatatype_afsdb); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -182,7 +182,7 @@ fromstruct_afsdb(ARGS_FROMSTRUCT) { dns_rdata_afsdb_t *afsdb = source; isc_region_t region; - REQUIRE(type == 18); + REQUIRE(type == dns_rdatatype_afsdb); REQUIRE(source != NULL); REQUIRE(afsdb->common.rdclass == rdclass); REQUIRE(afsdb->common.rdtype == type); @@ -201,7 +201,7 @@ tostruct_afsdb(ARGS_TOSTRUCT) { dns_rdata_afsdb_t *afsdb = target; dns_name_t name; - REQUIRE(rdata->type == 18); + REQUIRE(rdata->type == dns_rdatatype_afsdb); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -229,7 +229,7 @@ freestruct_afsdb(ARGS_FREESTRUCT) { dns_rdata_afsdb_t *afsdb = source; REQUIRE(source != NULL); - REQUIRE(afsdb->common.rdtype == 18); + REQUIRE(afsdb->common.rdtype == dns_rdatatype_afsdb); if (afsdb->mctx == NULL) return; @@ -244,7 +244,7 @@ additionaldata_afsdb(ARGS_ADDLDATA) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 18); + REQUIRE(rdata->type == dns_rdatatype_afsdb); dns_name_init(&name, offsets); dns_rdata_toregion(rdata, ®ion); @@ -259,7 +259,7 @@ digest_afsdb(ARGS_DIGEST) { isc_region_t r1, r2; dns_name_t name; - REQUIRE(rdata->type == 18); + REQUIRE(rdata->type == dns_rdatatype_afsdb); dns_rdata_toregion(rdata, &r1); r2 = r1; @@ -275,7 +275,7 @@ digest_afsdb(ARGS_DIGEST) { static inline isc_boolean_t checkowner_afsdb(ARGS_CHECKOWNER) { - REQUIRE(type == 18); + REQUIRE(type == dns_rdatatype_afsdb); UNUSED(name); UNUSED(type); @@ -290,7 +290,7 @@ checknames_afsdb(ARGS_CHECKNAMES) { isc_region_t region; dns_name_t name; - REQUIRE(rdata->type == 18); + REQUIRE(rdata->type == dns_rdatatype_afsdb); UNUSED(owner); diff --git a/lib/dns/rdata/generic/caa_257.c b/lib/dns/rdata/generic/caa_257.c index 993e3267e623..648f4afdc3b6 100644 --- a/lib/dns/rdata/generic/caa_257.c +++ b/lib/dns/rdata/generic/caa_257.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2014, 2015 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 @@ -45,7 +45,7 @@ fromtext_caa(ARGS_FROMTEXT) { isc_uint8_t flags; unsigned int i; - REQUIRE(type == 257); + REQUIRE(type == dns_rdatatype_caa); UNUSED(type); UNUSED(rdclass); @@ -68,7 +68,7 @@ fromtext_caa(ARGS_FROMTEXT) { ISC_FALSE)); tr = token.value.as_textregion; for (i = 0; i < tr.length; i++) - if (!alphanumeric[(unsigned int) tr.base[i]]) + if (!alphanumeric[(unsigned char) tr.base[i]]) RETTOK(DNS_R_SYNTAX); RETERR(uint8_tobuffer(tr.length, target)); RETERR(mem_tobuffer(target, tr.base, tr.length)); @@ -93,7 +93,7 @@ totext_caa(ARGS_TOTEXT) { UNUSED(tctx); - REQUIRE(rdata->type == 257); + REQUIRE(rdata->type == dns_rdatatype_caa); REQUIRE(rdata->length >= 3U); REQUIRE(rdata->data != NULL); @@ -124,7 +124,7 @@ fromwire_caa(ARGS_FROMWIRE) { isc_region_t sr; unsigned int len, i; - REQUIRE(type == 257); + REQUIRE(type == dns_rdatatype_caa); UNUSED(type); UNUSED(rdclass); @@ -167,7 +167,7 @@ static inline isc_result_t towire_caa(ARGS_TOWIRE) { isc_region_t region; - REQUIRE(rdata->type == 257); + REQUIRE(rdata->type == dns_rdatatype_caa); REQUIRE(rdata->length >= 3U); REQUIRE(rdata->data != NULL); @@ -183,7 +183,7 @@ compare_caa(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 257); + REQUIRE(rdata1->type == dns_rdatatype_caa); REQUIRE(rdata1->length >= 3U); REQUIRE(rdata2->length >= 3U); REQUIRE(rdata1->data != NULL); @@ -200,7 +200,7 @@ fromstruct_caa(ARGS_FROMSTRUCT) { isc_region_t region; unsigned int i; - REQUIRE(type == 257); + REQUIRE(type == dns_rdatatype_caa); REQUIRE(source != NULL); REQUIRE(caa->common.rdtype == type); REQUIRE(caa->common.rdclass == rdclass); @@ -243,7 +243,7 @@ tostruct_caa(ARGS_TOSTRUCT) { dns_rdata_caa_t *caa = target; isc_region_t sr; - REQUIRE(rdata->type == 257); + REQUIRE(rdata->type == dns_rdatatype_caa); REQUIRE(target != NULL); REQUIRE(rdata->length >= 3U); REQUIRE(rdata->data != NULL); @@ -297,7 +297,7 @@ freestruct_caa(ARGS_FREESTRUCT) { dns_rdata_caa_t *caa = (dns_rdata_caa_t *) source; REQUIRE(source != NULL); - REQUIRE(caa->common.rdtype == 257); + REQUIRE(caa->common.rdtype == dns_rdatatype_caa); if (caa->mctx == NULL) return; @@ -311,7 +311,7 @@ freestruct_caa(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_caa(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 257); + REQUIRE(rdata->type == dns_rdatatype_caa); REQUIRE(rdata->data != NULL); REQUIRE(rdata->length >= 3U); @@ -326,7 +326,7 @@ static inline isc_result_t digest_caa(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 257); + REQUIRE(rdata->type == dns_rdatatype_caa); REQUIRE(rdata->data != NULL); REQUIRE(rdata->length >= 3U); @@ -338,7 +338,7 @@ digest_caa(ARGS_DIGEST) { static inline isc_boolean_t checkowner_caa(ARGS_CHECKOWNER) { - REQUIRE(type == 257); + REQUIRE(type == dns_rdatatype_caa); UNUSED(name); UNUSED(type); @@ -351,7 +351,7 @@ checkowner_caa(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_caa(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 257); + REQUIRE(rdata->type == dns_rdatatype_caa); REQUIRE(rdata->data != NULL); REQUIRE(rdata->length >= 3U); diff --git a/lib/dns/rdata/generic/cdnskey_60.c b/lib/dns/rdata/generic/cdnskey_60.c index 624f581725e0..945b3644ce67 100644 --- a/lib/dns/rdata/generic/cdnskey_60.c +++ b/lib/dns/rdata/generic/cdnskey_60.c @@ -37,7 +37,7 @@ fromtext_cdnskey(ARGS_FROMTEXT) { dns_secproto_t proto; dns_keyflags_t flags; - REQUIRE(type == 60); + REQUIRE(type == dns_rdatatype_cdnskey); UNUSED(type); UNUSED(rdclass); @@ -87,7 +87,7 @@ totext_cdnskey(ARGS_TOTEXT) { char algbuf[DNS_NAME_FORMATSIZE]; const char *keyinfo; - REQUIRE(rdata->type == 60); + REQUIRE(rdata->type == dns_rdatatype_cdnskey); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); @@ -171,7 +171,7 @@ fromwire_cdnskey(ARGS_FROMWIRE) { unsigned char algorithm; isc_region_t sr; - REQUIRE(type == 60); + REQUIRE(type == dns_rdatatype_cdnskey); UNUSED(type); UNUSED(rdclass); @@ -211,7 +211,7 @@ static inline isc_result_t towire_cdnskey(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 60); + REQUIRE(rdata->type == dns_rdatatype_cdnskey); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -227,7 +227,7 @@ compare_cdnskey(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 60); + REQUIRE(rdata1->type == dns_rdatatype_cdnskey); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -240,7 +240,7 @@ static inline isc_result_t fromstruct_cdnskey(ARGS_FROMSTRUCT) { dns_rdata_cdnskey_t *dnskey = source; - REQUIRE(type == 60); + REQUIRE(type == dns_rdatatype_cdnskey); REQUIRE(source != NULL); REQUIRE(dnskey->common.rdtype == type); REQUIRE(dnskey->common.rdclass == rdclass); @@ -266,7 +266,7 @@ tostruct_cdnskey(ARGS_TOSTRUCT) { dns_rdata_cdnskey_t *dnskey = target; isc_region_t sr; - REQUIRE(rdata->type == 60); + REQUIRE(rdata->type == dns_rdatatype_cdnskey); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -309,7 +309,7 @@ freestruct_cdnskey(ARGS_FREESTRUCT) { dns_rdata_cdnskey_t *dnskey = (dns_rdata_cdnskey_t *) source; REQUIRE(source != NULL); - REQUIRE(dnskey->common.rdtype == 60); + REQUIRE(dnskey->common.rdtype == dns_rdatatype_cdnskey); if (dnskey->mctx == NULL) return; @@ -321,7 +321,7 @@ freestruct_cdnskey(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_cdnskey(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 60); + REQUIRE(rdata->type == dns_rdatatype_cdnskey); UNUSED(rdata); UNUSED(add); @@ -334,7 +334,7 @@ static inline isc_result_t digest_cdnskey(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 60); + REQUIRE(rdata->type == dns_rdatatype_cdnskey); dns_rdata_toregion(rdata, &r); @@ -344,7 +344,7 @@ digest_cdnskey(ARGS_DIGEST) { static inline isc_boolean_t checkowner_cdnskey(ARGS_CHECKOWNER) { - REQUIRE(type == 60); + REQUIRE(type == dns_rdatatype_cdnskey); UNUSED(name); UNUSED(type); @@ -357,7 +357,7 @@ checkowner_cdnskey(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_cdnskey(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 60); + REQUIRE(rdata->type == dns_rdatatype_cdnskey); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/cds_59.c b/lib/dns/rdata/generic/cds_59.c index ff7ff6315790..b58d5f7999d2 100644 --- a/lib/dns/rdata/generic/cds_59.c +++ b/lib/dns/rdata/generic/cds_59.c @@ -34,7 +34,7 @@ fromtext_cds(ARGS_FROMTEXT) { unsigned char c; int length; - REQUIRE(type == 59); + REQUIRE(type == dns_rdatatype_cds); UNUSED(type); UNUSED(rdclass); @@ -98,7 +98,7 @@ totext_cds(ARGS_TOTEXT) { char buf[sizeof("64000 ")]; unsigned int n; - REQUIRE(rdata->type == 59); + REQUIRE(rdata->type == dns_rdatatype_cds); REQUIRE(rdata->length != 0); UNUSED(tctx); @@ -149,7 +149,7 @@ static inline isc_result_t fromwire_cds(ARGS_FROMWIRE) { isc_region_t sr; - REQUIRE(type == 59); + REQUIRE(type == dns_rdatatype_cds); UNUSED(type); UNUSED(rdclass); @@ -194,7 +194,7 @@ static inline isc_result_t towire_cds(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 59); + REQUIRE(rdata->type == dns_rdatatype_cds); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -210,7 +210,7 @@ compare_cds(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 59); + REQUIRE(rdata1->type == dns_rdatatype_cds); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -223,7 +223,7 @@ static inline isc_result_t fromstruct_cds(ARGS_FROMSTRUCT) { dns_rdata_cds_t *ds = source; - REQUIRE(type == 59); + REQUIRE(type == dns_rdatatype_cds); REQUIRE(source != NULL); REQUIRE(ds->common.rdtype == type); REQUIRE(ds->common.rdclass == rdclass); @@ -257,7 +257,7 @@ tostruct_cds(ARGS_TOSTRUCT) { dns_rdata_cds_t *ds = target; isc_region_t region; - REQUIRE(rdata->type == 59); + REQUIRE(rdata->type == dns_rdatatype_cds); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -288,7 +288,7 @@ freestruct_cds(ARGS_FREESTRUCT) { dns_rdata_cds_t *ds = source; REQUIRE(ds != NULL); - REQUIRE(ds->common.rdtype == 59); + REQUIRE(ds->common.rdtype == dns_rdatatype_cds); if (ds->mctx == NULL) return; @@ -300,7 +300,7 @@ freestruct_cds(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_cds(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 59); + REQUIRE(rdata->type == dns_rdatatype_cds); UNUSED(rdata); UNUSED(add); @@ -313,7 +313,7 @@ static inline isc_result_t digest_cds(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 59); + REQUIRE(rdata->type == dns_rdatatype_cds); dns_rdata_toregion(rdata, &r); @@ -323,7 +323,7 @@ digest_cds(ARGS_DIGEST) { static inline isc_boolean_t checkowner_cds(ARGS_CHECKOWNER) { - REQUIRE(type == 59); + REQUIRE(type == dns_rdatatype_cds); UNUSED(name); UNUSED(type); @@ -336,7 +336,7 @@ checkowner_cds(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_cds(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 59); + REQUIRE(rdata->type == dns_rdatatype_cds); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/cert_37.c b/lib/dns/rdata/generic/cert_37.c index a03290a60a02..b9c171d6c392 100644 --- a/lib/dns/rdata/generic/cert_37.c +++ b/lib/dns/rdata/generic/cert_37.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -32,7 +32,7 @@ fromtext_cert(ARGS_FROMTEXT) { dns_secalg_t secalg; dns_cert_t cert; - REQUIRE(type == 37); + REQUIRE(type == dns_rdatatype_cert); UNUSED(type); UNUSED(rdclass); @@ -74,7 +74,7 @@ totext_cert(ARGS_TOTEXT) { char buf[sizeof("64000 ")]; unsigned int n; - REQUIRE(rdata->type == 37); + REQUIRE(rdata->type == dns_rdatatype_cert); REQUIRE(rdata->length != 0); UNUSED(tctx); @@ -123,7 +123,7 @@ static inline isc_result_t fromwire_cert(ARGS_FROMWIRE) { isc_region_t sr; - REQUIRE(type == 37); + REQUIRE(type == dns_rdatatype_cert); UNUSED(type); UNUSED(rdclass); @@ -142,7 +142,7 @@ static inline isc_result_t towire_cert(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 37); + REQUIRE(rdata->type == dns_rdatatype_cert); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -158,7 +158,7 @@ compare_cert(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 37); + REQUIRE(rdata1->type == dns_rdatatype_cert); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -171,7 +171,7 @@ static inline isc_result_t fromstruct_cert(ARGS_FROMSTRUCT) { dns_rdata_cert_t *cert = source; - REQUIRE(type == 37); + REQUIRE(type == dns_rdatatype_cert); REQUIRE(source != NULL); REQUIRE(cert->common.rdtype == type); REQUIRE(cert->common.rdclass == rdclass); @@ -191,7 +191,7 @@ tostruct_cert(ARGS_TOSTRUCT) { dns_rdata_cert_t *cert = target; isc_region_t region; - REQUIRE(rdata->type == 37); + REQUIRE(rdata->type == dns_rdatatype_cert); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -222,7 +222,7 @@ freestruct_cert(ARGS_FREESTRUCT) { dns_rdata_cert_t *cert = source; REQUIRE(cert != NULL); - REQUIRE(cert->common.rdtype == 37); + REQUIRE(cert->common.rdtype == dns_rdatatype_cert); if (cert->mctx == NULL) return; @@ -234,7 +234,7 @@ freestruct_cert(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_cert(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 37); + REQUIRE(rdata->type == dns_rdatatype_cert); UNUSED(rdata); UNUSED(add); @@ -247,7 +247,7 @@ static inline isc_result_t digest_cert(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 37); + REQUIRE(rdata->type == dns_rdatatype_cert); dns_rdata_toregion(rdata, &r); @@ -257,7 +257,7 @@ digest_cert(ARGS_DIGEST) { static inline isc_boolean_t checkowner_cert(ARGS_CHECKOWNER) { - REQUIRE(type == 37); + REQUIRE(type == dns_rdatatype_cert); UNUSED(name); UNUSED(type); @@ -270,7 +270,7 @@ checkowner_cert(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_cert(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 37); + REQUIRE(rdata->type == dns_rdatatype_cert); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/cname_5.c b/lib/dns/rdata/generic/cname_5.c index 45a48a897fc0..3f8a69b28dbf 100644 --- a/lib/dns/rdata/generic/cname_5.c +++ b/lib/dns/rdata/generic/cname_5.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -31,7 +31,7 @@ fromtext_cname(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 5); + REQUIRE(type == dns_rdatatype_cname); UNUSED(type); UNUSED(rdclass); @@ -54,7 +54,7 @@ totext_cname(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 5); + REQUIRE(rdata->type == dns_rdatatype_cname); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -72,7 +72,7 @@ static inline isc_result_t fromwire_cname(ARGS_FROMWIRE) { dns_name_t name; - REQUIRE(type == 5); + REQUIRE(type == dns_rdatatype_cname); UNUSED(type); UNUSED(rdclass); @@ -89,7 +89,7 @@ towire_cname(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 5); + REQUIRE(rdata->type == dns_rdatatype_cname); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); @@ -110,7 +110,7 @@ compare_cname(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 5); + REQUIRE(rdata1->type == dns_rdatatype_cname); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -131,7 +131,7 @@ fromstruct_cname(ARGS_FROMSTRUCT) { dns_rdata_cname_t *cname = source; isc_region_t region; - REQUIRE(type == 5); + REQUIRE(type == dns_rdatatype_cname); REQUIRE(source != NULL); REQUIRE(cname->common.rdtype == type); REQUIRE(cname->common.rdclass == rdclass); @@ -149,7 +149,7 @@ tostruct_cname(ARGS_TOSTRUCT) { dns_rdata_cname_t *cname = target; dns_name_t name; - REQUIRE(rdata->type == 5); + REQUIRE(rdata->type == dns_rdatatype_cname); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -185,7 +185,7 @@ additionaldata_cname(ARGS_ADDLDATA) { UNUSED(add); UNUSED(arg); - REQUIRE(rdata->type == 5); + REQUIRE(rdata->type == dns_rdatatype_cname); return (ISC_R_SUCCESS); } @@ -195,7 +195,7 @@ digest_cname(ARGS_DIGEST) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 5); + REQUIRE(rdata->type == dns_rdatatype_cname); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -207,7 +207,7 @@ digest_cname(ARGS_DIGEST) { static inline isc_boolean_t checkowner_cname(ARGS_CHECKOWNER) { - REQUIRE(type == 5); + REQUIRE(type == dns_rdatatype_cname); UNUSED(name); UNUSED(type); @@ -220,7 +220,7 @@ checkowner_cname(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_cname(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 5); + REQUIRE(rdata->type == dns_rdatatype_cname); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/dlv_32769.c b/lib/dns/rdata/generic/dlv_32769.c index 5751ad894527..3ff575766e3b 100644 --- a/lib/dns/rdata/generic/dlv_32769.c +++ b/lib/dns/rdata/generic/dlv_32769.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2006, 2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2006, 2007, 2009-2013, 2015 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 @@ -35,7 +35,7 @@ fromtext_dlv(ARGS_FROMTEXT) { unsigned char c; int length; - REQUIRE(type == 32769); + REQUIRE(type == dns_rdatatype_dlv); UNUSED(type); UNUSED(rdclass); @@ -100,7 +100,7 @@ totext_dlv(ARGS_TOTEXT) { char buf[sizeof("64000 ")]; unsigned int n; - REQUIRE(rdata->type == 32769); + REQUIRE(rdata->type == dns_rdatatype_dlv); REQUIRE(rdata->length != 0); UNUSED(tctx); @@ -151,7 +151,7 @@ static inline isc_result_t fromwire_dlv(ARGS_FROMWIRE) { isc_region_t sr; - REQUIRE(type == 32769); + REQUIRE(type == dns_rdatatype_dlv); UNUSED(type); UNUSED(rdclass); @@ -196,7 +196,7 @@ static inline isc_result_t towire_dlv(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 32769); + REQUIRE(rdata->type == dns_rdatatype_dlv); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -212,7 +212,7 @@ compare_dlv(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 32769); + REQUIRE(rdata1->type == dns_rdatatype_dlv); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -225,7 +225,7 @@ static inline isc_result_t fromstruct_dlv(ARGS_FROMSTRUCT) { dns_rdata_dlv_t *dlv = source; - REQUIRE(type == 32769); + REQUIRE(type == dns_rdatatype_dlv); REQUIRE(source != NULL); REQUIRE(dlv->common.rdtype == type); REQUIRE(dlv->common.rdclass == rdclass); @@ -259,7 +259,7 @@ tostruct_dlv(ARGS_TOSTRUCT) { dns_rdata_dlv_t *dlv = target; isc_region_t region; - REQUIRE(rdata->type == 32769); + REQUIRE(rdata->type == dns_rdatatype_dlv); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -290,7 +290,7 @@ freestruct_dlv(ARGS_FREESTRUCT) { dns_rdata_dlv_t *dlv = source; REQUIRE(dlv != NULL); - REQUIRE(dlv->common.rdtype == 32769); + REQUIRE(dlv->common.rdtype == dns_rdatatype_dlv); if (dlv->mctx == NULL) return; @@ -302,7 +302,7 @@ freestruct_dlv(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_dlv(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 32769); + REQUIRE(rdata->type == dns_rdatatype_dlv); UNUSED(rdata); UNUSED(add); @@ -315,7 +315,7 @@ static inline isc_result_t digest_dlv(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 32769); + REQUIRE(rdata->type == dns_rdatatype_dlv); dns_rdata_toregion(rdata, &r); @@ -325,7 +325,7 @@ digest_dlv(ARGS_DIGEST) { static inline isc_boolean_t checkowner_dlv(ARGS_CHECKOWNER) { - REQUIRE(type == 32769); + REQUIRE(type == dns_rdatatype_dlv); UNUSED(name); UNUSED(type); @@ -338,7 +338,7 @@ checkowner_dlv(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_dlv(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 32769); + REQUIRE(rdata->type == dns_rdatatype_dlv); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/dname_39.c b/lib/dns/rdata/generic/dname_39.c index d899494f5368..d181a6cd10c7 100644 --- a/lib/dns/rdata/generic/dname_39.c +++ b/lib/dns/rdata/generic/dname_39.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -32,7 +32,7 @@ fromtext_dname(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 39); + REQUIRE(type == dns_rdatatype_dname); UNUSED(type); UNUSED(rdclass); @@ -55,7 +55,7 @@ totext_dname(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 39); + REQUIRE(rdata->type == dns_rdatatype_dname); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -73,7 +73,7 @@ static inline isc_result_t fromwire_dname(ARGS_FROMWIRE) { dns_name_t name; - REQUIRE(type == 39); + REQUIRE(type == dns_rdatatype_dname); UNUSED(type); UNUSED(rdclass); @@ -90,7 +90,7 @@ towire_dname(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 39); + REQUIRE(rdata->type == dns_rdatatype_dname); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -110,7 +110,7 @@ compare_dname(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 39); + REQUIRE(rdata1->type == dns_rdatatype_dname); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -131,7 +131,7 @@ fromstruct_dname(ARGS_FROMSTRUCT) { dns_rdata_dname_t *dname = source; isc_region_t region; - REQUIRE(type == 39); + REQUIRE(type == dns_rdatatype_dname); REQUIRE(source != NULL); REQUIRE(dname->common.rdtype == type); REQUIRE(dname->common.rdclass == rdclass); @@ -149,7 +149,7 @@ tostruct_dname(ARGS_TOSTRUCT) { dns_rdata_dname_t *dname = target; dns_name_t name; - REQUIRE(rdata->type == 39); + REQUIRE(rdata->type == dns_rdatatype_dname); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -171,7 +171,7 @@ freestruct_dname(ARGS_FREESTRUCT) { dns_rdata_dname_t *dname = source; REQUIRE(source != NULL); - REQUIRE(dname->common.rdtype == 39); + REQUIRE(dname->common.rdtype == dns_rdatatype_dname); if (dname->mctx == NULL) return; @@ -186,7 +186,7 @@ additionaldata_dname(ARGS_ADDLDATA) { UNUSED(add); UNUSED(arg); - REQUIRE(rdata->type == 39); + REQUIRE(rdata->type == dns_rdatatype_dname); return (ISC_R_SUCCESS); } @@ -196,7 +196,7 @@ digest_dname(ARGS_DIGEST) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 39); + REQUIRE(rdata->type == dns_rdatatype_dname); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -208,7 +208,7 @@ digest_dname(ARGS_DIGEST) { static inline isc_boolean_t checkowner_dname(ARGS_CHECKOWNER) { - REQUIRE(type == 39); + REQUIRE(type == dns_rdatatype_dname); UNUSED(name); UNUSED(type); @@ -221,7 +221,7 @@ checkowner_dname(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_dname(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 39); + REQUIRE(rdata->type == dns_rdatatype_dname); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/dnskey_48.c b/lib/dns/rdata/generic/dnskey_48.c index aa705cab3684..3b0387503a1b 100644 --- a/lib/dns/rdata/generic/dnskey_48.c +++ b/lib/dns/rdata/generic/dnskey_48.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2011-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -38,7 +38,7 @@ fromtext_dnskey(ARGS_FROMTEXT) { dns_secproto_t proto; dns_keyflags_t flags; - REQUIRE(type == 48); + REQUIRE(type == dns_rdatatype_dnskey); UNUSED(type); UNUSED(rdclass); @@ -88,7 +88,7 @@ totext_dnskey(ARGS_TOTEXT) { char algbuf[DNS_NAME_FORMATSIZE]; const char *keyinfo; - REQUIRE(rdata->type == 48); + REQUIRE(rdata->type == dns_rdatatype_dnskey); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); @@ -172,7 +172,7 @@ fromwire_dnskey(ARGS_FROMWIRE) { unsigned char algorithm; isc_region_t sr; - REQUIRE(type == 48); + REQUIRE(type == dns_rdatatype_dnskey); UNUSED(type); UNUSED(rdclass); @@ -212,7 +212,7 @@ static inline isc_result_t towire_dnskey(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 48); + REQUIRE(rdata->type == dns_rdatatype_dnskey); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -228,7 +228,7 @@ compare_dnskey(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 48); + REQUIRE(rdata1->type == dns_rdatatype_dnskey); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -241,7 +241,7 @@ static inline isc_result_t fromstruct_dnskey(ARGS_FROMSTRUCT) { dns_rdata_dnskey_t *dnskey = source; - REQUIRE(type == 48); + REQUIRE(type == dns_rdatatype_dnskey); REQUIRE(source != NULL); REQUIRE(dnskey->common.rdtype == type); REQUIRE(dnskey->common.rdclass == rdclass); @@ -267,7 +267,7 @@ tostruct_dnskey(ARGS_TOSTRUCT) { dns_rdata_dnskey_t *dnskey = target; isc_region_t sr; - REQUIRE(rdata->type == 48); + REQUIRE(rdata->type == dns_rdatatype_dnskey); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -310,7 +310,7 @@ freestruct_dnskey(ARGS_FREESTRUCT) { dns_rdata_dnskey_t *dnskey = (dns_rdata_dnskey_t *) source; REQUIRE(source != NULL); - REQUIRE(dnskey->common.rdtype == 48); + REQUIRE(dnskey->common.rdtype == dns_rdatatype_dnskey); if (dnskey->mctx == NULL) return; @@ -322,7 +322,7 @@ freestruct_dnskey(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_dnskey(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 48); + REQUIRE(rdata->type == dns_rdatatype_dnskey); UNUSED(rdata); UNUSED(add); @@ -335,7 +335,7 @@ static inline isc_result_t digest_dnskey(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 48); + REQUIRE(rdata->type == dns_rdatatype_dnskey); dns_rdata_toregion(rdata, &r); @@ -345,7 +345,7 @@ digest_dnskey(ARGS_DIGEST) { static inline isc_boolean_t checkowner_dnskey(ARGS_CHECKOWNER) { - REQUIRE(type == 48); + REQUIRE(type == dns_rdatatype_dnskey); UNUSED(name); UNUSED(type); @@ -358,7 +358,7 @@ checkowner_dnskey(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_dnskey(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 48); + REQUIRE(rdata->type == dns_rdatatype_dnskey); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/ds_43.c b/lib/dns/rdata/generic/ds_43.c index dd47c8d5e83e..975fdfd2b3a6 100644 --- a/lib/dns/rdata/generic/ds_43.c +++ b/lib/dns/rdata/generic/ds_43.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009-2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -36,7 +36,7 @@ fromtext_ds(ARGS_FROMTEXT) { unsigned char c; int length; - REQUIRE(type == 43); + REQUIRE(type == dns_rdatatype_ds); UNUSED(type); UNUSED(rdclass); @@ -100,7 +100,7 @@ totext_ds(ARGS_TOTEXT) { char buf[sizeof("64000 ")]; unsigned int n; - REQUIRE(rdata->type == 43); + REQUIRE(rdata->type == dns_rdatatype_ds); REQUIRE(rdata->length != 0); UNUSED(tctx); @@ -151,7 +151,7 @@ static inline isc_result_t fromwire_ds(ARGS_FROMWIRE) { isc_region_t sr; - REQUIRE(type == 43); + REQUIRE(type == dns_rdatatype_ds); UNUSED(type); UNUSED(rdclass); @@ -196,7 +196,7 @@ static inline isc_result_t towire_ds(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 43); + REQUIRE(rdata->type == dns_rdatatype_ds); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -212,7 +212,7 @@ compare_ds(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 43); + REQUIRE(rdata1->type == dns_rdatatype_ds); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -225,7 +225,7 @@ static inline isc_result_t fromstruct_ds(ARGS_FROMSTRUCT) { dns_rdata_ds_t *ds = source; - REQUIRE(type == 43); + REQUIRE(type == dns_rdatatype_ds); REQUIRE(source != NULL); REQUIRE(ds->common.rdtype == type); REQUIRE(ds->common.rdclass == rdclass); @@ -259,7 +259,7 @@ tostruct_ds(ARGS_TOSTRUCT) { dns_rdata_ds_t *ds = target; isc_region_t region; - REQUIRE(rdata->type == 43); + REQUIRE(rdata->type == dns_rdatatype_ds); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -290,7 +290,7 @@ freestruct_ds(ARGS_FREESTRUCT) { dns_rdata_ds_t *ds = source; REQUIRE(ds != NULL); - REQUIRE(ds->common.rdtype == 43); + REQUIRE(ds->common.rdtype == dns_rdatatype_ds); if (ds->mctx == NULL) return; @@ -302,7 +302,7 @@ freestruct_ds(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_ds(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 43); + REQUIRE(rdata->type == dns_rdatatype_ds); UNUSED(rdata); UNUSED(add); @@ -315,7 +315,7 @@ static inline isc_result_t digest_ds(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 43); + REQUIRE(rdata->type == dns_rdatatype_ds); dns_rdata_toregion(rdata, &r); @@ -325,7 +325,7 @@ digest_ds(ARGS_DIGEST) { static inline isc_boolean_t checkowner_ds(ARGS_CHECKOWNER) { - REQUIRE(type == 43); + REQUIRE(type == dns_rdatatype_ds); UNUSED(name); UNUSED(type); @@ -338,7 +338,7 @@ checkowner_ds(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_ds(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 43); + REQUIRE(rdata->type == dns_rdatatype_ds); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/eui48_108.c b/lib/dns/rdata/generic/eui48_108.c index b25a7b7e03e4..9910e48c3dcd 100644 --- a/lib/dns/rdata/generic/eui48_108.c +++ b/lib/dns/rdata/generic/eui48_108.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2013-2015 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 @@ -28,7 +28,7 @@ fromtext_eui48(ARGS_FROMTEXT) { unsigned int l0, l1, l2, l3, l4, l5; int n; - REQUIRE(type == 108); + REQUIRE(type == dns_rdatatype_eui48); UNUSED(type); UNUSED(rdclass); @@ -57,7 +57,7 @@ static inline isc_result_t totext_eui48(ARGS_TOTEXT) { char buf[sizeof("xx-xx-xx-xx-xx-xx")]; - REQUIRE(rdata->type == 108); + REQUIRE(rdata->type == dns_rdatatype_eui48); REQUIRE(rdata->length == 6); UNUSED(tctx); @@ -72,7 +72,7 @@ static inline isc_result_t fromwire_eui48(ARGS_FROMWIRE) { isc_region_t sregion; - REQUIRE(type == 108); + REQUIRE(type == dns_rdatatype_eui48); UNUSED(type); UNUSED(options); @@ -89,7 +89,7 @@ fromwire_eui48(ARGS_FROMWIRE) { static inline isc_result_t towire_eui48(ARGS_TOWIRE) { - REQUIRE(rdata->type == 108); + REQUIRE(rdata->type == dns_rdatatype_eui48); REQUIRE(rdata->length == 6); UNUSED(cctx); @@ -104,7 +104,7 @@ compare_eui48(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 108); + REQUIRE(rdata1->type == dns_rdatatype_eui48); REQUIRE(rdata1->length == 6); REQUIRE(rdata2->length == 6); @@ -117,7 +117,7 @@ static inline isc_result_t fromstruct_eui48(ARGS_FROMSTRUCT) { dns_rdata_eui48_t *eui48 = source; - REQUIRE(type == 108); + REQUIRE(type == dns_rdatatype_eui48); REQUIRE(source != NULL); REQUIRE(eui48->common.rdtype == type); REQUIRE(eui48->common.rdclass == rdclass); @@ -132,7 +132,7 @@ static inline isc_result_t tostruct_eui48(ARGS_TOSTRUCT) { dns_rdata_eui48_t *eui48 = target; - REQUIRE(rdata->type == 108); + REQUIRE(rdata->type == dns_rdatatype_eui48); REQUIRE(target != NULL); REQUIRE(rdata->length == 6); @@ -151,7 +151,7 @@ freestruct_eui48(ARGS_FREESTRUCT) { dns_rdata_eui48_t *eui48 = source; REQUIRE(source != NULL); - REQUIRE(eui48->common.rdtype == 108); + REQUIRE(eui48->common.rdtype == dns_rdatatype_eui48); return; } @@ -159,7 +159,7 @@ freestruct_eui48(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_eui48(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 108); + REQUIRE(rdata->type == dns_rdatatype_eui48); REQUIRE(rdata->length == 6); UNUSED(rdata); @@ -173,7 +173,7 @@ static inline isc_result_t digest_eui48(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 108); + REQUIRE(rdata->type == dns_rdatatype_eui48); REQUIRE(rdata->length == 6); dns_rdata_toregion(rdata, &r); @@ -184,7 +184,7 @@ digest_eui48(ARGS_DIGEST) { static inline isc_boolean_t checkowner_eui48(ARGS_CHECKOWNER) { - REQUIRE(type == 108); + REQUIRE(type == dns_rdatatype_eui48); UNUSED(name); UNUSED(type); @@ -197,7 +197,7 @@ checkowner_eui48(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_eui48(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 108); + REQUIRE(rdata->type == dns_rdatatype_eui48); REQUIRE(rdata->length == 6); UNUSED(rdata); diff --git a/lib/dns/rdata/generic/eui64_109.c b/lib/dns/rdata/generic/eui64_109.c index 33d2f637c825..6ac7f0d619f7 100644 --- a/lib/dns/rdata/generic/eui64_109.c +++ b/lib/dns/rdata/generic/eui64_109.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2013-2015 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 @@ -28,7 +28,7 @@ fromtext_eui64(ARGS_FROMTEXT) { unsigned int l0, l1, l2, l3, l4, l5, l6, l7; int n; - REQUIRE(type == 109); + REQUIRE(type == dns_rdatatype_eui64); UNUSED(type); UNUSED(rdclass); @@ -59,7 +59,7 @@ static inline isc_result_t totext_eui64(ARGS_TOTEXT) { char buf[sizeof("xx-xx-xx-xx-xx-xx-xx-xx")]; - REQUIRE(rdata->type == 109); + REQUIRE(rdata->type == dns_rdatatype_eui64); REQUIRE(rdata->length == 8); UNUSED(tctx); @@ -77,7 +77,7 @@ static inline isc_result_t fromwire_eui64(ARGS_FROMWIRE) { isc_region_t sregion; - REQUIRE(type == 109); + REQUIRE(type == dns_rdatatype_eui64); UNUSED(type); UNUSED(options); @@ -94,7 +94,7 @@ fromwire_eui64(ARGS_FROMWIRE) { static inline isc_result_t towire_eui64(ARGS_TOWIRE) { - REQUIRE(rdata->type == 109); + REQUIRE(rdata->type == dns_rdatatype_eui64); REQUIRE(rdata->length == 8); UNUSED(cctx); @@ -109,7 +109,7 @@ compare_eui64(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 109); + REQUIRE(rdata1->type == dns_rdatatype_eui64); REQUIRE(rdata1->length == 8); REQUIRE(rdata2->length == 8); @@ -122,7 +122,7 @@ static inline isc_result_t fromstruct_eui64(ARGS_FROMSTRUCT) { dns_rdata_eui64_t *eui64 = source; - REQUIRE(type == 109); + REQUIRE(type == dns_rdatatype_eui64); REQUIRE(source != NULL); REQUIRE(eui64->common.rdtype == type); REQUIRE(eui64->common.rdclass == rdclass); @@ -137,7 +137,7 @@ static inline isc_result_t tostruct_eui64(ARGS_TOSTRUCT) { dns_rdata_eui64_t *eui64 = target; - REQUIRE(rdata->type == 109); + REQUIRE(rdata->type == dns_rdatatype_eui64); REQUIRE(target != NULL); REQUIRE(rdata->length == 8); @@ -156,7 +156,7 @@ freestruct_eui64(ARGS_FREESTRUCT) { dns_rdata_eui64_t *eui64 = source; REQUIRE(source != NULL); - REQUIRE(eui64->common.rdtype == 109); + REQUIRE(eui64->common.rdtype == dns_rdatatype_eui64); return; } @@ -164,7 +164,7 @@ freestruct_eui64(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_eui64(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 109); + REQUIRE(rdata->type == dns_rdatatype_eui64); REQUIRE(rdata->length == 8); UNUSED(rdata); @@ -178,7 +178,7 @@ static inline isc_result_t digest_eui64(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 109); + REQUIRE(rdata->type == dns_rdatatype_eui64); REQUIRE(rdata->length == 8); dns_rdata_toregion(rdata, &r); @@ -189,7 +189,7 @@ digest_eui64(ARGS_DIGEST) { static inline isc_boolean_t checkowner_eui64(ARGS_CHECKOWNER) { - REQUIRE(type == 109); + REQUIRE(type == dns_rdatatype_eui64); UNUSED(name); UNUSED(type); @@ -202,7 +202,7 @@ checkowner_eui64(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_eui64(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 109); + REQUIRE(rdata->type == dns_rdatatype_eui64); REQUIRE(rdata->length == 8); UNUSED(rdata); diff --git a/lib/dns/rdata/generic/gpos_27.c b/lib/dns/rdata/generic/gpos_27.c index e9ba59eacb6a..d5fa6b6055fc 100644 --- a/lib/dns/rdata/generic/gpos_27.c +++ b/lib/dns/rdata/generic/gpos_27.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -31,7 +31,7 @@ fromtext_gpos(ARGS_FROMTEXT) { isc_token_t token; int i; - REQUIRE(type == 27); + REQUIRE(type == dns_rdatatype_gpos); UNUSED(type); UNUSED(rdclass); @@ -53,7 +53,7 @@ totext_gpos(ARGS_TOTEXT) { isc_region_t region; int i; - REQUIRE(rdata->type == 27); + REQUIRE(rdata->type == dns_rdatatype_gpos); REQUIRE(rdata->length != 0); UNUSED(tctx); @@ -73,7 +73,7 @@ static inline isc_result_t fromwire_gpos(ARGS_FROMWIRE) { int i; - REQUIRE(type == 27); + REQUIRE(type == dns_rdatatype_gpos); UNUSED(type); UNUSED(dctx); @@ -88,7 +88,7 @@ fromwire_gpos(ARGS_FROMWIRE) { static inline isc_result_t towire_gpos(ARGS_TOWIRE) { - REQUIRE(rdata->type == 27); + REQUIRE(rdata->type == dns_rdatatype_gpos); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -103,7 +103,7 @@ compare_gpos(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 27); + REQUIRE(rdata1->type == dns_rdatatype_gpos); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -116,7 +116,7 @@ static inline isc_result_t fromstruct_gpos(ARGS_FROMSTRUCT) { dns_rdata_gpos_t *gpos = source; - REQUIRE(type == 27); + REQUIRE(type == dns_rdatatype_gpos); REQUIRE(source != NULL); REQUIRE(gpos->common.rdtype == type); REQUIRE(gpos->common.rdclass == rdclass); @@ -137,7 +137,7 @@ tostruct_gpos(ARGS_TOSTRUCT) { dns_rdata_gpos_t *gpos = target; isc_region_t region; - REQUIRE(rdata->type == 27); + REQUIRE(rdata->type == dns_rdatatype_gpos); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -188,7 +188,7 @@ freestruct_gpos(ARGS_FREESTRUCT) { dns_rdata_gpos_t *gpos = source; REQUIRE(source != NULL); - REQUIRE(gpos->common.rdtype == 27); + REQUIRE(gpos->common.rdtype == dns_rdatatype_gpos); if (gpos->mctx == NULL) return; @@ -204,7 +204,7 @@ freestruct_gpos(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_gpos(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 27); + REQUIRE(rdata->type == dns_rdatatype_gpos); UNUSED(rdata); UNUSED(add); @@ -217,7 +217,7 @@ static inline isc_result_t digest_gpos(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 27); + REQUIRE(rdata->type == dns_rdatatype_gpos); dns_rdata_toregion(rdata, &r); @@ -227,7 +227,7 @@ digest_gpos(ARGS_DIGEST) { static inline isc_boolean_t checkowner_gpos(ARGS_CHECKOWNER) { - REQUIRE(type == 27); + REQUIRE(type == dns_rdatatype_gpos); UNUSED(name); UNUSED(type); @@ -240,7 +240,7 @@ checkowner_gpos(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_gpos(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 27); + REQUIRE(rdata->type == dns_rdatatype_gpos); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/hinfo_13.c b/lib/dns/rdata/generic/hinfo_13.c index 411d6b56866e..abac75134946 100644 --- a/lib/dns/rdata/generic/hinfo_13.c +++ b/lib/dns/rdata/generic/hinfo_13.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -37,7 +37,7 @@ fromtext_hinfo(ARGS_FROMTEXT) { UNUSED(options); UNUSED(callbacks); - REQUIRE(type == 13); + REQUIRE(type == dns_rdatatype_hinfo); for (i = 0; i < 2; i++) { RETERR(isc_lex_getmastertoken(lexer, &token, @@ -54,7 +54,7 @@ totext_hinfo(ARGS_TOTEXT) { UNUSED(tctx); - REQUIRE(rdata->type == 13); + REQUIRE(rdata->type == dns_rdatatype_hinfo); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, ®ion); @@ -66,7 +66,7 @@ totext_hinfo(ARGS_TOTEXT) { static inline isc_result_t fromwire_hinfo(ARGS_FROMWIRE) { - REQUIRE(type == 13); + REQUIRE(type == dns_rdatatype_hinfo); UNUSED(type); UNUSED(dctx); @@ -82,7 +82,7 @@ towire_hinfo(ARGS_TOWIRE) { UNUSED(cctx); - REQUIRE(rdata->type == 13); + REQUIRE(rdata->type == dns_rdatatype_hinfo); REQUIRE(rdata->length != 0); return (mem_tobuffer(target, rdata->data, rdata->length)); @@ -95,7 +95,7 @@ compare_hinfo(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 13); + REQUIRE(rdata1->type == dns_rdatatype_hinfo); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -108,7 +108,7 @@ static inline isc_result_t fromstruct_hinfo(ARGS_FROMSTRUCT) { dns_rdata_hinfo_t *hinfo = source; - REQUIRE(type == 13); + REQUIRE(type == dns_rdatatype_hinfo); REQUIRE(source != NULL); REQUIRE(hinfo->common.rdtype == type); REQUIRE(hinfo->common.rdclass == rdclass); @@ -127,7 +127,7 @@ tostruct_hinfo(ARGS_TOSTRUCT) { dns_rdata_hinfo_t *hinfo = target; isc_region_t region; - REQUIRE(rdata->type == 13); + REQUIRE(rdata->type == dns_rdatatype_hinfo); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -176,7 +176,7 @@ freestruct_hinfo(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_hinfo(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 13); + REQUIRE(rdata->type == dns_rdatatype_hinfo); UNUSED(add); UNUSED(arg); @@ -189,7 +189,7 @@ static inline isc_result_t digest_hinfo(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 13); + REQUIRE(rdata->type == dns_rdatatype_hinfo); dns_rdata_toregion(rdata, &r); @@ -199,7 +199,7 @@ digest_hinfo(ARGS_DIGEST) { static inline isc_boolean_t checkowner_hinfo(ARGS_CHECKOWNER) { - REQUIRE(type == 13); + REQUIRE(type == dns_rdatatype_hinfo); UNUSED(name); UNUSED(type); @@ -212,7 +212,7 @@ checkowner_hinfo(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_hinfo(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 13); + REQUIRE(rdata->type == dns_rdatatype_hinfo); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/hip_55.c b/lib/dns/rdata/generic/hip_55.c index eee581f26a95..7c51d1f72a54 100644 --- a/lib/dns/rdata/generic/hip_55.c +++ b/lib/dns/rdata/generic/hip_55.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2011, 2013-2015 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 @@ -35,7 +35,7 @@ fromtext_hip(ARGS_FROMTEXT) { unsigned char *start; size_t len; - REQUIRE(type == 55); + REQUIRE(type == dns_rdatatype_hip); UNUSED(type); UNUSED(rdclass); @@ -126,7 +126,7 @@ totext_hip(ARGS_TOTEXT) { unsigned char algorithm; char buf[sizeof("225 ")]; - REQUIRE(rdata->type == 55); + REQUIRE(rdata->type == dns_rdatatype_hip); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, ®ion); @@ -193,7 +193,7 @@ fromwire_hip(ARGS_FROMWIRE) { isc_uint8_t hit_len; isc_uint16_t key_len; - REQUIRE(type == 55); + REQUIRE(type == dns_rdatatype_hip); UNUSED(type); UNUSED(rdclass); @@ -229,7 +229,7 @@ static inline isc_result_t towire_hip(ARGS_TOWIRE) { isc_region_t region; - REQUIRE(rdata->type == 55); + REQUIRE(rdata->type == dns_rdatatype_hip); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -245,7 +245,7 @@ compare_hip(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 55); + REQUIRE(rdata1->type == dns_rdatatype_hip); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -260,7 +260,7 @@ fromstruct_hip(ARGS_FROMSTRUCT) { dns_rdata_hip_t myhip; isc_result_t result; - REQUIRE(type == 55); + REQUIRE(type == dns_rdatatype_hip); REQUIRE(source != NULL); REQUIRE(hip->common.rdtype == type); REQUIRE(hip->common.rdclass == rdclass); @@ -292,7 +292,7 @@ tostruct_hip(ARGS_TOSTRUCT) { isc_region_t region; dns_rdata_hip_t *hip = target; - REQUIRE(rdata->type == 55); + REQUIRE(rdata->type == dns_rdatatype_hip); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -369,7 +369,7 @@ additionaldata_hip(ARGS_ADDLDATA) { UNUSED(add); UNUSED(arg); - REQUIRE(rdata->type == 55); + REQUIRE(rdata->type == dns_rdatatype_hip); return (ISC_R_SUCCESS); } @@ -378,7 +378,7 @@ static inline isc_result_t digest_hip(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 55); + REQUIRE(rdata->type == dns_rdatatype_hip); dns_rdata_toregion(rdata, &r); return ((digest)(arg, &r)); @@ -387,7 +387,7 @@ digest_hip(ARGS_DIGEST) { static inline isc_boolean_t checkowner_hip(ARGS_CHECKOWNER) { - REQUIRE(type == 55); + REQUIRE(type == dns_rdatatype_hip); UNUSED(name); UNUSED(type); @@ -400,7 +400,7 @@ checkowner_hip(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_hip(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 55); + REQUIRE(rdata->type == dns_rdatatype_hip); UNUSED(rdata); UNUSED(owner); @@ -459,7 +459,7 @@ casecompare_hip(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 55); + REQUIRE(rdata1->type == dns_rdatatype_hip); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); diff --git a/lib/dns/rdata/generic/ipseckey_45.c b/lib/dns/rdata/generic/ipseckey_45.c index 230d0d1e1e82..c5462c1a69a8 100644 --- a/lib/dns/rdata/generic/ipseckey_45.c +++ b/lib/dns/rdata/generic/ipseckey_45.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005, 2007, 2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2005, 2007, 2009, 2011, 2012, 2014, 2015 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 @@ -35,7 +35,7 @@ fromtext_ipseckey(ARGS_FROMTEXT) { unsigned char addr6[16]; isc_region_t region; - REQUIRE(type == 45); + REQUIRE(type == dns_rdatatype_ipseckey); UNUSED(type); UNUSED(rdclass); @@ -124,7 +124,7 @@ totext_ipseckey(ARGS_TOTEXT) { unsigned short num; unsigned short gateway; - REQUIRE(rdata->type == 45); + REQUIRE(rdata->type == dns_rdatatype_ipseckey); REQUIRE(rdata->length >= 3); dns_name_init(&name, NULL); @@ -207,7 +207,7 @@ fromwire_ipseckey(ARGS_FROMWIRE) { dns_name_t name; isc_region_t region; - REQUIRE(type == 45); + REQUIRE(type == dns_rdatatype_ipseckey); UNUSED(type); UNUSED(rdclass); @@ -254,7 +254,7 @@ static inline isc_result_t towire_ipseckey(ARGS_TOWIRE) { isc_region_t region; - REQUIRE(rdata->type == 45); + REQUIRE(rdata->type == dns_rdatatype_ipseckey); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -270,7 +270,7 @@ compare_ipseckey(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 45); + REQUIRE(rdata1->type == dns_rdatatype_ipseckey); REQUIRE(rdata1->length >= 3); REQUIRE(rdata2->length >= 3); @@ -286,7 +286,7 @@ fromstruct_ipseckey(ARGS_FROMSTRUCT) { isc_region_t region; isc_uint32_t n; - REQUIRE(type == 45); + REQUIRE(type == dns_rdatatype_ipseckey); REQUIRE(source != NULL); REQUIRE(ipseckey->common.rdtype == type); REQUIRE(ipseckey->common.rdclass == rdclass); @@ -330,7 +330,7 @@ tostruct_ipseckey(ARGS_TOSTRUCT) { dns_name_t name; isc_uint32_t n; - REQUIRE(rdata->type == 45); + REQUIRE(rdata->type == dns_rdatatype_ipseckey); REQUIRE(target != NULL); REQUIRE(rdata->length >= 3); @@ -398,7 +398,7 @@ freestruct_ipseckey(ARGS_FREESTRUCT) { dns_rdata_ipseckey_t *ipseckey = source; REQUIRE(source != NULL); - REQUIRE(ipseckey->common.rdtype == 45); + REQUIRE(ipseckey->common.rdtype == dns_rdatatype_ipseckey); if (ipseckey->mctx == NULL) return; @@ -415,7 +415,7 @@ freestruct_ipseckey(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_ipseckey(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 45); + REQUIRE(rdata->type == dns_rdatatype_ipseckey); UNUSED(rdata); UNUSED(add); @@ -428,7 +428,7 @@ static inline isc_result_t digest_ipseckey(ARGS_DIGEST) { isc_region_t region; - REQUIRE(rdata->type == 45); + REQUIRE(rdata->type == dns_rdatatype_ipseckey); dns_rdata_toregion(rdata, ®ion); return ((digest)(arg, ®ion)); @@ -437,7 +437,7 @@ digest_ipseckey(ARGS_DIGEST) { static inline isc_boolean_t checkowner_ipseckey(ARGS_CHECKOWNER) { - REQUIRE(type == 45); + REQUIRE(type == dns_rdatatype_ipseckey); UNUSED(name); UNUSED(type); @@ -450,7 +450,7 @@ checkowner_ipseckey(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_ipseckey(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 45); + REQUIRE(rdata->type == dns_rdatatype_ipseckey); UNUSED(rdata); UNUSED(owner); @@ -469,7 +469,7 @@ casecompare_ipseckey(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 45); + REQUIRE(rdata1->type == dns_rdatatype_ipseckey); REQUIRE(rdata1->length >= 3); REQUIRE(rdata2->length >= 3); diff --git a/lib/dns/rdata/generic/isdn_20.c b/lib/dns/rdata/generic/isdn_20.c index dea36f0f658a..bc566b25c3b9 100644 --- a/lib/dns/rdata/generic/isdn_20.c +++ b/lib/dns/rdata/generic/isdn_20.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2013-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -30,7 +30,7 @@ static inline isc_result_t fromtext_isdn(ARGS_FROMTEXT) { isc_token_t token; - REQUIRE(type == 20); + REQUIRE(type == dns_rdatatype_isdn); UNUSED(type); UNUSED(rdclass); @@ -59,7 +59,7 @@ static inline isc_result_t totext_isdn(ARGS_TOTEXT) { isc_region_t region; - REQUIRE(rdata->type == 20); + REQUIRE(rdata->type == dns_rdatatype_isdn); REQUIRE(rdata->length != 0); UNUSED(tctx); @@ -74,7 +74,7 @@ totext_isdn(ARGS_TOTEXT) { static inline isc_result_t fromwire_isdn(ARGS_FROMWIRE) { - REQUIRE(type == 20); + REQUIRE(type == dns_rdatatype_isdn); UNUSED(type); UNUSED(dctx); @@ -91,7 +91,7 @@ static inline isc_result_t towire_isdn(ARGS_TOWIRE) { UNUSED(cctx); - REQUIRE(rdata->type == 20); + REQUIRE(rdata->type == dns_rdatatype_isdn); REQUIRE(rdata->length != 0); return (mem_tobuffer(target, rdata->data, rdata->length)); @@ -104,7 +104,7 @@ compare_isdn(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 20); + REQUIRE(rdata1->type == dns_rdatatype_isdn); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -117,7 +117,7 @@ static inline isc_result_t fromstruct_isdn(ARGS_FROMSTRUCT) { dns_rdata_isdn_t *isdn = source; - REQUIRE(type == 20); + REQUIRE(type == dns_rdatatype_isdn); REQUIRE(source != NULL); REQUIRE(isdn->common.rdtype == type); REQUIRE(isdn->common.rdclass == rdclass); @@ -138,7 +138,7 @@ tostruct_isdn(ARGS_TOSTRUCT) { dns_rdata_isdn_t *isdn = target; isc_region_t r; - REQUIRE(rdata->type == 20); + REQUIRE(rdata->type == dns_rdatatype_isdn); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -194,7 +194,7 @@ freestruct_isdn(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_isdn(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 20); + REQUIRE(rdata->type == dns_rdatatype_isdn); UNUSED(rdata); UNUSED(add); @@ -207,7 +207,7 @@ static inline isc_result_t digest_isdn(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 20); + REQUIRE(rdata->type == dns_rdatatype_isdn); dns_rdata_toregion(rdata, &r); @@ -217,7 +217,7 @@ digest_isdn(ARGS_DIGEST) { static inline isc_boolean_t checkowner_isdn(ARGS_CHECKOWNER) { - REQUIRE(type == 20); + REQUIRE(type == dns_rdatatype_isdn); UNUSED(name); UNUSED(type); @@ -230,7 +230,7 @@ checkowner_isdn(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_isdn(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 20); + REQUIRE(rdata->type == dns_rdatatype_isdn); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/key_25.c b/lib/dns/rdata/generic/key_25.c index f55401e1b8ac..c2ddd57fc108 100644 --- a/lib/dns/rdata/generic/key_25.c +++ b/lib/dns/rdata/generic/key_25.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2011-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -38,7 +38,7 @@ fromtext_key(ARGS_FROMTEXT) { dns_secproto_t proto; dns_keyflags_t flags; - REQUIRE(type == 25); + REQUIRE(type == dns_rdatatype_key); UNUSED(type); UNUSED(rdclass); @@ -87,7 +87,7 @@ totext_key(ARGS_TOTEXT) { unsigned char algorithm; char namebuf[DNS_NAME_FORMATSIZE]; - REQUIRE(rdata->type == 25); + REQUIRE(rdata->type == dns_rdatatype_key); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); @@ -163,7 +163,7 @@ fromwire_key(ARGS_FROMWIRE) { unsigned char algorithm; isc_region_t sr; - REQUIRE(type == 25); + REQUIRE(type == dns_rdatatype_key); UNUSED(type); UNUSED(rdclass); @@ -203,7 +203,7 @@ static inline isc_result_t towire_key(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 25); + REQUIRE(rdata->type == dns_rdatatype_key); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -219,7 +219,7 @@ compare_key(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 25); + REQUIRE(rdata1->type == dns_rdatatype_key); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -232,7 +232,7 @@ static inline isc_result_t fromstruct_key(ARGS_FROMSTRUCT) { dns_rdata_key_t *key = source; - REQUIRE(type == 25); + REQUIRE(type == dns_rdatatype_key); REQUIRE(source != NULL); REQUIRE(key->common.rdtype == type); REQUIRE(key->common.rdclass == rdclass); @@ -258,7 +258,7 @@ tostruct_key(ARGS_TOSTRUCT) { dns_rdata_key_t *key = target; isc_region_t sr; - REQUIRE(rdata->type == 25); + REQUIRE(rdata->type == dns_rdatatype_key); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -301,7 +301,7 @@ freestruct_key(ARGS_FREESTRUCT) { dns_rdata_key_t *key = (dns_rdata_key_t *) source; REQUIRE(source != NULL); - REQUIRE(key->common.rdtype == 25); + REQUIRE(key->common.rdtype == dns_rdatatype_key); if (key->mctx == NULL) return; @@ -313,7 +313,7 @@ freestruct_key(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_key(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 25); + REQUIRE(rdata->type == dns_rdatatype_key); UNUSED(rdata); UNUSED(add); @@ -326,7 +326,7 @@ static inline isc_result_t digest_key(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 25); + REQUIRE(rdata->type == dns_rdatatype_key); dns_rdata_toregion(rdata, &r); @@ -336,7 +336,7 @@ digest_key(ARGS_DIGEST) { static inline isc_boolean_t checkowner_key(ARGS_CHECKOWNER) { - REQUIRE(type == 25); + REQUIRE(type == dns_rdatatype_key); UNUSED(name); UNUSED(type); @@ -349,7 +349,7 @@ checkowner_key(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_key(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 25); + REQUIRE(rdata->type == dns_rdatatype_key); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/keydata_65533.c b/lib/dns/rdata/generic/keydata_65533.c index 00cf084eb62a..3be76989f7bf 100644 --- a/lib/dns/rdata/generic/keydata_65533.c +++ b/lib/dns/rdata/generic/keydata_65533.c @@ -33,7 +33,7 @@ fromtext_keydata(ARGS_FROMTEXT) { dns_keyflags_t flags; isc_uint32_t refresh, addhd, removehd; - REQUIRE(type == 65533); + REQUIRE(type == dns_rdatatype_keydata); UNUSED(type); UNUSED(rdclass); @@ -98,11 +98,11 @@ totext_keydata(ARGS_TOTEXT) { char buf[sizeof("64000")]; unsigned int flags; unsigned char algorithm; - unsigned long refresh, add, remove; + unsigned long refresh, add, delete; char algbuf[DNS_NAME_FORMATSIZE]; const char *keyinfo; - REQUIRE(rdata->type == 65533); + REQUIRE(rdata->type == dns_rdatatype_keydata); if ((tctx->flags & DNS_STYLEFLAG_KEYDATA) == 0 || rdata->length < 16) return (unknown_totext(rdata, tctx, target)); @@ -122,9 +122,9 @@ totext_keydata(ARGS_TOTEXT) { RETERR(str_totext(" ", target)); /* remove hold-down */ - remove = uint32_fromregion(&sr); + delete = uint32_fromregion(&sr); isc_region_consume(&sr, 4); - RETERR(dns_time32_totext(remove, target)); + RETERR(dns_time32_totext(delete, target)); RETERR(str_totext(" ", target)); /* flags */ @@ -206,7 +206,7 @@ totext_keydata(ARGS_TOTEXT) { isc_time_formathttptimestamp(&t, rbuf, sizeof(rbuf)); RETERR(str_totext(rbuf, target)); - if (add == 0) { + if (add == 0U) { RETERR(str_totext(tctx->linebreak, target)); RETERR(str_totext("; no trust", target)); } else { @@ -224,11 +224,11 @@ totext_keydata(ARGS_TOTEXT) { RETERR(str_totext(abuf, target)); } - if (remove != 0) { + if (delete != 0U) { RETERR(str_totext(tctx->linebreak, target)); RETERR(str_totext("; removal pending: ", target)); - isc_time_set(&t, remove, 0); + isc_time_set(&t, delete, 0); isc_time_formathttptimestamp(&t, dbuf, sizeof(dbuf)); RETERR(str_totext(dbuf, target)); @@ -243,7 +243,7 @@ static inline isc_result_t fromwire_keydata(ARGS_FROMWIRE) { isc_region_t sr; - REQUIRE(type == 65533); + REQUIRE(type == dns_rdatatype_keydata); UNUSED(type); UNUSED(rdclass); @@ -259,7 +259,7 @@ static inline isc_result_t towire_keydata(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 65533); + REQUIRE(rdata->type == dns_rdatatype_keydata); UNUSED(cctx); @@ -274,7 +274,7 @@ compare_keydata(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 65533); + REQUIRE(rdata1->type == dns_rdatatype_keydata); dns_rdata_toregion(rdata1, &r1); dns_rdata_toregion(rdata2, &r2); @@ -285,7 +285,7 @@ static inline isc_result_t fromstruct_keydata(ARGS_FROMSTRUCT) { dns_rdata_keydata_t *keydata = source; - REQUIRE(type == 65533); + REQUIRE(type == dns_rdatatype_keydata); REQUIRE(source != NULL); REQUIRE(keydata->common.rdtype == type); REQUIRE(keydata->common.rdclass == rdclass); @@ -320,7 +320,7 @@ tostruct_keydata(ARGS_TOSTRUCT) { dns_rdata_keydata_t *keydata = target; isc_region_t sr; - REQUIRE(rdata->type == 65533); + REQUIRE(rdata->type == dns_rdatatype_keydata); REQUIRE(target != NULL); keydata->common.rdclass = rdata->rdclass; @@ -380,7 +380,7 @@ freestruct_keydata(ARGS_FREESTRUCT) { dns_rdata_keydata_t *keydata = (dns_rdata_keydata_t *) source; REQUIRE(source != NULL); - REQUIRE(keydata->common.rdtype == 65533); + REQUIRE(keydata->common.rdtype == dns_rdatatype_keydata); if (keydata->mctx == NULL) return; @@ -392,7 +392,7 @@ freestruct_keydata(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_keydata(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 65533); + REQUIRE(rdata->type == dns_rdatatype_keydata); UNUSED(rdata); UNUSED(add); @@ -405,7 +405,7 @@ static inline isc_result_t digest_keydata(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 65533); + REQUIRE(rdata->type == dns_rdatatype_keydata); dns_rdata_toregion(rdata, &r); @@ -415,7 +415,7 @@ digest_keydata(ARGS_DIGEST) { static inline isc_boolean_t checkowner_keydata(ARGS_CHECKOWNER) { - REQUIRE(type == 65533); + REQUIRE(type == dns_rdatatype_keydata); UNUSED(name); UNUSED(type); @@ -428,7 +428,7 @@ checkowner_keydata(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_keydata(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 65533); + REQUIRE(rdata->type == dns_rdatatype_keydata); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/l32_105.c b/lib/dns/rdata/generic/l32_105.c index d191624ebc25..d721d04f65d0 100644 --- a/lib/dns/rdata/generic/l32_105.c +++ b/lib/dns/rdata/generic/l32_105.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2013-2015 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 @@ -29,7 +29,7 @@ fromtext_l32(ARGS_FROMTEXT) { struct in_addr addr; isc_region_t region; - REQUIRE(type == 105); + REQUIRE(type == dns_rdatatype_l32); UNUSED(type); UNUSED(rdclass); @@ -62,7 +62,7 @@ totext_l32(ARGS_TOTEXT) { char buf[sizeof("65000")]; unsigned short num; - REQUIRE(rdata->type == 105); + REQUIRE(rdata->type == dns_rdatatype_l32); REQUIRE(rdata->length == 6); UNUSED(tctx); @@ -82,7 +82,7 @@ static inline isc_result_t fromwire_l32(ARGS_FROMWIRE) { isc_region_t sregion; - REQUIRE(type == 105); + REQUIRE(type == dns_rdatatype_l32); UNUSED(type); UNUSED(options); @@ -99,7 +99,7 @@ fromwire_l32(ARGS_FROMWIRE) { static inline isc_result_t towire_l32(ARGS_TOWIRE) { - REQUIRE(rdata->type == 105); + REQUIRE(rdata->type == dns_rdatatype_l32); REQUIRE(rdata->length == 6); UNUSED(cctx); @@ -114,7 +114,7 @@ compare_l32(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 105); + REQUIRE(rdata1->type == dns_rdatatype_l32); REQUIRE(rdata1->length == 6); REQUIRE(rdata2->length == 6); @@ -128,7 +128,7 @@ fromstruct_l32(ARGS_FROMSTRUCT) { dns_rdata_l32_t *l32 = source; isc_uint32_t n; - REQUIRE(type == 105); + REQUIRE(type == dns_rdatatype_l32); REQUIRE(source != NULL); REQUIRE(l32->common.rdtype == type); REQUIRE(l32->common.rdclass == rdclass); @@ -147,7 +147,7 @@ tostruct_l32(ARGS_TOSTRUCT) { dns_rdata_l32_t *l32 = target; isc_uint32_t n; - REQUIRE(rdata->type == 105); + REQUIRE(rdata->type == dns_rdatatype_l32); REQUIRE(target != NULL); REQUIRE(rdata->length == 6); @@ -169,7 +169,7 @@ freestruct_l32(ARGS_FREESTRUCT) { dns_rdata_l32_t *l32 = source; REQUIRE(source != NULL); - REQUIRE(l32->common.rdtype == 105); + REQUIRE(l32->common.rdtype == dns_rdatatype_l32); return; } @@ -177,7 +177,7 @@ freestruct_l32(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_l32(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 105); + REQUIRE(rdata->type == dns_rdatatype_l32); REQUIRE(rdata->length == 6); UNUSED(rdata); @@ -191,7 +191,7 @@ static inline isc_result_t digest_l32(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 105); + REQUIRE(rdata->type == dns_rdatatype_l32); REQUIRE(rdata->length == 6); dns_rdata_toregion(rdata, &r); @@ -202,7 +202,7 @@ digest_l32(ARGS_DIGEST) { static inline isc_boolean_t checkowner_l32(ARGS_CHECKOWNER) { - REQUIRE(type == 105); + REQUIRE(type == dns_rdatatype_l32); UNUSED(name); UNUSED(type); @@ -215,7 +215,7 @@ checkowner_l32(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_l32(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 105); + REQUIRE(rdata->type == dns_rdatatype_l32); REQUIRE(rdata->length == 6); UNUSED(rdata); diff --git a/lib/dns/rdata/generic/l64_106.c b/lib/dns/rdata/generic/l64_106.c index d811d29ae515..863e96461179 100644 --- a/lib/dns/rdata/generic/l64_106.c +++ b/lib/dns/rdata/generic/l64_106.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2013-2015 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 @@ -28,7 +28,7 @@ fromtext_l64(ARGS_FROMTEXT) { isc_token_t token; unsigned char locator[NS_LOCATORSZ]; - REQUIRE(type == 106); + REQUIRE(type == dns_rdatatype_l64); UNUSED(type); UNUSED(rdclass); @@ -56,7 +56,7 @@ totext_l64(ARGS_TOTEXT) { char buf[sizeof("xxxx:xxxx:xxxx:xxxx")]; unsigned short num; - REQUIRE(rdata->type == 106); + REQUIRE(rdata->type == dns_rdatatype_l64); REQUIRE(rdata->length == 10); UNUSED(tctx); @@ -81,7 +81,7 @@ static inline isc_result_t fromwire_l64(ARGS_FROMWIRE) { isc_region_t sregion; - REQUIRE(type == 106); + REQUIRE(type == dns_rdatatype_l64); UNUSED(type); UNUSED(options); @@ -98,7 +98,7 @@ fromwire_l64(ARGS_FROMWIRE) { static inline isc_result_t towire_l64(ARGS_TOWIRE) { - REQUIRE(rdata->type == 106); + REQUIRE(rdata->type == dns_rdatatype_l64); REQUIRE(rdata->length == 10); UNUSED(cctx); @@ -113,7 +113,7 @@ compare_l64(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 106); + REQUIRE(rdata1->type == dns_rdatatype_l64); REQUIRE(rdata1->length == 10); REQUIRE(rdata2->length == 10); @@ -126,7 +126,7 @@ static inline isc_result_t fromstruct_l64(ARGS_FROMSTRUCT) { dns_rdata_l64_t *l64 = source; - REQUIRE(type == 106); + REQUIRE(type == dns_rdatatype_l64); REQUIRE(source != NULL); REQUIRE(l64->common.rdtype == type); REQUIRE(l64->common.rdclass == rdclass); @@ -143,7 +143,7 @@ tostruct_l64(ARGS_TOSTRUCT) { isc_region_t region; dns_rdata_l64_t *l64 = target; - REQUIRE(rdata->type == 106); + REQUIRE(rdata->type == dns_rdatatype_l64); REQUIRE(target != NULL); REQUIRE(rdata->length == 10); @@ -164,7 +164,7 @@ freestruct_l64(ARGS_FREESTRUCT) { dns_rdata_l64_t *l64 = source; REQUIRE(source != NULL); - REQUIRE(l64->common.rdtype == 106); + REQUIRE(l64->common.rdtype == dns_rdatatype_l64); return; } @@ -172,7 +172,7 @@ freestruct_l64(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_l64(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 106); + REQUIRE(rdata->type == dns_rdatatype_l64); REQUIRE(rdata->length == 10); UNUSED(rdata); @@ -186,7 +186,7 @@ static inline isc_result_t digest_l64(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 106); + REQUIRE(rdata->type == dns_rdatatype_l64); REQUIRE(rdata->length == 10); dns_rdata_toregion(rdata, &r); @@ -197,7 +197,7 @@ digest_l64(ARGS_DIGEST) { static inline isc_boolean_t checkowner_l64(ARGS_CHECKOWNER) { - REQUIRE(type == 106); + REQUIRE(type == dns_rdatatype_l64); UNUSED(name); UNUSED(type); @@ -210,7 +210,7 @@ checkowner_l64(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_l64(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 106); + REQUIRE(rdata->type == dns_rdatatype_l64); REQUIRE(rdata->length == 10); UNUSED(rdata); diff --git a/lib/dns/rdata/generic/loc_29.c b/lib/dns/rdata/generic/loc_29.c index 904dbb402a97..641daca25d68 100644 --- a/lib/dns/rdata/generic/loc_29.c +++ b/lib/dns/rdata/generic/loc_29.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -50,7 +50,7 @@ fromtext_loc(ARGS_FROMTEXT) { unsigned long longitude; unsigned long altitude; - REQUIRE(type == 29); + REQUIRE(type == dns_rdatatype_loc); UNUSED(type); UNUSED(rdclass); @@ -475,12 +475,16 @@ totext_loc(ARGS_TOTEXT) { UNUSED(tctx); - REQUIRE(rdata->type == 29); + REQUIRE(rdata->type == dns_rdatatype_loc); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); - /* version = sr.base[0]; */ + if (sr.base[0] != 0) + return (ISC_R_NOTIMPLEMENTED); + + REQUIRE(rdata->length == 16); + size = sr.base[1]; INSIST((size&0x0f) < 10 && (size>>4) < 10); if ((size&0x0f)> 1) @@ -563,7 +567,7 @@ fromwire_loc(ARGS_FROMWIRE) { unsigned long latitude; unsigned long longitude; - REQUIRE(type == 29); + REQUIRE(type == dns_rdatatype_loc); UNUSED(type); UNUSED(rdclass); @@ -573,8 +577,11 @@ fromwire_loc(ARGS_FROMWIRE) { isc_buffer_activeregion(source, &sr); if (sr.length < 1) return (ISC_R_UNEXPECTEDEND); - if (sr.base[0] != 0) - return (ISC_R_NOTIMPLEMENTED); + if (sr.base[0] != 0) { + /* Treat as unknown. */ + isc_buffer_forward(source, sr.length); + return (mem_tobuffer(target, sr.base, sr.length)); + } if (sr.length < 16) return (ISC_R_UNEXPECTEDEND); @@ -634,7 +641,7 @@ static inline isc_result_t towire_loc(ARGS_TOWIRE) { UNUSED(cctx); - REQUIRE(rdata->type == 29); + REQUIRE(rdata->type == dns_rdatatype_loc); REQUIRE(rdata->length != 0); return (mem_tobuffer(target, rdata->data, rdata->length)); @@ -647,7 +654,7 @@ compare_loc(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 29); + REQUIRE(rdata1->type == dns_rdatatype_loc); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -661,7 +668,7 @@ fromstruct_loc(ARGS_FROMSTRUCT) { dns_rdata_loc_t *loc = source; isc_uint8_t c; - REQUIRE(type == 29); + REQUIRE(type == dns_rdatatype_loc); REQUIRE(source != NULL); REQUIRE(loc->common.rdtype == type); REQUIRE(loc->common.rdclass == rdclass); @@ -706,7 +713,7 @@ tostruct_loc(ARGS_TOSTRUCT) { isc_region_t r; isc_uint8_t version; - REQUIRE(rdata->type == 29); + REQUIRE(rdata->type == dns_rdatatype_loc); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -743,7 +750,7 @@ freestruct_loc(ARGS_FREESTRUCT) { dns_rdata_loc_t *loc = source; REQUIRE(source != NULL); - REQUIRE(loc->common.rdtype == 29); + REQUIRE(loc->common.rdtype == dns_rdatatype_loc); UNUSED(source); UNUSED(loc); @@ -751,7 +758,7 @@ freestruct_loc(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_loc(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 29); + REQUIRE(rdata->type == dns_rdatatype_loc); UNUSED(rdata); UNUSED(add); @@ -764,7 +771,7 @@ static inline isc_result_t digest_loc(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 29); + REQUIRE(rdata->type == dns_rdatatype_loc); dns_rdata_toregion(rdata, &r); @@ -774,7 +781,7 @@ digest_loc(ARGS_DIGEST) { static inline isc_boolean_t checkowner_loc(ARGS_CHECKOWNER) { - REQUIRE(type == 29); + REQUIRE(type == dns_rdatatype_loc); UNUSED(name); UNUSED(type); @@ -787,7 +794,7 @@ checkowner_loc(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_loc(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 29); + REQUIRE(rdata->type == dns_rdatatype_loc); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/lp_107.c b/lib/dns/rdata/generic/lp_107.c index 732ef7fa88f5..08d6b1763593 100644 --- a/lib/dns/rdata/generic/lp_107.c +++ b/lib/dns/rdata/generic/lp_107.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2013, 2015 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 @@ -29,7 +29,7 @@ fromtext_lp(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 107); + REQUIRE(type == dns_rdatatype_lp); UNUSED(type); UNUSED(rdclass); @@ -59,7 +59,7 @@ totext_lp(ARGS_TOTEXT) { char buf[sizeof("64000")]; unsigned short num; - REQUIRE(rdata->type == 107); + REQUIRE(rdata->type == dns_rdatatype_lp); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -83,7 +83,7 @@ fromwire_lp(ARGS_FROMWIRE) { dns_name_t name; isc_region_t sregion; - REQUIRE(type == 107); + REQUIRE(type == dns_rdatatype_lp); UNUSED(type); UNUSED(rdclass); @@ -103,7 +103,7 @@ fromwire_lp(ARGS_FROMWIRE) { static inline isc_result_t towire_lp(ARGS_TOWIRE) { - REQUIRE(rdata->type == 107); + REQUIRE(rdata->type == dns_rdatatype_lp); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -118,7 +118,7 @@ compare_lp(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 107); + REQUIRE(rdata1->type == dns_rdatatype_lp); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -133,7 +133,7 @@ fromstruct_lp(ARGS_FROMSTRUCT) { dns_rdata_lp_t *lp = source; isc_region_t region; - REQUIRE(type == 107); + REQUIRE(type == dns_rdatatype_lp); REQUIRE(source != NULL); REQUIRE(lp->common.rdtype == type); REQUIRE(lp->common.rdclass == rdclass); @@ -152,7 +152,7 @@ tostruct_lp(ARGS_TOSTRUCT) { dns_rdata_lp_t *lp = target; dns_name_t name; - REQUIRE(rdata->type == 107); + REQUIRE(rdata->type == dns_rdatatype_lp); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -176,7 +176,7 @@ freestruct_lp(ARGS_FREESTRUCT) { dns_rdata_lp_t *lp = source; REQUIRE(source != NULL); - REQUIRE(lp->common.rdtype == 107); + REQUIRE(lp->common.rdtype == dns_rdatatype_lp); if (lp->mctx == NULL) return; @@ -192,7 +192,7 @@ additionaldata_lp(ARGS_ADDLDATA) { isc_region_t region; isc_result_t result; - REQUIRE(rdata->type == 107); + REQUIRE(rdata->type == dns_rdatatype_lp); dns_name_init(&name, offsets); dns_rdata_toregion(rdata, ®ion); @@ -209,7 +209,7 @@ static inline isc_result_t digest_lp(ARGS_DIGEST) { isc_region_t region; - REQUIRE(rdata->type == 107); + REQUIRE(rdata->type == dns_rdatatype_lp); dns_rdata_toregion(rdata, ®ion); return ((digest)(arg, ®ion)); @@ -218,7 +218,7 @@ digest_lp(ARGS_DIGEST) { static inline isc_boolean_t checkowner_lp(ARGS_CHECKOWNER) { - REQUIRE(type == 107); + REQUIRE(type == dns_rdatatype_lp); UNUSED(type); UNUSED(rdclass); @@ -231,7 +231,7 @@ checkowner_lp(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_lp(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 107); + REQUIRE(rdata->type == dns_rdatatype_lp); UNUSED(bad); UNUSED(owner); @@ -249,7 +249,7 @@ casecompare_lp(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 107); + REQUIRE(rdata1->type == dns_rdatatype_lp); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); diff --git a/lib/dns/rdata/generic/mb_7.c b/lib/dns/rdata/generic/mb_7.c index 8e588fc7b8a5..47c7308ebb03 100644 --- a/lib/dns/rdata/generic/mb_7.c +++ b/lib/dns/rdata/generic/mb_7.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -30,7 +30,7 @@ fromtext_mb(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 7); + REQUIRE(type == dns_rdatatype_mb); UNUSED(type); UNUSED(rdclass); @@ -53,7 +53,7 @@ totext_mb(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 7); + REQUIRE(rdata->type == dns_rdatatype_mb); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -71,7 +71,7 @@ static inline isc_result_t fromwire_mb(ARGS_FROMWIRE) { dns_name_t name; - REQUIRE(type == 7); + REQUIRE(type == dns_rdatatype_mb); UNUSED(type); UNUSED(rdclass); @@ -88,7 +88,7 @@ towire_mb(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 7); + REQUIRE(rdata->type == dns_rdatatype_mb); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); @@ -109,7 +109,7 @@ compare_mb(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 7); + REQUIRE(rdata1->type == dns_rdatatype_mb); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -130,7 +130,7 @@ fromstruct_mb(ARGS_FROMSTRUCT) { dns_rdata_mb_t *mb = source; isc_region_t region; - REQUIRE(type == 7); + REQUIRE(type == dns_rdatatype_mb); REQUIRE(source != NULL); REQUIRE(mb->common.rdtype == type); REQUIRE(mb->common.rdclass == rdclass); @@ -148,7 +148,7 @@ tostruct_mb(ARGS_TOSTRUCT) { dns_rdata_mb_t *mb = target; dns_name_t name; - REQUIRE(rdata->type == 7); + REQUIRE(rdata->type == dns_rdatatype_mb); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -184,7 +184,7 @@ additionaldata_mb(ARGS_ADDLDATA) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 7); + REQUIRE(rdata->type == dns_rdatatype_mb); dns_name_init(&name, offsets); dns_rdata_toregion(rdata, ®ion); @@ -198,7 +198,7 @@ digest_mb(ARGS_DIGEST) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 7); + REQUIRE(rdata->type == dns_rdatatype_mb); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -210,7 +210,7 @@ digest_mb(ARGS_DIGEST) { static inline isc_boolean_t checkowner_mb(ARGS_CHECKOWNER) { - REQUIRE(type == 7); + REQUIRE(type == dns_rdatatype_mb); UNUSED(type); UNUSED(rdclass); @@ -222,7 +222,7 @@ checkowner_mb(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_mb(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 7); + REQUIRE(rdata->type == dns_rdatatype_mb); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/md_3.c b/lib/dns/rdata/generic/md_3.c index e00f1f6ca368..7485d1e49016 100644 --- a/lib/dns/rdata/generic/md_3.c +++ b/lib/dns/rdata/generic/md_3.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -30,7 +30,7 @@ fromtext_md(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 3); + REQUIRE(type == dns_rdatatype_md); UNUSED(type); UNUSED(rdclass); @@ -53,7 +53,7 @@ totext_md(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 3); + REQUIRE(rdata->type == dns_rdatatype_md); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -71,7 +71,7 @@ static inline isc_result_t fromwire_md(ARGS_FROMWIRE) { dns_name_t name; - REQUIRE(type == 3); + REQUIRE(type == dns_rdatatype_md); UNUSED(type); UNUSED(rdclass); @@ -88,7 +88,7 @@ towire_md(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 3); + REQUIRE(rdata->type == dns_rdatatype_md); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); @@ -109,7 +109,7 @@ compare_md(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 3); + REQUIRE(rdata1->type == dns_rdatatype_md); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -130,7 +130,7 @@ fromstruct_md(ARGS_FROMSTRUCT) { dns_rdata_md_t *md = source; isc_region_t region; - REQUIRE(type == 3); + REQUIRE(type == dns_rdatatype_md); REQUIRE(source != NULL); REQUIRE(md->common.rdtype == type); REQUIRE(md->common.rdclass == rdclass); @@ -148,7 +148,7 @@ tostruct_md(ARGS_TOSTRUCT) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 3); + REQUIRE(rdata->type == dns_rdatatype_md); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -170,7 +170,7 @@ freestruct_md(ARGS_FREESTRUCT) { dns_rdata_md_t *md = source; REQUIRE(source != NULL); - REQUIRE(md->common.rdtype == 3); + REQUIRE(md->common.rdtype == dns_rdatatype_md); if (md->mctx == NULL) return; @@ -185,7 +185,7 @@ additionaldata_md(ARGS_ADDLDATA) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 3); + REQUIRE(rdata->type == dns_rdatatype_md); dns_name_init(&name, offsets); dns_rdata_toregion(rdata, ®ion); @@ -199,7 +199,7 @@ digest_md(ARGS_DIGEST) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 3); + REQUIRE(rdata->type == dns_rdatatype_md); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -211,7 +211,7 @@ digest_md(ARGS_DIGEST) { static inline isc_boolean_t checkowner_md(ARGS_CHECKOWNER) { - REQUIRE(type == 3); + REQUIRE(type == dns_rdatatype_md); UNUSED(name); UNUSED(type); @@ -224,7 +224,7 @@ checkowner_md(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_md(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 3); + REQUIRE(rdata->type == dns_rdatatype_md); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/mf_4.c b/lib/dns/rdata/generic/mf_4.c index a85809aef223..97402a9dc6db 100644 --- a/lib/dns/rdata/generic/mf_4.c +++ b/lib/dns/rdata/generic/mf_4.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -30,7 +30,7 @@ fromtext_mf(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 4); + REQUIRE(type == dns_rdatatype_mf); UNUSED(type); UNUSED(rdclass); @@ -53,7 +53,7 @@ totext_mf(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 4); + REQUIRE(rdata->type == dns_rdatatype_mf); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -71,7 +71,7 @@ static inline isc_result_t fromwire_mf(ARGS_FROMWIRE) { dns_name_t name; - REQUIRE(type == 4); + REQUIRE(type == dns_rdatatype_mf); UNUSED(type); UNUSED(rdclass); @@ -88,7 +88,7 @@ towire_mf(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 4); + REQUIRE(rdata->type == dns_rdatatype_mf); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); @@ -109,7 +109,7 @@ compare_mf(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 4); + REQUIRE(rdata1->type == dns_rdatatype_mf); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -130,7 +130,7 @@ fromstruct_mf(ARGS_FROMSTRUCT) { dns_rdata_mf_t *mf = source; isc_region_t region; - REQUIRE(type == 4); + REQUIRE(type == dns_rdatatype_mf); REQUIRE(source != NULL); REQUIRE(mf->common.rdtype == type); REQUIRE(mf->common.rdclass == rdclass); @@ -148,7 +148,7 @@ tostruct_mf(ARGS_TOSTRUCT) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 4); + REQUIRE(rdata->type == dns_rdatatype_mf); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -170,7 +170,7 @@ freestruct_mf(ARGS_FREESTRUCT) { dns_rdata_mf_t *mf = source; REQUIRE(source != NULL); - REQUIRE(mf->common.rdtype == 4); + REQUIRE(mf->common.rdtype == dns_rdatatype_mf); if (mf->mctx == NULL) return; @@ -184,7 +184,7 @@ additionaldata_mf(ARGS_ADDLDATA) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 4); + REQUIRE(rdata->type == dns_rdatatype_mf); dns_name_init(&name, offsets); dns_rdata_toregion(rdata, ®ion); @@ -198,7 +198,7 @@ digest_mf(ARGS_DIGEST) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 4); + REQUIRE(rdata->type == dns_rdatatype_mf); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -210,7 +210,7 @@ digest_mf(ARGS_DIGEST) { static inline isc_boolean_t checkowner_mf(ARGS_CHECKOWNER) { - REQUIRE(type == 4); + REQUIRE(type == dns_rdatatype_mf); UNUSED(name); UNUSED(type); @@ -223,7 +223,7 @@ checkowner_mf(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_mf(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 4); + REQUIRE(rdata->type == dns_rdatatype_mf); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/mg_8.c b/lib/dns/rdata/generic/mg_8.c index d0af188e7373..6c3b7e2b2d41 100644 --- a/lib/dns/rdata/generic/mg_8.c +++ b/lib/dns/rdata/generic/mg_8.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -30,7 +30,7 @@ fromtext_mg(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 8); + REQUIRE(type == dns_rdatatype_mg); UNUSED(type); UNUSED(rdclass); @@ -53,7 +53,7 @@ totext_mg(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 8); + REQUIRE(rdata->type == dns_rdatatype_mg); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -71,7 +71,7 @@ static inline isc_result_t fromwire_mg(ARGS_FROMWIRE) { dns_name_t name; - REQUIRE(type == 8); + REQUIRE(type == dns_rdatatype_mg); UNUSED(type); UNUSED(rdclass); @@ -88,7 +88,7 @@ towire_mg(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 8); + REQUIRE(rdata->type == dns_rdatatype_mg); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); @@ -109,7 +109,7 @@ compare_mg(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 8); + REQUIRE(rdata1->type == dns_rdatatype_mg); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -130,7 +130,7 @@ fromstruct_mg(ARGS_FROMSTRUCT) { dns_rdata_mg_t *mg = source; isc_region_t region; - REQUIRE(type == 8); + REQUIRE(type == dns_rdatatype_mg); REQUIRE(source != NULL); REQUIRE(mg->common.rdtype == type); REQUIRE(mg->common.rdclass == rdclass); @@ -148,7 +148,7 @@ tostruct_mg(ARGS_TOSTRUCT) { dns_rdata_mg_t *mg = target; dns_name_t name; - REQUIRE(rdata->type == 8); + REQUIRE(rdata->type == dns_rdatatype_mg); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -170,7 +170,7 @@ freestruct_mg(ARGS_FREESTRUCT) { dns_rdata_mg_t *mg = source; REQUIRE(source != NULL); - REQUIRE(mg->common.rdtype == 8); + REQUIRE(mg->common.rdtype == dns_rdatatype_mg); if (mg->mctx == NULL) return; @@ -180,7 +180,7 @@ freestruct_mg(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_mg(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 8); + REQUIRE(rdata->type == dns_rdatatype_mg); UNUSED(add); UNUSED(arg); @@ -194,7 +194,7 @@ digest_mg(ARGS_DIGEST) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 8); + REQUIRE(rdata->type == dns_rdatatype_mg); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -206,7 +206,7 @@ digest_mg(ARGS_DIGEST) { static inline isc_boolean_t checkowner_mg(ARGS_CHECKOWNER) { - REQUIRE(type == 8); + REQUIRE(type == dns_rdatatype_mg); UNUSED(type); UNUSED(rdclass); @@ -218,7 +218,7 @@ checkowner_mg(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_mg(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 8); + REQUIRE(rdata->type == dns_rdatatype_mg); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/minfo_14.c b/lib/dns/rdata/generic/minfo_14.c index 9e2214c98aa3..2a868f857f8f 100644 --- a/lib/dns/rdata/generic/minfo_14.c +++ b/lib/dns/rdata/generic/minfo_14.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -32,7 +32,7 @@ fromtext_minfo(ARGS_FROMTEXT) { int i; isc_boolean_t ok; - REQUIRE(type == 14); + REQUIRE(type == dns_rdatatype_minfo); UNUSED(type); UNUSED(rdclass); @@ -66,7 +66,7 @@ totext_minfo(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 14); + REQUIRE(rdata->type == dns_rdatatype_minfo); REQUIRE(rdata->length != 0); dns_name_init(&rmail, NULL); @@ -96,7 +96,7 @@ fromwire_minfo(ARGS_FROMWIRE) { dns_name_t rmail; dns_name_t email; - REQUIRE(type == 14); + REQUIRE(type == dns_rdatatype_minfo); UNUSED(type); UNUSED(rdclass); @@ -118,7 +118,7 @@ towire_minfo(ARGS_TOWIRE) { dns_offsets_t roffsets; dns_offsets_t eoffsets; - REQUIRE(rdata->type == 14); + REQUIRE(rdata->type == dns_rdatatype_minfo); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); @@ -149,7 +149,7 @@ compare_minfo(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 14); + REQUIRE(rdata1->type == dns_rdatatype_minfo); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -184,7 +184,7 @@ fromstruct_minfo(ARGS_FROMSTRUCT) { dns_rdata_minfo_t *minfo = source; isc_region_t region; - REQUIRE(type == 14); + REQUIRE(type == dns_rdatatype_minfo); REQUIRE(source != NULL); REQUIRE(minfo->common.rdtype == type); REQUIRE(minfo->common.rdclass == rdclass); @@ -205,7 +205,7 @@ tostruct_minfo(ARGS_TOSTRUCT) { dns_name_t name; isc_result_t result; - REQUIRE(rdata->type == 14); + REQUIRE(rdata->type == dns_rdatatype_minfo); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -239,7 +239,7 @@ freestruct_minfo(ARGS_FREESTRUCT) { dns_rdata_minfo_t *minfo = source; REQUIRE(source != NULL); - REQUIRE(minfo->common.rdtype == 14); + REQUIRE(minfo->common.rdtype == dns_rdatatype_minfo); if (minfo->mctx == NULL) return; @@ -251,7 +251,7 @@ freestruct_minfo(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_minfo(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 14); + REQUIRE(rdata->type == dns_rdatatype_minfo); UNUSED(rdata); UNUSED(add); @@ -266,7 +266,7 @@ digest_minfo(ARGS_DIGEST) { dns_name_t name; isc_result_t result; - REQUIRE(rdata->type == 14); + REQUIRE(rdata->type == dns_rdatatype_minfo); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -284,7 +284,7 @@ digest_minfo(ARGS_DIGEST) { static inline isc_boolean_t checkowner_minfo(ARGS_CHECKOWNER) { - REQUIRE(type == 14); + REQUIRE(type == dns_rdatatype_minfo); UNUSED(name); UNUSED(type); @@ -299,7 +299,7 @@ checknames_minfo(ARGS_CHECKNAMES) { isc_region_t region; dns_name_t name; - REQUIRE(rdata->type == 14); + REQUIRE(rdata->type == dns_rdatatype_minfo); UNUSED(owner); diff --git a/lib/dns/rdata/generic/mr_9.c b/lib/dns/rdata/generic/mr_9.c index 590235d961bb..7e69cf1cfe85 100644 --- a/lib/dns/rdata/generic/mr_9.c +++ b/lib/dns/rdata/generic/mr_9.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -30,7 +30,7 @@ fromtext_mr(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 9); + REQUIRE(type == dns_rdatatype_mr); UNUSED(type); UNUSED(rdclass); @@ -53,7 +53,7 @@ totext_mr(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 9); + REQUIRE(rdata->type == dns_rdatatype_mr); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -71,7 +71,7 @@ static inline isc_result_t fromwire_mr(ARGS_FROMWIRE) { dns_name_t name; - REQUIRE(type == 9); + REQUIRE(type == dns_rdatatype_mr); UNUSED(type); UNUSED(rdclass); @@ -88,7 +88,7 @@ towire_mr(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 9); + REQUIRE(rdata->type == dns_rdatatype_mr); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); @@ -109,7 +109,7 @@ compare_mr(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 9); + REQUIRE(rdata1->type == dns_rdatatype_mr); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -130,7 +130,7 @@ fromstruct_mr(ARGS_FROMSTRUCT) { dns_rdata_mr_t *mr = source; isc_region_t region; - REQUIRE(type == 9); + REQUIRE(type == dns_rdatatype_mr); REQUIRE(source != NULL); REQUIRE(mr->common.rdtype == type); REQUIRE(mr->common.rdclass == rdclass); @@ -148,7 +148,7 @@ tostruct_mr(ARGS_TOSTRUCT) { dns_rdata_mr_t *mr = target; dns_name_t name; - REQUIRE(rdata->type == 9); + REQUIRE(rdata->type == dns_rdatatype_mr); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -170,7 +170,7 @@ freestruct_mr(ARGS_FREESTRUCT) { dns_rdata_mr_t *mr = source; REQUIRE(source != NULL); - REQUIRE(mr->common.rdtype == 9); + REQUIRE(mr->common.rdtype == dns_rdatatype_mr); if (mr->mctx == NULL) return; @@ -180,7 +180,7 @@ freestruct_mr(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_mr(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 9); + REQUIRE(rdata->type == dns_rdatatype_mr); UNUSED(rdata); UNUSED(add); @@ -194,7 +194,7 @@ digest_mr(ARGS_DIGEST) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 9); + REQUIRE(rdata->type == dns_rdatatype_mr); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -206,7 +206,7 @@ digest_mr(ARGS_DIGEST) { static inline isc_boolean_t checkowner_mr(ARGS_CHECKOWNER) { - REQUIRE(type == 9); + REQUIRE(type == dns_rdatatype_mr); UNUSED(name); UNUSED(type); @@ -219,7 +219,7 @@ checkowner_mr(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_mr(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 9); + REQUIRE(rdata->type == dns_rdatatype_mr); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/mx_15.c b/lib/dns/rdata/generic/mx_15.c index 77eee158b705..7364b4ac1fd8 100644 --- a/lib/dns/rdata/generic/mx_15.c +++ b/lib/dns/rdata/generic/mx_15.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2012, 2015 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 @@ -53,7 +53,7 @@ fromtext_mx(ARGS_FROMTEXT) { isc_buffer_t buffer; isc_boolean_t ok; - REQUIRE(type == 15); + REQUIRE(type == dns_rdatatype_mx); UNUSED(type); UNUSED(rdclass); @@ -98,7 +98,7 @@ totext_mx(ARGS_TOTEXT) { char buf[sizeof("64000")]; unsigned short num; - REQUIRE(rdata->type == 15); + REQUIRE(rdata->type == dns_rdatatype_mx); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -122,7 +122,7 @@ fromwire_mx(ARGS_FROMWIRE) { dns_name_t name; isc_region_t sregion; - REQUIRE(type == 15); + REQUIRE(type == dns_rdatatype_mx); UNUSED(type); UNUSED(rdclass); @@ -145,7 +145,7 @@ towire_mx(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 15); + REQUIRE(rdata->type == dns_rdatatype_mx); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); @@ -170,7 +170,7 @@ compare_mx(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 15); + REQUIRE(rdata1->type == dns_rdatatype_mx); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -198,7 +198,7 @@ fromstruct_mx(ARGS_FROMSTRUCT) { dns_rdata_mx_t *mx = source; isc_region_t region; - REQUIRE(type == 15); + REQUIRE(type == dns_rdatatype_mx); REQUIRE(source != NULL); REQUIRE(mx->common.rdtype == type); REQUIRE(mx->common.rdclass == rdclass); @@ -217,7 +217,7 @@ tostruct_mx(ARGS_TOSTRUCT) { dns_rdata_mx_t *mx = target; dns_name_t name; - REQUIRE(rdata->type == 15); + REQUIRE(rdata->type == dns_rdatatype_mx); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -241,7 +241,7 @@ freestruct_mx(ARGS_FREESTRUCT) { dns_rdata_mx_t *mx = source; REQUIRE(source != NULL); - REQUIRE(mx->common.rdtype == 15); + REQUIRE(mx->common.rdtype == dns_rdatatype_mx); if (mx->mctx == NULL) return; @@ -256,7 +256,7 @@ additionaldata_mx(ARGS_ADDLDATA) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 15); + REQUIRE(rdata->type == dns_rdatatype_mx); dns_name_init(&name, offsets); dns_rdata_toregion(rdata, ®ion); @@ -271,7 +271,7 @@ digest_mx(ARGS_DIGEST) { isc_region_t r1, r2; dns_name_t name; - REQUIRE(rdata->type == 15); + REQUIRE(rdata->type == dns_rdatatype_mx); dns_rdata_toregion(rdata, &r1); r2 = r1; @@ -286,7 +286,7 @@ digest_mx(ARGS_DIGEST) { static inline isc_boolean_t checkowner_mx(ARGS_CHECKOWNER) { - REQUIRE(type == 15); + REQUIRE(type == dns_rdatatype_mx); UNUSED(type); UNUSED(rdclass); @@ -299,7 +299,7 @@ checknames_mx(ARGS_CHECKNAMES) { isc_region_t region; dns_name_t name; - REQUIRE(rdata->type == 15); + REQUIRE(rdata->type == dns_rdatatype_mx); UNUSED(owner); diff --git a/lib/dns/rdata/generic/naptr_35.c b/lib/dns/rdata/generic/naptr_35.c index d7452ac176fe..e8cbda87b74e 100644 --- a/lib/dns/rdata/generic/naptr_35.c +++ b/lib/dns/rdata/generic/naptr_35.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007-2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -127,7 +127,7 @@ fromtext_naptr(ARGS_FROMTEXT) { isc_buffer_t buffer; unsigned char *regex; - REQUIRE(type == 35); + REQUIRE(type == dns_rdatatype_naptr); UNUSED(type); UNUSED(rdclass); @@ -195,7 +195,7 @@ totext_naptr(ARGS_TOTEXT) { char buf[sizeof("64000")]; unsigned short num; - REQUIRE(rdata->type == 35); + REQUIRE(rdata->type == dns_rdatatype_naptr); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -253,7 +253,7 @@ fromwire_naptr(ARGS_FROMWIRE) { isc_region_t sr; unsigned char *regex; - REQUIRE(type == 35); + REQUIRE(type == dns_rdatatype_naptr); UNUSED(type); UNUSED(rdclass); @@ -300,7 +300,7 @@ towire_naptr(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t sr; - REQUIRE(rdata->type == 35); + REQUIRE(rdata->type == dns_rdatatype_naptr); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -347,7 +347,7 @@ compare_naptr(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 35); + REQUIRE(rdata1->type == dns_rdatatype_naptr); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -410,7 +410,7 @@ fromstruct_naptr(ARGS_FROMSTRUCT) { dns_rdata_naptr_t *naptr = source; isc_region_t region; - REQUIRE(type == 35); + REQUIRE(type == dns_rdatatype_naptr); REQUIRE(source != NULL); REQUIRE(naptr->common.rdtype == type); REQUIRE(naptr->common.rdclass == rdclass); @@ -440,7 +440,7 @@ tostruct_naptr(ARGS_TOSTRUCT) { isc_result_t result; dns_name_t name; - REQUIRE(rdata->type == 35); + REQUIRE(rdata->type == dns_rdatatype_naptr); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -508,7 +508,7 @@ freestruct_naptr(ARGS_FREESTRUCT) { dns_rdata_naptr_t *naptr = source; REQUIRE(source != NULL); - REQUIRE(naptr->common.rdtype == 35); + REQUIRE(naptr->common.rdtype == dns_rdatatype_naptr); if (naptr->mctx == NULL) return; @@ -532,7 +532,7 @@ additionaldata_naptr(ARGS_ADDLDATA) { unsigned int i, flagslen; char *cp; - REQUIRE(rdata->type == 35); + REQUIRE(rdata->type == dns_rdatatype_naptr); /* * Order, preference. @@ -587,7 +587,7 @@ digest_naptr(ARGS_DIGEST) { isc_result_t result; dns_name_t name; - REQUIRE(rdata->type == 35); + REQUIRE(rdata->type == dns_rdatatype_naptr); dns_rdata_toregion(rdata, &r1); r2 = r1; @@ -641,7 +641,7 @@ digest_naptr(ARGS_DIGEST) { static inline isc_boolean_t checkowner_naptr(ARGS_CHECKOWNER) { - REQUIRE(type == 35); + REQUIRE(type == dns_rdatatype_naptr); UNUSED(name); UNUSED(type); @@ -654,7 +654,7 @@ checkowner_naptr(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_naptr(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 35); + REQUIRE(rdata->type == dns_rdatatype_naptr); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/nid_104.c b/lib/dns/rdata/generic/nid_104.c index 39f16ed6f02b..6028676bcc12 100644 --- a/lib/dns/rdata/generic/nid_104.c +++ b/lib/dns/rdata/generic/nid_104.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2013-2015 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 @@ -28,7 +28,7 @@ fromtext_nid(ARGS_FROMTEXT) { isc_token_t token; unsigned char locator[NS_LOCATORSZ]; - REQUIRE(type == 104); + REQUIRE(type == dns_rdatatype_nid); UNUSED(type); UNUSED(rdclass); @@ -56,7 +56,7 @@ totext_nid(ARGS_TOTEXT) { char buf[sizeof("xxxx:xxxx:xxxx:xxxx")]; unsigned short num; - REQUIRE(rdata->type == 104); + REQUIRE(rdata->type == dns_rdatatype_nid); REQUIRE(rdata->length != 0); UNUSED(tctx); @@ -81,7 +81,7 @@ static inline isc_result_t fromwire_nid(ARGS_FROMWIRE) { isc_region_t sregion; - REQUIRE(type == 104); + REQUIRE(type == dns_rdatatype_nid); UNUSED(type); UNUSED(options); @@ -98,7 +98,7 @@ fromwire_nid(ARGS_FROMWIRE) { static inline isc_result_t towire_nid(ARGS_TOWIRE) { - REQUIRE(rdata->type == 104); + REQUIRE(rdata->type == dns_rdatatype_nid); REQUIRE(rdata->length == 10); UNUSED(cctx); @@ -113,7 +113,7 @@ compare_nid(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 104); + REQUIRE(rdata1->type == dns_rdatatype_nid); REQUIRE(rdata1->length == 10); REQUIRE(rdata2->length == 10); @@ -126,7 +126,7 @@ static inline isc_result_t fromstruct_nid(ARGS_FROMSTRUCT) { dns_rdata_nid_t *nid = source; - REQUIRE(type == 104); + REQUIRE(type == dns_rdatatype_nid); REQUIRE(source != NULL); REQUIRE(nid->common.rdtype == type); REQUIRE(nid->common.rdclass == rdclass); @@ -143,7 +143,7 @@ tostruct_nid(ARGS_TOSTRUCT) { isc_region_t region; dns_rdata_nid_t *nid = target; - REQUIRE(rdata->type == 104); + REQUIRE(rdata->type == dns_rdatatype_nid); REQUIRE(target != NULL); REQUIRE(rdata->length == 10); @@ -164,7 +164,7 @@ freestruct_nid(ARGS_FREESTRUCT) { dns_rdata_nid_t *nid = source; REQUIRE(source != NULL); - REQUIRE(nid->common.rdtype == 104); + REQUIRE(nid->common.rdtype == dns_rdatatype_nid); return; } @@ -172,7 +172,7 @@ freestruct_nid(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_nid(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 104); + REQUIRE(rdata->type == dns_rdatatype_nid); REQUIRE(rdata->length == 10); UNUSED(rdata); @@ -186,7 +186,7 @@ static inline isc_result_t digest_nid(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 104); + REQUIRE(rdata->type == dns_rdatatype_nid); REQUIRE(rdata->length == 10); dns_rdata_toregion(rdata, &r); @@ -197,7 +197,7 @@ digest_nid(ARGS_DIGEST) { static inline isc_boolean_t checkowner_nid(ARGS_CHECKOWNER) { - REQUIRE(type == 104); + REQUIRE(type == dns_rdatatype_nid); UNUSED(name); UNUSED(type); @@ -210,7 +210,7 @@ checkowner_nid(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_nid(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 104); + REQUIRE(rdata->type == dns_rdatatype_nid); REQUIRE(rdata->length == 10); UNUSED(rdata); diff --git a/lib/dns/rdata/generic/ns_2.c b/lib/dns/rdata/generic/ns_2.c index 5db81e7cb390..d7e095b09bf2 100644 --- a/lib/dns/rdata/generic/ns_2.c +++ b/lib/dns/rdata/generic/ns_2.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -31,7 +31,7 @@ fromtext_ns(ARGS_FROMTEXT) { isc_buffer_t buffer; isc_boolean_t ok; - REQUIRE(type == 2); + REQUIRE(type == dns_rdatatype_ns); UNUSED(type); UNUSED(rdclass); @@ -61,7 +61,7 @@ totext_ns(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 2); + REQUIRE(rdata->type == dns_rdatatype_ns); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -79,7 +79,7 @@ static inline isc_result_t fromwire_ns(ARGS_FROMWIRE) { dns_name_t name; - REQUIRE(type == 2); + REQUIRE(type == dns_rdatatype_ns); UNUSED(type); UNUSED(rdclass); @@ -96,7 +96,7 @@ towire_ns(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 2); + REQUIRE(rdata->type == dns_rdatatype_ns); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); @@ -117,7 +117,7 @@ compare_ns(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 2); + REQUIRE(rdata1->type == dns_rdatatype_ns); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -138,7 +138,7 @@ fromstruct_ns(ARGS_FROMSTRUCT) { dns_rdata_ns_t *ns = source; isc_region_t region; - REQUIRE(type == 2); + REQUIRE(type == dns_rdatatype_ns); REQUIRE(source != NULL); REQUIRE(ns->common.rdtype == type); REQUIRE(ns->common.rdclass == rdclass); @@ -156,7 +156,7 @@ tostruct_ns(ARGS_TOSTRUCT) { dns_rdata_ns_t *ns = target; dns_name_t name; - REQUIRE(rdata->type == 2); + REQUIRE(rdata->type == dns_rdatatype_ns); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -192,7 +192,7 @@ additionaldata_ns(ARGS_ADDLDATA) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 2); + REQUIRE(rdata->type == dns_rdatatype_ns); dns_name_init(&name, offsets); dns_rdata_toregion(rdata, ®ion); @@ -206,7 +206,7 @@ digest_ns(ARGS_DIGEST) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 2); + REQUIRE(rdata->type == dns_rdatatype_ns); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -218,7 +218,7 @@ digest_ns(ARGS_DIGEST) { static inline isc_boolean_t checkowner_ns(ARGS_CHECKOWNER) { - REQUIRE(type == 2); + REQUIRE(type == dns_rdatatype_ns); UNUSED(name); UNUSED(type); @@ -233,7 +233,7 @@ checknames_ns(ARGS_CHECKNAMES) { isc_region_t region; dns_name_t name; - REQUIRE(rdata->type == 2); + REQUIRE(rdata->type == dns_rdatatype_ns); UNUSED(owner); diff --git a/lib/dns/rdata/generic/nsec3_50.c b/lib/dns/rdata/generic/nsec3_50.c index eb4f68dca2a1..2aec339c2453 100644 --- a/lib/dns/rdata/generic/nsec3_50.c +++ b/lib/dns/rdata/generic/nsec3_50.c @@ -53,7 +53,7 @@ fromtext_nsec3(ARGS_FROMTEXT) { unsigned char hashalg; isc_buffer_t b; - REQUIRE(type == 50); + REQUIRE(type == dns_rdatatype_nsec3); UNUSED(type); UNUSED(rdclass); @@ -144,7 +144,7 @@ totext_nsec3(ARGS_TOTEXT) { isc_uint32_t iterations; isc_boolean_t first; - REQUIRE(rdata->type == 50); + REQUIRE(rdata->type == dns_rdatatype_nsec3); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); @@ -246,7 +246,7 @@ fromwire_nsec3(ARGS_FROMWIRE) { isc_boolean_t first = ISC_TRUE; unsigned int i; - REQUIRE(type == 50); + REQUIRE(type == dns_rdatatype_nsec3); UNUSED(type); UNUSED(rdclass); @@ -318,7 +318,7 @@ static inline isc_result_t towire_nsec3(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 50); + REQUIRE(rdata->type == dns_rdatatype_nsec3); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -334,7 +334,7 @@ compare_nsec3(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 50); + REQUIRE(rdata1->type == dns_rdatatype_nsec3); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -349,7 +349,7 @@ fromstruct_nsec3(ARGS_FROMSTRUCT) { unsigned int i, len, window, lastwindow = 0; isc_boolean_t first = ISC_TRUE; - REQUIRE(type == 50); + REQUIRE(type == dns_rdatatype_nsec3); REQUIRE(source != NULL); REQUIRE(nsec3->common.rdtype == type); REQUIRE(nsec3->common.rdclass == rdclass); @@ -390,7 +390,7 @@ tostruct_nsec3(ARGS_TOSTRUCT) { isc_region_t region; dns_rdata_nsec3_t *nsec3 = target; - REQUIRE(rdata->type == 50); + REQUIRE(rdata->type == dns_rdatatype_nsec3); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -436,7 +436,7 @@ freestruct_nsec3(ARGS_FREESTRUCT) { dns_rdata_nsec3_t *nsec3 = source; REQUIRE(source != NULL); - REQUIRE(nsec3->common.rdtype == 50); + REQUIRE(nsec3->common.rdtype == dns_rdatatype_nsec3); if (nsec3->mctx == NULL) return; @@ -452,7 +452,7 @@ freestruct_nsec3(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_nsec3(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 50); + REQUIRE(rdata->type == dns_rdatatype_nsec3); UNUSED(rdata); UNUSED(add); @@ -465,7 +465,7 @@ static inline isc_result_t digest_nsec3(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 50); + REQUIRE(rdata->type == dns_rdatatype_nsec3); dns_rdata_toregion(rdata, &r); return ((digest)(arg, &r)); @@ -477,7 +477,7 @@ checkowner_nsec3(ARGS_CHECKOWNER) { isc_buffer_t buffer; dns_label_t label; - REQUIRE(type == 50); + REQUIRE(type == dns_rdatatype_nsec3); UNUSED(type); UNUSED(rdclass); @@ -498,7 +498,7 @@ checkowner_nsec3(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_nsec3(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 50); + REQUIRE(rdata->type == dns_rdatatype_nsec3); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/nsec3param_51.c b/lib/dns/rdata/generic/nsec3param_51.c index 379a46b53542..6ac152e31d61 100644 --- a/lib/dns/rdata/generic/nsec3param_51.c +++ b/lib/dns/rdata/generic/nsec3param_51.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2008, 2009, 2015 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 @@ -48,7 +48,7 @@ fromtext_nsec3param(ARGS_FROMTEXT) { unsigned int flags = 0; unsigned char hashalg; - REQUIRE(type == 51); + REQUIRE(type == dns_rdatatype_nsec3param); UNUSED(type); UNUSED(rdclass); @@ -101,7 +101,7 @@ totext_nsec3param(ARGS_TOTEXT) { char buf[sizeof("65535 ")]; isc_uint32_t iterations; - REQUIRE(rdata->type == 51); + REQUIRE(rdata->type == dns_rdatatype_nsec3param); REQUIRE(rdata->length != 0); UNUSED(tctx); @@ -146,7 +146,7 @@ fromwire_nsec3param(ARGS_FROMWIRE) { isc_region_t sr, rr; unsigned int saltlen; - REQUIRE(type == 51); + REQUIRE(type == dns_rdatatype_nsec3param); UNUSED(type); UNUSED(rdclass); @@ -174,7 +174,7 @@ static inline isc_result_t towire_nsec3param(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 51); + REQUIRE(rdata->type == dns_rdatatype_nsec3param); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -190,7 +190,7 @@ compare_nsec3param(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 51); + REQUIRE(rdata1->type == dns_rdatatype_nsec3param); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -203,7 +203,7 @@ static inline isc_result_t fromstruct_nsec3param(ARGS_FROMSTRUCT) { dns_rdata_nsec3param_t *nsec3param = source; - REQUIRE(type == 51); + REQUIRE(type == dns_rdatatype_nsec3param); REQUIRE(source != NULL); REQUIRE(nsec3param->common.rdtype == type); REQUIRE(nsec3param->common.rdclass == rdclass); @@ -225,7 +225,7 @@ tostruct_nsec3param(ARGS_TOSTRUCT) { isc_region_t region; dns_rdata_nsec3param_t *nsec3param = target; - REQUIRE(rdata->type == 51); + REQUIRE(rdata->type == dns_rdatatype_nsec3param); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -255,7 +255,7 @@ freestruct_nsec3param(ARGS_FREESTRUCT) { dns_rdata_nsec3param_t *nsec3param = source; REQUIRE(source != NULL); - REQUIRE(nsec3param->common.rdtype == 51); + REQUIRE(nsec3param->common.rdtype == dns_rdatatype_nsec3param); if (nsec3param->mctx == NULL) return; @@ -267,7 +267,7 @@ freestruct_nsec3param(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_nsec3param(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 51); + REQUIRE(rdata->type == dns_rdatatype_nsec3param); UNUSED(rdata); UNUSED(add); @@ -280,7 +280,7 @@ static inline isc_result_t digest_nsec3param(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 51); + REQUIRE(rdata->type == dns_rdatatype_nsec3param); dns_rdata_toregion(rdata, &r); return ((digest)(arg, &r)); @@ -289,7 +289,7 @@ digest_nsec3param(ARGS_DIGEST) { static inline isc_boolean_t checkowner_nsec3param(ARGS_CHECKOWNER) { - REQUIRE(type == 51); + REQUIRE(type == dns_rdatatype_nsec3param); UNUSED(name); UNUSED(type); @@ -302,7 +302,7 @@ checkowner_nsec3param(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_nsec3param(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 51); + REQUIRE(rdata->type == dns_rdatatype_nsec3param); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/nsec_47.c b/lib/dns/rdata/generic/nsec_47.c index 095f42eba899..64bd757fd33a 100644 --- a/lib/dns/rdata/generic/nsec_47.c +++ b/lib/dns/rdata/generic/nsec_47.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007-2009, 2011 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007-2009, 2011, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -40,7 +40,7 @@ fromtext_nsec(ARGS_FROMTEXT) { int octet; int window; - REQUIRE(type == 47); + REQUIRE(type == dns_rdatatype_nsec); UNUSED(type); UNUSED(rdclass); @@ -90,7 +90,7 @@ totext_nsec(ARGS_TOTEXT) { dns_name_t name; unsigned int window, len; - REQUIRE(rdata->type == 47); + REQUIRE(rdata->type == dns_rdatatype_nsec); REQUIRE(rdata->length != 0); UNUSED(tctx); @@ -140,7 +140,7 @@ fromwire_nsec(ARGS_FROMWIRE) { isc_boolean_t first = ISC_TRUE; unsigned int i; - REQUIRE(type == 47); + REQUIRE(type == dns_rdatatype_nsec); UNUSED(type); UNUSED(rdclass); @@ -198,7 +198,7 @@ towire_nsec(ARGS_TOWIRE) { dns_name_t name; dns_offsets_t offsets; - REQUIRE(rdata->type == 47); + REQUIRE(rdata->type == dns_rdatatype_nsec); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -218,7 +218,7 @@ compare_nsec(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 47); + REQUIRE(rdata1->type == dns_rdatatype_nsec); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -234,7 +234,7 @@ fromstruct_nsec(ARGS_FROMSTRUCT) { unsigned int i, len, window, lastwindow = 0; isc_boolean_t first = ISC_TRUE; - REQUIRE(type == 47); + REQUIRE(type == dns_rdatatype_nsec); REQUIRE(source != NULL); REQUIRE(nsec->common.rdtype == type); REQUIRE(nsec->common.rdclass == rdclass); @@ -270,7 +270,7 @@ tostruct_nsec(ARGS_TOSTRUCT) { dns_rdata_nsec_t *nsec = target; dns_name_t name; - REQUIRE(rdata->type == 47); + REQUIRE(rdata->type == dns_rdatatype_nsec); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -304,7 +304,7 @@ freestruct_nsec(ARGS_FREESTRUCT) { dns_rdata_nsec_t *nsec = source; REQUIRE(source != NULL); - REQUIRE(nsec->common.rdtype == 47); + REQUIRE(nsec->common.rdtype == dns_rdatatype_nsec); if (nsec->mctx == NULL) return; @@ -317,7 +317,7 @@ freestruct_nsec(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_nsec(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 47); + REQUIRE(rdata->type == dns_rdatatype_nsec); UNUSED(rdata); UNUSED(add); @@ -330,7 +330,7 @@ static inline isc_result_t digest_nsec(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 47); + REQUIRE(rdata->type == dns_rdatatype_nsec); dns_rdata_toregion(rdata, &r); return ((digest)(arg, &r)); @@ -339,7 +339,7 @@ digest_nsec(ARGS_DIGEST) { static inline isc_boolean_t checkowner_nsec(ARGS_CHECKOWNER) { - REQUIRE(type == 47); + REQUIRE(type == dns_rdatatype_nsec); UNUSED(name); UNUSED(type); @@ -352,7 +352,7 @@ checkowner_nsec(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_nsec(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 47); + REQUIRE(rdata->type == dns_rdatatype_nsec); UNUSED(rdata); UNUSED(owner); @@ -371,7 +371,7 @@ casecompare_nsec(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 47); + REQUIRE(rdata1->type == dns_rdatatype_nsec); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); diff --git a/lib/dns/rdata/generic/null_10.c b/lib/dns/rdata/generic/null_10.c index 8ba86fbca9b7..38d4fdbb3f82 100644 --- a/lib/dns/rdata/generic/null_10.c +++ b/lib/dns/rdata/generic/null_10.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2011, 2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -26,7 +26,7 @@ static inline isc_result_t fromtext_null(ARGS_FROMTEXT) { - REQUIRE(type == 10); + REQUIRE(type == dns_rdatatype_null); UNUSED(rdclass); UNUSED(type); @@ -41,7 +41,7 @@ fromtext_null(ARGS_FROMTEXT) { static inline isc_result_t totext_null(ARGS_TOTEXT) { - REQUIRE(rdata->type == 10); + REQUIRE(rdata->type == dns_rdatatype_null); return (unknown_totext(rdata, tctx, target)); } @@ -50,7 +50,7 @@ static inline isc_result_t fromwire_null(ARGS_FROMWIRE) { isc_region_t sr; - REQUIRE(type == 10); + REQUIRE(type == dns_rdatatype_null); UNUSED(type); UNUSED(rdclass); @@ -64,7 +64,7 @@ fromwire_null(ARGS_FROMWIRE) { static inline isc_result_t towire_null(ARGS_TOWIRE) { - REQUIRE(rdata->type == 10); + REQUIRE(rdata->type == dns_rdatatype_null); UNUSED(cctx); @@ -78,7 +78,7 @@ compare_null(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 10); + REQUIRE(rdata1->type == dns_rdatatype_null); dns_rdata_toregion(rdata1, &r1); dns_rdata_toregion(rdata2, &r2); @@ -89,7 +89,7 @@ static inline isc_result_t fromstruct_null(ARGS_FROMSTRUCT) { dns_rdata_null_t *null = source; - REQUIRE(type == 10); + REQUIRE(type == dns_rdatatype_null); REQUIRE(source != NULL); REQUIRE(null->common.rdtype == type); REQUIRE(null->common.rdclass == rdclass); @@ -106,7 +106,7 @@ tostruct_null(ARGS_TOSTRUCT) { dns_rdata_null_t *null = target; isc_region_t r; - REQUIRE(rdata->type == 10); + REQUIRE(rdata->type == dns_rdatatype_null); REQUIRE(target != NULL); null->common.rdclass = rdata->rdclass; @@ -128,7 +128,7 @@ freestruct_null(ARGS_FREESTRUCT) { dns_rdata_null_t *null = source; REQUIRE(source != NULL); - REQUIRE(null->common.rdtype == 10); + REQUIRE(null->common.rdtype == dns_rdatatype_null); if (null->mctx == NULL) return; @@ -144,7 +144,7 @@ additionaldata_null(ARGS_ADDLDATA) { UNUSED(add); UNUSED(arg); - REQUIRE(rdata->type == 10); + REQUIRE(rdata->type == dns_rdatatype_null); return (ISC_R_SUCCESS); } @@ -153,7 +153,7 @@ static inline isc_result_t digest_null(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 10); + REQUIRE(rdata->type == dns_rdatatype_null); dns_rdata_toregion(rdata, &r); @@ -163,7 +163,7 @@ digest_null(ARGS_DIGEST) { static inline isc_boolean_t checkowner_null(ARGS_CHECKOWNER) { - REQUIRE(type == 10); + REQUIRE(type == dns_rdatatype_null); UNUSED(name); UNUSED(type); @@ -176,7 +176,7 @@ checkowner_null(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_null(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 10); + REQUIRE(rdata->type == dns_rdatatype_null); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/nxt_30.c b/lib/dns/rdata/generic/nxt_30.c index 4d291a8e6f6e..fbb34e9818ee 100644 --- a/lib/dns/rdata/generic/nxt_30.c +++ b/lib/dns/rdata/generic/nxt_30.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -42,7 +42,7 @@ fromtext_nxt(ARGS_FROMTEXT) { isc_boolean_t first = ISC_TRUE; long n; - REQUIRE(type == 30); + REQUIRE(type == dns_rdatatype_nxt); UNUSED(type); UNUSED(rdclass); @@ -95,7 +95,7 @@ totext_nxt(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 30); + REQUIRE(rdata->type == dns_rdatatype_nxt); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -131,7 +131,7 @@ fromwire_nxt(ARGS_FROMWIRE) { isc_region_t sr; dns_name_t name; - REQUIRE(type == 30); + REQUIRE(type == dns_rdatatype_nxt); UNUSED(type); UNUSED(rdclass); @@ -156,7 +156,7 @@ towire_nxt(ARGS_TOWIRE) { dns_name_t name; dns_offsets_t offsets; - REQUIRE(rdata->type == 30); + REQUIRE(rdata->type == dns_rdatatype_nxt); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -179,7 +179,7 @@ compare_nxt(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 30); + REQUIRE(rdata1->type == dns_rdatatype_nxt); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -201,7 +201,7 @@ fromstruct_nxt(ARGS_FROMSTRUCT) { dns_rdata_nxt_t *nxt = source; isc_region_t region; - REQUIRE(type == 30); + REQUIRE(type == dns_rdatatype_nxt); REQUIRE(source != NULL); REQUIRE(nxt->common.rdtype == type); REQUIRE(nxt->common.rdclass == rdclass); @@ -226,7 +226,7 @@ tostruct_nxt(ARGS_TOSTRUCT) { dns_rdata_nxt_t *nxt = target; dns_name_t name; - REQUIRE(rdata->type == 30); + REQUIRE(rdata->type == dns_rdatatype_nxt); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -260,7 +260,7 @@ freestruct_nxt(ARGS_FREESTRUCT) { dns_rdata_nxt_t *nxt = source; REQUIRE(source != NULL); - REQUIRE(nxt->common.rdtype == 30); + REQUIRE(nxt->common.rdtype == dns_rdatatype_nxt); if (nxt->mctx == NULL) return; @@ -273,7 +273,7 @@ freestruct_nxt(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_nxt(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 30); + REQUIRE(rdata->type == dns_rdatatype_nxt); UNUSED(rdata); UNUSED(add); @@ -288,7 +288,7 @@ digest_nxt(ARGS_DIGEST) { dns_name_t name; isc_result_t result; - REQUIRE(rdata->type == 30); + REQUIRE(rdata->type == dns_rdatatype_nxt); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -304,7 +304,7 @@ digest_nxt(ARGS_DIGEST) { static inline isc_boolean_t checkowner_nxt(ARGS_CHECKOWNER) { - REQUIRE(type == 30); + REQUIRE(type == dns_rdatatype_nxt); UNUSED(name); UNUSED(type); @@ -317,7 +317,7 @@ checkowner_nxt(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_nxt(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 30); + REQUIRE(rdata->type == dns_rdatatype_nxt); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/openpgpkey_61.c b/lib/dns/rdata/generic/openpgpkey_61.c index 7b2a88bbd312..382be7e43220 100644 --- a/lib/dns/rdata/generic/openpgpkey_61.c +++ b/lib/dns/rdata/generic/openpgpkey_61.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2014, 2015 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 @@ -22,7 +22,7 @@ static inline isc_result_t fromtext_openpgpkey(ARGS_FROMTEXT) { - REQUIRE(type == 61); + REQUIRE(type == dns_rdatatype_openpgpkey); UNUSED(type); UNUSED(rdclass); @@ -40,7 +40,7 @@ static inline isc_result_t totext_openpgpkey(ARGS_TOTEXT) { isc_region_t sr; - REQUIRE(rdata->type == 61); + REQUIRE(rdata->type == dns_rdatatype_openpgpkey); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); @@ -65,7 +65,7 @@ static inline isc_result_t fromwire_openpgpkey(ARGS_FROMWIRE) { isc_region_t sr; - REQUIRE(type == 61); + REQUIRE(type == dns_rdatatype_openpgpkey); UNUSED(type); UNUSED(rdclass); @@ -76,6 +76,8 @@ fromwire_openpgpkey(ARGS_FROMWIRE) { * Keyring. */ isc_buffer_activeregion(source, &sr); + if (sr.length < 1) + return (ISC_R_UNEXPECTEDEND); isc_buffer_forward(source, sr.length); return (mem_tobuffer(target, sr.base, sr.length)); } @@ -84,7 +86,7 @@ static inline isc_result_t towire_openpgpkey(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 61); + REQUIRE(rdata->type == dns_rdatatype_openpgpkey); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -100,7 +102,7 @@ compare_openpgpkey(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 61); + REQUIRE(rdata1->type == dns_rdatatype_openpgpkey); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -113,7 +115,7 @@ static inline isc_result_t fromstruct_openpgpkey(ARGS_FROMSTRUCT) { dns_rdata_openpgpkey_t *sig = source; - REQUIRE(type == 61); + REQUIRE(type == dns_rdatatype_openpgpkey); REQUIRE(source != NULL); REQUIRE(sig->common.rdtype == type); REQUIRE(sig->common.rdclass == rdclass); @@ -133,7 +135,7 @@ tostruct_openpgpkey(ARGS_TOSTRUCT) { isc_region_t sr; dns_rdata_openpgpkey_t *sig = target; - REQUIRE(rdata->type == 61); + REQUIRE(rdata->type == dns_rdatatype_openpgpkey); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -163,7 +165,7 @@ freestruct_openpgpkey(ARGS_FREESTRUCT) { dns_rdata_openpgpkey_t *sig = (dns_rdata_openpgpkey_t *) source; REQUIRE(source != NULL); - REQUIRE(sig->common.rdtype == 61); + REQUIRE(sig->common.rdtype == dns_rdatatype_openpgpkey); if (sig->mctx == NULL) return; @@ -175,7 +177,7 @@ freestruct_openpgpkey(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_openpgpkey(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 61); + REQUIRE(rdata->type == dns_rdatatype_openpgpkey); UNUSED(rdata); UNUSED(add); @@ -188,7 +190,7 @@ static inline isc_result_t digest_openpgpkey(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 61); + REQUIRE(rdata->type == dns_rdatatype_openpgpkey); dns_rdata_toregion(rdata, &r); @@ -198,7 +200,7 @@ digest_openpgpkey(ARGS_DIGEST) { static inline isc_boolean_t checkowner_openpgpkey(ARGS_CHECKOWNER) { - REQUIRE(type == 61); + REQUIRE(type == dns_rdatatype_openpgpkey); UNUSED(name); UNUSED(type); @@ -211,7 +213,7 @@ checkowner_openpgpkey(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_openpgpkey(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 61); + REQUIRE(rdata->type == dns_rdatatype_openpgpkey); UNUSED(rdata); UNUSED(owner); @@ -227,7 +229,7 @@ casecompare_openpgpkey(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 61); + REQUIRE(rdata1->type == dns_rdatatype_openpgpkey); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); diff --git a/lib/dns/rdata/generic/opt_41.c b/lib/dns/rdata/generic/opt_41.c index ba3fef001a15..bc2de3790884 100644 --- a/lib/dns/rdata/generic/opt_41.c +++ b/lib/dns/rdata/generic/opt_41.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -34,7 +34,7 @@ fromtext_opt(ARGS_FROMTEXT) { * OPT records do not have a text format. */ - REQUIRE(type == 41); + REQUIRE(type == dns_rdatatype_opt); UNUSED(type); UNUSED(rdclass); @@ -59,7 +59,7 @@ totext_opt(ARGS_TOTEXT) { * OPT records do not have a text format. */ - REQUIRE(rdata->type == 41); + REQUIRE(rdata->type == dns_rdatatype_opt); dns_rdata_toregion(rdata, &r); while (r.length > 0) { @@ -101,7 +101,7 @@ fromwire_opt(ARGS_FROMWIRE) { isc_uint16_t length; unsigned int total; - REQUIRE(type == 41); + REQUIRE(type == dns_rdatatype_opt); UNUSED(type); UNUSED(rdclass); @@ -128,7 +128,7 @@ fromwire_opt(ARGS_FROMWIRE) { isc_uint8_t addrbytes; if (length < 4) - return (DNS_R_FORMERR); + return (DNS_R_OPTERR); family = uint16_fromregion(&sregion); isc_region_consume(&sregion, 2); addrlen = uint8_fromregion(&sregion); @@ -138,16 +138,25 @@ fromwire_opt(ARGS_FROMWIRE) { switch (family) { case 1: if (addrlen > 32U || scope > 32U) - return (DNS_R_FORMERR); + return (DNS_R_OPTERR); break; case 2: if (addrlen > 128U || scope > 128U) - return (DNS_R_FORMERR); + return (DNS_R_OPTERR); break; + default: + return (DNS_R_OPTERR); } addrbytes = (addrlen + 7) / 8; if (addrbytes + 4 != length) - return (DNS_R_FORMERR); + return (DNS_R_OPTERR); + + if (addrbytes != 0U && (addrlen % 8) != 0) { + isc_uint8_t bits = ~0 << (8 - (addrlen % 8)); + bits &= sregion.base[addrbytes - 1]; + if (bits != sregion.base[addrbytes - 1]) + return (DNS_R_OPTERR); + } isc_region_consume(&sregion, addrbytes); break; } @@ -156,7 +165,12 @@ fromwire_opt(ARGS_FROMWIRE) { * Request has zero length. Response is 32 bits. */ if (length != 0 && length != 4) - return (DNS_R_FORMERR); + return (DNS_R_OPTERR); + isc_region_consume(&sregion, length); + break; + case DNS_OPT_COOKIE: + if (length != 8 && (length < 16 || length > 40)) + return (DNS_R_OPTERR); isc_region_consume(&sregion, length); break; default: @@ -180,7 +194,7 @@ fromwire_opt(ARGS_FROMWIRE) { static inline isc_result_t towire_opt(ARGS_TOWIRE) { - REQUIRE(rdata->type == 41); + REQUIRE(rdata->type == dns_rdatatype_opt); UNUSED(cctx); @@ -194,7 +208,7 @@ compare_opt(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 41); + REQUIRE(rdata1->type == dns_rdatatype_opt); dns_rdata_toregion(rdata1, &r1); dns_rdata_toregion(rdata2, &r2); @@ -207,7 +221,7 @@ fromstruct_opt(ARGS_FROMSTRUCT) { isc_region_t region; isc_uint16_t length; - REQUIRE(type == 41); + REQUIRE(type == dns_rdatatype_opt); REQUIRE(source != NULL); REQUIRE(opt->common.rdtype == type); REQUIRE(opt->common.rdclass == rdclass); @@ -237,7 +251,7 @@ tostruct_opt(ARGS_TOSTRUCT) { dns_rdata_opt_t *opt = target; isc_region_t r; - REQUIRE(rdata->type == 41); + REQUIRE(rdata->type == dns_rdatatype_opt); REQUIRE(target != NULL); opt->common.rdclass = rdata->rdclass; @@ -260,7 +274,7 @@ freestruct_opt(ARGS_FREESTRUCT) { dns_rdata_opt_t *opt = source; REQUIRE(source != NULL); - REQUIRE(opt->common.rdtype == 41); + REQUIRE(opt->common.rdtype == dns_rdatatype_opt); if (opt->mctx == NULL) return; @@ -272,7 +286,7 @@ freestruct_opt(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_opt(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 41); + REQUIRE(rdata->type == dns_rdatatype_opt); UNUSED(rdata); UNUSED(add); @@ -288,7 +302,7 @@ digest_opt(ARGS_DIGEST) { * OPT records are not digested. */ - REQUIRE(rdata->type == 41); + REQUIRE(rdata->type == dns_rdatatype_opt); UNUSED(rdata); UNUSED(digest); @@ -300,7 +314,7 @@ digest_opt(ARGS_DIGEST) { static inline isc_boolean_t checkowner_opt(ARGS_CHECKOWNER) { - REQUIRE(type == 41); + REQUIRE(type == dns_rdatatype_opt); UNUSED(type); UNUSED(rdclass); @@ -312,7 +326,7 @@ checkowner_opt(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_opt(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 41); + REQUIRE(rdata->type == dns_rdatatype_opt); UNUSED(rdata); UNUSED(owner); @@ -330,7 +344,7 @@ isc_result_t dns_rdata_opt_first(dns_rdata_opt_t *opt) { REQUIRE(opt != NULL); - REQUIRE(opt->common.rdtype == 41); + REQUIRE(opt->common.rdtype == dns_rdatatype_opt); REQUIRE(opt->options != NULL || opt->length == 0); if (opt->length == 0) @@ -346,7 +360,7 @@ dns_rdata_opt_next(dns_rdata_opt_t *opt) { isc_uint16_t length; REQUIRE(opt != NULL); - REQUIRE(opt->common.rdtype == 41); + REQUIRE(opt->common.rdtype == dns_rdatatype_opt); REQUIRE(opt->options != NULL && opt->length != 0); REQUIRE(opt->offset < opt->length); @@ -367,7 +381,7 @@ dns_rdata_opt_current(dns_rdata_opt_t *opt, dns_rdata_opt_opcode_t *opcode) { REQUIRE(opt != NULL); REQUIRE(opcode != NULL); - REQUIRE(opt->common.rdtype == 41); + REQUIRE(opt->common.rdtype == dns_rdatatype_opt); REQUIRE(opt->options != NULL); REQUIRE(opt->offset < opt->length); diff --git a/lib/dns/rdata/generic/proforma.c b/lib/dns/rdata/generic/proforma.c index d1a5ecd77cc2..afd67a4e31fe 100644 --- a/lib/dns/rdata/generic/proforma.c +++ b/lib/dns/rdata/generic/proforma.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -26,7 +26,7 @@ static inline isc_result_t fromtext_#(ARGS_FROMTEXT) { isc_token_t token; - REQUIRE(type == #); + REQUIRE(type == dns_rdatatype_proforma.c#); REQUIRE(rdclass == #); RETERR(isc_lex_getmastertoken(lexer, &token, isc_tokentype_string, @@ -38,7 +38,7 @@ fromtext_#(ARGS_FROMTEXT) { static inline isc_result_t totext_#(ARGS_TOTEXT) { - REQUIRE(rdata->type == #); + REQUIRE(rdata->type == dns_rdatatype_proforma.c#); REQUIRE(rdata->rdclass == #); REQUIRE(rdata->length != 0); /* XXX */ @@ -48,7 +48,7 @@ totext_#(ARGS_TOTEXT) { static inline isc_result_t fromwire_#(ARGS_FROMWIRE) { - REQUIRE(type == #); + REQUIRE(type == dns_rdatatype_proforma.c#); REQUIRE(rdclass == #); /* NONE or GLOBAL14 */ @@ -60,7 +60,7 @@ fromwire_#(ARGS_FROMWIRE) { static inline isc_result_t towire_#(ARGS_TOWIRE) { - REQUIRE(rdata->type == #); + REQUIRE(rdata->type == dns_rdatatype_proforma.c#); REQUIRE(rdata->rdclass == #); REQUIRE(rdata->length != 0); /* XXX */ @@ -75,9 +75,9 @@ compare_#(ARGS_COMPARE) { isc_region_t r1; isc_region_t r2; - REQUIRE(rdata1->type == rdata2->type); + REQUIRE(rdata1->type == dns_rdatatype_proforma.crdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == #); + REQUIRE(rdata1->type == dns_rdatatype_proforma.c#); REQUIRE(rdata1->rdclass == #); REQUIRE(rdata1->length != 0); /* XXX */ REQUIRE(rdata2->length != 0); /* XXX */ @@ -91,10 +91,10 @@ static inline isc_result_t fromstruct_#(ARGS_FROMSTRUCT) { dns_rdata_#_t *# = source; - REQUIRE(type == #); + REQUIRE(type == dns_rdatatype_proforma.c#); REQUIRE(rdclass == #); REQUIRE(source != NULL); - REQUIRE(#->common.rdtype == type); + REQUIRE(#->common.rdtype == dns_rdatatype_proforma.ctype); REQUIRE(#->common.rdclass == rdclass); return (ISC_R_NOTIMPLEMENTED); @@ -103,7 +103,7 @@ fromstruct_#(ARGS_FROMSTRUCT) { static inline isc_result_t tostruct_#(ARGS_TOSTRUCT) { - REQUIRE(rdata->type == #); + REQUIRE(rdata->type == dns_rdatatype_proforma.c#); REQUIRE(rdata->rdclass == #); REQUIRE(rdata->length != 0); /* XXX */ @@ -115,14 +115,14 @@ freestruct_#(ARGS_FREESTRUCT) { dns_rdata_#_t *# = source; REQUIRE(source != NULL); - REQUIRE(#->common.rdtype == #); + REQUIRE(#->common.rdtype == dns_rdatatype_proforma.c#); REQUIRE(#->common.rdclass == #); } static inline isc_result_t additionaldata_#(ARGS_ADDLDATA) { - REQUIRE(rdata->type == #); + REQUIRE(rdata->type == dns_rdatatype_proforma.c#); REQUIRE(rdata->rdclass == #); (void)add; @@ -135,7 +135,7 @@ static inline isc_result_t digest_#(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == #); + REQUIRE(rdata->type == dns_rdatatype_proforma.c#); REQUIRE(rdata->rdclass == #); dns_rdata_toregion(rdata, &r); @@ -146,7 +146,7 @@ digest_#(ARGS_DIGEST) { static inline isc_boolean_t checkowner_#(ARGS_CHECKOWNER) { - REQUIRE(type == #); + REQUIRE(type == dns_rdatatype_proforma.c#); REQUIRE(rdclass == #); UNUSED(name); @@ -160,7 +160,7 @@ checkowner_#(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_#(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == #); + REQUIRE(rdata->type == dns_rdatatype_proforma.c#); REQUIRE(rdata->rdclass == #); UNUSED(rdata); @@ -175,9 +175,9 @@ casecompare_#(ARGS_COMPARE) { isc_region_t r1; isc_region_t r2; - REQUIRE(rdata1->type == rdata2->type); + REQUIRE(rdata1->type == dns_rdatatype_proforma.crdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == #); + REQUIRE(rdata1->type == dns_rdatatype_proforma.c#); REQUIRE(rdata1->rdclass == #); REQUIRE(rdata1->length != 0); /* XXX */ REQUIRE(rdata2->length != 0); /* XXX */ diff --git a/lib/dns/rdata/generic/ptr_12.c b/lib/dns/rdata/generic/ptr_12.c index a619f137a877..e3f65cf28561 100644 --- a/lib/dns/rdata/generic/ptr_12.c +++ b/lib/dns/rdata/generic/ptr_12.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -30,7 +30,7 @@ fromtext_ptr(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 12); + REQUIRE(type == dns_rdatatype_ptr); UNUSED(type); UNUSED(rdclass); @@ -63,7 +63,7 @@ totext_ptr(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 12); + REQUIRE(rdata->type == dns_rdatatype_ptr); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -81,7 +81,7 @@ static inline isc_result_t fromwire_ptr(ARGS_FROMWIRE) { dns_name_t name; - REQUIRE(type == 12); + REQUIRE(type == dns_rdatatype_ptr); UNUSED(type); UNUSED(rdclass); @@ -98,7 +98,7 @@ towire_ptr(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 12); + REQUIRE(rdata->type == dns_rdatatype_ptr); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); @@ -119,7 +119,7 @@ compare_ptr(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 12); + REQUIRE(rdata1->type == dns_rdatatype_ptr); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -140,7 +140,7 @@ fromstruct_ptr(ARGS_FROMSTRUCT) { dns_rdata_ptr_t *ptr = source; isc_region_t region; - REQUIRE(type == 12); + REQUIRE(type == dns_rdatatype_ptr); REQUIRE(source != NULL); REQUIRE(ptr->common.rdtype == type); REQUIRE(ptr->common.rdclass == rdclass); @@ -158,7 +158,7 @@ tostruct_ptr(ARGS_TOSTRUCT) { dns_rdata_ptr_t *ptr = target; dns_name_t name; - REQUIRE(rdata->type == 12); + REQUIRE(rdata->type == dns_rdatatype_ptr); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -180,7 +180,7 @@ freestruct_ptr(ARGS_FREESTRUCT) { dns_rdata_ptr_t *ptr = source; REQUIRE(source != NULL); - REQUIRE(ptr->common.rdtype == 12); + REQUIRE(ptr->common.rdtype == dns_rdatatype_ptr); if (ptr->mctx == NULL) return; @@ -191,7 +191,7 @@ freestruct_ptr(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_ptr(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 12); + REQUIRE(rdata->type == dns_rdatatype_ptr); UNUSED(rdata); UNUSED(add); @@ -205,7 +205,7 @@ digest_ptr(ARGS_DIGEST) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 12); + REQUIRE(rdata->type == dns_rdatatype_ptr); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -217,7 +217,7 @@ digest_ptr(ARGS_DIGEST) { static inline isc_boolean_t checkowner_ptr(ARGS_CHECKOWNER) { - REQUIRE(type == 12); + REQUIRE(type == dns_rdatatype_ptr); UNUSED(name); UNUSED(type); @@ -268,11 +268,14 @@ checknames_ptr(ARGS_CHECKNAMES) { isc_region_t region; dns_name_t name; - REQUIRE(rdata->type == 12); + REQUIRE(rdata->type == dns_rdatatype_ptr); if (rdata->rdclass != dns_rdataclass_in) return (ISC_TRUE); + if (dns_name_isdnssd(owner)) + return (ISC_TRUE); + if (dns_name_issubdomain(owner, &in_addr_arpa) || dns_name_issubdomain(owner, &ip6_arpa) || dns_name_issubdomain(owner, &ip6_int)) { diff --git a/lib/dns/rdata/generic/rp_17.c b/lib/dns/rdata/generic/rp_17.c index 3291f7bb55cd..e67c25ec7a1e 100644 --- a/lib/dns/rdata/generic/rp_17.c +++ b/lib/dns/rdata/generic/rp_17.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -32,7 +32,7 @@ fromtext_rp(ARGS_FROMTEXT) { int i; isc_boolean_t ok; - REQUIRE(type == 17); + REQUIRE(type == dns_rdatatype_rp); UNUSED(type); UNUSED(rdclass); @@ -67,7 +67,7 @@ totext_rp(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 17); + REQUIRE(rdata->type == dns_rdatatype_rp); REQUIRE(rdata->length != 0); dns_name_init(&rmail, NULL); @@ -96,7 +96,7 @@ fromwire_rp(ARGS_FROMWIRE) { dns_name_t rmail; dns_name_t email; - REQUIRE(type == 17); + REQUIRE(type == dns_rdatatype_rp); UNUSED(type); UNUSED(rdclass); @@ -118,7 +118,7 @@ towire_rp(ARGS_TOWIRE) { dns_offsets_t roffsets; dns_offsets_t eoffsets; - REQUIRE(rdata->type == 17); + REQUIRE(rdata->type == dns_rdatatype_rp); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -148,7 +148,7 @@ compare_rp(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 17); + REQUIRE(rdata1->type == dns_rdatatype_rp); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -182,7 +182,7 @@ fromstruct_rp(ARGS_FROMSTRUCT) { dns_rdata_rp_t *rp = source; isc_region_t region; - REQUIRE(type == 17); + REQUIRE(type == dns_rdatatype_rp); REQUIRE(source != NULL); REQUIRE(rp->common.rdtype == type); REQUIRE(rp->common.rdclass == rdclass); @@ -203,7 +203,7 @@ tostruct_rp(ARGS_TOSTRUCT) { dns_rdata_rp_t *rp = target; dns_name_t name; - REQUIRE(rdata->type == 17); + REQUIRE(rdata->type == dns_rdatatype_rp); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -237,7 +237,7 @@ freestruct_rp(ARGS_FREESTRUCT) { dns_rdata_rp_t *rp = source; REQUIRE(source != NULL); - REQUIRE(rp->common.rdtype == 17); + REQUIRE(rp->common.rdtype == dns_rdatatype_rp); if (rp->mctx == NULL) return; @@ -249,7 +249,7 @@ freestruct_rp(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_rp(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 17); + REQUIRE(rdata->type == dns_rdatatype_rp); UNUSED(rdata); UNUSED(add); @@ -263,7 +263,7 @@ digest_rp(ARGS_DIGEST) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 17); + REQUIRE(rdata->type == dns_rdatatype_rp); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -281,7 +281,7 @@ digest_rp(ARGS_DIGEST) { static inline isc_boolean_t checkowner_rp(ARGS_CHECKOWNER) { - REQUIRE(type == 17); + REQUIRE(type == dns_rdatatype_rp); UNUSED(name); UNUSED(type); @@ -296,7 +296,7 @@ checknames_rp(ARGS_CHECKNAMES) { isc_region_t region; dns_name_t name; - REQUIRE(rdata->type == 17); + REQUIRE(rdata->type == dns_rdatatype_rp); UNUSED(owner); diff --git a/lib/dns/rdata/generic/rrsig_46.c b/lib/dns/rdata/generic/rrsig_46.c index d4e8767fed88..8ae9319c5cf0 100644 --- a/lib/dns/rdata/generic/rrsig_46.c +++ b/lib/dns/rdata/generic/rrsig_46.c @@ -38,7 +38,7 @@ fromtext_rrsig(ARGS_FROMTEXT) { isc_buffer_t buffer; isc_uint32_t time_signed, time_expire; - REQUIRE(type == 46); + REQUIRE(type == dns_rdatatype_rrsig); UNUSED(type); UNUSED(rdclass); @@ -161,7 +161,7 @@ totext_rrsig(ARGS_TOTEXT) { unsigned long foot; dns_name_t name; - REQUIRE(rdata->type == 46); + REQUIRE(rdata->type == dns_rdatatype_rrsig); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); @@ -264,7 +264,7 @@ fromwire_rrsig(ARGS_FROMWIRE) { isc_region_t sr; dns_name_t name; - REQUIRE(type == 46); + REQUIRE(type == dns_rdatatype_rrsig); UNUSED(type); UNUSED(rdclass); @@ -307,7 +307,7 @@ towire_rrsig(ARGS_TOWIRE) { dns_name_t name; dns_offsets_t offsets; - REQUIRE(rdata->type == 46); + REQUIRE(rdata->type == dns_rdatatype_rrsig); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -345,7 +345,7 @@ compare_rrsig(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 46); + REQUIRE(rdata1->type == dns_rdatatype_rrsig); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -358,7 +358,7 @@ static inline isc_result_t fromstruct_rrsig(ARGS_FROMSTRUCT) { dns_rdata_rrsig_t *sig = source; - REQUIRE(type == 46); + REQUIRE(type == dns_rdatatype_rrsig); REQUIRE(source != NULL); REQUIRE(sig->common.rdtype == type); REQUIRE(sig->common.rdclass == rdclass); @@ -419,7 +419,7 @@ tostruct_rrsig(ARGS_TOSTRUCT) { dns_rdata_rrsig_t *sig = target; dns_name_t signer; - REQUIRE(rdata->type == 46); + REQUIRE(rdata->type == dns_rdatatype_rrsig); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -500,7 +500,7 @@ freestruct_rrsig(ARGS_FREESTRUCT) { dns_rdata_rrsig_t *sig = (dns_rdata_rrsig_t *) source; REQUIRE(source != NULL); - REQUIRE(sig->common.rdtype == 46); + REQUIRE(sig->common.rdtype == dns_rdatatype_rrsig); if (sig->mctx == NULL) return; @@ -513,7 +513,7 @@ freestruct_rrsig(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_rrsig(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 46); + REQUIRE(rdata->type == dns_rdatatype_rrsig); UNUSED(rdata); UNUSED(add); @@ -525,7 +525,7 @@ additionaldata_rrsig(ARGS_ADDLDATA) { static inline isc_result_t digest_rrsig(ARGS_DIGEST) { - REQUIRE(rdata->type == 46); + REQUIRE(rdata->type == dns_rdatatype_rrsig); UNUSED(rdata); UNUSED(digest); @@ -539,7 +539,7 @@ covers_rrsig(dns_rdata_t *rdata) { dns_rdatatype_t type; isc_region_t r; - REQUIRE(rdata->type == 46); + REQUIRE(rdata->type == dns_rdatatype_rrsig); dns_rdata_toregion(rdata, &r); type = uint16_fromregion(&r); @@ -550,7 +550,7 @@ covers_rrsig(dns_rdata_t *rdata) { static inline isc_boolean_t checkowner_rrsig(ARGS_CHECKOWNER) { - REQUIRE(type == 46); + REQUIRE(type == dns_rdatatype_rrsig); UNUSED(name); UNUSED(type); @@ -563,7 +563,7 @@ checkowner_rrsig(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_rrsig(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 46); + REQUIRE(rdata->type == dns_rdatatype_rrsig); UNUSED(rdata); UNUSED(owner); @@ -582,7 +582,7 @@ casecompare_rrsig(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 46); + REQUIRE(rdata1->type == dns_rdatatype_rrsig); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); diff --git a/lib/dns/rdata/generic/rt_21.c b/lib/dns/rdata/generic/rt_21.c index 86fe2480b799..a9a89b268f35 100644 --- a/lib/dns/rdata/generic/rt_21.c +++ b/lib/dns/rdata/generic/rt_21.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -33,7 +33,7 @@ fromtext_rt(ARGS_FROMTEXT) { isc_buffer_t buffer; isc_boolean_t ok; - REQUIRE(type == 21); + REQUIRE(type == dns_rdatatype_rt); UNUSED(type); UNUSED(rdclass); @@ -71,7 +71,7 @@ totext_rt(ARGS_TOTEXT) { char buf[sizeof("64000")]; unsigned short num; - REQUIRE(rdata->type == 21); + REQUIRE(rdata->type == dns_rdatatype_rt); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -94,7 +94,7 @@ fromwire_rt(ARGS_FROMWIRE) { isc_region_t sregion; isc_region_t tregion; - REQUIRE(type == 21); + REQUIRE(type == dns_rdatatype_rt); UNUSED(type); UNUSED(rdclass); @@ -122,7 +122,7 @@ towire_rt(ARGS_TOWIRE) { isc_region_t region; isc_region_t tr; - REQUIRE(rdata->type == 21); + REQUIRE(rdata->type == dns_rdatatype_rt); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -150,7 +150,7 @@ compare_rt(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 21); + REQUIRE(rdata1->type == dns_rdatatype_rt); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -178,7 +178,7 @@ fromstruct_rt(ARGS_FROMSTRUCT) { dns_rdata_rt_t *rt = source; isc_region_t region; - REQUIRE(type == 21); + REQUIRE(type == dns_rdatatype_rt); REQUIRE(source != NULL); REQUIRE(rt->common.rdtype == type); REQUIRE(rt->common.rdclass == rdclass); @@ -197,7 +197,7 @@ tostruct_rt(ARGS_TOSTRUCT) { dns_rdata_rt_t *rt = target; dns_name_t name; - REQUIRE(rdata->type == 21); + REQUIRE(rdata->type == dns_rdatatype_rt); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -222,7 +222,7 @@ freestruct_rt(ARGS_FREESTRUCT) { dns_rdata_rt_t *rt = source; REQUIRE(source != NULL); - REQUIRE(rt->common.rdtype == 21); + REQUIRE(rt->common.rdtype == dns_rdatatype_rt); if (rt->mctx == NULL) return; @@ -238,7 +238,7 @@ additionaldata_rt(ARGS_ADDLDATA) { isc_region_t region; isc_result_t result; - REQUIRE(rdata->type == 21); + REQUIRE(rdata->type == dns_rdatatype_rt); dns_name_init(&name, offsets); dns_rdata_toregion(rdata, ®ion); @@ -260,7 +260,7 @@ digest_rt(ARGS_DIGEST) { isc_result_t result; dns_name_t name; - REQUIRE(rdata->type == 21); + REQUIRE(rdata->type == dns_rdatatype_rt); dns_rdata_toregion(rdata, &r1); r2 = r1; @@ -277,7 +277,7 @@ digest_rt(ARGS_DIGEST) { static inline isc_boolean_t checkowner_rt(ARGS_CHECKOWNER) { - REQUIRE(type == 21); + REQUIRE(type == dns_rdatatype_rt); UNUSED(name); UNUSED(type); @@ -292,7 +292,7 @@ checknames_rt(ARGS_CHECKNAMES) { isc_region_t region; dns_name_t name; - REQUIRE(rdata->type == 21); + REQUIRE(rdata->type == dns_rdatatype_rt); UNUSED(owner); diff --git a/lib/dns/rdata/generic/sig_24.c b/lib/dns/rdata/generic/sig_24.c index 86aa38a696b6..af9c7daaa498 100644 --- a/lib/dns/rdata/generic/sig_24.c +++ b/lib/dns/rdata/generic/sig_24.c @@ -38,7 +38,7 @@ fromtext_sig(ARGS_FROMTEXT) { isc_buffer_t buffer; isc_uint32_t time_signed, time_expire; - REQUIRE(type == 24); + REQUIRE(type == dns_rdatatype_sig); UNUSED(type); UNUSED(rdclass); @@ -137,7 +137,7 @@ totext_sig(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 24); + REQUIRE(rdata->type == dns_rdatatype_sig); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); @@ -242,7 +242,7 @@ fromwire_sig(ARGS_FROMWIRE) { isc_region_t sr; dns_name_t name; - REQUIRE(type == 24); + REQUIRE(type == dns_rdatatype_sig); UNUSED(type); UNUSED(rdclass); @@ -285,7 +285,7 @@ towire_sig(ARGS_TOWIRE) { dns_name_t name; dns_offsets_t offsets; - REQUIRE(rdata->type == 24); + REQUIRE(rdata->type == dns_rdatatype_sig); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -326,7 +326,7 @@ compare_sig(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 24); + REQUIRE(rdata1->type == dns_rdatatype_sig); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -363,7 +363,7 @@ static inline isc_result_t fromstruct_sig(ARGS_FROMSTRUCT) { dns_rdata_sig_t *sig = source; - REQUIRE(type == 24); + REQUIRE(type == dns_rdatatype_sig); REQUIRE(source != NULL); REQUIRE(sig->common.rdtype == type); REQUIRE(sig->common.rdclass == rdclass); @@ -424,7 +424,7 @@ tostruct_sig(ARGS_TOSTRUCT) { dns_rdata_sig_t *sig = target; dns_name_t signer; - REQUIRE(rdata->type == 24); + REQUIRE(rdata->type == dns_rdatatype_sig); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -505,7 +505,7 @@ freestruct_sig(ARGS_FREESTRUCT) { dns_rdata_sig_t *sig = (dns_rdata_sig_t *) source; REQUIRE(source != NULL); - REQUIRE(sig->common.rdtype == 24); + REQUIRE(sig->common.rdtype == dns_rdatatype_sig); if (sig->mctx == NULL) return; @@ -518,7 +518,7 @@ freestruct_sig(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_sig(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 24); + REQUIRE(rdata->type == dns_rdatatype_sig); UNUSED(rdata); UNUSED(add); @@ -530,7 +530,7 @@ additionaldata_sig(ARGS_ADDLDATA) { static inline isc_result_t digest_sig(ARGS_DIGEST) { - REQUIRE(rdata->type == 24); + REQUIRE(rdata->type == dns_rdatatype_sig); UNUSED(rdata); UNUSED(digest); @@ -544,7 +544,7 @@ covers_sig(dns_rdata_t *rdata) { dns_rdatatype_t type; isc_region_t r; - REQUIRE(rdata->type == 24); + REQUIRE(rdata->type == dns_rdatatype_sig); dns_rdata_toregion(rdata, &r); type = uint16_fromregion(&r); @@ -555,7 +555,7 @@ covers_sig(dns_rdata_t *rdata) { static inline isc_boolean_t checkowner_sig(ARGS_CHECKOWNER) { - REQUIRE(type == 24); + REQUIRE(type == dns_rdatatype_sig); UNUSED(name); UNUSED(type); @@ -568,7 +568,7 @@ checkowner_sig(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_sig(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 24); + REQUIRE(rdata->type == dns_rdatatype_sig); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/soa_6.c b/lib/dns/rdata/generic/soa_6.c index fe67d76f1ee3..b407813811a4 100644 --- a/lib/dns/rdata/generic/soa_6.c +++ b/lib/dns/rdata/generic/soa_6.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2011, 2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -33,7 +33,7 @@ fromtext_soa(ARGS_FROMTEXT) { isc_uint32_t n; isc_boolean_t ok; - REQUIRE(type == 6); + REQUIRE(type == dns_rdatatype_soa); UNUSED(type); UNUSED(rdclass); @@ -95,16 +95,16 @@ totext_soa(ARGS_TOTEXT) { isc_boolean_t sub; int i; isc_boolean_t multiline; - isc_boolean_t comment; + isc_boolean_t comm; - REQUIRE(rdata->type == 6); + REQUIRE(rdata->type == dns_rdatatype_soa); REQUIRE(rdata->length != 0); multiline = ISC_TF((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0); if (multiline) - comment = ISC_TF((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0); + comm = ISC_TF((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0); else - comment = ISC_FALSE; + comm = ISC_FALSE; dns_name_init(&mname, NULL); @@ -136,9 +136,9 @@ totext_soa(ARGS_TOTEXT) { unsigned long num; num = uint32_fromregion(&dregion); isc_region_consume(&dregion, 4); - sprintf(buf, comment ? "%-10lu ; " : "%lu", num); + sprintf(buf, comm ? "%-10lu ; " : "%lu", num); RETERR(str_totext(buf, target)); - if (comment) { + if (comm) { RETERR(str_totext(soa_fieldnames[i], target)); /* Print times in week/day/hour/minute/second form */ if (i >= 1) { @@ -165,7 +165,7 @@ fromwire_soa(ARGS_FROMWIRE) { isc_region_t sregion; isc_region_t tregion; - REQUIRE(type == 6); + REQUIRE(type == dns_rdatatype_soa); UNUSED(type); UNUSED(rdclass); @@ -202,7 +202,7 @@ towire_soa(ARGS_TOWIRE) { dns_offsets_t moffsets; dns_offsets_t roffsets; - REQUIRE(rdata->type == 6); + REQUIRE(rdata->type == dns_rdatatype_soa); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); @@ -239,7 +239,7 @@ compare_soa(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 6); + REQUIRE(rdata1->type == dns_rdatatype_soa); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -280,7 +280,7 @@ fromstruct_soa(ARGS_FROMSTRUCT) { dns_rdata_soa_t *soa = source; isc_region_t region; - REQUIRE(type == 6); + REQUIRE(type == dns_rdatatype_soa); REQUIRE(source != NULL); REQUIRE(soa->common.rdtype == type); REQUIRE(soa->common.rdclass == rdclass); @@ -306,7 +306,7 @@ tostruct_soa(ARGS_TOSTRUCT) { dns_name_t name; isc_result_t result; - REQUIRE(rdata->type == 6); + REQUIRE(rdata->type == dns_rdatatype_soa); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -358,7 +358,7 @@ freestruct_soa(ARGS_FREESTRUCT) { dns_rdata_soa_t *soa = source; REQUIRE(source != NULL); - REQUIRE(soa->common.rdtype == 6); + REQUIRE(soa->common.rdtype == dns_rdatatype_soa); if (soa->mctx == NULL) return; @@ -374,7 +374,7 @@ additionaldata_soa(ARGS_ADDLDATA) { UNUSED(add); UNUSED(arg); - REQUIRE(rdata->type == 6); + REQUIRE(rdata->type == dns_rdatatype_soa); return (ISC_R_SUCCESS); } @@ -384,7 +384,7 @@ digest_soa(ARGS_DIGEST) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 6); + REQUIRE(rdata->type == dns_rdatatype_soa); dns_rdata_toregion(rdata, &r); @@ -404,7 +404,7 @@ digest_soa(ARGS_DIGEST) { static inline isc_boolean_t checkowner_soa(ARGS_CHECKOWNER) { - REQUIRE(type == 6); + REQUIRE(type == dns_rdatatype_soa); UNUSED(name); UNUSED(type); @@ -419,7 +419,7 @@ checknames_soa(ARGS_CHECKNAMES) { isc_region_t region; dns_name_t name; - REQUIRE(rdata->type == 6); + REQUIRE(rdata->type == dns_rdatatype_soa); UNUSED(owner); diff --git a/lib/dns/rdata/generic/spf_99.c b/lib/dns/rdata/generic/spf_99.c index 10e86b888f3a..8ad4f02b9af4 100644 --- a/lib/dns/rdata/generic/spf_99.c +++ b/lib/dns/rdata/generic/spf_99.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -29,7 +29,7 @@ fromtext_spf(ARGS_FROMTEXT) { isc_token_t token; int strings; - REQUIRE(type == 99); + REQUIRE(type == dns_rdatatype_spf); UNUSED(type); UNUSED(rdclass); @@ -59,7 +59,7 @@ totext_spf(ARGS_TOTEXT) { UNUSED(tctx); - REQUIRE(rdata->type == 99); + REQUIRE(rdata->type == dns_rdatatype_spf); dns_rdata_toregion(rdata, ®ion); @@ -76,7 +76,7 @@ static inline isc_result_t fromwire_spf(ARGS_FROMWIRE) { isc_result_t result; - REQUIRE(type == 99); + REQUIRE(type == dns_rdatatype_spf); UNUSED(type); UNUSED(dctx); @@ -95,7 +95,7 @@ static inline isc_result_t towire_spf(ARGS_TOWIRE) { isc_region_t region; - REQUIRE(rdata->type == 99); + REQUIRE(rdata->type == dns_rdatatype_spf); UNUSED(cctx); @@ -115,7 +115,7 @@ compare_spf(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 99); + REQUIRE(rdata1->type == dns_rdatatype_spf); dns_rdata_toregion(rdata1, &r1); dns_rdata_toregion(rdata2, &r2); @@ -128,7 +128,7 @@ fromstruct_spf(ARGS_FROMSTRUCT) { isc_region_t region; isc_uint8_t length; - REQUIRE(type == 99); + REQUIRE(type == dns_rdatatype_spf); REQUIRE(source != NULL); REQUIRE(txt->common.rdtype == type); REQUIRE(txt->common.rdclass == rdclass); @@ -155,7 +155,7 @@ tostruct_spf(ARGS_TOSTRUCT) { dns_rdata_spf_t *txt = target; isc_region_t r; - REQUIRE(rdata->type == 99); + REQUIRE(rdata->type == dns_rdatatype_spf); REQUIRE(target != NULL); txt->common.rdclass = rdata->rdclass; @@ -178,7 +178,7 @@ freestruct_spf(ARGS_FREESTRUCT) { dns_rdata_spf_t *txt = source; REQUIRE(source != NULL); - REQUIRE(txt->common.rdtype == 99); + REQUIRE(txt->common.rdtype == dns_rdatatype_spf); if (txt->mctx == NULL) return; @@ -190,7 +190,7 @@ freestruct_spf(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_spf(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 99); + REQUIRE(rdata->type == dns_rdatatype_spf); UNUSED(rdata); UNUSED(add); @@ -203,7 +203,7 @@ static inline isc_result_t digest_spf(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 99); + REQUIRE(rdata->type == dns_rdatatype_spf); dns_rdata_toregion(rdata, &r); @@ -213,7 +213,7 @@ digest_spf(ARGS_DIGEST) { static inline isc_boolean_t checkowner_spf(ARGS_CHECKOWNER) { - REQUIRE(type == 99); + REQUIRE(type == dns_rdatatype_spf); UNUSED(name); UNUSED(type); @@ -226,7 +226,7 @@ checkowner_spf(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_spf(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 99); + REQUIRE(rdata->type == dns_rdatatype_spf); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/sshfp_44.c b/lib/dns/rdata/generic/sshfp_44.c index d553cd40380d..083c0fca4b8b 100644 --- a/lib/dns/rdata/generic/sshfp_44.c +++ b/lib/dns/rdata/generic/sshfp_44.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2006, 2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2006, 2007, 2009, 2011-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -28,7 +28,7 @@ static inline isc_result_t fromtext_sshfp(ARGS_FROMTEXT) { isc_token_t token; - REQUIRE(type == 44); + REQUIRE(type == dns_rdatatype_sshfp); UNUSED(type); UNUSED(rdclass); @@ -66,7 +66,7 @@ totext_sshfp(ARGS_TOTEXT) { char buf[sizeof("64000 ")]; unsigned int n; - REQUIRE(rdata->type == 44); + REQUIRE(rdata->type == dns_rdatatype_sshfp); REQUIRE(rdata->length != 0); UNUSED(tctx); @@ -109,7 +109,7 @@ static inline isc_result_t fromwire_sshfp(ARGS_FROMWIRE) { isc_region_t sr; - REQUIRE(type == 44); + REQUIRE(type == dns_rdatatype_sshfp); UNUSED(type); UNUSED(rdclass); @@ -128,7 +128,7 @@ static inline isc_result_t towire_sshfp(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 44); + REQUIRE(rdata->type == dns_rdatatype_sshfp); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -144,7 +144,7 @@ compare_sshfp(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 44); + REQUIRE(rdata1->type == dns_rdatatype_sshfp); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -157,7 +157,7 @@ static inline isc_result_t fromstruct_sshfp(ARGS_FROMSTRUCT) { dns_rdata_sshfp_t *sshfp = source; - REQUIRE(type == 44); + REQUIRE(type == dns_rdatatype_sshfp); REQUIRE(source != NULL); REQUIRE(sshfp->common.rdtype == type); REQUIRE(sshfp->common.rdclass == rdclass); @@ -176,7 +176,7 @@ tostruct_sshfp(ARGS_TOSTRUCT) { dns_rdata_sshfp_t *sshfp = target; isc_region_t region; - REQUIRE(rdata->type == 44); + REQUIRE(rdata->type == dns_rdatatype_sshfp); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -205,7 +205,7 @@ freestruct_sshfp(ARGS_FREESTRUCT) { dns_rdata_sshfp_t *sshfp = source; REQUIRE(sshfp != NULL); - REQUIRE(sshfp->common.rdtype == 44); + REQUIRE(sshfp->common.rdtype == dns_rdatatype_sshfp); if (sshfp->mctx == NULL) return; @@ -217,7 +217,7 @@ freestruct_sshfp(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_sshfp(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 44); + REQUIRE(rdata->type == dns_rdatatype_sshfp); UNUSED(rdata); UNUSED(add); @@ -230,7 +230,7 @@ static inline isc_result_t digest_sshfp(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 44); + REQUIRE(rdata->type == dns_rdatatype_sshfp); dns_rdata_toregion(rdata, &r); @@ -240,7 +240,7 @@ digest_sshfp(ARGS_DIGEST) { static inline isc_boolean_t checkowner_sshfp(ARGS_CHECKOWNER) { - REQUIRE(type == 44); + REQUIRE(type == dns_rdatatype_sshfp); UNUSED(name); UNUSED(type); @@ -253,7 +253,7 @@ checkowner_sshfp(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_sshfp(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 44); + REQUIRE(rdata->type == dns_rdatatype_sshfp); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/tkey_249.c b/lib/dns/rdata/generic/tkey_249.c index 0c91fd221ed8..e87b88065c97 100644 --- a/lib/dns/rdata/generic/tkey_249.c +++ b/lib/dns/rdata/generic/tkey_249.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2011, 2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -37,7 +37,7 @@ fromtext_tkey(ARGS_FROMTEXT) { long i; char *e; - REQUIRE(type == 249); + REQUIRE(type == dns_rdatatype_tkey); UNUSED(type); UNUSED(rdclass); @@ -132,7 +132,7 @@ totext_tkey(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 249); + REQUIRE(rdata->type == dns_rdatatype_tkey); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); @@ -247,7 +247,7 @@ fromwire_tkey(ARGS_FROMWIRE) { unsigned long n; dns_name_t name; - REQUIRE(type == 249); + REQUIRE(type == dns_rdatatype_tkey); UNUSED(type); UNUSED(rdclass); @@ -303,7 +303,7 @@ towire_tkey(ARGS_TOWIRE) { dns_name_t name; dns_offsets_t offsets; - REQUIRE(rdata->type == 249); + REQUIRE(rdata->type == dns_rdatatype_tkey); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -329,7 +329,7 @@ compare_tkey(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 249); + REQUIRE(rdata1->type == dns_rdatatype_tkey); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -353,7 +353,7 @@ static inline isc_result_t fromstruct_tkey(ARGS_FROMSTRUCT) { dns_rdata_tkey_t *tkey = source; - REQUIRE(type == 249); + REQUIRE(type == dns_rdatatype_tkey); REQUIRE(source != NULL); REQUIRE(tkey->common.rdtype == type); REQUIRE(tkey->common.rdclass == rdclass); @@ -413,7 +413,7 @@ tostruct_tkey(ARGS_TOSTRUCT) { dns_name_t alg; isc_region_t sr; - REQUIRE(rdata->type == 249); + REQUIRE(rdata->type == dns_rdatatype_tkey); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -519,7 +519,7 @@ additionaldata_tkey(ARGS_ADDLDATA) { UNUSED(add); UNUSED(arg); - REQUIRE(rdata->type == 249); + REQUIRE(rdata->type == dns_rdatatype_tkey); return (ISC_R_SUCCESS); } @@ -530,7 +530,7 @@ digest_tkey(ARGS_DIGEST) { UNUSED(digest); UNUSED(arg); - REQUIRE(rdata->type == 249); + REQUIRE(rdata->type == dns_rdatatype_tkey); return (ISC_R_NOTIMPLEMENTED); } @@ -538,7 +538,7 @@ digest_tkey(ARGS_DIGEST) { static inline isc_boolean_t checkowner_tkey(ARGS_CHECKOWNER) { - REQUIRE(type == 249); + REQUIRE(type == dns_rdatatype_tkey); UNUSED(name); UNUSED(type); @@ -551,7 +551,7 @@ checkowner_tkey(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_tkey(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 249); + REQUIRE(rdata->type == dns_rdatatype_tkey); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/tlsa_52.c b/lib/dns/rdata/generic/tlsa_52.c index b46556d35d4e..d09a5289a805 100644 --- a/lib/dns/rdata/generic/tlsa_52.c +++ b/lib/dns/rdata/generic/tlsa_52.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2012, 2014, 2015 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 @@ -27,7 +27,7 @@ static inline isc_result_t fromtext_tlsa(ARGS_FROMTEXT) { isc_token_t token; - REQUIRE(type == 52); + REQUIRE(type == dns_rdatatype_tlsa); UNUSED(type); UNUSED(rdclass); @@ -74,7 +74,7 @@ totext_tlsa(ARGS_TOTEXT) { char buf[sizeof("64000 ")]; unsigned int n; - REQUIRE(rdata->type == 52); + REQUIRE(rdata->type == dns_rdatatype_tlsa); REQUIRE(rdata->length != 0); UNUSED(tctx); @@ -125,7 +125,7 @@ static inline isc_result_t fromwire_tlsa(ARGS_FROMWIRE) { isc_region_t sr; - REQUIRE(type == 52); + REQUIRE(type == dns_rdatatype_tlsa); UNUSED(type); UNUSED(rdclass); @@ -145,7 +145,7 @@ static inline isc_result_t towire_tlsa(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 52); + REQUIRE(rdata->type == dns_rdatatype_tlsa); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -161,7 +161,7 @@ compare_tlsa(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 52); + REQUIRE(rdata1->type == dns_rdatatype_tlsa); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -174,7 +174,7 @@ static inline isc_result_t fromstruct_tlsa(ARGS_FROMSTRUCT) { dns_rdata_tlsa_t *tlsa = source; - REQUIRE(type == 52); + REQUIRE(type == dns_rdatatype_tlsa); REQUIRE(source != NULL); REQUIRE(tlsa->common.rdtype == type); REQUIRE(tlsa->common.rdclass == rdclass); @@ -194,7 +194,7 @@ tostruct_tlsa(ARGS_TOSTRUCT) { dns_rdata_tlsa_t *tlsa = target; isc_region_t region; - REQUIRE(rdata->type == 52); + REQUIRE(rdata->type == dns_rdatatype_tlsa); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -225,7 +225,7 @@ freestruct_tlsa(ARGS_FREESTRUCT) { dns_rdata_tlsa_t *tlsa = source; REQUIRE(tlsa != NULL); - REQUIRE(tlsa->common.rdtype == 52); + REQUIRE(tlsa->common.rdtype == dns_rdatatype_tlsa); if (tlsa->mctx == NULL) return; @@ -237,7 +237,7 @@ freestruct_tlsa(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_tlsa(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 52); + REQUIRE(rdata->type == dns_rdatatype_tlsa); UNUSED(rdata); UNUSED(add); @@ -250,7 +250,7 @@ static inline isc_result_t digest_tlsa(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 52); + REQUIRE(rdata->type == dns_rdatatype_tlsa); dns_rdata_toregion(rdata, &r); @@ -260,7 +260,7 @@ digest_tlsa(ARGS_DIGEST) { static inline isc_boolean_t checkowner_tlsa(ARGS_CHECKOWNER) { - REQUIRE(type == 52); + REQUIRE(type == dns_rdatatype_tlsa); UNUSED(name); UNUSED(type); @@ -273,7 +273,7 @@ checkowner_tlsa(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_tlsa(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 52); + REQUIRE(rdata->type == dns_rdatatype_tlsa); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/txt_16.c b/lib/dns/rdata/generic/txt_16.c index 0cbe3ea6f15a..aa7c3a0ab138 100644 --- a/lib/dns/rdata/generic/txt_16.c +++ b/lib/dns/rdata/generic/txt_16.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007-2009, 2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007-2009, 2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -29,7 +29,7 @@ fromtext_txt(ARGS_FROMTEXT) { isc_token_t token; int strings; - REQUIRE(type == 16); + REQUIRE(type == dns_rdatatype_txt); UNUSED(type); UNUSED(rdclass); @@ -66,7 +66,7 @@ totext_txt(ARGS_TOTEXT) { UNUSED(tctx); - REQUIRE(rdata->type == 16); + REQUIRE(rdata->type == dns_rdatatype_txt); dns_rdata_toregion(rdata, ®ion); @@ -83,7 +83,7 @@ static inline isc_result_t fromwire_txt(ARGS_FROMWIRE) { isc_result_t result; - REQUIRE(type == 16); + REQUIRE(type == dns_rdatatype_txt); UNUSED(type); UNUSED(dctx); @@ -102,7 +102,7 @@ static inline isc_result_t towire_txt(ARGS_TOWIRE) { isc_region_t region; - REQUIRE(rdata->type == 16); + REQUIRE(rdata->type == dns_rdatatype_txt); UNUSED(cctx); @@ -122,7 +122,7 @@ compare_txt(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 16); + REQUIRE(rdata1->type == dns_rdatatype_txt); dns_rdata_toregion(rdata1, &r1); dns_rdata_toregion(rdata2, &r2); @@ -135,7 +135,7 @@ fromstruct_txt(ARGS_FROMSTRUCT) { isc_region_t region; isc_uint8_t length; - REQUIRE(type == 16); + REQUIRE(type == dns_rdatatype_txt); REQUIRE(source != NULL); REQUIRE(txt->common.rdtype == type); REQUIRE(txt->common.rdclass == rdclass); @@ -162,7 +162,7 @@ tostruct_txt(ARGS_TOSTRUCT) { dns_rdata_txt_t *txt = target; isc_region_t r; - REQUIRE(rdata->type == 16); + REQUIRE(rdata->type == dns_rdatatype_txt); REQUIRE(target != NULL); txt->common.rdclass = rdata->rdclass; @@ -185,7 +185,7 @@ freestruct_txt(ARGS_FREESTRUCT) { dns_rdata_txt_t *txt = source; REQUIRE(source != NULL); - REQUIRE(txt->common.rdtype == 16); + REQUIRE(txt->common.rdtype == dns_rdatatype_txt); if (txt->mctx == NULL) return; @@ -197,7 +197,7 @@ freestruct_txt(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_txt(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 16); + REQUIRE(rdata->type == dns_rdatatype_txt); UNUSED(rdata); UNUSED(add); @@ -210,7 +210,7 @@ static inline isc_result_t digest_txt(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 16); + REQUIRE(rdata->type == dns_rdatatype_txt); dns_rdata_toregion(rdata, &r); @@ -220,7 +220,7 @@ digest_txt(ARGS_DIGEST) { static inline isc_boolean_t checkowner_txt(ARGS_CHECKOWNER) { - REQUIRE(type == 16); + REQUIRE(type == dns_rdatatype_txt); UNUSED(name); UNUSED(type); @@ -233,7 +233,7 @@ checkowner_txt(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_txt(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 16); + REQUIRE(rdata->type == dns_rdatatype_txt); UNUSED(rdata); UNUSED(owner); @@ -251,7 +251,7 @@ isc_result_t dns_rdata_txt_first(dns_rdata_txt_t *txt) { REQUIRE(txt != NULL); - REQUIRE(txt->common.rdtype == 16); + REQUIRE(txt->common.rdtype == dns_rdatatype_txt); REQUIRE(txt->txt != NULL || txt->txt_len == 0); if (txt->txt_len == 0) @@ -267,7 +267,7 @@ dns_rdata_txt_next(dns_rdata_txt_t *txt) { isc_uint8_t length; REQUIRE(txt != NULL); - REQUIRE(txt->common.rdtype == 16); + REQUIRE(txt->common.rdtype == dns_rdatatype_txt); REQUIRE(txt->txt != NULL && txt->txt_len != 0); INSIST(txt->offset + 1 <= txt->txt_len); @@ -287,7 +287,7 @@ dns_rdata_txt_current(dns_rdata_txt_t *txt, dns_rdata_txt_string_t *string) { REQUIRE(txt != NULL); REQUIRE(string != NULL); - REQUIRE(txt->common.rdtype == 16); + REQUIRE(txt->common.rdtype == dns_rdatatype_txt); REQUIRE(txt->txt != NULL); REQUIRE(txt->offset < txt->txt_len); diff --git a/lib/dns/rdata/generic/unspec_103.c b/lib/dns/rdata/generic/unspec_103.c index c335c6751da7..016d7a64f9f2 100644 --- a/lib/dns/rdata/generic/unspec_103.c +++ b/lib/dns/rdata/generic/unspec_103.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -25,7 +25,7 @@ static inline isc_result_t fromtext_unspec(ARGS_FROMTEXT) { - REQUIRE(type == 103); + REQUIRE(type == dns_rdatatype_unspec); UNUSED(type); UNUSED(rdclass); @@ -39,7 +39,7 @@ fromtext_unspec(ARGS_FROMTEXT) { static inline isc_result_t totext_unspec(ARGS_TOTEXT) { - REQUIRE(rdata->type == 103); + REQUIRE(rdata->type == dns_rdatatype_unspec); UNUSED(tctx); @@ -50,7 +50,7 @@ static inline isc_result_t fromwire_unspec(ARGS_FROMWIRE) { isc_region_t sr; - REQUIRE(type == 103); + REQUIRE(type == dns_rdatatype_unspec); UNUSED(type); UNUSED(rdclass); @@ -65,7 +65,7 @@ fromwire_unspec(ARGS_FROMWIRE) { static inline isc_result_t towire_unspec(ARGS_TOWIRE) { - REQUIRE(rdata->type == 103); + REQUIRE(rdata->type == dns_rdatatype_unspec); UNUSED(cctx); @@ -79,7 +79,7 @@ compare_unspec(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 103); + REQUIRE(rdata1->type == dns_rdatatype_unspec); dns_rdata_toregion(rdata1, &r1); dns_rdata_toregion(rdata2, &r2); @@ -90,7 +90,7 @@ static inline isc_result_t fromstruct_unspec(ARGS_FROMSTRUCT) { dns_rdata_unspec_t *unspec = source; - REQUIRE(type == 103); + REQUIRE(type == dns_rdatatype_unspec); REQUIRE(source != NULL); REQUIRE(unspec->common.rdtype == type); REQUIRE(unspec->common.rdclass == rdclass); @@ -107,7 +107,7 @@ tostruct_unspec(ARGS_TOSTRUCT) { dns_rdata_unspec_t *unspec = target; isc_region_t r; - REQUIRE(rdata->type == 103); + REQUIRE(rdata->type == dns_rdatatype_unspec); REQUIRE(target != NULL); unspec->common.rdclass = rdata->rdclass; @@ -129,7 +129,7 @@ freestruct_unspec(ARGS_FREESTRUCT) { dns_rdata_unspec_t *unspec = source; REQUIRE(source != NULL); - REQUIRE(unspec->common.rdtype == 103); + REQUIRE(unspec->common.rdtype == dns_rdatatype_unspec); if (unspec->mctx == NULL) return; @@ -141,7 +141,7 @@ freestruct_unspec(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_unspec(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 103); + REQUIRE(rdata->type == dns_rdatatype_unspec); UNUSED(rdata); UNUSED(add); @@ -154,7 +154,7 @@ static inline isc_result_t digest_unspec(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 103); + REQUIRE(rdata->type == dns_rdatatype_unspec); dns_rdata_toregion(rdata, &r); @@ -164,7 +164,7 @@ digest_unspec(ARGS_DIGEST) { static inline isc_boolean_t checkowner_unspec(ARGS_CHECKOWNER) { - REQUIRE(type == 103); + REQUIRE(type == dns_rdatatype_unspec); UNUSED(name); UNUSED(type); @@ -177,7 +177,7 @@ checkowner_unspec(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_unspec(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 103); + REQUIRE(rdata->type == dns_rdatatype_unspec); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/uri_256.c b/lib/dns/rdata/generic/uri_256.c index 3ddd790847ac..7e4b41cb7092 100644 --- a/lib/dns/rdata/generic/uri_256.c +++ b/lib/dns/rdata/generic/uri_256.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2011, 2012, 2014, 2015 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 @@ -25,7 +25,7 @@ static inline isc_result_t fromtext_uri(ARGS_FROMTEXT) { isc_token_t token; - REQUIRE(type == 256); + REQUIRE(type == dns_rdatatype_uri); UNUSED(type); UNUSED(rdclass); @@ -70,7 +70,7 @@ totext_uri(ARGS_TOTEXT) { UNUSED(tctx); - REQUIRE(rdata->type == 256); + REQUIRE(rdata->type == dns_rdatatype_uri); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, ®ion); @@ -102,7 +102,7 @@ static inline isc_result_t fromwire_uri(ARGS_FROMWIRE) { isc_region_t region; - REQUIRE(type == 256); + REQUIRE(type == dns_rdatatype_uri); UNUSED(type); UNUSED(rdclass); @@ -127,7 +127,7 @@ static inline isc_result_t towire_uri(ARGS_TOWIRE) { isc_region_t region; - REQUIRE(rdata->type == 256); + REQUIRE(rdata->type == dns_rdatatype_uri); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -144,7 +144,7 @@ compare_uri(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 256); + REQUIRE(rdata1->type == dns_rdatatype_uri); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -176,7 +176,7 @@ static inline isc_result_t fromstruct_uri(ARGS_FROMSTRUCT) { dns_rdata_uri_t *uri = source; - REQUIRE(type == 256); + REQUIRE(type == dns_rdatatype_uri); REQUIRE(source != NULL); REQUIRE(uri->common.rdtype == type); REQUIRE(uri->common.rdclass == rdclass); @@ -206,7 +206,7 @@ tostruct_uri(ARGS_TOSTRUCT) { dns_rdata_uri_t *uri = target; isc_region_t sr; - REQUIRE(rdata->type == 256); + REQUIRE(rdata->type == dns_rdatatype_uri); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -249,7 +249,7 @@ freestruct_uri(ARGS_FREESTRUCT) { dns_rdata_uri_t *uri = (dns_rdata_uri_t *) source; REQUIRE(source != NULL); - REQUIRE(uri->common.rdtype == 256); + REQUIRE(uri->common.rdtype == dns_rdatatype_uri); if (uri->mctx == NULL) return; @@ -261,7 +261,7 @@ freestruct_uri(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_uri(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 256); + REQUIRE(rdata->type == dns_rdatatype_uri); UNUSED(rdata); UNUSED(add); @@ -274,7 +274,7 @@ static inline isc_result_t digest_uri(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 256); + REQUIRE(rdata->type == dns_rdatatype_uri); dns_rdata_toregion(rdata, &r); @@ -284,7 +284,7 @@ digest_uri(ARGS_DIGEST) { static inline isc_boolean_t checkowner_uri(ARGS_CHECKOWNER) { - REQUIRE(type == 256); + REQUIRE(type == dns_rdatatype_uri); UNUSED(name); UNUSED(type); @@ -297,7 +297,7 @@ checkowner_uri(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_uri(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 256); + REQUIRE(rdata->type == dns_rdatatype_uri); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/generic/x25_19.c b/lib/dns/rdata/generic/x25_19.c index c5fe2d18b08c..81543f63fa97 100644 --- a/lib/dns/rdata/generic/x25_19.c +++ b/lib/dns/rdata/generic/x25_19.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -31,7 +31,7 @@ fromtext_x25(ARGS_FROMTEXT) { isc_token_t token; unsigned int i; - REQUIRE(type == 19); + REQUIRE(type == dns_rdatatype_x25); UNUSED(type); UNUSED(rdclass); @@ -56,7 +56,7 @@ totext_x25(ARGS_TOTEXT) { UNUSED(tctx); - REQUIRE(rdata->type == 19); + REQUIRE(rdata->type == dns_rdatatype_x25); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, ®ion); @@ -67,7 +67,7 @@ static inline isc_result_t fromwire_x25(ARGS_FROMWIRE) { isc_region_t sr; - REQUIRE(type == 19); + REQUIRE(type == dns_rdatatype_x25); UNUSED(type); UNUSED(dctx); @@ -84,7 +84,7 @@ static inline isc_result_t towire_x25(ARGS_TOWIRE) { UNUSED(cctx); - REQUIRE(rdata->type == 19); + REQUIRE(rdata->type == dns_rdatatype_x25); REQUIRE(rdata->length != 0); return (mem_tobuffer(target, rdata->data, rdata->length)); @@ -97,7 +97,7 @@ compare_x25(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 19); + REQUIRE(rdata1->type == dns_rdatatype_x25); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -111,7 +111,7 @@ fromstruct_x25(ARGS_FROMSTRUCT) { dns_rdata_x25_t *x25 = source; isc_uint8_t i; - REQUIRE(type == 19); + REQUIRE(type == dns_rdatatype_x25); REQUIRE(source != NULL); REQUIRE(x25->common.rdtype == type); REQUIRE(x25->common.rdclass == rdclass); @@ -136,7 +136,7 @@ tostruct_x25(ARGS_TOSTRUCT) { dns_rdata_x25_t *x25 = target; isc_region_t r; - REQUIRE(rdata->type == 19); + REQUIRE(rdata->type == dns_rdatatype_x25); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -159,7 +159,7 @@ static inline void freestruct_x25(ARGS_FREESTRUCT) { dns_rdata_x25_t *x25 = source; REQUIRE(source != NULL); - REQUIRE(x25->common.rdtype == 19); + REQUIRE(x25->common.rdtype == dns_rdatatype_x25); if (x25->mctx == NULL) return; @@ -171,7 +171,7 @@ freestruct_x25(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_x25(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 19); + REQUIRE(rdata->type == dns_rdatatype_x25); UNUSED(rdata); UNUSED(add); @@ -184,7 +184,7 @@ static inline isc_result_t digest_x25(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 19); + REQUIRE(rdata->type == dns_rdatatype_x25); dns_rdata_toregion(rdata, &r); @@ -194,7 +194,7 @@ digest_x25(ARGS_DIGEST) { static inline isc_boolean_t checkowner_x25(ARGS_CHECKOWNER) { - REQUIRE(type == 19); + REQUIRE(type == dns_rdatatype_x25); UNUSED(name); UNUSED(type); @@ -207,7 +207,7 @@ checkowner_x25(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_x25(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 19); + REQUIRE(rdata->type == dns_rdatatype_x25); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/hs_4/a_1.c b/lib/dns/rdata/hs_4/a_1.c index 5f8a87504c0e..dc543a962c3c 100644 --- a/lib/dns/rdata/hs_4/a_1.c +++ b/lib/dns/rdata/hs_4/a_1.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -32,8 +32,8 @@ fromtext_hs_a(ARGS_FROMTEXT) { struct in_addr addr; isc_region_t region; - REQUIRE(type == 1); - REQUIRE(rdclass == 4); + REQUIRE(type == dns_rdatatype_a); + REQUIRE(rdclass == dns_rdataclass_hs); UNUSED(type); UNUSED(origin); @@ -57,8 +57,8 @@ static inline isc_result_t totext_hs_a(ARGS_TOTEXT) { isc_region_t region; - REQUIRE(rdata->type == 1); - REQUIRE(rdata->rdclass == 4); + REQUIRE(rdata->type == dns_rdatatype_a); + REQUIRE(rdata->rdclass == dns_rdataclass_hs); REQUIRE(rdata->length == 4); UNUSED(tctx); @@ -72,8 +72,8 @@ fromwire_hs_a(ARGS_FROMWIRE) { isc_region_t sregion; isc_region_t tregion; - REQUIRE(type == 1); - REQUIRE(rdclass == 4); + REQUIRE(type == dns_rdatatype_a); + REQUIRE(rdclass == dns_rdataclass_hs); UNUSED(type); UNUSED(dctx); @@ -97,8 +97,8 @@ static inline isc_result_t towire_hs_a(ARGS_TOWIRE) { isc_region_t region; - REQUIRE(rdata->type == 1); - REQUIRE(rdata->rdclass == 4); + REQUIRE(rdata->type == dns_rdatatype_a); + REQUIRE(rdata->rdclass == dns_rdataclass_hs); REQUIRE(rdata->length == 4); UNUSED(cctx); @@ -117,8 +117,8 @@ compare_hs_a(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 1); - REQUIRE(rdata1->rdclass == 4); + REQUIRE(rdata1->type == dns_rdatatype_a); + REQUIRE(rdata1->rdclass == dns_rdataclass_hs); REQUIRE(rdata1->length == 4); REQUIRE(rdata2->length == 4); @@ -134,8 +134,8 @@ fromstruct_hs_a(ARGS_FROMSTRUCT) { dns_rdata_hs_a_t *a = source; isc_uint32_t n; - REQUIRE(type == 1); - REQUIRE(rdclass == 4); + REQUIRE(type == dns_rdatatype_a); + REQUIRE(rdclass == dns_rdataclass_hs); REQUIRE(source != NULL); REQUIRE(a->common.rdtype == type); REQUIRE(a->common.rdclass == rdclass); @@ -154,8 +154,8 @@ tostruct_hs_a(ARGS_TOSTRUCT) { isc_uint32_t n; isc_region_t region; - REQUIRE(rdata->type == 1); - REQUIRE(rdata->rdclass == 4); + REQUIRE(rdata->type == dns_rdatatype_a); + REQUIRE(rdata->rdclass == dns_rdataclass_hs); REQUIRE(rdata->length == 4); UNUSED(mctx); @@ -180,8 +180,8 @@ freestruct_hs_a(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_hs_a(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 1); - REQUIRE(rdata->rdclass == 4); + REQUIRE(rdata->type == dns_rdatatype_a); + REQUIRE(rdata->rdclass == dns_rdataclass_hs); UNUSED(rdata); UNUSED(add); @@ -194,8 +194,8 @@ static inline isc_result_t digest_hs_a(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 1); - REQUIRE(rdata->rdclass == 4); + REQUIRE(rdata->type == dns_rdatatype_a); + REQUIRE(rdata->rdclass == dns_rdataclass_hs); dns_rdata_toregion(rdata, &r); @@ -205,8 +205,8 @@ digest_hs_a(ARGS_DIGEST) { static inline isc_boolean_t checkowner_hs_a(ARGS_CHECKOWNER) { - REQUIRE(type == 1); - REQUIRE(rdclass == 4); + REQUIRE(type == dns_rdatatype_a); + REQUIRE(rdclass == dns_rdataclass_hs); UNUSED(name); UNUSED(type); @@ -219,8 +219,8 @@ checkowner_hs_a(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_hs_a(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 1); - REQUIRE(rdata->rdclass == 4); + REQUIRE(rdata->type == dns_rdatatype_a); + REQUIRE(rdata->rdclass == dns_rdataclass_hs); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/in_1/a6_38.c b/lib/dns/rdata/in_1/a6_38.c index b6ef68878e2f..05a21ade89d2 100644 --- a/lib/dns/rdata/in_1/a6_38.c +++ b/lib/dns/rdata/in_1/a6_38.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -37,8 +37,8 @@ fromtext_in_a6(ARGS_FROMTEXT) { isc_buffer_t buffer; isc_boolean_t ok; - REQUIRE(type == 38); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_a6); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -107,8 +107,8 @@ totext_in_a6(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 38); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_a6); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); @@ -150,8 +150,8 @@ fromwire_in_a6(ARGS_FROMWIRE) { unsigned char mask; dns_name_t name; - REQUIRE(type == 38); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_a6); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -199,8 +199,8 @@ towire_in_a6(ARGS_TOWIRE) { unsigned char prefixlen; unsigned char octets; - REQUIRE(rdata->type == 38); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_a6); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -232,8 +232,8 @@ compare_in_a6(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 38); - REQUIRE(rdata1->rdclass == 1); + REQUIRE(rdata1->type == dns_rdatatype_a6); + REQUIRE(rdata1->rdclass == dns_rdataclass_in); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -283,8 +283,8 @@ fromstruct_in_a6(ARGS_FROMSTRUCT) { isc_uint8_t first; isc_uint8_t mask; - REQUIRE(type == 38); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_a6); + REQUIRE(rdclass == dns_rdataclass_in); REQUIRE(source != NULL); REQUIRE(a6->common.rdtype == type); REQUIRE(a6->common.rdclass == rdclass); @@ -326,8 +326,8 @@ tostruct_in_a6(ARGS_TOSTRUCT) { dns_name_t name; isc_region_t r; - REQUIRE(rdata->type == 38); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_a6); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -369,8 +369,8 @@ freestruct_in_a6(ARGS_FREESTRUCT) { dns_rdata_in_a6_t *a6 = source; REQUIRE(source != NULL); - REQUIRE(a6->common.rdclass == 1); - REQUIRE(a6->common.rdtype == 38); + REQUIRE(a6->common.rdclass == dns_rdataclass_in); + REQUIRE(a6->common.rdtype == dns_rdatatype_a6); if (a6->mctx == NULL) return; @@ -382,8 +382,8 @@ freestruct_in_a6(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_in_a6(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 38); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_a6); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(add); @@ -399,8 +399,8 @@ digest_in_a6(ARGS_DIGEST) { isc_result_t result; dns_name_t name; - REQUIRE(rdata->type == 38); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_a6); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_rdata_toregion(rdata, &r1); r2 = r1; @@ -423,8 +423,8 @@ digest_in_a6(ARGS_DIGEST) { static inline isc_boolean_t checkowner_in_a6(ARGS_CHECKOWNER) { - REQUIRE(type == 38); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_a6); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -438,8 +438,8 @@ checknames_in_a6(ARGS_CHECKNAMES) { dns_name_t name; unsigned int prefixlen; - REQUIRE(rdata->type == 38); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_a6); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(owner); diff --git a/lib/dns/rdata/in_1/a_1.c b/lib/dns/rdata/in_1/a_1.c index fcdcaae0545b..3a5f4cb3c5a1 100644 --- a/lib/dns/rdata/in_1/a_1.c +++ b/lib/dns/rdata/in_1/a_1.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -34,8 +34,8 @@ fromtext_in_a(ARGS_FROMTEXT) { struct in_addr addr; isc_region_t region; - REQUIRE(type == 1); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_a); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(origin); @@ -59,8 +59,8 @@ static inline isc_result_t totext_in_a(ARGS_TOTEXT) { isc_region_t region; - REQUIRE(rdata->type == 1); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_a); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length == 4); UNUSED(tctx); @@ -74,8 +74,8 @@ fromwire_in_a(ARGS_FROMWIRE) { isc_region_t sregion; isc_region_t tregion; - REQUIRE(type == 1); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_a); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(dctx); @@ -99,8 +99,8 @@ static inline isc_result_t towire_in_a(ARGS_TOWIRE) { isc_region_t region; - REQUIRE(rdata->type == 1); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_a); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length == 4); UNUSED(cctx); @@ -120,8 +120,8 @@ compare_in_a(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 1); - REQUIRE(rdata1->rdclass == 1); + REQUIRE(rdata1->type == dns_rdatatype_a); + REQUIRE(rdata1->rdclass == dns_rdataclass_in); REQUIRE(rdata1->length == 4); REQUIRE(rdata2->length == 4); @@ -135,8 +135,8 @@ fromstruct_in_a(ARGS_FROMSTRUCT) { dns_rdata_in_a_t *a = source; isc_uint32_t n; - REQUIRE(type == 1); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_a); + REQUIRE(rdclass == dns_rdataclass_in); REQUIRE(source != NULL); REQUIRE(a->common.rdtype == type); REQUIRE(a->common.rdclass == rdclass); @@ -156,8 +156,8 @@ tostruct_in_a(ARGS_TOSTRUCT) { isc_uint32_t n; isc_region_t region; - REQUIRE(rdata->type == 1); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_a); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length == 4); UNUSED(mctx); @@ -178,16 +178,16 @@ freestruct_in_a(ARGS_FREESTRUCT) { dns_rdata_in_a_t *a = source; REQUIRE(source != NULL); - REQUIRE(a->common.rdtype == 1); - REQUIRE(a->common.rdclass == 1); + REQUIRE(a->common.rdtype == dns_rdatatype_a); + REQUIRE(a->common.rdclass == dns_rdataclass_in); UNUSED(a); } static inline isc_result_t additionaldata_in_a(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 1); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_a); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(add); @@ -200,8 +200,8 @@ static inline isc_result_t digest_in_a(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 1); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_a); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_rdata_toregion(rdata, &r); @@ -210,21 +210,35 @@ digest_in_a(ARGS_DIGEST) { static inline isc_boolean_t checkowner_in_a(ARGS_CHECKOWNER) { + dns_name_t prefix, suffix; - REQUIRE(type == 1); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_a); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); + /* + * Handle Active Diretory gc._msdcs.<forest> name. + */ + if (dns_name_countlabels(name) > 2U) { + dns_name_init(&prefix, NULL); + dns_name_init(&suffix, NULL); + dns_name_split(name, dns_name_countlabels(name) - 2, + &prefix, &suffix); + if (dns_name_equal(&gc_msdcs, &prefix) && + dns_name_ishostname(&suffix, ISC_FALSE)) + return (ISC_TRUE); + } + return (dns_name_ishostname(name, wildcard)); } static inline isc_boolean_t checknames_in_a(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 1); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_a); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/in_1/aaaa_28.c b/lib/dns/rdata/in_1/aaaa_28.c index 3f88c4db0f2f..f0a40ebbd747 100644 --- a/lib/dns/rdata/in_1/aaaa_28.c +++ b/lib/dns/rdata/in_1/aaaa_28.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -34,8 +34,8 @@ fromtext_in_aaaa(ARGS_FROMTEXT) { unsigned char addr[16]; isc_region_t region; - REQUIRE(type == 28); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_aaaa); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(origin); @@ -62,8 +62,8 @@ totext_in_aaaa(ARGS_TOTEXT) { UNUSED(tctx); - REQUIRE(rdata->type == 28); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_aaaa); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length == 16); dns_rdata_toregion(rdata, ®ion); @@ -75,8 +75,8 @@ fromwire_in_aaaa(ARGS_FROMWIRE) { isc_region_t sregion; isc_region_t tregion; - REQUIRE(type == 28); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_aaaa); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(dctx); @@ -102,8 +102,8 @@ towire_in_aaaa(ARGS_TOWIRE) { UNUSED(cctx); - REQUIRE(rdata->type == 28); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_aaaa); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length == 16); isc_buffer_availableregion(target, ®ion); @@ -121,8 +121,8 @@ compare_in_aaaa(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 28); - REQUIRE(rdata1->rdclass == 1); + REQUIRE(rdata1->type == dns_rdatatype_aaaa); + REQUIRE(rdata1->rdclass == dns_rdataclass_in); REQUIRE(rdata1->length == 16); REQUIRE(rdata2->length == 16); @@ -135,8 +135,8 @@ static inline isc_result_t fromstruct_in_aaaa(ARGS_FROMSTRUCT) { dns_rdata_in_aaaa_t *aaaa = source; - REQUIRE(type == 28); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_aaaa); + REQUIRE(rdclass == dns_rdataclass_in); REQUIRE(source != NULL); REQUIRE(aaaa->common.rdtype == type); REQUIRE(aaaa->common.rdclass == rdclass); @@ -152,8 +152,8 @@ tostruct_in_aaaa(ARGS_TOSTRUCT) { dns_rdata_in_aaaa_t *aaaa = target; isc_region_t r; - REQUIRE(rdata->type == 28); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_aaaa); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(target != NULL); REQUIRE(rdata->length == 16); @@ -175,16 +175,16 @@ freestruct_in_aaaa(ARGS_FREESTRUCT) { dns_rdata_in_aaaa_t *aaaa = source; REQUIRE(source != NULL); - REQUIRE(aaaa->common.rdclass == 1); - REQUIRE(aaaa->common.rdtype == 28); + REQUIRE(aaaa->common.rdclass == dns_rdataclass_in); + REQUIRE(aaaa->common.rdtype == dns_rdatatype_aaaa); UNUSED(aaaa); } static inline isc_result_t additionaldata_in_aaaa(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 28); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_aaaa); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(add); @@ -197,8 +197,8 @@ static inline isc_result_t digest_in_aaaa(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 28); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_aaaa); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_rdata_toregion(rdata, &r); @@ -207,21 +207,35 @@ digest_in_aaaa(ARGS_DIGEST) { static inline isc_boolean_t checkowner_in_aaaa(ARGS_CHECKOWNER) { + dns_name_t prefix, suffix; - REQUIRE(type == 28); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_aaaa); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); + /* + * Handle Active Diretory gc._msdcs.<forest> name. + */ + if (dns_name_countlabels(name) > 2U) { + dns_name_init(&prefix, NULL); + dns_name_init(&suffix, NULL); + dns_name_split(name, dns_name_countlabels(name) - 2, + &prefix, &suffix); + if (dns_name_equal(&gc_msdcs, &prefix) && + dns_name_ishostname(&suffix, ISC_FALSE)) + return (ISC_TRUE); + } + return (dns_name_ishostname(name, wildcard)); } static inline isc_boolean_t checknames_in_aaaa(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 28); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_aaaa); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/in_1/apl_42.c b/lib/dns/rdata/in_1/apl_42.c index 94133bae6296..bedd38ebaab8 100644 --- a/lib/dns/rdata/in_1/apl_42.c +++ b/lib/dns/rdata/in_1/apl_42.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007-2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007-2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -35,8 +35,8 @@ fromtext_in_apl(ARGS_FROMTEXT) { char *cp, *ap, *slash; int n; - REQUIRE(type == 42); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_apl); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -120,8 +120,8 @@ totext_in_apl(ARGS_TOTEXT) { const char *sep = ""; int n; - REQUIRE(rdata->type == 42); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_apl); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(tctx); @@ -180,8 +180,8 @@ fromwire_in_apl(ARGS_FROMWIRE) { isc_uint8_t prefix; isc_uint8_t len; - REQUIRE(type == 42); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_apl); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(dctx); @@ -227,8 +227,8 @@ static inline isc_result_t towire_in_apl(ARGS_TOWIRE) { UNUSED(cctx); - REQUIRE(rdata->type == 42); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_apl); + REQUIRE(rdata->rdclass == dns_rdataclass_in); return (mem_tobuffer(target, rdata->data, rdata->length)); } @@ -240,8 +240,8 @@ compare_in_apl(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 42); - REQUIRE(rdata1->rdclass == 1); + REQUIRE(rdata1->type == dns_rdatatype_apl); + REQUIRE(rdata1->rdclass == dns_rdataclass_in); dns_rdata_toregion(rdata1, &r1); dns_rdata_toregion(rdata2, &r2); @@ -253,8 +253,8 @@ fromstruct_in_apl(ARGS_FROMSTRUCT) { dns_rdata_in_apl_t *apl = source; isc_buffer_t b; - REQUIRE(type == 42); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_apl); + REQUIRE(rdclass == dns_rdataclass_in); REQUIRE(source != NULL); REQUIRE(apl->common.rdtype == type); REQUIRE(apl->common.rdclass == rdclass); @@ -271,8 +271,8 @@ tostruct_in_apl(ARGS_TOSTRUCT) { dns_rdata_in_apl_t *apl = target; isc_region_t r; - REQUIRE(rdata->type == 42); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_apl); + REQUIRE(rdata->rdclass == dns_rdataclass_in); apl->common.rdclass = rdata->rdclass; apl->common.rdtype = rdata->type; @@ -294,8 +294,8 @@ freestruct_in_apl(ARGS_FREESTRUCT) { dns_rdata_in_apl_t *apl = source; REQUIRE(source != NULL); - REQUIRE(apl->common.rdtype == 42); - REQUIRE(apl->common.rdclass == 1); + REQUIRE(apl->common.rdtype == dns_rdatatype_apl); + REQUIRE(apl->common.rdclass == dns_rdataclass_in); if (apl->mctx == NULL) return; @@ -309,8 +309,8 @@ dns_rdata_apl_first(dns_rdata_in_apl_t *apl) { isc_uint32_t length; REQUIRE(apl != NULL); - REQUIRE(apl->common.rdtype == 42); - REQUIRE(apl->common.rdclass == 1); + REQUIRE(apl->common.rdtype == dns_rdatatype_apl); + REQUIRE(apl->common.rdclass == dns_rdataclass_in); REQUIRE(apl->apl != NULL || apl->apl_len == 0); /* @@ -335,8 +335,8 @@ dns_rdata_apl_next(dns_rdata_in_apl_t *apl) { isc_uint32_t length; REQUIRE(apl != NULL); - REQUIRE(apl->common.rdtype == 42); - REQUIRE(apl->common.rdclass == 1); + REQUIRE(apl->common.rdtype == dns_rdatatype_apl); + REQUIRE(apl->common.rdclass == dns_rdataclass_in); REQUIRE(apl->apl != NULL || apl->apl_len == 0); /* @@ -367,8 +367,8 @@ dns_rdata_apl_current(dns_rdata_in_apl_t *apl, dns_rdata_apl_ent_t *ent) { isc_uint32_t length; REQUIRE(apl != NULL); - REQUIRE(apl->common.rdtype == 42); - REQUIRE(apl->common.rdclass == 1); + REQUIRE(apl->common.rdtype == dns_rdatatype_apl); + REQUIRE(apl->common.rdclass == dns_rdataclass_in); REQUIRE(ent != NULL); REQUIRE(apl->apl != NULL || apl->apl_len == 0); REQUIRE(apl->offset <= apl->apl_len); @@ -401,8 +401,8 @@ dns_rdata_apl_current(dns_rdata_in_apl_t *apl, dns_rdata_apl_ent_t *ent) { static inline isc_result_t additionaldata_in_apl(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 42); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_apl); + REQUIRE(rdata->rdclass == dns_rdataclass_in); (void)add; (void)arg; @@ -414,8 +414,8 @@ static inline isc_result_t digest_in_apl(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 42); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_apl); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_rdata_toregion(rdata, &r); @@ -425,8 +425,8 @@ digest_in_apl(ARGS_DIGEST) { static inline isc_boolean_t checkowner_in_apl(ARGS_CHECKOWNER) { - REQUIRE(type == 42); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_apl); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(name); UNUSED(type); @@ -440,8 +440,8 @@ checkowner_in_apl(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_in_apl(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 42); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_apl); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/in_1/dhcid_49.c b/lib/dns/rdata/in_1/dhcid_49.c index 7575da0d1930..261e41ea8acb 100644 --- a/lib/dns/rdata/in_1/dhcid_49.c +++ b/lib/dns/rdata/in_1/dhcid_49.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2006, 2007, 2009, 2011, 2012, 2015 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 @@ -26,8 +26,8 @@ static inline isc_result_t fromtext_in_dhcid(ARGS_FROMTEXT) { - REQUIRE(type == 49); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_dhcid); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -44,8 +44,8 @@ totext_in_dhcid(ARGS_TOTEXT) { char buf[sizeof(" ; 64000 255 64000")]; size_t n; - REQUIRE(rdata->type == 49); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_dhcid); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); @@ -74,8 +74,8 @@ static inline isc_result_t fromwire_in_dhcid(ARGS_FROMWIRE) { isc_region_t sr; - REQUIRE(type == 49); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_dhcid); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -94,8 +94,8 @@ static inline isc_result_t towire_in_dhcid(ARGS_TOWIRE) { isc_region_t sr; - REQUIRE(rdata->type == 49); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_dhcid); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -111,8 +111,8 @@ compare_in_dhcid(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 49); - REQUIRE(rdata1->rdclass == 1); + REQUIRE(rdata1->type == dns_rdatatype_dhcid); + REQUIRE(rdata1->rdclass == dns_rdataclass_in); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -125,8 +125,8 @@ static inline isc_result_t fromstruct_in_dhcid(ARGS_FROMSTRUCT) { dns_rdata_in_dhcid_t *dhcid = source; - REQUIRE(type == 49); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_dhcid); + REQUIRE(rdclass == dns_rdataclass_in); REQUIRE(source != NULL); REQUIRE(dhcid->common.rdtype == type); REQUIRE(dhcid->common.rdclass == rdclass); @@ -143,8 +143,8 @@ tostruct_in_dhcid(ARGS_TOSTRUCT) { dns_rdata_in_dhcid_t *dhcid = target; isc_region_t region; - REQUIRE(rdata->type == 49); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_dhcid); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -167,8 +167,8 @@ freestruct_in_dhcid(ARGS_FREESTRUCT) { dns_rdata_in_dhcid_t *dhcid = source; REQUIRE(dhcid != NULL); - REQUIRE(dhcid->common.rdtype == 49); - REQUIRE(dhcid->common.rdclass == 1); + REQUIRE(dhcid->common.rdtype == dns_rdatatype_dhcid); + REQUIRE(dhcid->common.rdclass == dns_rdataclass_in); if (dhcid->mctx == NULL) return; @@ -180,8 +180,8 @@ freestruct_in_dhcid(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_in_dhcid(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 49); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_dhcid); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(add); @@ -194,8 +194,8 @@ static inline isc_result_t digest_in_dhcid(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 49); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_dhcid); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_rdata_toregion(rdata, &r); @@ -205,8 +205,8 @@ digest_in_dhcid(ARGS_DIGEST) { static inline isc_boolean_t checkowner_in_dhcid(ARGS_CHECKOWNER) { - REQUIRE(type == 49); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_dhcid); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(name); UNUSED(type); @@ -219,8 +219,8 @@ checkowner_in_dhcid(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_in_dhcid(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 49); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_dhcid); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/in_1/kx_36.c b/lib/dns/rdata/in_1/kx_36.c index fbe3b71deaa0..8b911eb07c2a 100644 --- a/lib/dns/rdata/in_1/kx_36.c +++ b/lib/dns/rdata/in_1/kx_36.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -32,8 +32,8 @@ fromtext_in_kx(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 36); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_kx); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -63,8 +63,8 @@ totext_in_kx(ARGS_TOTEXT) { char buf[sizeof("64000")]; unsigned short num; - REQUIRE(rdata->type == 36); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_kx); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -88,8 +88,8 @@ fromwire_in_kx(ARGS_FROMWIRE) { dns_name_t name; isc_region_t sregion; - REQUIRE(type == 36); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_kx); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -112,8 +112,8 @@ towire_in_kx(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 36); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_kx); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -137,8 +137,8 @@ compare_in_kx(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 36); - REQUIRE(rdata1->rdclass == 1); + REQUIRE(rdata1->type == dns_rdatatype_kx); + REQUIRE(rdata1->rdclass == dns_rdataclass_in); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -166,8 +166,8 @@ fromstruct_in_kx(ARGS_FROMSTRUCT) { dns_rdata_in_kx_t *kx = source; isc_region_t region; - REQUIRE(type == 36); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_kx); + REQUIRE(rdclass == dns_rdataclass_in); REQUIRE(source != NULL); REQUIRE(kx->common.rdtype == type); REQUIRE(kx->common.rdclass == rdclass); @@ -186,8 +186,8 @@ tostruct_in_kx(ARGS_TOSTRUCT) { dns_rdata_in_kx_t *kx = target; dns_name_t name; - REQUIRE(rdata->type == 36); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_kx); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -213,8 +213,8 @@ freestruct_in_kx(ARGS_FREESTRUCT) { dns_rdata_in_kx_t *kx = source; REQUIRE(source != NULL); - REQUIRE(kx->common.rdclass == 1); - REQUIRE(kx->common.rdtype == 36); + REQUIRE(kx->common.rdclass == dns_rdataclass_in); + REQUIRE(kx->common.rdtype == dns_rdatatype_kx); if (kx->mctx == NULL) return; @@ -229,8 +229,8 @@ additionaldata_in_kx(ARGS_ADDLDATA) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 36); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_kx); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_name_init(&name, offsets); dns_rdata_toregion(rdata, ®ion); @@ -245,8 +245,8 @@ digest_in_kx(ARGS_DIGEST) { isc_region_t r1, r2; dns_name_t name; - REQUIRE(rdata->type == 36); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_kx); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_rdata_toregion(rdata, &r1); r2 = r1; @@ -261,8 +261,8 @@ digest_in_kx(ARGS_DIGEST) { static inline isc_boolean_t checkowner_in_kx(ARGS_CHECKOWNER) { - REQUIRE(type == 36); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_kx); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(name); UNUSED(type); @@ -275,8 +275,8 @@ checkowner_in_kx(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_in_kx(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 36); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_kx); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/in_1/nsap-ptr_23.c b/lib/dns/rdata/in_1/nsap-ptr_23.c index 78df645a2a1f..d8b43f2edca4 100644 --- a/lib/dns/rdata/in_1/nsap-ptr_23.c +++ b/lib/dns/rdata/in_1/nsap-ptr_23.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -32,8 +32,8 @@ fromtext_in_nsap_ptr(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 23); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_nsap_ptr); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -56,8 +56,8 @@ totext_in_nsap_ptr(ARGS_TOTEXT) { dns_name_t prefix; isc_boolean_t sub; - REQUIRE(rdata->type == 23); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_nsap_ptr); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -75,8 +75,8 @@ static inline isc_result_t fromwire_in_nsap_ptr(ARGS_FROMWIRE) { dns_name_t name; - REQUIRE(type == 23); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_nsap_ptr); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -93,8 +93,8 @@ towire_in_nsap_ptr(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 23); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_nsap_ptr); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -114,8 +114,8 @@ compare_in_nsap_ptr(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 23); - REQUIRE(rdata1->rdclass == 1); + REQUIRE(rdata1->type == dns_rdatatype_nsap_ptr); + REQUIRE(rdata1->rdclass == dns_rdataclass_in); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -136,8 +136,8 @@ fromstruct_in_nsap_ptr(ARGS_FROMSTRUCT) { dns_rdata_in_nsap_ptr_t *nsap_ptr = source; isc_region_t region; - REQUIRE(type == 23); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_nsap_ptr); + REQUIRE(rdclass == dns_rdataclass_in); REQUIRE(source != NULL); REQUIRE(nsap_ptr->common.rdtype == type); REQUIRE(nsap_ptr->common.rdclass == rdclass); @@ -155,8 +155,8 @@ tostruct_in_nsap_ptr(ARGS_TOSTRUCT) { dns_rdata_in_nsap_ptr_t *nsap_ptr = target; dns_name_t name; - REQUIRE(rdata->type == 23); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_nsap_ptr); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -178,8 +178,8 @@ freestruct_in_nsap_ptr(ARGS_FREESTRUCT) { dns_rdata_in_nsap_ptr_t *nsap_ptr = source; REQUIRE(source != NULL); - REQUIRE(nsap_ptr->common.rdclass == 1); - REQUIRE(nsap_ptr->common.rdtype == 23); + REQUIRE(nsap_ptr->common.rdclass == dns_rdataclass_in); + REQUIRE(nsap_ptr->common.rdtype == dns_rdatatype_nsap_ptr); if (nsap_ptr->mctx == NULL) return; @@ -190,8 +190,8 @@ freestruct_in_nsap_ptr(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_in_nsap_ptr(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 23); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_nsap_ptr); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(add); @@ -205,8 +205,8 @@ digest_in_nsap_ptr(ARGS_DIGEST) { isc_region_t r; dns_name_t name; - REQUIRE(rdata->type == 23); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_nsap_ptr); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_rdata_toregion(rdata, &r); dns_name_init(&name, NULL); @@ -218,8 +218,8 @@ digest_in_nsap_ptr(ARGS_DIGEST) { static inline isc_boolean_t checkowner_in_nsap_ptr(ARGS_CHECKOWNER) { - REQUIRE(type == 23); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_nsap_ptr); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(name); UNUSED(type); @@ -232,8 +232,8 @@ checkowner_in_nsap_ptr(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_in_nsap_ptr(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 23); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_nsap_ptr); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/in_1/nsap_22.c b/lib/dns/rdata/in_1/nsap_22.c index 66129fe0fdfa..d0e460e85fc8 100644 --- a/lib/dns/rdata/in_1/nsap_22.c +++ b/lib/dns/rdata/in_1/nsap_22.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -31,11 +31,12 @@ fromtext_in_nsap(ARGS_FROMTEXT) { isc_token_t token; isc_textregion_t *sr; int n; - int digits; + isc_boolean_t valid = ISC_FALSE; + int digits = 0; unsigned char c = 0; - REQUIRE(type == 22); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_nsap); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(origin); @@ -52,7 +53,6 @@ fromtext_in_nsap(ARGS_FROMTEXT) { if (sr->base[0] != '0' || (sr->base[1] != 'x' && sr->base[1] != 'X')) RETTOK(DNS_R_SYNTAX); isc_textregion_consume(sr, 2); - digits = 0; while (sr->length > 0) { if (sr->base[0] == '.') { isc_textregion_consume(sr, 1); @@ -64,11 +64,13 @@ fromtext_in_nsap(ARGS_FROMTEXT) { c += n; if (++digits == 2) { RETERR(mem_tobuffer(target, &c, 1)); + valid = ISC_TRUE; digits = 0; + c = 0; } isc_textregion_consume(sr, 1); } - if (digits) + if (digits != 0 || !valid) RETTOK(ISC_R_UNEXPECTEDEND); return (ISC_R_SUCCESS); } @@ -78,8 +80,8 @@ totext_in_nsap(ARGS_TOTEXT) { isc_region_t region; char buf[sizeof("xx")]; - REQUIRE(rdata->type == 22); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_nsap); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); UNUSED(tctx); @@ -98,8 +100,8 @@ static inline isc_result_t fromwire_in_nsap(ARGS_FROMWIRE) { isc_region_t region; - REQUIRE(type == 22); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_nsap); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(dctx); @@ -117,8 +119,8 @@ fromwire_in_nsap(ARGS_FROMWIRE) { static inline isc_result_t towire_in_nsap(ARGS_TOWIRE) { - REQUIRE(rdata->type == 22); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_nsap); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -133,8 +135,8 @@ compare_in_nsap(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 22); - REQUIRE(rdata1->rdclass == 1); + REQUIRE(rdata1->type == dns_rdatatype_nsap); + REQUIRE(rdata1->rdclass == dns_rdataclass_in); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -147,8 +149,8 @@ static inline isc_result_t fromstruct_in_nsap(ARGS_FROMSTRUCT) { dns_rdata_in_nsap_t *nsap = source; - REQUIRE(type == 22); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_nsap); + REQUIRE(rdclass == dns_rdataclass_in); REQUIRE(source != NULL); REQUIRE(nsap->common.rdtype == type); REQUIRE(nsap->common.rdclass == rdclass); @@ -165,8 +167,8 @@ tostruct_in_nsap(ARGS_TOSTRUCT) { dns_rdata_in_nsap_t *nsap = target; isc_region_t r; - REQUIRE(rdata->type == 22); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_nsap); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -189,8 +191,8 @@ freestruct_in_nsap(ARGS_FREESTRUCT) { dns_rdata_in_nsap_t *nsap = source; REQUIRE(source != NULL); - REQUIRE(nsap->common.rdclass == 1); - REQUIRE(nsap->common.rdtype == 22); + REQUIRE(nsap->common.rdclass == dns_rdataclass_in); + REQUIRE(nsap->common.rdtype == dns_rdatatype_nsap); if (nsap->mctx == NULL) return; @@ -202,8 +204,8 @@ freestruct_in_nsap(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_in_nsap(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 22); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_nsap); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(add); @@ -216,8 +218,8 @@ static inline isc_result_t digest_in_nsap(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 22); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_nsap); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_rdata_toregion(rdata, &r); @@ -227,8 +229,8 @@ digest_in_nsap(ARGS_DIGEST) { static inline isc_boolean_t checkowner_in_nsap(ARGS_CHECKOWNER) { - REQUIRE(type == 22); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_nsap); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(name); UNUSED(type); @@ -241,8 +243,8 @@ checkowner_in_nsap(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_in_nsap(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 22); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_nsap); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/in_1/px_26.c b/lib/dns/rdata/in_1/px_26.c index a4111ad5bb76..4cf0ae418ac0 100644 --- a/lib/dns/rdata/in_1/px_26.c +++ b/lib/dns/rdata/in_1/px_26.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -32,8 +32,8 @@ fromtext_in_px(ARGS_FROMTEXT) { dns_name_t name; isc_buffer_t buffer; - REQUIRE(type == 26); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_px); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -79,8 +79,8 @@ totext_in_px(ARGS_TOTEXT) { char buf[sizeof("64000")]; unsigned short num; - REQUIRE(rdata->type == 26); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_px); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -118,8 +118,8 @@ fromwire_in_px(ARGS_FROMWIRE) { dns_name_t name; isc_region_t sregion; - REQUIRE(type == 26); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_px); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -154,8 +154,8 @@ towire_in_px(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 26); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_px); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -192,8 +192,8 @@ compare_in_px(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 26); - REQUIRE(rdata1->rdclass == 1); + REQUIRE(rdata1->type == dns_rdatatype_px); + REQUIRE(rdata1->rdclass == dns_rdataclass_in); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -231,8 +231,8 @@ fromstruct_in_px(ARGS_FROMSTRUCT) { dns_rdata_in_px_t *px = source; isc_region_t region; - REQUIRE(type == 26); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_px); + REQUIRE(rdclass == dns_rdataclass_in); REQUIRE(source != NULL); REQUIRE(px->common.rdtype == type); REQUIRE(px->common.rdclass == rdclass); @@ -254,8 +254,8 @@ tostruct_in_px(ARGS_TOSTRUCT) { isc_region_t region; isc_result_t result; - REQUIRE(rdata->type == 26); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_px); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -293,8 +293,8 @@ freestruct_in_px(ARGS_FREESTRUCT) { dns_rdata_in_px_t *px = source; REQUIRE(source != NULL); - REQUIRE(px->common.rdclass == 1); - REQUIRE(px->common.rdtype == 26); + REQUIRE(px->common.rdclass == dns_rdataclass_in); + REQUIRE(px->common.rdtype == dns_rdatatype_px); if (px->mctx == NULL) return; @@ -306,8 +306,8 @@ freestruct_in_px(ARGS_FREESTRUCT) { static inline isc_result_t additionaldata_in_px(ARGS_ADDLDATA) { - REQUIRE(rdata->type == 26); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_px); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(add); @@ -322,8 +322,8 @@ digest_in_px(ARGS_DIGEST) { dns_name_t name; isc_result_t result; - REQUIRE(rdata->type == 26); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_px); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_rdata_toregion(rdata, &r1); r2 = r1; @@ -347,8 +347,8 @@ digest_in_px(ARGS_DIGEST) { static inline isc_boolean_t checkowner_in_px(ARGS_CHECKOWNER) { - REQUIRE(type == 26); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_px); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(name); UNUSED(type); @@ -361,8 +361,8 @@ checkowner_in_px(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_in_px(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 26); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_px); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/rdata/in_1/srv_33.c b/lib/dns/rdata/in_1/srv_33.c index ea4f3edbcdef..b97d410272f6 100644 --- a/lib/dns/rdata/in_1/srv_33.c +++ b/lib/dns/rdata/in_1/srv_33.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -33,8 +33,8 @@ fromtext_in_srv(ARGS_FROMTEXT) { isc_buffer_t buffer; isc_boolean_t ok; - REQUIRE(type == 33); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_srv); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -95,8 +95,8 @@ totext_in_srv(ARGS_TOTEXT) { char buf[sizeof("64000")]; unsigned short num; - REQUIRE(rdata->type == 33); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_srv); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); dns_name_init(&name, NULL); @@ -143,8 +143,8 @@ fromwire_in_srv(ARGS_FROMWIRE) { dns_name_t name; isc_region_t sr; - REQUIRE(type == 33); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_srv); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -174,7 +174,7 @@ towire_in_srv(ARGS_TOWIRE) { dns_offsets_t offsets; isc_region_t sr; - REQUIRE(rdata->type == 33); + REQUIRE(rdata->type == dns_rdatatype_srv); REQUIRE(rdata->length != 0); dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); @@ -203,8 +203,8 @@ compare_in_srv(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 33); - REQUIRE(rdata1->rdclass == 1); + REQUIRE(rdata1->type == dns_rdatatype_srv); + REQUIRE(rdata1->rdclass == dns_rdataclass_in); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -238,8 +238,8 @@ fromstruct_in_srv(ARGS_FROMSTRUCT) { dns_rdata_in_srv_t *srv = source; isc_region_t region; - REQUIRE(type == 33); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_srv); + REQUIRE(rdclass == dns_rdataclass_in); REQUIRE(source != NULL); REQUIRE(srv->common.rdtype == type); REQUIRE(srv->common.rdclass == rdclass); @@ -260,8 +260,8 @@ tostruct_in_srv(ARGS_TOSTRUCT) { dns_rdata_in_srv_t *srv = target; dns_name_t name; - REQUIRE(rdata->rdclass == 1); - REQUIRE(rdata->type == 33); + REQUIRE(rdata->rdclass == dns_rdataclass_in); + REQUIRE(rdata->type == dns_rdatatype_srv); REQUIRE(target != NULL); REQUIRE(rdata->length != 0); @@ -289,8 +289,8 @@ freestruct_in_srv(ARGS_FREESTRUCT) { dns_rdata_in_srv_t *srv = source; REQUIRE(source != NULL); - REQUIRE(srv->common.rdclass == 1); - REQUIRE(srv->common.rdtype == 33); + REQUIRE(srv->common.rdclass == dns_rdataclass_in); + REQUIRE(srv->common.rdtype == dns_rdatatype_srv); if (srv->mctx == NULL) return; @@ -305,8 +305,8 @@ additionaldata_in_srv(ARGS_ADDLDATA) { dns_offsets_t offsets; isc_region_t region; - REQUIRE(rdata->type == 33); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_srv); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_name_init(&name, offsets); dns_rdata_toregion(rdata, ®ion); @@ -321,8 +321,8 @@ digest_in_srv(ARGS_DIGEST) { isc_region_t r1, r2; dns_name_t name; - REQUIRE(rdata->type == 33); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_srv); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_rdata_toregion(rdata, &r1); r2 = r1; @@ -337,8 +337,8 @@ digest_in_srv(ARGS_DIGEST) { static inline isc_boolean_t checkowner_in_srv(ARGS_CHECKOWNER) { - REQUIRE(type == 33); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_srv); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(name); UNUSED(type); @@ -353,8 +353,8 @@ checknames_in_srv(ARGS_CHECKNAMES) { isc_region_t region; dns_name_t name; - REQUIRE(rdata->type == 33); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_srv); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(owner); diff --git a/lib/dns/rdata/in_1/wks_11.c b/lib/dns/rdata/in_1/wks_11.c index 4587c813afab..0eb9504c89c3 100644 --- a/lib/dns/rdata/in_1/wks_11.c +++ b/lib/dns/rdata/in_1/wks_11.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2007, 2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -77,8 +77,8 @@ fromtext_in_wks(ARGS_FROMTEXT) { char service[32]; int i; - REQUIRE(type == 11); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_wks); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(origin); @@ -171,8 +171,8 @@ totext_in_wks(ARGS_TOTEXT) { UNUSED(tctx); - REQUIRE(rdata->type == 11); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_wks); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length >= 5); dns_rdata_toregion(rdata, &sr); @@ -204,8 +204,8 @@ fromwire_in_wks(ARGS_FROMWIRE) { isc_region_t sr; isc_region_t tr; - REQUIRE(type == 11); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_wks); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(dctx); @@ -235,8 +235,8 @@ towire_in_wks(ARGS_TOWIRE) { UNUSED(cctx); - REQUIRE(rdata->type == 11); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_wks); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); dns_rdata_toregion(rdata, &sr); @@ -250,8 +250,8 @@ compare_in_wks(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == 11); - REQUIRE(rdata1->rdclass == 1); + REQUIRE(rdata1->type == dns_rdatatype_wks); + REQUIRE(rdata1->rdclass == dns_rdataclass_in); REQUIRE(rdata1->length != 0); REQUIRE(rdata2->length != 0); @@ -265,8 +265,8 @@ fromstruct_in_wks(ARGS_FROMSTRUCT) { dns_rdata_in_wks_t *wks = source; isc_uint32_t a; - REQUIRE(type == 11); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_wks); + REQUIRE(rdclass == dns_rdataclass_in); REQUIRE(source != NULL); REQUIRE(wks->common.rdtype == type); REQUIRE(wks->common.rdclass == rdclass); @@ -288,8 +288,8 @@ tostruct_in_wks(ARGS_TOSTRUCT) { isc_uint32_t n; isc_region_t region; - REQUIRE(rdata->type == 11); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_wks); + REQUIRE(rdata->rdclass == dns_rdataclass_in); REQUIRE(rdata->length != 0); wks->common.rdclass = rdata->rdclass; @@ -315,8 +315,8 @@ freestruct_in_wks(ARGS_FREESTRUCT) { dns_rdata_in_wks_t *wks = source; REQUIRE(source != NULL); - REQUIRE(wks->common.rdtype == 11); - REQUIRE(wks->common.rdclass == 1); + REQUIRE(wks->common.rdtype == dns_rdatatype_wks); + REQUIRE(wks->common.rdclass == dns_rdataclass_in); if (wks->mctx == NULL) return; @@ -332,8 +332,8 @@ additionaldata_in_wks(ARGS_ADDLDATA) { UNUSED(add); UNUSED(arg); - REQUIRE(rdata->type == 11); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_wks); + REQUIRE(rdata->rdclass == dns_rdataclass_in); return (ISC_R_SUCCESS); } @@ -342,8 +342,8 @@ static inline isc_result_t digest_in_wks(ARGS_DIGEST) { isc_region_t r; - REQUIRE(rdata->type == 11); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_wks); + REQUIRE(rdata->rdclass == dns_rdataclass_in); dns_rdata_toregion(rdata, &r); @@ -353,8 +353,8 @@ digest_in_wks(ARGS_DIGEST) { static inline isc_boolean_t checkowner_in_wks(ARGS_CHECKOWNER) { - REQUIRE(type == 11); - REQUIRE(rdclass == 1); + REQUIRE(type == dns_rdatatype_wks); + REQUIRE(rdclass == dns_rdataclass_in); UNUSED(type); UNUSED(rdclass); @@ -365,8 +365,8 @@ checkowner_in_wks(ARGS_CHECKOWNER) { static inline isc_boolean_t checknames_in_wks(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == 11); - REQUIRE(rdata->rdclass == 1); + REQUIRE(rdata->type == dns_rdatatype_wks); + REQUIRE(rdata->rdclass == dns_rdataclass_in); UNUSED(rdata); UNUSED(owner); diff --git a/lib/dns/request.c b/lib/dns/request.c index 59e166eb0257..71707586f1e5 100644 --- a/lib/dns/request.c +++ b/lib/dns/request.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -144,7 +144,7 @@ dns_requestmgr_create(isc_mem_t *mctx, dns_requestmgr_t **requestmgrp) { dns_requestmgr_t *requestmgr; - isc_socket_t *socket; + isc_socket_t *sock; isc_result_t result; int i; unsigned int dispattr; @@ -156,7 +156,7 @@ dns_requestmgr_create(isc_mem_t *mctx, REQUIRE(socketmgr != NULL); REQUIRE(taskmgr != NULL); REQUIRE(dispatchmgr != NULL); - UNUSED(socket); + UNUSED(sock); if (dispatchv4 != NULL) { dispattr = dns_dispatch_getattributes(dispatchv4); REQUIRE((dispattr & DNS_DISPATCHATTR_UDP) != 0); @@ -426,20 +426,20 @@ mgr_gethash(dns_requestmgr_t *requestmgr) { static inline isc_result_t req_send(dns_request_t *request, isc_task_t *task, isc_sockaddr_t *address) { isc_region_t r; - isc_socket_t *socket; + isc_socket_t *sock; isc_result_t result; req_log(ISC_LOG_DEBUG(3), "req_send: request %p", request); REQUIRE(VALID_REQUEST(request)); - socket = req_getsocket(request); + sock = req_getsocket(request); isc_buffer_usedregion(request->query, &r); /* * We could connect the socket when we are using an exclusive dispatch * as we do in resolver.c, but we prefer implementation simplicity * at this moment. */ - result = isc_socket_sendto(socket, &r, task, req_senddone, + result = isc_socket_sendto(sock, &r, task, req_senddone, request, address, NULL); if (result == ISC_R_SUCCESS) request->flags |= DNS_REQUEST_F_SENDING; @@ -513,25 +513,25 @@ create_tcp_dispatch(dns_requestmgr_t *requestmgr, isc_sockaddr_t *srcaddr, isc_sockaddr_t *destaddr, dns_dispatch_t **dispatchp) { isc_result_t result; - isc_socket_t *socket = NULL; + isc_socket_t *sock = NULL; isc_sockaddr_t src; unsigned int attrs; isc_sockaddr_t bind_any; result = isc_socket_create(requestmgr->socketmgr, isc_sockaddr_pf(destaddr), - isc_sockettype_tcp, &socket); + isc_sockettype_tcp, &sock); if (result != ISC_R_SUCCESS) return (result); #ifndef BROKEN_TCP_BIND_BEFORE_CONNECT if (srcaddr == NULL) { isc_sockaddr_anyofpf(&bind_any, isc_sockaddr_pf(destaddr)); - result = isc_socket_bind(socket, &bind_any, 0); + result = isc_socket_bind(sock, &bind_any, 0); } else { src = *srcaddr; isc_sockaddr_setport(&src, 0); - result = isc_socket_bind(socket, &src, 0); + result = isc_socket_bind(sock, &src, 0); } if (result != ISC_R_SUCCESS) goto cleanup; @@ -545,11 +545,11 @@ create_tcp_dispatch(dns_requestmgr_t *requestmgr, isc_sockaddr_t *srcaddr, attrs |= DNS_DISPATCHATTR_IPV6; attrs |= DNS_DISPATCHATTR_MAKEQUERY; result = dns_dispatch_createtcp(requestmgr->dispatchmgr, - socket, requestmgr->taskmgr, + sock, requestmgr->taskmgr, 4096, 2, 1, 1, 3, attrs, dispatchp); cleanup: - isc_socket_detach(&socket); + isc_socket_detach(&sock); return (result); } @@ -680,7 +680,7 @@ dns_request_createraw3(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf, { dns_request_t *request = NULL; isc_task_t *tclone = NULL; - isc_socket_t *socket = NULL; + isc_socket_t *sock = NULL; isc_result_t result; isc_mem_t *mctx; dns_messageid_t id; @@ -764,8 +764,8 @@ dns_request_createraw3(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf, if (result != ISC_R_SUCCESS) goto cleanup; - socket = req_getsocket(request); - INSIST(socket != NULL); + sock = req_getsocket(request); + INSIST(sock != NULL); result = isc_buffer_allocate(mctx, &request->query, r.length + (tcp ? 2 : 0)); @@ -801,7 +801,7 @@ dns_request_createraw3(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf, request->destaddr = *destaddr; if (tcp) { - result = isc_socket_connect(socket, destaddr, task, + result = isc_socket_connect(sock, destaddr, task, req_connected, request); if (result != ISC_R_SUCCESS) goto unlink; @@ -886,12 +886,12 @@ dns_request_createvia3(dns_requestmgr_t *requestmgr, dns_message_t *message, { dns_request_t *request = NULL; isc_task_t *tclone = NULL; - isc_socket_t *socket = NULL; + isc_socket_t *sock = NULL; isc_result_t result; isc_mem_t *mctx; dns_messageid_t id; isc_boolean_t tcp; - isc_boolean_t setkey = ISC_TRUE; + isc_boolean_t settsigkey = ISC_TRUE; REQUIRE(VALID_REQUESTMGR(requestmgr)); REQUIRE(message != NULL); @@ -960,11 +960,11 @@ dns_request_createvia3(dns_requestmgr_t *requestmgr, dns_message_t *message, requestmgr->socketmgr); if (result != ISC_R_SUCCESS) goto cleanup; - socket = req_getsocket(request); - INSIST(socket != NULL); + sock = req_getsocket(request); + INSIST(sock != NULL); message->id = id; - if (setkey) { + if (settsigkey) { result = dns_message_settsigkey(message, request->tsigkey); if (result != ISC_R_SUCCESS) goto cleanup; @@ -978,9 +978,9 @@ dns_request_createvia3(dns_requestmgr_t *requestmgr, dns_message_t *message, dns_message_renderreset(message); dns_dispatch_removeresponse(&request->dispentry, NULL); dns_dispatch_detach(&request->dispatch); - socket = NULL; + sock = NULL; options |= DNS_REQUESTOPT_TCP; - setkey = ISC_FALSE; + settsigkey = ISC_FALSE; goto use_tcp; } if (result != ISC_R_SUCCESS) @@ -1007,7 +1007,7 @@ dns_request_createvia3(dns_requestmgr_t *requestmgr, dns_message_t *message, request->destaddr = *destaddr; if (tcp) { - result = isc_socket_connect(socket, destaddr, task, + result = isc_socket_connect(sock, destaddr, task, req_connected, request); if (result != ISC_R_SUCCESS) goto unlink; @@ -1250,16 +1250,16 @@ dns_request_destroy(dns_request_t **requestp) { static isc_socket_t * req_getsocket(dns_request_t *request) { unsigned int dispattr; - isc_socket_t *socket; + isc_socket_t *sock; dispattr = dns_dispatch_getattributes(request->dispatch); if ((dispattr & DNS_DISPATCHATTR_EXCLUSIVE) != 0) { INSIST(request->dispentry != NULL); - socket = dns_dispatch_getentrysocket(request->dispentry); + sock = dns_dispatch_getentrysocket(request->dispentry); } else - socket = dns_dispatch_getsocket(request->dispatch); + sock = dns_dispatch_getsocket(request->dispatch); - return (socket); + return (sock); } static void @@ -1460,7 +1460,7 @@ req_destroy(dns_request_t *request) { */ static void req_cancel(dns_request_t *request) { - isc_socket_t *socket; + isc_socket_t *sock; unsigned int dispattr; REQUIRE(VALID_REQUEST(request)); @@ -1475,19 +1475,19 @@ req_cancel(dns_request_t *request) { if (request->timer != NULL) isc_timer_detach(&request->timer); dispattr = dns_dispatch_getattributes(request->dispatch); - socket = NULL; + sock = NULL; if (DNS_REQUEST_CONNECTING(request) || DNS_REQUEST_SENDING(request)) { if ((dispattr & DNS_DISPATCHATTR_EXCLUSIVE) != 0) { if (request->dispentry != NULL) { - socket = dns_dispatch_getentrysocket( + sock = dns_dispatch_getentrysocket( request->dispentry); } } else - socket = dns_dispatch_getsocket(request->dispatch); - if (DNS_REQUEST_CONNECTING(request) && socket != NULL) - isc_socket_cancel(socket, NULL, ISC_SOCKCANCEL_CONNECT); - if (DNS_REQUEST_SENDING(request) && socket != NULL) - isc_socket_cancel(socket, NULL, ISC_SOCKCANCEL_SEND); + sock = dns_dispatch_getsocket(request->dispatch); + if (DNS_REQUEST_CONNECTING(request) && sock != NULL) + isc_socket_cancel(sock, NULL, ISC_SOCKCANCEL_CONNECT); + if (DNS_REQUEST_SENDING(request) && sock != NULL) + isc_socket_cancel(sock, NULL, ISC_SOCKCANCEL_SEND); } if (request->dispentry != NULL) dns_dispatch_removeresponse(&request->dispentry, NULL); diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index d33c43ed82af..1aaca2b0620a 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id$ */ - /*! \file */ #include <config.h> @@ -64,8 +62,7 @@ #include <dns/tsig.h> #include <dns/validator.h> -#define DNS_RESOLVER_TRACE -#ifdef DNS_RESOLVER_TRACE +#ifdef WANT_QUERYTRACE #define RTRACE(m) isc_log_write(dns_lctx, \ DNS_LOGCATEGORY_RESOLVER, \ DNS_LOGMODULE_RESOLVER, \ @@ -76,11 +73,13 @@ DNS_LOGMODULE_RESOLVER, \ ISC_LOG_DEBUG(3), \ "res %p: %s", (r), (m)) -#define FCTXTRACE(m) isc_log_write(dns_lctx, \ +#define FCTXTRACE(m) \ + isc_log_write(dns_lctx, \ DNS_LOGCATEGORY_RESOLVER, \ DNS_LOGMODULE_RESOLVER, \ ISC_LOG_DEBUG(3), \ - "fctx %p(%s): %s", fctx, fctx->info, (m)) + "fctx %p(%s): %s", \ + fctx, fctx->info, (m)) #define FCTXTRACE2(m1, m2) \ isc_log_write(dns_lctx, \ DNS_LOGCATEGORY_RESOLVER, \ @@ -88,6 +87,22 @@ ISC_LOG_DEBUG(3), \ "fctx %p(%s): %s %s", \ fctx, fctx->info, (m1), (m2)) +#define FCTXTRACE3(m, res) \ + isc_log_write(dns_lctx, \ + DNS_LOGCATEGORY_RESOLVER, \ + DNS_LOGMODULE_RESOLVER, \ + ISC_LOG_DEBUG(3), \ + "fctx %p(%s): [result: %s] %s", \ + fctx, fctx->info, \ + isc_result_totext(res), (m)) +#define FCTXTRACE4(m1, m2, res) \ + isc_log_write(dns_lctx, \ + DNS_LOGCATEGORY_RESOLVER, \ + DNS_LOGMODULE_RESOLVER, \ + ISC_LOG_DEBUG(3), \ + "fctx %p(%s): [result: %s] %s %s", \ + fctx, fctx->info, \ + isc_result_totext(res), (m1), (m2)) #define FTRACE(m) isc_log_write(dns_lctx, \ DNS_LOGCATEGORY_RESOLVER, \ DNS_LOGMODULE_RESOLVER, \ @@ -103,13 +118,16 @@ query, query->fctx, \ query->fctx->info, (m)) #else -#define RTRACE(m) -#define RRTRACE(r, m) -#define FCTXTRACE(m) -#define FCTXTRACE2(m1, m2) -#define FTRACE(m) -#define QTRACE(m) -#endif +#define RTRACE(m) do { UNUSED(m); } while (0) +#define RRTRACE(r, m) do { UNUSED(r); UNUSED(m); } while (0) +#define FCTXTRACE(m) do { UNUSED(m); } while (0) +#define FCTXTRACE2(m1, m2) do { UNUSED(m1); UNUSED(m2); } while (0) +#define FCTXTRACE3(m1, res) do { UNUSED(m1); UNUSED(res); } while (0) +#define FCTXTRACE4(m1, m2, res) \ + do { UNUSED(m1); UNUSED(m2); UNUSED(res); } while (0) +#define FTRACE(m) do { UNUSED(m); } while (0) +#define QTRACE(m) do { UNUSED(m); } while (0) +#endif /* WANT_QUERYTRACE */ #define US_PER_SEC 1000000U /* @@ -128,8 +146,9 @@ #define DEFAULT_QUERY_TIMEOUT MINIMUM_QUERY_TIMEOUT #endif +/* The maximum time in seconds for the whole query to live. */ #ifndef MAXIMUM_QUERY_TIMEOUT -#define MAXIMUM_QUERY_TIMEOUT 30 /* The maximum time in seconds for the whole query to live. */ +#define MAXIMUM_QUERY_TIMEOUT 30 #endif /* The default maximum number of recursions to follow before giving up. */ @@ -142,6 +161,12 @@ #define DEFAULT_MAX_QUERIES 50 #endif +/* Number of hash buckets for zone counters */ +#ifndef RES_DOMAIN_BUCKETS +#define RES_DOMAIN_BUCKETS 523 +#endif +#define RES_NOBUCKET 0xffffffff + /*% * Maximum EDNS0 input packet size. */ @@ -211,6 +236,7 @@ struct fetchctx { dns_rdatatype_t type; unsigned int options; unsigned int bucketnum; + unsigned int dbucketnum; char * info; isc_mem_t * mctx; @@ -311,6 +337,7 @@ struct fetchctx { unsigned int querysent; unsigned int referrals; unsigned int lamecount; + unsigned int quotacount; unsigned int neterr; unsigned int badresp; unsigned int adberr; @@ -371,6 +398,25 @@ typedef struct fctxbucket { isc_mem_t * mctx; } fctxbucket_t; +#ifdef ENABLE_FETCHLIMIT +typedef struct fctxcount fctxcount_t; +struct fctxcount { + dns_fixedname_t fdname; + dns_name_t *domain; + isc_uint32_t count; + isc_uint32_t allowed; + isc_uint32_t dropped; + isc_stdtime_t logged; + ISC_LINK(fctxcount_t) link; +}; + +typedef struct zonebucket { + isc_mutex_t lock; + isc_mem_t *mctx; + ISC_LIST(fctxcount_t) list; +} zonebucket_t; +#endif /* ENABLE_FETCHLIMIT */ + typedef struct alternate { isc_boolean_t isaddress; union { @@ -416,6 +462,9 @@ struct dns_resolver { isc_boolean_t exclusivev6; unsigned int nbuckets; fctxbucket_t * buckets; +#ifdef ENABLE_FETCHLIMIT + zonebucket_t * dbuckets; +#endif /* ENABLE_FETCHLIMIT */ isc_uint32_t lame_ttl; ISC_LIST(alternate_t) alternates; isc_uint16_t udpsize; @@ -434,6 +483,7 @@ struct dns_resolver { unsigned int query_timeout; unsigned int maxdepth; unsigned int maxqueries; + isc_result_t quotaresp[2]; /* Locked by lock. */ unsigned int references; @@ -442,6 +492,7 @@ struct dns_resolver { unsigned int activebuckets; isc_boolean_t priming; unsigned int spillat; /* clients-per-query */ + unsigned int zspill; /* fetches-per-zone */ /* Bad cache. */ dns_badcache_t ** badcache; @@ -503,6 +554,8 @@ static void add_bad(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, static inline isc_result_t findnoqname(fetchctx_t *fctx, dns_name_t *name, dns_rdatatype_t type, dns_name_t **noqname); +static void fctx_increference(fetchctx_t *fctx); +static isc_boolean_t fctx_decreference(fetchctx_t *fctx); /*% * Increment resolver-related statistics counters. @@ -779,10 +832,13 @@ fctx_startidletimer(fetchctx_t *fctx, isc_interval_t *interval) { */ #define fctx_stopidletimer fctx_starttimer - static inline void resquery_destroy(resquery_t **queryp) { + dns_resolver_t *res; + isc_boolean_t empty; resquery_t *query; + fetchctx_t *fctx; + unsigned int bucket; REQUIRE(queryp != NULL); query = *queryp; @@ -790,15 +846,22 @@ resquery_destroy(resquery_t **queryp) { INSIST(query->tcpsocket == NULL); - query->fctx->nqueries--; - if (SHUTTINGDOWN(query->fctx)) { - dns_resolver_t *res = query->fctx->res; - if (maybe_destroy(query->fctx, ISC_FALSE)) - empty_bucket(res); - } + fctx = query->fctx; + res = fctx->res; + bucket = fctx->bucketnum; + + fctx->nqueries--; + + LOCK(&res->buckets[bucket].lock); + empty = fctx_decreference(query->fctx); + UNLOCK(&res->buckets[bucket].lock); + query->magic = 0; isc_mem_put(query->mctx, query, sizeof(*query)); *queryp = NULL; + + if (empty) + empty_bucket(res); } static void @@ -811,7 +874,7 @@ fctx_cancelquery(resquery_t **queryp, dns_dispatchevent_t **deventp, unsigned int factor; dns_adbfind_t *find; dns_adbaddrinfo_t *addrinfo; - isc_socket_t *socket; + isc_socket_t *sock; isc_stdtime_t now; query = *queryp; @@ -866,19 +929,20 @@ fctx_cancelquery(resquery_t **queryp, dns_dispatchevent_t **deventp, rtt = query->addrinfo->srtt + 200000; if (rtt > MAX_SINGLE_QUERY_TIMEOUT_US) rtt = MAX_SINGLE_QUERY_TIMEOUT_US; + /* * Replace the current RTT with our value. */ factor = DNS_ADB_RTTADJREPLACE; + dns_adb_timeout(fctx->adb, query->addrinfo); } + dns_adb_adjustsrtt(fctx->adb, query->addrinfo, rtt, factor); } - /* Remember that the server has been tried. */ - if (!TRIED(query->addrinfo)) { - dns_adb_changeflags(fctx->adb, query->addrinfo, - FCTX_ADDRINFO_TRIED, FCTX_ADDRINFO_TRIED); - } +#ifdef ENABLE_FETCHLIMIT + dns_adb_endudpfetch(fctx->adb, query->addrinfo); +#endif /* ENABLE_FETCHLIMIT */ /* * Age RTTs of servers not tried. @@ -934,9 +998,9 @@ fctx_cancelquery(resquery_t **queryp, dns_dispatchevent_t **deventp, ISC_SOCKCANCEL_CONNECT); } else if (query->dispentry != NULL) { INSIST(query->exclusivesocket); - socket = dns_dispatch_getentrysocket(query->dispentry); - if (socket != NULL) - isc_socket_cancel(socket, NULL, + sock = dns_dispatch_getentrysocket(query->dispentry); + if (sock != NULL) + isc_socket_cancel(sock, NULL, ISC_SOCKCANCEL_CONNECT); } } else if (RESQUERY_SENDING(query)) { @@ -944,11 +1008,11 @@ fctx_cancelquery(resquery_t **queryp, dns_dispatchevent_t **deventp, * Cancel the pending send. */ if (query->exclusivesocket && query->dispentry != NULL) - socket = dns_dispatch_getentrysocket(query->dispentry); + sock = dns_dispatch_getentrysocket(query->dispentry); else - socket = dns_dispatch_getsocket(query->dispatch); - if (socket != NULL) - isc_socket_cancel(socket, NULL, ISC_SOCKCANCEL_SEND); + sock = dns_dispatch_getsocket(query->dispatch); + if (sock != NULL) + isc_socket_cancel(sock, NULL, ISC_SOCKCANCEL_SEND); } if (query->dispentry != NULL) @@ -1059,6 +1123,128 @@ fctx_stopeverything(fetchctx_t *fctx, isc_boolean_t no_response) { fctx_stoptimer(fctx); } +#ifdef ENABLE_FETCHLIMIT +static void +fcount_logspill(fetchctx_t *fctx, fctxcount_t *counter) { + char dbuf[DNS_NAME_FORMATSIZE]; + isc_stdtime_t now; + + if (! isc_log_wouldlog(dns_lctx, ISC_LOG_INFO)) + return; + + isc_stdtime_get(&now); + if (counter->logged > now - 60) + return; + + dns_name_format(&fctx->domain, dbuf, sizeof(dbuf)); + + isc_log_write(dns_lctx, DNS_LOGCATEGORY_SPILL, + DNS_LOGMODULE_RESOLVER, ISC_LOG_INFO, + "too many simultaneous fetches for %s " + "(allowed %d spilled %d)", + dbuf, counter->allowed, counter->dropped); + + counter->logged = now; +} + +static isc_result_t +fcount_incr(fetchctx_t *fctx, isc_boolean_t force) { + isc_result_t result = ISC_R_SUCCESS; + zonebucket_t *dbucket; + fctxcount_t *counter; + unsigned int bucketnum, spill; + + REQUIRE(fctx != NULL); + REQUIRE(fctx->res != NULL); + + INSIST(fctx->dbucketnum == RES_NOBUCKET); + bucketnum = dns_name_fullhash(&fctx->domain, ISC_FALSE) + % RES_DOMAIN_BUCKETS; + + LOCK(&fctx->res->lock); + spill = fctx->res->zspill; + UNLOCK(&fctx->res->lock); + + dbucket = &fctx->res->dbuckets[bucketnum]; + + LOCK(&dbucket->lock); + for (counter = ISC_LIST_HEAD(dbucket->list); + counter != NULL; + counter = ISC_LIST_NEXT(counter, link)) + { + if (dns_name_equal(counter->domain, &fctx->domain)) + break; + } + + if (counter == NULL) { + counter = isc_mem_get(dbucket->mctx, sizeof(fctxcount_t)); + if (counter == NULL) + result = ISC_R_NOMEMORY; + else { + ISC_LINK_INIT(counter, link); + counter->count = 1; + counter->logged = 0; + counter->allowed = 1; + counter->dropped = 0; + dns_fixedname_init(&counter->fdname); + counter->domain = dns_fixedname_name(&counter->fdname); + dns_name_copy(&fctx->domain, counter->domain, NULL); + ISC_LIST_APPEND(dbucket->list, counter, link); + } + } else { + if (!force && spill != 0 && counter->count >= spill) { + counter->dropped++; + fcount_logspill(fctx, counter); + result = ISC_R_QUOTA; + } else { + counter->count++; + counter->allowed++; + } + } + UNLOCK(&dbucket->lock); + + if (result == ISC_R_SUCCESS) + fctx->dbucketnum = bucketnum; + + return (result); +} + +static void +fcount_decr(fetchctx_t *fctx) { + zonebucket_t *dbucket; + fctxcount_t *counter; + + REQUIRE(fctx != NULL); + + if (fctx->dbucketnum == RES_NOBUCKET) + return; + + dbucket = &fctx->res->dbuckets[fctx->dbucketnum]; + + LOCK(&dbucket->lock); + for (counter = ISC_LIST_HEAD(dbucket->list); + counter != NULL; + counter = ISC_LIST_NEXT(counter, link)) + { + if (dns_name_equal(counter->domain, &fctx->domain)) + break; + } + + if (counter != NULL) { + INSIST(counter->count != 0); + counter->count--; + fctx->dbucketnum = RES_NOBUCKET; + + if (counter->count == 0) { + ISC_LIST_UNLINK(dbucket->list, counter, link); + isc_mem_put(dbucket->mctx, counter, sizeof(*counter)); + } + } + + UNLOCK(&dbucket->lock); +} +#endif /* ENABLE_FETCHLIMIT */ + static inline void fctx_sendevents(fetchctx_t *fctx, isc_result_t result, int line) { dns_fetchevent_t *event, *next_event; @@ -1200,6 +1386,7 @@ fctx_done(fetchctx_t *fctx, isc_result_t result, int line) { static void process_sendevent(resquery_t *query, isc_event_t *event) { isc_socketevent_t *sevent = (isc_socketevent_t *)event; + isc_boolean_t destroy_query = ISC_FALSE; isc_boolean_t retry = ISC_FALSE; isc_result_t result; fetchctx_t *fctx; @@ -1214,7 +1401,7 @@ process_sendevent(resquery_t *query, isc_event_t *event) { */ if (query->tcpsocket != NULL) isc_socket_detach(&query->tcpsocket); - resquery_destroy(&query); + destroy_query = ISC_TRUE; } } else { switch (sevent->result) { @@ -1226,6 +1413,9 @@ process_sendevent(resquery_t *query, isc_event_t *event) { case ISC_R_NOPERM: case ISC_R_ADDRNOTAVAIL: case ISC_R_CONNREFUSED: + FCTXTRACE3("query canceled in sendevent(): " + "no route to host; no response", + sevent->result); /* * No route to remote. @@ -1237,6 +1427,10 @@ process_sendevent(resquery_t *query, isc_event_t *event) { break; default: + FCTXTRACE3("query canceled in sendevent() due to " + "unexpected event result; responding", + sevent->result); + fctx_cancelquery(&query, NULL, NULL, ISC_FALSE); break; } @@ -1257,6 +1451,9 @@ process_sendevent(resquery_t *query, isc_event_t *event) { else fctx_try(fctx, ISC_TRUE, ISC_FALSE); } + + if (destroy_query) + resquery_destroy(&query); } static void @@ -1528,6 +1725,7 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, } query->dispentry = NULL; + fctx_increference(fctx); query->fctx = fctx; query->tsig = NULL; query->tsigkey = NULL; @@ -1548,6 +1746,14 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, query->connects++; QTRACE("connecting via TCP"); } else { +#ifdef ENABLE_FETCHLIMIT + if (dns_adbentry_overquota(addrinfo->entry)) + goto cleanup_dispatch; + + /* Inform the ADB that we're starting a fetch */ + dns_adb_beginudpfetch(fctx->adb, addrinfo); +#endif /* ENABLE_FETCHLIMIT */ + result = resquery_send(query); if (result != ISC_R_SUCCESS) goto cleanup_dispatch; @@ -1574,6 +1780,11 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, if (query->dispatch != NULL) dns_dispatch_detach(&query->dispatch); + LOCK(&res->buckets[fctx->bucketnum].lock); + INSIST(fctx->references > 1); + fctx->references--; + UNLOCK(&res->buckets[fctx->bucketnum].lock); + cleanup_query: if (query->connects == 0) { query->magic = 0; @@ -1700,7 +1911,7 @@ resquery_send(resquery_t *query) { isc_region_t r; dns_resolver_t *res; isc_task_t *task; - isc_socket_t *socket; + isc_socket_t *sock; isc_buffer_t tcpbuffer; isc_sockaddr_t *address; isc_buffer_t *buffer; @@ -2002,16 +2213,16 @@ resquery_send(resquery_t *query) { dns_message_reset(fctx->qmessage, DNS_MESSAGE_INTENTRENDER); if (query->exclusivesocket) - socket = dns_dispatch_getentrysocket(query->dispentry); + sock = dns_dispatch_getentrysocket(query->dispentry); else - socket = dns_dispatch_getsocket(query->dispatch); + sock = dns_dispatch_getsocket(query->dispatch); /* * Send the query! */ if ((query->options & DNS_FETCHOPT_TCP) == 0) { address = &query->addrinfo->sockaddr; if (query->exclusivesocket) { - result = isc_socket_connect(socket, address, task, + result = isc_socket_connect(sock, address, task, resquery_udpconnected, query); if (result != ISC_R_SUCCESS) @@ -2029,7 +2240,7 @@ resquery_send(resquery_t *query) { ISC_EVENT_INIT(&query->sendevent, sizeof(query->sendevent), 0, NULL, ISC_SOCKEVENT_SENDDONE, resquery_senddone, query, NULL, NULL, NULL); - result = isc_socket_sendto2(socket, &r, task, address, NULL, + result = isc_socket_sendto2(sock, &r, task, address, NULL, &query->sendevent, 0); if (result != ISC_R_SUCCESS) { if (connecting) { @@ -2119,6 +2330,9 @@ resquery_connected(isc_task_t *task, isc_event_t *event) { isc_interval_set(&interval, 20, 0); result = fctx_startidletimer(query->fctx, &interval); if (result != ISC_R_SUCCESS) { + FCTXTRACE("query canceled: idle timer failed; " + "responding"); + fctx_cancelquery(&query, NULL, NULL, ISC_FALSE); fctx_done(fctx, result, __LINE__); break; @@ -2155,6 +2369,9 @@ resquery_connected(isc_task_t *task, isc_event_t *event) { result = resquery_send(query); if (result != ISC_R_SUCCESS) { + FCTXTRACE("query canceled: " + "resquery_send() failed; responding"); + fctx_cancelquery(&query, NULL, NULL, ISC_FALSE); fctx_done(fctx, result, __LINE__); } @@ -2166,6 +2383,10 @@ resquery_connected(isc_task_t *task, isc_event_t *event) { case ISC_R_NOPERM: case ISC_R_ADDRNOTAVAIL: case ISC_R_CONNECTIONRESET: + FCTXTRACE3("query canceled in connected(): " + "no route to host; no response", + sevent->result); + /* * No route to remote. */ @@ -2175,6 +2396,10 @@ resquery_connected(isc_task_t *task, isc_event_t *event) { break; default: + FCTXTRACE3("query canceled in connected() due to " + "unexpected event result; responding", + sevent->result); + isc_socket_detach(&query->tcpsocket); fctx_cancelquery(&query, NULL, NULL, ISC_FALSE); break; @@ -2206,7 +2431,7 @@ fctx_finddone(isc_task_t *task, isc_event_t *event) { isc_boolean_t want_done = ISC_FALSE; isc_boolean_t bucket_empty = ISC_FALSE; unsigned int bucketnum; - isc_boolean_t destroy = ISC_FALSE; + isc_boolean_t dodestroy = ISC_FALSE; find = event->ev_sender; fctx = event->ev_arg; @@ -2247,7 +2472,7 @@ fctx_finddone(isc_task_t *task, isc_event_t *event) { if (fctx->references == 0) { bucket_empty = fctx_unlink(fctx); - destroy = ISC_TRUE; + dodestroy = ISC_TRUE; } } UNLOCK(&res->buckets[bucketnum].lock); @@ -2255,11 +2480,12 @@ fctx_finddone(isc_task_t *task, isc_event_t *event) { isc_event_free(&event); dns_adb_destroyfind(&find); - if (want_try) + if (want_try) { fctx_try(fctx, ISC_TRUE, ISC_FALSE); - else if (want_done) + } else if (want_done) { + FCTXTRACE("fetch failed in finddone(); return ISC_R_FAILURE"); fctx_done(fctx, ISC_R_FAILURE, __LINE__); - else if (destroy) { + } else if (dodestroy) { fctx_destroy(fctx); if (bucket_empty) empty_bucket(res); @@ -2488,7 +2714,7 @@ sort_finds(dns_adbfindlist_t *findlist) { static void findname(fetchctx_t *fctx, dns_name_t *name, in_port_t port, unsigned int options, unsigned int flags, isc_stdtime_t now, - isc_boolean_t *need_alternate) + isc_boolean_t *overquota, isc_boolean_t *need_alternate) { dns_adbaddrinfo_t *ai; dns_adbfind_t *find; @@ -2496,6 +2722,10 @@ findname(fetchctx_t *fctx, dns_name_t *name, in_port_t port, isc_boolean_t unshared; isc_result_t result; +#ifndef ENABLE_FETCHLIMIT + UNUSED(overquota); +#endif /* !ENABLE_FETCHLIMIT */ + res = fctx->res; unshared = ISC_TF((fctx->options & DNS_FETCHOPT_UNSHARED) != 0); /* @@ -2579,6 +2809,14 @@ findname(fetchctx_t *fctx, dns_name_t *name, in_port_t port, find->result_v4 != DNS_R_NXDOMAIN))) *need_alternate = ISC_TRUE; } else { +#ifdef ENABLE_FETCHLIMIT + if ((find->options & DNS_ADBFIND_OVERQUOTA) != 0) { + if (overquota != NULL) + *overquota = ISC_TRUE; + fctx->quotacount++; /* quota exceeded */ + } + else +#endif /* ENABLE_FETCHLIMIT */ if ((find->options & DNS_ADBFIND_LAMEPRUNED) != 0) fctx->lamecount++; /* cached lame server */ else @@ -2622,6 +2860,9 @@ fctx_getaddresses(fetchctx_t *fctx, isc_boolean_t badcache) { isc_boolean_t all_bad; dns_rdata_ns_t ns; isc_boolean_t need_alternate = ISC_FALSE; +#ifdef ENABLE_FETCHLIMIT + isc_boolean_t all_spilled = ISC_TRUE; +#endif /* ENABLE_FETCHLIMIT */ FCTXTRACE("getaddresses"); @@ -2679,19 +2920,27 @@ fctx_getaddresses(fetchctx_t *fctx, isc_boolean_t badcache) { dns_fixedname_init(&fixed); domain = dns_fixedname_name(&fixed); - result = dns_fwdtable_find2(fctx->res->view->fwdtable, name, + result = dns_fwdtable_find2(res->view->fwdtable, name, domain, &forwarders); if (result == ISC_R_SUCCESS) { sa = ISC_LIST_HEAD(forwarders->addrs); fctx->fwdpolicy = forwarders->fwdpolicy; if (fctx->fwdpolicy == dns_fwdpolicy_only && isstrictsubdomain(domain, &fctx->domain)) { +#ifdef ENABLE_FETCHLIMIT + fcount_decr(fctx); +#endif /* ENABLE_FETCHLIMIT */ dns_name_free(&fctx->domain, fctx->mctx); dns_name_init(&fctx->domain, NULL); result = dns_name_dup(domain, fctx->mctx, &fctx->domain); if (result != ISC_R_SUCCESS) return (result); +#ifdef ENABLE_FETCHLIMIT + result = fcount_incr(fctx, ISC_TRUE); + if (result != ISC_R_SUCCESS) + return (result); +#endif /* ENABLE_FETCHLIMIT */ } } } @@ -2765,6 +3014,8 @@ fctx_getaddresses(fetchctx_t *fctx, isc_boolean_t badcache) { result == ISC_R_SUCCESS; result = dns_rdataset_next(&fctx->nameservers)) { + isc_boolean_t overquota = ISC_FALSE; + dns_rdataset_current(&fctx->nameservers, &rdata); /* * Extract the name from the NS record. @@ -2774,7 +3025,13 @@ fctx_getaddresses(fetchctx_t *fctx, isc_boolean_t badcache) { continue; findname(fctx, &ns.name, 0, stdoptions, 0, now, - &need_alternate); + &overquota, &need_alternate); + +#ifdef ENABLE_FETCHLIMIT + if (!overquota) + all_spilled = ISC_FALSE; +#endif /* ENABLE_FETCHLIMIT */ + dns_rdata_reset(&rdata); dns_rdata_freestruct(&ns); } @@ -2788,13 +3045,13 @@ fctx_getaddresses(fetchctx_t *fctx, isc_boolean_t badcache) { int family; alternate_t *a; family = (res->dispatches6 != NULL) ? AF_INET6 : AF_INET; - for (a = ISC_LIST_HEAD(fctx->res->alternates); + for (a = ISC_LIST_HEAD(res->alternates); a != NULL; a = ISC_LIST_NEXT(a, link)) { if (!a->isaddress) { findname(fctx, &a->_u._n.name, a->_u._n.port, stdoptions, FCTX_ADDRINFO_FORWARDER, - now, NULL); + now, NULL, NULL); continue; } if (isc_sockaddr_pf(&a->_u.addr) != family) @@ -2853,10 +3110,21 @@ fctx_getaddresses(fetchctx_t *fctx, isc_boolean_t badcache) { fctx->type == dns_rdatatype_dlv || fctx->type == dns_rdatatype_ds) && result == ISC_R_SUCCESS) - dns_resolver_addbadcache(fctx->res, - &fctx->name, + dns_resolver_addbadcache(res, &fctx->name, fctx->type, &expire); - result = ISC_R_FAILURE; + +#ifdef ENABLE_FETCHLIMIT + /* + * If all of the addresses found were over the + * fetches-per-server quota, return the configured + * response. + */ + if (all_spilled) { + result = res->quotaresp[dns_quotatype_server]; + inc_stats(res, dns_resstatscounter_serverquota); + } else + result = ISC_R_FAILURE; +#endif /* ENABLE_FETCHLIMIT */ } } else { /* @@ -2907,6 +3175,9 @@ possibly_mark(fetchctx_t *fctx, dns_adbaddrinfo_t *addr) bogus) aborted = ISC_TRUE; + if (!isc_log_wouldlog(dns_lctx, ISC_LOG_DEBUG(3))) + return; + if (aborted) { addr->flags |= FCTX_ADDRINFO_MARK; msg = "ignoring blackholed / bogus server: "; @@ -2927,9 +3198,6 @@ possibly_mark(fetchctx_t *fctx, dns_adbaddrinfo_t *addr) } else return; - if (!isc_log_wouldlog(dns_lctx, ISC_LOG_DEBUG(3))) - return; - isc_netaddr_fromsockaddr(&na, sa); isc_netaddr_format(&na, buf, sizeof(buf)); FCTXTRACE2(msg, buf); @@ -3080,14 +3348,17 @@ fctx_nextaddress(fetchctx_t *fctx) { static void fctx_try(fetchctx_t *fctx, isc_boolean_t retrying, isc_boolean_t badcache) { isc_result_t result; - dns_adbaddrinfo_t *addrinfo; + dns_adbaddrinfo_t *addrinfo = NULL; + dns_resolver_t *res; FCTXTRACE("try"); REQUIRE(!ADDRWAIT(fctx)); + res = fctx->res; + /* We've already exceeded maximum query count */ - if (isc_counter_used(fctx->qc) > fctx->res->maxqueries) { + if (isc_counter_used(fctx->qc) > res->maxqueries) { isc_log_write(dns_lctx, DNS_LOGCATEGORY_RESOLVER, DNS_LOGMODULE_RESOLVER, ISC_LOG_DEBUG(3), "exceeded max queries resolving '%s'", @@ -3096,11 +3367,15 @@ fctx_try(fetchctx_t *fctx, isc_boolean_t retrying, isc_boolean_t badcache) { return; } - addrinfo = fctx_nextaddress(fctx); +#ifdef ENABLE_FETCHLIMIT + /* Try to find an address that isn't over quota */ + while ((addrinfo = fctx_nextaddress(fctx)) != NULL) + if (! dns_adbentry_overquota(addrinfo->entry)) + break; +#endif /* ENABLE_FETCHLIMIT */ + if (addrinfo == NULL) { - /* - * We have no more addresses. Start over. - */ + /* We have no more addresses. Start over. */ fctx_cancelqueries(fctx, ISC_TRUE); fctx_cleanupfinds(fctx); fctx_cleanupaltfinds(fctx); @@ -3122,7 +3397,15 @@ fctx_try(fetchctx_t *fctx, isc_boolean_t retrying, isc_boolean_t badcache) { return; } +#ifdef ENABLE_FETCHLIMIT + while ((addrinfo = fctx_nextaddress(fctx)) != NULL) { + if (! dns_adbentry_overquota(addrinfo->entry)) + break; + } +#else addrinfo = fctx_nextaddress(fctx); +#endif /* !ENABLE_FETCHLIMIT */ + /* * While we may have addresses from the ADB, they * might be bad ones. In this case, return SERVFAIL. @@ -3149,7 +3432,7 @@ fctx_try(fetchctx_t *fctx, isc_boolean_t retrying, isc_boolean_t badcache) { if (result != ISC_R_SUCCESS) fctx_done(fctx, result, __LINE__); else if (retrying) - inc_stats(fctx->res, dns_resstatscounter_retry); + inc_stats(res, dns_resstatscounter_retry); } static isc_boolean_t @@ -3244,6 +3527,11 @@ fctx_destroy(fetchctx_t *fctx) { } isc_counter_detach(&fctx->qc); + +#ifdef ENABLE_FETCHLIMIT + fcount_decr(fctx); +#endif /* ENABLE_FETCHLIMIT */ + isc_timer_detach(&fctx->timer); dns_message_destroy(&fctx->rmessage); dns_message_destroy(&fctx->qmessage); @@ -3284,6 +3572,7 @@ fctx_timeout(isc_task_t *task, isc_event_t *event) { fctx->timeouts++; fctx->timeout = ISC_TRUE; + /* * We could cancel the running queries here, or we could let * them keep going. Since we normally use separate sockets for @@ -3295,10 +3584,13 @@ fctx_timeout(isc_task_t *task, isc_event_t *event) { */ query = ISC_LIST_HEAD(fctx->queries); if (query != NULL && - isc_time_compare(&tevent->due, &query->start) >= 0) { + isc_time_compare(&tevent->due, &query->start) >= 0) + { + FCTXTRACE("query timed out; no response"); fctx_cancelquery(&query, NULL, NULL, ISC_TRUE); } fctx->attributes &= ~FCTX_ATTR_ADDRWAIT; + /* * Our timer has triggered. Reestablish the fctx lifetime * timer. @@ -3355,7 +3647,7 @@ fctx_doshutdown(isc_task_t *task, isc_event_t *event) { dns_resolver_t *res; unsigned int bucketnum; dns_validator_t *validator; - isc_boolean_t destroy = ISC_FALSE; + isc_boolean_t dodestroy = ISC_FALSE; REQUIRE(VALID_FCTX(fctx)); @@ -3407,12 +3699,12 @@ fctx_doshutdown(isc_task_t *task, isc_event_t *event) { if (fctx->references == 0 && fctx->pending == 0 && fctx->nqueries == 0 && ISC_LIST_EMPTY(fctx->validators)) { bucket_empty = fctx_unlink(fctx); - destroy = ISC_TRUE; + dodestroy = ISC_TRUE; } UNLOCK(&res->buckets[bucketnum].lock); - if (destroy) { + if (dodestroy) { fctx_destroy(fctx); if (bucket_empty) empty_bucket(res); @@ -3425,7 +3717,7 @@ fctx_start(isc_task_t *task, isc_event_t *event) { isc_boolean_t done = ISC_FALSE, bucket_empty = ISC_FALSE; dns_resolver_t *res; unsigned int bucketnum; - isc_boolean_t destroy = ISC_FALSE; + isc_boolean_t dodestroy = ISC_FALSE; REQUIRE(VALID_FCTX(fctx)); @@ -3459,7 +3751,7 @@ fctx_start(isc_task_t *task, isc_event_t *event) { * It's now safe to destroy this fctx. */ bucket_empty = fctx_unlink(fctx); - destroy = ISC_TRUE; + dodestroy = ISC_TRUE; } done = ISC_TRUE; } else { @@ -3481,7 +3773,7 @@ fctx_start(isc_task_t *task, isc_event_t *event) { if (!done) { isc_result_t result; - INSIST(!destroy); + INSIST(!dodestroy); /* * All is well. Start working on the fetch. @@ -3491,7 +3783,7 @@ fctx_start(isc_task_t *task, isc_event_t *event) { fctx_done(fctx, result, __LINE__); else fctx_try(fctx, ISC_FALSE, ISC_FALSE); - } else if (destroy) { + } else if (dodestroy) { fctx_destroy(fctx); if (bucket_empty) empty_bucket(res); @@ -3583,7 +3875,6 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, unsigned int findoptions = 0; char buf[DNS_NAME_FORMATSIZE + DNS_RDATATYPE_FORMATSIZE]; char typebuf[DNS_RDATATYPE_FORMATSIZE]; - dns_name_t suffix; isc_mem_t *mctx; /* @@ -3619,6 +3910,7 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, result = ISC_R_NOMEMORY; goto cleanup_counter; } + FCTXTRACE("create"); dns_name_init(&fctx->name, NULL); result = dns_name_dup(name, mctx, &fctx->name); @@ -3637,6 +3929,7 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, fctx->res = res; fctx->references = 0; fctx->bucketnum = bucketnum; + fctx->dbucketnum = RES_NOBUCKET; fctx->state = fetchstate_init; fctx->want_shutdown = ISC_FALSE; fctx->cloned = ISC_FALSE; @@ -3663,6 +3956,7 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, TIME_NOW(&fctx->start); fctx->timeouts = 0; fctx->lamecount = 0; + fctx->quotacount = 0; fctx->adberr = 0; fctx->neterr = 0; fctx->badresp = 0; @@ -3692,10 +3986,12 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, dns_forwarders_t *forwarders = NULL; unsigned int labels; dns_name_t *fwdname = name; + dns_name_t suffix; /* - * DS records are found in the parent server. - * Strip label to get the correct forwarder (if any). + * DS records are found in the parent server. Strip one + * leading label from the name (to be used in finding + * the forwarder). */ if (dns_rdatatype_atparent(fctx->type) && dns_name_countlabels(name) > 1) { @@ -3704,6 +4000,8 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, dns_name_getlabelsequence(name, 1, labels - 1, &suffix); fwdname = &suffix; } + + /* Find the forwarder for this name. */ dns_fixedname_init(&fixed); domain = dns_fixedname_name(&fixed); result = dns_fwdtable_find2(fctx->res->view->fwdtable, fwdname, @@ -3751,6 +4049,18 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, fctx->ns_ttl_ok = ISC_TRUE; } +#ifdef ENABLE_FETCHLIMIT + /* + * Are there too many simultaneous queries for this domain? + */ + result = fcount_incr(fctx, ISC_FALSE); + if (result != ISC_R_SUCCESS) { + result = fctx->res->quotaresp[dns_quotatype_zone]; + inc_stats(res, dns_resstatscounter_zonequota); + goto cleanup_domain; + } +#endif /* ENABLE_FETCHLIMIT */ + log_ns_ttl(fctx, "fctx_create"); INSIST(dns_name_issubdomain(&fctx->name, &fctx->domain)); @@ -3760,7 +4070,11 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, &fctx->qmessage); if (result != ISC_R_SUCCESS) +#ifdef ENABLE_FETCHLIMIT + goto cleanup_fcount; +#else goto cleanup_domain; +#endif /* !ENABLE_FETCHLIMIT */ fctx->rmessage = NULL; result = dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, @@ -3836,6 +4150,11 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, cleanup_qmessage: dns_message_destroy(&fctx->qmessage); +#ifdef ENABLE_FETCHLIMIT + cleanup_fcount: + fcount_decr(fctx); +#endif /* ENABLE_FETCHLIMIT */ + cleanup_domain: if (dns_name_countlabels(&fctx->domain) > 0) dns_name_free(&fctx->domain, mctx); @@ -4062,7 +4381,7 @@ maybe_destroy(fetchctx_t *fctx, isc_boolean_t locked) { isc_boolean_t bucket_empty = ISC_FALSE; dns_resolver_t *res = fctx->res; dns_validator_t *validator, *next_validator; - isc_boolean_t destroy = ISC_FALSE; + isc_boolean_t dodestroy = ISC_FALSE; REQUIRE(SHUTTINGDOWN(fctx)); @@ -4080,12 +4399,12 @@ maybe_destroy(fetchctx_t *fctx, isc_boolean_t locked) { if (fctx->references == 0 && ISC_LIST_EMPTY(fctx->validators)) { bucket_empty = fctx_unlink(fctx); - destroy = ISC_TRUE; + dodestroy = ISC_TRUE; } unlock: if (!locked) UNLOCK(&res->buckets[bucketnum].lock); - if (destroy) + if (dodestroy) fctx_destroy(fctx); return (bucket_empty); } @@ -6093,6 +6412,11 @@ noanswer_response(fetchctx_t *fctx, dns_name_t *oqname, * if so we should bail out. */ INSIST(dns_name_countlabels(&fctx->domain) > 0); + +#ifdef ENABLE_FETCHLIMIT + fcount_decr(fctx); +#endif /* ENABLE_FETCHLIMIT */ + dns_name_free(&fctx->domain, fctx->mctx); if (dns_rdataset_isassociated(&fctx->nameservers)) dns_rdataset_disassociate(&fctx->nameservers); @@ -6100,6 +6424,13 @@ noanswer_response(fetchctx_t *fctx, dns_name_t *oqname, result = dns_name_dup(ns_name, fctx->mctx, &fctx->domain); if (result != ISC_R_SUCCESS) return (result); + +#ifdef ENABLE_FETCHLIMIT + result = fcount_incr(fctx, ISC_TRUE); + if (result != ISC_R_SUCCESS) + return (result); +#endif /* ENABLE_FETCHLIMIT */ + fctx->attributes |= FCTX_ATTR_WANTCACHE; fctx->ns_ttl_ok = ISC_FALSE; log_ns_ttl(fctx, "DELEGATION"); @@ -6583,10 +6914,21 @@ answer_response(fetchctx_t *fctx) { return (result); } +static void +fctx_increference(fetchctx_t *fctx) { + REQUIRE(VALID_FCTX(fctx)); + + LOCK(&fctx->res->buckets[fctx->bucketnum].lock); + fctx->references++; + UNLOCK(&fctx->res->buckets[fctx->bucketnum].lock); +} + static isc_boolean_t fctx_decreference(fetchctx_t *fctx) { isc_boolean_t bucket_empty = ISC_FALSE; + REQUIRE(VALID_FCTX(fctx)); + INSIST(fctx->references > 0); fctx->references--; if (fctx->references == 0) { @@ -6655,6 +6997,11 @@ resume_dslookup(isc_task_t *task, isc_event_t *event) { fctx->ns_ttl = fctx->nameservers.ttl; fctx->ns_ttl_ok = ISC_TRUE; log_ns_ttl(fctx, "resume_dslookup"); + +#ifdef ENABLE_FETCHLIMIT + fcount_decr(fctx); +#endif /* ENABLE_FETCHLIMIT */ + dns_name_free(&fctx->domain, fctx->mctx); dns_name_init(&fctx->domain, NULL); result = dns_name_dup(&fctx->nsname, fctx->mctx, &fctx->domain); @@ -6662,6 +7009,15 @@ resume_dslookup(isc_task_t *task, isc_event_t *event) { fctx_done(fctx, DNS_R_SERVFAIL, __LINE__); goto cleanup; } + +#ifdef ENABLE_FETCHLIMIT + result = fcount_incr(fctx, ISC_TRUE); + if (result != ISC_R_SUCCESS) { + fctx_done(fctx, DNS_R_SERVFAIL, __LINE__); + goto cleanup; + } +#endif /* ENABLE_FETCHLIMIT */ + /* * Try again. */ @@ -6959,6 +7315,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) { if (fctx->res->exiting) { result = ISC_R_SHUTTINGDOWN; + FCTXTRACE("resolver shutting down"); goto done; } @@ -7013,6 +7370,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) { no_response = ISC_TRUE; } } + FCTXTRACE3("dispatcher failure", devent->result); goto done; } @@ -7020,18 +7378,25 @@ resquery_response(isc_task_t *task, isc_event_t *event) { if (query->tsig != NULL) { result = dns_message_setquerytsig(message, query->tsig); - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS) { + FCTXTRACE3("unable to set query tsig", result); goto done; + } } if (query->tsigkey) { result = dns_message_settsigkey(message, query->tsigkey); - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS) { + FCTXTRACE3("unable to set tsig key", result); goto done; + } } + if ((options & DNS_FETCHOPT_TCP) == 0) + dns_adb_plainresponse(fctx->adb, query->addrinfo); result = dns_message_parse(message, &devent->buffer, 0); if (result != ISC_R_SUCCESS) { + FCTXTRACE3("message failed to parse", result); switch (result) { case ISC_R_UNEXPECTEDEND: if (!message->question_ok || @@ -7114,8 +7479,10 @@ resquery_response(isc_task_t *task, isc_event_t *event) { * returns success anyway. */ result = dns_message_checksig(message, fctx->res->view); - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS) { + FCTXTRACE3("signature check failed", result); goto done; + } /* * The dispatcher should ensure we only get responses with QR set. @@ -7176,6 +7543,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) { options |= DNS_FETCHOPT_TCP; resend = ISC_TRUE; } + FCTXTRACE3("message truncated", result); goto done; } @@ -7186,6 +7554,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) { /* XXXRTH Log */ broken_server = DNS_R_UNEXPECTEDOPCODE; keep_trying = ISC_TRUE; + FCTXTRACE("invalid message opcode"); goto done; } @@ -7214,6 +7583,8 @@ resquery_response(isc_task_t *task, isc_event_t *event) { */ if (message->rcode != dns_rcode_noerror && message->rcode != dns_rcode_nxdomain) { + isc_buffer_t b; + char code[64]; if (((message->rcode == dns_rcode_formerr || message->rcode == dns_rcode_notimp) || (message->rcode == dns_rcode_servfail && @@ -7265,38 +7636,13 @@ resquery_response(isc_task_t *task, isc_event_t *event) { */ result = DNS_R_YXDOMAIN; } else if (message->rcode == dns_rcode_badvers) { - unsigned int flags, mask; - unsigned int version; - - resend = ISC_TRUE; - INSIST(opt != NULL); - version = (opt->ttl >> 16) & 0xff; - flags = (version << DNS_FETCHOPT_EDNSVERSIONSHIFT) | - DNS_FETCHOPT_EDNSVERSIONSET; - mask = DNS_FETCHOPT_EDNSVERSIONMASK | - DNS_FETCHOPT_EDNSVERSIONSET; - /* - * Record that we got a good EDNS response. - */ - if (query->ednsversion > (int)version && - !EDNSOK(query->addrinfo)) { - dns_adb_changeflags(fctx->adb, query->addrinfo, - FCTX_ADDRINFO_EDNSOK, - FCTX_ADDRINFO_EDNSOK); - } /* - * Record the supported EDNS version. + * This should be impossible as we only send EDNS + * version 0 requests and to return BADVERS you + * need to support EDNS as it is a extended rcode. */ - switch (version) { - case 0: - dns_adb_changeflags(fctx->adb, query->addrinfo, - flags, mask); - break; - default: - broken_server = DNS_R_BADVERS; - keep_trying = ISC_TRUE; - break; - } + broken_server = DNS_R_BADVERS; + keep_trying = ISC_TRUE; } else { /* * XXXRTH log. @@ -7305,6 +7651,11 @@ resquery_response(isc_task_t *task, isc_event_t *event) { INSIST(broken_server != ISC_R_SUCCESS); keep_trying = ISC_TRUE; } + + isc_buffer_init(&b, code, sizeof(code) - 1); + dns_rcode_totext(fctx->rmessage->rcode, &b); + code[isc_buffer_usedlength(&b)] = '\0'; + FCTXTRACE2("remote server broken: returned ", code); goto done; } @@ -7316,6 +7667,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) { /* XXXRTH Log */ if (result == DNS_R_FORMERR) keep_trying = ISC_TRUE; + FCTXTRACE3("response did not match question", result); goto done; } @@ -7336,6 +7688,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) { isc_result_totext(result)); broken_server = DNS_R_LAME; keep_trying = ISC_TRUE; + FCTXTRACE("lame server"); goto done; } @@ -7388,22 +7741,31 @@ resquery_response(isc_task_t *task, isc_event_t *event) { */ if ((message->flags & DNS_MESSAGEFLAG_AA) != 0 || ISFORWARDER(query->addrinfo)) + { result = answer_response(fctx); - else if (iscname(fctx) && + if (result != ISC_R_SUCCESS) + FCTXTRACE3("answer_response (AA/fwd)", result); + } else if (iscname(fctx) && fctx->type != dns_rdatatype_any && - fctx->type != dns_rdatatype_cname) { + fctx->type != dns_rdatatype_cname) + { /* * A BIND8 server could return a non-authoritative * answer when a CNAME is followed. We should treat * it as a valid answer. */ result = answer_response(fctx); + if (result != ISC_R_SUCCESS) + FCTXTRACE3("answer_response (!ANY/!CNAME)", + result); } else if (fctx->type != dns_rdatatype_ns && !betterreferral(fctx)) { /* * Lame response !!!. */ result = answer_response(fctx); + if (result != ISC_R_SUCCESS) + FCTXTRACE3("answer_response (!NS)", result); } else { if (fctx->type == dns_rdatatype_ns) { /* @@ -7416,6 +7778,9 @@ resquery_response(isc_task_t *task, isc_event_t *event) { */ result = noanswer_response(fctx, NULL, LOOK_FOR_NS_IN_ANSWER); + if (result != ISC_R_SUCCESS) + FCTXTRACE3("noanswer_response (NS)", + result); } else { /* * Some other servers may still somehow include @@ -7431,6 +7796,8 @@ resquery_response(isc_task_t *task, isc_event_t *event) { */ result = noanswer_response(fctx, NULL, LOOK_FOR_GLUE_IN_ANSWER); + if (result != ISC_R_SUCCESS) + FCTXTRACE3("noanswer_response", result); } if (result != DNS_R_DELEGATION) { /* @@ -7483,6 +7850,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) { fctx->referrals++; fctx->querysent = 0; fctx->lamecount = 0; + fctx->quotacount = 0; fctx->neterr = 0; fctx->badresp = 0; fctx->adberr = 0; @@ -7495,6 +7863,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) { */ if (result == DNS_R_FORMERR) keep_trying = ISC_TRUE; + FCTXTRACE3("noanswer_response", result); goto done; } } else { @@ -7504,6 +7873,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) { /* XXXRTH Log */ broken_server = DNS_R_UNEXPECTEDRCODE; keep_trying = ISC_TRUE; + FCTXTRACE("broken server: unexpected rcode"); goto done; } @@ -7518,8 +7888,10 @@ resquery_response(isc_task_t *task, isc_event_t *event) { */ if (WANTCACHE(fctx)) { result = cache_message(fctx, query->addrinfo, now); - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS) { + FCTXTRACE3("cache_message complete", result); goto done; + } } /* @@ -7542,6 +7914,8 @@ resquery_response(isc_task_t *task, isc_event_t *event) { * Cache any negative cache entries in the message. */ result = ncache_message(fctx, query->addrinfo, covers, now); + if (result != ISC_R_SUCCESS) + FCTXTRACE3("ncache_message complete", result); } done: @@ -7551,6 +7925,10 @@ resquery_response(isc_task_t *task, isc_event_t *event) { */ addrinfo = query->addrinfo; + FCTXTRACE4("query canceled in response(); ", + no_response ? "no response" : "responding", + result); + /* * Cancel the query. * @@ -7604,6 +7982,11 @@ resquery_response(isc_task_t *task, isc_event_t *event) { fctx_done(fctx, DNS_R_SERVFAIL, __LINE__); return; } + +#ifdef ENABLE_FETCHLIMIT + fcount_decr(fctx); +#endif /* ENABLE_FETCHLIMIT */ + dns_name_free(&fctx->domain, fctx->mctx); dns_name_init(&fctx->domain, NULL); result = dns_name_dup(fname, fctx->mctx, &fctx->domain); @@ -7611,6 +7994,15 @@ resquery_response(isc_task_t *task, isc_event_t *event) { fctx_done(fctx, DNS_R_SERVFAIL, __LINE__); return; } + +#ifdef ENABLE_FETCHLIMIT + result = fcount_incr(fctx, ISC_TRUE); + if (result != ISC_R_SUCCESS) { + fctx_done(fctx, DNS_R_SERVFAIL, __LINE__); + return; + } +#endif /* ENABLE_FETCHLIMIT */ + fctx->ns_ttl = fctx->nameservers.ttl; fctx->ns_ttl_ok = ISC_TRUE; fctx_cancelqueries(fctx, ISC_TRUE); @@ -7667,9 +8059,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) { if (result != ISC_R_SUCCESS) fctx_done(fctx, result, __LINE__); else { - LOCK(&fctx->res->buckets[fctx->bucketnum].lock); - fctx->references++; - UNLOCK(&fctx->res->buckets[fctx->bucketnum].lock); + fctx_increference(fctx); result = fctx_stopidletimer(fctx); if (result != ISC_R_SUCCESS) fctx_done(fctx, result, __LINE__); @@ -7733,6 +8123,15 @@ destroy(dns_resolver_t *res) { } isc_mem_put(res->mctx, res->buckets, res->nbuckets * sizeof(fctxbucket_t)); +#ifdef ENABLE_FETCHLIMIT + for (i = 0; i < RES_DOMAIN_BUCKETS; i++) { + INSIST(ISC_LIST_EMPTY(res->dbuckets[i].list)); + isc_mem_detach(&res->dbuckets[i].mctx); + DESTROYLOCK(&res->dbuckets[i].lock); + } + isc_mem_put(res->mctx, res->dbuckets, + RES_DOMAIN_BUCKETS * sizeof(zonebucket_t)); +#endif /* ENABLE_FETCHLIMIT */ if (res->dispatches4 != NULL) dns_dispatchset_destroy(&res->dispatches4); if (res->dispatches6 != NULL) @@ -7842,6 +8241,9 @@ dns_resolver_create(dns_view_t *view, isc_task_t *task = NULL; char name[16]; unsigned dispattr; +#ifdef ENABLE_FETCHLIMIT + unsigned int dbuckets_created = 0; +#endif /* ENABLE_FETCHLIMIT */ /* * Create a resolver. @@ -7878,10 +8280,13 @@ dns_resolver_create(dns_view_t *view, res->spillatmin = res->spillat = 10; res->spillatmax = 100; res->spillattimer = NULL; + res->zspill = 0; res->zero_no_soa_ttl = ISC_FALSE; res->query_timeout = DEFAULT_QUERY_TIMEOUT; res->maxdepth = DEFAULT_RECURSION_DEPTH; res->maxqueries = DEFAULT_MAX_QUERIES; + res->quotaresp[dns_quotatype_zone] = DNS_R_DROP; + res->quotaresp[dns_quotatype_server] = DNS_R_SERVFAIL; res->nbuckets = ntasks; res->activebuckets = ntasks; res->buckets = isc_mem_get(view->mctx, @@ -7924,6 +8329,26 @@ dns_resolver_create(dns_view_t *view, buckets_created++; } +#ifdef ENABLE_FETCHLIMIT + res->dbuckets = isc_mem_get(view->mctx, + RES_DOMAIN_BUCKETS * sizeof(zonebucket_t)); + if (res->dbuckets == NULL) { + result = ISC_R_NOMEMORY; + goto cleanup_buckets; + } + for (i = 0; i < RES_DOMAIN_BUCKETS; i++) { + ISC_LIST_INIT(res->dbuckets[i].list); + res->dbuckets[i].mctx = NULL; + isc_mem_attach(view->mctx, &res->dbuckets[i].mctx); + result = isc_mutex_init(&res->dbuckets[i].lock); + if (result != ISC_R_SUCCESS) { + isc_mem_detach(&res->dbuckets[i].mctx); + goto cleanup_dbuckets; + } + dbuckets_created++; + } +#endif /* ENABLE_FETCHLIMIT */ + res->dispatches4 = NULL; if (dispatchv4 != NULL) { dns_dispatchset_create(view->mctx, socketmgr, taskmgr, @@ -8017,6 +8442,16 @@ dns_resolver_create(dns_view_t *view, if (res->dispatches4 != NULL) dns_dispatchset_destroy(&res->dispatches4); +#ifdef ENABLE_FETCHLIMIT + cleanup_dbuckets: + for (i = 0; i < dbuckets_created; i++) { + DESTROYLOCK(&res->dbuckets[i].lock); + isc_mem_detach(&res->dbuckets[i].mctx); + } + isc_mem_put(view->mctx, res->dbuckets, + RES_DOMAIN_BUCKETS * sizeof(zonebucket_t)); +#endif /* ENABLE_FETCHLIMIT*/ + cleanup_buckets: for (i = 0; i < buckets_created; i++) { isc_mem_detach(&res->buckets[i].mctx); @@ -8298,6 +8733,10 @@ log_fetch(dns_name_t *name, dns_rdatatype_t type) { char typebuf[DNS_RDATATYPE_FORMATSIZE]; int level = ISC_LOG_DEBUG(1); + /* + * If there's no chance of logging it, don't render (format) the + * name and RDATA type (further below), and return early. + */ if (! isc_log_wouldlog(dns_lctx, level)) return; @@ -8366,7 +8805,7 @@ dns_resolver_createfetch3(dns_resolver_t *res, dns_name_t *name, unsigned int count = 0; unsigned int spillat; unsigned int spillatmin; - isc_boolean_t destroy = ISC_FALSE; + isc_boolean_t dodestroy = ISC_FALSE; UNUSED(forwarders); @@ -8471,14 +8910,14 @@ dns_resolver_createfetch3(dns_resolver_t *res, dns_name_t *name, * since we know we're not exiting. */ (void)fctx_unlink(fctx); - destroy = ISC_TRUE; + dodestroy = ISC_TRUE; } } unlock: UNLOCK(&res->buckets[bucketnum].lock); - if (destroy) + if (dodestroy) fctx_destroy(fctx); if (result == ISC_R_SUCCESS) { @@ -8607,8 +9046,12 @@ dns_resolver_logfetch(dns_fetch_t *fetch, isc_log_t *lctx, "%" ISC_PRINT_QUADFORMAT "u." "%06" ISC_PRINT_QUADFORMAT "u: %s/%s " "[domain:%s,referral:%u,restart:%u,qrysent:%u," - "timeout:%u,lame:%u,neterr:%u,badresp:%u," - "adberr:%u,findfail:%u,valfail:%u]", + "timeout:%u,lame:%u," +#ifdef ENABLE_FETCHLIMIT + "quota:%u," +#endif /* ENABLE_FETCHLIMIT */ + "neterr:%u," + "badresp:%u,adberr:%u,findfail:%u,valfail:%u]", __FILE__, fctx->exitline, fctx->info, fctx->duration / US_PER_SEC, fctx->duration % US_PER_SEC, @@ -8616,6 +9059,9 @@ dns_resolver_logfetch(dns_fetch_t *fetch, isc_log_t *lctx, isc_result_totext(fctx->vresult), domainbuf, fctx->referrals, fctx->restarts, fctx->querysent, fctx->timeouts, fctx->lamecount, +#ifdef ENABLE_FETCHLIMIT + fctx->quotacount, +#endif /* ENABLE_FETCHLIMIT */ fctx->neterr, fctx->badresp, fctx->adberr, fctx->findfail, fctx->valfail); fctx->logged = ISC_TRUE; @@ -8724,6 +9170,11 @@ dns_resolver_flushbadcache(dns_resolver_t *resolver, dns_name_t *name) { unsigned int i; dns_badcache_t *bad, *prev, *next; + /* + * Drop all entries that match the name, and also all expired + * entries from the badcache. + */ + REQUIRE(VALID_RESOLVER(resolver)); LOCK(&resolver->lock); @@ -8767,6 +9218,13 @@ resizehash(dns_resolver_t *resolver, isc_time_t *now, isc_boolean_t grow) { dns_badcache_t **new, *bad, *next; unsigned int i; + /* + * The number of buckets in the hashtable is modified in this + * function. Afterwards, all the entries are remapped into the + * corresponding new slot. Rehashing (hash computation) is + * unnecessary as the hash values had been saved. + */ + if (grow) newsize = resolver->badhash * 2 + 1; else @@ -8777,6 +9235,13 @@ resizehash(dns_resolver_t *resolver, isc_time_t *now, isc_boolean_t grow) { if (new == NULL) return; memset(new, 0, sizeof(*resolver->badcache) * newsize); + + /* + * Because the hashtable implements a simple modulus mapping + * from hash to bucket (no extendible hashing is used), every + * name in the hashtable has to be remapped to its new slot. + * Entries that have expired (time) are dropped. + */ for (i = 0; i < resolver->badhash; i++) { for (bad = resolver->badcache[i]; bad != NULL; bad = next) { next = bad->next; @@ -8805,6 +9270,18 @@ dns_resolver_addbadcache(dns_resolver_t *resolver, dns_name_t *name, unsigned int i, hashval; dns_badcache_t *bad, *prev, *next; + /* + * The badcache is implemented as a hashtable keyed on the name, + * and each bucket slot points to a linked list (separate + * chaining). + * + * To avoid long list chains, if the number of entries in the + * hashtable goes over number-of-buckets * 8, the + * number-of-buckets is doubled. Similarly, if the number of + * entries goes below number-of-buckets * 2, the number-of-buckets + * is halved. See resizehash(). + */ + REQUIRE(VALID_RESOLVER(resolver)); LOCK(&resolver->lock); @@ -8829,6 +9306,7 @@ dns_resolver_addbadcache(dns_resolver_t *resolver, dns_name_t *name, next = bad->next; if (bad->type == type && dns_name_equal(name, &bad->name)) break; + /* Drop expired entries when walking the chain. */ if (isc_time_compare(&bad->expire, &now) < 0) { if (prev == NULL) resolver->badcache[i] = bad->next; @@ -8841,6 +9319,12 @@ dns_resolver_addbadcache(dns_resolver_t *resolver, dns_name_t *name, prev = bad; } if (bad == NULL) { + /* + * Insert the name into the badcache hashtable at the + * head of the linked list at the appropriate slot. The + * name data follows right after the allocation for the + * linked list node. + */ isc_buffer_t buffer; bad = isc_mem_get(resolver->mctx, sizeof(*bad) + name->length); if (bad == NULL) @@ -8999,6 +9483,12 @@ dns_resolver_disable_algorithm(dns_resolver_t *resolver, dns_name_t *name, isc_result_t result; dns_rbtnode_t *node = NULL; + /* + * Whether an algorithm is disabled (or not) is stored in a + * per-name bitfield that is stored as the node data of an + * RBT. + */ + REQUIRE(VALID_RESOLVER(resolver)); if (alg > 255) return (ISC_R_RANGE); @@ -9020,7 +9510,17 @@ dns_resolver_disable_algorithm(dns_resolver_t *resolver, dns_name_t *name, if (result == ISC_R_SUCCESS || result == ISC_R_EXISTS) { algorithms = node->data; + /* + * If algorithms is set, algorithms[0] contains its + * length. + */ if (algorithms == NULL || len > *algorithms) { + /* + * If no bitfield exists in the node data, or if + * it is not long enough, allocate a new + * bitfield and copy the old (smaller) bitfield + * into it if one exists. + */ new = isc_mem_get(resolver->mctx, len); if (new == NULL) { result = ISC_R_NOMEMORY; @@ -9030,8 +9530,10 @@ dns_resolver_disable_algorithm(dns_resolver_t *resolver, dns_name_t *name, if (algorithms != NULL) memmove(new, algorithms, *algorithms); new[len-1] |= mask; + /* new[0] should contain the length of new. */ *new = len; node->data = new; + /* Free the older bitfield. */ if (algorithms != NULL) isc_mem_put(resolver->mctx, algorithms, *algorithms); @@ -9058,6 +9560,12 @@ dns_resolver_algorithm_supported(dns_resolver_t *resolver, dns_name_t *name, REQUIRE(VALID_RESOLVER(resolver)); + /* + * DH is unsupported for DNSKEYs, see RFC 4034 sec. A.1. + */ + if ((alg == DST_ALG_DH) || (alg == DST_ALG_INDIRECT)) + return (ISC_FALSE); + #if USE_ALGLOCK RWLOCK(&resolver->alglock, isc_rwlocktype_read); #endif @@ -9077,6 +9585,7 @@ dns_resolver_algorithm_supported(dns_resolver_t *resolver, dns_name_t *name, #endif if (found) return (ISC_FALSE); + return (dst_algorithm_supported(alg)); } @@ -9181,6 +9690,24 @@ dns_resolver_setclientsperquery(dns_resolver_t *resolver, isc_uint32_t min, UNLOCK(&resolver->lock); } +void +dns_resolver_setfetchesperzone(dns_resolver_t *resolver, isc_uint32_t clients) +{ +#ifdef ENABLE_FETCHLIMIT + REQUIRE(VALID_RESOLVER(resolver)); + + LOCK(&resolver->lock); + resolver->zspill = clients; + UNLOCK(&resolver->lock); +#else + UNUSED(resolver); + UNUSED(clients); + + return; +#endif /* !ENABLE_FETCHLIMIT */ +} + + isc_boolean_t dns_resolver_getzeronosoattl(dns_resolver_t *resolver) { REQUIRE(VALID_RESOLVER(resolver)); @@ -9246,3 +9773,67 @@ dns_resolver_getmaxqueries(dns_resolver_t *resolver) { REQUIRE(VALID_RESOLVER(resolver)); return (resolver->maxqueries); } + +void +dns_resolver_dumpfetches(dns_resolver_t *resolver, FILE *fp) { +#ifdef ENABLE_FETCHLIMIT + int i; + + REQUIRE(VALID_RESOLVER(resolver)); + REQUIRE(fp != NULL); + + for (i = 0; i < RES_DOMAIN_BUCKETS; i++) { + fctxcount_t *fc; + LOCK(&resolver->dbuckets[i].lock); + for (fc = ISC_LIST_HEAD(resolver->dbuckets[i].list); + fc != NULL; + fc = ISC_LIST_NEXT(fc, link)) + { + dns_name_print(fc->domain, fp); + fprintf(fp, ": %d active (%d spilled, %d allowed)\n", + fc->count, fc->dropped, fc->allowed); + } + UNLOCK(&resolver->dbuckets[i].lock); + } +#else + UNUSED(resolver); + UNUSED(fp); + + return; +#endif /* !ENABLE_FETCHLIMIT */ +} + +void +dns_resolver_setquotaresponse(dns_resolver_t *resolver, + dns_quotatype_t which, isc_result_t resp) +{ +#ifdef ENABLE_FETCHLIMIT + REQUIRE(VALID_RESOLVER(resolver)); + REQUIRE(which == dns_quotatype_zone || which == dns_quotatype_server); + REQUIRE(resp == DNS_R_DROP || resp == DNS_R_SERVFAIL); + + resolver->quotaresp[which] = resp; +#else + UNUSED(resolver); + UNUSED(which); + UNUSED(resp); + + return; +#endif /* !ENABLE_FETCHLIMIT */ +} + +isc_result_t +dns_resolver_getquotaresponse(dns_resolver_t *resolver, dns_quotatype_t which) +{ +#ifdef ENABLE_FETCHLIMIT + REQUIRE(VALID_RESOLVER(resolver)); + REQUIRE(which == dns_quotatype_zone || which == dns_quotatype_server); + + return (resolver->quotaresp[which]); +#else + UNUSED(resolver); + UNUSED(which); + + return (ISC_R_NOTIMPLEMENTED); +#endif /* !ENABLE_FETCHLIMIT */ +} diff --git a/lib/dns/result.c b/lib/dns/result.c index 39879532d485..7be4f577ed86 100644 --- a/lib/dns/result.c +++ b/lib/dns/result.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -162,7 +162,12 @@ static const char *text[DNS_R_NRESULTS] = { "broken trust chain", /*%< 106 DNS_R_BROKENCHAIN */ "expired", /*%< 107 DNS_R_EXPIRED */ "not dynamic", /*%< 108 DNS_R_NOTDYNAMIC */ - "bad EUI" /*%< 109 DNS_R_BADEUI */ + "bad EUI", /*%< 109 DNS_R_BADEUI */ + + "covered by negative trust anchor", /*%< 110 DNS_R_NTACOVERED */ + "bad CDS", /*%< 111 DNS_R_BADCSD */ + "bad CDNSKEY", /*%< 112 DNS_R_BADCDNSKEY */ + "malformed OPT option" /*%< 113 DNS_R_OPTERR */ }; static const char *rcode_text[DNS_R_NRCODERESULTS] = { @@ -238,6 +243,7 @@ dns_result_torcode(isc_result_t result) { */ return ((dns_rcode_t)((result) & 0xFFF)); } + /* * Try to supply an appropriate rcode. */ @@ -267,6 +273,7 @@ dns_result_torcode(isc_result_t result) { case DNS_R_TSIGERRORSET: case DNS_R_UNKNOWN: case DNS_R_NAMETOOLONG: + case DNS_R_OPTERR: rcode = dns_rcode_formerr; break; case DNS_R_DISALLOWED: diff --git a/lib/dns/rpz.c b/lib/dns/rpz.c index 3dd80664c7dc..dc8c2c920443 100644 --- a/lib/dns/rpz.c +++ b/lib/dns/rpz.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2011-2015 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 @@ -14,9 +14,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id$ */ - - /*! \file */ #include <config.h> @@ -741,13 +738,14 @@ diff_keys(const dns_rpz_cidr_key_t *key1, dns_rpz_cidr_bits_t bits1, dns_rpz_cidr_bits_t maxbit, bit; int i; + bit = 0; maxbit = ISC_MIN(bits1, bits2); /* * find the first differing words */ - for (i = 0, bit = 0; - bit <= maxbit; + for (i = 0; + bit < maxbit; i++, bit += DNS_RPZ_CIDR_WORD_BITS) { delta = key1->w[i] ^ key2->w[i]; if (delta != 0) { diff --git a/lib/dns/rrl.c b/lib/dns/rrl.c index 08fc8e712ffa..0c247e95cf7f 100644 --- a/lib/dns/rrl.c +++ b/lib/dns/rrl.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2013-2015 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 @@ -376,7 +376,7 @@ hash_key(const dns_rrl_key_t *key) { int i; hval = key->w[0]; - for (i = sizeof(*key) / sizeof(key->w[0]) - 1; i >= 0; --i) { + for (i = sizeof(key->w) / sizeof(key->w[0]) - 1; i >= 0; --i) { hval = key->w[i] + (hval<<1); } return (hval); @@ -1161,22 +1161,17 @@ dns_rrl(dns_view_t *view, client_addr, now, log_buf, log_buf_len); if (rrl_all_result != DNS_RRL_RESULT_OK) { - int level; - e = e_all; rrl_result = rrl_all_result; - if (rrl_result == DNS_RRL_RESULT_OK) - level = DNS_RRL_LOG_DEBUG2; - else - level = DNS_RRL_LOG_DEBUG1; - if (isc_log_wouldlog(dns_lctx, level)) { + if (isc_log_wouldlog(dns_lctx, DNS_RRL_LOG_DEBUG1)) { make_log_buf(rrl, e, "prefer all-per-second limiting ", NULL, ISC_TRUE, qname, ISC_FALSE, DNS_RRL_RESULT_OK, resp_result, log_buf, log_buf_len); isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL, - DNS_LOGMODULE_REQUEST, level, + DNS_LOGMODULE_REQUEST, + DNS_RRL_LOG_DEBUG1, "%s", log_buf); } } diff --git a/lib/dns/sdb.c b/lib/dns/sdb.c index 191fda219f46..f0ffc3d6f384 100644 --- a/lib/dns/sdb.c +++ b/lib/dns/sdb.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2012, 2015 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 @@ -305,12 +305,10 @@ dns_sdb_putrdata(dns_sdblookup_t *lookup, dns_rdatatype_t typeval, rdatalist = isc_mem_get(mctx, sizeof(dns_rdatalist_t)); if (rdatalist == NULL) return (ISC_R_NOMEMORY); + dns_rdatalist_init(rdatalist); rdatalist->rdclass = lookup->sdb->common.rdclass; rdatalist->type = typeval; - rdatalist->covers = 0; rdatalist->ttl = ttl; - ISC_LIST_INIT(rdatalist->rdata); - ISC_LINK_INIT(rdatalist, link); ISC_LIST_APPEND(lookup->lists, rdatalist, link); } else if (rdatalist->ttl != ttl) @@ -1246,9 +1244,9 @@ ispersistent(dns_db_t *db) { } static void -overmem(dns_db_t *db, isc_boolean_t overmem) { +overmem(dns_db_t *db, isc_boolean_t over) { UNUSED(db); - UNUSED(overmem); + UNUSED(over); } static void diff --git a/lib/dns/sdlz.c b/lib/dns/sdlz.c index 9d4e615802fa..3b245419d099 100644 --- a/lib/dns/sdlz.c +++ b/lib/dns/sdlz.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2005-2012 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2005-2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1999-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -1190,9 +1190,9 @@ ispersistent(dns_db_t *db) { } static void -overmem(dns_db_t *db, isc_boolean_t overmem) { +overmem(dns_db_t *db, isc_boolean_t over) { UNUSED(db); - UNUSED(overmem); + UNUSED(over); } static void @@ -1805,12 +1805,10 @@ dns_sdlz_putrr(dns_sdlzlookup_t *lookup, const char *type, dns_ttl_t ttl, rdatalist = isc_mem_get(mctx, sizeof(dns_rdatalist_t)); if (rdatalist == NULL) return (ISC_R_NOMEMORY); + dns_rdatalist_init(rdatalist); rdatalist->rdclass = lookup->sdlz->common.rdclass; rdatalist->type = typeval; - rdatalist->covers = 0; rdatalist->ttl = ttl; - ISC_LIST_INIT(rdatalist->rdata); - ISC_LINK_INIT(rdatalist, link); ISC_LIST_APPEND(lookup->lists, rdatalist, link); } else if (rdatalist->ttl > ttl) { diff --git a/lib/dns/spnego.c b/lib/dns/spnego.c index 2da79f8b55ce..0de332fc6a68 100644 --- a/lib/dns/spnego.c +++ b/lib/dns/spnego.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2006-2015 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 @@ -14,8 +14,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id$ */ - /*! \file * \brief * Portable SPNEGO implementation. @@ -146,6 +144,7 @@ #include <isc/mem.h> #include <isc/once.h> #include <isc/random.h> +#include <isc/safe.h> #include <isc/string.h> #include <isc/time.h> #include <isc/util.h> @@ -372,7 +371,7 @@ gssapi_spnego_decapsulate(OM_uint32 *, /* mod_auth_kerb.c */ static int -cmp_gss_type(gss_buffer_t token, gss_OID oid) +cmp_gss_type(gss_buffer_t token, gss_OID gssoid) { unsigned char *p; size_t len; @@ -392,10 +391,10 @@ cmp_gss_type(gss_buffer_t token, gss_OID oid) if (*p++ != 0x06) return (GSS_S_DEFECTIVE_TOKEN); - if (((OM_uint32) *p++) != oid->length) + if (((OM_uint32) *p++) != gssoid->length) return (GSS_S_DEFECTIVE_TOKEN); - return (memcmp(p, oid->elements, oid->length)); + return (isc_safe_memcompare(p, gssoid->elements, gssoid->length)); } /* accept_sec_context.c */ @@ -635,16 +634,18 @@ gss_accept_sec_context_spnego(OM_uint32 *minor_status, return (GSS_S_DEFECTIVE_TOKEN); } if (mech_len == GSS_KRB5_MECH->length && - memcmp(GSS_KRB5_MECH->elements, - mechbuf + sizeof(mechbuf) - mech_len, - mech_len) == 0) { + isc_safe_memequal(GSS_KRB5_MECH->elements, + mechbuf + sizeof(mechbuf) - mech_len, + mech_len)) + { found = 1; break; } if (mech_len == GSS_MSKRB5_MECH->length && - memcmp(GSS_MSKRB5_MECH->elements, - mechbuf + sizeof(mechbuf) - mech_len, - mech_len) == 0) { + isc_safe_memequal(GSS_MSKRB5_MECH->elements, + mechbuf + sizeof(mechbuf) - mech_len, + mech_len)) + { found = 1; if (i == 0) pref = GSS_MSKRB5_MECH; @@ -715,7 +716,7 @@ gssapi_verify_mech_header(u_char ** str, p += foo; if (mech_len != mech->length) return (GSS_S_BAD_MECH); - if (memcmp(p, mech->elements, mech->length) != 0) + if (!isc_safe_memequal(p, mech->elements, mech->length)) return (GSS_S_BAD_MECH); p += mech_len; *str = p; @@ -1668,7 +1669,7 @@ spnego_reply(OM_uint32 *minor_status, buf = input_token->value; buf_size = input_token->length; } else if ((size_t)mech_len == GSS_KRB5_MECH->length && - memcmp(GSS_KRB5_MECH->elements, p, mech_len) == 0) + isc_safe_memequal(GSS_KRB5_MECH->elements, p, mech_len)) return (gss_init_sec_context(minor_status, initiator_cred_handle, context_handle, @@ -1683,7 +1684,7 @@ spnego_reply(OM_uint32 *minor_status, ret_flags, time_rec)); else if ((size_t)mech_len == GSS_SPNEGO_MECH->length && - memcmp(GSS_SPNEGO_MECH->elements, p, mech_len) == 0) { + isc_safe_memequal(GSS_SPNEGO_MECH->elements, p, mech_len)) { ret = gssapi_spnego_decapsulate(minor_status, input_token, &buf, @@ -1721,9 +1722,9 @@ spnego_reply(OM_uint32 *minor_status, resp.supportedMech, &oidlen); if (ret || oidlen != GSS_KRB5_MECH->length || - memcmp(oidbuf + sizeof(oidbuf) - oidlen, - GSS_KRB5_MECH->elements, - oidlen) != 0) { + !isc_safe_memequal(oidbuf + sizeof(oidbuf) - oidlen, + GSS_KRB5_MECH->elements, oidlen)) + { free_NegTokenResp(&resp); return GSS_S_BAD_MECH; } diff --git a/lib/dns/tcpmsg.c b/lib/dns/tcpmsg.c index 49add56f37a6..bffb0c50c145 100644 --- a/lib/dns/tcpmsg.c +++ b/lib/dns/tcpmsg.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -22,6 +22,7 @@ #include <config.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/task.h> #include <isc/util.h> diff --git a/lib/dns/tkey.c b/lib/dns/tkey.c index 0bfc7ef6c5dc..0b5440a67d80 100644 --- a/lib/dns/tkey.c +++ b/lib/dns/tkey.c @@ -15,9 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* - * $Id$ - */ /*! \file */ #include <config.h> @@ -25,6 +22,7 @@ #include <isc/entropy.h> #include <isc/md5.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/string.h> #include <isc/util.h> @@ -45,6 +43,7 @@ #include <dst/dst.h> #include <dst/gssapi.h> +#define TEMP_BUFFER_SZ 8192 #define TKEY_RANDOM_AMOUNT 16 #define RETERR(x) do { \ @@ -67,19 +66,38 @@ tkey_log(const char *fmt, ...) { } static void -_dns_tkey_dumpmessage(dns_message_t *msg) { +dumpmessage(dns_message_t *msg) { isc_buffer_t outbuf; - unsigned char output[4096]; + unsigned char *output; + int len = TEMP_BUFFER_SZ; isc_result_t result; - isc_buffer_init(&outbuf, output, sizeof(output)); - result = dns_message_totext(msg, &dns_master_style_debug, 0, - &outbuf); - if (result != ISC_R_SUCCESS) - fprintf(stderr, "Warning: dns_message_totext returned: %s\n", - dns_result_totext(result)); - fprintf(stderr, "%.*s\n", (int)isc_buffer_usedlength(&outbuf), - (char *)isc_buffer_base(&outbuf)); + for (;;) { + output = isc_mem_get(msg->mctx, len); + if (output == NULL) + return; + + isc_buffer_init(&outbuf, output, len); + result = dns_message_totext(msg, &dns_master_style_debug, + 0, &outbuf); + if (result == ISC_R_NOSPACE) { + isc_mem_put(msg->mctx, output, len); + len *= 2; + continue; + } + + if (result == ISC_R_SUCCESS) + tkey_log("%.*s", + (int)isc_buffer_usedlength(&outbuf), + (char *)isc_buffer_base(&outbuf)); + else + tkey_log("Warning: dns_message_totext: %s", + dns_result_totext(result)); + break; + } + + if (output != NULL) + isc_mem_put(msg->mctx, output, len); } isc_result_t @@ -163,9 +181,7 @@ add_rdata_to_list(dns_message_t *msg, dns_name_t *name, dns_rdata_t *rdata, RETERR(dns_message_gettemprdatalist(msg, &newlist)); newlist->rdclass = newrdata->rdclass; newlist->type = newrdata->type; - newlist->covers = 0; newlist->ttl = ttl; - ISC_LIST_INIT(newlist->rdata); ISC_LIST_APPEND(newlist->rdata, newrdata, link); RETERR(dns_message_gettemprdataset(msg, &newset)); @@ -862,6 +878,7 @@ buildquery(dns_message_t *msg, dns_name_t *name, dns_rdata_t *rdata = NULL; isc_buffer_t *dynbuf = NULL, *anamebuf = NULL, *qnamebuf = NULL; isc_result_t result; + unsigned int len; REQUIRE(msg != NULL); REQUIRE(name != NULL); @@ -875,9 +892,10 @@ buildquery(dns_message_t *msg, dns_name_t *name, dns_rdataset_makequestion(question, dns_rdataclass_any, dns_rdatatype_tkey); - RETERR(isc_buffer_allocate(msg->mctx, &dynbuf, 4096)); - RETERR(isc_buffer_allocate(msg->mctx, &anamebuf, DNS_NAME_MAXWIRE)); - RETERR(isc_buffer_allocate(msg->mctx, &qnamebuf, DNS_NAME_MAXWIRE)); + len = 16 + tkey->algorithm.length + tkey->keylen + tkey->otherlen; + RETERR(isc_buffer_allocate(msg->mctx, &dynbuf, len)); + RETERR(isc_buffer_allocate(msg->mctx, &anamebuf, name->length)); + RETERR(isc_buffer_allocate(msg->mctx, &qnamebuf, name->length)); RETERR(dns_message_gettemprdata(msg, &rdata)); RETERR(dns_rdata_fromstruct(rdata, dns_rdataclass_any, @@ -887,9 +905,6 @@ buildquery(dns_message_t *msg, dns_name_t *name, RETERR(dns_message_gettemprdatalist(msg, &tkeylist)); tkeylist->rdclass = dns_rdataclass_any; tkeylist->type = dns_rdatatype_tkey; - tkeylist->covers = 0; - tkeylist->ttl = 0; - ISC_LIST_INIT(tkeylist->rdata); ISC_LIST_APPEND(tkeylist->rdata, rdata, link); RETERR(dns_message_gettemprdataset(msg, &tkeyset)); @@ -897,10 +912,10 @@ buildquery(dns_message_t *msg, dns_name_t *name, RETERR(dns_rdatalist_tordataset(tkeylist, tkeyset)); dns_name_init(qname, NULL); - dns_name_copy(name, qname, qnamebuf); + RETERR(dns_name_copy(name, qname, qnamebuf)); dns_name_init(aname, NULL); - dns_name_copy(name, aname, anamebuf); + RETERR(dns_name_copy(name, aname, anamebuf)); ISC_LIST_APPEND(qname->list, question, link); ISC_LIST_APPEND(aname->list, tkeyset, link); @@ -935,7 +950,6 @@ buildquery(dns_message_t *msg, dns_name_t *name, isc_buffer_free(&qnamebuf); if (anamebuf != NULL) isc_buffer_free(&anamebuf); - printf("buildquery error\n"); return (result); } @@ -1027,7 +1041,7 @@ dns_tkey_buildgssquery(dns_message_t *msg, dns_name_t *name, dns_name_t *gname, isc_result_t result; isc_stdtime_t now; isc_buffer_t token; - unsigned char array[4096]; + unsigned char array[TEMP_BUFFER_SZ]; UNUSED(intoken); @@ -1064,12 +1078,7 @@ dns_tkey_buildgssquery(dns_message_t *msg, dns_name_t *name, dns_name_t *gname, tkey.other = NULL; tkey.otherlen = 0; - RETERR(buildquery(msg, name, &tkey, win2k)); - - return (ISC_R_SUCCESS); - - failure: - return (result); + return (buildquery(msg, name, &tkey, win2k)); } isc_result_t @@ -1299,8 +1308,8 @@ dns_tkey_processgssresponse(dns_message_t *qmsg, dns_message_t *rmsg, !dns_name_equal(&rtkey.algorithm, &qtkey.algorithm)) { tkey_log("dns_tkey_processgssresponse: tkey mode invalid " "or error set(2) %d", rtkey.error); - _dns_tkey_dumpmessage(qmsg); - _dns_tkey_dumpmessage(rmsg); + dumpmessage(qmsg); + dumpmessage(rmsg); result = DNS_R_INVALIDTKEY; goto failure; } diff --git a/lib/dns/tsig.c b/lib/dns/tsig.c index 307cb2577b41..05f98ad7bb27 100644 --- a/lib/dns/tsig.c +++ b/lib/dns/tsig.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -1133,9 +1133,6 @@ dns_tsig_sign(dns_message_t *msg) { goto cleanup_rdatalist; datalist->rdclass = dns_rdataclass_any; datalist->type = dns_rdatatype_tsig; - datalist->covers = 0; - datalist->ttl = 0; - ISC_LIST_INIT(datalist->rdata); ISC_LIST_APPEND(datalist->rdata, rdata, link); dns_rdataset_init(dataset); RUNTIME_CHECK(dns_rdatalist_tordataset(datalist, dataset) @@ -1343,6 +1340,8 @@ dns_tsig_verify(isc_buffer_t *source, dns_message_t *msg, } if (tsig.siglen > 0) { + isc_uint16_t addcount_n; + sig_r.base = tsig.signature; sig_r.length = tsig.siglen; @@ -1378,7 +1377,8 @@ dns_tsig_verify(isc_buffer_t *source, dns_message_t *msg, * Decrement the additional field counter. */ memmove(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2); - addcount = htons((isc_uint16_t)(ntohs(addcount) - 1)); + addcount_n = ntohs(addcount); + addcount = htons((isc_uint16_t)(addcount_n - 1)); memmove(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2); /* @@ -1617,8 +1617,11 @@ tsig_verify_tcp(isc_buffer_t *source, dns_message_t *msg) { * Decrement the additional field counter if necessary. */ if (has_tsig) { + isc_uint16_t addcount_n; + memmove(&addcount, &header[DNS_MESSAGE_HEADERLEN - 2], 2); - addcount = htons((isc_uint16_t)(ntohs(addcount) - 1)); + addcount_n = ntohs(addcount); + addcount = htons((isc_uint16_t)(addcount_n - 1)); memmove(&header[DNS_MESSAGE_HEADERLEN - 2], &addcount, 2); } diff --git a/lib/dns/update.c b/lib/dns/update.c index e727c347ce93..268e25047241 100644 --- a/lib/dns/update.c +++ b/lib/dns/update.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2011-2013, 2015 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 @@ -19,6 +19,8 @@ #include <config.h> #include <isc/log.h> +#include <isc/magic.h> +#include <isc/mem.h> #include <isc/netaddr.h> #include <isc/print.h> #include <isc/serial.h> @@ -58,6 +60,9 @@ /**************************************************************************/ +#define STATE_MAGIC ISC_MAGIC('S', 'T', 'T', 'E') +#define DNS_STATE_VALID(state) ISC_MAGIC_VALID(state, STATE_MAGIC) + /*% * Log level for tracing dynamic update protocol requests. */ @@ -563,6 +568,7 @@ rrset_visible(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, result = ISC_R_SUCCESS; break; default: + *visible = ISC_FALSE; /* silence false compiler warning */ break; } return (result); @@ -1134,8 +1140,15 @@ add_sigs(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db, if (type == dns_rdatatype_dnskey) { if (!KSK(keys[i]) && keyset_kskonly) continue; - } else if (KSK(keys[i])) - continue; + } else if (KSK(keys[i])) { + /* + * CDS and CDNSKEY are signed with KSK + * (RFC 7344, 4.1). + */ + if (type != dns_rdatatype_cds && + type != dns_rdatatype_cdnskey) + continue; + } } else if (REVOKE(keys[i]) && type != dns_rdatatype_dnskey) continue; @@ -1250,7 +1263,8 @@ add_exposed_sigs(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, isc_boolean_t cut, dns_diff_t *diff, dst_key_t **keys, unsigned int nkeys, isc_stdtime_t inception, isc_stdtime_t expire, - isc_boolean_t check_ksk, isc_boolean_t keyset_kskonly) + isc_boolean_t check_ksk, isc_boolean_t keyset_kskonly, + unsigned int *sigs) { isc_result_t result; dns_dbnode_t *node; @@ -1296,10 +1310,11 @@ add_exposed_sigs(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db, if (flag) continue;; result = add_sigs(log, zone, db, ver, name, type, diff, - keys, nkeys, inception, expire, - check_ksk, keyset_kskonly); + keys, nkeys, inception, expire, + check_ksk, keyset_kskonly); if (result != ISC_R_SUCCESS) goto cleanup_iterator; + (*sigs)++; } if (result == ISC_R_NOMORE) result = ISC_R_SUCCESS; @@ -1329,519 +1344,684 @@ dns_update_signatures(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *oldver, dns_dbversion_t *newver, dns_diff_t *diff, isc_uint32_t sigvalidityinterval) { - isc_result_t result; - dns_difftuple_t *t; + return (dns_update_signaturesinc(log, zone, db, oldver, newver, diff, + sigvalidityinterval, NULL)); +} + +struct dns_update_state { + unsigned int magic; dns_diff_t diffnames; dns_diff_t affected; dns_diff_t sig_diff; dns_diff_t nsec_diff; dns_diff_t nsec_mindiff; - isc_boolean_t flag, build_nsec, build_nsec3; + dns_diff_t work; dst_key_t *zone_keys[DNS_MAXZONEKEYS]; - unsigned int nkeys = 0; - unsigned int i; - isc_stdtime_t now, inception, expire; + unsigned int nkeys; + isc_stdtime_t inception, expire; dns_ttl_t nsecttl; + isc_boolean_t check_ksk, keyset_kskonly; + enum { sign_updates, remove_orphaned, build_chain, process_nsec, + sign_nsec, update_nsec3, process_nsec3, sign_nsec3 } state; +}; + +isc_result_t +dns_update_signaturesinc(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db, + dns_dbversion_t *oldver, dns_dbversion_t *newver, + dns_diff_t *diff, isc_uint32_t sigvalidityinterval, + dns_update_state_t **statep) +{ + isc_result_t result = ISC_R_SUCCESS; + dns_update_state_t mystate, *state; + + dns_difftuple_t *t, *next; + isc_boolean_t flag, build_nsec, build_nsec3; + unsigned int i; + isc_stdtime_t now; dns_rdata_soa_t soa; dns_rdata_t rdata = DNS_RDATA_INIT; dns_rdataset_t rdataset; dns_dbnode_t *node = NULL; - isc_boolean_t check_ksk, keyset_kskonly; isc_boolean_t unsecure; isc_boolean_t cut; dns_rdatatype_t privatetype = dns_zone_getprivatetype(zone); + unsigned int sigs = 0; + unsigned int maxsigs = dns_zone_getsignatures(zone); - dns_diff_init(diff->mctx, &diffnames); - dns_diff_init(diff->mctx, &affected); - - dns_diff_init(diff->mctx, &sig_diff); - dns_diff_init(diff->mctx, &nsec_diff); - dns_diff_init(diff->mctx, &nsec_mindiff); - - result = find_zone_keys(zone, db, newver, diff->mctx, - DNS_MAXZONEKEYS, zone_keys, &nkeys); - if (result != ISC_R_SUCCESS) { - update_log(log, zone, ISC_LOG_ERROR, - "could not get zone keys for secure dynamic update"); - goto failure; - } - - isc_stdtime_get(&now); - inception = now - 3600; /* Allow for some clock skew. */ - expire = now + sigvalidityinterval; - - /* - * Do we look at the KSK flag on the DNSKEY to determining which - * keys sign which RRsets? First check the zone option then - * check the keys flags to make sure at least one has a ksk set - * and one doesn't. - */ - check_ksk = ISC_TF((dns_zone_getoptions(zone) & - DNS_ZONEOPT_UPDATECHECKKSK) != 0); - keyset_kskonly = ISC_TF((dns_zone_getoptions(zone) & - DNS_ZONEOPT_DNSKEYKSKONLY) != 0); - - /* - * Get the NSEC/NSEC3 TTL from the SOA MINIMUM field. - */ - CHECK(dns_db_findnode(db, dns_db_origin(db), ISC_FALSE, &node)); - dns_rdataset_init(&rdataset); - CHECK(dns_db_findrdataset(db, node, newver, dns_rdatatype_soa, 0, - (isc_stdtime_t) 0, &rdataset, NULL)); - CHECK(dns_rdataset_first(&rdataset)); - dns_rdataset_current(&rdataset, &rdata); - CHECK(dns_rdata_tostruct(&rdata, &soa, NULL)); - nsecttl = soa.minimum; - dns_rdataset_disassociate(&rdataset); - dns_db_detachnode(db, &node); - - /* - * Find all RRsets directly affected by the update, and - * update their RRSIGs. Also build a list of names affected - * by the update in "diffnames". - */ - CHECK(dns_diff_sort(diff, temp_order)); + if (statep == NULL || (statep != NULL && *statep == NULL)) { + if (statep == NULL) { + state = &mystate; + } else { + state = isc_mem_get(diff->mctx, sizeof(*state)); + if (state == NULL) + return (ISC_R_NOMEMORY); + } - t = ISC_LIST_HEAD(diff->tuples); - while (t != NULL) { - dns_name_t *name = &t->name; - /* Now "name" is a new, unique name affected by the update. */ + dns_diff_init(diff->mctx, &state->diffnames); + dns_diff_init(diff->mctx, &state->affected); + dns_diff_init(diff->mctx, &state->sig_diff); + dns_diff_init(diff->mctx, &state->nsec_diff); + dns_diff_init(diff->mctx, &state->nsec_mindiff); + dns_diff_init(diff->mctx, &state->work); + state->nkeys = 0; + + result = find_zone_keys(zone, db, newver, diff->mctx, + DNS_MAXZONEKEYS, state->zone_keys, + &state->nkeys); + if (result != ISC_R_SUCCESS) { + update_log(log, zone, ISC_LOG_ERROR, + "could not get zone keys for secure " + "dynamic update"); + goto failure; + } - CHECK(namelist_append_name(&diffnames, name)); + isc_stdtime_get(&now); + state->inception = now - 3600; /* Allow for some clock skew. */ + state->expire = now + sigvalidityinterval; - while (t != NULL && dns_name_equal(&t->name, name)) { - dns_rdatatype_t type; - type = t->rdata.type; + /* + * Do we look at the KSK flag on the DNSKEY to determining which + * keys sign which RRsets? First check the zone option then + * check the keys flags to make sure at least one has a ksk set + * and one doesn't. + */ + state->check_ksk = ISC_TF((dns_zone_getoptions(zone) & + DNS_ZONEOPT_UPDATECHECKKSK) != 0); + state->keyset_kskonly = ISC_TF((dns_zone_getoptions(zone) & + DNS_ZONEOPT_DNSKEYKSKONLY) != 0); - /* - * Now "name" and "type" denote a new unique RRset - * affected by the update. - */ + /* + * Get the NSEC/NSEC3 TTL from the SOA MINIMUM field. + */ + CHECK(dns_db_findnode(db, dns_db_origin(db), ISC_FALSE, &node)); + dns_rdataset_init(&rdataset); + CHECK(dns_db_findrdataset(db, node, newver, dns_rdatatype_soa, + 0, (isc_stdtime_t) 0, &rdataset, + NULL)); + CHECK(dns_rdataset_first(&rdataset)); + dns_rdataset_current(&rdataset, &rdata); + CHECK(dns_rdata_tostruct(&rdata, &soa, NULL)); + state->nsecttl = soa.minimum; + dns_rdataset_disassociate(&rdataset); + dns_db_detachnode(db, &node); - /* Don't sign RRSIGs. */ - if (type == dns_rdatatype_rrsig) - goto skip; + /* + * Find all RRsets directly affected by the update, and + * update their RRSIGs. Also build a list of names affected + * by the update in "diffnames". + */ + CHECK(dns_diff_sort(diff, temp_order)); + state->state = sign_updates; + state->magic = STATE_MAGIC; + if (statep != NULL) + *statep = state; + } else { + REQUIRE(DNS_STATE_VALID(*statep)); + state = *statep; + } + next_state: + switch (state->state) { + case sign_updates: + t = ISC_LIST_HEAD(diff->tuples); + while (t != NULL) { + dns_name_t *name = &t->name; /* - * Delete all old RRSIGs covering this type, since they - * are all invalid when the signed RRset has changed. - * We may not be able to recreate all of them - tough. - * Special case changes to the zone's DNSKEY records - * to support offline KSKs. + * Now "name" is a new, unique name affected by the + * update. */ - if (type == dns_rdatatype_dnskey) - del_keysigs(db, newver, name, &sig_diff, - zone_keys, nkeys); - else - CHECK(delete_if(true_p, db, newver, name, - dns_rdatatype_rrsig, type, - NULL, &sig_diff)); - /* - * If this RRset is still visible after the update, - * add a new signature for it. - */ - CHECK(rrset_visible(db, newver, name, type, &flag)); - if (flag) { - CHECK(add_sigs(log, zone, db, newver, name, - type, &sig_diff, zone_keys, - nkeys, inception, expire, - check_ksk, keyset_kskonly)); - } - skip: - /* Skip any other updates to the same RRset. */ - while (t != NULL && - dns_name_equal(&t->name, name) && - t->rdata.type == type) - { - t = ISC_LIST_NEXT(t, link); + CHECK(namelist_append_name(&state->diffnames, name)); + + while (t != NULL && dns_name_equal(&t->name, name)) { + dns_rdatatype_t type; + type = t->rdata.type; + + /* + * Now "name" and "type" denote a new unique + * RRset affected by the update. + */ + + /* Don't sign RRSIGs. */ + if (type == dns_rdatatype_rrsig) + goto skip; + + /* + * Delete all old RRSIGs covering this type, + * since they are all invalid when the signed + * RRset has changed. We may not be able to + * recreate all of them - tough. + * Special case changes to the zone's DNSKEY + * records to support offline KSKs. + */ + if (type == dns_rdatatype_dnskey) + del_keysigs(db, newver, name, + &state->sig_diff, + state->zone_keys, + state->nkeys); + else + CHECK(delete_if(true_p, db, newver, + name, + dns_rdatatype_rrsig, + type, NULL, + &state->sig_diff)); + + /* + * If this RRset is still visible after the + * update, add a new signature for it. + */ + CHECK(rrset_visible(db, newver, name, type, + &flag)); + if (flag) { + CHECK(add_sigs(log, zone, db, newver, + name, type, + &state->sig_diff, + state->zone_keys, + state->nkeys, + state->inception, + state->expire, + state->check_ksk, + state->keyset_kskonly)); + sigs++; + } + skip: + /* Skip any other updates to the same RRset. */ + while (t != NULL && + dns_name_equal(&t->name, name) && + t->rdata.type == type) + { + next = ISC_LIST_NEXT(t, link); + ISC_LIST_UNLINK(diff->tuples, t, link); + ISC_LIST_APPEND(state->work.tuples, t, + link); + t = next; + } } + if (state != &mystate && sigs > maxsigs) + return (DNS_R_CONTINUE); } - } - update_log(log, zone, ISC_LOG_DEBUG(3), "updated data signatures"); + ISC_LIST_APPENDLIST(diff->tuples, state->work.tuples, link); - /* Remove orphaned NSECs and RRSIG NSECs. */ - for (t = ISC_LIST_HEAD(diffnames.tuples); - t != NULL; - t = ISC_LIST_NEXT(t, link)) - { - CHECK(non_nsec_rrset_exists(db, newver, &t->name, &flag)); - if (! flag) { - CHECK(delete_if(true_p, db, newver, &t->name, - dns_rdatatype_any, 0, - NULL, &sig_diff)); + update_log(log, zone, ISC_LOG_DEBUG(3), + "updated data signatures"); + /*FALLTHROUGH*/ + case remove_orphaned: + state->state = remove_orphaned; + + /* Remove orphaned NSECs and RRSIG NSECs. */ + for (t = ISC_LIST_HEAD(state->diffnames.tuples); + t != NULL; + t = ISC_LIST_NEXT(t, link)) + { + CHECK(non_nsec_rrset_exists(db, newver, + &t->name, &flag)); + if (!flag) { + CHECK(delete_if(true_p, db, newver, &t->name, + dns_rdatatype_any, 0, + NULL, &state->sig_diff)); + } } - } - update_log(log, zone, ISC_LOG_DEBUG(3), - "removed any orphaned NSEC records"); - - /* - * See if we need to build NSEC or NSEC3 chains. - */ - CHECK(dns_private_chains(db, newver, privatetype, &build_nsec, - &build_nsec3)); - if (!build_nsec) - goto update_nsec3; - - update_log(log, zone, ISC_LOG_DEBUG(3), "rebuilding NSEC chain"); - - /* - * When a name is created or deleted, its predecessor needs to - * have its NSEC updated. - */ - for (t = ISC_LIST_HEAD(diffnames.tuples); - t != NULL; - t = ISC_LIST_NEXT(t, link)) - { - isc_boolean_t existed, exists; - dns_fixedname_t fixedname; - dns_name_t *prevname; - - dns_fixedname_init(&fixedname); - prevname = dns_fixedname_name(&fixedname); - - if (oldver != NULL) - CHECK(name_exists(db, oldver, &t->name, &existed)); - else - existed = ISC_FALSE; - CHECK(name_exists(db, newver, &t->name, &exists)); - if (exists == existed) - continue; + update_log(log, zone, ISC_LOG_DEBUG(3), + "removed any orphaned NSEC records"); /* - * Find the predecessor. - * When names become obscured or unobscured in this update - * transaction, we may find the wrong predecessor because - * the NSECs have not yet been updated to reflect the delegation - * change. This should not matter because in this case, - * the correct predecessor is either the delegation node or - * a newly unobscured node, and those nodes are on the - * "affected" list in any case. + * See if we need to build NSEC or NSEC3 chains. */ - CHECK(next_active(log, zone, db, newver, - &t->name, prevname, ISC_FALSE)); - CHECK(namelist_append_name(&affected, prevname)); - } + CHECK(dns_private_chains(db, newver, privatetype, &build_nsec, + &build_nsec3)); + if (!build_nsec) { + state->state = update_nsec3; + goto next_state; + } - /* - * Find names potentially affected by delegation changes - * (obscured by adding an NS or DNAME, or unobscured by - * removing one). - */ - for (t = ISC_LIST_HEAD(diffnames.tuples); - t != NULL; - t = ISC_LIST_NEXT(t, link)) - { - isc_boolean_t ns_existed, dname_existed; - isc_boolean_t ns_exists, dname_exists; + update_log(log, zone, ISC_LOG_DEBUG(3), + "rebuilding NSEC chain"); - if (oldver != NULL) - CHECK(rrset_exists(db, oldver, &t->name, - dns_rdatatype_ns, 0, &ns_existed)); - else - ns_existed = ISC_FALSE; - if (oldver != NULL) - CHECK(rrset_exists(db, oldver, &t->name, - dns_rdatatype_dname, 0, - &dname_existed)); - else - dname_existed = ISC_FALSE; - CHECK(rrset_exists(db, newver, &t->name, dns_rdatatype_ns, 0, - &ns_exists)); - CHECK(rrset_exists(db, newver, &t->name, dns_rdatatype_dname, 0, - &dname_exists)); - if ((ns_exists || dname_exists) == (ns_existed || dname_existed)) - continue; + /*FALLTHROUGH*/ + case build_chain: + state->state = build_chain; /* - * There was a delegation change. Mark all subdomains - * of t->name as potentially needing a NSEC update. + * When a name is created or deleted, its predecessor needs to + * have its NSEC updated. */ - CHECK(namelist_append_subdomain(db, &t->name, &affected)); - } - - ISC_LIST_APPENDLIST(affected.tuples, diffnames.tuples, link); - INSIST(ISC_LIST_EMPTY(diffnames.tuples)); - - CHECK(uniqify_name_list(&affected)); - - /* - * Determine which names should have NSECs, and delete/create - * NSECs to make it so. We don't know the final NSEC targets yet, - * so we just create placeholder NSECs with arbitrary contents - * to indicate that their respective owner names should be part of - * the NSEC chain. - */ - for (t = ISC_LIST_HEAD(affected.tuples); - t != NULL; - t = ISC_LIST_NEXT(t, link)) - { - isc_boolean_t exists; - dns_name_t *name = &t->name; + for (t = ISC_LIST_HEAD(state->diffnames.tuples); + t != NULL; + t = ISC_LIST_NEXT(t, link)) + { + isc_boolean_t existed, exists; + dns_fixedname_t fixedname; + dns_name_t *prevname; + + dns_fixedname_init(&fixedname); + prevname = dns_fixedname_name(&fixedname); + + if (oldver != NULL) + CHECK(name_exists(db, oldver, &t->name, + &existed)); + else + existed = ISC_FALSE; + CHECK(name_exists(db, newver, &t->name, &exists)); + if (exists == existed) + continue; - CHECK(name_exists(db, newver, name, &exists)); - if (! exists) - continue; - CHECK(is_active(db, newver, name, &flag, &cut, NULL)); - if (!flag) { /* - * This name is obscured. Delete any - * existing NSEC record. + * Find the predecessor. + * When names become obscured or unobscured in this + * update transaction, we may find the wrong + * predecessor because the NSECs have not yet been + * updated to reflect the delegation change. This + * should not matter because in this case, the correct + * predecessor is either the delegation node or a + * newly unobscured node, and those nodes are on the + * "affected" list in any case. */ - CHECK(delete_if(true_p, db, newver, name, - dns_rdatatype_nsec, 0, - NULL, &nsec_diff)); - CHECK(delete_if(rrsig_p, db, newver, name, - dns_rdatatype_any, 0, NULL, diff)); - } else { - /* - * This name is not obscured. It needs to have a - * NSEC unless it is the at the origin, in which - * case it should already exist if there is a complete - * NSEC chain and if there isn't a complete NSEC chain - * we don't want to add one as that would signal that - * there is a complete NSEC chain. - */ - if (!dns_name_equal(name, dns_db_origin(db))) { - CHECK(rrset_exists(db, newver, name, - dns_rdatatype_nsec, 0, - &flag)); - if (!flag) - CHECK(add_placeholder_nsec(db, newver, - name, diff)); - } - CHECK(add_exposed_sigs(log, zone, db, newver, name, - cut, &sig_diff, zone_keys, nkeys, - inception, expire, check_ksk, - keyset_kskonly)); + CHECK(next_active(log, zone, db, newver, + &t->name, prevname, ISC_FALSE)); + CHECK(namelist_append_name(&state->affected, prevname)); } - } - /* - * Now we know which names are part of the NSEC chain. - * Make them all point at their correct targets. - */ - for (t = ISC_LIST_HEAD(affected.tuples); - t != NULL; - t = ISC_LIST_NEXT(t, link)) - { - CHECK(rrset_exists(db, newver, &t->name, - dns_rdatatype_nsec, 0, &flag)); - if (flag) { + /* + * Find names potentially affected by delegation changes + * (obscured by adding an NS or DNAME, or unobscured by + * removing one). + */ + for (t = ISC_LIST_HEAD(state->diffnames.tuples); + t != NULL; + t = ISC_LIST_NEXT(t, link)) + { + isc_boolean_t ns_existed, dname_existed; + isc_boolean_t ns_exists, dname_exists; + + if (oldver != NULL) + CHECK(rrset_exists(db, oldver, &t->name, + dns_rdatatype_ns, 0, + &ns_existed)); + else + ns_existed = ISC_FALSE; + if (oldver != NULL) + CHECK(rrset_exists(db, oldver, &t->name, + dns_rdatatype_dname, 0, + &dname_existed)); + else + dname_existed = ISC_FALSE; + CHECK(rrset_exists(db, newver, &t->name, + dns_rdatatype_ns, 0, &ns_exists)); + CHECK(rrset_exists(db, newver, &t->name, + dns_rdatatype_dname, 0, + &dname_exists)); + if ((ns_exists || dname_exists) == + (ns_existed || dname_existed)) + continue; /* - * There is a NSEC, but we don't know if it is correct. - * Delete it and create a correct one to be sure. - * If the update was unnecessary, the diff minimization - * will take care of eliminating it from the journal, - * IXFRs, etc. - * - * The RRSIG bit should always be set in the NSECs - * we generate, because they will all get RRSIG NSECs. - * (XXX what if the zone keys are missing?). - * Because the RRSIG NSECs have not necessarily been - * created yet, the correctness of the bit mask relies - * on the assumption that NSECs are only created if - * there is other data, and if there is other data, - * there are other RRSIGs. + * There was a delegation change. Mark all subdomains + * of t->name as potentially needing a NSEC update. */ - CHECK(add_nsec(log, zone, db, newver, &t->name, - nsecttl, &nsec_diff)); + CHECK(namelist_append_subdomain(db, &t->name, + &state->affected)); } - } + ISC_LIST_APPENDLIST(state->affected.tuples, + state->diffnames.tuples, link); + INSIST(ISC_LIST_EMPTY(state->diffnames.tuples)); - /* - * Minimize the set of NSEC updates so that we don't - * have to regenerate the RRSIG NSECs for NSECs that were - * replaced with identical ones. - */ - while ((t = ISC_LIST_HEAD(nsec_diff.tuples)) != NULL) { - ISC_LIST_UNLINK(nsec_diff.tuples, t, link); - dns_diff_appendminimal(&nsec_mindiff, &t); - } + CHECK(uniqify_name_list(&state->affected)); - update_log(log, zone, ISC_LOG_DEBUG(3), "signing rebuilt NSEC chain"); + /*FALLTHROUGH*/ + case process_nsec: + state->state = process_nsec; - /* Update RRSIG NSECs. */ - for (t = ISC_LIST_HEAD(nsec_mindiff.tuples); - t != NULL; - t = ISC_LIST_NEXT(t, link)) - { - if (t->op == DNS_DIFFOP_DEL) { - CHECK(delete_if(true_p, db, newver, &t->name, - dns_rdatatype_rrsig, dns_rdatatype_nsec, - NULL, &sig_diff)); - } else if (t->op == DNS_DIFFOP_ADD) { - CHECK(add_sigs(log, zone, db, newver, &t->name, - dns_rdatatype_nsec, &sig_diff, - zone_keys, nkeys, inception, expire, - check_ksk, keyset_kskonly)); - } else { - INSIST(0); + /* + * Determine which names should have NSECs, and delete/create + * NSECs to make it so. We don't know the final NSEC targets + * yet, so we just create placeholder NSECs with arbitrary + * contents to indicate that their respective owner names + * should be part of the NSEC chain. + */ + while ((t = ISC_LIST_HEAD(state->affected.tuples)) != NULL) { + isc_boolean_t exists; + dns_name_t *name = &t->name; + + CHECK(name_exists(db, newver, name, &exists)); + if (! exists) + goto unlink; + CHECK(is_active(db, newver, name, &flag, &cut, NULL)); + if (!flag) { + /* + * This name is obscured. Delete any + * existing NSEC record. + */ + CHECK(delete_if(true_p, db, newver, name, + dns_rdatatype_nsec, 0, + NULL, &state->nsec_diff)); + CHECK(delete_if(rrsig_p, db, newver, name, + dns_rdatatype_any, 0, NULL, + diff)); + } else { + /* + * This name is not obscured. It needs to have + * a NSEC unless it is the at the origin, in + * which case it should already exist if there + * is a complete NSEC chain and if there isn't + * a complete NSEC chain we don't want to add + * one as that would signal that there is a + * complete NSEC chain. + */ + if (!dns_name_equal(name, dns_db_origin(db))) { + CHECK(rrset_exists(db, newver, name, + dns_rdatatype_nsec, + 0, &flag)); + if (!flag) + CHECK(add_placeholder_nsec(db, + newver, name, diff)); + } + CHECK(add_exposed_sigs(log, zone, db, newver, + name, cut, + &state->sig_diff, + state->zone_keys, + state->nkeys, + state->inception, + state->expire, + state->check_ksk, + state->keyset_kskonly, + &sigs)); + } + unlink: + ISC_LIST_UNLINK(state->affected.tuples, t, link); + ISC_LIST_APPEND(state->work.tuples, t, link); + if (state != &mystate && sigs > maxsigs) + return (DNS_R_CONTINUE); } - } + ISC_LIST_APPENDLIST(state->affected.tuples, + state->work.tuples, link); - update_nsec3: - - /* Record our changes for the journal. */ - while ((t = ISC_LIST_HEAD(sig_diff.tuples)) != NULL) { - ISC_LIST_UNLINK(sig_diff.tuples, t, link); - dns_diff_appendminimal(diff, &t); - } - while ((t = ISC_LIST_HEAD(nsec_mindiff.tuples)) != NULL) { - ISC_LIST_UNLINK(nsec_mindiff.tuples, t, link); - dns_diff_appendminimal(diff, &t); - } + /* + * Now we know which names are part of the NSEC chain. + * Make them all point at their correct targets. + */ + for (t = ISC_LIST_HEAD(state->affected.tuples); + t != NULL; + t = ISC_LIST_NEXT(t, link)) + { + CHECK(rrset_exists(db, newver, &t->name, + dns_rdatatype_nsec, 0, &flag)); + if (flag) { + /* + * There is a NSEC, but we don't know if it + * is correct. Delete it and create a correct + * one to be sure. If the update was + * unnecessary, the diff minimization + * will take care of eliminating it from the + * journal, IXFRs, etc. + * + * The RRSIG bit should always be set in the + * NSECs we generate, because they will all + * get RRSIG NSECs. + * (XXX what if the zone keys are missing?). + * Because the RRSIG NSECs have not necessarily + * been created yet, the correctness of the + * bit mask relies on the assumption that NSECs + * are only created if there is other data, and + * if there is other data, there are other + * RRSIGs. + */ + CHECK(add_nsec(log, zone, db, newver, &t->name, + state->nsecttl, + &state->nsec_diff)); + } + } - INSIST(ISC_LIST_EMPTY(sig_diff.tuples)); - INSIST(ISC_LIST_EMPTY(nsec_diff.tuples)); - INSIST(ISC_LIST_EMPTY(nsec_mindiff.tuples)); + /* + * Minimize the set of NSEC updates so that we don't + * have to regenerate the RRSIG NSECs for NSECs that were + * replaced with identical ones. + */ + while ((t = ISC_LIST_HEAD(state->nsec_diff.tuples)) != NULL) { + ISC_LIST_UNLINK(state->nsec_diff.tuples, t, link); + dns_diff_appendminimal(&state->nsec_mindiff, &t); + } - if (!build_nsec3) { update_log(log, zone, ISC_LOG_DEBUG(3), - "no NSEC3 chains to rebuild"); - goto failure; - } - - update_log(log, zone, ISC_LOG_DEBUG(3), "rebuilding NSEC3 chains"); - - dns_diff_clear(&diffnames); - dns_diff_clear(&affected); + "signing rebuilt NSEC chain"); + + /*FALLTHROUGH*/ + case sign_nsec: + state->state = sign_nsec; + /* Update RRSIG NSECs. */ + while ((t = ISC_LIST_HEAD(state->nsec_mindiff.tuples)) != NULL) + { + if (t->op == DNS_DIFFOP_DEL) { + CHECK(delete_if(true_p, db, newver, &t->name, + dns_rdatatype_rrsig, + dns_rdatatype_nsec, + NULL, &state->sig_diff)); + } else if (t->op == DNS_DIFFOP_ADD) { + CHECK(add_sigs(log, zone, db, newver, &t->name, + dns_rdatatype_nsec, + &state->sig_diff, + state->zone_keys, state->nkeys, + state->inception, state->expire, + state->check_ksk, + state->keyset_kskonly)); + sigs++; + } else { + INSIST(0); + } + ISC_LIST_UNLINK(state->nsec_mindiff.tuples, t, link); + ISC_LIST_APPEND(state->work.tuples, t, link); + if (state != &mystate && sigs > maxsigs) + return (DNS_R_CONTINUE); + } + ISC_LIST_APPENDLIST(state->nsec_mindiff.tuples, + state->work.tuples, link); + /*FALLTHROUGH*/ + case update_nsec3: + state->state = update_nsec3; + + /* Record our changes for the journal. */ + while ((t = ISC_LIST_HEAD(state->sig_diff.tuples)) != NULL) { + ISC_LIST_UNLINK(state->sig_diff.tuples, t, link); + dns_diff_appendminimal(diff, &t); + } + while ((t = ISC_LIST_HEAD(state->nsec_mindiff.tuples)) != NULL) + { + ISC_LIST_UNLINK(state->nsec_mindiff.tuples, t, link); + dns_diff_appendminimal(diff, &t); + } - CHECK(dns_diff_sort(diff, temp_order)); + INSIST(ISC_LIST_EMPTY(state->sig_diff.tuples)); + INSIST(ISC_LIST_EMPTY(state->nsec_diff.tuples)); + INSIST(ISC_LIST_EMPTY(state->nsec_mindiff.tuples)); - /* - * Find names potentially affected by delegation changes - * (obscured by adding an NS or DNAME, or unobscured by - * removing one). - */ - t = ISC_LIST_HEAD(diff->tuples); - while (t != NULL) { - dns_name_t *name = &t->name; + if (!build_nsec3) { + update_log(log, zone, ISC_LOG_DEBUG(3), + "no NSEC3 chains to rebuild"); + goto failure; + } - isc_boolean_t ns_existed, dname_existed; - isc_boolean_t ns_exists, dname_exists; - isc_boolean_t exists, existed; + update_log(log, zone, ISC_LOG_DEBUG(3), + "rebuilding NSEC3 chains"); - if (t->rdata.type == dns_rdatatype_nsec || - t->rdata.type == dns_rdatatype_rrsig) { - t = ISC_LIST_NEXT(t, link); - continue; - } + dns_diff_clear(&state->diffnames); + dns_diff_clear(&state->affected); - CHECK(namelist_append_name(&affected, name)); + CHECK(dns_diff_sort(diff, temp_order)); - if (oldver != NULL) - CHECK(rrset_exists(db, oldver, name, dns_rdatatype_ns, - 0, &ns_existed)); - else - ns_existed = ISC_FALSE; - if (oldver != NULL) - CHECK(rrset_exists(db, oldver, name, - dns_rdatatype_dname, 0, - &dname_existed)); - else - dname_existed = ISC_FALSE; - CHECK(rrset_exists(db, newver, name, dns_rdatatype_ns, 0, - &ns_exists)); - CHECK(rrset_exists(db, newver, name, dns_rdatatype_dname, 0, - &dname_exists)); - - exists = ns_exists || dname_exists; - existed = ns_existed || dname_existed; - if (exists == existed) - goto nextname; /* - * There was a delegation change. Mark all subdomains - * of t->name as potentially needing a NSEC3 update. + * Find names potentially affected by delegation changes + * (obscured by adding an NS or DNAME, or unobscured by + * removing one). */ - CHECK(namelist_append_subdomain(db, name, &affected)); + t = ISC_LIST_HEAD(diff->tuples); + while (t != NULL) { + dns_name_t *name = &t->name; - nextname: - while (t != NULL && dns_name_equal(&t->name, name)) - t = ISC_LIST_NEXT(t, link); - } + isc_boolean_t ns_existed, dname_existed; + isc_boolean_t ns_exists, dname_exists; + isc_boolean_t exists, existed; - for (t = ISC_LIST_HEAD(affected.tuples); - t != NULL; - t = ISC_LIST_NEXT(t, link)) { - dns_name_t *name = &t->name; + if (t->rdata.type == dns_rdatatype_nsec || + t->rdata.type == dns_rdatatype_rrsig) { + t = ISC_LIST_NEXT(t, link); + continue; + } - unsecure = ISC_FALSE; /* Silence compiler warning. */ - CHECK(is_active(db, newver, name, &flag, &cut, &unsecure)); + CHECK(namelist_append_name(&state->affected, name)); - if (!flag) { - CHECK(delete_if(rrsig_p, db, newver, name, - dns_rdatatype_any, 0, NULL, diff)); - CHECK(dns_nsec3_delnsec3sx(db, newver, name, - privatetype, &nsec_diff)); - } else { - CHECK(add_exposed_sigs(log, zone, db, newver, name, - cut, &sig_diff, zone_keys, nkeys, - inception, expire, check_ksk, - keyset_kskonly)); - CHECK(dns_nsec3_addnsec3sx(db, newver, name, nsecttl, - unsecure, privatetype, - &nsec_diff)); + if (oldver != NULL) + CHECK(rrset_exists(db, oldver, name, + dns_rdatatype_ns, + 0, &ns_existed)); + else + ns_existed = ISC_FALSE; + if (oldver != NULL) + CHECK(rrset_exists(db, oldver, name, + dns_rdatatype_dname, 0, + &dname_existed)); + else + dname_existed = ISC_FALSE; + CHECK(rrset_exists(db, newver, name, dns_rdatatype_ns, + 0, &ns_exists)); + CHECK(rrset_exists(db, newver, name, + dns_rdatatype_dname, 0, + &dname_exists)); + + exists = ns_exists || dname_exists; + existed = ns_existed || dname_existed; + if (exists == existed) + goto nextname; + /* + * There was a delegation change. Mark all subdomains + * of t->name as potentially needing a NSEC3 update. + */ + CHECK(namelist_append_subdomain(db, name, + &state->affected)); + + nextname: + while (t != NULL && dns_name_equal(&t->name, name)) + t = ISC_LIST_NEXT(t, link); } - } - /* - * Minimize the set of NSEC3 updates so that we don't - * have to regenerate the RRSIG NSEC3s for NSEC3s that were - * replaced with identical ones. - */ - while ((t = ISC_LIST_HEAD(nsec_diff.tuples)) != NULL) { - ISC_LIST_UNLINK(nsec_diff.tuples, t, link); - dns_diff_appendminimal(&nsec_mindiff, &t); - } + /*FALLTHROUGH*/ + case process_nsec3: + state->state = process_nsec3; + while ((t = ISC_LIST_HEAD(state->affected.tuples)) != NULL) { + dns_name_t *name = &t->name; + + unsecure = ISC_FALSE; /* Silence compiler warning. */ + CHECK(is_active(db, newver, name, &flag, &cut, + &unsecure)); + + if (!flag) { + CHECK(delete_if(rrsig_p, db, newver, name, + dns_rdatatype_any, 0, NULL, + diff)); + CHECK(dns_nsec3_delnsec3sx(db, newver, name, + privatetype, + &state->nsec_diff)); + } else { + CHECK(add_exposed_sigs(log, zone, db, newver, + name, cut, + &state->sig_diff, + state->zone_keys, + state->nkeys, + state->inception, + state->expire, + state->check_ksk, + state->keyset_kskonly, + &sigs)); + CHECK(dns_nsec3_addnsec3sx(db, newver, name, + state->nsecttl, + unsecure, + privatetype, + &state->nsec_diff)); + } + ISC_LIST_UNLINK(state->affected.tuples, t, link); + ISC_LIST_APPEND(state->work.tuples, t, link); + if (state != &mystate && sigs > maxsigs) + return (DNS_R_CONTINUE); + } + ISC_LIST_APPENDLIST(state->affected.tuples, + state->work.tuples, link); - update_log(log, zone, ISC_LOG_DEBUG(3), - "signing rebuilt NSEC3 chain"); + /* + * Minimize the set of NSEC3 updates so that we don't + * have to regenerate the RRSIG NSEC3s for NSEC3s that were + * replaced with identical ones. + */ + while ((t = ISC_LIST_HEAD(state->nsec_diff.tuples)) != NULL) { + ISC_LIST_UNLINK(state->nsec_diff.tuples, t, link); + dns_diff_appendminimal(&state->nsec_mindiff, &t); + } - /* Update RRSIG NSEC3s. */ - for (t = ISC_LIST_HEAD(nsec_mindiff.tuples); - t != NULL; - t = ISC_LIST_NEXT(t, link)) - { - if (t->op == DNS_DIFFOP_DEL) { - CHECK(delete_if(true_p, db, newver, &t->name, - dns_rdatatype_rrsig, - dns_rdatatype_nsec3, - NULL, &sig_diff)); - } else if (t->op == DNS_DIFFOP_ADD) { - CHECK(add_sigs(log, zone, db, newver, &t->name, - dns_rdatatype_nsec3, - &sig_diff, zone_keys, nkeys, - inception, expire, check_ksk, - keyset_kskonly)); - } else { - INSIST(0); + update_log(log, zone, ISC_LOG_DEBUG(3), + "signing rebuilt NSEC3 chain"); + + /*FALLTHROUGH*/ + case sign_nsec3: + state->state = sign_nsec3; + /* Update RRSIG NSEC3s. */ + while ((t = ISC_LIST_HEAD(state->nsec_mindiff.tuples)) != NULL) + { + if (t->op == DNS_DIFFOP_DEL) { + CHECK(delete_if(true_p, db, newver, &t->name, + dns_rdatatype_rrsig, + dns_rdatatype_nsec3, + NULL, &state->sig_diff)); + } else if (t->op == DNS_DIFFOP_ADD) { + CHECK(add_sigs(log, zone, db, newver, &t->name, + dns_rdatatype_nsec3, + &state->sig_diff, + state->zone_keys, + state->nkeys, state->inception, + state->expire, state->check_ksk, + state->keyset_kskonly)); + sigs++; + } else { + INSIST(0); + } + ISC_LIST_UNLINK(state->nsec_mindiff.tuples, t, link); + ISC_LIST_APPEND(state->work.tuples, t, link); + if (state != &mystate && sigs > maxsigs) + return (DNS_R_CONTINUE); } - } + ISC_LIST_APPENDLIST(state->nsec_mindiff.tuples, + state->work.tuples, link); - /* Record our changes for the journal. */ - while ((t = ISC_LIST_HEAD(sig_diff.tuples)) != NULL) { - ISC_LIST_UNLINK(sig_diff.tuples, t, link); - dns_diff_appendminimal(diff, &t); - } - while ((t = ISC_LIST_HEAD(nsec_mindiff.tuples)) != NULL) { - ISC_LIST_UNLINK(nsec_mindiff.tuples, t, link); - dns_diff_appendminimal(diff, &t); - } + /* Record our changes for the journal. */ + while ((t = ISC_LIST_HEAD(state->sig_diff.tuples)) != NULL) { + ISC_LIST_UNLINK(state->sig_diff.tuples, t, link); + dns_diff_appendminimal(diff, &t); + } + while ((t = ISC_LIST_HEAD(state->nsec_mindiff.tuples)) != NULL) + { + ISC_LIST_UNLINK(state->nsec_mindiff.tuples, t, link); + dns_diff_appendminimal(diff, &t); + } - INSIST(ISC_LIST_EMPTY(sig_diff.tuples)); - INSIST(ISC_LIST_EMPTY(nsec_diff.tuples)); - INSIST(ISC_LIST_EMPTY(nsec_mindiff.tuples)); + INSIST(ISC_LIST_EMPTY(state->sig_diff.tuples)); + INSIST(ISC_LIST_EMPTY(state->nsec_diff.tuples)); + INSIST(ISC_LIST_EMPTY(state->nsec_mindiff.tuples)); + break; + default: + INSIST(0); + } failure: - dns_diff_clear(&sig_diff); - dns_diff_clear(&nsec_diff); - dns_diff_clear(&nsec_mindiff); + dns_diff_clear(&state->sig_diff); + dns_diff_clear(&state->nsec_diff); + dns_diff_clear(&state->nsec_mindiff); + + dns_diff_clear(&state->affected); + dns_diff_clear(&state->diffnames); + dns_diff_clear(&state->work); - dns_diff_clear(&affected); - dns_diff_clear(&diffnames); + for (i = 0; i < state->nkeys; i++) + dst_key_free(&state->zone_keys[i]); - for (i = 0; i < nkeys; i++) - dst_key_free(&zone_keys[i]); + if (state != &mystate && state != NULL) { + *statep = NULL; + state->magic = 0; + isc_mem_put(diff->mctx, state, sizeof(*state)); + } return (result); } diff --git a/lib/dns/view.c b/lib/dns/view.c index 3730593b9e37..da1136c075ac 100644 --- a/lib/dns/view.c +++ b/lib/dns/view.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id$ */ - /*! \file */ #include <config.h> @@ -688,7 +686,8 @@ req_shutdown(isc_task_t *task, isc_event_t *event) { isc_result_t dns_view_createresolver(dns_view_t *view, isc_taskmgr_t *taskmgr, - unsigned int ntasks, unsigned int ndisp, + unsigned int ntasks, + unsigned int ndisp, isc_socketmgr_t *socketmgr, isc_timermgr_t *timermgr, unsigned int options, @@ -1322,10 +1321,16 @@ dns_view_findzonecut2(dns_view_t *view, dns_name_t *name, dns_name_t *fname, result = dns_db_findzonecut(db, name, options, now, NULL, fname, rdataset, sigrdataset); if (result == ISC_R_SUCCESS) { +#ifdef BIND9 if (zfname != NULL && (!dns_name_issubdomain(fname, zfname) || - (dns_zone_staticstub && - dns_name_equal(fname, zfname)))) { + (dns_zone_gettype(zone) == dns_zone_staticstub && + dns_name_equal(fname, zfname)))) +#else + if (zfname != NULL && + !dns_name_issubdomain(fname, zfname)) +#endif + { /* * We found a zonecut in the cache, but our * zone delegation is better. diff --git a/lib/dns/xfrin.c b/lib/dns/xfrin.c index 30f2f3b347f4..a5e4bf874219 100644 --- a/lib/dns/xfrin.c +++ b/lib/dns/xfrin.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2008, 2011-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008, 2011-2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -107,6 +107,7 @@ struct dns_xfrin_ctx { int sends; /*%< Send in progress */ int recvs; /*%< Receive in progress */ isc_boolean_t shuttingdown; + isc_result_t shutdown_result; dns_name_t name; /*%< Name of zone to transfer */ dns_rdataclass_t rdclass; @@ -657,7 +658,8 @@ dns_xfrin_create2(dns_zone_t *zone, dns_rdatatype_t xfrtype, CHECK(xfrin_start(xfr)); xfr->done = done; - xfr->refcount++; + if (xfr->done != NULL) + xfr->refcount++; *xfrp = xfr; failure: @@ -762,6 +764,7 @@ xfrin_fail(dns_xfrin_ctx_t *xfr, isc_result_t result, const char *msg) { xfr->done = NULL; } xfr->shuttingdown = ISC_TRUE; + xfr->shutdown_result = result; maybe_free(xfr); } @@ -802,6 +805,7 @@ xfrin_create(isc_mem_t *mctx, xfr->sends = 0; xfr->recvs = 0; xfr->shuttingdown = ISC_FALSE; + xfr->shutdown_result = ISC_R_UNSET; dns_name_init(&xfr->name, NULL); xfr->rdclass = rdclass; @@ -1365,6 +1369,7 @@ xfrin_recv_done(isc_task_t *task, isc_event_t *ev) { * point, thus maybe_free() should succeed. */ xfr->shuttingdown = ISC_TRUE; + xfr->shutdown_result = ISC_R_SUCCESS; maybe_free(xfr); break; default: @@ -1403,6 +1408,7 @@ static void maybe_free(dns_xfrin_ctx_t *xfr) { isc_uint64_t msecs; isc_uint64_t persec; + const char *result_str; REQUIRE(VALID_XFRIN(xfr)); @@ -1411,6 +1417,16 @@ maybe_free(dns_xfrin_ctx_t *xfr) { xfr->recvs != 0) return; + INSIST(! xfr->shuttingdown || xfr->shutdown_result != ISC_R_UNSET); + + /* If we're called through dns_xfrin_detach() and are not + * shutting down, we can't know what the transfer status is as + * we are only called when the last reference is lost. + */ + result_str = (xfr->shuttingdown ? + isc_result_totext(xfr->shutdown_result) : "unknown"); + xfrin_log(xfr, ISC_LOG_INFO, "Transfer status: %s", result_str); + /* * Calculate the length of time the transfer took, * and print a log message with the bytes and rate. diff --git a/lib/dns/zone.c b/lib/dns/zone.c index fbaeab14c699..d334bebc436c 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -46,6 +46,7 @@ #include <dns/db.h> #include <dns/dbiterator.h> #include <dns/dnssec.h> +#include <dns/ds.h> #include <dns/events.h> #include <dns/journal.h> #include <dns/keydata.h> @@ -379,6 +380,23 @@ struct dns_zone { isc_boolean_t sourceserialset; isc_uint32_t sourceserial; + + /*% + * maximum zone ttl + */ + dns_ttl_t maxttl; + + /* + * Inline zone signing state. + */ + dns_diff_t rss_diff; + isc_eventlist_t rss_events; + dns_dbversion_t *rss_newver; + dns_dbversion_t *rss_oldver; + dns_db_t *rss_db; + dns_zone_t *rss_raw; + isc_event_t *rss_event; + dns_update_state_t *rss_state; }; typedef struct { @@ -667,9 +685,8 @@ struct dns_asyncload { * RFC 5011. */ unsigned int dns_zone_mkey_hour = HOUR; -unsigned int dns_zone_mkey_day = (24 * HOUR); -unsigned int dns_zone_mkey_month = (30 * DAY); - +unsigned int dns_zone_mkey_day = DAY; +unsigned int dns_zone_mkey_month = MONTH; #define SEND_BUFFER_SIZE 2048 @@ -968,6 +985,14 @@ dns_zone_create(dns_zone_t **zonep, isc_mem_t *mctx) { zone->secure = NULL; zone->sourceserial = 0; zone->sourceserialset = ISC_FALSE; + ISC_LIST_INIT(zone->rss_events); + zone->rss_db = NULL; + zone->rss_raw = NULL; + zone->rss_newver = NULL; + zone->rss_oldver = NULL; + zone->rss_event = NULL; + zone->rss_state = NULL; + zone->updatemethod = dns_updatemethod_increment; zone->magic = ZONE_MAGIC; @@ -1591,7 +1616,7 @@ dns_zone_rpz_enable_db(dns_zone_t *zone, dns_db_t *db) { } static isc_result_t -zone_load(dns_zone_t *zone, unsigned int flags) { +zone_load(dns_zone_t *zone, unsigned int flags, isc_boolean_t locked) { isc_result_t result; isc_time_t now; isc_time_t loadtime, filetime; @@ -1600,12 +1625,14 @@ zone_load(dns_zone_t *zone, unsigned int flags) { REQUIRE(DNS_ZONE_VALID(zone)); - LOCK_ZONE(zone); + if (!locked) + LOCK_ZONE(zone); hasraw = inline_secure(zone); if (hasraw) { - result = zone_load(zone->raw, flags); + result = zone_load(zone->raw, flags, ISC_FALSE); if (result != ISC_R_SUCCESS) { - UNLOCK_ZONE(zone); + if (!locked) + UNLOCK_ZONE(zone); return(result); } LOCK_ZONE(zone->raw); @@ -1763,7 +1790,8 @@ zone_load(dns_zone_t *zone, unsigned int flags) { cleanup: if (hasraw) UNLOCK_ZONE(zone->raw); - UNLOCK_ZONE(zone); + if (!locked) + UNLOCK_ZONE(zone); if (db != NULL) dns_db_detach(&db); return (result); @@ -1771,12 +1799,12 @@ zone_load(dns_zone_t *zone, unsigned int flags) { isc_result_t dns_zone_load(dns_zone_t *zone) { - return (zone_load(zone, 0)); + return (zone_load(zone, 0, ISC_FALSE)); } isc_result_t dns_zone_loadnew(dns_zone_t *zone) { - return (zone_load(zone, DNS_ZONELOADFLAG_NOSTAT)); + return (zone_load(zone, DNS_ZONELOADFLAG_NOSTAT, ISC_FALSE)); } static void @@ -1784,6 +1812,7 @@ zone_asyncload(isc_task_t *task, isc_event_t *event) { dns_asyncload_t *asl = event->ev_arg; dns_zone_t *zone = asl->zone; isc_result_t result = ISC_R_SUCCESS; + isc_boolean_t load_pending; UNUSED(task); @@ -1792,13 +1821,21 @@ zone_asyncload(isc_task_t *task, isc_event_t *event) { if ((event->ev_attributes & ISC_EVENTATTR_CANCELED) != 0) result = ISC_R_CANCELED; isc_event_free(&event); - if (result == ISC_R_CANCELED || - !DNS_ZONE_FLAG(zone, DNS_ZONEFLG_LOADPENDING)) - goto cleanup; - zone_load(zone, 0); + if (result == ISC_R_CANCELED) + goto cleanup; + /* Make sure load is still pending */ LOCK_ZONE(zone); + load_pending = ISC_TF(DNS_ZONE_FLAG(zone, DNS_ZONEFLG_LOADPENDING)); + + if (!load_pending) { + UNLOCK_ZONE(zone); + goto cleanup; + } + + zone_load(zone, 0, ISC_TRUE); + DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_LOADPENDING); UNLOCK_ZONE(zone); @@ -1822,6 +1859,10 @@ dns_zone_asyncload(dns_zone_t *zone, dns_zt_zoneloaded_t done, void *arg) { if (zone->zmgr == NULL) return (ISC_R_FAILURE); + /* If we already have a load pending, stop now */ + if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_LOADPENDING)) + return (ISC_R_ALREADYRUNNING); + asl = isc_mem_get(zone->mctx, sizeof (*asl)); if (asl == NULL) CHECK(ISC_R_NOMEMORY); @@ -1863,9 +1904,10 @@ dns_zone_loadandthaw(dns_zone_t *zone) { isc_result_t result; if (inline_raw(zone)) - result = zone_load(zone->secure, DNS_ZONELOADFLAG_THAW); + result = zone_load(zone->secure, DNS_ZONELOADFLAG_THAW, + ISC_FALSE); else - result = zone_load(zone, DNS_ZONELOADFLAG_THAW); + result = zone_load(zone, DNS_ZONELOADFLAG_THAW, ISC_FALSE); switch (result) { case DNS_R_CONTINUE: @@ -4328,10 +4370,14 @@ zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime, zone->type == dns_zone_stub || zone->type == dns_zone_key || (zone->type == dns_zone_redirect && zone->masters != NULL)) { - if (zone->journal != NULL) - zone_saveunique(zone, zone->journal, "jn-XXXXXXXX"); - if (zone->masterfile != NULL) - zone_saveunique(zone, zone->masterfile, "db-XXXXXXXX"); + if (result != ISC_R_NOMEMORY) { + if (zone->journal != NULL) + zone_saveunique(zone, zone->journal, + "jn-XXXXXXXX"); + if (zone->masterfile != NULL) + zone_saveunique(zone, zone->masterfile, + "db-XXXXXXXX"); + } /* Mark the zone for immediate refresh. */ zone->refreshtime = now; @@ -6073,8 +6119,14 @@ sign_a_node(dns_db_t *db, dns_name_t *name, dns_dbnode_t *node, if (rdataset.type == dns_rdatatype_dnskey) { if (!is_ksk && keyset_kskonly) goto next_rdataset; - } else if (is_ksk) - goto next_rdataset; + } else if (is_ksk) { + /* + * CDS and CDNSKEY are signed with KSK (RFC 7344, 4.1). + */ + if (rdataset.type != dns_rdatatype_cds && + rdataset.type != dns_rdatatype_cdnskey) + goto next_rdataset; + } if (*delegation && rdataset.type != dns_rdatatype_ds && rdataset.type != dns_rdatatype_nsec) @@ -8999,7 +9051,8 @@ zone_maintenance(dns_zone_t *zone) { break; case dns_zone_master: if (!isc_time_isepoch(&zone->refreshkeytime) && - isc_time_compare(&now, &zone->refreshkeytime) >= 0) + isc_time_compare(&now, &zone->refreshkeytime) >= 0 && + zone->rss_event == NULL) zone_rekey(zone); default: break; @@ -9012,6 +9065,8 @@ zone_maintenance(dns_zone_t *zone) { /* * Do we need to sign/resign some RRsets? */ + if (zone->rss_event != NULL) + break; if (!isc_time_isepoch(&zone->signingtime) && isc_time_compare(&now, &zone->signingtime) >= 0) zone_sign(zone); @@ -9619,8 +9674,6 @@ notify_isqueued(dns_zone_t *zone, unsigned int flags, dns_name_t *name, notify = ISC_LIST_NEXT(notify, link)) { if (notify->request != NULL) continue; - if ((flags & DNS_NOTIFY_STARTUP) == 0) - notify->flags &= ~DNS_NOTIFY_STARTUP; if (name != NULL && dns_name_dynamic(¬ify->ns) && dns_name_equal(name, ¬ify->ns)) goto requeue; @@ -9636,12 +9689,15 @@ requeue: * not a startup notify, re-enqueue on the normal notify * ratelimiter. */ - if (notify->event != NULL && (flags & DNS_NOTIFY_STARTUP) == 0) { + if (notify->event != NULL && (flags & DNS_NOTIFY_STARTUP) == 0 && + (notify->flags & DNS_NOTIFY_STARTUP) != 0) { zmgr = notify->zone->zmgr; result = isc_ratelimiter_dequeue(zmgr->startupnotifyrl, notify->event); if (result != ISC_R_SUCCESS) return (ISC_TRUE); + + notify->flags &= ~DNS_NOTIFY_STARTUP; result = isc_ratelimiter_enqueue(notify->zone->zmgr->notifyrl, notify->zone->task, ¬ify->event); @@ -9701,9 +9757,6 @@ static void notify_destroy(dns_notify_t *notify, isc_boolean_t locked) { isc_mem_t *mctx; - /* - * Caller holds zone lock. - */ REQUIRE(DNS_NOTIFY_VALID(notify)); if (notify->zone != NULL) { @@ -11695,7 +11748,8 @@ zone_settimer(dns_zone_t *zone, isc_time_t *now) { case dns_zone_slave: treat_as_slave: - if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NEEDNOTIFY)) + if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NEEDNOTIFY) || + DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NEEDSTARTUPNOTIFY)) next = zone->notifytime; /* FALLTHROUGH */ @@ -11890,9 +11944,7 @@ notify_createmessage(dns_zone_t *zone, unsigned int flags, goto soa_cleanup; temprdatalist->rdclass = rdata.rdclass; temprdatalist->type = rdata.type; - temprdatalist->covers = 0; temprdatalist->ttl = rdataset.ttl; - ISC_LIST_INIT(temprdatalist->rdata); ISC_LIST_APPEND(temprdatalist->rdata, temprdata, link); dns_rdataset_init(temprdataset); @@ -12113,10 +12165,10 @@ dns_zone_notifyreceive(dns_zone_t *zone, isc_sockaddr_t *from, return (ISC_R_SUCCESS); } zone->notifyfrom = *from; - local = zone->masteraddr; - remote = zone->sourceaddr; + remote = zone->masteraddr; + local = zone->sourceaddr; UNLOCK_ZONE(zone); - dns_zonemgr_unreachabledel(zone->zmgr, &local, &remote); + dns_zonemgr_unreachabledel(zone->zmgr, &remote, &local); dns_zone_refresh(zone); return (ISC_R_SUCCESS); } @@ -12472,6 +12524,13 @@ dns_zone_name(dns_zone_t *zone, char *buf, size_t length) { zone_namerd_tostr(zone, buf, length); } +void +dns_zone_nameonly(dns_zone_t *zone, char *buf, size_t length) { + REQUIRE(DNS_ZONE_VALID(zone)); + REQUIRE(buf != NULL); + zone_name_tostr(zone, buf, length); +} + static void notify_log(dns_zone_t *zone, int level, const char *fmt, ...) { va_list ap; @@ -12921,61 +12980,74 @@ sync_secure_db(dns_zone_t *seczone, dns_zone_t *raw, dns_db_t *secdb, static void receive_secure_serial(isc_task_t *task, isc_event_t *event) { static char me[] = "receive_secure_serial"; - isc_result_t result; + isc_result_t result = ISC_R_SUCCESS; dns_journal_t *rjournal = NULL; + dns_journal_t *sjournal = NULL; isc_uint32_t start, end; - dns_zone_t *zone, *raw = NULL; - dns_db_t *db = NULL; - dns_dbversion_t *newver = NULL, *oldver = NULL; - dns_diff_t diff; + dns_zone_t *zone; dns_difftuple_t *tuple = NULL, *soatuple = NULL; dns_update_log_t log = { update_log_cb, NULL }; isc_time_t timenow; + UNUSED(task); + zone = event->ev_arg; end = ((struct secure_event *)event)->serial; - isc_event_free(&event); ENTER; LOCK_ZONE(zone); - dns_diff_init(zone->mctx, &diff); + /* + * If we are already processing a receive secure serial event + * for the zone, just queue the new one and exit. + */ + if (zone->rss_event != NULL && zone->rss_event != event) { + ISC_LIST_APPEND(zone->rss_events, event, ev_link); + UNLOCK_ZONE(zone); + return; + } - UNUSED(task); + nextevent: + if (zone->rss_event != NULL) { + INSIST(zone->rss_event == event); + UNLOCK_ZONE(zone); + } else { + zone->rss_event = event; + dns_diff_init(zone->mctx, &zone->rss_diff); - ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read); - if (zone->db != NULL) - dns_db_attach(zone->db, &db); - ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read); + /* + * zone->db may be NULL, if the load from disk failed. + */ + result = ISC_R_SUCCESS; + ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read); + if (zone->db != NULL) + dns_db_attach(zone->db, &zone->rss_db); + else + result = ISC_R_FAILURE; + ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read); - if (zone->raw != NULL) - dns_zone_attach(zone->raw, &raw); - UNLOCK_ZONE(zone); + if (result == ISC_R_SUCCESS && zone->raw != NULL) + dns_zone_attach(zone->raw, &zone->rss_raw); + else + result = ISC_R_FAILURE; - /* - * zone->db may be NULL if the load from disk failed. - */ - if (db == NULL || raw == NULL) { - result = ISC_R_FAILURE; - goto failure; - } + UNLOCK_ZONE(zone); - /* - * We first attempt to sync the raw zone to the secure zone - * by using the raw zone's journal, applying all the deltas - * from the latest source-serial of the secure zone up to - * the current serial number of the raw zone. - * - * If that fails, then we'll fall back to a direct comparison - * between raw and secure zones. - */ - result = dns_journal_open(raw->mctx, raw->journal, - DNS_JOURNAL_WRITE, &rjournal); - if (result != ISC_R_SUCCESS) - goto failure; - else { - dns_journal_t *sjournal = NULL; + CHECK(result); + + /* + * We first attempt to sync the raw zone to the secure zone + * by using the raw zone's journal, applying all the deltas + * from the latest source-serial of the secure zone up to + * the current serial number of the raw zone. + * + * If that fails, then we'll fall back to a direct comparison + * between raw and secure zones. + */ + CHECK(dns_journal_open(zone->rss_raw->mctx, + zone->rss_raw->journal, + DNS_JOURNAL_WRITE, &rjournal)); result = dns_journal_open(zone->mctx, zone->journal, DNS_JOURNAL_READ, &sjournal); @@ -12989,9 +13061,9 @@ receive_secure_serial(isc_task_t *task, isc_event_t *event) { if (sjournal != NULL) { isc_uint32_t serial; /* - * We read the secure journal first, if that exists - * use its value provided it is greater that from the - * raw journal. + * We read the secure journal first, if that + * exists use its value provided it is greater + * that from the raw journal. */ if (dns_journal_get_sourceserial(sjournal, &serial)) { if (isc_serial_gt(serial, start)) @@ -12999,50 +13071,78 @@ receive_secure_serial(isc_task_t *task, isc_event_t *event) { } dns_journal_destroy(&sjournal); } - } - dns_db_currentversion(db, &oldver); - CHECK(dns_db_newversion(db, &newver)); + dns_db_currentversion(zone->rss_db, &zone->rss_oldver); + CHECK(dns_db_newversion(zone->rss_db, &zone->rss_newver)); - /* - * Try to apply diffs from the raw zone's journal to the secure - * zone. If that fails, we recover by syncing up the databases - * directly. - */ - result = sync_secure_journal(zone, raw, rjournal, start, end, - &soatuple, &diff); - if (result == DNS_R_UNCHANGED) - goto failure; - else if (result != ISC_R_SUCCESS) - CHECK(sync_secure_db(zone, raw, db, oldver, &soatuple, &diff)); - - CHECK(dns_diff_apply(&diff, db, newver)); - - if (soatuple != NULL) { - isc_uint32_t oldserial, newserial, desired; - - CHECK(dns_db_createsoatuple(db, oldver, diff.mctx, - DNS_DIFFOP_DEL, &tuple)); - oldserial = dns_soa_getserial(&tuple->rdata); - newserial = desired = dns_soa_getserial(&soatuple->rdata); - if (!isc_serial_gt(newserial, oldserial)) { - newserial = oldserial + 1; - if (newserial == 0) - newserial++; - dns_soa_setserial(newserial, &soatuple->rdata); - } - CHECK(do_one_tuple(&tuple, db, newver, &diff)); - CHECK(do_one_tuple(&soatuple, db, newver, &diff)); - dns_zone_log(zone, ISC_LOG_INFO, "serial %u (unsigned %u)", - newserial, desired); - } else - CHECK(update_soa_serial(db, newver, &diff, zone->mctx, - zone->updatemethod)); + /* + * Try to apply diffs from the raw zone's journal to the secure + * zone. If that fails, we recover by syncing up the databases + * directly. + */ + result = sync_secure_journal(zone, zone->rss_raw, rjournal, + start, end, &soatuple, + &zone->rss_diff); + if (result == DNS_R_UNCHANGED) + goto failure; + else if (result != ISC_R_SUCCESS) + CHECK(sync_secure_db(zone, zone->rss_raw, zone->rss_db, + zone->rss_oldver, &soatuple, + &zone->rss_diff)); + + CHECK(dns_diff_apply(&zone->rss_diff, zone->rss_db, + zone->rss_newver)); + + if (soatuple != NULL) { + isc_uint32_t oldserial, newserial, desired; + + CHECK(dns_db_createsoatuple(zone->rss_db, + zone->rss_oldver, + zone->rss_diff.mctx, + DNS_DIFFOP_DEL, &tuple)); + oldserial = dns_soa_getserial(&tuple->rdata); + newserial = desired = + dns_soa_getserial(&soatuple->rdata); + if (!isc_serial_gt(newserial, oldserial)) { + newserial = oldserial + 1; + if (newserial == 0) + newserial++; + dns_soa_setserial(newserial, &soatuple->rdata); + } + CHECK(do_one_tuple(&tuple, zone->rss_db, + zone->rss_newver, &zone->rss_diff)); + CHECK(do_one_tuple(&soatuple, zone->rss_db, + zone->rss_newver, &zone->rss_diff)); + dns_zone_log(zone, ISC_LOG_INFO, + "serial %u (unsigned %u)", + newserial, desired); + } else + CHECK(update_soa_serial(zone->rss_db, zone->rss_newver, + &zone->rss_diff, zone->mctx, + zone->updatemethod)); - CHECK(dns_update_signatures(&log, zone, db, oldver, newver, - &diff, zone->sigvalidityinterval)); + } + result = dns_update_signaturesinc(&log, zone, zone->rss_db, + zone->rss_oldver, zone->rss_newver, + &zone->rss_diff, + zone->sigvalidityinterval, + &zone->rss_state); + if (result == DNS_R_CONTINUE) { + if (rjournal != NULL) + dns_journal_destroy(&rjournal); + isc_task_send(task, &event); + fprintf(stderr, "looping on dns_update_signaturesinc\n"); + return; + } + if (result != ISC_R_SUCCESS) + goto failure; - CHECK(zone_journal(zone, &diff, &end, "receive_secure_serial")); + if (rjournal == NULL) + CHECK(dns_journal_open(zone->rss_raw->mctx, + zone->rss_raw->journal, + DNS_JOURNAL_WRITE, &rjournal)); + CHECK(zone_journal(zone, &zone->rss_diff, &end, + "receive_secure_serial")); dns_journal_set_sourceserial(rjournal, end); dns_journal_commit(rjournal); @@ -13058,12 +13158,15 @@ receive_secure_serial(isc_task_t *task, isc_event_t *event) { zone_settimer(zone, &timenow); UNLOCK_ZONE(zone); - dns_db_closeversion(db, &oldver, ISC_FALSE); - dns_db_closeversion(db, &newver, ISC_TRUE); + dns_db_closeversion(zone->rss_db, &zone->rss_oldver, ISC_FALSE); + dns_db_closeversion(zone->rss_db, &zone->rss_newver, ISC_TRUE); failure: - if (raw != NULL) - dns_zone_detach(&raw); + isc_event_free(&zone->rss_event); + event = ISC_LIST_HEAD(zone->rss_events); + + if (zone->rss_raw != NULL) + dns_zone_detach(&zone->rss_raw); if (result != ISC_R_SUCCESS) dns_zone_log(zone, ISC_LOG_ERROR, "receive_secure_serial: %s", dns_result_totext(result)); @@ -13071,20 +13174,28 @@ receive_secure_serial(isc_task_t *task, isc_event_t *event) { dns_difftuple_free(&tuple); if (soatuple != NULL) dns_difftuple_free(&soatuple); - if (db != NULL) { - if (oldver != NULL) - dns_db_closeversion(db, &oldver, ISC_FALSE); - if (newver != NULL) - dns_db_closeversion(db, &newver, ISC_FALSE); - dns_db_detach(&db); + if (zone->rss_db != NULL) { + if (zone->rss_oldver != NULL) + dns_db_closeversion(zone->rss_db, &zone->rss_oldver, + ISC_FALSE); + if (zone->rss_newver != NULL) + dns_db_closeversion(zone->rss_db, &zone->rss_newver, + ISC_FALSE); + dns_db_detach(&zone->rss_db); } + INSIST(zone->rss_oldver == NULL); + INSIST(zone->rss_newver == NULL); if (rjournal != NULL) dns_journal_destroy(&rjournal); - dns_diff_clear(&diff); - dns_zone_idetach(&zone); + dns_diff_clear(&zone->rss_diff); - INSIST(oldver == NULL); - INSIST(newver == NULL); + if (event != NULL) { + LOCK_ZONE(zone); + INSIST(zone->irefs > 1); + zone->irefs--; + goto nextevent; + } + dns_zone_idetach(&zone); } static isc_result_t @@ -13144,11 +13255,10 @@ checkandaddsoa(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, result = dns_rdata_fromstruct(&rdata, rdataset->rdclass, dns_rdatatype_soa, &soa, &b); RUNTIME_CHECK(result == ISC_R_SUCCESS); + dns_rdatalist_init(&temprdatalist); temprdatalist.rdclass = rdata.rdclass; temprdatalist.type = rdata.type; - temprdatalist.covers = 0; temprdatalist.ttl = rdataset->ttl; - ISC_LIST_INIT(temprdatalist.rdata); ISC_LIST_APPEND(temprdatalist.rdata, &rdata, link); dns_rdataset_init(&temprdataset); @@ -15477,8 +15587,8 @@ dns_zonemgr_setserialqueryrate(dns_zonemgr_t *zmgr, unsigned int value) { setrl(zmgr->refreshrl, &zmgr->serialqueryrate, value); /* Seperately controlled in BIND 9.11.x */ - setrl(zmgr->notifyrl, &zmgr->notifyrate, 20); - setrl(zmgr->startupnotifyrl, &zmgr->startupnotifyrate, 20); + setrl(zmgr->notifyrl, &zmgr->notifyrate, value); + setrl(zmgr->startupnotifyrl, &zmgr->startupnotifyrate, value); /* XXXMPA seperate out once we have the code to support this. */ setrl(zmgr->startuprefreshrl, &zmgr->startupserialqueryrate, value); @@ -16016,6 +16126,12 @@ dns_zone_setsignatures(dns_zone_t *zone, isc_uint32_t signatures) { zone->signatures = signatures; } +isc_uint32_t +dns_zone_getsignatures(dns_zone_t *zone) { + REQUIRE(DNS_ZONE_VALID(zone)); + return (zone->signatures); +} + void dns_zone_setprivatetype(dns_zone_t *zone, dns_rdatatype_t type) { REQUIRE(DNS_ZONE_VALID(zone)); @@ -16853,6 +16969,148 @@ dns_zone_nscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version, return (result); } +isc_result_t +dns_zone_cdscheck(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version) { + isc_result_t result; + dns_dbnode_t *node = NULL; + dns_rdataset_t dnskey, cds, cdnskey; + unsigned char buffer[DNS_DS_BUFFERSIZE]; + unsigned char algorithms[256]; + unsigned int i; + + REQUIRE(DNS_ZONE_VALID(zone)); + + result = dns_db_getoriginnode(db, &node); + if (result != ISC_R_SUCCESS) + return (result); + + dns_rdataset_init(&cds); + dns_rdataset_init(&dnskey); + dns_rdataset_init(&cdnskey); + + result = dns_db_findrdataset(db, node, version, dns_rdatatype_cds, + dns_rdatatype_none, 0, &cds, NULL); + if (result != ISC_R_SUCCESS && result != ISC_R_NOTFOUND) + goto failure; + + result = dns_db_findrdataset(db, node, version, dns_rdatatype_cdnskey, + dns_rdatatype_none, 0, &cdnskey, NULL); + if (result != ISC_R_SUCCESS && result != ISC_R_NOTFOUND) + goto failure; + + if (!dns_rdataset_isassociated(&cds) && + !dns_rdataset_isassociated(&cdnskey)) { + result = ISC_R_SUCCESS; + goto failure; + } + + result = dns_db_findrdataset(db, node, version, dns_rdatatype_dnskey, + dns_rdatatype_none, 0, &dnskey, NULL); + if (result == ISC_R_NOTFOUND) { + if (dns_rdataset_isassociated(&cds)) + result = DNS_R_BADCDS; + else + result = DNS_R_BADCDNSKEY; + goto failure; + } + if (result != ISC_R_SUCCESS) + goto failure; + + /* + * For each DNSSEC algorithm in the CDS RRset there must be + * a matching DNSKEY record. + */ + if (dns_rdataset_isassociated(&cds)) { + memset(algorithms, 0, sizeof(algorithms)); + for (result = dns_rdataset_first(&cds); + result == ISC_R_SUCCESS; + result = dns_rdataset_next(&cds)) { + dns_rdata_t crdata = DNS_RDATA_INIT; + dns_rdata_cds_t structcds; + + dns_rdataset_current(&cds, &crdata); + CHECK(dns_rdata_tostruct(&crdata, &structcds, NULL)); + if (algorithms[structcds.algorithm] == 0) + algorithms[structcds.algorithm] = 1; + for (result = dns_rdataset_first(&dnskey); + result == ISC_R_SUCCESS; + result = dns_rdataset_next(&dnskey)) { + dns_rdata_t rdata = DNS_RDATA_INIT; + dns_rdata_t dsrdata = DNS_RDATA_INIT; + + dns_rdataset_current(&dnskey, &rdata); + CHECK(dns_ds_buildrdata(&zone->origin, &rdata, + structcds.digest_type, + buffer, &dsrdata)); + if (crdata.length == dsrdata.length && + memcmp(crdata.data, dsrdata.data, + dsrdata.length) == 0) { + algorithms[structcds.algorithm] = 2; + } + } + if (result != ISC_R_NOMORE) + goto failure; + } + for (i = 0; i < sizeof(algorithms); i++) { + if (algorithms[i] == 1) { + result = DNS_R_BADCDNSKEY; + goto failure; + } + } + } + + /* + * For each DNSSEC algorithm in the CDNSKEY RRset there must be + * a matching DNSKEY record. + */ + if (dns_rdataset_isassociated(&cdnskey)) { + memset(algorithms, 0, sizeof(algorithms)); + for (result = dns_rdataset_first(&cdnskey); + result == ISC_R_SUCCESS; + result = dns_rdataset_next(&cdnskey)) { + dns_rdata_t crdata = DNS_RDATA_INIT; + dns_rdata_cdnskey_t structcdnskey; + + dns_rdataset_current(&cdnskey, &crdata); + CHECK(dns_rdata_tostruct(&crdata, &structcdnskey, + NULL)); + if (algorithms[structcdnskey.algorithm] == 0) + algorithms[structcdnskey.algorithm] = 1; + for (result = dns_rdataset_first(&dnskey); + result == ISC_R_SUCCESS; + result = dns_rdataset_next(&dnskey)) { + dns_rdata_t rdata = DNS_RDATA_INIT; + + dns_rdataset_current(&dnskey, &rdata); + if (crdata.length == rdata.length && + memcmp(crdata.data, rdata.data, + rdata.length) == 0) { + algorithms[structcdnskey.algorithm] = 2; + } + } + if (result != ISC_R_NOMORE) + goto failure; + } + for (i = 0; i < sizeof(algorithms); i++) { + if (algorithms[i] == 1) { + result = DNS_R_BADCDS; + goto failure; + } + } + } + result = ISC_R_SUCCESS; + + failure: + if (dns_rdataset_isassociated(&cds)) + dns_rdataset_disassociate(&cds); + if (dns_rdataset_isassociated(&dnskey)) + dns_rdataset_disassociate(&dnskey); + if (dns_rdataset_isassociated(&cdnskey)) + dns_rdataset_disassociate(&cdnskey); + dns_db_detachnode(db, &node); + return (result); +} + void dns_zone_setadded(dns_zone_t *zone, isc_boolean_t added) { REQUIRE(DNS_ZONE_VALID(zone)); @@ -17034,7 +17292,7 @@ keydone(isc_task_t *task, isc_event_t *event) { dns_dbnode_t *node = NULL; dns_rdataset_t rdataset; dns_diff_t diff; - struct keydone *keydone = (struct keydone *)event; + struct keydone *kd = (struct keydone *)event; dns_update_log_t log = { update_log_cb, NULL }; isc_boolean_t clear_pending = ISC_FALSE; @@ -17086,7 +17344,7 @@ keydone(isc_task_t *task, isc_event_t *event) { dns_rdataset_current(&rdataset, &rdata); - if (keydone->all) { + if (kd->all) { if (rdata.length == 5 && rdata.data[0] != 0 && rdata.data[3] == 0 && rdata.data[4] == 1) found = ISC_TRUE; @@ -17096,7 +17354,7 @@ keydone(isc_task_t *task, isc_event_t *event) { clear_pending = ISC_TRUE; } } else if (rdata.length == 5 && - memcmp(rdata.data, keydone->data, 5) == 0) + memcmp(rdata.data, kd->data, 5) == 0) found = ISC_TRUE; if (found) diff --git a/lib/export/isc/unix/include/isc/Makefile.in b/lib/export/isc/unix/include/isc/Makefile.in index 7159c76865ca..ebbc97362f03 100644 --- a/lib/export/isc/unix/include/isc/Makefile.in +++ b/lib/export/isc/unix/include/isc/Makefile.in @@ -1,4 +1,4 @@ -# Copyright (C) 2009, 2012 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2009, 2012, 2015 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 @@ -19,7 +19,7 @@ top_srcdir = @top_srcdir@ @BIND9_VERSION@ -HEADERS = dir.h int.h net.h netdb.h offset.h stdtime.h \ +HEADERS = dir.h int.h net.h netdb.h offset.h stat.h stdtime.h \ syslog.h time.h SUBDIRS = diff --git a/lib/export/samples/nsprobe.c b/lib/export/samples/nsprobe.c index c29c9a679c71..9c2f6af28dcb 100644 --- a/lib/export/samples/nsprobe.c +++ b/lib/export/samples/nsprobe.c @@ -31,6 +31,7 @@ #include <isc/buffer.h> #include <isc/lib.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/socket.h> #include <isc/sockaddr.h> #include <isc/string.h> diff --git a/lib/export/samples/sample-async.c b/lib/export/samples/sample-async.c index a70dd4741ede..05fd30d1db78 100644 --- a/lib/export/samples/sample-async.c +++ b/lib/export/samples/sample-async.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009, 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2013, 2015 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 @@ -34,6 +34,7 @@ #include <isc/buffer.h> #include <isc/lib.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/socket.h> #include <isc/sockaddr.h> #include <isc/task.h> diff --git a/lib/export/samples/sample-gai.c b/lib/export/samples/sample-gai.c index 243d07a2f971..b214d0858170 100644 --- a/lib/export/samples/sample-gai.c +++ b/lib/export/samples/sample-gai.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2012, 2013, 2015 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 @@ -27,6 +27,8 @@ #include <string.h> #include <stdio.h> +#include <isc/print.h> + static void do_gai(int family, char *hostname) { struct addrinfo hints, *res, *res0; diff --git a/lib/export/samples/sample-request.c b/lib/export/samples/sample-request.c index e39c21e8e647..0f37edded79d 100644 --- a/lib/export/samples/sample-request.c +++ b/lib/export/samples/sample-request.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009, 2012-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2012-2015 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 @@ -35,6 +35,7 @@ #include <isc/buffer.h> #include <isc/lib.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/sockaddr.h> #include <isc/util.h> diff --git a/lib/export/samples/sample-update.c b/lib/export/samples/sample-update.c index acab0059067a..887337db2ef4 100644 --- a/lib/export/samples/sample-update.c +++ b/lib/export/samples/sample-update.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009, 2010, 2012-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2010, 2012-2015 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 @@ -37,6 +37,7 @@ #include <isc/lib.h> #include <isc/mem.h> #include <isc/parseint.h> +#include <isc/print.h> #include <isc/sockaddr.h> #include <isc/string.h> #include <isc/util.h> @@ -681,11 +682,8 @@ make_prereq(isc_mem_t *mctx, char *cmdline, isc_boolean_t ispositive, rdatalist->rdclass = dns_rdataclass_any; } else rdatalist->rdclass = dns_rdataclass_none; - rdatalist->covers = 0; - rdatalist->ttl = 0; rdata->rdclass = rdatalist->rdclass; rdata->type = rdatatype; - ISC_LIST_INIT(rdatalist->rdata); ISC_LIST_APPEND(rdatalist->rdata, rdata, link); ISC_LIST_APPEND(usedrdatalists, rdatalist, link); diff --git a/lib/export/samples/sample.c b/lib/export/samples/sample.c index 7de9a8f1e9da..3062d8bef62f 100644 --- a/lib/export/samples/sample.c +++ b/lib/export/samples/sample.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009, 2012-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2012-2015 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 @@ -35,6 +35,7 @@ #include <isc/buffer.h> #include <isc/lib.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/sockaddr.h> #include <isc/util.h> diff --git a/lib/irs/api b/lib/irs/api index c20ad07b828f..14fd6164e88c 100644 --- a/lib/irs/api +++ b/lib/irs/api @@ -5,5 +5,5 @@ # 9.9: 90-109 # 9.9-sub: 130-139 LIBINTERFACE = 91 -LIBREVISION = 1 +LIBREVISION = 3 LIBAGE = 0 diff --git a/lib/irs/getaddrinfo.c b/lib/irs/getaddrinfo.c index f821635e984e..f61225c11f95 100644 --- a/lib/irs/getaddrinfo.c +++ b/lib/irs/getaddrinfo.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009, 2012-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2012-2015 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 @@ -138,6 +138,7 @@ #include <isc/sockaddr.h> #include <isc/string.h> #include <isc/util.h> +#include <isc/mutex.h> #include <dns/client.h> #include <dns/fixedname.h> @@ -530,6 +531,7 @@ typedef struct gai_statehead { int ai_port; isc_appctx_t *actx; dns_client_t *dnsclient; + isc_mutex_t list_lock; ISC_LIST(struct gai_resstate) resstates; unsigned int activestates; } gai_statehead_t; @@ -857,6 +859,7 @@ process_answer(isc_task_t *task, isc_event_t *event) { * and have any answer, we can stop now by canceling the * others. */ + LOCK(&resstate->head->list_lock); if (resstate == ISC_LIST_HEAD(resstate->head->resstates)) { if ((resstate->trans4 != NULL && resstate->trans4->ai_sentinel.ai_next != NULL) || @@ -888,6 +891,7 @@ process_answer(isc_task_t *task, isc_event_t *event) { resstate, link); } } + UNLOCK(&resstate->head->list_lock); } } @@ -928,11 +932,19 @@ resolve_name(int family, const char *hostname, int flags, head.ai_port = port; head.actx = actx; head.dnsclient = client; + result = isc_mutex_init(&head.list_lock); + if (result != ISC_R_SUCCESS) { + return (EAI_FAIL); + } + ISC_LIST_INIT(head.resstates); result = make_resstates(mctx, hostname, &head, conf); - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS) { + DESTROYLOCK(&head.list_lock); return (EAI_FAIL); + } + LOCK(&head.list_lock); for (resstate = ISC_LIST_HEAD(head.resstates); resstate != NULL; resstate = ISC_LIST_NEXT(resstate, link)) { if (resstate->trans4 != NULL) { @@ -966,6 +978,8 @@ resolve_name(int family, const char *hostname, int flags, resstate->trans6->is_inprogress= ISC_FALSE; } } + UNLOCK(&head.list_lock); + if (!all_fail) { /* Start all the events */ isc_app_ctxrun(actx); @@ -1037,6 +1051,7 @@ resolve_name(int family, const char *hostname, int flags, irs_context_destroy(&irsctx); #endif + DESTROYLOCK(&head.list_lock); return (error); } @@ -1123,10 +1138,8 @@ add_ipv4(const char *hostname, int flags, struct addrinfo **aip, UNUSED(flags); ai = ai_clone(*aip, AF_INET); /* don't use ai_clone() */ - if (ai == NULL) { - _freeaddrinfo(*aip); + if (ai == NULL) return (EAI_MEMORY); - } *aip = ai; ai->ai_socktype = socktype; @@ -1246,11 +1259,8 @@ ai_clone(struct addrinfo *oai, int family) { ai = ai_alloc(family, ((family == AF_INET6) ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in))); - if (ai == NULL) { - if (oai != NULL) - freeaddrinfo(oai); + if (ai == NULL) return (NULL); - } if (oai == NULL) return (ai); diff --git a/lib/isc/api b/lib/isc/api index 38bb8eb7d795..9a572b2d2e74 100644 --- a/lib/isc/api +++ b/lib/isc/api @@ -4,6 +4,6 @@ # 9.8: 80-89, 120-129 # 9.9: 90-109 # 9.9-sub: 130-139 -LIBINTERFACE = 104 -LIBREVISION = 2 +LIBINTERFACE = 106 +LIBREVISION = 0 LIBAGE = 0 diff --git a/lib/isc/assertions.c b/lib/isc/assertions.c index 31c4fe7c9f27..6b6f52db1ac3 100644 --- a/lib/isc/assertions.c +++ b/lib/isc/assertions.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007-2009 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007-2009, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1997-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -27,6 +27,7 @@ #include <isc/assertions.h> #include <isc/backtrace.h> #include <isc/msgs.h> +#include <isc/print.h> #include <isc/result.h> /* diff --git a/lib/isc/backtrace.c b/lib/isc/backtrace.c index 2a510421474f..f7a293c0f3d4 100644 --- a/lib/isc/backtrace.c +++ b/lib/isc/backtrace.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2013-2015 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 @@ -221,17 +221,17 @@ isc_backtrace_gettrace(void **addrs, int maxaddrs, int *nframes) { #endif isc_result_t -isc_backtrace_getsymbolfromindex(int index, const void **addrp, +isc_backtrace_getsymbolfromindex(int idx, const void **addrp, const char **symbolp) { REQUIRE(addrp != NULL && *addrp == NULL); REQUIRE(symbolp != NULL && *symbolp == NULL); - if (index < 0 || index >= isc__backtrace_nsymbols) + if (idx < 0 || idx >= isc__backtrace_nsymbols) return (ISC_R_RANGE); - *addrp = isc__backtrace_symtable[index].addr; - *symbolp = isc__backtrace_symtable[index].symbol; + *addrp = isc__backtrace_symtable[idx].addr; + *symbolp = isc__backtrace_symtable[idx].symbol; return (ISC_R_SUCCESS); } diff --git a/lib/isc/commandline.c b/lib/isc/commandline.c index 98546db48f38..416fba1927a6 100644 --- a/lib/isc/commandline.c +++ b/lib/isc/commandline.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2004, 2005, 2007, 2008, 2014 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004, 2005, 2007, 2008, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1999-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -65,6 +65,7 @@ #include <isc/commandline.h> #include <isc/msgs.h> +#include <isc/print.h> #include <isc/string.h> #include <isc/util.h> diff --git a/lib/isc/entropy.c b/lib/isc/entropy.c index da9e81fb3129..66c196e5f718 100644 --- a/lib/isc/entropy.c +++ b/lib/isc/entropy.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2009, 2010 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2009, 2010, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -40,6 +40,7 @@ #include <isc/msgs.h> #include <isc/mutex.h> #include <isc/platform.h> +#include <isc/print.h> #include <isc/region.h> #include <isc/sha1.h> #include <isc/string.h> @@ -316,7 +317,12 @@ entropypool_adddata(isc_entropy_t *ent, void *p, unsigned int len, unsigned long addr; isc_uint8_t *buf; + /* Silly MSVC in 64 bit mode complains here... */ +#ifdef _WIN64 + addr = (unsigned long)((unsigned long long)p); +#else addr = (unsigned long)p; +#endif buf = p; if ((addr & 0x03U) != 0U) { diff --git a/lib/isc/error.c b/lib/isc/error.c index 095100a7c943..b15881589eb4 100644 --- a/lib/isc/error.c +++ b/lib/isc/error.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -26,6 +26,7 @@ #include <isc/error.h> #include <isc/msgs.h> +#include <isc/print.h> /*% Default unexpected callback. */ static void diff --git a/lib/isc/heap.c b/lib/isc/heap.c index 9d4fd28adc3e..3dd23cf56b56 100644 --- a/lib/isc/heap.c +++ b/lib/isc/heap.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2010-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2010-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1997-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -74,7 +74,7 @@ struct isc_heap { isc_result_t isc_heap_create(isc_mem_t *mctx, isc_heapcompare_t compare, - isc_heapindex_t index, unsigned int size_increment, + isc_heapindex_t idx, unsigned int size_increment, isc_heap_t **heapp) { isc_heap_t *heap; @@ -96,7 +96,7 @@ isc_heap_create(isc_mem_t *mctx, isc_heapcompare_t compare, heap->last = 0; heap->array = NULL; heap->compare = compare; - heap->index = index; + heap->index = idx; *heapp = heap; @@ -203,14 +203,14 @@ isc_heap_insert(isc_heap_t *heap, void *elt) { } void -isc_heap_delete(isc_heap_t *heap, unsigned int index) { +isc_heap_delete(isc_heap_t *heap, unsigned int idx) { void *elt; isc_boolean_t less; REQUIRE(VALID_HEAP(heap)); - REQUIRE(index >= 1 && index <= heap->last); + REQUIRE(idx >= 1 && idx <= heap->last); - if (index == heap->last) { + if (idx == heap->last) { heap->array[heap->last] = NULL; heap->last--; } else { @@ -218,38 +218,38 @@ isc_heap_delete(isc_heap_t *heap, unsigned int index) { heap->array[heap->last] = NULL; heap->last--; - less = heap->compare(elt, heap->array[index]); - heap->array[index] = elt; + less = heap->compare(elt, heap->array[idx]); + heap->array[idx] = elt; if (less) - float_up(heap, index, heap->array[index]); + float_up(heap, idx, heap->array[idx]); else - sink_down(heap, index, heap->array[index]); + sink_down(heap, idx, heap->array[idx]); } } void -isc_heap_increased(isc_heap_t *heap, unsigned int index) { +isc_heap_increased(isc_heap_t *heap, unsigned int idx) { REQUIRE(VALID_HEAP(heap)); - REQUIRE(index >= 1 && index <= heap->last); + REQUIRE(idx >= 1 && idx <= heap->last); - float_up(heap, index, heap->array[index]); + float_up(heap, idx, heap->array[idx]); } void -isc_heap_decreased(isc_heap_t *heap, unsigned int index) { +isc_heap_decreased(isc_heap_t *heap, unsigned int idx) { REQUIRE(VALID_HEAP(heap)); - REQUIRE(index >= 1 && index <= heap->last); + REQUIRE(idx >= 1 && idx <= heap->last); - sink_down(heap, index, heap->array[index]); + sink_down(heap, idx, heap->array[idx]); } void * -isc_heap_element(isc_heap_t *heap, unsigned int index) { +isc_heap_element(isc_heap_t *heap, unsigned int idx) { REQUIRE(VALID_HEAP(heap)); - REQUIRE(index >= 1); + REQUIRE(idx >= 1); - if (index <= heap->last) - return (heap->array[index]); + if (idx <= heap->last) + return (heap->array[idx]); return (NULL); } diff --git a/lib/isc/hmacmd5.c b/lib/isc/hmacmd5.c index 9c10532c53c1..d27bfe42a786 100644 --- a/lib/isc/hmacmd5.c +++ b/lib/isc/hmacmd5.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2009, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2009, 2013-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000, 2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -159,5 +159,5 @@ isc_hmacmd5_verify2(isc_hmacmd5_t *ctx, unsigned char *digest, size_t len) { REQUIRE(len <= ISC_MD5_DIGESTLENGTH); isc_hmacmd5_sign(ctx, newdigest); - return (isc_safe_memcmp(digest, newdigest, len)); + return (isc_safe_memequal(digest, newdigest, len)); } diff --git a/lib/isc/hmacsha.c b/lib/isc/hmacsha.c index 1f72330d35ce..fa905e068569 100644 --- a/lib/isc/hmacsha.c +++ b/lib/isc/hmacsha.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2005-2007, 2009, 2011-2015 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 @@ -604,7 +604,7 @@ isc_hmacsha1_verify(isc_hmacsha1_t *ctx, unsigned char *digest, size_t len) { REQUIRE(len <= ISC_SHA1_DIGESTLENGTH); isc_hmacsha1_sign(ctx, newdigest, ISC_SHA1_DIGESTLENGTH); - return (isc_safe_memcmp(digest, newdigest, len)); + return (isc_safe_memequal(digest, newdigest, len)); } /* @@ -617,7 +617,7 @@ isc_hmacsha224_verify(isc_hmacsha224_t *ctx, unsigned char *digest, size_t len) REQUIRE(len <= ISC_SHA224_DIGESTLENGTH); isc_hmacsha224_sign(ctx, newdigest, ISC_SHA224_DIGESTLENGTH); - return (isc_safe_memcmp(digest, newdigest, len)); + return (isc_safe_memequal(digest, newdigest, len)); } /* @@ -630,7 +630,7 @@ isc_hmacsha256_verify(isc_hmacsha256_t *ctx, unsigned char *digest, size_t len) REQUIRE(len <= ISC_SHA256_DIGESTLENGTH); isc_hmacsha256_sign(ctx, newdigest, ISC_SHA256_DIGESTLENGTH); - return (isc_safe_memcmp(digest, newdigest, len)); + return (isc_safe_memequal(digest, newdigest, len)); } /* @@ -643,7 +643,7 @@ isc_hmacsha384_verify(isc_hmacsha384_t *ctx, unsigned char *digest, size_t len) REQUIRE(len <= ISC_SHA384_DIGESTLENGTH); isc_hmacsha384_sign(ctx, newdigest, ISC_SHA384_DIGESTLENGTH); - return (isc_safe_memcmp(digest, newdigest, len)); + return (isc_safe_memequal(digest, newdigest, len)); } /* @@ -656,5 +656,5 @@ isc_hmacsha512_verify(isc_hmacsha512_t *ctx, unsigned char *digest, size_t len) REQUIRE(len <= ISC_SHA512_DIGESTLENGTH); isc_hmacsha512_sign(ctx, newdigest, ISC_SHA512_DIGESTLENGTH); - return (isc_safe_memcmp(digest, newdigest, len)); + return (isc_safe_memequal(digest, newdigest, len)); } diff --git a/lib/isc/httpd.c b/lib/isc/httpd.c index 0c159f069df8..241c1d53a8d5 100644 --- a/lib/isc/httpd.c +++ b/lib/isc/httpd.c @@ -23,6 +23,7 @@ #include <isc/buffer.h> #include <isc/httpd.h> #include <isc/mem.h> +#include <isc/print.h> #include <isc/socket.h> #include <isc/string.h> #include <isc/task.h> @@ -61,6 +62,7 @@ #define HTTPD_CLOSE 0x0001 /* Got a Connection: close header */ #define HTTPD_FOUNDHOST 0x0002 /* Got a Host: header */ +#define HTTPD_KEEPALIVE 0x0004 /* Got a Connection: Keep-Alive */ /*% http client */ struct isc_httpd { @@ -236,39 +238,40 @@ isc_result_t isc_httpdmgr_create(isc_mem_t *mctx, isc_socket_t *sock, isc_task_t *task, isc_httpdclientok_t *client_ok, isc_httpdondestroy_t *ondestroy, void *cb_arg, - isc_timermgr_t *tmgr, isc_httpdmgr_t **httpdp) + isc_timermgr_t *tmgr, isc_httpdmgr_t **httpdmgrp) { isc_result_t result; - isc_httpdmgr_t *httpd; + isc_httpdmgr_t *httpdmgr; REQUIRE(mctx != NULL); REQUIRE(sock != NULL); REQUIRE(task != NULL); REQUIRE(tmgr != NULL); - REQUIRE(httpdp != NULL && *httpdp == NULL); + REQUIRE(httpdmgrp != NULL && *httpdmgrp == NULL); - httpd = isc_mem_get(mctx, sizeof(isc_httpdmgr_t)); - if (httpd == NULL) + httpdmgr = isc_mem_get(mctx, sizeof(isc_httpdmgr_t)); + if (httpdmgr == NULL) return (ISC_R_NOMEMORY); - result = isc_mutex_init(&httpd->lock); + result = isc_mutex_init(&httpdmgr->lock); if (result != ISC_R_SUCCESS) { - isc_mem_put(mctx, httpd, sizeof(isc_httpdmgr_t)); + isc_mem_put(mctx, httpdmgr, sizeof(isc_httpdmgr_t)); return (result); } - httpd->mctx = NULL; - isc_mem_attach(mctx, &httpd->mctx); - httpd->sock = NULL; - isc_socket_attach(sock, &httpd->sock); - httpd->task = NULL; - isc_task_attach(task, &httpd->task); - httpd->timermgr = tmgr; /* XXXMLG no attach function? */ - httpd->client_ok = client_ok; - httpd->ondestroy = ondestroy; - httpd->cb_arg = cb_arg; - - ISC_LIST_INIT(httpd->running); - ISC_LIST_INIT(httpd->urls); + httpdmgr->mctx = NULL; + isc_mem_attach(mctx, &httpdmgr->mctx); + httpdmgr->sock = NULL; + isc_socket_attach(sock, &httpdmgr->sock); + httpdmgr->task = NULL; + isc_task_attach(task, &httpdmgr->task); + httpdmgr->timermgr = tmgr; /* XXXMLG no attach function? */ + httpdmgr->client_ok = client_ok; + httpdmgr->ondestroy = ondestroy; + httpdmgr->cb_arg = cb_arg; + httpdmgr->flags = 0; + + ISC_LIST_INIT(httpdmgr->running); + ISC_LIST_INIT(httpdmgr->urls); /* XXXMLG ignore errors on isc_socket_listen() */ result = isc_socket_listen(sock, SOMAXCONN); @@ -281,22 +284,22 @@ isc_httpdmgr_create(isc_mem_t *mctx, isc_socket_t *sock, isc_task_t *task, (void)isc_socket_filter(sock, "httpready"); - result = isc_socket_accept(sock, task, isc_httpd_accept, httpd); + result = isc_socket_accept(sock, task, isc_httpd_accept, httpdmgr); if (result != ISC_R_SUCCESS) goto cleanup; - httpd->render_404 = render_404; - httpd->render_500 = render_500; + httpdmgr->render_404 = render_404; + httpdmgr->render_500 = render_500; - *httpdp = httpd; + *httpdmgrp = httpdmgr; return (ISC_R_SUCCESS); cleanup: - isc_task_detach(&httpd->task); - isc_socket_detach(&httpd->sock); - isc_mem_detach(&httpd->mctx); - (void)isc_mutex_destroy(&httpd->lock); - isc_mem_put(mctx, httpd, sizeof(isc_httpdmgr_t)); + isc_task_detach(&httpdmgr->task); + isc_socket_detach(&httpdmgr->sock); + isc_mem_detach(&httpdmgr->mctx); + (void)isc_mutex_destroy(&httpdmgr->lock); + isc_mem_put(mctx, httpdmgr, sizeof(isc_httpdmgr_t)); return (result); } @@ -481,6 +484,13 @@ process_request(isc_httpd_t *httpd, int length) { if (strstr(s, "Host: ") != NULL) httpd->flags |= HTTPD_FOUNDHOST; + if (strncmp(httpd->protocol, "HTTP/1.0", 8) == 0) { + if (strcasestr(s, "Connection: Keep-Alive") != NULL) + httpd->flags |= HTTPD_KEEPALIVE; + else + httpd->flags |= HTTPD_CLOSE; + } + /* * Standards compliance hooks here. */ @@ -595,7 +605,7 @@ render_404(const char *url, isc_httpdurl_t *urlinfo, const char **mimetype, isc_buffer_t *b, isc_httpdfree_t **freecb, void **freecb_args) { - static char msg[] = "No such URL."; + static char msg[] = "No such URL.\r\n"; UNUSED(url); UNUSED(urlinfo); @@ -621,7 +631,7 @@ render_500(const char *url, isc_httpdurl_t *urlinfo, const char **mimetype, isc_buffer_t *b, isc_httpdfree_t **freecb, void **freecb_args) { - static char msg[] = "Internal server failure."; + static char msg[] = "Internal server failure.\r\n"; UNUSED(url); UNUSED(urlinfo); @@ -724,6 +734,8 @@ isc_httpd_recvdone(isc_task_t *task, isc_event_t *ev) { } isc_httpd_response(httpd); + if ((httpd->flags & HTTPD_KEEPALIVE) != 0) + isc_httpd_addheader(httpd, "Connection", "Keep-Alive"); isc_httpd_addheader(httpd, "Content-Type", httpd->mimetype); isc_httpd_addheader(httpd, "Date", datebuf); isc_httpd_addheader(httpd, "Expires", datebuf); diff --git a/lib/isc/include/isc/app.h b/lib/isc/include/isc/app.h index 53810859ce4e..7a2f68b0dc98 100644 --- a/lib/isc/include/isc/app.h +++ b/lib/isc/include/isc/app.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2009, 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2009, 2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -203,6 +203,16 @@ isc_app_run(void); *\li ISC_R_RELOAD Reload has been requested. */ +isc_boolean_t +isc_app_isrunning(void); +/*!< + * \brief Return if the ISC library application is running. + * + * Returns: + *\li ISC_TRUE App is running. + *\li ISC_FALSE App is not running. + */ + isc_result_t isc_app_ctxshutdown(isc_appctx_t *ctx); diff --git a/lib/isc/include/isc/mem.h b/lib/isc/include/isc/mem.h index 320d0d83138b..45a4fa1312f9 100644 --- a/lib/isc/include/isc/mem.h +++ b/lib/isc/include/isc/mem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1997-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id$ */ - #ifndef ISC_MEM_H #define ISC_MEM_H 1 @@ -50,7 +48,14 @@ typedef void (*isc_memfree_t)(void *, void *); /*% * Define ISC_MEM_CHECKOVERRUN=1 to turn on checks for using memory outside * the requested space. This will increase the size of each allocation. + * + * If we are performing a Coverity static analysis then ISC_MEM_CHECKOVERRUN + * can hide bugs that would otherwise discovered so force to zero. */ +#ifdef __COVERITY__ +#undef ISC_MEM_CHECKOVERRUN +#define ISC_MEM_CHECKOVERRUN 0 +#endif #ifndef ISC_MEM_CHECKOVERRUN #define ISC_MEM_CHECKOVERRUN 1 #endif @@ -60,7 +65,14 @@ typedef void (*isc_memfree_t)(void *, void *); * with the byte string '0xbe'. This helps track down uninitialized pointers * and the like. On freeing memory, the space is filled with '0xde' for * the same reasons. + * + * If we are performing a Coverity static analysis then ISC_MEM_FILL + * can hide bugs that would otherwise discovered so force to zero. */ +#ifdef __COVERITY__ +#undef ISC_MEM_FILL +#define ISC_MEM_FILL 0 +#endif #ifndef ISC_MEM_FILL #define ISC_MEM_FILL 1 #endif @@ -75,6 +87,8 @@ typedef void (*isc_memfree_t)(void *, void *); #endif LIBISC_EXTERNAL_DATA extern unsigned int isc_mem_debugging; +LIBISC_EXTERNAL_DATA extern unsigned int isc_mem_defaultflags; + /*@{*/ #define ISC_MEM_DEBUGTRACE 0x00000001U #define ISC_MEM_DEBUGRECORD 0x00000002U diff --git a/lib/isc/include/isc/namespace.h b/lib/isc/include/isc/namespace.h index 4cfb305ca003..5696bc8e9a30 100644 --- a/lib/isc/include/isc/namespace.h +++ b/lib/isc/include/isc/namespace.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009-2013, 2015 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 @@ -29,6 +29,7 @@ #define isc_app_ctxstart isc__app_ctxstart #define isc_app_onrun isc__app_onrun #define isc_app_run isc__app_run +#define isc_app_isrunning isc__app_isrunning #define isc_app_ctxrun isc__app_ctxrun #define isc_app_shutdown isc__app_shutdown #define isc_app_ctxfinish isc__app_ctxfinish diff --git a/lib/isc/include/isc/platform.h.in b/lib/isc/include/isc/platform.h.in index 69f81e0af11a..667a1454a4cd 100644 --- a/lib/isc/include/isc/platform.h.in +++ b/lib/isc/include/isc/platform.h.in @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2010, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2010, 2013-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: platform.h.in,v 1.56 2010/12/18 01:56:23 each Exp $ */ - #ifndef ISC_PLATFORM_H #define ISC_PLATFORM_H 1 @@ -172,6 +170,16 @@ @ISC_PLATFORM_NEEDSPRINTF@ /*! \brief + * If this system need a modern printf() that format size %z (size_t). + */ +@ISC_PLATFORM_NEEDPRINTF@ + +/*! \brief + * If this system need a modern fprintf() that format size %z (size_t). + */ +@ISC_PLATFORM_NEEDFPRINTF@ + +/*! \brief * The printf format string modifier to use with isc_uint64_t values. */ @ISC_PLATFORM_QUADFORMAT@ diff --git a/lib/isc/include/isc/print.h b/lib/isc/include/isc/print.h index 2b9169001fec..d7fca7442d57 100644 --- a/lib/isc/include/isc/print.h +++ b/lib/isc/include/isc/print.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: print.h,v 1.26 2007/06/19 23:47:18 tbox Exp $ */ - #ifndef ISC_PRINT_H #define ISC_PRINT_H 1 @@ -47,6 +45,16 @@ #undef sprintf #endif +#if !defined(ISC_PLATFORM_NEEDFPRINTF) && defined(ISC__PRINT_SOURCE) +#define ISC_PLATFORM_NEEDFPRINTF +#undef fprintf +#endif + +#if !defined(ISC_PLATFORM_NEEDPRINTF) && defined(ISC__PRINT_SOURCE) +#define ISC_PLATFORM_NEEDPRINTF +#undef printf +#endif + /*** *** Macros ***/ @@ -60,10 +68,8 @@ #include <stdarg.h> #include <stddef.h> #endif -#ifdef ISC_PLATFORM_NEEDSPRINTF -#include <stdio.h> -#endif +#include <stdio.h> ISC_LANG_BEGINDECLS @@ -71,20 +77,37 @@ ISC_LANG_BEGINDECLS int isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) ISC_FORMAT_PRINTF(3, 0); +#undef vsnprintf #define vsnprintf isc_print_vsnprintf int isc_print_snprintf(char *str, size_t size, const char *format, ...) ISC_FORMAT_PRINTF(3, 4); +#undef snprintf #define snprintf isc_print_snprintf #endif /* ISC_PLATFORM_NEEDVSNPRINTF */ #ifdef ISC_PLATFORM_NEEDSPRINTF int isc_print_sprintf(char *str, const char *format, ...) ISC_FORMAT_PRINTF(2, 3); +#undef sprintf #define sprintf isc_print_sprintf #endif +#ifdef ISC_PLATFORM_NEEDPRINTF +int +isc_print_printf(const char *format, ...) ISC_FORMAT_PRINTF(1, 2); +#undef printf +#define printf isc_print_printf +#endif + +#ifdef ISC_PLATFORM_NEEDFPRINTF +int +isc_print_fprintf(FILE * fp, const char *format, ...) ISC_FORMAT_PRINTF(2, 3); +#undef fprintf +#define fprintf isc_print_fprintf +#endif + ISC_LANG_ENDDECLS #endif /* ISC_PRINT_H */ diff --git a/lib/isc/include/isc/safe.h b/lib/isc/include/isc/safe.h index 89d56def73fd..c6a303352551 100644 --- a/lib/isc/include/isc/safe.h +++ b/lib/isc/include/isc/safe.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2013, 2015 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 @@ -26,9 +26,17 @@ ISC_LANG_BEGINDECLS isc_boolean_t -isc_safe_memcmp(const void *s1, const void *s2, size_t n); +isc_safe_memequal(const void *s1, const void *s2, size_t n); /*%< - * Clone of libc memcmp() safe to differential timing attacks. + * Returns ISC_TRUE iff. two blocks of memory are equal, otherwise + * ISC_FALSE. + * + */ + +int +isc_safe_memcompare(const void *b1, const void *b2, size_t len); +/*%< + * Clone of libc memcmp() which is safe to differential timing attacks. */ ISC_LANG_ENDDECLS diff --git a/lib/isc/include/isc/util.h b/lib/isc/include/isc/util.h index 0a7799cd6a38..6baf786bdeab 100644 --- a/lib/isc/include/isc/util.h +++ b/lib/isc/include/isc/util.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2010-2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2010-2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -56,6 +56,8 @@ #define ISC_MAX(a, b) ((a) > (b) ? (a) : (b)) #define ISC_MIN(a, b) ((a) < (b) ? (a) : (b)) +#define ISC_CLAMP(v, x, y) ((v) < (x) ? (x) : ((v) > (y) ? (y) : (v))) + /*% * Use this to remove the const qualifier of a variable to assign it to * a non-const variable or pass it as a non-const function argument ... diff --git a/lib/isc/lex.c b/lib/isc/lex.c index aa3a6c9ffd59..ce1c5599412f 100644 --- a/lib/isc/lex.c +++ b/lib/isc/lex.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2013-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -41,6 +41,7 @@ typedef struct inputsource { isc_boolean_t is_file; isc_boolean_t need_close; isc_boolean_t at_eof; + isc_boolean_t last_was_eol; isc_buffer_t * pushback; unsigned int ignored; void * input; @@ -202,6 +203,7 @@ new_source(isc_lex_t *lex, isc_boolean_t is_file, isc_boolean_t need_close, source->is_file = is_file; source->need_close = need_close; source->at_eof = ISC_FALSE; + source->last_was_eol = lex->last_was_eol; source->input = input; source->name = isc_mem_strdup(lex->mctx, name); if (source->name == NULL) { @@ -289,6 +291,7 @@ isc_lex_close(isc_lex_t *lex) { return (ISC_R_NOMORE); ISC_LIST_UNLINK(lex->sources, source, link); + lex->last_was_eol = source->last_was_eol; if (source->is_file) { if (source->need_close) (void)fclose((FILE *)(source->input)); diff --git a/lib/isc/lib.c b/lib/isc/lib.c index 0ab72420c2b9..45ae2f36605f 100644 --- a/lib/isc/lib.c +++ b/lib/isc/lib.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -29,6 +29,7 @@ #include <isc/mem.h> #include <isc/msgs.h> #include <isc/once.h> +#include <isc/print.h> #include <isc/socket.h> #include <isc/task.h> #include <isc/timer.h> diff --git a/lib/isc/mem.c b/lib/isc/mem.c index 1962245c01c8..854425750bcd 100644 --- a/lib/isc/mem.c +++ b/lib/isc/mem.c @@ -43,6 +43,7 @@ #define ISC_MEM_DEBUGGING 0 #endif LIBISC_EXTERNAL_DATA unsigned int isc_mem_debugging = ISC_MEM_DEBUGGING; +LIBISC_EXTERNAL_DATA unsigned int isc_mem_defaultflags = ISC_MEMFLAG_DEFAULT; /* * Constants. @@ -215,6 +216,8 @@ struct isc__mempool { static void print_active(isc__mem_t *ctx, FILE *out); +#endif /* ISC_MEM_TRACKLINES */ + /*% * The following can be either static or public, depending on build environment. */ @@ -321,7 +324,6 @@ isc__mem_checkdestroyed(FILE *file); ISC_MEMFUNC_SCOPE unsigned int isc__mem_references(isc_mem_t *ctx0); #endif -#endif /* ISC_MEM_TRACKLINES */ static struct isc__memmethods { isc_memmethods_t methods; @@ -660,7 +662,7 @@ mem_getunlocked(isc__mem_t *ctx, size_t size) { size_t new_size = quantize(size); void *ret; - if (size >= ctx->max_size || new_size >= ctx->max_size) { + if (new_size >= ctx->max_size) { /* * memget() was called on something beyond our upper limit. */ @@ -740,7 +742,7 @@ static inline void mem_putunlocked(isc__mem_t *ctx, void *mem, size_t size) { size_t new_size = quantize(size); - if (size == ctx->max_size || new_size >= ctx->max_size) { + if (new_size >= ctx->max_size) { /* * memput() called on something beyond our upper limit. */ @@ -896,7 +898,7 @@ isc__mem_createx(size_t init_max_size, size_t target_size, isc_mem_t **ctxp) { return (isc__mem_createx2(init_max_size, target_size, memalloc, memfree, - arg, ctxp, ISC_MEMFLAG_DEFAULT)); + arg, ctxp, isc_mem_defaultflags)); } @@ -1038,7 +1040,7 @@ ISC_MEMFUNC_SCOPE isc_result_t isc__mem_create(size_t init_max_size, size_t target_size, isc_mem_t **ctxp) { return (isc__mem_createx2(init_max_size, target_size, default_memalloc, default_memfree, NULL, - ctxp, ISC_MEMFLAG_DEFAULT)); + ctxp, isc_mem_defaultflags)); } ISC_MEMFUNC_SCOPE isc_result_t @@ -1092,11 +1094,17 @@ destroy(isc__mem_t *ctx) { if (ctx->checkfree) { for (i = 0; i <= ctx->max_size; i++) { + if (ctx->stats[i].gets != 0U) { + fprintf(stderr, + "Failing assertion due to probable " + "leaked memory in context %p (\"%s\") " + "(stats[%u].gets == %lu).\n", + ctx, ctx->name, i, ctx->stats[i].gets); #if ISC_MEM_TRACKLINES - if (ctx->stats[i].gets != 0U) print_active(ctx, stderr); #endif - INSIST(ctx->stats[i].gets == 0U); + INSIST(ctx->stats[i].gets == 0U); + } } } @@ -1286,13 +1294,10 @@ isc___mem_get(isc_mem_t *ctx0, size_t size FLARG) { } ADD_TRACE(ctx, ptr, size, file, line); - if (ctx->hi_water != 0U && ctx->inuse > ctx->hi_water && - !ctx->is_overmem) { + if (ctx->hi_water != 0U && ctx->inuse > ctx->hi_water) { ctx->is_overmem = ISC_TRUE; - } - if (ctx->hi_water != 0U && !ctx->hi_called && - ctx->inuse > ctx->hi_water) { - call_water = ISC_TRUE; + if (!ctx->hi_called) + call_water = ISC_TRUE; } if (ctx->inuse > ctx->maxinuse) { ctx->maxinuse = ctx->inuse; @@ -1303,7 +1308,7 @@ isc___mem_get(isc_mem_t *ctx0, size_t size FLARG) { } MCTXUNLOCK(ctx, &ctx->lock); - if (call_water) + if (call_water && (ctx->water != NULL)) (ctx->water)(ctx->water_arg, ISC_MEM_HIWATER); return (ptr); @@ -1347,18 +1352,15 @@ isc___mem_put(isc_mem_t *ctx0, void *ptr, size_t size FLARG) { * when the context was pushed over hi_water but then had * isc_mem_setwater() called with 0 for hi_water and lo_water. */ - if (ctx->is_overmem && - (ctx->inuse < ctx->lo_water || ctx->lo_water == 0U)) { + if ((ctx->inuse < ctx->lo_water) || (ctx->lo_water == 0U)) { ctx->is_overmem = ISC_FALSE; - } - if (ctx->hi_called && - (ctx->inuse < ctx->lo_water || ctx->lo_water == 0U)) { - if (ctx->water != NULL) + if (ctx->hi_called) call_water = ISC_TRUE; } + MCTXUNLOCK(ctx, &ctx->lock); - if (call_water) + if (call_water && (ctx->water != NULL)) (ctx->water)(ctx->water_arg, ISC_MEM_LOWATER); } @@ -1411,8 +1413,8 @@ print_active(isc__mem_t *mctx, FILE *out) { } } if (!found) - fprintf(out, "%s", isc_msgcat_get(isc_msgcat, ISC_MSGSET_MEM, - ISC_MSG_NONE, "\tNone.\n")); + fputs(isc_msgcat_get(isc_msgcat, ISC_MSGSET_MEM, + ISC_MSG_NONE, "\tNone.\n"), out); } } #endif @@ -1534,15 +1536,10 @@ isc___mem_allocate(isc_mem_t *ctx0, size_t size FLARG) { REQUIRE(VALID_CONTEXT(ctx)); - if ((ctx->flags & ISC_MEMFLAG_INTERNAL) != 0) { - MCTXLOCK(ctx, &ctx->lock); - si = isc__mem_allocateunlocked((isc_mem_t *)ctx, size); - } else { - si = isc__mem_allocateunlocked((isc_mem_t *)ctx, size); - MCTXLOCK(ctx, &ctx->lock); - if (si != NULL) - mem_getstats(ctx, si[-1].u.size); - } + MCTXLOCK(ctx, &ctx->lock); + si = isc__mem_allocateunlocked((isc_mem_t *)ctx, size); + if (((ctx->flags & ISC_MEMFLAG_INTERNAL) == 0) && (si != NULL)) + mem_getstats(ctx, si[-1].u.size); #if ISC_MEM_TRACKLINES ADD_TRACE(ctx, si, si[-1].u.size, file, line); @@ -1767,7 +1764,6 @@ isc__mem_setwater(isc_mem_t *ctx0, isc_mem_water_t water, void *water_arg, ctx->water_arg = NULL; ctx->hi_water = 0; ctx->lo_water = 0; - ctx->hi_called = ISC_FALSE; } else { if (ctx->hi_called && (ctx->water != water || ctx->water_arg != water_arg || diff --git a/lib/isc/pool.c b/lib/isc/pool.c index 509abcb418d4..fe25cb472d73 100644 --- a/lib/isc/pool.c +++ b/lib/isc/pool.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2013, 2015 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 @@ -70,7 +70,7 @@ alloc_pool(isc_mem_t *mctx, unsigned int count, isc_pool_t **poolp) { isc_result_t isc_pool_create(isc_mem_t *mctx, unsigned int count, - isc_pooldeallocator_t free, + isc_pooldeallocator_t release, isc_poolinitializer_t init, void *initarg, isc_pool_t **poolp) { @@ -85,7 +85,7 @@ isc_pool_create(isc_mem_t *mctx, unsigned int count, if (result != ISC_R_SUCCESS) return (result); - pool->free = free; + pool->free = release; pool->init = init; pool->initarg = initarg; diff --git a/lib/isc/print.c b/lib/isc/print.c index 06719e83a547..21b9096c1076 100644 --- a/lib/isc/print.c +++ b/lib/isc/print.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2008, 2010, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2008, 2010, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,8 +15,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: print.c,v 1.37 2010/10/18 23:47:08 tbox Exp $ */ - /*! \file */ #include <config.h> @@ -24,6 +22,7 @@ #include <ctype.h> #include <stdio.h> /* for sprintf() */ #include <string.h> /* for strlen() */ +#include <assert.h> /* for assert() */ #define ISC__PRINT_SOURCE /* Used to get the isc_print_* prototypes. */ @@ -34,14 +33,79 @@ #include <isc/stdlib.h> #include <isc/util.h> +/* + * We use the system's sprintf so we undef it here. + */ +#undef sprintf + +static int +isc__print_printf(void (*emit)(char, void *), void *arg, + const char *format, va_list ap); + +static void +file_emit(char c, void *arg) { + FILE *fp = arg; + int i = c & 0xff; + + putc(i, fp); +} + +#if 0 +static int +isc_print_vfprintf(FILE *fp, const char *format, va_list ap) { + assert(fp != NULL); + assert(format != NULL); + + return (isc__print_printf(file_emit, fp, format, ap)); +} +#endif + +int +isc_print_printf(const char *format, ...) { + va_list ap; + int n; + + assert(format != NULL); + + va_start(ap, format); + n = isc__print_printf(file_emit, stdout, format, ap); + va_end(ap); + return (n); +} + +int +isc_print_fprintf(FILE *fp, const char *format, ...) { + va_list ap; + int n; + + assert(fp != NULL); + assert(format != NULL); + + va_start(ap, format); + n = isc__print_printf(file_emit, fp, format, ap); + va_end(ap); + return (n); +} + +static void +nocheck_emit(char c, void *arg) { + struct { char *str; } *a = arg; + + *(a->str)++ = c; +} + int isc_print_sprintf(char *str, const char *format, ...) { + struct { char *str; } arg; + int n; va_list ap; + arg.str = str; + va_start(ap, format); - vsprintf(str, format, ap); + n = isc__print_printf(nocheck_emit, &arg, format, ap); va_end(ap); - return (strlen(str)); + return (n); } /*! @@ -54,7 +118,7 @@ isc_print_snprintf(char *str, size_t size, const char *format, ...) { int ret; va_start(ap, format); - ret = vsnprintf(str, size, format, ap); + ret = isc_print_vsnprintf(str, size, format, ap); va_end(ap); return (ret); @@ -64,10 +128,40 @@ isc_print_snprintf(char *str, size_t size, const char *format, ...) { * Return length of string that would have been written if not truncated. */ +static void +string_emit(char c, void *arg) { + struct { char *str; size_t size; } *p = arg; + + if (p->size > 0U) { + *(p->str)++ = c; + p->size--; + } +} + int isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { + struct { char *str; size_t size; } arg; + int n; + + assert(str != NULL); + assert(format != NULL); + + arg.str = str; + arg.size = size; + + n = isc__print_printf(string_emit, &arg, format, ap); + if (arg.size > 0U) + *arg.str = '\0'; + return (n); +} + +static int +isc__print_printf(void (*emit)(char, void *), void *arg, + const char *format, va_list ap) +{ int h; int l; + int z; int q; int alt; int zero; @@ -83,7 +177,6 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { char buf[1024]; char c; void *v; - char *save = str; const char *cp; const char *head; int count = 0; @@ -91,22 +184,20 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { int zeropad; int dot; double dbl; + isc_boolean_t precision_set; #ifdef HAVE_LONG_DOUBLE long double ldbl; #endif char fmt[32]; - INSIST(str != NULL); - INSIST(format != NULL); + assert(emit != NULL); + assert(arg != NULL); + assert(format != NULL); while (*format != '\0') { if (*format != '%') { - if (size > 1) { - *str++ = *format; - size--; - } + emit(*format++, arg); count++; - format++; continue; } format++; @@ -114,10 +205,11 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { /* * Reset flags. */ - dot = neg = space = plus = left = zero = alt = h = l = q = 0; + dot = neg = space = plus = left = zero = alt = h = l = q = z = 0; width = precision = 0; head = ""; pad = zeropad = 0; + precision_set = ISC_FALSE; do { if (*format == '#') { @@ -163,10 +255,12 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { dot = 1; if (*format == '*') { precision = va_arg(ap, int); + precision_set = ISC_TRUE; format++; } else if (isdigit((unsigned char)*format)) { char *e; precision = strtoul(format, &e, 10); + precision_set = ISC_TRUE; format = e; } } @@ -175,10 +269,7 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { case '\0': continue; case '%': - if (size > 1) { - *str++ = *format; - size--; - } + emit(*format, arg); count++; break; case 'q': @@ -197,6 +288,10 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { format++; } goto doint; + case 'z': + z = 1; + format++; + goto doint; case 'n': case 'i': case 'd': @@ -205,25 +300,30 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { case 'x': case 'X': doint: - if (precision != 0) + if (precision != 0U) zero = 0; switch (*format) { case 'n': if (h) { short int *p; p = va_arg(ap, short *); - REQUIRE(p != NULL); - *p = str - save; + assert(p != NULL); + *p = count; } else if (l) { long int *p; p = va_arg(ap, long *); - REQUIRE(p != NULL); - *p = str - save; + assert(p != NULL); + *p = count; + } else if (z) { + size_t *p; + p = va_arg(ap, size_t *); + assert(p != NULL); + *p = count; } else { int *p; p = va_arg(ap, int *); - REQUIRE(p != NULL); - *p = str - save; + assert(p != NULL); + *p = count; } break; case 'i': @@ -232,6 +332,8 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { tmpi = va_arg(ap, isc_int64_t); else if (l) tmpi = va_arg(ap, long int); + else if (z) + tmpi = va_arg(ap, ssize_t); else tmpi = va_arg(ap, int); if (tmpi < 0) { @@ -257,12 +359,14 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { tmpui /= 1000000000; mid = tmpui % 1000000000; hi = tmpui / 1000000000; - if (hi != 0) + if (hi != 0U) { sprintf(buf, "%lu", hi); - else - buf[0] = '\0'; - sprintf(buf + strlen(buf), "%lu", mid); - sprintf(buf + strlen(buf), "%lu", lo); + sprintf(buf + strlen(buf), + "%09lu", mid); + } else + sprintf(buf, "%lu", mid); + sprintf(buf + strlen(buf), "%09lu", + lo); } goto printint; case 'o': @@ -270,6 +374,8 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { tmpui = va_arg(ap, isc_uint64_t); else if (l) tmpui = va_arg(ap, long int); + else if (z) + tmpui = va_arg(ap, size_t); else tmpui = va_arg(ap, int); if (tmpui <= 0xffffffffU) @@ -283,17 +389,17 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { tmpui /= 010000000000; mid = tmpui % 010000000000; hi = tmpui / 010000000000; - if (hi != 0) { + if (hi != 0U) { sprintf(buf, alt ? "%#lo" : "%lo", hi); sprintf(buf + strlen(buf), - "%lo", mid); + "%09lo", mid); } else sprintf(buf, alt ? "%#lo" : "%lo", mid); - sprintf(buf + strlen(buf), "%lo", lo); + sprintf(buf + strlen(buf), "%09lo", lo); } goto printint; case 'u': @@ -301,6 +407,8 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { tmpui = va_arg(ap, isc_uint64_t); else if (l) tmpui = va_arg(ap, unsigned long int); + else if (z) + tmpui = va_arg(ap, size_t); else tmpui = va_arg(ap, unsigned int); if (tmpui <= 0xffffffffU) @@ -314,12 +422,14 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { tmpui /= 1000000000; mid = tmpui % 1000000000; hi = tmpui / 1000000000; - if (hi != 0) + if (hi != 0U) { sprintf(buf, "%lu", hi); - else - buf[0] = '\0'; - sprintf(buf + strlen(buf), "%lu", mid); - sprintf(buf + strlen(buf), "%lu", lo); + sprintf(buf + strlen(buf), + "%09lu", mid); + } else + sprintf(buf, "%lu", mid); + sprintf(buf + strlen(buf), "%09lu", + lo); } goto printint; case 'x': @@ -327,11 +437,13 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { tmpui = va_arg(ap, isc_uint64_t); else if (l) tmpui = va_arg(ap, unsigned long int); + else if (z) + tmpui = va_arg(ap, size_t); else tmpui = va_arg(ap, unsigned int); if (alt) { head = "0x"; - if (precision > 2) + if (precision > 2U) precision -= 2; } if (tmpui <= 0xffffffffU) @@ -341,7 +453,7 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { unsigned long hi = tmpui>>32; unsigned long lo = tmpui & 0xffffffff; sprintf(buf, "%lx", hi); - sprintf(buf + strlen(buf), "%lx", lo); + sprintf(buf + strlen(buf), "%08lx", lo); } goto printint; case 'X': @@ -349,11 +461,13 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { tmpui = va_arg(ap, isc_uint64_t); else if (l) tmpui = va_arg(ap, unsigned long int); + else if (z) + tmpui = va_arg(ap, size_t); else tmpui = va_arg(ap, unsigned int); if (alt) { head = "0X"; - if (precision > 2) + if (precision > 2U) precision -= 2; } if (tmpui <= 0xffffffffU) @@ -363,17 +477,17 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { unsigned long hi = tmpui>>32; unsigned long lo = tmpui & 0xffffffff; sprintf(buf, "%lX", hi); - sprintf(buf + strlen(buf), "%lX", lo); + sprintf(buf + strlen(buf), "%08lX", lo); } goto printint; printint: - if (precision != 0 || width != 0) { + if (precision_set || width != 0U) { length = strlen(buf); if (length < precision) zeropad = precision - length; else if (length < width && zero) zeropad = width - length; - if (width != 0) { + if (width != 0U) { pad = width - length - zeropad - strlen(head); if (pad < 0) @@ -383,30 +497,23 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { count += strlen(head) + strlen(buf) + pad + zeropad; if (!left) { - while (pad > 0 && size > 1) { - *str++ = ' '; - size--; + while (pad > 0) { + emit(' ', arg); pad--; } } cp = head; - while (*cp != '\0' && size > 1) { - *str++ = *cp++; - size--; - } - while (zeropad > 0 && size > 1) { - *str++ = '0'; - size--; + while (*cp != '\0') + emit(*cp++, arg); + while (zeropad > 0) { + emit('0', arg); zeropad--; } cp = buf; - while (*cp != '\0' && size > 1) { - *str++ = *cp++; - size--; - } - while (pad > 0 && size > 1) { - *str++ = ' '; - size--; + while (*cp != '\0') + emit(*cp++, arg); + while (pad > 0) { + emit(' ', arg); pad--; } break; @@ -416,76 +523,63 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { break; case 's': cp = va_arg(ap, char *); - REQUIRE(cp != NULL); - if (precision != 0) { + if (precision_set) { /* * cp need not be NULL terminated. */ const char *tp; unsigned long n; + if (precision != 0U) + assert(cp != NULL); n = precision; tp = cp; - while (n != 0 && *tp != '\0') + while (n != 0U && *tp != '\0') n--, tp++; length = precision - n; } else { + assert(cp != NULL); length = strlen(cp); } - if (width != 0) { + if (width != 0U) { pad = width - length; if (pad < 0) pad = 0; } count += pad + length; if (!left) - while (pad > 0 && size > 1) { - *str++ = ' '; - size--; + while (pad > 0) { + emit(' ', arg); pad--; } - if (precision != 0) - while (precision > 0 && *cp != '\0' && - size > 1) { - *str++ = *cp++; - size--; + if (precision_set) + while (precision > 0U && *cp != '\0') { + emit(*cp++, arg); precision--; } else - while (*cp != '\0' && size > 1) { - *str++ = *cp++; - size--; - } - while (pad > 0 && size > 1) { - *str++ = ' '; - size--; + while (*cp != '\0') + emit(*cp++, arg); + while (pad > 0) { + emit(' ', arg); pad--; } break; case 'c': c = va_arg(ap, int); - if (width > 0) { + if (width > 0U) { count += width; width--; - if (left && size > 1) { - *str++ = c; - size--; - } - while (width-- > 0 && size > 1) { - *str++ = ' '; - size--; - } - if (!left && size > 1) { - *str++ = c; - size--; - } + if (left) + emit(c, arg); + while (width-- > 0U) + emit(' ', arg); + if (!left) + emit(c, arg); } else { count++; - if (size > 1) { - *str++ = c; - size--; - } + emit(c, arg); } break; case 'p': @@ -494,57 +588,46 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { length = strlen(buf); if (precision > length) zeropad = precision - length; - if (width > 0) { + if (width > 0U) { pad = width - length - zeropad; if (pad < 0) pad = 0; } count += length + pad + zeropad; if (!left) - while (pad > 0 && size > 1) { - *str++ = ' '; - size--; + while (pad > 0) { + emit(' ', arg); pad--; } cp = buf; if (zeropad > 0 && buf[0] == '0' && (buf[1] == 'x' || buf[1] == 'X')) { - if (size > 1) { - *str++ = *cp++; - size--; - } - if (size > 1) { - *str++ = *cp++; - size--; - } - while (zeropad > 0 && size > 1) { - *str++ = '0'; - size--; + emit(*cp++, arg); + emit(*cp++, arg); + while (zeropad > 0) { + emit('0', arg); zeropad--; } } - while (*cp != '\0' && size > 1) { - *str++ = *cp++; - size--; - } - while (pad > 0 && size > 1) { - *str++ = ' '; - size--; + while (*cp != '\0') + emit(*cp++, arg); + while (pad > 0) { + emit(' ', arg); pad--; } break; case 'D': /*deprecated*/ - INSIST("use %ld instead of %D" == NULL); + assert("use %ld instead of %D" == NULL); case 'O': /*deprecated*/ - INSIST("use %lo instead of %O" == NULL); + assert("use %lo instead of %O" == NULL); case 'U': /*deprecated*/ - INSIST("use %lu instead of %U" == NULL); + assert("use %lu instead of %U" == NULL); case 'L': #ifdef HAVE_LONG_DOUBLE l = 1; #else - INSIST("long doubles are not supported" == NULL); + assert("long doubles are not supported" == NULL); #endif /*FALLTHROUGH*/ case 'e': @@ -564,7 +647,7 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { * if we cap the precision at 512 we will not * overflow buf. */ - if (precision > 512) + if (precision > 512U) precision = 512; sprintf(fmt, "%%%s%s.%lu%s%c", alt ? "#" : "", plus ? "+" : space ? " " : "", @@ -586,26 +669,22 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { sprintf(buf, fmt, dbl); } length = strlen(buf); - if (width > 0) { + if (width > 0U) { pad = width - length; if (pad < 0) pad = 0; } count += length + pad; if (!left) - while (pad > 0 && size > 1) { - *str++ = ' '; - size--; + while (pad > 0) { + emit(' ', arg); pad--; } cp = buf; - while (*cp != ' ' && size > 1) { - *str++ = *cp++; - size--; - } - while (pad > 0 && size > 1) { - *str++ = ' '; - size--; + while (*cp != ' ') + emit(*cp++, arg); + while (pad > 0) { + emit(' ', arg); pad--; } break; @@ -618,7 +697,5 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { } format++; } - if (size > 0) - *str = '\0'; return (count); } diff --git a/lib/isc/pthreads/mutex.c b/lib/isc/pthreads/mutex.c index c7e5795b6807..0ee37d28bbfe 100644 --- a/lib/isc/pthreads/mutex.c +++ b/lib/isc/pthreads/mutex.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2008, 2011, 2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2008, 2011, 2012, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -28,6 +28,7 @@ #include <isc/mutex.h> #include <isc/util.h> +#include <isc/print.h> #include <isc/strerror.h> #if ISC_MUTEX_PROFILE diff --git a/lib/isc/regex.c b/lib/isc/regex.c index 2ee13653bdde..a1e76c759180 100644 --- a/lib/isc/regex.c +++ b/lib/isc/regex.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2013-2015 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 @@ -17,6 +17,7 @@ #include <config.h> #include <isc/file.h> +#include <isc/print.h> #include <isc/regex.h> #include <isc/string.h> diff --git a/lib/isc/rwlock.c b/lib/isc/rwlock.c index 9c84c258a28b..461d6e295a77 100644 --- a/lib/isc/rwlock.c +++ b/lib/isc/rwlock.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012, 2015 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 @@ -27,6 +27,7 @@ #include <isc/magic.h> #include <isc/msgs.h> #include <isc/platform.h> +#include <isc/print.h> #include <isc/rwlock.h> #include <isc/util.h> diff --git a/lib/isc/safe.c b/lib/isc/safe.c index fd2768718872..8ac4a5b9193f 100644 --- a/lib/isc/safe.c +++ b/lib/isc/safe.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2013, 2015 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 @@ -14,8 +14,6 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id$ */ - /*! \file */ #include <config.h> @@ -28,7 +26,7 @@ #endif isc_boolean_t -isc_safe_memcmp(const void *s1, const void *s2, size_t n) { +isc_safe_memequal(const void *s1, const void *s2, size_t n) { isc_uint8_t acc = 0; if (n != 0U) { @@ -40,3 +38,30 @@ isc_safe_memcmp(const void *s1, const void *s2, size_t n) { } return (ISC_TF(acc == 0)); } + + +int +isc_safe_memcompare(const void *b1, const void *b2, size_t len) { + const unsigned char *p1 = b1, *p2 = b2; + size_t i; + int res = 0, done = 0; + + for (i = 0; i < len; i++) { + /* lt is -1 if p1[i] < p2[i]; else 0. */ + int lt = (p1[i] - p2[i]) >> CHAR_BIT; + + /* gt is -1 if p1[i] > p2[i]; else 0. */ + int gt = (p2[i] - p1[i]) >> CHAR_BIT; + + /* cmp is 1 if p1[i] > p2[i]; -1 if p1[i] < p2[i]; else 0. */ + int cmp = lt - gt; + + /* set res = cmp if !done. */ + res |= cmp & ~done; + + /* set done if p1[i] != p2[i]. */ + done |= lt | gt; + } + + return (res); +} diff --git a/lib/isc/socket_api.c b/lib/isc/socket_api.c index dca6c34fc37a..cfe2886f82d1 100644 --- a/lib/isc/socket_api.c +++ b/lib/isc/socket_api.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2011, 2012, 2014, 2015 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 @@ -210,10 +210,10 @@ isc_socket_gettype(isc_socket_t *sock) { } void -isc_socket_setname(isc_socket_t *socket, const char *name, void *tag) { - REQUIRE(ISCAPI_SOCKET_VALID(socket)); +isc_socket_setname(isc_socket_t *sock, const char *name, void *tag) { + REQUIRE(ISCAPI_SOCKET_VALID(sock)); - UNUSED(socket); /* in case REQUIRE() is empty */ + UNUSED(sock); /* in case REQUIRE() is empty */ UNUSED(name); UNUSED(tag); } diff --git a/lib/isc/stats.c b/lib/isc/stats.c index 89e34b378087..03d2a8a7d103 100644 --- a/lib/isc/stats.c +++ b/lib/isc/stats.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009, 2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2012, 2014, 2015 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 @@ -169,19 +169,22 @@ isc_stats_detach(isc_stats_t **statsp) { LOCK(&stats->lock); stats->references--; - UNLOCK(&stats->lock); if (stats->references == 0) { isc_mem_put(stats->mctx, stats->copiedcounters, sizeof(isc_stat_t) * stats->ncounters); isc_mem_put(stats->mctx, stats->counters, sizeof(isc_stat_t) * stats->ncounters); + UNLOCK(&stats->lock); DESTROYLOCK(&stats->lock); #ifdef ISC_RWLOCK_USEATOMIC isc_rwlock_destroy(&stats->counterlock); #endif isc_mem_putanddetach(&stats->mctx, stats, sizeof(*stats)); + return; } + + UNLOCK(&stats->lock); } int diff --git a/lib/isc/task.c b/lib/isc/task.c index 02d6e2abaf60..3503801e4517 100644 --- a/lib/isc/task.c +++ b/lib/isc/task.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -34,6 +34,7 @@ #include <isc/mem.h> #include <isc/msgs.h> #include <isc/platform.h> +#include <isc/print.h> #include <isc/string.h> #include <isc/task.h> #include <isc/thread.h> @@ -156,6 +157,13 @@ struct isc__taskmgr { isc_boolean_t pause_requested; isc_boolean_t exclusive_requested; isc_boolean_t exiting; + + /* + * Multiple threads can read/write 'excl' at the same time, so we need + * to protect the access. We can't use 'lock' since isc_task_detach() + * will try to acquire it. + */ + isc_mutex_t excl_lock; isc__task_t *excl; #ifdef USE_SHARED_MANAGER unsigned int refs; @@ -1307,6 +1315,7 @@ manager_free(isc__taskmgr_t *manager) { isc_mem_free(manager->mctx, manager->threads); #endif /* USE_WORKER_THREADS */ DESTROYLOCK(&manager->lock); + DESTROYLOCK(&manager->excl_lock); manager->common.impmagic = 0; manager->common.magic = 0; mctx = manager->mctx; @@ -1359,6 +1368,11 @@ isc__taskmgr_create(isc_mem_t *mctx, unsigned int workers, result = isc_mutex_init(&manager->lock); if (result != ISC_R_SUCCESS) goto cleanup_mgr; + result = isc_mutex_init(&manager->excl_lock); + if (result != ISC_R_SUCCESS) { + DESTROYLOCK(&manager->lock); + goto cleanup_mgr; + } #ifdef USE_WORKER_THREADS manager->workers = 0; @@ -1490,8 +1504,10 @@ isc__taskmgr_destroy(isc_taskmgr_t **managerp) { /* * Detach the exclusive task before acquiring the manager lock */ + LOCK(&manager->excl_lock); if (manager->excl != NULL) isc__task_detach((isc_task_t **) &manager->excl); + UNLOCK(&manager->excl_lock); /* * Unlike elsewhere, we're going to hold this lock a long time. @@ -1650,23 +1666,29 @@ isc__taskmgr_setexcltask(isc_taskmgr_t *mgr0, isc_task_t *task0) { REQUIRE(VALID_MANAGER(mgr)); REQUIRE(VALID_TASK(task)); + LOCK(&mgr->excl_lock); if (mgr->excl != NULL) isc__task_detach((isc_task_t **) &mgr->excl); isc__task_attach(task0, (isc_task_t **) &mgr->excl); + UNLOCK(&mgr->excl_lock); } ISC_TASKFUNC_SCOPE isc_result_t isc__taskmgr_excltask(isc_taskmgr_t *mgr0, isc_task_t **taskp) { isc__taskmgr_t *mgr = (isc__taskmgr_t *) mgr0; + isc_result_t result = ISC_R_SUCCESS; REQUIRE(VALID_MANAGER(mgr)); REQUIRE(taskp != NULL && *taskp == NULL); - if (mgr->excl == NULL) - return (ISC_R_NOTFOUND); + LOCK(&mgr->excl_lock); + if (mgr->excl != NULL) + isc__task_attach((isc_task_t *) mgr->excl, taskp); + else + result = ISC_R_NOTFOUND; + UNLOCK(&mgr->excl_lock); - isc__task_attach((isc_task_t *) mgr->excl, taskp); - return (ISC_R_SUCCESS); + return (result); } ISC_TASKFUNC_SCOPE isc_result_t diff --git a/lib/isc/timer.c b/lib/isc/timer.c index f48259dddbcc..773dacf74935 100644 --- a/lib/isc/timer.c +++ b/lib/isc/timer.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007-2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007-2009, 2011, 2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -28,6 +28,7 @@ #include <isc/mem.h> #include <isc/msgs.h> #include <isc/platform.h> +#include <isc/print.h> #include <isc/task.h> #include <isc/thread.h> #include <isc/time.h> diff --git a/lib/isc/unix/app.c b/lib/isc/unix/app.c index aeebc31f9a43..141e9c21a94c 100644 --- a/lib/isc/unix/app.c +++ b/lib/isc/unix/app.c @@ -90,6 +90,7 @@ ISC_APPFUNC_SCOPE isc_result_t isc__app_onrun(isc_mem_t *mctx, void *arg); ISC_APPFUNC_SCOPE isc_result_t isc__app_ctxrun(isc_appctx_t *ctx); ISC_APPFUNC_SCOPE isc_result_t isc__app_run(void); +ISC_APPFUNC_SCOPE isc_boolean_t isc__app_isrunning(void); ISC_APPFUNC_SCOPE isc_result_t isc__app_ctxshutdown(isc_appctx_t *ctx); ISC_APPFUNC_SCOPE isc_result_t isc__app_shutdown(void); ISC_APPFUNC_SCOPE isc_result_t isc__app_reload(void); @@ -145,6 +146,7 @@ typedef struct isc__appctx { } isc__appctx_t; static isc__appctx_t isc_g_appctx; +static isc_boolean_t is_running = ISC_FALSE; static struct { isc_appmethods_t methods; @@ -154,7 +156,8 @@ static struct { */ #ifndef BIND9 void *run, *shutdown, *start, *onrun, - *reload, *finish, *block, *unblock; + *reload, *finish, *block, *unblock, + *isrunning; #endif } appmethods = { { @@ -174,7 +177,7 @@ static struct { (void *)isc__app_run, (void *)isc__app_shutdown, (void *)isc__app_start, (void *)isc__app_onrun, (void *)isc__app_reload, (void *)isc__app_finish, (void *)isc__app_block, - (void *)isc__app_unblock + (void *)isc__app_unblock, (void *)isc__app_isrunning #endif }; @@ -701,7 +704,7 @@ isc__app_ctxrun(isc_appctx_t *ctx0) { return (ISC_R_UNEXPECTED); } #endif - result = sigsuspend(&sset); + (void)sigsuspend(&sset); #endif /* HAVE_SIGWAIT */ if (ctx->want_reload) { @@ -728,7 +731,18 @@ isc__app_ctxrun(isc_appctx_t *ctx0) { ISC_APPFUNC_SCOPE isc_result_t isc__app_run(void) { - return (isc__app_ctxrun((isc_appctx_t *)&isc_g_appctx)); + isc_result_t result; + + is_running = ISC_TRUE; + result = isc__app_ctxrun((isc_appctx_t *)&isc_g_appctx); + is_running = ISC_FALSE; + + return (result); +} + +ISC_APPFUNC_SCOPE isc_boolean_t +isc__app_isrunning(void) { + return (is_running); } ISC_APPFUNC_SCOPE isc_result_t diff --git a/lib/isc/unix/file.c b/lib/isc/unix/file.c index 1b7d563d875a..c2abd440e18c 100644 --- a/lib/isc/unix/file.c +++ b/lib/isc/unix/file.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -135,12 +135,12 @@ isc_file_mode(const char *file, mode_t *modep) { } isc_result_t -isc_file_getmodtime(const char *file, isc_time_t *time) { +isc_file_getmodtime(const char *file, isc_time_t *modtime) { isc_result_t result; struct stat stats; REQUIRE(file != NULL); - REQUIRE(time != NULL); + REQUIRE(modtime != NULL); result = file_stats(file, &stats); @@ -149,16 +149,16 @@ isc_file_getmodtime(const char *file, isc_time_t *time) { * XXXDCL some operating systems provide nanoseconds, too, * such as BSD/OS via st_mtimespec. */ - isc_time_set(time, stats.st_mtime, 0); + isc_time_set(modtime, stats.st_mtime, 0); return (result); } isc_result_t -isc_file_settime(const char *file, isc_time_t *time) { +isc_file_settime(const char *file, isc_time_t *when) { struct timeval times[2]; - REQUIRE(file != NULL && time != NULL); + REQUIRE(file != NULL && when != NULL); /* * tv_sec is at least a 32 bit quantity on all platforms we're @@ -170,7 +170,7 @@ isc_file_settime(const char *file, isc_time_t *time) { * * isc_time_seconds is changed to be > 32 bits but long is 32 bits * and isc_time_seconds has at least 33 significant bits. */ - times[0].tv_sec = times[1].tv_sec = (long)isc_time_seconds(time); + times[0].tv_sec = times[1].tv_sec = (long)isc_time_seconds(when); /* * Here is the real check for the high bit being set. @@ -186,7 +186,7 @@ isc_file_settime(const char *file, isc_time_t *time) { * we can at least cast to signed so the IRIX compiler shuts up. */ times[0].tv_usec = times[1].tv_usec = - (isc_int32_t)(isc_time_nanoseconds(time) / 1000); + (isc_int32_t)(isc_time_nanoseconds(when) / 1000); if (utimes(file, times) < 0) return (isc__errno2result(errno)); diff --git a/lib/isc/unix/ifiter_ioctl.c b/lib/isc/unix/ifiter_ioctl.c index f0026c285b80..6b1ceda09e0a 100644 --- a/lib/isc/unix/ifiter_ioctl.c +++ b/lib/isc/unix/ifiter_ioctl.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2009, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2009, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -17,6 +17,8 @@ /* $Id: ifiter_ioctl.c,v 1.62 2009/01/18 23:48:14 tbox Exp $ */ +#include <isc/print.h> + /*! \file * \brief * Obtain the list of network interfaces using the SIOCGLIFCONF ioctl. diff --git a/lib/isc/unix/ifiter_sysctl.c b/lib/isc/unix/ifiter_sysctl.c index 102ecc1fee28..e4ca48a9aa4e 100644 --- a/lib/isc/unix/ifiter_sysctl.c +++ b/lib/isc/unix/ifiter_sysctl.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -30,6 +30,8 @@ #include <net/route.h> #include <net/if_dl.h> +#include <isc/print.h> + /* XXX what about Alpha? */ #ifdef sgi #define ROUNDUP(a) ((a) > 0 ? \ diff --git a/lib/isc/unix/net.c b/lib/isc/unix/net.c index e4de0489ec11..c811d1ba4194 100644 --- a/lib/isc/unix/net.c +++ b/lib/isc/unix/net.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2008, 2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2008, 2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -414,12 +414,12 @@ getudpportrange_sysctl(int af, in_port_t *low, in_port_t *high) { sysctlname_lowport = SYSCTL_V6PORTRANGE_LOW; sysctlname_hiport = SYSCTL_V6PORTRANGE_HIGH; } - portlen = sizeof(portlen); + portlen = sizeof(port_low); if (sysctlbyname(sysctlname_lowport, &port_low, &portlen, NULL, 0) < 0) { return (ISC_R_FAILURE); } - portlen = sizeof(portlen); + portlen = sizeof(port_high); if (sysctlbyname(sysctlname_hiport, &port_high, &portlen, NULL, 0) < 0) { return (ISC_R_FAILURE); @@ -453,12 +453,12 @@ getudpportrange_sysctl(int af, in_port_t *low, in_port_t *high) { miblen = sizeof(mib_lo6) / sizeof(mib_lo6[0]); } - portlen = sizeof(portlen); + portlen = sizeof(port_low); if (sysctl(mib_lo, miblen, &port_low, &portlen, NULL, 0) < 0) { return (ISC_R_FAILURE); } - portlen = sizeof(portlen); + portlen = sizeof(port_high); if (sysctl(mib_hi, miblen, &port_high, &portlen, NULL, 0) < 0) { return (ISC_R_FAILURE); } @@ -477,11 +477,34 @@ getudpportrange_sysctl(int af, in_port_t *low, in_port_t *high) { isc_result_t isc_net_getudpportrange(int af, in_port_t *low, in_port_t *high) { int result = ISC_R_FAILURE; +#if !defined(USE_SYSCTL_PORTRANGE) && defined(__linux) + FILE *fp; +#endif REQUIRE(low != NULL && high != NULL); #if defined(USE_SYSCTL_PORTRANGE) result = getudpportrange_sysctl(af, low, high); +#elif defined(__linux) + + UNUSED(af); + + /* + * Linux local ports are address family agnostic. + */ + fp = fopen("/proc/sys/net/ipv4/ip_local_port_range", "r"); + if (fp != NULL) { + int n; + unsigned int l, h; + + n = fscanf(fp, "%u %u", &l, &h); + if (n == 2 && (l & ~0xffff) == 0 && (h & ~0xffff) == 0) { + *low = l; + *high = h; + result = ISC_R_SUCCESS; + } + fclose(fp); + } #else UNUSED(af); #endif diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c index 110eafe50fd1..5e6320d821c6 100644 --- a/lib/isc/unix/socket.c +++ b/lib/isc/unix/socket.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1998-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -5957,33 +5957,33 @@ isc__socketmgr_dispatch(isc_socketmgr_t *manager0, isc_socketwait_t *swait) { #ifdef BIND9 void isc__socket_setname(isc_socket_t *socket0, const char *name, void *tag) { - isc__socket_t *socket = (isc__socket_t *)socket0; + isc__socket_t *sock = (isc__socket_t *)socket0; /* - * Name 'socket'. + * Name 'sock'. */ - REQUIRE(VALID_SOCKET(socket)); + REQUIRE(VALID_SOCKET(sock)); - LOCK(&socket->lock); - memset(socket->name, 0, sizeof(socket->name)); - strncpy(socket->name, name, sizeof(socket->name) - 1); - socket->tag = tag; - UNLOCK(&socket->lock); + LOCK(&sock->lock); + memset(sock->name, 0, sizeof(sock->name)); + strncpy(sock->name, name, sizeof(sock->name) - 1); + sock->tag = tag; + UNLOCK(&sock->lock); } ISC_SOCKETFUNC_SCOPE const char * isc__socket_getname(isc_socket_t *socket0) { - isc__socket_t *socket = (isc__socket_t *)socket0; + isc__socket_t *sock = (isc__socket_t *)socket0; - return (socket->name); + return (sock->name); } void * isc__socket_gettag(isc_socket_t *socket0) { - isc__socket_t *socket = (isc__socket_t *)socket0; + isc__socket_t *sock = (isc__socket_t *)socket0; - return (socket->tag); + return (sock->tag); } #endif /* BIND9 */ @@ -5996,9 +5996,9 @@ isc__socket_register(void) { ISC_SOCKETFUNC_SCOPE int isc__socket_getfd(isc_socket_t *socket0) { - isc__socket_t *socket = (isc__socket_t *)socket0; + isc__socket_t *sock = (isc__socket_t *)socket0; - return ((short) socket->fd); + return ((short) sock->fd); } #if defined(HAVE_LIBXML2) && defined(BIND9) diff --git a/lib/isccc/Makefile.in b/lib/isccc/Makefile.in index 1a33be9163b2..843e510a6f06 100644 --- a/lib/isccc/Makefile.in +++ b/lib/isccc/Makefile.in @@ -1,4 +1,4 @@ -# Copyright (C) 2004, 2007, 2009, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2004, 2007, 2009, 2011, 2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") # Copyright (C) 2001, 2003 Internet Software Consortium. # # Permission to use, copy, modify, and/or distribute this software for any @@ -25,7 +25,7 @@ top_srcdir = @top_srcdir@ @BIND9_MAKE_INCLUDES@ -CINCLUDES = -I. ${DNS_INCLUDES} ${ISC_INCLUDES} ${ISCCC_INCLUDES} +CINCLUDES = -I. ${DNS_INCLUDES} ${ISC_INCLUDES} ${ISCCC_INCLUDES} @ISC_OPENSSL_INC@ CDEFINES = CWARNINGS = diff --git a/lib/isccc/alist.c b/lib/isccc/alist.c index 4f1743ed4972..cec8b5e55030 100644 --- a/lib/isccc/alist.c +++ b/lib/isccc/alist.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004, 2005, 2007, 2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -40,6 +40,7 @@ #include <isccc/alist.h> #include <isc/assertions.h> +#include <isc/print.h> #include <isccc/result.h> #include <isccc/sexpr.h> #include <isccc/util.h> @@ -50,7 +51,7 @@ #define ALIST_TAG "*alist*" #define MAX_INDENT 64 -static char spaces[MAX_INDENT + 1] = +static char spaces[MAX_INDENT + 1] = " "; isccc_sexpr_t * diff --git a/lib/isccc/api b/lib/isccc/api index 864bdc90941c..a27437f4335b 100644 --- a/lib/isccc/api +++ b/lib/isccc/api @@ -5,5 +5,5 @@ # 9.9: 90-109 # 9.9-sub: 130-139 LIBINTERFACE = 90 -LIBREVISION = 6 +LIBREVISION = 7 LIBAGE = 0 diff --git a/lib/isccc/cc.c b/lib/isccc/cc.c index 69e7f7cee0b7..30252336026d 100644 --- a/lib/isccc/cc.c +++ b/lib/isccc/cc.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2004-2007, 2012, 2013 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004-2007, 2012, 2013, 2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 2001-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -160,7 +160,7 @@ table_towire(isccc_sexpr_t *alist, isccc_region_t *target) isccc_sexpr_t *kv, *elt, *k, *v; char *ks; isc_result_t result; - size_t len; + unsigned int len; for (elt = isccc_alist_first(alist); elt != NULL; @@ -169,7 +169,7 @@ table_towire(isccc_sexpr_t *alist, isccc_region_t *target) k = ISCCC_SEXPR_CAR(kv); ks = isccc_sexpr_tostring(k); v = ISCCC_SEXPR_CDR(kv); - len = strlen(ks); + len = (unsigned int)strlen(ks); INSIST(len <= 255U); /* * Emit the key name. @@ -313,8 +313,8 @@ verify(isccc_sexpr_t *alist, unsigned char *data, unsigned int length, /* * Verify. */ - if (!isc_safe_memcmp((unsigned char *) isccc_sexpr_tostring(hmd5), - digestb64, HMD5_LENGTH)) + if (!isc_safe_memequal((unsigned char *) isccc_sexpr_tostring(hmd5), + digestb64, HMD5_LENGTH)) return (ISCCC_R_BADAUTH); return (ISC_R_SUCCESS); diff --git a/lib/isccc/sexpr.c b/lib/isccc/sexpr.c index df11a9303175..9b7d5d7f3749 100644 --- a/lib/isccc/sexpr.c +++ b/lib/isccc/sexpr.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2004, 2005, 2007, 2014 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004, 2005, 2007, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -40,6 +40,7 @@ #include <string.h> #include <isc/assertions.h> +#include <isc/print.h> #include <isccc/sexpr.h> #include <isccc/util.h> diff --git a/lib/isccfg/api b/lib/isccfg/api index c3c9a03869ed..bb8c0f039480 100644 --- a/lib/isccfg/api +++ b/lib/isccfg/api @@ -4,6 +4,6 @@ # 9.8: 80-89, 120-129 # 9.9: 90-109 # 9.9-sub: 130-139 -LIBINTERFACE = 92 -LIBREVISION = 4 -LIBAGE = 2 +LIBINTERFACE = 93 +LIBREVISION = 0 +LIBAGE = 3 diff --git a/lib/isccfg/include/isccfg/cfg.h b/lib/isccfg/include/isccfg/cfg.h index a99c7637bb85..123521779453 100644 --- a/lib/isccfg/include/isccfg/cfg.h +++ b/lib/isccfg/include/isccfg/cfg.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2007, 2010, 2013, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2007, 2010, 2013-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2000-2002 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -247,6 +247,18 @@ cfg_obj_asuint64(const cfg_obj_t *obj); * \li A 64-bit unsigned integer. */ +isc_uint32_t +cfg_obj_asfixedpoint(const cfg_obj_t *obj); +/*%< + * Returns the value of a configuration object of fixed point number. + * + * Requires: + * \li 'obj' points to a valid configuration object of fixed point type. + * + * Returns: + * \li A 32-bit unsigned integer. + */ + isc_boolean_t cfg_obj_isstring(const cfg_obj_t *obj); /*%< diff --git a/lib/isccfg/include/isccfg/grammar.h b/lib/isccfg/include/isccfg/grammar.h index ee76ff29ce7d..2196730c976e 100644 --- a/lib/isccfg/include/isccfg/grammar.h +++ b/lib/isccfg/include/isccfg/grammar.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2011, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2011, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2002, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -255,6 +255,7 @@ LIBISCCFG_EXTERNAL_DATA extern cfg_rep_t cfg_rep_tuple; LIBISCCFG_EXTERNAL_DATA extern cfg_rep_t cfg_rep_sockaddr; LIBISCCFG_EXTERNAL_DATA extern cfg_rep_t cfg_rep_netprefix; LIBISCCFG_EXTERNAL_DATA extern cfg_rep_t cfg_rep_void; +LIBISCCFG_EXTERNAL_DATA extern cfg_rep_t cfg_rep_fixedpoint; /*@}*/ /*@{*/ @@ -278,6 +279,7 @@ LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_netprefix; LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_void; LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_token; LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_unsupported; +LIBISCCFG_EXTERNAL_DATA extern cfg_type_t cfg_type_fixedpoint; /*@}*/ isc_result_t @@ -438,6 +440,12 @@ void cfg_doc_void(cfg_printer_t *pctx, const cfg_type_t *type); isc_result_t +cfg_parse_fixedpoint(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret); + +void +cfg_print_fixedpoint(cfg_printer_t *pctx, const cfg_obj_t *obj); + +isc_result_t cfg_parse_obj(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret); void diff --git a/lib/isccfg/namedconf.c b/lib/isccfg/namedconf.c index 1c82f9bfd068..0787ec5e0ddc 100644 --- a/lib/isccfg/namedconf.c +++ b/lib/isccfg/namedconf.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 2002, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -105,6 +105,7 @@ static cfg_type_t cfg_type_optional_class; static cfg_type_t cfg_type_optional_facility; static cfg_type_t cfg_type_optional_keyref; static cfg_type_t cfg_type_optional_port; +static cfg_type_t cfg_type_optional_uint32; static cfg_type_t cfg_type_options; static cfg_type_t cfg_type_portiplist; static cfg_type_t cfg_type_querysource4; @@ -745,7 +746,10 @@ parse_serverid(cfg_parser_t *pctx, const cfg_type_t *type, return (cfg_create_obj(pctx, &cfg_type_none, ret)); if (pctx->token.type == isc_tokentype_string && strcasecmp(TOKEN_STRING(pctx), "hostname") == 0) { - return (cfg_create_obj(pctx, &cfg_type_hostname, ret)); + result = cfg_create_obj(pctx, &cfg_type_hostname, ret); + if (result == ISC_R_SUCCESS) + (*ret)->value.boolean = ISC_TRUE; + return (result); } cfg_ungettoken(pctx); return (cfg_parse_qstring(pctx, type, ret)); @@ -841,6 +845,58 @@ static cfg_type_t cfg_type_bracketed_portlist = { &cfg_rep_list, &cfg_type_portrange }; +#ifdef ENABLE_FETCHLIMIT +/*% + * fetch-quota-params + */ +static cfg_tuplefielddef_t fetchquota_fields[] = { + { "frequency", &cfg_type_uint32, 0 }, + { "low", &cfg_type_fixedpoint, 0 }, + { "high", &cfg_type_fixedpoint, 0 }, + { "discount", &cfg_type_fixedpoint, 0 }, + { NULL, NULL, 0 } +}; + +static cfg_type_t cfg_type_fetchquota = { + "fetchquota", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, + &cfg_rep_tuple, fetchquota_fields +}; + +/*% + * fetches-per-server or fetches-per-zone + */ +static const char *response_enums[] = { "drop", "fail", NULL }; + +static isc_result_t +parse_optional_response(cfg_parser_t *pctx, const cfg_type_t *type, + cfg_obj_t **ret) +{ + return (parse_enum_or_other(pctx, type, &cfg_type_void, ret)); +} + +static void +doc_optional_response(cfg_printer_t *pctx, const cfg_type_t *type) { + UNUSED(type); + cfg_print_cstr(pctx, "[ ( drop | fail ) ]"); +} + +static cfg_type_t cfg_type_responsetype = { + "responsetype", parse_optional_response, cfg_print_ustring, + doc_optional_response, &cfg_rep_string, response_enums +}; + +static cfg_tuplefielddef_t fetchesper_fields[] = { + { "fetches", &cfg_type_uint32, 0 }, + { "response", &cfg_type_responsetype, 0 }, + { NULL, NULL, 0 } +}; + +static cfg_type_t cfg_type_fetchesper = { + "fetchesper", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, + &cfg_rep_tuple, fetchesper_fields +}; +#endif /* ENABLE_FETCHLIMIT */ + /*% * Clauses that can be found within the top level of the named.conf * file only. @@ -1029,7 +1085,7 @@ static cfg_type_t cfg_type_masterformat = { * zone <string> [ policy (given|disabled|passthru| * nxdomain|nodata|cname <domain> ) ] * [ recursive-only yes|no ] [ max-policy-ttl number ] ; - * } [ recursive-only yes|no ] [ max-policy-ttl number ] ; + * } [ recursive-only yes|no ] [ max-policy-ttl number ] * [ break-dnssec yes|no ] [ min-ns-dots number ] ; */ @@ -1088,7 +1144,7 @@ cleanup: } /* - * Parse a tuple consisting of any kind of required field followed + * Parse a tuple consisting of any kind of required field followed * by 2 or more optional keyvalues that can be in any order. */ static isc_result_t @@ -1280,8 +1336,7 @@ static cfg_type_t cfg_type_rrl = { */ static void -print_lookaside(cfg_printer_t *pctx, const cfg_obj_t *obj) -{ +print_lookaside(cfg_printer_t *pctx, const cfg_obj_t *obj) { const cfg_obj_t *domain = obj->value.tuple[0]; if (domain->value.string.length == 4 && @@ -1384,6 +1439,11 @@ view_clauses[] = { { "empty-server", &cfg_type_astring, 0 }, { "empty-zones-enable", &cfg_type_boolean, 0 }, { "fetch-glue", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE }, +#ifdef ENABLE_FETCHLIMIT + { "fetch-quota-params", &cfg_type_fetchquota, 0 }, + { "fetches-per-server", &cfg_type_fetchesper, 0 }, + { "fetches-per-zone", &cfg_type_fetchesper, 0 }, +#endif /* ENABLE_FETCHLIMIT */ { "ixfr-from-differences", &cfg_type_ixfrdifftype, 0 }, { "lame-ttl", &cfg_type_uint32, 0 }, { "max-acache-size", &cfg_type_sizenodefault, 0 }, @@ -1610,24 +1670,6 @@ LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_bindkeys = { &cfg_rep_map, bindkeys_clausesets }; -/*% The new-zone-file syntax (for zones added by 'rndc addzone') */ -static cfg_clausedef_t -newzones_clauses[] = { - { "zone", &cfg_type_zone, CFG_CLAUSEFLAG_MULTI }, - { NULL, NULL, 0 } -}; - -static cfg_clausedef_t * -newzones_clausesets[] = { - newzones_clauses, - NULL -}; - -LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_newzones = { - "newzones", cfg_parse_mapbody, cfg_print_mapbody, cfg_doc_mapbody, - &cfg_rep_map, newzones_clausesets -}; - /*% The "options" statement syntax. */ static cfg_clausedef_t * @@ -1824,6 +1866,23 @@ LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_addzoneconf = { &cfg_rep_map, addzoneconf_clausesets }; +/*% The new-zone-file syntax (for zones added by 'rndc addzone') */ +static cfg_clausedef_t +newzones_clauses[] = { + { "zone", &cfg_type_addzone, CFG_CLAUSEFLAG_MULTI }, + { NULL, NULL, 0 } +}; + +static cfg_clausedef_t * +newzones_clausesets[] = { + newzones_clauses, + NULL +}; + +LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_newzones = { + "newzones", cfg_parse_mapbody, cfg_print_mapbody, cfg_doc_mapbody, + &cfg_rep_map, newzones_clausesets +}; static isc_result_t parse_unitstring(char *str, isc_resourcevalue_t *valuep) { diff --git a/lib/isccfg/parser.c b/lib/isccfg/parser.c index f14c5d6221f6..7c969961f4ca 100644 --- a/lib/isccfg/parser.c +++ b/lib/isccfg/parser.c @@ -15,12 +15,12 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id$ */ - /*! \file */ #include <config.h> +#include <stdlib.h> + #include <isc/buffer.h> #include <isc/dir.h> #include <isc/formatcheck.h> @@ -122,6 +122,7 @@ cfg_rep_t cfg_rep_tuple = { "tuple", free_tuple }; cfg_rep_t cfg_rep_sockaddr = { "sockaddr", free_noop }; cfg_rep_t cfg_rep_netprefix = { "netprefix", free_noop }; cfg_rep_t cfg_rep_void = { "void", free_noop }; +cfg_rep_t cfg_rep_fixedpoint = { "fixedpoint", free_noop }; /* * Configuration type definitions. @@ -601,6 +602,79 @@ cfg_type_t cfg_type_void = { "void", cfg_parse_void, cfg_print_void, cfg_doc_void, &cfg_rep_void, NULL }; +/* + * Fixed point + */ +isc_result_t +cfg_parse_fixedpoint(cfg_parser_t *pctx, const cfg_type_t *type, + cfg_obj_t **ret) +{ + isc_result_t result; + cfg_obj_t *obj = NULL; + size_t n1, n2, n3, l; + const char *p; + + UNUSED(type); + + CHECK(cfg_gettoken(pctx, 0)); + if (pctx->token.type != isc_tokentype_string) { + cfg_parser_error(pctx, CFG_LOG_NEAR, + "expected fixed point number"); + return (ISC_R_UNEXPECTEDTOKEN); + } + + + p = TOKEN_STRING(pctx); + l = strlen(p); + n1 = strspn(p, "0123456789"); + n2 = strspn(p + n1, "."); + n3 = strspn(p + n1 + n2, "0123456789"); + + if ((n1 + n2 + n3 != l) || (n1 + n3 == 0) || + n1 > 5 || n2 > 1 || n3 > 2) { + cfg_parser_error(pctx, CFG_LOG_NEAR, + "expected fixed point number"); + return (ISC_R_UNEXPECTEDTOKEN); + } + + CHECK(cfg_create_obj(pctx, &cfg_type_fixedpoint, &obj)); + + obj->value.uint32 = strtoul(p, NULL, 10) * 100; + switch (n3) { + case 2: + obj->value.uint32 += strtoul(p + n1 + n2, NULL, 10); + break; + case 1: + obj->value.uint32 += strtoul(p + n1 + n2, NULL, 10) * 10; + break; + } + *ret = obj; + + cleanup: + return (result); +} + +void +cfg_print_fixedpoint(cfg_printer_t *pctx, const cfg_obj_t *obj) { + char buf[64]; + int n; + + n = snprintf(buf, sizeof(buf), "%u.%02u", + obj->value.uint32/100, obj->value.uint32%100); + INSIST(n > 0 && (size_t)n < sizeof(buf)); + cfg_print_chars(pctx, buf, strlen(buf)); +} + +isc_uint32_t +cfg_obj_asfixedpoint(const cfg_obj_t *obj) { + REQUIRE(obj != NULL && obj->type->rep == &cfg_rep_fixedpoint); + return (obj->value.uint32); +} + +cfg_type_t cfg_type_fixedpoint = { + "fixedpoint", cfg_parse_fixedpoint, cfg_print_fixedpoint, + cfg_doc_terminal, &cfg_rep_fixedpoint, NULL +}; /* * uint32 @@ -1442,10 +1516,11 @@ parse_any_named_map(cfg_parser_t *pctx, cfg_type_t *nametype, const cfg_type_t * CHECK(cfg_parse_obj(pctx, nametype, &idobj)); CHECK(cfg_parse_map(pctx, type, &mapobj)); mapobj->value.map.id = idobj; - idobj = NULL; *ret = mapobj; + return (result); cleanup: CLEANUP_OBJ(idobj); + CLEANUP_OBJ(mapobj); return (result); } @@ -2332,9 +2407,10 @@ parser_complain(cfg_parser_t *pctx, isc_boolean_t is_warning, current_file(pctx), pctx->line); len = vsnprintf(message, sizeof(message), format, args); +#define ELIPSIS " ... " if (len >= sizeof(message)) - FATAL_ERROR(__FILE__, __LINE__, - "error message would overflow"); + strcpy(message + sizeof(message) - sizeof(ELIPSIS) - 1, + ELIPSIS); if ((flags & (CFG_LOG_NEAR|CFG_LOG_BEFORE|CFG_LOG_NOPREP)) != 0) { isc_region_t r; diff --git a/lib/lwres/api b/lib/lwres/api index db314129f3a3..14fd6164e88c 100644 --- a/lib/lwres/api +++ b/lib/lwres/api @@ -5,5 +5,5 @@ # 9.9: 90-109 # 9.9-sub: 130-139 LIBINTERFACE = 91 -LIBREVISION = 2 +LIBREVISION = 3 LIBAGE = 0 diff --git a/lib/lwres/herror.c b/lib/lwres/herror.c index 0fe6097d07c1..6ded03463b3d 100644 --- a/lib/lwres/herror.c +++ b/lib/lwres/herror.c @@ -1,5 +1,5 @@ /* - * Portions Copyright (C) 2004, 2005, 2007, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (C) 2004, 2005, 2007, 2011, 2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 2000, 2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -75,6 +75,8 @@ static const char rcsid[] = #include <stdio.h> +#include <isc/print.h> + #include <lwres/netdb.h> #include <lwres/platform.h> diff --git a/lib/lwres/man/lwres.html b/lib/lwres/man/lwres.html index cb8a0776af48..1fd396135e86 100644 --- a/lib/lwres/man/lwres.html +++ b/lib/lwres/man/lwres.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres — introduction to the lightweight resolver library</p> @@ -32,7 +32,7 @@ <div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <lwres/lwres.h></pre></div> </div> <div class="refsect1" lang="en"> -<a name="id2543357"></a><h2>DESCRIPTION</h2> +<a name="id2543360"></a><h2>DESCRIPTION</h2> <p> The BIND 9 lightweight resolver library is a simple, name service independent stub resolver library. It provides hostname-to-address @@ -47,7 +47,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2543370"></a><h2>OVERVIEW</h2> +<a name="id2543372"></a><h2>OVERVIEW</h2> <p> The lwresd library implements multiple name service APIs. The standard @@ -101,7 +101,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2543434"></a><h2>CLIENT-SIDE LOW-LEVEL API CALL FLOW</h2> +<a name="id2543436"></a><h2>CLIENT-SIDE LOW-LEVEL API CALL FLOW</h2> <p> When a client program wishes to make an lwres request using the native low-level API, it typically performs the following @@ -149,7 +149,7 @@ </p> </div> <div class="refsect1" lang="en"> -<a name="id2543582"></a><h2>SERVER-SIDE LOW-LEVEL API CALL FLOW</h2> +<a name="id2543585"></a><h2>SERVER-SIDE LOW-LEVEL API CALL FLOW</h2> <p> When implementing the server side of the lightweight resolver protocol using the lwres library, a sequence of actions like the @@ -191,7 +191,7 @@ <p></p> </div> <div class="refsect1" lang="en"> -<a name="id2543666"></a><h2>SEE ALSO</h2> +<a name="id2543668"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">lwres_gethostent</span>(3)</span>, <span class="citerefentry"><span class="refentrytitle">lwres_getipnode</span>(3)</span>, diff --git a/lib/lwres/man/lwres_buffer.html b/lib/lwres/man/lwres_buffer.html index 4e7735ef8169..4d29441ca17a 100644 --- a/lib/lwres/man/lwres_buffer.html +++ b/lib/lwres/man/lwres_buffer.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_buffer_init, lwres_buffer_invalidate, lwres_buffer_add, lwres_buffer_subtract, lwres_buffer_clear, lwres_buffer_first, lwres_buffer_forward, lwres_buffer_back, lwres_buffer_getuint8, lwres_buffer_putuint8, lwres_buffer_getuint16, lwres_buffer_putuint16, lwres_buffer_getuint32, lwres_buffer_putuint32, lwres_buffer_putmem, lwres_buffer_getmem — lightweight resolver buffer management</p> @@ -262,7 +262,7 @@ void </div> </div> <div class="refsect1" lang="en"> -<a name="id2543901"></a><h2>DESCRIPTION</h2> +<a name="id2543904"></a><h2>DESCRIPTION</h2> <p> These functions provide bounds checked access to a region of memory where data is being read or written. diff --git a/lib/lwres/man/lwres_config.html b/lib/lwres/man/lwres_config.html index b3b81f7a8288..3fc8826342ed 100644 --- a/lib/lwres/man/lwres_config.html +++ b/lib/lwres/man/lwres_config.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_conf_init, lwres_conf_clear, lwres_conf_parse, lwres_conf_print, lwres_conf_get — lightweight resolver configuration</p> @@ -90,7 +90,7 @@ lwres_conf_t * </div> </div> <div class="refsect1" lang="en"> -<a name="id2543450"></a><h2>DESCRIPTION</h2> +<a name="id2543452"></a><h2>DESCRIPTION</h2> <p><code class="function">lwres_conf_init()</code> creates an empty <span class="type">lwres_conf_t</span> @@ -123,7 +123,7 @@ lwres_conf_t * </p> </div> <div class="refsect1" lang="en"> -<a name="id2543517"></a><h2>RETURN VALUES</h2> +<a name="id2543520"></a><h2>RETURN VALUES</h2> <p><code class="function">lwres_conf_parse()</code> returns <span class="errorcode">LWRES_R_SUCCESS</span> if it successfully read and parsed @@ -142,13 +142,13 @@ lwres_conf_t * </p> </div> <div class="refsect1" lang="en"> -<a name="id2543555"></a><h2>SEE ALSO</h2> +<a name="id2543557"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">stdio</span>(3)</span>, <span class="citerefentry"><span class="refentrytitle">resolver</span>(5)</span>. </p> </div> <div class="refsect1" lang="en"> -<a name="id2543580"></a><h2>FILES</h2> +<a name="id2543582"></a><h2>FILES</h2> <p><code class="filename">/etc/resolv.conf</code> </p> </div> diff --git a/lib/lwres/man/lwres_context.html b/lib/lwres/man/lwres_context.html index ba6b858a4d32..6ca8be4fdc43 100644 --- a/lib/lwres/man/lwres_context.html +++ b/lib/lwres/man/lwres_context.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_context_create, lwres_context_destroy, lwres_context_nextserial, lwres_context_initserial, lwres_context_freemem, lwres_context_allocmem, lwres_context_sendrecv — lightweight resolver context management</p> @@ -172,7 +172,7 @@ void * </div> </div> <div class="refsect1" lang="en"> -<a name="id2543541"></a><h2>DESCRIPTION</h2> +<a name="id2543543"></a><h2>DESCRIPTION</h2> <p><code class="function">lwres_context_create()</code> creates a <span class="type">lwres_context_t</span> structure for use in lightweight resolver operations. It holds a socket and other @@ -258,7 +258,7 @@ void * </p> </div> <div class="refsect1" lang="en"> -<a name="id2543729"></a><h2>RETURN VALUES</h2> +<a name="id2543731"></a><h2>RETURN VALUES</h2> <p><code class="function">lwres_context_create()</code> returns <span class="errorcode">LWRES_R_NOMEMORY</span> if memory for the <span class="type">struct lwres_context</span> could not be allocated, @@ -283,7 +283,7 @@ void * </p> </div> <div class="refsect1" lang="en"> -<a name="id2543779"></a><h2>SEE ALSO</h2> +<a name="id2543781"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">lwres_conf_init</span>(3)</span>, <span class="citerefentry"><span class="refentrytitle">malloc</span>(3)</span>, diff --git a/lib/lwres/man/lwres_gabn.html b/lib/lwres/man/lwres_gabn.html index a00f82d3acaa..dfc6c28038e2 100644 --- a/lib/lwres/man/lwres_gabn.html +++ b/lib/lwres/man/lwres_gabn.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_gabnrequest_render, lwres_gabnresponse_render, lwres_gabnrequest_parse, lwres_gabnresponse_parse, lwres_gabnresponse_free, lwres_gabnrequest_free — lightweight resolver getaddrbyname message handling</p> @@ -178,7 +178,7 @@ void </div> </div> <div class="refsect1" lang="en"> -<a name="id2543531"></a><h2>DESCRIPTION</h2> +<a name="id2543533"></a><h2>DESCRIPTION</h2> <p> These are low-level routines for creating and parsing lightweight resolver name-to-address lookup request and @@ -278,7 +278,7 @@ typedef struct { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543676"></a><h2>RETURN VALUES</h2> +<a name="id2543678"></a><h2>RETURN VALUES</h2> <p> The getaddrbyname opcode functions <code class="function">lwres_gabnrequest_render()</code>, @@ -316,7 +316,7 @@ typedef struct { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543742"></a><h2>SEE ALSO</h2> +<a name="id2543745"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">lwres_packet</span>(3)</span> </p> </div> diff --git a/lib/lwres/man/lwres_gai_strerror.html b/lib/lwres/man/lwres_gai_strerror.html index 85d228ec1544..615f9833913a 100644 --- a/lib/lwres/man/lwres_gai_strerror.html +++ b/lib/lwres/man/lwres_gai_strerror.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_gai_strerror — print suitable error string</p> @@ -42,7 +42,7 @@ char * </div> </div> <div class="refsect1" lang="en"> -<a name="id2543370"></a><h2>DESCRIPTION</h2> +<a name="id2543372"></a><h2>DESCRIPTION</h2> <p><code class="function">lwres_gai_strerror()</code> returns an error message corresponding to an error code returned by <code class="function">getaddrinfo()</code>. @@ -110,7 +110,7 @@ char * </p> </div> <div class="refsect1" lang="en"> -<a name="id2543586"></a><h2>SEE ALSO</h2> +<a name="id2543588"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">strerror</span>(3)</span>, <span class="citerefentry"><span class="refentrytitle">lwres_getaddrinfo</span>(3)</span>, diff --git a/lib/lwres/man/lwres_getaddrinfo.html b/lib/lwres/man/lwres_getaddrinfo.html index b4845f56b440..ac9c3a8d9a91 100644 --- a/lib/lwres/man/lwres_getaddrinfo.html +++ b/lib/lwres/man/lwres_getaddrinfo.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_getaddrinfo, lwres_freeaddrinfo — socket address structure to host and service name</p> @@ -89,7 +89,7 @@ struct addrinfo { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543421"></a><h2>DESCRIPTION</h2> +<a name="id2543424"></a><h2>DESCRIPTION</h2> <p><code class="function">lwres_getaddrinfo()</code> is used to get a list of IP addresses and port numbers for host <em class="parameter"><code>hostname</code></em> and service @@ -283,7 +283,7 @@ struct addrinfo { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543799"></a><h2>RETURN VALUES</h2> +<a name="id2543801"></a><h2>RETURN VALUES</h2> <p><code class="function">lwres_getaddrinfo()</code> returns zero on success or one of the error codes listed in <span class="citerefentry"><span class="refentrytitle">gai_strerror</span>(3)</span> @@ -294,7 +294,7 @@ struct addrinfo { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543836"></a><h2>SEE ALSO</h2> +<a name="id2543838"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">lwres</span>(3)</span>, <span class="citerefentry"><span class="refentrytitle">lwres_getaddrinfo</span>(3)</span>, diff --git a/lib/lwres/man/lwres_gethostent.html b/lib/lwres/man/lwres_gethostent.html index 3435f1c18078..bc81732ff7b9 100644 --- a/lib/lwres/man/lwres_gethostent.html +++ b/lib/lwres/man/lwres_gethostent.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_gethostbyname, lwres_gethostbyname2, lwres_gethostbyaddr, lwres_gethostent, lwres_sethostent, lwres_endhostent, lwres_gethostbyname_r, lwres_gethostbyaddr_r, lwres_gethostent_r, lwres_sethostent_r, lwres_endhostent_r — lightweight resolver get network host entry</p> @@ -228,7 +228,7 @@ void </div> </div> <div class="refsect1" lang="en"> -<a name="id2543618"></a><h2>DESCRIPTION</h2> +<a name="id2543620"></a><h2>DESCRIPTION</h2> <p> These functions provide hostname-to-address and address-to-hostname lookups by means of the lightweight resolver. @@ -366,7 +366,7 @@ struct hostent { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543969"></a><h2>RETURN VALUES</h2> +<a name="id2543971"></a><h2>RETURN VALUES</h2> <p> The functions <code class="function">lwres_gethostbyname()</code>, @@ -430,7 +430,7 @@ struct hostent { </p> </div> <div class="refsect1" lang="en"> -<a name="id2544202"></a><h2>SEE ALSO</h2> +<a name="id2544204"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">gethostent</span>(3)</span>, <span class="citerefentry"><span class="refentrytitle">lwres_getipnode</span>(3)</span>, @@ -439,7 +439,7 @@ struct hostent { </p> </div> <div class="refsect1" lang="en"> -<a name="id2544236"></a><h2>BUGS</h2> +<a name="id2544238"></a><h2>BUGS</h2> <p><code class="function">lwres_gethostbyname()</code>, <code class="function">lwres_gethostbyname2()</code>, <code class="function">lwres_gethostbyaddr()</code> diff --git a/lib/lwres/man/lwres_getipnode.html b/lib/lwres/man/lwres_getipnode.html index 6fe0ec64750a..f3aeef3b306b 100644 --- a/lib/lwres/man/lwres_getipnode.html +++ b/lib/lwres/man/lwres_getipnode.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_getipnodebyname, lwres_getipnodebyaddr, lwres_freehostent — lightweight resolver nodename / address translation API</p> @@ -98,7 +98,7 @@ void </div> </div> <div class="refsect1" lang="en"> -<a name="id2543441"></a><h2>DESCRIPTION</h2> +<a name="id2543443"></a><h2>DESCRIPTION</h2> <p> These functions perform thread safe, protocol independent nodename-to-address and address-to-nodename @@ -217,7 +217,7 @@ struct hostent { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543699"></a><h2>RETURN VALUES</h2> +<a name="id2543701"></a><h2>RETURN VALUES</h2> <p> If an error occurs, <code class="function">lwres_getipnodebyname()</code> @@ -261,7 +261,7 @@ struct hostent { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543796"></a><h2>SEE ALSO</h2> +<a name="id2543798"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">RFC2553</span></span>, <span class="citerefentry"><span class="refentrytitle">lwres</span>(3)</span>, diff --git a/lib/lwres/man/lwres_getnameinfo.html b/lib/lwres/man/lwres_getnameinfo.html index 6153e3b372c1..72efdfc20679 100644 --- a/lib/lwres/man/lwres_getnameinfo.html +++ b/lib/lwres/man/lwres_getnameinfo.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_getnameinfo — lightweight resolver socket address structure to hostname and @@ -82,7 +82,7 @@ int </div> </div> <div class="refsect1" lang="en"> -<a name="id2543402"></a><h2>DESCRIPTION</h2> +<a name="id2543404"></a><h2>DESCRIPTION</h2> <p> This function is equivalent to the <span class="citerefentry"><span class="refentrytitle">getnameinfo</span>(3)</span> function defined in RFC2133. @@ -149,13 +149,13 @@ int </p> </div> <div class="refsect1" lang="en"> -<a name="id2543544"></a><h2>RETURN VALUES</h2> +<a name="id2543546"></a><h2>RETURN VALUES</h2> <p><code class="function">lwres_getnameinfo()</code> returns 0 on success or a non-zero error code if an error occurs. </p> </div> <div class="refsect1" lang="en"> -<a name="id2543556"></a><h2>SEE ALSO</h2> +<a name="id2543558"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">RFC2133</span></span>, <span class="citerefentry"><span class="refentrytitle">getservbyport</span>(3)</span>, <span class="citerefentry"><span class="refentrytitle">lwres</span>(3)</span>, @@ -165,7 +165,7 @@ int </p> </div> <div class="refsect1" lang="en"> -<a name="id2543613"></a><h2>BUGS</h2> +<a name="id2543616"></a><h2>BUGS</h2> <p> RFC2133 fails to define what the nonzero return values of <span class="citerefentry"><span class="refentrytitle">getnameinfo</span>(3)</span> diff --git a/lib/lwres/man/lwres_getrrsetbyname.html b/lib/lwres/man/lwres_getrrsetbyname.html index ad56c485b10d..6865feae2307 100644 --- a/lib/lwres/man/lwres_getrrsetbyname.html +++ b/lib/lwres/man/lwres_getrrsetbyname.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_getrrsetbyname, lwres_freerrset — retrieve DNS records</p> @@ -102,7 +102,7 @@ struct rrsetinfo { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543424"></a><h2>DESCRIPTION</h2> +<a name="id2543426"></a><h2>DESCRIPTION</h2> <p><code class="function">lwres_getrrsetbyname()</code> gets a set of resource records associated with a <em class="parameter"><code>hostname</code></em>, <em class="parameter"><code>class</code></em>, @@ -150,7 +150,7 @@ struct rrsetinfo { <p></p> </div> <div class="refsect1" lang="en"> -<a name="id2543536"></a><h2>RETURN VALUES</h2> +<a name="id2543538"></a><h2>RETURN VALUES</h2> <p><code class="function">lwres_getrrsetbyname()</code> returns zero on success, and one of the following error codes if an error occurred: @@ -184,7 +184,7 @@ struct rrsetinfo { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543636"></a><h2>SEE ALSO</h2> +<a name="id2543638"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">lwres</span>(3)</span>. </p> </div> diff --git a/lib/lwres/man/lwres_gnba.html b/lib/lwres/man/lwres_gnba.html index f05c05b36d85..d6b7c27c745d 100644 --- a/lib/lwres/man/lwres_gnba.html +++ b/lib/lwres/man/lwres_gnba.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_gnbarequest_render, lwres_gnbaresponse_render, lwres_gnbarequest_parse, lwres_gnbaresponse_parse, lwres_gnbaresponse_free, lwres_gnbarequest_free — lightweight resolver getnamebyaddress message handling</p> @@ -183,7 +183,7 @@ void </div> </div> <div class="refsect1" lang="en"> -<a name="id2543534"></a><h2>DESCRIPTION</h2> +<a name="id2543537"></a><h2>DESCRIPTION</h2> <p> These are low-level routines for creating and parsing lightweight resolver address-to-name lookup request and @@ -270,7 +270,7 @@ typedef struct { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543674"></a><h2>RETURN VALUES</h2> +<a name="id2543676"></a><h2>RETURN VALUES</h2> <p> The getnamebyaddr opcode functions <code class="function">lwres_gnbarequest_render()</code>, @@ -308,7 +308,7 @@ typedef struct { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543740"></a><h2>SEE ALSO</h2> +<a name="id2543742"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">lwres_packet</span>(3)</span>. </p> </div> diff --git a/lib/lwres/man/lwres_hstrerror.html b/lib/lwres/man/lwres_hstrerror.html index 654e73f12d8e..39713fb413bb 100644 --- a/lib/lwres/man/lwres_hstrerror.html +++ b/lib/lwres/man/lwres_hstrerror.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_herror, lwres_hstrerror — lightweight resolver error message generation</p> @@ -50,7 +50,7 @@ const char * </div> </div> <div class="refsect1" lang="en"> -<a name="id2543388"></a><h2>DESCRIPTION</h2> +<a name="id2543390"></a><h2>DESCRIPTION</h2> <p><code class="function">lwres_herror()</code> prints the string <em class="parameter"><code>s</code></em> on <span class="type">stderr</span> followed by the string generated by @@ -84,7 +84,7 @@ const char * </p> </div> <div class="refsect1" lang="en"> -<a name="id2543507"></a><h2>RETURN VALUES</h2> +<a name="id2543509"></a><h2>RETURN VALUES</h2> <p> The string <span class="errorname">Unknown resolver error</span> is returned by <code class="function">lwres_hstrerror()</code> @@ -94,7 +94,7 @@ const char * </p> </div> <div class="refsect1" lang="en"> -<a name="id2543527"></a><h2>SEE ALSO</h2> +<a name="id2543529"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">herror</span>(3)</span>, <span class="citerefentry"><span class="refentrytitle">lwres_hstrerror</span>(3)</span>. diff --git a/lib/lwres/man/lwres_inetntop.html b/lib/lwres/man/lwres_inetntop.html index 99cad662b090..fb3264ceb4bb 100644 --- a/lib/lwres/man/lwres_inetntop.html +++ b/lib/lwres/man/lwres_inetntop.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_net_ntop — lightweight resolver IP address presentation</p> @@ -62,7 +62,7 @@ const char * </div> </div> <div class="refsect1" lang="en"> -<a name="id2543388"></a><h2>DESCRIPTION</h2> +<a name="id2543390"></a><h2>DESCRIPTION</h2> <p><code class="function">lwres_net_ntop()</code> converts an IP address of protocol family <em class="parameter"><code>af</code></em> — IPv4 or IPv6 — at @@ -80,7 +80,7 @@ const char * </p> </div> <div class="refsect1" lang="en"> -<a name="id2543420"></a><h2>RETURN VALUES</h2> +<a name="id2543422"></a><h2>RETURN VALUES</h2> <p> If successful, the function returns <em class="parameter"><code>dst</code></em>: a pointer to a string containing the presentation format of the @@ -93,7 +93,7 @@ const char * </p> </div> <div class="refsect1" lang="en"> -<a name="id2543453"></a><h2>SEE ALSO</h2> +<a name="id2543456"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">RFC1884</span></span>, <span class="citerefentry"><span class="refentrytitle">inet_ntop</span>(3)</span>, <span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span>. diff --git a/lib/lwres/man/lwres_noop.html b/lib/lwres/man/lwres_noop.html index e1d499cff704..274a2c9038b0 100644 --- a/lib/lwres/man/lwres_noop.html +++ b/lib/lwres/man/lwres_noop.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_nooprequest_render, lwres_noopresponse_render, lwres_nooprequest_parse, lwres_noopresponse_parse, lwres_noopresponse_free, lwres_nooprequest_free — lightweight resolver no-op message handling</p> @@ -179,7 +179,7 @@ void </div> </div> <div class="refsect1" lang="en"> -<a name="id2543531"></a><h2>DESCRIPTION</h2> +<a name="id2543533"></a><h2>DESCRIPTION</h2> <p> These are low-level routines for creating and parsing lightweight resolver no-op request and response messages. @@ -270,7 +270,7 @@ typedef struct { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543682"></a><h2>RETURN VALUES</h2> +<a name="id2543684"></a><h2>RETURN VALUES</h2> <p> The no-op opcode functions <code class="function">lwres_nooprequest_render()</code>, @@ -309,7 +309,7 @@ typedef struct { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543748"></a><h2>SEE ALSO</h2> +<a name="id2543750"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">lwres_packet</span>(3)</span> </p> </div> diff --git a/lib/lwres/man/lwres_packet.html b/lib/lwres/man/lwres_packet.html index d0542daa72db..648417bd8f83 100644 --- a/lib/lwres/man/lwres_packet.html +++ b/lib/lwres/man/lwres_packet.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_lwpacket_renderheader, lwres_lwpacket_parseheader — lightweight resolver packet handling functions</p> @@ -66,7 +66,7 @@ lwres_result_t </div> </div> <div class="refsect1" lang="en"> -<a name="id2543399"></a><h2>DESCRIPTION</h2> +<a name="id2543401"></a><h2>DESCRIPTION</h2> <p> These functions rely on a <span class="type">struct lwres_lwpacket</span> @@ -219,7 +219,7 @@ struct lwres_lwpacket { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543716"></a><h2>RETURN VALUES</h2> +<a name="id2543718"></a><h2>RETURN VALUES</h2> <p> Successful calls to <code class="function">lwres_lwpacket_renderheader()</code> and diff --git a/lib/lwres/man/lwres_resutil.html b/lib/lwres/man/lwres_resutil.html index 28e571b4aec0..c62a289d9692 100644 --- a/lib/lwres/man/lwres_resutil.html +++ b/lib/lwres/man/lwres_resutil.html @@ -22,7 +22,7 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.71.1"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"> -<a name="id2476275"></a><div class="titlepage"></div> +<a name="id2476282"></a><div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>lwres_string_parse, lwres_addr_parse, lwres_getaddrsbyname, lwres_getnamebyaddr — lightweight resolver utility functions</p> @@ -134,7 +134,7 @@ lwres_result_t </div> </div> <div class="refsect1" lang="en"> -<a name="id2543476"></a><h2>DESCRIPTION</h2> +<a name="id2543478"></a><h2>DESCRIPTION</h2> <p><code class="function">lwres_string_parse()</code> retrieves a DNS-encoded string starting the current pointer of lightweight resolver buffer <em class="parameter"><code>b</code></em>: i.e. @@ -210,7 +210,7 @@ typedef struct { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543614"></a><h2>RETURN VALUES</h2> +<a name="id2543617"></a><h2>RETURN VALUES</h2> <p> Successful calls to <code class="function">lwres_string_parse()</code> @@ -248,7 +248,7 @@ typedef struct { </p> </div> <div class="refsect1" lang="en"> -<a name="id2543686"></a><h2>SEE ALSO</h2> +<a name="id2543688"></a><h2>SEE ALSO</h2> <p><span class="citerefentry"><span class="refentrytitle">lwres_buffer</span>(3)</span>, <span class="citerefentry"><span class="refentrytitle">lwres_gabn</span>(3)</span>. diff --git a/lib/lwres/print.c b/lib/lwres/print.c index 4f44814bece7..6346c718c362 100644 --- a/lib/lwres/print.c +++ b/lib/lwres/print.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007, 2011, 2012, 2014 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2011, 2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001, 2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -66,6 +66,7 @@ lwres__print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { int h; int l; int q; + int z; int alt; int zero; int left; @@ -110,7 +111,7 @@ lwres__print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { /* * Reset flags. */ - dot = space = plus = left = zero = alt = h = l = q = 0; + dot = space = plus = left = zero = alt = h = l = q = z = 0; width = precision = 0; head = ""; length = pad = zeropad = 0; @@ -194,6 +195,10 @@ lwres__print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { format++; } goto doint; + case 'z': + z = 1; + format++; + goto doint; case 'n': case 'i': case 'd': @@ -216,6 +221,11 @@ lwres__print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { p = va_arg(ap, long *); REQUIRE(p != NULL); *p = str - save; + } else if (z) { + size_t *p; + p = va_arg(ap, size_t *); + REQUIRE(p != NULL); + *p = str - save; } else { int *p; p = va_arg(ap, int *); @@ -229,6 +239,8 @@ lwres__print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { tmpi = va_arg(ap, long long int); else if (l) tmpi = va_arg(ap, long int); + else if (z) + tmpi = va_arg(ap, size_t); else tmpi = va_arg(ap, int); if (tmpi < 0) { @@ -252,6 +264,8 @@ lwres__print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { unsigned long long int); else if (l) tmpui = va_arg(ap, long int); + else if (z) + tmpui = va_arg(ap, size_t); else tmpui = va_arg(ap, int); sprintf(buf, @@ -265,6 +279,8 @@ lwres__print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { unsigned long long int); else if (l) tmpui = va_arg(ap, unsigned long int); + else if (z) + tmpui = va_arg(ap, size_t); else tmpui = va_arg(ap, unsigned int); sprintf(buf, "%" LWRES_PRINT_QUADFORMAT "u", @@ -276,6 +292,8 @@ lwres__print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { unsigned long long int); else if (l) tmpui = va_arg(ap, unsigned long int); + else if (z) + tmpui = va_arg(ap, size_t); else tmpui = va_arg(ap, unsigned int); if (alt) { @@ -292,6 +310,8 @@ lwres__print_vsnprintf(char *str, size_t size, const char *format, va_list ap) { unsigned long long int); else if (l) tmpui = va_arg(ap, unsigned long int); + else if (z) + tmpui = va_arg(ap, size_t); else tmpui = va_arg(ap, unsigned int); if (alt) { @@ -5,7 +5,7 @@ PRODUCT=BIND DESCRIPTION="(Extended Support Version)" MAJORVER=9 MINORVER=9 -PATCHVER=7 -RELEASETYPE=-P -RELEASEVER=2 +PATCHVER=8 +RELEASETYPE= +RELEASEVER= EXTENSIONS= |