From 1f5a153a6f5da9e6588d29fc27f1476dba9ba4ca Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Wed, 25 Sep 2002 14:18:11 +0000 Subject: Make it clear what this if statement applies to, and what it doesn't (This used to be commit 6b78e554c3dd3c98bff7dbd1d3715a9b7e405b8d) --- source3/passdb/pdb_get_set.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source3/passdb/pdb_get_set.c b/source3/passdb/pdb_get_set.c index 0c338f317e..07474693dd 100644 --- a/source3/passdb/pdb_get_set.c +++ b/source3/passdb/pdb_get_set.c @@ -964,6 +964,7 @@ BOOL pdb_set_plaintext_pw_only (SAM_ACCOUNT *sampass, const char *password) if (password) { if (sampass->private.plaintext_pw!=NULL) memset(sampass->private.plaintext_pw,'\0',strlen(sampass->private.plaintext_pw)+1); + sampass->private.plaintext_pw = talloc_strdup(sampass->mem_ctx, password); if (!sampass->private.plaintext_pw) { -- cgit From b55a4ca644735f2fcfd551a2cc68853542296281 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Wed, 25 Sep 2002 15:46:49 +0000 Subject: fix getpass replacement check (i thought I fixed this a few days ago....) (This used to be commit 1b55965f12dc2ede46ca2dbc82acbf56b7e33e2e) --- source3/nsswitch/winbind_nss_config.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source3/nsswitch/winbind_nss_config.h b/source3/nsswitch/winbind_nss_config.h index d9a9b8aaae..2faaa30d1b 100644 --- a/source3/nsswitch/winbind_nss_config.h +++ b/source3/nsswitch/winbind_nss_config.h @@ -26,7 +26,9 @@ /* Include header files from data in config.h file */ +#ifndef NO_CONFIG_H #include +#endif #include -- cgit From 956767fdc4107dbc44dae6402d4a8d404625b853 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 25 Sep 2002 15:54:40 +0000 Subject: add samtest commands: - show_domain - context (This used to be commit e969b1897269ebd27650c2192cd19ebda47e042e) --- source3/torture/cmd_sam.c | 135 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 134 insertions(+), 1 deletion(-) diff --git a/source3/torture/cmd_sam.c b/source3/torture/cmd_sam.c index 3ebf91434e..535711bb12 100644 --- a/source3/torture/cmd_sam.c +++ b/source3/torture/cmd_sam.c @@ -22,6 +22,30 @@ #include "includes.h" #include "samtest.h" +static NTSTATUS cmd_context(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) +{ + NTSTATUS status; + char **plugins; + int i; + + plugins = malloc(argc * sizeof(char *)); + + for(i = 1; i < argc; i++) + plugins[i-1] = argv[i]; + + plugins[argc-1] = NULL; + + if(!NT_STATUS_IS_OK(status = make_sam_context_list(&st->context, plugins))) { + printf("make_sam_context_list failed: %s\n", nt_errstr(status)); + SAFE_FREE(plugins); + return status; + } + + SAFE_FREE(plugins); + + return NT_STATUS_OK; +} + static NTSTATUS cmd_load_module(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) { char *plugin_arg[2]; @@ -165,7 +189,115 @@ static NTSTATUS cmd_update_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, static NTSTATUS cmd_show_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) { - return NT_STATUS_NOT_IMPLEMENTED; + NTSTATUS status; + DOM_SID sid; + SAM_DOMAIN_HANDLE *domain; + uint32 tmp_uint32; + uint16 tmp_uint16; + NTTIME tmp_nttime; + BOOL tmp_bool; + const char *tmp_string; + + if (argc != 2) { + printf("Usage: show_domain \n"); + return status; + } + + if (!string_to_sid(&sid, argv[1])){ + printf("Unparseable SID specified!\n"); + return NT_STATUS_INVALID_PARAMETER; + } + + if (!NT_STATUS_IS_OK(status = context_sam_get_domain_by_sid(st->context, st->token, DOMAIN_ALL_ACCESS, &sid, &domain))) { + printf("context_sam_get_domain_by_sid failed\n"); + return status; + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_num_accounts(domain, &tmp_uint32))) { + printf("sam_get_domain_num_accounts failed: %s\n", nt_errstr(status)); + } else { + printf("Number of accounts: %d\n", tmp_uint32); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_num_groups(domain, &tmp_uint32))) { + printf("sam_get_domain_num_groups failed: %s\n", nt_errstr(status)); + } else { + printf("Number of groups: %d\n", tmp_uint32); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_num_aliases(domain, &tmp_uint32))) { + printf("sam_get_domain_num_aliases failed: %s\n", nt_errstr(status)); + } else { + printf("Number of aliases: %d\n", tmp_uint32); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_name(domain, &tmp_string))) { + printf("sam_get_domain_name failed: %s\n", nt_errstr(status)); + } else { + printf("Domain Name: %s\n", tmp_string); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_lockout_count(domain, &tmp_uint16))) { + printf("sam_get_domain_lockout_count failed: %s\n", nt_errstr(status)); + } else { + printf("Lockout Count: %d\n", tmp_uint16); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_force_logoff(domain, &tmp_bool))) { + printf("sam_get_domain_force_logoff failed: %s\n", nt_errstr(status)); + } else { + printf("Force Logoff: %s\n", (tmp_bool?"Yes":"No")); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_lockout_duration(domain, &tmp_nttime))) { + printf("sam_get_domain_lockout_duration failed: %s\n", nt_errstr(status)); + } else { + printf("Lockout duration: %d\n", tmp_nttime.low); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_login_pwdchange(domain, &tmp_bool))) { + printf("sam_get_domain_login_pwdchange failed: %s\n", nt_errstr(status)); + } else { + printf("Password changing allowed: %s\n", (tmp_bool?"Yes":"No")); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_max_pwdage(domain, &tmp_nttime))) { + printf("sam_get_domain_max_pwdage failed: %s\n", nt_errstr(status)); + } else { + printf("Maximum password age: %d\n", tmp_nttime.low); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_min_pwdage(domain, &tmp_nttime))) { + printf("sam_get_domain_min_pwdage failed: %s\n", nt_errstr(status)); + } else { + printf("Minimal password age: %d\n", tmp_nttime.low); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_min_pwdlength(domain, &tmp_uint16))) { + printf("sam_get_domain_min_pwdlength: %s\n", nt_errstr(status)); + } else { + printf("Minimal Password Length: %d\n", tmp_uint16); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_pwd_history(domain, &tmp_uint16))) { + printf("sam_get_domain_pwd_history failed: %s\n", nt_errstr(status)); + } else { + printf("Password history: %d\n", tmp_uint16); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_reset_count(domain, &tmp_nttime))) { + printf("sam_get_domain_reset_count failed: %s\n", nt_errstr(status)); + } else { + printf("Reset count: %d\n", tmp_nttime.low); + } + + if (!NT_STATUS_IS_OK(status = sam_get_domain_server(domain, &tmp_string))) { + printf("sam_get_domain_server failed: %s\n", nt_errstr(status)); + } else { + printf("Server: %s\n", tmp_string); + } + + return NT_STATUS_OK; } static NTSTATUS cmd_create_account(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) @@ -255,6 +387,7 @@ struct cmd_set sam_general_commands[] = { { "General SAM Commands" }, { "load", cmd_load_module, "Load a module", "load [domain-sid]" }, + { "context", cmd_context, "Load specified context", "context [DOMAIN|]backend1[:options] [DOMAIN|]backend2[:options]" }, { "get_sec_desc", cmd_get_sec_desc, "Get security descriptor info", "get_sec_desc " }, { "set_sec_desc", cmd_set_sec_desc, "Set security descriptor info", "set_sec_desc " }, { "lookup_sid", cmd_lookup_sid, "Lookup type of specified SID", "lookup_sid " }, -- cgit From 07d7643a6e99ba07ecade2156f09a5bd20bdf695 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 25 Sep 2002 17:10:58 +0000 Subject: Add samtest command 'enum_accounts' + few typo fixes in sam/interface.c (This used to be commit 81156d6556dab2ea23dea69da6940a0482d79d9b) --- source3/sam/interface.c | 4 +--- source3/torture/cmd_sam.c | 30 +++++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/source3/sam/interface.c b/source3/sam/interface.c index bb7b88b240..320e39dbb4 100644 --- a/source3/sam/interface.c +++ b/source3/sam/interface.c @@ -904,7 +904,7 @@ void free_sam_context(SAM_CONTEXT **context) } /****************************************************************** - Make a sam_methods from scratch + Make a backend_entry from scratch *******************************************************************/ static NTSTATUS make_backend_entry(SAM_BACKEND_ENTRY *backend_entry, char *sam_backend_string) @@ -1175,8 +1175,6 @@ NTSTATUS make_sam_context(SAM_CONTEXT **context) (*context)->mem_ctx = mem_ctx; - /* FIXME */ - (*context)->free_fn = free_sam_context; return NT_STATUS_OK; diff --git a/source3/torture/cmd_sam.c b/source3/torture/cmd_sam.c index 535711bb12..caa63f1302 100644 --- a/source3/torture/cmd_sam.c +++ b/source3/torture/cmd_sam.c @@ -317,7 +317,35 @@ static NTSTATUS cmd_delete_account(struct samtest_state *st, TALLOC_CTX *mem_ctx static NTSTATUS cmd_enum_accounts(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) { - return NT_STATUS_NOT_IMPLEMENTED; + NTSTATUS status; + DOM_SID sid; + int32 account_count, i; + SAM_ACCOUNT_ENUM *accounts; + + if (argc != 2) { + printf("Usage: enum_accounts \n"); + return NT_STATUS_INVALID_PARAMETER; + } + + if (!string_to_sid(&sid, argv[1])){ + printf("Unparseable SID specified!\n"); + return NT_STATUS_INVALID_PARAMETER; + } + + if (!NT_STATUS_IS_OK(status = context_sam_enum_accounts(st->context, st->token, &sid, 0, &account_count, &accounts))) { + printf("context_sam_enum_accounts failed: %s\n", nt_errstr(status)); + return status; + } + + for (i = 0; i < account_count; i++) + printf("%s\t%s\t%s\t%s\t%d\n", + sid_string_static(&accounts[i].sid), accounts[i].account_name, + accounts[i].full_name, accounts[i].account_desc, + accounts[i].acct_ctrl); + + SAFE_FREE(accounts); + + return NT_STATUS_OK; } static NTSTATUS cmd_lookup_account_sid(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) -- cgit From 2c33710351e2bf5b2c13060a87a5c7d917ab8116 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 25 Sep 2002 19:33:04 +0000 Subject: notify user when no {domains,accounts} were found (This used to be commit ee3b497962a28c7c58e866b8536b1d2ae6f9b23a) --- source3/torture/cmd_sam.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/source3/torture/cmd_sam.c b/source3/torture/cmd_sam.c index caa63f1302..3d4725c8a8 100644 --- a/source3/torture/cmd_sam.c +++ b/source3/torture/cmd_sam.c @@ -172,6 +172,11 @@ static NTSTATUS cmd_enum_domains(struct samtest_state *st, TALLOC_CTX *mem_ctx, return status; } + if (domain_count == 0) { + printf("No domains found!\n"); + return NT_STATUS_OK; + } + for (i = 0; i < domain_count; i++) { printf("%s %s\n", domain_names[i], sid_string_static(&domain_sids[i])); } @@ -337,6 +342,11 @@ static NTSTATUS cmd_enum_accounts(struct samtest_state *st, TALLOC_CTX *mem_ctx, return status; } + if (account_count == 0) { + printf("No accounts found!\n"); + return NT_STATUS_OK; + } + for (i = 0; i < account_count; i++) printf("%s\t%s\t%s\t%s\t%d\n", sid_string_static(&accounts[i].sid), accounts[i].account_name, -- cgit From 9e70b39ab29b877906ca3e20bc25700c2e05ae1b Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Thu, 26 Sep 2002 09:50:53 +0000 Subject: move all the passdb internal interface to NTSTATUS only the interface has been fully moved to NTSTATUS not all the plugins make full use of it, but have been all converted. My testings passed completely, however a bit of more testing is welcome Simo. (This used to be commit 102a26e06591928a03b49cd312a65811ed46314f) --- source3/passdb/pdb_interface.c | 116 +++++++++++++++++------------------ source3/passdb/pdb_ldap.c | 133 ++++++++++++++++++++++------------------- source3/passdb/pdb_nisplus.c | 111 ++++++++++++++++++---------------- source3/passdb/pdb_smbpasswd.c | 71 ++++++++++++---------- source3/passdb/pdb_tdb.c | 70 ++++++++++++---------- source3/passdb/pdb_unix.c | 62 ++++++++++++------- source3/utils/pdbedit.c | 26 ++++---- 7 files changed, 320 insertions(+), 269 deletions(-) diff --git a/source3/passdb/pdb_interface.c b/source3/passdb/pdb_interface.c index f965dd727c..a94b8b8992 100644 --- a/source3/passdb/pdb_interface.c +++ b/source3/passdb/pdb_interface.c @@ -39,26 +39,28 @@ const struct pdb_init_function_entry builtin_pdb_init_functions[] = { { NULL, NULL} }; -static BOOL context_setsampwent(struct pdb_context *context, BOOL update) +static NTSTATUS context_setsampwent(struct pdb_context *context, BOOL update) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; + if (!context) { DEBUG(0, ("invalid pdb_context specified!\n")); - return False; + return ret; } context->pwent_methods = context->pdb_methods; if (!context->pwent_methods) { /* No passdbs at all */ - return True; + return ret; } - while (!(context->pwent_methods->setsampwent) || !(context->pwent_methods->setsampwent(context->pwent_methods, update))) { + while (NT_STATUS_IS_ERR(ret = context->pwent_methods->setsampwent(context->pwent_methods, update))) { context->pwent_methods = context->pwent_methods->next; if (context->pwent_methods == NULL) - return False; + return NT_STATUS_UNSUCCESSFUL; } - return True; + return ret; } static void context_endsampwent(struct pdb_context *context) @@ -75,81 +77,82 @@ static void context_endsampwent(struct pdb_context *context) context->pwent_methods = NULL; } -static BOOL context_getsampwent(struct pdb_context *context, SAM_ACCOUNT *user) +static NTSTATUS context_getsampwent(struct pdb_context *context, SAM_ACCOUNT *user) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; + if ((!context) || (!context->pwent_methods)) { DEBUG(0, ("invalid pdb_context specified!\n")); - return False; + return ret; } /* Loop until we find something useful */ - while ((!context->pwent_methods->getsampwent) || - context->pwent_methods->getsampwent(context->pwent_methods, user) == False){ + while (NT_STATUS_IS_ERR(ret = context->pwent_methods->getsampwent(context->pwent_methods, user))) { - if (context->pwent_methods->endsampwent) - context->pwent_methods->endsampwent(context->pwent_methods); + context->pwent_methods->endsampwent(context->pwent_methods); context->pwent_methods = context->pwent_methods->next; /* All methods are checked now. There are no more entries */ if (context->pwent_methods == NULL) - return False; + return ret; - if (!context->pwent_methods->setsampwent){ - DEBUG(5, ("next backend does not implment setsampwent\n")); - return False; - } - context->pwent_methods->setsampwent(context->pwent_methods, False); } user->methods = context->pwent_methods; - return True; + return ret; } -static BOOL context_getsampwnam(struct pdb_context *context, SAM_ACCOUNT *sam_acct, const char *username) +static NTSTATUS context_getsampwnam(struct pdb_context *context, SAM_ACCOUNT *sam_acct, const char *username) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; + struct pdb_methods *curmethods; if ((!context)) { DEBUG(0, ("invalid pdb_context specified!\n")); - return False; + return ret; } curmethods = context->pdb_methods; while (curmethods){ - if (curmethods->getsampwnam && curmethods->getsampwnam(curmethods, sam_acct, username) == True){ + if (NT_STATUS_IS_OK(ret = curmethods->getsampwnam(curmethods, sam_acct, username))) { sam_acct->methods = curmethods; - return True; + return ret; } curmethods = curmethods->next; } - return False; + return ret; } -static BOOL context_getsampwsid(struct pdb_context *context, SAM_ACCOUNT *sam_acct, const DOM_SID *sid) +static NTSTATUS context_getsampwsid(struct pdb_context *context, SAM_ACCOUNT *sam_acct, const DOM_SID *sid) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; + struct pdb_methods *curmethods; if ((!context)) { DEBUG(0, ("invalid pdb_context specified!\n")); - return False; + return ret; } curmethods = context->pdb_methods; while (curmethods){ - if (curmethods->getsampwsid && curmethods->getsampwsid(curmethods, sam_acct, sid) == True){ + if (NT_STATUS_IS_OK(ret = curmethods->getsampwsid(curmethods, sam_acct, sid))) { sam_acct->methods = curmethods; - return True; + return ret; } curmethods = curmethods->next; } - return False; + return ret; } -static BOOL context_add_sam_account(struct pdb_context *context, SAM_ACCOUNT *sam_acct) +static NTSTATUS context_add_sam_account(struct pdb_context *context, SAM_ACCOUNT *sam_acct) { - if ((!context) || (!context->pdb_methods) || (!context->pdb_methods->add_sam_account)) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; + + if ((!context) || (!context->pdb_methods)) { DEBUG(0, ("invalid pdb_context specified!\n")); - return False; + return ret; } /** @todo This is where a 're-read on add' should be done */ @@ -159,21 +162,18 @@ static BOOL context_add_sam_account(struct pdb_context *context, SAM_ACCOUNT *sa return context->pdb_methods->add_sam_account(context->pdb_methods, sam_acct); } -static BOOL context_update_sam_account(struct pdb_context *context, SAM_ACCOUNT *sam_acct) +static NTSTATUS context_update_sam_account(struct pdb_context *context, SAM_ACCOUNT *sam_acct) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; + if (!context) { DEBUG(0, ("invalid pdb_context specified!\n")); - return False; + return ret; } if (!sam_acct || !sam_acct->methods){ DEBUG(0, ("invalid sam_acct specified\n")); - return False; - } - - if (!sam_acct->methods->update_sam_account){ - DEBUG(0, ("invalid sam_acct->methods\n")); - return False; + return ret; } /** @todo This is where a 're-read on update' should be done */ @@ -181,12 +181,14 @@ static BOOL context_update_sam_account(struct pdb_context *context, SAM_ACCOUNT return sam_acct->methods->update_sam_account(sam_acct->methods, sam_acct); } -static BOOL context_delete_sam_account(struct pdb_context *context, SAM_ACCOUNT *sam_acct) +static NTSTATUS context_delete_sam_account(struct pdb_context *context, SAM_ACCOUNT *sam_acct) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; + struct pdb_methods *pdb_selected; if (!context) { DEBUG(0, ("invalid pdb_context specified!\n")); - return False; + return ret; } if (!sam_acct->methods){ @@ -197,17 +199,17 @@ static BOOL context_delete_sam_account(struct pdb_context *context, SAM_ACCOUNT * in /etc/passwd. */ while (pdb_selected){ - if (pdb_selected->delete_sam_account && pdb_selected->delete_sam_account(pdb_selected, sam_acct)){ - return True; + if (NT_STATUS_IS_OK(ret = pdb_selected->delete_sam_account(pdb_selected, sam_acct))) { + return ret; } pdb_selected = pdb_selected->next; } - return False; + return ret; } if (!sam_acct->methods->delete_sam_account){ DEBUG(0,("invalid sam_acct->methods->delete_sam_account\n")); - return False; + return ret; } return sam_acct->methods->delete_sam_account(sam_acct->methods, sam_acct); @@ -223,9 +225,7 @@ static void free_pdb_context(struct pdb_context **context) struct pdb_methods *pdb_selected = (*context)->pdb_methods; while (pdb_selected){ - if (pdb_selected->free_private_data) { - pdb_selected->free_private_data(&(pdb_selected->private_data)); - } + pdb_selected->free_private_data(&(pdb_selected->private_data)); pdb_selected = pdb_selected->next; } @@ -371,13 +371,13 @@ static struct pdb_context *pdb_get_static_context(BOOL reload) if ((pdb_context) && (reload)) { pdb_context->free_fn(&pdb_context); - if (!NT_STATUS_IS_OK(make_pdb_context_list(&pdb_context, lp_passdb_backend()))) { + if (NT_STATUS_IS_ERR(make_pdb_context_list(&pdb_context, lp_passdb_backend()))) { return NULL; } } if (!pdb_context) { - if (!NT_STATUS_IS_OK(make_pdb_context_list(&pdb_context, lp_passdb_backend()))) { + if (NT_STATUS_IS_ERR(make_pdb_context_list(&pdb_context, lp_passdb_backend()))) { return NULL; } } @@ -399,7 +399,7 @@ BOOL pdb_setsampwent(BOOL update) return False; } - return pdb_context->pdb_setsampwent(pdb_context, update); + return NT_STATUS_IS_OK(pdb_context->pdb_setsampwent(pdb_context, update)); } void pdb_endsampwent(void) @@ -421,7 +421,7 @@ BOOL pdb_getsampwent(SAM_ACCOUNT *user) return False; } - return pdb_context->pdb_getsampwent(pdb_context, user); + return NT_STATUS_IS_OK(pdb_context->pdb_getsampwent(pdb_context, user)); } BOOL pdb_getsampwnam(SAM_ACCOUNT *sam_acct, const char *username) @@ -432,7 +432,7 @@ BOOL pdb_getsampwnam(SAM_ACCOUNT *sam_acct, const char *username) return False; } - return pdb_context->pdb_getsampwnam(pdb_context, sam_acct, username); + return NT_STATUS_IS_OK(pdb_context->pdb_getsampwnam(pdb_context, sam_acct, username)); } BOOL pdb_getsampwsid(SAM_ACCOUNT *sam_acct, const DOM_SID *sid) @@ -443,7 +443,7 @@ BOOL pdb_getsampwsid(SAM_ACCOUNT *sam_acct, const DOM_SID *sid) return False; } - return pdb_context->pdb_getsampwsid(pdb_context, sam_acct, sid); + return NT_STATUS_IS_OK(pdb_context->pdb_getsampwsid(pdb_context, sam_acct, sid)); } BOOL pdb_add_sam_account(SAM_ACCOUNT *sam_acct) @@ -454,7 +454,7 @@ BOOL pdb_add_sam_account(SAM_ACCOUNT *sam_acct) return False; } - return pdb_context->pdb_add_sam_account(pdb_context, sam_acct); + return NT_STATUS_IS_OK(pdb_context->pdb_add_sam_account(pdb_context, sam_acct)); } BOOL pdb_update_sam_account(SAM_ACCOUNT *sam_acct) @@ -465,7 +465,7 @@ BOOL pdb_update_sam_account(SAM_ACCOUNT *sam_acct) return False; } - return pdb_context->pdb_update_sam_account(pdb_context, sam_acct); + return NT_STATUS_IS_OK(pdb_context->pdb_update_sam_account(pdb_context, sam_acct)); } BOOL pdb_delete_sam_account(SAM_ACCOUNT *sam_acct) @@ -476,7 +476,7 @@ BOOL pdb_delete_sam_account(SAM_ACCOUNT *sam_acct) return False; } - return pdb_context->pdb_delete_sam_account(pdb_context, sam_acct); + return NT_STATUS_IS_OK(pdb_context->pdb_delete_sam_account(pdb_context, sam_acct)); } #endif /* !defined(WITH_NISPLUS_SAM) */ diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c index 71a8c256a3..c7badb50e7 100644 --- a/source3/passdb/pdb_ldap.c +++ b/source3/passdb/pdb_ldap.c @@ -1183,18 +1183,19 @@ static uint32 ldapsam_get_next_available_nua_rid(struct ldapsam_privates *ldap_s /********************************************************************** Connect to LDAP server for password enumeration *********************************************************************/ -static BOOL ldapsam_setsampwent(struct pdb_methods *my_methods, BOOL update) +static NTSTATUS ldapsam_setsampwent(struct pdb_methods *my_methods, BOOL update) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; struct ldapsam_privates *ldap_state = (struct ldapsam_privates *)my_methods->private_data; int rc; pstring filter; if (!ldapsam_open_connection(ldap_state, &ldap_state->ldap_struct)) { - return False; + return ret; } if (!ldapsam_connect_system(ldap_state, ldap_state->ldap_struct)) { ldap_unbind(ldap_state->ldap_struct); - return False; + return ret; } pstrcpy(filter, lp_ldap_filter()); @@ -1211,7 +1212,7 @@ static BOOL ldapsam_setsampwent(struct pdb_methods *my_methods, BOOL update) ldap_unbind(ldap_state->ldap_struct); ldap_state->ldap_struct = NULL; ldap_state->result = NULL; - return False; + return ret; } DEBUG(2, ("ldapsam_setsampwent: %d entries in the base!\n", @@ -1222,7 +1223,7 @@ static BOOL ldapsam_setsampwent(struct pdb_methods *my_methods, BOOL update) ldap_state->result); ldap_state->index = 0; - return True; + return NT_STATUS_OK; } /********************************************************************** @@ -1242,56 +1243,58 @@ static void ldapsam_endsampwent(struct pdb_methods *my_methods) /********************************************************************** Get the next entry in the LDAP password database *********************************************************************/ -static BOOL ldapsam_getsampwent(struct pdb_methods *my_methods, SAM_ACCOUNT *user) +static NTSTATUS ldapsam_getsampwent(struct pdb_methods *my_methods, SAM_ACCOUNT *user) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; struct ldapsam_privates *ldap_state = (struct ldapsam_privates *)my_methods->private_data; - BOOL ret = False; + BOOL bret = False; /* The rebind proc needs this *HACK*. We are not multithreaded, so this will work, but it's not nice. */ static_ldap_state = ldap_state; - while (!ret) { + while (!bret) { if (!ldap_state->entry) - return False; + return ret; ldap_state->index++; - ret = init_sam_from_ldap(ldap_state, user, ldap_state->ldap_struct, + bret = init_sam_from_ldap(ldap_state, user, ldap_state->ldap_struct, ldap_state->entry); ldap_state->entry = ldap_next_entry(ldap_state->ldap_struct, ldap_state->entry); } - return True; + return NT_STATUS_OK; } /********************************************************************** Get SAM_ACCOUNT entry from LDAP by username *********************************************************************/ -static BOOL ldapsam_getsampwnam(struct pdb_methods *my_methods, SAM_ACCOUNT *user, const char *sname) +static NTSTATUS ldapsam_getsampwnam(struct pdb_methods *my_methods, SAM_ACCOUNT *user, const char *sname) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; struct ldapsam_privates *ldap_state = (struct ldapsam_privates *)my_methods->private_data; LDAP *ldap_struct; LDAPMessage *result; LDAPMessage *entry; if (!ldapsam_open_connection(ldap_state, &ldap_struct)) - return False; + return ret; if (!ldapsam_connect_system(ldap_state, ldap_struct)) { ldap_unbind(ldap_struct); - return False; + return ret; } if (ldapsam_search_one_user_by_name(ldap_state, ldap_struct, sname, &result) != LDAP_SUCCESS) { ldap_unbind(ldap_struct); - return False; + return ret; } if (ldap_count_entries(ldap_struct, result) < 1) { DEBUG(4, ("We don't find this user [%s] count=%d\n", sname, ldap_count_entries(ldap_struct, result))); ldap_unbind(ldap_struct); - return False; + return ret; } entry = ldap_first_entry(ldap_struct, result); if (entry) { @@ -1299,39 +1302,39 @@ static BOOL ldapsam_getsampwnam(struct pdb_methods *my_methods, SAM_ACCOUNT *use DEBUG(1,("ldapsam_getsampwnam: init_sam_from_ldap failed for user '%s'!\n", sname)); ldap_msgfree(result); ldap_unbind(ldap_struct); - return False; + return ret; } ldap_msgfree(result); ldap_unbind(ldap_struct); - return True; + ret = NT_STATUS_OK; } else { ldap_msgfree(result); ldap_unbind(ldap_struct); - return False; } + return ret; } /********************************************************************** Get SAM_ACCOUNT entry from LDAP by rid *********************************************************************/ -static BOOL ldapsam_getsampwrid(struct pdb_methods *my_methods, SAM_ACCOUNT *user, uint32 rid) +static NTSTATUS ldapsam_getsampwrid(struct pdb_methods *my_methods, SAM_ACCOUNT *user, uint32 rid) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; struct ldapsam_privates *ldap_state = (struct ldapsam_privates *)my_methods->private_data; LDAP *ldap_struct; LDAPMessage *result; LDAPMessage *entry; if (!ldapsam_open_connection(ldap_state, &ldap_struct)) - return False; + return ret; if (!ldapsam_connect_system(ldap_state, ldap_struct)) { ldap_unbind(ldap_struct); - return False; + return ret; } - if (ldapsam_search_one_user_by_rid(ldap_state, ldap_struct, rid, &result) != - LDAP_SUCCESS) { + if (ldapsam_search_one_user_by_rid(ldap_state, ldap_struct, rid, &result) != LDAP_SUCCESS) { ldap_unbind(ldap_struct); - return False; + return ret; } if (ldap_count_entries(ldap_struct, result) < 1) { @@ -1339,7 +1342,7 @@ static BOOL ldapsam_getsampwrid(struct pdb_methods *my_methods, SAM_ACCOUNT *use ("We don't find this rid [%i] count=%d\n", rid, ldap_count_entries(ldap_struct, result))); ldap_unbind(ldap_struct); - return False; + return ret; } entry = ldap_first_entry(ldap_struct, result); @@ -1348,28 +1351,29 @@ static BOOL ldapsam_getsampwrid(struct pdb_methods *my_methods, SAM_ACCOUNT *use DEBUG(1,("ldapsam_getsampwrid: init_sam_from_ldap failed!\n")); ldap_msgfree(result); ldap_unbind(ldap_struct); - return False; + return ret; } ldap_msgfree(result); ldap_unbind(ldap_struct); - return True; + ret = NT_STATUS_OK; } else { ldap_msgfree(result); ldap_unbind(ldap_struct); - return False; } + return ret; } -static BOOL ldapsam_getsampwsid(struct pdb_methods *my_methods, SAM_ACCOUNT * user, const DOM_SID *sid) +static NTSTATUS ldapsam_getsampwsid(struct pdb_methods *my_methods, SAM_ACCOUNT * user, const DOM_SID *sid) { uint32 rid; if (!sid_peek_check_rid(get_global_sam_sid(), sid, &rid)) - return False; + return NT_STATUS_UNSUCCESSFUL; return ldapsam_getsampwrid(my_methods, user, rid); } -static BOOL ldapsam_modify_entry(LDAP *ldap_struct,SAM_ACCOUNT *newpwd,char *dn,LDAPMod **mods,int ldap_op) +static NTSTATUS ldapsam_modify_entry(LDAP *ldap_struct,SAM_ACCOUNT *newpwd,char *dn,LDAPMod **mods,int ldap_op) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; int version; int rc; @@ -1386,7 +1390,7 @@ static BOOL ldapsam_modify_entry(LDAP *ldap_struct,SAM_ACCOUNT *newpwd,char *dn, pdb_get_username(newpwd), ldap_err2string(rc), ld_error)); free(ld_error); - return False; + return ret; } break; case LDAP_MOD_REPLACE: @@ -1399,12 +1403,12 @@ static BOOL ldapsam_modify_entry(LDAP *ldap_struct,SAM_ACCOUNT *newpwd,char *dn, pdb_get_username(newpwd), ldap_err2string(rc), ld_error)); free(ld_error); - return False; + return ret; } break; default: DEBUG(0,("Wrong LDAP operation type: %d!\n",ldap_op)); - return False; + return ret; } #ifdef LDAP_EXOP_X_MODIFY_PASSWD @@ -1425,7 +1429,7 @@ static BOOL ldapsam_modify_entry(LDAP *ldap_struct,SAM_ACCOUNT *newpwd,char *dn, if ((ber = ber_alloc_t(LBER_USE_DER))==NULL) { DEBUG(0,("ber_alloc_t returns NULL\n")); - return False; + return ret; } ber_printf (ber, "{"); ber_printf (ber, "ts", LDAP_TAG_EXOP_X_MODIFY_PASSWD_ID,dn); @@ -1434,7 +1438,7 @@ static BOOL ldapsam_modify_entry(LDAP *ldap_struct,SAM_ACCOUNT *newpwd,char *dn, if ((rc = ber_flatten (ber, &bv))<0) { DEBUG(0,("ber_flatten returns a value <0\n")); - return False; + return ret; } ber_free(ber,1); @@ -1454,14 +1458,15 @@ static BOOL ldapsam_modify_entry(LDAP *ldap_struct,SAM_ACCOUNT *newpwd,char *dn, #else DEBUG(10,("LDAP PASSWORD SYNC is not supported!\n")); #endif /* LDAP_EXOP_X_MODIFY_PASSWD */ - return True; + return NT_STATUS_OK; } /********************************************************************** Delete entry from LDAP for username *********************************************************************/ -static BOOL ldapsam_delete_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT * sam_acct) +static NTSTATUS ldapsam_delete_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT * sam_acct) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; struct ldapsam_privates *ldap_state = (struct ldapsam_privates *)my_methods->private_data; const char *sname; int rc; @@ -1472,20 +1477,20 @@ static BOOL ldapsam_delete_sam_account(struct pdb_methods *my_methods, SAM_ACCOU if (!sam_acct) { DEBUG(0, ("sam_acct was NULL!\n")); - return False; + return ret; } sname = pdb_get_username(sam_acct); if (!ldapsam_open_connection(ldap_state, &ldap_struct)) - return False; + return ret; DEBUG (3, ("Deleting user %s from LDAP.\n", sname)); if (!ldapsam_connect_system(ldap_state, ldap_struct)) { ldap_unbind (ldap_struct); DEBUG(0, ("Failed to delete user %s from LDAP.\n", sname)); - return False; + return ret; } rc = ldapsam_search_one_user_by_name(ldap_state, ldap_struct, sname, &result); @@ -1493,7 +1498,7 @@ static BOOL ldapsam_delete_sam_account(struct pdb_methods *my_methods, SAM_ACCOU DEBUG (0, ("User doesn't exit!\n")); ldap_msgfree (result); ldap_unbind (ldap_struct); - return False; + return ret; } entry = ldap_first_entry (ldap_struct, result); @@ -1510,19 +1515,20 @@ static BOOL ldapsam_delete_sam_account(struct pdb_methods *my_methods, SAM_ACCOU sname, ldap_err2string (rc), ld_error)); free (ld_error); ldap_unbind (ldap_struct); - return False; + return ret; } DEBUG (2,("successfully deleted uid = %s from the LDAP database\n", sname)); ldap_unbind (ldap_struct); - return True; + return NT_STATUS_OK; } /********************************************************************** Update SAM_ACCOUNT *********************************************************************/ -static BOOL ldapsam_update_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT * newpwd) +static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT * newpwd) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; struct ldapsam_privates *ldap_state = (struct ldapsam_privates *)my_methods->private_data; int rc; char *dn; @@ -1532,11 +1538,11 @@ static BOOL ldapsam_update_sam_account(struct pdb_methods *my_methods, SAM_ACCOU LDAPMod **mods; if (!ldapsam_open_connection(ldap_state, &ldap_struct)) /* open a connection to the server */ - return False; + return ret; if (!ldapsam_connect_system(ldap_state, ldap_struct)) { /* connect as system account */ ldap_unbind(ldap_struct); - return False; + return ret; } rc = ldapsam_search_one_user_by_name(ldap_state, ldap_struct, @@ -1546,26 +1552,26 @@ static BOOL ldapsam_update_sam_account(struct pdb_methods *my_methods, SAM_ACCOU DEBUG(0, ("No user to modify!\n")); ldap_msgfree(result); ldap_unbind(ldap_struct); - return False; + return ret; } if (!init_ldap_from_sam(ldap_state, &mods, LDAP_MOD_REPLACE, newpwd)) { DEBUG(0, ("ldapsam_update_sam_account: init_ldap_from_sam failed!\n")); ldap_msgfree(result); ldap_unbind(ldap_struct); - return False; + return ret; } entry = ldap_first_entry(ldap_struct, result); dn = ldap_get_dn(ldap_struct, entry); ldap_msgfree(result); - if (!ldapsam_modify_entry(ldap_struct,newpwd,dn,mods,LDAP_MOD_REPLACE)) { + if (NT_STATUS_IS_ERR(ldapsam_modify_entry(ldap_struct,newpwd,dn,mods,LDAP_MOD_REPLACE))) { DEBUG(0,("failed to modify user with uid = %s\n", pdb_get_username(newpwd))); ldap_mods_free(mods,1); ldap_unbind(ldap_struct); - return False; + return ret; } @@ -1574,14 +1580,15 @@ static BOOL ldapsam_update_sam_account(struct pdb_methods *my_methods, SAM_ACCOU pdb_get_username(newpwd))); ldap_mods_free(mods, 1); ldap_unbind(ldap_struct); - return True; + return NT_STATUS_OK; } /********************************************************************** Add SAM_ACCOUNT to LDAP *********************************************************************/ -static BOOL ldapsam_add_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT * newpwd) +static NTSTATUS ldapsam_add_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT * newpwd) { + NTSTATUS ret = NT_STATUS_UNSUCCESSFUL; struct ldapsam_privates *ldap_state = (struct ldapsam_privates *)my_methods->private_data; int rc; pstring filter; @@ -1595,15 +1602,15 @@ static BOOL ldapsam_add_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT const char *username = pdb_get_username(newpwd); if (!username || !*username) { DEBUG(0, ("Cannot add user without a username!\n")); - return False; + return ret; } if (!ldapsam_open_connection(ldap_state, &ldap_struct)) /* open a connection to the server */ - return False; + return ret; if (!ldapsam_connect_system(ldap_state, ldap_struct)) { /* connect as system account */ ldap_unbind(ldap_struct); - return False; + return ret; } rc = ldapsam_search_one_user_by_name (ldap_state, ldap_struct, username, &result); @@ -1612,7 +1619,7 @@ static BOOL ldapsam_add_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT DEBUG(0,("User already in the base, with samba properties\n")); ldap_msgfree(result); ldap_unbind(ldap_struct); - return False; + return ret; } ldap_msgfree(result); @@ -1623,7 +1630,7 @@ static BOOL ldapsam_add_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT if (num_result > 1) { DEBUG (0, ("More than one user with that uid exists: bailing out!\n")); ldap_msgfree(result); - return False; + return ret; } /* Check if we need to update an existing entry */ @@ -1654,22 +1661,22 @@ static BOOL ldapsam_add_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT DEBUG(0, ("ldapsam_add_sam_account: init_ldap_from_sam failed!\n")); ldap_mods_free(mods, 1); ldap_unbind(ldap_struct); - return False; + return ret; } make_a_mod(&mods, LDAP_MOD_ADD, "objectclass", "sambaAccount"); - if (!ldapsam_modify_entry(ldap_struct,newpwd,dn,mods,ldap_op)) { + if (NT_STATUS_IS_ERR(ldapsam_modify_entry(ldap_struct,newpwd,dn,mods,ldap_op))) { DEBUG(0,("failed to modify/add user with uid = %s (dn = %s)\n", pdb_get_username(newpwd),dn)); ldap_mods_free(mods,1); ldap_unbind(ldap_struct); - return False; + return ret; } DEBUG(2,("added: uid = %s in the LDAP database\n", pdb_get_username(newpwd))); ldap_mods_free(mods, 1); ldap_unbind(ldap_struct); - return True; + return NT_STATUS_OK; } static void free_private_data(void **vp) diff --git a/source3/passdb/pdb_nisplus.c b/source3/passdb/pdb_nisplus.c index 484e8986e4..de520b6b14 100644 --- a/source3/passdb/pdb_nisplus.c +++ b/source3/passdb/pdb_nisplus.c @@ -130,7 +130,7 @@ static nis_result *nisp_get_nis_list (const char *nisname, Start enumeration of the passwd list. ****************************************************************/ -static BOOL nisplussam_setsampwent (struct pdb_methods *methods, BOOL update) +static NTSTATUS nisplussam_setsampwent (struct pdb_methods *methods, BOOL update) { struct nisplus_private_info *private = (struct nisplus_private_info *) methods->private_data; @@ -148,7 +148,10 @@ static BOOL nisplussam_setsampwent (struct pdb_methods *methods, BOOL update) pdb_endsampwent (); /* just in case */ global_nisp_ent->result = nisp_get_nis_list (pfiletmp, 0); global_nisp_ent->enum_entry = 0; - return global_nisp_ent->result != NULL ? True : False; + if (global_nisp_ent->result != NULL) + return NT_STATUS_UNSUCCESSFUL; + else + return NT_STATUS_OK; } /*************************************************************** @@ -169,10 +172,10 @@ static void nisplussam_endsampwent (struct pdb_methods *methods) Get one SAM_ACCOUNT from the list (next in line) *****************************************************************/ -static BOOL nisplussam_getsampwent (struct pdb_methods *methods, +static NTSTATUS nisplussam_getsampwent (struct pdb_methods *methods, SAM_ACCOUNT * user) { - + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; struct nisplus_private_info *global_nisp_ent = (struct nisplus_private_info *) methods->private_data; int enum_entry = (int) (global_nisp_ent->enum_entry); @@ -180,33 +183,31 @@ static BOOL nisplussam_getsampwent (struct pdb_methods *methods, if (user == NULL) { DEBUG (0, ("SAM_ACCOUNT is NULL.\n")); - return False; + return nt_status; } - if (result == NULL || - enum_entry < 0 || enum_entry >= (NIS_RES_NUMOBJ (result) - 1)) { - return False; + if (result == NULL || enum_entry < 0 || enum_entry >= (NIS_RES_NUMOBJ (result) - 1)) { + return nt_status; } - if (!make_sam_from_nisp_object - (user, &NIS_RES_OBJECT (result)[enum_entry])) { + if (!make_sam_from_nisp_object(user, &NIS_RES_OBJECT (result)[enum_entry])) { DEBUG (0, ("Bad SAM_ACCOUNT entry returned from NIS+!\n")); - return False; + return nt_status; } (int) (global_nisp_ent->enum_entry)++; - return True; - DEBUG (10, ("nisplussam_getsampwent called\n")); - return False; + + return nt_status; } /****************************************************************** Lookup a name in the SAM database ******************************************************************/ -static BOOL nisplussam_getsampwnam (struct pdb_methods *methods, +static NTSTATUS nisplussam_getsampwnam (struct pdb_methods *methods, SAM_ACCOUNT * user, const char *sname) { /* Static buffers we will return. */ + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; nis_result *result = NULL; pstring nisname; BOOL ret; @@ -215,7 +216,7 @@ static BOOL nisplussam_getsampwnam (struct pdb_methods *methods, if (!private->location || !(*private->location)) { DEBUG (0, ("No SMB password file set\n")); - return False; + return nt_status; } if (strrchr (private->location, '/')) private->location = strrchr (private->location, '/') + 1; @@ -227,25 +228,25 @@ static BOOL nisplussam_getsampwnam (struct pdb_methods *methods, /* Search the table. */ if (!(result = nisp_get_nis_list (nisname, 0))) { - return False; + return nt_status; } ret = make_sam_from_nisresult (user, result); nis_freeresult (result); - return ret; + if (ret) nt_status = NT_STATUS_OK; - DEBUG (10, ("nisplussam_getsampwnam called\n")); - return False; + return nt_status; } /*************************************************************************** Search by sid **************************************************************************/ -static BOOL nisplussam_getsampwrid (struct pdb_methods *methods, +static NTSTATUS nisplussam_getsampwrid (struct pdb_methods *methods, SAM_ACCOUNT * user, uint32 rid) { + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; nis_result *result; char *nisname; BOOL ret; @@ -256,7 +257,7 @@ static BOOL nisplussam_getsampwrid (struct pdb_methods *methods, if (!private->location || !(*private->location)) { DEBUG (0, ("no SMB password file set\n")); - return False; + return nt_status; } if ((sp = strrchr (private->location, '/'))) @@ -273,22 +274,24 @@ static BOOL nisplussam_getsampwrid (struct pdb_methods *methods, /* Search the table. */ if (!(result = nisp_get_nis_list (nisname, 0))) { - return False; + return nt_status; } ret = make_sam_from_nisresult (user, result); nis_freeresult (result); - return ret; + if (ret) nt_status = NT_STATUS_OK; + + return nt_status; } -static BOOL nisplussam_getsampwsid (struct pdb_methods *methods, +static NTSTATUS nisplussam_getsampwsid (struct pdb_methods *methods, SAM_ACCOUNT * user, const DOM_SID * sid) { uint32 rid; if (!sid_peek_check_rid (get_global_sam_sid (), sid, &rid)) - return False; + return NT_STATUS_UNSUCCESSFUL; return nisplussam_getsampwrid (methods, user, rid); } @@ -298,9 +301,10 @@ static BOOL nisplussam_getsampwsid (struct pdb_methods *methods, Delete a SAM_ACCOUNT ****************************************************************************/ -static BOOL nisplussam_delete_sam_account (struct pdb_methods *methods, - SAM_ACCOUNT * user) +static NTSTATUS nisplussam_delete_sam_account (struct pdb_methods *methods, + SAM_ACCOUNT * user) { + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; const char *sname; pstring nisname; nis_result *result, *delresult; @@ -310,14 +314,14 @@ static BOOL nisplussam_delete_sam_account (struct pdb_methods *methods, if (!user) { DEBUG (0, ("no SAM_ACCOUNT specified!\n")); - return False; + return nt_status; } sname = pdb_get_username (user); if (!private->location || !(*private->location)) { DEBUG (0, ("no SMB password file set\n")); - return False; + return nt_status; } if (strrchr (private->location, '/')) @@ -332,14 +336,14 @@ static BOOL nisplussam_delete_sam_account (struct pdb_methods *methods, MASTER_ONLY | FOLLOW_LINKS | FOLLOW_PATH | EXPAND_NAME | HARD_LOOKUP))) { - return False; + return nt_status; } if (result->status != NIS_SUCCESS || NIS_RES_NUMOBJ (result) <= 0) { /* User not found. */ DEBUG (0, ("user not found in NIS+\n")); nis_freeresult (result); - return False; + return nt_status; } obj = NIS_RES_OBJECT (result); @@ -358,21 +362,21 @@ static BOOL nisplussam_delete_sam_account (struct pdb_methods *methods, DEBUG (0, ("NIS+ table update failed: %s %s\n", nisname, nis_sperrno (delresult->status))); nis_freeresult (delresult); - return False; + return nt_status; } nis_freeresult (delresult); - return True; - DEBUG (10, ("nisplussam_delete_sam_account called\n")); - return False; + + return NT_STATUS_OK; } /*************************************************************************** Modifies an existing SAM_ACCOUNT ****************************************************************************/ -static BOOL nisplussam_update_sam_account (struct pdb_methods *methods, +static NTSTATUS nisplussam_update_sam_account (struct pdb_methods *methods, SAM_ACCOUNT * newpwd) { + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; nis_result *result, *addresult; nis_object *obj; nis_object new_obj; @@ -384,7 +388,7 @@ static BOOL nisplussam_update_sam_account (struct pdb_methods *methods, if (!private->location || !(*private->location)) { DEBUG (0, ("no SMB password file set\n")); - return False; + return nt_status; } if (strrchr (private->location, '/')) private->location = strrchr (private->location, '/') + 1; @@ -401,14 +405,14 @@ static BOOL nisplussam_update_sam_account (struct pdb_methods *methods, nisp_get_nis_list (nisname, MASTER_ONLY | FOLLOW_LINKS | FOLLOW_PATH | EXPAND_NAME | HARD_LOOKUP))) { - return False; + return ne_status; } if (result->status != NIS_SUCCESS || NIS_RES_NUMOBJ (result) <= 0) { /* User not found. */ DEBUG (0, ("user not found in NIS+\n")); nis_freeresult (result); - return False; + return nt_status; } obj = NIS_RES_OBJECT (result); @@ -425,7 +429,7 @@ static BOOL nisplussam_update_sam_account (struct pdb_methods *methods, if (!(ecol = (entry_col *) malloc (ta_maxcol * sizeof (entry_col)))) { DEBUG (0, ("memory allocation failure\n")); nis_freeresult (result); - return False; + return nt_status; } memmove ((char *) ecol, obj->EN_data.en_cols.en_cols_val, @@ -449,7 +453,7 @@ static BOOL nisplussam_update_sam_account (struct pdb_methods *methods, nis_freeresult (addresult); nis_freeresult (result); free (ecol); - return False; + return nt_status; } DEBUG (6, ("password changed\n")); @@ -461,16 +465,17 @@ static BOOL nisplussam_update_sam_account (struct pdb_methods *methods, free (ecol); nis_freeresult (result); - return True; + return NT_STATUS_OK; } /*************************************************************************** Adds an existing SAM_ACCOUNT ****************************************************************************/ -static BOOL nisplussam_add_sam_account (struct pdb_methods *methods, +static NTSTATUS nisplussam_add_sam_account (struct pdb_methods *methods, SAM_ACCOUNT * newpwd) { + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; int local_user = 0; char *pfile; pstring pfiletmp; @@ -518,7 +523,7 @@ static BOOL nisplussam_add_sam_account (struct pdb_methods *methods, nisname = make_nisname_from_name (pdb_get_username (newpwd), pfiletmp); } else { - return False; + return nt_status; } if (! @@ -526,20 +531,20 @@ static BOOL nisplussam_add_sam_account (struct pdb_methods *methods, nisp_get_nis_list (nisname, MASTER_ONLY | FOLLOW_LINKS | FOLLOW_PATH | EXPAND_NAME | HARD_LOOKUP))) { - return False; + return nt_status; } if (result->status != NIS_SUCCESS && result->status != NIS_NOTFOUND) { DEBUG (3, ("nis_list failure: %s: %s\n", nisname, nis_sperrno (result->status))); nis_freeresult (result); - return False; + return nt_status; } if (result->status == NIS_SUCCESS && NIS_RES_NUMOBJ (result) > 0) { DEBUG (3, ("User already exists in NIS+ password db: %s\n", pfile)); nis_freeresult (result); - return False; + return nt_status; } nis_freeresult (result); /* no such user, free results */ @@ -565,7 +570,7 @@ static BOOL nisplussam_add_sam_account (struct pdb_methods *methods, if (!(passwd = getpwnam_alloc (pdb_get_username (newpwd)))) { /* no such user in system! */ - return False; + return nt_status; } passwd_free (&passwd); @@ -607,7 +612,7 @@ static BOOL nisplussam_add_sam_account (struct pdb_methods *methods, nis_freeresult (tblresult); DEBUG (3, ("nis_lookup failure: %s\n", nis_sperrno (tblresult->status))); - return False; + return nt_status; } /* we need full name for nis_add_entry() */ safe_strcpy (pfiletmp, pfile, sizeof (pfiletmp) - 1); @@ -636,7 +641,7 @@ static BOOL nisplussam_add_sam_account (struct pdb_methods *methods, if (!(ecol = (entry_col *) malloc (ta_maxcol * sizeof (entry_col)))) { DEBUG (0, ("memory allocation failure\n")); nis_freeresult (tblresult); - return False; + return nt_status; } memset ((char *) ecol, 0, ta_maxcol * sizeof (entry_col)); @@ -655,13 +660,13 @@ static BOOL nisplussam_add_sam_account (struct pdb_methods *methods, nisname, nis_sperrno (result->status))); nis_freeresult (tblresult); nis_freeresult (result); - return False; + return nt_status; } nis_freeresult (tblresult); nis_freeresult (result); - return True; + return NT_STATUS_OK; } /*************************************************************** diff --git a/source3/passdb/pdb_smbpasswd.c b/source3/passdb/pdb_smbpasswd.c index 04c0d333e4..257b5fa2aa 100644 --- a/source3/passdb/pdb_smbpasswd.c +++ b/source3/passdb/pdb_smbpasswd.c @@ -1248,7 +1248,7 @@ static BOOL build_sam_account(struct smbpasswd_privates *smbpasswd_state, /***************************************************************** Functions to be implemented by the new passdb API ****************************************************************/ -static BOOL smbpasswd_setsampwent (struct pdb_methods *my_methods, BOOL update) +static NTSTATUS smbpasswd_setsampwent (struct pdb_methods *my_methods, BOOL update) { struct smbpasswd_privates *smbpasswd_state = (struct smbpasswd_privates*)my_methods->private_data; @@ -1275,7 +1275,10 @@ static BOOL smbpasswd_setsampwent (struct pdb_methods *my_methods, BOOL update) &(smbpasswd_state->pw_file_lock_depth)); } - return (smbpasswd_state->pw_file != NULL); + if (smbpasswd_state->pw_file != NULL) + return NT_STATUS_OK; + else + return NT_STATUS_UNSUCCESSFUL; } static void smbpasswd_endsampwent (struct pdb_methods *my_methods) @@ -1286,8 +1289,9 @@ static void smbpasswd_endsampwent (struct pdb_methods *my_methods) /***************************************************************** ****************************************************************/ -static BOOL smbpasswd_getsampwent(struct pdb_methods *my_methods, SAM_ACCOUNT *user) +static NTSTATUS smbpasswd_getsampwent(struct pdb_methods *my_methods, SAM_ACCOUNT *user) { + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; struct smbpasswd_privates *smbpasswd_state = (struct smbpasswd_privates*)my_methods->private_data; struct smb_passwd *pw_buf=NULL; BOOL done = False; @@ -1298,7 +1302,7 @@ static BOOL smbpasswd_getsampwent(struct pdb_methods *my_methods, SAM_ACCOUNT *u #if 0 smb_panic("NULL pointer passed to getsampwent (smbpasswd)\n"); #endif - return False; + return nt_status; } while (!done) @@ -1306,7 +1310,7 @@ static BOOL smbpasswd_getsampwent(struct pdb_methods *my_methods, SAM_ACCOUNT *u /* do we have an entry? */ pw_buf = getsmbfilepwent(smbpasswd_state, smbpasswd_state->pw_file); if (pw_buf == NULL) - return False; + return nt_status; /* build the SAM_ACCOUNT entry from the smb_passwd struct. We loop in case the user in the pdb does not exist in @@ -1318,7 +1322,7 @@ static BOOL smbpasswd_getsampwent(struct pdb_methods *my_methods, SAM_ACCOUNT *u DEBUG(5,("getsampwent (smbpasswd): done\n")); /* success */ - return True; + return NT_STATUS_OK; } @@ -1327,9 +1331,10 @@ static BOOL smbpasswd_getsampwent(struct pdb_methods *my_methods, SAM_ACCOUNT *u call getpwnam() for unix account information until we have found the correct entry ***************************************************************/ -static BOOL smbpasswd_getsampwnam(struct pdb_methods *my_methods, +static NTSTATUS smbpasswd_getsampwnam(struct pdb_methods *my_methods, SAM_ACCOUNT *sam_acct, const char *username) { + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; struct smbpasswd_privates *smbpasswd_state = (struct smbpasswd_privates*)my_methods->private_data; struct smb_passwd *smb_pw; void *fp = NULL; @@ -1343,7 +1348,7 @@ static BOOL smbpasswd_getsampwnam(struct pdb_methods *my_methods, if (fp == NULL) { DEBUG(0, ("unable to open passdb database.\n")); - return False; + return nt_status; } while ( ((smb_pw=getsmbfilepwent(smbpasswd_state, fp)) != NULL)&& (!strequal(smb_pw->smb_name, username)) ) @@ -1354,7 +1359,7 @@ static BOOL smbpasswd_getsampwnam(struct pdb_methods *my_methods, /* did we locate the username in smbpasswd */ if (smb_pw == NULL) - return False; + return nt_status; DEBUG(10, ("getsampwnam (smbpasswd): found by name: %s\n", smb_pw->smb_name)); @@ -1363,19 +1368,20 @@ static BOOL smbpasswd_getsampwnam(struct pdb_methods *my_methods, #if 0 smb_panic("NULL pointer passed to pdb_getsampwnam\n"); #endif - return False; + return nt_status; } /* now build the SAM_ACCOUNT */ if (!build_sam_account(smbpasswd_state, sam_acct, smb_pw)) - return False; + return nt_status; /* success */ - return True; + return NT_STATUS_OK; } -static BOOL smbpasswd_getsampwrid(struct pdb_methods *my_methods, SAM_ACCOUNT *sam_acct,uint32 rid) +static NTSTATUS smbpasswd_getsampwrid(struct pdb_methods *my_methods, SAM_ACCOUNT *sam_acct,uint32 rid) { + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; struct smbpasswd_privates *smbpasswd_state = (struct smbpasswd_privates*)my_methods->private_data; struct smb_passwd *smb_pw; void *fp = NULL; @@ -1387,7 +1393,7 @@ static BOOL smbpasswd_getsampwrid(struct pdb_methods *my_methods, SAM_ACCOUNT *s const char *guest_account = lp_guestaccount(); if (!(guest_account && *guest_account)) { DEBUG(1, ("Guest account not specfied!\n")); - return False; + return nt_status; } return smbpasswd_getsampwnam(my_methods, sam_acct, guest_account); } @@ -1397,7 +1403,7 @@ static BOOL smbpasswd_getsampwrid(struct pdb_methods *my_methods, SAM_ACCOUNT *s if (fp == NULL) { DEBUG(0, ("unable to open passdb database.\n")); - return False; + return nt_status; } while ( ((smb_pw=getsmbfilepwent(smbpasswd_state, fp)) != NULL) && (fallback_pdb_uid_to_user_rid(smb_pw->smb_userid) != rid) ) @@ -1408,7 +1414,7 @@ static BOOL smbpasswd_getsampwrid(struct pdb_methods *my_methods, SAM_ACCOUNT *s /* did we locate the username in smbpasswd */ if (smb_pw == NULL) - return False; + return nt_status; DEBUG(10, ("getsampwrid (smbpasswd): found by name: %s\n", smb_pw->smb_name)); @@ -1417,44 +1423,44 @@ static BOOL smbpasswd_getsampwrid(struct pdb_methods *my_methods, SAM_ACCOUNT *s #if 0 smb_panic("NULL pointer passed to pdb_getsampwrid\n"); #endif - return False; + return nt_status; } /* now build the SAM_ACCOUNT */ if (!build_sam_account (smbpasswd_state, sam_acct, smb_pw)) - return False; + return nt_status; /* success */ - return True; + return NT_STATUS_OK; } -static BOOL smbpasswd_getsampwsid(struct pdb_methods *my_methods, SAM_ACCOUNT * user, const DOM_SID *sid) +static NTSTATUS smbpasswd_getsampwsid(struct pdb_methods *my_methods, SAM_ACCOUNT * user, const DOM_SID *sid) { uint32 rid; if (!sid_peek_check_rid(get_global_sam_sid(), sid, &rid)) - return False; + return NT_STATUS_UNSUCCESSFUL; return smbpasswd_getsampwrid(my_methods, user, rid); } -static BOOL smbpasswd_add_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT *sampass) +static NTSTATUS smbpasswd_add_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT *sampass) { struct smbpasswd_privates *smbpasswd_state = (struct smbpasswd_privates*)my_methods->private_data; struct smb_passwd smb_pw; /* convert the SAM_ACCOUNT */ if (!build_smb_pass(&smb_pw, sampass)) { - return False; + return NT_STATUS_UNSUCCESSFUL; } /* add the entry */ if(!add_smbfilepwd_entry(smbpasswd_state, &smb_pw)) { - return False; + return NT_STATUS_UNSUCCESSFUL; } - return True; + return NT_STATUS_OK; } -static BOOL smbpasswd_update_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT *sampass) +static NTSTATUS smbpasswd_update_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT *sampass) { struct smbpasswd_privates *smbpasswd_state = (struct smbpasswd_privates*)my_methods->private_data; struct smb_passwd smb_pw; @@ -1462,25 +1468,28 @@ static BOOL smbpasswd_update_sam_account(struct pdb_methods *my_methods, SAM_ACC /* convert the SAM_ACCOUNT */ if (!build_smb_pass(&smb_pw, sampass)) { DEBUG(0, ("smbpasswd_update_sam_account: build_smb_pass failed!\n")); - return False; + return NT_STATUS_UNSUCCESSFUL; } /* update the entry */ if(!mod_smbfilepwd_entry(smbpasswd_state, &smb_pw)) { DEBUG(0, ("smbpasswd_update_sam_account: mod_smbfilepwd_entry failed!\n")); - return False; + return NT_STATUS_UNSUCCESSFUL; } - return True; + return NT_STATUS_OK; } -static BOOL smbpasswd_delete_sam_account (struct pdb_methods *my_methods, SAM_ACCOUNT *sampass) +static NTSTATUS smbpasswd_delete_sam_account (struct pdb_methods *my_methods, SAM_ACCOUNT *sampass) { struct smbpasswd_privates *smbpasswd_state = (struct smbpasswd_privates*)my_methods->private_data; const char *username = pdb_get_username(sampass); - return del_smbfilepwd_entry(smbpasswd_state, username); + if (del_smbfilepwd_entry(smbpasswd_state, username)) + return NT_STATUS_OK; + + return NT_STATUS_UNSUCCESSFUL; } static void free_private_data(void **vp) diff --git a/source3/passdb/pdb_tdb.c b/source3/passdb/pdb_tdb.c index 27453fc1af..241b3298b0 100644 --- a/source3/passdb/pdb_tdb.c +++ b/source3/passdb/pdb_tdb.c @@ -484,7 +484,7 @@ static uint32 init_buffer_from_sam (struct tdbsam_privates *tdb_state, Open the TDB passwd database for SAM account enumeration. ****************************************************************/ -static BOOL tdbsam_setsampwent(struct pdb_methods *my_methods, BOOL update) +static NTSTATUS tdbsam_setsampwent(struct pdb_methods *my_methods, BOOL update) { struct tdbsam_privates *tdb_state = (struct tdbsam_privates *)my_methods->private_data; @@ -492,12 +492,12 @@ static BOOL tdbsam_setsampwent(struct pdb_methods *my_methods, BOOL update) if (!(tdb_state->passwd_tdb = tdb_open_log(tdb_state->tdbsam_location, 0, TDB_DEFAULT, update?(O_RDWR|O_CREAT):O_RDONLY, 0600))) { DEBUG(0, ("Unable to open/create TDB passwd\n")); - return False; + return NT_STATUS_UNSUCCESSFUL; } tdb_state->key = tdb_firstkey(tdb_state->passwd_tdb); - return True; + return NT_STATUS_OK; } static void close_tdb(struct tdbsam_privates *tdb_state) @@ -524,8 +524,9 @@ static void tdbsam_endsampwent(struct pdb_methods *my_methods) Get one SAM_ACCOUNT from the TDB (next in line) *****************************************************************/ -static BOOL tdbsam_getsampwent(struct pdb_methods *my_methods, SAM_ACCOUNT *user) +static NTSTATUS tdbsam_getsampwent(struct pdb_methods *my_methods, SAM_ACCOUNT *user) { + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; struct tdbsam_privates *tdb_state = (struct tdbsam_privates *)my_methods->private_data; TDB_DATA data; char *prefix = USERPREFIX; @@ -534,7 +535,7 @@ static BOOL tdbsam_getsampwent(struct pdb_methods *my_methods, SAM_ACCOUNT *user if (user==NULL) { DEBUG(0,("pdb_get_sampwent: SAM_ACCOUNT is NULL.\n")); - return False; + return nt_status; } /* skip all non-USER entries (eg. RIDs) */ @@ -545,35 +546,36 @@ static BOOL tdbsam_getsampwent(struct pdb_methods *my_methods, SAM_ACCOUNT *user /* do we have an valid iteration pointer? */ if(tdb_state->passwd_tdb == NULL) { DEBUG(0,("pdb_get_sampwent: Bad TDB Context pointer.\n")); - return False; + return nt_status; } data = tdb_fetch(tdb_state->passwd_tdb, tdb_state->key); if (!data.dptr) { DEBUG(5,("pdb_getsampwent: database entry not found.\n")); - return False; + return nt_status; } /* unpack the buffer */ if (!init_sam_from_buffer(tdb_state, user, data.dptr, data.dsize)) { DEBUG(0,("pdb_getsampwent: Bad SAM_ACCOUNT entry returned from TDB!\n")); SAFE_FREE(data.dptr); - return False; + return nt_status; } SAFE_FREE(data.dptr); /* increment to next in line */ tdb_state->key = tdb_nextkey(tdb_state->passwd_tdb, tdb_state->key); - return True; + return NT_STATUS_OK; } /****************************************************************** Lookup a name in the SAM TDB ******************************************************************/ -static BOOL tdbsam_getsampwnam (struct pdb_methods *my_methods, SAM_ACCOUNT *user, const char *sname) +static NTSTATUS tdbsam_getsampwnam (struct pdb_methods *my_methods, SAM_ACCOUNT *user, const char *sname) { + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; struct tdbsam_privates *tdb_state = (struct tdbsam_privates *)my_methods->private_data; TDB_CONTEXT *pwd_tdb; TDB_DATA data, key; @@ -582,7 +584,7 @@ static BOOL tdbsam_getsampwnam (struct pdb_methods *my_methods, SAM_ACCOUNT *use if (user==NULL) { DEBUG(0,("pdb_getsampwnam: SAM_ACCOUNT is NULL.\n")); - return False; + return nt_status; } /* Data is stored in all lower-case */ @@ -596,7 +598,7 @@ static BOOL tdbsam_getsampwnam (struct pdb_methods *my_methods, SAM_ACCOUNT *use /* open the accounts TDB */ if (!(pwd_tdb = tdb_open_log(tdb_state->tdbsam_location, 0, TDB_DEFAULT, O_RDONLY, 0600))) { DEBUG(0, ("pdb_getsampwnam: Unable to open TDB passwd (%s)!\n", tdb_state->tdbsam_location)); - return False; + return nt_status; } /* get the record */ @@ -606,7 +608,7 @@ static BOOL tdbsam_getsampwnam (struct pdb_methods *my_methods, SAM_ACCOUNT *use DEBUGADD(5, (" Error: %s\n", tdb_errorstr(pwd_tdb))); DEBUGADD(5, (" Key: %s\n", keystr)); tdb_close(pwd_tdb); - return False; + return nt_status; } /* unpack the buffer */ @@ -614,22 +616,23 @@ static BOOL tdbsam_getsampwnam (struct pdb_methods *my_methods, SAM_ACCOUNT *use DEBUG(0,("pdb_getsampwent: Bad SAM_ACCOUNT entry returned from TDB!\n")); SAFE_FREE(data.dptr); tdb_close(pwd_tdb); - return False; + return nt_status; } SAFE_FREE(data.dptr); /* no further use for database, close it now */ tdb_close(pwd_tdb); - return True; + return NT_STATUS_OK; } /*************************************************************************** Search by rid **************************************************************************/ -static BOOL tdbsam_getsampwrid (struct pdb_methods *my_methods, SAM_ACCOUNT *user, uint32 rid) +static NTSTATUS tdbsam_getsampwrid (struct pdb_methods *my_methods, SAM_ACCOUNT *user, uint32 rid) { + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; struct tdbsam_privates *tdb_state = (struct tdbsam_privates *)my_methods->private_data; TDB_CONTEXT *pwd_tdb; TDB_DATA data, key; @@ -638,7 +641,7 @@ static BOOL tdbsam_getsampwrid (struct pdb_methods *my_methods, SAM_ACCOUNT *use if (user==NULL) { DEBUG(0,("pdb_getsampwrid: SAM_ACCOUNT is NULL.\n")); - return False; + return nt_status; } /* set search key */ @@ -649,7 +652,7 @@ static BOOL tdbsam_getsampwrid (struct pdb_methods *my_methods, SAM_ACCOUNT *use /* open the accounts TDB */ if (!(pwd_tdb = tdb_open_log(tdb_state->tdbsam_location, 0, TDB_DEFAULT, O_RDONLY, 0600))) { DEBUG(0, ("pdb_getsampwrid: Unable to open TDB rid database!\n")); - return False; + return nt_status; } /* get the record */ @@ -658,7 +661,7 @@ static BOOL tdbsam_getsampwrid (struct pdb_methods *my_methods, SAM_ACCOUNT *use DEBUG(5,("pdb_getsampwrid (TDB): error looking up RID %d by key %s.\n", rid, keystr)); DEBUGADD(5, (" Error: %s\n", tdb_errorstr(pwd_tdb))); tdb_close (pwd_tdb); - return False; + return nt_status; } fstrcpy (name, data.dptr); @@ -669,11 +672,11 @@ static BOOL tdbsam_getsampwrid (struct pdb_methods *my_methods, SAM_ACCOUNT *use return tdbsam_getsampwnam (my_methods, user, name); } -static BOOL tdbsam_getsampwsid(struct pdb_methods *my_methods, SAM_ACCOUNT * user, const DOM_SID *sid) +static NTSTATUS tdbsam_getsampwsid(struct pdb_methods *my_methods, SAM_ACCOUNT * user, const DOM_SID *sid) { uint32 rid; if (!sid_peek_check_rid(get_global_sam_sid(), sid, &rid)) - return False; + return NT_STATUS_UNSUCCESSFUL; return tdbsam_getsampwrid(my_methods, user, rid); } @@ -681,8 +684,9 @@ static BOOL tdbsam_getsampwsid(struct pdb_methods *my_methods, SAM_ACCOUNT * use Delete a SAM_ACCOUNT ****************************************************************************/ -static BOOL tdbsam_delete_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT *sam_pass) +static NTSTATUS tdbsam_delete_sam_account(struct pdb_methods *my_methods, SAM_ACCOUNT *sam_pass) { + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; struct tdbsam_privates *tdb_state = (struct tdbsam_privates *)my_methods->private_data; TDB_CONTEXT *pwd_tdb; TDB_DATA key; @@ -695,7 +699,7 @@ static BOOL tdbsam_delete_sam_account(struct pdb_methods *my_methods, SAM_ACCOUN /* open the TDB */ if (!(pwd_tdb = tdb_open_log(tdb_state->tdbsam_location, 0, TDB_DEFAULT, O_RDWR, 0600))) { DEBUG(0, ("Unable to open TDB passwd!")); - return False; + return nt_status; } /* set the search key */ @@ -710,7 +714,7 @@ static BOOL tdbsam_delete_sam_account(struct pdb_methods *my_methods, SAM_ACCOUN DEBUG(5, ("Error deleting entry from tdb passwd database!\n")); DEBUGADD(5, (" Error: %s\n", tdb_errorstr(pwd_tdb))); tdb_close(pwd_tdb); - return False; + return nt_status; } /* delete also the RID key */ @@ -725,12 +729,12 @@ static BOOL tdbsam_delete_sam_account(struct pdb_methods *my_methods, SAM_ACCOUN DEBUG(5, ("Error deleting entry from tdb rid database!\n")); DEBUGADD(5, (" Error: %s\n", tdb_errorstr(pwd_tdb))); tdb_close(pwd_tdb); - return False; + return nt_status; } tdb_close(pwd_tdb); - return True; + return NT_STATUS_OK; } /*************************************************************************** @@ -872,18 +876,24 @@ done: Modifies an existing SAM_ACCOUNT ****************************************************************************/ -static BOOL tdbsam_update_sam_account (struct pdb_methods *my_methods, SAM_ACCOUNT *newpwd) +static NTSTATUS tdbsam_update_sam_account (struct pdb_methods *my_methods, SAM_ACCOUNT *newpwd) { - return (tdb_update_sam(my_methods, newpwd, TDB_MODIFY)); + if (tdb_update_sam(my_methods, newpwd, TDB_MODIFY)) + return NT_STATUS_OK; + else + return NT_STATUS_UNSUCCESSFUL; } /*************************************************************************** Adds an existing SAM_ACCOUNT ****************************************************************************/ -static BOOL tdbsam_add_sam_account (struct pdb_methods *my_methods, SAM_ACCOUNT *newpwd) +static NTSTATUS tdbsam_add_sam_account (struct pdb_methods *my_methods, SAM_ACCOUNT *newpwd) { - return (tdb_update_sam(my_methods, newpwd, TDB_INSERT)); + if (tdb_update_sam(my_methods, newpwd, TDB_INSERT)) + return NT_STATUS_OK; + else + return NT_STATUS_UNSUCCESSFUL; } static void free_private_data(void **vp) diff --git a/source3/passdb/pdb_unix.c b/source3/passdb/pdb_unix.c index 06f12164eb..ba5ed0abdf 100644 --- a/source3/passdb/pdb_unix.c +++ b/source3/passdb/pdb_unix.c @@ -23,20 +23,20 @@ Lookup a name in the SAM database ******************************************************************/ -static BOOL unixsam_getsampwnam (struct pdb_methods *methods, SAM_ACCOUNT *user, const char *sname) +static NTSTATUS unixsam_getsampwnam (struct pdb_methods *methods, SAM_ACCOUNT *user, const char *sname) { struct passwd *pass; if (!methods) { DEBUG(0,("invalid methods\n")); - return False; + return NT_STATUS_UNSUCCESSFUL; } if (!sname) { DEBUG(0,("invalid name specified")); - return False; + return NT_STATUS_UNSUCCESSFUL; } pass = Get_Pwnam(sname); - return NT_STATUS_IS_OK(pdb_fill_sam_pw(user, pass)); + return pdb_fill_sam_pw(user, pass); } @@ -44,45 +44,45 @@ static BOOL unixsam_getsampwnam (struct pdb_methods *methods, SAM_ACCOUNT *user, Search by rid **************************************************************************/ -static BOOL unixsam_getsampwrid (struct pdb_methods *methods, +static NTSTATUS unixsam_getsampwrid (struct pdb_methods *methods, SAM_ACCOUNT *user, uint32 rid) { + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; struct passwd *pass; - BOOL ret = False; const char *guest_account = lp_guestaccount(); if (!(guest_account && *guest_account)) { DEBUG(1, ("NULL guest account!?!?\n")); - return False; + return nt_status; } if (!methods) { DEBUG(0,("invalid methods\n")); - return False; + return nt_status; } if (rid == DOMAIN_USER_RID_GUEST) { pass = getpwnam_alloc(guest_account); if (!pass) { DEBUG(1, ("guest account %s does not seem to exist...\n", guest_account)); - return False; + return nt_status; } } else if (pdb_rid_is_user(rid)) { pass = getpwuid_alloc(fallback_pdb_user_rid_to_uid (rid)); } else { - return False; + return nt_status; } - ret = NT_STATUS_IS_OK(pdb_fill_sam_pw(user, pass)); + nt_status = pdb_fill_sam_pw(user, pass); passwd_free(&pass); - return ret; + return nt_status; } -static BOOL unixsam_getsampwsid(struct pdb_methods *my_methods, SAM_ACCOUNT * user, const DOM_SID *sid) +static NTSTATUS unixsam_getsampwsid(struct pdb_methods *my_methods, SAM_ACCOUNT * user, const DOM_SID *sid) { uint32 rid; if (!sid_peek_check_rid(get_global_sam_sid(), sid, &rid)) - return False; + return NT_STATUS_UNSUCCESSFUL; return unixsam_getsampwrid(my_methods, user, rid); } @@ -90,10 +90,10 @@ static BOOL unixsam_getsampwsid(struct pdb_methods *my_methods, SAM_ACCOUNT * us Adds an existing SAM_ACCOUNT ****************************************************************************/ -static BOOL unixsam_add_sam_account (struct pdb_methods *methods, SAM_ACCOUNT *newpwd) +static NTSTATUS unixsam_add_sam_account (struct pdb_methods *methods, SAM_ACCOUNT *newpwd) { DEBUG(0,("pdb_unix should not be listed as the first passdb backend! You can't add users to it.\n")); - return False; + return NT_STATUS_NOT_IMPLEMENTED; } /*************************************************************************** @@ -106,11 +106,31 @@ static BOOL unixsam_add_sam_account (struct pdb_methods *methods, SAM_ACCOUNT *n as if the pdb_unix version was modified, but its actually stored somehwere. ****************************************************************************/ -static BOOL unixsam_update_sam_account (struct pdb_methods *methods, SAM_ACCOUNT *newpwd) +static NTSTATUS unixsam_update_sam_account (struct pdb_methods *methods, SAM_ACCOUNT *newpwd) { return methods->parent->pdb_add_sam_account(methods->parent, newpwd); } +static NTSTATUS unixsam_delete_sam_account (struct pdb_methods *methods, SAM_ACCOUNT *pwd) +{ + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS unixsam_setsampwent(struct pdb_methods *methods, BOOL update) +{ + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS unixsam_getsampwent(struct pdb_methods *methods, SAM_ACCOUNT *user) +{ + return NT_STATUS_NOT_IMPLEMENTED; +} + +static void unixsam_endsampwent(struct pdb_methods *methods) +{ + return; /* NT_STATUS_NOT_IMPLEMENTED; */ +} + NTSTATUS pdb_init_unixsam(PDB_CONTEXT *pdb_context, PDB_METHODS **pdb_method, const char *location) { NTSTATUS nt_status; @@ -126,14 +146,14 @@ NTSTATUS pdb_init_unixsam(PDB_CONTEXT *pdb_context, PDB_METHODS **pdb_method, co (*pdb_method)->name = "unixsam"; - (*pdb_method)->setsampwent = NULL; - (*pdb_method)->endsampwent = NULL; - (*pdb_method)->getsampwent = NULL; + (*pdb_method)->setsampwent = unixsam_setsampwent; + (*pdb_method)->endsampwent = unixsam_endsampwent; + (*pdb_method)->getsampwent = unixsam_getsampwent; (*pdb_method)->getsampwnam = unixsam_getsampwnam; (*pdb_method)->getsampwsid = unixsam_getsampwsid; (*pdb_method)->add_sam_account = unixsam_add_sam_account; (*pdb_method)->update_sam_account = unixsam_update_sam_account; - (*pdb_method)->delete_sam_account = NULL; + (*pdb_method)->delete_sam_account = unixsam_delete_sam_account; /* There's not very much to initialise here */ return NT_STATUS_OK; diff --git a/source3/utils/pdbedit.c b/source3/utils/pdbedit.c index 7c61e6d8be..6942779556 100644 --- a/source3/utils/pdbedit.c +++ b/source3/utils/pdbedit.c @@ -62,7 +62,7 @@ extern BOOL AllowDebugChange; static int export_database (struct pdb_context *in, struct pdb_context *out) { SAM_ACCOUNT *user = NULL; - if (!in->pdb_setsampwent(in, 0)) { + if (NT_STATUS_IS_ERR(in->pdb_setsampwent(in, 0))) { fprintf(stderr, "Can't sampwent!\n"); return 1; } @@ -72,7 +72,7 @@ static int export_database (struct pdb_context *in, struct pdb_context *out) { return 1; } - while (in->pdb_getsampwent(in, user)) { + while (NT_STATUS_IS_OK(in->pdb_getsampwent(in, user))) { out->pdb_add_sam_account(out, user); if (!NT_STATUS_IS_OK(pdb_reset_sam(user))){ fprintf(stderr, "Can't reset SAM_ACCOUNT!\n"); @@ -188,7 +188,7 @@ static int print_user_info (struct pdb_context *in, char *username, BOOL verbosi return -1; } - ret = in->pdb_getsampwnam (in, sam_pwent, username); + ret = NT_STATUS_IS_OK(in->pdb_getsampwnam (in, sam_pwent, username)); if (ret==False) { fprintf (stderr, "Username not found!\n"); @@ -210,7 +210,7 @@ static int print_users_list (struct pdb_context *in, BOOL verbosity, BOOL smbpwd SAM_ACCOUNT *sam_pwent=NULL; BOOL check, ret; - check = in->pdb_setsampwent(in, False); + check = NT_STATUS_IS_OK(in->pdb_setsampwent(in, False)); if (!check) { return 1; } @@ -218,7 +218,7 @@ static int print_users_list (struct pdb_context *in, BOOL verbosity, BOOL smbpwd check = True; if (!(NT_STATUS_IS_OK(pdb_init_sam(&sam_pwent)))) return 1; - while (check && (ret = in->pdb_getsampwent (in, sam_pwent))) { + while (check && (ret = NT_STATUS_IS_OK(in->pdb_getsampwent (in, sam_pwent)))) { if (verbosity) printf ("---------------\n"); print_sam_info (sam_pwent, verbosity, smbpwdstyle); @@ -242,7 +242,7 @@ static int set_user_info (struct pdb_context *in, char *username, char *fullname pdb_init_sam(&sam_pwent); - ret = in->pdb_getsampwnam (in, sam_pwent, username); + ret = NT_STATUS_IS_OK(in->pdb_getsampwnam (in, sam_pwent, username)); if (ret==False) { fprintf (stderr, "Username not found!\n"); pdb_free_sam(&sam_pwent); @@ -260,7 +260,7 @@ static int set_user_info (struct pdb_context *in, char *username, char *fullname if (profile) pdb_set_profile_path (sam_pwent, profile, True); - if (in->pdb_update_sam_account (in, sam_pwent)) + if (NT_STATUS_IS_OK(in->pdb_update_sam_account (in, sam_pwent))) print_user_info (in, username, True, False); else { fprintf (stderr, "Unable to modify entry!\n"); @@ -328,7 +328,7 @@ static int new_user (struct pdb_context *in, char *username, char *fullname, cha pdb_set_acct_ctrl (sam_pwent, ACB_NORMAL); - if (in->pdb_add_sam_account (in, sam_pwent)) { + if (NT_STATUS_IS_OK(in->pdb_add_sam_account (in, sam_pwent))) { print_user_info (in, username, True, False); } else { fprintf (stderr, "Unable to add user! (does it alredy exist?)\n"); @@ -370,7 +370,7 @@ static int new_machine (struct pdb_context *in, char *machinename) pdb_set_group_sid_from_rid(sam_pwent, DOMAIN_GROUP_RID_COMPUTERS); - if (in->pdb_add_sam_account (in, sam_pwent)) { + if (NT_STATUS_IS_OK(in->pdb_add_sam_account (in, sam_pwent))) { print_user_info (in, name, True, False); } else { fprintf (stderr, "Unable to add machine! (does it already exist?)\n"); @@ -393,12 +393,12 @@ static int delete_user_entry (struct pdb_context *in, char *username) return -1; } - if (!in->pdb_getsampwnam(in, samaccount, username)) { + if (NT_STATUS_IS_ERR(in->pdb_getsampwnam(in, samaccount, username))) { fprintf (stderr, "user %s does not exist in the passdb\n", username); return -1; } - return in->pdb_delete_sam_account (in, samaccount); + return NT_STATUS_IS_OK(in->pdb_delete_sam_account (in, samaccount)); } /********************************************************* @@ -418,12 +418,12 @@ static int delete_machine_entry (struct pdb_context *in, char *machinename) return -1; } - if (!in->pdb_getsampwnam(in, samaccount, name)) { + if (NT_STATUS_IS_ERR(in->pdb_getsampwnam(in, samaccount, name))) { fprintf (stderr, "machine %s does not exist in the passdb\n", name); return -1; } - return in->pdb_delete_sam_account (in, samaccount); + return NT_STATUS_IS_OK(in->pdb_delete_sam_account (in, samaccount)); } /********************************************************* -- cgit From ad514000db54b887c5c0f8734415e2b10698b365 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Thu, 26 Sep 2002 10:25:34 +0000 Subject: Patch from "Stefan (metze) Metzmacher" to do a *much* better job of working with usrmgr. Previously we were blanking out entires, and all sort of mischif. The new patch (which I've now had a chance to test/modify) also takes care not to expand % values (ie we go \\%L\%U -> \\server\user, we don't want to store \\server\user back) and to correctly notice 'not set' compared to 'null string' etc. Andrew Bartlett (This used to be commit ab878b6cc4132594fc33f78aeebf0d8b7266c150) --- source3/include/rpc_samr.h | 19 +- source3/lib/time.c | 14 +- source3/passdb/passdb.c | 2 +- source3/rpc_parse/parse_samr.c | 45 +++- source3/rpc_server/srv_samr_nt.c | 4 +- source3/rpc_server/srv_samr_util.c | 420 ++++++++++++++++++++++++++++++------- 6 files changed, 419 insertions(+), 85 deletions(-) diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h index 11438ae067..72c65ebfb7 100644 --- a/source3/include/rpc_samr.h +++ b/source3/include/rpc_samr.h @@ -314,6 +314,9 @@ SamrTestPrivateFunctionsUser #define ALIAS_EXECUTE ( STANDARD_RIGHTS_EXECUTE_ACCESS | \ ALIAS_ACCESS_LOOKUP_INFO ) +/* A flag for the user info 21 and 23 structs */ +#define PASS_MUST_CHANGE_AT_NEXT_LOGON 1 + typedef struct _DISP_USER_INFO { SAM_ACCOUNT *sam; } DISP_USER_INFO; @@ -366,10 +369,14 @@ typedef struct sam_user_info_23 /* uint8 pad[2] */ uint32 ptr_logon_hrs; /* pointer to logon hours */ - uint8 padding1[8]; - uint32 unknown_5; /* 0x0001 0000 */ + uint8 padding1[6]; + + uint8 passmustchange; /* 0x00 must change = 0x01 */ + + uint8 padding2; + uint8 pass[516]; UNISTR2 uni_user_name; /* NULL - username unicode string */ @@ -487,7 +494,11 @@ typedef struct sam_user_info_21 uint32 unknown_5; /* 0x0002 0000 */ - uint8 padding1[8]; + uint8 padding1[6]; + + uint8 passmustchange; /* 0x00 must change = 0x01 */ + + uint8 padding2; UNISTR2 uni_user_name; /* username unicode string */ UNISTR2 uni_full_name; /* user's full name unicode string */ @@ -507,6 +518,8 @@ typedef struct sam_user_info_21 } SAM_USER_INFO_21; +#define PASS_MUST_CHANGE_AT_NEXT_LOGON 0x01 +#define PASS_DONT_CHANGE_AT_NEXT_LOGON 0x00 /* SAM_USER_INFO_20 */ typedef struct sam_user_info_20 diff --git a/source3/lib/time.c b/source3/lib/time.c index ef12dc15f3..5da63910d9 100644 --- a/source3/lib/time.c +++ b/source3/lib/time.c @@ -1,8 +1,8 @@ /* Unix SMB/CIFS implementation. time handling functions - Copyright (C) Andrew Tridgell 1992-1998 - + Copyright (C) Andrew Tridgell 1992-1998 + Copyright (C) Stefan (metze) Metzmacher 2002 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -748,3 +748,13 @@ void init_nt_time(NTTIME *nt) nt->high = 0x7FFFFFFF; nt->low = 0xFFFFFFFF; } + +/**************************************************************************** +check if NTTIME is 0 +****************************************************************************/ +BOOL nt_time_is_zero(NTTIME *nt) +{ + if(nt->high==0) + return True; + return False; +} diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c index b78f26a8e8..2d8ea858aa 100644 --- a/source3/passdb/passdb.c +++ b/source3/passdb/passdb.c @@ -978,7 +978,7 @@ const char *pdb_unistr2_convert(const UNISTR2 *from) static pstring convert_buffer; *convert_buffer = 0; if (!from) { - return convert_buffer; + return NULL; } unistr2_to_ascii(convert_buffer, from, sizeof(pstring)); diff --git a/source3/rpc_parse/parse_samr.c b/source3/rpc_parse/parse_samr.c index 1137993bb6..ddf51fcf0b 100644 --- a/source3/rpc_parse/parse_samr.c +++ b/source3/rpc_parse/parse_samr.c @@ -5470,7 +5470,15 @@ void init_sam_user_info23W(SAM_USER_INFO_23 * usr, NTTIME * logon_time, /* all z usr->logon_divs = logon_divs; /* should be 168 (hours/week) */ usr->ptr_logon_hrs = hrs ? 1 : 0; + if (nt_time_is_zero(pass_must_change_time)) { + usr->passmustchange=PASS_MUST_CHANGE_AT_NEXT_LOGON; + } else { + usr->passmustchange=0; + } + + ZERO_STRUCT(usr->padding1); + ZERO_STRUCT(usr->padding2); usr->unknown_5 = unknown_5; /* 0x0001 0000 */ @@ -5558,7 +5566,14 @@ void init_sam_user_info23A(SAM_USER_INFO_23 * usr, NTTIME * logon_time, /* all z usr->logon_divs = logon_divs; /* should be 168 (hours/week) */ usr->ptr_logon_hrs = hrs ? 1 : 0; + if (nt_time_is_zero(pass_must_change_time)) { + usr->passmustchange=PASS_MUST_CHANGE_AT_NEXT_LOGON; + } else { + usr->passmustchange=0; + } + ZERO_STRUCT(usr->padding1); + ZERO_STRUCT(usr->padding2); usr->unknown_5 = unknown_5; /* 0x0001 0000 */ @@ -5651,11 +5666,18 @@ static BOOL sam_io_user_info23(char *desc, SAM_USER_INFO_23 * usr, return False; if(!prs_uint32("ptr_logon_hrs ", ps, depth, &usr->ptr_logon_hrs)) return False; + + if(!prs_uint32("unknown_5 ", ps, depth, &usr->unknown_5)) + return False; + if(!prs_uint8s(False, "padding1 ", ps, depth, usr->padding1, sizeof(usr->padding1))) return False; - if(!prs_uint32("unknown_5 ", ps, depth, &usr->unknown_5)) + if(!prs_uint8("passmustchange ", ps, depth, &usr->passmustchange)) + return False; + if(!prs_uint8("padding2 ", ps, depth, &usr->padding2)) return False; + if(!prs_uint8s(False, "password ", ps, depth, usr->pass, sizeof(usr->pass))) return False; @@ -5905,7 +5927,15 @@ void init_sam_user_info21W(SAM_USER_INFO_21 * usr, usr->ptr_logon_hrs = hrs ? 1 : 0; usr->unknown_5 = unknown_5; /* 0x0002 0000 */ + if (nt_time_is_zero(pass_must_change_time)) { + usr->passmustchange=PASS_MUST_CHANGE_AT_NEXT_LOGON; + } else { + usr->passmustchange=0; + } + + ZERO_STRUCT(usr->padding1); + ZERO_STRUCT(usr->padding2); copy_unistr2(&usr->uni_user_name, user_name); copy_unistr2(&usr->uni_full_name, full_name); @@ -6037,7 +6067,15 @@ NTSTATUS init_sam_user_info21A(SAM_USER_INFO_21 *usr, SAM_ACCOUNT *pw, DOM_SID * usr->ptr_logon_hrs = pdb_get_hours(pw) ? 1 : 0; usr->unknown_5 = pdb_get_unknown5(pw); /* 0x0002 0000 */ + if (pdb_get_pass_must_change_time(pw) == 0) { + usr->passmustchange=PASS_MUST_CHANGE_AT_NEXT_LOGON; + } else { + usr->passmustchange=0; + } + + ZERO_STRUCT(usr->padding1); + ZERO_STRUCT(usr->padding2); init_unistr2(&usr->uni_user_name, user_name, len_user_name); init_unistr2(&usr->uni_full_name, full_name, len_full_name); @@ -6132,11 +6170,16 @@ static BOOL sam_io_user_info21(char *desc, SAM_USER_INFO_21 * usr, return False; if(!prs_uint32("ptr_logon_hrs ", ps, depth, &usr->ptr_logon_hrs)) return False; + if(!prs_uint32("unknown_5 ", ps, depth, &usr->unknown_5)) return False; if(!prs_uint8s(False, "padding1 ", ps, depth, usr->padding1, sizeof(usr->padding1))) return False; + if(!prs_uint8("passmustchange ", ps, depth, &usr->passmustchange)) + return False; + if(!prs_uint8("padding2 ", ps, depth, &usr->padding2)) + return False; /* here begins pointed-to data */ diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c index ea631838da..6e9ba2f026 100644 --- a/source3/rpc_server/srv_samr_nt.c +++ b/source3/rpc_server/srv_samr_nt.c @@ -2802,8 +2802,6 @@ static BOOL set_user_info_23(SAM_USER_INFO_23 *id23, DOM_SID *sid) acct_ctrl = pdb_get_acct_ctrl(pwd); - copy_id23_to_sam_passwd(pwd, id23); - if (!decode_pw_buffer((char*)id23->pass, plaintext_buf, 256, &len)) { pdb_free_sam(&pwd); return False; @@ -2814,6 +2812,8 @@ static BOOL set_user_info_23(SAM_USER_INFO_23 *id23, DOM_SID *sid) return False; } + copy_id23_to_sam_passwd(pwd, id23); + /* if it's a trust account, don't update /etc/passwd */ if ( (!IS_SAM_UNIX_USER(pwd)) || ( (acct_ctrl & ACB_DOMTRUST) == ACB_DOMTRUST ) || diff --git a/source3/rpc_server/srv_samr_util.c b/source3/rpc_server/srv_samr_util.c index 7a5b1e5f46..18297056d6 100644 --- a/source3/rpc_server/srv_samr_util.c +++ b/source3/rpc_server/srv_samr_util.c @@ -1,10 +1,11 @@ /* Unix SMB/CIFS implementation. SAMR Pipe utility functions. - Copyright (C) Jeremy Allison 1996-2001 + Copyright (C) Luke Kenneth Casson Leighton 1996-1998 Copyright (C) Gerald (Jerry) Carter 2000-2001 Copyright (C) Andrew Bartlett 2001-2002 + Copyright (C) Stefan (metze) Metzmacher 2002 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,118 +27,385 @@ #undef DBGC_CLASS #define DBGC_CLASS DBGC_RPC_SRV +#define STRING_CHANGED (old_string && !new_string) ||\ + (!old_string && new_string) ||\ + (old_string && new_string && (strcmp(old_string, new_string) != 0)) + /************************************************************* - Copies a SAM_USER_INFO_23 to a SAM_ACCOUNT - **************************************************************/ + Copies a SAM_USER_INFO_21 to a SAM_ACCOUNT +**************************************************************/ -void copy_id23_to_sam_passwd(SAM_ACCOUNT *to, SAM_USER_INFO_23 *from) +void copy_id21_to_sam_passwd(SAM_ACCOUNT *to, SAM_USER_INFO_21 *from) { + time_t unix_time, stored_time; + const char *old_string, *new_string; if (from == NULL || to == NULL) return; + if (!nt_time_is_zero(&from->logon_time)) { + unix_time=nt_time_to_unix(&from->logon_time); + stored_time = pdb_get_logon_time(to); + DEBUG(10,("INFO_21 LOGON_TIME: %lu -> %lu\n",(long unsigned int)stored_time, (long unsigned int)unix_time)); + if (stored_time != unix_time) + pdb_set_logon_time(to, unix_time, True); + } + if (!nt_time_is_zero(&from->logoff_time)) { + unix_time=nt_time_to_unix(&from->logoff_time); + stored_time = pdb_get_logoff_time(to); + DEBUG(10,("INFO_21 LOGOFF_TIME: %lu -> %lu\n",(long unsigned int)stored_time, (long unsigned int)unix_time)); + if (stored_time != unix_time) + pdb_set_logoff_time(to, unix_time, True); + } + + if (!nt_time_is_zero(&from->kickoff_time)) { + unix_time=nt_time_to_unix(&from->kickoff_time); + stored_time = pdb_get_kickoff_time(to); + DEBUG(10,("INFO_21 KICKOFF_TIME: %lu -> %lu\n",(long unsigned int)stored_time, (long unsigned int)unix_time)); + if (stored_time != unix_time) + pdb_set_kickoff_time(to, unix_time , True); + } - pdb_set_logon_time(to,nt_time_to_unix(&from->logon_time), True); - pdb_set_logoff_time(to,nt_time_to_unix(&from->logoff_time), True); - pdb_set_kickoff_time(to, nt_time_to_unix(&from->kickoff_time), True); - pdb_set_pass_can_change_time(to, nt_time_to_unix(&from->pass_can_change_time), True); - pdb_set_pass_must_change_time(to, nt_time_to_unix(&from->pass_must_change_time), True); - - pdb_set_pass_last_set_time(to, nt_time_to_unix(&from->pass_last_set_time)); - - if (from->uni_user_name.buffer) - pdb_set_username(to , pdb_unistr2_convert(&from->uni_user_name )); - if (from->uni_full_name.buffer) - pdb_set_fullname(to , pdb_unistr2_convert(&from->uni_full_name )); - if (from->uni_home_dir.buffer) - pdb_set_homedir(to , pdb_unistr2_convert(&from->uni_home_dir ), True); - if (from->uni_dir_drive.buffer) - pdb_set_dir_drive(to , pdb_unistr2_convert(&from->uni_dir_drive ), True); - if (from->uni_logon_script.buffer) - pdb_set_logon_script(to , pdb_unistr2_convert(&from->uni_logon_script), True); - if (from->uni_profile_path.buffer) - pdb_set_profile_path(to , pdb_unistr2_convert(&from->uni_profile_path), True); - if (from->uni_acct_desc.buffer) - pdb_set_acct_desc(to , pdb_unistr2_convert(&from->uni_acct_desc )); - if (from->uni_workstations.buffer) - pdb_set_workstations(to , pdb_unistr2_convert(&from->uni_workstations)); - if (from->uni_unknown_str.buffer) - pdb_set_unknown_str(to , pdb_unistr2_convert(&from->uni_unknown_str )); - if (from->uni_munged_dial.buffer) - pdb_set_munged_dial(to , pdb_unistr2_convert(&from->uni_munged_dial )); - - if (from->user_rid) - pdb_set_user_sid_from_rid(to, from->user_rid); - if (from->group_rid) - pdb_set_group_sid_from_rid(to, from->group_rid); + if (!nt_time_is_zero(&from->pass_can_change_time)) { + unix_time=nt_time_to_unix(&from->pass_can_change_time); + stored_time = pdb_get_pass_can_change_time(to); + DEBUG(10,("INFO_21 PASS_CAN_CH: %lu -> %lu\n",(long unsigned int)stored_time, (long unsigned int)unix_time)); + if (stored_time != unix_time) + pdb_set_pass_can_change_time(to, unix_time, True); + } + if (!nt_time_is_zero(&from->pass_last_set_time)) { + unix_time=nt_time_to_unix(&from->pass_last_set_time); + stored_time = pdb_get_pass_last_set_time(to); + DEBUG(10,("INFO_21 PASS_LAST_SET: %lu -> %lu\n",(long unsigned int)stored_time, (long unsigned int)unix_time)); + if (stored_time != unix_time) + pdb_set_pass_last_set_time(to, unix_time); + } + + if (!nt_time_is_zero(&from->pass_must_change_time)) { + unix_time=nt_time_to_unix(&from->pass_must_change_time); + stored_time=pdb_get_pass_must_change_time(to); + DEBUG(10,("INFO_21 PASS_MUST_CH: %lu -> %lu\n",(long unsigned int)stored_time, (long unsigned int)unix_time)); + if (stored_time != unix_time) + pdb_set_pass_must_change_time(to, unix_time, True); + } + + /* Backend should check this for sainity */ + if (from->hdr_user_name.buffer) { + old_string = pdb_get_username(to); + new_string = pdb_unistr2_convert(&from->uni_user_name); + DEBUG(10,("INFO_21 UNI_USER_NAME: %s -> %s\n", old_string, new_string)); + if (STRING_CHANGED) + pdb_set_username(to , new_string); + } + + if (from->hdr_full_name.buffer) { + old_string = pdb_get_fullname(to); + new_string = pdb_unistr2_convert(&from->uni_user_name); + DEBUG(10,("INFO_21 UNI_FULL_NAME: %s -> %s\n",old_string, new_string)); + if (STRING_CHANGED) + pdb_set_fullname(to , new_string); + } + + if (from->hdr_home_dir.buffer) { + old_string = pdb_get_homedir(to); + new_string = pdb_unistr2_convert(&from->uni_home_dir); + DEBUG(10,("INFO_21 UNI_HOME_DIR: %s -> %s\n",old_string,new_string)); + if (STRING_CHANGED) + pdb_set_homedir(to , new_string, True); + } + + if (from->hdr_dir_drive.buffer) { + old_string = pdb_get_dir_drive(to); + new_string = pdb_unistr2_convert(&from->uni_dir_drive); + DEBUG(10,("INFO_21 UNI_DIR_DRIVE: %s -> %s\n",old_string,new_string)); + if (STRING_CHANGED) + pdb_set_dir_drive(to , new_string, True); + } + if (from->hdr_logon_script.buffer) { + old_string = pdb_get_logon_script(to); + new_string = pdb_unistr2_convert(&from->uni_logon_script); + DEBUG(10,("INFO_21 UNI_LOGON_SCRIPT: %s -> %s\n",old_string,new_string)); + if (STRING_CHANGED) + pdb_set_logon_script(to , new_string, True); + } + + if (from->hdr_profile_path.buffer) { + old_string = pdb_get_profile_path(to); + new_string = pdb_unistr2_convert(&from->uni_profile_path); + DEBUG(10,("INFO_21 UNI_PROFILE_PATH: %s -> %s\n",old_string, new_string)); + if (STRING_CHANGED) + pdb_set_profile_path(to , new_string, True); + } + + if (from->hdr_acct_desc.buffer) { + old_string = pdb_get_acct_desc(to); + new_string = pdb_unistr2_convert(&from->uni_acct_desc); + DEBUG(10,("INFO_21 UNI_ACCT_DESC: %s -> %s\n",old_string,new_string)); + if (STRING_CHANGED) + pdb_set_acct_desc(to , new_string); + } + + if (from->hdr_workstations.buffer) { + old_string = pdb_get_workstations(to); + new_string = pdb_unistr2_convert(&from->uni_workstations); + DEBUG(10,("INFO_21 UNI_WORKSTATIONS: %s -> %s\n",old_string, new_string)); + if (STRING_CHANGED) + pdb_set_workstations(to , new_string); + } + + if (from->hdr_unknown_str.buffer) { + old_string = pdb_get_unknown_str(to); + new_string = pdb_unistr2_convert(&from->uni_unknown_str); + DEBUG(10,("INFO_21 UNI_UNKNOWN_STR: %s -> %s\n",old_string, new_string)); + if (STRING_CHANGED) + pdb_set_unknown_str(to , new_string); + } + + if (from->hdr_munged_dial.buffer) { + old_string = pdb_get_munged_dial(to); + new_string = pdb_unistr2_convert(&from->uni_munged_dial); + DEBUG(10,("INFO_21 UNI_MUNGED_DIAL: %s -> %s\n",old_string, new_string)); + if (STRING_CHANGED) + pdb_set_munged_dial(to , new_string); + } + + if (from->user_rid) { + DEBUG(10,("INFO_21 USER_RID: %u -> %u NOT UPDATED!\n",pdb_get_user_rid(to),from->user_rid)); + /* we really allow this ??? metze */ + /* pdb_set_user_sid_from_rid(to, from->user_rid);*/ + } + + if (from->group_rid) { + DEBUG(10,("INFO_21 GROUP_RID: %u -> %u\n",pdb_get_group_rid(to),from->group_rid)); + pdb_set_group_sid_from_rid(to, from->group_rid); + } + + DEBUG(10,("INFO_21 ACCT_CTRL: %08X -> %08X\n",pdb_get_acct_ctrl(to),from->acb_info)); pdb_set_acct_ctrl(to, from->acb_info); + + DEBUG(10,("INFO_21 UNKOWN_3: %08X -> %08X\n",pdb_get_unknown3(to),from->unknown_3)); pdb_set_unknown_3(to, from->unknown_3); + + DEBUG(15,("INFO_21 LOGON_DIVS: %08X -> %08X\n",pdb_get_logon_divs(to),from->logon_divs)); pdb_set_logon_divs(to, from->logon_divs); + + DEBUG(15,("INFO_21 LOGON_HRS.LEN: %08X -> %08X\n",pdb_get_hours_len(to),from->logon_hrs.len)); pdb_set_hours_len(to, from->logon_hrs.len); + DEBUG(15,("INFO_21 LOGON_HRS.HOURS: %s -> %s\n",pdb_get_hours(to),from->logon_hrs.hours)); pdb_set_hours(to, from->logon_hrs.hours); + DEBUG(10,("INFO_21 UNKOWN_5: %08X -> %08X\n",pdb_get_unknown5(to),from->unknown_5)); pdb_set_unknown_5(to, from->unknown_5); + + DEBUG(10,("INFO_21 UNKOWN_6: %08X -> %08X\n",pdb_get_unknown6(to),from->unknown_6)); pdb_set_unknown_6(to, from->unknown_6); + + DEBUG(10,("INFO_21 PADDING1 %02X %02X %02X %02X %02X %02X\n", + from->padding1[0], + from->padding1[1], + from->padding1[2], + from->padding1[3], + from->padding1[4], + from->padding1[5])); + + DEBUG(10,("INFO_21 PASS_MUST_CHANGE_AT_NEXT_LOGON: %02X\n",from->passmustchange)); + if (from->passmustchange==PASS_MUST_CHANGE_AT_NEXT_LOGON) { + pdb_set_pass_must_change_time(to,0, True); + } + + DEBUG(10,("INFO_21 PADDING_2: %02X\n",from->padding2)); + + DEBUG(10,("INFO_21 PADDING_4: %08X\n",from->padding4)); } /************************************************************* - Copies a sam passwd. - **************************************************************/ + Copies a SAM_USER_INFO_23 to a SAM_ACCOUNT +**************************************************************/ -void copy_id21_to_sam_passwd(SAM_ACCOUNT *to, SAM_USER_INFO_21 *from) +void copy_id23_to_sam_passwd(SAM_ACCOUNT *to, SAM_USER_INFO_23 *from) { + time_t unix_time, stored_time; + const char *old_string, *new_string; + if (from == NULL || to == NULL) return; + if (!nt_time_is_zero(&from->logon_time)) { + unix_time=nt_time_to_unix(&from->logon_time); + stored_time = pdb_get_logon_time(to); + DEBUG(10,("INFO_23 LOGON_TIME: %lu -> %lu\n",(long unsigned int)stored_time, (long unsigned int)unix_time)); + if (stored_time != unix_time) + pdb_set_logon_time(to, unix_time, True); + } + if (!nt_time_is_zero(&from->logoff_time)) { + unix_time=nt_time_to_unix(&from->logoff_time); + stored_time = pdb_get_logoff_time(to); + DEBUG(10,("INFO_23 LOGOFF_TIME: %lu -> %lu\n",(long unsigned int)stored_time, (long unsigned int)unix_time)); + if (stored_time != unix_time) + pdb_set_logoff_time(to, unix_time, True); + } + + if (!nt_time_is_zero(&from->kickoff_time)) { + unix_time=nt_time_to_unix(&from->kickoff_time); + stored_time = pdb_get_kickoff_time(to); + DEBUG(10,("INFO_23 KICKOFF_TIME: %lu -> %lu\n",(long unsigned int)stored_time, (long unsigned int)unix_time)); + if (stored_time != unix_time) + pdb_set_kickoff_time(to, unix_time , True); + } - pdb_set_logon_time(to,nt_time_to_unix(&from->logon_time), True); - pdb_set_logoff_time(to,nt_time_to_unix(&from->logoff_time), True); - pdb_set_kickoff_time(to, nt_time_to_unix(&from->kickoff_time), True); - pdb_set_pass_can_change_time(to, nt_time_to_unix(&from->pass_can_change_time), True); - pdb_set_pass_must_change_time(to, nt_time_to_unix(&from->pass_must_change_time), True); - - pdb_set_pass_last_set_time(to, nt_time_to_unix(&from->pass_last_set_time)); - - if (from->uni_user_name.buffer) - pdb_set_username(to , pdb_unistr2_convert(&from->uni_user_name )); - if (from->uni_full_name.buffer) - pdb_set_fullname(to , pdb_unistr2_convert(&from->uni_full_name )); - if (from->uni_home_dir.buffer) - pdb_set_homedir(to , pdb_unistr2_convert(&from->uni_home_dir ), True); - if (from->uni_dir_drive.buffer) - pdb_set_dir_drive(to , pdb_unistr2_convert(&from->uni_dir_drive ), True); - if (from->uni_logon_script.buffer) - pdb_set_logon_script(to , pdb_unistr2_convert(&from->uni_logon_script), True); - if (from->uni_profile_path.buffer) - pdb_set_profile_path(to , pdb_unistr2_convert(&from->uni_profile_path), True); - if (from->uni_acct_desc.buffer) - pdb_set_acct_desc(to , pdb_unistr2_convert(&from->uni_acct_desc )); - if (from->uni_workstations.buffer) - pdb_set_workstations(to , pdb_unistr2_convert(&from->uni_workstations)); - if (from->uni_unknown_str.buffer) - pdb_set_unknown_str(to , pdb_unistr2_convert(&from->uni_unknown_str )); - if (from->uni_munged_dial.buffer) - pdb_set_munged_dial(to , pdb_unistr2_convert(&from->uni_munged_dial )); - - if (from->user_rid) - pdb_set_user_sid_from_rid(to, from->user_rid); - if (from->group_rid) - pdb_set_group_sid_from_rid(to, from->group_rid); + if (!nt_time_is_zero(&from->pass_can_change_time)) { + unix_time=nt_time_to_unix(&from->pass_can_change_time); + stored_time = pdb_get_pass_can_change_time(to); + DEBUG(10,("INFO_23 PASS_CAN_CH: %lu -> %lu\n",(long unsigned int)stored_time, (long unsigned int)unix_time)); + if (stored_time != unix_time) + pdb_set_pass_can_change_time(to, unix_time, True); + } + if (!nt_time_is_zero(&from->pass_last_set_time)) { + unix_time=nt_time_to_unix(&from->pass_last_set_time); + stored_time = pdb_get_pass_last_set_time(to); + DEBUG(10,("INFO_23 PASS_LAST_SET: %lu -> %lu\n",(long unsigned int)stored_time, (long unsigned int)unix_time)); + if (stored_time != unix_time) + pdb_set_pass_last_set_time(to, unix_time); + } + + if (!nt_time_is_zero(&from->pass_must_change_time)) { + unix_time=nt_time_to_unix(&from->pass_must_change_time); + stored_time=pdb_get_pass_must_change_time(to); + DEBUG(10,("INFO_23 PASS_MUST_CH: %lu -> %lu\n",(long unsigned int)stored_time, (long unsigned int)unix_time)); + if (stored_time != unix_time) + pdb_set_pass_must_change_time(to, unix_time, True); + } + + /* Backend should check this for sainity */ + if (from->hdr_user_name.buffer) { + old_string = pdb_get_username(to); + new_string = pdb_unistr2_convert(&from->uni_user_name); + DEBUG(10,("INFO_23 UNI_USER_NAME: %s -> %s\n", old_string, new_string)); + if (STRING_CHANGED) + pdb_set_username(to , new_string); + } + + if (from->hdr_full_name.buffer) { + old_string = pdb_get_fullname(to); + new_string = pdb_unistr2_convert(&from->uni_user_name); + DEBUG(10,("INFO_23 UNI_FULL_NAME: %s -> %s\n",old_string, new_string)); + if (STRING_CHANGED) + pdb_set_fullname(to , new_string); + } + + if (from->hdr_home_dir.buffer) { + old_string = pdb_get_homedir(to); + new_string = pdb_unistr2_convert(&from->uni_home_dir); + DEBUG(10,("INFO_23 UNI_HOME_DIR: %s -> %s\n",old_string,new_string)); + if (STRING_CHANGED) + pdb_set_homedir(to , new_string, True); + } + + if (from->hdr_dir_drive.buffer) { + old_string = pdb_get_dir_drive(to); + new_string = pdb_unistr2_convert(&from->uni_dir_drive); + DEBUG(10,("INFO_23 UNI_DIR_DRIVE: %s -> %s\n",old_string,new_string)); + if (STRING_CHANGED) + pdb_set_dir_drive(to , new_string, True); + } - /* FIXME!! Do we need to copy the passwords here as well? - I don't know. Need to figure this out --jerry */ + if (from->hdr_logon_script.buffer) { + old_string = pdb_get_logon_script(to); + new_string = pdb_unistr2_convert(&from->uni_logon_script); + DEBUG(10,("INFO_23 UNI_LOGON_SCRIPT: %s -> %s\n",old_string,new_string)); + if (STRING_CHANGED) + pdb_set_logon_script(to , new_string, True); + } - /* Passwords dealt with in caller --abartlet */ + if (from->hdr_profile_path.buffer) { + old_string = pdb_get_profile_path(to); + new_string = pdb_unistr2_convert(&from->uni_profile_path); + DEBUG(10,("INFO_23 UNI_PROFILE_PATH: %s -> %s\n",old_string, new_string)); + if (STRING_CHANGED) + pdb_set_profile_path(to , new_string, True); + } + + if (from->hdr_acct_desc.buffer) { + old_string = pdb_get_acct_desc(to); + new_string = pdb_unistr2_convert(&from->uni_acct_desc); + DEBUG(10,("INFO_23 UNI_ACCT_DESC: %s -> %s\n",old_string,new_string)); + if (STRING_CHANGED) + pdb_set_acct_desc(to , new_string); + } + + if (from->hdr_workstations.buffer) { + old_string = pdb_get_workstations(to); + new_string = pdb_unistr2_convert(&from->uni_workstations); + DEBUG(10,("INFO_23 UNI_WORKSTATIONS: %s -> %s\n",old_string, new_string)); + if (STRING_CHANGED) + pdb_set_workstations(to , new_string); + } + if (from->hdr_unknown_str.buffer) { + old_string = pdb_get_unknown_str(to); + new_string = pdb_unistr2_convert(&from->uni_unknown_str); + DEBUG(10,("INFO_23 UNI_UNKNOWN_STR: %s -> %s\n",old_string, new_string)); + if (STRING_CHANGED) + pdb_set_unknown_str(to , new_string); + } + + if (from->hdr_munged_dial.buffer) { + old_string = pdb_get_munged_dial(to); + new_string = pdb_unistr2_convert(&from->uni_munged_dial); + DEBUG(10,("INFO_23 UNI_MUNGED_DIAL: %s -> %s\n",old_string, new_string)); + if (STRING_CHANGED) + pdb_set_munged_dial(to , new_string); + } + + if (from->user_rid) { + DEBUG(10,("INFO_23 USER_RID: %u -> %u NOT UPDATED!\n",pdb_get_user_rid(to),from->user_rid)); + /* we really allow this ??? metze */ + /* pdb_set_user_sid_from_rid(to, from->user_rid);*/ + } + + if (from->group_rid) { + DEBUG(10,("INFO_23 GROUP_RID: %u -> %u\n",pdb_get_group_rid(to),from->group_rid)); + pdb_set_group_sid_from_rid(to, from->group_rid); + } + + DEBUG(10,("INFO_23 ACCT_CTRL: %08X -> %08X\n",pdb_get_acct_ctrl(to),from->acb_info)); pdb_set_acct_ctrl(to, from->acb_info); + + DEBUG(10,("INFO_23 UNKOWN_3: %08X -> %08X\n",pdb_get_unknown3(to),from->unknown_3)); pdb_set_unknown_3(to, from->unknown_3); + + DEBUG(15,("INFO_23 LOGON_DIVS: %08X -> %08X\n",pdb_get_logon_divs(to),from->logon_divs)); pdb_set_logon_divs(to, from->logon_divs); + + DEBUG(15,("INFO_23 LOGON_HRS.LEN: %08X -> %08X\n",pdb_get_hours_len(to),from->logon_hrs.len)); pdb_set_hours_len(to, from->logon_hrs.len); + DEBUG(15,("INFO_23 LOGON_HRS.HOURS: %s -> %s\n",pdb_get_hours(to),from->logon_hrs.hours)); pdb_set_hours(to, from->logon_hrs.hours); + DEBUG(10,("INFO_23 UNKOWN_5: %08X -> %08X\n",pdb_get_unknown5(to),from->unknown_5)); pdb_set_unknown_5(to, from->unknown_5); + + DEBUG(10,("INFO_23 UNKOWN_6: %08X -> %08X\n",pdb_get_unknown6(to),from->unknown_6)); pdb_set_unknown_6(to, from->unknown_6); + + DEBUG(10,("INFO_23 PADDING1 %02X %02X %02X %02X %02X %02X\n", + from->padding1[0], + from->padding1[1], + from->padding1[2], + from->padding1[3], + from->padding1[4], + from->padding1[5])); + + DEBUG(10,("INFO_23 PASS_MUST_CHANGE_AT_NEXT_LOGON: %02X\n",from->passmustchange)); + if (from->passmustchange==PASS_MUST_CHANGE_AT_NEXT_LOGON) { + pdb_set_pass_must_change_time(to,0, True); + } + + DEBUG(10,("INFO_23 PADDING_2: %02X\n",from->padding2)); + + DEBUG(10,("INFO_23 PADDING_4: %08X\n",from->padding4)); } + -- cgit From fc4100eabe702c99dd157044fff2587098b3075b Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Thu, 26 Sep 2002 10:31:51 +0000 Subject: forgot include file, sorry (This used to be commit 67d600ed8ed1cdd25503fdb2299bdfa93befee1f) --- source3/include/passdb.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/source3/include/passdb.h b/source3/include/passdb.h index 7a791ddac4..0c694987fe 100644 --- a/source3/include/passdb.h +++ b/source3/include/passdb.h @@ -49,21 +49,21 @@ typedef struct pdb_context /* These functions are wrappers for the functions listed above. They may do extra things like re-reading a SAM_ACCOUNT on update */ - BOOL (*pdb_setsampwent)(struct pdb_context *, BOOL update); + NTSTATUS (*pdb_setsampwent)(struct pdb_context *, BOOL update); void (*pdb_endsampwent)(struct pdb_context *); - BOOL (*pdb_getsampwent)(struct pdb_context *, SAM_ACCOUNT *user); + NTSTATUS (*pdb_getsampwent)(struct pdb_context *, SAM_ACCOUNT *user); - BOOL (*pdb_getsampwnam)(struct pdb_context *, SAM_ACCOUNT *sam_acct, const char *username); + NTSTATUS (*pdb_getsampwnam)(struct pdb_context *, SAM_ACCOUNT *sam_acct, const char *username); - BOOL (*pdb_getsampwsid)(struct pdb_context *, SAM_ACCOUNT *sam_acct, const DOM_SID *sid); + NTSTATUS (*pdb_getsampwsid)(struct pdb_context *, SAM_ACCOUNT *sam_acct, const DOM_SID *sid); - BOOL (*pdb_add_sam_account)(struct pdb_context *, SAM_ACCOUNT *sampass); + NTSTATUS (*pdb_add_sam_account)(struct pdb_context *, SAM_ACCOUNT *sampass); - BOOL (*pdb_update_sam_account)(struct pdb_context *, SAM_ACCOUNT *sampass); + NTSTATUS (*pdb_update_sam_account)(struct pdb_context *, SAM_ACCOUNT *sampass); - BOOL (*pdb_delete_sam_account)(struct pdb_context *, SAM_ACCOUNT *username); + NTSTATUS (*pdb_delete_sam_account)(struct pdb_context *, SAM_ACCOUNT *username); void (*free_fn)(struct pdb_context **); @@ -80,21 +80,21 @@ typedef struct pdb_methods struct pdb_methods *next; struct pdb_methods *prev; - BOOL (*setsampwent)(struct pdb_methods *, BOOL update); + NTSTATUS (*setsampwent)(struct pdb_methods *, BOOL update); void (*endsampwent)(struct pdb_methods *); - BOOL (*getsampwent)(struct pdb_methods *, SAM_ACCOUNT *user); + NTSTATUS (*getsampwent)(struct pdb_methods *, SAM_ACCOUNT *user); - BOOL (*getsampwnam)(struct pdb_methods *, SAM_ACCOUNT *sam_acct, const char *username); + NTSTATUS (*getsampwnam)(struct pdb_methods *, SAM_ACCOUNT *sam_acct, const char *username); - BOOL (*getsampwsid)(struct pdb_methods *, SAM_ACCOUNT *sam_acct, const DOM_SID *Sid); + NTSTATUS (*getsampwsid)(struct pdb_methods *, SAM_ACCOUNT *sam_acct, const DOM_SID *Sid); - BOOL (*add_sam_account)(struct pdb_methods *, SAM_ACCOUNT *sampass); + NTSTATUS (*add_sam_account)(struct pdb_methods *, SAM_ACCOUNT *sampass); - BOOL (*update_sam_account)(struct pdb_methods *, SAM_ACCOUNT *sampass); + NTSTATUS (*update_sam_account)(struct pdb_methods *, SAM_ACCOUNT *sampass); - BOOL (*delete_sam_account)(struct pdb_methods *, SAM_ACCOUNT *username); + NTSTATUS (*delete_sam_account)(struct pdb_methods *, SAM_ACCOUNT *username); void *private_data; /* Private data of some kind */ -- cgit From a5c8985215758d37bcd89f63b97f2ad86393f9c2 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Thu, 26 Sep 2002 13:31:49 +0000 Subject: Patch from "Kai Krueger" to get some more of our access control bits right on the SAMR pipe. Andrew Bartlett (This used to be commit e87948c777b59592b130da081ef5d25600455d29) --- source3/include/rpc_samr.h | 86 ++++++++++++++++++++-------------------- source3/rpc_server/srv_samr_nt.c | 19 +++++++-- 2 files changed, 58 insertions(+), 47 deletions(-) diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h index 72c65ebfb7..95e79b39ad 100644 --- a/source3/include/rpc_samr.h +++ b/source3/include/rpc_samr.h @@ -177,49 +177,49 @@ SamrTestPrivateFunctionsUser SAMR_ACCESS_UNKNOWN_1 ) /* Access bits to Domain-objects */ - -#define DOMAIN_ACCESS_LOOKUP_INFO_1 0x00000001 -#define DOMAIN_ACCESS_SET_INFO_1 0x00000002 -#define DOMAIN_ACCESS_LOOKUP_INFO_2 0x00000004 -#define DOMAIN_ACCESS_SET_INFO_2 0x00000008 -#define DOMAIN_ACCESS_CREATE_USER 0x00000010 -#define DOMAIN_ACCESS_CREATE_GROUP 0x00000020 -#define DOMAIN_ACCESS_CREATE_ALIAS 0x00000040 -#define DOMAIN_ACCESS_UNKNOWN_80 0x00000080 -#define DOMAIN_ACCESS_ENUM_ACCOUNTS 0x00000100 -#define DOMAIN_ACCESS_OPEN_ACCOUNT 0x00000200 -#define DOMAIN_ACCESS_SET_INFO_3 0x00000400 - -#define DOMAIN_ALL_ACCESS ( STANDARD_RIGHTS_REQUIRED_ACCESS | \ - DOMAIN_ACCESS_SET_INFO_3 | \ - DOMAIN_ACCESS_OPEN_ACCOUNT | \ - DOMAIN_ACCESS_ENUM_ACCOUNTS | \ - DOMAIN_ACCESS_UNKNOWN_80 | \ - DOMAIN_ACCESS_CREATE_ALIAS | \ - DOMAIN_ACCESS_CREATE_GROUP | \ - DOMAIN_ACCESS_CREATE_USER | \ - DOMAIN_ACCESS_SET_INFO_2 | \ - DOMAIN_ACCESS_LOOKUP_INFO_2 | \ - DOMAIN_ACCESS_SET_INFO_1 | \ - DOMAIN_ACCESS_LOOKUP_INFO_1 ) - -#define DOMAIN_READ ( STANDARD_RIGHTS_READ_ACCESS | \ - DOMAIN_ACCESS_UNKNOWN_80 | \ - DOMAIN_ACCESS_LOOKUP_INFO_2 ) - -#define DOMAIN_WRITE ( STANDARD_RIGHTS_WRITE_ACCESS | \ - DOMAIN_ACCESS_SET_INFO_3 | \ - DOMAIN_ACCESS_CREATE_ALIAS | \ - DOMAIN_ACCESS_CREATE_GROUP | \ - DOMAIN_ACCESS_CREATE_USER | \ - DOMAIN_ACCESS_SET_INFO_2 | \ - DOMAIN_ACCESS_SET_INFO_1 ) - -#define DOMAIN_EXECUTE ( STANDARD_RIGHTS_EXECUTE_ACCESS | \ - DOMAIN_ACCESS_OPEN_ACCOUNT | \ - DOMAIN_ACCESS_ENUM_ACCOUNTS | \ - DOMAIN_ACCESS_LOOKUP_INFO_1 ) - + +#define DOMAIN_ACCESS_LOOKUP_INFO_1 0x000000001 +#define DOMAIN_ACCESS_SET_INFO_1 0x000000002 +#define DOMAIN_ACCESS_LOOKUP_INFO_2 0x000000004 +#define DOMAIN_ACCESS_SET_INFO_2 0x000000008 +#define DOMAIN_ACCESS_CREATE_USER 0x000000010 +#define DOMAIN_ACCESS_CREATE_GROUP 0x000000020 +#define DOMAIN_ACCESS_CREATE_ALIAS 0x000000040 +#define DOMAIN_ACCESS_LOOKUP_ALIAS_BY_MEM 0x000000080 +#define DOMAIN_ACCESS_ENUM_ACCOUNTS 0x000000100 +#define DOMAIN_ACCESS_OPEN_ACCOUNT 0x000000200 +#define DOMAIN_ACCESS_SET_INFO_3 0x000000400 + +#define DOMAIN_ALL_ACCESS ( STANDARD_RIGHTS_REQUIRED_ACCESS | \ + DOMAIN_ACCESS_SET_INFO_3 | \ + DOMAIN_ACCESS_OPEN_ACCOUNT | \ + DOMAIN_ACCESS_ENUM_ACCOUNTS | \ + DOMAIN_ACCESS_LOOKUP_ALIAS_BY_MEM | \ + DOMAIN_ACCESS_CREATE_ALIAS | \ + DOMAIN_ACCESS_CREATE_GROUP | \ + DOMAIN_ACCESS_CREATE_USER | \ + DOMAIN_ACCESS_SET_INFO_2 | \ + DOMAIN_ACCESS_LOOKUP_INFO_2 | \ + DOMAIN_ACCESS_SET_INFO_1 | \ + DOMAIN_ACCESS_LOOKUP_INFO_1 ) + +#define DOMAIN_READ ( STANDARD_RIGHTS_READ_ACCESS | \ + DOMAIN_ACCESS_LOOKUP_ALIAS_BY_MEM | \ + DOMAIN_ACCESS_LOOKUP_INFO_2 ) + +#define DOMAIN_WRITE ( STANDARD_RIGHTS_WRITE_ACCESS | \ + DOMAIN_ACCESS_SET_INFO_3 | \ + DOMAIN_ACCESS_CREATE_ALIAS | \ + DOMAIN_ACCESS_CREATE_GROUP | \ + DOMAIN_ACCESS_CREATE_USER | \ + DOMAIN_ACCESS_SET_INFO_2 | \ + DOMAIN_ACCESS_SET_INFO_1 ) + +#define DOMAIN_EXECUTE ( STANDARD_RIGHTS_EXECUTE_ACCESS | \ + DOMAIN_ACCESS_OPEN_ACCOUNT | \ + DOMAIN_ACCESS_ENUM_ACCOUNTS | \ + DOMAIN_ACCESS_LOOKUP_INFO_1 ) + /* Access bits to User-objects */ #define USER_ACCESS_GET_NAME_ETC 0x00000001 diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c index 6e9ba2f026..c5a2c54511 100644 --- a/source3/rpc_server/srv_samr_nt.c +++ b/source3/rpc_server/srv_samr_nt.c @@ -3059,6 +3059,10 @@ NTSTATUS _samr_query_useraliases(pipes_struct *p, SAMR_Q_QUERY_USERALIASES *q_u, uint32 *rids=NULL, *new_rids=NULL, *tmp_rids=NULL; struct samr_info *info = NULL; int i,j; + + NTSTATUS ntstatus1; + NTSTATUS ntstatus2; + /* until i see a real useraliases query, we fack one up */ /* I have seen one, JFM 2/12/2001 */ @@ -3084,9 +3088,15 @@ NTSTATUS _samr_query_useraliases(pipes_struct *p, SAMR_Q_QUERY_USERALIASES *q_u, if (!find_policy_by_hnd(p, &q_u->pol, (void **)&info)) return NT_STATUS_INVALID_HANDLE; - if (!NT_STATUS_IS_OK(r_u->status = access_check_samr_function(info->acc_granted, USER_ACCESS_GET_GROUPS, "_samr_query_useraliases"))) { - return r_u->status; - } + ntstatus1 = access_check_samr_function(info->acc_granted, DOMAIN_ACCESS_LOOKUP_ALIAS_BY_MEM, "_samr_query_useraliases"); + ntstatus2 = access_check_samr_function(info->acc_granted, DOMAIN_ACCESS_OPEN_ACCOUNT, "_samr_query_useraliases"); + + if (!NT_STATUS_IS_OK(ntstatus1) || !NT_STATUS_IS_OK(ntstatus2)) { + if (!(NT_STATUS_EQUAL(ntstatus1,NT_STATUS_ACCESS_DENIED) && NT_STATUS_IS_OK(ntstatus2)) && + !(NT_STATUS_EQUAL(ntstatus1,NT_STATUS_ACCESS_DENIED) && NT_STATUS_IS_OK(ntstatus1))) { + return (NT_STATUS_IS_OK(ntstatus1)) ? ntstatus2 : ntstatus1; + } + } if (!sid_check_is_domain(&info->sid) && !sid_check_is_builtin(&info->sid)) @@ -3157,7 +3167,8 @@ NTSTATUS _samr_query_aliasmem(pipes_struct *p, SAMR_Q_QUERY_ALIASMEM *q_u, SAMR_ if (!get_lsa_policy_samr_sid(p, &q_u->alias_pol, &alias_sid, &acc_granted)) return NT_STATUS_INVALID_HANDLE; - if (!NT_STATUS_IS_OK(r_u->status = access_check_samr_function(acc_granted, ALIAS_ACCESS_GET_MEMBERS, "_samr_query_aliasmem"))) { + if (!NT_STATUS_IS_OK(r_u->status = + access_check_samr_function(acc_granted, ALIAS_ACCESS_GET_MEMBERS, "_samr_query_aliasmem"))) { return r_u->status; } -- cgit From 1de972299f3b86d6879e7ac9aad7f8208cc36337 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Thu, 26 Sep 2002 14:01:39 +0000 Subject: Add -r parameter to smbgroupedit. With -r you can manually choose a rid. Volker (This used to be commit 11ec785f3f43b277ae3f28b38865f4de972495bc) --- source3/utils/smbgroupedit.c | 47 ++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/source3/utils/smbgroupedit.c b/source3/utils/smbgroupedit.c index 4358e6f08c..cf5ac1f025 100644 --- a/source3/utils/smbgroupedit.c +++ b/source3/utils/smbgroupedit.c @@ -86,28 +86,17 @@ static BOOL get_sid_from_input(DOM_SID *sid, char *input) /********************************************************* add a group. **********************************************************/ -static int addgroup(char *group, enum SID_NAME_USE sid_type, char *ntgroup, char *ntcomment, char *privilege) +static int addgroup(gid_t gid, enum SID_NAME_USE sid_type, char *ntgroup, char *ntcomment, char *privilege, uint32 rid) { PRIVILEGE_SET se_priv; - gid_t gid; DOM_SID sid; fstring string_sid; - fstring name, comment; - - gid=nametogid(group); - if (gid==-1) { - printf("unix group %s doesn't exist!\n", group); - return -1; - } + fstring comment; - local_gid_to_sid(&sid, gid); - - sid_to_string(string_sid, &sid); + sid_copy(&sid, get_global_sam_sid()); + sid_append_rid(&sid, rid); - if (ntgroup==NULL) - fstrcpy(name, group); - else - fstrcpy(name, ntgroup); + sid_to_string(string_sid, &sid); if (ntcomment==NULL) fstrcpy(comment, "Local Unix group"); @@ -118,8 +107,9 @@ static int addgroup(char *group, enum SID_NAME_USE sid_type, char *ntgroup, char if (privilege!=NULL) convert_priv_from_text(&se_priv, privilege); - if(!add_initial_entry(gid, string_sid, sid_type, name, comment, se_priv, PR_ACCESS_FROM_NETWORK)) { - printf("adding entry for group %s failed!\n", group); + if(!add_initial_entry(gid, string_sid, sid_type, ntgroup, + comment, se_priv, PR_ACCESS_FROM_NETWORK)) { + printf("adding entry for group %s failed!\n", ntgroup); free_privilege(&se_priv); return -1; } @@ -276,6 +266,7 @@ int main (int argc, char **argv) char *group_desc = NULL; enum SID_NAME_USE sid_type; + uint32 rid = -1; setup_logging("groupedit", True); @@ -312,7 +303,7 @@ int main (int argc, char **argv) return 0; } - while ((ch = getopt(argc, argv, "a:c:d:ln:p:st:u:vx:")) != EOF) { + while ((ch = getopt(argc, argv, "a:c:d:ln:p:r:st:u:vx:")) != EOF) { switch(ch) { case 'a': add_group = True; @@ -336,6 +327,9 @@ int main (int argc, char **argv) priv = True; privilege=optarg; break; + case 'r': + rid = atoi(optarg); + break; case 's': long_list = False; break; @@ -392,8 +386,19 @@ int main (int argc, char **argv) } } - if (add_group) - return addgroup(group, sid_type, ntgroup, group_desc, privilege); + if (add_group) { + gid_t gid=nametogid(group); + if (gid==-1) { + printf("unix group %s doesn't exist!\n", group); + return -1; + } + + if (rid == -1) { + rid = pdb_gid_to_group_rid(gid); + } + return addgroup(gid, sid_type, ntgroup?ntgroup:group, + group_desc, privilege, rid); + } if (view_group) return listgroup(sid_type, long_list); -- cgit From 2ef81d751768ed1d17dfa5726af1ab8093af7810 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 26 Sep 2002 14:29:09 +0000 Subject: Make functions return NTSTATUS instead of BOOL (This used to be commit 6347d40eff03ad780446bdae0f1dfe0bc9edf824) --- examples/pdb/pdb_test.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/pdb/pdb_test.c b/examples/pdb/pdb_test.c index b46fe24bd6..c5ba094e42 100644 --- a/examples/pdb/pdb_test.c +++ b/examples/pdb/pdb_test.c @@ -32,10 +32,10 @@ PDB_MODULE_VERSIONING_MAGIC Start enumeration of the passwd list. ****************************************************************/ -static BOOL testsam_setsampwent(struct pdb_methods *methods, BOOL update) +static NTSTATUS testsam_setsampwent(struct pdb_methods *methods, BOOL update) { DEBUG(10, ("testsam_setsampwent called\n")); - return True; + return NT_STATUS_NOT_IMPLEMENTED; } /*************************************************************** @@ -51,60 +51,60 @@ static void testsam_endsampwent(struct pdb_methods *methods) Get one SAM_ACCOUNT from the list (next in line) *****************************************************************/ -static BOOL testsam_getsampwent(struct pdb_methods *methods, SAM_ACCOUNT *user) +static NTSTATUS testsam_getsampwent(struct pdb_methods *methods, SAM_ACCOUNT *user) { DEBUG(10, ("testsam_getsampwent called\n")); - return False; + return NT_STATUS_NOT_IMPLEMENTED; } /****************************************************************** Lookup a name in the SAM database ******************************************************************/ -static BOOL testsam_getsampwnam (struct pdb_methods *methods, SAM_ACCOUNT *user, const char *sname) +static NTSTATUS testsam_getsampwnam (struct pdb_methods *methods, SAM_ACCOUNT *user, const char *sname) { DEBUG(10, ("testsam_getsampwnam called\n")); - return False; + return NT_STATUS_NOT_IMPLEMENTED; } /*************************************************************************** Search by sid **************************************************************************/ -static BOOL testsam_getsampwsid (struct pdb_methods *methods, SAM_ACCOUNT *user, const DOM_SID *sid) +static NTSTATUS testsam_getsampwsid (struct pdb_methods *methods, SAM_ACCOUNT *user, const DOM_SID *sid) { DEBUG(10, ("testsam_getsampwsid called\n")); - return False; + return NT_STATUS_NOT_IMPLEMENTED; } /*************************************************************************** Delete a SAM_ACCOUNT ****************************************************************************/ -static BOOL testsam_delete_sam_account(struct pdb_methods *methods, SAM_ACCOUNT *sam_pass) +static NTSTATUS testsam_delete_sam_account(struct pdb_methods *methods, SAM_ACCOUNT *sam_pass) { DEBUG(10, ("testsam_delete_sam_account called\n")); - return False; + return NT_STATUS_NOT_IMPLEMENTED; } /*************************************************************************** Modifies an existing SAM_ACCOUNT ****************************************************************************/ -static BOOL testsam_update_sam_account (struct pdb_methods *methods, SAM_ACCOUNT *newpwd) +static NTSTATUS testsam_update_sam_account (struct pdb_methods *methods, SAM_ACCOUNT *newpwd) { DEBUG(10, ("testsam_update_sam_account called\n")); - return False; + return NT_STATUS_NOT_IMPLEMENTED; } /*************************************************************************** Adds an existing SAM_ACCOUNT ****************************************************************************/ -static BOOL testsam_add_sam_account (struct pdb_methods *methods, SAM_ACCOUNT *newpwd) +static NTSTATUS testsam_add_sam_account (struct pdb_methods *methods, SAM_ACCOUNT *newpwd) { DEBUG(10, ("testsam_add_sam_account called\n")); - return False; + return NT_STATUS_NOT_IMPLEMENTED; } NTSTATUS pdb_init(PDB_CONTEXT *pdb_context, PDB_METHODS **pdb_method, const char *location) -- cgit From f90e9ae2443fe3c1e72a8a8e751937a324c6dc87 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 26 Sep 2002 14:52:54 +0000 Subject: Change pdb_mysql function to return NTSTATUS (This used to be commit fa056769a08c93f086f05baf9095ee93217f92f1) --- examples/pdb/mysql/pdb_mysql.c | 141 ++++++++++++++++++++++------------------- 1 file changed, 76 insertions(+), 65 deletions(-) diff --git a/examples/pdb/mysql/pdb_mysql.c b/examples/pdb/mysql/pdb_mysql.c index 0cc1de6aaf..c73d3716fe 100644 --- a/examples/pdb/mysql/pdb_mysql.c +++ b/examples/pdb/mysql/pdb_mysql.c @@ -83,16 +83,16 @@ typedef struct pdb_mysql_query { #define SET_DATA(data,methods) { \ if(!methods){ \ DEBUG(0, ("invalid methods!\n")); \ - return False; \ + return NT_STATUS_INVALID_PARAMETER; \ } \ data = (struct pdb_mysql_data *)methods->private_data; \ if(!data || !(data->handle)){ \ DEBUG(0, ("invalid handle!\n")); \ - return False; \ + return NT_STATUS_INVALID_HANDLE; \ } \ } -void pdb_mysql_int_field(struct pdb_methods *m, +static void pdb_mysql_int_field(struct pdb_methods *m, struct pdb_mysql_query *q, char *name, int value) { if (!name || strchr(name, '\'')) @@ -110,21 +110,25 @@ void pdb_mysql_int_field(struct pdb_methods *m, } } -static BOOL pdb_mysql_string_field(struct pdb_methods *methods, +static NTSTATUS pdb_mysql_string_field(struct pdb_methods *methods, struct pdb_mysql_query *q, char *name, const char *value) { char *esc_value; struct pdb_mysql_data *data; + char *tmp_value; SET_DATA(data, methods); if (!name || !value || !strcmp(value, "") || strchr(name, '\'')) - return False; /* This field shouldn't be set by module */ + return NT_STATUS_INVALID_PARAMETER; /* This field shouldn't be set by module */ esc_value = malloc(strlen(value) * 2 + 1); - mysql_real_escape_string(data->handle, esc_value, (char *) value, - strlen(value)); + + tmp_value = smb_xstrdup(value); + mysql_real_escape_string(data->handle, esc_value, tmp_value, + strlen(tmp_value)); + SAFE_FREE(tmp_value); if (q->update) { q->part1 = @@ -140,7 +144,7 @@ static BOOL pdb_mysql_string_field(struct pdb_methods *methods, SAFE_FREE(esc_value); - return True; + return NT_STATUS_OK; } static char * config_value(pdb_mysql_data * data, char *name, char *default_value) @@ -153,46 +157,46 @@ static char * config_value(pdb_mysql_data * data, char *name, char *default_valu static char * config_value_write(pdb_mysql_data * data, char *name, char *default_value) { char *v = config_value(data, name, NULL); - char *write; + char *swrite; if (!v) return default_value; - write = strchr(v, ':'); + swrite = strchr(v, ':'); /* Default to the same field as read field */ - if (!write) + if (!swrite) return v; - write++; + swrite++; /* If the field is 0 chars long, we shouldn't write to it */ - if (!strlen(write) || !strcmp(write, "NULL")) + if (!strlen(swrite) || !strcmp(swrite, "NULL")) return NULL; /* Otherwise, use the additionally specified */ - return write; + return swrite; } static const char * config_value_read(pdb_mysql_data * data, char *name, char *default_value) { char *v = config_value(data, name, NULL); - char *write; + char *swrite; if (!v) return default_value; - write = strchr(v, ':'); + swrite = strchr(v, ':'); /* If no write is specified, there are no problems */ - if (!write) { + if (!swrite) { if (strlen(v) == 0) return "NULL"; return v; } /* Otherwise, we have to cut the ':write_part' */ - *write = '\0'; + *swrite = '\0'; if (strlen(v) == 0) return "NULL"; @@ -210,18 +214,17 @@ static long xatol(char *a) return ret; } -static BOOL row_to_sam_account(MYSQL_RES * r, SAM_ACCOUNT * u) +static NTSTATUS row_to_sam_account(MYSQL_RES * r, SAM_ACCOUNT * u) { MYSQL_ROW row; pstring temp; unsigned int num_fields; - unsigned long *lengths; DOM_SID sid; num_fields = mysql_num_fields(r); row = mysql_fetch_row(r); if (!row) - return False; + return NT_STATUS_INVALID_PARAMETER; pdb_set_logon_time(u, xatol(row[0]), FALSE); pdb_set_logoff_time(u, xatol(row[1]), FALSE); @@ -269,10 +272,10 @@ static BOOL row_to_sam_account(MYSQL_RES * r, SAM_ACCOUNT * u) pdb_set_unknown_5(u, xatol(row[29])); pdb_set_unknown_6(u, xatol(row[30])); - return True; + return NT_STATUS_OK; } -static BOOL mysqlsam_setsampwent(struct pdb_methods *methods, BOOL update) +static NTSTATUS mysqlsam_setsampwent(struct pdb_methods *methods, BOOL update) { struct pdb_mysql_data *data = (struct pdb_mysql_data *) methods->private_data; @@ -281,7 +284,7 @@ static BOOL mysqlsam_setsampwent(struct pdb_methods *methods, BOOL update) if (!data || !(data->handle)) { DEBUG(0, ("invalid handle!\n")); - return False; + return NT_STATUS_INVALID_HANDLE; } asprintf(&query, @@ -355,7 +358,7 @@ static BOOL mysqlsam_setsampwent(struct pdb_methods *methods, BOOL update) if (ret) { DEBUG(0, ("Error executing query: %s\n", mysql_error(data->handle))); - return False; + return NT_STATUS_UNSUCCESSFUL; } data->pwent = mysql_store_result(data->handle); @@ -363,14 +366,14 @@ static BOOL mysqlsam_setsampwent(struct pdb_methods *methods, BOOL update) if (data->pwent == NULL) { DEBUG(0, ("Error storing results: %s\n", mysql_error(data->handle))); - return False; + return NT_STATUS_UNSUCCESSFUL; } DEBUG(5, ("mysqlsam_setsampwent succeeded(%d results)!\n", mysql_num_fields(data->pwent))); - return True; + return NT_STATUS_OK; } /*************************************************************** @@ -399,7 +402,7 @@ static void mysqlsam_endsampwent(struct pdb_methods *methods) Get one SAM_ACCOUNT from the list (next in line) *****************************************************************/ -static BOOL mysqlsam_getsampwent(struct pdb_methods *methods, SAM_ACCOUNT * user) +static NTSTATUS mysqlsam_getsampwent(struct pdb_methods *methods, SAM_ACCOUNT * user) { struct pdb_mysql_data *data; @@ -407,41 +410,46 @@ static BOOL mysqlsam_getsampwent(struct pdb_methods *methods, SAM_ACCOUNT * user if (data->pwent == NULL) { DEBUG(0, ("invalid pwent\n")); - return False; + return NT_STATUS_INVALID_PARAMETER; } return row_to_sam_account(data->pwent, user); } -BOOL mysqlsam_select_by_field(struct pdb_methods * methods, SAM_ACCOUNT * user, +static NTSTATUS mysqlsam_select_by_field(struct pdb_methods * methods, SAM_ACCOUNT * user, const char *field, const char *sname) { char *esc_sname; char *query; - int ret; + NTSTATUS ret; MYSQL_RES *res; + int mysql_ret; struct pdb_mysql_data *data; + char *tmp_sname; SET_DATA(data, methods); esc_sname = malloc(strlen(sname) * 2 + 1); if (!esc_sname) { - DEBUG(0, ("Not enough memory available!\n")); - return False; + return NT_STATUS_NO_MEMORY; } DEBUG(5, ("mysqlsam_select_by_field: getting data where %s = %s(nonescaped)\n", field, sname)); + tmp_sname = smb_xstrdup(sname); + /* Escape sname */ - mysql_real_escape_string(data->handle, esc_sname, (char *) sname, - strlen(sname)); + mysql_real_escape_string(data->handle, esc_sname, tmp_sname, + strlen(tmp_sname)); + + SAFE_FREE(tmp_sname); if (user == NULL) { DEBUG(0, ("pdb_getsampwnam: SAM_ACCOUNT is NULL.\n")); SAFE_FREE(esc_sname); - return False; + return NT_STATUS_INVALID_PARAMETER; } asprintf(&query, @@ -511,22 +519,22 @@ BOOL mysqlsam_select_by_field(struct pdb_methods * methods, SAM_ACCOUNT * user, SAFE_FREE(esc_sname); - ret = mysql_query(data->handle, query); + mysql_ret = mysql_query(data->handle, query); SAFE_FREE(query); - if (ret) { + if (mysql_ret) { DEBUG(0, ("Error while executing MySQL query: %s\n", mysql_error(data->handle))); - return False; + return NT_STATUS_UNSUCCESSFUL; } res = mysql_store_result(data->handle); if (res == NULL) { DEBUG(0, ("Error storing results: %s\n", mysql_error(data->handle))); - return False; + return NT_STATUS_UNSUCCESSFUL; } ret = row_to_sam_account(res, user); @@ -539,7 +547,7 @@ BOOL mysqlsam_select_by_field(struct pdb_methods * methods, SAM_ACCOUNT * user, Lookup a name in the SAM database ******************************************************************/ -static BOOL mysqlsam_getsampwnam(struct pdb_methods *methods, SAM_ACCOUNT * user, +static NTSTATUS mysqlsam_getsampwnam(struct pdb_methods *methods, SAM_ACCOUNT * user, const char *sname) { struct pdb_mysql_data *data; @@ -548,8 +556,9 @@ static BOOL mysqlsam_getsampwnam(struct pdb_methods *methods, SAM_ACCOUNT * user if (!sname) { DEBUG(0, ("invalid name specified")); - return False; + return NT_STATUS_INVALID_PARAMETER; } + return mysqlsam_select_by_field(methods, user, config_value_read(data, "username column", CONFIG_USERNAME_DEFAULT), sname); @@ -560,10 +569,9 @@ static BOOL mysqlsam_getsampwnam(struct pdb_methods *methods, SAM_ACCOUNT * user Search by sid **************************************************************************/ -static BOOL mysqlsam_getsampwsid(struct pdb_methods *methods, SAM_ACCOUNT * user, +static NTSTATUS mysqlsam_getsampwsid(struct pdb_methods *methods, SAM_ACCOUNT * user, const DOM_SID * sid) { - BOOL ret = False; struct pdb_mysql_data *data; fstring sid_str; @@ -571,19 +579,16 @@ static BOOL mysqlsam_getsampwsid(struct pdb_methods *methods, SAM_ACCOUNT * user sid_to_string(sid_str, sid); - ret = - mysqlsam_select_by_field(methods, user, + return mysqlsam_select_by_field(methods, user, config_value_read(data, "user sid column", CONFIG_USER_SID_DEFAULT), sid_str); - - return ret; } /*************************************************************************** Delete a SAM_ACCOUNT ****************************************************************************/ -static BOOL mysqlsam_delete_sam_account(struct pdb_methods *methods, +static NTSTATUS mysqlsam_delete_sam_account(struct pdb_methods *methods, SAM_ACCOUNT * sam_pass) { const char *sname = pdb_get_username(sam_pass); @@ -591,33 +596,39 @@ static BOOL mysqlsam_delete_sam_account(struct pdb_methods *methods, char *query; int ret; struct pdb_mysql_data *data; + char *tmp_sname; SET_DATA(data, methods); if (!methods) { DEBUG(0, ("invalid methods!\n")); - return False; + return NT_STATUS_INVALID_PARAMETER; } data = (struct pdb_mysql_data *) methods->private_data; if (!data || !(data->handle)) { DEBUG(0, ("invalid handle!\n")); - return False; + return NT_STATUS_INVALID_HANDLE; } if (!sname) { DEBUG(0, ("invalid name specified\n")); - return False; + return NT_STATUS_INVALID_PARAMETER; } /* Escape sname */ esc = malloc(strlen(sname) * 2 + 1); if (!esc) { DEBUG(0, ("Can't allocate memory to store escaped name\n")); - return False; + return NT_STATUS_NO_MEMORY; } - mysql_real_escape_string(data->handle, esc, (char *) sname, - strlen(sname)); + + tmp_sname = smb_xstrdup(sname); + + mysql_real_escape_string(data->handle, esc, tmp_sname, + strlen(tmp_sname)); + + SAFE_FREE(tmp_sname); asprintf(&query, "DELETE FROM %s WHERE %s = '%s'", config_value(data, "table", CONFIG_TABLE_DEFAULT), @@ -634,14 +645,14 @@ static BOOL mysqlsam_delete_sam_account(struct pdb_methods *methods, DEBUG(0, ("Error while executing query: %s\n", mysql_error(data->handle))); - return False; + return NT_STATUS_UNSUCCESSFUL; } DEBUG(5, ("User '%s' deleted\n", sname)); - return True; + return NT_STATUS_OK; } -static BOOL mysqlsam_replace_sam_account(struct pdb_methods *methods, +static NTSTATUS mysqlsam_replace_sam_account(struct pdb_methods *methods, const SAM_ACCOUNT * newpwd, char isupdate) { pstring temp; @@ -652,13 +663,13 @@ static BOOL mysqlsam_replace_sam_account(struct pdb_methods *methods, if (!methods) { DEBUG(0, ("invalid methods!\n")); - return False; + return NT_STATUS_INVALID_PARAMETER; } data = (struct pdb_mysql_data *) methods->private_data; if (data == NULL || data->handle == NULL) { DEBUG(0, ("invalid handle!\n")); - return False; + return NT_STATUS_INVALID_HANDLE; } query.update = isupdate; @@ -867,18 +878,18 @@ static BOOL mysqlsam_replace_sam_account(struct pdb_methods *methods, DEBUG(0, ("Error executing %s, %s\n", query.part1, mysql_error(data->handle))); - return False; + return NT_STATUS_INVALID_PARAMETER; } talloc_destroy(query.mem_ctx); - return True; + return NT_STATUS_OK; } -static BOOL mysqlsam_add_sam_account(struct pdb_methods *methods, SAM_ACCOUNT * newpwd) +static NTSTATUS mysqlsam_add_sam_account(struct pdb_methods *methods, SAM_ACCOUNT * newpwd) { return mysqlsam_replace_sam_account(methods, newpwd, 0); } -static BOOL mysqlsam_update_sam_account(struct pdb_methods *methods, +static NTSTATUS mysqlsam_update_sam_account(struct pdb_methods *methods, SAM_ACCOUNT * newpwd) { return mysqlsam_replace_sam_account(methods, newpwd, 1); @@ -931,7 +942,7 @@ NTSTATUS pdb_init(PDB_CONTEXT * pdb_context, PDB_METHODS ** pdb_method, data->location = smb_xstrdup(location); DEBUG(1, - ("Connecting to database server, host: %s, user: %s, password: %s, database: %s, port: %d\n", + ("Connecting to database server, host: %s, user: %s, password: %s, database: %s, port: %ld\n", config_value(data, "mysql host", CONFIG_HOST_DEFAULT), config_value(data, "mysql user", CONFIG_USER_DEFAULT), config_value(data, "mysql password", CONFIG_PASS_DEFAULT), -- cgit From 791d9e8facb221d0532922a39f83ca06f84e99f2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 26 Sep 2002 15:03:26 +0000 Subject: Change pdb_xml functions to return NTSTATUS (This used to be commit 834fcd23959ed202a84069bf19390103f563540c) --- examples/pdb/xml/pdb_xml.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/examples/pdb/xml/pdb_xml.c b/examples/pdb/xml/pdb_xml.c index 17261873cd..5de27bc6e2 100644 --- a/examples/pdb/xml/pdb_xml.c +++ b/examples/pdb/xml/pdb_xml.c @@ -287,23 +287,24 @@ xmlNodePtr parseSambaXMLFile(struct pdb_xml *data) return cur; } -static BOOL xmlsam_setsampwent(struct pdb_methods *methods, BOOL update) +static NTSTATUS xmlsam_setsampwent(struct pdb_methods *methods, BOOL update) { pdb_xml *data; if (!methods) { DEBUG(0, ("Invalid methods\n")); - return False; + return NT_STATUS_INVALID_PARAMETER; } data = (pdb_xml *) methods->private_data; if (!data) { DEBUG(0, ("Invalid pdb_xml_data\n")); - return False; + return NT_STATUS_INVALID_PARAMETER; } data->pwent = parseSambaXMLFile(data); if (!data->pwent) - return False; - return True; + return NT_STATUS_UNSUCCESSFUL; + + return NT_STATUS_OK; } /*************************************************************** @@ -335,19 +336,19 @@ static void xmlsam_endsampwent(struct pdb_methods *methods) Get one SAM_ACCOUNT from the list (next in line) *****************************************************************/ -static BOOL xmlsam_getsampwent(struct pdb_methods *methods, SAM_ACCOUNT * user) +static NTSTATUS xmlsam_getsampwent(struct pdb_methods *methods, SAM_ACCOUNT * user) { pdb_xml *data; if (!methods) { DEBUG(0, ("Invalid methods\n")); - return False; + return NT_STATUS_INVALID_PARAMETER; } data = (pdb_xml *) methods->private_data; if (!data) { DEBUG(0, ("Invalid pdb_xml_data\n")); - return False; + return NT_STATUS_INVALID_PARAMETER; } while (data->pwent) { @@ -356,18 +357,18 @@ static BOOL xmlsam_getsampwent(struct pdb_methods *methods, SAM_ACCOUNT * user) parseUser(data->doc, data->ns, data->pwent, user); data->pwent = data->pwent->next; - return True; + return NT_STATUS_OK; } data->pwent = data->pwent->next; } - return False; + return NT_STATUS_UNSUCCESSFUL; } /*************************************************************************** Adds an existing SAM_ACCOUNT ****************************************************************************/ -static BOOL xmlsam_add_sam_account(struct pdb_methods *methods, SAM_ACCOUNT * u) +static NTSTATUS xmlsam_add_sam_account(struct pdb_methods *methods, SAM_ACCOUNT * u) { pstring temp; fstring sid_str; @@ -379,13 +380,13 @@ static BOOL xmlsam_add_sam_account(struct pdb_methods *methods, SAM_ACCOUNT * u) if (!methods) { DEBUG(0, ("Invalid methods\n")); - return False; + return NT_STATUS_INVALID_PARAMETER; } data = (pdb_xml *) methods->private_data; if (!data) { DEBUG(0, ("Invalid pdb_xml_data\n")); - return False; + return NT_STATUS_INVALID_PARAMETER; } /* Create a new document if we can't open the current one */ @@ -504,7 +505,7 @@ static BOOL xmlsam_add_sam_account(struct pdb_methods *methods, SAM_ACCOUNT * u) xmlNewChild(user, data->ns, "unknown_6", iota(pdb_get_unknown6(u))); xmlSaveFile(data->location, data->doc); - return True; + return NT_STATUS_OK; } NTSTATUS pdb_init(PDB_CONTEXT * pdb_context, PDB_METHODS ** pdb_method, -- cgit From 30b24caae99cef03fc363a7ae1dd77ebab19657a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 26 Sep 2002 15:11:47 +0000 Subject: Don't define PASS_MUST_CHANGE_AT_NEXT_LOGON twice.. (This used to be commit cae3705b9a03e36137439e24667dcf2e5e9643fc) --- source3/include/rpc_samr.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h index 95e79b39ad..6b537715b8 100644 --- a/source3/include/rpc_samr.h +++ b/source3/include/rpc_samr.h @@ -314,9 +314,6 @@ SamrTestPrivateFunctionsUser #define ALIAS_EXECUTE ( STANDARD_RIGHTS_EXECUTE_ACCESS | \ ALIAS_ACCESS_LOOKUP_INFO ) -/* A flag for the user info 21 and 23 structs */ -#define PASS_MUST_CHANGE_AT_NEXT_LOGON 1 - typedef struct _DISP_USER_INFO { SAM_ACCOUNT *sam; } DISP_USER_INFO; -- cgit From 6fa655c039b14283bccbe7da36a8c58813637b79 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 26 Sep 2002 15:20:11 +0000 Subject: Fix segfault in sam_context_enum_domains - reported by Kai (This used to be commit 1430473d3fdcc8e711fe483b84dfeefa6bd54905) --- source3/sam/interface.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source3/sam/interface.c b/source3/sam/interface.c index 320e39dbb4..0943a0e8f1 100644 --- a/source3/sam/interface.c +++ b/source3/sam/interface.c @@ -317,6 +317,7 @@ NTSTATUS context_sam_lookup_domain(const SAM_CONTEXT *context, const NT_USER_TOK while (tmp_methods) { if (strcmp(domain, tmp_methods->domain_name) == 0) { + (*domainsid) = (DOM_SID *)malloc(sizeof(DOM_SID)); sid_copy((*domainsid), &tmp_methods->domain_sid); return NT_STATUS_OK; } -- cgit From 17b074ca921b065ea51fde4c81781411c631dc31 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Thu, 26 Sep 2002 18:57:58 +0000 Subject: sync with SAMBA_3_0 (This used to be commit 284c515dbd36d49081c1cdf9b2b9a60bf7a22ae4) --- WHATSNEW.txt | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) diff --git a/WHATSNEW.txt b/WHATSNEW.txt index 53467f85db..a77a9bd167 100644 --- a/WHATSNEW.txt +++ b/WHATSNEW.txt @@ -1,6 +1,168 @@ WHATS NEW IN Samba 3.0 alphaX ============================= +Changes in alpha20 + - Rework the 'guest account get's RID 501' code again... + - Change ito use NT-based session key negotiated for Win2k SPNEGO + - Support printer data registry keys other than the default + PrinterDriverData + - Moved internal printerdata to REGISTRY_VALUE object + - Corrected bug in dependentfiles list of DRIVER_INFO_3 + - fixed logic bug in blocking locks code + - Updated registry api code to work with new printer data key + support + - Added vfstest tool + - round lock timeouts in lockingX upwards to multiples of 1 second + - Fixed bugs in Printer Change Notify code + - added a 'net ads lookup' command that does a CLDAP NetLogon + query to a win2000 server + - Added script to find undocumented smb.conf parameters + - Added missing parameters to smb.conf(5) + - receive & parse main CLDAP reply from win2k server + - removed "admin log" & "alternate permissions" parameters from smb.conf + - added a generic print_guid utility, and get the byte order handing + - fixed memory corruption in cli_full_connection() + - remove unused 'max packet' and 'packet size' options + - add support for the "value,OID" format described in MSDN for Printer + Data values + - moves NT_TOKEN generation into our authenticaion code + - Update documentation build system + - Several fixes for IRIX compiler + - Correctly handle "max data count" value in smb transacts + - Fix for permissions error when adding/modifying using a Print + server handle + - Fix pam_smbpass to always check the return value of pdb_getsampwnam() + - Use the 'init' flag to determine if the UID is set, rather than testing + the uid for -1 + - Cope with non-unix accounts - we just won't get the groups for those users + - Add 'net rpc getsid' to fetch the PDC's SID into the local secrets.tdb. + Print domain SID on 'net rpc info' + - don't use lp_passwd_file() to retrieve NIS domain name, but use location + instead + - Various POSIX compatbility fixes + - Show only non-default values in testparm + - Fix longstanding bug in Win2k clients by clearing the shortname + buffer before returning ascii short name. + - Add example backtrace script + - Added NETLOGON NetServerAuthenticate3 include and parser file + - fix for difference in strsep and strtok semantics in nmbd + - Ensure we don't change to a user that we can't get an NT_TOKEN for + - Put back in BDC support in set_server_role() + - added a 'net rpc samdump' command for dumping the whole sam via + samsync operations (as a BDC) + - don't use spnego in the client unless enabled in smb.conf + - Added some new delta types discovered by Ronnie from ethereal + - Cope with negative cache dns entries better + - do not expose special files, only files, directories and links + - attempts to simplify Samba's external lib dependencies + - support non-root-mode systems without getgrouplist() + - Some fixes for SMB signing + - Pass the object name down to the enum_printers client rpc + - add the netatalk VFS module + - Ensure we have at least smb_size bytes before processing a packet + - Allow us to "lock" printer tdb entries in memory to stop them being + re-used as cache + - fix 2 byte alignment/offset bug that prevented Win2k/XP clients + from receiving all the printer data in EnumPrinterDataEx() + - Add option to compile new sam system can be enabled with the + configure option --with-sam + - Added SGML/DocBook version of developer oriented docs to build process + - Return correct FILE_SUPERSEDED response + - Added example sam module (skeleton) + - Add plugin support for the sam system (based on passdb code) + - show builtin groups in samdump + - Adding samtest utility used to test sam backends + - fix connecting to a BDC when the PDC is down but in WINS and no bcast + can be used to find a BDC + - convert the LDAP/SASL code to use GSS-SPNEGO if possible + - added cli_net_auth_3 client code + - merge of phant0m key fix from APP_HEAD + - allow rpcclient's samlogon command to use cli_net_3() + - Added attribute specific OPEN tests + - Fix bug with stat mode open being done on read-only open with + truncate + - Add lots of const casts to function parameters + - Implemented some more client side spoolss functions + - usrmgr expects unicode as ProductType + - Change JOB_INFO_CTR to return a pointer to an array rather than array of + pointers in client code + - Varios NTLMSSP fixes + - fixed crash bug in cli_connection code + - DeletePrinterDriver[Ex]() fixes from APP_HEAD + - remove some inet_aton() calls for portability + - Set default ACB attributes on 'unixsam' accounts + - Add bcast_msg_flags to connection struct + - aggregate change notify events in the smbd sender and when transmitting + - Added better error code on out of space in printer spool directory + - Removed total jobs check - not applicable any more + - fixed bug in share enumeration RPC code + - extend the ADS_STATUS system to include NTSTATUS + - commit trusted domain patch n+3 + - remove block VFS module + - restrict readline headers to readline.c + - merge of various recycle bin VFS patches + - Winbind client-side cleanups + - change parametric option name to vfs_recycle_bin it is more + sane and do not pollute standard options namespace too much + - added --enable-python configure option for building the samba-python + unit tests + - correct trans2 bugs in client for enumerating files/directories + - Readd OS/2 EA error codes + - Added patch for required attributes in directory listsing to reply code + - Fix browse synchronization bug by noticing that W2K DMB's return empty + NetServerEnum2 on port 445, but not on port 139 + - Fix semantics of AbortPrinter() spoolss call in server code + - Ensure we've failed a lock with a lock denied message before automatically + pushing it onto the blocking queue + - Added experimental sendfile code + - Initialise user_rid value in WINBIND_USERINFO structure returned by + the rpc version of query_user() + - added gencache implementation + - Merge the cli_shutdown change from 2_2 + - Fixes for DeletePrinterDriverEx() + - Fixed alignment error in spoolss code + - Changed Major/Minor version info reported to Server Manager to 4.9 + - Applied new display mode FLAGS for SWAT + - Update to add DEVELOPER option to more parameters + - Added --with-ads option, defaults to yes + - Added --with-ldap option to configure + - Add clock skew handling to our kerberos code + - correct race condition in password change code for out machine account + when a member of a domain + - First implementation for 'net rpc vampire' + - store current handle's Device Mode with print job + - Move functionality to check whether entries for lp_workgroup() and + "BUILTIN" exist and add them if necessary from check_correct_backend_entries + into sam_context_check_default_backends + - allow --with-krb5 to override the location of the kerberos libs on + redhat + - unlink spool file after submitting rint job when using CUPS api + - Add framework for samtest commands + - Add the ability to view/set the current local domain SIDs to net command + - When creating a group you have to take care of the fact that the + underlying unix might not like the group name + - Don't uppercase the username and domain in a session setup + - Merge of "profile acls" code from SAMBA_2_2 + - Check for existing of security descriptor in PRINTER_INFO_2 structure + in rpc client code + - Move to common user token debugging, and ensure we always print both the + NT_TOKEN and the unix credentials + - If adding a user to ldap, make sure we have the 'account' structural class, + or else we can't add to OpenLDAP 2.1 + - Kill of Get_Pwnam_Modify and smb_getpwnam() + - add a 'ldap passwd sync' option to smb.conf + - Whenever we deal with adding machine/trusted domain accounts, always reset + the flag to what we expect + - Fix the circular dependency that was preventing 'domain master = auto' (the + default) from working + - move all the passdb internal interface to NTSTATUS + - to expand % values (ie we go \\%L\%U -> \\server\user, we don't want to + store \\server\user back) and to correctly notice 'not set' compared to 'null + string' etc. + - get some more of our access control bits right on the SAMR pipe + - Add -r parameter to smbgroupedit. With -r you can manually choose + a rid + Changes in alpha19 - Virtual registry framework with printing hooks (jerry) - Heavy registry updates (jerry) -- cgit From e8db73d3ad23789a4156c173082da9cf38f99018 Mon Sep 17 00:00:00 2001 From: Samba Release Account Date: Thu, 26 Sep 2002 19:45:29 +0000 Subject: preparing for release of 3.0alpha20 (This used to be commit ba8b6c8e31ad5f15a0cfa9d28d9b8692c3473a42) --- WHATSNEW.txt | 18 +++++++++--------- source3/include/version.h | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/WHATSNEW.txt b/WHATSNEW.txt index a77a9bd167..21e5c4d03c 100644 --- a/WHATSNEW.txt +++ b/WHATSNEW.txt @@ -2,8 +2,8 @@ ============================= Changes in alpha20 - - Rework the 'guest account get's RID 501' code again... - - Change ito use NT-based session key negotiated for Win2k SPNEGO + - Rework the 'guest account gets RID 501' code again... + - Change to use NT-based session key negotiated for Win2k SPNEGO - Support printer data registry keys other than the default PrinterDriverData - Moved internal printerdata to REGISTRY_VALUE object @@ -25,7 +25,7 @@ Changes in alpha20 - remove unused 'max packet' and 'packet size' options - add support for the "value,OID" format described in MSDN for Printer Data values - - moves NT_TOKEN generation into our authenticaion code + - moves NT_TOKEN generation into our authentication code - Update documentation build system - Several fixes for IRIX compiler - Correctly handle "max data count" value in smb transacts @@ -39,7 +39,7 @@ Changes in alpha20 Print domain SID on 'net rpc info' - don't use lp_passwd_file() to retrieve NIS domain name, but use location instead - - Various POSIX compatbility fixes + - Various POSIX compatibility fixes - Show only non-default values in testparm - Fix longstanding bug in Win2k clients by clearing the shortname buffer before returning ascii short name. @@ -86,7 +86,7 @@ Changes in alpha20 - usrmgr expects unicode as ProductType - Change JOB_INFO_CTR to return a pointer to an array rather than array of pointers in client code - - Varios NTLMSSP fixes + - Various NTLMSSP fixes - fixed crash bug in cli_connection code - DeletePrinterDriver[Ex]() fixes from APP_HEAD - remove some inet_aton() calls for portability @@ -107,15 +107,15 @@ Changes in alpha20 - added --enable-python configure option for building the samba-python unit tests - correct trans2 bugs in client for enumerating files/directories - - Readd OS/2 EA error codes - - Added patch for required attributes in directory listsing to reply code + - Re-add OS/2 EA error codes + - Added patch for required attributes in directory listings to reply code - Fix browse synchronization bug by noticing that W2K DMB's return empty NetServerEnum2 on port 445, but not on port 139 - Fix semantics of AbortPrinter() spoolss call in server code - Ensure we've failed a lock with a lock denied message before automatically pushing it onto the blocking queue - Added experimental sendfile code - - Initialise user_rid value in WINBIND_USERINFO structure returned by + - Initialize user_rid value in WINBIND_USERINFO structure returned by the rpc version of query_user() - added gencache implementation - Merge the cli_shutdown change from 2_2 @@ -136,7 +136,7 @@ Changes in alpha20 into sam_context_check_default_backends - allow --with-krb5 to override the location of the kerberos libs on redhat - - unlink spool file after submitting rint job when using CUPS api + - unlink spool file after submitting print job when using CUPS api - Add framework for samtest commands - Add the ability to view/set the current local domain SIDs to net command - When creating a group you have to take care of the fact that the diff --git a/source3/include/version.h b/source3/include/version.h index 87e3673a7f..27f67c589c 100644 --- a/source3/include/version.h +++ b/source3/include/version.h @@ -1 +1 @@ -#define VERSION "3.0-alpha19" +#define VERSION "3.0alpha20" -- cgit From 0923e13b0fe154ab92e2972dc0767dacf6c768f9 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Thu, 26 Sep 2002 20:38:20 +0000 Subject: add -r to usage output (This used to be commit a6ec9af7e38b1b937eba7003f130d662d5bde035) --- source3/utils/smbgroupedit.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source3/utils/smbgroupedit.c b/source3/utils/smbgroupedit.c index cf5ac1f025..35285452a0 100644 --- a/source3/utils/smbgroupedit.c +++ b/source3/utils/smbgroupedit.c @@ -52,6 +52,7 @@ static void usage(void) printf(" -c SID change group\n"); printf(" -u unix group\n"); printf(" -d description group description\n"); + printf(" -r rid RID of new group\n") printf(" -x group delete this group\n"); printf("\n"); printf(" -t[b|d|l] type: builtin, domain, local \n"); -- cgit From 996fc282489434b85366c6d4c0e046e032e47a1a Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Thu, 26 Sep 2002 20:39:53 +0000 Subject: tagging version as post3.0-HEAD to differentiate from the SAMBA_3_0 branch. (This used to be commit 0962a2f74f89b684a5f333126fed2b6a7fc0b454) --- source3/include/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source3/include/version.h b/source3/include/version.h index 27f67c589c..c0a1c702f2 100644 --- a/source3/include/version.h +++ b/source3/include/version.h @@ -1 +1 @@ -#define VERSION "3.0alpha20" +#define VERSION "post3.0-HEAD" -- cgit From c60f6f066ea47f7d85fc8028f9d657cfe5841893 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 26 Sep 2002 21:00:25 +0000 Subject: Make explicit the difference between a tdb key with no data attached, and a non existent entry. Stop a malloc(0) being called in the first case. Jeremy. (This used to be commit ece9507ec3d363fccf56b000ad9758780a9b3fb4) --- source3/tdb/tdb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/source3/tdb/tdb.c b/source3/tdb/tdb.c index 5bb75ffe07..4143ac7781 100644 --- a/source3/tdb/tdb.c +++ b/source3/tdb/tdb.c @@ -1048,6 +1048,12 @@ static int tdb_update(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf) } /* find an entry in the database given a key */ +/* If an entry doesn't exist tdb_err will be set to + * TDB_ERR_NOEXIST. If a key has no data attached + * tdb_err will not be set. Both will return a + * zero pptr and zero dsize. + */ + TDB_DATA tdb_fetch(TDB_CONTEXT *tdb, TDB_DATA key) { tdb_off rec_ptr; @@ -1058,8 +1064,11 @@ TDB_DATA tdb_fetch(TDB_CONTEXT *tdb, TDB_DATA key) if (!(rec_ptr = tdb_find_lock(tdb,key,F_RDLCK,&rec))) return tdb_null; - ret.dptr = tdb_alloc_read(tdb, rec_ptr + sizeof(rec) + rec.key_len, - rec.data_len); + if (rec.data_len) + ret.dptr = tdb_alloc_read(tdb, rec_ptr + sizeof(rec) + rec.key_len, + rec.data_len); + else + ret.dptr = NULL; ret.dsize = rec.data_len; tdb_unlock(tdb, BUCKET(rec.full_hash), F_RDLCK); return ret; -- cgit From 9e7a6d6b8b4f5bf38d6faa2fca211657fc8b2959 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 27 Sep 2002 01:02:37 +0000 Subject: Readd the 2.2 --with-ldapsam paramaters so as to allow a smooth upgrade path to a 3.0 based PDC. Change defaults to use SSL, so that this also matches. Andrew Bartlett (This used to be commit 36c2a3820faa1d90cd331881720be0e61ab93460) --- source3/configure | 1687 ++++++++++++++++++++++--------------------- source3/configure.in | 17 + source3/include/config.h.in | 2 +- source3/param/loadparm.c | 18 + source3/passdb/pdb_ldap.c | 23 +- 5 files changed, 912 insertions(+), 835 deletions(-) diff --git a/source3/configure b/source3/configure index 538f44621c..d0753f2027 100755 --- a/source3/configure +++ b/source3/configure @@ -62,6 +62,8 @@ ac_help="$ac_help --with-pam_smbpass Build a PAM module to allow other applications to use our smbpasswd file (default=no)" ac_help="$ac_help --with-sam Build new (experimental) SAM database (default=no)" +ac_help="$ac_help + --with-ldapsam Include LDAP SAM 2.2 compatible configuration (default=no)" ac_help="$ac_help --with-tdbsam Include experimental TDB SAM support (default=no)" ac_help="$ac_help @@ -824,7 +826,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:828: checking for $ac_word" >&5 +echo "configure:830: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -854,7 +856,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:858: checking for $ac_word" >&5 +echo "configure:860: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -905,7 +907,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:909: checking for $ac_word" >&5 +echo "configure:911: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -937,7 +939,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:941: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:943: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -948,12 +950,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 952 "configure" +#line 954 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -979,12 +981,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:983: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:985: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:988: checking whether we are using GNU C" >&5 +echo "configure:990: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -993,7 +995,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:997: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:999: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1012,7 +1014,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1016: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1018: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1074,7 +1076,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1078: checking for a BSD compatible install" >&5 +echo "configure:1080: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1131,7 +1133,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1135: checking for $ac_word" >&5 +echo "configure:1137: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1163,7 +1165,7 @@ done LD=ld echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 -echo "configure:1167: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:1169: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1179,7 +1181,7 @@ echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 -echo "configure:1183: checking for POSIXized ISC" >&5 +echo "configure:1185: checking for POSIXized ISC" >&5 if test -d /etc/conf/kconfig.d && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 then @@ -1202,10 +1204,10 @@ fi if test "x$CC" != xcc; then echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6 -echo "configure:1206: checking whether $CC and cc understand -c and -o together" >&5 +echo "configure:1208: checking whether $CC and cc understand -c and -o together" >&5 else echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6 -echo "configure:1209: checking whether cc understands -c and -o together" >&5 +echo "configure:1211: checking whether cc understands -c and -o together" >&5 fi set dummy $CC; ac_cc="`echo $2 | sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`" @@ -1217,16 +1219,16 @@ else # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5' -if { (eval echo configure:1221: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && - test -f conftest.o && { (eval echo configure:1222: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; +if { (eval echo configure:1223: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && + test -f conftest.o && { (eval echo configure:1224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. - if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1227: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1229: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then ac_try='cc -c conftest.c -o conftest.o 1>&5' - if { (eval echo configure:1229: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && - test -f conftest.o && { (eval echo configure:1230: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; + if { (eval echo configure:1231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && + test -f conftest.o && { (eval echo configure:1232: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; then # cc works too. : @@ -1260,20 +1262,20 @@ fi echo $ac_n "checking that the C compiler understands volatile""... $ac_c" 1>&6 -echo "configure:1264: checking that the C compiler understands volatile" >&5 +echo "configure:1266: checking that the C compiler understands volatile" >&5 if eval "test \"`echo '$''{'samba_cv_volatile'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { volatile int i = 0 ; return 0; } EOF -if { (eval echo configure:1277: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_volatile=yes else @@ -1322,7 +1324,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:1326: checking host system type" >&5 +echo "configure:1328: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -1343,7 +1345,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:1347: checking target system type" >&5 +echo "configure:1349: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -1361,7 +1363,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:1365: checking build system type" >&5 +echo "configure:1367: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -1395,7 +1397,7 @@ esac echo $ac_n "checking config.cache system type""... $ac_c" 1>&6 -echo "configure:1399: checking config.cache system type" >&5 +echo "configure:1401: checking config.cache system type" >&5 if { test x"${ac_cv_host_system_type+set}" = x"set" && test x"$ac_cv_host_system_type" != x"$host"; } || { test x"${ac_cv_build_system_type+set}" = x"set" && @@ -1423,7 +1425,7 @@ case "$host_os" in *hpux*) echo $ac_n "checking whether ${CC-cc} accepts -Ae""... $ac_c" 1>&6 -echo "configure:1427: checking whether ${CC-cc} accepts -Ae" >&5 +echo "configure:1429: checking whether ${CC-cc} accepts -Ae" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_Ae'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1584,14 +1586,14 @@ EOF *sysv4*) if test $host = mips-sni-sysv4 ; then echo $ac_n "checking for LFS support""... $ac_c" 1>&6 -echo "configure:1588: checking for LFS support" >&5 +echo "configure:1590: checking for LFS support" >&5 old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS" if test "$cross_compiling" = yes; then SINIX_LFS_SUPPORT=cross else cat > conftest.$ac_ext < @@ -1603,7 +1605,7 @@ exit(1); #endif } EOF -if { (eval echo configure:1607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then SINIX_LFS_SUPPORT=yes else @@ -1634,14 +1636,14 @@ EOF # *linux*) echo $ac_n "checking for LFS support""... $ac_c" 1>&6 -echo "configure:1638: checking for LFS support" >&5 +echo "configure:1640: checking for LFS support" >&5 old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS" if test "$cross_compiling" = yes; then LINUX_LFS_SUPPORT=cross else cat > conftest.$ac_ext < @@ -1679,7 +1681,7 @@ main() { } EOF -if { (eval echo configure:1683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then LINUX_LFS_SUPPORT=yes else @@ -1712,14 +1714,14 @@ EOF *hurd*) echo $ac_n "checking for LFS support""... $ac_c" 1>&6 -echo "configure:1716: checking for LFS support" >&5 +echo "configure:1718: checking for LFS support" >&5 old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS" if test "$cross_compiling" = yes; then GLIBC_LFS_SUPPORT=cross else cat > conftest.$ac_ext < @@ -1731,7 +1733,7 @@ exit(1); #endif } EOF -if { (eval echo configure:1735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then GLIBC_LFS_SUPPORT=yes else @@ -1761,21 +1763,21 @@ EOF esac echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:1765: checking for inline" >&5 +echo "configure:1767: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1781: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -1801,7 +1803,7 @@ EOF esac echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1805: checking how to run the C preprocessor" >&5 +echo "configure:1807: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1816,13 +1818,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1826: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1828: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1833,13 +1835,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1843: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1845: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1850,13 +1852,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1860: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1881,12 +1883,12 @@ fi echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1885: checking for ANSI C header files" >&5 +echo "configure:1887: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1894,7 +1896,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1898: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1900: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1911,7 +1913,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1929,7 +1931,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1950,7 +1952,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -1961,7 +1963,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:1965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -1989,12 +1991,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:1993: checking for $ac_hdr that defines DIR" >&5 +echo "configure:1995: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> @@ -2002,7 +2004,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:2006: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -2027,7 +2029,7 @@ done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:2031: checking for opendir in -ldir" >&5 +echo "configure:2033: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2035,7 +2037,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2068,7 +2070,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:2072: checking for opendir in -lx" >&5 +echo "configure:2074: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2076,7 +2078,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2110,12 +2112,12 @@ fi fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:2114: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:2116: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2124,7 +2126,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:2128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -2145,12 +2147,12 @@ EOF fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:2149: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:2151: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2166,7 +2168,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:2170: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2172: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -2190,17 +2192,17 @@ for ac_hdr in arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2194: checking for $ac_hdr" >&5 +echo "configure:2196: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2204: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2206: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2230,17 +2232,17 @@ for ac_hdr in unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2234: checking for $ac_hdr" >&5 +echo "configure:2236: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2244: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2246: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2270,17 +2272,17 @@ for ac_hdr in compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2274: checking for $ac_hdr" >&5 +echo "configure:2276: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2284: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2286: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2310,17 +2312,17 @@ for ac_hdr in sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc. do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2314: checking for $ac_hdr" >&5 +echo "configure:2316: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2326: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2350,17 +2352,17 @@ for ac_hdr in sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h std do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2354: checking for $ac_hdr" >&5 +echo "configure:2356: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2364: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2366: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2390,17 +2392,17 @@ for ac_hdr in sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h term do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2394: checking for $ac_hdr" >&5 +echo "configure:2396: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2404: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2406: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2430,17 +2432,17 @@ for ac_hdr in sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2434: checking for $ac_hdr" >&5 +echo "configure:2436: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2444: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2446: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2470,17 +2472,17 @@ for ac_hdr in security/pam_modules.h security/_pam_macros.h ldap.h lber.h dlfcn. do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2474: checking for $ac_hdr" >&5 +echo "configure:2476: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2484: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2486: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2510,17 +2512,17 @@ for ac_hdr in sys/syslog.h syslog.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2514: checking for $ac_hdr" >&5 +echo "configure:2516: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2524: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2554,14 +2556,14 @@ done case "$host_os" in *hpux*) cat > conftest.$ac_ext < int main() { struct spwd testme ; return 0; } EOF -if { (eval echo configure:2565: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2567: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_shadow_h=yes else @@ -2583,17 +2585,17 @@ for ac_hdr in shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2587: checking for $ac_hdr" >&5 +echo "configure:2589: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2597: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2599: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2623,17 +2625,17 @@ for ac_hdr in nss.h nss_common.h ns_api.h sys/security.h security/pam_appl.h sec do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2627: checking for $ac_hdr" >&5 +echo "configure:2629: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2637: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2639: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2663,17 +2665,17 @@ for ac_hdr in stropts.h poll.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2667: checking for $ac_hdr" >&5 +echo "configure:2669: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2677: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2679: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2703,17 +2705,17 @@ for ac_hdr in sys/capability.h syscall.h sys/syscall.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2707: checking for $ac_hdr" >&5 +echo "configure:2709: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2717: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2719: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2743,17 +2745,17 @@ for ac_hdr in sys/acl.h sys/cdefs.h glob.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2747: checking for $ac_hdr" >&5 +echo "configure:2749: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2757: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2759: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2785,17 +2787,17 @@ for ac_hdr in utmp.h utmpx.h lastlog.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2789: checking for $ac_hdr" >&5 +echo "configure:2791: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2799: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2801: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2827,17 +2829,17 @@ for ac_hdr in sys/fs/vx_quota.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2831: checking for $ac_hdr" >&5 +echo "configure:2833: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2841: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2843: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2869,17 +2871,17 @@ for ac_hdr in linux/xqm.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2873: checking for $ac_hdr" >&5 +echo "configure:2875: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2883: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2885: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2907,7 +2909,7 @@ done echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:2911: checking size of int" >&5 +echo "configure:2913: checking size of int" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2915,7 +2917,7 @@ else ac_cv_sizeof_int=cross else cat > conftest.$ac_ext < int main() @@ -2926,7 +2928,7 @@ int main() return(0); } EOF -if { (eval echo configure:2930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_int=`cat conftestval` else @@ -2946,7 +2948,7 @@ EOF echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:2950: checking size of long" >&5 +echo "configure:2952: checking size of long" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2954,7 +2956,7 @@ else ac_cv_sizeof_long=cross else cat > conftest.$ac_ext < int main() @@ -2965,7 +2967,7 @@ int main() return(0); } EOF -if { (eval echo configure:2969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_long=`cat conftestval` else @@ -2985,7 +2987,7 @@ EOF echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:2989: checking size of short" >&5 +echo "configure:2991: checking size of short" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2993,7 +2995,7 @@ else ac_cv_sizeof_short=cross else cat > conftest.$ac_ext < int main() @@ -3004,7 +3006,7 @@ int main() return(0); } EOF -if { (eval echo configure:3008: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_sizeof_short=`cat conftestval` else @@ -3025,12 +3027,12 @@ EOF echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:3029: checking for working const" >&5 +echo "configure:3031: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -3100,21 +3102,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:3104: checking for inline" >&5 +echo "configure:3106: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -3140,14 +3142,14 @@ EOF esac echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:3144: checking whether byte ordering is bigendian" >&5 +echo "configure:3146: checking whether byte ordering is bigendian" >&5 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext < #include @@ -3158,11 +3160,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:3162: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3164: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext < #include @@ -3173,7 +3175,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:3177: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3179: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -3193,7 +3195,7 @@ if test "$cross_compiling" = yes; then { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_bigendian=no else @@ -3230,14 +3232,14 @@ EOF fi echo $ac_n "checking whether char is unsigned""... $ac_c" 1>&6 -echo "configure:3234: checking whether char is unsigned" >&5 +echo "configure:3236: checking whether char is unsigned" >&5 if eval "test \"`echo '$''{'ac_cv_c_char_unsigned'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$GCC" = yes; then # GCC predefines this symbol on systems where it applies. cat > conftest.$ac_ext <&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3275: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_char_unsigned=yes else @@ -3294,12 +3296,12 @@ fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3298: checking return type of signal handlers" >&5 +echo "configure:3300: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -3316,7 +3318,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:3320: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -3335,12 +3337,12 @@ EOF echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:3339: checking for uid_t in sys/types.h" >&5 +echo "configure:3341: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -3369,12 +3371,12 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:3373: checking for mode_t" >&5 +echo "configure:3375: checking for mode_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3402,12 +3404,12 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3406: checking for off_t" >&5 +echo "configure:3408: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3435,12 +3437,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3439: checking for size_t" >&5 +echo "configure:3441: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3468,12 +3470,12 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:3472: checking for pid_t" >&5 +echo "configure:3474: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3501,12 +3503,12 @@ EOF fi echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6 -echo "configure:3505: checking for st_rdev in struct stat" >&5 +echo "configure:3507: checking for st_rdev in struct stat" >&5 if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -3514,7 +3516,7 @@ int main() { struct stat s; s.st_rdev; ; return 0; } EOF -if { (eval echo configure:3518: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3520: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_st_rdev=yes else @@ -3535,12 +3537,12 @@ EOF fi echo $ac_n "checking for d_off in dirent""... $ac_c" 1>&6 -echo "configure:3539: checking for d_off in dirent" >&5 +echo "configure:3541: checking for d_off in dirent" >&5 if eval "test \"`echo '$''{'ac_cv_dirent_d_off'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -3550,7 +3552,7 @@ int main() { struct dirent d; d.d_off; ; return 0; } EOF -if { (eval echo configure:3554: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_dirent_d_off=yes else @@ -3571,12 +3573,12 @@ EOF fi echo $ac_n "checking for ino_t""... $ac_c" 1>&6 -echo "configure:3575: checking for ino_t" >&5 +echo "configure:3577: checking for ino_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ino_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3604,12 +3606,12 @@ EOF fi echo $ac_n "checking for loff_t""... $ac_c" 1>&6 -echo "configure:3608: checking for loff_t" >&5 +echo "configure:3610: checking for loff_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_loff_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3637,12 +3639,12 @@ EOF fi echo $ac_n "checking for offset_t""... $ac_c" 1>&6 -echo "configure:3641: checking for offset_t" >&5 +echo "configure:3643: checking for offset_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_offset_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3670,12 +3672,12 @@ EOF fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:3674: checking for ssize_t" >&5 +echo "configure:3676: checking for ssize_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3703,12 +3705,12 @@ EOF fi echo $ac_n "checking for wchar_t""... $ac_c" 1>&6 -echo "configure:3707: checking for wchar_t" >&5 +echo "configure:3709: checking for wchar_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_wchar_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3750,7 +3752,7 @@ if test x$enable_cups != xno; then # Extract the first word of "cups-config", so it can be a program name with args. set dummy cups-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3754: checking for $ac_word" >&5 +echo "configure:3756: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_CUPS_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3799,12 +3801,12 @@ fi for ac_func in dlopen do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3803: checking for $ac_func" >&5 +echo "configure:3805: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3853,7 +3855,7 @@ done if test x"$ac_cv_func_dlopen" = x"no"; then echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:3857: checking for dlopen in -ldl" >&5 +echo "configure:3859: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3861,7 +3863,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3902,13 +3904,13 @@ fi ############################################ # check if the compiler can do immediate structures echo $ac_n "checking for immediate structures""... $ac_c" 1>&6 -echo "configure:3906: checking for immediate structures" >&5 +echo "configure:3908: checking for immediate structures" >&5 if eval "test \"`echo '$''{'samba_cv_immediate_structures'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -3926,7 +3928,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3930: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3932: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_immediate_structures=yes else @@ -3949,13 +3951,13 @@ fi ############################################ # check for unix domain sockets echo $ac_n "checking for unix domain sockets""... $ac_c" 1>&6 -echo "configure:3953: checking for unix domain sockets" >&5 +echo "configure:3955: checking for unix domain sockets" >&5 if eval "test \"`echo '$''{'samba_cv_unixsocket'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -3970,7 +3972,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3974: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3976: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_unixsocket=yes else @@ -3992,13 +3994,13 @@ fi echo $ac_n "checking for socklen_t type""... $ac_c" 1>&6 -echo "configure:3996: checking for socklen_t type" >&5 +echo "configure:3998: checking for socklen_t type" >&5 if eval "test \"`echo '$''{'samba_cv_socklen_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4011,7 +4013,7 @@ int main() { socklen_t i = 0 ; return 0; } EOF -if { (eval echo configure:4015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_socklen_t=yes else @@ -4032,13 +4034,13 @@ EOF fi echo $ac_n "checking for sig_atomic_t type""... $ac_c" 1>&6 -echo "configure:4036: checking for sig_atomic_t type" >&5 +echo "configure:4038: checking for sig_atomic_t type" >&5 if eval "test \"`echo '$''{'samba_cv_sig_atomic_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4051,7 +4053,7 @@ int main() { sig_atomic_t i = 0 ; return 0; } EOF -if { (eval echo configure:4055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_sig_atomic_t=yes else @@ -4074,20 +4076,20 @@ fi # stupid headers have the functions but no declaration. grrrr. echo $ac_n "checking for errno declaration""... $ac_c" 1>&6 -echo "configure:4078: checking for errno declaration" >&5 +echo "configure:4080: checking for errno declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_errno_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { int i = (int)errno ; return 0; } EOF -if { (eval echo configure:4091: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4093: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_errno_decl=yes else @@ -4109,20 +4111,20 @@ EOF echo $ac_n "checking for setresuid declaration""... $ac_c" 1>&6 -echo "configure:4113: checking for setresuid declaration" >&5 +echo "configure:4115: checking for setresuid declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_setresuid_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { int i = (int)setresuid ; return 0; } EOF -if { (eval echo configure:4126: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_setresuid_decl=yes else @@ -4144,20 +4146,20 @@ EOF echo $ac_n "checking for setresgid declaration""... $ac_c" 1>&6 -echo "configure:4148: checking for setresgid declaration" >&5 +echo "configure:4150: checking for setresgid declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_setresgid_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { int i = (int)setresgid ; return 0; } EOF -if { (eval echo configure:4161: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4163: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_setresgid_decl=yes else @@ -4179,20 +4181,20 @@ EOF echo $ac_n "checking for asprintf declaration""... $ac_c" 1>&6 -echo "configure:4183: checking for asprintf declaration" >&5 +echo "configure:4185: checking for asprintf declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_asprintf_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { int i = (int)asprintf ; return 0; } EOF -if { (eval echo configure:4196: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_asprintf_decl=yes else @@ -4214,20 +4216,20 @@ EOF echo $ac_n "checking for vasprintf declaration""... $ac_c" 1>&6 -echo "configure:4218: checking for vasprintf declaration" >&5 +echo "configure:4220: checking for vasprintf declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_vasprintf_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { int i = (int)vasprintf ; return 0; } EOF -if { (eval echo configure:4231: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4233: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_vasprintf_decl=yes else @@ -4249,20 +4251,20 @@ EOF echo $ac_n "checking for vsnprintf declaration""... $ac_c" 1>&6 -echo "configure:4253: checking for vsnprintf declaration" >&5 +echo "configure:4255: checking for vsnprintf declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_vsnprintf_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { int i = (int)vsnprintf ; return 0; } EOF -if { (eval echo configure:4266: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_vsnprintf_decl=yes else @@ -4284,20 +4286,20 @@ EOF echo $ac_n "checking for snprintf declaration""... $ac_c" 1>&6 -echo "configure:4288: checking for snprintf declaration" >&5 +echo "configure:4290: checking for snprintf declaration" >&5 if eval "test \"`echo '$''{'ac_cv_have_snprintf_decl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { int i = (int)snprintf ; return 0; } EOF -if { (eval echo configure:4301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4303: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_have_snprintf_decl=yes else @@ -4321,7 +4323,7 @@ EOF # and glibc has setresuid under linux but the function does # nothing until kernel 2.1.44! very dumb. echo $ac_n "checking for real setresuid""... $ac_c" 1>&6 -echo "configure:4325: checking for real setresuid" >&5 +echo "configure:4327: checking for real setresuid" >&5 if eval "test \"`echo '$''{'samba_cv_have_setresuid'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4330,12 +4332,12 @@ else samba_cv_have_setresuid=cross else cat > conftest.$ac_ext < main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);} EOF -if { (eval echo configure:4339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_have_setresuid=yes else @@ -4360,7 +4362,7 @@ fi # Do the same check for setresguid... # echo $ac_n "checking for real setresgid""... $ac_c" 1>&6 -echo "configure:4364: checking for real setresgid" >&5 +echo "configure:4366: checking for real setresgid" >&5 if eval "test \"`echo '$''{'samba_cv_have_setresgid'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4369,13 +4371,13 @@ else samba_cv_have_setresgid=cross else cat > conftest.$ac_ext < #include main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);} EOF -if { (eval echo configure:4379: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_have_setresgid=yes else @@ -4398,7 +4400,7 @@ EOF fi echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:4402: checking for 8-bit clean memcmp" >&5 +echo "configure:4404: checking for 8-bit clean memcmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4406,7 +4408,7 @@ else ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else @@ -4439,12 +4441,12 @@ test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4443: checking for $ac_func" >&5 +echo "configure:4445: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4493,7 +4495,7 @@ done if test x"$ac_cv_func_crypt" = x"no"; then echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:4497: checking for crypt in -lcrypt" >&5 +echo "configure:4499: checking for crypt in -lcrypt" >&5 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4501,7 +4503,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcrypt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4545,7 +4547,7 @@ test "${with_readline+set}" != "set" && with_readline=yes # test for where we get readline() from echo $ac_n "checking whether to use readline""... $ac_c" 1>&6 -echo "configure:4549: checking whether to use readline" >&5 +echo "configure:4551: checking whether to use readline" >&5 # Check whether --with-readline or --without-readline was given. if test "${with_readline+set}" = set; then withval="$with_readline" @@ -4557,17 +4559,17 @@ if test "${with_readline+set}" = set; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4561: checking for $ac_hdr" >&5 +echo "configure:4563: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4571: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4597,17 +4599,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4601: checking for $ac_hdr" >&5 +echo "configure:4603: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4611: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4613: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4638,17 +4640,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4642: checking for $ac_hdr" >&5 +echo "configure:4644: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4652: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4654: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4671,7 +4673,7 @@ EOF for termlib in ncurses curses termcap terminfo termlib; do echo $ac_n "checking for tgetent in -l${termlib}""... $ac_c" 1>&6 -echo "configure:4675: checking for tgetent in -l${termlib}" >&5 +echo "configure:4677: checking for tgetent in -l${termlib}" >&5 ac_lib_var=`echo ${termlib}'_'tgetent | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4679,7 +4681,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l${termlib} $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4712,7 +4714,7 @@ fi done echo $ac_n "checking for rl_callback_handler_install in -lreadline""... $ac_c" 1>&6 -echo "configure:4716: checking for rl_callback_handler_install in -lreadline" >&5 +echo "configure:4718: checking for rl_callback_handler_install in -lreadline" >&5 ac_lib_var=`echo readline'_'rl_callback_handler_install | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4720,7 +4722,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lreadline $TERMLIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4782,17 +4784,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4786: checking for $ac_hdr" >&5 +echo "configure:4788: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4796: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4798: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4822,17 +4824,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4826: checking for $ac_hdr" >&5 +echo "configure:4828: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4836: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4838: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4863,17 +4865,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4867: checking for $ac_hdr" >&5 +echo "configure:4869: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4877: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4879: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4896,7 +4898,7 @@ EOF for termlib in ncurses curses termcap terminfo termlib; do echo $ac_n "checking for tgetent in -l${termlib}""... $ac_c" 1>&6 -echo "configure:4900: checking for tgetent in -l${termlib}" >&5 +echo "configure:4902: checking for tgetent in -l${termlib}" >&5 ac_lib_var=`echo ${termlib}'_'tgetent | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4904,7 +4906,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l${termlib} $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4937,7 +4939,7 @@ fi done echo $ac_n "checking for rl_callback_handler_install in -lreadline""... $ac_c" 1>&6 -echo "configure:4941: checking for rl_callback_handler_install in -lreadline" >&5 +echo "configure:4943: checking for rl_callback_handler_install in -lreadline" >&5 ac_lib_var=`echo readline'_'rl_callback_handler_install | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4945,7 +4947,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lreadline $TERMLIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5006,7 +5008,7 @@ fi # code will generate warnings on one of them unless we have a few # special cases. echo $ac_n "checking for rl_completion_matches in -lreadline""... $ac_c" 1>&6 -echo "configure:5010: checking for rl_completion_matches in -lreadline" >&5 +echo "configure:5012: checking for rl_completion_matches in -lreadline" >&5 ac_lib_var=`echo readline'_'rl_completion_matches | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5014,7 +5016,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lreadline $TERMLIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5058,12 +5060,12 @@ fi for ac_func in connect do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5062: checking for $ac_func" >&5 +echo "configure:5064: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5114,7 +5116,7 @@ if test x"$ac_cv_func_connect" = x"no"; then case "$LIBS" in *-lnsl*) ;; *) echo $ac_n "checking for printf in -lnsl_s""... $ac_c" 1>&6 -echo "configure:5118: checking for printf in -lnsl_s" >&5 +echo "configure:5120: checking for printf in -lnsl_s" >&5 ac_lib_var=`echo nsl_s'_'printf | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5122,7 +5124,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl_s $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5139: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5164,7 +5166,7 @@ fi case "$LIBS" in *-lnsl*) ;; *) echo $ac_n "checking for printf in -lnsl""... $ac_c" 1>&6 -echo "configure:5168: checking for printf in -lnsl" >&5 +echo "configure:5170: checking for printf in -lnsl" >&5 ac_lib_var=`echo nsl'_'printf | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5172,7 +5174,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5214,7 +5216,7 @@ fi case "$LIBS" in *-lsocket*) ;; *) echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 -echo "configure:5218: checking for connect in -lsocket" >&5 +echo "configure:5220: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5222,7 +5224,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5264,7 +5266,7 @@ fi case "$LIBS" in *-linet*) ;; *) echo $ac_n "checking for connect in -linet""... $ac_c" 1>&6 -echo "configure:5268: checking for connect in -linet" >&5 +echo "configure:5270: checking for connect in -linet" >&5 ac_lib_var=`echo inet'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5272,7 +5274,7 @@ else ac_save_LIBS="$LIBS" LIBS="-linet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5327,12 +5329,12 @@ fi for ac_func in yp_get_default_domain do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5331: checking for $ac_func" >&5 +echo "configure:5333: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5381,7 +5383,7 @@ done if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then echo $ac_n "checking for yp_get_default_domain in -lnsl""... $ac_c" 1>&6 -echo "configure:5385: checking for yp_get_default_domain in -lnsl" >&5 +echo "configure:5387: checking for yp_get_default_domain in -lnsl" >&5 ac_lib_var=`echo nsl'_'yp_get_default_domain | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5389,7 +5391,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5430,12 +5432,12 @@ fi for ac_func in execl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5434: checking for $ac_func" >&5 +echo "configure:5436: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5491,12 +5493,12 @@ fi for ac_func in dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5495: checking for $ac_func" >&5 +echo "configure:5497: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5546,12 +5548,12 @@ done for ac_func in fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5550: checking for $ac_func" >&5 +echo "configure:5552: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5601,12 +5603,12 @@ done for ac_func in memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5605: checking for $ac_func" >&5 +echo "configure:5607: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5656,12 +5658,12 @@ done for ac_func in strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5660: checking for $ac_func" >&5 +echo "configure:5662: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5711,12 +5713,12 @@ done for ac_func in initgroups select poll rdchk getgrnam getgrent pathconf realpath do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5715: checking for $ac_func" >&5 +echo "configure:5717: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5766,12 +5768,12 @@ done for ac_func in setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5770: checking for $ac_func" >&5 +echo "configure:5772: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5821,12 +5823,12 @@ done for ac_func in lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5825: checking for $ac_func" >&5 +echo "configure:5827: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5876,12 +5878,12 @@ done for ac_func in fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5880: checking for $ac_func" >&5 +echo "configure:5882: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5931,12 +5933,12 @@ done for ac_func in srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5935: checking for $ac_func" >&5 +echo "configure:5937: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5986,12 +5988,12 @@ done for ac_func in syslog vsyslog getgrouplist do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5990: checking for $ac_func" >&5 +echo "configure:5992: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6042,12 +6044,12 @@ done for ac_func in setbuffer do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6046: checking for $ac_func" >&5 +echo "configure:6048: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6099,12 +6101,12 @@ done for ac_func in syscall do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6103: checking for $ac_func" >&5 +echo "configure:6105: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6155,12 +6157,12 @@ done for ac_func in _dup _dup2 _opendir _readdir _seekdir _telldir _closedir do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6159: checking for $ac_func" >&5 +echo "configure:6161: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6210,12 +6212,12 @@ done for ac_func in __dup __dup2 __opendir __readdir __seekdir __telldir __closedir do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6214: checking for $ac_func" >&5 +echo "configure:6216: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6265,12 +6267,12 @@ done for ac_func in __getcwd _getcwd do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6269: checking for $ac_func" >&5 +echo "configure:6271: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6320,12 +6322,12 @@ done for ac_func in __xstat __fxstat __lxstat do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6324: checking for $ac_func" >&5 +echo "configure:6326: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6375,12 +6377,12 @@ done for ac_func in _stat _lstat _fstat __stat __lstat __fstat do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6379: checking for $ac_func" >&5 +echo "configure:6381: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6430,12 +6432,12 @@ done for ac_func in _acl __acl _facl __facl _open __open _chdir __chdir do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6434: checking for $ac_func" >&5 +echo "configure:6436: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6485,12 +6487,12 @@ done for ac_func in _close __close _fchdir __fchdir _fcntl __fcntl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6489: checking for $ac_func" >&5 +echo "configure:6491: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6540,12 +6542,12 @@ done for ac_func in getdents _getdents __getdents _lseek __lseek _read __read do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6544: checking for $ac_func" >&5 +echo "configure:6546: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6595,12 +6597,12 @@ done for ac_func in _write __write _fork __fork do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6599: checking for $ac_func" >&5 +echo "configure:6601: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6629: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6650,12 +6652,12 @@ done for ac_func in _stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6654: checking for $ac_func" >&5 +echo "configure:6656: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6705,12 +6707,12 @@ done for ac_func in __sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6709: checking for $ac_func" >&5 +echo "configure:6711: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6760,12 +6762,12 @@ done for ac_func in pread _pread __pread pread64 _pread64 __pread64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6764: checking for $ac_func" >&5 +echo "configure:6766: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6794: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6815,12 +6817,12 @@ done for ac_func in pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6819: checking for $ac_func" >&5 +echo "configure:6821: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6870,12 +6872,12 @@ done for ac_func in open64 _open64 __open64 creat64 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6874: checking for $ac_func" >&5 +echo "configure:6876: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6904: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6929,9 +6931,9 @@ done if test x$ac_cv_func_stat64 = xno ; then echo $ac_n "checking for stat64 in ""... $ac_c" 1>&6 -echo "configure:6933: checking for stat64 in " >&5 +echo "configure:6935: checking for stat64 in " >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_stat64=yes else @@ -6962,9 +6964,9 @@ fi if test x$ac_cv_func_lstat64 = xno ; then echo $ac_n "checking for lstat64 in ""... $ac_c" 1>&6 -echo "configure:6966: checking for lstat64 in " >&5 +echo "configure:6968: checking for lstat64 in " >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_lstat64=yes else @@ -6995,9 +6997,9 @@ fi if test x$ac_cv_func_fstat64 = xno ; then echo $ac_n "checking for fstat64 in ""... $ac_c" 1>&6 -echo "configure:6999: checking for fstat64 in " >&5 +echo "configure:7001: checking for fstat64 in " >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_fstat64=yes else @@ -7029,7 +7031,7 @@ fi ##################################### # we might need the resolv library on some systems echo $ac_n "checking for dn_expand in -lresolv""... $ac_c" 1>&6 -echo "configure:7033: checking for dn_expand in -lresolv" >&5 +echo "configure:7035: checking for dn_expand in -lresolv" >&5 ac_lib_var=`echo resolv'_'dn_expand | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7037,7 +7039,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lresolv $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7086,12 +7088,12 @@ case "$LIBS" in *-lsecurity*) for ac_func in putprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7090: checking for $ac_func" >&5 +echo "configure:7092: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7139,7 +7141,7 @@ fi done ;; *) echo $ac_n "checking for putprpwnam in -lsecurity""... $ac_c" 1>&6 -echo "configure:7143: checking for putprpwnam in -lsecurity" >&5 +echo "configure:7145: checking for putprpwnam in -lsecurity" >&5 ac_lib_var=`echo security'_'putprpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7147,7 +7149,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsecurity $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7188,12 +7190,12 @@ fi for ac_func in putprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7192: checking for $ac_func" >&5 +echo "configure:7194: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7247,12 +7249,12 @@ case "$LIBS" in *-lsec*) for ac_func in putprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7251: checking for $ac_func" >&5 +echo "configure:7253: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7300,7 +7302,7 @@ fi done ;; *) echo $ac_n "checking for putprpwnam in -lsec""... $ac_c" 1>&6 -echo "configure:7304: checking for putprpwnam in -lsec" >&5 +echo "configure:7306: checking for putprpwnam in -lsec" >&5 ac_lib_var=`echo sec'_'putprpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7308,7 +7310,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsec $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7349,12 +7351,12 @@ fi for ac_func in putprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7353: checking for $ac_func" >&5 +echo "configure:7355: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7383: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7409,12 +7411,12 @@ case "$LIBS" in *-lsecurity*) for ac_func in set_auth_parameters do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7413: checking for $ac_func" >&5 +echo "configure:7415: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7462,7 +7464,7 @@ fi done ;; *) echo $ac_n "checking for set_auth_parameters in -lsecurity""... $ac_c" 1>&6 -echo "configure:7466: checking for set_auth_parameters in -lsecurity" >&5 +echo "configure:7468: checking for set_auth_parameters in -lsecurity" >&5 ac_lib_var=`echo security'_'set_auth_parameters | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7470,7 +7472,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsecurity $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7511,12 +7513,12 @@ fi for ac_func in set_auth_parameters do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7515: checking for $ac_func" >&5 +echo "configure:7517: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7570,12 +7572,12 @@ case "$LIBS" in *-lsec*) for ac_func in set_auth_parameters do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7574: checking for $ac_func" >&5 +echo "configure:7576: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7623,7 +7625,7 @@ fi done ;; *) echo $ac_n "checking for set_auth_parameters in -lsec""... $ac_c" 1>&6 -echo "configure:7627: checking for set_auth_parameters in -lsec" >&5 +echo "configure:7629: checking for set_auth_parameters in -lsec" >&5 ac_lib_var=`echo sec'_'set_auth_parameters | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7631,7 +7633,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsec $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7672,12 +7674,12 @@ fi for ac_func in set_auth_parameters do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7676: checking for $ac_func" >&5 +echo "configure:7678: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7733,12 +7735,12 @@ case "$LIBS" in *-lgen*) for ac_func in getspnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7737: checking for $ac_func" >&5 +echo "configure:7739: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7786,7 +7788,7 @@ fi done ;; *) echo $ac_n "checking for getspnam in -lgen""... $ac_c" 1>&6 -echo "configure:7790: checking for getspnam in -lgen" >&5 +echo "configure:7792: checking for getspnam in -lgen" >&5 ac_lib_var=`echo gen'_'getspnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7794,7 +7796,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgen $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7835,12 +7837,12 @@ fi for ac_func in getspnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7839: checking for $ac_func" >&5 +echo "configure:7841: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7895,12 +7897,12 @@ case "$LIBS" in *-lsecurity*) for ac_func in getspnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7899: checking for $ac_func" >&5 +echo "configure:7901: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7948,7 +7950,7 @@ fi done ;; *) echo $ac_n "checking for getspnam in -lsecurity""... $ac_c" 1>&6 -echo "configure:7952: checking for getspnam in -lsecurity" >&5 +echo "configure:7954: checking for getspnam in -lsecurity" >&5 ac_lib_var=`echo security'_'getspnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7956,7 +7958,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsecurity $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7997,12 +7999,12 @@ fi for ac_func in getspnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8001: checking for $ac_func" >&5 +echo "configure:8003: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8056,12 +8058,12 @@ case "$LIBS" in *-lsec*) for ac_func in getspnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8060: checking for $ac_func" >&5 +echo "configure:8062: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8109,7 +8111,7 @@ fi done ;; *) echo $ac_n "checking for getspnam in -lsec""... $ac_c" 1>&6 -echo "configure:8113: checking for getspnam in -lsec" >&5 +echo "configure:8115: checking for getspnam in -lsec" >&5 ac_lib_var=`echo sec'_'getspnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8117,7 +8119,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsec $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8158,12 +8160,12 @@ fi for ac_func in getspnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8162: checking for $ac_func" >&5 +echo "configure:8164: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8218,12 +8220,12 @@ case "$LIBS" in *-lsecurity*) for ac_func in bigcrypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8222: checking for $ac_func" >&5 +echo "configure:8224: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8271,7 +8273,7 @@ fi done ;; *) echo $ac_n "checking for bigcrypt in -lsecurity""... $ac_c" 1>&6 -echo "configure:8275: checking for bigcrypt in -lsecurity" >&5 +echo "configure:8277: checking for bigcrypt in -lsecurity" >&5 ac_lib_var=`echo security'_'bigcrypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8279,7 +8281,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsecurity $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8320,12 +8322,12 @@ fi for ac_func in bigcrypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8324: checking for $ac_func" >&5 +echo "configure:8326: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8379,12 +8381,12 @@ case "$LIBS" in *-lsec*) for ac_func in bigcrypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8383: checking for $ac_func" >&5 +echo "configure:8385: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8432,7 +8434,7 @@ fi done ;; *) echo $ac_n "checking for bigcrypt in -lsec""... $ac_c" 1>&6 -echo "configure:8436: checking for bigcrypt in -lsec" >&5 +echo "configure:8438: checking for bigcrypt in -lsec" >&5 ac_lib_var=`echo sec'_'bigcrypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8440,7 +8442,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsec $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8481,12 +8483,12 @@ fi for ac_func in bigcrypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8485: checking for $ac_func" >&5 +echo "configure:8487: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8541,12 +8543,12 @@ case "$LIBS" in *-lsecurity*) for ac_func in getprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8545: checking for $ac_func" >&5 +echo "configure:8547: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8594,7 +8596,7 @@ fi done ;; *) echo $ac_n "checking for getprpwnam in -lsecurity""... $ac_c" 1>&6 -echo "configure:8598: checking for getprpwnam in -lsecurity" >&5 +echo "configure:8600: checking for getprpwnam in -lsecurity" >&5 ac_lib_var=`echo security'_'getprpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8602,7 +8604,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsecurity $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8643,12 +8645,12 @@ fi for ac_func in getprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8647: checking for $ac_func" >&5 +echo "configure:8649: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8702,12 +8704,12 @@ case "$LIBS" in *-lsec*) for ac_func in getprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8706: checking for $ac_func" >&5 +echo "configure:8708: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8755,7 +8757,7 @@ fi done ;; *) echo $ac_n "checking for getprpwnam in -lsec""... $ac_c" 1>&6 -echo "configure:8759: checking for getprpwnam in -lsec" >&5 +echo "configure:8761: checking for getprpwnam in -lsec" >&5 ac_lib_var=`echo sec'_'getprpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8763,7 +8765,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsec $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8804,12 +8806,12 @@ fi for ac_func in getprpwnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8808: checking for $ac_func" >&5 +echo "configure:8810: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8876,7 +8878,7 @@ SHLIBEXT="so" # Assume non-shared by default and override below BLDSHARED="false" echo $ac_n "checking ability to build shared libraries""... $ac_c" 1>&6 -echo "configure:8880: checking ability to build shared libraries" >&5 +echo "configure:8882: checking ability to build shared libraries" >&5 # and these are for particular systems case "$host_os" in @@ -9044,7 +9046,7 @@ EOF *dgux*) # Extract the first word of "groff", so it can be a program name with args. set dummy groff; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:9048: checking for $ac_word" >&5 +echo "configure:9050: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_ROFF'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9101,17 +9103,17 @@ esac echo "$ac_t""$BLDSHARED" 1>&6 echo $ac_n "checking linker flags for shared libraries""... $ac_c" 1>&6 -echo "configure:9105: checking linker flags for shared libraries" >&5 +echo "configure:9107: checking linker flags for shared libraries" >&5 echo "$ac_t""$LDSHFLAGS" 1>&6 echo $ac_n "checking compiler flags for position-independent code""... $ac_c" 1>&6 -echo "configure:9108: checking compiler flags for position-independent code" >&5 +echo "configure:9110: checking compiler flags for position-independent code" >&5 echo "$ac_t""$PICFLAGS" 1>&6 ####################################################### # test whether building a shared library actually works if test $BLDSHARED = true; then echo $ac_n "checking whether building shared libraries actually works""... $ac_c" 1>&6 -echo "configure:9115: checking whether building shared libraries actually works" >&5 +echo "configure:9117: checking whether building shared libraries actually works" >&5 if eval "test \"`echo '$''{'ac_cv_shlib_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9142,7 +9144,7 @@ fi ################ echo $ac_n "checking for long long""... $ac_c" 1>&6 -echo "configure:9146: checking for long long" >&5 +echo "configure:9148: checking for long long" >&5 if eval "test \"`echo '$''{'samba_cv_have_longlong'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9151,12 +9153,12 @@ if test "$cross_compiling" = yes; then samba_cv_have_longlong=cross else cat > conftest.$ac_ext < main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); } EOF -if { (eval echo configure:9160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_have_longlong=yes else @@ -9183,20 +9185,20 @@ fi # AIX needs this. echo $ac_n "checking for LL suffix on long long integers""... $ac_c" 1>&6 -echo "configure:9187: checking for LL suffix on long long integers" >&5 +echo "configure:9189: checking for LL suffix on long long integers" >&5 if eval "test \"`echo '$''{'samba_cv_compiler_supports_ll'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { long long i = 0x8000000000LL ; return 0; } EOF -if { (eval echo configure:9200: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9202: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_compiler_supports_ll=yes else @@ -9218,7 +9220,7 @@ fi echo $ac_n "checking for 64 bit off_t""... $ac_c" 1>&6 -echo "configure:9222: checking for 64 bit off_t" >&5 +echo "configure:9224: checking for 64 bit off_t" >&5 if eval "test \"`echo '$''{'samba_cv_SIZEOF_OFF_T'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9227,13 +9229,13 @@ if test "$cross_compiling" = yes; then samba_cv_SIZEOF_OFF_T=cross else cat > conftest.$ac_ext < #include main() { exit((sizeof(off_t) == 8) ? 0 : 1); } EOF -if { (eval echo configure:9237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_SIZEOF_OFF_T=yes else @@ -9256,7 +9258,7 @@ EOF fi echo $ac_n "checking for off64_t""... $ac_c" 1>&6 -echo "configure:9260: checking for off64_t" >&5 +echo "configure:9262: checking for off64_t" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_OFF64_T'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9265,7 +9267,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_OFF64_T=cross else cat > conftest.$ac_ext < main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); } EOF -if { (eval echo configure:9279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_OFF64_T=yes else @@ -9298,7 +9300,7 @@ EOF fi echo $ac_n "checking for 64 bit ino_t""... $ac_c" 1>&6 -echo "configure:9302: checking for 64 bit ino_t" >&5 +echo "configure:9304: checking for 64 bit ino_t" >&5 if eval "test \"`echo '$''{'samba_cv_SIZEOF_INO_T'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9307,13 +9309,13 @@ if test "$cross_compiling" = yes; then samba_cv_SIZEOF_INO_T=cross else cat > conftest.$ac_ext < #include main() { exit((sizeof(ino_t) == 8) ? 0 : 1); } EOF -if { (eval echo configure:9317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_SIZEOF_INO_T=yes else @@ -9336,7 +9338,7 @@ EOF fi echo $ac_n "checking for ino64_t""... $ac_c" 1>&6 -echo "configure:9340: checking for ino64_t" >&5 +echo "configure:9342: checking for ino64_t" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_INO64_T'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9345,7 +9347,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_INO64_T=cross else cat > conftest.$ac_ext < main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); } EOF -if { (eval echo configure:9359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_INO64_T=yes else @@ -9378,7 +9380,7 @@ EOF fi echo $ac_n "checking for dev64_t""... $ac_c" 1>&6 -echo "configure:9382: checking for dev64_t" >&5 +echo "configure:9384: checking for dev64_t" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_DEV64_T'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9387,7 +9389,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_DEV64_T=cross else cat > conftest.$ac_ext < main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); } EOF -if { (eval echo configure:9401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_DEV64_T=yes else @@ -9420,13 +9422,13 @@ EOF fi echo $ac_n "checking for struct dirent64""... $ac_c" 1>&6 -echo "configure:9424: checking for struct dirent64" >&5 +echo "configure:9426: checking for struct dirent64" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_STRUCT_DIRENT64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_STRUCT_DIRENT64=yes else @@ -9459,7 +9461,7 @@ EOF fi echo $ac_n "checking for major macro""... $ac_c" 1>&6 -echo "configure:9463: checking for major macro" >&5 +echo "configure:9465: checking for major macro" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_DEVICE_MAJOR_FN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9468,7 +9470,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_DEVICE_MAJOR_FN=cross else cat > conftest.$ac_ext < main() { dev_t dev; int i = major(dev); return 0; } EOF -if { (eval echo configure:9481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_DEVICE_MAJOR_FN=yes else @@ -9500,7 +9502,7 @@ EOF fi echo $ac_n "checking for minor macro""... $ac_c" 1>&6 -echo "configure:9504: checking for minor macro" >&5 +echo "configure:9506: checking for minor macro" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_DEVICE_MINOR_FN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9509,7 +9511,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_DEVICE_MINOR_FN=cross else cat > conftest.$ac_ext < main() { dev_t dev; int i = minor(dev); return 0; } EOF -if { (eval echo configure:9522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_DEVICE_MINOR_FN=yes else @@ -9541,7 +9543,7 @@ EOF fi echo $ac_n "checking for unsigned char""... $ac_c" 1>&6 -echo "configure:9545: checking for unsigned char" >&5 +echo "configure:9547: checking for unsigned char" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UNSIGNED_CHAR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9550,12 +9552,12 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_UNSIGNED_CHAR=cross else cat > conftest.$ac_ext < main() { char c; c=250; exit((c > 0)?0:1); } EOF -if { (eval echo configure:9559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_UNSIGNED_CHAR=yes else @@ -9578,13 +9580,13 @@ EOF fi echo $ac_n "checking for sin_len in sock""... $ac_c" 1>&6 -echo "configure:9582: checking for sin_len in sock" >&5 +echo "configure:9584: checking for sin_len in sock" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SOCK_SIN_LEN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -9593,7 +9595,7 @@ int main() { struct sockaddr_in sock; sock.sin_len = sizeof(sock); ; return 0; } EOF -if { (eval echo configure:9597: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9599: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_SOCK_SIN_LEN=yes else @@ -9614,13 +9616,13 @@ EOF fi echo $ac_n "checking whether seekdir returns void""... $ac_c" 1>&6 -echo "configure:9618: checking whether seekdir returns void" >&5 +echo "configure:9620: checking whether seekdir returns void" >&5 if eval "test \"`echo '$''{'samba_cv_SEEKDIR_RETURNS_VOID'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -9629,7 +9631,7 @@ int main() { return 0; ; return 0; } EOF -if { (eval echo configure:9633: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9635: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_SEEKDIR_RETURNS_VOID=yes else @@ -9650,20 +9652,20 @@ EOF fi echo $ac_n "checking for __FILE__ macro""... $ac_c" 1>&6 -echo "configure:9654: checking for __FILE__ macro" >&5 +echo "configure:9656: checking for __FILE__ macro" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_FILE_MACRO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { printf("%s\n", __FILE__); ; return 0; } EOF -if { (eval echo configure:9667: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9669: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_FILE_MACRO=yes else @@ -9684,20 +9686,20 @@ EOF fi echo $ac_n "checking for __FUNCTION__ macro""... $ac_c" 1>&6 -echo "configure:9688: checking for __FUNCTION__ macro" >&5 +echo "configure:9690: checking for __FUNCTION__ macro" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_FUNCTION_MACRO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { printf("%s\n", __FUNCTION__); ; return 0; } EOF -if { (eval echo configure:9701: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9703: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_FUNCTION_MACRO=yes else @@ -9718,7 +9720,7 @@ EOF fi echo $ac_n "checking if gettimeofday takes tz argument""... $ac_c" 1>&6 -echo "configure:9722: checking if gettimeofday takes tz argument" >&5 +echo "configure:9724: checking if gettimeofday takes tz argument" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_GETTIMEOFDAY_TZ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9727,14 +9729,14 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_GETTIMEOFDAY_TZ=cross else cat > conftest.$ac_ext < #include main() { struct timeval tv; exit(gettimeofday(&tv, NULL));} EOF -if { (eval echo configure:9738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_GETTIMEOFDAY_TZ=yes else @@ -9757,13 +9759,13 @@ EOF fi echo $ac_n "checking for __va_copy""... $ac_c" 1>&6 -echo "configure:9761: checking for __va_copy" >&5 +echo "configure:9763: checking for __va_copy" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_VA_COPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < va_list ap1,ap2; @@ -9771,7 +9773,7 @@ int main() { __va_copy(ap1,ap2); ; return 0; } EOF -if { (eval echo configure:9775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_VA_COPY=yes else @@ -9792,7 +9794,7 @@ EOF fi echo $ac_n "checking for C99 vsnprintf""... $ac_c" 1>&6 -echo "configure:9796: checking for C99 vsnprintf" >&5 +echo "configure:9798: checking for C99 vsnprintf" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_C99_VSNPRINTF'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9801,7 +9803,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_C99_VSNPRINTF=cross else cat > conftest.$ac_ext < @@ -9828,7 +9830,7 @@ void foo(const char *format, ...) { main() { foo("hello"); } EOF -if { (eval echo configure:9832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_C99_VSNPRINTF=yes else @@ -9851,7 +9853,7 @@ EOF fi echo $ac_n "checking for broken readdir""... $ac_c" 1>&6 -echo "configure:9855: checking for broken readdir" >&5 +echo "configure:9857: checking for broken readdir" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_BROKEN_READDIR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9860,7 +9862,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_BROKEN_READDIR=cross else cat > conftest.$ac_ext < #include @@ -9868,7 +9870,7 @@ main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d); if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 && di->d_name[0] == 0) exit(0); exit(1);} EOF -if { (eval echo configure:9872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_BROKEN_READDIR=yes else @@ -9891,13 +9893,13 @@ EOF fi echo $ac_n "checking for utimbuf""... $ac_c" 1>&6 -echo "configure:9895: checking for utimbuf" >&5 +echo "configure:9897: checking for utimbuf" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UTIMBUF'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -9905,7 +9907,7 @@ int main() { struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf)); ; return 0; } EOF -if { (eval echo configure:9909: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9911: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UTIMBUF=yes else @@ -9929,12 +9931,12 @@ fi for ac_func in pututline pututxline updwtmp updwtmpx getutmpx do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9933: checking for $ac_func" >&5 +echo "configure:9935: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9983,13 +9985,13 @@ done echo $ac_n "checking for ut_name in utmp""... $ac_c" 1>&6 -echo "configure:9987: checking for ut_name in utmp" >&5 +echo "configure:9989: checking for ut_name in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_NAME'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -9997,7 +9999,7 @@ int main() { struct utmp ut; ut.ut_name[0] = 'a'; ; return 0; } EOF -if { (eval echo configure:10001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10003: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_NAME=yes else @@ -10018,13 +10020,13 @@ EOF fi echo $ac_n "checking for ut_user in utmp""... $ac_c" 1>&6 -echo "configure:10022: checking for ut_user in utmp" >&5 +echo "configure:10024: checking for ut_user in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_USER'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10032,7 +10034,7 @@ int main() { struct utmp ut; ut.ut_user[0] = 'a'; ; return 0; } EOF -if { (eval echo configure:10036: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10038: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_USER=yes else @@ -10053,13 +10055,13 @@ EOF fi echo $ac_n "checking for ut_id in utmp""... $ac_c" 1>&6 -echo "configure:10057: checking for ut_id in utmp" >&5 +echo "configure:10059: checking for ut_id in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_ID'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10067,7 +10069,7 @@ int main() { struct utmp ut; ut.ut_id[0] = 'a'; ; return 0; } EOF -if { (eval echo configure:10071: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10073: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_ID=yes else @@ -10088,13 +10090,13 @@ EOF fi echo $ac_n "checking for ut_host in utmp""... $ac_c" 1>&6 -echo "configure:10092: checking for ut_host in utmp" >&5 +echo "configure:10094: checking for ut_host in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_HOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10102,7 +10104,7 @@ int main() { struct utmp ut; ut.ut_host[0] = 'a'; ; return 0; } EOF -if { (eval echo configure:10106: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_HOST=yes else @@ -10123,13 +10125,13 @@ EOF fi echo $ac_n "checking for ut_time in utmp""... $ac_c" 1>&6 -echo "configure:10127: checking for ut_time in utmp" >&5 +echo "configure:10129: checking for ut_time in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_TIME'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10137,7 +10139,7 @@ int main() { struct utmp ut; time_t t; ut.ut_time = t; ; return 0; } EOF -if { (eval echo configure:10141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_TIME=yes else @@ -10158,13 +10160,13 @@ EOF fi echo $ac_n "checking for ut_tv in utmp""... $ac_c" 1>&6 -echo "configure:10162: checking for ut_tv in utmp" >&5 +echo "configure:10164: checking for ut_tv in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_TV'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10172,7 +10174,7 @@ int main() { struct utmp ut; struct timeval tv; ut.ut_tv = tv; ; return 0; } EOF -if { (eval echo configure:10176: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10178: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_TV=yes else @@ -10193,13 +10195,13 @@ EOF fi echo $ac_n "checking for ut_type in utmp""... $ac_c" 1>&6 -echo "configure:10197: checking for ut_type in utmp" >&5 +echo "configure:10199: checking for ut_type in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_TYPE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10207,7 +10209,7 @@ int main() { struct utmp ut; ut.ut_type = 0; ; return 0; } EOF -if { (eval echo configure:10211: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10213: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_TYPE=yes else @@ -10228,13 +10230,13 @@ EOF fi echo $ac_n "checking for ut_pid in utmp""... $ac_c" 1>&6 -echo "configure:10232: checking for ut_pid in utmp" >&5 +echo "configure:10234: checking for ut_pid in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_PID'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10242,7 +10244,7 @@ int main() { struct utmp ut; ut.ut_pid = 0; ; return 0; } EOF -if { (eval echo configure:10246: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_PID=yes else @@ -10263,13 +10265,13 @@ EOF fi echo $ac_n "checking for ut_exit in utmp""... $ac_c" 1>&6 -echo "configure:10267: checking for ut_exit in utmp" >&5 +echo "configure:10269: checking for ut_exit in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_EXIT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10277,7 +10279,7 @@ int main() { struct utmp ut; ut.ut_exit.e_exit = 0; ; return 0; } EOF -if { (eval echo configure:10281: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_EXIT=yes else @@ -10298,13 +10300,13 @@ EOF fi echo $ac_n "checking for ut_addr in utmp""... $ac_c" 1>&6 -echo "configure:10302: checking for ut_addr in utmp" >&5 +echo "configure:10304: checking for ut_addr in utmp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UT_UT_ADDR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10312,7 +10314,7 @@ int main() { struct utmp ut; ut.ut_addr = 0; ; return 0; } EOF -if { (eval echo configure:10316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10318: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UT_UT_ADDR=yes else @@ -10334,13 +10336,13 @@ fi if test x$ac_cv_func_pututline = xyes ; then echo $ac_n "checking whether pututline returns pointer""... $ac_c" 1>&6 -echo "configure:10338: checking whether pututline returns pointer" >&5 +echo "configure:10340: checking whether pututline returns pointer" >&5 if eval "test \"`echo '$''{'samba_cv_PUTUTLINE_RETURNS_UTMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10348,7 +10350,7 @@ int main() { struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg); ; return 0; } EOF -if { (eval echo configure:10352: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10354: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_PUTUTLINE_RETURNS_UTMP=yes else @@ -10370,13 +10372,13 @@ EOF fi echo $ac_n "checking for ut_syslen in utmpx""... $ac_c" 1>&6 -echo "configure:10374: checking for ut_syslen in utmpx" >&5 +echo "configure:10376: checking for ut_syslen in utmpx" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UX_UT_SYSLEN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10384,7 +10386,7 @@ int main() { struct utmpx ux; ux.ut_syslen = 0; ; return 0; } EOF -if { (eval echo configure:10388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10390: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UX_UT_SYSLEN=yes else @@ -10408,7 +10410,7 @@ fi ################################################# # check for libiconv support echo $ac_n "checking whether to use libiconv""... $ac_c" 1>&6 -echo "configure:10412: checking whether to use libiconv" >&5 +echo "configure:10414: checking whether to use libiconv" >&5 # Check whether --with-libiconv or --without-libiconv was given. if test "${with_libiconv+set}" = set; then withval="$with_libiconv" @@ -10421,7 +10423,7 @@ if test "${with_libiconv+set}" = set; then CFLAGS="$CFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" echo $ac_n "checking for iconv_open in -liconv""... $ac_c" 1>&6 -echo "configure:10425: checking for iconv_open in -liconv" >&5 +echo "configure:10427: checking for iconv_open in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv_open | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10429,7 +10431,7 @@ else ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10483,7 +10485,7 @@ fi ############ # check for iconv in libc echo $ac_n "checking for working iconv""... $ac_c" 1>&6 -echo "configure:10487: checking for working iconv" >&5 +echo "configure:10489: checking for working iconv" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_NATIVE_ICONV'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10492,7 +10494,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_NATIVE_ICONV=cross else cat > conftest.$ac_ext < @@ -10503,7 +10505,7 @@ main() { } EOF -if { (eval echo configure:10507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_NATIVE_ICONV=yes else @@ -10527,7 +10529,7 @@ fi echo $ac_n "checking for Linux kernel oplocks""... $ac_c" 1>&6 -echo "configure:10531: checking for Linux kernel oplocks" >&5 +echo "configure:10533: checking for Linux kernel oplocks" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_KERNEL_OPLOCKS_LINUX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10536,7 +10538,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross else cat > conftest.$ac_ext < @@ -10550,7 +10552,7 @@ main() { } EOF -if { (eval echo configure:10554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes else @@ -10573,7 +10575,7 @@ EOF fi echo $ac_n "checking for kernel change notify support""... $ac_c" 1>&6 -echo "configure:10577: checking for kernel change notify support" >&5 +echo "configure:10579: checking for kernel change notify support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_KERNEL_CHANGE_NOTIFY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10582,7 +10584,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross else cat > conftest.$ac_ext < @@ -10596,7 +10598,7 @@ main() { } EOF -if { (eval echo configure:10600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes else @@ -10619,7 +10621,7 @@ EOF fi echo $ac_n "checking for kernel share modes""... $ac_c" 1>&6 -echo "configure:10623: checking for kernel share modes" >&5 +echo "configure:10625: checking for kernel share modes" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_KERNEL_SHARE_MODES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10628,7 +10630,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_KERNEL_SHARE_MODES=cross else cat > conftest.$ac_ext < @@ -10644,7 +10646,7 @@ main() { } EOF -if { (eval echo configure:10648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_KERNEL_SHARE_MODES=yes else @@ -10670,13 +10672,13 @@ fi echo $ac_n "checking for IRIX kernel oplock type definitions""... $ac_c" 1>&6 -echo "configure:10674: checking for IRIX kernel oplock type definitions" >&5 +echo "configure:10676: checking for IRIX kernel oplock type definitions" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_KERNEL_OPLOCKS_IRIX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10684,7 +10686,7 @@ int main() { oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1; ; return 0; } EOF -if { (eval echo configure:10688: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10690: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes else @@ -10705,7 +10707,7 @@ EOF fi echo $ac_n "checking for irix specific capabilities""... $ac_c" 1>&6 -echo "configure:10709: checking for irix specific capabilities" >&5 +echo "configure:10711: checking for irix specific capabilities" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10714,7 +10716,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross else cat > conftest.$ac_ext < #include @@ -10729,7 +10731,7 @@ main() { } EOF -if { (eval echo configure:10733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes else @@ -10757,13 +10759,13 @@ fi # echo $ac_n "checking for int16 typedef included by rpc/rpc.h""... $ac_c" 1>&6 -echo "configure:10761: checking for int16 typedef included by rpc/rpc.h" >&5 +echo "configure:10763: checking for int16 typedef included by rpc/rpc.h" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_INT16_FROM_RPC_RPC_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if defined(HAVE_RPC_RPC_H) @@ -10773,7 +10775,7 @@ int main() { int16 testvar; ; return 0; } EOF -if { (eval echo configure:10777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10779: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes else @@ -10794,13 +10796,13 @@ EOF fi echo $ac_n "checking for uint16 typedef included by rpc/rpc.h""... $ac_c" 1>&6 -echo "configure:10798: checking for uint16 typedef included by rpc/rpc.h" >&5 +echo "configure:10800: checking for uint16 typedef included by rpc/rpc.h" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UINT16_FROM_RPC_RPC_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if defined(HAVE_RPC_RPC_H) @@ -10810,7 +10812,7 @@ int main() { uint16 testvar; ; return 0; } EOF -if { (eval echo configure:10814: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10816: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes else @@ -10831,13 +10833,13 @@ EOF fi echo $ac_n "checking for int32 typedef included by rpc/rpc.h""... $ac_c" 1>&6 -echo "configure:10835: checking for int32 typedef included by rpc/rpc.h" >&5 +echo "configure:10837: checking for int32 typedef included by rpc/rpc.h" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_INT32_FROM_RPC_RPC_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if defined(HAVE_RPC_RPC_H) @@ -10847,7 +10849,7 @@ int main() { int32 testvar; ; return 0; } EOF -if { (eval echo configure:10851: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10853: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes else @@ -10868,13 +10870,13 @@ EOF fi echo $ac_n "checking for uint32 typedef included by rpc/rpc.h""... $ac_c" 1>&6 -echo "configure:10872: checking for uint32 typedef included by rpc/rpc.h" >&5 +echo "configure:10874: checking for uint32 typedef included by rpc/rpc.h" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_UINT32_FROM_RPC_RPC_H'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if defined(HAVE_RPC_RPC_H) @@ -10884,7 +10886,7 @@ int main() { uint32 testvar; ; return 0; } EOF -if { (eval echo configure:10888: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10890: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes else @@ -10906,13 +10908,13 @@ fi echo $ac_n "checking for conflicting AUTH_ERROR define in rpc/rpc.h""... $ac_c" 1>&6 -echo "configure:10910: checking for conflicting AUTH_ERROR define in rpc/rpc.h" >&5 +echo "configure:10912: checking for conflicting AUTH_ERROR define in rpc/rpc.h" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #ifdef HAVE_SYS_SECURITY_H @@ -10926,7 +10928,7 @@ int main() { int testvar; ; return 0; } EOF -if { (eval echo configure:10930: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10932: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no else @@ -10947,16 +10949,16 @@ EOF fi echo $ac_n "checking for test routines""... $ac_c" 1>&6 -echo "configure:10951: checking for test routines" >&5 +echo "configure:10953: checking for test routines" >&5 if test "$cross_compiling" = yes; then echo "configure: warning: cannot run when cross-compiling" 1>&2 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 else @@ -10970,7 +10972,7 @@ fi echo $ac_n "checking for ftruncate extend""... $ac_c" 1>&6 -echo "configure:10974: checking for ftruncate extend" >&5 +echo "configure:10976: checking for ftruncate extend" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_FTRUNCATE_EXTEND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10979,11 +10981,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_FTRUNCATE_EXTEND=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_FTRUNCATE_EXTEND=yes else @@ -11006,7 +11008,7 @@ EOF fi echo $ac_n "checking for AF_LOCAL socket support""... $ac_c" 1>&6 -echo "configure:11010: checking for AF_LOCAL socket support" >&5 +echo "configure:11012: checking for AF_LOCAL socket support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_WORKING_AF_LOCAL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11015,11 +11017,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_WORKING_AF_LOCAL=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_WORKING_AF_LOCAL=yes else @@ -11043,7 +11045,7 @@ EOF fi echo $ac_n "checking for broken getgroups""... $ac_c" 1>&6 -echo "configure:11047: checking for broken getgroups" >&5 +echo "configure:11049: checking for broken getgroups" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_BROKEN_GETGROUPS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11052,11 +11054,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_BROKEN_GETGROUPS=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_BROKEN_GETGROUPS=yes else @@ -11079,7 +11081,7 @@ EOF fi echo $ac_n "checking whether getpass should be replaced""... $ac_c" 1>&6 -echo "configure:11083: checking whether getpass should be replaced" >&5 +echo "configure:11085: checking whether getpass should be replaced" >&5 if eval "test \"`echo '$''{'samba_cv_REPLACE_GETPASS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11087,7 +11089,7 @@ else SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11106: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_REPLACE_GETPASS=yes else @@ -11123,7 +11125,7 @@ EOF fi echo $ac_n "checking for broken inet_ntoa""... $ac_c" 1>&6 -echo "configure:11127: checking for broken inet_ntoa" >&5 +echo "configure:11129: checking for broken inet_ntoa" >&5 if eval "test \"`echo '$''{'samba_cv_REPLACE_INET_NTOA'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11132,7 +11134,7 @@ if test "$cross_compiling" = yes; then samba_cv_REPLACE_INET_NTOA=cross else cat > conftest.$ac_ext < @@ -11146,7 +11148,7 @@ if (strcmp(inet_ntoa(ip),"18.52.86.120") && strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } exit(1);} EOF -if { (eval echo configure:11150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_REPLACE_INET_NTOA=yes else @@ -11169,7 +11171,7 @@ EOF fi echo $ac_n "checking for secure mkstemp""... $ac_c" 1>&6 -echo "configure:11173: checking for secure mkstemp" >&5 +echo "configure:11175: checking for secure mkstemp" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SECURE_MKSTEMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11178,7 +11180,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_SECURE_MKSTEMP=cross else cat > conftest.$ac_ext < #include @@ -11195,7 +11197,7 @@ main() { exit(0); } EOF -if { (eval echo configure:11199: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_SECURE_MKSTEMP=yes else @@ -11218,7 +11220,7 @@ EOF fi echo $ac_n "checking for sysconf(_SC_NGROUPS_MAX)""... $ac_c" 1>&6 -echo "configure:11222: checking for sysconf(_SC_NGROUPS_MAX)" >&5 +echo "configure:11224: checking for sysconf(_SC_NGROUPS_MAX)" >&5 if eval "test \"`echo '$''{'samba_cv_SYSCONF_SC_NGROUPS_MAX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11227,12 +11229,12 @@ if test "$cross_compiling" = yes; then samba_cv_SYSCONF_SC_NGROUPS_MAX=cross else cat > conftest.$ac_ext < main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); } EOF -if { (eval echo configure:11236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_SYSCONF_SC_NGROUPS_MAX=yes else @@ -11255,7 +11257,7 @@ EOF fi echo $ac_n "checking for root""... $ac_c" 1>&6 -echo "configure:11259: checking for root" >&5 +echo "configure:11261: checking for root" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_ROOT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11264,11 +11266,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_ROOT=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_ROOT=yes else @@ -11296,7 +11298,7 @@ fi # look for a method of finding the list of network interfaces iface=no; echo $ac_n "checking for iface AIX""... $ac_c" 1>&6 -echo "configure:11300: checking for iface AIX" >&5 +echo "configure:11302: checking for iface AIX" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_IFACE_AIX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11305,7 +11307,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_IFACE_AIX=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_IFACE_AIX=yes else @@ -11337,7 +11339,7 @@ fi if test $iface = no; then echo $ac_n "checking for iface ifconf""... $ac_c" 1>&6 -echo "configure:11341: checking for iface ifconf" >&5 +echo "configure:11343: checking for iface ifconf" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_IFACE_IFCONF'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11346,7 +11348,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_IFACE_IFCONF=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11360: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_IFACE_IFCONF=yes else @@ -11379,7 +11381,7 @@ fi if test $iface = no; then echo $ac_n "checking for iface ifreq""... $ac_c" 1>&6 -echo "configure:11383: checking for iface ifreq" >&5 +echo "configure:11385: checking for iface ifreq" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_IFACE_IFREQ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11388,7 +11390,7 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_IFACE_IFREQ=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_IFACE_IFREQ=yes else @@ -11425,7 +11427,7 @@ fi seteuid=no; if test $seteuid = no; then echo $ac_n "checking for setresuid""... $ac_c" 1>&6 -echo "configure:11429: checking for setresuid" >&5 +echo "configure:11431: checking for setresuid" >&5 if eval "test \"`echo '$''{'samba_cv_USE_SETRESUID'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11434,7 +11436,7 @@ if test "$cross_compiling" = yes; then samba_cv_USE_SETRESUID=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_USE_SETRESUID=yes else @@ -11468,7 +11470,7 @@ fi if test $seteuid = no; then echo $ac_n "checking for setreuid""... $ac_c" 1>&6 -echo "configure:11472: checking for setreuid" >&5 +echo "configure:11474: checking for setreuid" >&5 if eval "test \"`echo '$''{'samba_cv_USE_SETREUID'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11477,7 +11479,7 @@ if test "$cross_compiling" = yes; then samba_cv_USE_SETREUID=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_USE_SETREUID=yes else @@ -11510,7 +11512,7 @@ fi if test $seteuid = no; then echo $ac_n "checking for seteuid""... $ac_c" 1>&6 -echo "configure:11514: checking for seteuid" >&5 +echo "configure:11516: checking for seteuid" >&5 if eval "test \"`echo '$''{'samba_cv_USE_SETEUID'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11519,7 +11521,7 @@ if test "$cross_compiling" = yes; then samba_cv_USE_SETEUID=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_USE_SETEUID=yes else @@ -11552,7 +11554,7 @@ fi if test $seteuid = no; then echo $ac_n "checking for setuidx""... $ac_c" 1>&6 -echo "configure:11556: checking for setuidx" >&5 +echo "configure:11558: checking for setuidx" >&5 if eval "test \"`echo '$''{'samba_cv_USE_SETUIDX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11561,7 +11563,7 @@ if test "$cross_compiling" = yes; then samba_cv_USE_SETUIDX=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_USE_SETUIDX=yes else @@ -11594,7 +11596,7 @@ fi echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:11598: checking for working mmap" >&5 +echo "configure:11600: checking for working mmap" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_MMAP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11603,11 +11605,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_MMAP=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_MMAP=yes else @@ -11630,7 +11632,7 @@ EOF fi echo $ac_n "checking for ftruncate needs root""... $ac_c" 1>&6 -echo "configure:11634: checking for ftruncate needs root" >&5 +echo "configure:11636: checking for ftruncate needs root" >&5 if eval "test \"`echo '$''{'samba_cv_FTRUNCATE_NEEDS_ROOT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11639,11 +11641,11 @@ if test "$cross_compiling" = yes; then samba_cv_FTRUNCATE_NEEDS_ROOT=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_FTRUNCATE_NEEDS_ROOT=yes else @@ -11666,7 +11668,7 @@ EOF fi echo $ac_n "checking for fcntl locking""... $ac_c" 1>&6 -echo "configure:11670: checking for fcntl locking" >&5 +echo "configure:11672: checking for fcntl locking" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_FCNTL_LOCK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11675,11 +11677,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_FCNTL_LOCK=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_FCNTL_LOCK=yes else @@ -11702,7 +11704,7 @@ EOF fi echo $ac_n "checking for broken (glibc2.1/x86) 64 bit fcntl locking""... $ac_c" 1>&6 -echo "configure:11706: checking for broken (glibc2.1/x86) 64 bit fcntl locking" >&5 +echo "configure:11708: checking for broken (glibc2.1/x86) 64 bit fcntl locking" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_BROKEN_FCNTL64_LOCKS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11711,11 +11713,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes else @@ -11740,7 +11742,7 @@ else echo $ac_n "checking for 64 bit fcntl locking""... $ac_c" 1>&6 -echo "configure:11744: checking for 64 bit fcntl locking" >&5 +echo "configure:11746: checking for 64 bit fcntl locking" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_STRUCT_FLOCK64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11749,7 +11751,7 @@ else samba_cv_HAVE_STRUCT_FLOCK64=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:11779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_STRUCT_FLOCK64=yes else @@ -11798,13 +11800,13 @@ EOF fi echo $ac_n "checking for st_blocks in struct stat""... $ac_c" 1>&6 -echo "configure:11802: checking for st_blocks in struct stat" >&5 +echo "configure:11804: checking for st_blocks in struct stat" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_STAT_ST_BLOCKS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -11813,7 +11815,7 @@ int main() { struct stat st; st.st_blocks = 0; ; return 0; } EOF -if { (eval echo configure:11817: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_STAT_ST_BLOCKS=yes else @@ -11834,13 +11836,13 @@ EOF fi echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6 -echo "configure:11838: checking for st_blksize in struct stat" >&5 +echo "configure:11840: checking for st_blksize in struct stat" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_STAT_ST_BLKSIZE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -11849,7 +11851,7 @@ int main() { struct stat st; st.st_blksize = 0; ; return 0; } EOF -if { (eval echo configure:11853: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11855: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_STAT_ST_BLKSIZE=yes else @@ -11872,13 +11874,13 @@ fi case "$host_os" in *linux*) echo $ac_n "checking for broken RedHat 7.2 system header files""... $ac_c" 1>&6 -echo "configure:11876: checking for broken RedHat 7.2 system header files" >&5 +echo "configure:11878: checking for broken RedHat 7.2 system header files" >&5 if eval "test \"`echo '$''{'samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11898: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no else @@ -11915,13 +11917,13 @@ fi esac echo $ac_n "checking for broken nisplus include files""... $ac_c" 1>&6 -echo "configure:11919: checking for broken nisplus include files" >&5 +echo "configure:11921: checking for broken nisplus include files" >&5 if eval "test \"`echo '$''{'samba_cv_BROKEN_NISPLUS_INCLUDE_FILES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if defined(HAVE_RPCSVC_NIS_H) @@ -11931,7 +11933,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:11935: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11937: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no else @@ -11955,7 +11957,7 @@ fi ################################################# # check for smbwrapper support echo $ac_n "checking whether to use smbwrapper""... $ac_c" 1>&6 -echo "configure:11959: checking whether to use smbwrapper" >&5 +echo "configure:11961: checking whether to use smbwrapper" >&5 # Check whether --with-smbwrapper or --without-smbwrapper was given. if test "${with_smbwrapper+set}" = set; then withval="$with_smbwrapper" @@ -12002,7 +12004,7 @@ fi ################################################# # check for AFS clear-text auth support echo $ac_n "checking whether to use AFS clear-text auth""... $ac_c" 1>&6 -echo "configure:12006: checking whether to use AFS clear-text auth" >&5 +echo "configure:12008: checking whether to use AFS clear-text auth" >&5 # Check whether --with-afs or --without-afs was given. if test "${with_afs+set}" = set; then withval="$with_afs" @@ -12028,7 +12030,7 @@ fi ################################################# # check for the DFS clear-text auth system echo $ac_n "checking whether to use DFS clear-text auth""... $ac_c" 1>&6 -echo "configure:12032: checking whether to use DFS clear-text auth" >&5 +echo "configure:12034: checking whether to use DFS clear-text auth" >&5 # Check whether --with-dfs or --without-dfs was given. if test "${with_dfs+set}" = set; then withval="$with_dfs" @@ -12055,7 +12057,7 @@ fi with_ads_support=yes echo $ac_n "checking whether to use Active Directory""... $ac_c" 1>&6 -echo "configure:12059: checking whether to use Active Directory" >&5 +echo "configure:12061: checking whether to use Active Directory" >&5 # Check whether --with-ads or --without-ads was given. if test "${with_ads+set}" = set; then @@ -12083,7 +12085,7 @@ if test x"$with_ads_support" = x"yes"; then ################################################# # check for location of Kerberos 5 install echo $ac_n "checking for kerberos 5 install path""... $ac_c" 1>&6 -echo "configure:12087: checking for kerberos 5 install path" >&5 +echo "configure:12089: checking for kerberos 5 install path" >&5 # Check whether --with-krb5 or --without-krb5 was given. if test "${with_krb5+set}" = set; then withval="$with_krb5" @@ -12111,7 +12113,7 @@ if test x$FOUND_KRB5 = x"no"; then ################################################# # see if this box has the RedHat location for kerberos echo $ac_n "checking for /usr/kerberos""... $ac_c" 1>&6 -echo "configure:12115: checking for /usr/kerberos" >&5 +echo "configure:12117: checking for /usr/kerberos" >&5 if test -d /usr/kerberos; then LDFLAGS="$LDFLAGS -L/usr/kerberos/lib" CFLAGS="$CFLAGS -I/usr/kerberos/include" @@ -12130,17 +12132,17 @@ fi do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:12134: checking for $ac_hdr" >&5 +echo "configure:12136: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12144: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12146: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12173,17 +12175,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:12177: checking for $ac_hdr" >&5 +echo "configure:12179: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12187: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12213,7 +12215,7 @@ done ################################################################## # we might need the k5crypto and com_err libraries on some systems echo $ac_n "checking for _et_list in -lcom_err""... $ac_c" 1>&6 -echo "configure:12217: checking for _et_list in -lcom_err" >&5 +echo "configure:12219: checking for _et_list in -lcom_err" >&5 ac_lib_var=`echo com_err'_'_et_list | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12221,7 +12223,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcom_err $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12253,7 +12255,7 @@ else fi echo $ac_n "checking for krb5_encrypt_data in -lk5crypto""... $ac_c" 1>&6 -echo "configure:12257: checking for krb5_encrypt_data in -lk5crypto" >&5 +echo "configure:12259: checking for krb5_encrypt_data in -lk5crypto" >&5 ac_lib_var=`echo k5crypto'_'krb5_encrypt_data | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12261,7 +12263,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lk5crypto $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12297,7 +12299,7 @@ fi # now see if we can find the krb5 libs in standard paths # or as specified above echo $ac_n "checking for krb5_mk_req_extended in -lkrb5""... $ac_c" 1>&6 -echo "configure:12301: checking for krb5_mk_req_extended in -lkrb5" >&5 +echo "configure:12303: checking for krb5_mk_req_extended in -lkrb5" >&5 ac_lib_var=`echo krb5'_'krb5_mk_req_extended | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12305,7 +12307,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lkrb5 $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12344,7 +12346,7 @@ fi ######################################################## # now see if we can find the gssapi libs in standard paths echo $ac_n "checking for gss_display_status in -lgssapi_krb5""... $ac_c" 1>&6 -echo "configure:12348: checking for gss_display_status in -lgssapi_krb5" >&5 +echo "configure:12350: checking for gss_display_status in -lgssapi_krb5" >&5 ac_lib_var=`echo gssapi_krb5'_'gss_display_status | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12352,7 +12354,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgssapi_krb5 $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12394,7 +12396,7 @@ fi with_ldap_support=yes echo $ac_n "checking whether to use LDAP""... $ac_c" 1>&6 -echo "configure:12398: checking whether to use LDAP" >&5 +echo "configure:12400: checking whether to use LDAP" >&5 # Check whether --with-ldap or --without-ldap was given. if test "${with_ldap+set}" = set; then @@ -12415,7 +12417,7 @@ if test x"$with_ldap_support" = x"yes"; then # we might need the lber lib on some systems. To avoid link errors # this test must be before the libldap test echo $ac_n "checking for ber_scanf in -llber""... $ac_c" 1>&6 -echo "configure:12419: checking for ber_scanf in -llber" >&5 +echo "configure:12421: checking for ber_scanf in -llber" >&5 ac_lib_var=`echo lber'_'ber_scanf | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12423,7 +12425,7 @@ else ac_save_LIBS="$LIBS" LIBS="-llber $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12440: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12459,7 +12461,7 @@ fi # now see if we can find the ldap libs in standard paths if test x$have_ldap != xyes; then echo $ac_n "checking for ldap_domain2hostlist in -lldap""... $ac_c" 1>&6 -echo "configure:12463: checking for ldap_domain2hostlist in -lldap" >&5 +echo "configure:12465: checking for ldap_domain2hostlist in -lldap" >&5 ac_lib_var=`echo ldap'_'ldap_domain2hostlist | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12467,7 +12469,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lldap $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12509,12 +12511,12 @@ fi for ac_func in ldap_set_rebind_proc do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12513: checking for $ac_func" >&5 +echo "configure:12515: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12562,13 +12564,13 @@ fi done echo $ac_n "checking whether ldap_set_rebind_proc takes 3 arguments""... $ac_c" 1>&6 -echo "configure:12566: checking whether ldap_set_rebind_proc takes 3 arguments" >&5 +echo "configure:12568: checking whether ldap_set_rebind_proc takes 3 arguments" >&5 if eval "test \"`echo '$''{'pam_ldap_cv_ldap_set_rebind_proc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -12577,7 +12579,7 @@ int main() { ldap_set_rebind_proc(0, 0, 0); ; return 0; } EOF -if { (eval echo configure:12581: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12583: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* pam_ldap_cv_ldap_set_rebind_proc=3 else @@ -12600,7 +12602,7 @@ fi ################################################# # check for automount support echo $ac_n "checking whether to use AUTOMOUNT""... $ac_c" 1>&6 -echo "configure:12604: checking whether to use AUTOMOUNT" >&5 +echo "configure:12606: checking whether to use AUTOMOUNT" >&5 # Check whether --with-automount or --without-automount was given. if test "${with_automount+set}" = set; then withval="$with_automount" @@ -12625,7 +12627,7 @@ fi ################################################# # check for smbmount support echo $ac_n "checking whether to use SMBMOUNT""... $ac_c" 1>&6 -echo "configure:12629: checking whether to use SMBMOUNT" >&5 +echo "configure:12631: checking whether to use SMBMOUNT" >&5 # Check whether --with-smbmount or --without-smbmount was given. if test "${with_smbmount+set}" = set; then withval="$with_smbmount" @@ -12662,7 +12664,7 @@ fi # check for a PAM clear-text auth, accounts, password and session support with_pam_for_crypt=no echo $ac_n "checking whether to use PAM""... $ac_c" 1>&6 -echo "configure:12666: checking whether to use PAM" >&5 +echo "configure:12668: checking whether to use PAM" >&5 # Check whether --with-pam or --without-pam was given. if test "${with_pam+set}" = set; then withval="$with_pam" @@ -12688,7 +12690,7 @@ fi # we can't build a pam module if we don't have pam. echo $ac_n "checking for pam_get_data in -lpam""... $ac_c" 1>&6 -echo "configure:12692: checking for pam_get_data in -lpam" >&5 +echo "configure:12694: checking for pam_get_data in -lpam" >&5 ac_lib_var=`echo pam'_'pam_get_data | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12696,7 +12698,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lpam $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12734,7 +12736,7 @@ fi ################################################# # check for pam_smbpass support echo $ac_n "checking whether to use pam_smbpass""... $ac_c" 1>&6 -echo "configure:12738: checking whether to use pam_smbpass" >&5 +echo "configure:12740: checking whether to use pam_smbpass" >&5 # Check whether --with-pam_smbpass or --without-pam_smbpass was given. if test "${with_pam_smbpass+set}" = set; then withval="$with_pam_smbpass" @@ -12772,12 +12774,12 @@ if test x"$with_pam_for_crypt" = x"no"; then for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12776: checking for $ac_func" >&5 +echo "configure:12778: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12826,7 +12828,7 @@ done if test x"$ac_cv_func_crypt" = x"no"; then echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:12830: checking for crypt in -lcrypt" >&5 +echo "configure:12832: checking for crypt in -lcrypt" >&5 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12834,7 +12836,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcrypt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12880,7 +12882,7 @@ fi ## if test $with_pam_for_crypt = no; then echo $ac_n "checking for a crypt that needs truncated salt""... $ac_c" 1>&6 -echo "configure:12884: checking for a crypt that needs truncated salt" >&5 +echo "configure:12886: checking for a crypt that needs truncated salt" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_TRUNCATED_SALT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -12889,11 +12891,11 @@ if test "$cross_compiling" = yes; then samba_cv_HAVE_TRUNCATED_SALT=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:12899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then samba_cv_HAVE_TRUNCATED_SALT=no else @@ -12919,7 +12921,7 @@ fi # New experimental SAM system echo $ac_n "checking whether to build the new (experimental) SAM database""... $ac_c" 1>&6 -echo "configure:12923: checking whether to build the new (experimental) SAM database" >&5 +echo "configure:12925: checking whether to build the new (experimental) SAM database" >&5 # Check whether --with-sam or --without-sam was given. if test "${with_sam+set}" = set; then withval="$with_sam" @@ -12948,10 +12950,35 @@ fi ## ######################################################################################## +################################################# +# check for a LDAP password database configuration backwards compatibility +echo $ac_n "checking whether to use LDAP SAM 2.2 compatible configuration""... $ac_c" 1>&6 +echo "configure:12957: checking whether to use LDAP SAM 2.2 compatible configuration" >&5 +# Check whether --with-ldapsam or --without-ldapsam was given. +if test "${with_ldapsam+set}" = set; then + withval="$with_ldapsam" + case "$withval" in + yes) + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +#define WITH_LDAP_SAMCONFIG 1 +EOF + + ;; + *) + echo "$ac_t""no" 1>&6 + ;; + esac +else + echo "$ac_t""no" 1>&6 + +fi + + ################################################# # check for a TDB password database echo $ac_n "checking whether to use TDB SAM database""... $ac_c" 1>&6 -echo "configure:12955: checking whether to use TDB SAM database" >&5 +echo "configure:12982: checking whether to use TDB SAM database" >&5 # Check whether --with-tdbsam or --without-tdbsam was given. if test "${with_tdbsam+set}" = set; then withval="$with_tdbsam" @@ -12976,7 +13003,7 @@ fi ################################################# # check for a NISPLUS password database echo $ac_n "checking whether to use NISPLUS SAM database""... $ac_c" 1>&6 -echo "configure:12980: checking whether to use NISPLUS SAM database" >&5 +echo "configure:13007: checking whether to use NISPLUS SAM database" >&5 # Check whether --with-nisplussam or --without-nisplussam was given. if test "${with_nisplussam+set}" = set; then withval="$with_nisplussam" @@ -13007,7 +13034,7 @@ fi ################################################# # check for a NISPLUS_HOME support echo $ac_n "checking whether to use NISPLUS_HOME""... $ac_c" 1>&6 -echo "configure:13011: checking whether to use NISPLUS_HOME" >&5 +echo "configure:13038: checking whether to use NISPLUS_HOME" >&5 # Check whether --with-nisplus-home or --without-nisplus-home was given. if test "${with_nisplus_home+set}" = set; then withval="$with_nisplus_home" @@ -13032,7 +13059,7 @@ fi ################################################# # check for syslog logging echo $ac_n "checking whether to use syslog logging""... $ac_c" 1>&6 -echo "configure:13036: checking whether to use syslog logging" >&5 +echo "configure:13063: checking whether to use syslog logging" >&5 # Check whether --with-syslog or --without-syslog was given. if test "${with_syslog+set}" = set; then withval="$with_syslog" @@ -13057,7 +13084,7 @@ fi ################################################# # check for a shared memory profiling support echo $ac_n "checking whether to use profiling""... $ac_c" 1>&6 -echo "configure:13061: checking whether to use profiling" >&5 +echo "configure:13088: checking whether to use profiling" >&5 # Check whether --with-profiling-data or --without-profiling-data was given. if test "${with_profiling_data+set}" = set; then withval="$with_profiling_data" @@ -13085,7 +13112,7 @@ fi QUOTAOBJS=smbd/noquotas.o echo $ac_n "checking whether to support disk-quotas""... $ac_c" 1>&6 -echo "configure:13089: checking whether to support disk-quotas" >&5 +echo "configure:13116: checking whether to support disk-quotas" >&5 # Check whether --with-quotas or --without-quotas was given. if test "${with_quotas+set}" = set; then withval="$with_quotas" @@ -13096,13 +13123,13 @@ if test "${with_quotas+set}" = set; then *linux*) # Check for kernel 2.4.x quota braindamage... echo $ac_n "checking for linux 2.4.x quota braindamage..""... $ac_c" 1>&6 -echo "configure:13100: checking for linux 2.4.x quota braindamage.." >&5 +echo "configure:13127: checking for linux 2.4.x quota braindamage.." >&5 if eval "test \"`echo '$''{'samba_cv_linux_2_4_quota_braindamage'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -13114,7 +13141,7 @@ int main() { struct mem_dqblk D; ; return 0; } EOF -if { (eval echo configure:13118: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_linux_2_4_quota_braindamage=yes else @@ -13163,7 +13190,7 @@ fi # check for experimental utmp accounting echo $ac_n "checking whether to support utmp accounting""... $ac_c" 1>&6 -echo "configure:13167: checking whether to support utmp accounting" >&5 +echo "configure:13194: checking whether to support utmp accounting" >&5 # Check whether --with-utmp or --without-utmp was given. if test "${with_utmp+set}" = set; then withval="$with_utmp" @@ -13188,7 +13215,7 @@ fi ################################################# # choose native language(s) of man pages echo $ac_n "checking chosen man pages' language(s)""... $ac_c" 1>&6 -echo "configure:13192: checking chosen man pages' language(s)" >&5 +echo "configure:13219: checking chosen man pages' language(s)" >&5 # Check whether --with-manpages-langs or --without-manpages-langs was given. if test "${with_manpages_langs+set}" = set; then withval="$with_manpages_langs" @@ -13219,7 +13246,7 @@ fi LIBSMBCLIENT_SHARED= LIBSMBCLIENT= echo $ac_n "checking whether to build the libsmbclient shared library""... $ac_c" 1>&6 -echo "configure:13223: checking whether to build the libsmbclient shared library" >&5 +echo "configure:13250: checking whether to build the libsmbclient shared library" >&5 # Check whether --with-libsmbclient or --without-libsmbclient was given. if test "${with_libsmbclient+set}" = set; then withval="$with_libsmbclient" @@ -13247,14 +13274,14 @@ fi ################################################# # these tests are taken from the GNU fileutils package echo "checking how to get filesystem space usage" 1>&6 -echo "configure:13251: checking how to get filesystem space usage" >&5 +echo "configure:13278: checking how to get filesystem space usage" >&5 space=no # Test for statvfs64. if test $space = no; then # SVR4 echo $ac_n "checking statvfs64 function (SVR4)""... $ac_c" 1>&6 -echo "configure:13258: checking statvfs64 function (SVR4)" >&5 +echo "configure:13285: checking statvfs64 function (SVR4)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_statvfs64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13262,7 +13289,7 @@ else fu_cv_sys_stat_statvfs64=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then fu_cv_sys_stat_statvfs64=yes else @@ -13309,12 +13336,12 @@ fi if test $space = no; then # SVR4 echo $ac_n "checking statvfs function (SVR4)""... $ac_c" 1>&6 -echo "configure:13313: checking statvfs function (SVR4)" >&5 +echo "configure:13340: checking statvfs function (SVR4)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_statvfs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -13322,7 +13349,7 @@ int main() { struct statvfs fsd; statvfs (0, &fsd); ; return 0; } EOF -if { (eval echo configure:13326: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* fu_cv_sys_stat_statvfs=yes else @@ -13347,7 +13374,7 @@ fi if test $space = no; then # DEC Alpha running OSF/1 echo $ac_n "checking for 3-argument statfs function (DEC OSF/1)""... $ac_c" 1>&6 -echo "configure:13351: checking for 3-argument statfs function (DEC OSF/1)" >&5 +echo "configure:13378: checking for 3-argument statfs function (DEC OSF/1)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_statfs3_osf1'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13355,7 +13382,7 @@ else fu_cv_sys_stat_statfs3_osf1=no else cat > conftest.$ac_ext < @@ -13368,7 +13395,7 @@ else exit (statfs (".", &fsd, sizeof (struct statfs))); } EOF -if { (eval echo configure:13372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then fu_cv_sys_stat_statfs3_osf1=yes else @@ -13395,7 +13422,7 @@ fi if test $space = no; then # AIX echo $ac_n "checking for two-argument statfs with statfs.bsize member (AIX, 4.3BSD)""... $ac_c" 1>&6 -echo "configure:13399: checking for two-argument statfs with statfs.bsize member (AIX, 4.3BSD)" >&5 +echo "configure:13426: checking for two-argument statfs with statfs.bsize member (AIX, 4.3BSD)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_statfs2_bsize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13403,7 +13430,7 @@ else fu_cv_sys_stat_statfs2_bsize=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then fu_cv_sys_stat_statfs2_bsize=yes else @@ -13449,7 +13476,7 @@ fi if test $space = no; then # SVR3 echo $ac_n "checking for four-argument statfs (AIX-3.2.5, SVR3)""... $ac_c" 1>&6 -echo "configure:13453: checking for four-argument statfs (AIX-3.2.5, SVR3)" >&5 +echo "configure:13480: checking for four-argument statfs (AIX-3.2.5, SVR3)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_statfs4'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13457,7 +13484,7 @@ else fu_cv_sys_stat_statfs4=no else cat > conftest.$ac_ext < #include @@ -13467,7 +13494,7 @@ else exit (statfs (".", &fsd, sizeof fsd, 0)); } EOF -if { (eval echo configure:13471: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then fu_cv_sys_stat_statfs4=yes else @@ -13494,7 +13521,7 @@ fi if test $space = no; then # 4.4BSD and NetBSD echo $ac_n "checking for two-argument statfs with statfs.fsize member (4.4BSD and NetBSD)""... $ac_c" 1>&6 -echo "configure:13498: checking for two-argument statfs with statfs.fsize member (4.4BSD and NetBSD)" >&5 +echo "configure:13525: checking for two-argument statfs with statfs.fsize member (4.4BSD and NetBSD)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_statfs2_fsize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13502,7 +13529,7 @@ else fu_cv_sys_stat_statfs2_fsize=no else cat > conftest.$ac_ext < #ifdef HAVE_SYS_PARAM_H @@ -13518,7 +13545,7 @@ else exit (statfs (".", &fsd)); } EOF -if { (eval echo configure:13522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then fu_cv_sys_stat_statfs2_fsize=yes else @@ -13545,7 +13572,7 @@ fi if test $space = no; then # Ultrix echo $ac_n "checking for two-argument statfs with struct fs_data (Ultrix)""... $ac_c" 1>&6 -echo "configure:13549: checking for two-argument statfs with struct fs_data (Ultrix)" >&5 +echo "configure:13576: checking for two-argument statfs with struct fs_data (Ultrix)" >&5 if eval "test \"`echo '$''{'fu_cv_sys_stat_fs_data'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13553,7 +13580,7 @@ else fu_cv_sys_stat_fs_data=no else cat > conftest.$ac_ext < #ifdef HAVE_SYS_PARAM_H @@ -13573,7 +13600,7 @@ else exit (statfs (".", &fsd) != 1); } EOF -if { (eval echo configure:13577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then fu_cv_sys_stat_fs_data=yes else @@ -13606,9 +13633,9 @@ fi # file support. # echo $ac_n "checking if large file support can be enabled""... $ac_c" 1>&6 -echo "configure:13610: checking if large file support can be enabled" >&5 +echo "configure:13637: checking if large file support can be enabled" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes else @@ -13686,7 +13713,7 @@ fi # check for ACL support echo $ac_n "checking whether to support ACLs""... $ac_c" 1>&6 -echo "configure:13690: checking whether to support ACLs" >&5 +echo "configure:13717: checking whether to support ACLs" >&5 # Check whether --with-acl-support or --without-acl-support was given. if test "${with_acl_support+set}" = set; then withval="$with_acl_support" @@ -13739,7 +13766,7 @@ EOF ;; *) echo $ac_n "checking for acl_get_file in -lacl""... $ac_c" 1>&6 -echo "configure:13743: checking for acl_get_file in -lacl" >&5 +echo "configure:13770: checking for acl_get_file in -lacl" >&5 ac_lib_var=`echo acl'_'acl_get_file | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13747,7 +13774,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lacl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -13786,13 +13813,13 @@ else fi echo $ac_n "checking for ACL support""... $ac_c" 1>&6 -echo "configure:13790: checking for ACL support" >&5 +echo "configure:13817: checking for ACL support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_POSIX_ACLS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -13800,7 +13827,7 @@ int main() { acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p); ; return 0; } EOF -if { (eval echo configure:13804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_POSIX_ACLS=yes else @@ -13820,13 +13847,13 @@ echo "$ac_t""$samba_cv_HAVE_POSIX_ACLS" 1>&6 EOF echo $ac_n "checking for acl_get_perm_np""... $ac_c" 1>&6 -echo "configure:13824: checking for acl_get_perm_np" >&5 +echo "configure:13851: checking for acl_get_perm_np" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_ACL_GET_PERM_NP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -13834,7 +13861,7 @@ int main() { acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm); ; return 0; } EOF -if { (eval echo configure:13838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_ACL_GET_PERM_NP=yes else @@ -13879,7 +13906,7 @@ fi # check for sendfile support echo $ac_n "checking whether to support sendfile""... $ac_c" 1>&6 -echo "configure:13883: checking whether to support sendfile" >&5 +echo "configure:13910: checking whether to support sendfile" >&5 # Check whether --with-sendfile-support or --without-sendfile-support was given. if test "${with_sendfile_support+set}" = set; then withval="$with_sendfile_support" @@ -13889,13 +13916,13 @@ if test "${with_sendfile_support+set}" = set; then case "$host_os" in *linux*) echo $ac_n "checking for linux sendfile64 support""... $ac_c" 1>&6 -echo "configure:13893: checking for linux sendfile64 support" >&5 +echo "configure:13920: checking for linux sendfile64 support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SENDFILE64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { @@ -13907,7 +13934,7 @@ ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total); ; return 0; } EOF -if { (eval echo configure:13911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_SENDFILE64=yes else @@ -13922,13 +13949,13 @@ fi echo "$ac_t""$samba_cv_HAVE_SENDFILE64" 1>&6 echo $ac_n "checking for linux sendfile support""... $ac_c" 1>&6 -echo "configure:13926: checking for linux sendfile support" >&5 +echo "configure:13953: checking for linux sendfile support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SENDFILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { @@ -13940,7 +13967,7 @@ ssize_t nwritten = sendfile(tofd, fromfd, &offset, total); ; return 0; } EOF -if { (eval echo configure:13944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_SENDFILE=yes else @@ -13956,13 +13983,13 @@ echo "$ac_t""$samba_cv_HAVE_SENDFILE" 1>&6 # Try and cope with broken Linux sendfile.... echo $ac_n "checking for broken linux sendfile support""... $ac_c" 1>&6 -echo "configure:13960: checking for broken linux sendfile support" >&5 +echo "configure:13987: checking for broken linux sendfile support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_BROKEN_LINUX_SENDFILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes else @@ -14034,13 +14061,13 @@ EOF ;; *freebsd*) echo $ac_n "checking for freebsd sendfile support""... $ac_c" 1>&6 -echo "configure:14038: checking for freebsd sendfile support" >&5 +echo "configure:14065: checking for freebsd sendfile support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SENDFILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -14062,7 +14089,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_SENDFILE=yes else @@ -14096,13 +14123,13 @@ EOF *hpux*) echo $ac_n "checking for hpux sendfile64 support""... $ac_c" 1>&6 -echo "configure:14100: checking for hpux sendfile64 support" >&5 +echo "configure:14127: checking for hpux sendfile64 support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SENDFILE64'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -14122,7 +14149,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_SENDFILE64=yes else @@ -14153,13 +14180,13 @@ EOF fi echo $ac_n "checking for hpux sendfile support""... $ac_c" 1>&6 -echo "configure:14157: checking for hpux sendfile support" >&5 +echo "configure:14184: checking for hpux sendfile support" >&5 if eval "test \"`echo '$''{'samba_cv_HAVE_SENDFILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -14179,7 +14206,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14210: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* samba_cv_HAVE_SENDFILE=yes else @@ -14232,7 +14259,7 @@ fi # (WINBIND_STARGETS) and shared libraries (WINBIND_LTARGETS). echo $ac_n "checking whether to build winbind""... $ac_c" 1>&6 -echo "configure:14236: checking whether to build winbind" >&5 +echo "configure:14263: checking whether to build winbind" >&5 # Initially, the value of $host_os decides whether winbind is supported @@ -14328,20 +14355,20 @@ fi # [#include ]) echo $ac_n "checking whether struct passwd has pw_comment""... $ac_c" 1>&6 -echo "configure:14332: checking whether struct passwd has pw_comment" >&5 +echo "configure:14359: checking whether struct passwd has pw_comment" >&5 if eval "test \"`echo '$''{'samba_cv_passwd_pw_comment'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { struct passwd p; p.pw_comment; ; return 0; } EOF -if { (eval echo configure:14345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_passwd_pw_comment=yes else @@ -14366,20 +14393,20 @@ fi # [#include ]) echo $ac_n "checking whether struct passwd has pw_age""... $ac_c" 1>&6 -echo "configure:14370: checking whether struct passwd has pw_age" >&5 +echo "configure:14397: checking whether struct passwd has pw_age" >&5 if eval "test \"`echo '$''{'samba_cv_passwd_pw_age'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { struct passwd p; p.pw_age; ; return 0; } EOF -if { (eval echo configure:14383: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* samba_cv_passwd_pw_age=yes else @@ -14418,7 +14445,7 @@ fi if test x"$INCLUDED_POPT" != x"yes"; then echo $ac_n "checking for poptGetContext in -lpopt""... $ac_c" 1>&6 -echo "configure:14422: checking for poptGetContext in -lpopt" >&5 +echo "configure:14449: checking for poptGetContext in -lpopt" >&5 ac_lib_var=`echo popt'_'poptGetContext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -14426,7 +14453,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lpopt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14461,7 +14488,7 @@ fi fi echo $ac_n "checking whether to use included popt""... $ac_c" 1>&6 -echo "configure:14465: checking whether to use included popt" >&5 +echo "configure:14492: checking whether to use included popt" >&5 if test x"$INCLUDED_POPT" = x"yes"; then echo "$ac_t""yes" 1>&6 BUILD_POPT='$(POPT_OBJS)' @@ -14507,16 +14534,16 @@ fi # final configure stuff echo $ac_n "checking configure summary""... $ac_c" 1>&6 -echo "configure:14511: checking configure summary" >&5 +echo "configure:14538: checking configure summary" >&5 if test "$cross_compiling" = yes; then echo "configure: warning: cannot run when cross-compiling" 1>&2 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:14547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then echo "$ac_t""yes" 1>&6 else diff --git a/source3/configure.in b/source3/configure.in index 5221b8ec2b..faa7a2d6fa 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -2215,6 +2215,23 @@ AC_ARG_WITH(sam, ## ######################################################################################## +################################################# +# check for a LDAP password database configuration backwards compatibility +AC_MSG_CHECKING(whether to use LDAP SAM 2.2 compatible configuration) +AC_ARG_WITH(ldapsam, +[ --with-ldapsam Include LDAP SAM 2.2 compatible configuration (default=no)], +[ case "$withval" in + yes) + AC_MSG_RESULT(yes) + AC_DEFINE(WITH_LDAP_SAMCONFIG) + ;; + *) + AC_MSG_RESULT(no) + ;; + esac ], + AC_MSG_RESULT(no) +) + ################################################# # check for a TDB password database AC_MSG_CHECKING(whether to use TDB SAM database) diff --git a/source3/include/config.h.in b/source3/include/config.h.in index 770af1a6b5..617cf0c5fa 100644 --- a/source3/include/config.h.in +++ b/source3/include/config.h.in @@ -233,7 +233,7 @@ #undef HAVE_IMMEDIATE_STRUCTURES #undef HAVE_CUPS #undef WITH_SAM -#undef WITH_LDAP_SAM +#undef WITH_LDAP_SAMCONFIG #undef WITH_NISPLUS_SAM #undef WITH_TDB_SAM #undef LINUX_QUOTAS_1 diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index c484439837..ba16d68624 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -207,6 +207,10 @@ typedef struct int iLockSpinTime; char *szLdapMachineSuffix; char *szLdapUserSuffix; +#ifdef WITH_LDAP_SAMCONFIG + int ldap_port; + char *szLdapServer; +#endif int ldap_ssl; char *szLdapSuffix; char *szLdapFilter; @@ -1003,6 +1007,10 @@ static struct parm_struct parm_table[] = { {"Ldap Options", P_SEP, P_SEPARATOR}, +#ifdef WITH_LDAP_SAMCONFIG + {"ldap server", P_STRING, P_GLOBAL, &Globals.szLdapServer, NULL, NULL, 0}, + {"ldap port", P_INTEGER, P_GLOBAL, &Globals.ldap_port, NULL, NULL, 0}, +#endif {"ldap suffix", P_STRING, P_GLOBAL, &Globals.szLdapSuffix, handle_ldap_suffix, NULL, FLAG_ADVANCED | FLAG_DEVELOPER}, {"ldap machine suffix", P_STRING, P_GLOBAL, &Globals.szLdapMachineSuffix, handle_ldap_machine_suffix, NULL, FLAG_ADVANCED | FLAG_DEVELOPER}, {"ldap user suffix", P_STRING, P_GLOBAL, &Globals.szLdapUserSuffix, handle_ldap_user_suffix, NULL, FLAG_ADVANCED | FLAG_DEVELOPER}, @@ -1367,6 +1375,11 @@ static void init_globals(void) a large number of sites (tridge) */ Globals.bHostnameLookups = False; +#ifdef WITH_LDAP_SAMCONFIG + string_set(&Globals.szLdapServer, "localhost"); + Globals.ldap_port = 636; +#endif /* WITH_LDAP_SAMCONFIG */ + string_set(&Globals.szLdapSuffix, ""); string_set(&Globals.szLdapMachineSuffix, ""); string_set(&Globals.szLdapUserSuffix, ""); @@ -1582,6 +1595,11 @@ FN_GLOBAL_STRING(lp_winbind_separator, &Globals.szWinbindSeparator) FN_GLOBAL_BOOL(lp_winbind_enum_users, &Globals.bWinbindEnumUsers) FN_GLOBAL_BOOL(lp_winbind_enum_groups, &Globals.bWinbindEnumGroups) FN_GLOBAL_BOOL(lp_winbind_use_default_domain, &Globals.bWinbindUseDefaultDomain) + +#ifdef WITH_LDAP_SAMCONFIG +FN_GLOBAL_STRING(lp_ldap_server, &Globals.szLdapServer) +FN_GLOBAL_INTEGER(lp_ldap_port, &Globals.ldap_port) +#endif FN_GLOBAL_STRING(lp_ldap_suffix, &Globals.szLdapSuffix) FN_GLOBAL_STRING(lp_ldap_machine_suffix, &Globals.szLdapMachineSuffix) FN_GLOBAL_STRING(lp_ldap_user_suffix, &Globals.szLdapUserSuffix) diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c index c7badb50e7..a10e6f2989 100644 --- a/source3/passdb/pdb_ldap.c +++ b/source3/passdb/pdb_ldap.c @@ -954,9 +954,9 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, make_a_mod(mods, ldap_op, "primaryGroupID", temp); /* displayName, cn, and gecos should all be the same - * most easily accomplished by giving them the same OID - * gecos isn't set here b/c it should be handled by the - * add-user script + * most easily accomplished by giving them the same OID + * gecos isn't set here b/c it should be handled by the + * add-user script */ make_a_mod(mods, ldap_op, "displayName", pdb_get_fullname(sampass)); @@ -1730,8 +1730,23 @@ NTSTATUS pdb_init_ldapsam(PDB_CONTEXT *pdb_context, PDB_METHODS **pdb_method, co if (location) { ldap_state->uri = talloc_strdup(pdb_context->mem_ctx, location); +#ifdef WITH_LDAP_SAMCONFIG } else { - ldap_state->uri = "ldap://localhost"; + int ldap_port = lp_ldap_port(); + + /* remap default port is no SSL */ + if ( (lp_ldap_ssl() == LDAP_SSL_OFF) && (ldap_port == 636) ) { + ldap_port = 389; + } + + ldap_state->uri = talloc_asprintf(pdb_context->mem_ctx, "%s://%s:%d", lp_ldap_ssl() ? "ldap" : "ldaps", lp_ldap_server(), ldap_port); + if (!ldap_state->uri) { + return NT_STATUS_NO_MEMORY; + } +#else + } else { + ldap_state->uri = "ldaps://localhost"; +#endif } (*pdb_method)->private_data = ldap_state; -- cgit From a5731907d2b0a154f930d12943c55d4969fcdf6e Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 27 Sep 2002 02:09:57 +0000 Subject: When compiled --with-ldapsam, make ldapsam the default passdb backend. This is to allow painless upgrades from 2.2, and so people don't get a shock when they follow old docs. If ldap has been detected on the system, ldapsam is always available, just not the default. Andrew Bartlett (This used to be commit 0a6a0c88d0972fcea4aead7115929f96c0d23cbc) --- source3/param/loadparm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index ba16d68624..eb910a1245 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -1252,7 +1252,6 @@ static void init_globals(void) string_set(&Globals.szSMBPasswdFile, dyn_SMB_PASSWD_FILE); string_set(&Globals.szPrivateDir, dyn_PRIVATE_DIR); - Globals.szPassdbBackend = str_list_make("smbpasswd unixsam", NULL); /* use the new 'hash2' method by default */ string_set(&Globals.szManglingMethod, "hash2"); @@ -1378,6 +1377,9 @@ static void init_globals(void) #ifdef WITH_LDAP_SAMCONFIG string_set(&Globals.szLdapServer, "localhost"); Globals.ldap_port = 636; + Globals.szPassdbBackend = str_list_make("ldapsam unixsam", NULL); +#else + Globals.szPassdbBackend = str_list_make("smbpasswd unixsam", NULL); #endif /* WITH_LDAP_SAMCONFIG */ string_set(&Globals.szLdapSuffix, ""); -- cgit From ac5094292767137d9f1d7573485843720275eec1 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 27 Sep 2002 02:11:54 +0000 Subject: Fix typo (This used to be commit 42c7ecd3d5dc5eb8ff690635946a403a82ebb270) --- source3/utils/smbgroupedit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source3/utils/smbgroupedit.c b/source3/utils/smbgroupedit.c index 35285452a0..589dafc231 100644 --- a/source3/utils/smbgroupedit.c +++ b/source3/utils/smbgroupedit.c @@ -52,7 +52,7 @@ static void usage(void) printf(" -c SID change group\n"); printf(" -u unix group\n"); printf(" -d description group description\n"); - printf(" -r rid RID of new group\n") + printf(" -r rid RID of new group\n"); printf(" -x group delete this group\n"); printf("\n"); printf(" -t[b|d|l] type: builtin, domain, local \n"); -- cgit From af8b3466770c7fcf751d9a036ff88a884f516b13 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 27 Sep 2002 02:13:07 +0000 Subject: I missed committing this - all updates to configure.in adding --with-foo options need a matching entry in acconfig.h to actually do anything... Andrew Bartlett (This used to be commit 4636809153987f03b14a27dba175cb1511c2d460) --- source3/acconfig.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source3/acconfig.h b/source3/acconfig.h index 45d6366935..a5bf16279c 100644 --- a/source3/acconfig.h +++ b/source3/acconfig.h @@ -167,7 +167,7 @@ #undef HAVE_IMMEDIATE_STRUCTURES #undef HAVE_CUPS #undef WITH_SAM -#undef WITH_LDAP_SAM +#undef WITH_LDAP_SAMCONFIG #undef WITH_NISPLUS_SAM #undef WITH_TDB_SAM #undef LINUX_QUOTAS_1 -- cgit From 55b6cebbd49be484fb6dcde2f8cb8412bb116276 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 27 Sep 2002 03:05:20 +0000 Subject: Some small cleanups to the libads code (mainly error checking), and give a sane prototype for the push_utf8_allocate code. Andrew Bartlett (This used to be commit ce00a3238ed8a82639c4d0ee3e960f7000b1a7b0) --- source3/lib/charcnv.c | 4 ++-- source3/libads/ads_status.c | 6 ++++++ source3/libads/ldap.c | 27 ++++++++++++++++++++++----- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/source3/lib/charcnv.c b/source3/lib/charcnv.c index cd8aa4fe55..d0cef52c92 100644 --- a/source3/lib/charcnv.c +++ b/source3/lib/charcnv.c @@ -522,12 +522,12 @@ int push_utf8_talloc(TALLOC_CTX *ctx, char **dest, const char *src) * * @retval The number of bytes occupied by the string in the destination **/ -int push_utf8_allocate(void **dest, const char *src) +int push_utf8_allocate(char **dest, const char *src) { int src_len = strlen(src)+1; *dest = NULL; - return convert_string_allocate(CH_UNIX, CH_UTF8, src, src_len, dest); + return convert_string_allocate(CH_UNIX, CH_UTF8, src, src_len, (void **)dest); } /**************************************************************************** diff --git a/source3/libads/ads_status.c b/source3/libads/ads_status.c index d85f9c9b58..80fdb99eac 100644 --- a/source3/libads/ads_status.c +++ b/source3/libads/ads_status.c @@ -72,6 +72,12 @@ NTSTATUS ads_ntstatus(ADS_STATUS status) if (status.error_type == ADS_ERROR_NT){ return status.err.nt_status; } +#ifdef HAVE_LDAP + if ((status.error_type == ADS_ERROR_LDAP) + && (status.err.rc == LDAP_NO_MEMORY)) { + return NT_STATUS_NO_MEMORY; + } +#endif if (ADS_ERR_OK(status)) return NT_STATUS_OK; return NT_STATUS_UNSUCCESSFUL; } diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c index 7a0afb1a81..b4c7c3970c 100644 --- a/source3/libads/ldap.c +++ b/source3/libads/ldap.c @@ -741,7 +741,11 @@ ADS_STATUS ads_find_machine_acct(ADS_STRUCT *ads, void **res, const char *host) /* the easiest way to find a machine account anywhere in the tree is to look for hostname$ */ - asprintf(&exp, "(samAccountName=%s$)", host); + if (asprintf(&exp, "(samAccountName=%s$)", host) == -1) { + DEBUG(1, ("asprintf failed!\n")); + return ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + } + status = ads_search(ads, res, exp, attrs); free(exp); return status; @@ -898,13 +902,15 @@ ADS_STATUS ads_gen_mod(ADS_STRUCT *ads, const char *mod_dn, ADS_MODLIST mods) controls[0] = &PermitModify; controls[1] = NULL; - push_utf8_allocate((void **) &utf8_dn, mod_dn); + if (push_utf8_allocate(&utf8_dn, mod_dn) == -1) { + return ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + } /* find the end of the list, marked by NULL or -1 */ for(i=0;(mods[i]!=0)&&(mods[i]!=(LDAPMod *) -1);i++); /* make sure the end of the list is NULL */ mods[i] = NULL; - ret = ldap_modify_ext_s(ads->ld, utf8_dn ? utf8_dn : mod_dn, + ret = ldap_modify_ext_s(ads->ld, utf8_dn, (LDAPMod **) mods, controls, NULL); SAFE_FREE(utf8_dn); return ADS_ERROR(ret); @@ -922,7 +928,10 @@ ADS_STATUS ads_gen_add(ADS_STRUCT *ads, const char *new_dn, ADS_MODLIST mods) int ret, i; char *utf8_dn = NULL; - push_utf8_allocate((void **) &utf8_dn, new_dn); + if (push_utf8_allocate(&utf8_dn, new_dn) == -1) { + DEBUG(1, ("ads_gen_add: push_utf8_allocate failed!")); + return ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + } /* find the end of the list, marked by NULL or -1 */ for(i=0;(mods[i]!=0)&&(mods[i]!=(LDAPMod *) -1);i++); @@ -944,7 +953,11 @@ ADS_STATUS ads_del_dn(ADS_STRUCT *ads, char *del_dn) { int ret; char *utf8_dn = NULL; - push_utf8_allocate((void **) &utf8_dn, del_dn); + if (push_utf8_allocate(&utf8_dn, del_dn) == -1) { + DEBUG(1, ("ads_del_dn: push_utf8_allocate failed!")); + return ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + } + ret = ldap_delete(ads->ld, utf8_dn ? utf8_dn : del_dn); return ADS_ERROR(ret); } @@ -991,6 +1004,10 @@ static ADS_STATUS ads_add_machine_acct(ADS_STRUCT *ads, const char *hostname, if (!(host_upn = talloc_asprintf(ctx, "%s@%s", host_spn, ads->config.realm))) goto done; ou_str = ads_ou_string(org_unit); + if (!ou_str) { + DEBUG(1, ("ads_ou_string returned NULL (malloc failure?)\n")); + goto done; + } new_dn = talloc_asprintf(ctx, "cn=%s,%s,%s", hostname, ou_str, ads->config.bind_path); free(ou_str); -- cgit From d95e86b8b938692ced7802fbfd5331d8cd48cd5e Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 27 Sep 2002 04:33:58 +0000 Subject: Minor updates: Add const to some more functions, and reintroduce 'net rpc join oldstyle' as *only* trying an old-style join. This means that we can rely on it not prompting for a password on the build farm. Andrew Bartlett (This used to be commit 31bdbeef0ea6f30247cd3b30cfea57b34102abe6) --- source3/passdb/secrets.c | 8 ++++---- source3/utils/net.c | 7 ++++++- source3/utils/net_rpc.c | 19 ++++++++++++++----- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/source3/passdb/secrets.c b/source3/passdb/secrets.c index 08a0e9c9ac..73201ab62a 100644 --- a/source3/passdb/secrets.c +++ b/source3/passdb/secrets.c @@ -95,7 +95,7 @@ BOOL secrets_delete(const char *key) return tdb_delete(tdb, kbuf) == 0; } -BOOL secrets_store_domain_sid(char *domain, const DOM_SID *sid) +BOOL secrets_store_domain_sid(const char *domain, const DOM_SID *sid) { fstring key; @@ -104,7 +104,7 @@ BOOL secrets_store_domain_sid(char *domain, const DOM_SID *sid) return secrets_store(key, sid, sizeof(DOM_SID)); } -BOOL secrets_fetch_domain_sid(char *domain, DOM_SID *sid) +BOOL secrets_fetch_domain_sid(const char *domain, DOM_SID *sid) { DOM_SID *dyn_sid; fstring key; @@ -128,7 +128,7 @@ BOOL secrets_fetch_domain_sid(char *domain, DOM_SID *sid) return True; } -BOOL secrets_store_domain_guid(char *domain, GUID *guid) +BOOL secrets_store_domain_guid(const char *domain, GUID *guid) { fstring key; @@ -137,7 +137,7 @@ BOOL secrets_store_domain_guid(char *domain, GUID *guid) return secrets_store(key, guid, sizeof(GUID)); } -BOOL secrets_fetch_domain_guid(char *domain, GUID *guid) +BOOL secrets_fetch_domain_guid(const char *domain, GUID *guid) { GUID *dyn_guid; fstring key; diff --git a/source3/utils/net.c b/source3/utils/net.c index 800aeded0a..b3b72e2465 100644 --- a/source3/utils/net.c +++ b/source3/utils/net.c @@ -277,8 +277,13 @@ struct cli_state *net_make_ipc_connection(unsigned flags) } else { nt_status = connect_to_ipc(&cli, &server_ip, server_name); } + SAFE_FREE(server_name); - return cli; + if (NT_STATUS_IS_OK(nt_status)) { + return cli; + } else { + return NULL; + } } static int net_user(int argc, const char **argv) diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c index 8b8278b053..11f73a1387 100644 --- a/source3/utils/net_rpc.c +++ b/source3/utils/net_rpc.c @@ -309,15 +309,24 @@ static int rpc_join_usage(int argc, const char **argv) * Main 'net_rpc_join()' (where the admain username/password is used) is * in net_rpc_join.c * Assume if a -U is specified, it's the new style, otherwise it's the - * old style + * old style. If 'oldstyle' is specfied explicity, do it and don't prompt. **/ int net_rpc_join(int argc, const char **argv) { - if ((net_rpc_join_oldstyle(argc, argv) == 0)) - return 0; - - return net_rpc_join_newstyle(argc, argv); + struct functable func[] = { + {"oldstyle", net_rpc_join_oldstyle}, + {NULL, NULL} + }; + + if (argc == 0) { + if ((net_rpc_join_oldstyle(argc, argv) == 0)) + return 0; + + return net_rpc_join_newstyle(argc, argv); + } + + return net_run_function(argc, argv, func, rpc_join_usage); } -- cgit From 5f662896aaa9a6fb77194252aa612c09935e1930 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 27 Sep 2002 05:29:43 +0000 Subject: Vance picked up a pile of typos etc at the CIFS confernce, and finally got them off his laptop :-) Andrew Bartlett (This used to be commit df8f0338fae01e5edc176708c2b798c67c2e8c36) --- source3/Doxyfile | 8 ++++---- source3/Makefile.in | 2 +- source3/lib/util_str.c | 16 ++++++++-------- source3/param/loadparm.c | 4 ++-- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/source3/Doxyfile b/source3/Doxyfile index fe71065c24..bbdc5da7e7 100644 --- a/source3/Doxyfile +++ b/source3/Doxyfile @@ -124,7 +124,7 @@ MAN_LINKS = NO #--------------------------------------------------------------------------- GENERATE_XML = NO #--------------------------------------------------------------------------- -# Configuration options related to the preprocessor +# configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = NO MACRO_EXPANSION = NO @@ -136,14 +136,14 @@ PREDEFINED = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- -# Configuration::addtions related to external references +# configuration::additions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# configuration options related to the dot tool #--------------------------------------------------------------------------- HAVE_DOT = YES CLASS_GRAPH = YES @@ -159,7 +159,7 @@ MAX_DOT_GRAPH_HEIGHT = 1024 GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- -# Configuration::addtions related to the search engine +# configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO CGI_NAME = search.cgi diff --git a/source3/Makefile.in b/source3/Makefile.in index f3d9b7ec09..bd09ee55c8 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -70,7 +70,7 @@ SWATDIR = @swatdir@ # the directory where lock files go LOCKDIR = @lockdir@ -# the directorty where pid files go +# the directory where pid files go PIDDIR = @piddir@ # man pages language(s) man_langs = "@manlangs@" diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c index 19d92eec8f..75338de4d3 100644 --- a/source3/lib/util_str.c +++ b/source3/lib/util_str.c @@ -468,7 +468,7 @@ char *alpha_strcpy(char *dest, const char *src, const char *other_safe_chars, si for(i = 0; i < len; i++) { int val = (src[i] & 0xff); - if(isupper(val) || islower(val) || isdigit(val) || strchr_m(other_safe_chars, val)) + if (isupper(val) || islower(val) || isdigit(val) || strchr_m(other_safe_chars, val)) dest[i] = src[i]; else dest[i] = '_'; @@ -501,7 +501,7 @@ char *StrnCpy(char *dest,const char *src,size_t n) like strncpy but copies up to the character marker. always null terminates. returns a pointer to the character marker in the source string (src). ****************************************************************************/ -char *strncpyn(char *dest, const char *src,size_t n, char c) +char *strncpyn(char *dest, const char *src, size_t n, char c) { char *p; size_t str_len; @@ -643,8 +643,8 @@ void string_free(char **s) } /**************************************************************************** -set a string value, allocing the space for the string, and deallocating any -existing space +set a string value, deallocating any existing space, and allocing the space +for the string ****************************************************************************/ BOOL string_set(char **dest,const char *src) { @@ -724,7 +724,7 @@ void pstring_sub(char *s,const char *pattern,const char *insert) /* similar to string_sub, but it will accept only allocated strings * and may realloc them so pay attention at what you pass on no - * pointers inside strings, no pstrings or const must be passed + * pointers inside strings, no pstrings or const may be passed * as string. */ @@ -830,7 +830,7 @@ void all_string_sub(char *s,const char *pattern,const char *insert, size_t len) /**************************************************************************** similar to all_string_sub but for unicode strings. -return a new allocate unicode string. +return a new allocated unicode string. similar to string_sub() but allows for any character to be substituted. Use with caution! ****************************************************************************/ @@ -1203,7 +1203,7 @@ BOOL str_list_copy(char ***dest, char **src) lsize += S_LIST_ABS; rlist = (char **)Realloc(list, ((sizeof(char **)) * (lsize +1))); if (!rlist) { - DEBUG(0,("str_list_copy: Unable to allocate memory")); + DEBUG(0,("str_list_copy: Unable to re-allocate memory")); str_list_free(&list); return False; } @@ -1225,7 +1225,7 @@ BOOL str_list_copy(char ***dest, char **src) return True; } -/* return true if all the elemnts of the list matches exactly */ +/* return true if all the elements of the list match exactly */ BOOL str_list_compare(char **list1, char **list2) { diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index eb910a1245..67276befec 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -600,7 +600,7 @@ static struct enum_list enum_ldap_ssl[] = { {LDAP_SSL_OFF, "off"}, {LDAP_SSL_OFF, "Off"}, {LDAP_SSL_START_TLS, "start tls"}, - {LDAP_SSL_START_TLS, "start_tls"}, + {LDAP_SSL_START_TLS, "Start_tls"}, {-1, NULL} }; @@ -1185,7 +1185,7 @@ static void init_printer_values(void) "lp -i %p-%j -H hold"); string_set(&sDefault.szLpresumecommand, "lp -i %p-%j -H resume"); -#endif /* SYSV */ +#endif /* HPUX */ break; case PRINT_QNX: -- cgit From ccaba8c7dba70498365594637dcf8b663bbbda6e Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 27 Sep 2002 06:45:23 +0000 Subject: Doco patch from metze. This reformats the 'ldap ssl' docs, and add doco for the new 'ldap passwd sync' option. Andrew Bartlett (This used to be commit 4d20cf56f2fbe60f2dfa2ae62de1f132f24348aa) --- docs/docbook/manpages/smb.conf.5.sgml | 44 ++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/docs/docbook/manpages/smb.conf.5.sgml b/docs/docbook/manpages/smb.conf.5.sgml index 89ffa0934a..cc521d358d 100644 --- a/docs/docbook/manpages/smb.conf.5.sgml +++ b/docs/docbook/manpages/smb.conf.5.sgml @@ -656,8 +656,9 @@ ldap filter ldap ssl ldap suffix - ldap suffix - ldap suffix + ldap user suffix + ldap machine suffix + ldap passwd sync lm announce lm interval @@ -3484,13 +3485,16 @@ The ldap ssl can be set to one of three values: - (a) on - Always use SSL when contacting the - ldap server, (b) off - - Never use SSL when querying the directory, or (c) start_tls - - Use the LDAPv3 StartTLS extended operation - (RFC2830) for communicating with the directory server. - - + + + On = Always use SSL when contacting the + ldap server. + + Off = Never use SSL when querying the directory. + + Start_tls = Use the LDAPv3 StartTLS extended operation + (RFC2830) for communicating with the directory server. + Default : ldap ssl = on @@ -3533,7 +3537,29 @@ + + ldap passwd sync (G) + This option is used to define whether + or not Samba should sync the LDAP password with the NT + and LM hashes for normal accounts (NOT for + workstation, server or domain trusts) on a password + change via SAMBA. + + + The ldap passwd sync can be set to one of three values: + + + Yes = Try to update the LDAP, NT and LM passwords and update the pwdLastSet time. + + No = Update NT and LM passwords and update the pwdLastSet time. + + Only = Only update the LDAP password and let the LDAP server do the rest. + + + Default : ldap passwd sync = no + + -- cgit From e9878f0bbe0193f1d3ba9eeab5df5a866e40fcf3 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Fri, 27 Sep 2002 07:02:43 +0000 Subject: Do not update manpages directly... (This used to be commit 685387b0109e880e30191fbea0aad1e5c677273a) --- docs/docbook/manpages/smb.conf.5.sgml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/docbook/manpages/smb.conf.5.sgml b/docs/docbook/manpages/smb.conf.5.sgml index cc521d358d..0c565e7e51 100644 --- a/docs/docbook/manpages/smb.conf.5.sgml +++ b/docs/docbook/manpages/smb.conf.5.sgml @@ -1139,7 +1139,16 @@ add group script (G) This is the full pathname to a script that will - be run AS ROOT by smbd(8) when a new group is requested. It will expand any %g to the group name passed. This script is only useful for installations using the Windows NT domain administration tools. + be run AS ROOT by smbd(8) when a new group is + requested. It will expand any + %g to the group name passed. + This script is only useful for installations using the + Windows NT domain administration tools. The script is + free to create a group with an arbitrary name to + circumvent unix group name restrictions. In that case + the script must print the numeric gid of the created + group on stdout. -- cgit From dc262e3f39ec41576a586332b01e183b5583d3a6 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Fri, 27 Sep 2002 09:47:02 +0000 Subject: An example of a group creation command that can handle failures of groupadd. Volker (This used to be commit 3f78923a6feefffae6203d27a765b2a8cf3c5c24) --- source3/script/creategroup | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100755 source3/script/creategroup diff --git a/source3/script/creategroup b/source3/script/creategroup new file mode 100755 index 0000000000..01fb065944 --- /dev/null +++ b/source3/script/creategroup @@ -0,0 +1,27 @@ +#!/bin/sh + +# Example script for 'add group command'. Handle weird NT group +# names. First attempt to create the group directly, if that fails +# then create a random group and print the numeric group id. +# +# Note that this is only an example and assumes /dev/urandom. +# +# Volker + +GROUPNAME="$1" +ITERS=0 + +while ! /usr/sbin/groupadd "$GROUPNAME" > /dev/null 2>&1 +do + # we had difficulties creating that group. Maybe the name was + # too weird, or it already existed. Create a random name. + GROUPNAME=nt-$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | md5sum | cut -b 1-5) + ITERS=$(expr "$ITERS" + 1) + if [ "$ITERS" -gt 10 ] + then + # Too many attempts + exit 1 + fi +done + +getent group | grep ^"$GROUPNAME": | cut -d : -f 3 -- cgit From 7e4afe538147bf31689f47232d5f2b04830dda1d Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 27 Sep 2002 12:23:47 +0000 Subject: Move a number of ADS related functions out into utility libs, so that things like metze's sam_ads can also use them. Also add error checking etc to a few more functions. Andrew Bartlett (This used to be commit c864edf4fbf8a6c37888a14b861d7c12cf503d4f) --- source3/Makefile.in | 3 +- source3/libads/ads_ldap.c | 145 +++++++++++++++++++++++++++++ source3/libads/ads_utils.c | 20 +++- source3/libads/kerberos.c | 9 +- source3/libads/ldap.c | 99 +++++++++++++++----- source3/libads/ldap_utils.c | 90 ++++++++++++++++++ source3/nsswitch/winbindd_ads.c | 197 +++------------------------------------- 7 files changed, 345 insertions(+), 218 deletions(-) create mode 100644 source3/libads/ads_ldap.c create mode 100644 source3/libads/ldap_utils.c diff --git a/source3/Makefile.in b/source3/Makefile.in index bd09ee55c8..32c2e3f70f 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -154,7 +154,8 @@ PARAM_OBJ = param/loadparm.o param/params.o dynconfig.o LIBADS_OBJ = libads/ldap.o libads/ldap_printer.o libads/sasl.o \ libads/krb5_setpw.o libads/kerberos.o libads/ldap_user.o \ libads/ads_struct.o libads/ads_status.o \ - libads/disp_sec.o libads/ads_utils.o + libads/disp_sec.o libads/ads_utils.o libads/ldap_utils.o \ + libads/ads_ldap.o LIBADS_SERVER_OBJ = libads/util.o libads/kerberos_verify.o diff --git a/source3/libads/ads_ldap.c b/source3/libads/ads_ldap.c new file mode 100644 index 0000000000..8c39a89762 --- /dev/null +++ b/source3/libads/ads_ldap.c @@ -0,0 +1,145 @@ +/* + Unix SMB/CIFS implementation. + + Winbind ADS backend functions + + Copyright (C) Andrew Tridgell 2001 + Copyright (C) Andrew Bartlett 2002 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" +#ifdef HAVE_LDAP + +/* convert a single name to a sid in a domain */ +NTSTATUS ads_name_to_sid(ADS_STRUCT *ads, + const char *name, + DOM_SID *sid, + enum SID_NAME_USE *type) +{ + const char *attrs[] = {"objectSid", "sAMAccountType", NULL}; + int count; + ADS_STATUS rc; + void *res = NULL; + char *exp; + uint32 t; + NTSTATUS status = NT_STATUS_UNSUCCESSFUL; + + if (asprintf(&exp, "(|(sAMAccountName=%s)(userPrincipalName=%s@%s))", + name, name, ads->config.realm) == -1) { + DEBUG(1,("ads_name_to_sid: asprintf failed!\n")); + status = NT_STATUS_NO_MEMORY; + goto done; + } + + rc = ads_search_retry(ads, &res, exp, attrs); + free(exp); + if (!ADS_ERR_OK(rc)) { + DEBUG(1,("name_to_sid ads_search: %s\n", ads_errstr(rc))); + goto done; + } + + count = ads_count_replies(ads, res); + if (count != 1) { + DEBUG(1,("name_to_sid: %s not found\n", name)); + goto done; + } + + if (!ads_pull_sid(ads, res, "objectSid", sid)) { + DEBUG(1,("No sid for %s !?\n", name)); + goto done; + } + + if (!ads_pull_uint32(ads, res, "sAMAccountType", &t)) { + DEBUG(1,("No sAMAccountType for %s !?\n", name)); + goto done; + } + + *type = ads_atype_map(t); + + status = NT_STATUS_OK; + + DEBUG(3,("ads name_to_sid mapped %s\n", name)); + +done: + if (res) ads_msgfree(ads, res); + + return status; +} + +/* convert a sid to a user or group name */ +NTSTATUS ads_sid_to_name(ADS_STRUCT *ads, + TALLOC_CTX *mem_ctx, + DOM_SID *sid, + char **name, + enum SID_NAME_USE *type) +{ + const char *attrs[] = {"userPrincipalName", + "sAMAccountName", + "sAMAccountType", NULL}; + ADS_STATUS rc; + void *msg = NULL; + char *exp = NULL; + char *sidstr = NULL; + uint32 atype; + NTSTATUS status = NT_STATUS_UNSUCCESSFUL; + + if (!(sidstr = sid_binstring(sid))) { + DEBUG(1,("ads_sid_to_name: sid_binstring failed!\n")); + status = NT_STATUS_NO_MEMORY; + goto done; + } + + if (asprintf(&exp, "(objectSid=%s)", sidstr) == -1) { + DEBUG(1,("ads_sid_to_name: asprintf failed!\n")); + status = NT_STATUS_NO_MEMORY; + goto done; + } + + rc = ads_search_retry(ads, &msg, exp, attrs); + if (!ADS_ERR_OK(rc)) { + status = ads_ntstatus(rc); + DEBUG(1,("ads_sid_to_name ads_search: %s\n", ads_errstr(rc))); + goto done; + } + + if (!ads_pull_uint32(ads, msg, "sAMAccountType", &atype)) { + goto done; + } + + *name = ads_pull_username(ads, mem_ctx, msg); + if (!*name) { + DEBUG(1,("ads_sid_to_name: ads_pull_username retuned NULL!\n")); + status = NT_STATUS_NO_MEMORY; + goto done; + } + + *type = ads_atype_map(atype); + + status = NT_STATUS_OK; + + DEBUG(3,("ads sid_to_name mapped %s\n", *name)); + +done: + if (msg) ads_msgfree(ads, msg); + + SAFE_FREE(exp); + SAFE_FREE(sidstr); + + return status; +} + +#endif diff --git a/source3/libads/ads_utils.c b/source3/libads/ads_utils.c index fc8a270021..626c177926 100644 --- a/source3/libads/ads_utils.c +++ b/source3/libads/ads_utils.c @@ -3,7 +3,8 @@ ads (active directory) utility library Copyright (C) Stefan (metze) Metzmacher 2002 - + Copyright (C) Andrew Tridgell 2001 + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -21,9 +22,6 @@ #include "includes.h" -#ifdef HAVE_ADS - - /* translated the ACB_CTRL Flags to UserFlags (userAccountControl) */ @@ -168,4 +166,16 @@ uint32 ads_gtype2atype(uint32 gtype) return atype; } -#endif +/* turn a sAMAccountType into a SID_NAME_USE */ +enum SID_NAME_USE ads_atype_map(uint32 atype) +{ + switch (atype & 0xF0000000) { + case ATYPE_GLOBAL_GROUP: + return SID_NAME_DOM_GRP; + case ATYPE_ACCOUNT: + return SID_NAME_USER; + default: + DEBUG(1,("hmm, need to map account type 0x%x\n", atype)); + } + return SID_NAME_UNKNOWN; +} diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c index a80837cf4d..b586d84226 100644 --- a/source3/libads/kerberos.c +++ b/source3/libads/kerberos.c @@ -114,7 +114,14 @@ int ads_kinit_password(ADS_STRUCT *ads) char *s; int ret; - asprintf(&s, "%s@%s", ads->auth.user_name, ads->auth.realm); + if (asprintf(&s, "%s@%s", ads->auth.user_name, ads->auth.realm) == -1) { + return KRB5_CC_NOMEM; + } + + if (!ads->auth.password) { + return KRB5_LIBOS_CANTREADPWD; + } + ret = kerberos_kinit_password(s, ads->auth.password, ads->auth.time_offset); if (ret) { diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c index b4c7c3970c..e09ffeb3f6 100644 --- a/source3/libads/ldap.c +++ b/source3/libads/ldap.c @@ -1337,9 +1337,7 @@ ADS_STATUS ads_set_machine_sd(ADS_STRUCT *ads, const char *hostname, char *dn) const char *attrs[] = {"ntSecurityDescriptor", "objectSid", 0}; char *exp = 0; size_t sd_size = 0; - struct berval **bvals = 0; struct berval bval = {0, NULL}; - prs_struct ps; prs_struct ps_wire; LDAPMessage *res = 0; @@ -1356,37 +1354,39 @@ ADS_STATUS ads_set_machine_sd(ADS_STRUCT *ads, const char *hostname, char *dn) ret = ADS_ERROR(LDAP_SUCCESS); - asprintf(&exp, "(samAccountName=%s$)", hostname); + if (asprintf(&exp, "(samAccountName=%s$)", hostname) == -1) { + DEBUG(1, ("ads_set_machine_sd: asprintf failed!\n")); + return ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + } + ret = ads_search(ads, (void *) &res, exp, attrs); if (!ADS_ERR_OK(ret)) return ret; msg = ads_first_entry(ads, res); - bvals = ldap_get_values_len(ads->ld, msg, attrs[0]); ads_pull_sid(ads, msg, attrs[1], &sid); - ads_msgfree(ads, res); -#if 0 - file_save("/tmp/sec_desc.old", bvals[0]->bv_val, bvals[0]->bv_len); -#endif - if (!(ctx = talloc_init_named("sec_io_desc"))) - return ADS_ERROR(LDAP_NO_MEMORY); - - prs_init(&ps, bvals[0]->bv_len, ctx, UNMARSHALL); - prs_append_data(&ps, bvals[0]->bv_val, bvals[0]->bv_len); - ps.data_offset = 0; - ldap_value_free_len(bvals); + if (!(ctx = talloc_init_named("sec_io_desc"))) { + ret = ADS_ERROR(LDAP_NO_MEMORY); + goto ads_set_sd_error; + } - if (!sec_io_desc("sd", &psd, &ps, 1)) + if (!ads_pull_sd(ads, ctx, msg, attrs[0], &psd)) { + ret = ADS_ERROR_NT(NT_STATUS_INVALID_PARAMETER); goto ads_set_sd_error; + } status = sec_desc_add_sid(ctx, &psd, &sid, SEC_RIGHTS_FULL_CTRL, &sd_size); - if (!NT_STATUS_IS_OK(status)) + if (!NT_STATUS_IS_OK(status)) { + ret = ADS_ERROR_NT(status); goto ads_set_sd_error; + } prs_init(&ps_wire, sd_size, ctx, MARSHALL); - if (!sec_io_desc("sd_wire", &psd, &ps_wire, 1)) + if (!sec_io_desc("sd_wire", &psd, &ps_wire, 1)) { + ret = ADS_ERROR(LDAP_NO_MEMORY); goto ads_set_sd_error; + } #if 0 file_save("/tmp/sec_desc.new", ps_wire.data_p, sd_size); @@ -1398,16 +1398,11 @@ ADS_STATUS ads_set_machine_sd(ADS_STRUCT *ads, const char *hostname, char *dn) ads_mod_ber(ctx, &mods, attrs[0], &bval); ret = ads_gen_mod(ads, dn, mods); - prs_mem_free(&ps); - prs_mem_free(&ps_wire); - talloc_destroy(ctx); - return ret; - ads_set_sd_error: - prs_mem_free(&ps); + ads_msgfree(ads, res); prs_mem_free(&ps_wire); talloc_destroy(ctx); - return ADS_ERROR(LDAP_NO_MEMORY); + return ret; } /** @@ -1613,6 +1608,60 @@ int ads_pull_sids(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, return count; } +/** + * pull a SEC_DESC from a ADS result + * @param ads connection to ads server + * @param mem_ctx TALLOC_CTX for allocating sid array + * @param msg Results of search + * @param field Attribute to retrieve + * @param sd Pointer to *SEC_DESC to store result (talloc()ed) + * @return boolean inidicating success +*/ +BOOL ads_pull_sd(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, + void *msg, const char *field, SEC_DESC **sd) +{ + struct berval **values; + prs_struct ps; + BOOL ret = False; + + values = ldap_get_values_len(ads->ld, msg, field); + + if (!values) return False; + + if (values[0]) { + prs_init(&ps, values[0]->bv_len, mem_ctx, UNMARSHALL); + prs_append_data(&ps, values[0]->bv_val, values[0]->bv_len); + ps.data_offset = 0; + + ret = sec_io_desc("sd", sd, &ps, 1); + } + + ldap_value_free_len(values); + return ret; +} + +/* + * in order to support usernames longer than 21 characters we need to + * use both the sAMAccountName and the userPrincipalName attributes + * It seems that not all users have the userPrincipalName attribute set + * + * @param ads connection to ads server + * @param mem_ctx TALLOC_CTX for allocating sid array + * @param msg Results of search + * @return the username + */ +char *ads_pull_username(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, void *msg) +{ + char *ret, *p; + + ret = ads_pull_string(ads, mem_ctx, msg, "userPrincipalName"); + if (ret && (p = strchr(ret, '@'))) { + *p = 0; + return ret; + } + return ads_pull_string(ads, mem_ctx, msg, "sAMAccountName"); +} + /** * find the update serial number - this is the core of the ldap cache diff --git a/source3/libads/ldap_utils.c b/source3/libads/ldap_utils.c new file mode 100644 index 0000000000..fbc9eb433f --- /dev/null +++ b/source3/libads/ldap_utils.c @@ -0,0 +1,90 @@ +/* + Unix SMB/CIFS implementation. + + Some Helpful wrappers on LDAP + + Copyright (C) Andrew Tridgell 2001 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" +/* + a wrapper around ldap_search_s that retries depending on the error code + this is supposed to catch dropped connections and auto-reconnect +*/ +ADS_STATUS ads_do_search_retry(ADS_STRUCT *ads, const char *bind_path, int scope, + const char *exp, + const char **attrs, void **res) +{ + ADS_STATUS status; + int count = 3; + char *bp; + + if (!ads->ld && + time(NULL) - ads->last_attempt < ADS_RECONNECT_TIME) { + return ADS_ERROR(LDAP_SERVER_DOWN); + } + + bp = strdup(bind_path); + + while (count--) { + status = ads_do_search_all(ads, bp, scope, exp, attrs, res); + if (ADS_ERR_OK(status)) { + DEBUG(5,("Search for %s gave %d replies\n", + exp, ads_count_replies(ads, *res))); + free(bp); + return status; + } + + if (*res) ads_msgfree(ads, *res); + *res = NULL; + DEBUG(3,("Reopening ads connection to realm '%s' after error %s\n", + ads->config.realm, ads_errstr(status))); + if (ads->ld) { + ldap_unbind(ads->ld); + } + ads->ld = NULL; + status = ads_connect(ads); + if (!ADS_ERR_OK(status)) { + DEBUG(1,("ads_search_retry: failed to reconnect (%s)\n", + ads_errstr(status))); + ads_destroy(&ads); + free(bp); + return status; + } + } + free(bp); + + DEBUG(1,("ads reopen failed after error %s\n", ads_errstr(status))); + return status; +} + + +ADS_STATUS ads_search_retry(ADS_STRUCT *ads, void **res, + const char *exp, + const char **attrs) +{ + return ads_do_search_retry(ads, ads->config.bind_path, LDAP_SCOPE_SUBTREE, + exp, attrs, res); +} + +ADS_STATUS ads_search_retry_dn(ADS_STRUCT *ads, void **res, + const char *dn, + const char **attrs) +{ + return ads_do_search_retry(ads, dn, LDAP_SCOPE_BASE, + "(objectclass=*)", attrs, res); +} diff --git a/source3/nsswitch/winbindd_ads.c b/source3/nsswitch/winbindd_ads.c index 4f91ed0f20..228c4a2a08 100644 --- a/source3/nsswitch/winbindd_ads.c +++ b/source3/nsswitch/winbindd_ads.c @@ -31,74 +31,6 @@ static char *primary_realm; -/* - a wrapper around ldap_search_s that retries depending on the error code - this is supposed to catch dropped connections and auto-reconnect -*/ -ADS_STATUS ads_do_search_retry(ADS_STRUCT *ads, const char *bind_path, int scope, - const char *exp, - const char **attrs, void **res) -{ - ADS_STATUS status; - int count = 3; - char *bp; - - if (!ads->ld && - time(NULL) - ads->last_attempt < ADS_RECONNECT_TIME) { - return ADS_ERROR(LDAP_SERVER_DOWN); - } - - bp = strdup(bind_path); - - while (count--) { - status = ads_do_search_all(ads, bp, scope, exp, attrs, res); - if (ADS_ERR_OK(status)) { - DEBUG(5,("Search for %s gave %d replies\n", - exp, ads_count_replies(ads, *res))); - free(bp); - return status; - } - - if (*res) ads_msgfree(ads, *res); - *res = NULL; - DEBUG(3,("Reopening ads connection to realm '%s' after error %s\n", - ads->config.realm, ads_errstr(status))); - if (ads->ld) { - ldap_unbind(ads->ld); - } - ads->ld = NULL; - status = ads_connect(ads); - if (!ADS_ERR_OK(status)) { - DEBUG(1,("ads_search_retry: failed to reconnect (%s)\n", - ads_errstr(status))); - ads_destroy(&ads); - free(bp); - return status; - } - } - free(bp); - - DEBUG(1,("ads reopen failed after error %s\n", ads_errstr(status))); - return status; -} - - -ADS_STATUS ads_search_retry(ADS_STRUCT *ads, void **res, - const char *exp, - const char **attrs) -{ - return ads_do_search_retry(ads, ads->config.bind_path, LDAP_SCOPE_SUBTREE, - exp, attrs, res); -} - -ADS_STATUS ads_search_retry_dn(ADS_STRUCT *ads, void **res, - const char *dn, - const char **attrs) -{ - return ads_do_search_retry(ads, dn, LDAP_SCOPE_BASE, - "(objectclass=*)", attrs, res); -} - /* return our ads connections structure for a domain. We keep the connection open to make things faster @@ -166,37 +98,6 @@ static void sid_from_rid(struct winbindd_domain *domain, uint32 rid, DOM_SID *si sid_append_rid(sid, rid); } -/* turn a sAMAccountType into a SID_NAME_USE */ -static enum SID_NAME_USE ads_atype_map(uint32 atype) -{ - switch (atype & 0xF0000000) { - case ATYPE_GLOBAL_GROUP: - return SID_NAME_DOM_GRP; - case ATYPE_ACCOUNT: - return SID_NAME_USER; - default: - DEBUG(1,("hmm, need to map account type 0x%x\n", atype)); - } - return SID_NAME_UNKNOWN; -} - -/* - in order to support usernames longer than 21 characters we need to - use both the sAMAccountName and the userPrincipalName attributes - It seems that not all users have the userPrincipalName attribute set -*/ -static char *pull_username(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, void *msg) -{ - char *ret, *p; - - ret = ads_pull_string(ads, mem_ctx, msg, "userPrincipalName"); - if (ret && (p = strchr(ret, '@'))) { - *p = 0; - return ret; - } - return ads_pull_string(ads, mem_ctx, msg, "sAMAccountName"); -} - /* Query display info for a realm. This is the basic user list fn */ static NTSTATUS query_user_list(struct winbindd_domain *domain, @@ -254,7 +155,7 @@ static NTSTATUS query_user_list(struct winbindd_domain *domain, continue; } - name = pull_username(ads, mem_ctx, msg); + name = ads_pull_username(ads, mem_ctx, msg); gecos = ads_pull_string(ads, mem_ctx, msg, "name"); if (!ads_pull_sid(ads, msg, "objectSid", &sid)) { DEBUG(1,("No sid for %s !?\n", name)); @@ -341,7 +242,7 @@ static NTSTATUS enum_dom_groups(struct winbindd_domain *domain, &account_type) || !(account_type & ATYPE_GLOBAL_GROUP)) continue; - name = pull_username(ads, mem_ctx, msg); + name = ads_pull_username(ads, mem_ctx, msg); gecos = ads_pull_string(ads, mem_ctx, msg, "name"); if (!ads_pull_sid(ads, msg, "objectSid", &sid)) { DEBUG(1,("No sid for %s !?\n", name)); @@ -371,63 +272,21 @@ done: return status; } - /* convert a single name to a sid in a domain */ static NTSTATUS name_to_sid(struct winbindd_domain *domain, const char *name, DOM_SID *sid, enum SID_NAME_USE *type) { - ADS_STRUCT *ads = NULL; - const char *attrs[] = {"objectSid", "sAMAccountType", NULL}; - int count; - ADS_STATUS rc; - void *res = NULL; - char *exp; - uint32 t; - NTSTATUS status = NT_STATUS_UNSUCCESSFUL; + ADS_STRUCT *ads; DEBUG(3,("ads: name_to_sid\n")); ads = ads_cached_connection(domain); - if (!ads) goto done; - - /* accept either the win2000 or the pre-win2000 username */ - asprintf(&exp, "(|(sAMAccountName=%s)(userPrincipalName=%s@%s))", - name, name, ads->config.realm); - rc = ads_search_retry(ads, &res, exp, attrs); - free(exp); - if (!ADS_ERR_OK(rc)) { - DEBUG(1,("name_to_sid ads_search: %s\n", ads_errstr(rc))); - goto done; - } + if (!ads) + return NT_STATUS_UNSUCCESSFUL; - count = ads_count_replies(ads, res); - if (count != 1) { - DEBUG(1,("name_to_sid: %s not found\n", name)); - goto done; - } - - if (!ads_pull_sid(ads, res, "objectSid", sid)) { - DEBUG(1,("No sid for %s !?\n", name)); - goto done; - } - - if (!ads_pull_uint32(ads, res, "sAMAccountType", &t)) { - DEBUG(1,("No sAMAccountType for %s !?\n", name)); - goto done; - } - - *type = ads_atype_map(t); - - status = NT_STATUS_OK; - - DEBUG(3,("ads name_to_sid mapped %s\n", name)); - -done: - if (res) ads_msgfree(ads, res); - - return status; + return ads_name_to_sid(ads, name, sid, type); } /* convert a sid to a user or group name */ @@ -438,46 +297,12 @@ static NTSTATUS sid_to_name(struct winbindd_domain *domain, enum SID_NAME_USE *type) { ADS_STRUCT *ads = NULL; - const char *attrs[] = {"userPrincipalName", - "sAMAccountName", - "sAMAccountType", NULL}; - ADS_STATUS rc; - void *msg = NULL; - char *exp; - char *sidstr; - uint32 atype; - NTSTATUS status = NT_STATUS_UNSUCCESSFUL; - DEBUG(3,("ads: sid_to_name\n")); - ads = ads_cached_connection(domain); - if (!ads) goto done; - - sidstr = sid_binstring(sid); - asprintf(&exp, "(objectSid=%s)", sidstr); - rc = ads_search_retry(ads, &msg, exp, attrs); - free(exp); - free(sidstr); - if (!ADS_ERR_OK(rc)) { - DEBUG(1,("sid_to_name ads_search: %s\n", ads_errstr(rc))); - goto done; - } - - if (!ads_pull_uint32(ads, msg, "sAMAccountType", &atype)) { - goto done; - } - - *name = pull_username(ads, mem_ctx, msg); - *type = ads_atype_map(atype); - - status = NT_STATUS_OK; - - DEBUG(3,("ads sid_to_name mapped %s\n", *name)); - -done: - if (msg) ads_msgfree(ads, msg); + if (!ads) + return NT_STATUS_UNSUCCESSFUL; - return status; + return ads_sid_to_name(ads, mem_ctx, sid, name, type); } @@ -504,7 +329,7 @@ static BOOL dn_lookup(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, goto failed; } - (*name) = pull_username(ads, mem_ctx, res); + (*name) = ads_pull_username(ads, mem_ctx, res); if (!ads_pull_uint32(ads, res, "sAMAccountType", &atype)) { goto failed; @@ -566,7 +391,7 @@ static NTSTATUS query_user(struct winbindd_domain *domain, goto done; } - info->acct_name = pull_username(ads, mem_ctx, msg); + info->acct_name = ads_pull_username(ads, mem_ctx, msg); info->full_name = ads_pull_string(ads, mem_ctx, msg, "name"); if (!ads_pull_sid(ads, msg, "objectSid", &sid)) { DEBUG(1,("No sid for %d !?\n", user_rid)); -- cgit From 086dcdca76885c8cbd35499f0a3c801c9479eec7 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Fri, 27 Sep 2002 16:20:09 +0000 Subject: Sorry to touch such an internal function. But I was quite surprised that 'security = user', 'encrypt passwords = no' did not work anymore. This is on quite a standard SuSE 7.3, ./configure.developer --with-tdbsam. I can provide a config.log / config.h on demand. Please re-check for consequences, I don't really oversee that file. Thanks, Volker (This used to be commit ba754b57ddb78dadedcb7b5877cbee5bab08181e) --- source3/auth/pass_check.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source3/auth/pass_check.c b/source3/auth/pass_check.c index 63918796ef..d98ee96edd 100644 --- a/source3/auth/pass_check.c +++ b/source3/auth/pass_check.c @@ -609,6 +609,8 @@ NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *pas if (((!*password) || (!pwlen)) && !lp_null_passwords()) return NT_STATUS_LOGON_FAILURE; + this_salt[0] = 0; + #if defined(WITH_PAM) /* @@ -645,8 +647,10 @@ NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *pas perhaps for IPC password changing requests */ spass = getspnam(pass->pw_name); - if (spass && spass->sp_pwdp) + if (spass && spass->sp_pwdp) { fstrcpy(this_crypted, spass->sp_pwdp); + fstrcpy(this_salt, spass->sp_pwdp); + } } #elif defined(IA_UINFO) { @@ -705,7 +709,8 @@ NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *pas #endif /* extract relevant info */ - fstrcpy(this_salt, pass->pw_passwd); + if (this_salt[0] == 0) + fstrcpy(this_salt, pass->pw_passwd); #if defined(HAVE_TRUNCATED_SALT) /* crypt on some platforms (HPUX in particular) -- cgit From 789ccf3094a577f08c379b6d45f81326beef1630 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 27 Sep 2002 16:45:57 +0000 Subject: Apply Vance Lankhaars' cifs2002 documentation patch - mostly grammar and English typo fixes and updates of documentation (This used to be commit bba2ee620a286dcc7fcd509c8954227e203274a1) --- docs/README.Win32-Viruses | 23 ++-- docs/docbook/docbook.txt | 2 +- docs/docbook/global.ent | 2 +- docs/docbook/manpages/findsmb.1.sgml | 4 +- docs/docbook/manpages/make_smbcodepage.1.sgml | 4 +- docs/docbook/manpages/nmbd.8.sgml | 16 +-- docs/docbook/manpages/pdbedit.8.sgml | 45 +++---- docs/docbook/manpages/rpcclient.1.sgml | 34 ++--- docs/docbook/manpages/samba.7.sgml | 31 ++--- docs/docbook/manpages/smb.conf.5.sgml | 4 +- docs/docbook/manpages/smbcacls.1.sgml | 6 +- docs/docbook/manpages/smbcontrol.1.sgml | 2 +- docs/docbook/manpages/smbgroupedit.8.sgml | 8 +- docs/docbook/manpages/smbmount.8.sgml | 4 +- docs/docbook/manpages/smbpasswd.8.sgml | 27 ++-- docs/docbook/manpages/smbspool.8.sgml | 6 +- docs/docbook/manpages/smbtar.1.sgml | 4 +- docs/docbook/manpages/swat.8.sgml | 4 +- docs/docbook/manpages/winbindd.8.sgml | 174 ++++---------------------- 19 files changed, 138 insertions(+), 262 deletions(-) diff --git a/docs/README.Win32-Viruses b/docs/README.Win32-Viruses index 07f03360cb..4646da83cf 100644 --- a/docs/README.Win32-Viruses +++ b/docs/README.Win32-Viruses @@ -1,9 +1,9 @@ -While this article is specific to the recent Nimda worm, +While this article is specific to the Nimda worm, the information can be applied to preventing the spread of many Win32 viruses. Thanks to the Samba Users Group of Japan (SUGJ) for this article. =============================================================================== -Steps againt Nimba Worm for Samba +Steps against Nimba Worm for Samba Author: HASEGAWA Yosuke Translator: TAKAHASHI Motonobu @@ -14,11 +14,11 @@ The information in this article applies to Windows 95/98/Me/NT/2000 SYMPTOMS - This article has described the measure against Nimba Worm for Samba + This article describes measures against Nimba Worm for Samba server. DESCRIPTION - Nimba Worm is infected through the shared disk on a network besides + Nimba Worm is infected through shared disks on a network, as well as through Microsoft IIS, Internet Explorer and mailer of Outlook series. At this time, the worm copies itself by the name *.nws and *.eml on @@ -36,23 +36,22 @@ DESCRIPTION veto files = /*.eml/*.nws/riched20.dll/ ----- - Setting up "veto files" parameter, the matched files on the Samba - server are completely hidden from the clients and become impossible + By setting the "veto files" parameter, matched files on the Samba + server are completely hidden from the clients and making it impossible to access them at all. - In addition to it, the following setting are also pointed out by the + In addition to it, the following setting is also pointed out by the samba-jp:09448 thread: when the - "(Jreadme.txt.{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B}"(B file exists on - a Samba server, it is visible only with "readme.txt" and a dangerous - code may be performed when this file is double-clicked. + "readme.txt.{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B}" file exists on + a Samba server, it is visible only as "readme.txt" and dangerous + code may be executed if this file is double-clicked. Setting the following, ----- veto files = /*.{*}/ ----- - no files having CLSID in its file extension can be accessed from any + any files having CLSID in its file extension will be inaccessible from any clients. This technical article is created based on the discussion of samba-jp:09448 and samba-jp:10900 threads. - diff --git a/docs/docbook/docbook.txt b/docs/docbook/docbook.txt index 019b073b51..84848fd88f 100644 --- a/docs/docbook/docbook.txt +++ b/docs/docbook/docbook.txt @@ -40,7 +40,7 @@ The Output ---------- The current Samba CVS tree contains the SGML/DocBook source files as well -as the following autogenerated formats +as the following autogenerated formats: * man pages * HTML diff --git a/docs/docbook/global.ent b/docs/docbook/global.ent index 91286de98b..d88c489a4a 100644 --- a/docs/docbook/global.ent +++ b/docs/docbook/global.ent @@ -21,7 +21,7 @@ - + diff --git a/docs/docbook/manpages/findsmb.1.sgml b/docs/docbook/manpages/findsmb.1.sgml index d8f436c4a1..7b2371fdb7 100644 --- a/docs/docbook/manpages/findsmb.1.sgml +++ b/docs/docbook/manpages/findsmb.1.sgml @@ -45,7 +45,7 @@ will probe the subnet of the machine where findsmb is run. This value is passed to nmblookup as part of the - -B option + -B option. @@ -73,7 +73,7 @@ get proper responses from Windows 95 and Windows 98 machines, the command must be run as root. - For example running findsmb on a machine + For example, running findsmb on a machine without nmbd running would yield output similar to the following diff --git a/docs/docbook/manpages/make_smbcodepage.1.sgml b/docs/docbook/manpages/make_smbcodepage.1.sgml index a36f9b968c..774b3d8f8b 100644 --- a/docs/docbook/manpages/make_smbcodepage.1.sgml +++ b/docs/docbook/manpages/make_smbcodepage.1.sgml @@ -57,10 +57,10 @@ inputfile This is the input file to process. In - the c case this will be a text + the c case, this will be a text codepage definition file such as the ones found in the Samba source/codepages directory. In - the d case this will be the + the d case, this will be the binary format codepage definition file normally found in the lib/codepages directory in the Samba install directory path. diff --git a/docs/docbook/manpages/nmbd.8.sgml b/docs/docbook/manpages/nmbd.8.sgml index d5c89064e7..2b8e066120 100644 --- a/docs/docbook/manpages/nmbd.8.sgml +++ b/docs/docbook/manpages/nmbd.8.sgml @@ -67,7 +67,7 @@ In addition, nmbd can act as a WINS proxy, relaying broadcast queries from clients that do - not understand how to talk the WINS protocol to a WIN + not understand how to talk the WINS protocol to a WINS server. @@ -99,7 +99,7 @@ If this parameter is specified it causes the server to run "interactively", not as a daemon, even if the server is executed on the command line of a shell. Setting this - parameter negates the implicit deamon mode when run from the + parameter negates the implicit daemon mode when run from the command line. @@ -136,9 +136,9 @@ Samba as part of the build process. Common defaults are /usr/local/samba/lib/lmhosts, /usr/samba/lib/lmhosts or - /etc/lmhosts. See the - lmhosts(5) man page for details on the - contents of this file. + /etc/lmhosts. See the + lmhosts(5) + man page for details on the contents of this file. @@ -169,15 +169,15 @@ Note that specifying this parameter here will override the log level parameter in the - smb.conf file. + smb.conf(5) file. -l <log directory> The -l parameter specifies a directory into which the "log.nmbd" log file will be created - for operational data from the running - nmbd server. The default log directory is compiled into Samba + for operational data from the running nmbd + server. The default log directory is compiled into Samba as part of the build process. Common defaults are /usr/local/samba/var/log.nmb, /usr/samba/var/log.nmb or diff --git a/docs/docbook/manpages/pdbedit.8.sgml b/docs/docbook/manpages/pdbedit.8.sgml index 213275b7cc..45ccbaee64 100644 --- a/docs/docbook/manpages/pdbedit.8.sgml +++ b/docs/docbook/manpages/pdbedit.8.sgml @@ -41,11 +41,11 @@ Samba suite. The pdbedit program is used to manage the users accounts - stored in the sam database and can be run only by root. + stored in the sam database and can only be run by root. - The pdbedit tool use the passdb modular interface and is + The pdbedit tool uses the passdb modular interface and is independent from the kind of users database used (currently there - are smbpasswd, ldap, nis+ and tdb based and more can be addedd + are smbpasswd, ldap, nis+ and tdb based and more can be added without changing the tool). There are five main ways to use pdbedit: adding a user account, @@ -58,7 +58,7 @@ -l - This option list all the user accounts + This option lists all the user accounts present in the users database. This option prints a list of user/uid pairs separated by the ':' character. @@ -75,8 +75,8 @@ -v - This option sets the verbose listing format. - It will make pdbedit list the users in the database printing + This option enables the verbose listing format. + It causes pdbedit to list the users in the database, printing out the account fields in a descriptive format. Example: pdbedit -l -v @@ -108,7 +108,7 @@ -w This option sets the "smbpasswd" listing format. - It will make pdbedit list the users in the database printing + It will make pdbedit list the users in the database, printing out the account fields in a format compatible with the smbpasswd file format. (see the smbpasswd(5) for details) @@ -124,8 +124,8 @@ -u username - This option specifies that the username to be - used for the operation requested (listing, adding, removing) + This option specifies the username to be + used for the operation requested (listing, adding, removing). It is required in add, remove and modify operations and optional in list operations. @@ -198,9 +198,9 @@ -a This option is used to add a user into the - database. This command need the user name be specified with - the -u switch. When adding a new user pdbedit will also - ask for the password to be used + database. This command needs a user name specified with + the -u switch. When adding a new user, pdbedit will also + ask for the password to be used. Example: pdbedit -a -u sorce new password: @@ -227,7 +227,7 @@ -x This option causes pdbedit to delete an account - from the database. It need the username be specified with the + from the database. It needs a username specified with the -u switch. Example: pdbedit -x -u bob @@ -237,22 +237,25 @@ -i passdb-backend - Use a different passdb backend to retrieve users than the one specified in smb.conf. Can be used to import data into your - local user database. + Use a different passdb backend to retrieve users + than the one specified in smb.conf. Can be used to import data into + your local user database. - This option will ease migration from one passdb backend to another. - + This option will ease migration from one passdb backend to + another. - Example: pdbedit -i smbpasswd:/etc/smbpasswd.old - + Example: pdbedit -i smbpasswd:/etc/smbpasswd.old + -e passdb-backend - Export all currently available users to the specified password database backend. + Exports all currently available users to the + specified password database backend. - This option will ease migration from one passdb backend to another and will ease backupping + This option will ease migration from one passdb backend to + another and will ease backing up. Example: pdbedit -e smbpasswd:/root/samba-users.backup diff --git a/docs/docbook/manpages/rpcclient.1.sgml b/docs/docbook/manpages/rpcclient.1.sgml index f1ba474cfb..7a7a19c837 100644 --- a/docs/docbook/manpages/rpcclient.1.sgml +++ b/docs/docbook/manpages/rpcclient.1.sgml @@ -127,8 +127,8 @@ -l|--logfile=logbasename File name for log/debug files. The extension - '.client' will be appended. The log file is never removed - by the client. + '.client' will be appended. The log file is + never removed by the client. @@ -137,14 +137,15 @@ -N|--nopass instruct rpcclient not to ask - for a password. By default, rpcclient will prompt - for a password. See also the -U option. + for a password. By default, rpcclient will + prompt for a password. See also the -U + option. -s|--conf=smb.conf - Specifies the location of the all important + Specifies the location of the all-important smb.conf file. @@ -162,8 +163,8 @@ A third option is to use a credentials file which contains the plaintext of the username and password. This - option is mainly provided for scripts where the admin doesn't - desire to pass the credentials on the command line or via environment + option is mainly provided for scripts where the admin does not + wish to pass the credentials on the command line or via environment variables. If this method is used, make certain that the permissions on the file restrict access from unwanted users. See the -A for more details. @@ -203,7 +204,7 @@ of SIDs to usernames. - lookupnames - Resolve s list + lookupnames - Resolve a list of usernames to SIDs. @@ -290,7 +291,7 @@ enumjobs <printer> - - List the jobs and status of a given printer. + - List the jobs and status of a given printer. This command corresponds to the MS Platform SDK EnumJobs() function (* This command is currently unimplemented). @@ -339,7 +340,7 @@ getdriverdir <arch> - Execute a GetPrinterDriverDirectory() - RPC to retreive the SMB share name and subdirectory for + RPC to retrieve the SMB share name and subdirectory for storing printer driver files for a given architecture. Possible values for arch are "Windows 4.0" (for Windows 95/98), "Windows NT x86", "Windows NT PowerPC", "Windows @@ -359,10 +360,11 @@ against a given printer. - setdriver <printername> <drivername> - - Execute a SetPrinter() command to update the printer driver associated - with an installed printer. The printer driver must already be correctly - installed on the print server. + setdriver <printername> + <drivername> + - Execute a SetPrinter() command to update the printer driver + associated with an installed printer. The printer driver must + already be correctly installed on the print server. See also the enumprinters and enumdrivers commands for obtaining a list of @@ -374,8 +376,8 @@ GENERAL OPTIONS - debuglevel - Set the current debug level - used to log information. + debuglevel - Set the current + debug level used to log information. help (?) - Print a listing of all known commands or extended help on a particular command. diff --git a/docs/docbook/manpages/samba.7.sgml b/docs/docbook/manpages/samba.7.sgml index 5d81d9d446..ce443e78d9 100644 --- a/docs/docbook/manpages/samba.7.sgml +++ b/docs/docbook/manpages/samba.7.sgml @@ -22,8 +22,10 @@ The Samba software suite is a collection of programs that implements the Server Message Block (commonly abbreviated as SMB) protocol for UNIX systems. This protocol is sometimes - also referred to as the Common Internet File System (CIFS), - LanManager or NetBIOS protocol. + also referred to as the Common Internet File System (CIFS). For a + more thorough description, see + http://www.ubiqx.org/cifs/. Samba also implements the NetBIOS + protocol in nmbd. @@ -39,7 +41,7 @@ nmbd The nmbd - daemon provides NetBIOS nameserving and browsing + daemon provides NetBIOS nameservice and browsing support. The configuration file for this daemon is described in smb.conf @@ -68,7 +70,7 @@ testprns The testprns utility supports testing printer names defined - in your printcap> file used + in your printcap file used by Samba. @@ -115,12 +117,14 @@ component is described in a separate manual page. It is strongly recommended that you read the documentation that comes with Samba and the manual pages of those components that you use. If the - manual pages aren't clear enough then please send a patch or - bug report to - samba@samba.org - - + manual pages and documents aren't clear enough then please visit + http://devel.samba.org + for information on how to file a bug report or submit a patch. + If you require help, visit the Samba webpage at + http://www.samba.org/ and + explore the many option available to you. + @@ -164,11 +168,10 @@ http://lists.samba.org. - If you have patches to submit or bugs to report - then you may mail them directly to samba-patches@samba.org. - Note, however, that due to the enormous popularity of this - package the Samba Team may take some time to respond to mail. We - prefer patches in diff -u format. + If you have patches to submit, visit + http://devel.samba.org/ + for information on how to do it properly. We prefer patches in + diff -u format. diff --git a/docs/docbook/manpages/smb.conf.5.sgml b/docs/docbook/manpages/smb.conf.5.sgml index 0c565e7e51..c0893f1005 100644 --- a/docs/docbook/manpages/smb.conf.5.sgml +++ b/docs/docbook/manpages/smb.conf.5.sgml @@ -2904,9 +2904,9 @@ system print command such as lpr(1) or lp(1). - This paramater does not accept % marcos, becouse + This paramater does not accept % macros, because many parts of the system require this value to be - constant for correct operation + constant for correct operation. Default: specified at compile time, usually "nobody" diff --git a/docs/docbook/manpages/smbcacls.1.sgml b/docs/docbook/manpages/smbcacls.1.sgml index 69aa967492..766d2a78b1 100644 --- a/docs/docbook/manpages/smbcacls.1.sgml +++ b/docs/docbook/manpages/smbcacls.1.sgml @@ -35,8 +35,8 @@ This tool is part of the Samba suite. - The smbcacls program manipulates NT Access Control Lists - (ACLs) on SMB file shares. + The smbcacls program manipulates NT Access Control + Lists (ACLs) on SMB file shares. @@ -79,7 +79,7 @@ -S acls This command sets the ACLs on the file with only the ones specified on the command line. All other ACLs are - erased. Note that the ACL specified must contain at least a revision, + erased. Note that the ACL specified must contain at least a revision, type, owner and group for the call to succeed. diff --git a/docs/docbook/manpages/smbcontrol.1.sgml b/docs/docbook/manpages/smbcontrol.1.sgml index 9a6f31b336..166ef63e87 100644 --- a/docs/docbook/manpages/smbcontrol.1.sgml +++ b/docs/docbook/manpages/smbcontrol.1.sgml @@ -121,7 +121,7 @@ The printnotify message-type sends a message to smbd which in turn sends a printer notify message to - any Windows NT clients connected to a printer. This message-type + any Windows NT clients connected to a printer. This message-type takes the following arguments: diff --git a/docs/docbook/manpages/smbgroupedit.8.sgml b/docs/docbook/manpages/smbgroupedit.8.sgml index b9607312ff..53bc0bec61 100644 --- a/docs/docbook/manpages/smbgroupedit.8.sgml +++ b/docs/docbook/manpages/smbgroupedit.8.sgml @@ -19,7 +19,7 @@ smbroupedit -v [l|s] - -a UNIX-groupname [-d NT-groupname|-p prividge| + -a UNIX-groupname [-d NT-groupname|-p privilege|] @@ -73,10 +73,10 @@ etc. For examples, Users - SID : S-1-5-32-545 + SID : S-1-5-32-545 Unix group: -1 Group type: Local group - Comment : + Comment : Privilege : No privilege @@ -195,7 +195,7 @@ Domain Admins (S-1-5-21-1108995562-3116817432-1375597819-512) -> -1 -To verify that you mapping has taken effect: +To verify that your mapping has taken effect: diff --git a/docs/docbook/manpages/smbmount.8.sgml b/docs/docbook/manpages/smbmount.8.sgml index ec4dbbaff1..c4b91a5572 100644 --- a/docs/docbook/manpages/smbmount.8.sgml +++ b/docs/docbook/manpages/smbmount.8.sgml @@ -73,7 +73,7 @@ given. - Note that password which contain the arguement delimiter + Note that passwords which contain the argument delimiter character (i.e. a comma ',') will failed to be parsed correctly on the command line. However, the same password defined in the PASSWD environment variable or a credentials file (see @@ -222,7 +222,7 @@ ttl=<arg> - how long a directory listing is cached in milliseconds + sets how long a directory listing is cached in milliseconds (also affects visibility of file size and date changes). A higher value means that changes on the server take longer to be noticed but it can give diff --git a/docs/docbook/manpages/smbpasswd.8.sgml b/docs/docbook/manpages/smbpasswd.8.sgml index 3c7a6a5150..c0b7ac3359 100644 --- a/docs/docbook/manpages/smbpasswd.8.sgml +++ b/docs/docbook/manpages/smbpasswd.8.sgml @@ -24,7 +24,6 @@ -r <remote machine> -R <name resolve order> -m - -j DOMAIN -U username[%password] -h -s @@ -56,7 +55,7 @@ UNIX machine the encrypted SMB passwords are usually stored in the smbpasswd(5) file. - When run by an ordinary user with no options. smbpasswd + When run by an ordinary user with no options, smbpasswd will prompt them for their old SMB password and then ask them for their new password twice, to ensure that the new password was typed correctly. No passwords will be echoed on the screen @@ -89,7 +88,7 @@ password command. Note that the default passdb backends require the user to already exist in the system password file (usually /etc/passwd), else the request to add the - user will fail. + user will fail. This option is only available when running smbpasswd as root. @@ -220,12 +219,12 @@ -R name resolve order - This option allows the user of smbpasswd to determine + This option allows the user of smbpasswd to determine what name resolution services to use when looking up the NetBIOS name of the host being connected to. - The options are :"lmhosts", "host", "wins" and "bcast". They cause - names to be resolved as follows : + The options are :"lmhosts", "host", "wins" and "bcast". They + cause names to be resolved as follows : lmhosts : Lookup an IP address in the Samba lmhosts file. If the line in lmhosts has @@ -244,14 +243,14 @@ wins : Query a name with the IP address listed in the wins server - parameter. If no WINS server has been specified this method - will be ignored. + parameter. If no WINS server has been specified this method + will be ignored. bcast : Do a broadcast on each of the known local interfaces listed in the interfaces parameter. This is the least - reliable of the name resolution methods as it depends on the - target host being on a locally connected subnet. + reliable of the name resolution methods as it depends on the + target host being on a locally connected subnet. The default order is lmhosts, host, wins, bcast @@ -267,7 +266,7 @@ being changed is a MACHINE account. Currently this is used when Samba is being used as an NT Primary Domain Controller. - This option is only available when running smbpasswd as root. + This option is only available when running smbpasswd as root. @@ -305,15 +304,15 @@ -w password - This parameter is only available is Samba - has been configured to use the experiemental + This parameter is only available if Samba + has been configured to use the experimental --with-ldapsam option. The -w switch is used to specify the password to be used with the ldap admin dn. Note that the password is stored in the private/secrets.tdb and is keyed off of the admin's DN. This means that if the value of ldap - admin dn ever changes, the password will beed to be + admin dn ever changes, the password will need to be manually updated as well. diff --git a/docs/docbook/manpages/smbspool.8.sgml b/docs/docbook/manpages/smbspool.8.sgml index d5c9c0a114..d164cb0864 100644 --- a/docs/docbook/manpages/smbspool.8.sgml +++ b/docs/docbook/manpages/smbspool.8.sgml @@ -9,7 +9,7 @@ smbspool - send print file to an SMB printer + send a print file to an SMB printer @@ -79,11 +79,11 @@ The copies argument (argv[4]) contains the number of copies to be printed of the named file. If - no filename is provided than this argument is not used by + no filename is provided then this argument is not used by smbspool. The options argument (argv[5]) contains - the print options in a single string and is presently + the print options in a single string and is currently not used by smbspool. The filename argument (argv[6]) contains the diff --git a/docs/docbook/manpages/smbtar.1.sgml b/docs/docbook/manpages/smbtar.1.sgml index d1585d7ca3..bd70493b6b 100644 --- a/docs/docbook/manpages/smbtar.1.sgml +++ b/docs/docbook/manpages/smbtar.1.sgml @@ -164,7 +164,7 @@ BUGS The smbtar script has different - options from ordinary tar and tar called from smbclient. + options from ordinary tar and from smbclient's tar command. @@ -173,7 +173,7 @@ Sites that are more careful about security may not like the way the script handles PC passwords. Backup and restore work - on entire shares, should work on file lists. smbtar works best + on entire shares; should work on file lists. smbtar works best with GNU tar and may not work well with other versions. diff --git a/docs/docbook/manpages/swat.8.sgml b/docs/docbook/manpages/swat.8.sgml index dc6989d566..c0052f3d53 100644 --- a/docs/docbook/manpages/swat.8.sgml +++ b/docs/docbook/manpages/swat.8.sgml @@ -62,7 +62,7 @@ swat in demo mode. In that mode anyone will be able to modify the smb.conf file. - Do NOT enable this option on a production + WARNING: Do NOT enable this option on a production server. @@ -168,7 +168,7 @@ swat will rewrite your smb.conf file. It will rearrange the entries and delete all - comments, include= and copy=" + comments, include= and copy= options. If you have a carefully crafted smb.conf then back it up or don't use swat! diff --git a/docs/docbook/manpages/winbindd.8.sgml b/docs/docbook/manpages/winbindd.8.sgml index 0325f9bfe1..32ea86b0d6 100644 --- a/docs/docbook/manpages/winbindd.8.sgml +++ b/docs/docbook/manpages/winbindd.8.sgml @@ -46,10 +46,10 @@ The pam_winbind module in the 2.2.2 release only supports the auth and account - module-types. The latter is simply + module-types. The latter simply performs a getpwnam() to verify that the system can obtain a uid for the user. If the libnss_winbind library has been correctly - installed, this should always suceed. + installed, this should always succeed. The following nsswitch databases are implemented by @@ -156,156 +156,26 @@ group: files winbind file. All parameters should be specified in the [global] section of smb.conf. - - - winbind separator - The winbind separator option allows you - to specify how NT domain names and user names are combined - into unix user names when presented to users. By default, - winbindd will use the traditional '\' - separator so that the unix user names look like - DOMAIN\username. In some cases this separator character may - cause problems as the '\' character has special meaning in - unix shells. In that case you can use the winbind separator - option to specify an alternative separator character. Good - alternatives may be '/' (although that conflicts - with the unix directory separator) or a '+ 'character. - The '+' character appears to be the best choice for 100% - compatibility with existing unix utilities, but may be an - aesthetically bad choice depending on your taste. - - Default: winbind separator = \ - - Example: winbind separator = + - - - - - winbind uid - The winbind uid parameter specifies the - range of user ids that are allocated by the winbindd daemon. - This range of ids should have no existing local or NIS users - within it as strange conflicts can occur otherwise. - - Default: winbind uid = <empty string> - - Example: winbind uid = 10000-20000 - - - - - - winbind gid - The winbind gid parameter specifies the - range of group ids that are allocated by the winbindd daemon. - This range of group ids should have no existing local or NIS - groups within it as strange conflicts can occur otherwise. - - Default: winbind gid = <empty string> - - Example: winbind gid = 10000-20000 - - - - - - winbind cache time - This parameter specifies the number of - seconds the winbindd daemon will cache user and group information - before querying a Windows NT server again. When a item in the - cache is older than this time winbindd will ask the domain - controller for the sequence number of the server's account database. - If the sequence number has not changed then the cached item is - marked as valid for a further winbind cache time - seconds. Otherwise the item is fetched from the - server. This means that as long as the account database is not - actively changing winbindd will only have to send one sequence - number query packet every winbind cache time - seconds. - - Default: winbind cache time = 15 - - - - - winbind enum users - On large installations it may be necessary - to suppress the enumeration of users through the - setpwent(), getpwent() and - endpwent() group of system calls. If - the winbind enum users parameter is false, - calls to the getpwent system call will not - return any data. - - Warning: Turning off user enumeration - may cause some programs to behave oddly. For example, the finger - program relies on having access to the full user list when - searching for matching usernames. - - Default: winbind enum users = yes - - - - - winbind enum groups - On large installations it may be necessary - to suppress the enumeration of groups through the - setgrent(), getgrent() and - endgrent() group of system calls. If - the winbind enum groups parameter is - false, calls to the getgrent() system - call will not return any data. - - Warning: Turning off group - enumeration may cause some programs to behave oddly. - - - Default: winbind enum groups = no - - - - - - - template homedir - When filling out the user information - for a Windows NT user, the winbindd daemon - uses this parameter to fill in the home directory for that user. - If the string %D is present it is - substituted with the user's Windows NT domain name. If the - string %U is present it is substituted - with the user's Windows NT user name. - - Default: template homedir = /home/%D/%U - - - - - - template shell - When filling out the user information for - a Windows NT user, the winbindd daemon - uses this parameter to fill in the shell for that user. - - - Default: template shell = /bin/false - - - - - winbind use default domain - This parameter specifies whether the winbindd - daemon should operate on users without domain component in their username. - Users without a domain component are treated as is part of the winbindd server's - own domain. While this does not benifit Windows users, it makes SSH, FTP and e-mail - function in a way much closer to the way they would in a native unix system. - - Default: winbind use default domain = <falseg> - - Example: winbind use default domain = true - - - + + + winbind separator + + winbind uid + + winbind gid + + winbind cache time + + winbind enum users + + winbind enum groups + + template homedir + + template shell + + winbind use default domain + -- cgit From 208b4be14b3b6ad7d76cae98c7bdd42c8af4f698 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Fri, 27 Sep 2002 16:51:22 +0000 Subject: Touching somebody else's code again... Sorry, Richard. smbclient would announce that it can send UNICODE, but would send the plain text password in ASCII. This confused Samba HEAD somewhat. This change has been tested against Samba HEAD of today and Samba 2.2.1a. I do not have any other servers that do plain text passwords. Anybody? Volker (This used to be commit c7de62d839634a85295d1a0ef5a48270ef30aa93) --- source3/libsmb/cliconnect.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index 62acccdfb7..ebadafd5f0 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -188,7 +188,14 @@ static BOOL cli_session_setup_plaintext(struct cli_state *cli, char *user, int passlen; char *p; - passlen = clistr_push(cli, pword, pass, sizeof(pword), STR_TERMINATE|STR_ASCII); + int push_flags = STR_TERMINATE; + + if (capabilities & CAP_UNICODE) + push_flags |= STR_UNICODE; + else + push_flags |= STR_ASCII; + + passlen = clistr_push(cli, pword, pass, sizeof(pword), push_flags); set_message(cli->outbuf,13,0,True); SCVAL(cli->outbuf,smb_com,SMBsesssetupX); @@ -202,7 +209,7 @@ static BOOL cli_session_setup_plaintext(struct cli_state *cli, char *user, SSVAL(cli->outbuf,smb_vwv8,0); SIVAL(cli->outbuf,smb_vwv11,capabilities); p = smb_buf(cli->outbuf); - p += clistr_push(cli, p, pword, -1, STR_TERMINATE); /* password */ + p += clistr_push(cli, p, pass, -1, push_flags); /* password */ SSVAL(cli->outbuf,smb_vwv7,PTR_DIFF(p, smb_buf(cli->outbuf))); p += clistr_push(cli, p, user, -1, STR_TERMINATE); /* username */ p += clistr_push(cli, p, workgroup, -1, STR_TERMINATE); /* workgroup */ -- cgit From 1ac50efaf775631482ada9f369e4921b27e4105d Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 27 Sep 2002 18:49:35 +0000 Subject: HEAD and APP-HEAD spoolss parsing was out of sync. This MUST NOT HAPPEN ! Jeremy. (This used to be commit e42b76337b9a01fee84bc95d6899a724b2fdab29) --- source3/rpc_parse/parse_spoolss.c | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/source3/rpc_parse/parse_spoolss.c b/source3/rpc_parse/parse_spoolss.c index 36b00ff55d..783dd97ebf 100644 --- a/source3/rpc_parse/parse_spoolss.c +++ b/source3/rpc_parse/parse_spoolss.c @@ -2503,7 +2503,7 @@ BOOL smb_io_printer_info_2(char *desc, NEW_BUFFER *buffer, PRINTER_INFO_2 *info, { prs_struct *ps=&buffer->prs; uint32 dm_offset, sd_offset, current_offset; - uint32 dummy_value = 0; + uint32 dummy_value = 0, has_secdesc = 0; prs_debug(ps, depth, desc, "smb_io_printer_info_2"); depth++; @@ -2541,7 +2541,7 @@ BOOL smb_io_printer_info_2(char *desc, NEW_BUFFER *buffer, PRINTER_INFO_2 *info, /* save current offset for the sec_desc */ sd_offset = prs_offset(ps); - if (!prs_uint32("sec_desc", ps, depth, &dummy_value)) + if (!prs_uint32("sec_desc", ps, depth, &has_secdesc)) return False; @@ -2555,10 +2555,12 @@ BOOL smb_io_printer_info_2(char *desc, NEW_BUFFER *buffer, PRINTER_INFO_2 *info, return False; /* parse the sec_desc */ - if (!prs_set_offset(ps, sd_offset)) - return False; - if (!smb_io_relsecdesc("secdesc", buffer, depth, &info->secdesc)) - return False; + if (has_secdesc) { + if (!prs_set_offset(ps, sd_offset)) + return False; + if (!smb_io_relsecdesc("secdesc", buffer, depth, &info->secdesc)) + return False; + } /* pick up where we left off */ if (!prs_set_offset(ps, current_offset)) @@ -3366,9 +3368,8 @@ uint32 spoolss_size_printer_info_2(PRINTER_INFO_2 *info) * it is easier to maintain the calculation here and * not place the burden on the caller to remember. --jerry */ - if ((size % 4) != 0) { + if ((size % 4) != 0) size += 4 - (size % 4); - } return size; } @@ -7131,6 +7132,7 @@ BOOL spoolss_io_q_enumprinterdataex(char *desc, SPOOL_Q_ENUMPRINTERDATAEX *q_u, /******************************************************************* ********************************************************************/ + static BOOL spoolss_io_printer_enum_values_ctr(char *desc, prs_struct *ps, PRINTER_ENUM_VALUES_CTR *ctr, int depth) { @@ -7159,8 +7161,7 @@ static BOOL spoolss_io_printer_enum_values_ctr(char *desc, prs_struct *ps, return False; } - for (i=0; isize_of_array; i++) - { + for (i=0; isize_of_array; i++) { valuename_offset = current_offset; if (!prs_uint32("valuename_offset", ps, depth, &valuename_offset)) return False; @@ -7189,8 +7190,7 @@ static BOOL spoolss_io_printer_enum_values_ctr(char *desc, prs_struct *ps, * attention to 2-byte alignment here.... */ - for (i=0; isize_of_array; i++) - { + for (i=0; isize_of_array; i++) { if (!prs_unistr("valuename", ps, depth, &ctr->values[i].valuename)) return False; @@ -7212,23 +7212,22 @@ static BOOL spoolss_io_printer_enum_values_ctr(char *desc, prs_struct *ps, return True; } - /******************************************************************* * write a structure. ********************************************************************/ BOOL spoolss_io_r_enumprinterdataex(char *desc, SPOOL_R_ENUMPRINTERDATAEX *r_u, prs_struct *ps, int depth) { - int data_offset, end_offset; + uint32 data_offset, end_offset; prs_debug(ps, depth, desc, "spoolss_io_r_enumprinterdataex"); depth++; if(!prs_align(ps)) return False; - + if (!prs_uint32("size", ps, depth, &r_u->ctr.size)) return False; - + data_offset = prs_offset(ps); if (!prs_set_offset(ps, data_offset + r_u->ctr.size)) @@ -7239,7 +7238,7 @@ BOOL spoolss_io_r_enumprinterdataex(char *desc, SPOOL_R_ENUMPRINTERDATAEX *r_u, if(!prs_uint32("needed", ps, depth, &r_u->needed)) return False; - + if(!prs_uint32("returned", ps, depth, &r_u->returned)) return False; @@ -7259,11 +7258,9 @@ BOOL spoolss_io_r_enumprinterdataex(char *desc, SPOOL_R_ENUMPRINTERDATAEX *r_u, if (!prs_set_offset(ps, end_offset)) return False; - - return True; + return True; } - /******************************************************************* * write a structure. ********************************************************************/ -- cgit From 3c7334c1b5862b8df3533e228978069d2099ac06 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 27 Sep 2002 22:08:25 +0000 Subject: Check for security on delete printer was reversed... Jeremy. (This used to be commit 0d27cc909b4489b54e57481bd8a9494fb077dc3d) --- source3/rpc_server/srv_spoolss_nt.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index 2190215107..dcffa968d5 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -313,11 +313,6 @@ static WERROR delete_printer_handle(pipes_struct *p, POLICY_HND *hnd) return WERR_BADFID; } - if (del_a_printer(Printer->dev.handlename) != 0) { - DEBUG(3,("Error deleting printer %s\n", Printer->dev.handlename)); - return WERR_BADFID; - } - /* Check calling user has permission to delete printer. Note that since we set the snum parameter to -1 only administrators can delete the printer. This stops people with the Full Control @@ -328,6 +323,11 @@ static WERROR delete_printer_handle(pipes_struct *p, POLICY_HND *hnd) return WERR_ACCESS_DENIED; } + if (del_a_printer(Printer->dev.handlename) != 0) { + DEBUG(3,("Error deleting printer %s\n", Printer->dev.handlename)); + return WERR_BADFID; + } + if (*lp_deleteprinter_cmd()) { char *cmd = lp_deleteprinter_cmd(); -- cgit From 543edfbeab9540cf819f09715b1bcf0fca9e99b1 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 27 Sep 2002 22:51:59 +0000 Subject: It turns out that Windows allows delete printer on a handle opened by an admin user, then used on a pipe handle created by an anonymous user..... but they're working on security.... riiight ! Jeremy. (This used to be commit 322d8b4c83439261cfd2ff79b557bddb1e784660) --- source3/rpc_server/srv_spoolss_nt.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index dcffa968d5..f942a685a1 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -313,6 +313,19 @@ static WERROR delete_printer_handle(pipes_struct *p, POLICY_HND *hnd) return WERR_BADFID; } + /* + * It turns out that Windows allows delete printer on a handle + * opened by an admin user, then used on a pipe handle created + * by an anonymous user..... but they're working on security.... riiight ! + * JRA. + */ + + if (Printer->access_granted != PRINTER_ACCESS_ADMINISTER) { + DEBUG(3, ("delete_printer_handle: denied by handle\n")); + return WERR_ACCESS_DENIED; + } + +#if 0 /* Check calling user has permission to delete printer. Note that since we set the snum parameter to -1 only administrators can delete the printer. This stops people with the Full Control @@ -322,6 +335,7 @@ static WERROR delete_printer_handle(pipes_struct *p, POLICY_HND *hnd) DEBUG(3, ("printer delete denied by security descriptor\n")); return WERR_ACCESS_DENIED; } +#endif if (del_a_printer(Printer->dev.handlename) != 0) { DEBUG(3,("Error deleting printer %s\n", Printer->dev.handlename)); -- cgit From 465d93b1c6dbd8547091a7dc4b114f48d4a79d40 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 27 Sep 2002 23:56:20 +0000 Subject: Back our volker's patch as was breaking the build. Volker, I would like to understand what you are trying to do here... I'll trust that it's broken (this code is certainly not well tested) but I do want to keep a close eye on the fixes... Andrew Bartlett (This used to be commit 4b72f84cf9bc3f7583318d5dff97257f9dc5b87f) --- source3/auth/pass_check.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/source3/auth/pass_check.c b/source3/auth/pass_check.c index d98ee96edd..63918796ef 100644 --- a/source3/auth/pass_check.c +++ b/source3/auth/pass_check.c @@ -609,8 +609,6 @@ NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *pas if (((!*password) || (!pwlen)) && !lp_null_passwords()) return NT_STATUS_LOGON_FAILURE; - this_salt[0] = 0; - #if defined(WITH_PAM) /* @@ -647,10 +645,8 @@ NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *pas perhaps for IPC password changing requests */ spass = getspnam(pass->pw_name); - if (spass && spass->sp_pwdp) { + if (spass && spass->sp_pwdp) fstrcpy(this_crypted, spass->sp_pwdp); - fstrcpy(this_salt, spass->sp_pwdp); - } } #elif defined(IA_UINFO) { @@ -709,8 +705,7 @@ NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *pas #endif /* extract relevant info */ - if (this_salt[0] == 0) - fstrcpy(this_salt, pass->pw_passwd); + fstrcpy(this_salt, pass->pw_passwd); #if defined(HAVE_TRUNCATED_SALT) /* crypt on some platforms (HPUX in particular) -- cgit From 3cfd42e83b5f0ad41fd6a5f80b0264b545bb56bf Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 28 Sep 2002 00:12:49 +0000 Subject: Add const. (This used to be commit 0f5d18626bebaa0621ee703ea2cc8bf47e14ea3e) --- source3/lib/util_sid.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c index e9635fc7f8..18260be870 100644 --- a/source3/lib/util_sid.c +++ b/source3/lib/util_sid.c @@ -347,7 +347,7 @@ void sid_copy(DOM_SID *dst, const DOM_SID *src) /***************************************************************** Write a sid out into on-the-wire format. *****************************************************************/ -BOOL sid_linearize(char *outbuf, size_t len, DOM_SID *sid) +BOOL sid_linearize(char *outbuf, size_t len, const DOM_SID *sid) { size_t i; @@ -366,7 +366,7 @@ BOOL sid_linearize(char *outbuf, size_t len, DOM_SID *sid) /***************************************************************** parse a on-the-wire SID to a DOM_SID *****************************************************************/ -BOOL sid_parse(char *inbuf, size_t len, DOM_SID *sid) +BOOL sid_parse(const char *inbuf, size_t len, DOM_SID *sid) { int i; if (len < 8) return False; @@ -482,7 +482,7 @@ BOOL sid_check_is_in_builtin(const DOM_SID *sid) Calculates size of a sid. *****************************************************************/ -size_t sid_size(DOM_SID *sid) +size_t sid_size(const DOM_SID *sid) { if (sid == NULL) return 0; @@ -518,7 +518,7 @@ BOOL non_mappable_sid(DOM_SID *sid) return the binary string representation of a DOM_SID caller must free */ -char *sid_binstring(DOM_SID *sid) +char *sid_binstring(const DOM_SID *sid) { char *buf, *s; int len = sid_size(sid); -- cgit From bc828246dbe367252232e5baa54ee9fc9d53ca69 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 28 Sep 2002 00:47:06 +0000 Subject: This needs to be #ifdef HAVE_LDAP. (This used to be commit 2b54a2fc2c85ea139e2acdbbc2f14b969c0c6315) --- source3/libads/ldap_utils.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source3/libads/ldap_utils.c b/source3/libads/ldap_utils.c index fbc9eb433f..9e4b8a1de9 100644 --- a/source3/libads/ldap_utils.c +++ b/source3/libads/ldap_utils.c @@ -21,6 +21,8 @@ */ #include "includes.h" + +#ifdef HAVE_LDAP /* a wrapper around ldap_search_s that retries depending on the error code this is supposed to catch dropped connections and auto-reconnect @@ -88,3 +90,4 @@ ADS_STATUS ads_search_retry_dn(ADS_STRUCT *ads, void **res, return ads_do_search_retry(ads, dn, LDAP_SCOPE_BASE, "(objectclass=*)", attrs, res); } +#endif -- cgit From 6fa3f56e0a6fc08f9e7ec9353e280a7295b30bf0 Mon Sep 17 00:00:00 2001 From: Richard Sharpe Date: Sat, 28 Sep 2002 03:38:37 +0000 Subject: Commit a fix to smbclient so that it will connect to EMCs and NetApp's machines. (This used to be commit 1e4ac9615d26bfbf90e3a45f088564f448f689ce) --- source3/client/client.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/source3/client/client.c b/source3/client/client.c index eb6b572760..de6bf0e1b0 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -2436,9 +2436,24 @@ static struct cli_state *do_connect(const char *server, const char *share) if (!cli_send_tconX(c, sharename, "?????", password, strlen(password)+1)) { - d_printf("tree connect failed: %s\n", cli_errstr(c)); - cli_shutdown(c); - return NULL; + pstring share; + + /* + * Some servers require \\server\share for the share + * while others are happy with share as we gave above + * Lets see if we give it the long form if it works + */ + pstrcpy(share, "\\\\"); + pstrcat(share, server); + pstrcat(share, "\\"); + pstrcat(share, sharename); + if (!cli_send_tconX(c, share, "?????", password, + strlen(password) + 1)) { + + d_printf("tree connect failed: %s\n", cli_errstr(c)); + cli_shutdown(c); + return NULL; + } } DEBUG(4,(" tconx ok\n")); -- cgit From 0a23b0b4d5bd77d6f83797b309e06ac4d1a892db Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 28 Sep 2002 12:11:19 +0000 Subject: Add const. (This used to be commit f7dd66e88dba947a167d9a14c96810854dfc5c9d) --- source3/lib/util_seaccess.c | 2 +- source3/passdb/secrets.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source3/lib/util_seaccess.c b/source3/lib/util_seaccess.c index b137023e55..456d7ba9e2 100644 --- a/source3/lib/util_seaccess.c +++ b/source3/lib/util_seaccess.c @@ -226,7 +226,7 @@ void se_map_standard(uint32 *access_mask, struct standard_mapping *mapping) "Access-Checking" document in MSDN. *****************************************************************************/ -BOOL se_access_check(SEC_DESC *sd, const NT_USER_TOKEN *token, +BOOL se_access_check(const SEC_DESC *sd, const NT_USER_TOKEN *token, uint32 acc_desired, uint32 *acc_granted, NTSTATUS *status) { diff --git a/source3/passdb/secrets.c b/source3/passdb/secrets.c index 73201ab62a..4b2c76d8b0 100644 --- a/source3/passdb/secrets.c +++ b/source3/passdb/secrets.c @@ -227,7 +227,7 @@ BOOL secrets_lock_trust_account_password(char *domain, BOOL dolock) the above call. ************************************************************************/ -BOOL secrets_fetch_trust_account_password(char *domain, uint8 ret_pwd[16], +BOOL secrets_fetch_trust_account_password(const char *domain, uint8 ret_pwd[16], time_t *pass_last_set_time) { struct machine_acct_pass *pass; -- cgit From 9e0bd9be01a6337d75d54382b56dfe6a88bda47b Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sat, 28 Sep 2002 12:14:17 +0000 Subject: Thanks to abartlet I looked at that function a bit closer. What did the first cli_push_string do? I suspect that it's a leftover from times when the password length was needed at some point. Volker (This used to be commit df906c156aea46524dedc28ee54f4e87711c7160) --- source3/libsmb/cliconnect.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index ebadafd5f0..695c6506b5 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -184,10 +184,7 @@ static BOOL cli_session_setup_plaintext(struct cli_state *cli, char *user, char *pass, char *workgroup) { uint32 capabilities = cli_session_setup_capabilities(cli); - fstring pword; - int passlen; char *p; - int push_flags = STR_TERMINATE; if (capabilities & CAP_UNICODE) @@ -195,8 +192,6 @@ static BOOL cli_session_setup_plaintext(struct cli_state *cli, char *user, else push_flags |= STR_ASCII; - passlen = clistr_push(cli, pword, pass, sizeof(pword), push_flags); - set_message(cli->outbuf,13,0,True); SCVAL(cli->outbuf,smb_com,SMBsesssetupX); cli_setup_packet(cli); -- cgit From 8b197158c9a7a4c881a86381f06c96d5091b5a76 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 28 Sep 2002 12:27:04 +0000 Subject: Add the beginings of sam_ads to the tree. This module, primarilly the work of "Stefan (metze) Metzmacher" , uses the Active Directory schema to store the user/group/other information. I've been testing it against a real AD server, and it is intended to work with OpenLDAP as well. I've moved a few functions around in our other libads code, which has made it easier to tap into that existing code. Also, I've made some changes to the SAM interface, I hope there are not too many objections... To ensure we don't get silly bugs in the skel module, it is now in the default compile. This way you should not forget to update it :-) Andrew Bartlett (This used to be commit 24fb0cde2f0b657df1c99474cd694438c94a566e) --- source3/Makefile.in | 2 +- source3/include/ads.h | 7 +- source3/include/sam.h | 12 +- source3/libads/ads_ldap.c | 2 +- source3/libads/ads_struct.c | 1 + source3/libads/ldap.c | 43 +- source3/libads/ldap_utils.c | 3 + source3/sam/api.c | 12 +- source3/sam/interface.c | 25 +- source3/sam/sam_ads.c | 1080 +++++++++++++++++++++++++++++++++++++++++++ source3/torture/cmd_sam.c | 6 +- 11 files changed, 1161 insertions(+), 32 deletions(-) create mode 100755 source3/sam/sam_ads.c diff --git a/source3/Makefile.in b/source3/Makefile.in index 32c2e3f70f..598062ec05 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -221,7 +221,7 @@ PASSDB_OBJ = $(PASSDB_GET_SET_OBJ) passdb/passdb.o passdb/pdb_interface.o \ passdb/pdb_unix.o passdb/util_sam_sid.o \ passdb/pdb_compat.o passdb/pdb_nisplus.o -SAM_STATIC_MODULES = sam/sam_plugin.o +SAM_STATIC_MODULES = sam/sam_plugin.o sam/sam_skel.o sam/sam_ads.o SAM_OBJ = sam/account.o sam/get_set_account.o sam/get_set_group.o \ sam/get_set_domain.o sam/interface.o sam/api.o $(SAM_STATIC_MODULES) diff --git a/source3/include/ads.h b/source3/include/ads.h index 0181ae535e..88a90229b1 100644 --- a/source3/include/ads.h +++ b/source3/include/ads.h @@ -15,6 +15,7 @@ typedef struct { char *realm; char *workgroup; char *ldap_server; + char *ldap_uri; int foreign; /* set to 1 if connecting to a foreign realm */ } server; @@ -255,5 +256,7 @@ typedef void **ADS_MODLIST; /* ads auth control flags */ -#define ADS_AUTH_DISABLE_KERBEROS 1 -#define ADS_AUTH_NO_BIND 2 +#define ADS_AUTH_DISABLE_KERBEROS 0x01 +#define ADS_AUTH_NO_BIND 0x02 +#define ADS_AUTH_ANON_BIND 0x04 +#define ADS_AUTH_SIMPLE_BIND 0x08 diff --git a/source3/include/sam.h b/source3/include/sam.h index 2157a37065..8fbda7e857 100644 --- a/source3/include/sam.h +++ b/source3/include/sam.h @@ -167,8 +167,8 @@ typedef struct sam_context NTSTATUS (*sam_get_sec_desc) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd); NTSTATUS (*sam_set_sec_desc) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd); - NTSTATUS (*sam_lookup_sid) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, char **name, uint32 *type); - NTSTATUS (*sam_lookup_name) (const struct sam_context *, const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID **sid, uint32 *type); + NTSTATUS (*sam_lookup_sid) (const struct sam_context *, const NT_USER_TOKEN *access_token, TALLOC_CTX *ctx, const DOM_SID *sid, char **name, uint32 *type); + NTSTATUS (*sam_lookup_name) (const struct sam_context *, const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID *sid, uint32 *type); /* Domain API */ @@ -183,7 +183,7 @@ typedef struct sam_context /* Account API */ - NTSTATUS (*sam_create_account) (const struct sam_context *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account); + NTSTATUS (*sam_create_account) (const struct sam_context *context, const NT_USER_TOKEN *access_token, uint32 access_desired, TALLOC_CTX *mem_ctx, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account); NTSTATUS (*sam_add_account) (const struct sam_context *, const DOM_SID *domainsid, const SAM_ACCOUNT_HANDLE *account); NTSTATUS (*sam_update_account) (const struct sam_context *, const SAM_ACCOUNT_HANDLE *account); NTSTATUS (*sam_delete_account) (const struct sam_context *, const SAM_ACCOUNT_HANDLE *account); @@ -225,8 +225,8 @@ typedef struct sam_methods NTSTATUS (*sam_get_sec_desc) (const struct sam_methods *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd); NTSTATUS (*sam_set_sec_desc) (const struct sam_methods *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd); - NTSTATUS (*sam_lookup_sid) (const struct sam_methods *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, char **name, uint32 *type); - NTSTATUS (*sam_lookup_name) (const struct sam_methods *, const NT_USER_TOKEN *access_token, const char *name, DOM_SID **sid, uint32 *type); + NTSTATUS (*sam_lookup_sid) (const struct sam_methods *, const NT_USER_TOKEN *access_token, TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, uint32 *type); + NTSTATUS (*sam_lookup_name) (const struct sam_methods *, const NT_USER_TOKEN *access_token, const char *name, DOM_SID *sid, uint32 *type); /* Domain API */ @@ -235,7 +235,7 @@ typedef struct sam_methods /* Account API */ - NTSTATUS (*sam_create_account) (const struct sam_methods *, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account); + NTSTATUS (*sam_create_account) (const struct sam_methods *, const NT_USER_TOKEN *access_token, uint32 access_desired, TALLOC_CTX *mem_ctx, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account); NTSTATUS (*sam_add_account) (const struct sam_methods *, const SAM_ACCOUNT_HANDLE *account); NTSTATUS (*sam_update_account) (const struct sam_methods *, const SAM_ACCOUNT_HANDLE *account); NTSTATUS (*sam_delete_account) (const struct sam_methods *, const SAM_ACCOUNT_HANDLE *account); diff --git a/source3/libads/ads_ldap.c b/source3/libads/ads_ldap.c index 8c39a89762..05b016539e 100644 --- a/source3/libads/ads_ldap.c +++ b/source3/libads/ads_ldap.c @@ -83,7 +83,7 @@ done: /* convert a sid to a user or group name */ NTSTATUS ads_sid_to_name(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, - DOM_SID *sid, + const DOM_SID *sid, char **name, enum SID_NAME_USE *type) { diff --git a/source3/libads/ads_struct.c b/source3/libads/ads_struct.c index b68c822ce3..3cdd015bf4 100644 --- a/source3/libads/ads_struct.c +++ b/source3/libads/ads_struct.c @@ -122,6 +122,7 @@ void ads_destroy(ADS_STRUCT **ads) SAFE_FREE((*ads)->server.realm); SAFE_FREE((*ads)->server.workgroup); SAFE_FREE((*ads)->server.ldap_server); + SAFE_FREE((*ads)->server.ldap_uri); SAFE_FREE((*ads)->auth.realm); SAFE_FREE((*ads)->auth.password); diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c index e09ffeb3f6..1004ea229c 100644 --- a/source3/libads/ldap.c +++ b/source3/libads/ldap.c @@ -67,6 +67,29 @@ static BOOL ads_try_connect(ADS_STRUCT *ads, const char *server, unsigned port) return True; } +/* + try a connection to a given ldap server, based on URL, returning True if successful + */ +static BOOL ads_try_connect_uri(ADS_STRUCT *ads) +{ +#if defined(LDAP_API_FEATURE_X_OPENLDAP) && (LDAP_API_VERSION > 2000) + DEBUG(5,("ads_try_connect: trying ldap server at URI '%s'\n", + ads->server.ldap_uri)); + + + if (ldap_initialize((LDAP**)&(ads->ld), ads->server.ldap_uri) == LDAP_SUCCESS) { + return True; + } + DEBUG(0, ("ldap_initialize: %s\n", strerror(errno))); + +#else + + DEBUG(1, ("no URL support in LDAP libs!\n")); +#endif + + return False; +} + /* used by the IP comparison function */ struct ldap_ip { struct in_addr ip; @@ -210,6 +233,13 @@ ADS_STATUS ads_connect(ADS_STRUCT *ads) ads->last_attempt = time(NULL); ads->ld = NULL; + /* try with a URL based server */ + + if (ads->server.ldap_uri && + ads_try_connect_uri(ads)) { + goto got_connection; + } + /* try with a user specified server */ if (ads->server.ldap_server && ads_try_connect(ads, ads->server.ldap_server, LDAP_PORT)) { @@ -278,6 +308,14 @@ got_connection: return ADS_SUCCESS; } + if (ads->auth.flags & ADS_AUTH_ANON_BIND) { + return ADS_ERROR(ldap_simple_bind_s( ads->ld, NULL, NULL)); + } + + if (ads->auth.flags & ADS_AUTH_SIMPLE_BIND) { + return ADS_ERROR(ldap_simple_bind_s( ads->ld, ads->auth.user_name, ads->auth.password)); + } + return ads_sasl_bind(ads); } @@ -1771,8 +1809,9 @@ ADS_STATUS ads_server_info(ADS_STRUCT *ads) ads->config.realm = strdup(p+2); ads->config.bind_path = ads_build_dn(ads->config.realm); - DEBUG(3,("got ldap server name %s@%s\n", - ads->config.ldap_server_name, ads->config.realm)); + DEBUG(3,("got ldap server name %s@%s, using bind path: %s\n", + ads->config.ldap_server_name, ads->config.realm, + ads->config.bind_path)); ads->config.current_time = ads_parse_time(timestr); diff --git a/source3/libads/ldap_utils.c b/source3/libads/ldap_utils.c index 9e4b8a1de9..907f7c8aff 100644 --- a/source3/libads/ldap_utils.c +++ b/source3/libads/ldap_utils.c @@ -42,6 +42,9 @@ ADS_STATUS ads_do_search_retry(ADS_STRUCT *ads, const char *bind_path, int scope bp = strdup(bind_path); + if (!bp) + return ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + while (count--) { status = ads_do_search_all(ads, bp, scope, exp, attrs, res); if (ADS_ERR_OK(status)) { diff --git a/source3/sam/api.c b/source3/sam/api.c index fb2f015e95..349c18787c 100644 --- a/source3/sam/api.c +++ b/source3/sam/api.c @@ -50,7 +50,7 @@ NTSTATUS sam_set_sec_desc(const NT_USER_TOKEN *access_token, const DOM_SID *sid, return sam_context->sam_set_sec_desc(sam_context, access_token, sid, sd); } -NTSTATUS sam_lookup_sid(const NT_USER_TOKEN *access_token, const DOM_SID *sid, char **name, uint32 *type) +NTSTATUS sam_lookup_sid(const NT_USER_TOKEN *access_token, TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, uint32 *type) { SAM_CONTEXT *sam_context = sam_get_static_context(False); @@ -58,10 +58,10 @@ NTSTATUS sam_lookup_sid(const NT_USER_TOKEN *access_token, const DOM_SID *sid, c return NT_STATUS_UNSUCCESSFUL; } - return sam_context->sam_lookup_sid(sam_context, access_token, sid, name, type); + return sam_context->sam_lookup_sid(sam_context, access_token, mem_ctx, sid, name, type); } -NTSTATUS sam_lookup_name(const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID **sid, uint32 *type) +NTSTATUS sam_lookup_name(const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID *sid, uint32 *type) { SAM_CONTEXT *sam_context = sam_get_static_context(False); @@ -69,7 +69,7 @@ NTSTATUS sam_lookup_name(const NT_USER_TOKEN *access_token, const char *domain, return NT_STATUS_UNSUCCESSFUL; } - return sam_context->sam_lookup_name(sam_context, access_token, domain, name, sid, type); + return sam_context->sam_lookup_name(sam_context, access_token,domain, name, sid, type); } /* Domain API */ @@ -120,7 +120,7 @@ NTSTATUS sam_get_domain_by_sid(const NT_USER_TOKEN *access_token, const uint32 a /* Account API */ -NTSTATUS sam_create_account(const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) +NTSTATUS sam_create_account(const NT_USER_TOKEN *access_token, const uint32 access_desired, TALLOC_CTX *mem_ctx, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) { SAM_CONTEXT *sam_context = sam_get_static_context(False); @@ -128,7 +128,7 @@ NTSTATUS sam_create_account(const NT_USER_TOKEN *access_token, const uint32 acce return NT_STATUS_UNSUCCESSFUL; } - return sam_context->sam_create_account(sam_context, access_token, access_desired, domainsid, account_name, acct_ctrl, account); + return sam_context->sam_create_account(sam_context, access_token, access_desired, mem_ctx, domainsid, account_name, acct_ctrl, account); } NTSTATUS sam_add_account(const DOM_SID *domainsid, const SAM_ACCOUNT_HANDLE *account) diff --git a/source3/sam/interface.c b/source3/sam/interface.c index 0943a0e8f1..5d12cfc999 100644 --- a/source3/sam/interface.c +++ b/source3/sam/interface.c @@ -32,6 +32,8 @@ extern DOM_SID global_sid_Builtin; const struct sam_init_function_entry builtin_sam_init_functions[] = { { "plugin", sam_init_plugin }, + { "ads", sam_init_ads }, + { "skel", sam_init_skel }, { NULL, NULL} }; @@ -79,7 +81,7 @@ NTSTATUS sam_get_methods_by_name(const SAM_CONTEXT *context, SAM_METHODS **sam_m tmp_methods = context->methods; while (tmp_methods) { - if (!strcmp(domainname, tmp_methods->domain_name)) + if (strequal(domainname, tmp_methods->domain_name)) { (*sam_method) = tmp_methods; return NT_STATUS_OK; @@ -143,7 +145,7 @@ NTSTATUS context_sam_set_sec_desc(const SAM_CONTEXT *context, const NT_USER_TOKE } -NTSTATUS context_sam_lookup_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID **sid, uint32 *type) +NTSTATUS context_sam_lookup_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID *sid, uint32 *type) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; @@ -169,7 +171,7 @@ NTSTATUS context_sam_lookup_name(const SAM_CONTEXT *context, const NT_USER_TOKEN return NT_STATUS_OK; } -NTSTATUS context_sam_lookup_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *sid, char **name, uint32 *type) +NTSTATUS context_sam_lookup_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, uint32 *type) { SAM_METHODS *tmp_methods; uint32 rid; @@ -194,7 +196,7 @@ NTSTATUS context_sam_lookup_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN return NT_STATUS_NOT_IMPLEMENTED; } - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_lookup_sid(tmp_methods, access_token, sid, name, type))) { + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_lookup_sid(tmp_methods, access_token, mem_ctx, sid, name, type))) { DEBUG(4,("sam_lookup_name for %s in backend %s failed\n", sid_string_static(sid), tmp_methods->backendname)); return nt_status; @@ -354,7 +356,7 @@ NTSTATUS context_sam_get_domain_by_sid(const SAM_CONTEXT *context, const NT_USER return NT_STATUS_OK; } -NTSTATUS context_sam_create_account(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) +NTSTATUS context_sam_create_account(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, TALLOC_CTX *mem_ctx, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; @@ -371,7 +373,7 @@ NTSTATUS context_sam_create_account(const SAM_CONTEXT *context, const NT_USER_TO return NT_STATUS_NOT_IMPLEMENTED; } - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_create_account(tmp_methods, access_token, access_desired, account_name, acct_ctrl, account))) { + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_create_account(tmp_methods, access_token, access_desired, mem_ctx, account_name, acct_ctrl, account))) { DEBUG(4,("sam_create_account in backend %s failed\n", tmp_methods->backendname)); return nt_status; @@ -924,21 +926,21 @@ static NTSTATUS make_backend_entry(SAM_BACKEND_ENTRY *backend_entry, char *sam_b if ((tmp = strchr(tmp_string, '|')) != NULL) { DEBUGADD(20,("a domain name has been specified\n")); *tmp = 0; - backend_entry->domain_name = tmp + 1; + backend_entry->domain_name = smb_xstrdup(tmp + 1); tmp_string = tmp + 1; } if ((tmp = strchr(tmp_string, ':')) != NULL) { DEBUG(20,("options for the backend have been specified\n")); *tmp = 0; - backend_entry->module_params = tmp + 1; + backend_entry->module_params = smb_xstrdup(tmp + 1); tmp_string = tmp + 1; } if (backend_entry->domain_name == NULL) { DEBUG(10,("make_backend_entry: no domain was specified for sam module %s. Useing default domain %s\n", backend_entry->module_name, lp_workgroup())); - backend_entry->domain_name = lp_workgroup(); + backend_entry->domain_name = smb_xstrdup(lp_workgroup()); } if ((backend_entry->domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID))) == NULL) { @@ -1109,11 +1111,12 @@ NTSTATUS make_sam_context_list(SAM_CONTEXT **context, char **sam_backends_param) DEBUG(6,("There are %d domains listed with there backends\n", nBackends)); - if ((backends = (SAM_BACKEND_ENTRY *)malloc(sizeof(SAM_BACKEND_ENTRY)*nBackends)) == NULL) { + if ((backends = (SAM_BACKEND_ENTRY *)malloc(sizeof(*backends)*nBackends)) == NULL) { DEBUG(0,("make_sam_context_list: failed to allocate backends\n")); return NT_STATUS_NO_MEMORY; } - ZERO_STRUCTP(backends); + + memset(backends, '\0', sizeof(*backends)*nBackends); for (i = 0; i < nBackends; i++) { DEBUG(8,("processing %s\n",sam_backends_param[i])); diff --git a/source3/sam/sam_ads.c b/source3/sam/sam_ads.c new file mode 100755 index 0000000000..7f2a901d81 --- /dev/null +++ b/source3/sam/sam_ads.c @@ -0,0 +1,1080 @@ +/* + Unix SMB/CIFS implementation. + Active Directory SAM backend, for simulate a W2K DC in mixed mode. + + Copyright (C) Stefan (metze) Metzmacher 2002 + Copyright (C) Andrew Bartlett 2002 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" + + +#ifdef HAVE_LDAP + +static int sam_ads_debug_level = DBGC_SAM; + +#undef DBGC_CLASS +#define DBGC_CLASS sam_ads_debug_level + +#define ADS_STATUS_OK ADS_ERROR(0) +#define ADS_STATUS_UNSUCCESSFUL ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL) +#define ADS_STATUS_NOT_IMPLEMENTED ADS_ERROR_NT(NT_STATUS_NOT_IMPLEMENTED) + + +#define ADS_SUBTREE_BUILTIN "CN=Builtin," +#define ADS_SUBTREE_COMPUTERS "CN=Computers," +#define ADS_SUBTREE_DC "CN=Domain Controllers," +#define ADS_SUBTREE_USERS "CN=Users," +#define ADS_ROOT_TREE "" +/* Here are private module structs and functions */ + +struct sam_ads_privates { + ADS_STRUCT *ads_struct; + TALLOC_CTX *mem_ctx; + BOOL bind_plaintext; + char *ads_bind_dn; + char *ads_bind_pw; + char *ldap_uri; + /* did we need something more? */ +}; + + +/* get only these LDAP attributes, witch we really need for an account */ +const char *account_attrs[] = { "objectSid", + "objectGUID", + "sAMAccountType", + "sAMAcountName", + "userPrincipalName", + "accountExpires", + "badPasswordTime", + "badPwdCount", + "lastLogoff", + "lastLogon", + "userWorkstations", + "dBCSPwd", + "unicodePwd", + "pwdLastSet", + "userAccountControl", + "profilePath", + "homeDrive", + "scriptPath", + "homeDirectory", + "cn", + "primaryGroupID",/* 513 */ + "nsNPAllowDialIn",/* TRUE */ + "userParameters",/* Dial Back number ...*/ + "codePage",/* 0 */ + "countryCode",/* 0 */ + "adminCount",/* 1 or 0 */ + "logonCount",/* 0 */ + "managedObjects", + "memberOf",/* dn */ + "instanceType",/* 4 */ + "name", /* sync with cn */ + "description", + /* "nTSecurityDescriptor", */ + NULL}; + +/* get only these LDAP attributes, witch we really need for a group */ +const char *group_attrs[] = {"objectSid", + /* "objectGUID", */ + "sAMAccountType", + "sAMAcountName", + "groupType", + /* "member", */ + "description", + "name", /* sync with cn */ + /* "nTSecurityDescriptor", */ + NULL}; + + +/*************************************************** + return our ads connection. We keep the connection + open to make things faster +****************************************************/ +static ADS_STATUS sam_ads_cached_connection(struct sam_ads_privates *private) +{ + ADS_STRUCT *ads_struct; + ADS_STATUS ads_status; + + if (!private->ads_struct) { + private->ads_struct = ads_init_simple(); + ads_struct = private->ads_struct; + ads_struct->server.ldap_uri = smb_xstrdup(private->ldap_uri); + if ((!private->ads_bind_dn) || (!*private->ads_bind_dn)) { + ads_struct->auth.flags |= ADS_AUTH_ANON_BIND; + } else { + ads_struct->auth.user_name + = smb_xstrdup(private->ads_bind_dn); + if (private->ads_bind_pw) { + ads_struct->auth.password + = smb_xstrdup(private->ads_bind_pw); + } + } + if (private->bind_plaintext) { + ads_struct->auth.flags |= ADS_AUTH_SIMPLE_BIND; + } + } else { + ads_struct = private->ads_struct; + } + + if (ads_struct->ld != NULL) { + /* connection has been opened. ping server. */ + struct sockaddr_un addr; + socklen_t len; + int sd; + if (ldap_get_option(ads_struct->ld, LDAP_OPT_DESC, &sd) == 0 && + getpeername(sd, (struct sockaddr *) &addr, &len) < 0) { + /* the other end has died. reopen. */ + ldap_unbind_ext(ads_struct->ld, NULL, NULL); + ads_struct->ld = NULL; + } + } + + if (ads_struct->ld != NULL) { + DEBUG(5,("sam_ads_cached_connection: allready connected to the LDAP server\n")); + return ADS_SUCCESS; + } + + ads_status = ads_connect(ads_struct); + + ads_status = ads_server_info(ads_struct); + if (!ADS_ERR_OK(ads_status)) { + DEBUG(0,("Can't set server info: %s\n",ads_errstr(ads_status))); + /* return ads_status; */ /*for now we only warn! */ + } + + DEBUG(2, ("sam_ads_cached_connection: succesful connection to the LDAP server\n")); + return ADS_SUCCESS; +} + +static ADS_STATUS sam_ads_do_search(struct sam_ads_privates *private, const char *bind_path, int scope, const char *exp, const char **attrs, void **res) +{ + ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL); + + ads_status = sam_ads_cached_connection(private); + if (!ADS_ERR_OK(ads_status)) + return ads_status; + + return ads_do_search_retry(private->ads_struct, bind_path, scope, exp, attrs, res); +} + +/*********************************************** +Initialize SAM_ACCOUNT_HANDLE from an ADS query +************************************************/ +/* not ready :-( */ +static ADS_STATUS ads_entry2sam_account_handle(ADS_STRUCT *ads_struct, SAM_ACCOUNT_HANDLE *account ,const void *entry) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(ads_struct && account && entry); + + + + return ads_status; +} + + +/*********************************************** +Initialize SAM_GROUP_ENUM from an ads entry +************************************************/ +/* not ready :-( */ +static ADS_STATUS ads_entry2sam_group_enum(ADS_STRUCT *ads_struct, TALLOC_CTX *mem_ctx, SAM_GROUP_ENUM **group_enum,const void *entry) +{ + ADS_STATUS ads_status = ADS_STATUS_UNSUCCESSFUL; + SAM_GROUP_ENUM __group_enum; + SAM_GROUP_ENUM *_group_enum = &__group_enum; + + SAM_ASSERT(ads_struct && mem_ctx && group_enum && entry); + + *group_enum = _group_enum; + + DEBUG(3,("sam_ads: ads_entry2sam_account_handle\n")); + + if (!ads_pull_sid((ADS_STRUCT *)ads_struct, &entry, "objectSid", &(_group_enum->sid))) { + DEBUG(0,("No sid for!?\n")); + return ADS_STATUS_UNSUCCESSFUL; + } + + if (!(_group_enum->group_name = ads_pull_string((ADS_STRUCT *)ads_struct, mem_ctx, &entry, "sAMAccountName"))) { + DEBUG(0,("No groupname found")); + return ADS_STATUS_UNSUCCESSFUL; + } + + if (!(_group_enum->group_desc = ads_pull_string((ADS_STRUCT *)ads_struct, mem_ctx, &entry, "desciption"))) { + DEBUG(0,("No description found")); + return ADS_STATUS_UNSUCCESSFUL; + } + + DEBUG(0,("sAMAccountName: %s\ndescription: %s\nobjectSid: %s\n", + _group_enum->group_name, + _group_enum->group_desc, + sid_string_static(&(_group_enum->sid)) + )); + + return ads_status; +} + +static ADS_STATUS sam_ads_access_check(const SAM_METHODS *sam_method, const SEC_DESC *sd, const NT_USER_TOKEN *access_token, uint32 access_desired) +{ + ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_ACCESS_DENIED); + NTSTATUS nt_status; + uint32 acc_granted; + + SAM_ASSERT(sam_method && sd && access_token); + /* the steps you need are: + 1. get_sec_desc for sid + 2. se_map_generic(accessdesired, generic_mapping) + 3. se_access_check() */ + + if (!se_access_check(sd, access_token, access_desired, &acc_granted, &nt_status)) { + DEBUG(3,("sam_ads_access_check: ACCESS DENIED\n")); + ads_status = ADS_ERROR_NT(nt_status); + return ads_status; + } + ads_status = ADS_ERROR_NT(nt_status); + return ads_status; +} + +static ADS_STATUS sam_ads_get_tree_sec_desc(const SAM_METHODS *sam_method, const char *subtree, SEC_DESC **sd) +{ + ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_INVALID_PARAMETER); + struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; + ADS_STRUCT *ads_struct = privates->ads_struct; + TALLOC_CTX *mem_ctx = privates->mem_ctx; + char *search_path; + void *sec_desc_res; + void *sec_desc_msg; + const char *sec_desc_attrs[] = {"nTSecurityDescriptor",NULL}; + + SAM_ASSERT(sam_method && ads_struct && sd); + *sd = NULL; + + if (subtree) { + asprintf(&search_path, "%s%s",subtree,ads_struct->config.bind_path); + } else { + asprintf(&search_path, "%s",""); + } + ads_status = sam_ads_do_search(privates, search_path, LDAP_SCOPE_BASE, "(objectClass=*)", sec_desc_attrs, &sec_desc_res); + SAFE_FREE(search_path); + if (!ADS_ERR_OK(ads_status)) + return ads_status; + + if ((sec_desc_msg = ads_first_entry(ads_struct, sec_desc_res))==NULL) { + ads_status = ADS_ERROR_NT(NT_STATUS_INVALID_PARAMETER); + return ads_status; + } + + if (!ads_pull_sd(ads_struct, mem_ctx, sec_desc_msg, sec_desc_attrs[0], sd)) { + *sd = NULL; + ads_status = ADS_ERROR_NT(NT_STATUS_INVALID_PARAMETER); + return ads_status; + } + + return ads_status; +} + +static ADS_STATUS sam_ads_account_policy_get(const SAM_METHODS *sam_method, int field, uint32 *value) +{ + ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_NOT_IMPLEMENTED); + DEBUG(0,("sam_ads: %s needs to be done! %s\n",__FUNCTION__,ads_errstr(ads_status))); + + SAM_ASSERT(sam_method && value); + + /* Fix Me */ + switch(field) { + /* Fix Me */ + default: *value = 0; break; + } + + return ads_status; +} + +/********************************** +Now the functions off the SAM API +***********************************/ + +/* General API */ +static NTSTATUS sam_ads_get_sec_desc(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, + const DOM_SID *sid, SEC_DESC **sd) +{ + ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL); + struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; + ADS_STRUCT *ads_struct = privates->ads_struct; + TALLOC_CTX *mem_ctx; + char *sidstr,*filter; + void *sec_desc_res; + void *sec_desc_msg; + const char *sec_desc_attrs[] = {"nTSecurityDescriptor",NULL}; + fstring sid_str; + SEC_DESC *my_sd; + + SAM_ASSERT(sam_method && access_token && sid && sd); + + ads_status = sam_ads_get_tree_sec_desc(sam_method, ADS_ROOT_TREE, &my_sd); + if (!ADS_ERR_OK(ads_status)) + return ads_ntstatus(ads_status); + + ads_status = sam_ads_access_check(sam_method, my_sd, access_token, DOMAIN_READ); + + if (!ADS_ERR_OK(ads_status)) + return ads_ntstatus(ads_status); + + sidstr = sid_binstring(sid); + if (asprintf(&filter, "(objectSid=%s)", sidstr) == -1) { + SAFE_FREE(sidstr); + return NT_STATUS_NO_MEMORY; + } + + SAFE_FREE(sidstr); + + ads_status = sam_ads_do_search(privates,ads_struct->config.bind_path, + LDAP_SCOPE_SUBTREE, filter, sec_desc_attrs, + &sec_desc_res); + SAFE_FREE(filter); + + if (!ADS_ERR_OK(ads_status)) { + return ads_ntstatus(ads_status); + } + + sec_desc_msg = ads_first_entry(ads_struct, sec_desc_res); + + if (!(mem_ctx = talloc_init_named("sec_desc parse in sam_ads"))) { + DEBUG(1, ("talloc_init_named() failed for sec_desc parse context in sam_ads")); + ads_msgfree(ads_struct, sec_desc_res); + return NT_STATUS_NO_MEMORY; + } + + if (!ads_pull_sd(ads_struct, mem_ctx, sec_desc_msg, sec_desc_attrs[0], sd)) { + talloc_destroy(mem_ctx); + ads_msgfree(ads_struct, sec_desc_res); + return NT_STATUS_INVALID_PARAMETER; + } + + if (!ADS_ERR_OK(ads_status)) { + talloc_destroy(mem_ctx); + ads_msgfree(ads_struct, sec_desc_res); + return ads_ntstatus(ads_status); + } + + if (ads_count_replies(ads_struct, sec_desc_res) != 1) { + DEBUG(1,("sam_ads_get_sec_desc: duplicate or 0 results for sid %s\n", + sid_to_string(sid_str, sid))); + talloc_destroy(mem_ctx); + ads_msgfree(ads_struct, sec_desc_res); + return NT_STATUS_UNSUCCESSFUL; + } + + if (!(sec_desc_msg = ads_first_entry(ads_struct, sec_desc_res))) { + talloc_destroy(mem_ctx); + ads_msgfree(ads_struct, sec_desc_res); + return NT_STATUS_INVALID_PARAMETER; + } + + if (!ads_pull_sd(ads_struct, mem_ctx, sec_desc_msg, sec_desc_attrs[0], sd)) { + ads_status = ADS_ERROR_NT(NT_STATUS_INVALID_PARAMETER); + talloc_destroy(mem_ctx); + ads_msgfree(ads_struct, sec_desc_res); + return ads_ntstatus(ads_status); + } + + /* now, were we allowed to see the SD we just got? */ + + ads_msgfree(ads_struct, sec_desc_res); + talloc_destroy(mem_ctx); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_set_sec_desc(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, + const DOM_SID *sid, const SEC_DESC *sd) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + + +static NTSTATUS sam_ads_lookup_sid(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, + TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, + enum SID_NAME_USE *type) +{ + struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; + ADS_STRUCT *ads_struct = privates->ads_struct; + SAM_ASSERT(sam_method); + + /* Ignoring access_token for now */ + + return ads_sid_to_name(ads_struct, mem_ctx, sid, name, type); +} + +static NTSTATUS sam_ads_lookup_name(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, + const char *name, DOM_SID *sid, enum SID_NAME_USE *type) +{ + struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; + ADS_STRUCT *ads_struct = privates->ads_struct; + SAM_ASSERT(sam_method); + + /* Ignoring access_token for now */ + + return ads_name_to_sid(ads_struct, name, sid, type); +} + + +/* Domain API */ + +static NTSTATUS sam_ads_update_domain(const SAM_METHODS *sam_method, const SAM_DOMAIN_HANDLE *domain) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_get_domain_handle(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, + const uint32 access_desired, SAM_DOMAIN_HANDLE **domain) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; + TALLOC_CTX *mem_ctx = privates->mem_ctx; /*Fix me is this right??? */ + SAM_DOMAIN_HANDLE *dom_handle = NULL; + SEC_DESC *sd; + uint32 acc_granted; + uint32 tmp_value; + + DEBUG(5,("sam_ads_get_domain_handle: %d\n",__LINE__)); + + SAM_ASSERT(sam_method && domain); + + (*domain) = NULL; + + if ((dom_handle = talloc(mem_ctx, sizeof(SAM_DOMAIN_HANDLE))) == NULL) { + DEBUG(0,("failed to talloc dom_handle\n")); + ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + return ads_ntstatus(ads_status); + } + + ZERO_STRUCTP(dom_handle); + + dom_handle->mem_ctx = mem_ctx; /*Fix me is this right??? */ + dom_handle->free_fn = NULL; + dom_handle->current_sam_methods = sam_method; + + /* check if access can be granted as requested */ + + ads_status = sam_ads_get_tree_sec_desc(sam_method, ADS_ROOT_TREE, &sd); + if (!ADS_ERR_OK(ads_status)) + return ads_ntstatus(ads_status); + + ads_status = sam_ads_access_check(sam_method, sd, access_token, access_desired); + if (!ADS_ERR_OK(ads_status)) + return ads_ntstatus(ads_status); + + dom_handle->access_granted = acc_granted; + + /* fill all the values of dom_handle */ + sid_copy(&dom_handle->private.sid, &sam_method->domain_sid); + dom_handle->private.name = smb_xstrdup(sam_method->domain_name); + dom_handle->private.servername = "WHOKNOWS"; /* what is the servername */ + + /*Fix me: sam_ads_account_policy_get() return ADS_STATUS! */ + ads_status = sam_ads_account_policy_get(sam_method, AP_MAX_PASSWORD_AGE, &tmp_value); + if (!ADS_ERR_OK(ads_status)) { + DEBUG(4,("sam_ads_account_policy_get failed for max password age. Useing default\n")); + tmp_value = MAX_PASSWORD_AGE; + } + unix_to_nt_time_abs(&dom_handle->private.max_passwordage,tmp_value); + + ads_status = sam_ads_account_policy_get(sam_method, AP_MIN_PASSWORD_AGE, &tmp_value); + if (!ADS_ERR_OK(ads_status)) { + DEBUG(4,("sam_ads_account_policy_get failed for min password age. Useing default\n")); + tmp_value = 0; + } + unix_to_nt_time_abs(&dom_handle->private.min_passwordage, tmp_value); + + ads_status = sam_ads_account_policy_get(sam_method, AP_LOCK_ACCOUNT_DURATION, &tmp_value); + if (!ADS_ERR_OK(ads_status)) { + DEBUG(4,("sam_ads_account_policy_get failed for lockout duration. Useing default\n")); + tmp_value = 0; + } + unix_to_nt_time_abs(&dom_handle->private.lockout_duration, tmp_value); + + ads_status = sam_ads_account_policy_get(sam_method, AP_RESET_COUNT_TIME, &tmp_value); + if (!ADS_ERR_OK(ads_status)) { + DEBUG(4,("sam_ads_account_policy_get failed for time till locout count is reset. Useing default\n")); + tmp_value = 0; + } + unix_to_nt_time_abs(&dom_handle->private.reset_count, tmp_value); + + ads_status = sam_ads_account_policy_get(sam_method, AP_MIN_PASSWORD_LEN, &tmp_value); + if (!ADS_ERR_OK(ads_status)) { + DEBUG(4,("sam_ads_account_policy_get failed for min password length. Useing default\n")); + tmp_value = 0; + } + dom_handle->private.min_passwordlength = (uint16)tmp_value; + + ads_status = sam_ads_account_policy_get(sam_method, AP_PASSWORD_HISTORY, &tmp_value); + if (!ADS_ERR_OK(ads_status)) { + DEBUG(4,("sam_ads_account_policy_get failed password history. Useing default\n")); + tmp_value = 0; + } + dom_handle->private.password_history = (uint16)tmp_value; + + ads_status = sam_ads_account_policy_get(sam_method, AP_BAD_ATTEMPT_LOCKOUT, &tmp_value); + if (!ADS_ERR_OK(ads_status)) { + DEBUG(4,("sam_ads_account_policy_get failed for bad attempts till lockout. Useing default\n")); + tmp_value = 0; + } + dom_handle->private.lockout_count = (uint16)tmp_value; + + ads_status = sam_ads_account_policy_get(sam_method, AP_TIME_TO_LOGOUT, &tmp_value); + if (!ADS_ERR_OK(ads_status)) { + DEBUG(4,("sam_ads_account_policy_get failed for force logout. Useing default\n")); + tmp_value = -1; + } + + ads_status = sam_ads_account_policy_get(sam_method, AP_USER_MUST_LOGON_TO_CHG_PASS, &tmp_value); + if (!ADS_ERR_OK(ads_status)) { + DEBUG(4,("sam_ads_account_policy_get failed for user must login to change password. Useing default\n")); + tmp_value = 0; + } + + /* should the real values of num_accounts, num_groups and num_aliases be retreved? + * I think it is to expensive to bother + */ + dom_handle->private.num_accounts = 3; + dom_handle->private.num_groups = 4; + dom_handle->private.num_aliases = 5; + + *domain = dom_handle; + + ads_status = ADS_ERROR_NT(NT_STATUS_OK); + return ads_ntstatus(ads_status); +} + +/* Account API */ +static NTSTATUS sam_ads_create_account(const SAM_METHODS *sam_method, + const NT_USER_TOKEN *access_token, uint32 access_desired, + TALLOC_CTX *mem_ctx, + const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; + SEC_DESC *sd = NULL; + + SAM_ASSERT(sam_method && access_token && account_name && account); + + ads_status = sam_ads_get_tree_sec_desc(sam_method, ADS_SUBTREE_USERS, &sd); + if (!ADS_ERR_OK(ads_status)) + return ads_ntstatus(ads_status); + + ads_status = sam_ads_access_check(sam_method, sd, access_token, access_desired); + if (!ADS_ERR_OK(ads_status)) + return ads_ntstatus(ads_status); + + ads_status = ADS_ERROR_NT(sam_init_account_talloc(mem_ctx, account)); + if (!ADS_ERR_OK(ads_status)) + return ads_ntstatus(ads_status); + + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_add_account(const SAM_METHODS *sam_method, const SAM_ACCOUNT_HANDLE *account) +{ + ADS_STATUS ads_status = ADS_ERROR(LDAP_NO_MEMORY); + struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; + ADS_STRUCT *ads_struct = privates->ads_struct; + TALLOC_CTX *mem_ctx = privates->mem_ctx; + ADS_MODLIST mods; + uint16 acct_ctrl; + char *new_dn; + + SAM_ASSERT(sam_method && account); + + ads_status = ADS_ERROR_NT(sam_get_account_acct_ctrl(account,&acct_ctrl)); + if (!ADS_ERR_OK(ads_status)) + goto done; + + if ((acct_ctrl & ACB_WSTRUST)||(acct_ctrl & ACB_SVRTRUST)) { + /* Computer account */ + char *name,*controlstr; + char *hostname,*host_upn,*host_spn; + const char *objectClass[] = {"top", "person", "organizationalPerson", + "user", "computer", NULL}; + + ads_status = ADS_ERROR_NT(sam_get_account_name(account,&name)); + if (!ADS_ERR_OK(ads_status)) + goto done; + + if (!(host_upn = talloc_asprintf(mem_ctx, "%s@%s", name, ads_struct->config.realm))) { + ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + goto done; + } + + if (!(new_dn = talloc_asprintf(mem_ctx, "CN=%s,CN=Computers,%s", hostname, + ads_struct->config.bind_path))) { + ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + goto done; + } + + if (!(controlstr = talloc_asprintf(mem_ctx, "%u", ads_acb2uf(acct_ctrl)))) { + ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + goto done; + } + + if (!(mods = ads_init_mods(mem_ctx))) { + ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + goto done; + } + + ads_status = ads_mod_str(mem_ctx, &mods, "cn", hostname); + if (!ADS_ERR_OK(ads_status)) + goto done; + ads_status = ads_mod_strlist(mem_ctx, &mods, "objectClass", objectClass); + if (!ADS_ERR_OK(ads_status)) + goto done; + ads_status = ads_mod_str(mem_ctx, &mods, "userPrincipalName", host_upn); + if (!ADS_ERR_OK(ads_status)) + goto done; + ads_status = ads_mod_str(mem_ctx, &mods, "displayName", hostname); + if (!ADS_ERR_OK(ads_status)) + goto done; + ads_status = ads_mod_str(mem_ctx, &mods, "sAMAccountName", name); + if (!ADS_ERR_OK(ads_status)) + goto done; + ads_status = ads_mod_str(mem_ctx, &mods, "userAccountControl", controlstr); + if (!ADS_ERR_OK(ads_status)) + goto done; + + ads_status = ads_mod_str(mem_ctx, &mods, "servicePrincipalName", host_spn); + if (!ADS_ERR_OK(ads_status)) + goto done; + ads_status = ads_mod_str(mem_ctx, &mods, "dNSHostName", hostname); + if (!ADS_ERR_OK(ads_status)) + goto done; + ads_status = ads_mod_str(mem_ctx, &mods, "userAccountControl", controlstr); + if (!ADS_ERR_OK(ads_status)) + goto done; + /* ads_status = ads_mod_str(mem_ctx, &mods, "operatingSystem", "Samba"); + if (!ADS_ERR_OK(ads_status)) + goto done; + *//* ads_status = ads_mod_str(mem_ctx, &mods, "operatingSystemVersion", VERSION); + if (!ADS_ERR_OK(ads_status)) + goto done; + */ + /* End Computer account */ + } else { + /* User account*/ + char *upn, *controlstr; + char *name, *fullname; + const char *objectClass[] = {"top", "person", "organizationalPerson", + "user", NULL}; + + ads_status = ADS_ERROR_NT(sam_get_account_name(account,&name)); + if (!ADS_ERR_OK(ads_status)) + goto done; + + ads_status = ADS_ERROR_NT(sam_get_account_fullname(account,&fullname)); + if (!ADS_ERR_OK(ads_status)) + goto done; + + if (!(upn = talloc_asprintf(mem_ctx, "%s@%s", name, ads_struct->config.realm))) { + ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + goto done; + } + + if (!(new_dn = talloc_asprintf(mem_ctx, "CN=%s,CN=Users,%s", fullname, + ads_struct->config.bind_path))) { + ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + goto done; + } + + if (!(controlstr = talloc_asprintf(mem_ctx, "%u", ads_acb2uf(acct_ctrl)))) { + ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + goto done; + } + + if (!(mods = ads_init_mods(mem_ctx))) { + ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + goto done; + } + + ads_status = ads_mod_str(mem_ctx, &mods, "cn", fullname); + if (!ADS_ERR_OK(ads_status)) + goto done; + ads_status = ads_mod_strlist(mem_ctx, &mods, "objectClass", objectClass); + if (!ADS_ERR_OK(ads_status)) + goto done; + ads_status = ads_mod_str(mem_ctx, &mods, "userPrincipalName", upn); + if (!ADS_ERR_OK(ads_status)) + goto done; + ads_status = ads_mod_str(mem_ctx, &mods, "displayName", fullname); + if (!ADS_ERR_OK(ads_status)) + goto done; + ads_status = ads_mod_str(mem_ctx, &mods, "sAMAccountName", name); + if (!ADS_ERR_OK(ads_status)) + goto done; + ads_status = ads_mod_str(mem_ctx, &mods, "userAccountControl", controlstr); + if (!ADS_ERR_OK(ads_status)) + goto done; + }/* End User account */ + + /* Finally at the account */ + ads_status = ads_gen_add(ads_struct, new_dn, mods); + +done: + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_update_account(const SAM_METHODS *sam_method, const SAM_ACCOUNT_HANDLE *account) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_delete_account(const SAM_METHODS *sam_method, const SAM_ACCOUNT_HANDLE *account) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + + + + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_enum_accounts(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, uint16 acct_ctrl, uint32 *account_count, SAM_ACCOUNT_ENUM **accounts) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_get_account_by_sid(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *accountsid, SAM_ACCOUNT_HANDLE **account) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_get_account_by_name(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const uint32 access_desired, const char *name, SAM_ACCOUNT_HANDLE **account) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + + +/* Group API */ +static NTSTATUS sam_ads_create_group(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *group_name, uint16 group_ctrl, SAM_GROUP_HANDLE **group) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_add_group(const SAM_METHODS *sam_method, const SAM_GROUP_HANDLE *group) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_update_group(const SAM_METHODS *sam_method, const SAM_GROUP_HANDLE *group) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_delete_group(const SAM_METHODS *sam_method, const SAM_GROUP_HANDLE *group) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_enum_groups(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const uint16 group_ctrl, uint32 *groups_count, SAM_GROUP_ENUM **groups) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; + ADS_STRUCT *ads_struct = privates->ads_struct; + TALLOC_CTX *mem_ctx = privates->mem_ctx; + void *res = NULL; + void *msg = NULL; + char *filter = NULL; + int i = 0; + + /* get only these LDAP attributes, witch we really need for a group */ + const char *group_enum_attrs[] = {"objectSid", + "description", + "sAMAcountName", + NULL}; + + SAM_ASSERT(sam_method && access_token && groups_count && groups); + + *groups_count = 0; + + DEBUG(3,("ads: enum_dom_groups\n")); + + /* Fix Me: get only group from the wanted Type */ + asprintf(&filter, "(&(objectClass=group)(groupType=%s))", "*"); + ads_status = sam_ads_do_search(privates, ads_struct->config.bind_path, LDAP_SCOPE_SUBTREE, filter, group_enum_attrs, &res); + if (!ADS_ERR_OK(ads_status)) { + DEBUG(1,("enum_groups ads_search: %s\n", ads_errstr(ads_status))); + } + + *groups_count = ads_count_replies(ads_struct, res); + if (*groups_count == 0) { + DEBUG(1,("enum_groups: No groups found\n")); + } + + (*groups) = talloc_zero(mem_ctx, (*groups_count) * sizeof(**groups)); + if (!*groups) { + ads_status = ADS_ERROR_NT(NT_STATUS_NO_MEMORY); + } + + for (msg = ads_first_entry(ads_struct, res); msg; msg = ads_next_entry(ads_struct, msg)) { + uint32 grouptype; + + if (!ads_pull_uint32(ads_struct, msg, "groupType", &grouptype)) { + ; + } else { + (*groups)->group_ctrl = ads_gtype2gcb(grouptype); + } + + if (!((*groups)->group_name = ads_pull_string(ads_struct, mem_ctx, msg, "sAMAccountName"))) { + ; + } + + if (!((*groups)->group_desc = ads_pull_string(ads_struct, mem_ctx, msg, "description"))) { + ; + } + + if (!ads_pull_sid(ads_struct, msg, "objectSid", &((*groups)->sid))) { + DEBUG(1,("No sid for group %s !?\n", (*groups)->group_name)); + continue; + } + + i++; + } + + (*groups_count) = i; + + ads_status = ADS_ERROR_NT(NT_STATUS_OK); + + DEBUG(3,("ads enum_dom_groups gave %d entries\n", (*groups_count))); + + if (res) ads_msgfree(ads_struct, res); + + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_get_group_by_sid(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *groupsid, SAM_GROUP_HANDLE **group) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_get_group_by_name(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const uint32 access_desired, const char *name, SAM_GROUP_HANDLE **group) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_add_member_to_group(const SAM_METHODS *sam_method, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_delete_member_from_group(const SAM_METHODS *sam_method, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_enum_groupmembers(const SAM_METHODS *sam_method, const SAM_GROUP_HANDLE *group, uint32 *members_count, SAM_GROUP_MEMBER **members) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +static NTSTATUS sam_ads_get_groups_of_sid(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const DOM_SID **sids, const uint16 group_ctrl, uint32 *group_count, SAM_GROUP_ENUM **groups) +{ + ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; + DEBUG(0,("sam_ads: %s was called!\n",__FUNCTION__)); + SAM_ASSERT(sam_method); + return ads_ntstatus(ads_status); +} + +/********************************** +Free our private data +***********************************/ +static void sam_ads_free_private_data(void **vp) +{ + struct sam_ads_privates **sam_ads_state = (struct sam_ads_privates **)vp; + + if ((*sam_ads_state)->ads_struct->ld) { + ldap_unbind((*sam_ads_state)->ads_struct->ld); + } + + ads_destroy(&((*sam_ads_state)->ads_struct)); + + talloc_destroy((*sam_ads_state)->mem_ctx); + /* Fix me: maybe we must free some other stuff here */ + + *sam_ads_state = NULL; +} + + + +/***************************************************** +Init the ADS SAM backend +******************************************************/ +NTSTATUS sam_init_ads(SAM_METHODS *sam_method, const char *module_params) +{ + ADS_STATUS ads_status; + NTSTATUS nt_status; + struct sam_ads_privates *sam_ads_state; + TALLOC_CTX *mem_ctx; + + SAM_ASSERT(sam_method && sam_method->parent); + + mem_ctx = sam_method->parent->mem_ctx; + + /* Here the SAM API functions of the sam_ads module */ + + /* General API */ + + sam_method->sam_get_sec_desc = sam_ads_get_sec_desc; + sam_method->sam_set_sec_desc = sam_ads_set_sec_desc; + + sam_method->sam_lookup_sid = sam_ads_lookup_sid; + sam_method->sam_lookup_name = sam_ads_lookup_name; + + /* Domain API */ + + sam_method->sam_update_domain = sam_ads_update_domain; + sam_method->sam_get_domain_handle = sam_ads_get_domain_handle; + + /* Account API */ + + sam_method->sam_create_account = sam_ads_create_account; + sam_method->sam_add_account = sam_ads_add_account; + sam_method->sam_update_account = sam_ads_update_account; + sam_method->sam_delete_account = sam_ads_delete_account; + sam_method->sam_enum_accounts = sam_ads_enum_accounts; + + sam_method->sam_get_account_by_sid = sam_ads_get_account_by_sid; + sam_method->sam_get_account_by_name = sam_ads_get_account_by_name; + + /* Group API */ + + sam_method->sam_create_group = sam_ads_create_group; + sam_method->sam_add_group = sam_ads_add_group; + sam_method->sam_update_group = sam_ads_update_group; + sam_method->sam_delete_group = sam_ads_delete_group; + sam_method->sam_enum_groups = sam_ads_enum_groups; + sam_method->sam_get_group_by_sid = sam_ads_get_group_by_sid; + sam_method->sam_get_group_by_name = sam_ads_get_group_by_name; + + sam_method->sam_add_member_to_group = sam_ads_add_member_to_group; + sam_method->sam_delete_member_from_group = sam_ads_delete_member_from_group; + sam_method->sam_enum_groupmembers = sam_ads_enum_groupmembers; + + sam_method->sam_get_groups_of_sid = sam_ads_get_groups_of_sid; + + /*Fix me: use talloc !*/ + sam_ads_state = talloc_zero(mem_ctx, sizeof(struct sam_ads_privates)); + if (!sam_ads_state) { + DEBUG(0, ("talloc() failed for sam_ads private_data!\n")); + return NT_STATUS_NO_MEMORY; + } + + if (!(sam_ads_state->mem_ctx = talloc_init_named("sam_ads_method"))) { + DEBUG(0, ("talloc_init_named() failed for sam_ads_state->mem_ctx\n")); + return NT_STATUS_NO_MEMORY; + } + + sam_ads_state->ads_bind_dn = talloc_strdup(sam_ads_state->mem_ctx, lp_parm_string(NULL,"sam_ads","bind as")); + sam_ads_state->ads_bind_pw = talloc_strdup(sam_ads_state->mem_ctx, lp_parm_string(NULL,"sam_ads","bind pw")); + + sam_ads_state->bind_plaintext = strequal(lp_parm_string(NULL, "sam_ads", "plaintext bind"), "yes"); + + if (!sam_ads_state->ads_bind_dn || !sam_ads_state->ads_bind_pw) { + DEBUG(0, ("talloc_strdup() failed for bind dn or password\n")); + return NT_STATUS_NO_MEMORY; + } + + /* Maybe we should not check the result here? Server down on startup? */ + + if (module_params && *module_params) { + sam_ads_state->ldap_uri = talloc_strdup(sam_ads_state->mem_ctx, module_params); + if (!sam_ads_state->ldap_uri) { + DEBUG(0, ("talloc_strdup() failed for bind dn or password\n")); + return NT_STATUS_NO_MEMORY; + } + } else { + sam_ads_state->ldap_uri = "ldapi://"; + } + + ads_status = sam_ads_cached_connection(sam_ads_state); + if (!ADS_ERR_OK(ads_status)) { + return ads_ntstatus(ads_status); + } + + sam_method->private_data = sam_ads_state; + sam_method->free_private_data = sam_ads_free_private_data; + + sam_ads_debug_level = debug_add_class("sam_ads"); + if (sam_ads_debug_level == -1) { + sam_ads_debug_level = DBGC_ALL; + DEBUG(0, ("sam_ads: Couldn't register custom debugging class!\n")); + } else DEBUG(2, ("sam_ads: Debug class number of 'sam_ads': %d\n", sam_ads_debug_level)); + + DEBUG(5, ("Initializing sam_ads\n")); + if (module_params) + DEBUG(10, ("Module Parameters for Domain %s[%s]: %s\n", sam_method->domain_name, sam_method->domain_name, module_params)); + return NT_STATUS_OK; +} + +#else /* HAVE_LDAP */ +void sam_ads_dummy(void) +{ + DEBUG(0,("sam_ads: not supported!\n")); +} +#endif /* HAVE_LDAP */ diff --git a/source3/torture/cmd_sam.c b/source3/torture/cmd_sam.c index 3d4725c8a8..627a2f59b3 100644 --- a/source3/torture/cmd_sam.c +++ b/source3/torture/cmd_sam.c @@ -99,7 +99,7 @@ static NTSTATUS cmd_lookup_sid(struct samtest_state *st, TALLOC_CTX *mem_ctx, in return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = context_sam_lookup_sid(st->context, st->token, &sid, &name, &type))) { + if (!NT_STATUS_IS_OK(status = context_sam_lookup_sid(st->context, st->token, mem_ctx, &sid, &name, &type))) { printf("context_sam_lookup_sid failed!\n"); return status; } @@ -112,7 +112,7 @@ static NTSTATUS cmd_lookup_sid(struct samtest_state *st, TALLOC_CTX *mem_ctx, in static NTSTATUS cmd_lookup_name(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) { - DOM_SID *sid; + DOM_SID sid; uint32 type; NTSTATUS status; if (argc != 3) { @@ -125,7 +125,7 @@ static NTSTATUS cmd_lookup_name(struct samtest_state *st, TALLOC_CTX *mem_ctx, i return status; } - printf("SID: %s\n", sid_string_static(sid)); + printf("SID: %s\n", sid_string_static(&sid)); printf("Type: %d\n", type); return NT_STATUS_OK; -- cgit From ac625a8235bcee8f56d26899c6f0ad7b13deae9a Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 28 Sep 2002 13:29:51 +0000 Subject: Second stab at Volker's 'make shadow passwords work' patch. Basicly, the password and the salt must be taken from the same place in both passwd and shadow based systems. Taking salt from one, and password from the other just doesn't work. So pull them from passwd, then overwrite them if need be. When modifying this file, watch the #ifdef hell - as vl found out, some variables are globals - but only with #ifndef WITH_PAM, and the code jumps all over the place with the password cracker. Getting double-reviews of any change to this file highly advised, it is one of our most system-specifc areas of code. (So now I get to take the blame for this one... :-) Andrew Bartlett (This used to be commit f39f167900db3f06ec3c52c3ddf61e8bf3d57f56) --- source3/auth/pass_check.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source3/auth/pass_check.c b/source3/auth/pass_check.c index 63918796ef..e1783bfd1e 100644 --- a/source3/auth/pass_check.c +++ b/source3/auth/pass_check.c @@ -634,6 +634,7 @@ NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *pas /* Also the place to keep the 'password' no matter what crazy struct it started in... */ fstrcpy(this_crypted, pass->pw_passwd); + fstrcpy(this_salt, pass->pw_passwd); #ifdef HAVE_GETSPNAM { @@ -645,8 +646,10 @@ NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *pas perhaps for IPC password changing requests */ spass = getspnam(pass->pw_name); - if (spass && spass->sp_pwdp) + if (spass && spass->sp_pwdp) { fstrcpy(this_crypted, spass->sp_pwdp); + fstrcpy(this_salt, spass->sp_pwdp); + } } #elif defined(IA_UINFO) { @@ -704,9 +707,6 @@ NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *pas } #endif - /* extract relevant info */ - fstrcpy(this_salt, pass->pw_passwd); - #if defined(HAVE_TRUNCATED_SALT) /* crypt on some platforms (HPUX in particular) won't work with more than 2 salt characters. */ -- cgit From 120e3854177a3e57308cb88a20611a97f60c6d44 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 28 Sep 2002 14:26:19 +0000 Subject: Back out one of the API changes, now I recall how it was meant to work. (New accounts are created on thier internal talloc context, not a supplied one and not the one beloning to the SAM) Also actaully add the sam_skel to the tree. I need to work out with Jelmer an appropriate way to ensure we still have an example external build, and if this should move back out again. Andrew Bartlett (This used to be commit dc8b0d23e088d1e7f7fbc6ab0423eaa82f14e258) --- source3/sam/api.c | 4 +- source3/sam/interface.c | 6 +- source3/sam/sam_ads.c | 3 +- source3/sam/sam_skel.c | 251 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 258 insertions(+), 6 deletions(-) create mode 100644 source3/sam/sam_skel.c diff --git a/source3/sam/api.c b/source3/sam/api.c index 349c18787c..fd345592ce 100644 --- a/source3/sam/api.c +++ b/source3/sam/api.c @@ -120,7 +120,7 @@ NTSTATUS sam_get_domain_by_sid(const NT_USER_TOKEN *access_token, const uint32 a /* Account API */ -NTSTATUS sam_create_account(const NT_USER_TOKEN *access_token, const uint32 access_desired, TALLOC_CTX *mem_ctx, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) +NTSTATUS sam_create_account(const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) { SAM_CONTEXT *sam_context = sam_get_static_context(False); @@ -128,7 +128,7 @@ NTSTATUS sam_create_account(const NT_USER_TOKEN *access_token, const uint32 acce return NT_STATUS_UNSUCCESSFUL; } - return sam_context->sam_create_account(sam_context, access_token, access_desired, mem_ctx, domainsid, account_name, acct_ctrl, account); + return sam_context->sam_create_account(sam_context, access_token, access_desired, domainsid, account_name, acct_ctrl, account); } NTSTATUS sam_add_account(const DOM_SID *domainsid, const SAM_ACCOUNT_HANDLE *account) diff --git a/source3/sam/interface.c b/source3/sam/interface.c index 5d12cfc999..994e36606a 100644 --- a/source3/sam/interface.c +++ b/source3/sam/interface.c @@ -32,7 +32,9 @@ extern DOM_SID global_sid_Builtin; const struct sam_init_function_entry builtin_sam_init_functions[] = { { "plugin", sam_init_plugin }, +#ifdef HAVE_LDAP { "ads", sam_init_ads }, +#endif { "skel", sam_init_skel }, { NULL, NULL} }; @@ -356,7 +358,7 @@ NTSTATUS context_sam_get_domain_by_sid(const SAM_CONTEXT *context, const NT_USER return NT_STATUS_OK; } -NTSTATUS context_sam_create_account(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, TALLOC_CTX *mem_ctx, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) +NTSTATUS context_sam_create_account(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; @@ -373,7 +375,7 @@ NTSTATUS context_sam_create_account(const SAM_CONTEXT *context, const NT_USER_TO return NT_STATUS_NOT_IMPLEMENTED; } - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_create_account(tmp_methods, access_token, access_desired, mem_ctx, account_name, acct_ctrl, account))) { + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_create_account(tmp_methods, access_token, access_desired, account_name, acct_ctrl, account))) { DEBUG(4,("sam_create_account in backend %s failed\n", tmp_methods->backendname)); return nt_status; diff --git a/source3/sam/sam_ads.c b/source3/sam/sam_ads.c index 7f2a901d81..cd24baa1bc 100755 --- a/source3/sam/sam_ads.c +++ b/source3/sam/sam_ads.c @@ -569,7 +569,6 @@ static NTSTATUS sam_ads_get_domain_handle(const SAM_METHODS *sam_method, const N /* Account API */ static NTSTATUS sam_ads_create_account(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, uint32 access_desired, - TALLOC_CTX *mem_ctx, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) { ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; @@ -586,7 +585,7 @@ static NTSTATUS sam_ads_create_account(const SAM_METHODS *sam_method, if (!ADS_ERR_OK(ads_status)) return ads_ntstatus(ads_status); - ads_status = ADS_ERROR_NT(sam_init_account_talloc(mem_ctx, account)); + ads_status = ADS_ERROR_NT(sam_init_account(account)); if (!ADS_ERR_OK(ads_status)) return ads_ntstatus(ads_status); diff --git a/source3/sam/sam_skel.c b/source3/sam/sam_skel.c new file mode 100644 index 0000000000..8073470716 --- /dev/null +++ b/source3/sam/sam_skel.c @@ -0,0 +1,251 @@ +/* + Unix SMB/CIFS implementation. + this is a skeleton for SAM backend modules. + + Copyright (C) Stefan (metze) Metzmacher 2002 + Copyright (C) Jelmer Vernooij 2002 + Copyright (C) Andrew Bartlett 2002 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" + +static int sam_skel_debug_level = DBGC_SAM; + +#undef DBGC_CLASS +#define DBGC_CLASS sam_skel_debug_level + +/* define the version of the SAM interface */ +SAM_MODULE_VERSIONING_MAGIC + +/* General API */ + +static NTSTATUS sam_skel_get_sec_desc(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_set_sec_desc(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + + +static NTSTATUS sam_skel_lookup_sid(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, uint32 *type) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_lookup_name(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, const char *name, DOM_SID *sid, uint32 *type) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + + +/* Domain API */ + +static NTSTATUS sam_skel_update_domain(const SAM_METHODS *sam_methods, const SAM_DOMAIN_HANDLE *domain) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_get_domain_handle(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, SAM_DOMAIN_HANDLE **domain) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + + +/* Account API */ + +static NTSTATUS sam_skel_create_account(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_add_account(const SAM_METHODS *sam_methods, const SAM_ACCOUNT_HANDLE *account) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_update_account(const SAM_METHODS *sam_methods, const SAM_ACCOUNT_HANDLE *account) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_delete_account(const SAM_METHODS *sam_methods, const SAM_ACCOUNT_HANDLE *account) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_enum_accounts(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint16 acct_ctrl, uint32 *account_count, SAM_ACCOUNT_ENUM **accounts) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + + +static NTSTATUS sam_skel_get_account_by_sid(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *accountsid, SAM_ACCOUNT_HANDLE **account) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_get_account_by_name(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *name, SAM_ACCOUNT_HANDLE **account) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + + +/* Group API */ + +static NTSTATUS sam_skel_create_group(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *account_name, uint16 group_ctrl, SAM_GROUP_HANDLE **group) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_add_group(const SAM_METHODS *sam_methods, const SAM_GROUP_HANDLE *group) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_update_group(const SAM_METHODS *sam_methods, const SAM_GROUP_HANDLE *group) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_delete_group(const SAM_METHODS *sam_methods, const SAM_GROUP_HANDLE *group) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_enum_groups(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint16 group_ctrl, uint32 *groups_count, SAM_GROUP_ENUM **groups) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_get_group_by_sid(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *groupsid, SAM_GROUP_HANDLE **group) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_get_group_by_name(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *name, SAM_GROUP_HANDLE **group) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + + +static NTSTATUS sam_skel_add_member_to_group(const SAM_METHODS *sam_methods, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_delete_member_from_group(const SAM_METHODS *sam_methods, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS sam_skel_enum_groupmembers(const SAM_METHODS *sam_methods, const SAM_GROUP_HANDLE *group, uint32 *members_count, SAM_GROUP_MEMBER **members) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + + +static NTSTATUS sam_skel_get_groups_of_sid(const SAM_METHODS *sam_methods, const NT_USER_TOKEN *access_token, const DOM_SID **sids, uint16 group_ctrl, uint32 *group_count, SAM_GROUP_ENUM **groups) +{ + DEBUG(0,("sam_skel: %s was called!\n",__FUNCTION__)); + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS sam_init_skel(SAM_METHODS *sam_methods, const char *module_params) +{ + /* Functions your SAM module doesn't provide should be set + * to NULL */ + + sam_methods->sam_get_sec_desc = sam_skel_get_sec_desc; + sam_methods->sam_set_sec_desc = sam_skel_set_sec_desc; + + sam_methods->sam_lookup_sid = sam_skel_lookup_sid; + sam_methods->sam_lookup_name = sam_skel_lookup_name; + + /* Domain API */ + + sam_methods->sam_update_domain = sam_skel_update_domain; + sam_methods->sam_get_domain_handle = sam_skel_get_domain_handle; + + /* Account API */ + + sam_methods->sam_create_account = sam_skel_create_account; + sam_methods->sam_add_account = sam_skel_add_account; + sam_methods->sam_update_account = sam_skel_update_account; + sam_methods->sam_delete_account = sam_skel_delete_account; + sam_methods->sam_enum_accounts = sam_skel_enum_accounts; + + sam_methods->sam_get_account_by_sid = sam_skel_get_account_by_sid; + sam_methods->sam_get_account_by_name = sam_skel_get_account_by_name; + + /* Group API */ + + sam_methods->sam_create_group = sam_skel_create_group; + sam_methods->sam_add_group = sam_skel_add_group; + sam_methods->sam_update_group = sam_skel_update_group; + sam_methods->sam_delete_group = sam_skel_delete_group; + sam_methods->sam_enum_groups = sam_skel_enum_groups; + sam_methods->sam_get_group_by_sid = sam_skel_get_group_by_sid; + sam_methods->sam_get_group_by_name = sam_skel_get_group_by_name; + + sam_methods->sam_add_member_to_group = sam_skel_add_member_to_group; + sam_methods->sam_delete_member_from_group = sam_skel_delete_member_from_group; + sam_methods->sam_enum_groupmembers = sam_skel_enum_groupmembers; + + sam_methods->sam_get_groups_of_sid = sam_skel_get_groups_of_sid; + + sam_methods->free_private_data = NULL; + + + sam_skel_debug_level = debug_add_class("sam_skel"); + if (sam_skel_debug_level == -1) { + sam_skel_debug_level = DBGC_SAM; + DEBUG(0, ("sam_skel: Couldn't register custom debugging class!\n")); + } else DEBUG(2, ("sam_skel: Debug class number of 'sam_skel': %d\n", sam_skel_debug_level)); + + if(module_params) + DEBUG(0, ("Starting 'sam_skel' with parameters '%s' for domain %s\n", module_params, sam_methods->domain_name)); + else + DEBUG(0, ("Starting 'sam_skel' for domain %s without paramters\n", sam_methods->domain_name)); + + return NT_STATUS_OK; +} -- cgit From b1361525c69de00f79246c236ca1d2f0fca6c0e6 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 28 Sep 2002 14:41:12 +0000 Subject: Forgot to commit this in the patch changing back the create_user API. (This used to be commit cf249f5b222312bb05fb8ab53413d160149f7477) --- source3/include/sam.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source3/include/sam.h b/source3/include/sam.h index 8fbda7e857..4cf46bfa75 100644 --- a/source3/include/sam.h +++ b/source3/include/sam.h @@ -183,7 +183,7 @@ typedef struct sam_context /* Account API */ - NTSTATUS (*sam_create_account) (const struct sam_context *context, const NT_USER_TOKEN *access_token, uint32 access_desired, TALLOC_CTX *mem_ctx, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account); + NTSTATUS (*sam_create_account) (const struct sam_context *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account); NTSTATUS (*sam_add_account) (const struct sam_context *, const DOM_SID *domainsid, const SAM_ACCOUNT_HANDLE *account); NTSTATUS (*sam_update_account) (const struct sam_context *, const SAM_ACCOUNT_HANDLE *account); NTSTATUS (*sam_delete_account) (const struct sam_context *, const SAM_ACCOUNT_HANDLE *account); @@ -235,7 +235,7 @@ typedef struct sam_methods /* Account API */ - NTSTATUS (*sam_create_account) (const struct sam_methods *, const NT_USER_TOKEN *access_token, uint32 access_desired, TALLOC_CTX *mem_ctx, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account); + NTSTATUS (*sam_create_account) (const struct sam_methods *, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account); NTSTATUS (*sam_add_account) (const struct sam_methods *, const SAM_ACCOUNT_HANDLE *account); NTSTATUS (*sam_update_account) (const struct sam_methods *, const SAM_ACCOUNT_HANDLE *account); NTSTATUS (*sam_delete_account) (const struct sam_methods *, const SAM_ACCOUNT_HANDLE *account); -- cgit From 4e73790e3a20be5c7bf8fa3b62d9d41ba246b59c Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 28 Sep 2002 14:42:32 +0000 Subject: Try to compile as much as possible with only ldap, but not kerberos. (This used to be commit 9615ab10c006d8027f6a8b7dd3770eb77304dbdc) --- source3/libads/disp_sec.c | 3 --- source3/libads/krb5_setpw.c | 31 +++++++++++++++++++++++++++++++ source3/libads/ldap.c | 33 +-------------------------------- source3/libads/sasl.c | 4 +++- 4 files changed, 35 insertions(+), 36 deletions(-) diff --git a/source3/libads/disp_sec.c b/source3/libads/disp_sec.c index a930fd6fe0..a7b0bf6f07 100644 --- a/source3/libads/disp_sec.c +++ b/source3/libads/disp_sec.c @@ -20,8 +20,6 @@ #include "includes.h" -#ifdef HAVE_ADS - static struct perm_mask_str { uint32 mask; char *str; @@ -158,5 +156,4 @@ void ads_disp_sd(SEC_DESC *sd) printf("-------------- End Of Security Descriptor\n"); } -#endif diff --git a/source3/libads/krb5_setpw.c b/source3/libads/krb5_setpw.c index a49b6cbe3b..8079c0953f 100644 --- a/source3/libads/krb5_setpw.c +++ b/source3/libads/krb5_setpw.c @@ -471,4 +471,35 @@ ADS_STATUS kerberos_set_password(const char *kpasswd_server, } +/** + * Set the machine account password + * @param ads connection to ads server + * @param hostname machine whose password is being set + * @param password new password + * @return status of password change + **/ +ADS_STATUS ads_set_machine_password(ADS_STRUCT *ads, + const char *hostname, + const char *password) +{ + ADS_STATUS status; + char *host = strdup(hostname); + char *principal; + + strlower(host); + + /* + we need to use the '$' form of the name here, as otherwise the + server might end up setting the password for a user instead + */ + asprintf(&principal, "%s$@%s", host, ads->auth.realm); + + status = krb5_set_password(ads->auth.kdc_server, principal, password, ads->auth.time_offset); + + free(host); + free(principal); + + return status; +} + #endif diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c index 1004ea229c..2133bf0719 100644 --- a/source3/libads/ldap.c +++ b/source3/libads/ldap.c @@ -22,7 +22,7 @@ #include "includes.h" -#ifdef HAVE_ADS +#ifdef HAVE_LDAP /** * @file ldap.c @@ -1443,37 +1443,6 @@ ads_set_sd_error: return ret; } -/** - * Set the machine account password - * @param ads connection to ads server - * @param hostname machine whose password is being set - * @param password new password - * @return status of password change - **/ -ADS_STATUS ads_set_machine_password(ADS_STRUCT *ads, - const char *hostname, - const char *password) -{ - ADS_STATUS status; - char *host = strdup(hostname); - char *principal; - - strlower(host); - - /* - we need to use the '$' form of the name here, as otherwise the - server might end up setting the password for a user instead - */ - asprintf(&principal, "%s$@%s", host, ads->auth.realm); - - status = krb5_set_password(ads->auth.kdc_server, principal, password, ads->auth.time_offset); - - free(host); - free(principal); - - return status; -} - /** * pull the first entry from a ADS result * @param ads connection to ads server diff --git a/source3/libads/sasl.c b/source3/libads/sasl.c index f7dd01084a..aa7d99a5f7 100644 --- a/source3/libads/sasl.c +++ b/source3/libads/sasl.c @@ -20,7 +20,7 @@ #include "includes.h" -#ifdef HAVE_ADS +#ifdef HAVE_LDAP /* perform a LDAP/SASL/SPNEGO/NTLMSSP bind (just how many layers can @@ -190,10 +190,12 @@ static ADS_STATUS ads_sasl_spnego_bind(ADS_STRUCT *ads) } DEBUG(3,("got principal=%s\n", principal)); +#ifdef HAVE_KRB5 if (!(ads->auth.flags & ADS_AUTH_DISABLE_KERBEROS) && got_kerberos_mechanism && ads_kinit_password(ads) == 0) { return ads_sasl_spnego_krb5_bind(ads, principal); } +#endif /* lets do NTLMSSP ... this has the big advantage that we don't need to sync clocks, and we don't rely on special versions of the krb5 -- cgit From ca772ac1f41cbcb620e534b8d2c916e0e3f16808 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sat, 28 Sep 2002 15:01:58 +0000 Subject: Ok, hopefully final fix for this one. abartlet told a bit about the history. Volker (This used to be commit d47aff38db23815a48e64718ecb6c957101ecdac) --- source3/libsmb/cliconnect.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index 695c6506b5..3951e3c776 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -185,12 +185,6 @@ static BOOL cli_session_setup_plaintext(struct cli_state *cli, char *user, { uint32 capabilities = cli_session_setup_capabilities(cli); char *p; - int push_flags = STR_TERMINATE; - - if (capabilities & CAP_UNICODE) - push_flags |= STR_UNICODE; - else - push_flags |= STR_ASCII; set_message(cli->outbuf,13,0,True); SCVAL(cli->outbuf,smb_com,SMBsesssetupX); @@ -204,7 +198,7 @@ static BOOL cli_session_setup_plaintext(struct cli_state *cli, char *user, SSVAL(cli->outbuf,smb_vwv8,0); SIVAL(cli->outbuf,smb_vwv11,capabilities); p = smb_buf(cli->outbuf); - p += clistr_push(cli, p, pass, -1, push_flags); /* password */ + p += clistr_push(cli, p, pass, -1, STR_TERMINATE); /* password */ SSVAL(cli->outbuf,smb_vwv7,PTR_DIFF(p, smb_buf(cli->outbuf))); p += clistr_push(cli, p, user, -1, STR_TERMINATE); /* username */ p += clistr_push(cli, p, workgroup, -1, STR_TERMINATE); /* workgroup */ -- cgit From 10581a3cef1c5d6cfc66ec22482bb0dec6bb011b Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 28 Sep 2002 20:09:30 +0000 Subject: Include ../include/libsmbclient.h instead of just libsmbclient.h - we don't want to include the globally installed libsmbclient.h - found by jht (This used to be commit e35a5da3a75c74ab066bff5e0f60d30deb008451) --- source3/libsmb/libsmbclient.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source3/libsmb/libsmbclient.c b/source3/libsmb/libsmbclient.c index 44cba611d2..faa4191e6d 100644 --- a/source3/libsmb/libsmbclient.c +++ b/source3/libsmb/libsmbclient.c @@ -23,7 +23,7 @@ #include "includes.h" -#include "libsmbclient.h" +#include "../include/libsmbclient.h" /* * Functions exported by libsmb_cache.c that we need here -- cgit From cd2ab11b249306e7661a56e84b211c126949ec8d Mon Sep 17 00:00:00 2001 From: John Terpstra Date: Sat, 28 Sep 2002 20:44:23 +0000 Subject: Fixing path to libsmbclient.h so it never gets crossed with a system installed one. (This used to be commit cc878f43b9a91385ca3671f17a08253b8464c039) --- source3/libsmb/libsmb_cache.c | 2 +- source3/libsmb/libsmb_compat.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source3/libsmb/libsmb_cache.c b/source3/libsmb/libsmb_cache.c index df02cf3718..b1620042f3 100644 --- a/source3/libsmb/libsmb_cache.c +++ b/source3/libsmb/libsmb_cache.c @@ -27,7 +27,7 @@ * Define this to get the real SMBCFILE and SMBCSRV structures */ #define _SMBC_INTERNAL -#include "libsmbclient.h" +#include "../include/libsmbclient.h" /* * Structure we use if internal caching mechanism is used diff --git a/source3/libsmb/libsmb_compat.c b/source3/libsmb/libsmb_compat.c index dbfd860358..bba90c648e 100644 --- a/source3/libsmb/libsmb_compat.c +++ b/source3/libsmb/libsmb_compat.c @@ -28,7 +28,7 @@ * Define this to get the real SMBCFILE and SMBCSRV structures */ #define _SMBC_INTERNAL -#include "libsmbclient.h" +#include "../include/libsmbclient.h" struct smbc_compat_fdlist { SMBCFILE * file; -- cgit From 4310fa264fedabb9f1c46dd121e3be3bf7b3f638 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 28 Sep 2002 21:17:33 +0000 Subject: Patch from metze to fix enum_accounts (This used to be commit 9d529256c55e5a5099f69471ed1357cff06003fe) --- source3/torture/cmd_sam.c | 69 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 56 insertions(+), 13 deletions(-) diff --git a/source3/torture/cmd_sam.c b/source3/torture/cmd_sam.c index 627a2f59b3..4c274b60ad 100644 --- a/source3/torture/cmd_sam.c +++ b/source3/torture/cmd_sam.c @@ -22,6 +22,11 @@ #include "includes.h" #include "samtest.h" +static void print_account(SAM_ACCOUNT_HANDLE *a) +{ + /* FIXME */ +} + static NTSTATUS cmd_context(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) { NTSTATUS status; @@ -227,13 +232,13 @@ static NTSTATUS cmd_show_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, i if (!NT_STATUS_IS_OK(status = sam_get_domain_num_groups(domain, &tmp_uint32))) { printf("sam_get_domain_num_groups failed: %s\n", nt_errstr(status)); } else { - printf("Number of groups: %d\n", tmp_uint32); + printf("Number of groups: %u\n", tmp_uint32); } if (!NT_STATUS_IS_OK(status = sam_get_domain_num_aliases(domain, &tmp_uint32))) { printf("sam_get_domain_num_aliases failed: %s\n", nt_errstr(status)); } else { - printf("Number of aliases: %d\n", tmp_uint32); + printf("Number of aliases: %u\n", tmp_uint32); } if (!NT_STATUS_IS_OK(status = sam_get_domain_name(domain, &tmp_string))) { @@ -245,7 +250,7 @@ static NTSTATUS cmd_show_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, i if (!NT_STATUS_IS_OK(status = sam_get_domain_lockout_count(domain, &tmp_uint16))) { printf("sam_get_domain_lockout_count failed: %s\n", nt_errstr(status)); } else { - printf("Lockout Count: %d\n", tmp_uint16); + printf("Lockout Count: %u\n", tmp_uint16); } if (!NT_STATUS_IS_OK(status = sam_get_domain_force_logoff(domain, &tmp_bool))) { @@ -257,7 +262,7 @@ static NTSTATUS cmd_show_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, i if (!NT_STATUS_IS_OK(status = sam_get_domain_lockout_duration(domain, &tmp_nttime))) { printf("sam_get_domain_lockout_duration failed: %s\n", nt_errstr(status)); } else { - printf("Lockout duration: %d\n", tmp_nttime.low); + printf("Lockout duration: %u\n", tmp_nttime.low); } if (!NT_STATUS_IS_OK(status = sam_get_domain_login_pwdchange(domain, &tmp_bool))) { @@ -269,31 +274,31 @@ static NTSTATUS cmd_show_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, i if (!NT_STATUS_IS_OK(status = sam_get_domain_max_pwdage(domain, &tmp_nttime))) { printf("sam_get_domain_max_pwdage failed: %s\n", nt_errstr(status)); } else { - printf("Maximum password age: %d\n", tmp_nttime.low); + printf("Maximum password age: %u\n", tmp_nttime.low); } if (!NT_STATUS_IS_OK(status = sam_get_domain_min_pwdage(domain, &tmp_nttime))) { printf("sam_get_domain_min_pwdage failed: %s\n", nt_errstr(status)); } else { - printf("Minimal password age: %d\n", tmp_nttime.low); + printf("Minimal password age: %u\n", tmp_nttime.low); } if (!NT_STATUS_IS_OK(status = sam_get_domain_min_pwdlength(domain, &tmp_uint16))) { printf("sam_get_domain_min_pwdlength: %s\n", nt_errstr(status)); } else { - printf("Minimal Password Length: %d\n", tmp_uint16); + printf("Minimal Password Length: %u\n", tmp_uint16); } if (!NT_STATUS_IS_OK(status = sam_get_domain_pwd_history(domain, &tmp_uint16))) { printf("sam_get_domain_pwd_history failed: %s\n", nt_errstr(status)); } else { - printf("Password history: %d\n", tmp_uint16); + printf("Password history: %u\n", tmp_uint16); } if (!NT_STATUS_IS_OK(status = sam_get_domain_reset_count(domain, &tmp_nttime))) { printf("sam_get_domain_reset_count failed: %s\n", nt_errstr(status)); } else { - printf("Reset count: %d\n", tmp_nttime.low); + printf("Reset count: %u\n", tmp_nttime.low); } if (!NT_STATUS_IS_OK(status = sam_get_domain_server(domain, &tmp_string))) { @@ -326,6 +331,7 @@ static NTSTATUS cmd_enum_accounts(struct samtest_state *st, TALLOC_CTX *mem_ctx, DOM_SID sid; int32 account_count, i; SAM_ACCOUNT_ENUM *accounts; + uint16 acct_ctrl = (ACB_NORMAL |ACB_WSTRUST |ACB_SVRTRUST |ACB_DOMTRUST | ACB_MNS); if (argc != 2) { printf("Usage: enum_accounts \n"); @@ -337,7 +343,7 @@ static NTSTATUS cmd_enum_accounts(struct samtest_state *st, TALLOC_CTX *mem_ctx, return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = context_sam_enum_accounts(st->context, st->token, &sid, 0, &account_count, &accounts))) { + if (!NT_STATUS_IS_OK(status = context_sam_enum_accounts(st->context, st->token, &sid, acct_ctrl, &account_count, &accounts))) { printf("context_sam_enum_accounts failed: %s\n", nt_errstr(status)); return status; } @@ -348,7 +354,7 @@ static NTSTATUS cmd_enum_accounts(struct samtest_state *st, TALLOC_CTX *mem_ctx, } for (i = 0; i < account_count; i++) - printf("%s\t%s\t%s\t%s\t%d\n", + printf("SID: %s\nName: %s\nFullname: %s\nDescription: %s\nACB_BITS: %08X\n\n", sid_string_static(&accounts[i].sid), accounts[i].account_name, accounts[i].full_name, accounts[i].account_desc, accounts[i].acct_ctrl); @@ -360,12 +366,49 @@ static NTSTATUS cmd_enum_accounts(struct samtest_state *st, TALLOC_CTX *mem_ctx, static NTSTATUS cmd_lookup_account_sid(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) { - return NT_STATUS_NOT_IMPLEMENTED; + NTSTATUS status; + DOM_SID sid; + SAM_ACCOUNT_HANDLE *account; + + if (argc != 2) { + printf("Usage: lookup_account_sid \n"); + return NT_STATUS_INVALID_PARAMETER; + } + + if (!string_to_sid(&sid, argv[1])){ + printf("Unparseable SID specified!\n"); + return NT_STATUS_INVALID_PARAMETER; + } + + if (!NT_STATUS_IS_OK(status = context_sam_get_account_by_sid(st->context, st->token, USER_ALL_ACCESS, &sid, &account))) { + printf("context_sam_get_account_by_sid failed: %s\n", nt_errstr(status)); + return status; + } + + print_account(account); + + return NT_STATUS_OK; } static NTSTATUS cmd_lookup_account_name(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) { - return NT_STATUS_NOT_IMPLEMENTED; + NTSTATUS status; + SAM_ACCOUNT_HANDLE *account; + + if (argc != 3) { + printf("Usage: lookup_account_name \n"); + return NT_STATUS_INVALID_PARAMETER; + } + + + if (!NT_STATUS_IS_OK(status = context_sam_get_account_by_name(st->context, st->token, USER_ALL_ACCESS, argv[1], argv[2], &account))) { + printf("context_sam_get_account_by_sid failed: %s\n", nt_errstr(status)); + return status; + } + + print_account(account); + + return NT_STATUS_OK; } static NTSTATUS cmd_create_group(struct samtest_state *st, TALLOC_CTX *mem_ctx, int argc, char **argv) -- cgit From af2ab48c4a036401132eca1ab01d3c958679436c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 28 Sep 2002 22:54:16 +0000 Subject: Fix typos + report FIXME (This used to be commit 470a1316324821984745bcf7321bafd8d0fd0a77) --- source3/sam/interface.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source3/sam/interface.c b/source3/sam/interface.c index 994e36606a..9a21eb844f 100644 --- a/source3/sam/interface.c +++ b/source3/sam/interface.c @@ -940,7 +940,7 @@ static NTSTATUS make_backend_entry(SAM_BACKEND_ENTRY *backend_entry, char *sam_b } if (backend_entry->domain_name == NULL) { - DEBUG(10,("make_backend_entry: no domain was specified for sam module %s. Useing default domain %s\n", + DEBUG(10,("make_backend_entry: no domain was specified for sam module %s. Using default domain %s\n", backend_entry->module_name, lp_workgroup())); backend_entry->domain_name = smb_xstrdup(lp_workgroup()); } @@ -955,7 +955,7 @@ static NTSTATUS make_backend_entry(SAM_BACKEND_ENTRY *backend_entry, char *sam_b if (!secrets_fetch_domain_sid(backend_entry->domain_name, backend_entry->domain_sid)) { DEBUG(2,("make_backend_entry: There is no SID stored for domain %s. Creating a new one.\n", backend_entry->domain_name)); - /* FIXME */ + DEBUG(0, ("FIXME in %s:%d\n", __FILE__, __LINE__)); ZERO_STRUCTP(backend_entry->domain_sid); } @@ -1024,8 +1024,8 @@ static NTSTATUS sam_context_check_default_backends(SAM_CONTEXT *context) ntstatus = sam_get_methods_by_sid(context, &methods, &global_sid_Builtin); if (NT_STATUS_EQUAL(ntstatus, NT_STATUS_NO_SUCH_DOMAIN)) { - DEBUG(4,("There was no backend specified for domain %s; using %s\n", - lp_workgroup(), SAM_DEFAULT_BACKEND)); + DEBUG(4,("There was no backend specified for domain %s(%s); using %s\n", + lp_workgroup(), sid_string_static(global_sam_sid), SAM_DEFAULT_BACKEND)); SAM_ASSERT(global_sam_sid); @@ -1111,7 +1111,7 @@ NTSTATUS make_sam_context_list(SAM_CONTEXT **context, char **sam_backends_param) while (sam_backends_param[nBackends]) nBackends++; - DEBUG(6,("There are %d domains listed with there backends\n", nBackends)); + DEBUG(6,("There are %d domains listed with their backends\n", nBackends)); if ((backends = (SAM_BACKEND_ENTRY *)malloc(sizeof(*backends)*nBackends)) == NULL) { DEBUG(0,("make_sam_context_list: failed to allocate backends\n")); -- cgit From acb5cc031e5a3530aef63bc3058dcfbb04f86cfc Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 28 Sep 2002 22:58:44 +0000 Subject: Fix 'plugin' command (This used to be commit b01c55ed5bbf4903a87fd17d70ae9acd832d60fe) --- source3/torture/cmd_sam.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source3/torture/cmd_sam.c b/source3/torture/cmd_sam.c index 4c274b60ad..9f162f2a07 100644 --- a/source3/torture/cmd_sam.c +++ b/source3/torture/cmd_sam.c @@ -56,12 +56,12 @@ static NTSTATUS cmd_load_module(struct samtest_state *st, TALLOC_CTX *mem_ctx, i char *plugin_arg[2]; NTSTATUS status; if (argc != 2 && argc != 3) { - printf("Usage: load [domain-sid]\n"); + printf("Usage: load [domain-name]\n"); return NT_STATUS_OK; } if (argc == 3) - asprintf(&plugin_arg[0], "%s|plugin:%s", argv[2], argv[1]); + asprintf(&plugin_arg[0], "plugin:%s|%s", argv[1], argv[2]); else asprintf(&plugin_arg[0], "plugin:%s", argv[1]); -- cgit From a89ecb9bc8d6f812dd8b846939d895f7ab552e66 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sun, 29 Sep 2002 01:01:44 +0000 Subject: Updates for sam_ads by metze - add the start of domain policy searching, and a small fix for the previous merge. Andrew Bartlett (This used to be commit 85122800fce7a6f9eeee0651f6d9eb9218e35bb6) --- source3/sam/sam_ads.c | 175 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 150 insertions(+), 25 deletions(-) diff --git a/source3/sam/sam_ads.c b/source3/sam/sam_ads.c index cd24baa1bc..e10b476997 100755 --- a/source3/sam/sam_ads.c +++ b/source3/sam/sam_ads.c @@ -173,6 +173,27 @@ static ADS_STATUS sam_ads_do_search(struct sam_ads_privates *private, const char return ads_do_search_retry(private->ads_struct, bind_path, scope, exp, attrs, res); } + +/********************************************* +here we have to check the update serial number + - this is the core of the ldap cache +*********************************************/ +static ADS_STATUS sam_ads_usn_is_valid(ADS_STRUCT *ads_struct, uint32 usn_in, uint32 *usn_out) +{ + ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL); + + SAM_ASSERT(ads_struct && usn_out); + + ads_status = ads_USN(ads_struct, usn_out); + if (!ADS_ERR_OK(ads_status)) + return ads_status; + + if (*usn_out == usn_in) + return ADS_SUCCESS; + + return ads_status; +} + /*********************************************** Initialize SAM_ACCOUNT_HANDLE from an ADS query ************************************************/ @@ -290,14 +311,116 @@ static ADS_STATUS sam_ads_get_tree_sec_desc(const SAM_METHODS *sam_method, const static ADS_STATUS sam_ads_account_policy_get(const SAM_METHODS *sam_method, int field, uint32 *value) { - ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_NOT_IMPLEMENTED); - DEBUG(0,("sam_ads: %s needs to be done! %s\n",__FUNCTION__,ads_errstr(ads_status))); + ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_INVALID_PARAMETER); + struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; + ADS_STRUCT *ads_struct = privates->ads_struct; + void *ap_res; + void *ap_msg; + const char *ap_attrs[] = {"minPwdLength","pwdHistoryLength", + /*"mustLogonToChangePass",*/"lockoutDuration" + "maxPwdAge","minPwdAge",NULL}; + /*lockOutObservationWindow + lockoutThreshold $ pwdProperties*/ + static uint32 ap[9]; + static uint32 ap_usn = 0; + uint32 tmp_usn = 0; SAM_ASSERT(sam_method && value); - /* Fix Me */ + ads_status = sam_ads_usn_is_valid(ads_struct,ap_usn,&tmp_usn); + if (!ADS_ERR_OK(ads_status)) { + ads_status = sam_ads_do_search(privates, ads_struct->config.bind_path, LDAP_SCOPE_BASE, "(objectClass=*)", ap_attrs, &ap_res); + if (!ADS_ERR_OK(ads_status)) + return ads_status; + + if (ads_count_replies(ads_struct, ap_res) != 1) { + ads_msgfree(ads_struct, ap_res); + return ADS_ERROR(LDAP_NO_RESULTS_RETURNED); + } + + if (!(ap_msg = ads_first_entry(ads_struct, ap_res))) { + ads_msgfree(ads_struct, ap_res); + return ADS_ERROR(LDAP_NO_RESULTS_RETURNED); + } + + if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[0], &ap[0])) { + /* AP_MIN_PASSWORD_LEN */ + ap[0] = MINPASSWDLENGTH;/* 5 chars minimum */ + } + if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[1], &ap[1])) { + /* AP_PASSWORD_HISTORY */ + ap[1] = 0;/* don't keep any old password */ + } + if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[2], &ap[2])) { + /* AP_USER_MUST_LOGON_TO_CHG_PASS */ + ap[2] = 0;/* don't force user to logon */ + } + if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[3], &ap[3])) { + /* AP_MAX_PASSWORD_AGE */ + ap[3] = MAX_PASSWORD_AGE;/* 21 days */ + } + if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[4], &ap[4])) { + /* AP_MIN_PASSWORD_AGE */ + ap[4] = 0;/* 0 days */ + } + if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[5], &ap[5])) { + /* AP_LOCK_ACCOUNT_DURATION */ + ap[5] = 0;/* lockout for 0 minutes */ + } + if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[6], &ap[6])) { + /* AP_RESET_COUNT_TIME */ + ap[6] = 0;/* reset immediatly */ + } + if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[7], &ap[7])) { + /* AP_BAD_ATTEMPT_LOCKOUT */ + ap[7] = 0;/* don't lockout */ + } + if (!ads_pull_uint32(ads_struct, ap_msg, ap_attrs[8], &ap[8])) { + /* AP_TIME_TO_LOGOUT */ + ap[8] = -1;/* don't force logout */ + } + + ads_msgfree(ads_struct, ap_res); + ap_usn = tmp_usn; + } + switch(field) { - /* Fix Me */ + case AP_MIN_PASSWORD_LEN: + *value = ap[0]; + ads_status = ADS_ERROR_NT(NT_STATUS_OK); + break; + case AP_PASSWORD_HISTORY: + *value = ap[1]; + ads_status = ADS_ERROR_NT(NT_STATUS_OK); + break; + case AP_USER_MUST_LOGON_TO_CHG_PASS: + *value = ap[2]; + ads_status = ADS_ERROR_NT(NT_STATUS_OK); + break; + case AP_MAX_PASSWORD_AGE: + *value = ap[3]; + ads_status = ADS_ERROR_NT(NT_STATUS_OK); + break; + case AP_MIN_PASSWORD_AGE: + *value = ap[4]; + ads_status = ADS_ERROR_NT(NT_STATUS_OK); + break; + case AP_LOCK_ACCOUNT_DURATION: + *value = ap[5]; + ads_status = ADS_ERROR_NT(NT_STATUS_OK); + break; + case AP_RESET_COUNT_TIME: + *value = ap[6]; + ads_status = ADS_ERROR_NT(NT_STATUS_OK); + break; + case AP_BAD_ATTEMPT_LOCKOUT: + *value = ap[7]; + ads_status = ADS_ERROR_NT(NT_STATUS_OK); + break; + case AP_TIME_TO_LOGOUT: + *value = ap[8]; + ads_status = ADS_ERROR_NT(NT_STATUS_OK); + break; default: *value = 0; break; } @@ -351,26 +474,12 @@ static NTSTATUS sam_ads_get_sec_desc(const SAM_METHODS *sam_method, const NT_USE return ads_ntstatus(ads_status); } - sec_desc_msg = ads_first_entry(ads_struct, sec_desc_res); - if (!(mem_ctx = talloc_init_named("sec_desc parse in sam_ads"))) { DEBUG(1, ("talloc_init_named() failed for sec_desc parse context in sam_ads")); ads_msgfree(ads_struct, sec_desc_res); return NT_STATUS_NO_MEMORY; } - if (!ads_pull_sd(ads_struct, mem_ctx, sec_desc_msg, sec_desc_attrs[0], sd)) { - talloc_destroy(mem_ctx); - ads_msgfree(ads_struct, sec_desc_res); - return NT_STATUS_INVALID_PARAMETER; - } - - if (!ADS_ERR_OK(ads_status)) { - talloc_destroy(mem_ctx); - ads_msgfree(ads_struct, sec_desc_res); - return ads_ntstatus(ads_status); - } - if (ads_count_replies(ads_struct, sec_desc_res) != 1) { DEBUG(1,("sam_ads_get_sec_desc: duplicate or 0 results for sid %s\n", sid_to_string(sid_str, sid))); @@ -413,11 +522,20 @@ static NTSTATUS sam_ads_lookup_sid(const SAM_METHODS *sam_method, const NT_USER_ TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, enum SID_NAME_USE *type) { + ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL); struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; ADS_STRUCT *ads_struct = privates->ads_struct; - SAM_ASSERT(sam_method); + SEC_DESC *my_sd; + + SAM_ASSERT(sam_method && access_token && mem_ctx && sid && name && type); + + ads_status = sam_ads_get_tree_sec_desc(sam_method, ADS_ROOT_TREE, &my_sd); + if (!ADS_ERR_OK(ads_status)) + return ads_ntstatus(ads_status); - /* Ignoring access_token for now */ + ads_status = sam_ads_access_check(sam_method, my_sd, access_token, DOMAIN_READ); + if (!ADS_ERR_OK(ads_status)) + return ads_ntstatus(ads_status); return ads_sid_to_name(ads_struct, mem_ctx, sid, name, type); } @@ -425,11 +543,20 @@ static NTSTATUS sam_ads_lookup_sid(const SAM_METHODS *sam_method, const NT_USER_ static NTSTATUS sam_ads_lookup_name(const SAM_METHODS *sam_method, const NT_USER_TOKEN *access_token, const char *name, DOM_SID *sid, enum SID_NAME_USE *type) { + ADS_STATUS ads_status = ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL); struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; ADS_STRUCT *ads_struct = privates->ads_struct; - SAM_ASSERT(sam_method); + SEC_DESC *my_sd; - /* Ignoring access_token for now */ + SAM_ASSERT(sam_method && access_token && name && sid && type); + + ads_status = sam_ads_get_tree_sec_desc(sam_method, ADS_ROOT_TREE, &my_sd); + if (!ADS_ERR_OK(ads_status)) + return ads_ntstatus(ads_status); + + ads_status = sam_ads_access_check(sam_method, my_sd, access_token, DOMAIN_READ); + if (!ADS_ERR_OK(ads_status)) + return ads_ntstatus(ads_status); return ads_name_to_sid(ads_struct, name, sid, type); } @@ -458,7 +585,7 @@ static NTSTATUS sam_ads_get_domain_handle(const SAM_METHODS *sam_method, const N DEBUG(5,("sam_ads_get_domain_handle: %d\n",__LINE__)); - SAM_ASSERT(sam_method && domain); + SAM_ASSERT(sam_method && access_token && domain); (*domain) = NULL; @@ -572,7 +699,6 @@ static NTSTATUS sam_ads_create_account(const SAM_METHODS *sam_method, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) { ADS_STATUS ads_status = ADS_STATUS_NOT_IMPLEMENTED; - struct sam_ads_privates *privates = (struct sam_ads_privates *)sam_method->private_data; SEC_DESC *sd = NULL; SAM_ASSERT(sam_method && access_token && account_name && account); @@ -967,7 +1093,6 @@ Init the ADS SAM backend NTSTATUS sam_init_ads(SAM_METHODS *sam_method, const char *module_params) { ADS_STATUS ads_status; - NTSTATUS nt_status; struct sam_ads_privates *sam_ads_state; TALLOC_CTX *mem_ctx; -- cgit From df316e3cd931baaa3793a260b5f2e70cb8235580 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sun, 29 Sep 2002 06:07:58 +0000 Subject: Remove sam/api.c. In order to reduce complexity, this patch removes the upper layer of the SAM API. Also, we remove the function pointers on the sam context - there really is no point making these replaceable - that's for the modules. Move a number of functions in include/interface.c around to allow for use of 'static' and to keep the external API in one chunk, at the bottem. All these functions were renamed to remove the context_sam -> sam Consequential changes in the samtest module, and back out metze's change for ACB filtering, becouse I think it belongs in the SAM backeds. (But I will take debate on this one). Changes to the lib/util_sid.c code to create a 'system' token, and make it a SAM_ASSERT() enforced requirement to have a token on those calls that specify it. samtest now uses this. We should have a samtest call to set your own token. We also need to extend our se_access code to cover the things that Win2k is returning in it's access tokens. Currently our system token doesn't pass, due to unexpected flags. (When running sam_ads against Win2k) Andrew Bartlett (This used to be commit b9036900d0bb227ec16c6a5792c18ef943dcf015) --- source3/Makefile.in | 2 +- source3/include/sam.h | 45 -- source3/lib/util_sid.c | 26 + source3/sam/api.c | 322 ----------- source3/sam/interface.c | 1346 ++++++++++++++++++++++++--------------------- source3/torture/cmd_sam.c | 25 +- source3/torture/samtest.c | 3 +- 7 files changed, 762 insertions(+), 1007 deletions(-) delete mode 100644 source3/sam/api.c diff --git a/source3/Makefile.in b/source3/Makefile.in index 598062ec05..0c553a95e8 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -224,7 +224,7 @@ PASSDB_OBJ = $(PASSDB_GET_SET_OBJ) passdb/passdb.o passdb/pdb_interface.o \ SAM_STATIC_MODULES = sam/sam_plugin.o sam/sam_skel.o sam/sam_ads.o SAM_OBJ = sam/account.o sam/get_set_account.o sam/get_set_group.o \ - sam/get_set_domain.o sam/interface.o sam/api.o $(SAM_STATIC_MODULES) + sam/get_set_domain.o sam/interface.o $(SAM_STATIC_MODULES) SAMTEST_OBJ = torture/samtest.o torture/cmd_sam.o $(SAM_OBJ) $(LIB_OBJ) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(READLINE_OBJ) lib/util_seaccess.o $(LIBADS_OBJ) $(PASSDB_OBJ) $(SECRETS_OBJ) $(GROUPDB_OBJ) diff --git a/source3/include/sam.h b/source3/include/sam.h index 4cf46bfa75..d6fc1d7a1c 100644 --- a/source3/include/sam.h +++ b/source3/include/sam.h @@ -162,51 +162,6 @@ typedef struct sam_context struct sam_methods *methods; TALLOC_CTX *mem_ctx; - /* General API */ - - NTSTATUS (*sam_get_sec_desc) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd); - NTSTATUS (*sam_set_sec_desc) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd); - - NTSTATUS (*sam_lookup_sid) (const struct sam_context *, const NT_USER_TOKEN *access_token, TALLOC_CTX *ctx, const DOM_SID *sid, char **name, uint32 *type); - NTSTATUS (*sam_lookup_name) (const struct sam_context *, const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID *sid, uint32 *type); - - - /* Domain API */ - - NTSTATUS (*sam_update_domain) (const struct sam_context *, const SAM_DOMAIN_HANDLE *domain); - - NTSTATUS (*sam_enum_domains) (const struct sam_context *, const NT_USER_TOKEN *access_token, int32 *domain_count, DOM_SID **domains, char **domain_names); - NTSTATUS (*sam_lookup_domain) (const struct sam_context *, const NT_USER_TOKEN * access_token, const char *domain, DOM_SID **domainsid); - - NTSTATUS (*sam_get_domain_by_sid) (const struct sam_context *, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, SAM_DOMAIN_HANDLE **domain); - - - /* Account API */ - - NTSTATUS (*sam_create_account) (const struct sam_context *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account); - NTSTATUS (*sam_add_account) (const struct sam_context *, const DOM_SID *domainsid, const SAM_ACCOUNT_HANDLE *account); - NTSTATUS (*sam_update_account) (const struct sam_context *, const SAM_ACCOUNT_HANDLE *account); - NTSTATUS (*sam_delete_account) (const struct sam_context *, const SAM_ACCOUNT_HANDLE *account); - NTSTATUS (*sam_enum_accounts) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID *domain, uint16 acct_ctrl, uint32 *account_count, SAM_ACCOUNT_ENUM **accounts); - - NTSTATUS (*sam_get_account_by_sid) (const struct sam_context *, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *accountsid, SAM_ACCOUNT_HANDLE **account); - NTSTATUS (*sam_get_account_by_name) (const struct sam_context *, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, const char *name, SAM_ACCOUNT_HANDLE **account); - - /* Group API */ - - NTSTATUS (*sam_create_group) (const struct sam_context *, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *group_name, uint16 group_ctrl, SAM_GROUP_HANDLE **group); - NTSTATUS (*sam_add_group) (const struct sam_context *, const DOM_SID *domainsid, const SAM_GROUP_HANDLE *group); - NTSTATUS (*sam_update_group) (const struct sam_context *, const SAM_GROUP_HANDLE *group); - NTSTATUS (*sam_delete_group) (const struct sam_context *, const SAM_GROUP_HANDLE *group); - NTSTATUS (*sam_enum_groups) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID *domainsid, const uint16 group_ctrl, uint32 *groups_count, SAM_GROUP_ENUM **groups); - NTSTATUS (*sam_get_group_by_sid) (const struct sam_context *, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *groupsid, SAM_GROUP_HANDLE **group); - NTSTATUS (*sam_get_group_by_name) (const struct sam_context *, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, const char *name, SAM_GROUP_HANDLE **group); - - NTSTATUS (*sam_add_member_to_group) (const struct sam_context *, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member); - NTSTATUS (*sam_delete_member_from_group) (const struct sam_context *, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member); - NTSTATUS (*sam_enum_groupmembers) (const struct sam_context *, const SAM_GROUP_HANDLE *group, uint32 *members_count, SAM_GROUP_MEMBER **members); - - NTSTATUS (*sam_get_groups_of_sid) (const struct sam_context *, const NT_USER_TOKEN *access_token, const DOM_SID **sids, uint16 group_ctrl, uint32 *group_count, SAM_GROUP_ENUM **groups); void (*free_fn)(struct sam_context **); } SAM_CONTEXT; diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c index 18260be870..9e533eb9fd 100644 --- a/source3/lib/util_sid.c +++ b/source3/lib/util_sid.c @@ -34,6 +34,7 @@ DOM_SID global_sid_World_Domain; /* Everyone domain */ DOM_SID global_sid_World; /* Everyone */ DOM_SID global_sid_Creator_Owner_Domain; /* Creator Owner domain */ DOM_SID global_sid_NT_Authority; /* NT Authority */ +DOM_SID global_sid_System; /* System */ DOM_SID global_sid_NULL; /* NULL sid */ DOM_SID global_sid_Authenticated_Users; /* All authenticated rids */ DOM_SID global_sid_Network; /* Network rids */ @@ -58,6 +59,12 @@ NT_USER_TOKEN anonymous_token = { anon_sid_array }; +static DOM_SID system_sid_array[4]; +NT_USER_TOKEN system_token = { + 4, + system_sid_array +}; + /**************************************************************************** Lookup string names for SID types. ****************************************************************************/ @@ -101,6 +108,10 @@ const char *sid_type_lookup(uint32 sid_type) void generate_wellknown_sids(void) { + static BOOL initialised = False; + if (initialised) + return; + string_to_sid(&global_sid_Builtin, "S-1-5-32"); string_to_sid(&global_sid_Builtin_Administrators, "S-1-5-32-544"); string_to_sid(&global_sid_Builtin_Users, "S-1-5-32-545"); @@ -111,6 +122,7 @@ void generate_wellknown_sids(void) string_to_sid(&global_sid_Creator_Owner, "S-1-3-0"); string_to_sid(&global_sid_Creator_Group, "S-1-3-1"); string_to_sid(&global_sid_NT_Authority, "S-1-5"); + string_to_sid(&global_sid_System, "S-1-5-18"); string_to_sid(&global_sid_NULL, "S-1-0-0"); string_to_sid(&global_sid_Authenticated_Users, "S-1-5-11"); string_to_sid(&global_sid_Network, "S-1-5-2"); @@ -120,6 +132,20 @@ void generate_wellknown_sids(void) sid_copy( &anonymous_token.user_sids[0], &global_sid_World); sid_copy( &anonymous_token.user_sids[1], &global_sid_Network); sid_copy( &anonymous_token.user_sids[2], &global_sid_Anonymous); + + /* Create the system token. */ + sid_copy( &system_token.user_sids[0], &global_sid_World); + sid_copy( &system_token.user_sids[1], &global_sid_Authenticated_Users); + sid_copy( &system_token.user_sids[2], &global_sid_Builtin_Administrators); + sid_copy( &system_token.user_sids[3], &global_sid_System); + + initialised = True; +} + +NT_USER_TOKEN *get_system_token(void) +{ + generate_wellknown_sids(); /* The token is initialised here */ + return &system_token; } /************************************************************************** diff --git a/source3/sam/api.c b/source3/sam/api.c deleted file mode 100644 index fd345592ce..0000000000 --- a/source3/sam/api.c +++ /dev/null @@ -1,322 +0,0 @@ -/* - Unix SMB/CIFS implementation. - SAM interface API. - - Copyright (C) Stefan (metze) Metzmacher 2002 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include "includes.h" - -#undef DBGC_CLASS -#define DBGC_CLASS DBGC_SAM - -/* these functions should be used by the rest of SAMBA --metze */ - -/* General API */ - -NTSTATUS sam_get_sec_desc(const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_get_sec_desc(sam_context, access_token, sid, sd); -} - -NTSTATUS sam_set_sec_desc(const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_set_sec_desc(sam_context, access_token, sid, sd); -} - -NTSTATUS sam_lookup_sid(const NT_USER_TOKEN *access_token, TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, uint32 *type) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_lookup_sid(sam_context, access_token, mem_ctx, sid, name, type); -} - -NTSTATUS sam_lookup_name(const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID *sid, uint32 *type) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_lookup_name(sam_context, access_token,domain, name, sid, type); -} - -/* Domain API */ - -NTSTATUS sam_update_domain(const SAM_DOMAIN_HANDLE *domain) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_update_domain(sam_context, domain); -} - -NTSTATUS sam_enum_domains(const NT_USER_TOKEN *access_token, int32 *domain_count, DOM_SID **domains, char **domain_names) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_enum_domains(sam_context, access_token, domain_count, domains, domain_names); -} - -NTSTATUS sam_lookup_domain(const NT_USER_TOKEN * access_token, const char *domain, DOM_SID **domainsid) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_lookup_domain(sam_context, access_token, domain, domainsid); -} - -NTSTATUS sam_get_domain_by_sid(const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *domainsid, SAM_DOMAIN_HANDLE **domain) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_get_domain_by_sid(sam_context, access_token, access_desired, domainsid, domain); -} - -/* Account API */ - -NTSTATUS sam_create_account(const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_create_account(sam_context, access_token, access_desired, domainsid, account_name, acct_ctrl, account); -} - -NTSTATUS sam_add_account(const DOM_SID *domainsid, const SAM_ACCOUNT_HANDLE *account) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_add_account(sam_context, domainsid, account); -} - -NTSTATUS sam_update_account(const SAM_ACCOUNT_HANDLE *account) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_update_account(sam_context, account); -} - -NTSTATUS sam_delete_account(const SAM_ACCOUNT_HANDLE *account) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_delete_account(sam_context, account); -} - -NTSTATUS sam_enum_accounts(const NT_USER_TOKEN *access_token, const DOM_SID *domain, uint16 acct_ctrl, uint32 *account_count, SAM_ACCOUNT_ENUM **accounts) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_enum_accounts(sam_context, access_token, domain, acct_ctrl, account_count, accounts); -} - -NTSTATUS sam_get_account_by_sid(const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *accountsid, SAM_ACCOUNT_HANDLE **account) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_get_account_by_sid(sam_context, access_token, access_desired, accountsid, account); -} - -NTSTATUS sam_get_account_by_name(const NT_USER_TOKEN *access_token, const uint32 access_desired, const char *domain, const char *name, SAM_ACCOUNT_HANDLE **account) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_get_account_by_name(sam_context, access_token, access_desired, domain, name, account); -} - -/* Group API */ - -NTSTATUS sam_create_group(const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *domainsid, const char *group_name, uint16 group_ctrl, SAM_GROUP_HANDLE **group) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_create_group(sam_context, access_token, access_desired, domainsid, group_name, group_ctrl, group); -} - -NTSTATUS sam_add_group(const DOM_SID *domainsid, const SAM_GROUP_HANDLE *group) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_add_group(sam_context, domainsid, group); -} - -NTSTATUS sam_update_group(const SAM_GROUP_HANDLE *group) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_update_group(sam_context, group); -} - -NTSTATUS sam_delete_group(const SAM_GROUP_HANDLE *group) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_delete_group(sam_context, group); -} - -NTSTATUS sam_enum_groups(const NT_USER_TOKEN *access_token, const DOM_SID *domainsid, uint16 group_ctrl, uint32 *groups_count, SAM_GROUP_ENUM **groups) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_enum_groups(sam_context, access_token, domainsid, group_ctrl, groups_count, groups); -} - -NTSTATUS sam_get_group_by_sid(const NT_USER_TOKEN *access_token, const uint32 access_desired, const DOM_SID *groupsid, SAM_GROUP_HANDLE **group) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_get_group_by_sid(sam_context, access_token, access_desired, groupsid, group); -} - -NTSTATUS sam_get_group_by_name(const NT_USER_TOKEN *access_token, const uint32 access_desired, const char *domain, const char *name, SAM_GROUP_HANDLE **group) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_get_group_by_name(sam_context, access_token, access_desired, domain, name, group); -} - -NTSTATUS sam_add_member_to_group(const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_add_member_to_group(sam_context, group, member); -} - -NTSTATUS sam_delete_member_from_group(const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_delete_member_from_group(sam_context, group, member); -} - -NTSTATUS sam_enum_groupmembers(const SAM_GROUP_HANDLE *group, uint32 *members_count, SAM_GROUP_MEMBER **members) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_enum_groupmembers(sam_context, group, members_count, members); -} - -NTSTATUS sam_get_groups_of_sid(const NT_USER_TOKEN *access_token, const DOM_SID **sids, uint16 group_ctrl, uint32 *group_count, SAM_GROUP_ENUM **groups) -{ - SAM_CONTEXT *sam_context = sam_get_static_context(False); - - if (!sam_context) { - return NT_STATUS_UNSUCCESSFUL; - } - - return sam_context->sam_get_groups_of_sid(sam_context, access_token, sids, group_ctrl, group_count, groups); -} - diff --git a/source3/sam/interface.c b/source3/sam/interface.c index 9a21eb844f..8e4e0d114b 100644 --- a/source3/sam/interface.c +++ b/source3/sam/interface.c @@ -39,14 +39,8 @@ const struct sam_init_function_entry builtin_sam_init_functions[] = { { NULL, NULL} }; -/****************************************************************** - context_sam_* functions are used to link the external SAM interface - with the internal backends. These functions lookup the appropriate - backends for the domain and pass on to the function in sam_methods - in the selected backend - *******************************************************************/ -NTSTATUS sam_get_methods_by_sid(const SAM_CONTEXT *context, SAM_METHODS **sam_method, const DOM_SID *domainsid) +static NTSTATUS sam_get_methods_by_sid(const SAM_CONTEXT *context, SAM_METHODS **sam_method, const DOM_SID *domainsid) { SAM_METHODS *tmp_methods; @@ -71,7 +65,7 @@ NTSTATUS sam_get_methods_by_sid(const SAM_CONTEXT *context, SAM_METHODS **sam_me return NT_STATUS_NO_SUCH_DOMAIN; } -NTSTATUS sam_get_methods_by_name(const SAM_CONTEXT *context, SAM_METHODS **sam_method, const char *domainname) +static NTSTATUS sam_get_methods_by_name(const SAM_CONTEXT *context, SAM_METHODS **sam_method, const char *domainname) { SAM_METHODS *tmp_methods; @@ -96,379 +90,526 @@ NTSTATUS sam_get_methods_by_name(const SAM_CONTEXT *context, SAM_METHODS **sam_m return NT_STATUS_NO_SUCH_DOMAIN; } -NTSTATUS context_sam_get_sec_desc(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd) +static NTSTATUS make_sam_methods(TALLOC_CTX *mem_ctx, SAM_METHODS **methods) { - SAM_METHODS *tmp_methods; - NTSTATUS nt_status; - - DEBUG(5,("context_sam_get_sec_desc: %d\n", __LINE__)); - - if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, sid))) { - DEBUG(4,("sam_get_methods_by_sid failed\n")); - return nt_status; - } + *methods = talloc(mem_ctx, sizeof(SAM_METHODS)); - if (!tmp_methods->sam_get_sec_desc) { - DEBUG(3, ("context_sam_get_sec_desc: sam_methods of the domain did not specify sam_get_sec_desc\n")); - return NT_STATUS_NOT_IMPLEMENTED; + if (!*methods) { + return NT_STATUS_NO_MEMORY; } - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_get_sec_desc(tmp_methods, access_token, sid, sd))) { - DEBUG(4,("sam_get_sec_desc for %s in backend %s failed\n", sid_string_static(sid), tmp_methods->backendname)); - return nt_status; - } + ZERO_STRUCTP(*methods); return NT_STATUS_OK; } -NTSTATUS context_sam_set_sec_desc(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd) +/****************************************************************** + Free and cleanup a sam context, any associated data and anything + that the attached modules might have associated. + *******************************************************************/ + +void free_sam_context(SAM_CONTEXT **context) { - SAM_METHODS *tmp_methods; - NTSTATUS nt_status; + SAM_METHODS *sam_selected = (*context)->methods; - DEBUG(5,("context_sam_set_sec_desc: %d\n", __LINE__)); - - if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, sid))) { - DEBUG(4,("sam_get_methods_by_sid failed\n")); - return nt_status; + while (sam_selected) { + if (sam_selected->free_private_data) { + sam_selected->free_private_data(&(sam_selected->private_data)); + } + sam_selected = sam_selected->next; } - if (!tmp_methods->sam_set_sec_desc) { - DEBUG(3, ("context_sam_set_sec_desc: sam_methods of the domain did not specify sam_set_sec_desc\n")); - return NT_STATUS_NOT_IMPLEMENTED; - } + talloc_destroy((*context)->mem_ctx); + *context = NULL; +} - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_set_sec_desc(tmp_methods, access_token, sid, sd))) { - DEBUG(4,("sam_set_sec_desc for %s in backend %s failed\n", sid_string_static(sid), tmp_methods->backendname)); - return nt_status; +/****************************************************************** + Make a backend_entry from scratch + *******************************************************************/ + +static NTSTATUS make_backend_entry(SAM_BACKEND_ENTRY *backend_entry, char *sam_backend_string) +{ + char *tmp = NULL; + char *tmp_string = sam_backend_string; + + DEBUG(5,("make_backend_entry: %d\n", __LINE__)); + + SAM_ASSERT(sam_backend_string && backend_entry); + + backend_entry->module_name = sam_backend_string; + + DEBUG(5,("makeing backend_entry for %s\n", backend_entry->module_name)); + + if ((tmp = strchr(tmp_string, '|')) != NULL) { + DEBUGADD(20,("a domain name has been specified\n")); + *tmp = 0; + backend_entry->domain_name = smb_xstrdup(tmp + 1); + tmp_string = tmp + 1; } - + + if ((tmp = strchr(tmp_string, ':')) != NULL) { + DEBUG(20,("options for the backend have been specified\n")); + *tmp = 0; + backend_entry->module_params = smb_xstrdup(tmp + 1); + tmp_string = tmp + 1; + } + + if (backend_entry->domain_name == NULL) { + DEBUG(10,("make_backend_entry: no domain was specified for sam module %s. Using default domain %s\n", + backend_entry->module_name, lp_workgroup())); + backend_entry->domain_name = smb_xstrdup(lp_workgroup()); + } + + if ((backend_entry->domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID))) == NULL) { + DEBUG(0,("make_backend_entry: failed to malloc domain_sid\n")); + return NT_STATUS_NO_MEMORY; + } + + DEBUG(10,("looking up sid for domain %s\n", backend_entry->domain_name)); + + if (!secrets_fetch_domain_sid(backend_entry->domain_name, backend_entry->domain_sid)) { + DEBUG(2,("make_backend_entry: There is no SID stored for domain %s. Creating a new one.\n", + backend_entry->domain_name)); + DEBUG(0, ("FIXME in %s:%d\n", __FILE__, __LINE__)); + ZERO_STRUCTP(backend_entry->domain_sid); + } + + DEBUG(5,("make_backend_entry: module name: %s, module parameters: %s, domain name: %s, domain sid: %s\n", + backend_entry->module_name, backend_entry->module_params, backend_entry->domain_name, sid_string_static(backend_entry->domain_sid))); + return NT_STATUS_OK; } +/****************************************************************** + create sam_methods struct based on sam_backend_entry + *****************************************************************/ -NTSTATUS context_sam_lookup_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID *sid, uint32 *type) +static NTSTATUS make_sam_methods_backend_entry(SAM_CONTEXT *context, SAM_METHODS **methods_ptr, SAM_BACKEND_ENTRY *backend_entry) { - SAM_METHODS *tmp_methods; - NTSTATUS nt_status; + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; + SAM_METHODS *methods; + int i; - DEBUG(5,("context_sam_lookup_name: %d\n", __LINE__)); + DEBUG(5,("make_sam_methods_backend_entry: %d\n", __LINE__)); - if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_name(context, &tmp_methods, domain))) { - DEBUG(4,("sam_get_methods_by_name failed\n")); + if (!NT_STATUS_IS_OK(nt_status = make_sam_methods(context->mem_ctx, methods_ptr))) { return nt_status; } - if (!tmp_methods->sam_lookup_name) { - DEBUG(3, ("context_sam_lookup_name: sam_methods of the domain did not specify sam_lookup_name\n")); - return NT_STATUS_NOT_IMPLEMENTED; - } + methods = *methods_ptr; + methods->backendname = talloc_strdup(context->mem_ctx, backend_entry->module_name); + methods->domain_name = talloc_strdup(context->mem_ctx, backend_entry->domain_name); + sid_copy(&methods->domain_sid, backend_entry->domain_sid); + methods->parent = context; - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_lookup_name(tmp_methods, access_token, name, sid, type))) { - DEBUG(4,("sam_lookup_name for %s\\%s in backend %s failed\n", - tmp_methods->domain_name, name, tmp_methods->backendname)); - return nt_status; + DEBUG(5,("Attempting to find sam backend %s\n", backend_entry->module_name)); + for (i = 0; builtin_sam_init_functions[i].module_name; i++) + { + if (strequal(builtin_sam_init_functions[i].module_name, backend_entry->module_name)) + { + DEBUG(5,("Found sam backend %s (at pos %d)\n", backend_entry->module_name, i)); + DEBUGADD(5,("initialising it with options=%s for domain %s\n", backend_entry->module_params, sid_string_static(backend_entry->domain_sid))); + nt_status = builtin_sam_init_functions[i].init(methods, backend_entry->module_params); + if (NT_STATUS_IS_OK(nt_status)) { + DEBUG(5,("sam backend %s has a valid init\n", backend_entry->module_name)); + } else { + DEBUG(2,("sam backend %s did not correctly init (error was %s)\n", + backend_entry->module_name, nt_errstr(nt_status))); + } + return nt_status; + } } + + DEBUG(2,("could not find backend %s\n", backend_entry->module_name)); - return NT_STATUS_OK; + return NT_STATUS_INVALID_PARAMETER; } -NTSTATUS context_sam_lookup_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, uint32 *type) +static NTSTATUS sam_context_check_default_backends(SAM_CONTEXT *context) { - SAM_METHODS *tmp_methods; - uint32 rid; - NTSTATUS nt_status; - DOM_SID domainsid; + SAM_BACKEND_ENTRY entry; + DOM_SID *global_sam_sid = get_global_sam_sid(); /* lp_workgroup doesn't play nicely with multiple domains */ + SAM_METHODS *methods, *tmpmethods; + NTSTATUS ntstatus; + + DEBUG(5,("sam_context_check_default_backends: %d\n", __LINE__)); - DEBUG(5,("context_sam_lookup_sid: %d\n", __LINE__)); + /* Make sure domain lp_workgroup() is available */ + + ntstatus = sam_get_methods_by_sid(context, &methods, &global_sid_Builtin); - sid_copy(&domainsid, sid); - if (!sid_split_rid(&domainsid, &rid)) { - DEBUG(3,("context_sam_lookup_sid: failed to split the sid\n")); - return NT_STATUS_INVALID_SID; - } + if (NT_STATUS_EQUAL(ntstatus, NT_STATUS_NO_SUCH_DOMAIN)) { + DEBUG(4,("There was no backend specified for domain %s(%s); using %s\n", + lp_workgroup(), sid_string_static(global_sam_sid), SAM_DEFAULT_BACKEND)); - if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, &domainsid))) { - DEBUG(4,("sam_get_methods_by_sid failed\n")); - return nt_status; - } + SAM_ASSERT(global_sam_sid); - if (!tmp_methods->sam_lookup_sid) { - DEBUG(3, ("context_sam_lookup_sid: sam_methods of the domain did not specify sam_lookup_sid\n")); - return NT_STATUS_NOT_IMPLEMENTED; + entry.module_name = SAM_DEFAULT_BACKEND; + entry.module_params = NULL; + entry.domain_name = lp_workgroup(); + entry.domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID)); + sid_copy(entry.domain_sid, global_sam_sid); + + if (!NT_STATUS_IS_OK(ntstatus = make_sam_methods_backend_entry(context, &methods, &entry))) { + DEBUG(4,("make_sam_methods_backend_entry failed\n")); + return ntstatus; + } + + DLIST_ADD_END(context->methods, methods, tmpmethods); + + } else if (!NT_STATUS_IS_OK(ntstatus)) { + DEBUG(2, ("sam_get_methods_by_sid failed for %s\n", lp_workgroup())); + return ntstatus; } - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_lookup_sid(tmp_methods, access_token, mem_ctx, sid, name, type))) { - DEBUG(4,("sam_lookup_name for %s in backend %s failed\n", - sid_string_static(sid), tmp_methods->backendname)); - return nt_status; + /* Make sure the BUILTIN domain is available */ + + ntstatus = sam_get_methods_by_sid(context, &methods, global_sam_sid); + + if (NT_STATUS_EQUAL(ntstatus, NT_STATUS_NO_SUCH_DOMAIN)) { + DEBUG(4,("There was no backend specified for domain BUILTIN; using %s\n", + SAM_DEFAULT_BACKEND)); + entry.module_name = SAM_DEFAULT_BACKEND; + entry.module_params = NULL; + entry.domain_name = "BUILTIN"; + entry.domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID)); + sid_copy(entry.domain_sid, &global_sid_Builtin); + + if (!NT_STATUS_IS_OK(ntstatus = make_sam_methods_backend_entry(context, &methods, &entry))) { + DEBUG(4,("make_sam_methods_backend_entry failed\n")); + return ntstatus; + } + + DLIST_ADD_END(context->methods, methods, tmpmethods); + } else if (!NT_STATUS_IS_OK(ntstatus)) { + DEBUG(2, ("sam_get_methods_by_sid failed for BUILTIN\n")); + return ntstatus; } return NT_STATUS_OK; } - -NTSTATUS context_sam_update_domain(const SAM_CONTEXT *context, const SAM_DOMAIN_HANDLE *domain) +static NTSTATUS check_duplicate_backend_entries(SAM_BACKEND_ENTRY **backend_entries, int *nBackends) { - const SAM_METHODS *tmp_methods; - NTSTATUS nt_status; - - DEBUG(5,("context_sam_update_domain: %d\n", __LINE__)); - - /* invalid domain specified */ - SAM_ASSERT(domain && domain->current_sam_methods); + int i, j; - tmp_methods = domain->current_sam_methods; + DEBUG(5,("check_duplicate_backend_entries: %d\n", __LINE__)); - if (!tmp_methods->sam_update_domain) { - DEBUG(3, ("context_sam_update_domain: sam_methods of the domain did not specify sam_update_domain\n")); - return NT_STATUS_NOT_IMPLEMENTED; - } - - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_update_domain(tmp_methods, domain))){ - DEBUG(4,("sam_update_domain in backend %s failed\n", - tmp_methods->backendname)); - return nt_status; + for (i = 0; i < *nBackends; i++) { + for (j = i + 1; j < *nBackends; j++) { + if (sid_equal((*backend_entries)[i].domain_sid, (*backend_entries)[j].domain_sid)) { + DEBUG(0,("two backend modules claim the same domain %s\n", + sid_string_static((*backend_entries)[j].domain_sid))); + return NT_STATUS_INVALID_PARAMETER; + } + } } return NT_STATUS_OK; } -NTSTATUS context_sam_enum_domains(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, int32 *domain_count, DOM_SID **domains, char ***domain_names) +NTSTATUS make_sam_context_list(SAM_CONTEXT **context, char **sam_backends_param) { - SAM_METHODS *tmp_methods; - NTSTATUS nt_status; + int i = 0, j = 0; + SAM_METHODS *curmethods, *tmpmethods; + int nBackends = 0; + SAM_BACKEND_ENTRY *backends = NULL; + NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; - SEC_DESC *sd; - size_t sd_size; - uint32 acc_granted; - int i = 0; - - DEBUG(5,("context_sam_enum_domains: %d\n", __LINE__)); + DEBUG(5,("make_sam_context_from_conf: %d\n", __LINE__)); - /* invalid sam_context specified */ - SAM_ASSERT(context && context->methods); + if (!sam_backends_param) { + DEBUG(1, ("no SAM backeds specified!\n")); + return NT_STATUS_INVALID_PARAMETER; + } - if (!NT_STATUS_IS_OK(nt_status = samr_make_sam_obj_sd(context->mem_ctx, &sd, &sd_size))) { - DEBUG(4,("samr_make_sam_obj_sd failed\n")); + if (!NT_STATUS_IS_OK(nt_status = make_sam_context(context))) { + DEBUG(4,("make_sam_context failed\n")); return nt_status; } - if (!se_access_check(sd, access_token, SAMR_ACCESS_ENUM_DOMAINS, &acc_granted, &nt_status)) { - DEBUG(3,("context_sam_enum_domains: ACCESS DENIED\n")); - return nt_status; - } + while (sam_backends_param[nBackends]) + nBackends++; - tmp_methods= context->methods; - *domain_count = 0; + DEBUG(6,("There are %d domains listed with their backends\n", nBackends)); - while (tmp_methods) { - (*domain_count)++; - tmp_methods= tmp_methods->next; + if ((backends = (SAM_BACKEND_ENTRY *)malloc(sizeof(*backends)*nBackends)) == NULL) { + DEBUG(0,("make_sam_context_list: failed to allocate backends\n")); + return NT_STATUS_NO_MEMORY; } - DEBUG(6,("context_sam_enum_domains: enumerating %d domains\n", (*domain_count))); - - tmp_methods = context->methods; + memset(backends, '\0', sizeof(*backends)*nBackends); - if (((*domains) = malloc( sizeof(DOM_SID) * (*domain_count))) == NULL) { - DEBUG(0,("context_sam_enum_domains: Out of memory allocating domain SID list\n")); - return NT_STATUS_NO_MEMORY; + for (i = 0; i < nBackends; i++) { + DEBUG(8,("processing %s\n",sam_backends_param[i])); + if (!NT_STATUS_IS_OK(nt_status = make_backend_entry(&backends[i], sam_backends_param[i]))) { + DEBUG(4,("make_backend_entry failed\n")); + for (j = 0; j < nBackends; j++) SAFE_FREE(backends[j].domain_sid); + SAFE_FREE(backends); + free_sam_context(context); + return nt_status; + } } - if (((*domain_names) = malloc( sizeof(char*) * (*domain_count))) == NULL) { - DEBUG(0,("context_sam_enum_domains: Out of memory allocating domain name list\n")); - SAFE_FREE((*domains)); - return NT_STATUS_NO_MEMORY; + if (!NT_STATUS_IS_OK(nt_status = check_duplicate_backend_entries(&backends, &nBackends))) { + DEBUG(4,("check_duplicate_backend_entries failed\n")); + for (j = 0; j < nBackends; j++) SAFE_FREE(backends[j].domain_sid); + SAFE_FREE(backends); + free_sam_context(context); + return nt_status; } - while (tmp_methods) { - DEBUGADD(7,(" [%d] %s: %s\n", i, tmp_methods->domain_name, sid_string_static(&tmp_methods->domain_sid))); - sid_copy(domains[i],&tmp_methods->domain_sid); - *domain_names[i] = smb_xstrdup(tmp_methods->domain_name); - i++; - tmp_methods= tmp_methods->next; + for (i = 0; i < nBackends; i++) { + if (!NT_STATUS_IS_OK(nt_status = make_sam_methods_backend_entry(*context, &curmethods, &backends[i]))) { + DEBUG(4,("make_sam_methods_backend_entry failed\n")); + for (j = 0; j < nBackends; j++) SAFE_FREE(backends[j].domain_sid); + SAFE_FREE(backends); + free_sam_context(context); + return nt_status; + } + DLIST_ADD_END((*context)->methods, curmethods, tmpmethods); } + + for (i = 0; i < nBackends; i++) SAFE_FREE(backends[i].domain_sid); + SAFE_FREE(backends); return NT_STATUS_OK; } -NTSTATUS context_sam_lookup_domain(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const char *domain, DOM_SID **domainsid) -{ - SAM_METHODS *tmp_methods; - NTSTATUS nt_status; +/****************************************************************** + Make a sam_context from scratch. + *******************************************************************/ - SEC_DESC *sd; - size_t sd_size; - uint32 acc_granted; +NTSTATUS make_sam_context(SAM_CONTEXT **context) +{ + TALLOC_CTX *mem_ctx; - DEBUG(5,("context_sam_lookup_domain: %d\n", __LINE__)); + mem_ctx = talloc_init_named("sam_context internal allocation context"); - /* invalid sam_context specified */ - SAM_ASSERT(context && context->methods); + if (!mem_ctx) { + DEBUG(0, ("make_sam_context: talloc init failed!\n")); + return NT_STATUS_NO_MEMORY; + } - if (!NT_STATUS_IS_OK(nt_status = samr_make_sam_obj_sd(context->mem_ctx, &sd, &sd_size))) { - DEBUG(4,("samr_make_sam_obj_sd failed\n")); - return nt_status; + *context = talloc(mem_ctx, sizeof(**context)); + if (!*context) { + DEBUG(0, ("make_sam_context: talloc failed!\n")); + return NT_STATUS_NO_MEMORY; } - if (!se_access_check(sd, access_token, SAMR_ACCESS_OPEN_DOMAIN, &acc_granted, &nt_status)) { - DEBUG(3,("context_sam_lookup_domain: ACCESS DENIED\n")); - return nt_status; + ZERO_STRUCTP(*context); + + (*context)->mem_ctx = mem_ctx; + + (*context)->free_fn = free_sam_context; + + return NT_STATUS_OK; +} + +/****************************************************************** + Return an already initialised sam_context, to facilitate backward + compatibility (see functions below). + *******************************************************************/ + +static struct sam_context *sam_get_static_context(BOOL reload) +{ + static SAM_CONTEXT *sam_context = NULL; + + if ((sam_context) && (reload)) { + sam_context->free_fn(&sam_context); + sam_context = NULL; } - tmp_methods= context->methods; + if (!sam_context) { + if (!NT_STATUS_IS_OK(make_sam_context_list(&sam_context, lp_sam_backend()))) { + DEBUG(4,("make_sam_context_list failed\n")); + return NULL; + } - while (tmp_methods) { - if (strcmp(domain, tmp_methods->domain_name) == 0) { - (*domainsid) = (DOM_SID *)malloc(sizeof(DOM_SID)); - sid_copy((*domainsid), &tmp_methods->domain_sid); - return NT_STATUS_OK; + /* Make sure the required domains (default domain, builtin) are available */ + if (!NT_STATUS_IS_OK(sam_context_check_default_backends(sam_context))) { + DEBUG(4,("sam_context_check_default_backends failed\n")); + return NULL; } - tmp_methods= tmp_methods->next; } - return NT_STATUS_NO_SUCH_DOMAIN; + return sam_context; +} + +/*************************************************************** + Initialize the static context (at smbd startup etc). + + If uninitialised, context will auto-init on first use. + ***************************************************************/ + +BOOL initialize_sam(BOOL reload) +{ + return (sam_get_static_context(reload) != NULL); } -NTSTATUS context_sam_get_domain_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, SAM_DOMAIN_HANDLE **domain) +/************************************************************** + External API. This is what the rest of the world calls... +***************************************************************/ + +/****************************************************************** + sam_* functions are used to link the external SAM interface + with the internal backends. These functions lookup the appropriate + backends for the domain and pass on to the function in sam_methods + in the selected backend + + When the context parmater is NULL, the default is used. + *******************************************************************/ + +#define SAM_SETUP_CONTEXT if (!context) \ + context = sam_get_static_context(False);\ + if (!context) {\ + return NT_STATUS_UNSUCCESSFUL; \ + }\ + + + +NTSTATUS sam_get_sec_desc(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *sid, SEC_DESC **sd) { SAM_METHODS *tmp_methods; - NTSTATUS nt_status; + NTSTATUS nt_status; - DEBUG(5,("context_sam_get_domain_by_sid: %d\n", __LINE__)); + DEBUG(5,("sam_get_sec_desc: %d\n", __LINE__)); - if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { + SAM_SETUP_CONTEXT; + + if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, sid))) { DEBUG(4,("sam_get_methods_by_sid failed\n")); return nt_status; } - if (!tmp_methods->sam_get_domain_handle) { - DEBUG(3, ("context_sam_get_domain_by_sid: sam_methods of the domain did not specify sam_get_domain_handle\n")); + if (!tmp_methods->sam_get_sec_desc) { + DEBUG(3, ("sam_get_sec_desc: sam_methods of the domain did not specify sam_get_sec_desc\n")); return NT_STATUS_NOT_IMPLEMENTED; } - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_get_domain_handle(tmp_methods, access_token, access_desired, domain))) { - DEBUG(4,("sam_get_domain_handle for %s in backend %s failed\n", - sid_string_static(domainsid), tmp_methods->backendname)); + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_get_sec_desc(tmp_methods, access_token, sid, sd))) { + DEBUG(4,("sam_get_sec_desc for %s in backend %s failed\n", sid_string_static(sid), tmp_methods->backendname)); return nt_status; } return NT_STATUS_OK; } -NTSTATUS context_sam_create_account(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) +NTSTATUS sam_set_sec_desc(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *sid, const SEC_DESC *sd) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("context_sam_create_account: %d\n", __LINE__)); + DEBUG(5,("sam_set_sec_desc: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; - if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { + if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, sid))) { DEBUG(4,("sam_get_methods_by_sid failed\n")); return nt_status; } - if (!tmp_methods->sam_create_account) { - DEBUG(3, ("context_sam_create_account: sam_methods of the domain did not specify sam_create_account\n")); + if (!tmp_methods->sam_set_sec_desc) { + DEBUG(3, ("sam_set_sec_desc: sam_methods of the domain did not specify sam_set_sec_desc\n")); return NT_STATUS_NOT_IMPLEMENTED; } - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_create_account(tmp_methods, access_token, access_desired, account_name, acct_ctrl, account))) { - DEBUG(4,("sam_create_account in backend %s failed\n", - tmp_methods->backendname)); + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_set_sec_desc(tmp_methods, access_token, sid, sd))) { + DEBUG(4,("sam_set_sec_desc for %s in backend %s failed\n", sid_string_static(sid), tmp_methods->backendname)); return nt_status; } return NT_STATUS_OK; } -NTSTATUS context_sam_add_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *account) + +NTSTATUS sam_lookup_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const char *domain, const char *name, DOM_SID *sid, uint32 *type) { - DOM_SID domainsid; - const DOM_SID *accountsid; SAM_METHODS *tmp_methods; - uint32 rid; NTSTATUS nt_status; - - DEBUG(5,("context_sam_add_account: %d\n", __LINE__)); - if (!NT_STATUS_IS_OK(nt_status = sam_get_account_sid(account, &accountsid))) { - DEBUG(0,("Can't get account SID\n")); - return nt_status; - } + DEBUG(5,("sam_lookup_name: %d\n", __LINE__)); - sid_copy(&domainsid, accountsid); - if (!sid_split_rid(&domainsid, &rid)) { - DEBUG(3,("context_sam_get_account_by_sid: failed to split the sid\n")); - return NT_STATUS_INVALID_SID; - } + SAM_SETUP_CONTEXT; - if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, &domainsid))) { - DEBUG(4,("sam_get_methods_by_sid failed\n")); + if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_name(context, &tmp_methods, domain))) { + DEBUG(4,("sam_get_methods_by_name failed\n")); return nt_status; } - if (!tmp_methods->sam_add_account) { - DEBUG(3, ("context_sam_add_account: sam_methods of the domain did not specify sam_add_account\n")); + if (!tmp_methods->sam_lookup_name) { + DEBUG(3, ("sam_lookup_name: sam_methods of the domain did not specify sam_lookup_name\n")); return NT_STATUS_NOT_IMPLEMENTED; } - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_add_account(tmp_methods, account))){ - DEBUG(4,("sam_add_account in backend %s failed\n", - tmp_methods->backendname)); + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_lookup_name(tmp_methods, access_token, name, sid, type))) { + DEBUG(4,("sam_lookup_name for %s\\%s in backend %s failed\n", + tmp_methods->domain_name, name, tmp_methods->backendname)); return nt_status; } return NT_STATUS_OK; } -NTSTATUS context_sam_update_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *account) +NTSTATUS sam_lookup_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, uint32 *type) { - const SAM_METHODS *tmp_methods; - NTSTATUS nt_status; - - DEBUG(5,("context_sam_update_account: %d\n", __LINE__)); - - /* invalid account specified */ - SAM_ASSERT(account && account->current_sam_methods); - - tmp_methods = account->current_sam_methods; - - if (!tmp_methods->sam_update_account) { - DEBUG(3, ("context_sam_update_account: sam_methods of the domain did not specify sam_update_account\n")); + SAM_METHODS *tmp_methods; + uint32 rid; + NTSTATUS nt_status; + DOM_SID domainsid; + + DEBUG(5,("sam_lookup_sid: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + sid_copy(&domainsid, sid); + if (!sid_split_rid(&domainsid, &rid)) { + DEBUG(3,("sam_lookup_sid: failed to split the sid\n")); + return NT_STATUS_INVALID_SID; + } + + if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, &domainsid))) { + DEBUG(4,("sam_get_methods_by_sid failed\n")); + return nt_status; + } + + if (!tmp_methods->sam_lookup_sid) { + DEBUG(3, ("sam_lookup_sid: sam_methods of the domain did not specify sam_lookup_sid\n")); return NT_STATUS_NOT_IMPLEMENTED; } - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_update_account(tmp_methods, account))){ - DEBUG(4,("sam_update_account in backend %s failed\n", - tmp_methods->backendname)); + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_lookup_sid(tmp_methods, access_token, mem_ctx, sid, name, type))) { + DEBUG(4,("sam_lookup_name for %s in backend %s failed\n", + sid_string_static(sid), tmp_methods->backendname)); return nt_status; } return NT_STATUS_OK; } -NTSTATUS context_sam_delete_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *account) + +NTSTATUS sam_update_domain(const SAM_CONTEXT *context, const SAM_DOMAIN_HANDLE *domain) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; + + DEBUG(5,("sam_update_domain: %d\n", __LINE__)); - DEBUG(5,("context_sam_delete_account: %d\n", __LINE__)); + SAM_SETUP_CONTEXT; + + /* invalid domain specified */ + SAM_ASSERT(domain && domain->current_sam_methods); - /* invalid account specified */ - SAM_ASSERT(account && account->current_sam_methods); + tmp_methods = domain->current_sam_methods; - tmp_methods = account->current_sam_methods; - - if (!tmp_methods->sam_delete_account) { - DEBUG(3, ("context_sam_delete_account: sam_methods of the domain did not specify sam_delete_account\n")); + if (!tmp_methods->sam_update_domain) { + DEBUG(3, ("sam_update_domain: sam_methods of the domain did not specify sam_update_domain\n")); return NT_STATUS_NOT_IMPLEMENTED; } - if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_delete_account(tmp_methods, account))){ - DEBUG(4,("sam_delete_account in backend %s failed\n", + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_update_domain(tmp_methods, domain))){ + DEBUG(4,("sam_update_domain in backend %s failed\n", tmp_methods->backendname)); return nt_status; } @@ -476,20 +617,288 @@ NTSTATUS context_sam_delete_account(const SAM_CONTEXT *context, const SAM_ACCOUN return NT_STATUS_OK; } -NTSTATUS context_sam_enum_accounts(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *domainsid, uint16 acct_ctrl, int32 *account_count, SAM_ACCOUNT_ENUM **accounts) +NTSTATUS sam_enum_domains(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, int32 *domain_count, DOM_SID **domains, char ***domain_names) { SAM_METHODS *tmp_methods; - NTSTATUS nt_status; - - DEBUG(5,("context_sam_enum_accounts: %d\n", __LINE__)); + NTSTATUS nt_status; - if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { - DEBUG(4,("sam_get_methods_by_sid failed\n")); + SEC_DESC *sd; + size_t sd_size; + uint32 acc_granted; + int i = 0; + + DEBUG(5,("sam_enum_domains: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + /* invalid parmaters specified */ + SAM_ASSERT(domain_count && domains && domain_names); + + if (!NT_STATUS_IS_OK(nt_status = samr_make_sam_obj_sd(context->mem_ctx, &sd, &sd_size))) { + DEBUG(4,("samr_make_sam_obj_sd failed\n")); + return nt_status; + } + + if (!se_access_check(sd, access_token, SAMR_ACCESS_ENUM_DOMAINS, &acc_granted, &nt_status)) { + DEBUG(3,("sam_enum_domains: ACCESS DENIED\n")); + return nt_status; + } + + tmp_methods= context->methods; + *domain_count = 0; + + while (tmp_methods) { + (*domain_count)++; + tmp_methods= tmp_methods->next; + } + + DEBUG(6,("sam_enum_domains: enumerating %d domains\n", (*domain_count))); + + tmp_methods = context->methods; + + if (((*domains) = malloc( sizeof(DOM_SID) * (*domain_count))) == NULL) { + DEBUG(0,("sam_enum_domains: Out of memory allocating domain SID list\n")); + return NT_STATUS_NO_MEMORY; + } + + if (((*domain_names) = malloc( sizeof(char*) * (*domain_count))) == NULL) { + DEBUG(0,("sam_enum_domains: Out of memory allocating domain name list\n")); + SAFE_FREE((*domains)); + return NT_STATUS_NO_MEMORY; + } + + while (tmp_methods) { + DEBUGADD(7,(" [%d] %s: %s\n", i, tmp_methods->domain_name, sid_string_static(&tmp_methods->domain_sid))); + sid_copy(domains[i],&tmp_methods->domain_sid); + *domain_names[i] = smb_xstrdup(tmp_methods->domain_name); + i++; + tmp_methods= tmp_methods->next; + } + + return NT_STATUS_OK; +} + +NTSTATUS sam_lookup_domain(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const char *domain, DOM_SID **domainsid) +{ + SAM_METHODS *tmp_methods; + NTSTATUS nt_status; + + SEC_DESC *sd; + size_t sd_size; + uint32 acc_granted; + + DEBUG(5,("sam_lookup_domain: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + /* invalid paramters */ + SAM_ASSERT(access_token && domain && domainsid); + + if (!NT_STATUS_IS_OK(nt_status = samr_make_sam_obj_sd(context->mem_ctx, &sd, &sd_size))) { + DEBUG(4,("samr_make_sam_obj_sd failed\n")); + return nt_status; + } + + if (!se_access_check(sd, access_token, SAMR_ACCESS_OPEN_DOMAIN, &acc_granted, &nt_status)) { + DEBUG(3,("sam_lookup_domain: ACCESS DENIED\n")); + return nt_status; + } + + tmp_methods= context->methods; + + while (tmp_methods) { + if (strcmp(domain, tmp_methods->domain_name) == 0) { + (*domainsid) = (DOM_SID *)malloc(sizeof(DOM_SID)); + sid_copy((*domainsid), &tmp_methods->domain_sid); + return NT_STATUS_OK; + } + tmp_methods= tmp_methods->next; + } + + return NT_STATUS_NO_SUCH_DOMAIN; +} + + +NTSTATUS sam_get_domain_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, SAM_DOMAIN_HANDLE **domain) +{ + SAM_METHODS *tmp_methods; + NTSTATUS nt_status; + + DEBUG(5,("sam_get_domain_by_sid: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + SAM_ASSERT(access_token && domainsid && domain); + + if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { + DEBUG(4,("sam_get_methods_by_sid failed\n")); + return nt_status; + } + + if (!tmp_methods->sam_get_domain_handle) { + DEBUG(3, ("sam_get_domain_by_sid: sam_methods of the domain did not specify sam_get_domain_handle\n")); + return NT_STATUS_NOT_IMPLEMENTED; + } + + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_get_domain_handle(tmp_methods, access_token, access_desired, domain))) { + DEBUG(4,("sam_get_domain_handle for %s in backend %s failed\n", + sid_string_static(domainsid), tmp_methods->backendname)); + return nt_status; + } + + return NT_STATUS_OK; +} + +NTSTATUS sam_create_account(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *account_name, uint16 acct_ctrl, SAM_ACCOUNT_HANDLE **account) +{ + SAM_METHODS *tmp_methods; + NTSTATUS nt_status; + + DEBUG(5,("sam_create_account: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + /* invalid parmaters */ + SAM_ASSERT(access_token && domainsid && account_name && account); + + if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { + DEBUG(4,("sam_get_methods_by_sid failed\n")); + return nt_status; + } + + if (!tmp_methods->sam_create_account) { + DEBUG(3, ("sam_create_account: sam_methods of the domain did not specify sam_create_account\n")); + return NT_STATUS_NOT_IMPLEMENTED; + } + + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_create_account(tmp_methods, access_token, access_desired, account_name, acct_ctrl, account))) { + DEBUG(4,("sam_create_account in backend %s failed\n", + tmp_methods->backendname)); + return nt_status; + } + + return NT_STATUS_OK; +} + +NTSTATUS sam_add_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *account) +{ + DOM_SID domainsid; + const DOM_SID *accountsid; + SAM_METHODS *tmp_methods; + uint32 rid; + NTSTATUS nt_status; + + DEBUG(5,("sam_add_account: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + /* invalid parmaters */ + SAM_ASSERT(account); + + if (!NT_STATUS_IS_OK(nt_status = sam_get_account_sid(account, &accountsid))) { + DEBUG(0,("Can't get account SID\n")); + return nt_status; + } + + sid_copy(&domainsid, accountsid); + if (!sid_split_rid(&domainsid, &rid)) { + DEBUG(3,("sam_get_account_by_sid: failed to split the sid\n")); + return NT_STATUS_INVALID_SID; + } + + if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, &domainsid))) { + DEBUG(4,("sam_get_methods_by_sid failed\n")); + return nt_status; + } + + if (!tmp_methods->sam_add_account) { + DEBUG(3, ("sam_add_account: sam_methods of the domain did not specify sam_add_account\n")); + return NT_STATUS_NOT_IMPLEMENTED; + } + + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_add_account(tmp_methods, account))){ + DEBUG(4,("sam_add_account in backend %s failed\n", + tmp_methods->backendname)); + return nt_status; + } + + return NT_STATUS_OK; +} + +NTSTATUS sam_update_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *account) +{ + const SAM_METHODS *tmp_methods; + NTSTATUS nt_status; + + DEBUG(5,("sam_update_account: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + /* invalid account specified */ + SAM_ASSERT(account && account->current_sam_methods); + + tmp_methods = account->current_sam_methods; + + if (!tmp_methods->sam_update_account) { + DEBUG(3, ("sam_update_account: sam_methods of the domain did not specify sam_update_account\n")); + return NT_STATUS_NOT_IMPLEMENTED; + } + + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_update_account(tmp_methods, account))){ + DEBUG(4,("sam_update_account in backend %s failed\n", + tmp_methods->backendname)); + return nt_status; + } + + return NT_STATUS_OK; +} + +NTSTATUS sam_delete_account(const SAM_CONTEXT *context, const SAM_ACCOUNT_HANDLE *account) +{ + const SAM_METHODS *tmp_methods; + NTSTATUS nt_status; + + DEBUG(5,("sam_delete_account: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + /* invalid account specified */ + SAM_ASSERT(account && account->current_sam_methods); + + tmp_methods = account->current_sam_methods; + + if (!tmp_methods->sam_delete_account) { + DEBUG(3, ("sam_delete_account: sam_methods of the domain did not specify sam_delete_account\n")); + return NT_STATUS_NOT_IMPLEMENTED; + } + + if (!NT_STATUS_IS_OK(nt_status = tmp_methods->sam_delete_account(tmp_methods, account))){ + DEBUG(4,("sam_delete_account in backend %s failed\n", + tmp_methods->backendname)); + return nt_status; + } + + return NT_STATUS_OK; +} + +NTSTATUS sam_enum_accounts(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *domainsid, uint16 acct_ctrl, int32 *account_count, SAM_ACCOUNT_ENUM **accounts) +{ + SAM_METHODS *tmp_methods; + NTSTATUS nt_status; + + DEBUG(5,("sam_enum_accounts: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + SAM_ASSERT(access_token && domainsid && account_count && accounts); + + if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { + DEBUG(4,("sam_get_methods_by_sid failed\n")); return nt_status; } if (!tmp_methods->sam_enum_accounts) { - DEBUG(3, ("context_sam_enum_accounts: sam_methods of the domain did not specify sam_enum_accounts\n")); + DEBUG(3, ("sam_enum_accounts: sam_methods of the domain did not specify sam_enum_accounts\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -503,18 +912,22 @@ NTSTATUS context_sam_enum_accounts(const SAM_CONTEXT *context, const NT_USER_TOK } -NTSTATUS context_sam_get_account_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *accountsid, SAM_ACCOUNT_HANDLE **account) +NTSTATUS sam_get_account_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *accountsid, SAM_ACCOUNT_HANDLE **account) { SAM_METHODS *tmp_methods; uint32 rid; DOM_SID domainsid; NTSTATUS nt_status; - DEBUG(5,("context_sam_get_account_by_sid: %d\n", __LINE__)); + DEBUG(5,("sam_get_account_by_sid: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + SAM_ASSERT(access_token && accountsid && account); sid_copy(&domainsid, accountsid); if (!sid_split_rid(&domainsid, &rid)) { - DEBUG(3,("context_sam_get_account_by_sid: failed to split the sid\n")); + DEBUG(3,("sam_get_account_by_sid: failed to split the sid\n")); return NT_STATUS_INVALID_SID; } @@ -525,7 +938,7 @@ NTSTATUS context_sam_get_account_by_sid(const SAM_CONTEXT *context, const NT_USE } if (!tmp_methods->sam_get_account_by_sid) { - DEBUG(3, ("context_sam_get_account_by_sid: sam_methods of the domain did not specify sam_get_account_by_sid\n")); + DEBUG(3, ("sam_get_account_by_sid: sam_methods of the domain did not specify sam_get_account_by_sid\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -538,12 +951,16 @@ NTSTATUS context_sam_get_account_by_sid(const SAM_CONTEXT *context, const NT_USE return NT_STATUS_OK; } -NTSTATUS context_sam_get_account_by_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, const char *name, SAM_ACCOUNT_HANDLE **account) +NTSTATUS sam_get_account_by_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, const char *name, SAM_ACCOUNT_HANDLE **account) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("context_sam_get_account_by_name: %d\n", __LINE__)); + DEBUG(5,("sam_get_account_by_name: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + SAM_ASSERT(access_token && domain && name && account); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_name(context, &tmp_methods, domain))) { DEBUG(4,("sam_get_methods_by_name failed\n")); @@ -551,7 +968,7 @@ NTSTATUS context_sam_get_account_by_name(const SAM_CONTEXT *context, const NT_US } if (!tmp_methods->sam_get_account_by_name) { - DEBUG(3, ("context_sam_get_account_by_name: sam_methods of the domain did not specify sam_get_account_by_name\n")); + DEBUG(3, ("sam_get_account_by_name: sam_methods of the domain did not specify sam_get_account_by_name\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -564,12 +981,16 @@ NTSTATUS context_sam_get_account_by_name(const SAM_CONTEXT *context, const NT_US return NT_STATUS_OK; } -NTSTATUS context_sam_create_group(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *group_name, uint16 group_ctrl, SAM_GROUP_HANDLE **group) +NTSTATUS sam_create_group(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *domainsid, const char *group_name, uint16 group_ctrl, SAM_GROUP_HANDLE **group) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("context_sam_create_group: %d\n", __LINE__)); + DEBUG(5,("sam_create_group: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + SAM_ASSERT(access_token && domainsid && group_name && group); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { DEBUG(4,("sam_get_methods_by_sid failed\n")); @@ -577,7 +998,7 @@ NTSTATUS context_sam_create_group(const SAM_CONTEXT *context, const NT_USER_TOKE } if (!tmp_methods->sam_create_group) { - DEBUG(3, ("context_sam_create_group: sam_methods of the domain did not specify sam_create_group\n")); + DEBUG(3, ("sam_create_group: sam_methods of the domain did not specify sam_create_group\n")); return NT_STATUS_UNSUCCESSFUL; } @@ -590,7 +1011,7 @@ NTSTATUS context_sam_create_group(const SAM_CONTEXT *context, const NT_USER_TOKE return NT_STATUS_OK; } -NTSTATUS context_sam_add_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group) +NTSTATUS sam_add_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group) { DOM_SID domainsid; const DOM_SID *groupsid; @@ -598,7 +1019,11 @@ NTSTATUS context_sam_add_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDL uint32 rid; NTSTATUS nt_status; - DEBUG(5,("context_sam_add_group: %d\n", __LINE__)); + DEBUG(5,("sam_add_group: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + SAM_ASSERT(group); if (!NT_STATUS_IS_OK(nt_status = sam_get_group_sid(group, &groupsid))) { DEBUG(0,("Can't get group SID\n")); @@ -607,7 +1032,7 @@ NTSTATUS context_sam_add_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDL sid_copy(&domainsid, groupsid); if (!sid_split_rid(&domainsid, &rid)) { - DEBUG(3,("context_sam_get_group_by_sid: failed to split the sid\n")); + DEBUG(3,("sam_get_group_by_sid: failed to split the sid\n")); return NT_STATUS_INVALID_SID; } @@ -617,7 +1042,7 @@ NTSTATUS context_sam_add_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDL } if (!tmp_methods->sam_add_group) { - DEBUG(3, ("context_sam_add_group: sam_methods of the domain did not specify sam_add_group\n")); + DEBUG(3, ("sam_add_group: sam_methods of the domain did not specify sam_add_group\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -630,20 +1055,22 @@ NTSTATUS context_sam_add_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDL return NT_STATUS_OK; } -NTSTATUS context_sam_update_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group) +NTSTATUS sam_update_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("context_sam_update_group: %d\n", __LINE__)); + DEBUG(5,("sam_update_group: %d\n", __LINE__)); + SAM_SETUP_CONTEXT; + /* invalid group specified */ SAM_ASSERT(group && group->current_sam_methods); tmp_methods = group->current_sam_methods; if (!tmp_methods->sam_update_group) { - DEBUG(3, ("context_sam_update_group: sam_methods of the domain did not specify sam_update_group\n")); + DEBUG(3, ("sam_update_group: sam_methods of the domain did not specify sam_update_group\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -656,20 +1083,22 @@ NTSTATUS context_sam_update_group(const SAM_CONTEXT *context, const SAM_GROUP_HA return NT_STATUS_OK; } -NTSTATUS context_sam_delete_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group) +NTSTATUS sam_delete_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("context_sam_delete_group: %d\n", __LINE__)); + DEBUG(5,("sam_delete_group: %d\n", __LINE__)); + SAM_SETUP_CONTEXT; + /* invalid group specified */ SAM_ASSERT(group && group->current_sam_methods); tmp_methods = group->current_sam_methods; if (!tmp_methods->sam_delete_group) { - DEBUG(3, ("context_sam_delete_group: sam_methods of the domain did not specify sam_delete_group\n")); + DEBUG(3, ("sam_delete_group: sam_methods of the domain did not specify sam_delete_group\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -682,12 +1111,16 @@ NTSTATUS context_sam_delete_group(const SAM_CONTEXT *context, const SAM_GROUP_HA return NT_STATUS_OK; } -NTSTATUS context_sam_enum_groups(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *domainsid, uint16 group_ctrl, uint32 *groups_count, SAM_GROUP_ENUM **groups) +NTSTATUS sam_enum_groups(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID *domainsid, uint16 group_ctrl, uint32 *groups_count, SAM_GROUP_ENUM **groups) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("context_sam_enum_groups: %d\n", __LINE__)); + DEBUG(5,("sam_enum_groups: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + SAM_ASSERT(access_token && domainsid && groups_count && groups); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_sid(context, &tmp_methods, domainsid))) { DEBUG(4,("sam_get_methods_by_sid failed\n")); @@ -695,7 +1128,7 @@ NTSTATUS context_sam_enum_groups(const SAM_CONTEXT *context, const NT_USER_TOKEN } if (!tmp_methods->sam_enum_accounts) { - DEBUG(3, ("context_sam_enum_groups: sam_methods of the domain did not specify sam_enum_groups\n")); + DEBUG(3, ("sam_enum_groups: sam_methods of the domain did not specify sam_enum_groups\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -708,18 +1141,22 @@ NTSTATUS context_sam_enum_groups(const SAM_CONTEXT *context, const NT_USER_TOKEN return NT_STATUS_OK; } -NTSTATUS context_sam_get_group_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *groupsid, SAM_GROUP_HANDLE **group) +NTSTATUS sam_get_group_by_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID *groupsid, SAM_GROUP_HANDLE **group) { SAM_METHODS *tmp_methods; uint32 rid; NTSTATUS nt_status; DOM_SID domainsid; - DEBUG(5,("context_sam_get_group_by_sid: %d\n", __LINE__)); + DEBUG(5,("sam_get_group_by_sid: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + SAM_ASSERT(access_token && groupsid && group); sid_copy(&domainsid, groupsid); if (!sid_split_rid(&domainsid, &rid)) { - DEBUG(3,("context_sam_get_group_by_sid: failed to split the sid\n")); + DEBUG(3,("sam_get_group_by_sid: failed to split the sid\n")); return NT_STATUS_INVALID_SID; } @@ -730,7 +1167,7 @@ NTSTATUS context_sam_get_group_by_sid(const SAM_CONTEXT *context, const NT_USER_ } if (!tmp_methods->sam_get_group_by_sid) { - DEBUG(3, ("context_sam_get_group_by_sid: sam_methods of the domain did not specify sam_get_group_by_sid\n")); + DEBUG(3, ("sam_get_group_by_sid: sam_methods of the domain did not specify sam_get_group_by_sid\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -743,12 +1180,16 @@ NTSTATUS context_sam_get_group_by_sid(const SAM_CONTEXT *context, const NT_USER_ return NT_STATUS_OK; } -NTSTATUS context_sam_get_group_by_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, const char *name, SAM_GROUP_HANDLE **group) +NTSTATUS sam_get_group_by_name(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, const char *name, SAM_GROUP_HANDLE **group) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; - DEBUG(5,("context_sam_get_group_by_name: %d\n", __LINE__)); + DEBUG(5,("sam_get_group_by_name: %d\n", __LINE__)); + + SAM_SETUP_CONTEXT; + + SAM_ASSERT(access_token && domain && name && group); if (!NT_STATUS_IS_OK(nt_status = sam_get_methods_by_name(context, &tmp_methods, domain))) { DEBUG(4,("sam_get_methods_by_name failed\n")); @@ -756,7 +1197,7 @@ NTSTATUS context_sam_get_group_by_name(const SAM_CONTEXT *context, const NT_USER } if (!tmp_methods->sam_get_group_by_name) { - DEBUG(3, ("context_sam_get_group_by_name: sam_methods of the domain did not specify sam_get_group_by_name\n")); + DEBUG(3, ("sam_get_group_by_name: sam_methods of the domain did not specify sam_get_group_by_name\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -769,11 +1210,12 @@ NTSTATUS context_sam_get_group_by_name(const SAM_CONTEXT *context, const NT_USER return NT_STATUS_OK; } -NTSTATUS context_sam_add_member_to_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) +NTSTATUS sam_add_member_to_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; + SAM_SETUP_CONTEXT; /* invalid group or member specified */ SAM_ASSERT(group && group->current_sam_methods && member); @@ -781,7 +1223,7 @@ NTSTATUS context_sam_add_member_to_group(const SAM_CONTEXT *context, const SAM_G tmp_methods = group->current_sam_methods; if (!tmp_methods->sam_add_member_to_group) { - DEBUG(3, ("context_sam_add_member_to_group: sam_methods of the domain did not specify sam_add_member_to_group\n")); + DEBUG(3, ("sam_add_member_to_group: sam_methods of the domain did not specify sam_add_member_to_group\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -794,18 +1236,20 @@ NTSTATUS context_sam_add_member_to_group(const SAM_CONTEXT *context, const SAM_G } -NTSTATUS context_sam_delete_member_from_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) +NTSTATUS sam_delete_member_from_group(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group, const SAM_GROUP_MEMBER *member) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; + + SAM_SETUP_CONTEXT; /* invalid group or member specified */ - SAM_ASSERT(group && group->current_sam_methods &&member); + SAM_ASSERT(group && group->current_sam_methods && member); tmp_methods = group->current_sam_methods; if (!tmp_methods->sam_delete_member_from_group) { - DEBUG(3, ("context_sam_delete_member_from_group: sam_methods of the domain did not specify sam_delete_member_from_group\n")); + DEBUG(3, ("sam_delete_member_from_group: sam_methods of the domain did not specify sam_delete_member_from_group\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -817,18 +1261,20 @@ NTSTATUS context_sam_delete_member_from_group(const SAM_CONTEXT *context, const return NT_STATUS_OK; } -NTSTATUS context_sam_enum_groupmembers(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group, uint32 *members_count, SAM_GROUP_MEMBER **members) +NTSTATUS sam_enum_groupmembers(const SAM_CONTEXT *context, const SAM_GROUP_HANDLE *group, uint32 *members_count, SAM_GROUP_MEMBER **members) { const SAM_METHODS *tmp_methods; NTSTATUS nt_status; + SAM_SETUP_CONTEXT; + /* invalid group specified */ - SAM_ASSERT(group && group->current_sam_methods); + SAM_ASSERT(group && group->current_sam_methods && members_count && members); tmp_methods = group->current_sam_methods; if (!tmp_methods->sam_enum_groupmembers) { - DEBUG(3, ("context_sam_enum_groupmembers: sam_methods of the domain did not specify sam_enum_group_members\n")); + DEBUG(3, ("sam_enum_groupmembers: sam_methods of the domain did not specify sam_enum_group_members\n")); return NT_STATUS_NOT_IMPLEMENTED; } @@ -840,7 +1286,7 @@ NTSTATUS context_sam_enum_groupmembers(const SAM_CONTEXT *context, const SAM_GRO return NT_STATUS_OK; } -NTSTATUS context_sam_get_groups_of_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID **sids, uint16 group_ctrl, uint32 *group_count, SAM_GROUP_ENUM **groups) +NTSTATUS sam_get_groups_of_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN *access_token, const DOM_SID **sids, uint16 group_ctrl, uint32 *group_count, SAM_GROUP_ENUM **groups) { SAM_METHODS *tmp_methods; NTSTATUS nt_status; @@ -848,10 +1294,12 @@ NTSTATUS context_sam_get_groups_of_sid(const SAM_CONTEXT *context, const NT_USER uint32 tmp_group_count; SAM_GROUP_ENUM *tmp_groups; - DEBUG(5,("context_sam_get_groups_of_sid: %d\n", __LINE__)); + DEBUG(5,("sam_get_groups_of_sid: %d\n", __LINE__)); + SAM_SETUP_CONTEXT; + /* invalid sam_context specified */ - SAM_ASSERT(context && context->methods); + SAM_ASSERT(access_token && sids && context && context->methods); *group_count = 0; @@ -862,7 +1310,7 @@ NTSTATUS context_sam_get_groups_of_sid(const SAM_CONTEXT *context, const NT_USER while (tmp_methods) { DEBUG(5,("getting groups from domain \n")); if (!tmp_methods->sam_get_groups_of_sid) { - DEBUG(3, ("context_sam_get_groups_of_sid: sam_methods of domain did not specify sam_get_groups_of_sid\n")); + DEBUG(3, ("sam_get_groups_of_sid: sam_methods of domain did not specify sam_get_groups_of_sid\n")); SAFE_FREE(*groups); return NT_STATUS_NOT_IMPLEMENTED; } @@ -888,355 +1336,3 @@ NTSTATUS context_sam_get_groups_of_sid(const SAM_CONTEXT *context, const NT_USER } -/****************************************************************** - Free and cleanup a sam context, any associated data and anything - that the attached modules might have associated. - *******************************************************************/ - -void free_sam_context(SAM_CONTEXT **context) -{ - SAM_METHODS *sam_selected = (*context)->methods; - - while (sam_selected) { - if (sam_selected->free_private_data) { - sam_selected->free_private_data(&(sam_selected->private_data)); - } - sam_selected = sam_selected->next; - } - - talloc_destroy((*context)->mem_ctx); - *context = NULL; -} - -/****************************************************************** - Make a backend_entry from scratch - *******************************************************************/ - -static NTSTATUS make_backend_entry(SAM_BACKEND_ENTRY *backend_entry, char *sam_backend_string) -{ - char *tmp = NULL; - char *tmp_string = sam_backend_string; - - DEBUG(5,("make_backend_entry: %d\n", __LINE__)); - - SAM_ASSERT(sam_backend_string && backend_entry); - - backend_entry->module_name = sam_backend_string; - - DEBUG(5,("makeing backend_entry for %s\n", backend_entry->module_name)); - - if ((tmp = strchr(tmp_string, '|')) != NULL) { - DEBUGADD(20,("a domain name has been specified\n")); - *tmp = 0; - backend_entry->domain_name = smb_xstrdup(tmp + 1); - tmp_string = tmp + 1; - } - - if ((tmp = strchr(tmp_string, ':')) != NULL) { - DEBUG(20,("options for the backend have been specified\n")); - *tmp = 0; - backend_entry->module_params = smb_xstrdup(tmp + 1); - tmp_string = tmp + 1; - } - - if (backend_entry->domain_name == NULL) { - DEBUG(10,("make_backend_entry: no domain was specified for sam module %s. Using default domain %s\n", - backend_entry->module_name, lp_workgroup())); - backend_entry->domain_name = smb_xstrdup(lp_workgroup()); - } - - if ((backend_entry->domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID))) == NULL) { - DEBUG(0,("make_backend_entry: failed to malloc domain_sid\n")); - return NT_STATUS_NO_MEMORY; - } - - DEBUG(10,("looking up sid for domain %s\n", backend_entry->domain_name)); - - if (!secrets_fetch_domain_sid(backend_entry->domain_name, backend_entry->domain_sid)) { - DEBUG(2,("make_backend_entry: There is no SID stored for domain %s. Creating a new one.\n", - backend_entry->domain_name)); - DEBUG(0, ("FIXME in %s:%d\n", __FILE__, __LINE__)); - ZERO_STRUCTP(backend_entry->domain_sid); - } - - DEBUG(5,("make_backend_entry: module name: %s, module parameters: %s, domain name: %s, domain sid: %s\n", - backend_entry->module_name, backend_entry->module_params, backend_entry->domain_name, sid_string_static(backend_entry->domain_sid))); - - return NT_STATUS_OK; -} - -/****************************************************************** - create sam_methods struct based on sam_backend_entry - *****************************************************************/ - -static NTSTATUS make_sam_methods_backend_entry(SAM_CONTEXT *context, SAM_METHODS **methods_ptr, SAM_BACKEND_ENTRY *backend_entry) -{ - NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; - SAM_METHODS *methods; - int i; - - DEBUG(5,("make_sam_methods_backend_entry: %d\n", __LINE__)); - - if (!NT_STATUS_IS_OK(nt_status = make_sam_methods(context->mem_ctx, methods_ptr))) { - return nt_status; - } - - methods = *methods_ptr; - methods->backendname = talloc_strdup(context->mem_ctx, backend_entry->module_name); - methods->domain_name = talloc_strdup(context->mem_ctx, backend_entry->domain_name); - sid_copy(&methods->domain_sid, backend_entry->domain_sid); - methods->parent = context; - - DEBUG(5,("Attempting to find sam backend %s\n", backend_entry->module_name)); - for (i = 0; builtin_sam_init_functions[i].module_name; i++) - { - if (strequal(builtin_sam_init_functions[i].module_name, backend_entry->module_name)) - { - DEBUG(5,("Found sam backend %s (at pos %d)\n", backend_entry->module_name, i)); - DEBUGADD(5,("initialising it with options=%s for domain %s\n", backend_entry->module_params, sid_string_static(backend_entry->domain_sid))); - nt_status = builtin_sam_init_functions[i].init(methods, backend_entry->module_params); - if (NT_STATUS_IS_OK(nt_status)) { - DEBUG(5,("sam backend %s has a valid init\n", backend_entry->module_name)); - } else { - DEBUG(2,("sam backend %s did not correctly init (error was %s)\n", - backend_entry->module_name, nt_errstr(nt_status))); - } - return nt_status; - } - } - - DEBUG(2,("could not find backend %s\n", backend_entry->module_name)); - - return NT_STATUS_INVALID_PARAMETER; -} - -static NTSTATUS sam_context_check_default_backends(SAM_CONTEXT *context) -{ - SAM_BACKEND_ENTRY entry; - DOM_SID *global_sam_sid = get_global_sam_sid(); /* lp_workgroup doesn't play nicely with multiple domains */ - SAM_METHODS *methods, *tmpmethods; - NTSTATUS ntstatus; - - DEBUG(5,("sam_context_check_default_backends: %d\n", __LINE__)); - - /* Make sure domain lp_workgroup() is available */ - - ntstatus = sam_get_methods_by_sid(context, &methods, &global_sid_Builtin); - - if (NT_STATUS_EQUAL(ntstatus, NT_STATUS_NO_SUCH_DOMAIN)) { - DEBUG(4,("There was no backend specified for domain %s(%s); using %s\n", - lp_workgroup(), sid_string_static(global_sam_sid), SAM_DEFAULT_BACKEND)); - - SAM_ASSERT(global_sam_sid); - - entry.module_name = SAM_DEFAULT_BACKEND; - entry.module_params = NULL; - entry.domain_name = lp_workgroup(); - entry.domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID)); - sid_copy(entry.domain_sid, global_sam_sid); - - if (!NT_STATUS_IS_OK(ntstatus = make_sam_methods_backend_entry(context, &methods, &entry))) { - DEBUG(4,("make_sam_methods_backend_entry failed\n")); - return ntstatus; - } - - DLIST_ADD_END(context->methods, methods, tmpmethods); - - } else if (!NT_STATUS_IS_OK(ntstatus)) { - DEBUG(2, ("sam_get_methods_by_sid failed for %s\n", lp_workgroup())); - return ntstatus; - } - - /* Make sure the BUILTIN domain is available */ - - ntstatus = sam_get_methods_by_sid(context, &methods, global_sam_sid); - - if (NT_STATUS_EQUAL(ntstatus, NT_STATUS_NO_SUCH_DOMAIN)) { - DEBUG(4,("There was no backend specified for domain BUILTIN; using %s\n", - SAM_DEFAULT_BACKEND)); - entry.module_name = SAM_DEFAULT_BACKEND; - entry.module_params = NULL; - entry.domain_name = "BUILTIN"; - entry.domain_sid = (DOM_SID *)malloc(sizeof(DOM_SID)); - sid_copy(entry.domain_sid, &global_sid_Builtin); - - if (!NT_STATUS_IS_OK(ntstatus = make_sam_methods_backend_entry(context, &methods, &entry))) { - DEBUG(4,("make_sam_methods_backend_entry failed\n")); - return ntstatus; - } - - DLIST_ADD_END(context->methods, methods, tmpmethods); - } else if (!NT_STATUS_IS_OK(ntstatus)) { - DEBUG(2, ("sam_get_methods_by_sid failed for BUILTIN\n")); - return ntstatus; - } - - return NT_STATUS_OK; -} - -static NTSTATUS check_duplicate_backend_entries(SAM_BACKEND_ENTRY **backend_entries, int *nBackends) -{ - int i, j; - - DEBUG(5,("check_duplicate_backend_entries: %d\n", __LINE__)); - - for (i = 0; i < *nBackends; i++) { - for (j = i + 1; j < *nBackends; j++) { - if (sid_equal((*backend_entries)[i].domain_sid, (*backend_entries)[j].domain_sid)) { - DEBUG(0,("two backend modules claim the same domain %s\n", - sid_string_static((*backend_entries)[j].domain_sid))); - return NT_STATUS_INVALID_PARAMETER; - } - } - } - - return NT_STATUS_OK; -} - -NTSTATUS make_sam_context_list(SAM_CONTEXT **context, char **sam_backends_param) -{ - int i = 0, j = 0; - SAM_METHODS *curmethods, *tmpmethods; - int nBackends = 0; - SAM_BACKEND_ENTRY *backends = NULL; - NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL; - - DEBUG(5,("make_sam_context_from_conf: %d\n", __LINE__)); - - if (!NT_STATUS_IS_OK(nt_status = make_sam_context(context))) { - DEBUG(4,("make_sam_context failed\n")); - return nt_status; - } - - while (sam_backends_param[nBackends]) - nBackends++; - - DEBUG(6,("There are %d domains listed with their backends\n", nBackends)); - - if ((backends = (SAM_BACKEND_ENTRY *)malloc(sizeof(*backends)*nBackends)) == NULL) { - DEBUG(0,("make_sam_context_list: failed to allocate backends\n")); - return NT_STATUS_NO_MEMORY; - } - - memset(backends, '\0', sizeof(*backends)*nBackends); - - for (i = 0; i < nBackends; i++) { - DEBUG(8,("processing %s\n",sam_backends_param[i])); - if (!NT_STATUS_IS_OK(nt_status = make_backend_entry(&backends[i], sam_backends_param[i]))) { - DEBUG(4,("make_backend_entry failed\n")); - for (j = 0; j < nBackends; j++) SAFE_FREE(backends[j].domain_sid); - SAFE_FREE(backends); - free_sam_context(context); - return nt_status; - } - } - - if (!NT_STATUS_IS_OK(nt_status = check_duplicate_backend_entries(&backends, &nBackends))) { - DEBUG(4,("check_duplicate_backend_entries failed\n")); - for (j = 0; j < nBackends; j++) SAFE_FREE(backends[j].domain_sid); - SAFE_FREE(backends); - free_sam_context(context); - return nt_status; - } - - for (i = 0; i < nBackends; i++) { - if (!NT_STATUS_IS_OK(nt_status = make_sam_methods_backend_entry(*context, &curmethods, &backends[i]))) { - DEBUG(4,("make_sam_methods_backend_entry failed\n")); - for (j = 0; j < nBackends; j++) SAFE_FREE(backends[j].domain_sid); - SAFE_FREE(backends); - free_sam_context(context); - return nt_status; - } - DLIST_ADD_END((*context)->methods, curmethods, tmpmethods); - } - - for (i = 0; i < nBackends; i++) SAFE_FREE(backends[i].domain_sid); - - SAFE_FREE(backends); - return NT_STATUS_OK; -} - -/****************************************************************** - Make a sam_context from scratch. - *******************************************************************/ - -NTSTATUS make_sam_context(SAM_CONTEXT **context) -{ - TALLOC_CTX *mem_ctx; - - mem_ctx = talloc_init_named("sam_context internal allocation context"); - - if (!mem_ctx) { - DEBUG(0, ("make_sam_context: talloc init failed!\n")); - return NT_STATUS_NO_MEMORY; - } - - *context = talloc(mem_ctx, sizeof(**context)); - if (!*context) { - DEBUG(0, ("make_sam_context: talloc failed!\n")); - return NT_STATUS_NO_MEMORY; - } - - ZERO_STRUCTP(*context); - - (*context)->mem_ctx = mem_ctx; - - (*context)->free_fn = free_sam_context; - - return NT_STATUS_OK; -} - -/****************************************************************** - Return an already initialised sam_context, to facilitate backward - compatibility (see functions below). - *******************************************************************/ - -struct sam_context *sam_get_static_context(BOOL reload) -{ - static SAM_CONTEXT *sam_context = NULL; - - if ((sam_context) && (reload)) { - sam_context->free_fn(&sam_context); - sam_context = NULL; - } - - if (!sam_context) { - if (!NT_STATUS_IS_OK(make_sam_context_list(&sam_context, lp_sam_backend()))) { - DEBUG(4,("make_sam_context_list failed\n")); - return NULL; - } - - /* Make sure the required domains (default domain, builtin) are available */ - if (!NT_STATUS_IS_OK(sam_context_check_default_backends(sam_context))) { - DEBUG(4,("sam_context_check_default_backends failed\n")); - return NULL; - } - } - - return sam_context; -} - -/*************************************************************** - Initialize the static context (at smbd startup etc). - - If uninitialised, context will auto-init on first use. - ***************************************************************/ - -BOOL initialize_sam(BOOL reload) -{ - return (sam_get_static_context(reload) != NULL); -} - - -NTSTATUS make_sam_methods(TALLOC_CTX *mem_ctx, SAM_METHODS **methods) -{ - *methods = talloc(mem_ctx, sizeof(SAM_METHODS)); - - if (!*methods) { - return NT_STATUS_NO_MEMORY; - } - - ZERO_STRUCTP(*methods); - - return NT_STATUS_OK; -} diff --git a/source3/torture/cmd_sam.c b/source3/torture/cmd_sam.c index 9f162f2a07..0cd219cb45 100644 --- a/source3/torture/cmd_sam.c +++ b/source3/torture/cmd_sam.c @@ -104,8 +104,8 @@ static NTSTATUS cmd_lookup_sid(struct samtest_state *st, TALLOC_CTX *mem_ctx, in return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = context_sam_lookup_sid(st->context, st->token, mem_ctx, &sid, &name, &type))) { - printf("context_sam_lookup_sid failed!\n"); + if (!NT_STATUS_IS_OK(status = sam_lookup_sid(st->context, st->token, mem_ctx, &sid, &name, &type))) { + printf("sam_lookup_sid failed!\n"); return status; } @@ -125,8 +125,8 @@ static NTSTATUS cmd_lookup_name(struct samtest_state *st, TALLOC_CTX *mem_ctx, i return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = context_sam_lookup_name(st->context, st->token, argv[1], argv[2], &sid, &type))) { - printf("context_sam_lookup_name failed!\n"); + if (!NT_STATUS_IS_OK(status = sam_lookup_name(st->context, st->token, argv[1], argv[2], &sid, &type))) { + printf("sam_lookup_name failed!\n"); return status; } @@ -155,8 +155,8 @@ static NTSTATUS cmd_lookup_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = context_sam_lookup_domain(st->context, st->token, argv[1], &sid))) { - printf("context_sam_lookup_name failed!\n"); + if (!NT_STATUS_IS_OK(status = sam_lookup_domain(st->context, st->token, argv[1], &sid))) { + printf("sam_lookup_name failed!\n"); return status; } @@ -172,8 +172,8 @@ static NTSTATUS cmd_enum_domains(struct samtest_state *st, TALLOC_CTX *mem_ctx, char **domain_names; NTSTATUS status; - if (!NT_STATUS_IS_OK(status = context_sam_enum_domains(st->context, st->token, &domain_count, &domain_sids, &domain_names))) { - printf("context_sam_enum_domains failed!\n"); + if (!NT_STATUS_IS_OK(status = sam_enum_domains(st->context, st->token, &domain_count, &domain_sids, &domain_names))) { + printf("sam_enum_domains failed!\n"); return status; } @@ -218,8 +218,8 @@ static NTSTATUS cmd_show_domain(struct samtest_state *st, TALLOC_CTX *mem_ctx, i return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = context_sam_get_domain_by_sid(st->context, st->token, DOMAIN_ALL_ACCESS, &sid, &domain))) { - printf("context_sam_get_domain_by_sid failed\n"); + if (!NT_STATUS_IS_OK(status = sam_get_domain_by_sid(st->context, st->token, DOMAIN_ALL_ACCESS, &sid, &domain))) { + printf("sam_get_domain_by_sid failed\n"); return status; } @@ -331,7 +331,6 @@ static NTSTATUS cmd_enum_accounts(struct samtest_state *st, TALLOC_CTX *mem_ctx, DOM_SID sid; int32 account_count, i; SAM_ACCOUNT_ENUM *accounts; - uint16 acct_ctrl = (ACB_NORMAL |ACB_WSTRUST |ACB_SVRTRUST |ACB_DOMTRUST | ACB_MNS); if (argc != 2) { printf("Usage: enum_accounts \n"); @@ -343,8 +342,8 @@ static NTSTATUS cmd_enum_accounts(struct samtest_state *st, TALLOC_CTX *mem_ctx, return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = context_sam_enum_accounts(st->context, st->token, &sid, acct_ctrl, &account_count, &accounts))) { - printf("context_sam_enum_accounts failed: %s\n", nt_errstr(status)); + if (!NT_STATUS_IS_OK(status = sam_enum_accounts(st->context, st->token, &sid, 0, &account_count, &accounts))) { + printf("sam_enum_accounts failed: %s\n", nt_errstr(status)); return status; } diff --git a/source3/torture/samtest.c b/source3/torture/samtest.c index b5f7ed9f76..d3268d8b5b 100644 --- a/source3/torture/samtest.c +++ b/source3/torture/samtest.c @@ -360,7 +360,6 @@ int main(int argc, char *argv[]) struct cmd_set **cmd_set; struct samtest_state st; - /* make sure the vars that get altered (4th field) are in a fixed location or certain compilers complain */ poptContext pc; @@ -375,6 +374,8 @@ int main(int argc, char *argv[]) ZERO_STRUCT(st); + st.token = get_system_token(); + setlinebuf(stdout); DEBUGLEVEL = 1; -- cgit From ed521b0cc4cb9db5e844619d19471ee8acda30f7 Mon Sep 17 00:00:00 2001 From: Richard Sharpe Date: Sun, 29 Sep 2002 06:44:13 +0000 Subject: Make sure that variable does not shadow a parameter. (This used to be commit d83cae2bbd1625aeb3b7c73ba8dde2d1371e7f89) --- source3/client/client.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source3/client/client.c b/source3/client/client.c index de6bf0e1b0..f25ed1623b 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -2436,18 +2436,18 @@ static struct cli_state *do_connect(const char *server, const char *share) if (!cli_send_tconX(c, sharename, "?????", password, strlen(password)+1)) { - pstring share; + pstring full_share; /* * Some servers require \\server\share for the share * while others are happy with share as we gave above * Lets see if we give it the long form if it works */ - pstrcpy(share, "\\\\"); - pstrcat(share, server); - pstrcat(share, "\\"); - pstrcat(share, sharename); - if (!cli_send_tconX(c, share, "?????", password, + pstrcpy(full_share, "\\\\"); + pstrcat(full_share, server); + pstrcat(full_share, "\\"); + pstrcat(full_share, sharename); + if (!cli_send_tconX(c, full_share, "?????", password, strlen(password) + 1)) { d_printf("tree connect failed: %s\n", cli_errstr(c)); -- cgit From cdeffe6d909ea84979b0fe286efebc95c2d83209 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 29 Sep 2002 10:39:03 +0000 Subject: We have to hand out info on Builtin here as well. They are stored in group mapping not as local, but as WKN_GRP. Volker (This used to be commit cb05dcab2de117ea4db54af313a05905cd5a0d0a) --- source3/rpc_server/srv_samr_nt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c index c5a2c54511..290baabc3b 100644 --- a/source3/rpc_server/srv_samr_nt.c +++ b/source3/rpc_server/srv_samr_nt.c @@ -1328,7 +1328,7 @@ NTSTATUS _samr_query_aliasinfo(pipes_struct *p, SAMR_Q_QUERY_ALIASINFO *q_u, SAM !sid_check_is_in_builtin(&sid)) return NT_STATUS_OBJECT_TYPE_MISMATCH; - if (!get_local_group_from_sid(sid, &map, MAPPING_WITHOUT_PRIV)) + if (!get_group_map_from_sid(sid, &map, MAPPING_WITHOUT_PRIV)) return NT_STATUS_NO_SUCH_ALIAS; switch (q_u->switch_level) { -- cgit From 49cd08fdb80c3b0fa970e24cc473050fba43bf77 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 29 Sep 2002 10:53:47 +0000 Subject: Some more work on vampire. Volker (This used to be commit f68825e93371e3d3403167f608d1da0d7ada1a04) --- source3/utils/net_rpc_samsync.c | 44 +++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/source3/utils/net_rpc_samsync.c b/source3/utils/net_rpc_samsync.c index 202d5b5c88..c040b3cca2 100644 --- a/source3/utils/net_rpc_samsync.c +++ b/source3/utils/net_rpc_samsync.c @@ -4,6 +4,7 @@ Copyright (C) Andrew Tridgell 2002 Copyright (C) Tim Potter 2001,2002 + Modified by Volker Lendecke 2002 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -191,7 +192,6 @@ fail: static NTSTATUS sam_account_from_delta(SAM_ACCOUNT *account, SAM_ACCOUNT_INFO *delta) { - DOM_SID sid; fstring s; uchar lm_passwd[16], nt_passwd[16]; @@ -227,13 +227,8 @@ sam_account_from_delta(SAM_ACCOUNT *account, SAM_ACCOUNT_INFO *delta) /* User and group sid */ - sid_copy(&sid, get_global_sam_sid()); - sid_append_rid(&sid, delta->user_rid); - pdb_set_user_sid(account, &sid); - - sid_copy(&sid, get_global_sam_sid()); - sid_append_rid(&sid, delta->group_rid); - pdb_set_group_sid(account, &sid); + pdb_set_user_sid_from_rid(account, delta->user_rid); + pdb_set_group_sid_from_rid(account, delta->group_rid); /* Logon and password information */ @@ -359,17 +354,10 @@ fetch_group_info(uint32 rid, SAM_GROUP_INFO *delta) fstring sid_string; GROUP_MAP map; int flag = TDB_INSERT; - gid_t gid; unistr2_to_ascii(name, &delta->uni_grp_name, sizeof(name)-1); unistr2_to_ascii(comment, &delta->uni_grp_desc, sizeof(comment)-1); - if ((grp = getgrnam(name)) == NULL) - smb_create_group(name, &gid); - - if ((grp = getgrgid(gid)) == NULL) - return NT_STATUS_ACCESS_DENIED; - /* add the group to the mapping table */ sid_copy(&group_sid, get_global_sam_sid()); sid_append_rid(&group_sid, rid); @@ -382,17 +370,17 @@ fetch_group_info(uint32 rid, SAM_GROUP_INFO *delta) if (grp == NULL) { - gid_t new_gid; + gid_t gid; + /* No group found from mapping, find it from its name. */ if ((grp = getgrnam(name)) == NULL) { /* No appropriate group found, create one */ d_printf("Creating unix group: '%s'\n", name); - if (smb_create_group(name, &new_gid) != 0) + if (smb_create_group(name, &gid) != 0) + return NT_STATUS_ACCESS_DENIED; + if ((grp = getgrgid(gid)) == NULL) return NT_STATUS_ACCESS_DENIED; } - - if ((grp = getgrgid(new_gid)) == NULL) - return NT_STATUS_ACCESS_DENIED; } map.gid = grp->gr_gid; @@ -558,22 +546,26 @@ static NTSTATUS fetch_alias_info(uint32 rid, SAM_ALIAS_INFO *delta, } if (grp == NULL) { - gid_t new_gid; + gid_t gid; + /* No group found from mapping, find it from its name. */ if ((grp = getgrnam(name)) == NULL) { /* No appropriate group found, create one */ d_printf("Creating unix group: '%s'\n", name); - if (smb_create_group(name, &new_gid) != 0) + if (smb_create_group(name, &gid) != 0) + return NT_STATUS_ACCESS_DENIED; + if ((grp = getgrgid(gid)) == NULL) return NT_STATUS_ACCESS_DENIED; } - - if ((grp = getgrgid(new_gid)) == NULL) - return NT_STATUS_ACCESS_DENIED; } map.gid = grp->gr_gid; map.sid = alias_sid; - map.sid_name_use = SID_NAME_ALIAS; + + if (sid_equal(&dom_sid, &global_sid_Builtin)) + map.sid_name_use = SID_NAME_WKN_GRP; + else + map.sid_name_use = SID_NAME_ALIAS; fstrcpy(map.nt_name, name); fstrcpy(map.comment, comment); -- cgit From 6b1367a7bcd23bf7d56f20647a806840ecc09882 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Mon, 30 Sep 2002 02:28:28 +0000 Subject: Fix the compile issue in bin/samtest, and make the 'system' token just have the System sid. This avoids comparing with ACEs that we don't yet support in the ADS Domain security descriptor. (This used to be commit ace7738e123b28f69c290f9f1de50011d230e14b) --- source3/lib/util_sid.c | 7 ++----- source3/torture/cmd_sam.c | 4 ++-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c index 9e533eb9fd..1439471f64 100644 --- a/source3/lib/util_sid.c +++ b/source3/lib/util_sid.c @@ -61,7 +61,7 @@ NT_USER_TOKEN anonymous_token = { static DOM_SID system_sid_array[4]; NT_USER_TOKEN system_token = { - 4, + 1, system_sid_array }; @@ -134,10 +134,7 @@ void generate_wellknown_sids(void) sid_copy( &anonymous_token.user_sids[2], &global_sid_Anonymous); /* Create the system token. */ - sid_copy( &system_token.user_sids[0], &global_sid_World); - sid_copy( &system_token.user_sids[1], &global_sid_Authenticated_Users); - sid_copy( &system_token.user_sids[2], &global_sid_Builtin_Administrators); - sid_copy( &system_token.user_sids[3], &global_sid_System); + sid_copy( &system_token.user_sids[0], &global_sid_System); initialised = True; } diff --git a/source3/torture/cmd_sam.c b/source3/torture/cmd_sam.c index 0cd219cb45..eb8c17f2f9 100644 --- a/source3/torture/cmd_sam.c +++ b/source3/torture/cmd_sam.c @@ -379,7 +379,7 @@ static NTSTATUS cmd_lookup_account_sid(struct samtest_state *st, TALLOC_CTX *mem return NT_STATUS_INVALID_PARAMETER; } - if (!NT_STATUS_IS_OK(status = context_sam_get_account_by_sid(st->context, st->token, USER_ALL_ACCESS, &sid, &account))) { + if (!NT_STATUS_IS_OK(status = sam_get_account_by_sid(st->context, st->token, USER_ALL_ACCESS, &sid, &account))) { printf("context_sam_get_account_by_sid failed: %s\n", nt_errstr(status)); return status; } @@ -400,7 +400,7 @@ static NTSTATUS cmd_lookup_account_name(struct samtest_state *st, TALLOC_CTX *me } - if (!NT_STATUS_IS_OK(status = context_sam_get_account_by_name(st->context, st->token, USER_ALL_ACCESS, argv[1], argv[2], &account))) { + if (!NT_STATUS_IS_OK(status = sam_get_account_by_name(st->context, st->token, USER_ALL_ACCESS, argv[1], argv[2], &account))) { printf("context_sam_get_account_by_sid failed: %s\n", nt_errstr(status)); return status; } -- cgit From a2b150ee89f7d05ecc819801d01fb202e06b9ede Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Mon, 30 Sep 2002 04:58:55 +0000 Subject: This is an initial draft of printing internals. Not done (not really even started), and not in SGML. Plain ASCII right now, but I'll do some more work on it tomorrow. (This used to be commit d60afa48e3214a4fa4c0a937635c3acf2a4b4a65) --- docs/docbook/devdoc/printing.sgml | 73 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs/docbook/devdoc/printing.sgml diff --git a/docs/docbook/devdoc/printing.sgml b/docs/docbook/devdoc/printing.sgml new file mode 100644 index 0000000000..3cce7ab99c --- /dev/null +++ b/docs/docbook/devdoc/printing.sgml @@ -0,0 +1,73 @@ +!= +!= Samba Printing Internals +!= +!= Author : Gerald Carter +!= +!=================================================================== + +The purpose of this document is to provide some insight into +Samba's printing functionality and also to describe the semantics +of certain features of Windows client printing. + +Print Queue TDB's +------------------ + +* matching lanman jobids, spoolss jobids, & lpd jobids +* why ? +* caching time + + +ChangeID & Client Caching of Printer Information +------------------------------------------------ + +[To be filled in later] + + +Windows NT/2K Printer Change Notify +----------------------------------- + +When working with Windows NT+ clients, it is possible for a +print server to use RPC to send asynchronous change notification +events to clients for certain printer and print job attributes. +This can be useful when the client needs to know that a new +job has been added to the queue for a given printer or that the +driver for a printer has been changed. Note that this is done +entirely orthogonal to cache updates based on a new ChangeID for +a printer object. + +The basic set of RPC's used to implement change notification are + + * RemoteFindFirstPrinterChangeNotifyEx ( RFFPCN ) + * RemoteFindNextPrinterChangeNotifyEx ( RFNPCN ) + * FindClosePrinterChangeNotify( FCPCN ) + * ReplyOpenPrinter + * ReplyClosePrinter + * RouteRefreshPrinterChangeNotify ( RRPCN ) + +One additional RPC is available to a server, but is never used by the +Windows spooler service: + + * RouteReplyPrinter() + +The opnum for all of these RPC's are defined in include/rpc_spoolss.h + +Windows NT print servers use a bizarre method of sending print +notification event to clients. The process of registering a new change +notification handle is as follows. The 'C' is for client and the +'S' is for server. All error conditions have been eliminated. + +C: Obtain handle to printer or to the printer + server via the standard OpenPrinterEx() call. +S: Respond with a valid handle to object + +C: Send a RFFPCN request with the previously obtained + handle and either (a) + + + +* Back Channel +* Methods of sending an event +* Id numbers (print server handles, jobids, & printer handles ) +* event types ( jobs & printer attributes ) +* aggegating notifications + -- cgit From 09507f5315aa3c4448cb8673d9d05d5ac4cb9c11 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Mon, 30 Sep 2002 05:19:43 +0000 Subject: Don't zero out numwritten before using.... Found by Pierre Belanger belanger@pobox.com Jeremy. (This used to be commit a7009ad5c8aaae350b2521b8c0cd2538e561618a) --- source3/lib/sendfile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source3/lib/sendfile.c b/source3/lib/sendfile.c index 98a52608b8..5d1cf2f10b 100644 --- a/source3/lib/sendfile.c +++ b/source3/lib/sendfile.c @@ -208,10 +208,10 @@ ssize_t sys_sendfile(int tofd, int fromfd, const DATA_BLOB *header, SMB_OFF_T of hdtrl[0].iov_base = NULL; hdtrl[0].iov_len = 0; } else { - nwritten = 0; /* iov_base is defined as a void *... */ hdtrl[0].iov_base = ((char *)hdtrl[0].iov_base) + nwritten; hdtrl[0].iov_len -= nwritten; + nwritten = 0; } } total -= nwritten; @@ -280,9 +280,9 @@ ssize_t sys_sendfile(int tofd, int fromfd, const DATA_BLOB *header, SMB_OFF_T of hdtrl.iov_base = NULL; hdtrl.iov_len = 0; } else { - nwritten = 0; hdtrl.iov_base += nwritten; hdtrl.iov_len -= nwritten; + nwritten = 0; } } total -= nwritten; -- cgit From 25d5e74e340f0ae966781dc7de63144c3ce01747 Mon Sep 17 00:00:00 2001 From: John Terpstra Date: Mon, 30 Sep 2002 05:39:33 +0000 Subject: Added from samba mailing lists. Might help someone one day. (This used to be commit ac0d1acc5542b0f02a85e38e5adfcc8098ff166a) --- docs/textdocs/CUPS-PrintingInfo.txt | 589 ++++++++++++++++++++++++++++++++++++ 1 file changed, 589 insertions(+) create mode 100644 docs/textdocs/CUPS-PrintingInfo.txt diff --git a/docs/textdocs/CUPS-PrintingInfo.txt b/docs/textdocs/CUPS-PrintingInfo.txt new file mode 100644 index 0000000000..bbe14f33e8 --- /dev/null +++ b/docs/textdocs/CUPS-PrintingInfo.txt @@ -0,0 +1,589 @@ +Date: Sun, 22 Sep 2002 15:38:02 +0200 +From: "Kurt Pfeifle" +Reply-To: kpfeifle@danka.de +Organization: Danka Deutschland GmbH +To: samba@lists.samba.org +Subject: CUPS filtering mechanism explained, was: [cups raw mode, was Re: [Samba] unlink data file in cups_job_submit] + +Paul Janzen wrote on Samba digest: + + > Message: 7 + > To: Gerald Carter + > Cc: samba@lists.samba.org + > From: Paul Janzen + > Subject: cups raw mode, was Re: [Samba] unlink data file in cups_job_submit + > Date: 21 Sep 2002 12:09:23 -0700 + > + > + > Gerald Carter writes: + > + > > Looks right to me [:-)] Applying it now. Thanks. I've been meaning to + > > track this one down. + > + > + > Thanks! + > + > While we are on the subject... [:-)] + > + > If I am using native printer drivers on Windows clients, I would like + > the "raw" option to get propagated to CUPS. Otherwise cups does not + > pass the data on to the printer. + +Paul, + +I see you know about what you call the "raw data passthrough feature". +I guess you mean the lines in "/etc/cups/mime.types" and +"/etc/cups/mime.convs" which need to be uncommented to allow "raw" +printing ? + +Here is some clarification (likely not very useful for you, but +possibly for some other readers of the Samba list): + +### If you have "printing = cups" and "printcap = cups" enabled, +--- everything is handled by Samba accessing the CUPS API. (And any + "print command" directive in Samba will be ignored.) If the CUPS + API is not available (because Samba might not be compiled against +libcups), it automatically maps to the "System V" command set, with +"-oraw" enabled automatically. + + > (If I enable cups's application/ + > octet-stream raw-data passthrough feature, both cupsomatic and the + > Windows driver add PJL headers and footers, which is not what I want + > either.) + +### According to my experience, cupsomatic on the Samba/CUPS server +--- does *not* add any features if a file is really printed "raw". + However, if you have loaded the driver for the Windows client +from the CUPS server, using the "cupsaddsmb" utility, and if this +driver is one using a "Foomatic" PPD, the PJL header in question is +already added on the Windows client, at the time when the driver +initially generated the PostScript data -- and CUPS in true "-oraw" +manner doesn't remove this PJL header and passes the file "as is" +to its printer communication backend. + +NOTE, please, that the editing in the "mime.convs" and the +----- "mime.types" file does not *enforce* "raw" printing, it + only *allows* it. Any file arriving from Windows is +"auto-typed" by CUPS, which might consecutively lead to its +treatment by various filters automatically (depending on the +actual outcome of the auto-typing and the configuration of the +printqueue in question): + + --> Files generated by PCL drivers and destined to PCL + printers get auto-typed "application/octet-stream" + and are indeed printed "raw". Also, unknown file + types are getting tagged as "application/octet-stream". + + --> Files generated by a PostScript driver (and destined + for any target printer type) are auto-typed. Depending + on the driver, the discovered MIME type may be + + * application/postscript or + * application/vnd.cups-postscript + +"application/postscript" goes first thru the "pstops" filter + (where also the page counting and accounting takes place + currently), and the outcome will be of MIME type + "application/vnd.cups-postscript". The pstopsfilter reads and + uses information from the PPD and inserts user-provided options + into the PostScript file. As a consequence, the filtered file + will possibly have the PJL header you don't want. + +"application/postscript" will be all files with a ".ps", ".ai", + ".eps" suffix or which have as their first character string one + of "%!" or "<04>%". + +"application/vnd.cups-postscript" will be those files which do both, + first... + ...carry a string "LANGUAGE=POSTSCRIPT" (or similar variations + with different capitalization) amongst the first 512 bytes, + *plus*... + ...contain the "PJL super escape code" amongst the first 128 + bytes ("<1B>%-12345X"). Very likely, most PostScript files + generated on Windows using a CUPS- or other PPD, will have + to be auto-typed as "vnd.cups-postscript". + Probably a file produced with a "Generic PostScript driver" + will be just "application/postscript" (have not checked). + +Once the file is in "application/vnd.cups-postscript" format, +either "pstoraster" or "cupsomatic" will take over (depending +on the printer configuration, as determined by the PPD in use). + +NOTE: a printer queue with *no* PPD associated to it is a "raw" +----- printer and all files will go directly there as received + by the spooler; the exeption are file types +"application/octet-stream" which need the mentioned "passthrough +feature" enabled. "Raw" queues don't do any filtering at all, they +hand the file directly to the CUPS backend. This backend is +responsible for the sending of the data to the device (as visible +in the "device URI" notation as lpd://, socket://, smb://, ipp://, +http://, parallel:/, serial:/, usb:/ etc.) + +NOTE, please, also the following fact: "cupsomatic"/Foomatic are +----- *not* native CUPS drivers and they don't ship with CUPS. + They are a Third Party add-on, developed at Linuxprinting.org. +As such, they are a brilliant hack to make all models (driven by +Ghostscript drivers/filters in traditional spoolers) also work via +CUPS, with the same (good or bad!) quality as in these other +spoolers. "cupsomatic" is only a vehicle to execute a ghostscript +commandline at that stage in the CUPS filtering chain, where +"normally" the native CUPS "pstoraster" filter would kick in. +cupsomatic by-passes pstoraster, "kidnaps" the printfile from CUPS +away and re-directs it to go through Ghostscipt. CUPS accepts this, +because the associated CUPS-O-Matic-/Foomatic-PPD carries a line +reading + + *cupsFilter: "application/vnd.cups-postscript 0 cupsomatic" + +This line persuades CUPS to hand the file to cupsomatic, once it +has successfully converted it to the MIME type +"application/vnd.cups-postscript". This conversion will not +happen for Jobs arriving from Windows which are autotyped +"application/octet-stream", with the according changes in +"/etc/cups/mime.types" in place. + +See small drawings at the end... + +I am not a programmer, so please correct me if I am wrong. + + > With traditional lpr, you can just add "-oraw" to the "print command" + > line in smb.conf. With cups, you don't have that alternative. + +You *do* have it, I think. + +But you need to disable the settings "printing = cups" and "printcap = += cups" and use "printing = bsd" and "printcap = /etc/printcap" +instead. [Additionally, you will probably have to enable and configure +the CUPS mini-LPD daemon ("cups-lpd") run from inetd... but I have not +checked, so take this item with a grain of salt and a proper dose of +caution, please.] + + > The result is that to support both unix printing and native-driver + > Windows printing from CUPS, you have to have two logical printers per + > physical printer: one ("cooked") for Unix clients and one ("raw") for + > Samba to use. + +Yes, that is one current workaround, if you don't want the auto-typing +of CUPS influencing Samba/Windows client PostScript jobs. + +CUPS is widely configurable and flexible, even regarding its filtering +mechanism. Another workaround in some situations would be to have +lines in "/etc/cups/mime.types" saying + + application/postscript application/vnd.cups-raw 0 - + application/vnd.cups-postscript application/vnd.cups-raw 0 - + +This would prevent all Postscript files to be filtered (or rather, they +will go thru the virtual "nullfilter" denoted with "-". (This could only +be useful for PS printers, or if you want to print PS code on non-PS +printers ;-) + +A single line of + + */* application/vnd.cups-raw 0 - + +would effectively send *all* files towards the backend immediately +(good luck!) + +Last, you could have the following (without the need for a Samba +patch): + + application/vnd.cups-postscript application/vnd.cups-raw 0 my_PJL_stripping_filter + +You'd need to write a "my_PJL_stripping_filter" (could be a shellscript) +which parses the PostScript and removes the undesired PJL. This would +need to conform to CUPS filter design (mainly, receive and pass the +parameters printername, job-id, username, jobtitle, copies, printoptions +and possibly the filename). It would just go as world executably into +"/usr/lib/cups/filters/" and work from there, called by cups if it +encounters a MIME type "application/vnd.cups-postscript" + + > The attached patch allows you to specify an option string for cups + > printers in smb.conf. + +I think your patch is in any case very useful (if it works as +advertised ;-). It is the most generic, simple and flexible +approach to complement CUPS. + + > So, if you want to use native Windows drivers, + > all you need is + > + > cups printer options = raw + > + > in smb.conf. You can add any other options that cups and the printer + > understand. + +Now this last sentence makes me very curious. Do you mean you can add +*multiple* options to this directive? Which syntax would be required +for this ? (Some CUPS options are specified by an "-o option=value" +pair on the commandline, some are single values, like the "-o raw" +one...) + +I am thinking on one specific usage now: + +----------------------------------------------------------------------- +-> passing any available IPP job attribute to the printer / the spooler +----------------------------------------------------------------------- + +For example, CUPS can handle "-o job-hold-until=indefinite". This +keeps the job in the queue "on hold". It will only be printed upon +manual release by the printer operator. This is a requirement in +many "central reproduction departments", where a few operators +manage the jobs of hundreds of users on some big machine, where no +user is allowed to have direct access. (The operators often need to +load the proper paper type before running the 10.000 page job +requested by marketing for the mailing, etc.). + +A lot more useful applications come to mind, if I could pass +"any other options that cups and the printer understand" via +the smb.conf directive!! + +Thanks a lot! + +Cheers, +Kurt + +P.S.: List, please give me some feedback, if you think this type of + explanation could be useful in the Samba HOWTO Collection. In + that case, I'll try to write it up in a nicer form. + + +######################################################################### +# +# CUPS in and of itself has this (general) filter chain (CAPITAL +# letters are FILE-FORMATS or MIME types, other are filters (this is +# true for pre-1.1.15 of pre-4.3 versions of CUPS and ESP PrintPro): +# +# -FILEFORMAT +# | +# | +# V +# tops +# | +# | +# V +# APPLICATION/POSTSCRIPT +# | +# | +# V +# pstops +# | +# | +# V +# APPLICATION/VND.CUPS-POSTSCRIPT +# | +# | +# V +# pstoraster # as shipped with CUPS, independent from any Ghostscipt +# | # installation on the system +# | (= "postscipt interpreter") +# | +# V +# APPLICATION/VND.CUPS-RASTER +# | +# | +# V +# rasterto (f.e. Gimp-Print filters may be plugged in here) +# | (= "raster driver") +# | +# V +# SOMETHING-DEVICE-SPECIFIC +# | +# | +# V +# backend +# +# +# ESP PrintPro has some enhanced "rasterto" filters as compared to +# CUPS, and also a somewhat improved "pstoraster" filter. +# +# NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to +# CUPS and ESP PrintPro plug-in where rasterto is noted. +# +# +######################################################################### +# +# This is how "cupsomatic" comes into play: +# ========================================= +# +# -FILEFORMAT +# | +# | +# V +# tops +# | +# | +# V +# APPLICATION/POSTSCRIPT +# | +# | +# V +# pstops +# | +# | +# V +# APPLICATION/VND.CUPS-POSTSCRIPT ----------------+ +# | | +# | V +# V cupsomatic +# pstoraster (constructs complicated +# | (= "postscipt interpreter") Ghostscript commandline +# | to let the file be +# V processed by a +# APPLICATION/VND.CUPS-RASTER "-sDEVICE=" +# | call...) +# | | +# V | +# rasterto V +# | (= "raster driver") +-------------------------+ +# | | Ghostscript at work.... | +# V | | +# SOMETHING-DEVICE-SPECIFIC *-------------------------+ +# | | +# | | +# V | +# backend <------------------------------------+ +# | +# | +# V +# THE PRINTER +# +# +# +# Note, that cupsomatic "kidnaps" the printfile after the +# "APPLICATION/VND.CUPS-POSTSCRPT" stage and deviates it through +# the CUPS-external, systemwide Ghostscript installation, bypassing the +# "pstoraster" filter (therefor also bypassing the CUPS-raster-drivers +# "rasterto", and hands the rasterized file directly to the CUPS +# backend... +# +# cupsomatic is not made by the CUPS developers. It is an independent +# contribution to printing development, made by people from +# Linuxprinting.org. (see also http://www.cups.org/cups-help.html) +# +# NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to +# CUPS and ESP PrintPro plug-in where rasterto is noted. +# +# +######################################################################### +# +# And this is how it works for ESP PrintPro from 4.3: +# =================================================== +# +# -FILEFORMAT +# | +# | +# V +# tops +# | +# | +# V +# APPLICATION/POSTSCRIPT +# | +# | +# V +# pstops +# | +# | +# V +# APPLICATION/VND.CUPS-POSTSCRIPT +# | +# | +# V +# gsrip +# | (= "postscipt interpreter") +# | +# V +# APPLICATION/VND.CUPS-RASTER +# | +# | +# V +# rasterto (f.e. Gimp-Print filters may be plugged in here) +# | (= "raster driver") +# | +# V +# SOMETHING-DEVICE-SPECIFIC +# | +# | +# V +# backend +# +# NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to +# CUPS and ESP PrintPro plug-in where rasterto is noted. +# +# +######################################################################### +# +# This is how "cupsomatic" would come into play with ESP PrintPro: +# ================================================================ +# +# +# -FILEFORMAT +# | +# | +# V +# tops +# | +# | +# V +# APPLICATION/POSTSCRIPT +# | +# | +# V +# pstops +# | +# | +# V +# APPLICATION/VND.CUPS-POSTSCRIPT ----------------+ +# | | +# | V +# V cupsomatic +# gsrip (constructs complicated +# | (= "postscipt interpreter") Ghostscript commandline +# | to let the file be +# V processed by a +# APPLICATION/VND.CUPS-RASTER "-sDEVICE=" +# | call...) +# | | +# V | +# rasterto V +# | (= "raster driver") +-------------------------+ +# | | Ghostscript at work.... | +# V | | +# SOMETHING-DEVICE-SPECIFIC *-------------------------+ +# | | +# | | +# V | +# backend <------------------------------------+ +# | +# | +# V +# THE PRINTER +# +# NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to +# CUPS and ESP PrintPro plug-in where rasterto is noted. +# +######################################################################### +# +# And this is how it works for CUPS from 1.1.15: +# ============================================== +# +# -FILEFORMAT +# | +# | +# V +# tops +# | +# | +# V +# APPLICATION/POSTSCRIPT +# | +# | +# V +# pstops +# | +# | +# V +# APPLICATION/VND.CUPS-POSTSCRIPT-----+ +# | +# +------------------v------------------------------+ +# | Ghostscript | +# | at work... | +# | (with | +# | "-sDEVICE=cups") | +# | | +# | (= "postscipt interpreter") | +# | | +# +------------------v------------------------------+ +# | +# | +# APPLICATION/VND.CUPS-RASTER <-------+ +# | +# | +# V +# rasterto +# | (= "raster driver") +# | +# V +# SOMETHING-DEVICE-SPECIFIC +# | +# | +# V +# backend +# +# +# NOTE: since version 1.1.15 CUPS "outsourced" the pstoraster process to +# Ghostscript. GNU Ghostscript needs to be patched to handle the +# CUPS requirement; ESP Ghostscript has this builtin. In any case, +# "gs -h" needs to show up a "cups" device. pstoraster is now a +# calling an appropriate "gs -sDEVICE=cups..." commandline to do +# the job. It will output "application/vnd.cup-raster", which will +# be finally processed by a CUPS raster driver "rasterto" +# Note the difference to "cupsomatic", which will *not* output +# CUPS-raster, but a final version of the printfile, ready to be +# sent to the printer. cupsomatic also doesn't use the "cups" +# devicemode in Ghostscript, but one of the classical devicemodes.... +# +# NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to +# CUPS and ESP PrintPro plug-in where rasterto is noted. +# +######################################################################### +# +# And this is how it works for CUPS from 1.1.15, with cupsomatic included: +# ======================================================================== +# +# -FILEFORMAT +# | +# | +# V +# tops +# | +# | +# V +# APPLICATION/POSTSCRIPT +# | +# | +# V +# pstops +# | +# | +# V +# APPLICATION/VND.CUPS-POSTSCRIPT-----+ +# | +# +------------------v------------------------------+ +# | Ghostscript . Ghostscript at work.... | +# | at work... . (with "-sDEVICE= | +# | (with . " | +# | "-sDEVICE=cups") . | +# | . | +# | (CUPS standard) . (cupsomatic) | +# | . | +# | (= "postscript interpreter") | +# | . | +# +------------------v--------------v---------------+ +# | | +# | | +# APPLICATION/VND.CUPS-RASTER <-------+ | +# | | +# | | +# V | +# rasterto | +# | (= "raster driver") | +# | | +# V | +# SOMETHING-DEVICE-SPECIFIC <------------------------+ +# | +# | +# V +# backend +# +# +# NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to +# CUPS and ESP PrintPro plug-in where rasterto is noted. +# +########################################################################## + +I hope this helps more people understand how CUPS works and how they +can possibly tweak it to their needs. + + -- cgit From 4b5c0793de285b6978ca5b6161418d51812ac0ba Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Mon, 30 Sep 2002 06:45:58 +0000 Subject: Second part of my fix -- incorrect merge. (This used to be commit 2613d3a48a8d60c3db38406a1abd943dbe0b7d09) --- source3/rpc_server/srv_samr_nt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c index 290baabc3b..020a3c6aaf 100644 --- a/source3/rpc_server/srv_samr_nt.c +++ b/source3/rpc_server/srv_samr_nt.c @@ -894,7 +894,7 @@ static NTSTATUS get_group_alias_entries(TALLOC_CTX *ctx, DOMAIN_GRP **d_grp, DOM /* well-known aliases */ if (sid_equal(sid, &global_sid_Builtin) && !lp_hide_local_users()) { - enum_group_mapping(SID_NAME_ALIAS, &map, (int *)&num_entries, ENUM_ONLY_MAPPED, MAPPING_WITHOUT_PRIV); + enum_group_mapping(SID_NAME_WKN_GRP, &map, (int *)&num_entries, ENUM_ONLY_MAPPED, MAPPING_WITHOUT_PRIV); if (num_entries != 0) { *d_grp=(DOMAIN_GRP *)talloc_zero(ctx, num_entries*sizeof(DOMAIN_GRP)); -- cgit From 07d3df8c2df174b328051d7cac988751750825df Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Mon, 30 Sep 2002 15:18:59 +0000 Subject: fix logic error in testparm with wins servers (This used to be commit b9942092cf3d0a9fbf94b51b576836a86059551b) --- source3/utils/testparm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source3/utils/testparm.c b/source3/utils/testparm.c index d48cecba47..c81d6e72e4 100644 --- a/source3/utils/testparm.c +++ b/source3/utils/testparm.c @@ -52,8 +52,8 @@ static int do_global_checks(void) ret = 1; } - if (lp_wins_support() && wins_srv_count()) { - printf("ERROR: both 'wins support = true' and 'wins server = ' \ + if (lp_wins_support() && lp_wins_server_list()) { + printf("ERROR: both 'wins support = true' and 'wins server = ' \ cannot be set in the smb.conf file. nmbd will abort with this setting.\n"); ret = 1; } -- cgit From 812c0a0f98dfd392662a4174c94d577755fbe740 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Mon, 30 Sep 2002 15:25:40 +0000 Subject: README.OtherModules (This used to be commit 93cb8b47c48d0492e3e699542bdc521aafb8d1b7) --- examples/VFS/README.OtherModules | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 examples/VFS/README.OtherModules diff --git a/examples/VFS/README.OtherModules b/examples/VFS/README.OtherModules new file mode 100644 index 0000000000..02dced6158 --- /dev/null +++ b/examples/VFS/README.OtherModules @@ -0,0 +1,39 @@ +This file contains a listing of various other VFS modules that +have been posted but don't currently reside in the Samba CVS +tree for one reason ot another (e.g. it is easy for the maintainer +to have his or her own CVS tree). + +No statemets about the stability or functionality any module +should be implied due to its presence here. + + +------------------------------------------------------------ +Date: Sat, 28 Sep 2002 23:41:31 -0500 +From: Eric Lorimer +To: samba-technical@lists.samba.org +Subject: DatabaseFS VFS module + +Hello, + +I have created a VFS module which implements a fairly complete read-only +filesystem. It presents information from a database as a filesystem in +a modular and generic way to allow different databases to be used +(originally designed for organizing MP3s under directories such as +"Artists," "Song Keywords," etc... I have since applied it to a student +roster database very easily). The directory structure is stored in the +database itself and the module makes no assumptions about the database +structure beyond the table it requires to run. You can find it at: + +http://www.css.tayloru.edu/~elorimer/databasefs/index.php + + +Any feedback would be appreciated: comments, suggestions, patches, +etc... If nothing else, hopefully it might prove useful for someone +else who wishes to create a virtual filesystem. + +Thanks for the great product and keep up the good work. + + +- Eric Lorimer + +------------------------------------------------------------ -- cgit From bf556da1e2d6df48520e17c9318eb431c7abb78c Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Mon, 30 Sep 2002 16:51:35 +0000 Subject: more details opn change notification (This used to be commit a4a3469ffb44061c58bbcd807a9585ae13326f7b) --- docs/docbook/devdoc/printing.sgml | 89 +++++++++++++++++++++++++++++++++++---- 1 file changed, 80 insertions(+), 9 deletions(-) diff --git a/docs/docbook/devdoc/printing.sgml b/docs/docbook/devdoc/printing.sgml index 3cce7ab99c..1d4085bb88 100644 --- a/docs/docbook/devdoc/printing.sgml +++ b/docs/docbook/devdoc/printing.sgml @@ -60,14 +60,85 @@ C: Obtain handle to printer or to the printer server via the standard OpenPrinterEx() call. S: Respond with a valid handle to object -C: Send a RFFPCN request with the previously obtained - handle and either (a) +C: Send a RFFPCN request with the previously obtained + handle with either (a) set of flags for change events + to monitor, or (b) a PRINTER_NOTIFY_OPTIONS structure + containing the event information to monitor. The windows + spooler has only been observed to use (b). +S: The opens a new TCP session to the client (thus requiring + all print clients to be CIFS servers as well) and sends + a ReplyOpenPrinter() request to the client. +C: The client responds with a printer handle that can be used to + send event notification messages. +S: The server replies success to the RFFPCN request. + +C: The windows spooler follows the RFFPCN with a RFNPCN + request to fetch the current values of all monitored + attributes. +S: The server replies with an array SPOOL_NOTIFY_INFO_DATA + structures (contained in a SPOOL_NOTIFY_INFO structure). + +C: If the change notification handle is ever released by the + client via a PCPCN request, the server sends a ReplyClosePrinter() + request back to the client first. However a request of this + nature from the client is often an indication that the previous + notification event was not marshalled correctly by the server + or a piece of data was wrong. +S: The server closes the internal change notification handle + (POLICY_HND) and does not send any further change notification + events to the client for that printer or job. + +The current list of notification events supported by Samba can be +found by examining the internal tables in srv_spoolss_nt.c + + * printer_notify_table[] + * job_notify_table[] + +When an event occurs that could be monitored, smbd sends a messages +to itself about the change. The list of events to be transmitted +are queued by the smbd process sending the message to prevent and +overload of TDB usage and the internal message is sent during smbd's +idle loop (refer to printing/notify.c and the functions +send_spoolss_notify2_msg() and print_notify_send_messages() ). + + +The decision of whether or not the change is to be sent to connected +clients is made by the routine which actually sends the notification. +( refer to srv_spoolss_nt.c:recieve_notify2_message() ). + +Because it possible to recieve a listing of multiple changes for +multiple printers the notification events must be split into +categories by the printer name. This makes it possible to group +multiple change events to be sent in a single RPC according to the +printer handle obtained via a ReplyOpenPrinter(). + +The actual change notification is performed using the RRPCN request +RPC. This packet contains + + * the printer handle registered with the client's spooler on + which the change occurred + * The change_low value which was sent as part of the last + RFNPCN request from the client + * The SPOOL_NOTIFY_INFO container with the event information + - the version and flags field are predefined and should not + be changed + - The count field is the number of entries in the + SPOOL_NOTIFY_INFO_DATA array + o The type defines whether or not this event is for a printer + or a print job + o The field is the flag identifying the event + o the notify_data union contains the new valuie of the attribute + o The enc_type defines the size of the structure for marshalling + and unmarshalling + o (a) the id must be 0 for a printer event on a printer handle. + (b) the id must be the job id for an event on a printer job + (c) the id must be the matching number of the printer index used + in the response packet to the RFNPCN when using a print server + handle for notification. Samba currently uses the snum of + the printer for this which can break if the list of services + has been modified since the notification handle was registered. + o The size is either (a) the string length in UNICODE for strings, + (b) the size in bytes of the security descriptor, or (c) 0 for + data values. - -* Back Channel -* Methods of sending an event -* Id numbers (print server handles, jobids, & printer handles ) -* event types ( jobs & printer attributes ) -* aggegating notifications - -- cgit From ae61c575babe9488b190481e8f3a10754c876f06 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Mon, 30 Sep 2002 19:52:11 +0000 Subject: more updates--printing backend inmterface & Print queue tdb's (This used to be commit a42414fe5aff8a9e0fccd1c73a86e3b472f2c149) --- docs/docbook/devdoc/printing.sgml | 129 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 124 insertions(+), 5 deletions(-) diff --git a/docs/docbook/devdoc/printing.sgml b/docs/docbook/devdoc/printing.sgml index 1d4085bb88..2e9d429439 100644 --- a/docs/docbook/devdoc/printing.sgml +++ b/docs/docbook/devdoc/printing.sgml @@ -1,6 +1,6 @@ != != Samba Printing Internals -!= +!= != Author : Gerald Carter != !=================================================================== @@ -9,18 +9,137 @@ The purpose of this document is to provide some insight into Samba's printing functionality and also to describe the semantics of certain features of Windows client printing. + +Printing Interface to Various Backends +-------------------------------------- + +Samba uses a table of function pointers to seven functions. The +function prototypes are defined in the printif structure declared +in printing.h. + + * retrieve the contents of a print queue + * pause the print queue + * resume a paused print queue + * delete a job from the queue + * pause a job in the print queue + * result a paused print job in the queue + * submit a jobn to the print queue + +Currently there are only two printing backend implementations +defined. + + * a generic set of functions for working with standard UNIX + printing subsystems + * a set of CUPS specific functions (this is only enabled if + the CUPS libraries were located at compile time). + + + Print Queue TDB's ------------------ -* matching lanman jobids, spoolss jobids, & lpd jobids -* why ? -* caching time +Samba provides periodic caching of the output from the "lpq command" +for performance reasons. This cache time is configurable in seconds. +Obviously the longer the cache time the less often smbd will be +required to exec a copy of lpq. However, the accuracy of the print +queue contents displayed to clients will be diminished as well. + +The list of currently opened print queue TDB's can eb found +be examining the list of tdb_print_db structures ( see print_db_head +in printing.c ). A queue TDB is opened using the wrapper function +printing.c:get_print_db_byname(). The function ensures that smbd +does not open more than MAX_PRINT_DBS_OPEN in an effort to prevent +a large print server from exhausting all available file descriptors. +If the number of open queue TDB's exceeds the MAX_PRINT_DBS_OPEN +limit, smbd falls back to a most recently used algorithm for maintaining +a list of open TDB's. + +There are two ways in which a a print job can be entered into +a print queue's TDB. The first is to submit the job from a Windows +client which will insert the job information directly into the TDB. +The second method is to have the print job picked up by executing the +"lpq command". + +/* included from printing.h */ +struct printjob { + pid_t pid; /* which process launched the job */ + int sysjob; /* the system (lp) job number */ + int fd; /* file descriptor of open file if open */ + time_t starttime; /* when the job started spooling */ + int status; /* the status of this job */ + size_t size; /* the size of the job so far */ + int page_count; /* then number of pages so far */ + BOOL spooled; /* has it been sent to the spooler yet? */ + BOOL smbjob; /* set if the job is a SMB job */ + fstring filename; /* the filename used to spool the file */ + fstring jobname; /* the job name given to us by the client */ + fstring user; /* the user who started the job */ + fstring queuename; /* service number of printer for this job */ + NT_DEVICEMODE *nt_devmode; +}; + +The current manifestation of the printjob structure contains a field +for the UNIX job id returned from the "lpq command" and a Windows job +ID (32-bit bounded by PRINT_MAX_JOBID). When a print job is returned +by the "lpq command" that does not match an existing job in th queue's +TDB, a 32-bit job ID above the is generating by adding UNIX_JOB_START to +the id reported by lpq. + +In order to match a 32-bit Windows jobid onto a 16-bit lanman print job +id, smbd uses an in memory TDB to match the former to a number approriate +for old lanman clients. + +When updating a print queue, smbd will performs the following +steps ( refer to print.c:print_queue_update() ): + + 1) Check to see if another sbmd is currently in the process of + updating the queue contents by checking the pid stored in + "LOCK/". If so, then do not update the TDB. + 2) Lock the mutex entry in the TDB and store our own pid. + Check that this succeeded, else fail. + 3) Store the updated time stamp for the new cache listing + 4) Retrieve the queue listing via "lpq command" + 5) foreach job in the queue + { + if the job is a UNIX job, create a new entry; + if the job has a Windows based jobid, then + { + Lookup the record by the jobid; + if the lookup failed, then + treat it as a UNIX job; + else + update the job status only + } + } + 6) Delete any jobs in the TDB that are not in the in the lpq + listing + 7) Store the print queue status in the TDB + 8) update the cache time stamp again + +Note that it is the contents of this TDB that is returned to Windows +clients and not the actual listing from the "lpq command". + +The NT_DEVICEMODE stored as part of the printjob structure is used to +store a pointer to a non-default DeviceMode associated with the print +job. The pointer will be non-null when the client included a Device +Mode in the OpePrinterEx() call and subsequently submitted a job for +printing on that sam handle. If the client did not include a Device +Mode in the OpenPrinterEx() request, the nt_devmode field is NULL +and the job has the printer's device mode associated with it by default. + +Only non-default Device Mode are stored with print jobs in the print +queue TDB. Otherwise, the Device Mode is obtained from the printer +object when the client issues a GetJob(level == 2) request. + + + + ChangeID & Client Caching of Printer Information ------------------------------------------------ -[To be filled in later] + [To be filled in later] Windows NT/2K Printer Change Notify -- cgit From d64e0e9772e3fd1b4c5af2ff8fd6aa0b89f0fcb6 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Mon, 30 Sep 2002 20:18:12 +0000 Subject: * add the Developers guide to the repository * fix syntax errors in developer's docs * update Makefile.in to place HTML files in htmldocs & text files in textdocs/ (This used to be commit cb96e1a1d9a07314bb60e431484cfd05aef83de6) --- docs/Samba-Developers-Guide.pdf | 2060 ++++++++ docs/Samba-HOWTO-Collection.pdf | 8137 +++++++++++++++-------------- docs/docbook/Makefile.in | 21 +- docs/docbook/devdoc/internals.sgml | 1 + docs/docbook/devdoc/parsing.sgml | 2 +- docs/htmldocs/Samba-Developers-Guide.html | 7734 +++++++++++++++++++++++++++ docs/htmldocs/Samba-HOWTO-Collection.html | 3593 +++++++------ 7 files changed, 15980 insertions(+), 5568 deletions(-) create mode 100644 docs/Samba-Developers-Guide.pdf create mode 100644 docs/htmldocs/Samba-Developers-Guide.html diff --git a/docs/Samba-Developers-Guide.pdf b/docs/Samba-Developers-Guide.pdf new file mode 100644 index 0000000000..282325e02a --- /dev/null +++ b/docs/Samba-Developers-Guide.pdf @@ -0,0 +1,2060 @@ +%PDF-1.3 +%âãÏÓ +1 0 obj<>endobj +2 0 obj<>endobj +3 0 obj<>endobj +4 0 obj<>endobj +5 0 obj<>endobj +6 0 obj<>endobj +7 0 obj<>endobj +8 0 obj<>endobj +9 0 obj<>endobj +10 0 obj<>endobj +11 0 obj<>endobj +12 0 obj<>endobj +13 0 obj<>endobj +14 0 obj<>endobj +15 0 obj<>endobj +16 0 obj<>endobj +17 0 obj<>endobj +18 0 obj<>endobj +19 0 obj<>endobj +20 0 obj<>endobj +21 0 obj<>endobj +22 0 obj<>endobj +23 0 obj<>endobj +24 0 obj<>endobj +25 0 obj<>endobj +26 0 obj<>endobj +27 0 obj<>endobj +28 0 obj<>endobj +29 0 obj<>endobj +30 0 obj<>endobj +31 0 obj<>endobj +32 0 obj<>endobj +33 0 obj<>endobj +34 0 obj<>endobj +35 0 obj<>endobj +36 0 obj<>endobj +37 0 obj<>endobj +38 0 obj<>endobj +39 0 obj<>endobj +40 0 obj<>endobj +41 0 obj<>endobj +42 0 obj<>endobj +43 0 obj<>endobj +44 0 obj<>endobj +45 0 obj<>endobj +46 0 obj<>endobj +47 0 obj<>endobj +48 0 obj<>endobj +49 0 obj<>endobj +50 0 obj<>endobj +51 0 obj<>endobj +52 0 obj[10 0 R +11 0 R +12 0 R +13 0 R +14 0 R +15 0 R +16 0 R +17 0 R +18 0 R +19 0 R +20 0 R +21 0 R +22 0 R +23 0 R +24 0 R +25 0 R +26 0 R +27 0 R +28 0 R +29 0 R +30 0 R +31 0 R +32 0 R +33 0 R +34 0 R +35 0 R +36 0 R +37 0 R +38 0 R +39 0 R +40 0 R +41 0 R +42 0 R +43 0 R +44 0 R +45 0 R +46 0 R +47 0 R +48 0 R +49 0 R +50 0 R +51 0 R]endobj +53 0 obj<>endobj +54 0 obj<>endobj +55 0 obj<>endobj +56 0 obj<>endobj +57 0 obj<>endobj +58 0 obj<>endobj +59 0 obj<>endobj +60 0 obj<>endobj +61 0 obj<>endobj +62 0 obj<>endobj +63 0 obj<>endobj +64 0 obj<>endobj +65 0 obj<>endobj +66 0 obj<>endobj +67 0 obj<>endobj +68 0 obj<>endobj +69 0 obj<>endobj +70 0 obj<>endobj +71 0 obj<>endobj +72 0 obj<>endobj +73 0 obj<>endobj +74 0 obj<>endobj +75 0 obj<>endobj +76 0 obj<>endobj +77 0 obj<>endobj +78 0 obj<>endobj +79 0 obj<>endobj +80 0 obj<>endobj +81 0 obj<>endobj +82 0 obj<>endobj +83 0 obj<>endobj +84 0 obj<>endobj +85 0 obj<>endobj +86 0 obj<>endobj +87 0 obj<>endobj +88 0 obj<>endobj +89 0 obj<>endobj +90 0 obj<>endobj +91 0 obj<>endobj +92 0 obj<>endobj +93 0 obj<>endobj +94 0 obj<>endobj +95 0 obj<>endobj +96 0 obj<>endobj +97 0 obj[53 0 R +54 0 R +55 0 R +56 0 R +57 0 R +58 0 R +59 0 R +60 0 R +61 0 R +62 0 R +63 0 R +64 0 R +65 0 R +66 0 R +67 0 R +68 0 R +69 0 R +70 0 R +71 0 R +72 0 R +73 0 R +74 0 R +75 0 R +76 0 R +77 0 R +78 0 R +79 0 R +80 0 R +81 0 R +82 0 R +83 0 R +84 0 R +85 0 R +86 0 R +87 0 R +88 0 R +89 0 R +90 0 R +91 0 R +92 0 R +93 0 R +94 0 R +95 0 R +96 0 R]endobj +98 0 obj<>endobj +99 0 obj<>endobj +100 0 obj<>endobj +101 0 obj<>endobj +102 0 obj<>endobj +103 0 obj<>endobj +104 0 obj<>endobj +105 0 obj<>endobj +106 0 obj<>endobj +107 0 obj<>endobj +108 0 obj<>endobj +109 0 obj<>endobj +110 0 obj<>endobj +111 0 obj<>endobj +112 0 obj<>endobj +113 0 obj<>endobj +114 0 obj<>endobj +115 0 obj<>endobj +116 0 obj<>endobj +117 0 obj<>endobj +118 0 obj[98 0 R +99 0 R +100 0 R +101 0 R +102 0 R +103 0 R +104 0 R +105 0 R +106 0 R +107 0 R +108 0 R +109 0 R +110 0 R +111 0 R +112 0 R +113 0 R +114 0 R +115 0 R +116 0 R +117 0 R]endobj +119 0 obj<>endobj +120 0 obj<>endobj +121 0 obj<>endobj +122 0 obj<>endobj +123 0 obj<>endobj +124 0 obj<>endobj +125 0 obj<>endobj +126 0 obj<>endobj +127 0 obj<>endobj +128 0 obj<>endobj +129 0 obj<>endobj +130 0 obj<>endobj +131 0 obj<>endobj +132 0 obj<>endobj +133 0 obj<>endobj +134 0 obj<>endobj +135 0 obj<>endobj +136 0 obj<>endobj +137 0 obj<>endobj +138 0 obj<>endobj +139 0 obj<>endobj +140 0 obj<>endobj +141 0 obj<>endobj +142 0 obj<>endobj +143 0 obj<>endobj +144 0 obj<>endobj +145 0 obj<>endobj +146 0 obj<>endobj +147 0 obj<>endobj +148 0 obj<>endobj +149 0 obj<>endobj +150 0 obj<>endobj +151 0 obj<>endobj +152 0 obj<>endobj +153 0 obj<>endobj +154 0 obj<>endobj +155 0 obj<>endobj +156 0 obj<>endobj +157 0 obj<>endobj +158 0 obj<>endobj +159 0 obj<>endobj +160 0 obj<>endobj +161 0 obj[120 0 R +122 0 R +124 0 R +125 0 R +126 0 R +127 0 R +128 0 R +129 0 R +130 0 R +131 0 R +132 0 R +133 0 R +134 0 R +135 0 R +136 0 R +137 0 R +138 0 R +139 0 R +140 0 R +141 0 R +142 0 R +143 0 R +144 0 R +145 0 R +146 0 R +147 0 R +148 0 R +149 0 R +150 0 R +151 0 R +152 0 R +153 0 R +154 0 R +155 0 R +156 0 R +157 0 R +158 0 R +159 0 R +160 0 R]endobj +162 0 obj<>endobj +163 0 obj<>endobj +164 0 obj<>endobj +165 0 obj<>endobj +166 0 obj<>endobj +167 0 obj<>endobj +168 0 obj<>endobj +169 0 obj<>endobj +170 0 obj<>endobj +171 0 obj<>endobj +172 0 obj<>endobj +173 0 obj<>endobj +174 0 obj<>endobj +175 0 obj<>endobj +176 0 obj<>endobj +177 0 obj<>endobj +178 0 obj<>endobj +179 0 obj<>endobj +180 0 obj<>endobj +181 0 obj<>endobj +182 0 obj<>endobj +183 0 obj<>endobj +184 0 obj<>endobj +185 0 obj<>endobj +186 0 obj<>endobj +187 0 obj<>endobj +188 0 obj<>endobj +189 0 obj<>endobj +190 0 obj<>endobj +191 0 obj<>endobj +192 0 obj<>endobj +193 0 obj<>endobj +194 0 obj<>endobj +195 0 obj<>endobj +196 0 obj<>endobj +197 0 obj<>endobj +198 0 obj<>endobj +199 0 obj<>endobj +200 0 obj<>endobj +201 0 obj<>endobj +202 0 obj<>endobj +203 0 obj<>endobj +204 0 obj<>endobj +205 0 obj<>endobj +206 0 obj<>endobj +207 0 obj<>endobj +208 0 obj<>endobj +209 0 obj<>endobj +210 0 obj<>endobj +211 0 obj<>endobj +212 0 obj<>endobj +213 0 obj[162 0 R +163 0 R +164 0 R +165 0 R +166 0 R +167 0 R +168 0 R +169 0 R +170 0 R +171 0 R +172 0 R +173 0 R +174 0 R +175 0 R +176 0 R +177 0 R +178 0 R +179 0 R +180 0 R +181 0 R +182 0 R +183 0 R +184 0 R +185 0 R +186 0 R +187 0 R +188 0 R +189 0 R +190 0 R +191 0 R +192 0 R +193 0 R +194 0 R +195 0 R +196 0 R +197 0 R +198 0 R +199 0 R +200 0 R +201 0 R +202 0 R +203 0 R +204 0 R +205 0 R +206 0 R +207 0 R +208 0 R +209 0 R +210 0 R +211 0 R +212 0 R]endobj +214 0 obj<>endobj +215 0 obj<>endobj +216 0 obj<>endobj +217 0 obj<>endobj +218 0 obj<>endobj +219 0 obj<>endobj +220 0 obj<>endobj +221 0 obj<>endobj +222 0 obj<>endobj +223 0 obj<>endobj +224 0 obj<>endobj +225 0 obj<>endobj +226 0 obj<>endobj +227 0 obj<>endobj +228 0 obj[214 0 R +215 0 R +216 0 R +217 0 R +218 0 R +219 0 R +220 0 R +221 0 R +222 0 R +223 0 R +224 0 R +225 0 R +226 0 R +227 0 R]endobj +229 0 obj<>endobj +230 0 obj<>endobj +231 0 obj<>endobj +232 0 obj<>endobj +233 0 obj[230 0 R +232 0 R]endobj +234 0 obj<>endobj +235 0 obj<>endobj +236 0 obj<>endobj +237 0 obj<>endobj +238 0 obj<>endobj +239 0 obj<>endobj +240 0 obj<>endobj +241 0 obj<>endobj +242 0 obj<>endobj +243 0 obj<>endobj +244 0 obj<>endobj +245 0 obj<>endobj +246 0 obj[235 0 R +237 0 R +239 0 R +241 0 R +243 0 R +245 0 R]endobj +247 0 obj<>endobj +248 0 obj<>endobj +249 0 obj<>endobj +250 0 obj<>endobj +251 0 obj<>endobj +252 0 obj<>endobj +253 0 obj<>endobj +254 0 obj<>endobj +255 0 obj<>endobj +256 0 obj<>endobj +257 0 obj<>endobj +258 0 obj<>endobj +259 0 obj<>endobj +260 0 obj<>endobj +261 0 obj<>endobj +262 0 obj<>endobj +263 0 obj<>endobj +264 0 obj<>endobj +265 0 obj<>endobj +266 0 obj<>endobj +267 0 obj<>endobj +268 0 obj<>endobj +269 0 obj<>endobj +270 0 obj<>endobj +271 0 obj<>endobj +272 0 obj<>endobj +273 0 obj<>endobj +274 0 obj<>endobj +275 0 obj<>endobj +276 0 obj<>endobj +277 0 obj<>endobj +278 0 obj<>endobj +279 0 obj<>endobj +280 0 obj<>endobj +281 0 obj<>endobj +282 0 obj<>endobj +283 0 obj<>endobj +284 0 obj<>endobj +285 0 obj<>endobj +286 0 obj<>endobj +287 0 obj<>endobj +288 0 obj<>endobj +289 0 obj<>endobj +290 0 obj<>endobj +291 0 obj<>endobj +292 0 obj<>endobj +293 0 obj<>endobj +294 0 obj<>endobj +295 0 obj<>endobj +296 0 obj<>endobj +297 0 obj<>endobj +298 0 obj<>endobj +299 0 obj<>endobj +300 0 obj<>endobj +301 0 obj<>endobj +302 0 obj<>endobj +303 0 obj<>endobj +304 0 obj<>endobj +305 0 obj<>endobj +306 0 obj<>endobj +307 0 obj<>endobj +308 0 obj<>endobj +309 0 obj<>endobj +310 0 obj<>endobj +311 0 obj<>endobj +312 0 obj<>endobj +313 0 obj<>endobj +314 0 obj<>endobj +315 0 obj<>endobj +316 0 obj<>endobj +317 0 obj<>endobj +318 0 obj<>endobj +319 0 obj<>endobj +320 0 obj<>endobj +321 0 obj<>endobj +322 0 obj<>endobj +323 0 obj<>endobj +324 0 obj<>endobj +325 0 obj<>endobj +326 0 obj<>endobj +327 0 obj<>endobj +328 0 obj<>endobj +329 0 obj<>endobj +330 0 obj<>endobj +331 0 obj<>endobj +332 0 obj<>endobj +333 0 obj<>endobj +334 0 obj<>endobj +335 0 obj<>endobj +336 0 obj<>endobj +337 0 obj<>endobj +338 0 obj<>endobj +339 0 obj<>endobj +340 0 obj<>endobj +341 0 obj<>endobj +342 0 obj<>endobj +343 0 obj<>endobj +344 0 obj<>endobj +345 0 obj<>endobj +346 0 obj<>endobj +347 0 obj<>endobj +348 0 obj<>endobj +349 0 obj<>endobj +350 0 obj<>endobj +351 0 obj<>endobj +352 0 obj<>endobj +353 0 obj<>endobj +354 0 obj<>endobj +355 0 obj<>endobj +356 0 obj<>endobj +357 0 obj<>endobj +358 0 obj<>endobj +359 0 obj<>endobj +360 0 obj<>endobj +361 0 obj<>endobj +362 0 obj<>endobj +363 0 obj<>endobj +364 0 obj<>endobj +365 0 obj<>endobj +366 0 obj<>endobj +367 0 obj<>endobj +368 0 obj<>endobj +369 0 obj<>endobj +370 0 obj<>endobj +371 0 obj<>endobj +372 0 obj<>endobj +373 0 obj<>endobj +374 0 obj<>endobj +375 0 obj<>endobj +376 0 obj<>endobj +377 0 obj<>endobj +378 0 obj<>endobj +379 0 obj<>endobj +380 0 obj<>endobj +381 0 obj<>endobj +382 0 obj<>endobj +383 0 obj<>endobj +384 0 obj<>endobj +385 0 obj<>endobj +386 0 obj<>endobj +387 0 obj<>endobj +388 0 obj<>endobj +389 0 obj<>endobj +390 0 obj<>endobj +391 0 obj<>endobj +392 0 obj<>endobj +393 0 obj<>endobj +394 0 obj<>endobj +395 0 obj<>endobj +396 0 obj<>endobj +397 0 obj<>endobj +398 0 obj<>endobj +399 0 obj<>endobj +400 0 obj<>endobj +401 0 obj<>endobj +402 0 obj<>endobj +403 0 obj<>endobj +404 0 obj<>endobj +405 0 obj<>endobj +406 0 obj<>endobj +407 0 obj<>endobj +408 0 obj<>endobj +409 0 obj<>endobj +410 0 obj<>endobj +411 0 obj<>endobj +412 0 obj<>endobj +413 0 obj<>endobj +414 0 obj<>endobj +415 0 obj<>endobj +416 0 obj<>endobj +417 0 obj<>endobj +418 0 obj<>endobj +419 0 obj<>endobj +420 0 obj<>endobj +421 0 obj<>endobj +422 0 obj<>endobj +423 0 obj<>endobj +424 0 obj<>endobj +425 0 obj<>endobj +426 0 obj<>endobj +427 0 obj<>endobj +428 0 obj<>endobj +429 0 obj<>endobj +430 0 obj<>endobj +431 0 obj<>endobj +432 0 obj<>endobj +433 0 obj<>/XObject<<>>>>>>endobj +434 0 obj<>stream +x+ä2T0BCs#c3…ä\.§.}7K#…4CCK=ccS=3…= D²F°£¯“£‚KjYjN~AjQ±‚{ifJªfH—kW SÙ?endstream +endobj +435 0 obj<>/XObject<<>>>>/Annots 52 0 R>>endobj +436 0 obj<>stream +xÕZÛnÔH}ÏWø$ƸÝn_s!, lf–'$4'™Õ\Ø ¿§ªoåR–Œ4HIŽ«\U]]]Ýö?'*Éð_%Užè2™.O²4Õðãæ5]IÊ¢ÁÏe¢›´r`‘ O\&M‘‚p™¨Ü¤ uIJµIk(­Lª ¥B0ËIï$’ɦ*½{ïvÝçí¥×Ão«nü•îÖ8ŒÀÖ€ú§Ø¶Yöp€3 Yý`⤷õ aûøìãs:l}C#6žnÖÞ±úª¼ÊÈšAƒ¢Ö«6A¿óéôâ»…‰ZÕßùE=‡9`yT¼ë(Ì­G9ôöÃ[ïÎ4z@;‚W~ àPfܾq?Yô?µzËÔfÓånÅMwú´téã*Êîž +±­Mîºök燀öïG0)ú#ä̶¶…¾–ßÏ6Áp×f÷%Š¼ÙUìmn×›å¸û4k'»»O2îuC³å UÖš+ÖL…×4…ý¢y¾ö &’ùÔN†»»»vK½3§=NuÃòrÐð÷®´-³*ú;a¹§Áf Ý¬Æ ;‡‹´>Æ ù¦îûÑ¡ÈŠ{~?¦óvÃK Ž[߉þ}ÁÂípxY4G²µ=fy_¹Vdz•_o{ŽxyÀUðAòÙ3‚Š‹k(`¼ÂqšÑ¡PíO‘æÜXãÄ*6¡“o]»ÞÌÚMzOƒ‰Cå}Ÿ!õí}$R|h0ÀË‹^Þ}8ÅŠ>Ùݾø¼ÞÚ ïƒ]ݼKÎfkQŠ÷¿¡ÍÃsiô‹/ã… ö·c.À°"Dw( ýM2âÍl¦oºDû$Æé!¯fx³.ö æკWQÝ?£}­`{BfP”¿3™¾ÃÁ Šàìaþð‹cÝa/‘ãŒ;†æÍ&„µ$„wØËbapyðLvá­É’ho?…£ÁxƒzØ4VöˆÏÚíí篰÷°û>o­¨Á7½ÜµEß—CmpÖ²5!´7½ÔuöM1s¾ýbvó³ú€ÜgŸ ½·‚7?« G2Õ^^Öî-<ΚŸ7¢{Žßˆo ’ð-Îð%ξUÖÐ +2§EòÕèäÏ“ÿ‡íŠendstream +endobj +437 0 obj<>/XObject<<>>>>/Annots 97 0 R>>endobj +438 0 obj<>stream +xÕZÛr7}×WÌÛf8`0·GYŠUɲlÒµÏ5Š¹&9Z^œøïsNãJ‰.U¥‘kWÙ<ÓÓ@ßÐh4æg*+ðWeÎÊ:›-ÏŠ¼À“ðϧ_ø$«M‡—Y©sãÀ"Ÿ%p™5MÞ¥´š|e•·à«Ú¼v€| \fª(8¨¼IbŠA-Ë\¥ÔƒZ•ûNª5r`M‰ɬB,:̶ÌÚ’4¤%ŒªÈ«„XR•ª«sMU:üg ¡±Lˆ”ÀcPu©#+ [ÕHµ|Q€Ø Â%”‡:‘–@¨¡Â ä³’VµèÑ0ÒhU„XÑ6•)Å6m, c©b½GL1¨u±GµÃ–…XÎŽ# ëhn˜@L1-G+U‘š`P;±d ÚIU•†îÀIÆÒÐ!˜bêÒ ò"ÕÚ¶(Å_5M\ à°2¥Œ;ø¤Ê, -Ԥ̛„HÉMM—™ÑÚò%QgÈ&/ºù<”øðƒ†øð²0"_)‹‚¼‘( +šŠµÌ ‹É,à –V6¢|Ëø0"MQ RA4BLX˜=¢T) º–©Åƒ–]+–i4´· ÒÚJÅzl³R€L!”ÐðD¤É|e£D‰†qlùHAK2Ê›qBÉZâŠ2+È„¶R¦H³šJlJ¾(@&Œ®hɈ ‹R¹œÛO€È!¢›i ¤¬‰)¶3¦¬œQÃ^’8+ÌhgTBûDû%Øü ")Ó¦nl¾•x²@ø˜o4VQÙ:i$Æ! š€8fi“f­Zi _A-Ô½Ùc”Õ«‘©<äÅ ¢0Ê&FS¨L ŠDì_Ô±ZgZ@Tµ. 1€- MâÙÓ$f"-»b0¦Tø[¥Ôƒ +oš„*Z*D!7d¸  @ #b™-#2»$7úƒiÞ­oúQ™ÆF8ýaA°s*­ƒÄ >bÅr]Bƒ!=„0È40¦T¬ÿ.‡M1¨£:òZEõ$°—L…$ª6B0b/a1Å " Ã)‘š`P[&–Hµ“6sZ+ˆVp4U0ª@L1EÒ°c¤Ê°ØQ%diLùu®ù"’ˆã*¡EZŸ CÊdØÇX8‰ +ò;Læ(JW1ˆ±8«„ák†Aød²Ú%~j&¿ÃdŽb­H ¤­¸±š ˆ¼åÊütÖjØÒ=I˜ŒÛ*(…üLŽ¢°_%¤R +Ù{ùÙd@„kp˜ü:Š!ˆ±= ir²½œ½y×ÁzÙäÃfšµ1Ùä^êw<žý4™Þ-úlxÈ.†Õ¶_m7ÿžü\Ö8¹FŽm¤ÉöÓxº¼›ò ÄZÙU8àavÎõjºp¼QáEQŠ GÈ…š¯]Ÿß“Å6[Î÷ÓÕô·~Íç´—1îy:OÝi÷ôüöŠo²®:û,?ÆÕPŒQ× `ƒz·ÓõtÙÃbÓQ¾ç6qCª ï§~»[¯Ä#]ÞoãoÓÅ®—§u^'¤…jÅè,Ï«_ ÷VZ™æQ•ñ8û_Ìà +ràÄRT>®¶ŒvÑÆ‘÷Ÿ›ëUŸ¨Ž¥Kkm„\++nòEäeÌ—Óo³¼ËgÃêAÔCF Š?Ì­v +ÌÞ£¯ªËË“éÂjë“Äk>ÄäuÿÇ|6]ð $˜®u‹<;Grù¾™ËÊBά_NÁsV[«Ñh—¿NW÷‹ùê7qN¼ÞÈ´|„M¡S¥sç¾Ì·ýæq:OW8ãùÌú²9ÿî7œ2,š¿¨Îõ|e—<täî2_í¦Ûù 9Õƒi]Îù»uøÑx^7ô‡ÒäEEW{Ÿ<•å¬.<ñãn¾þjƒ±ÈÛÖ%—MûO=׊‘4bç#Ugü}µþ!K2ŸFŠ;h‚ ÿžøçwÃnKéqóUÂ#·ÖM>¥pø:¥´¦@{‰[‰.>wßôÛ·WÆ| ­š¦ñél.K€9™ÞnYRT¡¢õ*^ÍŇ(˜Ëºö‰bX/îÅXZå‰ä@]Z+„„Žóx(×ÃýnV>N)'âÀ4,­#dßTø϶Ë^»©O&ôRÉóÜÉnå ›é;_  I©|}ø}… +õËüQ‚]•ce¯} rª 䃷ÓÍæ÷a}o}p¤d<üCÚs¿–f_]€Í©ä¬çâ;Ñ­ŒÁè—ýê;UB3ºÕ>xÞ£Ø/àô¬pŽ<̪åT©’Âe²ž>Þƒ=  óY3û|u)ª Áõ1“>/XObject<<>>>>/Annots 118 0 R>>endobj +440 0 obj<>stream +xÍXMS9½ûWè¶Ù“ÑècFGbE‚]Ù ¯ƒwm±MRù÷ûº¥‘D€P•*ì…*ÃÓ›nu·º[=þ:¢Ä¯u%”Óå ,J¬Ä«ZV;|.…4… +`!Fƒ .…yÌep)š&*!9e *S4ÐéLá .ƒØOVE‘9&k™Ãz¼9 ƒmjèÏØ /E%ËBf¬ÑdRU&Õš$Þ ’I*>É›f¬-ɤ(êÕ–®ÐQ-ƒ¤6pR)ò4’9†Z]Ѧ‘eµÆÙ¢êÕzÕöœ,é™Dæj|Ìf˜|¡SK²~Ó†Ü!2 Ò¦“¥„¿‰Ì1Ôª +ÑM¬Wk'‡Ú0HjÔD2ǤV#€I”sÌË*ë†,bDzýžZñ±4²0Â0 .ƒHÎY’¸ bÇŠ£½RUúC¡ä3 Ø‘!ˆsTéM•µlC‚ X0AJJ¤Dæ,ÊÁål†ÁÖœ Q±·¶TvÄ’ hÓ r×È!=„ÒÊFD‚¬T»’ƒÎZ<ˆJ{ŽÎN‰Dæ˜ÔRÓÉØ ƒÕ‡’XŸ®k>Lçp˜ЦŒjùI"Ã6AR*‰ $ÑÓ¦tf›a°è-ù¶9F¯A/¬3Y%«9Q$" QF)„(Dª2ÇQb8E¹„=BheD¤C¥9ö†JW3`ÁQºT‰Ë )¥˜Hoª¤z‰¿0•iÍ1X€E–E•k¼—,êQ¬¢à&öÃxðþ£U)Æ3¤5î#l­Åø†¯&,Oß'/ZÑÍÄ°[mÛÕvóçøHXIRAì "±wçc¢q_UµÃ…‡qÔ-'ó-kd[Õ/_]ÿºtÔóÊ:œ!mÇ㳋“‹s†uM­‚Îõý”÷AU¸:¬×“Õf2݆lÕ?|>Y¶7´ŠÎed¿œß·´ˆæ¢U0ªxã#iG„ ñ1ÉͳÑ![RuŒÚUûõ¡Ý°3ª)¤«‚ÙûÉbÑ®nÙv ÿ{‰76ýõ¦òÞ”¨ºW¼9|ØÞ!wæÓÉ– GÙ8'¸e4ûƒiãwÝ™Íøüþ_þР™åÞ5~>žžÎ.Æ××h†øH Q¢âé׌1>—0{çÆ~~h×?8s0 4}—Ÿu\'¸L åhÈÏQã݃ý©*²ÿ‚S˜²ø÷¥€ÙM=)…ÊÖ†Ïíï_cù\jšbû]}}ápãͦ¿*Äo^•˜Š1÷ï>ã;>åÈ€äÛyè«x½í{’ÝMÖþZÇøGƒãÕÃ’S““܇O³"¸T—¯øóìUs–…©Â´ðtÛ­˜ÆXù¨ž†ë÷Ûîv=¹¿›óüf1’ë¾²6óre¡ë0 `î$E¸¶ÒuFLt™xæóѬ”MsYŒ*òî¯Þg¼ +å}ñ¨ÍWó- àiWïixáàƒÑ°*¶ŒËu·í¦Ý‚ß·½¤÷±l§,‹»å²3Ñ>/XObject<<>>>>>>endobj +442 0 obj<>stream +x}Ž»Â0 E÷|Åa ØiHÃØŠÇÄ€ð 6•Š¨€"ø~\Ú‰Y–,ßã#? ƒ´¹CPu†,!d+ëác®³Óîš1pdÝoPŠYîÖpiÔò©¡ÒM5;‡²À&½ÓõvOýûW[§¹\¾WìÇ«EÆj–zÂ%»‰`žàƒÜ”>’ÑëŠñ`ØŠ9šÒ°7~endstream +endobj +443 0 obj<>/XObject<<>>>>/Annots 161 0 R>>endobj +444 0 obj<>stream +x…WÙRÛH}÷WôÛª ¬Å²ÌÓ˜% U@ìä)U)ÉjÛÊHjÔ‚ð÷9÷¶Üj›,•*Âѹû&ñÿÈcüóÅ4a,VÕhìñÄþxºÅSo"&Ià%¢þÔ÷¦=*ÅbL'Þ̲ax‘ÃÂŽ˜„ôšß {Dšô4š!_‰(òâåÀJLÈ$Ε˜MÔÀ9þ™õ@Š.¦hD3¨ºl#K‡up%‚0FEÖÅ`ãä #ÑéÔ hÂY3 ˜ G\ DŸ ˆs I²¤QœŒ¹'(:*Ä€ÅqD%²$û§ˆ‘ÎHé9r0–3þ‚ˆ»5ó)#C¾Ï ú〲gD¤‹Mà“Ëu0Ø eÙi8K¸:‰< »¤$iÒ(&”92aEƒbÏùcš‘Ð’F#Nå‰i6C¤è@ Ubਪ!&ŠfÙ§á0€ 0@Ì9å2pDœ‡œ©ncÏwMœÑ„KŽˆEÈ€:ÎF÷ÐÝ#R4FÀË= ( lt€H~FÕ¶œa4¤¤1ê'Ü +c”Á`´çü€NGhIÃ,FñXÖ˜S渃ÁlÏù¬ZÒÅdvLÑZ–Í3Š„OŒ!ÀfÉÙž£±rJU ¦3³˜àiHÓ1ݸéãHH¤ÀוïgÀˆHš«wŒ²D½£åÀ~[ U b΂·:`@”+}2i9“½šKEû0 =lÑ"‡`‚n ¤QS´}7¤ÈÍ1CJÈr¤ÂÄTK²Q:ÄT˜˜j`u ’§œa4ŒÐŠäVøðKõCzDV É{N$]@ŸÑ@FæŒÓc¼5 $|q‡ù„=;¦ æC™04q¿8 ˆÆˆ®Y<ÌŸÄÑ ``õ¸) pyºsÁ …—yéÆH‘ÕÂ*™Y ‘ KEæòù1ÝL– +úëÑx0 êb9:û0C×ÄrïˆxšˆeΟx²:™g­nÒ•~·ü9äí¹S yr—¶Z|Úå©–F&êeNŸWµH» –;üs&.¯K’€ÄÇ┇†–Û¢™Rÿ üŸŠ•*K¹Ò,¨µÈÕª«d­[¡·©U±Ùj‘IѵrÝ•b­±“jWJ‘ËgYª]QoD›VY*@é­j¥(j-Ùj™ã×Þ9oœçŠ”'nõ_­¨•ÞÒƒJ5’<"‹_ôÒZËZd¯½Ã>Ù LuzçuZ¶ÈæÈ÷sÚªkÅ.m’5q§uΚ‹û ±k”V¨H^«‹²D+U!e-=±„‹J¡\¡LâÞûÒ!“ÖÖïÈõ +™¡ŠkÕÁêºÕzw~vÆx†§šÍ™'K™¢„­„\ÇÍF'”ø&ËJ6[Iïg=Ý÷.åfR0fªÈ:êKj7ŸÄ¬e“–â±ËÊb%î +$·_Nnï¾¼³Yž˜£»Wªt²‚*«ÁjTv9ü¼zkÊÉCѪ®YaXö‘ VÖæAQT}ZµDqŽœô¥zyyñÖíšËÔûmÏ6»ÒÓßûÁ ²;CF=Í0©ˆýRa&1Õdû`»ösy%×E]ì·àAê‹Û ñ؃ yH+)žd«ÊŽåîU.Ù þ8ÝÛy¸^’æQOçW—sìco™øSì¤U»xXp®ÍWrÞ¬¶…Ʀv ÷Á•¸­u£òŽ·øÈõ}Wj´¤‘iN‹F‰°½#±¥•h«,?o`ëžub¯³*W²-6¼ì§n`´.<´âêúâÓh_q*2ïJ=Èñ±Ó;¬ðâµÖé÷7ÁI£ÿåÃyŸ®õ+‰ùÕÕŸ…î>ßýRˆbùÐÕ\Ê7Ýͳ–ß5)f›7?!p1«TÍeÖm¾ºÊ§ø;ÒöÿRqwÝfƒÃ‰%a×N‘Í  Ï²¡ãv\ÁËmJ/lø?è0is5¢Fjk75Ç>•ÖçUKÕàXxÛ7^>ÏQ¸¬[¿ß©öM Ë..]úýsZ¾1°p% ëîÈí[ÚI€”GÁkÿŽ_xÿy| "®63ø„ÜPÉÎdžÂ1Å8ûô'Žgߧ|äÜ/‡ŸtIáû×_ü×ËÑ¿£›.endstream +endobj +445 0 obj<>/XObject<<>>>>/Annots 213 0 R>>endobj +446 0 obj<>stream +xuXËRÛJÝó³»IUp¬·´t ªìÜl²²ºØ’#ËIøû{N<Ó(IQ…}83ý8ÝÓ#ñý$0sü& M”šj{2ŸÍñ÷ëöýIÎæ&ÍSüÞš fñˆ6f9’X’“LãYaRAžLŠY*dD;‚HF4˜Æ)ÌmM’ÎÂSpkŠb)𸣀Š+7j 6 —gm&Q Èvù`C¤Nr.v‰]…¹5Ÿ%&u¬MežŠHñ T<¤Ùx–)Rcš-hÖme(Iê²@âI„x9ŒzNÁ­É·û$Ò$Ÿ‹èiŽ È)ÈHŸ“"]’fVº€AY$Ñ(Ì4ØŠUl–CvÏZÃIle·†)ÃGÖò¬Â03¸Ä³ +oMˆ| ¦c­Ûx.%+¦#€^„Ù$¤JŽÔlžÌÅZ}ÃLj–&ÌTÍZ—A,Ú¢‚qé!3 XPGJ ÙµQA¸OAôËê9=âöÙmæ<½~Ÿ‚ˆnn£$ç'3À‡ OtœÅ¢)„IF๔B#˜ùÅÈ)‡8"¹"­Ã˜Ý¸5¹làF‰(“q0Å<rvÁ!a,@z(IDŠ³þÐ-hèUìÀ} +Ú@‘…#ecT$6C~X =„CÎ:ÏÙ} B¼ÄDÄ¡‡pˆNŠɶˆR¦‚¶ hpŸ‚[“¦hCÏ)ˆX¨«ç¤?Î@OŠ?Lf™ã@h’#„Ø,²çD9=gsíí!Ý ÜYº#Q.Šy2°—[Y’ìc4·c]Œ€œ‚ˆfNed!9™=¤'åô†E€lŒZࢠ3;ÿÜ(™±È“é8Æ©PI ”“Šâ³ƒ-£•…äD¨húTmÔ,Z$ѬÂ` 6žrJÕÃhœósvœEô(L·1ÝÊZ‰W¶b&KƒÌäÉÀÎÛ¼ B@SVñ䈊€œ‚ðˆGŠÔ,Îw Y…ÁÆÉÖ¬<¹xVªävVèÄ$ˆ1il gš…£#›±Õ^…y+…¨g­[ôÏ4z É +%<„Y(Q(Rc†”1`·ÕšÅÌ—Þ;¼Ù‘ ðHƒh©1ÍrÞ+VafÊqáYë4¶·ÍE€w:rö‘2p¤Æ4›QNÏ* p¨Xë…ÒJ’©ïtäFÁ©±fkÍö²¹ðfG.À'zБv#΂/¨¿qä‚0åFGjŒx0DcÅŠY WOùŒµá(i‘7œãdáz㥇ْðæËít›pd O)Hƒ!êä¶)/©â<äàqû$3<8¹úÉw—ÙÈð*Äc?—‘RÎðÈ«81(Ïp㉒ïÎàÈx¦À#g¡ô™ñ¬9N â¹ËUT¾;ƒ#ÃË7—Ù„AµCùk*Öâ®; fGÉö³JTA‰àWõðæâzišÖ”æsÛü2_º~³žZ¹h‡¾[ªc|ºüŸ÷uߢ Ój¼ƒ|æúg‹:=4»IV7å~ÿ³ë×ÓM—]õù$N%ØyÝ>™¨àtýª/wë®ëÍç‹ó)wÓõƒiÛ»ß;å¦ï†®ê6~»Û ¦Ã“¸ÔzÂtÅJî¥÷Oû¡ÞÔ~3õsµ2çݶ„„·7gÿ«íLµÓܲ;ôÕoIõõºÄг +_uè'ƒ3Ë¡G1½Ýª-Êš‰Øo!BÝKsY£JÙç–ž¹û¸D>¦ûÓ-Ú=Ž¹B¡×æ¦ÙIOkÇv5™©>êr]÷“˜Ve³™ü‰ÞÞ4ÈîµýXTRíÕêr¹ø[4jW]ïêÖÜt›¦’ÚNØO‡º2í}§Ö趦‰£p5\PÿõXèi†Îݲ®úz˜äEölÓíE²I—]÷xØ™åÅùrš+·4U·•ÓŠ_½]]^¿¿¾2ý®ú›&z= ÞÖßõ~0ghäºýö§˜‡á¡Æ<ªÊ¡6á’YÖ=›âx†Íò)/ÿ7;Ð^¿Ãç\0^ÛÒ·q.—V½Y˜óúG½év8¨æý¡YÛÉ qåi6/xÏ,îö§7#Šñb–ç1þO "â_Þ®N>ü½°endstream +endobj +447 0 obj<>/XObject<<>>>>/Annots 228 0 R>>endobj +448 0 obj<>stream +xe•Ms¢@†ïüŠ>f’`8M,«Œù€Ê^rauˆì +ã"f+ÿ~»£UàË3ýötÏ þõ$üJЄ1ljOøŸ —ç…§_@œÄx­!~x{ÈLû¥máq>#(F—ÏÍ7ÿìù%{™AÞͱØt°.j³…Çê`.ýצƒlW`Q·Í©¾HÀд礪Ž[6¥ý–jÖ~:ûÖ‡]µcµ5`KXç0·uQ50=u;ÓtÕ¦è*Ë3uË››²j*"Ç‹Ü­íìÆî/Ïl]£þÒÒl9?BÑláP›æ§Ùï'û¯wáéP Έ^ß%çÅ•xÂã4ÉG×»~3…¹y7{{0í',š‚&R'>/XObject<<>>>>>>endobj +450 0 obj<>stream +x•W[SÛ8~çWœ7Úâ\èPØÉ i¦i÷A±åDÅ–\I&ÍþúýŽ|Áx»ÝÝá’‹tnßùÎ'ùûÁ˜FøÓÙ„ŽO)ÎF>žM¢ Mggx?ÁŸ•”\­†·ç4Ñ*…ÉéÙŒV aûßÄoÞËTiå•ÑdRº—þjþ°¤…5ÞÄ&#¡º¹|»úv0¢Ád +ã7¥3Yl~7‰t¼È1ÆgUŒÁñy`ãýÍŠÝUëSëõÉYtÖëp¶ÔŽÌ³´ä·ÈÙd™Ù)½!o….Œõî‚V׋á|ñ.dxó8‰ÍŸ‡ËÅ爖"_ 2:ÛSé¤kË`—uæãã*¥ÊOD·ÆR"½P"ë·Zj—Ò9†e)í³Šeûý{áÅÆŠ¼Y8ª@ªJéEcèÜ9)ɦñx4Gþ‡Õç Žj«Éiðå.pÊ‘ +vmèa%MsT^d2—Ú‹Ð ¿pÍؽ ÔÉ:ò†Ö™hO¦ô½<[ìwÊÊC’ùZ&‰Lh§üViº»»¦ÜE!™:;m‡}h¾|âÕ6ܧOJ'Ì–ó“£ëN!?èA¶á!·¨©‘Ë©= ;^ab™Š2ó-3]¹º-ú‹ßµŒ&”ö¶vÇhÊ…y®u’㡶ƒØèTmJ[‘ÎæýÑDëΫ˜(ŠLÅa¿£¯o\o9cÇjñõ-ôtãT” MÁó¶Ê ž­#Zþ~@ÀHÆ ° +Ó㶯v IôÒôAcP#Zq™y‰ÒâL¨±6/5’£¥ßû\8îŠ3Á²"(Z"& w©E —8–B­eÌŠÐ*[ˆCnÂVd)*­u¯›s•(:»Þ‡Îv,¿¾e{qÓ&Å5ê‘H…ÛÚ1 èñwq¦X€x‚CÊÏcùOd¬Wä@Ä5>¡ø‹Øc„¨ÈJ–ÈC¿/ ZíÃWñ ÔR™°,Í^Ÿ#¦âÏ$’ÄÛ^MÜiÁç …QÖ%´°³`X1Ã{Ñtg v<Ýb™´5H8ÌSE³D1Û¸øºý°%ÆGR»­6Ð… Ä9ò©ÿÊ}}Š5Q˜i/N¹¢^¹U}íÄög¨ê@à047Ðì%Öä­T³Ù)ÂUQ˜g½s­¨œ¡59ÐéåáJåƒöß|Œ`ê\¹F”w(øÎÄ"£K+#†s* ‰|õõ¯©Ä½’8ÓõãýüÃã ÁËo=ðýÁè×ÍdªVÃ+‹ngzEtqé'²BPøÆÒ§'¨,æóåÊuϲ’Õ7« º²F$1Ž…0= Hƒx3o‚ïþ•+Ü®>>\¾¿¾\®‚r†ÃÛŸ\¾®Ã,bºÚ +C{ªv2B•&UôíÒ : +¥ti™¯†µ-€©êߺÖM-………ªÖ2êP4µ1´‘¾Éº’ŽnÃÉŽyqÅþœú"ÊUl3© +ÃÄn†‰Ä´šÂ¯ç·Ë!Ûó(𕠔˜7ê>|¥ìÁ?Å*uSÞ +¡gº±2s{{¿»¼g +} xN°'ɇ©%‹{«¤QÁáÚA…ˆŸ¤Çª5y}» ‚ãh||v„³âøøüïDRЂ­Ù¡:–6)áÖ^"š§á<ߊg0Ž €I/™þô°w†¥`gƒzõ +òÈÎO¨6×È´ê5yÓDŠŒ1âc§L܉ÒTÅ}éæÔÜ&h€ª“[_¾úô®%áEÕ"ƒ${ÚB|¥Ä5¬€Ndû?1åÁÖ,(¸)7[P–aßv2:¹ÒèðÜÀYФáí¬ó¤2«žTþãcýìÑh:E³Ù_x$:áúnVþ@xãendstream +endobj +451 0 obj<>/XObject<<>>>>>>endobj +452 0 obj<>stream +x…VkOãFýί¸ýHÁy&a[­´´HÝìV‰„*Q¡ÉxŒ§Øwfœlþ}ϱC0HÕŠ°Ážû8çÜsçß“1ðoLó ]ÎH–'£dD³ù,™Ðt1Çÿ'ø±Š²ð`2ú_{nÖ'û)Ç´Îk¶˜Ó:%Äh-ÏÜNø\92m¬©Γ·"Ë´üáïä|ýŽ_ѧøøÅå4™"ÀÙòf¹¢¥ò7÷_Wñ¥×“y2ã—l&Ç£Ñ8ñß=¥ÊI«7Ê H”¦zFƒÌ–|®ñm€ßŠtYªT•^›ŠD•RãŠÃ!:mÓÑR”ŠVÊnµT§¡D6¾(\Øzx½Â‰LYG§ºJÍÎÑ}å•­”{–v¹–9iGYS{jëNHT¢Eå´i<åÂá'%oÈ‹Å ¥tµ’x‘¡ìö9Ie½ÐU‡U(Úþ`lÊ]*‰´ç‘>¡Ç³ÌXR߃0à'©…£èô²Zõ¬˜ +)AßÏcù)¨Ïm>Qœ3ÕŒp¥Ø»„î!´¤Ñp·J¤`UÀ_¿hi3™§‡ûe ÷¨[ ü®Šš2] ).›D½h¹pç)“YTËA#‘à‘c’‹Qdã!ÀR LíŒ}é„2tì3(Ø™¢áÖÑLäç=B +MKÈ,£Õq 7ø*u8«”\³AVbž^±€  r8W¨NšäÈÑÞ4–þ¸^‚Ô;×ËË GÅÖè€.gnQXß~Þ;ª£òéûÀ=äªâ,Pß‘Þ`ĺüƒø@³bÐçïo]Hƒ‰\À1úx€ÜöµuŒ5ä²4qr,+Œ‰Ï †2ê2†‡¡Æ(Kˆ-=—Svœ¸-°‡ÙV;ŠZ÷ê|’¢zŠ8¶y íZ Š4EBô£YO‹@‰gkÀù>È)ÙXí÷½¬Ð¾3Uà’JýœóŒ`P"lNó°Ö÷,ŸwjJžkÆÔš¢`›þ£—Á¿ ÆÇ£¾Q˜£Xr/k[x´&Øå¦)RªŒ'¨ìÂC€:UT*J!è®—ÇóGÙ- |µ¾õ†Ã^vqDTºÇPiÉHõ¸æjk¶­‰Î³Æ±?sÖÂq1e‚m±gãÆ&ÈVŽ;Œ”úßXøq´o2G˯k½ú‚V¢Ñ Hm1:82°ð}ƒûäƒF hMÔpo¬1¡ë^ΧJ©Ô=}œ´õ¥’‚GõƒzÛ!ŒÊ3WȨ{z-!¬µ¸@ažÞ¶ +A“,„.£OÃP¢[LyáÁ®_[Ô®‘hÚÅ=N¢å°SQ*J÷-è`r=“Kèk¥x°Èáv©°}aº¿úxÎ +zaá ù¾<¢ã<–„&Â* cbMƒMvÒNØ48þLFpYʬ)©õ`žXGãËù‹Pâøòª›ƒîZñF4¸V†Å€r³C›[: öœâbÀ“ÂÅR!ì³j×{6¯‚`¡Bl™°Ûðv¸e(ÏãŽ{XY«´7›ýHGF×Ç‘úvù>:줵DG,u¥K -ótTŠUä‘=àÒËÚ^ÿ::톡ìŒ`­VdqåþvwZùd†ÿßš ·«&DçûE{ÙÏÉìꊦWíÕtuýåæš~‰óÁ"ý­«ò¡‹îÝ‹ùèê£ëõt1J‹)nà¸âÎøȯë“?Oþ¬j÷>endstream +endobj +453 0 obj<>/XObject<<>>>>>>endobj +454 0 obj<>stream +xuW]oÛ8|ϯطK€Äuçë^ŠöpòТ‡ø—-Q/é’”߯¿R²§‡"…e‘ÜÝ™ÙYúçÉ¥LñïRngru#E{2Le~?¹“ùÝ->ÏðçµTéÅÕôú×/®ï¹íí†Ï‹“_îe6•E…7·w²(çOñMqú¨Ú¥’O¾¨MÔEì¼>[ü“v\ÞæWóÉ {Nlô®ìŠhœÍ‹æry9,šÝNn¸hQ› ¥+ºVÛ(+³ÑA”¬´Õ^5â6ÚoŒîÅUR»^rôÞù— ÆFí­jšíDµÞ-´j¥VA¢7º”è¤pmÊq*—W9³n-½‰5µ®Ôôµ)jA"ç,uˆ²v!˜e£¹{í]k_Ä^k+ºÑ+e }ŽU>ª¥iLÜžKÐEçñI”EÜú8fálˆ^!k¤Þâ|d·Ü¦ˆ(r+­a+_?§ý<|yŽ®pÍ„è!ýÙÍdž€¢šàR‰ÈÙaGèµ—€J‰«¨¼þÙÒù„ÄÂS AB‡bUø§B=ûcÀaªDë;k]‰³ò·5¯Ô¯ÛeݨX9ß~”§Z!¡¥ëbŠì~L6f6MþÈ``"*O/'Âg<î(ùîˆrĉE´]Á‘תd|ce£¼q]µòÀK’Þ<{ðS½‹ŒjµÑ CkT‰^ÃŽÊ$6í‰;û]Öv  +”Õ† +ònÙ…¸ƒí(:+Ëp¡ 5M$ÉJÊ,u¡:Ø‹‰#;óAk—Ž/`PÐÇ‹ÖköBÓJ}bB¤k2›lEÍ1Ū@_¹º°Û:¤<öm˜Èóà¾^õKU¼dSž KDì=ËIÏgCi£‘ÖÆÙxe·c[ÆÁvÒL¢…œ»;µ W/,'iàPWL=´×Ù¨Yr +ó‡þσFÿoin¡qðÃóLO(T£`åÃãTB-­~C"kªpp®¢?Æ“Dý‰hŠîe1‰;›ô•šÿ70mV0DðUn„ˆÏ©Qö.‚Þ=d±s>ÂÃò韤ÂtD Àv€~ÇsfU˜]Hx'À„5Xyoþ R«ÎPŽM°WÈ;9m¡5U²]çÔ!ëxë:´.Ê*Èvž`%Ù5qÇÞ4’¶É‚ˆD G"a­ S™ÂÄ(õyz¡a¶{‹Y5n©šç³çÉ8ÒFÊ(O„%Ãá%Eý|ªáš$p–aÓèy°~³++'ò„Sð©¶Õ%í‘ Ô˜C·[6þ0ñŽJê œ£—àÁh„«l (2°¾-b6M^gIÐeã +¶ÉD¾9{1> ¦»Ù¨åiÉ£òfnÊ>s”ÙUeR7Ð_ýK¯| dè"lBâBŸÈ£œ ¥Èœ.˜µnÁ$pØQ¼^%[ÈC«VL „„šiÝ)ž|ÃU§‚¿ 0"’fO:T…xNTzƒˆpfÁ Ž¹½8j‡9%¶k ïЈ´ãåê>_@‡QλÈõ ×d\O¨hÿ[äí'ßÒp0Ðl;ƒeeÿÅÐ!ƨ©Õ¸Œ¥TÓTL·¤pßäŒ2å‡ÈâôhŽð鸆k ”‡ƒÙŠé‰ðIP"Kß2vÀ|÷F×pç¡cÊRêPx³Ž@cZ—”)î°nà\¤¯’„nMËYi5€´]»Ä¡®:â{P»Įß'6† Æ´Ôƒä>Š™žÆ)“z€öõ+Lª’ªÀåöùjMJJ>/XObject<<>>>>>>endobj +456 0 obj<>stream +xmWÛnÛF}÷W ò°XÉql¹/…’ôâ"MRXAú` X’#i#r—Ù]ZÑß÷Ì,©DD¶Éݹœ9sfôílAsü[Ðí½º¡ª=›sºž¿–Ïå->¯ð?0môÅby]ÜL_¼YŸýôÛ-ni½­›å‚Ö5ÁÎ|Nëê|½ ljë¶äÚ²¾XÅékZàœž]ÝÂâºÆ1éàû¦¦’ÉÖlšK*ûD[N‘bïöT©ó!™Ò66Õ·ÞnÙ¥Xˆ]±vS\‹µ•«(Ë5%O‡`“¡Ä1QÒˆ"5¶ &iãƒÆ†&QqÅ»æHÆE;{K•w1…¾Bç}”L"§¯m‡šü.^Wâ·ñn‹7}v°›zgÃVô-ÓÇŽTó†á&I¾È( ¢`«$f‡ÛpešF™‰Äˆ{œA)âïüÃóèN1U}e¼‹dôqL¦Ú#Óu0ã¢ZÝÿCµWã6JÐZ…Öìñ`…g2ä ÆòÛÄ»m;£-.èÁK +±ïä.!Zò}8…Õ5&šåæ¡â;óûÈÚלKQú´£ƒÅ@Ö_|Ÿ&.‡€.õˆ„pš†ŒmÉoNhØ–¬ôˆ:©áGÎ'Ò0¶Æ:0À¸#J䶳‰`ÃLÜ·8ƒZËŒÌà·"mLLŠ!)%L41F¢õî’`¸BÑžßÓÀ”ø’N4 Æ1q.×Ls0GˆQC‡UÂ)%D~-§¯/†ëc¼ÝAelØq…¡Vh7ÇÖíVˆƒür[šL5ÕØ?’Ò:“Á&pœºà«ÌÔÇs³˪¿b¹V¹0aÛëZ‚æzºwñeÄæ2q\£qßq­ó`‹6ë'ð½²G™¦úB2 ÆU(kžŒ´Öf>ÔÐ…Íà#Côu˜@þTD˜aÑA7Pµl|µD6öuÍÒ^Z?Äw"Æ|Ãágj#Fuß–€_zmôÍ–¸IšjKÀµUÖ<(H‹9Äõà¸*1eèuÐíÊ™@¨•Cÿ~X¿Œ´çàË¡Mhß³{¼Ùp5Ý´ +:£³–ÁÔ‰)C“O7HÌÑŸŒýRv´LeY`3õò4ÈÊcòó]&‚!%•Ô‚îå‰!g+í&P/ñ|E3'@!{gtªÞédDŸÉ.“wsˆyY“|CµÅ;plÐ^°†™^d–Ïþͽ)çà$x*vÝ$€àz30Û¨s'K†®Uøá 1<“ô”¦Ce¢cŠ"3ÙßU9²\À%"ܤ$ómVÔ}âX„Zžc{ÂÁ2øƒnÛRè/÷ÆrÐÓåð%bq»,nîîè5aý*ñ°úëÍ +²šÛ +ôü½G<âk6žÝÎïò·a…HÒøåäz9/–Ëk|5Á:¿”K¿®Ïþ>ûD¤iªendstream +endobj +457 0 obj<>/XObject<<>>>>>>endobj +458 0 obj<>stream +xVkoâFýž_q¿A$p0oP¶Ò>È)›UµÞªRˆ¢±=€[{Æõ !lÕÿÞsÇ6¯Ujˆ ž¹Ï3çÞ;^ùÔÁǧQ—zCŠ²«Ž7ÓáQ¬ðÒ¡A§ã¨?á·ß>’–îÖÕÎ`èMÊïÁôþC7wêv(XÂãp4¦ vûX‰šÁZ’Y(èÓìÃ÷ÏdvÆÊì:øýŠµüQ©Õîõ½.ôšrK_76ßXú¶SV¼–’}òýJ²;ò†,é ;ÒKËp³Z%jE©^Ñ2I%%Aç…4RY“0ÓÒZ‡&lÌ÷ú½.µ»oŒo˜$úÉYaå[š¾{GU+™YÝÒ݂߬_FP‹»M'^ª¯ãâ–‹…jTÚV¾ÚÛ ÊNØ)7̨̿ÑjÐýì×Ù=5žt7¿ÇÒ´Awß>ó¯O0Þ„Èü‹ëÆËÎëIi¢×¥4Ê]Î:˜ý” ”xÕè·kÄF9>–Ì‚Œ-{E´…ˆ¬, É×(ÝļnA%·ìã àÕ‘½>ã_& s,]Ò%•/2e«¼”IcÄJÒ¢)%8Ó•,ðíö +¡°Óñ<¿³¸>7ì`uaÚF¬ÈòssåZ‰LÖ>‘–…Îh»N¢µóåH²f+ ­¤’…Éþe¶:3‰SXnTd­èÿ›tç^™sxªMˆ +¤28äˆ2ïáUØC|.ˆ +ÇóX?“D"Mw-ä +%§‰wd*”A®|ÐMÚÝêÀÞ_¨ºLÄ’69‡t‚•q.Û¨eô†¸é{Ä ÀkÛï•õ?ÀøD‡‘;²'h-a½ ¡bbŠ{×j²Fæà×»ƒ˜Ag1 +w$Ø[\{«¹ª^ï«S=rJ´CÛÄ–tØsÊÅTÿ&o¥ŠRm8¢FþÖ¸ð«:¨Ý3瘃­=]ZÎôñiã|„¬ ã„Š´Ôiª·%>µI yæ …š%ÊÆQ¤S­J'„uEÁ´;‘gà ¢­¥ÁnS¤Ñº«Âä Ï\–„õè“Ì¥ría“£$ØV¤³Ù-÷¶¯ç<; +Ñc¸¥,š‰erìk6Îœ=?×}óùDŠ +ÍôæR†®Ò–6*yA³bâS’å©+·(FKIlÕM˜´ƒ®ÇíÙ;Ðc¸ŸEõ8²ÁôgÈB“.(Ó®Œ‡i‘d¢Ÿb)ê¹ç£«’~é sêPx?ËB6ÀuF%_ÑÎ0í´›ÿ9âˆýÉd|ÓÁüît0˜v-òŸHeaìEÓEs8˜,®kqg(‡#áïAÚ0Ñô4²pÄàqGó½‰çOÚ˜·"Í×<DqÔý;u¾+’ÕÚÒ{úA‘Ä+‰fƒàúm>/XObject<<>>>>>>endobj +460 0 obj<>stream +x¥V]sÛ6|÷¯¸ñLÇrÆ¢I}’ûOìÔ“¸N•æ¡êH‚#’`HÀŠþ}÷ÀIvÕ:­mÉîÝíí-ñõÌ#¿#ûåg®ã’?›;šÌ|áUIJ°0›Ñþ­Zá‹KÓÉØñÚ­ÞØ º½.®Íùß®Œ'¾ãwðgº¿ÇóÝÍѦ£l¿p»àtQ@ÿ†¬®ïçä´HP—ïO-b»Ã¥E4X¬%½»»ýô~9X^Ò£ˆ*u¹ørv}?!ÏknŽ¤·ˆŸjI*!}tKηPZ“)¢µ(V2vµØÈšôVQ)*‘K-«Ú!š¤U­ù>†Ëe]‹•¤L>ÉìŠ/q. AáˆC×2REÜmU¼ãL%ˆªSUP$²Œ´j’“¡Yy¶ nÝiñF> ¼ÅZè‹šš˜:-VÏ×’•Äº(H~y™IÚ®ÓhM¹ØÑZf%B‡©vè!¡2´U&‹i[¥Ú&~}ïÒœÉóœÉxDÃXÇÄ-«´ÐÉr@ç‹5jÇŸ ê®~g¹,ίè<æÎiyùãq/†^`q‡Šk b˜Deti4“Pë_,Å÷å×JÜ+zu’ÿ=OÎÚÖ +5dÒ¡·èa+°BU¹È¨ã ÚLøŠÖhÉ:%tµUÕæyç~VZ‚m–ª'Ù·‘CÚ";ÎÍq'jiÉszläˆæèvÙ%‘mÅ®nêbvê¼uÊÜ]QÚÌÇ‘ <$§UªH~5¨­Uë*S!¾=‰Ì´©}¼ûýîcÛ½>ßç¡…–¹,ì••Š€Ñ{!ó^-¯Çl4º %Õ +³¹fn³t#oÙ1áço>Ÿ]»Áõné߸îÍÔ»"÷Ϧ“ÑM7xË7š-/»ìá—<Œ@°n´¤Ù"öôRôw“Ø üÞ¼¢J‚ž¨Bn1¥"–½1SÿæpB@Wl"S¸³—ËJ>¥ÊÀZé1»´[ŠÓ˜ +¥‰'n›ê5B]`d/ú¥Ÿ½cMsëKÁ­A¤J™ßs äÐ$ ²lÌ{“ÌÔkl†V»gÑušË¦¸,-$#Ë"R¦€§²éŠ8v‹ˆU›i^êàeq`ÊXãJel5fÙJ ¶,Ô)ÜîydQ–(ù¥¼Ç Ùq3ýúbàë‚>d&^a¦4mH`ø‚ÊLDÈQFÂàaÒóLkl %²ÄeP¥/准N1\p݉»›ºÎ£›œ% +6y§è,»•ü&E»ìgÖ÷ÃENZd¸¸" ƒÑ¯{›gãŠpnŒD‘•Ô¦*/[uç‚üÐ:PyÊfÏ»íãèÄ ´øÖtÏ•‘ç'ñdV÷Ïƃ0ÔqÙ`Ü l; rÏ>töñþið>Có`Ìê¬q+·FHXâ6/¼É™à¾ðž*ê¬1žL©5 ¦õ+ñz×Mýd¿h_7ft~Oœ“î†Jÿ´ï(á_ò³=¬¤uq¡)7pKŒU{ì²OÑÎ%6vHáÙßø”Æv o 3™·fí!Ð fŽ?Ÿã ì:ã‘=Aýööñö-½ã›*qª£÷&mÁÃn÷0pq +âÃÖá¨÷gÌI0qghÞã¹ÌÕÝâì׳¿ä¼P›endstream +endobj +461 0 obj<>/XObject<<>>>>>>endobj +462 0 obj<>stream +x•WýkãFý=Åppà€­èß)$Mî8ÈÑ–º¥.a%­d5Ò®o%åƒÒÿ½oV’-çÜØM°bI»ofgÞ›™|;óÈůG3Ÿ‚)EÅ™ë¸4/œ1ç3|÷ñ1’¼˜Ïiw1)n\šLæά[:v&ÝZ—ƳÀñÚ7ã)¾¶(. :Ý¥EOyëIƒ©ëø4ñg0ëïôg;=ƒä'hágóž“\ñ[¯·G¿^ž]|\7£e‚hM§gNË؞åe4X®%ÝÜ^ÿöéêæf5XÓ}¾ü ûÆäy;œžbßà³"ÇY•iE•¦ +»ò:Nå •:¯ûÏC£¤¢e¢M!* +ë$A8,‹Mõb½¤òEUâ™tbãqÀK,gŒR’R5þ•M{<§ÉƒK NƒçŒŸF>Rˆ¿ˆáÇZ[ ÈÒjðn¹†©ÖZ’™²²áwV+õŽÛÕùÈa¦ÿJ)#ðq¦o Zgf÷¦o`GQçôÌ:§6:®#Y?ÚÞb1¿pgd>½tÝˉ7$÷OJ²\:ÑeR«ˆ ·L<ÀÞÉ$:QØ_Û?öÑŽ@4§ê×>˜t§©›”Ý}½;An?A;-QZ •`uµÞÍ‚4Zxê¨Õr ç´o$½¦²‚D ¼Ð*uèG­Ê r^f3ÒS›|Å&ó.Ha|_G(¥wŽÿ± ¶nC“·Þç:ù}!ÊJšû¨€ +/©zÙHzÿÌ2#Å2y_JLY‡ +.ã†_ì;àï¦Ì¶VZ|œÃ¢ µ €fTÓuµfÙ[˜ÆpR51å¶x¢ý ±ñqÞ¸Þ$p¦‹ÆcŒÐ¾ÍůW_®¯è†¥ªÑ’>Õh”M1ˆóêÑÌÅ\fÓ¶WÒw#ôsýlŠÿ=lØ=Þ}»<ûåì_^¿¨“endstream +endobj +463 0 obj<>/XObject<<>>>>>>endobj +464 0 obj<>stream +x…U]OÛ@|ϯØÇ 7NBAŠD+UuÛ—Hèì;'G»Ôw&Í¿ïìÇUˆ|Øç™Ý™ÙÍŸAJcü¥”Mh:§r;'c:˦x-2¼Nðß(ªÂÙøt}NiFy’ù"¥\ÆcÊËáWµ§ëÖ”^[ãNò‡xx¦ ˜Ë¡,Ö^ýõ«áê$ž™Q +M€,‡ùF;ª: Ú5ÚxGR횶Ê9±VÄä-ùêîTºV´ +#igÓE}àîàj»^Уáte›­ðT´U¥š„òâ*ÀN“ ³?·N9ô(- +€‹fÝn•ñTkçé¡ÅK­«X`ÅýmhÉu¦ü-€“6»Ö +}(‰ (KtPë´Ysa½*]ˆ¸ÇšN‰ûÃiC;áЀ;ºÝ¥M趢ƒmA hyuùãæîç]¨‘/îu]£ [ ±C9Щ ++d«ðù(|¬÷…‡I4©x2:Mð1½‘Íÿ|†2lâ±C|;ûFû þk×7JH6ísx‡9ȱ±ž;) Èñ˵³½6ñbÄd:vø*l#«íΠ:•ŠAltÞ5Eìèe[" rµ~'ô]1º¢Òn93¶÷ +xjÚZ4£Meƒ < ó(ãmHópÚ8Õ\´5#ÁÏl¨*HݨÒׄ <Œ H*1!£Š‹å2dõCßMW<ýþàB9AÎ ¯ËgWµ‰cš”¡&çÑm4> +šu`ÑÞ ž‡Æx]“ö=E•)mk¼j¸£öµ6*¡_<-ŒÚ]¡r#Qâ›\á yYÃJà‹?ÏO½Y0]¾zÄÏ3ÿÔñÓ¤°hY!a½Á(»w˜N&2 5ì—È +”³h–=†j­áAT¢Ü ¦¿,z3ÊòE~Ü“2®jw˜ä/•9±$õ–é~£AVÖJ”¹ëi¯ñˆ„U±è6yš-’ùù9MgYÜùß/¾\^`5>ªÚîØŸ›VËÐÅèxv”Ïyk¼ù™e³$›/ðó€»é„™®òÁ·Á?‹0µendstream +endobj +465 0 obj<>/XObject<<>>>>/Annots 233 0 R>>endobj +466 0 obj<>stream +x}WÛrã6}÷WteV³eS–íø2o3^;ë‡Ä³–6•Ýr• "A1pPåë÷4@èÂI¥¦Æ%^€î>}ÎiðëÉŒÎñoF7tyMe{r^œãÎîÏËO|‡®®¯ð·¥‹ËÛâr¸Ò4OÏ.oŠk<›ÝÍøÍxÅÏ>/N¦wtqN‹1®oniQÅ­q§œÜÛJ™ÍûÕJú ¬ñ¿cÅÍfiÅÙÅmq5“¹¥­íi#L `IT•¶’ü{.Ú¥ ¢(xñ9]\W¼äÙH²5…FR%z8TþÝS-J¾Ô9»r¢m¥#‚l»ô’¥SA¦µuCå©7•t>ÇÖCÌÙeJs-œ²½ç•¡´f-•QïeEË-ò±^Rk} Qµ–¤LLÉü.ËPТ‘xãpíFº´DoG{éi9Q#u‡(ªÅ^ØX*dèÒæÖ±TZ…í)¡€ô“Pâxå±C¹Íp1²œ +®lÙ·(6JëQì2îÁî5AµÜä}Z‹´‘ ÇÆ(ãºK9@"ÐPŽT‹~%(RK…þn+Hò[üP?*aV’¼V«&hT¶f â4%Ñ~må솄G;8SOZ +g°ƒXÚ>]ú²wãÇrü"x „ˆ=f‹4'w?ƒâ‰³Ÿ>Bd‘ÖÏŒzÛ»RN• Ò¡}÷Ó‹™ÿÎõx-ø¹v´‹peÊ–ùþÙFL½@8Šs´µÛ˜ùX:` i ž9'µ`P¿öI£ÜÜ~¶:Âp·ÔAqcfbliH ÛÆ‚ñIe =2qÒGÅðÁ÷KVÂ) ,eï+Ïž¨ 6Z#Ýš{Í7%w™{ÎÔâF‹¥'/eË–:—µt¯Ck‰\ ý\xÆô©Ž6ÃlŠ}AÉi„„½:UŽË?¥€žÛ:œ}í-¿œ‹ö„]>¼ÍžÔ„Ð}œNõ7Wheúo…±™ÿ”2½2g€ÿ|‹ÍfSÔ¾.¬[MQ^7®$\åß‚-‹&´Y®9ög0=@ Ùq 3*ì_hUÕGgå¢[a¶T©ø± €GƒczÚ465*N-{”ŸÍA­Övݘz k&âíÛëŠ-›²—¥• ϽËô¨`¿Q ¯dàÉÄMÙ.£ë‰0†ÿËÞYí<T+ÀÝ£œ˜$CuoàUÖÀ5<¯0Ývïx¿íÄÎE7ðYBš˜+Á2k“œ~—T‡å¨ôþéq>ÿü™ÝQ#cvdžLñ_Ûà™môÇJ…Erã}—½Ò`q+EωFüFq‡Z•Bë(=Òjé¸î\_Úš „H•YÛ÷Dû\Ê•›QÐ'˜{&ñŒI3WF±¿ö¸²ÛÆñSƒ¯îŠµ|ûIÐz-p;ø×»8<ÔÖVa&V½ìÙ;ãÄõé„»«ûê¯rXI œð¦­YF :\î ;ˆ‘»p.9*ôÇïƒà¤¤U©ø`sˆî0à…V5Ôm¥®¥NxÏF CÌNÁ¶ÏtŽÏaÊt|R2ØêuÂüÞÀ¤büƒ©Á¼‚.1(†¥€¼$ý­’µŠÇ®Ø&Y’ðz_@+qJäì­Å›†ç²IcGá8Âɯ çoñ)ÀÝX{°\frCÙ~ýôvÿü忯ô2R‡Ó?È>Ílgȧ»Àq˜€)}ɧY¸tÛ#”¦ Ž[ÀõÁO›Ø0TðÉÂÌ~ú•T= +Ê_;QÑLŽ\ûÍŽË;|vA?pƒ§Ih:Åro5DÎý€èN›pYÈu|l܃5r»u¬Ë)SêÇuƒ˜À·VFÒÜ?ÏÒÓáj˜ö¸6~ S + iGPX¶p´oˆä‹fWVœÛéã%rîÀºîö¹gä’§äÇÃÙ{×h¢à]IÃg{ôn?´â’6Ø Š¿‹fo£Ä¿Ëîºøqo­ç)Áéãíð]p6»Ã󳫋ÔÔt_Ý\7×·É7g—ñaqòï“ÿT.Fendstream +endobj +467 0 obj<>/XObject<<>>>>>>endobj +468 0 obj<>stream +xmWasÚ8ýž_±ßš¦à%Ü7BÒN皶7¡s_2“¶À:dÉ'Éî×ß[‡a:™&FÖî¾}ïíòïÅø7¤éˆ>O(-.É€FãA2¡ñí”Ç“´º¸_\\ÓpH‹ŸÜNi‘δH/+/IšL C^¬$"uÖÓ.—†*SŠt£ÌšžŸî=½\z)i¹ÒºLº$'a2R&Hg„öIfÓ—ˆ*¼5±áã⟋õ‡Ÿ“b^Ê­t{k$!¦§oxOó‰þp’ÜPsh8LˆŸÆ‡ýÑ$ó«?lôÛ¨Ôf’TQj•Š ¬ñdW”æÂy(G:š³­=I,¡gd_VZ¿^ÅÄËÊçõ¯'y¦Ö ÓðêƒãÛV•Ic¬¤­sGÍüThõ_üåL)£s¥'kô¾½óK»•Ç+Ѫìu i[¸=KbkUd9ce®m¨N™rëÚ*(ä" V¨œ¡L^«) æS­Q¦|÷úËǘI§•M“ç M*˜C>ˆ¥Ò*ì©tv©eáÙ7©ÇÝšÞ>_ª©-÷N­óÀÌQ)Òñ©s2 =ÊjØÊd¥…SÙZ~ðdP Wy Ë%e*cˆc1 }[ÑÞVœL'á0õ Âá3Ùû7(…Ó‰—©€êP¡•oÊã´ +y<ì$þóøÅgQ,}ýõ]fñ’äLÝ7çꞃ¾ +:BÓÄZòu³ÅìõþûOhmeiiÖèK™ª•Âõ,½>·ìÈÄöcÔš+“nȦ .Od[aÂ!dÈ–u0¾v)ÐH­p¦aKËIhÂiÒýi¤é¹H–§è£¯aš=½ÎæóŸ¿,ÀW¥à·Š»«÷=>³'ŸÛJ£N$ßDÍ[%¨Ì–¯k’$y¹„Ã@æ'íäp€æ@“½?ƒSM:SJƒÐð¶[MCѺš4—é†Ä»ƒ¶Ù“X e@ æš-{$ôNì={]|_~m^uDƒZ‰TFÊtØÙ¨K[ˆú-¨ÔÕz}Øÿ6é»sIŒ¾„•…9«ËÚß 3(jÕüãG_J뽂Š±"«Fƒn &üoD0ÖBÓè…4ÁÓ5]ÁH@‘1·çŸ>u>»®ir…Ít@ß×µ´:çX…8"ʳ±µò›ßݱ÷˜L¸¬GÞ¬fUmaQ̨Tš]0³QôÌ­2 +g¤::;~PFGÁ-)¬ +bûBýúÖ*¦†³e¸'ùVj°ƒ}9ÒâwÔ¦ÃÁ•NÃ{Žr@Q7JÈ„hƒÉ™:ŒA©úJàù$܆c¡-ѱR®ÐÌ>prM4 x;ÜáÞÕ@d‚D6ï£ÿA¥J7PcU„èÁ¾í×Ò !ž8Œž¬qÏF9£w3ðóL²?¥,#®òçì.¡_TH±#~7{¯·Â)"<'Žù7Þ(Z®&ô7 …ÇÄ ’;ØÙÊÅiá±Ò0¿µ®‚Ìz˜}…Í* ã¯í'[H† +49mªb‰0à°|«WÌê­:ꣃ^ë<êµ)ŸÃåÝ,opa%5W Çh°OKlcìNK >Þê *¦–JòÄDŽõ†ä­(»Ã —>'ÈÔC5âöæÞ]Ç·5É`ËÁdG" ¼$jÄ]Ñ“¶Ð;NÇ0žú5}x–ÆÙrtåÄdéÅ}ï, €Ÿ˜;vmùÒ«µãQ€g§Œ`Gðb.@üf—*-n'aˆGÉÒmfjú¾ÀSC‹^ã5ë`1!Š Ž…s¼_uÜ´rôn×¹%·L|0Ül )'WXD÷‡FîXmÐûNiÍ×# b;ãþIÍ%cÉ˲ø· a¹aQgè/VÉßïPr׌TlÉðù3·¶WÁ3°'tÛO +øR§¸ÆñG‡…¦?¼ÃêÞoj^ÀÈ<¶£¸›Ç%6®qž¡P(Lúx¤GKБgíöì©…ØS.uÉôu2«ÒÆ<h¯Ì)‹Ä4Þ°ôáý†ŒÜðà|СTÊŒoÀ¦ ˜£#cé€:€(¾;êp1wK%.ðUÉMo>ˆ®~B¨Ã7%ÞRÑx ~ýåöð]k8½M&Nã›imzϳ§û=À³4Lãèk…õ_ê7gûÓÁÓdncÂÏG øØx:N¦“[|ñã/c~ô¸¸øëâ+,†³endstream +endobj +469 0 obj<>/XObject<<>>>>>>endobj +470 0 obj<>stream +x}WÛnÛF}÷W üäm]l)}kœ5Ð&h-?0`,É¥¸5¹ËpIËúûž™åÍrZ4E"r9—sÎ\öÇÉœ.ñßœÖ Z^SRž\F—tµü­hµYãß ü_kÊN>oO.n?Ñâ’¶>¹^oh›Ž_âIrv¯ÊXÑmtmUá?lÿ‘ãóu8>[®¢>8»ÉU­œ¢ß”M cwáèŠæóîèb]óÑmnI4QÄò¯§4À¸ÓVתv^GA+Ÿh*+á±°zOYkE/ªªpÒ|àö®~F2æY@ãa¨„A`L¨ÿ8°a¬7`6žÓ>exNû÷‹×ÄoʶhÌ,>4ºXâw€™Ç°CÇGؤ:3ðÅ9$ú£§ä*) XðeA:™3CõÔÎ#b“x2doìV”ᡇUm^áämAe=ßúÎ)'ÊŽÎ É°Öz˜Hø³š ÏûÒêCÉ\Q¸= b­ r£ßÃ\¶(<ëÈ6 +™}{øýwOú5ÑUCj¬4VqæœÙl~-7+t"T¯ê² †Ò£±¦õ,6l¹¬ð9ÊE”F7='çä]Ç »÷²M÷ŽÅ?ƒ°nð-'ÉÏf ú°(b¨Â,ë­yQžö†ú×vâZxGfüžÌ}Ž¯®¥¶¤\*pî~¨ÁOÓ‘lc 4NÙú/ tµÙÙ¢ûäºÉÿ£«Q䙸ºF³.”»]¶+iö]wBÀÀ³0ŒƒàÈ-sOè[F*€,„¦Áålq56Ê[$¨_wöszØÞÎ6,f®´|´õÒAB“ŠSÞ Á‘= ë¥*Ã'¬ê‡›ûân.k/°:›4g÷qEð€©(ˆN«¶E[Y›o"žg‹‘¶ùR†ßÀZ(G—Ö@••~·Yèé@‚‚¡‘†0YK{S#c€Áô‹¡‰RBß$…7p%•2&snòok‚í~ðî͜ś ¸>t@ƒÐ+¤þ„`ØëÄiÕúüihÆݨ’£Cƒ–OÇäeÀ)I G0dz‘ÔÇa…Þ$O¼ný[Ï^~^d6óÐb;?qØzdïXŽ¼]-•ŒK³wTrk +9³äŽ Œ€ÈÖ¦ºæ^‚R€/ù(„-j•O»4x’{é(SíH5 +ÓIQÌU^9ÀÒËÃc^B»òŒ«ˆÃ„ËZÁØÇû?>cÆ'ÏX”úõ`POza戻ѯ”h’ëäYŒe…Â2’ —Ò¾  Þ80miq×C Huè×8!’î >ÁªðŒA¡dDOØSL­ìál¨jdq½"Éz%¡†ð í ãgÿ )ð>=+ %`8ôˆþvíQ®%6$l«Žë" BOŒç•³å)`Üþõôðíîæû—¯\x÷øùëýÍÝØÅ&v‹‡ PÁDN/˜á#O…‰ñê‚ÍA ¬ˆ}­¸wU‚Š+ ñ$úðõ‹ü[hcL%QÑűìxqâ×G.a·6 +ëGf E¸ÝaµaÂú~û0 ¥ƒâ­3åcàeÞ&~Áé‹ûþ9ê\žªá\Ï]¢×’&›_WàM ²ùŽQ‘f•P„M³-cm;‘ú˜& nâßáÀ,±/QÂy›ßÏÁ#„–Ñ$KÈ¡Ïc_h±²¿°€$i>/XObject<<>>>>>>endobj +472 0 obj<>stream +xµU_oÚ0çSœú2*5nœ„$<ÒuÝ&­ê6²=ñb’ ñ³Z¾ýÎ…"A“­tLBä»óï_â_=>}8$„1ä‹žÏ|ˆ“˜¥ ýè«ÊÍ‚Ïé¶ea,n[ˆÒ¨}T XÚÖ::‚aGG&,jÅ“a;\øípãà9Ú«¬wyç•N¤8M +€„ò}Èò¾˜ÏaU(•[Y+VüDh”|cµT3ÃàºVo,äµZ¡¶p_¡‚¥0†ÁÖ`+\œg?zmB3‹~ÂÀÝ_Þ Ón%xÁ¼0"ž´z+r] +¦k‹µ.P³jSÿ„Ó§Ž„8RuVI±A&×rŠ²BXlXJ…ÅÁ@Y…fW$(¡*|°¨Œ\á|í:Üœ±XL…@Ûò$¤móº@¶#A¸K¢æ…|Cáí÷ѧIÚ”ËÚLÎ[À»m£ ´‡£ +ÂB]–-PÜK[9š²Dí. EÒ9s„òJh‘[’§È磬ļA‚ Æ>º¹^:û·¤²8û‚ñÞœ ß©?B +Ö+ýv 0~½Î–OSÕ”ìIŸÇ0•vrsií=T…$O¶2üÍA£]íA Hq²›ø;y]¤ëZ¹ (k$ÿÉn"L8û6þp÷5;ë¦üñD”ÃÀQ}%ÑÎD:CÆÇ=»H:G¶¹;‘0ˆ'€ùŸ4ÜKõËž©'Ù¥ñ%ß^Dú/âmÏgÓíIÇ“”ÅÃ!ÄtäÑ«x<º½Á5Òk¿^¢6𾑺txO•^â]içñ%KâtsÄñØ5¿Ëz_z¿ …¤endstream +endobj +473 0 obj<>/XObject<<>>>>>>endobj +474 0 obj<>stream +xµVMsÛ6½ûWìä${LFüI¹'¹mZÏÄ©k©=i¦’ „–UŒãß@´¥Hò$ד ì¾}ûvÁÏãPR”PÑœý1%qâ‡g)Æ!þ§ÊNLð*;:NýøØDœ0pÄT4=±#ŠîÈ2ûÃE­ðlaäOã1†PÄä·—íÚ Ëž×1]/ÎÞ˜RÓ¢ I†Ai÷ŽiQŒæó?gçËQÞW—›¶»üÌêåùùâolŠ)Ü&/L±iÔqÝ‘^sêÖ­Ò´ åB/Ï©+ÉKª…Ö5÷¸,“$¤æ+®ˆij« +› èAèµæp#ÝZ£ðÜsÂÕwîŸ1{Qæ`~ó°[¬ßqõ:Œ÷†Ð'>Or©¸î•ttºÈ[0n{¹%ó€ä\¬¾“ÚÓLÞ&ßå–Ö7Åf5ùîÛ$ù¿qhä¹/Í1yA„æA*CøXÃ:z÷Çü×ßîï^ Ý*øMB{5ñ‡Ùþ€ +7ýÁ‹bWkgŸè–If*xΚœÑìîæHcðCÄb-:êx¡E+©ä]¡Dκ«^Ú×Iî¨jØ?œíz¸¿û‘ +V×>YKBV­j˜µ¶f%åœKã{‡ú6×L˜¦“?ÿÂ!…\Ù +rh‹¶„‰Ü ¨v]™nP¨l‹¾áR[/>ÝhÓÖúº$Ùj8üÊ]Ñ¢.K›lìŠ×hŵ`yÍ·ùÓÔpˆ^…ÜxáÄÏp7&®¿ØF,G舴Q…Ô—¦9RùâC–Ñ+äzÓšc^ ‡øÓÐ@2=9´f 1fž2“šqÊÿÊÐ3D냀F-0m@[üúa'#NÓ¸Õµ•Ôõ©CðþC¶ýP +&‘ŸL§”¤¸'#«ùìözF?ñϼn7°G¿ôè"ÎLšÙÕ^:FßÀÒS_bqûi‚oC«ÓÔlþyqöûÙ›Þ> endstream +endobj +475 0 obj<>/XObject<<>>>>>>endobj +476 0 obj<>stream +x•WÛnÛF}÷W üR°IVtÉ›Ò6…$Hc¡E Á’\Z›»*—´¢|}Ïì…¢ÕmÄ ¤½œ9sæÌ𯋠ñoB‹)ÝÎ)«.ÆɘnW+ü-ø;ÅÿZRáàoß¿Þ\¼x3£É„6Ÿ1_.h“Îi“]e¢,?‰z¸z¸¦ªµ å_™L4’š­²TÉÊÔ‡äzóùbL£Ém2ÅWu.ñŠíŒÒ¬©1½û­Ê¶´WeI©$+þÙ­ä‡f+ºik-sâsÚà+†‚ƒLáž"¨Á½ÿq„H#ÆeB¼{4}I£ÛU2gܸÈJàŒQìD-* ø–<äƒiÉ´[ØJßÒn©©sûTMb·“ج3tgQ +ú¾¼â«Aøh:Of|óZS«­zä 'sJUƒ|Ä©ëw¤Û*•uBÝš¶Ì=oœ‚'Q¶t6[º¿ÿmý–“•Ð冴iè‹6ûMû­ô!"X²uAçÒfµJeîòÙ'kâÉ}}Äëûïîþ$ÛÔJ?Bn7?Ø Yå@ŠVg2š„ņBq¼Ã·ë÷ôNh˜]bzzÊMÖVR7‚·z=ª†;ZoBŠÀ_neýê4ò‡Y2U¥Ä)áSŒ§TXhw;£ñ)ßüDȕЭ(oϼåz"²¿– ´¸¦#5æ|z$5 +2x–Twà·8)ô²ì$‰jŠ•Ó]†:ίn7Eù¯5ãÜë6F×åŠkïæùŒ1WO’†í…3°tyï²sIB3÷Îð¤tV¶y”ÏeûV>Éò²²‹)Æ0;†9}¦ŽÚöl1Kó%:;~œ,ùþŸ7¿^ü Ù¦öcendstream +endobj +477 0 obj<>/XObject<<>>>>>>endobj +478 0 obj<>stream +x•TMo›@½ó+æè ,Æ|äbÙNSEr#U¡ê%—³Þuw—¸É¯ï,¶œPT)2ÚµgÞ{óñüÛcÒà `ž@µ÷ „8‹ƒˆÞ)#úh„Æ[Þõ],…¢¡”$cPÔ@áaE5Û¨¡j¹æ•E –—^¿('F¡.ÇÒ ¡¬ÙµåBBÍ-cu_Ù^£NL5šJ‹k(_`\P ¬7÷÷¯.VÈJI@g:¾'6- l;H b6§‚ˆøŸà§êö£$ˆÝï?ƒ}9 q[„NXÛ¡²\B/ØIÒ%¤Åj—ëSiT~=c¸;]/\„U©^Z§ßôå»:­¨ZhTשã&šÂÜL£zýiIó)Öš°†ÊžfGa[P+”äÝY'þ9Ð •È XÍEç<´j±Ö<]äÆSŠ×‘\Õ4-XEß>üØnvc/$·Äqšåo1Åëþƒ'•ôOÐZ8·J#¬dŠUñMÒ°}çNœõé¤S å6„< È9´Øng®²oÔËår$4›bl¡C¹£‘Gܼ |+Ÿbµ û}Irh /XB6Jï¹›>ðg´³ëEX,Î[žð®ï²³‰Ù"XžCÄ¿<®¾­Wp‹ÏØ©j_{Q¦óYš Eúi˜žùôí"Nã M²3aîZó¥ð¾{lÝ^Nendstream +endobj +479 0 obj<>/XObject<<>>>>>>endobj +480 0 obj<>stream +xVMoã6½çW Ѓm`¥ø+¶³Åvƒ] ‡5ÐCu¡eÚf#‘^‘Nâýõûf(YþÚ´ âØ9óæÍ›G~»P¿ši4¡¼¼é§}ÝÓ!gS¼â¯Ò´’ÃQÿÚƒÙŒúióR­ñ¡O³ûô¾ 1NïÚ£I:­ Fx+Á¿Ì9> ^æöñž†}š¯€p2Ñ|)ÏñMÞo4ùr‘æήhe +Ý›ÿ{ÃÓ¸!q óe÷I¿™\ôÙªbï Ç4Ô ‡Ót ¿(Ï ‹ý +ˆÎAÉxÚV.×Þë%9KŠ +c5-öõlñ) ªP\‰ÛUö[íÉ­dG0äa¥s·¶æ;B!r0”>% A5RÅH¿ëŠ²îVUªôižõ>òb´(NÒ±À-”}®S$ôXžÀFPÆ»ØbO¯´ßª\§¼=AÍ`o٤ğññüÁ•¥¶á,àB¯•x¯&lHã¸y]š$w(qüyëvvIÞ¬-@w~íð·_:Yï4ïð2ï_:a6Z-šéõÔÔs–^!ÛV[òßvLö¢Rù³œñŸ‹T£ËT0™:üw–=9©3ß`GŽ )r É´Ô+µ+"IÒæ4ë;ŽY“á]Û(Þ¸2•^a£ì²€ +ô[^ì¼yÑhUTkà÷0ߘu˜®RG… +\ +ÇMFÕt¤*Ÿ+k‘lå*~r,¡„ö-ˆ‘ÉxO" µ ^n¸ÒÛã /ªØ¥¨[tN–£„J£ˆƒ{Ös¨dƒ“é”Áˆ½t"œ¬[à ¾.yZÒs¨Ê)bàœq´4/fÉU®DR°Qè +D§¡·BÔý‘:Ÿ:¢iñ "›S2Ä™ü+Ó·¢¿³ÇÉnO‡‡°]À6iAúKRžàAtž‡AžÙ–ËLgݬG«”u½Ö”³ ²îè!ëá!¦·[Ån¬~áRñ e™Å(±£QóàD¨LÐBçj‡™@ ̳2Q”¤Á/,»ÆQ…£c­qÄsqkS:¢U‘ÔEðKŽÓN?Gç=µ“+6ÖšÛÝjDÔJ¥Ú7IÆbxà³ÇySú æ[Ï$ö<æÏûÁú™jrWn1“|4@•0EtgF¬áÀêrcóGƒÒxù×41À!y[†è—ÅòÌ]}ÑÕBS +L!,¶›Ý„媪ŒZkè'ì*{Ž½±6»^¡ëDyØ-‡-¶Ò¥{ÑË‹ŽÜµ©á ÎÒgæC¥ŒÌÁ™€]G‹c{ÒŽå!‡œPµ‘¶S&.qmΞ 6zÀÁgìt8©ôʸ=9€ó§§Í©JX·^T²Ð|€¤y óÊy| ß7[´7®‚1ðÔŠ_à ò…ò›Ÿ±IÎ2>¦ä¬!6ˆ¹¥ÑàŦi!G;ƒƒÄÚSY‚Û4Œ­ÇMáhɺÖÙ¤¥3|P`«ã³òa Ð +N‘Ñ(:”$·!{Õ?Þê“ðÕ`nÀ{ð:Þ¡8¿³¹ +ΪåúÀC着¹güìÐKéÐô›*A¸\|nûtÏf £ AÁ]:ø(Õ?RCÔOGÅ‘ñ¡bifYÓ\W7 :nìI[„ïVII“{*ØÁÝ®`O„°;7GéÿAɽ hVß]@#\µû#®‡MöâV<žŽÓéWt^1ì3Èßæ7Þü¡´²endstream +endobj +481 0 obj<>/XObject<<>>>>>>endobj +482 0 obj<>stream +xµV[oâF~çWœ7’¼¾€ ÛM¤¤MªJÙ¬VK+UK3€ÛC=&l¶êßïÌx d7©*(ÆñœËw¾só߀||JBŠbJ‹Žïù‡‘7 Á(Á}ˆ¿JÒ£í.Õÿø4 ‡^ЈFC/r²> ’À7'Aä%»“h̆­ùChÀ‚öäP'ŒcoØœ„Ü6˜Ðw`÷O˜ç7—m0Ž¼‘³ò|`£ kãÖø»˜0? ¿¹PÐd"ãQB“¹qìÓ$=ºQµ¤z%j\$L6“ÝKÒk‘JM •çj›•K>§­ªæÔÕu…Ý\®+©eY»sU6Š4“õVʲ&QBsŠO÷xòWǧ>è å(+éZ­)ÏJÙ£u¾ÑæÑBm*‚‡Tʹó`l³zÕ¥FSËTÁ8+{4=úSêýÖ-(U›²¬œ§¨3UzÓãB#1€p Uˆ³ôƈPº•HkYiÃH¶,U%ç¤Jšå¢¼3Îp·–9’¸U ) +øÑMVòÁ螨28y4‚RË2û +› "A ÎØ\Ãy!áÝúñXùÍÕ˜ å$ö£`øÏûÀ?n²êN[…]Öû!gÝ%n³*¿ˆbË·Vç1{€õ(¤>:g„_(Ró1À¨8:¥Ê{‘oxS4ºXÑ‹Nù‡9rá÷M´|ßI (€³Tdóy.­r¦é¤Tõ Ò T 1{iB)¦b£%e5At‘Uºf‡©¨U)ê&5h²‡êÖ›œužçæ5œ8þþCÄšIþºÕ U¹R;(‘ÿ-ÀO­Ë§³)œÌ+²ˆ`UHýBõ½–á@†k¸~=žh½¶ WRÌ›îë™ÊHs¥yÍ0îd1Ó½íN9!(%Aš+гE†ªbÙv†ôLSóüDIÕ<&øžç•ë7 +55“ÆV ‹¼P})>·ØÉöç--E5KùㆴœZQô²é`[çO7ï† +̠Þo  ÜPã‰që‚Ý ™ÝÀQ‡µÀ’°“K˜'šÿÓ¦ø—C¤ˆaâÅ|̳AG³.fR´@ãc` _vü½TvDïXçÌEÿoOO‰þ¡wM`gô/]~¸ú.²Ý¹S6Šî1Ùú:cK†‚vÖÃà“ÆZ-‹¢û¹K7çï/ •ø½Îc³VÇÊŸvéóëß/éæúHG7Ølè¾:KEž?p€¼BŠ’—³¨Y/d}·CEKpÞ¡ÍšðUVŠ0« +lOW Øμ7aÌ5 :g†]Y2•è¬­¤»Rn—é±$}¼¾àue~xd!š7š`yñxLq2òÃÈ”Èùû‹súEÞË\­yƒÿºA²Z?€K÷‹®YüOìÏA2ð’o”,¬9é|ì|ó,þ endstream +endobj +483 0 obj<>/XObject<<>>>>>>endobj +484 0 obj<>stream +xmSÁRÛ0¼ç+öF`ˆ°c‡CÉzf:¸œrQd9QkKÁ’¡é×÷=% Lflé½Ý}ûÖO£ ýR”¦T7JD‚"›Šù¬¤çŒþ½F/./S1û|±¨F79ÒUà ŬDUƒ€’•Ïáµ +ÆYNÖî|;ßh:íѸ¶u/ºÆj‡?ºwp=:Gä[ÙËN*iÕ^œV?Gâ#øzœ ð;½NÒ©ÈøèÈx@&bSkLcöðÒÂmµ5vU/Õ/ m ¢èŒ•a_6ªuþ]•@µÑL—Ù´å"j¹Ÿß]y<¸ÿ0ú›äW‰Ó£ê¬ ³£ês²]µy&á5Œ Ž ‹ ,Tâq~ûã:ÊÁYczΠŸÙ›5 g#;ÛE7hÿI7Ë‹€MïºXþ3>²‚–HXýQÕ†@ïd9¾¿Åœ,—ödyúϤù~Ò‹›+¤4gƒIv‰Iž‹"½rCØ/Ø Å +Y"3ŽÒ˜<ç’¸ + WÎ6fÆ´šUJ¬LÀ`Ϙ;7@Rt^ y×êßçØI¥Î©Ò;{”ÀÂ… ßEmÒÊvçÍgŸ–c¯¤å¬,OcJ^¥0þV÷ë»}`âþh GÙšdQEë(Ü5ž‘´+J¹JŠèœ:*ß=;|Bi9Å»uÆÃün1ÇWý¬[ +mïñm PpÓäµvR&Wÿ·3/sQ³Ã·’q×u5ú>ú %2âendstream +endobj +485 0 obj<>/XObject<<>>>>>>endobj +486 0 obj<>stream +x}WÛnÛF|÷W(êŽâ[lh 4A hë´vп¬È¥´1Éew—’õ÷9äJ +ãq›Ü=—™9þ{t&§øw&×çrq%Est:?•·Woç7rysßÏñ?X©ôÅ™>š¼x÷pôæö'9?•‡ +¶®®oä¡Ø9Å“âøO›Þ}¼»׊‘Ï­{–|¨ËW_ôÚÙõpíõÅåü?¶)ø²/’óípèRÎÎÆCç×ó+zX¹(ø1W>$)}Ñ7¶M’VÙX·°Q¢o¬ø +-ŽÇôDáÛ*xœ7rÿÇ;qMW[Þ7ô*øé艘Vã<•×gCt+¿‘{Ó,Œ¾ƒµK+Zoæò°²[iÌVV¶î¤³6e³òb€_íý“k—‚èhúç׿~zH’ 0ÌÂÕ.mçÌÎÎ¯æ— +E’àR²­$?˜ö=ãƵˆ@é RÒ¼Ê9ð§xqš µ˜m¥µ Ù-¡¿´ðôO* dþI×cM³Õ°1m$;âxÅ·t5¦Ã$JJ#—ÊVfµ_.ññù™žD²Ç‰5&€©å×–~©eϧ%ºE_eYåJgX{0´Fÿ[)VlÏêx$K+]|X›^6œQÎwl¥0[”dòI%ºz'R‹ÄêÓ/‘2Êw|$e ´9 +4¹ÓãPfý„Æ º)ÉØ;SCÄIöÏrèšöA/"ÑãN°ÁœFÃ+1۬䇀!9qží1ÌÂPúÚ 2ÜSĆ!ª‘¯½£XAjÖúPA½+˜ZÈΗCÌ  Ó± *ÇJ_L›Æ|ñ:5w©1žD;ÚÁÅ¢îÑ4wÑ7¦ƒø°ŠØö¾’¸ÅÒƒMG_€±$,_5–@²¯û¹±+ÊÒ‚äqö¯](ؼšÃHD«ùñØb¸"¤Ò‘ô(hí ±±z~Áôâèuÿâsë°sÝmZìF+×1Ê7·/®”_Óè悸ÊÉz’WŽQ%Ñhœm}äÛÙ\ö…- î ß”žoüfhÎ"™eU(ÖCì3'd¶2E:áfƒJàªDäy6†òŠ3½/Gèhýd¥ï¸aÑ ºéÀ.Æ#¦2™¥¡ÜKûl¸ær`¡­k.¾ãâ¦>)ÒapkQéî«Ðóí„nxÇr‚%„›©5X +tâ0ìR.^™T…‘>õ°qˆ3ÓFôdä¬Åš9¬ôh·l ¼±Áv¾,Wö[ ážùЫ<’kìã1´‚``•‚ÝB”ᱚö H&Ü9¸Š-x>PØ&÷¯àk’þ$÷ÝÝN¬Á^ǯÂŒi 6¯_Ú³è|¬àF°¨†4Ƶ3O\÷»D+ãj퀚”˜úª¢t+)±HaÕò~•…ÞÁ–­ hL¥vOX"ódgtŽù7 +N¼ë¾œ¦Ür•”›7·7û´‹Óá;é;_}—×—óë«|*âCîü‚>><ýuôŠ«ã9endstream +endobj +487 0 obj<>/XObject<<>>>>>>endobj +488 0 obj<>stream +x}W]Oã8}çW\ñ²ÌªZªa(+$>f¡³h$¤•›8g;c;-ý÷{®”n†]!Míûqî¹çÞü<Ñ)~F4ÓÙ”²êàtxJÓéþNÎgø;Ư“TÄ/&ã‹áä£/F£épÚÿâjqpr3¡ÑˆœLÏg´È NOi‘-J ÿ^®¥šjë½Zj<°º ÊOÁR(•§ÚY|Q H™L7¹2+j¼tFT’*Q×x0 ar*¬Ëø[A¾–™*Töiñýà”ŽGgÃ1üí®á$Õ•5Z8ò%BñC>}rsA#ËQŸM2î}Þo¬Ë}:ñž×ñx†Üqâ^˜-=ß_Q¦•4ÁSS×ÒeÂKøi/ÓRÂ/§lb¡”Õn©kIÆ’Ê¥ M¹EÖrKyÊLX> 3½í%ôR¼ŒÎ +ßý‘5zKªˆp& écHÀ5ØÌjZ9)à…¡ÏOó/w_Ÿ¨DÏ›]®•m<[ 0e~ ô½ñ!:ÈE„ÌÝ–œEähDˆEF%—åŠ×ñ4áúÕ¨·=|˜2 äUPk9¤gàRÄzS Y©7™§SïÀFÀø¶2àté»zÕRà–2[KÚ¨P"LÀ²Ü’Ä Ðx†‡‘<ì<Kõ!Ùš™‰©¬„-Äã)f®²ÝRö1+ +T/ße™\6ub7ȘŠ¦©–po‹”]†b¬¤¨Šà>Š*µ «ç8)´¶›½ Á*v®…V¨'³VÍccê•ÈJTŽ^¶V.oÑL/Ê<,ÀZfÐë§õ ¡u°Ì¸í`“&sÛ„Y%Cis.aÎéìµÊl¸²ðm®2@èŒôÒÚ3‰bß«ÌYo‹@Ftè.–"êÑ™@‡ùrŸ‡µLùHþlàu‡´`*TR°ú žžïÈzúý¯ùÓ·ßIUœ°0Ú‚ø¾ýv9$RøjC€2)([fM€Û–]{ÊÐÅßܳ=¯hÎ\°26ÆÇY$‡æìSB+²¦B©¢ó‡ÏOß¾,n† ²ÖU¬;¹„{ý?2wg3ýï‹÷Näp¥ÓpTkOb ‹1¸Æä ¯ ëÇç&gÖI³VÎŽ,Ê@Õ mz§ÓP0¼AMHBG±N¶÷ª"â–Œà©V?djÁ×O”•Ö¦æµ‘E G‰ráP‚Ìýz„cK¨2˜ÈÚóïlB_ðPc ŸùÚ›¸æøÒÙµâh©Bt§mè£J|çA“æ‹o$Hn}´å£-£j :³¤Ô@ûVFæˆÔ± )Êdç½õL7 Ë&âÛãM²2 •Z3åâ4€›Qt³³ v„Æ@þÑêwóñûCb `°u¼Œ½Ô2ƒ«ÑJìéžoæ¬át ò%ÖíIÿÂ÷+xaAx:P­V[,=k,ÇÑâ“\*ƒpR*Qº±8[;…~-Ñ÷6—ÿ½¿0ÐboÏÀò†)Gq#gàžA¨vÝ«Àaζ+Ø>d(ÐÞØ2p$cüøv$6j§úe=ºž?|ûûáña> øïÓüòºý÷åévÑ=¾¼»kŸÞ|¾ŠmOc~BøÓV¸Eñ~YBD–ÞŽ|i] +úÃ;^bé>c6%ï¤-k¸C»ðwJÁ/PLŒÈç]¬¬†)ç^q÷Dàä›à9`˸‰€¬ãJÄp¿»dœy‘a^´‘Xb«žÜœ·/Š£Ùùpzq×Åö…íùòþê’®yû†=çéoI×qwöxvzñË;Úd6Φçx‡Ã»ÙxÂ拃?þ€ëòyendstream +endobj +489 0 obj<>/XObject<<>>>>>>endobj +490 0 obj<>stream +x}WMsÛ8 ½çW`|i:»¶óáä²3éGvö4¸ÓK.´DYl(R©8Þ_¿ d»JºÓvšP$<<<€¿Žf4ÅŸ-ætzAYu4LéâôbrAg— ü<Ç¿FS!Χ—o˜Ÿ½ñáãòèÃÍÍf´,`äârAËœ``:¥evüÝ™*U çIÿjͳ²ÚEüwZz2UmuÅ‹±4TµRÔH›XꆬϞ¨0++tNÞa+¼•%ã|®I¹üýòçєƳÓÉ×VeØk) +ºVŠ:]•›FgÑ7[ò ,Uƒ•®xiçê„¡ØKKe¶­Âö »™w¡­àkÝøL‡`Üšw‰·À8ø¶Áò‰Dð¦Ùȳ +Ñnq“.4ûÈ÷`9¶!¯¶”ëBµ6RÐàjж!ê +‡J)´uí›H&Nø쇛+š!_œ¸ñéÙäŒ[6ªÎ=ÎÿçsH»öéÏàv]ÓÃíG‹‘ŽL9jZGd ‹ÏºQ–Z“‡>WÞÁäQGäœÓ\ªºÖ.ЦԜ!ä»!@çøê)n|ÊŒ¸pW1‘›‚gø SÀ[¸”ùZ''„KÌ’– ˆMð‰œÖp ·Ü’•ÉC¾,á½ìe—¶ }uxƒ¯ÒuHîãqhqxýðéëã{œFLø ^SíÊÊê.ÒJ+Ä)ð q9)ìna›™5΂±1YDjá¢Z‘,Nš\RDæ)awÌ–û·¾•T(<­5W”¦Q슳#P8µFõ ÃßØU¤Ð½ÅOÈ“æë4Ý\“]¹ŽÊØðgÆÜ3¥\[­tógÂ,aJs˜ŠóüŒ˜™8âv‚@¸’88­TšuI£ÖÕy6>Ã{aog +Iøk™ü\{€Ý9I¾\oý†Fº¯Ë\Ôètê!&úåÆGz™q¨åÞEÝD_„Ù ÖÀ´5(>Ç€Xój&¤pÄ! SzëC¤ûOÞq¥õí‰÷£ø‘”å‡qwK€{v©ð–£By–Ù¨í–ÃÔT)3äwÖZ@#Täô;WƃÒ\]€°‹¢ÍëÉìt1¡;|¤_­†r6w0Ðp¯X\EîÒ_œY¢V8 -Py¨š*I‚PÙW+ƒ’„ORõì.¯€e ß(kÙ©¨³Ò'Xàĺßðã°¨KÏÐ*îa¨óòºfa\ìáOiO«W¡˜„ÓðÇ +­ N)¶3Y¬¦~Ö3dÁñö !ô'.NY§q» q QÅ6H. «á?ïž¹È[T†Óå„À•«s)aÍé¿X;p BT{>ç÷¾6±£4’ÊݽR1"æ ÷ÎÔaê7( Nc;š$ †7¾yB“×q£QW•Ê Ì"“¸MšV€õ'eÍåZµÜÏ k,³&¾û]„EÁÐ_¸ H“APùku•!¢ƒ°óPDØaH(8pàë|i]W¹Í.¡ëI}#@V‡T\ðd(¸xfÉžv^®½² ÆMiÐU½½Ã‰rII€92ë€3* 0`8èò8£5˜/Uß@7#” ÞApÀS¦yÖb/9âaæYãóoN ÷>ó–>‰Ð¼˜¸M{ߘ–Ò +½J`rwÖ‚Ü6Œzª°îõß6‡³›d4ÈAÑ@iœÞPѺŒû‰²°KÌ6•çÒG+º5Yãƒ/D¼12™ÒŒ$3²šN"ójo@hÌ…ÙøÍëŽ&< LîöÝ‘~AîØÍ G‚5ß”©Z­ \çÂíN÷ÍŲã6§fwV!C9:y D‹@ºQ[ô»Lç%ÁŠ§eîW²LÞû‹_ûœæ%0³b%‹ò"ÚaU³ÆxƒŒÈ¤Ñ—wwqŠÇ3ƒvB².<É¡;}=,LHÍ­Yƒ$àf½ôŒÀÏ4{ýø~BÜ°}1p @ôÐBm‹öR¢‘à "¬ +íj¼/ˆÇcÜ…êËï܃©ñÛu.® ÌÞéåWÅÌyìÞµµŒ!ü©(2™ú†¯™Ê¦üÉJå0Ú2ö¨þb€ž2¡[9œûùÝñ*Ü~j§‘áéÝ w'˜¡HiNÝ_I½Íðë»ÓA¡4:½Ï€«>/XObject<<>>>>>>endobj +492 0 obj<>stream +xeT]oÚ@|çW¬xi"‚á1_TH!UWíC^Îö:¾r¾sïÎ þ}çŒTTdöövggfýgÓŸ˜’Ý,(¯GÓhJ·q-i¾Lð<Ã×2•£ûtt½žSSZâÊb™PZÒ§SJó _1½iHñžÕ˜ÊVç^í"ÚxrmÓë­Ž´¤· g¨öí’LIáîëöÞ[¡R³É?—Ÿö¬é%¥Â°Ó_>*]¦¿GSšÄ7Ñ 0B÷š„RQŸ-¢yˆ¿Š:”·Ö²öèü£mÈ›®ñÅŸ·$ž©±Æ›Ü¨+:T2¯Hº.ÇhÆ—Œ:eGú)õê–„.Îp þ’ÞD·=·ùN¢£¯Pc({"‡*áHÐ8Ȥ’^²a’UÑ·u ç7üo¶“"üž5Ô|˜”B¿+à2MGx‡Ø±Ý³ óÚ#JŒŠUƒ ÕbÇ]š¬Å5¸áêI‹ÿñÖm^õeá$ÛsºÓŠá +úŠ0w†út¾êúAeê†Ë»†"áýºþÖ@êpzEYë»ü>˜³ Yp •ÖÔg`dÁ’AdHÕ˜›0-ô‘0$HÚ£„kÙ]A±—úÂ`ƒd-Þ¥î`E´•¹5ΔÞÏOÖƒDÍç‚÷ÖýTøa³~…½L]ƒÐöl5{ZKçžH+±‡©ÚLIWA<yb¦”Ü€NÇ$Âú‰sá¡,[iìßÀ<=[…ÉÛ ©hDPÄy©µz8G×;òq,|ky°JïÀðvƸÀncÍ”qàñ`ì.P‡ÝÔqP„÷€Hàr¤aTO• ÝH.}ç¢ëõ²·ÄÉ2Z¬V/§ýßmïïèñ³Þ׊D“!w’LWaßS+šÂ€•›Çó<™GÉb‰Ng‹pé)}ý™œùendstream +endobj +493 0 obj<>/XObject<<>>>>>>endobj +494 0 obj<>stream +xWÛnÛF}÷WLý+€ÄH²l) iÀ@§µš¢€_–ä’Ú˜Üew—–õ÷=³\êBÇ}h.–LíÎœ™9sfôÏÙŒ¦ø;£åœ.¯)«Ï¦ÉjE‡¶Ä/Sš¿&KZ¬–x?»Ä[+©8û°Æñ) ìàø›Ooi>¥u»×Ë­óð9žd£µ™Ò%9Q§‚ÜÎyYS&ªÊ½^?{óiA³Yws2_%sÜ­7ÊQ¡*I¹t™U©t´1[ò†rC'FÈü$£é.ØÇ‘­±dZOÛð¤¼Ã%°µF— ã°¯§ÂX1¥  ®ýA +¥=™‚6RX?¦¶TA;Ó’@¬9ÛóŒçõþ“ÆšT¤ÕŽa7Ò +/“h~~,8²_2ß"ô]€Å„£Täüžù¿HÍ£¤Z< håÉ™VçcúÞ:8ô…'ùÔÈ̇³ˆ²8Jz”vG•ÞïèÝäþõÀõíö:œnÒÒ¹„n5’Wc©*IäB{QÂ7ž¶Z=ÅŠ CDBqG™A…2SKÚ*¿Ùf˜ÒP¡Ö«JY°{fëBÞ€½6Zycƒµc~ijˆÉ”VÔŒiAêE”OÞÊZ +GTþ  ¹LÛ²äÏ„Fž+gPÖªq`*çí.”ò„5;$½–(/.Á§ViLWé.ÿ ý >dxÖ:9ˆ8ÁÔdœæ£Ð°ŒÚ)²Ö¨Jx暆_Ü+káÈ’¤>…ÀÄý#sÊUQH+ÁÖ€EÓGϺˡÈôYéö¨–hŠhÂ…ê}÷mð§Îò]«oïhÈw§)~þí9¿C£F_t?R:«ÚÐ ÎTÂ*wÿúÔ@˼ë ÔHÉ wî>îqïF¿'0ûvâÊ¢5ºjq‹:äºBj ׎{Ÿq?ijÀkfóÎ’FòÑh1Ãì¦Ó›Ð ˆ;¹rÀr‰R  Þ\àŠp®ÿv 厎 –6Æz(ÄÞmˆÊrÖªx Ê +»7œ¤ÐŠÿ~×HN.ó:\gn—ÐfoßÔZeé)¤ð­•Ï8ö 4æ.ˆý!#â`Ä©º´8@ä(Û'“O‚ŸŽΛOWQ¾G}¸C]Q'²?8*³MèÆÊt¶úQ0êéØ×­ÆɆ`"d3è:ëBÞ"<ÏçÛ5GÜé! +ÁFþ13¸ÿ˜\aKÔJ#Óäò¤úQÝiîÕ§SdN6ÛB.ÛÊ'ôEÂ摦h©¡”ˆúkûæ?a*ŨJé©2tÀ>ð#ºU¨àüYð°ÀΡý˜• îv£² wÔÑÍÇŽY¥xZÁ?8 ²Mˆ*Z…bZŒ7ÐîH1ièëÍÇÓRhg­ƒŒþˆnÁê*p¼D(Û¯QÎcÚÙžX!ùQ÷‚ƒneaÆÔÆlÄ~×:QJ"¯‰7uS1pž¹ +¦%2Ò·P,¡½ÜÅ*O +BÀ—+ìéï_ÅÒ'¸Óøî\¿ˆýOGŽhþþÕìEo_Œï6ÖóIq—˜ÃfÆÝa¢í'JØÿÝ8ncÇk`˜…a-½ÅÜËZËÛÍ ±ºÝbÎÃ1Û¨*ÇAnTèƒjÍË9þ•ÐœðõÓa+i,¶{n˜XÖ¼b€Ð9¥¼œJ–Q^ÿcíϾSÉW»¯]fV‡ï/WWÉååUøóŸ_zËE²¼ÆW.>:_²ßÖg¿Ÿý \eœendstream +endobj +495 0 obj<>/XObject<<>>>>>>endobj +496 0 obj<>stream +xU]oã6|÷¯XäÉbÙRü¡(Šä.9h›61p(š¢`¤ŭ"U’ŠëßYÊJR¿ô`@_\îÎÌÎÒršá—Óª ó%UÍh–•%½_ü3^f´ÈYNór…çbž-È3m;Ãî·Ë!v¾\fC,âSèÕz4½™SžÓzƒ‚ËrEë:íѺßÙŠiï:RˆV1ªjËuú·l©R–jG»­ŠüÊžt$ÈYÂ*UF³xTék¥º í3µÞ=n)ÛgÚicN×f4ÉϳõÇ•jc'I©Â>DnPΘÐ' ÍSMzáöËl.{mÝN` nm#ûÖ³à`P‰áú–=²íé–+_m±î]÷,w&×Ŷ‹´qžBô@}¨zK/¹1©¶ÅÆ#à;QE2XÒVÂlÈè¹øÕ´†ÏHoPW5X}I¢ë ÒÆ-µì‚v6 ©h£±tK;×™zÀ +`G…“ÊȪ†Á;Áz…øˆâƹt²_í<8ÛZ0m¡%]ZøžÀºz‘fF™#ôéÚå¨nÍ¡òº`g»æ‰}ßד3ÆíN’5$ ã HϪ³Q›ƒi*ã×Çͼâ½è¸igRª±äêBò&lguÔ*êWÎhíè½i-éš¹Mc0²h œ¥¿ µ€úˆX«Y„Ûˆ>H˜t0ØÁ²kzƒIM4žÖü:µ]oè÷ÁK(‹.ztqçud…–Ÿ—†¶2è\ «ÅÞ´QFq„ëA5O껡셌mžÍÏ š‹¬Ä#ð{«k*ÊbYþ‘Ô~Ÿ¼;9£»?ï?½<%¢ï1st}ùéÓõ=ŽyóÕl5קCuœ<ß”ùëýÝÏ?þ†Üß”ù]¡É@b•È€ÄºŸ¢ŠCH>ôûAíCì]4Èðê{Võ$©.¾·8ðî¬Ùgt¿'±aqYÃʆÿæýp0½ÉØG çJ[9﹊‡89zzS’¯ÊlyqAÅyžËE:°.ºº¤Ï8@ Fô¥ƒk¥Àdˆž¬fè44E… & §¢„ÏWólµÄ¿„„¥|º^~ý ‚ôendstream +endobj +497 0 obj<>/XObject<<>>>>/Annots 246 0 R>>endobj +498 0 obj<>stream +xWmOãFþίõËDì8„BÇÁ5*Ç¥$ÕõªHÕÚÞ$[ì]ßî:/ýí}fíä \_@¼Ø;;/ÏÌ<3ùzPß {ÔPVt£.Þì~Ý8HNO¢. º=ü.!•Dƒö© )ËSÿ4‰z|6EýöiwÖ;‰Îp– Ïp¯žø,ö¢!õFgÑ N{ÝntÚ>ñéógœžœBª‘Ýêíá>ûÓžðÍð´;ƒü Ødïøö€øìÝì ¾Á͈z0<£Y‚Å›ìðnFïM)”¦ûÉÕw4û3ˆ'ÃF¼Ó?A”³üp¬½5yyet#tBIÒ +õ†0¡ÙJ9ÊMV—R{ÊŒöPìHé…±¥à«ä UÖ¬U.Ih‚õGcœo•_Qa–ðÆI»V™tÇÄ/Míɯ$i)s‚2Üe'ºÔIúÐÄW¤hì n°¸[–ácËfA+ï«·qŒp‹•q>ÊÒ$ÊLÿUhDþɇ¬) +M7t[?Ȩ5Û 9 ‹'ï +HªŒs*-$éd!3Optƒ—"g/DˆyiM]Ñü±²«/‘xãhv5‰Çèñ^饛!æ|/h±ðÒ†ë&-ÔRxc7dej œ÷›Jz˜«Œ¥<¦J8ÀóãWþA9¹:ânQņӀÛ@Þ"¾}ËUee¦„ç4nh¼¤"{ à¼1µ%ùTI«¤†¾@8‰œ ólà˜C ÷>— +ÞdÆB!—ˆkNó\…§=À6¨ÚVÙ~BfÀ²‚'Ò£¥Ë¬J‘½•´’2²$…Sˆ/‡k®&kJ¤!x!¸˜Šç)€¸µ† óÆ䀉˜í9t'}it$ŸdD_Lh‹¢©S¸ +äCzžÕ`#·Âz"[¡™Û BÊcN2Äy5[TŠÍžÑ\f +çzvûéç»c*œ°UÐsvíÖͬÐN  +UIÑËþä^}JpÚtM8—ÉžQ†HÖ*WçíÕBÑ6 Ò^¼¼ Ø ­ oš‘·"“¡qµH”åãJe«€ážñB=È* ÒÄíd™ÖŒ”ÿkQ\΄œ° ÀÚT¸*«B¦Bä- Þòia@Y¶D²­¶mIqà ~f7•7K+*ø½çq%¬çvo»[ÔøG{•ªûN.Ä´„Ò“MI¢5ªÕèMf +¹2=oXZFfµU~ié÷ çj)¨é +ÅÍœ(SpQ8Aû¡b—18²äаhËýNºD¢« #ðÒ³·­¹-¶¤ª}Z/‘ѯ‘Í"4D&âéÕýx2›ÆŸ/£ëß®¼ì](†Ý³óÛ‹øù§‹ËóÉEoÔ?ý¾âbk†>Zù²Ø»¿;¡;vù ˆƒüš¹Óp¹Òµ£;4Z*í²ISCPïÿuÀ52vgKÕI•ŽË…‹»IÜ@'£Ñ0 E½Œ»ýQò=ÿc(…01ö£ä’½ ½¾MÔ\"˜žÌÜßFn[ÃW+‰¦~W+ «ç|ôb7Ô,5êÕp£´†·ƒö¹ ºkɧ-g®•l¥$ó*f;»B,0FÍ#뼿þðÇôwŒ©¥BoèAn8†îS²_¡¾â,h»õ¢¶?ý|ûq>Ÿ~™Î®ñ÷ªÆÄÐþ +[fôTzµKÃ|*Â3z>Ÿ‹Ñ*ow›Ák½cÝN4!’<{àjÛ½;Wy‚d‚I=0vÉÁê0îè]A‚æ–Xz0`ÁÞW[Ý{0¾,ÎWŠ%ýp«Dª +´ùÛH¤fÝìñÍóÝ«ç–gG‰â˜.îm©WmÝÞyD„ÍŒZ p'󹱊7.^4]NÆð»h‚±U„µiƒ?- {³æjCȵåMj¬€6ô]3Îs¹R¼•Á1VÞR+JFN>²©}*z5·P\ÚP)1ÞÀRÌãXDx-É"^'}TXÈGe³Y E#¢ %»‰„˜JÅSÉ›PzøHÐÙrÛGQUPŒt?~ÿCÓ…mʵ[¯©n(1? +ŽwP¸Ø­óÃ$"† »5õsˆŸ~ÅFFã÷f®Çæ퇰†×/õEñÍY[¼Þ)uúüf¾M¯Ý +‚ÃÁYãFoÄ^\Ï~9ø9ý-ñendstream +endobj +499 0 obj<>/XObject<<>>>>>>endobj +500 0 obj<>stream +xWMsÛ8½ûWtå²N•ÉèûcæäŒ'S©²ïJS{Xï"[Æ$È@;š_¿¯AB¢äì¶R‘,@w¿~ýºùŸ«! ðoHóg”•Wƒt@Ó埓…|Žðß2mÃYšþèÁx6I——>¯¯>}™ÐpHë­Ü>[Ìi, ´Î®×{&þ®2O%+£ÍîSÎ[m´×•¡jK¯ÊêªqTªÎ(«ŒóÊxG•%6MÉVÉN—~\ÿq•À +.ͯÇ)ÉoüL†ãt$KbÇr]ˆ­Åá¬Ê™”É©q,vü^ùþ£·=RôVÙX Þl8«JvX-¹Ü°•cŠòªTÚ󃓹çk_ц)g—Y½áœ +åÙ>Lé‹ÒE4±Á²o¬míÎlë¢@À/دû. ‚ÊúÖYíI;±Û3« +Ë*?œ¹(w´NAÍÒ‰€29á4^¦3Y’Ý™=Ô¾ÚYUï¹Ó@* ÄôÈޮؾ²}RÎÁ³|ÅX–% ¼¡7ìßÃá¦ÈIEõvÀ%LÀ Û+³cÒÈiÝÝ™ÒZ‰?¦d)Ävl$å-2Eev P-ɱsB˜>¤ô¯¯‚ ÕÖ6…}’å?„ °}.¼0×ÁepP5…?Ã>ºóïw0N[?}YÒ¸n)M)™ÎÓ… ºª›qÈÔ©†éd<¾EøÆ®ì@®­ÂNÚÚª¨Ë +u®>_ æ:czRÙ +U|U›ê•Ÿ?ÆÐfé`6sMA·nï†ìºoÀ¢{Ö;YùÊùµôáqMw·@¬ Hht¼åËJ ¾LGþ„2½u³Ô÷ïLþÍàÏ(îïaÓ…>¥ @±œ#ýrí_ô„„t‘ýDE¥r³ ¢7í÷‚=´€ýLÉÙŠRäP”QD¬o¼ÎÚrvç¹üE¸eË&ãW§º¬ >+`ݹ¦Å¤[Þ>EÔ„•Õ;mPÚ(ø8ß5&S†VpÕm5¹Äö–üʨŠƒ“‹¶ô°úÇÓ/ô¤knµî,[÷Ú@"QŽ¥ÝOTÛ*o2 =K‚ÐF ‚ @[ÝäjþQâÿ©M^½9jYk!`ð¤ªò¬Ê6K :dDÉœÆd>V^$Ô[yÛdзHýXð|Ï;ZD2’qýU„‘iõðYêÂ8éµÄC:LN>Üô„çRuÍÊŠd@…'ÉæÍP…ÞèHà î¾H¸XÚC>Ùâ¸ÈkK ‘õ)ý*- +yl3Ý7M†qe¸ZG¶LG-gÚ1N¼˜ê Ì^‹<‰¬@¯Šª<|¯Ê¿ß=ÑãúþÛoßémÄ•ÿ?àÁqáX§< +?z\°ö9-}7öÙÑÉùO«4´úzŠBz-f‰Ê–y•X~Õ¢Ý šJø–2&ò9JÓT¾Sât,õzÝ*&Ód8'“é,™/–ñï4˜¢-IBújus4t”ïèroZˆ.+s éùÝ4[¨zŠ6h8GçåjÇÿd[‘nÃrÞ + ºíhÑA]œð³‹Ç¤pÙ²Ñÿ úr)¢<² мª¢ }î@nC½(•Òà;f(LnƒÁ Ë`%¯Bôp¢í|I4T·èŸÜÛR<ºÊßµópAÑãï÷÷qµ‹—â1˜ˆç." "(Øìü> Ü3üµÅçGი»Ÿ fYpH“—~ß³ÕJ‰l9!*§¿­©npÎáçë¶Ìú{ŒQ(?l©¶ÏÅNP”\y°ÂcZ*»i—qYkà* _áƒ(ç°U’#!øJ÷«[ZÝ>\ÔÎ}µC7€âÕIŒtu‹ I‘!€L9¡´µ!ó œ5kØ +"æ…M‰è,š“T!Ã{ÑAãZÉC£QÖªƒõ¹.Z +ÔB‘”Ûí!äæüÉi×`æ"i^(ƒªy¬«åèÝt9L[Åï»ø»Ì©X2$wê½W¯RÁ(ft 0øÄ*L#¤í3`%ü ù¹púHct¦ÂUa_ +diÛXà‡.'tÀG*!ß}æü˜7]ÍGóF£4tä–<]ú· ’²Ä`Ñ1¶•ŒÎqpé‘+:vP’› ƒí9¤fƒ€^ª;áA˜"ƒ'Ô[ì. íRÞm0ÅX”žF‡U[ÈR½Pî8öuãÑÙ]ÇÜO1ÕIó>ŽÄ‹îÕo8§³å’f£q:¶ƒñíÃç[ºk Õß¼jHPÉp¾»“ù`)×õfèÉ|’Îg‹îEo Û]_ýýê¿ßÆ´¿endstream +endobj +501 0 obj<>/XObject<<>>>>>>endobj +502 0 obj<>stream +x”Ýn1…ïyŠ¹L#íÖ6[¯é$¡Ô¤)l{[m¼Ü°?±½UÚ§ïx UH©‰ÒŸ9ÌãˆÁ…œÁ˜ƒ¬G$%ÀÅ$Í 9þfø5 +VC!ïRq¬ÀOù±eôø îá/®˜£·ó Ð ŠvŹÀ³EØ!Pȳ«¦¯•)nû¦øÔ4¨–£öìf¹¸»€ª¬”÷«SA—ý«ãø8Tʶ®Ë¦dÞ£V7à6 +jk: ])”ƒÍ€ þ/a¸ëûB=öʺ÷‡¡› §ÌßDž9„$ÏË{ŒíðY*Îa'93ÝTqÆìUŒ©|ˆc.ç58;<‰‰àm˜Â]pQ7«6hL¡ðž«²ÑÍÚ•Å´m˵m¡oªVâ̧ªÃ® $l7ȹ6ÖÍM¹Ž÷K#øT¾†3ÿ¶uåé²H %ÊgàÄøD„qÛÞô[§»­zŠšAcyħÌ[s]©º‹BØ Èª53‰ÆF!Yòµ×q;Äîü~m cÓÃ¥3½t½QÿÛß>__Ây0ôH8­þ­0”^uîã8fp¯MÃ}ò}w¹—›Òœ¢y‡‰ç,±ûÑ\¤|2ŽOvÇrz3›Â¥ú©¶m§Œ…èÈ°Ô’½6ÉÉį™—Û1˳4ç7)ÇCü¯ŠÑ—Ñ=}Cendstream +endobj +503 0 obj<>/XObject<<>>>>>>endobj +504 0 obj<>stream +x­UQS›@~ϯØGíåâ›Nl›ãØ`_¢ã8Ì9áHï«ÿ¾{Lˆ€S§“I†Ì.ß~ûÝ·{¿Gü\ð($ùȱ µ)øa€Ï.~%ƒ¬ +œ†Ä»^oÀ5 P®Cm·+@HO ß{_û"}ý6B Ê°¥€=8DÉÑm4½º<Žž0ÉK²\jû˜VG+ð\Xr­N€‹”'±æâ4ÏþÅ’B¤ + ‡<Å‚Œdž´HÊœ ÍR“–ðLQ[¿h¸;ÂW4/xö)lâGvRýXÄö±¸çÜÛ5µË kj³hy6Ô©_Qÿw:0L`r}õ0ŸN°›´ÈclÐüQZ–‰.%»;®™ÓQ§³ÈsÛš£³ÞúeEª\Zq©W…äš3e$Üjƒ[û¯ß"|ØnXJöÌ•ÑK-™ü<Øÿ º ÷ýl),_56Ÿr¯{°`š¢±xÆ™„ó­H¯[³4’¿S…Ð…x@Yªj èNæÃCèPª•Y¡ÙèÛç‰öÛ¶VìÏŠIÖïêyôÓŒ‡–8`…:æ²f\C²ŠåâÎðQ”ëµ¥™Ì¹ˆÍôÕxÆT±J8¯RãT?“ÛÙôÇÄ)OŠ”5 +§L6Ü­ql!Œÿí?Ò5zeÈ´‘;´m6ÁGyüŸ„D}VŠÝˆUù«YGµ\nŸ^°Y— +–e–¡a7Ç¥8¨a%~¿†må >“]O'_†àvM¬_jöïa˵Ûl>´Æb`ôúÛ16oy7ÜnXâ»6žúõ 1?¿º8‡ {fëbƒ^‡ï%O™iÈ"AXåZ36WͼYÛÊ„ýÀ·âmin¡jS_F£›Ñ_”¥1Cendstream +endobj +505 0 obj<>/XObject<<>>>>>>endobj +506 0 obj<>stream +x­UQoÚ0~çWÜ#–, ™At+S­ÉöÒNU° ¸ +1uœ¶üû“Ð-iK'„„9û»ûî¾»»m¹ààÇ…Àƒºl9¶Äulü0Àß~‡Yið;Ä&/¼C—„Ï_ôãÖ—o]p]ˆgè„Ä Ð³ã@LÛãÞè®Ú)Ïæza‰Œ šhΠÈ•ŒC®•ÈæW''ñ âGË#¶HíßÃqÜñ*³_›‘åvÚ+d³=È]@kû‰tÉåßàY‘¦–æj)²2Ú*Êm't‘¨„â•Ü®`6)(=yaüxÅ& IÅ<{/ï°)ÆU¦´„9×{ìÁ·¦kÍaãö^èè…Éw¢´!bѨ ž0®j›ü?KWS–ÉY…&X,$Å$-–>/XObject<<>>>>>>endobj +508 0 obj<>stream +xÕVÁnÚ@½ós¨RÅ׆öD’¦B" ‚›Ú¬Çx[³K¼kHþ¾³¶!‘(UQ…†±ß¼yïí.÷6´èՆЃN|Ùh¹-:€ß éÚ£wŽ”¿ÛsýcÏï¹Ýc…0p½ç¿_DóëÚmˆjtCˆb Æ­D¼9R¿‚I‘Ú + ¸’I&¸;4DikPHÁUŒ M.äRd1æÀd|¬*ŒÆ,¦Á(ؤ‚§ö¢ÐH§ÑïF œv‡ˆFqSÈXpfvÀÊ…I]B%.‘e ©‰"6$ŒVÙc·ñ’‡@v#ÀtpæqE“Ô¸ú •>°å*Ã3b ,L£A7˜eΩ6¹*V€†×©y¬x±Di¨»VKÜXÊÆç×½˜Ž×­(\oæj>kÆjÉ„û…Ä*¸)rœZÆû.8[î¿£¨ãUe¿Æ¥hìúÎ>QÐ¥ü8VͼwÖÔˆ0MÕ¦9ÔÏ;9ûXoéUȧÁIÿÔ“ +ï¡œ ¥œä'>€* ( +ÖZÛ4$d‰äXߣ«N[sJº[{†ãóÁèzLþnkÌ) œ«Bš3à™ ›ßdV´L-”„ +$[Úð²ÜؼJúFÁÉlv>/XObject<<>>>>>>endobj +510 0 obj<>stream +xÝVQoÚ0~çWÜc»MBÂ^¦¶´R­¤ÝC;!×1à5‰SÛ)âßª&¨/Ó4P$ˆÏßÝw÷ÝÙO-,üÚÐw ç[V×϶º¸~;øH‹|Á­[p¼Ú½Úq´N.`Û,Љç÷!Xôèüúb8ƒû#*YÈÍI¤à#h3PšÄéýñq𼄎ãu]Ä8¢+"ïü_ź[®cü»‡ƒ +s¤³kuŒÆõ U(…Í–JŽáøE(çW“`>š\N¤¢˜|f² 4âÈiÈŒêL²—7;q5ЛÍ>Ãzņp W\UX@Ò”©€'@°4OSº ‘Aœ) š<2\ "Ý€XàfV†Ó¡$¢YD4 a'Ãͪ2'eü™…mx`”dŠ„ ¬yáüÇ*{PÆ3’¬ €®}TÝÜg*™ÊâÜZ›êŠ…žh|€$¯\“ ]¡)ÍC,™ N*‡$<ê–{¶JÈÓ?»¾-*ô¦ŠZ$„¢<˜©bÃV[û²Mÿ®A]_ð) Cž,Û°ÜÎÃFcÚ#¾Lb“•5×+˜Ï`ÅHÈdv%å=w·ÓÑðC}ü©À|ˆ­¬ªŒ«&ܼ¿êq Öˆ±Ô°i‚¤Yþ;ê'”Š,AMþ·mÿ\\M¿æS¨¾Þ‘Xb–µÁ^ˆÂöÍø+Ú óç6j‡›±²Õ˜kƒáŒÀn–‡ÚGË9ç|n70¾™Œ¾ ¯ëÓ +3¸òÙY©YÙÛM 8IzN=hJ$‰qT'ZŠèŽçÖãµ › ðCEË÷²;¹òq)E–¾7?Ým¯aI]¸Ãôç%|'J¡§°û> _Þì¾ßõðún×7—†Ùéøì†Fq"exÂ~Íx˜¿ÎÖ¶Ó·¹éödÏÏúžwDé}2‘\­­?•Ôµ‹endstream +endobj +511 0 obj<>/XObject<<>>>>>>endobj +512 0 obj<>stream +x­U[OÛ0~ï¯8o+Órk.ìa +¬Òh7Û Rå&Në­‰;;UÓþûŽ¤AS±ÑªŽŸóù;ŸÏågÏ ¿6¸>$yÏ2-D®^¨V‚B†a‹˜ã \Ç1ÝÆtà›Qkk!¬Ù.­­íšÁSX<ÃŽ6 ›óNâÞṶ q¦¸ùaqªQ-ˆ“>‰ã&ßÎá3‘òž‹ô þŽN~ãd —g:è׿®ã+§¶Ø‚ݤ<'¬€‚䪂%<¥ KÁŠùÿ V’Š×ÆÄHÈ’”ŒwжEpBÓS"\_NGãó Üö%ÉaÉç¼8Tk–KW1WIY z{ð8p ǯqƼ¤G°TV9™-×ï \P¼zt+ 4¥EÉÈR“ «ÕŠKš.×q¡ Q“;”¥ä€–­ñ%)õ΃/$ u "‹7¥"‚Ç·w9£áùJðœ!´Ùì·ôN?cgÇu'K†$1jE5c‰–óT¾¨ÿjA‹ð(§¾NF÷õþsµâ¬(ë8ŸJ£9ïÈÕÓ«³ánاX`›uïB½cÛß«³–ôŽ.;bÞ‡"ïY™,àŽ,+ZÃX©6\Ïø!&ÑÀ ]]“Ð|LJí<ÕÎuú©[Ǧ£’·µNˆ¤`)ðgvïx¯¼GCS[C±tª~j¿ßáò§æ¿©$Ûô·áDú‰Œ.FC¬¤¹àÕª-ŸŽ¢QʹÙâÔ§>ßÄö@ènCJìZ³ª¤Éñë_§0[«néš6"ÅçÀn¹nTý²mÃÉåôêì!šÆ(hF-ª«¢õmin5‡=UQ)Oª«L‘ª2D…¦Röeo—zE•cj(¦P“–:Ä| ÏíáðzœU6AN~’Ÿ¡ <”E0*;hïK#1_.ŽÇð $¥¢¦6cÇöÓ"ðƒÐ ýA3|NŽa¨ú _Q!á¢Âî«Ü ­”µXØ+pNµ3H áž`çÀ±Ÿö]ÝÁÎâÞ—Þ_ˆÍUÔendstream +endobj +513 0 obj<>/XObject<<>>>>>>endobj +514 0 obj<>stream +xÅVMoÚ@½ó+æVÕ®m\Ûô%"i9@Ô`z Úx×°ÅÞ¥»ë üûŽ?’bˆU²„äÙ÷Þμ™ñÏŽ þ\=èäÇv pÛ? +ñ¿‡bV/zQÏŽv_ÜÄw¸.Ä)bQ1Äqˆ“ît<ü2xðE‘ÏKçTæÚr¿_Ä?ð˜ßCnËí!iL»Ä £€±„ (O$e âbKF(SºFx%¶¶!s?¦hpÉÙøÐÁýh>Zù£kàáFt¿¹v%Ú‹l¿¼w‰?ßÝìÛèã"•ï!cÏ,ÓÐ"(|‚Õ0KLŠŸ]Ì.ÚŠ°¼ Æ›ÇqôxDáÕÕ¬ ¥eN„3à[O/†ÉøBäLØp³Ä¼e@¦0Ý4Ùo³¶“¼npZò›ŠfL,ç¼ÿ€ûí~8¸<,·T&E™Œß†¬ŒÓh*Rô+¬%ÇuDÿ_ð c^M2Míý&‘ûúkÛü³n»·víÔ*lÓ‡SÕ £ê:f¯Í§“Û‡WŸ3—É…Pz}—}ËÌciØ'àhHYdžàLÀF°r›%1UW¸T®5Óš#öŠ½×Je—¶aãx8º=|£Z›á9«cöN›ñ i +g¢¬x²’çì‰Ö©(dDÐØógêzLˆ€dIÄËr^ÂÞ ó5ž†Y¯™Ã•, ±gÞŸ0Ϊýuøš«È2ø'µu¢øÚìl«óÕ¯•LyÆpàümÏ‚óÁ—÷+åŠ%Fª—cðQ³]ß³ƒ~‚Ðà \Š“ëÑÍ5 Ê(׸ôásÁiÕŒ–FU¬:ý*Ô¨"1…bÕ’õC߃?H¥–õ»;_;¿82t'endstream +endobj +515 0 obj<>/XObject<<>>>>>>endobj +516 0 obj<>stream +x­–ßoÚ0Çßù+îmÝ$²Pž¦VÙX¤–j%쥚PˆðìÌ?Øøïw&©ÖVÅxB9üõÝ×çûÝ ÀÇ_ц!›ÞMÖûø%„ €¬Ä/aAFÀ÷|߇¬¸šOÓ¯ÉÃûì'FÚ(\؆ޯÖbC0I -äˆd[ +†³B +JKÆW°¦9¡²a<íÔ™§Ó,oR‰•àPÃõ”eN Î•ú#$9 +6–4WTBštÈq&R˜ú<7XYŒrèø~Ÿ&Äp" +³¡\SKS–x®Z0ü+A‹ï9ø¶x®s›©²ÊW.‘Å:—AøáÓbUŠ¡~ÑKQ‡g;!o‹È“½zœˆMÎøÉðSjÕœ¢Ýˆ¡µ›¢9ò²OòÈw$yä£äg~¨sBì ^î4U”FIþ­snëðɱY—-|èúw!ôšÊ…bD¹h‰™Îoo‘÷Rûï÷€6U³4QN?OÓYöà¸úÖÐ<Ƕ÷Ò:®\ƒ|§0¿UF·f/$«õ×R”¬¢ØPõú‚ØWÏÉå2ü +üÖ;å*`G;ªOÒäÑ:¾éØŽ[¸ÆKá’Ôå)G—;ûfs`“û»^¼&"nçˆ Š½p<Æ™c?JÌ®ïn®!¡[Z‰šJõKúO‘ýÈÛ©c¦¥)l/Ú¿)£häEaŒÓ ~ÆvÅç¬÷­÷(If$endstream +endobj +517 0 obj<>/XObject<<>>>>>>endobj +518 0 obj<>stream +x­UßS›@~Ï_±Ú)W>´£FÛ<5b_´“¡p˜«rGá°Ú¿¾{@И¤Ž“aÈpû}»ûíÞîï< lâl`\' >8¾‡ÿ-| +i}à˜¡«lêïùÁa8øt⥦šÝõ=@¦ a¼“È,â.GÃÝ𚺭©¶µ‰…Ö;óÓ)Z\‹*›–<)4¶Ú…©T3VÀ’µüÒØ]^Ë'Žæ½ü6OΦtzNàf'—\(V” $ܳv¢”³Sç"•Pª‚‹Ûòf·ª †å6„c©Ø>”ŒAÌÓ²ˆr‹¨G…bÅ¥ØûytË€š¤Ÿ%Žm!‹G||c`&¤²@לNÕS®Ý'<Ž+!‚!/ïj<ú¥.1Ý= k綂‹ŠUì%ÐZ²¯ÀدcŒÎ çù +˜ùèëªãc¢ØJæð“kqæ·Löf·—îŒ' ÓÇX†V¶E¼ÐíûÙhø¡¯m·jAS"ÊЖ[W?‚þÚ¯l¯ ¯Fãж6×Õ2 ~É´/—•Hd\e ,yžG7ÆmR(Xwý b™iò–zC»_Öíþ¦¿½I‡¥È•à±LX{yEÙFë­œ,dxéc+5&ÇóûNú•í\êfÄR(œT8\þp5Ã’¢Øgå~¿e:¸M £»â¸!™°(éóüWëi¦Ã*MY¡Ijè|"­ þó{„ÿ>¡ )Œ¿¬½ ^Y›Ý.¢Þпî`Öl•FE†ÅzšOrM½–.ðª¼ÁE»h~»¹¨c7ÀõöH`5ûëàôðpJ³{™ë½õµâI=à êùµµá™A½êTQŪ*X·ãáªv}l\v ‡ƒ‹Á?41“endstream +endobj +519 0 obj<>/XObject<<>>>>>>endobj +520 0 obj<>stream +x¥V]›8}ϯ¸]©Éƒfß !«hdÀ3™jU!ÎÄ[‚Scš™ßk>æCênÜ6QPBÌ=>÷ûëÈß&Ì,¸šB~¦¦1±ÀvføÝ °ydôçr +¦ dLp¸aÉ?Ü­Bâüóùò/³ûaXrl^a-R|8eEÁªG©„¦b9/(ÔR¨»öx÷,)d%{¬hg&øW&$ð=È…$ðà@³‚ŠI‡1LeüDÍâÊúïIøÂÑ:ÆB¿QÅ€1ôtº*×=ßv.–3±áÄïý8]…Ë(5 ó=–°¦Ý¸KúÔ”BÎöõt"Ÿ$þÊ%ã¨!ã–ÿžÑ²¨¡ u.Ø[„M”Uت²„U}ÊêšaÓªœb«Àž  OÙñTÒmù|¢j"?èRâ#XnGK~V·ÃêìˆZÔ°O¨øFÁ§>ÂùÀòƒñ:„ÇNÌV’7”’û”|Úøé6Šoâ’Uvôd ã -¤^&¸HåÌÅ$¡è×ï{öNé¢ë²Fu«­^·„´ +ß®µkÛàVÏ(šjˆ¦ª”¥['·ëþ¾—E¸«0“x­AÈ`ÇL>/XObject<<>>>>>>endobj +522 0 obj<>stream +x­VaOÛHýίõœ×NÒ$|„B¯‘JšB¨®ºœÐÆ^öήë]¸_ovr!Tº½Ì¼y3ïÍþ{Ã>;ø©$åáE—m½8¼ýУ$¡iÎAúÃM3B 8¦iz?ôðѹ®²N’ÑÅ#Ií*%--DõCfô¦0©(ÞM¿#`¿ ØFÄvÒ:ˆyxõõfúmr~söùâd4¾9__„Óéׇã‡aH»™÷Ì,„Ò6¢é¤Òþ}%«¥¬HèŒÿ +o©•XH'+@«­£¹¤ñõ§OÑd~Ôcd×£ñ´ÛyÌ;Tߦ².7ÕâFe;b­ªüúytöÛË¡J£4°‘3¤sO WAÒB|7«Œþ±zKéÿ%–{,%ÍÖÝŽ¢ˆæÊQ®d‘ÍŽö€üuæR³X`üö宦—{Zj—IœÜp Pz­Uj2I­oÉädÃd½Ö¢×³Üpšï¾LÍ‘]Sºš,ˆáŸ…ªwi¦YÆø1[·ÒmWÕkÏ¡]Q¨[ ½Þ+w‡‚Eå¸^A]]œÒ™¬Ç”À rò*îö‚V.®.'ïɰÐV¤ŽÆ 1£‰*›y^ƒj:ƒ¨Ïû€Ùʤª°°u¾!Z _RªrÛÜCÓd@Rs¸]»›lá¤ö9%>+çd—p•¥Ôè¬NpzìBûz×ù9NàDxa2)!, Ö›ãál6MÎg³çÙ#úfê`5¹ª`8fŽ25 Jú<ù|V]ÌU!é–UÈÍQ¬öMŒÇ”Rÿ`pGJågô(¶ZÚeºˆ`R$Ä¢,d—¢ZÄó±¥”ûü󉋖wSoœ©¨ªG2µk¤…±ìý¾yeàQ*é$Þ5J+{'3?CÜŠÆc=Ót)ÖÒº'kFù®)øÞ€ W—ăžôm‹´i~¦na+ÚhI?´¹Ás`›Ä^[Tg‰Íu`ëñÛ8yöö +Ú}R}ô³ÂRuhçh­äaÞÊÚ@[ƒZ/?®o³[<üŒ‡ ü°B`s)ÿÕ4œ;c‘ÒaÅøÑú“ɈÞÄyóB(M‰³C¶Ž;;B±>˳¶tÈ©ùØGï4­­*rSæp ŒÕI +ÿE(àûçeÃÚÃÂô±?6— ÃYŠ¢f¶e¨x0ÿëƒ\ Ž^w›¸0>—Ò–F[\’X~Ô…Å…,<%ž.ðd•_=àRTÙ“×ç oÖÌGˆ»›»ðÎsÄ} ²ãnƒ9Ænk[¢«àÚÝ (ÑŸ5Ë"kQ–|ä`lRÀá:ÏWÉì°¬Ì\Ìq) KfvÄýBå­yƒiLq(³¬°8|ƒÇÎÞ,QX¯ +ÌXªÍv2s¿“³&EØc| `œXeŒsm V`c¥p¥Ó¢»ÿ¶¹9"ju÷Üõ'ÆÃ?zo|zÈýóܾý0l–D2Fýãcê¿4—Þ“‹Ó:“KYÀÜq'ý½F»\{u¶=ˆy]ˆû6koЋý!¶ Ž÷Žr>=ørð€Ã”¤endstream +endobj +523 0 obj<>/XObject<<>>>>>>endobj +524 0 obj<>stream +xÅV]oÚH}çWÜ­ö!•jÇ_|¥OIZ¤”²‹[­´ìÃ`Ã4fìÎ þ}ÏŒ1E4´+­ª5’1öý8÷Üs¯ùÒ )À'¤~Dq²U'ðúvRøP7‰ý!%ƒ>®ã®“âTÀ6€÷áÔÚ:ƒÆ6‚½3½I;—£„ÂÒ {ƒ>¥¹ó (Í.FBi󊘤Ùû“Uò/ÂIò̈J’дb9'S‘YrOo'½dŠû”â÷‘åj­ -xc¾ÖB>—™ÚÕ†ç/ÓÏ€¼0ö#侨™ÖÛJåúÉÊPVr¦<ߌ *[0UͦE0A-ê&·5£74a+žÓ÷é“yÉif˜á'9[xšK[ma¸¢íRdËCT›Iq–ïl±,Ëxmèz:F«âjŸî™6åÎÂË-YYYin½lLŸ/êù‰­1­,ŠëªÜðüêäiù˜•—A(«Í°o Q¬®AƒÍ ?³„<¶¬¤ÅÎp½mIë²aj%$*Íi>ŸŽ§wó9IpAE…0°úszÛÐuBÅ'V®Ns.IWT +J¥Ð6Ö‚—ÕÖá½4´¢ ý$ŽÈ‹ºþß(Žö‡@| £i–â_Ú\µÃ‰endstream +endobj +525 0 obj<>/XObject<<>>>>>>endobj +526 0 obj<>stream +xµUËŽœ0¼ó-å À›ÓìæyH”Éi¤È Íàl›U6_Ÿ6CÒb13« $ì.QEu—oºBH#Ø$PvNàät‹³”îý„Ú¹*œ§¯žABQ"ÉR(* ê €¢te]+Ô—Åw*‹ç2‚ì°òèE‰ÔýÊÎnZ}ßãà—·ï‹0YWL³àz`û…†Å^7à)Å"ìÜ›{jw\”Ð «p&*ÐŒ·¾õ…6}[+â?ê HuCyÉ4—bVj%c£mE¬ÓßDëàE{JÖ¶À+þæ8øÐ1]6¨ ŒÈ,ãü&YƒdÇÅ>}¸ž<Ùž0X§hm¿³õ‘<9ÛÒpêÂåö#e£zt†ñ#ž=`¦ûYxh¿R +?ô?®ZiYZñ.V«ŽH™ÅN4:J&Jl¡”£Ð'“N­ˆõù9—4”È}ËQ]R{ô p¸Ãê9 =ÜŽ¨4mÉ^Œm+DxRaͪÓè’‹®øÓoýë,Ú¢4´I€)¶wî^R8PÈÕ’¢úÏp}›†kNóÛ²ùà ÓÌOò’(÷#sØ|Þ¾»Ú ¼ÃVö8(x=R÷»ÖKƒÜ”¾™Ž³§±Ÿ&}dZŽ7féeá|t~¢ïendstream +endobj +527 0 obj<>/XObject<<>>>>>>endobj +528 0 obj<>stream +xVÛ’ÚF}ç+ºüâujQfta—MöaSή\~ˆS©A¼ºY3à%_ŸîKÀ1 ¤ž¾œ>}f¾Œ80|sH|bÈêó„ðbE‚×>~z>_ýÿ0¢ÐKœièEΖ¡[Ï}9Û0ö¸³=¸Å?8qféèç» pi)Æ"4·N¤ÙÕãû›¿ÞËìY(ÚÃ~Y+m®ñBwm£Õ5,Ê&‰Ÿá"{nÚ¯•Ê—ªVy—~F÷ñÞýؽ\}¸ÿ-°Q½.Û¦–ŸÃpgˆyàùdÙ«®Ú‚–µ©]ð銽°èÓ»ãã× C”Í…`ßÂl;uÚyÛ(h 0+OgŠæ šu­/&_Tr¹³úŸÐ0Û®öæ©Àþ}ºw±¤ÀGœ;l1vPlÐéêÎt‡Ñ‹_ÇPôrY©fiV§#€ƒƒ3—F‚Veèî==ÌÀô²ÑÐYÖ^€c˵Yb³ñˆ?ˆD&«ªÌOçEϡ̪²(Uï!5•·ôuÆÃI4 Ïâýh³^À‡§9¤›aÒNÇ" zUKl«ê]ÉC¡«N5yÙ,Ñ Ã7ÄË7ƒ37àv@|1Ìà}cT_ÈLíÓÏþ£ÛˆˆZòZºE$ +Òx¡z•{4œ[T‰{XÉjÞìŒj nÑȬ$6ç`¿ÖZå.Q;Û]‰SÑДë~£7Ù7ƒ é÷BìÄØ<¿( +r¡±Ë™±:Î?¼»–éü6àqÂè:L¢i"¸O×BÌy<ŸÝYËL }¡Ž£Þ’WKœ‘%uS!¢[Ò +Îo&üf>Û­s1±žb +Î|wŸüú®Û{È]ò[†!¸·¸?~Ê<)‹­QðøÏÓ”@“‘&6 Í8vù$"€;Ù=íô¨ÑGn÷U‘Ò:"QA¨-¤6àJrzõ/úœb¯,‹–¶+%‰Üe±#0|EfY×åÀk·õÀ`yíìôª]W¸ Y-~5Ç´vš=Ãò*-šsD±–/F—ŸQr´(ëu=èK]jÚº¬tÑN´Ö‡ÇÁw‰ºÃÝïB@÷L•< Dþ@ì¶ÔºÍ–ç$ÌZ”ÒàH.ûvÝ¡ØJ.—î‘tª²›ý™Š5°“xêì¸ÜÀ¸!ø†±Øœ¬EÙy1çŠx½_9û½°ífúrA‚ÒÔ[Ü÷^Ô®±;”ðk“ ĉï‰8"Áxš>̦p«6ªj;<ËÀ/kÜ ˆicg=NJX~õ«¥5= +<ËÅxÈ£ÛaH·æéè÷Ñ?–tÍendstream +endobj +529 0 obj<>/XObject<<>>>>>>endobj +530 0 obj<>stream +xÍVÁrÚ@ ½ó:’L 6qlsètB›¶9$Ó2=”Ng±epk{Ý%|}%Ö&ÐÄæ’ét|ðjõ$=éÉwú¹ àÔ‡(ï8}Ά=½Ÿú+„Ä8ƒ¾ÿÒ8ÏF“Λ¸.Löî‡Lb ÇIÔ5 „b™ÏPL@¯ #V¨aÚ] "{k 3ÄÜwÓ£i×Y¹Ó££É/rêWN{äµçžöä·{{y= ¿ÿ°;°[¯7[$Ïé¼È±0PŠ8N‹ù ˆ¹H màæj 1ªœc3m”ˆLJ>no.`üåýÏËDDØŒMy‚(b¸G¥ûœ.ÝEÅw ÊR&Õ°ÔM+2Á:Aõ:ÈF$q+Q\RÚ‚wË;û——“>/XObject<<>>>>>>endobj +532 0 obj<>stream +xµVÛrÛ6}÷Wì8/r§R¨K))}èØ­›x&Q\›™ö3ˆ-ÔI dçës ]ÑVTû¡º‹XìåìÙÞ )ÀsHÓCJÖGÁ  0ãs2›âs„·–”¹…Él>˜ì[‡?=ßq½ý=¤á¢ AÂÙ”¢” (Jz?±õ’¾\ŸS´¹É­´'Ñ?Ø2i¶ ¡þp<aWOPå,(••,RYX* ²+I•ª$b-)îUº\ŠeþàTa¥ÎD"ãEꮕõz)u|âcÍ›X}6š¡:»ºüõï+i¥^ÓÕŸÞðß:ú£Ð›}¹XDã‰>/XObject<<>>>>>>endobj +534 0 obj<>stream +xUQo¢@~÷WLš{°I¥€´oZm¯Ikmá’{hrÙ œ¸KÙåZÿýÍ®pjm59Ùo¾ùæÛáµå€M_º>ÄË–mÙàõ»–^/ {—~%Bjzž||>ŒZç×8D©Æð{D ŽmC·Ožé3½Žõu2Žîn&'§Ño +óë°Åu\ßò(²= +/!š#¥ôk†]·a8‰îÂD%ã’Å +&l‰ L³÷ Ö}oë¾IÝ #˜”IPl'ù2 +¿ >–Š½ä™œÓ ãh0@ £ýíôêÈ9EÃs;¼*ÚòóùÔ‚J"PÚrU(âX0)ßD™HÓše +¢Â¸é®.Þ²ÚHœÊƒÇæ’•E|bA¨eÔNI³aN6Ëqû‡l<²µíŒ$!W2ÉÊ á»*W´ûÝëÚö>hh¢9èVòS‘gñŠ¦±ü6¹zelv]µá·³³f¨>/XObject<<>>>>>>endobj +536 0 obj<>stream +x­U[oÚ0~çWœ·ÒiñâÜÓ—‰Šucj¡—tOH•I%]Hhì´BÕþûŽ“Ð-¬«FDäØÇßùü‹ï;Lz8øØÄóŽÉLðYà>-ú—ÓzÁ Cú|mÁt˜÷Ú‚½ Êr9 ^î0ÙêUÞÒѱ™ÛZ!³Ÿésf¶¯ÖÔuX¸ zu>„Àˆ¦tV/ ARo5!Š»§W=-0‡ó"KãåatGæpÞ˜–OæÝa¡ð¢¢6ƒ™È“ !9LD¾T³4¿…eQA–þDÖàÛgœ€iÇÝK¼¯Pª—~¼fýÇhÐÿЬ:ínŠŒÁm + mŸTÓ)–Ä"Í–›(ƺáõpp]Z»‘$–„”‹9‚UžÆE‚ U©Ï!•(•<¦jê±€ƒñø@îñ7:þ~Ó‹¢ËÝ‹ÉÆ +„"“Já>´ëÁ0²÷çD9A™–˜€ˆc”-ØJðZ +ëYr¹(r‰›ìM0¬VóóÑéÍ·a7u$ß„Ú¾DU•ùn,ò iž¤± @V›ìë,­ñlÞ$„ö}Qa¹„A>-Þš¦©¶3!%9£’i€y%•NXE™,uä…¤±PÚHÏ•Mv¾?}ÿ«”: ¸·[ʵCŽ»"“ˆÍ0}6»ß—©Å*OŠ¸š#Ubo/Ì9Ô*Fk'­ÃY÷ña'BÝ­ Ûa®P^»,°ëv!©~㌻I( 9uZÝRb!ì#-Ôö¬»=û´eÕÝ †'#HŠ¹ fÚÍGÈð3 6õÅ\ò.è +Y¥\ËzÍÕ¯Ôât‰¡¦‚€~{j%h›#÷}fy>]Z³l[ï¿ê÷ ¯I ,%|­Ò¤®~ƒûó ß$ɒ׺¿ã;Ì'évHºN ¹}‰:ß»!ãendstream +endobj +537 0 obj<>/XObject<<>>>>>>endobj +538 0 obj<>stream +xåTMoÛ0 ½ûW=e{’-øã˜6]; k×Æ;šÌ )•ä!û÷£-§HQ/+ÐKÂ0`€ä#ýÞ##ŒE +Yj±„AΫ¤QôÒkVC@i’O2ʬàÿ +”-Nëèó— +¸€zESå%}4@1µš]-çp®» ZéjÛ9 ,ÌF¶Ú}ª…bŠã´ âÙ>vè|ˆ +àOÑ<éÁgÚÐH/_b”!ëÝÖh‡!! óãëu¥Ï»Ÿ1Ï’´oà Goe´§¾ÏñâÊ×!zÛ¢#}dóF(ß³ ­^»‘žF<‚gÑwvLØSz8:Û•½bŒqI¿}Bè¤U´:×)…ÎÍHê^ö„ŒÞ{Åo¶¨a‰Šº†™(óIÅ÷¦q§£È¡¤î[ùpPƒò鸗ÁcÀvìl°R&F+‘sÀ v8f#Z¸C­Í~{Ûgb·¿ß\Ý_^/‚ù¦ü¾5ëVý©›5‚7ðAõ G ”£a¹ ëYU³ñ¬,çßNç°À߸6[´.º6ìCÌ‹rÈ Võä¿·O")ò’Î&e‹ªŸö¼Žn£¿7T‚+endstream +endobj +539 0 obj<>/XObject<<>>>>>>endobj +540 0 obj<>stream +xµUÁnÚ@½ós$Uíx ئ7R’‰@ N/I„Œ=(nm¯³ëD¿¾³Ø8à$(©,$‹Ͼ÷æÍì}‹E׆ŽaÚ²L f™6t=—Þmú „Õ&Ðë1Ó;è4˜Ý3»‡¾ptñgGœù­Ó‹>0þŠP9ž ~„ȲÀÛ3”9Ï$žø¿)ÏÙå¶CgøQûÇt¼ø>–ñn'ZëJ°$&\b9Oâp wA%7í Ià/ +.oNtC·-,°P"#HÄY‡A¤ +C”²€1çTóÑp¾Z³kOx_ Sé³BÄT7ÎHð’)¤J°DAŠÈý¼{…²0w*å Û+1Ìp“°ö[Ó$jJÕKmTÚª{5šø»L8¤þ’/Tù5 ?5QYÄC•’XÔȧÉEòÂR­V(kLñ±õ3­þq\?!{ M +´ +®»œ[ˆ•Ê«†q8½\ßzýGšJm§¥Ö°ð.×̹mV;äiž`ɺÎ9°\Óè¥÷r)­S­¥÷îÛ lµ˜·`i1Û½p½êŠa®g:ý>8´ú7÷Ì|py6€!>`Âs¾©8ÚÜ[Æ6×p­¾ÞÿzÁ~Õ7’nP×íš®ãÑ-B‘ž¥ÿ:÷[?[ÿȱendstream +endobj +541 0 obj<>/XObject<<>>>>>>endobj +542 0 obj<>stream +xµV]oÓ@|ϯX!Z„í¸vÊ J“ù¢1EÕÅ^7çν³ ù÷ì]œ6.4mA$ŠåÖs³s³c_¶\pèíBèA;€xÕrlü°c{àwBúíÑG"¤fÁ;ríÎí…“¨õâõ1¸.D)a¢Çq ŠNñ²BUFߨ,¸.³¼Àö©ð`6¿ô7ë~½N\,·M$¨`4ïB!ò,^Ã’ñ$Ç&”µ[ûa8‰ÚÞÝX¼Z#/e†ê¿£|œûÏî¦RñDÄÕŠØ`‰X±ŒÃ|؇E•¦(©ãŒVä–ÏÙ +¾Á¤;|ÙQìëÝÍh`¥€B.Äwj©*ì=äã%“_ö6ÔY¬KB· e¹Â| ¥d\åL §S¥¬â²’øj³áÖ‹Æ^gc³ST…àê–y¸öa:>?¼¾»ÇúŒ$Òñ ‘ÆâOëG8;È3¥{b q…g‡{Ô{ÌÑ?ØO˜Çp5ºû4ÒÍ (Ú$•bu€<‡¦<ûÜõ¯­lœS”Dò§d³ ãI“ï¨*ŽQÕ!B†£ÌÓágµýÝ&ƒh4}3€,bˆ´_Y\„Æ$YVÔ6Üƶah:í¢%‚Ò‘©&R Ë2ò-”ì;rÊe¦  `_j“¸¶ßö B‡¾ £d Òj bÁ9=œ%ag½§ húôOJ*ù|vhC¥hS¹.´ ¦Ô!ed&~n`;Á‘F'ŒÃé¬gY¹4È&\žœÑk6œ ô÷V„'6ÌKA;ji–cä¿cgüâvÑs’ƒÓPÀw„·æ^@ÃOç¡›s~úmÇ1V“¯.èå%-ô–,Ï‘_ 1Ò¨úÞRû«±fØÎQ^Qß\£Ån@çq¥cˆ°”¢S‚w¸®I!Ý­Ho¢Bÿ¿û·Fn²ÎãQféúšºD:Úsy³OZzì¦|ËÚ”ÿñ}°Ý1ŒÄ5sìcéÖ¸iznC`A¦lº¶ûNý à†¡í!o‡Æžóîø¤ }¼Â\(¼©²ÄÌ›åÒsMp| VèoŸ,Ft·ª +3™fšý€‚Í2YýÈÕ¢ÖûÖ/œ=°endstream +endobj +543 0 obj<>/XObject<<>>>>>>endobj +544 0 obj<>stream +x¥UMoÛ8½ûW ÐCÂR%Ù‘Þܦ]H²ÛÆí¥^,jd±+“.IEë¿CŠrb×q +† K¾ùzóæÇ …„>)L3çÀ׃$Nà<™Ä9LfSúŸÑW#”þ`|>ŽgDz$?~#M³8;¼ñv1xýai +‹’¼ç³), + ÏI >¼ÄRH4P* ¶6bƒ#J+Ê­+zð£A½¦ñlñðò^”åñ„‡W·søŒdg,¼«X]£\á›Î¼wOYGé˜b$ûä¿d²=>vp·¨ïQÃ_̘Vé‚žíiÀü9Àù5\©•’§a²_„)ËÓ8ãgpæ­ ;Q>ƒáÓwJZ­êÓP¡wRÃJðå§'º·ï:(sÜÞ(‹o vuÓµH²5‚±L[­ ¬l«àårùxÅ4ãµ& ‚5› 5•3ƒ±sà`…óZ½£ßšñŠh:©¬Ñãã׹ +VÓ×L²ùÛô$ª˜©FÀVLHbj[ NÑÒ +´ã¬ó)Œi° 1Øs.ÍsOca Ö%,‡µjCZ˳Ø!Ò ·¢®á9!÷˜dùµ—g!‹Â¡ù!aFP3*`LÒP6†&ò òe(~ï„~Tk`«° +Xݲ­©][(Qãzµ+Çr(bçáêú¨Òÿ åöùR1©×”ÛW×@ÊÔ½}ý8ô%Êf£‚tçGôâëŸ/_u§Çä¡‘…âÍš8€Ü5eéz¨=ú@$hO5¾Ü|¼]|ó{ vµ\Ž¸:Tõ÷`gÖÍÆ·ÙßO!_lŸùC¹ÍFIó´>?ë,Œòž³ÎEO¶Ñ’vHDœ('R0 çhÌ.2/-dòXXœÎ¹uânÀ¸¨ +‘ím‹(‰íÝ2q²¡±ËnähÎ7ž¨}4ú}ÅjgÏ+äÿ:‹õnÒéÁIþúÑí.G;Dºö€CsÚ­C­\~@‚ÓiÁFã½P©·GqOüü9Œ0.»=q“¸ú§¬ÙŠä@ú úÌz©ñÓÉœ+Fê×ÛøJ„Y›…YK§³8¿¸ î÷ïíüúí.ñkEkà†–¸K9ê-£irñäªv–“é$žæ3j1Éü¹ïÔûÅàÓàRV…rendstream +endobj +545 0 obj<>/XObject<<>>>>>>endobj +546 0 obj<>stream +xÝVÛnÚ@}ç+æ1QcÇ6Ęö)wEJ“¶Ð§¦Š6ë1¸˜]g/Pþ¾³k !éE}ªÖ;—3sæ "zÅÐO ›Ÿu¢0‚4íÒg/ëÓgBo…PøGñQ˜ízÐí¶Hâþn‹8醽]®’ÁsO'£ÎáE +q £‚ÒM³>Œr T£F|ïF| Kiafµæ ¸¬— 0^•(LÀYÅmÅ æÀætT²J>Žåœ'¨ð3«Ñ.aQVäPŠýÑ·NAÜ JaOÛ–³tŸrfJ) f|ŠF‡Îàðbð”{d„›L?9;mšçklA’6ϯo/ï¯n.n› ½Ö5é)x +J£X.E!·[F¦¾d_åõ…R½âøóÕÍ(ûòŠãšåy)Æ`$ô‚‡¥¡UåXP…Í´aʸn ߟPXŽª-ݪ4[(\°nò2ãû¢bc ÐwI}vMoŽîö¬¶¬‚9«,B©!úND¢9ˆ‹ân¿qºj˜ºn™®¥Ð¸]¢ÃªgüWÅÕ¨æ¨6É÷¯Pj6£‚j‡¶E^ +"¶ç˜Ñ iÉ¥ÐX%h”ât´åµ¡`eeiè›Y1r!ÖL&úº) ºqËÔá1 `˜Ö ©rú½ƒÙnjÛauC)pAcÒP´Õ5r×'¢ƒ³ó! àjYû™²Úó‡Le•¯Méö*á‡}ŠKŸìFc… Š< Y >U˜È©JM[àI6Dc³Yþ>Ÿ Ÿº3`cV +'9O +Š¸R†×çnÏLq­¤«¸íCÖ +祴ºZ®E©ó ÁºÛßÏõ9ÀQ+9ñÖ(ë«[(9Ûø¨{¨Îcß”D°7;òoàÔH®óÝùügŠ|z}3úI>üi5üŽB¿¢£[c€¹ävF«›6¬·ÍŸ‰×é§ó³áË’úœXáŠlž¤à³X]#SDf?Á$ï’ö¬gÇoëÏ;ÒãS¯ÇQÊ6ä©U¥&ì݇q? ÓÁ€þ² š<<~r g8ÇJÖH™\ZZÎ(XÝ úÑÀ)Ñ5éÖñzk#ø…Òë÷Â~š‘ÀÑ•£®³<u>v~'»&endstream +endobj +547 0 obj<>/XObject<<>>>>>>endobj +548 0 obj<>stream +xíUMo›@½ûWÌÑ©Â0^p{¨œ¯6Rê¨1î)’µ%¦²Yº NÒªÿ½3 Ä$qÔC{,–e‡y3of߸øó ôaÄ!Ù \æ8ó!ˆB¼÷ñ¯%dvcFû6¢\Öô-.ð½Ðc^çÃð¾ó‚€ÌmO1÷Ù¸3îz—MönøþË£xðöl^q†YñoR‹æBœ /æS˜O?Ã…ºUÅAü 9x^cìø!gª’ï`+Öyº¬Ôˆu-!Ï2¨Vèa!6D‘B)Œ¹S:…•0+˜¡}2¥­±–ßki*™Bª6"/XƒŠ!>¢FŒ‚^5–/£âÍ>ƽ<Ÿ]6AëKæx#, z0b³ÌS0•®“ªÖò)”C¦þ#˜)UaZ“>-Ú×Ëó“7¯CÕEª’z# Êì¦Î2ä©T9.õÓ,jàñÕéÉüu§Èëý$Z¦è8kà}VåÈ·©Ä¦Q–Rh•‚,Êm¡Ð¾¥Õ… ÕÒlÌ#LwÌ¢‘å&Ïàz¸+êõ…á"wضÄÝÏgkhÅù,öx³æ.¯’™:¢HóDTyq ‹ùé•-ÏŽ~S‚œXZ­·BΩúl‰£Œö¸ÙØÎÊ6蚺ƒÁžÛ`4Mg#°ï1N¹åLàá!â´®VJçZo%ŽeÓ ïqb˜a`´ÿ¡î{Ñûª /dÙ¦/ ˜:I¤1ÏBýõl-×MÃõ8ù3íÔ'AK>²Õ…²S %¦‚]Ù´C†"ÞQïÞ»x€=õ³@/;f§¨+cŸ‡Îæýq¨ñrOãÅ|9»\ÎÇŸ–VG×±–ÝØ9 °ÀÎÈ·W,{_첌jñªÚ5¼‰›õáU­NkvÍL*hÇGàÄZé8QI­5ÎêúúŠp}RkTÀD¥Ô^Ô42íº¡U+œHRS’bVtŸ åÿ +¹OáÿZ!£Ö«øŒO&Àù„q>&™À¢MáDnåZ•öc§ö áxøÕ'k'tQ`Ÿ¶VAu €…¨¸ø•M‡ã€ƃ/ƒßÐJîendstream +endobj +549 0 obj<>/XObject<<>>>>>>endobj +550 0 obj<>stream +xÕ•ooÚ0Æßó)îe+5YÒ$LÓ$º² +  +î«1Mir@¶`ÓØ¡ë·ßÙáOiiaZ÷b áìós9ß5\pèíBèA3€tÞpl‚0°=ð£Æ}J„Ip\ú¹'pî{v°/àE-;ÚhêäO2]°Æ»Ï>¸.° © +¢X¤Èq€¥'%ªªä° çYž& +%È*MQJ*ž‰´š#W˜Á$É‹Šd¯æå‚Û§ìeoKIuv«éÛ>å?Ó«ßîöF½ãŽþb½ÁÕ ®—A–R•´$ +ßÃœ6‘…Pîó¢€Tp•äòK.—¸™qJÀý,Og f¸Ë™¨Š n$é¶MP%åĨ.ºƒ‘–@ZÝ&mÌ“9%aع¾éŒØ÷¸Ýï|ðœg”©ÞÇÿëyz7³FLÌxž¤³œ#eö4ÿ–xW¡T[‹È—Ú"·¶èºÂò&¢„/—Ÿö¸²õ$fK,%ù}½~Ì”ø‰fè9fH²­>!ÁZ ÔE%Z¬ Ϧù¹žW;õDÙ + Ë‹jeÃZúsMA¿éÆÌ êðš,}c¨ó‹à +‰¨WJ´/±áËÙÖöjËw%Ÿã<¯$ÒÕE_¿½,h‘dYΧ?Ϻ}Päs‘O9«f 5DÆäkàw4ßÄÝ·(]+nz/ Þðs ê×ÎtÞ_åX[ç ¶aÈ3–lÙ«óÝmèiõþ¾6Á7Ô ƒØ§czsa|BSµX`™&ǧ»rwùÿãé–™ ¸¹éê>ŠJ2sÝ­JL‘ZUV·4Ó¦z{µÿtu>ªŽhE½«o÷V ‚À­¯¡Q»цK\b!ˆ+ WUž™Žg¹adæZ¡Ó:|»ú¡o‡AD×1]nççúˆ:¬qÝø ¦7STendstream +endobj +551 0 obj<>/XObject<<>>>>>>endobj +552 0 obj<>stream +xÍU]oÚ@|çWì[R)vÏئ/(QÚ +)A*¸OIT]ì®1wÄw†¶¿¾{¶qpìH‘ª‚Ýzvvvgý8p€à×Ð/€d= 6áȳ}ð£Ï.þr‹òÂõ†ø÷ÙÅE<øøeŽñ±‚) !'§óók¸’K)>Ä?10Ç©-7ÄÀÓ©Ôì¬i²â‚ k\`Jµ‘BáYÁ&g KY +÷¿Aï$œÜÞž@²¢9M4Ë•m€ Xn€¤Ài¼Å;.Å\]Oc-XytIylå X ^1P&9Ux–˜yÉ·L˜8s•³Ç‚)ýz®B±¼a^E·Ø«bMï3$ßÊAõk॔BQUÒ¬ÊþRÁºäï“iìÕµ_ Œí´Ïv$ä!Ž i†uÜVK‰,„nSjãL'óxvœÔaËßÓˆßÑÉ£µ5å™ÊdgM(´ç¯‰f™Ü1l6ÎQÒ+PX*‘‘€ùäÿÃ:ê3f¸Q<ýaâîŽÓ{B<¹@Ôê 4–f•ž Úî%Rn:Çø MS.– %øcpÇ`` _ +Øq½¥i®Mê½Ö¥¡:’v‰ÝX¼C™¾anvû0ê¥Raà*,ý[ +è6®6B;ÍÁÖê#ZZØC Ïö›U~“ÿ± ‘âNæØiÛt^(ý3ôЬG×¼Ú¾˜Óÿmd¢zœ0²ƒÑ‚°ÞÚؽ‹s¸d[–É ¾¬àkÁÓ²:kk…ddx«Ñ~èÛaá»o†åÚÿ¾ þ=2oendstream +endobj +553 0 obj<>/XObject<<>>>>>>endobj +554 0 obj<>stream +xÕUMs›0½ûWìÑé +˜Î¥“ïz¦qZ›äRw2 +,¶Z#I¤q}°èø£=Ö{°wõ´zïíê©ç‚CoB$yϱÂÀöÀBzö裲:pìGÛ~0°ým+<×±ƒmAþÇgqïÝ•® qV•D!Ä)PIŽqÒÿxã9F~Gq£Ì!¸ÏÀ¢TkàSqÚŸNî§÷ç+&4K ŒYŽ)|â6‹6ðX^H¥Ñ’ ̸@ ™T`\CAÙo§( ÏV\Ìéo„§Õ +˜Â“)XZ!Íæc40]P +\Š2ïnXéˆ>ÚÑyq².H}†M¸†AõŒ +® q$2¹Ë=n¢ÄQ°áÃÝ]R»òŠáþX<]W¾Äg\)èÜ$ xfË‹š…ºBcÅô«ÌÙãrUÇ4Q LÓ³¤„ß ˆ7mìªÄ6SõŽ Ï´b…g›³¾ÆÄp)àxv9[Á#‚Ì`ÉsnHC¦5׆‰a +kÄÚµ]*ì¨9òë-»·ö¾¿]¼ÙMh!¹0Dý¬o$èFAG{?;êBv4»¦ñÄÛ ÛBÚ3ÇÑ—¯»a +–¦µ#%ÌÉ¥à‰L´QÕ¿¾õ¸2$Â’ÏQF.i S¦"³2òôæŒd)ª5‡?tD• öçÕ-γ¥å±=0) 6ýp:¹|¯n܇óx²t{êf@´ûµé N}ØPêÅQïA¿;À5O†J‘J9{áy™ÃÅœôšÑxÈèÕ×ÆsÔÛµÍk‰^Þ4c·Š–ÓÕÐêø.Æ¿9áÓpÖ—‚fu±Ï³õà«å-Œº„ÖOT²¡¿!}=ãšR º4-q)O˜¡«C—I‚zm‡h­•Fv0B¸ÍØŸžÞœÂE5`eJÃuI—LżµÉµBgxøóC߃ˆŠ á}V—qïsï–C*endstream +endobj +555 0 obj<>/XObject<<>>>>>>endobj +556 0 obj<>stream +x•VQo›H~÷¯˜‡>àPÀp¥>Û©¬äÜ;›öJm—uà»”G¾_³,¶.­CtBHxgvæÛo¾™õ‰ >.„Ì ÕıüÀöÀBüöðmì{ÃÕ•kG— ¾ãÛÁECôëúu2y3ׇdɃ?2ÀÄŽ 56¬…k¬Oø¹æ{1MþÆ-¸®Þby!n16¢e dVB!¡ÍHR18²c@$¼_lØŽÉÖÖa0ó9Ld«ÜÆV;üš&Ðö/›õ.ÙzÚîû‘/Ë!Q@j¼³¿ bý×ëËz“ÌÆ¢<-Íõ^bíÃxg´²\þ”ÉË;ÁýßyNÔ¾€ûõózùÛëg®EÁ[,R+`·Ú~]mÖ››Ï®ãŽPpÑs„Ñ«©!xy’e,ƒbÛ½­nU{.¸õkD:UÉ5] k»†£Ð,ÔCVPÒ2 ²£”Iyfõ¤´hÍ|]ñEs¬[ñØ:/(È"c ö°I`)*‚²Š;ToU´Bðs˜AÒÖÌAÙ£.–l_ðB¹ ©ND«jõŽ³,5b׌= ýýÍ%6ÖÈt ß-Âh2Ö ÈFXᢢi˜EVðGðµã3zö-@š†%Ä.žA<ð„äEÉW©qk.Ç,W;X-®qª(“)‘N™‘–À:©`„zí‰ávDe%ž÷©1–óŽp¨ð͉ÌG"ñöÍHXÀ7‚üñ—Îp© +Uæ§FEh^pöP)Åé>~„ÞTJ’uU ï›PªÍõ³2œ7¿ÃÕÔè•AÊòØû¨´¨ŠÓDÑ57/¨ÈØy{:UÏñvHoÍ»'siÞ!Ä×Ϥ\*æPE,kÉøc›Ã]8™rèK©Ê}ZÁpøVÙ6O ³L§÷¯ç—Ýw‰Sƒ`߈ª„Jn‚è%¦H‚Z÷Dµ:v1ú PÊ$ l—7u­”ÿ-´íÐ ïÍþ‡cÛÁ½j,UÝ©¹A€b4Õùd,eRTX®1Þ‡&¥v.o¡Å cG æb˜ —„9´- Kuù0"iŽÔaù–š[ùáÔ©\ÏçEÃ=çúžÌçø¯`®‡Ú.þý:†¥ºvEÍ Ÿ:œ +½å†xߣ¯:óþ†¾|—û¡o‡A„gäU¤¶®’ÉŸ“ÞbYendstream +endobj +557 0 obj<>/XObject<<>>>>>>endobj +558 0 obj<>stream +x•V]sÛ6|÷¯¸§FI(V²eÉòL3£(I›IüQ‰žYúÞo×_¾ÎÃp|ú-¨?ŒÂpú-XÄñf°”ÁÒn^ò«ŸöœVç—F!î“€ÍKò•KTáR)œ +´F(—z EÊ€„µÊ¸Í€ÓtDdòÍàØò¼)<> ¹ŸÃ1¤ìó0{ ¯ +ú®Ó"-î(Ö¹H ÿVf) Ò.Í2Ò¥ÃHD–íI8§òÒ‘Ó$QÜ)J¥5wÚÄ$Š¸›HêÂeÊP.ö=œFm+«8SUƘ2Q¬JUÄ u—ZgöàÄ9|gCŠ’ÔÖ˜Df5i)+C;¥îÚÖ)³&¶a¯Ëå9Ä‚ùFi®6íJ¾èÎ{%_GvÖÊüPæºii­(zD2èáFN˜Ø¯Ã,CY®wÛÍÀ` +PS“€ 2ñ}9øš¯ÇÌäy‡jàêÖä^ñˆõÒöS èiGÕÙYô+‹X+•l¯R{ äõˆS½IÞ@‘çt +\òÈú5>ÛDYæ2Ów¬ Ý•Áf2¡'‘¨d+™ +A4÷Ö –—×N-À^¯:O¡ºø¹ û´^*÷Yßéb-rÿ¿eõ¦?ÚŸyOƒÂyj¯ÁÄxê—ó'öÕ úOÌöšm··•Åæ8 Ë%Ë‚Ñ®5EO$Ðã©vºƒó´ošCØ=“[½€2ŒßJ“–.¸ùø.X|gåüFtiöÐ>:–/ÑÉÿ/‚ç]WžŒ'Öy‘xƒ~ÆÎaVÛÔX÷O–Õµn©«,¦[Õú:ÞÃ!Š½.epå=ãDçì|…r¬EÖ$>öºÌ…LRl9¡a¾o¼/ô® "«TH70õÌçkÀ®ŒºÕúeóvê]¬ Øé^QUH³‡Ó^F~3>_ª¢ØÓ¶*$oŒ%½=`Â.%)/îÓNõP¥€Æ3 iQì‰IG _S 5õjÞª­ÆyHÛ·z«»qÓ¶WÁØaô°Óº£Düð§Ró\mR•oÒÕ|TÆö\3°;=4€!5‡qó>ûª`“èûü%O3átF¹Ê˜ºo™…~0'z§ÒèmšñÐ`i|±úé•(K%Ì+v2¨ANI&ñ¶ +pñ…²µE­¨hy+RÉ{[å} ‚ \3u;°À¼„¤|ͦdzW€‹ø¹£ÍÝlqU²W¾ÕÎC…6l<…Öì0Ž‡Jauj‘|$)Šë„~ˆ@|HèbP|§óœ{òÀôŠ~I|„Gþ8l,—­{{úÙ«/°‰_ÓË«ˆ‡Œ~i?äh7Ò0"›Þâ†oV‚•„ â¹ >Þ­,hèA^¬–þ’òÿÙÃù2ö××#ÐÆ$˜Dÿ¥€®Û%CÇí÷8]/:oN=ÞÅ…oÒ»9ùux2©ÝÌ눵‚ VÏÒÂ)?­=‰òÛëm%Ö²b/Ä´UfÕÒRM©³æ1w<; §ó9M§#>/XObject<<>>>>>>endobj +560 0 obj<>stream +x•mOÛ0Çß÷SÜË"Í&NÒ$Ý»²„ÑLlR¥ÉKÍšáÚàÄ”~û“ÁÆœ6ª’ÖçßýïÁ—ǃ/iQåfÐ’ ¦ˆ³ŸCüwíB2šþ½pRŒŽOc` Š;d%Y +Å +P”ã,ÎçPÕÀä,DiMÕìÿ\Žk!`~uùÙԱecXQ(Öbë;hÖè_›ÍÇ£â÷ˆÑ8 +„)Íð^¬ÆF>/XObject<<>>>>>>endobj +562 0 obj<>stream +x½UQo¢@~÷WÌ#M\ŽEXð^.Ô¨½̽˜N×–;d-Ëözÿþf{mÔ¶—šBH€™ùæ›ù&³w +Þ<z VÛŽeZÀzÌdàø¾ÛøT6Áe.~ž0ô<ß´O(µ ƒ¤óiÄ€RH6˜ù$kÀÌ–ÉÊX³JQUæwŠCÊåÕUòƒœ6¹ÚCädmÄ„—XÔ%¦iîýàä©ãÒ¨¼¨I^ÂZl³¼| U¶¨¶µGìu4ݱGMüXßyQ_¥ø]Â< +ãç- ¶.Ì´r Hõƒdª¾U^ÿû¬P¼ ™„]VÕ 6Àóú–WèGaDÈÿÀ*“\ÛÇ•P; '»1Ú^OÓqj˜öÐYWjU« +s´8‹x8O£Ùè:¥plÄÄÁ&âF”¨ºÜ‰Rò¶¥Ø€V/bû§Ê%y%÷=pŸ8³½sC½Ì¶üóó6š|ÍÒ†––á4šÅù‚ׄõ€³Ó*u"7¢‡Ð‘s6ÉÛÉŽÃ89‹sA²î>Éë2Üèy‡ãùõâkú(D;Õ'ºz±âì¤{U‰tõ}[zVïÿ`Û Î‡Ðµß:9Y‘ãžyÇè“(ˆ/2:~»@(,¬ßƼvÛÓA!¿ç…Øá¾±Ê×\WH¾Ä³úg¶³ã9¦Ç|>/XObject<<>>>>>>endobj +564 0 obj<>stream +x½•ÁOƒ0Æïü0hÁ‹)P qHKOÄl5QÌ™©¾e›ñ°p0iÚÞÚ÷}ï——ôë»åRÛâà Ãzk%º¾ Áó@<«@.BÄÚ®‹ìæJ¼ªšà\cò}t:ûÓ9>v¥´óýpØõO[y!ËÊ-–-”·Ê·m8«ù¤Ñ­Zè[qM7Ÿ õ&›üƒ6oFp}¸U¹bµ¹Ït0Ó4-›¥hËÊÈœÌü‘ ¶0…ê@®êÂܱΩ÷MejÈDrͪy‘RQÖ“n.:5‰Îí‘ÈÅq 8 ]<¦2§‹„B&?e7ìäþòÃËFŽ"ç·Ö!(KW²ëœ·~øêAÅéñ!$p ŽÔ÷ îñ1ž˜°¬õ,ãendstream +endobj +565 0 obj<>endobj +566 0 obj<>endobj +567 0 obj<>endobj +568 0 obj<>endobj +569 0 obj<>endobj +570 0 obj<>endobj +571 0 obj<>endobj +572 0 obj<>endobj +573 0 obj<>endobj +574 0 obj<>endobj +575 0 obj<>endobj +576 0 obj<>endobj +577 0 obj<>endobj +578 0 obj<>endobj +579 0 obj<>endobj +580 0 obj<>endobj +581 0 obj<>endobj +582 0 obj<>endobj +583 0 obj<>endobj +584 0 obj<>endobj +585 0 obj<>endobj +586 0 obj<>endobj +587 0 obj<>endobj +588 0 obj<>endobj +589 0 obj<>endobj +590 0 obj<>endobj +591 0 obj<>endobj +592 0 obj<>endobj +593 0 obj<>endobj +594 0 obj<>endobj +595 0 obj<>endobj +596 0 obj<>endobj +597 0 obj<>endobj +598 0 obj<>endobj +599 0 obj<>endobj +600 0 obj<>endobj +601 0 obj<>endobj +602 0 obj<>endobj +603 0 obj<>endobj +604 0 obj<>endobj +605 0 obj<>endobj +606 0 obj<>endobj +607 0 obj<>endobj +608 0 obj<>endobj +609 0 obj<>endobj +610 0 obj<>endobj +611 0 obj<>endobj +612 0 obj<>endobj +613 0 obj<>endobj +614 0 obj<>endobj +615 0 obj<>endobj +616 0 obj<>endobj +617 0 obj<>endobj +618 0 obj<>endobj +619 0 obj<>endobj +620 0 obj<>endobj +621 0 obj<>endobj +622 0 obj<>endobj +623 0 obj<>endobj +624 0 obj<>endobj +625 0 obj<>endobj +626 0 obj<>endobj +627 0 obj<>endobj +628 0 obj<>endobj +629 0 obj<>endobj +630 0 obj<>endobj +631 0 obj<>endobj +632 0 obj<>endobj +633 0 obj<>endobj +634 0 obj<>endobj +635 0 obj<>endobj +636 0 obj<>endobj +637 0 obj<>endobj +638 0 obj<>endobj +639 0 obj<>endobj +640 0 obj<>endobj +641 0 obj<>endobj +642 0 obj<>endobj +643 0 obj<>endobj +644 0 obj<>endobj +645 0 obj<>endobj +646 0 obj<>endobj +647 0 obj<>endobj +648 0 obj<>endobj +649 0 obj<>endobj +650 0 obj<>endobj +651 0 obj<>endobj +652 0 obj<>endobj +653 0 obj<>endobj +654 0 obj<>endobj +655 0 obj<>endobj +656 0 obj<>endobj +657 0 obj<>endobj +658 0 obj<>endobj +659 0 obj<>endobj +660 0 obj<>endobj +661 0 obj<>endobj +662 0 obj<>endobj +663 0 obj<>endobj +664 0 obj<>endobj +665 0 obj<>endobj +666 0 obj<>endobj +667 0 obj<>endobj +668 0 obj<>endobj +669 0 obj<>endobj +670 0 obj<>endobj +671 0 obj<>1<>4<>5<>8<>10<>12<>16<>18<>23<>26<>30<>32<>]>>>>endobj +xref +0 672 +0000000000 65535 f +0000000015 00000 n +0000000245 00000 n +0000001811 00000 n +0000001885 00000 n +0000001963 00000 n +0000002040 00000 n +0000002119 00000 n +0000002202 00000 n +0000002278 00000 n +0000002359 00000 n +0000002460 00000 n +0000002562 00000 n +0000002663 00000 n +0000002764 00000 n +0000002866 00000 n +0000002968 00000 n +0000003070 00000 n +0000003171 00000 n +0000003273 00000 n +0000003375 00000 n +0000003477 00000 n +0000003579 00000 n +0000003681 00000 n +0000003782 00000 n +0000003884 00000 n +0000003986 00000 n +0000004088 00000 n +0000004190 00000 n +0000004292 00000 n +0000004394 00000 n +0000004496 00000 n +0000004598 00000 n +0000004699 00000 n +0000004800 00000 n +0000004902 00000 n +0000005004 00000 n +0000005106 00000 n +0000005208 00000 n +0000005310 00000 n +0000005412 00000 n +0000005514 00000 n +0000005616 00000 n +0000005718 00000 n +0000005820 00000 n +0000005922 00000 n +0000006024 00000 n +0000006126 00000 n +0000006228 00000 n +0000006330 00000 n +0000006431 00000 n +0000006531 00000 n +0000006631 00000 n +0000006941 00000 n +0000007042 00000 n +0000007144 00000 n +0000007246 00000 n +0000007348 00000 n +0000007450 00000 n +0000007551 00000 n +0000007653 00000 n +0000007755 00000 n +0000007857 00000 n +0000007959 00000 n +0000008061 00000 n +0000008163 00000 n +0000008264 00000 n +0000008366 00000 n +0000008468 00000 n +0000008570 00000 n +0000008672 00000 n +0000008774 00000 n +0000008876 00000 n +0000008978 00000 n +0000009080 00000 n +0000009182 00000 n +0000009283 00000 n +0000009384 00000 n +0000009486 00000 n +0000009588 00000 n +0000009690 00000 n +0000009792 00000 n +0000009894 00000 n +0000009996 00000 n +0000010098 00000 n +0000010200 00000 n +0000010302 00000 n +0000010404 00000 n +0000010506 00000 n +0000010608 00000 n +0000010710 00000 n +0000010812 00000 n +0000010914 00000 n +0000011016 00000 n +0000011118 00000 n +0000011219 00000 n +0000011319 00000 n +0000011419 00000 n +0000011743 00000 n +0000011844 00000 n +0000011946 00000 n +0000012049 00000 n +0000012152 00000 n +0000012255 00000 n +0000012358 00000 n +0000012461 00000 n +0000012564 00000 n +0000012667 00000 n +0000012770 00000 n +0000012873 00000 n +0000012976 00000 n +0000013079 00000 n +0000013182 00000 n +0000013285 00000 n +0000013388 00000 n +0000013491 00000 n +0000013594 00000 n +0000013697 00000 n +0000013800 00000 n +0000013975 00000 n +0000014030 00000 n +0000014117 00000 n +0000014172 00000 n +0000014259 00000 n +0000014326 00000 n +0000014412 00000 n +0000014514 00000 n +0000014617 00000 n +0000014720 00000 n +0000014823 00000 n +0000014925 00000 n +0000015028 00000 n +0000015131 00000 n +0000015234 00000 n +0000015337 00000 n +0000015440 00000 n +0000015542 00000 n +0000015645 00000 n +0000015748 00000 n +0000015851 00000 n +0000015954 00000 n +0000016057 00000 n +0000016160 00000 n +0000016263 00000 n +0000016366 00000 n +0000016468 00000 n +0000016570 00000 n +0000016673 00000 n +0000016776 00000 n +0000016879 00000 n +0000016982 00000 n +0000017085 00000 n +0000017188 00000 n +0000017291 00000 n +0000017394 00000 n +0000017497 00000 n +0000017600 00000 n +0000017703 00000 n +0000017806 00000 n +0000017908 00000 n +0000018009 00000 n +0000018110 00000 n +0000018439 00000 n +0000018542 00000 n +0000018645 00000 n +0000018748 00000 n +0000018851 00000 n +0000018954 00000 n +0000019057 00000 n +0000019160 00000 n +0000019262 00000 n +0000019365 00000 n +0000019468 00000 n +0000019571 00000 n +0000019674 00000 n +0000019777 00000 n +0000019880 00000 n +0000019982 00000 n +0000020085 00000 n +0000020188 00000 n +0000020291 00000 n +0000020394 00000 n +0000020497 00000 n +0000020600 00000 n +0000020703 00000 n +0000020806 00000 n +0000020909 00000 n +0000021011 00000 n +0000021113 00000 n +0000021216 00000 n +0000021319 00000 n +0000021422 00000 n +0000021525 00000 n +0000021628 00000 n +0000021731 00000 n +0000021834 00000 n +0000021937 00000 n +0000022040 00000 n +0000022143 00000 n +0000022246 00000 n +0000022349 00000 n +0000022452 00000 n +0000022555 00000 n +0000022658 00000 n +0000022761 00000 n +0000022864 00000 n +0000022967 00000 n +0000023070 00000 n +0000023173 00000 n +0000023276 00000 n +0000023379 00000 n +0000023481 00000 n +0000023582 00000 n +0000023683 00000 n +0000024108 00000 n +0000024211 00000 n +0000024314 00000 n +0000024417 00000 n +0000024520 00000 n +0000024623 00000 n +0000024726 00000 n +0000024829 00000 n +0000024932 00000 n +0000025035 00000 n +0000025138 00000 n +0000025241 00000 n +0000025344 00000 n +0000025447 00000 n +0000025550 00000 n +0000025679 00000 n +0000025763 00000 n +0000025849 00000 n +0000025923 00000 n +0000026009 00000 n +0000026042 00000 n +0000026120 00000 n +0000026207 00000 n +0000026313 00000 n +0000026399 00000 n +0000026471 00000 n +0000026557 00000 n +0000026616 00000 n +0000026703 00000 n +0000026794 00000 n +0000026880 00000 n +0000026951 00000 n +0000027037 00000 n +0000027102 00000 n +0000027136 00000 n +0000027170 00000 n +0000030104 00000 n +0000030147 00000 n +0000030190 00000 n +0000030233 00000 n +0000030276 00000 n +0000030319 00000 n +0000030362 00000 n +0000030405 00000 n +0000030448 00000 n +0000030491 00000 n +0000030534 00000 n +0000030577 00000 n +0000030620 00000 n +0000030663 00000 n +0000030706 00000 n +0000030749 00000 n +0000030792 00000 n +0000030835 00000 n +0000030878 00000 n +0000030921 00000 n +0000030964 00000 n +0000031007 00000 n +0000031050 00000 n +0000031093 00000 n +0000031136 00000 n +0000031179 00000 n +0000031222 00000 n +0000031265 00000 n +0000031308 00000 n +0000031351 00000 n +0000031394 00000 n +0000031437 00000 n +0000031480 00000 n +0000031523 00000 n +0000031566 00000 n +0000031609 00000 n +0000031652 00000 n +0000031695 00000 n +0000031738 00000 n +0000031781 00000 n +0000031824 00000 n +0000031867 00000 n +0000031910 00000 n +0000031953 00000 n +0000031996 00000 n +0000032039 00000 n +0000032082 00000 n +0000032125 00000 n +0000032168 00000 n +0000032211 00000 n +0000032254 00000 n +0000032297 00000 n +0000032340 00000 n +0000032383 00000 n +0000032426 00000 n +0000032469 00000 n +0000032512 00000 n +0000032555 00000 n +0000032598 00000 n +0000032641 00000 n +0000032684 00000 n +0000032727 00000 n +0000032770 00000 n +0000032813 00000 n +0000032856 00000 n +0000032899 00000 n +0000032942 00000 n +0000032985 00000 n +0000033028 00000 n +0000033071 00000 n +0000033114 00000 n +0000033157 00000 n +0000033200 00000 n +0000033243 00000 n +0000033286 00000 n +0000033329 00000 n +0000033372 00000 n +0000033415 00000 n +0000033458 00000 n +0000033501 00000 n +0000033544 00000 n +0000033587 00000 n +0000033630 00000 n +0000033673 00000 n +0000033716 00000 n +0000033759 00000 n +0000033802 00000 n +0000033845 00000 n +0000033888 00000 n +0000033931 00000 n +0000033974 00000 n +0000034017 00000 n +0000034060 00000 n +0000034103 00000 n +0000034146 00000 n +0000034189 00000 n +0000034232 00000 n +0000034275 00000 n +0000034318 00000 n +0000034361 00000 n +0000034404 00000 n +0000034447 00000 n +0000034490 00000 n +0000034533 00000 n +0000034576 00000 n +0000034619 00000 n +0000034662 00000 n +0000034705 00000 n +0000034748 00000 n +0000034791 00000 n +0000034834 00000 n +0000034877 00000 n +0000034920 00000 n +0000034963 00000 n +0000035006 00000 n +0000035049 00000 n +0000035092 00000 n +0000035135 00000 n +0000035178 00000 n +0000035221 00000 n +0000035264 00000 n +0000035307 00000 n +0000035350 00000 n +0000035393 00000 n +0000035436 00000 n +0000035479 00000 n +0000035522 00000 n +0000035565 00000 n +0000035608 00000 n +0000035651 00000 n +0000035694 00000 n +0000035737 00000 n +0000035780 00000 n +0000035823 00000 n +0000035866 00000 n +0000035909 00000 n +0000035952 00000 n +0000035995 00000 n +0000036038 00000 n +0000036081 00000 n +0000036124 00000 n +0000036167 00000 n +0000036210 00000 n +0000036253 00000 n +0000036296 00000 n +0000036339 00000 n +0000036382 00000 n +0000036425 00000 n +0000036468 00000 n +0000036511 00000 n +0000036554 00000 n +0000036597 00000 n +0000036640 00000 n +0000036683 00000 n +0000036726 00000 n +0000036769 00000 n +0000036812 00000 n +0000036855 00000 n +0000036898 00000 n +0000036941 00000 n +0000036984 00000 n +0000037027 00000 n +0000037070 00000 n +0000037113 00000 n +0000037156 00000 n +0000037199 00000 n +0000037242 00000 n +0000037285 00000 n +0000037328 00000 n +0000037371 00000 n +0000037414 00000 n +0000037457 00000 n +0000037500 00000 n +0000037543 00000 n +0000037586 00000 n +0000037629 00000 n +0000037672 00000 n +0000037715 00000 n +0000037758 00000 n +0000037801 00000 n +0000037844 00000 n +0000037887 00000 n +0000037930 00000 n +0000038505 00000 n +0000038661 00000 n +0000038828 00000 n +0000039016 00000 n +0000041152 00000 n +0000041340 00000 n +0000043961 00000 n +0000044150 00000 n +0000045607 00000 n +0000045763 00000 n +0000045992 00000 n +0000046190 00000 n +0000047898 00000 n +0000048069 00000 n +0000050000 00000 n +0000050171 00000 n +0000050953 00000 n +0000051118 00000 n +0000052748 00000 n +0000052913 00000 n +0000054450 00000 n +0000054615 00000 n +0000056332 00000 n +0000056497 00000 n +0000058227 00000 n +0000058401 00000 n +0000059696 00000 n +0000059870 00000 n +0000061162 00000 n +0000061336 00000 n +0000062674 00000 n +0000062839 00000 n +0000063736 00000 n +0000063925 00000 n +0000065881 00000 n +0000066037 00000 n +0000067813 00000 n +0000067978 00000 n +0000069941 00000 n +0000070106 00000 n +0000070819 00000 n +0000070993 00000 n +0000072022 00000 n +0000072187 00000 n +0000073829 00000 n +0000073994 00000 n +0000074614 00000 n +0000074788 00000 n +0000076148 00000 n +0000076322 00000 n +0000077470 00000 n +0000077635 00000 n +0000078271 00000 n +0000078436 00000 n +0000080201 00000 n +0000080366 00000 n +0000082234 00000 n +0000082399 00000 n +0000084358 00000 n +0000084514 00000 n +0000085295 00000 n +0000085478 00000 n +0000087127 00000 n +0000087292 00000 n +0000088207 00000 n +0000088405 00000 n +0000090121 00000 n +0000090295 00000 n +0000092104 00000 n +0000092278 00000 n +0000092867 00000 n +0000093041 00000 n +0000093791 00000 n +0000093965 00000 n +0000094699 00000 n +0000094873 00000 n +0000095695 00000 n +0000095869 00000 n +0000096684 00000 n +0000096867 00000 n +0000097727 00000 n +0000097901 00000 n +0000098649 00000 n +0000098814 00000 n +0000099434 00000 n +0000099617 00000 n +0000100370 00000 n +0000100544 00000 n +0000101497 00000 n +0000101680 00000 n +0000103010 00000 n +0000103193 00000 n +0000104237 00000 n +0000104402 00000 n +0000104977 00000 n +0000105160 00000 n +0000106211 00000 n +0000106385 00000 n +0000107263 00000 n +0000107437 00000 n +0000108516 00000 n +0000108699 00000 n +0000109540 00000 n +0000109723 00000 n +0000110488 00000 n +0000110662 00000 n +0000111193 00000 n +0000111367 00000 n +0000112043 00000 n +0000112226 00000 n +0000113142 00000 n +0000113316 00000 n +0000114266 00000 n +0000114440 00000 n +0000115367 00000 n +0000115550 00000 n +0000116436 00000 n +0000116610 00000 n +0000117373 00000 n +0000117547 00000 n +0000118214 00000 n +0000118388 00000 n +0000119204 00000 n +0000119378 00000 n +0000120347 00000 n +0000120512 00000 n +0000121934 00000 n +0000122117 00000 n +0000122837 00000 n +0000123020 00000 n +0000123632 00000 n +0000123797 00000 n +0000124174 00000 n +0000124230 00000 n +0000124329 00000 n +0000124482 00000 n +0000124561 00000 n +0000124664 00000 n +0000124851 00000 n +0000124940 00000 n +0000125052 00000 n +0000125146 00000 n +0000125295 00000 n +0000125389 00000 n +0000125508 00000 n +0000125617 00000 n +0000125726 00000 n +0000125819 00000 n +0000125972 00000 n +0000126071 00000 n +0000126185 00000 n +0000126302 00000 n +0000126419 00000 n +0000126550 00000 n +0000126643 00000 n +0000126748 00000 n +0000126851 00000 n +0000126964 00000 n +0000127110 00000 n +0000127210 00000 n +0000127322 00000 n +0000127475 00000 n +0000127572 00000 n +0000127682 00000 n +0000127797 00000 n +0000127907 00000 n +0000128017 00000 n +0000128128 00000 n +0000128239 00000 n +0000128354 00000 n +0000128469 00000 n +0000128585 00000 n +0000128701 00000 n +0000128812 00000 n +0000128923 00000 n +0000129039 00000 n +0000129142 00000 n +0000129294 00000 n +0000129386 00000 n +0000129480 00000 n +0000129582 00000 n +0000129730 00000 n +0000129864 00000 n +0000129968 00000 n +0000130092 00000 n +0000130198 00000 n +0000130322 00000 n +0000130405 00000 n +0000130559 00000 n +0000130653 00000 n +0000130757 00000 n +0000130866 00000 n +0000130970 00000 n +0000131072 00000 n +0000131177 00000 n +0000131285 00000 n +0000131392 00000 n +0000131493 00000 n +0000131614 00000 n +0000131747 00000 n +0000131877 00000 n +0000131966 00000 n +0000132055 00000 n +0000132206 00000 n +0000132293 00000 n +0000132400 00000 n +0000132492 00000 n +0000132654 00000 n +0000132747 00000 n +0000132848 00000 n +0000132947 00000 n +0000133061 00000 n +0000133181 00000 n +0000133291 00000 n +0000133407 00000 n +0000133531 00000 n +0000133641 00000 n +0000133745 00000 n +0000133855 00000 n +0000133953 00000 n +0000134116 00000 n +0000134219 00000 n +0000134332 00000 n +0000134450 00000 n +0000134558 00000 n +0000134654 00000 n +0000134811 00000 n +0000134906 00000 n +0000134997 00000 n +0000135154 00000 n +0000135250 00000 n +0000135351 00000 n +0000135528 00000 n +0000135621 00000 n +0000135724 00000 n +0000135814 00000 n +0000135945 00000 n +0000136042 00000 n +0000136139 00000 n +trailer +<]>> +startxref +136539 +%%EOF diff --git a/docs/Samba-HOWTO-Collection.pdf b/docs/Samba-HOWTO-Collection.pdf index 85326c8b8c..8119971898 100644 --- a/docs/Samba-HOWTO-Collection.pdf +++ b/docs/Samba-HOWTO-Collection.pdf @@ -1,6 +1,6 @@ %PDF-1.3 %âãÏÓ -1 0 obj<>endobj +1 0 obj<>endobj 2 0 obj<>endobj 3 0 obj<>endobj 4 0 obj<>endobj @@ -13,50 +13,50 @@ 11 0 obj<>endobj 12 0 obj<>endobj 13 0 obj<>endobj -14 0 obj<>endobj -15 0 obj<>endobj -16 0 obj<>endobj -17 0 obj<>endobj -18 0 obj<>endobj -19 0 obj<>endobj -20 0 obj<>endobj -21 0 obj<>endobj -22 0 obj<>endobj -23 0 obj<>endobj -24 0 obj<>endobj -25 0 obj<>endobj -26 0 obj<>endobj -27 0 obj<>endobj -28 0 obj<>endobj -29 0 obj<>endobj -30 0 obj<>endobj -31 0 obj<>endobj -32 0 obj<>endobj -33 0 obj<>endobj -34 0 obj<>endobj -35 0 obj<>endobj -36 0 obj<>endobj -37 0 obj<>endobj -38 0 obj<>endobj -39 0 obj<>endobj -40 0 obj<>endobj -41 0 obj<>endobj -42 0 obj<>endobj -43 0 obj<>endobj -44 0 obj<>endobj -45 0 obj<>endobj -46 0 obj<>endobj -47 0 obj<>endobj -48 0 obj<>endobj -49 0 obj<>endobj -50 0 obj<>endobj -51 0 obj<>endobj -52 0 obj<>endobj -53 0 obj<>endobj -54 0 obj<>endobj -55 0 obj<>endobj -56 0 obj<>endobj -57 0 obj<>endobj +14 0 obj<>endobj +15 0 obj<>endobj +16 0 obj<>endobj +17 0 obj<>endobj +18 0 obj<>endobj +19 0 obj<>endobj +20 0 obj<>endobj +21 0 obj<>endobj +22 0 obj<>endobj +23 0 obj<>endobj +24 0 obj<>endobj +25 0 obj<>endobj +26 0 obj<>endobj +27 0 obj<>endobj +28 0 obj<>endobj +29 0 obj<>endobj +30 0 obj<>endobj +31 0 obj<>endobj +32 0 obj<>endobj +33 0 obj<>endobj +34 0 obj<>endobj +35 0 obj<>endobj +36 0 obj<>endobj +37 0 obj<>endobj +38 0 obj<>endobj +39 0 obj<>endobj +40 0 obj<>endobj +41 0 obj<>endobj +42 0 obj<>endobj +43 0 obj<>endobj +44 0 obj<>endobj +45 0 obj<>endobj +46 0 obj<>endobj +47 0 obj<>endobj +48 0 obj<>endobj +49 0 obj<>endobj +50 0 obj<>endobj +51 0 obj<>endobj +52 0 obj<>endobj +53 0 obj<>endobj +54 0 obj<>endobj +55 0 obj<>endobj +56 0 obj<>endobj +57 0 obj<>endobj 58 0 obj[14 0 R 15 0 R 16 0 R @@ -101,50 +101,50 @@ 55 0 R 56 0 R 57 0 R]endobj -59 0 obj<>endobj -60 0 obj<>endobj -61 0 obj<>endobj -62 0 obj<>endobj -63 0 obj<>endobj -64 0 obj<>endobj -65 0 obj<>endobj -66 0 obj<>endobj -67 0 obj<>endobj -68 0 obj<>endobj -69 0 obj<>endobj -70 0 obj<>endobj -71 0 obj<>endobj -72 0 obj<>endobj -73 0 obj<>endobj -74 0 obj<>endobj -75 0 obj<>endobj -76 0 obj<>endobj -77 0 obj<>endobj -78 0 obj<>endobj -79 0 obj<>endobj -80 0 obj<>endobj -81 0 obj<>endobj -82 0 obj<>endobj -83 0 obj<>endobj -84 0 obj<>endobj -85 0 obj<>endobj -86 0 obj<>endobj -87 0 obj<>endobj -88 0 obj<>endobj -89 0 obj<>endobj -90 0 obj<>endobj -91 0 obj<>endobj -92 0 obj<>endobj -93 0 obj<>endobj -94 0 obj<>endobj -95 0 obj<>endobj -96 0 obj<>endobj -97 0 obj<>endobj -98 0 obj<>endobj -99 0 obj<>endobj -100 0 obj<>endobj -101 0 obj<>endobj -102 0 obj<>endobj +59 0 obj<>endobj +60 0 obj<>endobj +61 0 obj<>endobj +62 0 obj<>endobj +63 0 obj<>endobj +64 0 obj<>endobj +65 0 obj<>endobj +66 0 obj<>endobj +67 0 obj<>endobj +68 0 obj<>endobj +69 0 obj<>endobj +70 0 obj<>endobj +71 0 obj<>endobj +72 0 obj<>endobj +73 0 obj<>endobj +74 0 obj<>endobj +75 0 obj<>endobj +76 0 obj<>endobj +77 0 obj<>endobj +78 0 obj<>endobj +79 0 obj<>endobj +80 0 obj<>endobj +81 0 obj<>endobj +82 0 obj<>endobj +83 0 obj<>endobj +84 0 obj<>endobj +85 0 obj<>endobj +86 0 obj<>endobj +87 0 obj<>endobj +88 0 obj<>endobj +89 0 obj<>endobj +90 0 obj<>endobj +91 0 obj<>endobj +92 0 obj<>endobj +93 0 obj<>endobj +94 0 obj<>endobj +95 0 obj<>endobj +96 0 obj<>endobj +97 0 obj<>endobj +98 0 obj<>endobj +99 0 obj<>endobj +100 0 obj<>endobj +101 0 obj<>endobj +102 0 obj<>endobj 103 0 obj[59 0 R 60 0 R 61 0 R @@ -189,49 +189,49 @@ 100 0 R 101 0 R 102 0 R]endobj -104 0 obj<>endobj -105 0 obj<>endobj -106 0 obj<>endobj -107 0 obj<>endobj -108 0 obj<>endobj -109 0 obj<>endobj -110 0 obj<>endobj -111 0 obj<>endobj -112 0 obj<>endobj -113 0 obj<>endobj -114 0 obj<>endobj -115 0 obj<>endobj -116 0 obj<>endobj -117 0 obj<>endobj -118 0 obj<>endobj -119 0 obj<>endobj -120 0 obj<>endobj -121 0 obj<>endobj -122 0 obj<>endobj -123 0 obj<>endobj -124 0 obj<>endobj -125 0 obj<>endobj -126 0 obj<>endobj -127 0 obj<>endobj -128 0 obj<>endobj -129 0 obj<>endobj -130 0 obj<>endobj -131 0 obj<>endobj -132 0 obj<>endobj -133 0 obj<>endobj -134 0 obj<>endobj -135 0 obj<>endobj -136 0 obj<>endobj -137 0 obj<>endobj -138 0 obj<>endobj -139 0 obj<>endobj -140 0 obj<>endobj -141 0 obj<>endobj -142 0 obj<>endobj -143 0 obj<>endobj -144 0 obj<>endobj -145 0 obj<>endobj -146 0 obj<>endobj +104 0 obj<>endobj +105 0 obj<>endobj +106 0 obj<>endobj +107 0 obj<>endobj +108 0 obj<>endobj +109 0 obj<>endobj +110 0 obj<>endobj +111 0 obj<>endobj +112 0 obj<>endobj +113 0 obj<>endobj +114 0 obj<>endobj +115 0 obj<>endobj +116 0 obj<>endobj +117 0 obj<>endobj +118 0 obj<>endobj +119 0 obj<>endobj +120 0 obj<>endobj +121 0 obj<>endobj +122 0 obj<>endobj +123 0 obj<>endobj +124 0 obj<>endobj +125 0 obj<>endobj +126 0 obj<>endobj +127 0 obj<>endobj +128 0 obj<>endobj +129 0 obj<>endobj +130 0 obj<>endobj +131 0 obj<>endobj +132 0 obj<>endobj +133 0 obj<>endobj +134 0 obj<>endobj +135 0 obj<>endobj +136 0 obj<>endobj +137 0 obj<>endobj +138 0 obj<>endobj +139 0 obj<>endobj +140 0 obj<>endobj +141 0 obj<>endobj +142 0 obj<>endobj +143 0 obj<>endobj +144 0 obj<>endobj +145 0 obj<>endobj +146 0 obj<>endobj 147 0 obj[104 0 R 105 0 R 106 0 R @@ -275,50 +275,50 @@ 144 0 R 145 0 R 146 0 R]endobj -148 0 obj<>endobj -149 0 obj<>endobj -150 0 obj<>endobj -151 0 obj<>endobj -152 0 obj<>endobj -153 0 obj<>endobj -154 0 obj<>endobj -155 0 obj<>endobj -156 0 obj<>endobj -157 0 obj<>endobj -158 0 obj<>endobj -159 0 obj<>endobj -160 0 obj<>endobj -161 0 obj<>endobj -162 0 obj<>endobj -163 0 obj<>endobj -164 0 obj<>endobj -165 0 obj<>endobj -166 0 obj<>endobj -167 0 obj<>endobj -168 0 obj<>endobj -169 0 obj<>endobj -170 0 obj<>endobj -171 0 obj<>endobj -172 0 obj<>endobj -173 0 obj<>endobj -174 0 obj<>endobj -175 0 obj<>endobj -176 0 obj<>endobj -177 0 obj<>endobj -178 0 obj<>endobj -179 0 obj<>endobj -180 0 obj<>endobj -181 0 obj<>endobj -182 0 obj<>endobj -183 0 obj<>endobj -184 0 obj<>endobj -185 0 obj<>endobj -186 0 obj<>endobj -187 0 obj<>endobj -188 0 obj<>endobj -189 0 obj<>endobj -190 0 obj<>endobj -191 0 obj<>endobj +148 0 obj<>endobj +149 0 obj<>endobj +150 0 obj<>endobj +151 0 obj<>endobj +152 0 obj<>endobj +153 0 obj<>endobj +154 0 obj<>endobj +155 0 obj<>endobj +156 0 obj<>endobj +157 0 obj<>endobj +158 0 obj<>endobj +159 0 obj<>endobj +160 0 obj<>endobj +161 0 obj<>endobj +162 0 obj<>endobj +163 0 obj<>endobj +164 0 obj<>endobj +165 0 obj<>endobj +166 0 obj<>endobj +167 0 obj<>endobj +168 0 obj<>endobj +169 0 obj<>endobj +170 0 obj<>endobj +171 0 obj<>endobj +172 0 obj<>endobj +173 0 obj<>endobj +174 0 obj<>endobj +175 0 obj<>endobj +176 0 obj<>endobj +177 0 obj<>endobj +178 0 obj<>endobj +179 0 obj<>endobj +180 0 obj<>endobj +181 0 obj<>endobj +182 0 obj<>endobj +183 0 obj<>endobj +184 0 obj<>endobj +185 0 obj<>endobj +186 0 obj<>endobj +187 0 obj<>endobj +188 0 obj<>endobj +189 0 obj<>endobj +190 0 obj<>endobj +191 0 obj<>endobj 192 0 obj[148 0 R 149 0 R 150 0 R @@ -363,47 +363,52 @@ 189 0 R 190 0 R 191 0 R]endobj -193 0 obj<>endobj -194 0 obj<>endobj -195 0 obj<>endobj -196 0 obj<>endobj -197 0 obj<>endobj -198 0 obj<>endobj -199 0 obj<>endobj -200 0 obj<>endobj -201 0 obj<>endobj -202 0 obj<>endobj -203 0 obj<>endobj -204 0 obj<>endobj -205 0 obj<>endobj -206 0 obj<>endobj -207 0 obj<>endobj -208 0 obj<>endobj -209 0 obj<>endobj -210 0 obj<>endobj -211 0 obj<>endobj -212 0 obj<>endobj -213 0 obj<>endobj -214 0 obj<>endobj -215 0 obj<>endobj -216 0 obj<>endobj -217 0 obj<>endobj -218 0 obj<>endobj -219 0 obj<>endobj -220 0 obj<>endobj -221 0 obj<>endobj -222 0 obj<>endobj -223 0 obj<>endobj -224 0 obj<>endobj -225 0 obj<>endobj -226 0 obj<>endobj -227 0 obj<>endobj -228 0 obj<>endobj -229 0 obj<>endobj -230 0 obj<>endobj -231 0 obj<>endobj -232 0 obj<>endobj -233 0 obj[193 0 R +193 0 obj<>endobj +194 0 obj<>endobj +195 0 obj<>endobj +196 0 obj<>endobj +197 0 obj<>endobj +198 0 obj<>endobj +199 0 obj<>endobj +200 0 obj<>endobj +201 0 obj<>endobj +202 0 obj<>endobj +203 0 obj<>endobj +204 0 obj<>endobj +205 0 obj<>endobj +206 0 obj<>endobj +207 0 obj<>endobj +208 0 obj<>endobj +209 0 obj<>endobj +210 0 obj<>endobj +211 0 obj<>endobj +212 0 obj<>endobj +213 0 obj<>endobj +214 0 obj<>endobj +215 0 obj<>endobj +216 0 obj<>endobj +217 0 obj<>endobj +218 0 obj<>endobj +219 0 obj<>endobj +220 0 obj<>endobj +221 0 obj<>endobj +222 0 obj<>endobj +223 0 obj<>endobj +224 0 obj<>endobj +225 0 obj<>endobj +226 0 obj<>endobj +227 0 obj<>endobj +228 0 obj<>endobj +229 0 obj<>endobj +230 0 obj<>endobj +231 0 obj<>endobj +232 0 obj<>endobj +233 0 obj<>endobj +234 0 obj<>endobj +235 0 obj<>endobj +236 0 obj<>endobj +237 0 obj<>endobj +238 0 obj[193 0 R 194 0 R 195 0 R 196 0 R @@ -442,63 +447,70 @@ 229 0 R 230 0 R 231 0 R -232 0 R]endobj -234 0 obj<>endobj -235 0 obj<>endobj -236 0 obj<>endobj -237 0 obj<>endobj -238 0 obj<>endobj -239 0 obj<>endobj -240 0 obj<>endobj -241 0 obj<>endobj -242 0 obj<>endobj -243 0 obj<>endobj -244 0 obj<>endobj -245 0 obj<>endobj -246 0 obj<>endobj -247 0 obj<>endobj -248 0 obj<>endobj -249 0 obj<>endobj -250 0 obj<>endobj -251 0 obj<>endobj -252 0 obj<>endobj -253 0 obj<>endobj -254 0 obj<>endobj -255 0 obj<>endobj -256 0 obj<>endobj -257 0 obj<>endobj -258 0 obj<>endobj -259 0 obj<>endobj -260 0 obj<>endobj -261 0 obj<>endobj -262 0 obj<>endobj -263 0 obj<>endobj -264 0 obj<>endobj -265 0 obj<>endobj -266 0 obj<>endobj -267 0 obj<>endobj -268 0 obj<>endobj -269 0 obj<>endobj -270 0 obj<>endobj -271 0 obj<>endobj -272 0 obj<>endobj -273 0 obj<>endobj -274 0 obj[235 0 R -237 0 R -239 0 R +232 0 R +233 0 R +234 0 R +235 0 R +236 0 R +237 0 R]endobj +239 0 obj<>endobj +240 0 obj<>endobj +241 0 obj<>endobj +242 0 obj<>endobj +243 0 obj<>endobj +244 0 obj<>endobj +245 0 obj<>endobj +246 0 obj<>endobj +247 0 obj[239 0 R 240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R -246 0 R -247 0 R -248 0 R -249 0 R -250 0 R +246 0 R]endobj +248 0 obj<>endobj +249 0 obj<>endobj +250 0 obj<>endobj +251 0 obj<>endobj +252 0 obj<>endobj +253 0 obj<>endobj +254 0 obj<>endobj +255 0 obj<>endobj +256 0 obj<>endobj +257 0 obj<>endobj +258 0 obj<>endobj +259 0 obj<>endobj +260 0 obj<>endobj +261 0 obj<>endobj +262 0 obj<>endobj +263 0 obj<>endobj +264 0 obj<>endobj +265 0 obj<>endobj +266 0 obj<>endobj +267 0 obj<>endobj +268 0 obj<>endobj +269 0 obj<>endobj +270 0 obj<>endobj +271 0 obj<>endobj +272 0 obj<>endobj +273 0 obj<>endobj +274 0 obj<>endobj +275 0 obj<>endobj +276 0 obj<>endobj +277 0 obj<>endobj +278 0 obj<>endobj +279 0 obj<>endobj +280 0 obj<>endobj +281 0 obj<>endobj +282 0 obj<>endobj +283 0 obj<>endobj +284 0 obj<>endobj +285 0 obj<>endobj +286 0 obj<>endobj +287 0 obj<>endobj +288 0 obj[249 0 R 251 0 R -252 0 R 253 0 R 254 0 R 255 0 R @@ -519,59 +531,9 @@ 270 0 R 271 0 R 272 0 R -273 0 R]endobj -275 0 obj<>endobj -276 0 obj<>endobj -277 0 obj<>endobj -278 0 obj<>endobj -279 0 obj<>endobj -280 0 obj<>endobj -281 0 obj<>endobj -282 0 obj<>endobj -283 0 obj<>endobj -284 0 obj<>endobj -285 0 obj<>endobj -286 0 obj<>endobj -287 0 obj<>endobj -288 0 obj<>endobj -289 0 obj<>endobj -290 0 obj<>endobj -291 0 obj<>endobj -292 0 obj<>endobj -293 0 obj<>endobj -294 0 obj<>endobj -295 0 obj<>endobj -296 0 obj<>endobj -297 0 obj<>endobj -298 0 obj<>endobj -299 0 obj<>endobj -300 0 obj<>endobj -301 0 obj<>endobj -302 0 obj<>endobj -303 0 obj<>endobj -304 0 obj<>endobj -305 0 obj<>endobj -306 0 obj<>endobj -307 0 obj<>endobj -308 0 obj<>endobj -309 0 obj<>endobj -310 0 obj<>endobj -311 0 obj<>endobj -312 0 obj<>endobj -313 0 obj<>endobj -314 0 obj<>endobj -315 0 obj<>endobj -316 0 obj<>endobj -317 0 obj<>endobj -318 0 obj<>endobj -319 0 obj<>endobj -320 0 obj<>endobj -321 0 obj<>endobj -322 0 obj<>endobj -323 0 obj<>endobj -324 0 obj<>endobj -325 0 obj<>endobj -326 0 obj[275 0 R +273 0 R +274 0 R +275 0 R 276 0 R 277 0 R 278 0 R @@ -583,9 +545,59 @@ 284 0 R 285 0 R 286 0 R -287 0 R -288 0 R -289 0 R +287 0 R]endobj +289 0 obj<>endobj +290 0 obj<>endobj +291 0 obj<>endobj +292 0 obj<>endobj +293 0 obj<>endobj +294 0 obj<>endobj +295 0 obj<>endobj +296 0 obj<>endobj +297 0 obj<>endobj +298 0 obj<>endobj +299 0 obj<>endobj +300 0 obj<>endobj +301 0 obj<>endobj +302 0 obj<>endobj +303 0 obj<>endobj +304 0 obj<>endobj +305 0 obj<>endobj +306 0 obj<>endobj +307 0 obj<>endobj +308 0 obj<>endobj +309 0 obj<>endobj +310 0 obj<>endobj +311 0 obj<>endobj +312 0 obj<>endobj +313 0 obj<>endobj +314 0 obj<>endobj +315 0 obj<>endobj +316 0 obj<>endobj +317 0 obj<>endobj +318 0 obj<>endobj +319 0 obj<>endobj +320 0 obj<>endobj +321 0 obj<>endobj +322 0 obj<>endobj +323 0 obj<>endobj +324 0 obj<>endobj +325 0 obj<>endobj +326 0 obj<>endobj +327 0 obj<>endobj +328 0 obj<>endobj +329 0 obj<>endobj +330 0 obj<>endobj +331 0 obj<>endobj +332 0 obj<>endobj +333 0 obj<>endobj +334 0 obj<>endobj +335 0 obj<>endobj +336 0 obj<>endobj +337 0 obj<>endobj +338 0 obj<>endobj +339 0 obj<>endobj +340 0 obj[289 0 R 290 0 R 291 0 R 292 0 R @@ -621,59 +633,9 @@ 322 0 R 323 0 R 324 0 R -325 0 R]endobj -327 0 obj<>endobj -328 0 obj<>endobj -329 0 obj<>endobj -330 0 obj<>endobj -331 0 obj<>endobj -332 0 obj<>endobj -333 0 obj<>endobj -334 0 obj<>endobj -335 0 obj<>endobj -336 0 obj<>endobj -337 0 obj<>endobj -338 0 obj<>endobj -339 0 obj<>endobj -340 0 obj<>endobj -341 0 obj<>endobj -342 0 obj<>endobj -343 0 obj<>endobj -344 0 obj<>endobj -345 0 obj<>endobj -346 0 obj<>endobj -347 0 obj<>endobj -348 0 obj<>endobj -349 0 obj<>endobj -350 0 obj<>endobj -351 0 obj<>endobj -352 0 obj<>endobj -353 0 obj<>endobj -354 0 obj<>endobj -355 0 obj<>endobj -356 0 obj<>endobj -357 0 obj<>endobj -358 0 obj<>endobj -359 0 obj<>endobj -360 0 obj<>endobj -361 0 obj<>endobj -362 0 obj<>endobj -363 0 obj<>endobj -364 0 obj<>endobj -365 0 obj<>endobj -366 0 obj<>endobj -367 0 obj<>endobj -368 0 obj<>endobj -369 0 obj<>endobj -370 0 obj<>endobj -371 0 obj<>endobj -372 0 obj<>endobj -373 0 obj<>endobj -374 0 obj<>endobj -375 0 obj<>endobj -376 0 obj<>endobj -377 0 obj<>endobj -378 0 obj[327 0 R +325 0 R +326 0 R +327 0 R 328 0 R 329 0 R 330 0 R @@ -685,9 +647,59 @@ 336 0 R 337 0 R 338 0 R -339 0 R -340 0 R -341 0 R +339 0 R]endobj +341 0 obj<>endobj +342 0 obj<>endobj +343 0 obj<>endobj +344 0 obj<>endobj +345 0 obj<>endobj +346 0 obj<>endobj +347 0 obj<>endobj +348 0 obj<>endobj +349 0 obj<>endobj +350 0 obj<>endobj +351 0 obj<>endobj +352 0 obj<>endobj +353 0 obj<>endobj +354 0 obj<>endobj +355 0 obj<>endobj +356 0 obj<>endobj +357 0 obj<>endobj +358 0 obj<>endobj +359 0 obj<>endobj +360 0 obj<>endobj +361 0 obj<>endobj +362 0 obj<>endobj +363 0 obj<>endobj +364 0 obj<>endobj +365 0 obj<>endobj +366 0 obj<>endobj +367 0 obj<>endobj +368 0 obj<>endobj +369 0 obj<>endobj +370 0 obj<>endobj +371 0 obj<>endobj +372 0 obj<>endobj +373 0 obj<>endobj +374 0 obj<>endobj +375 0 obj<>endobj +376 0 obj<>endobj +377 0 obj<>endobj +378 0 obj<>endobj +379 0 obj<>endobj +380 0 obj<>endobj +381 0 obj<>endobj +382 0 obj<>endobj +383 0 obj<>endobj +384 0 obj<>endobj +385 0 obj<>endobj +386 0 obj<>endobj +387 0 obj<>endobj +388 0 obj<>endobj +389 0 obj<>endobj +390 0 obj<>endobj +391 0 obj<>endobj +392 0 obj[341 0 R 342 0 R 343 0 R 344 0 R @@ -723,59 +735,9 @@ 374 0 R 375 0 R 376 0 R -377 0 R]endobj -379 0 obj<>endobj -380 0 obj<>endobj -381 0 obj<>endobj -382 0 obj<>endobj -383 0 obj<>endobj -384 0 obj<>endobj -385 0 obj<>endobj -386 0 obj<>endobj -387 0 obj<>endobj -388 0 obj<>endobj -389 0 obj<>endobj -390 0 obj<>endobj -391 0 obj<>endobj -392 0 obj<>endobj -393 0 obj<>endobj -394 0 obj<>endobj -395 0 obj<>endobj -396 0 obj<>endobj -397 0 obj<>endobj -398 0 obj<>endobj -399 0 obj<>endobj -400 0 obj<>endobj -401 0 obj<>endobj -402 0 obj<>endobj -403 0 obj<>endobj -404 0 obj<>endobj -405 0 obj<>endobj -406 0 obj<>endobj -407 0 obj<>endobj -408 0 obj<>endobj -409 0 obj<>endobj -410 0 obj<>endobj -411 0 obj<>endobj -412 0 obj<>endobj -413 0 obj<>endobj -414 0 obj<>endobj -415 0 obj<>endobj -416 0 obj<>endobj -417 0 obj<>endobj -418 0 obj<>endobj -419 0 obj<>endobj -420 0 obj<>endobj -421 0 obj<>endobj -422 0 obj<>endobj -423 0 obj<>endobj -424 0 obj<>endobj -425 0 obj<>endobj -426 0 obj<>endobj -427 0 obj<>endobj -428 0 obj<>endobj -429 0 obj<>endobj -430 0 obj[379 0 R +377 0 R +378 0 R +379 0 R 380 0 R 381 0 R 382 0 R @@ -787,9 +749,59 @@ 388 0 R 389 0 R 390 0 R -391 0 R -392 0 R -393 0 R +391 0 R]endobj +393 0 obj<>endobj +394 0 obj<>endobj +395 0 obj<>endobj +396 0 obj<>endobj +397 0 obj<>endobj +398 0 obj<>endobj +399 0 obj<>endobj +400 0 obj<>endobj +401 0 obj<>endobj +402 0 obj<>endobj +403 0 obj<>endobj +404 0 obj<>endobj +405 0 obj<>endobj +406 0 obj<>endobj +407 0 obj<>endobj +408 0 obj<>endobj +409 0 obj<>endobj +410 0 obj<>endobj +411 0 obj<>endobj +412 0 obj<>endobj +413 0 obj<>endobj +414 0 obj<>endobj +415 0 obj<>endobj +416 0 obj<>endobj +417 0 obj<>endobj +418 0 obj<>endobj +419 0 obj<>endobj +420 0 obj<>endobj +421 0 obj<>endobj +422 0 obj<>endobj +423 0 obj<>endobj +424 0 obj<>endobj +425 0 obj<>endobj +426 0 obj<>endobj +427 0 obj<>endobj +428 0 obj<>endobj +429 0 obj<>endobj +430 0 obj<>endobj +431 0 obj<>endobj +432 0 obj<>endobj +433 0 obj<>endobj +434 0 obj<>endobj +435 0 obj<>endobj +436 0 obj<>endobj +437 0 obj<>endobj +438 0 obj<>endobj +439 0 obj<>endobj +440 0 obj<>endobj +441 0 obj<>endobj +442 0 obj<>endobj +443 0 obj<>endobj +444 0 obj[393 0 R 394 0 R 395 0 R 396 0 R @@ -825,29 +837,9 @@ 426 0 R 427 0 R 428 0 R -429 0 R]endobj -431 0 obj<>endobj -432 0 obj<>endobj -433 0 obj<>endobj -434 0 obj<>endobj -435 0 obj<>endobj -436 0 obj<>endobj -437 0 obj<>endobj -438 0 obj<>endobj -439 0 obj<>endobj -440 0 obj<>endobj -441 0 obj<>endobj -442 0 obj<>endobj -443 0 obj<>endobj -444 0 obj<>endobj -445 0 obj<>endobj -446 0 obj<>endobj -447 0 obj<>endobj -448 0 obj<>endobj -449 0 obj<>endobj -450 0 obj<>endobj -451 0 obj<>endobj -452 0 obj[431 0 R +429 0 R +430 0 R +431 0 R 432 0 R 433 0 R 434 0 R @@ -859,2302 +851,2431 @@ 440 0 R 441 0 R 442 0 R -443 0 R -444 0 R -445 0 R +443 0 R]endobj +445 0 obj<>endobj +446 0 obj<>endobj +447 0 obj<>endobj +448 0 obj<>endobj +449 0 obj<>endobj +450 0 obj<>endobj +451 0 obj<>endobj +452 0 obj<>endobj +453 0 obj<>endobj +454 0 obj<>endobj +455 0 obj<>endobj +456 0 obj<>endobj +457 0 obj<>endobj +458 0 obj<>endobj +459 0 obj<>endobj +460 0 obj<>endobj +461 0 obj<>endobj +462 0 obj<>endobj +463 0 obj<>endobj +464 0 obj<>endobj +465 0 obj<>endobj +466 0 obj<>endobj +467 0 obj<>endobj +468 0 obj<>endobj +469 0 obj<>endobj +470 0 obj<>endobj +471 0 obj<>endobj +472 0 obj<>endobj +473 0 obj<>endobj +474 0 obj<>endobj +475 0 obj<>endobj +476 0 obj<>endobj +477 0 obj<>endobj +478 0 obj<>endobj +479 0 obj[445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R -451 0 R]endobj -453 0 obj<>endobj -454 0 obj<>endobj -455 0 obj[454 0 R]endobj -456 0 obj<>endobj -457 0 obj<>endobj -458 0 obj<>endobj -459 0 obj<>endobj -460 0 obj[457 0 R -459 0 R]endobj -461 0 obj<>endobj -462 0 obj<>endobj -463 0 obj<>endobj -464 0 obj<>endobj -465 0 obj<>endobj -466 0 obj<>endobj -467 0 obj[462 0 R +451 0 R +452 0 R +453 0 R +454 0 R +455 0 R +456 0 R +457 0 R +458 0 R +459 0 R +460 0 R +461 0 R +462 0 R +463 0 R 464 0 R -466 0 R]endobj -468 0 obj<>endobj -469 0 obj<>endobj -470 0 obj<>endobj -471 0 obj<>endobj -472 0 obj[469 0 R -471 0 R]endobj -473 0 obj<>endobj -474 0 obj<>endobj -475 0 obj[474 0 R]endobj -476 0 obj<>endobj -477 0 obj<>endobj -478 0 obj<>endobj -479 0 obj<>endobj -480 0 obj[477 0 R -479 0 R]endobj -481 0 obj<>endobj -482 0 obj<>endobj -483 0 obj<>endobj -484 0 obj<>endobj -485 0 obj<>endobj -486 0 obj<>endobj -487 0 obj[482 0 R -484 0 R +465 0 R +466 0 R +467 0 R +468 0 R +469 0 R +470 0 R +471 0 R +472 0 R +473 0 R +474 0 R +475 0 R +476 0 R +477 0 R +478 0 R]endobj +480 0 obj<>endobj +481 0 obj<>endobj +482 0 obj[481 0 R]endobj +483 0 obj<>endobj +484 0 obj<>endobj +485 0 obj<>endobj +486 0 obj<>endobj +487 0 obj[484 0 R 486 0 R]endobj -488 0 obj<>endobj -489 0 obj<>endobj -490 0 obj[489 0 R]endobj -491 0 obj<>endobj -492 0 obj<>endobj -493 0 obj<>endobj -494 0 obj<>endobj -495 0 obj<>endobj -496 0 obj<>endobj -497 0 obj<>endobj -498 0 obj<>endobj -499 0 obj<>endobj -500 0 obj<>endobj -501 0 obj<>endobj -502 0 obj<>endobj -503 0 obj[492 0 R -494 0 R -496 0 R -498 0 R -500 0 R -502 0 R]endobj -504 0 obj<>endobj -505 0 obj<>endobj -506 0 obj<>endobj -507 0 obj<>endobj -508 0 obj<>endobj -509 0 obj<>endobj -510 0 obj<>endobj -511 0 obj[505 0 R -507 0 R -509 0 R -510 0 R]endobj -512 0 obj<>endobj -513 0 obj<>endobj -514 0 obj<>endobj -515 0 obj<>endobj -516 0 obj<>endobj -517 0 obj<>endobj -518 0 obj<>endobj -519 0 obj<>endobj -520 0 obj<>endobj -521 0 obj<>endobj -522 0 obj<>endobj -523 0 obj[512 0 R -514 0 R -516 0 R -518 0 R -520 0 R -522 0 R]endobj -524 0 obj<>endobj -525 0 obj<>endobj -526 0 obj[525 0 R]endobj -527 0 obj<>endobj -528 0 obj<>endobj -529 0 obj<>endobj -530 0 obj<>endobj -531 0 obj<>endobj -532 0 obj<>endobj -533 0 obj<>endobj -534 0 obj<>endobj -535 0 obj<>endobj -536 0 obj<>endobj -537 0 obj[528 0 R -530 0 R -532 0 R +488 0 obj<>endobj +489 0 obj<>endobj +490 0 obj<>endobj +491 0 obj<>endobj +492 0 obj<>endobj +493 0 obj<>endobj +494 0 obj[489 0 R +491 0 R +493 0 R]endobj +495 0 obj<>endobj +496 0 obj<>endobj +497 0 obj<>endobj +498 0 obj<>endobj +499 0 obj[496 0 R +498 0 R]endobj +500 0 obj<>endobj +501 0 obj<>endobj +502 0 obj[501 0 R]endobj +503 0 obj<>endobj +504 0 obj<>endobj +505 0 obj<>endobj +506 0 obj<>endobj +507 0 obj[504 0 R +506 0 R]endobj +508 0 obj<>endobj +509 0 obj<>endobj +510 0 obj<>endobj +511 0 obj<>endobj +512 0 obj<>endobj +513 0 obj<>endobj +514 0 obj[509 0 R +511 0 R +513 0 R]endobj +515 0 obj<>endobj +516 0 obj<>endobj +517 0 obj[516 0 R]endobj +518 0 obj<>endobj +519 0 obj<>endobj +520 0 obj<>endobj +521 0 obj<>endobj +522 0 obj<>endobj +523 0 obj<>endobj +524 0 obj<>endobj +525 0 obj<>endobj +526 0 obj<>endobj +527 0 obj<>endobj +528 0 obj<>endobj +529 0 obj<>endobj +530 0 obj[519 0 R +521 0 R +523 0 R +525 0 R +527 0 R +529 0 R]endobj +531 0 obj<>endobj +532 0 obj<>endobj +533 0 obj<>endobj +534 0 obj<>endobj +535 0 obj<>endobj +536 0 obj<>endobj +537 0 obj<>endobj +538 0 obj[532 0 R 534 0 R -536 0 R]endobj -538 0 obj<>endobj -539 0 obj<>endobj -540 0 obj<>endobj -541 0 obj<>endobj -542 0 obj<>endobj -543 0 obj<>endobj -544 0 obj[539 0 R +536 0 R +537 0 R]endobj +539 0 obj<>endobj +540 0 obj<>endobj +541 0 obj<>endobj +542 0 obj<>endobj +543 0 obj<>endobj +544 0 obj<>endobj +545 0 obj<>endobj +546 0 obj<>endobj +547 0 obj<>endobj +548 0 obj<>endobj +549 0 obj<>endobj +550 0 obj[539 0 R 541 0 R -543 0 R]endobj -545 0 obj<>endobj -546 0 obj<>endobj -547 0 obj[546 0 R]endobj -548 0 obj<>endobj -549 0 obj<>endobj -550 0 obj<>endobj -551 0 obj<>endobj -552 0 obj<>endobj -553 0 obj<>endobj -554 0 obj[549 0 R -551 0 R -553 0 R]endobj -555 0 obj<>endobj -556 0 obj<>endobj -557 0 obj<>endobj -558 0 obj<>endobj -559 0 obj<>endobj -560 0 obj<>endobj -561 0 obj[556 0 R -558 0 R -560 0 R]endobj -562 0 obj<>endobj -563 0 obj<>endobj -564 0 obj<>endobj -565 0 obj<>endobj -566 0 obj<>endobj -567 0 obj<>endobj -568 0 obj<>endobj -569 0 obj<>endobj -570 0 obj[563 0 R -565 0 R -567 0 R -569 0 R]endobj -571 0 obj<>endobj -572 0 obj<>endobj -573 0 obj<>endobj -574 0 obj<>endobj -575 0 obj<>endobj -576 0 obj<>endobj -577 0 obj[572 0 R -574 0 R -576 0 R]endobj -578 0 obj<>endobj -579 0 obj<>endobj -580 0 obj[579 0 R]endobj -581 0 obj<>endobj -582 0 obj<>endobj -583 0 obj[582 0 R]endobj -584 0 obj<>endobj -585 0 obj<>endobj -586 0 obj<>endobj -587 0 obj<>endobj -588 0 obj<>endobj -589 0 obj<>endobj -590 0 obj<>endobj -591 0 obj<>endobj -592 0 obj<>endobj -593 0 obj<>endobj -594 0 obj<>endobj -595 0 obj<>endobj -596 0 obj<>endobj -597 0 obj<>endobj -598 0 obj<>endobj -599 0 obj<>endobj -600 0 obj[585 0 R -587 0 R -589 0 R -591 0 R -593 0 R +543 0 R +545 0 R +547 0 R +549 0 R]endobj +551 0 obj<>endobj +552 0 obj<>endobj +553 0 obj[552 0 R]endobj +554 0 obj<>endobj +555 0 obj<>endobj +556 0 obj<>endobj +557 0 obj<>endobj +558 0 obj<>endobj +559 0 obj<>endobj +560 0 obj<>endobj +561 0 obj<>endobj +562 0 obj<>endobj +563 0 obj<>endobj +564 0 obj[555 0 R +557 0 R +559 0 R +561 0 R +563 0 R]endobj +565 0 obj<>endobj +566 0 obj<>endobj +567 0 obj[566 0 R]endobj +568 0 obj<>endobj +569 0 obj<>endobj +570 0 obj<>endobj +571 0 obj<>endobj +572 0 obj<>endobj +573 0 obj<>endobj +574 0 obj[569 0 R +571 0 R +573 0 R]endobj +575 0 obj<>endobj +576 0 obj<>endobj +577 0 obj[576 0 R]endobj +578 0 obj<>endobj +579 0 obj<>endobj +580 0 obj<>endobj +581 0 obj<>endobj +582 0 obj<>endobj +583 0 obj<>endobj +584 0 obj[579 0 R +581 0 R +583 0 R]endobj +585 0 obj<>endobj +586 0 obj<>endobj +587 0 obj<>endobj +588 0 obj<>endobj +589 0 obj<>endobj +590 0 obj<>endobj +591 0 obj[586 0 R +588 0 R +590 0 R]endobj +592 0 obj<>endobj +593 0 obj<>endobj +594 0 obj<>endobj +595 0 obj<>endobj +596 0 obj<>endobj +597 0 obj<>endobj +598 0 obj<>endobj +599 0 obj<>endobj +600 0 obj[593 0 R 595 0 R 597 0 R 599 0 R]endobj -601 0 obj<>endobj -602 0 obj<>endobj -603 0 obj<>endobj -604 0 obj<>endobj -605 0 obj<>endobj -606 0 obj<>endobj -607 0 obj<>endobj -608 0 obj<>endobj -609 0 obj[602 0 R +601 0 obj<>endobj +602 0 obj<>endobj +603 0 obj<>endobj +604 0 obj<>endobj +605 0 obj<>endobj +606 0 obj<>endobj +607 0 obj[602 0 R 604 0 R -606 0 R -608 0 R]endobj -610 0 obj<>endobj -611 0 obj<>endobj -612 0 obj<>endobj -613 0 obj<>endobj -614 0 obj<>endobj -615 0 obj<>endobj -616 0 obj<>endobj -617 0 obj<>endobj -618 0 obj<>endobj -619 0 obj<>endobj -620 0 obj<>endobj -621 0 obj<>endobj -622 0 obj<>endobj -623 0 obj<>endobj -624 0 obj<>endobj -625 0 obj<>endobj -626 0 obj<>endobj -627 0 obj<>endobj -628 0 obj<>endobj -629 0 obj<>endobj -630 0 obj<>endobj -631 0 obj<>endobj -632 0 obj<>endobj -633 0 obj<>endobj -634 0 obj<>endobj -635 0 obj<>endobj -636 0 obj<>endobj -637 0 obj<>endobj -638 0 obj<>endobj -639 0 obj<>endobj -640 0 obj<>endobj -641 0 obj<>endobj -642 0 obj<>endobj -643 0 obj<>endobj -644 0 obj<>endobj -645 0 obj<>endobj -646 0 obj<>endobj -647 0 obj<>endobj -648 0 obj<>endobj -649 0 obj<>endobj -650 0 obj<>endobj -651 0 obj<>endobj -652 0 obj<>endobj -653 0 obj<>endobj -654 0 obj<>endobj -655 0 obj<>endobj -656 0 obj[611 0 R -613 0 R -615 0 R +606 0 R]endobj +608 0 obj<>endobj +609 0 obj<>endobj +610 0 obj[609 0 R]endobj +611 0 obj<>endobj +612 0 obj<>endobj +613 0 obj[612 0 R]endobj +614 0 obj<>endobj +615 0 obj<>endobj +616 0 obj<>endobj +617 0 obj<>endobj +618 0 obj<>endobj +619 0 obj<>endobj +620 0 obj<>endobj +621 0 obj<>endobj +622 0 obj<>endobj +623 0 obj<>endobj +624 0 obj<>endobj +625 0 obj<>endobj +626 0 obj<>endobj +627 0 obj<>endobj +628 0 obj[615 0 R 617 0 R 619 0 R 621 0 R 623 0 R 625 0 R -627 0 R -629 0 R -631 0 R -633 0 R +627 0 R]endobj +629 0 obj<>endobj +630 0 obj<>endobj +631 0 obj[630 0 R]endobj +632 0 obj<>endobj +633 0 obj<>endobj +634 0 obj<>endobj +635 0 obj<>endobj +636 0 obj<>endobj +637 0 obj<>endobj +638 0 obj<>endobj +639 0 obj<>endobj +640 0 obj[633 0 R 635 0 R 637 0 R -639 0 R -641 0 R -643 0 R -645 0 R -647 0 R -649 0 R -651 0 R -653 0 R -655 0 R]endobj -657 0 obj<>endobj -658 0 obj<>endobj -659 0 obj<>endobj -660 0 obj<>endobj -661 0 obj[658 0 R -660 0 R]endobj -662 0 obj<>endobj -663 0 obj<>endobj -664 0 obj<>endobj -665 0 obj<>endobj -666 0 obj[663 0 R -665 0 R]endobj -667 0 obj<>endobj -668 0 obj<>endobj -669 0 obj[668 0 R]endobj -670 0 obj<>endobj -671 0 obj<>endobj -672 0 obj<>endobj -673 0 obj<>endobj -674 0 obj[671 0 R -673 0 R]endobj -675 0 obj<>endobj -676 0 obj<>endobj -677 0 obj<>endobj -678 0 obj<>endobj -679 0 obj[676 0 R -678 0 R]endobj -680 0 obj<>endobj -681 0 obj<>endobj -682 0 obj<>endobj -683 0 obj<>endobj -684 0 obj<>endobj -685 0 obj<>endobj -686 0 obj<>endobj -687 0 obj<>endobj -688 0 obj<>endobj -689 0 obj<>endobj -690 0 obj<>endobj -691 0 obj<>endobj -692 0 obj<>endobj -693 0 obj<>endobj -694 0 obj<>endobj -695 0 obj<>endobj -696 0 obj[681 0 R -683 0 R -685 0 R -687 0 R -689 0 R -691 0 R -693 0 R -695 0 R]endobj -697 0 obj<>endobj -698 0 obj<>endobj -699 0 obj<>endobj -700 0 obj<>endobj -701 0 obj[698 0 R -700 0 R]endobj -702 0 obj<>endobj -703 0 obj<>endobj -704 0 obj[703 0 R]endobj -705 0 obj<>endobj -706 0 obj<>endobj -707 0 obj<>endobj -708 0 obj<>endobj -709 0 obj<>endobj -710 0 obj<>endobj -711 0 obj<>endobj -712 0 obj<>endobj -713 0 obj<>endobj -714 0 obj<>endobj -715 0 obj<>endobj -716 0 obj<>endobj -717 0 obj[706 0 R -708 0 R -710 0 R -712 0 R +639 0 R]endobj +641 0 obj<>endobj +642 0 obj<>endobj +643 0 obj<>endobj +644 0 obj<>endobj +645 0 obj<>endobj +646 0 obj<>endobj +647 0 obj<>endobj +648 0 obj<>endobj +649 0 obj<>endobj +650 0 obj<>endobj +651 0 obj<>endobj +652 0 obj<>endobj +653 0 obj<>endobj +654 0 obj<>endobj +655 0 obj<>endobj +656 0 obj<>endobj +657 0 obj<>endobj +658 0 obj<>endobj +659 0 obj<>endobj +660 0 obj<>endobj +661 0 obj<>endobj +662 0 obj<>endobj +663 0 obj<>endobj +664 0 obj<>endobj +665 0 obj<>endobj +666 0 obj<>endobj +667 0 obj<>endobj +668 0 obj<>endobj +669 0 obj<>endobj +670 0 obj<>endobj +671 0 obj<>endobj +672 0 obj<>endobj +673 0 obj<>endobj +674 0 obj<>endobj +675 0 obj<>endobj +676 0 obj<>endobj +677 0 obj<>endobj +678 0 obj<>endobj +679 0 obj<>endobj +680 0 obj<>endobj +681 0 obj<>endobj +682 0 obj<>endobj +683 0 obj<>endobj +684 0 obj<>endobj +685 0 obj<>endobj +686 0 obj<>endobj +687 0 obj[642 0 R +644 0 R +646 0 R +648 0 R +650 0 R +652 0 R +654 0 R +656 0 R +658 0 R +660 0 R +662 0 R +664 0 R +666 0 R +668 0 R +670 0 R +672 0 R +674 0 R +676 0 R +678 0 R +680 0 R +682 0 R +684 0 R +686 0 R]endobj +688 0 obj<>endobj +689 0 obj<>endobj +690 0 obj<>endobj +691 0 obj<>endobj +692 0 obj[689 0 R +691 0 R]endobj +693 0 obj<>endobj +694 0 obj<>endobj +695 0 obj<>endobj +696 0 obj<>endobj +697 0 obj[694 0 R +696 0 R]endobj +698 0 obj<>endobj +699 0 obj<>endobj +700 0 obj[699 0 R]endobj +701 0 obj<>endobj +702 0 obj<>endobj +703 0 obj<>endobj +704 0 obj<>endobj +705 0 obj[702 0 R +704 0 R]endobj +706 0 obj<>endobj +707 0 obj<>endobj +708 0 obj<>endobj +709 0 obj<>endobj +710 0 obj[707 0 R +709 0 R]endobj +711 0 obj<>endobj +712 0 obj<>endobj +713 0 obj<>endobj +714 0 obj<>endobj +715 0 obj<>endobj +716 0 obj<>endobj +717 0 obj<>endobj +718 0 obj<>endobj +719 0 obj<>endobj +720 0 obj<>endobj +721 0 obj<>endobj +722 0 obj<>endobj +723 0 obj<>endobj +724 0 obj<>endobj +725 0 obj<>endobj +726 0 obj<>endobj +727 0 obj[712 0 R 714 0 R -716 0 R]endobj -718 0 obj<>endobj -719 0 obj<>endobj -720 0 obj<>endobj -721 0 obj<>endobj -722 0 obj<>endobj -723 0 obj<>endobj -724 0 obj<>endobj -725 0 obj<>endobj -726 0 obj[719 0 R -721 0 R -723 0 R -725 0 R]endobj -727 0 obj<>endobj -728 0 obj<>endobj -729 0 obj[728 0 R]endobj -730 0 obj<>endobj -731 0 obj<>endobj -732 0 obj<>endobj -733 0 obj<>endobj -734 0 obj<>endobj -735 0 obj<>endobj -736 0 obj<>endobj -737 0 obj<>endobj -738 0 obj<>endobj -739 0 obj<>endobj -740 0 obj<>endobj -741 0 obj<>endobj -742 0 obj[731 0 R -733 0 R -735 0 R -737 0 R +716 0 R +718 0 R +720 0 R +722 0 R +724 0 R +726 0 R]endobj +728 0 obj<>endobj +729 0 obj<>endobj +730 0 obj<>endobj +731 0 obj<>endobj +732 0 obj[729 0 R +731 0 R]endobj +733 0 obj<>endobj +734 0 obj<>endobj +735 0 obj[734 0 R]endobj +736 0 obj<>endobj +737 0 obj<>endobj +738 0 obj<>endobj +739 0 obj<>endobj +740 0 obj<>endobj +741 0 obj<>endobj +742 0 obj<>endobj +743 0 obj<>endobj +744 0 obj<>endobj +745 0 obj<>endobj +746 0 obj<>endobj +747 0 obj<>endobj +748 0 obj[737 0 R 739 0 R -741 0 R]endobj -743 0 obj<>endobj -744 0 obj<>endobj -745 0 obj[744 0 R]endobj -746 0 obj<>endobj -747 0 obj<>endobj -748 0 obj[747 0 R]endobj -749 0 obj<>endobj -750 0 obj<>endobj -751 0 obj[750 0 R]endobj -752 0 obj<>endobj -753 0 obj<>endobj -754 0 obj<>endobj -755 0 obj<>endobj -756 0 obj<>endobj -757 0 obj<>endobj -758 0 obj<>endobj -759 0 obj<>endobj -760 0 obj[753 0 R -755 0 R -757 0 R -759 0 R]endobj -761 0 obj<>endobj -762 0 obj<>endobj -763 0 obj[762 0 R]endobj -764 0 obj<>endobj -765 0 obj<>endobj -766 0 obj<>endobj -767 0 obj<>endobj -768 0 obj<>endobj -769 0 obj<>endobj -770 0 obj[765 0 R +741 0 R +743 0 R +745 0 R +747 0 R]endobj +749 0 obj<>endobj +750 0 obj<>endobj +751 0 obj<>endobj +752 0 obj<>endobj +753 0 obj<>endobj +754 0 obj<>endobj +755 0 obj<>endobj +756 0 obj<>endobj +757 0 obj[750 0 R +752 0 R +754 0 R +756 0 R]endobj +758 0 obj<>endobj +759 0 obj<>endobj +760 0 obj<>endobj +761 0 obj<>endobj +762 0 obj<>endobj +763 0 obj<>endobj +764 0 obj<>endobj +765 0 obj<>endobj +766 0 obj<>endobj +767 0 obj<>endobj +768 0 obj<>endobj +769 0 obj<>endobj +770 0 obj<>endobj +771 0 obj<>endobj +772 0 obj[759 0 R +761 0 R +763 0 R +765 0 R 767 0 R -769 0 R]endobj -771 0 obj<>endobj -772 0 obj<>endobj -773 0 obj[772 0 R]endobj -774 0 obj<>endobj -775 0 obj<>endobj -776 0 obj<>endobj -777 0 obj<>endobj -778 0 obj<>endobj -779 0 obj<>endobj -780 0 obj<>endobj -781 0 obj<>endobj -782 0 obj<>endobj -783 0 obj<>endobj -784 0 obj<>endobj -785 0 obj<>endobj -786 0 obj<>endobj -787 0 obj<>endobj -788 0 obj<>endobj -789 0 obj<>endobj -790 0 obj<>endobj -791 0 obj<>endobj -792 0 obj<>endobj -793 0 obj<>endobj -794 0 obj<>endobj -795 0 obj<>endobj -796 0 obj<>endobj -797 0 obj<>endobj -798 0 obj<>endobj -799 0 obj<>endobj -800 0 obj<>endobj -801 0 obj<>endobj -802 0 obj<>endobj -803 0 obj<>endobj -804 0 obj<>endobj -805 0 obj<>endobj -806 0 obj<>endobj -807 0 obj<>endobj -808 0 obj<>endobj -809 0 obj<>endobj -810 0 obj<>endobj -811 0 obj<>endobj -812 0 obj<>endobj -813 0 obj<>endobj -814 0 obj<>endobj -815 0 obj<>endobj -816 0 obj<>endobj -817 0 obj<>endobj -818 0 obj<>endobj -819 0 obj<>endobj -820 0 obj<>endobj -821 0 obj<>endobj -822 0 obj<>endobj -823 0 obj<>endobj -824 0 obj<>endobj -825 0 obj<>endobj -826 0 obj<>endobj -827 0 obj<>endobj -828 0 obj<>endobj -829 0 obj<>endobj -830 0 obj<>endobj -831 0 obj<>endobj -832 0 obj<>endobj -833 0 obj<>endobj -834 0 obj<>endobj -835 0 obj<>endobj -836 0 obj<>endobj -837 0 obj<>endobj -838 0 obj<>endobj -839 0 obj<>endobj -840 0 obj<>endobj -841 0 obj<>endobj -842 0 obj<>endobj -843 0 obj<>endobj -844 0 obj<>endobj -845 0 obj<>endobj -846 0 obj<>endobj -847 0 obj<>endobj -848 0 obj<>endobj -849 0 obj<>endobj -850 0 obj<>endobj -851 0 obj<>endobj -852 0 obj<>endobj -853 0 obj<>endobj -854 0 obj<>endobj -855 0 obj<>endobj -856 0 obj<>endobj -857 0 obj<>endobj -858 0 obj<>endobj -859 0 obj<>endobj -860 0 obj<>endobj -861 0 obj<>endobj -862 0 obj<>endobj -863 0 obj<>endobj -864 0 obj<>endobj -865 0 obj<>endobj -866 0 obj<>endobj -867 0 obj<>endobj -868 0 obj<>endobj -869 0 obj<>endobj -870 0 obj<>endobj -871 0 obj<>endobj -872 0 obj<>endobj -873 0 obj<>endobj -874 0 obj<>endobj -875 0 obj<>endobj -876 0 obj<>endobj -877 0 obj<>endobj -878 0 obj<>endobj -879 0 obj<>endobj -880 0 obj<>endobj -881 0 obj<>endobj -882 0 obj<>endobj -883 0 obj<>endobj -884 0 obj<>endobj -885 0 obj<>endobj -886 0 obj<>endobj -887 0 obj<>endobj -888 0 obj<>endobj -889 0 obj<>endobj -890 0 obj<>endobj -891 0 obj<>endobj -892 0 obj<>endobj -893 0 obj<>endobj -894 0 obj<>endobj -895 0 obj<>endobj -896 0 obj<>endobj -897 0 obj<>endobj -898 0 obj<>endobj -899 0 obj<>endobj -900 0 obj<>endobj -901 0 obj<>endobj -902 0 obj<>endobj -903 0 obj<>endobj -904 0 obj<>endobj -905 0 obj<>endobj -906 0 obj<>endobj -907 0 obj<>endobj -908 0 obj<>endobj -909 0 obj<>endobj -910 0 obj<>endobj -911 0 obj<>endobj -912 0 obj<>endobj -913 0 obj<>endobj -914 0 obj<>endobj -915 0 obj<>endobj -916 0 obj<>endobj -917 0 obj<>endobj -918 0 obj<>endobj -919 0 obj<>endobj -920 0 obj<>endobj -921 0 obj<>endobj -922 0 obj<>endobj -923 0 obj<>endobj -924 0 obj<>endobj -925 0 obj<>endobj -926 0 obj<>endobj -927 0 obj<>endobj -928 0 obj<>endobj -929 0 obj<>endobj -930 0 obj<>endobj -931 0 obj<>endobj -932 0 obj<>endobj -933 0 obj<>endobj -934 0 obj<>endobj -935 0 obj<>endobj -936 0 obj<>endobj -937 0 obj<>endobj -938 0 obj<>endobj -939 0 obj<>endobj -940 0 obj<>endobj -941 0 obj<>endobj -942 0 obj<>endobj -943 0 obj<>endobj -944 0 obj<>endobj -945 0 obj<>endobj -946 0 obj<>endobj -947 0 obj<>endobj -948 0 obj<>endobj -949 0 obj<>endobj -950 0 obj<>endobj -951 0 obj<>endobj -952 0 obj<>endobj -953 0 obj<>endobj -954 0 obj<>endobj -955 0 obj<>endobj -956 0 obj<>endobj -957 0 obj<>endobj -958 0 obj<>endobj -959 0 obj<>endobj -960 0 obj<>endobj -961 0 obj<>endobj -962 0 obj<>endobj -963 0 obj<>endobj -964 0 obj<>endobj -965 0 obj<>endobj -966 0 obj<>endobj -967 0 obj<>endobj -968 0 obj<>endobj -969 0 obj<>endobj -970 0 obj<>endobj -971 0 obj<>endobj -972 0 obj<>endobj -973 0 obj<>endobj -974 0 obj<>endobj -975 0 obj<>endobj -976 0 obj<>endobj -977 0 obj<>endobj -978 0 obj<>endobj -979 0 obj<>endobj -980 0 obj<>endobj -981 0 obj<>endobj -982 0 obj<>endobj -983 0 obj<>endobj -984 0 obj<>endobj -985 0 obj<>endobj -986 0 obj<>endobj -987 0 obj<>endobj -988 0 obj<>endobj -989 0 obj<>endobj -990 0 obj<>endobj -991 0 obj<>endobj -992 0 obj<>endobj -993 0 obj<>endobj -994 0 obj<>endobj -995 0 obj<>endobj -996 0 obj<>endobj -997 0 obj<>endobj -998 0 obj<>endobj -999 0 obj<>endobj -1000 0 obj<>endobj -1001 0 obj<>endobj -1002 0 obj<>endobj -1003 0 obj<>endobj -1004 0 obj<>endobj -1005 0 obj<>endobj -1006 0 obj<>endobj -1007 0 obj<>endobj -1008 0 obj<>endobj -1009 0 obj<>endobj -1010 0 obj<>endobj -1011 0 obj<>endobj +774 0 obj<>endobj +775 0 obj[774 0 R]endobj +776 0 obj<>endobj +777 0 obj<>endobj +778 0 obj[777 0 R]endobj +779 0 obj<>endobj +780 0 obj<>endobj +781 0 obj[780 0 R]endobj +782 0 obj<>endobj +783 0 obj<>endobj +784 0 obj<>endobj +785 0 obj<>endobj +786 0 obj<>endobj +787 0 obj<>endobj +788 0 obj<>endobj +789 0 obj<>endobj +790 0 obj<>endobj +791 0 obj<>endobj +792 0 obj[783 0 R +785 0 R +787 0 R +789 0 R +791 0 R]endobj +793 0 obj<>endobj +794 0 obj<>endobj +795 0 obj<>endobj +796 0 obj<>endobj +797 0 obj<>endobj +798 0 obj<>endobj +799 0 obj<>endobj +800 0 obj<>endobj +801 0 obj[794 0 R +796 0 R +798 0 R +800 0 R]endobj +802 0 obj<>endobj +803 0 obj<>endobj +804 0 obj[803 0 R]endobj +805 0 obj<>endobj +806 0 obj<>endobj +807 0 obj[806 0 R]endobj +808 0 obj<>endobj +809 0 obj<>endobj +810 0 obj<>endobj +811 0 obj<>endobj +812 0 obj<>endobj +813 0 obj<>endobj +814 0 obj[809 0 R +811 0 R +813 0 R]endobj +815 0 obj<>endobj +816 0 obj<>endobj +817 0 obj[816 0 R]endobj +818 0 obj<>endobj +819 0 obj<>endobj +820 0 obj<>endobj +821 0 obj<>endobj +822 0 obj<>endobj +823 0 obj<>endobj +824 0 obj<>endobj +825 0 obj<>endobj +826 0 obj<>endobj +827 0 obj<>endobj +828 0 obj<>endobj +829 0 obj<>endobj +830 0 obj<>endobj +831 0 obj<>endobj +832 0 obj<>endobj +833 0 obj<>endobj +834 0 obj<>endobj +835 0 obj<>endobj +836 0 obj<>endobj +837 0 obj<>endobj +838 0 obj<>endobj +839 0 obj<>endobj +840 0 obj<>endobj +841 0 obj<>endobj +842 0 obj<>endobj +843 0 obj<>endobj +844 0 obj<>endobj +845 0 obj<>endobj +846 0 obj<>endobj +847 0 obj<>endobj +848 0 obj<>endobj +849 0 obj<>endobj +850 0 obj<>endobj +851 0 obj<>endobj +852 0 obj<>endobj +853 0 obj<>endobj +854 0 obj<>endobj +855 0 obj<>endobj +856 0 obj<>endobj +857 0 obj<>endobj +858 0 obj<>endobj +859 0 obj<>endobj +860 0 obj<>endobj +861 0 obj<>endobj +862 0 obj<>endobj +863 0 obj<>endobj +864 0 obj<>endobj +865 0 obj<>endobj +866 0 obj<>endobj +867 0 obj<>endobj +868 0 obj<>endobj +869 0 obj<>endobj +870 0 obj<>endobj +871 0 obj<>endobj +872 0 obj<>endobj +873 0 obj<>endobj +874 0 obj<>endobj +875 0 obj<>endobj +876 0 obj<>endobj +877 0 obj<>endobj +878 0 obj<>endobj +879 0 obj<>endobj +880 0 obj<>endobj +881 0 obj<>endobj +882 0 obj<>endobj +883 0 obj<>endobj +884 0 obj<>endobj +885 0 obj<>endobj +886 0 obj<>endobj +887 0 obj<>endobj +888 0 obj<>endobj +889 0 obj<>endobj +890 0 obj<>endobj +891 0 obj<>endobj +892 0 obj<>endobj +893 0 obj<>endobj +894 0 obj<>endobj +895 0 obj<>endobj +896 0 obj<>endobj +897 0 obj<>endobj +898 0 obj<>endobj +899 0 obj<>endobj +900 0 obj<>endobj +901 0 obj<>endobj +902 0 obj<>endobj +903 0 obj<>endobj +904 0 obj<>endobj +905 0 obj<>endobj +906 0 obj<>endobj +907 0 obj<>endobj +908 0 obj<>endobj +909 0 obj<>endobj +910 0 obj<>endobj +911 0 obj<>endobj +912 0 obj<>endobj +913 0 obj<>endobj +914 0 obj<>endobj +915 0 obj<>endobj +916 0 obj<>endobj +917 0 obj<>endobj +918 0 obj<>endobj +919 0 obj<>endobj +920 0 obj<>endobj +921 0 obj<>endobj +922 0 obj<>endobj +923 0 obj<>endobj +924 0 obj<>endobj +925 0 obj<>endobj +926 0 obj<>endobj +927 0 obj<>endobj +928 0 obj<>endobj +929 0 obj<>endobj +930 0 obj<>endobj +931 0 obj<>endobj +932 0 obj<>endobj +933 0 obj<>endobj +934 0 obj<>endobj +935 0 obj<>endobj +936 0 obj<>endobj +937 0 obj<>endobj +938 0 obj<>endobj +939 0 obj<>endobj +940 0 obj<>endobj +941 0 obj<>endobj +942 0 obj<>endobj +943 0 obj<>endobj +944 0 obj<>endobj +945 0 obj<>endobj +946 0 obj<>endobj +947 0 obj<>endobj +948 0 obj<>endobj +949 0 obj<>endobj +950 0 obj<>endobj +951 0 obj<>endobj +952 0 obj<>endobj +953 0 obj<>endobj +954 0 obj<>endobj +955 0 obj<>endobj +956 0 obj<>endobj +957 0 obj<>endobj +958 0 obj<>endobj +959 0 obj<>endobj +960 0 obj<>endobj +961 0 obj<>endobj +962 0 obj<>endobj +963 0 obj<>endobj +964 0 obj<>endobj +965 0 obj<>endobj +966 0 obj<>endobj +967 0 obj<>endobj +968 0 obj<>endobj +969 0 obj<>endobj +970 0 obj<>endobj +971 0 obj<>endobj +972 0 obj<>endobj +973 0 obj<>endobj +974 0 obj<>endobj +975 0 obj<>endobj +976 0 obj<>endobj +977 0 obj<>endobj +978 0 obj<>endobj +979 0 obj<>endobj +980 0 obj<>endobj +981 0 obj<>endobj +982 0 obj<>endobj +983 0 obj<>endobj +984 0 obj<>endobj +985 0 obj<>endobj +986 0 obj<>endobj +987 0 obj<>endobj +988 0 obj<>endobj +989 0 obj<>endobj +990 0 obj<>endobj +991 0 obj<>endobj +992 0 obj<>endobj +993 0 obj<>endobj +994 0 obj<>endobj +995 0 obj<>endobj +996 0 obj<>endobj +997 0 obj<>endobj +998 0 obj<>endobj +999 0 obj<>endobj +1000 0 obj<>endobj +1001 0 obj<>endobj +1002 0 obj<>endobj +1003 0 obj<>endobj +1004 0 obj<>endobj +1005 0 obj<>endobj +1006 0 obj<>endobj +1007 0 obj<>endobj +1008 0 obj<>endobj +1009 0 obj<>endobj +1010 0 obj<>endobj +1011 0 obj<>endobj +1012 0 obj<>endobj +1013 0 obj<>endobj +1014 0 obj<>endobj +1015 0 obj<>endobj +1016 0 obj<>endobj +1017 0 obj<>endobj +1018 0 obj<>endobj +1019 0 obj<>endobj +1020 0 obj<>endobj +1021 0 obj<>endobj +1022 0 obj<>endobj +1023 0 obj<>endobj +1024 0 obj<>endobj +1025 0 obj<>endobj +1026 0 obj<>endobj +1027 0 obj<>endobj +1028 0 obj<>endobj +1029 0 obj<>endobj +1030 0 obj<>endobj +1031 0 obj<>endobj +1032 0 obj<>endobj +1033 0 obj<>endobj +1034 0 obj<>endobj +1035 0 obj<>endobj +1036 0 obj<>endobj +1037 0 obj<>endobj +1038 0 obj<>endobj +1039 0 obj<>endobj +1040 0 obj<>endobj +1041 0 obj<>endobj +1042 0 obj<>endobj +1043 0 obj<>endobj +1044 0 obj<>endobj +1045 0 obj<>endobj +1046 0 obj<>endobj +1047 0 obj<>endobj +1048 0 obj<>endobj +1049 0 obj<>endobj +1050 0 obj<>endobj +1051 0 obj<>endobj +1052 0 obj<>endobj +1053 0 obj<>endobj +1054 0 obj<>endobj +1055 0 obj<>endobj +1056 0 obj<>endobj +1057 0 obj<>endobj +1058 0 obj<>endobj +1059 0 obj<>endobj +1060 0 obj<>endobj +1061 0 obj<>endobj +1062 0 obj<>endobj +1063 0 obj<>endobj +1064 0 obj<>endobj +1065 0 obj<>endobj +1066 0 obj<>endobj +1067 0 obj<>endobj +1068 0 obj<>endobj -1012 0 obj<>/XObject<<>>>>>>endobj -1013 0 obj<>stream +1069 0 obj<>/XObject<<>>>>>>endobj +1070 0 obj<>stream x+ä2T0BCs#c3…ä\.§.}7K#…4K=3cS’¢` g`NÖvôurT(ÊÏJM.QpÉO.ÍMÍ+I,ÉÌÏÓ Éâr á ä«endstream endobj -1014 0 obj<>/XObject<<>>>>/Annots 58 0 R>>endobj -1015 0 obj<>stream -xÍ\Ûr#Ç }߯˜·8U5÷áä%µ—8Ù*ßbɵy•¸c‘THj×þûœt£1$ѶèU\µÅ3g Ñh4f”ÿ¾(²ÿYWfU›]-^ä“WøOÁ¾ÿ¯dmÝãßEVõ“.€»ìâ…ƒ‹¬kGœƒ‹¬hŠIã¶Z5“)„vͤ€BÄÀ¼œôŽeò~Rc\“Àq¤šiõ,zF¸ÈšÓÉ9UjˆLœƒ‹lÚBÛÄ95‹ö%Òc°Ð4êÆGz ¶¥‰n¬Ã‹¬Ì›IåØŠžkÚ^<×”|ª1%A1êS"Sàã`J„4…S•HÁ–fÙ±ÓPÎŒcÛu“Ò±jJÓNZL¦š" ™8ÕÝ8£)Æ©)a•…:FzLe+<Ù±ƒ•HJ¬*‹[yª¬€¤làT;ãŒÊ§Ê†qE.3k¤ÇP¿'Öa°mCÏ&ÖašÒŒÆª)UŽ!ÑÉ”À©îÆ9M1NM ㊢£gôêTC1±ƒmd &Öa¬†¢åZ1Öc°UÇÅa¬ -e˜ºtÎ$C§–ç`4Ô854Œ+òŽ¦é1 Íé÷Ä: ¶-è¤Ä: ¶cÂu¬ÃL -“‚õl]ÐIƪrz=ºA@rCàÔnãŒn0NÝÆeECô˜nè©Nb¦Z¦›Ä: ¡‹Ô”X‡ ’9íJø¬îsI(=Óµê ÄbõŽô˜ -s5¥¡ƒÅS¼`ÁöŒ67ÖaÎL=bUa¤E&ÕP@R8pAA#=V…Û¬N, ˆ˜*qŸt¬ÃP©dþM¬Ç`!©ñ¬Ã4‡š»±ƒmkZy ¶/GÏ• ­Û:%%¤‘“¨Lœƒ!H'AÇy M$1æ1<‘s eñ‘Ã…(_‰uì´ ë0 Åâ€ûõ,R–×Êc°-cÙu˜.d -O¬ºªYº«$N}fœƒÑ…Æ© øàB#ƒ #‹ù†Cë0œÔM¹äë0c´FBs¬Ã0Yn°±ƒÅ¶çŸ«n€_-ÝÕ’§vç`tƒqê†0.¸ÁÈà†ÈªÙ‰u˜n`2L -yÌHê¸ÜÒX‡é‰Qc=‹BÖõ,§®Ç(ë˱dÁ"ê¼dÁN§œÓÊcÔèHÑXÆz [Áh,K º¬q;ÕÔ€L]‚˜Þ¢7’syTÖ¹!ç \&)$=‹Z‹Ñ†z¬“SŒÕäj™É›ç¬EA"Øa -fæX‡179‰ÁU?•T¨‚%ÁÆVÜêë0ˉK¬ -F$0AÁ‚œàÈ"•ãH˜X‡1¶eìX‡iϘõ,Tô’U©®å”䔊,ÎQ°'±S)…c‹8˜zÖaªÌ#Pë1Ø‚Ʊƒ•²Û±ƒmâ‰UsÛ ñ`® gndQÇuYe¬­p• 74²(404±Ó-²mb~J¢p‡#P,h„X‘<9'ÎAšB½é1X©Éë0X„æÕê1µe ’XÉïgù]Õ•"?rZp½Ü)¶0»hÝê`60r’VîL‘¹íìW -H‡=­É'V¢ åAKÊ;ç L,¦HÁ¢Dƒ:"‡CUl£•# ‰ \c¤Ç&ÖX‹ §_U¬€$6pAŒ‘›XcU¬T™Q¬€$6pAŒ‘›XcU,¢•Î\¥u–Ä.ˆ1Òck¬ŠEBNS& ‰ \c¤Ç&ÖXËÝKL|«ÀÄFNÅ$Òã(6±*¶Ó“ŠÄ.ˆ1Òck¬Š•Z3j+ ‰ \c¤Ç&ÖX+g²A‚(×ceÑìX‡Á¢œè«‚+=;A‚œàȪ Ä:l‚•TS”®¢V@¹’j"×µPš7’s–2Û&Òc°Ò"K,s1¶&îXB…þ¦Ì„B"–»D¦å0F»FF9ˆG¡Ê«’@Á‰Ó¸¹ý±1ÎAn~Ü£— 8´€§‰gÊÑ(d_ùm® Ì”TcdL«•8\~Û˜Ààv4—y™„`–ÔCF9HÏWpG⇽ ½å(ÒAºªÂ“— LFÇÑÉtœ}6N<ŒK–ä7 …é+ó.a QýÓnƒD.Yò–ß&.2Cײgg”ˆC±Ì8Ô½€¿M\d(@~›v)Pö‰zuùâüËeVvùÎE© ëêìòZÞ5àòÕ—Ãû»Y¶ú½^-·³åvóçËÿ쾎Xßdç_6Ø/)ç,:+)è‹‹—_¿zÉ1X)]ɸ˜}·^ýgvµ•ëèÖ}¸þfuõ°ÀS†í|µ$Ëã_¥ääóü¯ ç_ÖfÎ{ ¬d¸íØWm°ãr6,8ãtZVý÷½,J–—Ù4•ùzù~³]aj¦“®yfÊï›#WJzû¬…Í–×·Ãýv¶&Å<èÖè+&¼„pUøÏÕ'™+çñŽíJï˜ôEˆ¾ìír³îîD -Ñ<^–×2:ŸÔÓ2H¼œm$¶KtBM€­œþР訟`$Xj!ŒŒ¥aÏW]r±Ý‹Uå¤Ê§ábþW^Âa:]ú~6¨õØÚ8x{;“qxë£Gƒ,gìÅ­]»nf’N¸Jú0úæ÷D—Å5g|óWŽRåbß!¯æw×óå €´]¶1È9åÕ|9¬çê„.:–êé{PlôZ!#TGy Ü÷Àe˜}œX,"ºAδ6_ܯÖÛa)ë'⦌{À&Äž˜‰ÇƒšŸæbôÏŒn…ÔG¹£ÚwÇëõlØÊz@ÑSÇýáP4lïeÉ¡\vaÉ]­–æ7kÛñ:/â‚ü0¿›©^pvÆœÆ-“ɔʱ+6”æ(ÏÔûž±$ésÂÏ«Éף̩^àóÑ HQEóy¯Ôj˲ŸæÛ[q£Ï\[äãûa-[2Z_'«è*öO\ µGyªÙ÷ÔÅvXoCRÁ!«±ðø…0Ò”Œln7†M -G†¶ -åH¶\¼7þqÛ‘º wìÝ€ÐĵüppjuŽßY~Ñ9Ö+­ÁêIaFÏ—³íõ„Å AÞA_è”±ìív7tŸ$7ùýnÔ¼¼CM³DFø8oà°Qö1a FI¡"9]7ô¹äÙédÚÆ4ÈÖ‹Ý­å"Wq¦åí “Ž©‹òßJ"Æ­¹]º¼EÈIvÂ7H)jÞ¬–Šã»xúz·Zÿø7*]á+» ó)òÓ12‚Ýãà‚5º¡ñ}JœÐ7óáf¹ÚÄÕ„®xgÝd˜…˜\ÃŽX -£ÄァnÀßfì¡[”7ââju/©°ÄKÛ&޾ѽǸ¸½ü^µ~Ûø` ?rÝD=Ïx[^ß®l:ð"®G¿J—Þ¡ª -S´]]­îj8-æqŠ²¯fgrm\ë0ü6íg Oî¨'oàwëù2fo_õf“Òß¼ý·,$¿ýY$-ýäõ:esEãý»×”†µQU'9™DWà#½ÉÖ3‰÷ÅW««cÀÓíÃGLÚ[ -íW¡í¼;zHðª=ÜßÕ‘RÖøµÅrXhÑ‚ÎxwÚJvÇ -µÀ·}å…𣽷ÐY‰©o'+"ZŠXzY=åN›añ^p´3¤" »€); -Ÿ£Ü7×ÐFwsZî÷ÖÞ.·ëÕõ -+­!c—ä4 -þJ©jÏ>æ±×{¹Ù<,îi‚¤þF:Š'+ã~¥8ïqVÎðòÀïi(Aw«>ö Äwûµ;õýÁ˜q‘A[öÍ[*²Á£ÁÖ„¶Ñ©õ}D~4ïâ;³>hŒäÍgdL-Öì£qæb*;hŒDé³7F ‹GO<#cšƒ3£•Á£ÆÈàgoŒÖ -ÓÒÏÞíü¾ðº>ÆCþNÅ^$£ž~@e# ž‘þàFиâÑÉò'£ú¸ÏBuF8'ÌnÖèóëÛd´ùS§þë æt÷†4C¯ïzõIjÙ'bëuã}Ç'ôÈ"‘Þ„X o©¬›qáÎWO^0’îÜY möQKZüaIì"¼¼™-¯õÄ—ÞfŒýýy‘… `Ç’½Ó78ªsÒÐ9³#jöýl³º{°“ ¾!±.Ô|)S쿶Øk½Ü?¬U&žn¯€~@Ëýü«ùòAïøã‰ô:‘p¿×èã×*Oí¿àþý•?}±Ä'ërŸ£é|~» -g°:DþS+t´¼ ù¸+C½Ãád¬7^­î>Ú»Düqo|yyôŸèÆBߦõPÕÚ©x8ˆŒ§ÃMmœÜ?_3LG;5üŸÈ/ùšp>·ã‹|ØâêÒç„ñóÁlïsÁŠß°Øñ£Æë/æ\C¿|ñ¯ÿœözKendstream -endobj -1016 0 obj<>/XObject<<>>>>/Annots 103 0 R>>endobj -1017 0 obj<>stream -xÍ\ÛrÇ}×WìC”BØûâ)¥‹«Ê’•ŽR•Ê‚$,Ë dÿ}N÷ÌtŸ@‘4uqREóà`f§{zú6KýïQžñÿj™% ¶mF±aâ²Æ‡Ël¢œY1Ap“Q5Î9”åNdAF–*yQŒLZ2PLJp™uù€#(êDC61Øj,t–0ئ”q–0ØI%Úu–°hWÖí,c°u;X2cØJ>U46hw<Á‡I» -\»‘ËóFj$cg,ªp–0Øn2d ‹8“Á̺¤[[¤%`KJ\X‚“ŒñÐv +#–°,©ƒþ íJ=PjVµhäò²‚,N2Æ´u;u6LÛLÜxk>mäòB ÍIÆ2m7`ôµìHܵZO¹¼hñ'cÚ¦°z*êªTcÐc€LKp™áˆbVý¢p1i!¦à$ãðÈ1³XBÂ`»BöÌ&f C«êe,fTÆ2[ÉYõ™ƒUŸC,a°“!–0Nf.ˆe,¾9M˜%¼Ì*øIìºIÄ,Œi0³8­º·V¾=‘ks±mº=¡bœc&ƒ­KÙYÊX¶§ëv–0Ô4nEMÆ2[H”"–0X8ÇÁXÂ`; E4–°¸´Îô"â2[%b ¶Õ­µ53Æ bóŒ Ç.oÉI(§Ÿ¹è‰Œd 5" Ag±Ïil'L,aŒèö±„e $èùXƲ7ˆ%,JnåüØÌŒEÉí`ÍAã’›WEäò¢’%ÉXì­a% Îúw–°[Ê‚e îÂ:KXTÑ Ç[©%ûXÂ`'…¨ÂYÂP¶€WÅ,fⱌÁjŒñ™UÉÕd A¢›À”œ¸¼ªp¸œd 5ª7#–0Xâ–dž°c h>–1ئÁKXÕ`ëÕðRµ¢Ûè¿q4¼$.‡›ÌIIvÅZ²€ŒÓd7qšÝ:Gb"ñ)ã,21ØRÒÊl-vH,aQ‘®V×'33«I¢e [ ùXÂr膫b,Ö¢gcƒzËVdЧWoäà=‹¬2Ž DU³v’±¨IÜ´³á‘8á–FW -ü‘‘˺aFF2Æ´ú56L›çd( -|ÚÈ!«Ç®G“"ªÂˆŒd 6l¡³„ÁN$[ð±b€%ôd€¬G 0qjqÎD%!®Ù9‚8Û²iÎ9¬ÅIÆb|¢:g‹ñ•ƒ±ŒÁÖâªh,a°ˆ;¼(Æ`‘å<–0LvÂkÖ -‘–H §¦€mhârä(zõ›Bª,‘ýš @8¸‰“êõ›Bꎕ>ÃjÄJJBÄb¤>vŽ Ö~Øv‡Ú/Aì -b6tg$c±®fÈ ˆµúX²g’;Ël%u7±„Á"5ØÌŒÅHÞá,c°H¹X¢°g¨ÍÄèÞ)„ñJ%[G¢â€ÁˆŒd,j¯@,a°8p<1cQ„¸"Ël#I±„Á"ÎblUŒ¡ˆ±\gƒE¤à±ŒÁÂ`¡D›9(qšAk -\‰‘CHÆ3#;leS#( -.DIF2‹$NÇYÂ`¡”ÁX¢~=ÿ>–°°¨ŸXÇP0ªYž™±lÝð¹ª$ɪ,Š`JJœš–s± Ä÷Zs³&“ŒÁµåĆG"^X*R(ðGF.<Ã8‚öH#ã#ãÈÙ5ä,aŒÕT–X¢?©œU7(É–µDåªL\(4œdŒ‡b,Iç‘¡aZ”|rÄÃ< -|ÚÈåÚ¡+ŒdŒiµq6(nÖ¼}¡À•¹Á«Ìœd,ê•ðD,a°e{!–°H* 1±„E½²ñΆ¡¢§´Pà Žœ,p‚áòM!㡃ˆ% :ÄC},a°ˆ.–0œ«86–±œ'ñÀ>3c°è0 XÂpX°4fƒ*rj -\‘‹¢ÉØTálPEDw–°©ÂÙ Š86Šn,c +€…;K,Z€Ø>g Cp¥8tÆJ -‘ÃÙZÒ€hBSˆÄiÎàA*‰Ö΄œèLD2[IBãC‹Ž$Á"–0ä„[ΉÕMÍÛP¬«}`›š¸Px9¢—kžY½ÁöÃ<‘˵mà¤z–\ËæèY'ª£I\Ž2¤‚°òSHÆkn‰ Ó¢k~PÚ¯…Ž ÓFN - 4’1¦…ÄC%,ºÕMs–0t‹ÐÆcƒEÊlX0†˜‡•ÆÐFv’1–¤Y±„ƒ8Ö&ñcïà,c°È a¡6–±ˆ“‹™ÄAŽnw1’°w$När¤ 5ŠÉD2Æ‚‘ã¡Î‹ ;` ‹8r“ãcƒ…ŸþmfÆ`qÞ!Ž³„ÁjŒXÂâ¤ପ×2V˜èïfß‘‘¬ÊŒ"(›*Õ½sÁi²åœCÑ€tpÓ3ª.2¦éú»íÈ`¹•\f…Sæ‚Û#Š`Z"í”ä¿ñPëï&sdr-:"ˆ áópý$S„Ón\«×i‰SסæÖ³­¿ÛÃ"ü…QeB‰mÎ9%ê}‹L/S§®×ÆéB¡Ìæõw[HdB¦eA,ö-­ˆxR‚뤼7N†–‘™•þn‹LLëäkBÄ„Ð.‚œqÁ¡¯ð˜¸g'ž¼ÄwÇÙÉ™¦Èc܃¶Uvrª—ÍøxöødúþržõgÙó~µ¯¶›¿žüº{½>Ïž¼ÄqÏež#ɵ1ÑQ!=~~1½ÚÎ×2J¢&L{ú8+Gò†ø -“Ÿ¯§ÛÅê\>‡ò'y¹×ÇúUœû4øÝbuÚÒ¥ ;Ò6i–Õ|û©_HœhœâÓb{!“À4ëb?<ž.ßOåÓ'/á3ââ‘5“RHpÆBñŸQ¥kÅUZ|þ“ùvödµÙ`ÖÙÅhÖ¯Îddú‘}»ÿåyôš[¼ä¨\i¿õ¾™.ç*?¶&ïâ‡ëù¦¿¼Þ.ú•P¢Èôõ©jµ»oÂõf~ª3 ¶µ.t4âm×4qâ¸a0³*ÍÈ;Gj3ÄKÛŽ¨]a–‡è°«V -øFØ í%BaØËÊ…=¹PÕ ºèê´Ü7óí³W?«ÝIñ=>ŸÎÂ8XhR<|ù·Š^ä*Ÿä„;âwï§×?þ||¢â¡å2îÚ(ÞÙâ2è–SG3¹u1_è EdBB²»gÁœÑ3µå#}¬÷—þB½ÇZÝý¦)J•E=ÂÀú¢'!I^¼Ñm`á~êû×W2šŒßÂœ …€AD¨÷,ìÝ« ƒø;A$š|“ï%F"Gé<#lîÂÓ‰ÿ±ÿ$Ç>xÔx¿F‰®iàήW3ñ›2`¦+õ’¸¸i,ø\Ä©Ñ°0G²íe(\J&O»WV¸+ä -rs1 Õ&Ð]÷ãNZ¸ß—¢Îp)æÅ$ú®Æn2±ƒÚè?­æëÍÅB;RèWõ÷k­Eùp#Éòí5sî'_(î¹Ù}ºXÏgÛ~2[\¤fÄî ÂYþRÕÌç6º —~/¶â@Iñ]úÙ ÝÕ†“O]®Ï=÷ËsQ$F E’ýêþÅ`¸M³+Uõ-ö!é#ínº¾|¿ÖŸ.Î~O;bݾÃGí¦ˆÄxüµ3ü²z„X0”{¯â–ë¼õT“2wb*ë±Ù]^þ2u -4è|¢›¹Ö†*Þöô‹«Ã>v¶žO·!]Å-×8µƒ–ÓÍuû¸R´ÊájºÆ֎º¨}“t`í®ïýª9hlÓm¬öE;RhX곜^]%›…Þ›dôñÄ”»]Ž÷­·&‘Qw)‰|»Fo5­ -WónÇ×WWý:”Aø“9»¶úÐZ ™›pë%£dý¦F‚÷ª¯ž“ÿHZÙíhȹìquÀ|Öýi¨wôhÅLdgêïKè¯ïÓ@%³+Ä~Ykö? Q -´†{7­U¾«{.N'Ù$gëÿ¹kýËõp!}~¨ƒùCZÆ拾ìb)´lÈ~´=žo“ RY×áÅzö~Háñ7VL¤"_ŠüðŠ¦¨AëBnšýTÓý!©nT…{ÿ]Ÿ´ûmprƒ+ä½|þrº>A ,~um—Ü/9py f$—^èÃéaù«øNÞ¢Ú9|û—ÎOOOÓ.aKS-ó&ÖGè:Ú;"ƒÃûYý¸PU *ÃCAœ t~ñã@ùôí;õÁx9°¾O¡xPQúoMìècÿÛ£m‡ -î¨=ÕüÝ·ˆ?zFð–ÿ$u'.ì‹~Xisæh?nì•|'ÞryµTëÔuK‚e­’“¾¿ÜÌ5 Â4ßÅw¹ž¢èÁС>ô&Ï»‹©®Y®²­²Pñp5æ¤$÷ßdñ*mWÆdÑŸùõK[‡¿Œä'nä8çÃÌMö¼¶š)^úLåëÛéì.f†#Õi¾^w<‰×Ò‹i"Û¾+¾—eÒe3Þ-Nà×ß­ø„$ÕðÍ‘kßÉ” ÍjܘÙu5«³ç— \¨©Ä?—ò-ߘ Rá„ÄdHÓ—:»ô^$þŽN&kðÇèz-yüôõ³§ÙÛuÿ+%Ù‹~v½ÄâM.ùÓÂq‰­oååÒÓÇ‹…ÈõÃÉ£<ú?MÇíendstream -endobj -1018 0 obj<>/XObject<<>>>>/Annots 147 0 R>>endobj -1019 0 obj<>stream -xÍ[ßsÇ ~÷_q“'w¦¤y¿É‡NG‘ëÔ™Èq-yÜWŠ:I—<åHÚÉßÀ.€#eÇULÙíŒGß}Ü]‹Åb±›ßž¤ÉÿO“:Kò*Y¬žLÆ|¡RúçÍô%©Šþ]%ùlœ°LΟ8¸JÊÉ€sp•Ì2í„Ú9¸JÒ<g®SÁåuìt2Î}[‡WI6)"åI‘—ã)T)³q‰ä ÄQ¯üCwF"„vi:WŽô˜”)Ƶg[Õ㳃…Y`]ÖcR&´õl6UIdž´É -â¤1 J&-p2KÊ9y0"4UÒc°˜ÐX‡E—©cÙô嬂ÁôÔô‘KÑa•) §9»ORÉÀ.°ž‘Cô“yÖa°õl šbÒð¤äÕž:«=BR¦‚i­¡Ç`aøÚ³ƒ­RˆëÚ:LÊã;ÖaŠ²Õ ­Ç`‘‚®­¨ -Ÿ`ÇfݘªÃ†¼Ê9HªRe¤Ç`1W›z žûë0ÄÍRDpcEÜ:•åÄâ20q7¥+WÎA^øG9,ü!r>X^IÁbË€ŒulEAñƒÕÞôã’KF ¶ Eg=ÓBÌ‘…iÎ'@bäxåç û.ÔæN¨|7BÒ“vA#= ý!6õ²¦´nŒõ,fpÀ: ™ì«={ vJÛ¹cÆ6ÀI˜±ƒÅîê{GÊiêãg`Ž8DØZ9i—ÊIBk8ÊáJJCSxoåNXÃÀa1WI®œƒ°|Fíô,ÎR›ÖtËàÞ´ó¦ÒUé1X„…Ú³ƒEž0u,ë’a¡râFºP]"ÇËÎ8Ñ)§&FzLCÒ™ÃXÑ¥’SE‘Ó%²åu™±£cDšë0¹gFvж“{Na`cE¨RN,A(FN¨Èæ)Bdf¬Ã -3#ë0†E¾îÛʰ؀ɕ°ŒÜ°‘åÓ|f¬Ãè™ôQÖcÑ–RV†Íäì†eä†,ûif¬Ã¹(h -Œu,?hk¬Ã`±qWžu"#ÃQµ­ˆœÊ #ˆÌȉYxh’²„úå¨  ±Ÿ@% c†–t˜yÖa´EL†´-k“"èÑ^-Ú2m”E¸+`,ú-±Ò”CmÊÈ5,œ?…”TZSleEh£«˜ RDæG5ÉX‡1,¶Ü³“²Ô§µe §UQ‚…HláÈ¥HKøý’HiˆbŒFvªÔ¸©ˆy«7’6U:!Òª‚Óà ¸Oƒ†2Xã\%(JÁìÚÎAN; ¾rˆËB䶵#=&Ë‘TÖÔc²\¡=‘°Sð DÂÚzL€v)Ç:L€ûŽu,˜ë0,ˆHãeæi¤| -$7á¿u6“býåF9=QªãQ_Pÿ࿵ÃÀ¤iïPŠU.±ç¿µQ`¤‘RB -¤F(ûQllƒà*Z°Æ¤yH¡»r‚ƒ­ÇB­4%ç¿UÈÀ 1¡B ~EŒ!‘k\‘rD¤ B›91° ¨zºt"“kç 8艚š¶3NáÛ„‹àØ@u¨0žƒà°c 4¡œApõ ÈqlC‚l»!žNz"‡hD§KüPfN!Ì‚d'lå ‚›¥Î ÔC¾@'ÇЧƒà¦ì»ÆËõ¶ï®v‹èepAÇ_ ˆB#$j%²}%†3…N÷ŽÖbX²ˆu\Šw~¢ g9Ol΢¢É¥Eîç'ßWíÝíœ|·tÒ³VìfØ­ó8iÉ•¬g¦ã -I£ÀïÓ<,ÚÛùûæŸô=Î&Á>ÁQ{RËëºÎ›mŒ¥8Y€ÜÝ‘plÕ”§z1çïØjë¸ö’ùúŠ‹­bèlìåY˜ýdÓôï›^ÌŠÉôQ¬SÔ$Ç(­!óÀå¾/üØ]E&NäõöïAT+Ã$¯ü ÛmïvìIT[ûê‹<*¬t¨tõp¥7Û~¾¾iÈ8q•iÜÑLud u‚ø£»üˆÌ4¦É…ä=Ønýfþ'4ÏtÕ¾î6ÛóEßÞIö€4L7# qìâX!UÌJ¾ý®jú\½Ÿ¯ KŒM2/b–á·U\K}½è¤¶‹3v঳}7}ÓÌ—³vå3”Ëé£æªÆþÅŒDõy.Ï?M‚Î1Æœ7‹]ßnÿ ®(ÍÕMhÙ¼o–D)º‡ÉÝáÑq95qF5Ø…[äóûSúM§F¢Î^j„Cä¾g]Ïq?,ºÕݲÙ2÷–]52ᨀûWÛ2»k2 ª]•6ΰ`-Aq.€,øhÛMœSËôqÃŽI…²ŸLôQh`],&yM -Tâtóøý§É˜ú_u«¹œ×càeTØpÿ#à¸LóGÛ…ËlÏ÷©àï÷]ª¼°I²¨ç]»GŸÁt¾fË¡X­¹Ô« þ„s§nWϽ•ðº,XéC»½¥ßús`bGÝáÙ’eFù,ççc… ±Î(Å[xªîÌ°‰¬&µÉý’Þ—^¾k×WÝ9nÁ ˜ÎaȘÅVò[TzbUàXÚR¿eN³0â‹ü¡ÆrþPßÝrxÔZÖ™ÄÝ,ÙÞ†H±µXq‰Ì]N^œM³ñí­¸nÖ­’à—ß ðòÃ%EÜFBŠÎ€ªô˜kHÌä¶IºŒúœðr°•¼]·×­d<¤žî§î¦[³=qŒ³”¦ûÐ4¼Ò°³bÔ°~¼[ád]% +em=¯¤wDš)¾}õò¿4ñ8Øn½Û„eŽYš¦n¤Kø0ýWù,lúŸï”å~-"Ç„Bžê CÎÉ%eð 9¤ Y¥?È#ÿR4ávÉ/LÏP‹o8kÔµ r¸ÊoÁŽ§îÃÔ$(w½o‘3°SáÆ/–/<ÝÅè Épn°M±vîÌ›\Ìû›Fœ ·7± ôv#jàU@\CÃÿCŠBþ„HΆSôïNˆ¾Bû‘z×õ¿Êô`Í{#ý”}‚fHº÷¦JLÑY»è»Mw-‡]Ük®ñ¦Yu’·RÀ¬ãYŽˆåNRÝÁ™òt¾ gÜì¡LÎñO ú.ÎÚ‡¨XjåY“ÐàïÕ|%é8RJÍ1ÏQvjR¸@¥ZÃý9ò¥'Lx­‘¡Px áïÕ· 5)$ÒÓ%ñÂ+õz‰:9Ý­ðvá®NvÛ[ܳ´ ½|À¤Mæ -ÏË=p½w$÷ŒºÌŽ¬*¯‚ßî Xùè¾ü“$ZÛVúò9€RV= Ÿ,—iÏľcNcJLx›¼·Ù¢"v°ÎÞ4›ÝRB¡ Éé|qsܱÇÅw¯§ícÔ„þ³–aP=4G}¹Þl±ÈÕÅpM¯Ô}s‡Ë¿ëöfgb¸Î=–ï}Ä:Q7dgºFÃŒÂnÛ>Òÿ1?Ù§ûsrëÞ4¿íÚ¾YÅ›Ö꘷@ÉÕ®Ñav€+þƒ%qÑlô¾o 9æ&´ d#¥}$–––’:žœêYÆ|Ä¿ƒRxÌ<Øs¤|®kã§vÕnye°ìniQ´Ïl§Æó¨¡7II\µÀŠ],qN‘ûëoM Þ*Ý!‘ŸØAŸ?-BÉŠÁsù˜N[^‡¨ ~§ôVt‹ñ‹w[Ô»¬êbõ‰½G¼-Ù8sv†õϘê&üÖ­8.Jñ«y/µ]<1‰Y²Õu¨H¦­é=Eß-—²{¢jø°Ò}Å›—{Û#›òžGõÃLøußôe6­$…x”£wî JòWqsµºÏvÏ/ùCQmD¯²‡ -í¿Ÿ/~½Ar!Gï˜F|IIØWP`pvDa`8Ñ5ƒÕñúÀ< ™`pC«šÃúÒŸ9J¬ö㡓ዾ‹y JŸhVÉ–‘!‹lÐX -{÷ Âkx냤1WJÎ8‡’ŒØ—p.ú݆3.¼I±óËÉb9—IxÏc>|_ó±Òìé²[íàª\cˆí[÷M†3ûîÞj®kŽ2z6ôð{xóõNîËÏNÙšá™’·æ=wÁÀt«ñe²ð¨u6u»09Éa6ôÝÏëÌ>z±üã;Zx©9CòHŠ#â—á\§$8øïöù/~0‡—¶á5’i\.$žSóÌùÉÙ÷'T(ú¥Yl“çÝbGù &ë9íB¨.Žjz¹wõ´m[ã_Oþóä#[znendstream -endobj -1020 0 obj<>/XObject<<>>>>/Annots 192 0 R>>endobj -1021 0 obj<>stream -xÅ\ÛrÉ }÷Wð)q,sî3yIùºqâ[$mù1EQ#‹YQÔ’”íýû »3äxW–,oRåÒáa÷h4€F÷×ÙdŠÿg“&Ÿõd¾|0=˜âù'“’O&uÙáßå¤è².&G.'UuPGp9i§%q—“.?(ˆ#¸œde~ÐÉlÓ´ÌÛ•ƒ‰/'ù´>èh,c°Y5P”1ت¨Êl·Ã†aI–¹ÉżE…!ò4?È#û2[4bEý®²„ÁV…å,a°m1œ™0X˜ªâ±„ÅSY›™1زC[Ô¢PžCøDk@$&ˆ‡N3™V¿”u ¶ôy”% ¶.EYK8¨‘Œ "M;X/‰¤ÀEŠ\WȪG“j#‹¸2»e ¶­Åm¬ -Tu5–$ -€ ”¸VÔtŽ &Åt‘ŒEÜl0”q—'q[Õ°ƒ?–1Xì2fƒ2ð' ºÂ•W&rª¯sE\q'‹¸­<Ò¦e ë4e–0ü3¯±2>V7\UË.ÄPÝp©—[×ðPb ËIJiœe ¶®c# -À÷yl -f—M…RDB%6á,aÊØ(T›cy` g c,¤€•% ‘sbƒ-ZÔÇ2Û¨1læà2eá²Rà.¹ád CÁ!à46”±˜¢ËlYÉîq–0Xì4˜ÂYÂP'Ÿff,¦ÈÄ6–1XD*–J²k•5ºy4 – ˆ%ÙÕ9‚1»:§Ù5Í©éÔ9‚°_¦^¨OWG# þdS–0XlØ‚b ¶ÉÄ~>3aXÏa–1ØZüÂÇ2 Wâç2–u+ĺö\Æ°=>g–1ØJCe¼œ”¨XfÆ`‘˜ >-4È„˜¨À3cQW×Ne ê:u¸% þÏ23–È$écƒ1*Y 3†"2FbÔ ®³„Å™<ÖYÂb ÙvÄÛJÙG,a(¤¡ÖÙàÈ(|%{‡ @$&¸œ4üKã⑈?pd#ƒEœƒªÎ ű²Î[·Ã±„¡ b Ål¥e3Uñp+¤K®jäZIÛÎÄáJ²œs!,Š(j“2‹@8` 3`ÇúX˜!aa[YSbƒÅÞÌLXŒ$…« NŠ“Ðw¨"rÒĆê,aŒ-§b'g «kC¬c°m#ã,aYw±Œe]kÙuÎÛÈ‘ÚY©Š¶Ò-©@¢,ÁX8§õ@‡úÇyDÆ„&8¨5D2MJØÙ‡2 ÌFt™Jzð±ŒCî°p§„%2I%Bc ƒÕXH,aäÞLÍÌŠ áS"°}“8=€8§û­@±ý€‹\¦Í'Ã@Ô–\ >0rö?D3’±¬Œ¤gb ƒmtQmlx(2£! þÐÈaË×°¯|Q8‚˜‰¦3’±3aQFŠ”A–è‹ æU ÊÄ´81A#%aJt7Á³à` -dÁ˜0Ó„™ÆeH{Ø,61žX©W;Kl‹<ΫIÆYUSª s±lÍ'"d°¡|SHÆbñkb ‹ÀÅÙðP$sÉ&­Î«»;@ D!Siª $c°°gÁ,ay¨K}bÆ`QÕ—Ä‘j:Éf -Ü‘ë$ú8G“–²lN†IÈ-ŠI/IÏÈE½Œd,zŠq|(c°úÕ˜œáÌæ'ʀªI²2VëQb ‹6j^IÇÛ”²¦ÎÆnÒŒÁb&(dcƒEG%É(Ïe Ç lœ‡3cp¾p‘C†é å‹Â„2ÈhPÆHÆ`µ'B,a1“˜šXÂb&];›9ˆ;¥ób¦ÀÅ\Ï8‚&®‘QÜ82ñ9Kc°¥œ%,âJ™D,aY7UÆƪ2¸š±Uÿ6U"£¢ã(éaTP#Ž -Z8§J$NevÎaÒÀ9U ŽË3iÛ§âkˆ…šþmâGêtbŒ#< -ý§Ö)‚àP,gÄ9‡ÈTçꆊ8‡àlˆSñqž·zDÿ6ñ#£ãÓ©øF‡{NÜšÉä2!AphÍáÆÐ8‡ðܧ""³IrѤ©ËŒŽÐ.–ûIcáQ8H?îY‚à4©8çPÄÐ{ª4NÅ@ HÒ>Xÿ61"2šQÅ’ÁŒ{züàñKI²“ã3dŠÛʦœŸêU5>ž?<ž\ô“ÕÙäÙêrÛ_n7;þßîmöúãäñKìÆLæy$a¢G¹LôðÙùìjÛ¯e”Ô 0íéC,Û|†›>ùçê³|‚îF“>Ú®ô;yYÇAŒ³ÅÇëu/ \®4æh¶<™É§8Šgeš‰BçðçÌT<¿Ê»8©ƒ'¤Aï׋ålý› „•uüÚóÕr¶¸ÔOQÙh±Ìzuq´|ü 9X"‡kV] “È!Zã¡h‚©â¸ö´Çýkµ¸\\~Ü“}{®ZÂFY—'ý/XùjŽCŒ©i–*¦müæØh×;yšÅ¯|÷ÿ5™HøHn °˜¬¥Úç¦Îj¹\“Í4­òûõ -n·Ô•B"r¥f—§23"`]”QÑëõj­_ÅÕ”yØw×itÂF½ >+Í¡¢õPÑ£ß6Û~¹·ÄïW‹ù¢Wé±$UÛD¥Æ…UÎñËpòdQÉîãæÐe•{⡲ÍPÙç³à¢ØuMÚ=+8¤Æ슢J[í¼¿¸’IQZÔæäó™ºVÙ|tòJ¾…«Ûïûí?t$r}rJmΦŒÆÐÌ>Þ­A›þiJÆ°!“ ²u²ÓÙJ­„s»ÛîÃâòtõ9m†Ý—Ço^è ¸ÑJ»çkßýó¦ *ã¼¾ãíPL•æ°–Bõl»[ýŲ‘W£$¼ºÜl××sá6—iÑ¢±Àÿ¶ß~^­‘‘­pœƒ^¯>âëª0ÊÕøéõjZU -÷؃@…tð=5:ê·ÛãqÒFr f¸VïG‚0ÝW³eü& -Õ©E„Ÿ7qûà0™"÷d'$Ä]u‹Dµå$"vßnÇ}ß½yòê퟽{{|øîõÁö‹ní =´¦N¹&,àAkÉçkûöXŒ&µïãoÜÑ pÕaÏòÄÃp3ËML ßi5€SùR ´ƒè!ò÷ -˜Ç¿¹€y2öëÈ­oP’<Í ¾"¯„diC¸ñpíòµ’=!ßB¡€AbvÜ+P^]hõƒ#»·3XVýhbFdð-î¡ô“ÂR]ÞW¦­d-©`*Qw ^:ãûu¿î½^lÛPâÝ¥œyØÏNÓƒWß ým¶–:‘}†3T²sp à›mŽf°Œ~NíÀ"ד©äšÛy%Ø]÷úö©´­E„ËlÇQöÓç‡óþRåÆÑ2ØBÓ9Þ…õL7¶¢ïŸ?Ó¡hßÚ¡ç²ïOûSUA±ªîí8ãnµÕ&üp_—Ãñ,”°ƒ%òŠ@«OÂ!ëfÛbÏ(ú£TLQâ·ÚFÂ?^Dß ¾®ÓíÿJkWÞÙ ;Ǽñ} Ê;y¯Äßô!W–ö ¦=kÛùéógj97W?î¼<ÕªY(áF -æ[ZiÝ_á9 QâmžŽÑci³<¹šm6Ÿ÷Óµœ-ƒ…ða“êíc0²Õ“•Yyƒrûk¬°©¨Æ:Ú®Ö)ÅóqY—ü¯á€„&Kª'R4?~3›Ÿ/.u›¡ß×ØiâÉ|ŽÄ«.&=1ÛV‹KœÁ–{ñ&¾åŸ±òIƒz|~†{ýüÉ{ñn\§ûF¾X÷sÈúJÈÍïGÝV&T(¡Ü‡ ‡!çýõújµQ5)Ü–áOAŸGáœÇzì”D¯¤vŽ†bÄ´.ªðááQ…AQ”:zÖÓ:º¾ºZ­·½î°AñbnƒŠyÔQ¿þÔ‡þÊm;ÖüXmÛN,EÑî+/ÎN^;šŸ÷K¸Ò®²æÎX»ê°¿Ð=´9_è!×Z¾CnØ°<|Ò>f:1çÅTƒ 7Šá÷‹/´q•bEæ ­‚«»Á¾ÛIn©ÏãZÞYOEŸÛs±7ò¦­÷dÌ9î ûM‡vÓ°òƒü„WcGòÓ»«þ2I‰ ?x¡¢Ô¦¼‡L¼QÅ,tSAnõ½$=^àÚ]£ýúóf …~SþÝŽ 7R*)ç·ÓAŽîš€ný±½÷Ž”W¡QFâÉrv9ûØ/ã 6dÝ~CËèFÊŒ~© ÷ÞÞÙK;ã£~~½^lCóïMY·wLÉÜøð®GNýñ‡þ.^ÀwtÛ駭ƒ—0=úo®úùbv–jQ·Ûõâäz‹èz!1Ö!f[èdxŸâ¾7jŒ—ÈþºÓ7|ñe¶¼ºÐrdP]½~þê¥?iíô9?]ƒpÏiLÕ½zŸu—™qÛ\ÜWðé - —òÛ‚aÀÁ 6j•ÎÙÏp·•nLqñúC6ÚèîÛý°+ER*ÆñjÈ Šñö¨µ¼Z¯>Å:—»¶š'k\V¤6n/íÄ>R=ëâ‰>/XObject<<>>>>/Annots 233 0 R>>endobj -1023 0 obj<>stream -xÕ[Ms7½ëWÌ-rÕŠžïSJvÖIªìRb©Ö_hrd1!9Ü!%'ûë÷u7€nPÔÚÙÚ¢¸I•¤7oÐ@£Fcüϳ,Iñ–4yRÔÉlu–NR<¡ýxÿ#=Iê²ÃÏURt“Ìer}fà*©ªIm8WI—NZøJ²ª =P‹Á¶E$¶¨é墂ùM+7ÌsHó hCÇuͤLêÀ59õ‘vx¡i>Éâ± ¶l©)¿K,7­ºM|SAÚ4°g•Ö`´m* BYŒ™!›È˜*FF°góŒ+k0¸Âà k0ض„¹ kð*É3Tl1ؼ˜t¦­Å`›rR–­ZÕZUéÃVõ<§I”3ÃÍÉ+”¡U­¯¨PÇA…îK/g ÍnA3HZR çFê¸6%ýg ÅH)B‹”Eôe BǾYNÚe û´c í×òÌÎ@ a‹@ŠP¨VXÅ@…:®iɳg iH MIZÂ\aõ B=«å $¡-üQIÚÐz]a¥c4%jà*i[ØB9ƒÐÐP„Ö%ÛB¤0P¡Žë2L[8iNSM Eh…FÊ@…:N†8!Rò¤ ¤-6”Œ” -u\–Ò:.i1ÄbÍ—†±9ÙÁÏ*ë8\à „PÄÏ6))B³Ì˜Š -uœH œ"HZt­šJ@ê¹®€þÊHBiûQR„b…S T¨ãZ -¬Ê¡Y8¥$í¡(M)ošH¦nUŽ÷PߎחrRÚ µ,¢Wëúç.i+,Øì.† Ž£ˆçZŠ,Êñ¶S´B(o}‚¸KƒÁæ5LmXƒÁ–eÌLÃ¥lÁ´5lWÑÔò(¸_ƒiÛÉÈÔµ,6貃…ºV²Å`»æ3’ †Q±÷`ªB¿ƒ­òhTƒ­Óh6,‹Y·c¶˜Ø¡Íôkð*)Ó&ê×b°X£V_‹ÁbT¶_1~&y 3>#c|ÏŠ±•58_Y1¾o+ÆVÖà`|eÅø®­3v`-ÆWVŒïÛb`9+k0Úb{€y•5Fà`§¬Å`ѲëÐÖb°5m_†5,r˜WÛ Úc¡(k0 ˜±ãÖb2~Ió¦’WgHaáëŒÈ¼LæäÎb{AjûÀr~iXƒÉö´…Ö`°Ø/;ËL¶§üÈ´5‚ž–µ˜lOŠi[‹ÉºYÜÖ`°Ø.*ÛÖ`ØK¾0¬Å`ËÖÕ~-[Wq[ƒÁÂǬFƒEfd5²˜l_G3)DlÐCLÎÈг¼X k00ED1¬Áb^L•J†y=&óR¼1¬Ád^VHÛ #à8uk1¶?ÃŒ©â™²ƒåÈmXƒÁ"üÀ¼¡_‹É´Í+Ë£¨äXÆûz΀&Ù@·Í+ÇÛ¼@ÌöQ¸Lhh1X¤'²ƒ…ãFm Æ,! ÄhC[‹i†é¼lXƒÁbEm –ù·ýr•Cåp„@Á †ç2œ!áNü&Ïe&9<.hCǵ´¡*g fÎï¥PC‹Á"ða¬,‡Yƒi©Š¡¬,œLŽ{.ò1⦜òäž…ÖX¯Ê ÁH`8e +ÎXé6•¡ë–‘éÖ³Ò²‡n••n}[>qç%ÿÍ9ù±Ã - N tþ«û¯o—¥4ûJZŒñ \ZƒDª .€ºdOñœxŠ’Ò°”³Ÿ¼É@:{b°E/g FÞ¢¤-äì'B¨PÇaëÉ  ½ÈB’P:+)B± ÒB„2P¡ŽÃÐ03BÿJCŠP¤wa…e T¨ã䬧¤Å4V:ûÖ`éjÁ4ÁÂj¯²ƒÅð[Ãò€áåÁÎüw®cð«Lóêæìå$irs‹„Ô³Jê¦Lnæ\¡ÄãÙùÍôÓ²O†Ûäõ°ÞõëÝöÅÍoûEÌñsòò L’‘œ 'è"'Aç¯ï¦›]?R+rqô±ósh7¡gøåŸ\OWŸ¦übVéŸnúñvWÓõ¬'ÇpR'c±ÝÞ÷< Ę%V=9Ò°4èåØiNA»Â PI JB¹ŒµÌÝÐ0‰«Ít\l‡5uziÌOuãt¹@œÇŸÇã¿Ú,‡Ùï<ö‚VáQ'ü©Á»ç^Ôöu+PYÏ»ÕÕC?>,ú/dA” aµçSÅ+ϺÊ<ùvØoû‡~™ó"u[Ö,8vTÅѵñ:d)Umb5ŠGj\-ç¤)¼A¾»þÎ+1°®éÚ„¢Ä þökŒ"c¥Än1¬ù1ŠuíÞ¿ 'ô^éÌûÍØϦ»ž;ÄI±ª]ôøŠ7}+ˆF}^äÀ±â¢vXú×X8ýŽGŒs^ç#°!EdE“"ýߎî[µˆßó:µmdÉ2Žïû)O*òù¢òfÜ.þÅVÄ]û &äu‚«Xï¬bÞMÿ ¡ÞÐen%¬l6JZ·âžI‰¸[d~ìz{*ÉÆüî-ün±þÌŽwz!Ûi@û 5K›åún:JpÀ>¢Þj˜»Ý5ºgˆy±5òFÁ‰v/hcÞl“µÉÆGµ%…wv@”DòîèQü FüЫµçk]¬Ó‡Å\Ì„XØø˜¼\¬™°ª>ßF«‡Ìš—Îð±ó¡ÖÏ6hð\¶¡ƒ¡nœröpb‘îi­\*ªZ}»Ç«JÕ:™55Á¹ÁÙ -'Â=c¹ UÕ:h,dóÅÌç (›…FìGD^§®‹B{Þ÷®_ ãŸôÅÀºð©ÍjºÙøÀŽ“UæÖÛ50]yeðû‘…\Þ º^¼t(s©ÛëåÂ/©äÛžD À8Ç\Iîû˾¢¢üÂewÿJ¹ÜA•«°CâÊÂgtÉî~í]é·ÏþŒ?ÿÏ`ª8iÅgûˉ—ÂvêwØä}¿½_JiƒjN¹Û¯DÜ#®‰h춶‚ú¥|gðŸª+¢µ©®\]ó±‘2[¿'jÜuí…ütõáæŠ:ÆÅ¡?ŸÅ;»(¯åØ,Z…¸|ó7—¿úrÐsèOSˆÒ\»…‘ë?¹‰KBÀŸM×4#ä¹™/ýLOð)@8­Ì†õíâó½¤Ë0`—ú“æÕõKqu?LÇ ‰@-k}ŠRߺŸÉYWZAöÀe<|¢‡£oÊÅ26 äTS¶T$Œ«Ùâf¼'øñ…33 -‚<ø¤/d™\=üžã ÞtzŒöÓ^àëƒýy\`yÖy/høfŠ>ž¯9zÚC‚³ÎÇ£×éâ5÷©öAkàî•ß´Õ|ZÅ3¨Õ׶Í'|6AÄMüEDnNl‰™}úÎòdR|‰!ü±g-¶èÏ‘ÃÖÖ.eÍÐ4îè•ìîzwðÄÕ^x:]û-D³±^¥9Ê!¦BêzØo¾Üõ¼”ÆÕƒïã¹ë [ë}(^nQ5úø‚:D!VÏÄ YU¸9ð¥Šä~+ů¨¨ñí«OÖO¿?ˆnY–ÑHàc›dv¢­±ùÀþ¨•ØäQdû,Õ3*ª‡H°¸•ày§‹¯ æãsÄæÀ¼‡h9¾¬—ƒ”­è Bë—a EñEšƒv’Hµ•ÉBÔõw&Ë­ÔÞÝ­×ÎTøÔÐ'øý8£¨…¡Nâ‚Ÿ¸P ¾Ø/‘u“½»µËÝn:»sq!ʾl_Ž‚ãý:”œ0!>M6ã2|ksÄk ¯8}ïb–¨“ÅËî—énv'W 8ˆ`×8 _ôqЩƒûw‰üÒƒï‹øÃ|±VþÍ}=„ªÓõå»W—É/ãðªÉÃì~…ÒíÔW׋ ïeÈmú²h~þ@þñ÷›³_Ïþ Eºßendstream -endobj -1024 0 obj<>/XObject<<>>>>>>endobj -1025 0 obj<>stream +1071 0 obj<>/XObject<<>>>>/Annots 58 0 R>>endobj +1072 0 obj<>stream +xÕ[MsÉ ½ëWÌ-›ªˆšïæ’’í8q•íu,ºœëHI\“…¤äÝ¿@7š´äª˜TíêÍ#º4 ôÌþï(KRü?Kš<)êäb~”ŽR<Ѽÿ=IêrŒΓbéW±ØM6€Æ7¶WÙ†8þŠ’û~ÜÊ'/¿ªëþ–€â±jƒOÒ¿ó#ô¥i|ô¾ïÄxdß*¬²¾éù‡õe^w¼Gq Ôú춻î9#PèŸ2zØÇ8ÅÜfÝålÛÏËéâš,¦F«Žyk—žMÝr*F#q¥òd[&šLm½e¨]FçÛFO +£,ÔU[É.&‚d:¿–ënÁ[åx•Çä½²‰ò'[øèTù ØöÁóeß­9ÐqX—1›ïZõÕüœ¢ƒŠ©¶ ûábX\M¯ï–zz¡ŠH³¸­®¦³~Ä{n‚ÌžSBKóÓ-ßcÎ(·¡ùÎïï?†»%î“ NQZôÅl0ŠZ͸Ÿ§ë›0€¥œ5Rëm·ä3{(yx¿î‰ÞA!ý˜{ªm÷œ­»å:$ Ü¥T_ É©ØšúÃpÈàŠ°.B‘,æçñ‡?¼rþ§¨V8¶­íب:qˆ?¾ê«å ÕP9ÊÔÐé¢__Ž(r(ðª¨i~èéŒ-¿eñÏeßRZ•úõt¶î— ìóûžý€<Ç4€ŠÂ£r™“S&Ú–:&–ŽOÊ‚¤#oàå“úé²ëçR ã •#{Ùcšû7÷õöf˜,ÿ áPžMWº?Ðv=xˆ®nºe8BñÓ")Ý}7Q¿Á1‚¶1zN<âÏ¥‰iÕ/ï{ÉW¸—/¾û©”¥â2¼9Çùð‘Û|›×°#hBb¡t=Av§Î…ÙÝbú;)†JÕrìÅlŠÎŠ£SDSÇ¡¼—@’Aƒsp¿òˆgÚÿÛ3;3ÌÖVzñëÙßØ~dë°‘?^}¼æg´¹ŠXæ}œ.Æ¿ëã2Ö»xüv"Ç£ ­±$<Î?mÿú׳“œŸ¢»¶Î°__À;¬î™òÏ‹ƒO;¾¾8Á«^ÔúSëãM'këG}Ź•¾ÀhâD“D§ĬÇ‹añ‘G"ŽMÐÇaùé¤*Z£* °ÇxÙ=tŒ"Ü‚¸öbÚ]/†UÜ%¸Nöw Hs¶Ù=õéîá÷ý4ãnû\ âb¸åœæ/’W/ä<À ¦xDì[½o?˜zßÝó›A×÷äYL*;»EÜù¬‡‹aF…”t]’×ý}ÏOáŒ:îªoUì;ü.Ø–yËÞ-§‹˜ƒ)5TqOìÌ4Þ¾ú/ïvémƒí²­ŒôÜròxT—1£¼{N£áûí-¾ƒ™ÀdéAöz¸øK\.”ö}f<¬ä6 7?›eÜ›îö6êíï?  Xts©4ðrP›×#ÿG¢¾¿=Åë9 +Äx÷E¢£D‹#­x8·ÈY´êæçeÙÝ•AÔ{†Xþ!îš$+(¼ýE¤Q÷j±^—w(‚¤ÌCLÂ%‡zlƱh§ÊŸ®Vwó[R“y¼JÙå‡'z&î?†fª4µú¬nþ@åñDêúiƒêå¦æœ,[¼Fˆ…Ÿ¹x‡o9ýðw°ÅßÆl™Á©í€Í(IcdªGÌàmòó›ÁÖ°Õ·­ÿìç7£&k~3øºú€Í`7?¾Åù2íç7ƒ/ÀØ y¹ñh•–_-è}íz¦B&fà ËÈÖ(MÉ¡B}„g멼OÆ]hQÆ—?7Ý}ìGðy˜¾-E{‡ËŠß² ƒŽ÷›æ¬'øKÖÇ÷$ø>Óµ$(Ïûë%.¿å)>]ÁˆîÂÞœñ"òÛ7éHp;v9|æâ’.ùõ×ÿŸq¿ {1 ·œø€.ÞÝ$gÚ×àBœm¾É8£ùÅßbž^÷‹ËÐf^_Ü"&…Åæ[´¾´>h.ó:†æû~5Ìî´×ÂørGÖnÊï÷ñ~â+ŒÛ»¥Œ‰&M_|ÀôÉëé⎯¡é[$}é…EŸÅÏ ÆñÛŠ=­dp¾¬5œàöäfý}•tp­e\9ÖM[V/I†Ù½¾6«ñŸÃˆú™¼=6•&o«ÊÕ}Ë÷``‰Ê'/ÛðmÇ)>äsã·]ñ[µdëÛ´ÿÕTI·º Þ˜áçSÚZÿœýçèO ÿ…endstream +endobj +1073 0 obj<>/XObject<<>>>>/Annots 103 0 R>>endobj +1074 0 obj<>stream +xÍ\MsǽëWì!ç@û‰Å)¥+V•%+!¥*•‚",Ë eÿ{¿×3Óó@‚ч)JV•Ä‡‡™íîéééîúÊbŒ?e1©Šº+æ«ãÑŸø_ÿü;?)ºfŠ¿WE[ª.ŠãW˜bÔ'pU”åto b°];ªe¨b°}?ꕼ*ªªqùL$ƒu‹!Z×£IÑ"YwünU:]Ň 'ÇÔ7“ŠÁVãÑTYÁ`›šòúÄŠÁNŠ”YÁ`§5˜YÁеî÷DV vZŽJÛš% He'Æ ²ñв¡ÀN*vu2Ô‹óR<ÔY{h;í°Úñ¡øCWV-¾“IÅ|(×(³aÚ¾6'´õo pZ8î`¢L†ÝÔÜaÂåo ˜<Òœ<“a`Û™«ô”l Ø3äÀéi>ÖÂH4{;Á?p @ŠÊ5ɤb° EXÁ`;Î/¬`°}»?³`°X½±‚¹ŸL“Ÿ"+ Zy®b°0°j¤xUÔ˜ö™ƒE¼˜(+ìtÊeÍc¯Š¦®ög¶…­Çæ„m‰½Ú°%ÈpU@sØØ90SÝÐLN*æLiˆÌ +æôtîÌ +†™°[T$Å\€ro¬b°™ØgV vÊP™Ÿ«FÄ>‡}¬b°po•Y1LŒ}… écÃö('°{Úçhb .mäzn½È &Æšû@š8a°­m³Ì +æ0¼ÉXÁ`'zb+fBtªÎ* ùUä ê˜Aªš0U3ÄCË’â;©˜,#±²ƒmÍcòXÁTgLu2+,B!Ôɬ`¨ƒ0osV1Ma[ ³‚Á¨:³bx f†¡|¬b°µ… +gÍŒÍtl~ÚÐŒ¡N]ÂM3©,b@¥¬`°pâ½±‚¡¶V#cƒE¤ k¼ã0CnŒ4@™5ö}‹ñm¤,B&âØÉBö8®3jeRqФWš$ vÒRŸX14«M„UÌEÍRP(Å\6¦Nyæ`¬%½#§ˆ¶)pUô —Ô9;Š;&EæÆ< Fý D%H+ÔœÕÉ0³ÙáÊÐÒàÀ6C ÄXÞIÅ`¡$¦Í¬`°¶É3ËÅ®!%C˜DÀg +DŒl`ðErá?5”Ìœ@*™ŸÀŠ)Íxo¨b,&âr/+[MöDR a°Ö±‚Áš³g‘ÍôµÅF¬™ÍkÀLÏX\#dq=a=˜È9Ó 4ªG« ˆ)+*âœ@ØQ¦uR1X¬u£¬`Úi–Œ JŸ<³`Ú¯Þ«,J,ªUL]¹M2ì‡i'¦éc€†˜dW±YqÍQk'ƒÅ†Ä#3+˜Ê˜!œU ¶™pÙ2+˜ªf måSUFl+[¦ì¹x>³b°ØáX¼Ì2w«Ç¡~³|9>U bQOyí‹äš aç`Âa¤’ya&ƒ…Ú黜V1 \ÂÅe¬`²æKþXÅ0’Ãy¬b°a§úXó– +‚ÛŽ¢ñ Læ-‰CÑW 'ÕL4óÀ0)ö§U„6© çHDðÿ™LF˜¾>•AÖk¥û#ÿår! ŽžŽY³3Qr¦(N™)ÚPqسŸM+æü=R1!ÊE´GœËšgèS$ÎÖ°”û™3Z¦–p%J&|Í–!&lä³ aK]ìçÏ>adJœ*8B%ÒódwîñɃ‡ÏXÇÅÉ8¤ÐmÑMšâäÔÞTàãùw'³7‹b8+ž ëÝb½Ûþõ䌂ۗu‡UöÝs|çíf¶[®ßò{\ó®Æ‹PÅ‹c~„„´jã'¯—ëÓá½ÍˆöȤãK~s½Ø½6ï‰÷ËÝ9'Šm5ÏVofA*¸}” +±¯'Iæ|¸ØÍ®·[Ì0?͇õGLàMQ˜ÑWü¯œR˜#&Xmùålµ0eñq×Ge7‹ípqµ[kR´Z2æÌÌ÷™–ÉâWÛÅ©Í€`íÒ†K¦cßuqâ¸:p›&ͨ˃<ÆgˆË“Öx<šÔU˜ålXÍU-–897C ¯XÂCƒ¼\ì?ÿÉ\ +ªn%(Üjðæ2YíÉl¦@«¼ë¿ÆŠW¥©ÅfåûñÅ?Ÿ˜bÜðý$*|¶¼V@,GÅîÀÞŸ7EU™:=oßc.wÜ|a¡Dnw¡Ï{è]ªjS]"l"×âéK³}•êÇaxwuÉo2Éú¾s‹ÞIüý¨ñúy”-!ß,¢ú¸ÓoE‰¨ZRbÿ†÷46rÁºOqÿÍÇDŒ7{»ýìj=g0ÜrÈ3[[èC¤óããܧÎñb7p(¦oªâtqy1ün+ŽœÈ#ËvÇ£ÐdëGGÃC ‹õiú:ê…¾ù *WIAT|­ïz?ܹ¦} Ö×¢j(ÕQDJÒÑòI+^ÜÒ·‹ùÕf¹ J#©¤ca¸tó"ëC"F£CZ¤yyø.ß^mÌ”læŽÓVse‘µe»Ÿ ["´³]¬íb±ºXlò#wj“\Ë”€Ä/öËNU̇@ ~øóöæ¡ó ‡äËÕ]öwï„žÙAŒ$%ç8³«Ý9ò¬åYTPÝƱh¾ùuaA‘Ú¶1eºîŸ«ÎŒQ•è7‰5^ÌÞׇ,M:’¯—åb¨Õ|Û­«7Adܳ˜LÓèÁR°™ãÏ™üV¿>V³˜¡ºmc}ØŒÉ\(sÔ\H–÷|¼óP|‹ÍîØ5ü|©¡šDit·@áùBX Ål‘|+§Œ,b]ªÞ€—#äZù’–-¥¶Ø½mJ¦_=zAÅ±ë² §Ð„4ÜÝút¹Ým–o®v!÷F7§9ð©EͲçØì›ÙÅ…Å^„ÃÊgZÍÖ³·at{sÁs3BðUVª‡DÝü±²òãá3¯ž*²²ùÝgy5)Z:’‘ðu¤%€)ÄýZÐðwªô||º¿R详SäÑÍ|ËÑûEÅN“ס&*“eU’­ÑxD¥’íäÀùìÀ+¼Iª«CÀÛËu¶«7^ #ò”+=úþ­­4’M‰ÖXÞ’? ÛÔM@oɽª°S&—ïÅ‹å|3l‡3Û`M?j»´˜×–ß+ųXT¡QšÍtüûv·Xq£â‰µ§»Í"èrúäá„æ ¯¤}· ‹™bÝé.¨­ðÒ½ŠŽ·:õó5ÂÏ•$ÅîÕ÷°”ÿˆ Ç®¤ˆG¿v ;ÑßùªW×t ñV4"õùùåóÛ9¡õ׫ÅfµÜòt$…#!g·—¡¥Æ–¸gý1´Ò+ûn5u×fYL4ûÑ8Å£ù<æƸ§›Ók‡Ýf¸0ÇF‹ØóÒ“Ù'Ø{wæ°µÕ%ê¬H±ÕYÿµ\¼g-ï°x½wèh™ŸÏÖos ˜3âdqÞ¡«SSðÒ-nš¡)›ë»Ã•²nZ¦Ä=@/ù$ñ·g”ËÙÅðÖž«×ÍgdæÁ^Øû%ý¡Šø@Ùú+Œiž‡›Ãž{{÷E ‘[uˆÑ ï-Rð¼‘ÌktË^¼=Ÿ…z;·oïÐ…G”h(^2Ñ<å6w:h„áýz±Ùž/­µƒFªgz‡yŸ&µp£áóÕ +Ų¶O—›Å|7lB†‰쩸¿¾IЇùRUÃóÕ¡ìæ…l éHf··L’暶³——f¾Ç¢¼T-ÙÓkÇ+㘠ÝT¤nîÑæ7,“a?µ|1œ.Ï~OÁ/D“_‡·ÒŸð9ä§ã{Ê­ëÐÚàÛyu8¾³ÚÌ,cbøÄ;ÜΗË_8áz@ª¨‹C'šƒhøm¬çˆ·vùÕÃáx9ß,f»M¢T§ô}5Û¾³Žwïžµ_Î6xƒëãÆòÝØ+šwsóûkØâ KÍv±ˆ¦9âæle5»¼Lž CwêîÝpùÛ>¨{>K2;þâwuê¼Ú »˜ÒÜ3IëP_]^›Pyà +ƒ¿ÇôzkŠ·£¡@Ëî ÝTtKF¿ÙÂãOû5 çúz/àZÑ Ù §¡¾ Àßh£'¨q¤óW;7«cv|ï,ݽͱ>éó(9nxÈyò„á"yž&Êÿ¹¤Oþ忶KðÊ;¡ŸôÈ;ÿrú×ÅãÅÎuÀí…Ô*žn–èh‡ÄMgOáSsMûþßÿ†Z%QÁ÷•íÍ4 ®h¤RêÎuÛŸ°‰¯uq>º—I4Ø{z#•¾˜mÞ†3=BW{}åÝrí>è–ÛÚ'‘DáwMïÉ—ëB•h™iÚóèô4­Mêx¾Œ5 .løÛøkk•Oº_—f£½ìÐa«¥°^L8P®=zõ:ÆÕ~üÙþjß@Ѹ™(ËŸ®£|¸Yʽ_Œè ¯W8Kl;ð¾}ªÿo<û‹ÐÔ´Ü/é"Ÿ¸Œñ|e¾hB3ûñNÄÉ0\lv2¢(îÒ‰ùÅeÿ¿h¬-qt-<½>Ÿ™œ¬`«Tw,M%\ô€R$]ÿFë vÁïcÝ׶»]«¤Rx‘.=ÝzlÄh§†z^Åö1®ð%#¼šÍßáEDX]¤*å=&(Q±ëEâ'9ává¯LñÛ®_ýˆŒ*íß9¨Z¹x1ä½|ɵŠ'K¼7âJá6Ÿ¿–¿ÝA¾ ôyø ÷UíòKÉÿûM\½;~ôâñ£âÕfø]ˆâé0¿ZAtתÆ÷Ç5èd<åM½å’Z}òàþ¥æBendstream +endobj +1075 0 obj<>/XObject<<>>>>/Annots 147 0 R>>endobj +1076 0 obj<>stream +xÕ[ÛrÇ}×WlùÉ© +à½/ö!•¢¥È‘Ë´‘*å—äÚ–ÆEŠÿ>çtïô4 *.Y¼ÄN•Ãƒ³3Ó=ÝÓ—Ùõ¯Ï²$Åÿ²¤É“¢N«gé4Å/ö¯7ßñ—¤.[ü{•í4Á29{æà*™¥ÓÒq®’6ŸŽsp•dys0Ðc°U>ÍÝТ¦8E5A¬ÅqKf\R$ç &Í*.i¤Ç`˵Œ¬Ã`›|ÚzÖa°³’âƱ¯’<ŒñÓ²¬’*6I-€ò:(ÛW;Û ¥³ˆM¸AU[C ¤MDnVˆ-!Y›TÈ9ˆI³†³é1Øš²FVlRխؤâÿ)="„8”*rbR¨ydô˜Õ0§c[–Èƪ@UmZ%uÃEp^Å°¦qp ¹dËIôl1ãÖFÖa°uf3‰2ƒmé¾q¬Š[êôÛJ€ì_„«¤)§•ã„*3ªiãTU2Gê‚E*>RÉ +â‚#§+ç &…Áà#Fz ±{i¬.)n_? KFÈiKœ¾ÊH9-ÏfduÚ´á Æ9"à´°f€˜Í¸çFÊÀçƒ."ò(0y—¥Œ‘äi+kžò1*à8 ‡ƒŸUãƒÂñX–Øk†Q9– +"W4¢„œŸR€ÈÂó£{ÃØIÁVtÇ: ¶®©‡Mì1#SIùŒõl‘Œ•=È2ñW )’R€èá +êpÂ_EXç Ä ˆjâD€Ð£È`³Hz VbudÅÌE˳HÀ#«€¢:q2ì]ä„8ŒÚ‘sâ4pÈHz ÖôKz ü`¬Ãš,j7³ª2«ÄƒêŠ" U"”Å8ã°³bɼ¥žFzLqé׎u˜âÖˆ‘UšLÝ–I¼ n¡D`¬iœœ …¶æç Ì +ji¤Ç`‘d¡XdÛT%²ƒÉÎGÖaì<’‹Ÿ™î^” 8ò%ÔU î!Â3·"rª.PTfá@ê0X9õŽu˜º048Öa°ðdzCû`ëz ¶bžw¬ÃÐ5ejˆ¬±€‡ û N€lã[”iñMAäGY³©fÈ9U° 6ÅHÁ–¬"# çL“\Š!øQßTÀiä´5–Ž¤è‘7cÝEOU òD(¿v66@LŠÔ†e(Ò ÈJÝ%³ ×FÈ%W4Òc°ˆ<˜6²3&0ÚDV·  ºÛ“ -ˆÓÂ¥±YFz 彪Ó"Ñ`Ð#ˆ.b ä„¡Ž' Xü-Ö1å`ìÇ€î¸ÃïÉÙþövØìø;v0¯y]Æßû5BƒÒb‚ñÑùêb. 2—Õø+j¥éøë7/ËumIJ¬!+TÌvÚ_oæ»~9Ë0ßn—(ÒÙ8ÙÕfXñGœ7„ÚÖÅ­P›Ûº©®‹g› ÌSš|˶Ðô¡ÿ)+Ý3GŽ°Dk°ÑÃŽ¼è.ö××£AxV½¼¥èÓu°ÔëÍ‹¯ÄÎ(vqm¨;ñЪ|zþ²9²;«YØÂìþj½Û —ûE0=o:GS}zÖÇgT‰Jg˜t6 yËÃÔm¨<ºƒ´ ºõBµÞ>•Êe›dyq`Žw7s9èøy–G¡Eq+„¤¢ +géR§L¡àg…gÅxoæóG¸u›Ž3>¾ýtÅ 4²œÌÌxÖí,ð!é"Šª2û[ +ŽeÁC̺˜Ëï¬ Úf|t¾¾”gž-(Éâz1­òÑÒɶۼï6º—Å´QöQ¶¤l)ŽÄ}§þ÷Ã…È^MÑÈúl‘.þ:Êžç!â¯?²÷°ßÝîÅcxÉùÿrpG=ÑÌü!5·»Í|}ÝQ}óUROTiØÂñ£XîÎEªTÍyRßÌ?ˆåÒiV‡cøzØîΛþVÓx3mg!›h¨÷E'R£ ï¿sÅGùñj\¾Ÿ¯ŠWUŽék_¸@³§Ž2¶I£"‡nø¦›/?2Ï¥ÏõlÅfc`±¹žô*£Ä¾rD“Á,j•³n±ßô»ßøkÇàDɲ{ß-%Øá§U„OªÌ'¯rÕÑ*T h–$þ$…Šªq\¨œ gi}1¬n—ÝN¼2‹EÊe·•P1VãèbR®¸M,ú-Åo½ññÂÇŠãç‚c=—$LóÁIäÌë×ÿF•Ð +…ˆx9¬æÚÜ Ççiˆ¡ŸÑïH·“¡icÔ'|î¡®Ê#ŸÎ²4–=ßý:ô{h|ÚPÕ͵¯Ãu€•2?ž‹ÕÑD›Õ_øMÂKœ±pøÐïnø¬o¥’3k Û39rئ"t0½!SÝ‘IÖ¤¾40ùðž -ƒ*wÕtïúõåðA,|:`»ëKIƾÓÔÒg]ßüà:rJšËãJïÝDhÜãÖ©ô" .%Òs’ÝÍø#ªYkâ/P$kCƒH ßݺ æŒ÷ÑI‹AN^$V!wk5, ú¤:{”âC7Ç¥³>èÓÙÛuÕk¥pV„*ÿ‡ázXË~¡ Š¶æC×éÍ ]„"Ú; .vìâd§¿kDf±7|?é…2>~-C/öTŠLÑ’0°LŽ_[ýЯúx³ÈÝÿé$½cåZ«‘Î,³¸X¢_µÚÁ½cüÓýTK’p-š|_dW9¡Ð +­º½Ôy9’ñú4Þ\X·ŽÀ®$¼w”ªT 繘6CšŠmÁPxWÏ«ùFšjô]xŸ­#ãÝÿ»Í×ð›a¹ÔL«XKxÝH²qoØñ[<~¯7݆ñbÛkÍÆr¨ m-®¤/Cæq^÷ ÔL¡úL𕸯t¾/~¹F ½®vE²ç_°Ò½E?êÙ‚CŽ;`ÞØë6j£óÅ›´è¦þÒ,ºî&ãÃG®…ÃÅͽk'lÆ؈‹£]6Ââø ®(ìžéTÊ­Pý%Éùf¿ÕbŸo[q²XÀÈúÅ +^öäÿóE«¿ÈôGúù²É‘ßØ…Æ7±hsÎ]p[ý%o•‰+~4å²÷é|½×Aþ¥[ò\¶o Íø°*TøŠGÄß»ÁŽòn÷¡ŠáQ_~(ïôýê§õ›endstream +endobj +1077 0 obj<>/XObject<<>>>>/Annots 192 0 R>>endobj +1078 0 obj<>stream +xÍ[]wÜÆ }÷¯àS›>H&—ß}é±%;uë¯JÊñcÏjEYLvEe?lçß÷^ ÀJ[–"¥í9Žï^ÎÀ 8þõI–¤ø–Ô“$¯’ÙâIºŸâýãèGþ’TE‹?Éd¢`ž?qp‘äù~;>HÎÁEÒû¹ã\$YÖî—Žôl^m½Òc°E³=Öa°eµßø™Û¶ûÏ: MómÖc°m¶õÞ² y‰×AÙj¿ á ^šNö+Gz 6ŸP$™‡C=[ä|©±ƒ-ÛýÚ³ƒmk®ŽŽ VÅúU¸®)½¾ÕA œd\:%= +aZc[§û™cÃKÓæY$UC+ àKÄÀT]I)RAë0Ø*Ûbå¥e[Á°‹6ið_ê –­Ä¯Æ9jI"E$Ë"›Ó‚6±Ç`Ë ì`l·É±"X˜ŒœYƒ©¦.JzL‘ò­¡ƒ…µ!’uÎÒ‚ÆŠs—M‡¡Y 7 HtulMu¬Ã˜8+¶Æz ¶L·Æ†×"dé¢ãk¹×F6¼ÆX‡©OM[(ë1X8xæY‡ÁV½ÂÆ: ¶‘50Öa$D¸L¥lXZ-Ý?+¹Ä¥ QÈa² ×±†©PΉ•õ8(‘…Bƒ…Ïcéul+«k¬ÃP†ô2{ÌüÏd3sß(3Ž L +¨¬ƒã¾$'ûF£@t™„œƒH "ªr"p¸Ù8éJÚVzLË_c†i¹­ˆÃ`3É +:³Ç´$c‹u€ë0Ø–¨c£a`Á¢¦åu¬Ç`ƒSËÜZÂ…d¯âþ Ü„)&>)+ÃE›J@6L‡ƒ¾ ÑÁ U3ˆISF¹‘“m`Ï[T°‚c+6r¬Ã° f†ô*”Ç\ÚÓ±ƒ­¸y+™©LW+¡sTÖÁEÒ2Íç U-9©Ìƒ­rÂX‡Á"sÈÆ:LCTpÇ: ePcx=ÛÐýmlPµÌ`;ì)Õ@‰„ª)gUÎAªZQ\%=›§×X‡Ábßñc%‰9ó.y0q4ƒcfœTaq*=Ì)“pœƒ¶¦+(é1X¤F?Ôc°M¶%Ç´<ë›9¨OãW2t +¢ŠA)à Ê¡*ˆ\MyŒ3ˆ5™lqRM‰%è1ØŒ Ô¦õ˜Fà¦ìX‡ÁÖ¬º .”±v‰Ñ"€j†h9¤襜ƒP¥¤*Ê9ˆÂX1%=+–cÆš +!¬Žõ,2 ‰[ZŽÂÁ€ÅlF@M”Eɇ5Š0/s$1X$ëÖ³C<ëYÁJÑä£HƒÅ&ˆCžH/¬ÃÐF²‘±ƒE m)Ë ‡2¥H @ !D¡WKÈW0c"@Y–äÈ93`®é1Mȳƒ •@ÊåìqRŠ*€Ó:ˆW2îs“2§é1XÙŽë0Xø1VX_ê1Xä}¬š±ÓÇr˜ÊXÁbý½ÈAUœ˜%sc͈ ⥨±0PIÁâ½Æ:Lu˜l¬D0=B’Ìâ[C2W' h#Ï’•¡d)âåÈPJ“+[°20VTÔá´(i.ŽtNÆð7ÎA¨"‡/#= ÿÌÝÐðÊ*œkºàD€¼Ò ^É#qbR¸FáÈ0)"ˆK†-“ +à¤b z˜UIÁ"öSÏ: VN½n¬Ãð"d'?6ˆ„z]â·Dþa{£‘31\9BIÉQ¤qdH´6ÔcŒÅŽŽÕµ±“+9Ö0ƒ‚nocƒÀ“pD± +  ™”'¨*y¾‡M`z¤ÄšÑ sz|Ÿô¬ÆŠ4ÌÔ\QqÐÄM¨FäÄ/Œs“r12LŠ¤,kÂãÓãšÄ@œ¢KGz § +?Ôc°8ŒÖnlxiJz¼.‡#ˆ&9-Íldˆ”)›ºˆ'@Ä@´i0PIÁJÞ1VÒEoåbJq€LËm#rRJç e¥ƒé1Ø’îX‡Áb&˜O$àK=¦[R2c=f”Ñá 6Âé[ŸU%›g©'Š¥®n‡º:Bp̧6ÎA‹ü “褃•ž­±AIÁÈCò~TÓÁ(ŽrAœq\†°ƒó)é1^)âX‡)¬ uÖ“ÍÈÆŠ¸8Âqãñäï*ìȈpÊÂÛDR¥Œr'bŽ3)!#ײy£œˆˆºEb€ Hþ.¾ª/C;-3ÊAp¨s +Ǥ¬yuJÁ®¸2†0Ý„Õ›R‚« ØQ9yl"©TN2ü»è¬ƒ$|ä1RÏOž<}ÙbHNÎe{JÑl¯‹ääL¾‡àçÙ'ÓÓy— çÉÁp¹î.׫¿üŒQˆˆŒ£ö¸«aØÞ„Ã~øçð™üd‚O,€Éz ÄY£Íòñ'ÌsÞÜ,;2h€ÊO§SþŠ}>9>ï2£0L:à8å¤?ñ˜=>ò~Ù/¦Ëßøk«ÆLJŴ¿”_‘Üu4U[óy·$õô%2̨[ây -y’€BÿúËþò#Cq›·ñ}ë QÝ°¬ºÌ{Ø‹b+ÕGM’§Í(Ö®Ñ&*¬QWã£ûñ¿:§Ð²²XبúÁ°X Ñvm—óýr€ƒ,dI°µ™RÓË3N“!›çŨè‹årXÊ£„µãKIíí×ÔU0¾Ö8l…UQh¬† ÀȤy­s>ˆm8GûÐ_ž Ÿ£Ã[bk¿<}óBfÀ¹)ãc[¦Au-jóç˜d§ë>Ä,Gõ„Ÿ¾™•_]®ÖËÍŒÜêïŒíŽÈ·Ýúó°ü…?c£`ö ¿¿>âqÑ»1¢ÿx…š4hƒºÃûî=:îÖ똳±b£ + +mÄÑÞTõ£aºŸDÓ3Õhÿi5†:¡êù[áŽ"ù~ÉlT{ÒT¶ˆ‡ïÞ<{õö¿ïÞž½{½¿þ"ÑËÚÄâ/,ß~£{ÉïyçÛÚc-T], k˜»¡¬´…¿Èhè»lÃFEØŒ±ôÝ.ÑH>v%Ežó›ÌªÙÛÖÏfÁ4¸À þz‹*áùtöKð¼±É¢§›]Пù½*=U{W¨)Xæ¨wI!ã+TBy…N¯…Ð C|ÀöµZëÖ‡ÍMk±ä›7CÍ‹©>œj`;vœéQõwÜgzRæÀ×Θ6n(u§š†Òí±×çÝúÃE'µ~žÄ³@ÒËnœ!GéNµkýވƅÓî²ëκ3ÑiD3úD¾û QYÜù²e?‹LT$Z¯X’DCS÷©Ópä¢ÅJ;¹á +.Ãc+Óòö›¡"–a|â– äÀ»+ùÕ‘ÑmcØíø\B©7 +ïUö@\ÄÒ¿YâÜ°ÐnÛ>?<ðäZþ U|´ ÝïRw4Ͳ»Â9nv6&ÑI<½îŠ—ÕâôjºZ}¾¹÷òx'fA¥ÍÆÝñ«ë{/²‘ÂÞF¼Oì+£ãõ°Œû2¾nåq¿–5ýk8¡ û+³„uìÓ7ÓÙE)±ƒFU­õÒ³Ù Û¦øD+ý%A ˦ø²§þµ«î gDtôõúðÙ{º/ŽÖ½‡ý²›AþУApÆ$ÿ=&kå°àËt`¼Ã¼ß,¯†•(›?Þ‰ì{Tà³A=H¨»ß+v¤Î¶û?­dFɯU2Ç›««a¹î$‚ÐMÆ…ÃxˆŒ®€ƒzÑq·üÔ…¶jã?k3Š‹Öf´÷^–¥¶dz‹n!©“—´w²« tÔÍ%VV½œ/qÀ"á–½¿£—aÇÆq3V>Ü<¤\ø£Å<»ÿâ¶B|Å­0jsŸÿŽ–à-USñ(>fœNê:vï&Ÿûõ…–©5+8W¸´ß;¶•¶òo xíÞ]u—Q4¸µ‚PúIßZ3!Z*Elƒ~ïËïù|”=+ÌGoµ,ØÏ5{ßS†{ âã3‘/rGWûþµž?wÅÙ8ä]…v”ëµ&‹éåôc·&Ó<î°ÍCú@äj2?îf›e¿§|ѯbù±K±¿‚ø¨Æžÿ'ž¸[éÎ L2Ó'ÆšøV¤¯®ºY?‡%AkBû¥ÓõzÙŸnÖáè†Æš»Ú«^™ ×!|£–¸eç“Á‹/ÓÅÕ<”¸ª?X$¯_½”„†£¥žG^`ËŽß +|‹g—’7Êp¯5gÆ%œ‡/XÚñ;n…ù8ä—žø¥÷Iâ~s€€¡­´÷]qŒk¼T"ÖƯWËáÓX‚ “¨­þÓ%š÷±Ë‹ïuúanG1+«Âå@]¢Ý¾Pæ–S¶×»xühíWîê¨O}'ß`hyÍpN-¶¾ÃnÙ÷/ªkéßR;<Üã}6×›|îW «¬ÕÆ*Ô™²@®I£ iņ.$R–6Ào/×÷ä¨a†h^Åñ+ªh‚{*ªá²[ óMüˆãKé?N¤;Î4j‚°»ÍRMgËaöT“zè\mNÑ^ ¿ã +AÙmù¦¦mè¾!úÅÙÝuØщT·¾¥ei]©›lÅŸßã×·­I¤í€?|`4@vmôŸÐpµWD~ïÚíë·Ç¢;.)kO}d*þŒ‚4}‹o.Ï<€ J1pÜ ÛZlrÑãöoe'|'ŽŸd’iè¦uÞýûÇ£w?I×oµÄxU㔸ÑTÆ…)º¤qø¨Ið)B;²Q¶‡üo–æAoÞuŠ¿–3ë¢Y¯B÷ üësÝGøè]}ÅÅwLÄéqk2fø‡TøÚܪ??Z1ÿfúËwh¿ãžÓî/%[Új òšHq™9,µüãx=‡½B ·Z´Ý˜LO‡t=qÛŠydçéÙ +&žŠžz¯ŠLÏΰ+¯ÆÓ n™ÇËn¥ÌŽy‘&‚~×–r3_÷ñ¼‚h ×Óz\Ý[žOg*t2;&ÌŸFEž¾Ä-b¹rÇkpõRþîª?{óüY‚òègt‹“Ãa¶áÑD{09KZs¶¼ÚÒ¢]^œ<ùÏ“ÿ–]øñendstream +endobj +1079 0 obj<>/XObject<<>>>>/Annots 238 0 R>>endobj +1080 0 obj<>stream +xÕ[MsǽóWìMRUîì7N)‰ŠlU™%Ed‹.+`AÁ°È üú¼×óÕ !Y:H€’*›oz¶¿¦g¦wüŸ3“¤ø¿Iê,É«d²+ˆ}f¡¼cÎÊ!êLF±¯ì³ïKÜÈY¹’ðïßç8“rš´‚y-Ž©s_  ‚È +S"J‘´‚˜œnÖBñŽ“H³rÆ(ψrŽ*8‘ËÇõ ßÊU"ò rä¬\SZÏx- ï‹­ RäX¾r±Ë•/ (&åËs¥¼[~(CF(AªÝ ä39Ë8[â ƒ- ¬µ¢(Åk «i.@†ajh~ ­ 4fB•,µ¹Ñ5BèZò…‘cáÉ-ß5ßkåwkÞ÷gH”Sô†¼ƒj ÔhVa°(áˆc”U…6ë‘5[púEYÁÖÑnj¥1ò@*c”Õ˜,×ÍFÌ’d :kL¶aF+6b°¨žÚƒ­Íž½/“Zi_ɪ•§v µ‘ë8ÉÀ)è9‰³“s ¤Æ!°‘µõ²6‘UÁÁsL™Àj 6ceS¬Â ¬a.FY…Áâ=ÈþÈ* ) Õ,æ BY…Á"Íõ{5‹àDY…ÁÖÕþÈ +#°†{•(+ÍPmeÿÃíˆØ<ÎôÈ)ˆð.‘Ôl>ÞÕlÅâ¬d‹mO£Y…<.÷QVc°WsÅ* ¶¡«0CË¥F± +ÃÅp¢–Õ,RHk¥1XlÝ´Eƒ•=U|¯ ¶:ÜȼË„yg! +1wC‘SPB?9„ÎC†Že ’ƒÅö +ÊQÁb›µÇ* JYŠ²ƒÅÚ‡‘5+U± +38,NŠU˜.÷,’µ,«ìN›M„F€¸0B¸‰;ºÈ)S±õÓ‚  ¶„Ü9¡(À÷dÐ1h½Ç)ˆA1çá¿ ¨1_)ÊEVa°XÎáƒÈ* aa€ºµêbò„_ÂNTWA ›r}¤Æ`‘ÙZÕ,ŽmP)² +ƒ…?+Í*L…k*d­Âx˶o@…¤J\“"©1XY'«0^ŠÜ‡Âa`ûRÔ²8ÙHP¹™ÉgPÚ¡Q 5¦JâüÈ*L•$#kÓ3uç ¹yi„Ä’Œ"H4=ÔH^[=gR.5‘ÔÃæ "®X…Áb“ÜhVaÚ£C”åî×Tö؃Ìj¤ ;.ÙŠ¶<=y9®Æ!’ã30ŠjL}¸b)Va°ðU®Y…™ ÙžÂÖ½…=‹á(‡· + N–Ëíy«äOŒr +"s™`‘Sê ,•"5[¦tJVÜ‰Ý Žìº¾RA+ï ¤Æ`¥ GQIy“ÚƒœG@Öqn˜@jŒaåü`Ç¡(ë)çœVÛ¿ID„,`A_‘ŸÊÚ·ÑÝòw`p‘R›"åo2¯CÎÕ‘Ñpb½Ã’ŠC/ÿ¦LDaÅŒÈ`®ºÖ þíÞãd¤yæÅÍÙÅ+ÎÊäf†˜áàS&U]$7SikáñäéMûaÑ%ý,¹ìWÛnµÝ<»ùRHTC©s'vžQìéu»üÐòXòq‰~&ën˜õò]M:rU>B‰wÜ|³Ùu2(ÎëÚ>óèX#13¬‘MC¡5­¹ì—ëv˜oú•hS;;©³~·Óÿܪ³^ô“O¢47'¦´7À+6TŒÊßwÃý¼{``d',™å…Žüo¯³(Tþ­»ï™LöÂev¢Ã€C{šŸ@Ƽ΄Úë‹)õdžÁOå'³ö“LbtZ«Š-qNðÞ¦Ö1§ø2Ûy¿r>hªÊýþœOø»Â=˜vë¡›´ÛNÞ‡Õ#­\øn¡E½§çXXcš]c†t[>Ï°_)²`Í°Sæô{ëöMF{CXVUìÞu­8“P×m 6óÿIô°âUÅIVo ›Êš«ö‰ +Zd•›1É˹ öâ)U@48%Çó²l¾º#uÒ•Ø*oU eíúc;Ø +€MM¨jË~êVqÌ›ò$jššD>¥Ê¨ßz י̗«K¶äY>*³ñO”R·ó©/ËMæËìb¾rAÁ +´“›!8Úù…P…æ`éZYüO¹r9cö+×í0ßþy¾DkNo¶pâ„Èqq<¬ÛÓùįò8àšSZW¼8Žé»ê–ýð_©¿8<6~²l×k_—Ñ‘4n©Brœ?½8Å2¼èe>py÷Š&—‹¹?¢ñæ ;ŽÖÞjL*ó]×áëC† 8ÏÝ~ëg±Ãú^jÔ„³ïv·ò)…ó> ?©"²Úº’¹¯ßhS[…“wÝf·°§¶uü’y ÈÇz„æ?½¯zh aU‘¶ïg{íÊî’Ñ´iÂvû±$’pËØÜ._¿ºvH&{3.5Ç=#çÍ‹W¡sÁ¸ZY¯ÚÉ|µí7i»‘áˆã ù; ö’ÊãZâ“ÈYtŽ>¿2ã͵؉o4¥×ÓÕ> 3v±ôãœÂ¿½-htéÅèWWÈÑùô;™´rhÆf'¤Tòš¶!dÆŸ&ýj6¿ÛÙÝ8ZÔãÔ'ð›ë q¯’…C÷m;¬½{¿ãEWoÕMä…Ïqì^òŸÆáu_?hÁ× ûïO­œœ÷“&a=ªr¿öÚüóúùð%èòJQYûm­4m¢âqñÅDõ>Ïñ5IŸ'êôü‘Þ?]õö$‹*T? +ÍûgãÏq»%nì†ÛNù%fEðïŸÑ~S +ÌÜæ2:T¾åì6¶m…âlùúœ—LF»©ø¶55x_Öþ*³§½d>ø)ù§brgÛ^N¨ÉzÀbaWBl'Ó0§ÃâP;¨iÿ°Zô¶ëă@ÝC?„~‡.2‡Òì`ö'4ë/ÎùC9éžy§1Òa+};_Au‰+:¸±¿tH½[˜r7ô»µüœ_lð‰àh[:oî•è‰ö¯L)´6Lèü-Ð\ÝØ"ƒ{°¡ÈÜ\¾½xýV²ßBCw³m'Ÿ$Àz²Í†~)q 9÷j>úM?“±y¡õ{7¼Ñü~«­~Ù-:wÒÆ„õUt´~°¿6Îæ ×1£*¬3íÌ%:'qXG×ífƒä•"ØX&ÛÕ8W¾o +#+êùc‹±xïmbŸ÷vv+B„¥þ³ÆÀ–)ZE¶‰soõCz©Á(L"]¿.[›½¼;öCZEÛL•9‡ï’4sogáÍ´óøÿ…%˜Vàb„Ú¶~®Ð<—OÆÒmEAÍóâÿ/TÉHyK0Õ¾Â\ïó=.>‡…æšßíìw_6’ÃÿÖ]KdÓŠûÕz•¸ìÍ\RÇG^È`ñÈ_ßÜÞ¼áoxÄ—ýäùdÒm$Ùp7.–Žø%wÈ}K,Ùô»Á9ûÑ°©˜ {.óU;ã~.›d¬Èñ¸yùïk÷»“ÖèY§Ä%vaå|½Úýtڸ1‡Žý—³áÜ*t÷®D™ ÍšÏÄrk·Oøe8÷oxÑaÔR4Ýõô>Ú(kp©¯ô `Ì«¸Óƒ3º’Û8ò¥Gm|zkp TÏo°fr/ó‘ûŸò¨¦„Ôó(Þ›ÁÙ^Õ–wݺ¶nÆ=£*|å|±»kPTÑ#Œ{"àÕ£2ñè£áOR(ìÏG…â—nÕ ­l"ÑùlŒ?BÍW3© ¸Æmšëëâã…³E-Û/»;©WÜdÄ„üæi3 ÿm ní4s0™‚lê†U‰?7'Ý0ôƒ5¦¿ó¦ü ¶ŸhŒ|¼x… ©r©Œ·;ü‡žr‰œíéçW/ž'o‡þwôã’—ýd·Ä·œÖYã-ýÂàÔZ§cÞ¹¹ç„ûÇÍÙ?ÏþCÜÚendstream +endobj +1081 0 obj<>/XObject<<>>>>/Annots 247 0 R>>endobj +1082 0 obj<>stream +xÍUMSÛ0½çWì‘",­>¬czhI‰™öj\fb; N§ý÷Ý•G½1Ó¡%™±çi÷IïiWò÷™„Œþœ´Pµ³Ld42=n.y¬öôlA;á"ØÀz–À +›ÄÐ2ȉç¼Ð0/-øŒç ‰K Åriì[DIƒ)¦¨“Óú<í(G)ÒØ‚õ,5Ž±Cã­PBI¯Ú’ #LK ­G³a sÒ:ìÞ°CÀ$Å;J1ÂÃŽ1´]Äsô2p,-äJÈ$ìÌ‚‹¬3æ-‹Ùé…•AqÒP% X§¡ø +MÃÕIQÞmjèïá¬ï†ºžßOÄ2 %³æ‘6WL;¹©·ýnhº΢&°©‹(ËýC¤ê‰*C|.‘ÄQÎbÊêñ@F¹Žä¡çù¤˜åq¨äZ9»}×E.yöŽ˜Þîúª~kS_h‰ø“Ò³Z2ª…3´gÑðªªÇz”öd½h¢ö¤âÖÃ\Yj@ÚÝË]¿ß²7:’:gÜò¶ÜneÔ¥ãW×_ŠkÎÖ†öÁ£/RñjIRecig*ÍÁØŠÚ¸¼k6Íð+ö\¸àîÕ¤üåÄRIVzzq<_øG·]­n¿r†rt ¼U+ÑÅ<ˆœÊú,´ Õ}Ô·]ó3Ø¡››î­·gè`Eëã‰?ÿôa¬A¸Þžæ؃S/åñ®–™ˆHOG.:øëÅÇåV»þ©®8ï«}K‡rhúŽ‹‚tW{¾ê\æ9ýGãï‹ÙçÙo¹¶”endstream +endobj +1083 0 obj<>/XObject<<>>>>>>endobj +1084 0 obj<>stream x…ŽA‚0 …ïûï¨g;æ˜Gˆz3Ѹ?@ÆH$"ÁÿoN^LÓ¤é{ïk_ŠARŒÜ sˆ"MpÙA[XŸËl¤Ç„f ió+”Aí/GBh„årPC8$›¸yײÀmÚ'œ†øîR?UÓsè·¡ýFÙ.Ñ]Æ‚õš ©ê‹ójqÖéùÀ?®õ¤½·òxyÆœƒº«•ã;Òendstream endobj -1026 0 obj<>/XObject<<>>>>/Annots 274 0 R>>endobj -1027 0 obj<>stream -xY[SÛH~çWtÍË2U ¬»ÌË.M†*&a§Ø‡y‘í6(±$¯$‡ðïç;§¥î#Öb\©2ùøtî—n™ÿøj†¾J&jUžÌ¼~C>}üñéÄ÷C/Qñ<ñfªTŸzY¶êžWqàw¥J/ê¥Bz T~ì{¡Š—yŠ’ˆ¹Ð‡´D Xª(ô|Á s$îä,Õ<´H§€ðÅà‹”Øx:lx±Šâ™‰0"µ H-L°TYB®ZN@2é[-$(1Ø õR!*1ØhNîZŃM©Ž5î†)JÆ‚ œ»=gü³œ€äPBJ-)19xÈc›…Tˇ‚­18ÄÀ9ÔsÆË ¥³ò‘%%ëÏ)Žl“»Ž˜ÜM(»–5î¢\u—s·çŒ–Ê(–”lS†+0Ø8¦Vq¬À4~u™e%‹¬#–å`ÂyÆcÆÍj€ fàØ{Ç ‡f)’áH‰)˜¬À`“ê&XÁ¢wGš ¿çRV`„ͪÓlBÍ"7¦!jÏ™Ø,' L¢ Bå% “±d›$cV`°YLîZ³SUi¢‹]›©0õyˆ©yCFÄPŒæ¨c‹¢£:ŽìœÖ„`¦ Ó~u¬q*&g jœb$œØ0"§+0™QÙ+0ÌbJVb°!mY'+1¹œQ@V³Ä`ãdä•Ä`ç´¢œ¬i¨(†3ýÞ -¸†ê9ÓA–¡Î8ÿ–”,Ò“Ž,6>‚q¬À`qæ"ŽÁ1ue%ΩU+0Ø$y%1¥) F¶²&Ma V —¦ž3y±œ€6M–ìÓÔKÒFDG8V`ÈâÖ^s¬À`qò£‰+0‚ÁMÁXVb°‘?ÒlBåÕ>tjÏ™Ø,'  Õ’}¨½dªcM¨›fä®c†fØA"+0…RGXVb -5¡;V`°é|,+p )^|VVb°èZô©c‹w¬À¸üÍ|êDËJ 6àa·,¦•ÆEn>X´ òÈwChå‰CG IÄÍîZRb°1]++0 ¦ÓÃÉÎS‹ ¾»HÒL-Öü•~³:½Z¶]“¯º_ßð\‚¦4ÏCA€'Oïò¶S_wë¼Ó晨æT]ªÅó^]ퟰéѯ—QvÅêúfA£ÐÓ3uŽè#Ò³x.Zµ¬ëï -?sµª·[½êŠºRõFýöåqñ¿^¯õZuµzÈËe®Öõj_êªËÍc?t£ºg­^uÞ´žºU]óJëªÝ7TÞ©|»ííò$Ãnjµoè9SË}§ÚºÔ]Qê–•±3Û¼y‚òoõ’´À£J«nZ8·,óN•‡xµ*k$¤Ñ+(Tp©íCèßÓƒÿ¬d©Õ¦ÞWk•s®ù;#þà/Žš'uªž»nwyqñòòâµ”¯nž.X§ý–‰%øaøFÉøåF&éµËŸ´§î·:oµj5ìí¹vˆ¶«ì¢FC®¾é¦yý—µ=~Þšöú0G•b5µBV׫@ÂQQ„Ý×îÓç¯ê“®t“oÕý~¹-Vê®@*á쟧ŸîïþüÕæ4ðÔÚd÷J ‚P{«ƒ¯e1˜*ªÕvOóRtÏœÓ?m½oVÚy‚JYTW[’º:ߨùTiDŠD6í†+Ô{Ò^<í¶^÷óMy‡´‰Q¸~Öè›3Å馰.>¦bð†É—[M±_×U‡fãîè -ßTÄ6ÉPÙSõ[ýBr[µ&Cåh‡…Fû>\ýþáêpyñ½¦íß›VýÐéš]ª?tŽ‘¥¹@F©ûÌXgDüÎß`ÒcVë_ªûb».ª'Vý¡¨ò¦8Jsø¾æ€v -då®nºSÜ"”ÃÉ…ÇÝú}Õ᥺n4Ö$»Ü–K4oµ)žö™‰M±Õo4ÌMüæ!WMÎM„¨„¯hîÞ‚"ÕÜüãf:UžÜåMy8º‰fJÞw ¾T]ÞtCq)–:«Â÷^þÆB.LlšºÄ„ëníQ>Õ ïf£‰5°ítS¡2?ô% §À B§Ó:×e]¶u>Ž&}ßV‚rá˜ÚbÚ„=ãL‚•y±53^™j¶ºÁrØê(Âì}›©±‰tUtÄbˆìbÜWÅOµÚØ'GØ™¿o'û?;\¬\Ý|y8S›Ç'|Õü'ÿø¼àÁ÷3õåá"8Sº[yžw¼7¸g}v“ñHgÿí³h[uSWÿèÔcÝ|ÿçXb¸q ¡xº#oŠü©ª[Êâ}Sc%—Ç,8za˜ôö§šV·7G*š^i×ϵñŒö/¼ëj\«Ôþ¡Í-èý% §WÚ}ƒ;Í%ýúùö¿täêš{GÝ_Nì¨Ma`z™ÝÕ«ïÐœšé•ô{¾Û‘›_1€XIz”’é…•dG)™>.XÉü(%XãçÞÔØŸé‰"ãzãçÞª™èÚ‹Yç•ÌÍÛ«|MŽ2|’Ex™Æë%÷í¿'ÿ9ù «\>”endstream -endobj -1028 0 obj<>/XObject<<>>>>/Annots 326 0 R>>endobj -1029 0 obj<>stream -xZ]sÛÈ|ׯ؇<8¦ €ŸO)Ù>ç\e霓§*•ˆ„$œIB@Ëþ÷éž%v:B¦SW¥s«¹³3=³³ÔÏ7Ɖ›§.›¹Õöl<ã7ü‘ðÇï?›¦£©›-f£±Ûºy†ÿy°qWg·.OGs!ƒÂª°‹Qêfót´€ÕÙ˜S U˜q>Z -'6S8)¤b°³¬gV1ØÅ4xÀIo]šô§õ"L—£Ü],è’ŽôÜd6š“3@N ¦ÌÆ(ŠÁNRYÁ`!_¦¬`°HäŒc#˜t -ß"«ì4ë¹¼\RµŒax6 ˆñx2e*1 OÜÌP$Ç3Ëi²LhÖP §ËÌL“¢ñˆ¤I8…XABÈ™„—¤6Ð>IR1%cî8T1cÉ ¿°‚Á.'JXÁ¬‡¾EV1%œ@%ao] tÞ%šÎæ^à„ Ë# H0œš² … ‹*š%+˜.Ï‘ÈúiáS—øi É´ “p*²‚9mÆë ›ô 3¶‹©!3,ìdI뇦s+Š…Ò Œ¡S*°~h2±’IPá©›òC#ÆP4¨X_mãÄ07³8R &Kf.Ši–ÝKXÁ`)åcsép}EV1SgõÆ*‹e‰#+ì| -5… U­>+F¥NluËŠÁ.Ù ¢eÅ[7Á’Öyƒ&Ìm°l)˜ ‘²gK¤Ç¦@ SÀ'’ŠÁ¢ ΔÌpC’±‚!º—ZV 6!}q¬b°Ùu'¬`°Hu¦¬`ȘôçU {„F¤ì+†c¦9ŽU g õJ1«ªï•½€»q2™ÐeC&¤`°è—˜6²‚Á.Øî…Œ€¼a¬b°hp9²‚Áâ 1ëûIÆ®iÇF¢ËÏåʳxzÐ0b …0YÁ`±Èa8²‚é1w1aC -4/DÆz§ÐC}£å¦’²x°Óv˜Ór;V0XÄãXÁ`qï†S‘Ìü°Š#«ØשÎ˺í0X„‡€‚eÅæ' ÚÎM‹*{Bà"¤# O‹23«‡Pì$ݸ××g¯ÞqÕºë[œ‘ñm×Ü]¯íë´±»^½€v£¿^ÿñôK¶úνpWm¹Ù¸ûük¹»sm]ío6Eó·þ§qX;|ú%l¿ÄÃh -ë/²A“ïwmqWç--^\¹Ïån]=6nW´Uý¥qe{ï®òíM~|šþ,Éà<çwÅn=`c¬Ž¦ƒ&.ómá~/šj³oËjçÊËÝþ.ܧ]ùíÕ‡r·ÿæàõf}Š«xy¹þíÛLH÷ê‰åçÅ«¢]½º¯š¶é´S9¦òIé©Ækôu´ªv·?9Evêôÿÿ™`r껦A¬îOšäIa—¦åÛäñùηoŠµ•$rÿçjE —°_¤è–ƒ5v}_¸Ë¢}ýþ·+gó¿ÉW÷Åq«½Œc¡=kôÃů¿]]_¹Ûrsš¹a]~ÒÐp;y{yå>TÕ—ýÃINüüþ–žä|Ø¥_«GwS£±Ýîw+®ôÆ廵»ÕVn]¼¸?¥D¯J†×ï7un+ÕßeXŠ8<àÀP¯E²ª‹¼-К›/î!¯qÍÀ˜S›†vÊ´tÞ6 -Lÿð-Žç½§éð´k6(èÕþᡪ[Þ‘üî€ÇÛÑ·ã¶uÁãû“çbª«µïzÇ-INðÞ>h¨··Ô÷‰wµþçº«Ú ÷†ÉcÈÿ~`ðùOÿƒÝEí‰kÃÎ]­™{[—8C5¶ÿò í’s˜¾§ÔÃî)]vr·Éë»ÂíöÝéÊb8u‚ás¾^ÓÝK´ÆÎe4ÊÜú°n -?Ÿ¤Öð–£ÕÇñ#Ên`í<)âa}x {¿5-w]U›¦h;Ú¯“çnvŸïs,‡&Øx6éÕÉs—ºPw/÷1_}Á o@‚'æO”àÄó<¾Ëzf×1QqnÁ1ÔŸÁÞlJKëú$UÕvQÚë¶\ìÅ·uµ ýf<úÆß=Óx^½ã3ßÁøü=^ào——Ÿ«®Î/^Ÿ£r«?°/º·Õj¿…§æ5Ý}Ég:~üå<Å›ÙúÅù Žchò$'ü{1Á_¬óÝ‹¿ùåúìgÿšñiendstream -endobj -1030 0 obj<>/XObject<<>>>>/Annots 378 0 R>>endobj -1031 0 obj<>stream -x­Z]oÛF}÷¯ôa‘Ö -I‘U`±pœ´ë"v²¶‚ìÛ‚¦h›­$ºÇÿ~ϹCÍ\WŠŽç~Ï;£ü~›b3KÌ47Õú$šDø ¿ÄürýóI1IL^ä“ȬM6ŸÌ°27' -®Í|>™*NÁµ‰ÓÔI‘…É$3ù,™ÇIAž„ìœd”Nb“ "©1Øél’jVa°E“"™eT)@ìñö¤”êHnÝ,K%[éŒ2p‚Ȥ8å8«/$ävwf‚¸Ð’ÉÌgŽ°fÄiLŒÚñ¤Æ`gSÆÕ-Õ,j_ ÖU™$“™Z«1Ø,ëE1  ,F“ʈ3® ªö:NAÔól´NA‹zFÔÝBÁ¦^Uj 5GÝZìUd)Š%Õ¨@„HW*H¥Ü™žÔ, -rK5 ×P˜žU,:Üñ¬Âì9#áXÁNÙÒ=+î¤B #Ød¸ã!ÝáÉâIÁflRŠUìl¥ŠU˜ÅÁ`ÏZ“¤âÑq…@“sS“:Öï¡59’æî1X9…«0™3~­Â`¥´«0œ‘¬{Vc°)ÏÏƬŸÉåAšÎQ/ÐU¶ Ï)ƒ¤ÇyRc°y>«1Ø‚U­U˜Î$ šØG“4‹–€{Va°Ø7£µ -ƒEÐ4ksžÒÐjÁ  VËMy,Ãà˜Gp*È“h7¬_„ SQ“3J«Û-á9…¾!óÏ4e… -¢àXa¬…HœcÅÞé<“¤bÀÉŒb’‡4‰‰÷¤Æ› Š“¦HÛdŒã¡0‰I -ƒEG€Zù]afâ˜tÏjÌÄ#Ö†bšÏmü‘d¬dCá1ô"Œ°Ê³ -ƒEÒçšµevrq*`Æ$’†U˜s Ù±[›+Ç6§Ãøšp œ -É -3’Ì”b‹VkVaz$ùô’†U8’#½Öú‹aTæfd9d#é1õzDÖZ»$?µ‚d©ÂXjSäY…i²¤È³Ö¨È¸q.& ÉÂ&h­Ü_Lo†½K¤Ø™ýlSM +MÕb:ÄO± -ƒ-x7ñ¬¸›ävÀã€37Q°%Q6B -²ZQ' T³[àH@NA´[ΞS' KÒs -ÂÔd¼Pc°¨¸éTj Mp¦Y…ÁJRkF5EÙÈYkÜñ~­Æ`çÜñžµ”Žµh©0YDPašœR°cíRdÄ^ …ä2Ãm.Ž™)“MŸÛjQr¥*íïÚ¼±‘¸µH}ª×*ÌP°qúµƒE-Š‹c,\Ëæ¨6jU&aŒ©1X í#Va(•+²¬1Xìr¸ãÔj yN4«0XبõjŒ -‡^-Yc°èt”Ó«1Øœ· -ÏÚ®ã -''-JMLj†ÜÜ«0XÔ¬òk†G¸­Â*Çj V^«0lFCB™¸µƒÍ’cèESdAb³Â³§zVc°£ ·Vc°È ^\<«0Xôý«0lƸ€ ºµƒÍxq±ÃǾ¿v›ÈÝÒbx„í‡,xVafAlö¬ÂÌ7¶Z«0£Ákg5+ã§gÅøxj'Õ8âÎ" ³ÂP‹ˆäËï -«0XRäY…irÎô:Öª‡¹P @¹ˆ1ì8>ùÀ$GjL“8Ó(Va°x;ÛK¢`«íVž|86ÆÈa+í!ÊÈ“ƒ/«0Xt)(u‚5&+qP¬Ç`ñ†;V Æ“;·ä{‰‘C´‡g¼£‡€Šó­9Q&Ø4sµNÆX'…9å+ÞP×rCî8ÁáÆ¢9¹ý9ù¸uv'a+Êy# -Ðuök›Àf₇äXÊsádŠ§ 8ûVņ,.xH÷X~‡tåâ8ÁaàËÑ SAp˜iÔ:¹âÊQBÏá|OK<†1Ç úx/‚¼ùpsŒGÃû°c^´d ö3î -üžz\±ö¶Hma«ÉðnÇ:qÝC¸n‡¼=÷nqòö'4éØ,îðáC^ÌÌb)Ÿ9DfQ½)&_üúòsˆîÞ¼1ïëÛÝý}³¹7Ÿ»fÓÛoÚÛU½ÞŽ—à,ÁG§Rg‹%ÄÆAÁ›¾k—»ªoÚÍaI‘”y iaÝ™Çî5Gb§A±_Ê’DâÖ,[saÊoõ¿Ž°5 -½©{ áîÑŠ®ÊGSn–˜mÝ}«»@\GfgA ¿´·³éÿa6­iwýã®?ÂâüyÛ¾+7÷õñBgA¡×å“ùÜnû›ªk÷Q^ag¸NÏ–ßÊMU/]™!m6°.Wf¹/ýâNu¥‡EÝÔÕ®kúg³ª¿Õ«@rÇ¢þ¢Mƒ–tð²íjSµëÇUÝ×ðt+™ÀV4íêç“GîãÊ2’|) Ä û'6Ѻl6oÊõmi’É÷ñªC=¢Ãñø¥m6lIåÆ\-Ì{+ÿ©éœ†ä°µ›xÍ Zo åýÚl–íÓçúœÕHæXökæÙ4[Ó?àË-:WÿOTÄlGôœqÂAú²iîìŒí}»UOu½q!pôïËÕÅÍnËhÂÕ[x{8rºTqß«=»eǨþ¸ý@J8ê˜àý'˜Jièƒkèí·e”ÓW¼\”Ý}Ý›/Û¬—Y -ÿnŸö¡7_Ûî·ãŒÃE4èòeSuí¶½ëÍu½n±Ñá6zä{ÿ¼\…š‘®ßx‚©%(ÿª\×æ§VSá_ì»êáp@_Š géó -ãF‰ùÂœíúdMUrD0—V¡ ¿”2ÕI½ÿܵ8…/Þ›³Õªµ:Ž³=|ö^×ÛݪGh«l£ÃÒ^–CXÚÅfÛ#IÖ{îÐóvs×Üï:ùÉaé/6' ‚¹û³ wç ¬ëú÷]ÓÕk¤+P´ãáÙ3(kQoeDZ0†[ó)4¿¼ dx„ùج›^‚v”qá± ¨Vh‘¡ulR8\Üè}ëò‰­3‡‰)·¦ä³.»çýyµ•W«º;"éÉ+)ÿÜÕ3µmÐ -®ër¬R.|lLÖ»²úí)tXŒå„“¾/mž>ØõC@†óüü+ oýó®F@Ã¥lÐÚ,ºÝ¶7gUz{l?Pœ¯3ÓD{¬%G…ÿÕ~\nv,­!vÖ:lËaM/ çå‡O›SØ}úÓêù‡¿L]8}û¨1T6rÇîåv ·Âóv½F¸pzÉÅS2õ¡ëÚ#îJx w†›çm_¯qY5USÛ -€’»æ¨ƒÏÖÁ!ÃF‹xtæ¡^=š -sÝ…Á¤˜åÆ© _sÆ[Âܵ›ãæßß^~8\8£cŸ ¾Ò#ö;Ñ;<ƒ:{Gßþh®êþ sÉ0HVõÒ‘p¾¦IÝ“¯ÛrÍM+÷ëÉyYPáKÙûO—gWÿ;ÿtµ¸þôqÒïÍ.þ&1tó7Û{<ÖÞ$C×?«zÛåÙ;1Œ3Š&ÏûÎ i«ç¡v¬0Ä݉^Z?Þþ„PäшoßQç×ùOGonÎ.ßqGþZá÷mµãéïF“S¾Õò×Og ^˜–oôm Åÿù)ŠïP RFõÃâä?'ÿú¤“ endstream -endobj -1032 0 obj<>/XObject<<>>>>/Annots 430 0 R>>endobj -1033 0 obj<>stream -x•Z]SÛH}çWô[²!ú–õ´E ÉR‹™âYØ4±-$‡Ìþú=綬¾bh·¨rùpt?ûöíÛ‚?NBà'4ydâÌ,Ö'Ái€ßð#äÇíדtv˜l–ásmÂ09M´2óÌ£ÓÈYÂ'S‚Qrš)Rc°qtZhVa°yxjVᵉ¢à4V¬Æ`ã©SƒMƒÓHË* ¶ˆ§^ŸN DˆRDmÃÕl2;Í5«0Ø4£fÑ$² -Ãn3É#«1#Š¯c›dSY…ÁÎ\´«ñÚÄÈ•¶Úx¡!a¼1ÊÂd‚Äg…oÀ5r¬Â6^øìXÄ»Ç`g²¾ŽU>c}áÕÈÚzDÐœÊ Z@Ÿ„Ú0ä¤Æ`QXÇ* V~¯X…Áf³©¬Âp8È'Ni 6›zeÃAŒÜ^¡ -`8 -®M‘2e#§  -BVÛHj 6̦¬Â 5Àú*Y…ÉJ;Í -ƒÅNœÈ*ÌD„ÜóNÖÖSI·ö‹ ©'»Ÿöl\0ŽUv“” àX…ÁÎr.¼c¦WÒFVc°v':Va°(0t€‘ÅF™m‚ ;¼ãQ ;ƒœ}PÖA¸›²Í8Rc°E„ÅS¬Âp(ɱŽÕ˜Ápñ«0ƒ‰bÅ*Œf€ÅÒ²ƒEt: ©âtÆJB¥ŠO¬å²\6l²k¦‚™rI+˜TIÁÆm:Va°ð^ËZ«èB<™°YÀ  ^!ˆ# jGRc«6Ó,Ìì1Ø™,“U ØfÁF,Å*  ÆÂŽš5FúCfÚ±6Ø(—:´gt*H²(g¶Åpƒp«0XédŠUlÁòW¬lèú倦n‘ØU…×@žµkË£(E‹`ÊB•u˜vÙ+á&ØS¶hxzXd; QtŸX³ -Ól6•U˜.³lœfk6OlI±‹%hµpjÑ`!8’ƒE‘dŠµjq,°‰ (¸+€j¥oXÈXx;Rc°Ò{«0ætiT¬1"•ô;Öº$%ˆÍÃEOH¤Ž.äàÒ ÂŒ:Va:ÌQE± -ÓaæY± -Óáˆy5gœ˜’8µÅ²uY$Á.DìkƒÐÀ § l¢ž‘à‘Ô,º½Õ,Ž ”á(kS°Œ­âÂ$‚Ä#Úc*fR¬Â`Ó||vð801Z˜ ¡¢È"§xdqhÆóÂ*LÅt(Y…ÁbT +ñÄø¥tø%Poá 1©ÁÁ‘´‚«¤õWòwÏbMpá³Ö_‡!›³*ºpmÁ–•6 ãƒE"«0â²+VajN¦¬Â¨5œJ°+v¨Yc°I%V¬Â`¡ ™r² -ƒE’´¬MUboSèyX;´ª ÓÈbs¤Æ`Q¨ZTc¦‚³¢’U˜©à6q¬u)²WëƒçÒÀ .Œ¤ÆP‹Ú‚ZÇ* };Va²5ë0ó0œQÖ:Œ,u*z8‡npp$5v¬ux/kt¬Â£ÃŠ‡Yž*X»‘µö>ƒc%-@vjqf#Ò‘Ô,ö62ìX…ŽìfÇ*L‡yê(Y…‘aœÊZ³8öÆRp‡Z ;H‡9ë9Rc°(í@³ -ƒÍ9Ã+Y…áæŸT±Òþ#œò‚'tI¾=ÇV µò$I™ŠU˜y`þkâÓ6bž@‘ QŒTï1c-(êXžH|ùÀ"•›­”T‚ØèȯR"”ÙˆoÚ†rtˆqÂ)Bã“|ÈeßGKÃk&®"{J„ÐKÕô2Ž'v˜8¬ Z÷ž1Ìë’ -nù.¶FQÿŠútwòñ ê"4w|›Írs·”×±¹[¼Ç¹þãî÷×oiÛ'óÞ|*?žÚf·YNŸ@Ÿ žÌÊC!õÄ^=÷ÏeoþØ•«ú±®:Sš‹f]ÖsÞlú¶Y­ªÖ4Ó?WfSõ/MûãŸoÛƒÿSƒ¡×ä¿š³lÄØ=v}Ù×°ñXo–¦î;pâÁbôÀcòuˆþdÝ?WSwÆÍÅ9B©–ÕÒ£öëPo çåÆÌËõCi*dŽK²Ûþ5;S÷S¯›.siºª7Ð_6?]œ{4¿ -Èß+o«íª^”}%IêÖÛ²ë^–X•Uå1óFpkîOÓ¼oÚzódÝ~יߺªýxU.žëMeÎ qoêÍcÓ®m% üÙog7æ¢n«äÿ<¢ê’qÞìÚmÓUokÑ+míMÖ%·Är·`¹£É¿ëæ»í¶iûji£œWíϪíŽÑy Í‹çj]"sKs[­$“Ýs½5}#KzûåãAä¡þ5¤ý‹þÊDx¬ŸvnqÍKÝ?KHo+ž&Nð v½­6RhbDz[ítýpvyWð/¿­pÚpê{yDãDÚ¿¢o;³.7åSµ®6ýÛÚ§îæ^ÝójÜöŠîŽ}æÿXµ™W­dµÛV‹º\Áï¾oë‡]vŒ h´™£ê±ðÚùü«\oWÊáò‹ùŒ­Ãó…6ʉ•cr„ƒ}ú˜üµRÎÁófÍL{|.¤¿’/×Û¶ù‰íøÐ6/›zäbjwºN -ù`c_ÿ¬«Ó<ŽºßV©«âP Ú{ØÙò7žNÕú;ÒMÛ<¬ªµi«®YíŽëp¸œx×et³\´M×™n÷€³L¯Òy¨‘ÃV;¦ÖpB1¾óê•9Ì«¾gÈi{ù}Ž³—ú˜•ó÷ -¥uÌ:s}ûﯷ׿Ý£ÿP¿½žê¿¸¾:»ü~Œr×øÒ´ ¦D6ÏŒ<œ -×e×—§¸*(ÕP:L€Çë>Ð ¾7˜iʇf׳JÊå›r¹D¡w•§§›XžæÎuŸ«Ýª¯Ùäê ²ðX.|§è@È8¹….NC›4wÝΧuRÐxméõ]r[¶u×lŽˆo¡¼Š®·«fñãä•;xå×3ôÅib÷íUçŸÞøýùVý¬V‘9èÖkmþ&x½ZšwåÊ46Îwø"—“fYm1Šb@ö\¸^¯°ßÊÄ(o5{R9õÙßfo«riºú¿GL¶øó‹w9®Ê_æ׺>b`É Cß6ò1kz ‹=—-ÚJ³ôý45þŽõ­y2+–Ç1þø›Ó}½¬Ì -W•£Vê@#’¥jË—cÜ9Ðrî1VæX=þ#î ¤—õ‘÷ôM_Uk\Òpl·GVÞàM3áºê|…7ç«Ú?×}ü2Þ›ðX0ÿÊ1ßuÌÏ®> 3¿ãÚˆ«øbÇép¼;|ñ¯|wW¼cY¾?{èú¶\Há'ø†Ù,Á«)û|wòŸ“ÿúg¡Úendstream -endobj -1034 0 obj<>/XObject<<>>>>/Annots 452 0 R>>endobj -1035 0 obj<>stream -x•—ÛnÛF†ïõsi1Ã%—§«BNšÐÀI$47¾¡)ZV*‘)IÙÍÛ÷Ÿ]Š;t½®ƒŠ?þœÙÙ™Ùÿ^( -ñOQQœRuX„Aˆ'ü£øçëûE ¥y„t < Òö´Z<ŠÂ ¢5Ì¢ ‡aŠRl( 5œ;Ñ&†ÂˆÆ©3¢C* çé$ª˜Q§†aœà? l(ðŽÆ¼Èš@8 Ó b’spqD û¶À†*Œð8ÅÄ99*Jx|CF Uk¶uª`¨I8· µH‚LÚ ->PŸ(ÑäY2TÍl%CE ‘ -g+jÁEª`du“3’ÌùW3[ɬ³ùJ†ŠFA+MQI†ŠžQI>³™gÉP£x³d¨é<æ±¾èîá±¾†D}Oª­§SOõuª­ïÉÖÖÓ©‚§úNêXßÑv¬§Sm½Oj’p7;U0ç©d¨Ø^ä ’9Å|U¶‚‘DeR<eŽå$á›L!ÂÔ™ ŸÙ‰æE7Þ ,°†Tbr£¦“Ó›¦Ã-¸Ó»F̳áë†s<6jÄW$¨1o5‰!c+*GäÉ©‚¡¦aœj® n;f XO†„ç“j=9U0<#ˆÊ©f -!‡[_#ìW ’˜p OšÉ¾Fc¸ì[bC+f|7ÃÅÏNm€5ˆFñfíDkhÎ`†È=¡C6äi8ÑêÜäCD¤ Œ#ž†8´­!î†<òUWbKÉ<&OH¨‚Ù17¾PCE.1QçY0Ô‚OR§Ú pørr±Ï¤8Õ8&Þ+´âsYcu‡ÄÏ»šn—ëÅëw)¢¤õ-ßåÓ<£õÆ\åCZWgH5Éùúûã+~·¥3ZíÛú£Ýîš~þŠùÀ+!]`iDpi<¥^Ooö»ºh86»fû"_™×קŸôµîûÁÔæéÂòû¹ZE4ÆõáêÛúêé°9SÞ°Þ-¿xú ¿“HxU6ô‘ª¶¹Ým¨âÕêuDßÊî½i›¦®j;ñPSÙSI•Íð-´Uy¸){z:²b¸ã‘w>χÓõYÓ§®Ï_Ùàñ>cŽ1 -þ¡_'öƳD*†»¿eó“Zþ“v}¬{z¸«;üõ‹÷u×ïÚæú/б¯72E/LŒö‰ٴ(ѶèG·kD²évÏš}[nè¡íþB«›ù›ÚúôžÑ/ð©íz6÷ÍJ˪ªûÞÖ™úöØU5úeSÓý®¤7®ž.ý¬ sÔ~þšù²7Ëþc3tíæX Èáü§Ö=îe^OˆåìÐRÏ}´gxî]^¿cÆé>Ô7/ Ó¨pXÝ{–ñ¼F…7¸¯õ¶¸ø—Ç­Ç×l®Å33ýµZÏÔâ}ÝÔ]¹§]sÛþºŠÀ¿ßÖ7Ç-íëûzÜeŠÀ¿”0»ºkTÝum÷"gþÓj9 euÇyG¯•Ô>l°B[^-/™²ÿüú\Õ]íqòú]>ž° -ßNaã ‹Ù³ÕòÓå’>wíw޵߶Õñ€S°<­« ¾wñëè,œÆ›³åM?te5p¬7Ò<×8b!¤üä÷õâËâ_ÆÏA«endstream -endobj -1036 0 obj<>/XObject<<>>>>/Annots 455 0 R>>endobj -1037 0 obj<>stream -x­VMoã6½ûWL·6bÚ²ìØÎ-)ºÛ=´‹n|é‘–(‹µDª$¯þø¾!åÄIÓmŠ †-~Ì›7oÞèQFSüe´œQ~EE;šŠ)žðGÆ_>Žfë…Èh1_‹µ”¯¯D>üjèŽ÷Ó"_‹9ÍWK|Ÿáß)ªâB–Ïqè……|&®ž?¿ÝŒ&Ö4›Ò¦¦«åŠ6e„‚'Åŵì‚r€E?ÙKŸŒ²iHš’6ʺ»ùùöæûÍïñžl™îG ›ò"8zTGÓkú¢dI¡VÔJCÜ)ŸÎÍ)ˆs³%0âÜæ|•Ú§·}P%t¨SP*¬ Rjlðd+꽪ú†´©,ÂÈ€½@Z«¦cä;èh{~‡‹}ªø7C˜Ò8ËA—Ö¼´7ȶN;Fý€˜ñ -îHÞ¶*ÔÚì¨Ñ{uRAR¹B}pãwi%VÖ"_€i,g«ŠÆ|µo·¥XÑŸÔZ§ž’2ŽƳá¶Ïˆï»w…ŠIs¶®•A[C"è¬6Ì2Þ#Ûw²ÝJ:¨-yÔeLø©àÜŽ.¨¡»žL‡ƒð|BX·{º7*{Y1ç•Žifb6T:»¦Û^7%SÃÕ¾ÕF:ýZ±-•\1í/©Ò¢r=8ÆÑÎÙ“mbd10xAb‚ÒWz×?'ëÅAŽSE°î(hƒëÉ׶oJ’}°LY%YFwI!ñvY&Žl§Î )ôAµ'Q-ïõ¦÷½lÈ(Uz†`¢ØZy„ -}Íå@R)‘D⬠ߦՓPò…XJ9Ë—ÆctÚzjœqÚû ’D"Bz¥èÀà;UhÀ³ ÅGl„§ŒÜ6ŠÙ`õU=gøa¶rÿ\¼Ï€Å†,ÐQAÅ2miúl -E:¼GúÒöèäX›¶Ó äÌË€Ñão@yDûz>7ì{2zº•ËÝKÐo*¯: q( þ§“èèÑEzÿ6šOa@àë¹À§ÿ¾üõ0¿ØXQ(MGWVÔwhÞhÜDݬîµí=Ý+çÙ¯à٩ɸº­ÞÕ!z)7KtàhâìM;bÓc,gÊ;NJJž¿U˜‡F¶§y!éÀï ñ  Ç~¬ÝF)‹=å‹þ’Î[(DÒÊ…×éH«4¦*ûà)Y†Ù'a7î›tËΛÎ;»æF&žÏºí¬ Ò õ1}ŸFu§9{Rªm’ÙtüŠ€2ó÷³Þ;+ž‹eçÖŽU·k(æ}±?^âaŒÓ` »:F“…YN‹“fcèɇ`@f¸Œ¦“Œ9Ük¼ĹŽâm“«Ç >ÏÓÿ7oAóÕT¬Vó4á— ðÇÍè×Ñ_Vì÷#endstream -endobj -1038 0 obj<>/XObject<<>>>>>>endobj -1039 0 obj<>stream -x•V]oÛ6}ϯ¸ëK]¬‘?ã8öÐvi MºÆÅ4Ã@I”ÄF"’Jê¿sIivÔ´À8v,ò~žsî½;˜Ò¿S:žÑ|IYs0I&4?:JV´Xãó /+©fG‹döÔƒ““o/¼^ŒßžÐô˜Ö|,WSZçû“ ­³Ñ4Y$tåå†æ§ôÆJá%ùJ’kRÊŒ.TÙZá•ÑT¨Z&/Ö_`nASXas‡³ãd ƒ£u%ŸÀˉfSË'.;R:Ø–_ÃG®MseeæÝöså¼UiË>:Ç™²”ÎÓÖ´¨€ÈÙBÃaÀùtŽ:Ày¿E[×[r&Ì„&'%Uæ!x46ç¨4äM)a²¿™W™Dp˜Ónpq#JTÚXu½;$Ï)/“E—29ÅÉ"¼ÖqOdM¦­sJQÓÀ³Ò%Õê–Ý)wë9¡“¾œ‹h›ºŸÏemRQÿÝ'T*«º2 ¤h €¥ÑõÐ’tKBo–ô |…Ï$²Ì´!D´8iï¥}‰ -sé$¡yø£,Õ¦Dµh$Û‡ÚaâYHõ zÈVÐép8¡›Ñ… @5`ã¤wõôž^‰&¤PaR¡òúãåŸWçïÿÕü2pré…ªÝÍ‹¾bþsÊßßu4v„ÒΣ>ñYO±Êjãûç$(`ŽÀÕ„¹:¼K× Ž–Ä1”E‚«@'ëd] Aýž#q-xÌ„Û´±(½‡ =SAtI›Z ª|Ömd¦ -G‘æƒ Ù04 òfļËe!Ú9¢[}5·|nâ\V„ Ó»ãÖÙqm2QP*ƵJÇ'7/†i¾…¹Æ K¥a¹‰ -'Rƒ|ÌZ«<´Dzȹ dÇrëx/œ -Æ#„…Ó0YÛH=Äħ‹ó¿þ¹:{óéãùúš1ÓéèN–çñ§ÉQ§Ç‹SZwÂg;]‰å<ñxH%|ĺ^Ïýsn³1Ö )€™ÛÄC¬÷¢V9çi -ïù –1†HFN¹bjJ+hv±ûÒ¶Ú :yù;»×ÜÍ킪ȞŽ©. -¸ï–êF“´–»'ƒP»Ã/ì³w‚?¡yl€Ípo? Œ5Ì-RL¬T -è«5è‚Îÿ¨KË®KG§˜žÖ¦`½IóàOãÃãÒíMËk4¢i‘wV>à>Eß]ïÅ– ÙðCâ…5]×wú¡´ôo£„~3ú9rÆl…ýÜPj|õEEËá¡Ù¾y‚hÁÇ“:Ãå­šƒ41ôòKÌS̾m,Äã}ÉÉ1BÃðÕövÙâíF×#”>3MpW#R¶õ„VHŸm–¹xÜ”k¸DâwZÞO£}'ƒxº%#¡5k(Ï •µµyY.Ђ~}¡ØŒbóÀ¨Äî3ïeË‚76Ê¡&H¡yI Ý“Ç RäBõ¬`Àef°±4¦E~Qà=äæßa“‹ƒ"1²‡Ç¾ú¨›ÕÌlwh‹ÔÌìb0×WS‚sää6(Á œVºz\­ÊÊcÉz}תìÿ œ€«ÒÊ+Ö®n¡€Ã;^`vÜÅ®6Õ9V]Þ°%Óž½b¾HßCy /_¿¸\ŸýBk¤V^f˜øAÇPó\ÐRAS¹³tq~ÅhÄÛχý~»'uèèÆu¯º©>]bï_Íi‰÷°ó]½zÿú}°æ V'p;Nš0¹¸r‡ý…Ãã6{Îóoö‹öËÕ{=î¯ØêÙúàƒã4ßendstream -endobj -1040 0 obj<>/XObject<<>>>>>>endobj -1041 0 obj<>stream -xWkS7ýί¸Ðu¦xýÀÃ72IZfBÁm&3™éÈ»2VØ•¶’ð¿ï¹Ò -?0%)a¥û8÷Üs¯ÿÙPß:Òјòj¯Ÿõix2ʆ4šœð{üZIó½·Ó½Þ‡ 4ãÊxrBÓ‚p¼ß§iÞùݘ;ž–¦±ôfú ‡a7îô¤Ï{NÚ{•KŸ%CŒ>/pM9*ä\iY°‘ÚXOƒ£ÓžÏëŒ.æ¤_(}»~Ì/¤&Qà<•¸‡—;ɶûÔ!üiÑÁwý žïÇÙˆŸjégʸ®s:ùÚŒ –ÒY§*U -[.in,NŸôš¢æ\É-LS´÷’„&©½]†X^w¬]²ô¢ßKùèIê?pEî¾Èr£ç›V:à ÿ`DŽœ©d’Ñ¢5|útëÚŽ"<´õµ—óVŠŠPTæA ©4~RUcDʽeæm£ -™µÿL$»ü4}F7¨QëƒD œ‹edS‹­‡Òµ`ý °¾vÐ\L¾VHërcå×7Eå;ûð‹i¶¢¬ö©˜“ðìúd×ñ0ñé“7T‰ÀJYøì”óÈy7JŸ4ë%jŠC• ­X‰%H¥ÆED”öÒ΄ç€Lí•áÚ0CËðQWË\Í—À‹+î+]©5)á^æ•pwL  r+Ó]7:æsœDÔœ›RÝnç)\ìÌPaôÏžîÐGôÀJÈuœY#Š\}è"+NðÿŒÞ‡äd-@n‚mO‘/H±¡ô„"‡m4yUÉCš5žæB•Ž ËýodDÐÉ< †ç^:Ï2ÌÎv›õÅ ļ’ÓL…)Líªîïï>¿¾¼¸üïè#—6öâ‚êŠ<—5B·§cª‚“ -q3d¹©@ˆ"Ýê¿H»Œ¦˜ŒÜ˜•h¬•¼s…˜Q®f"=)ûœrQlímS²îÙ¿ºî -r¹Uµ? Gq0°å9ž¡¹5U¬f*u'JÊV‰·a¼F`ø{®R-íBÔŽ¾q›; ð˜ôÛŸWaærüa¬) £eÉ£SPAëî=7“iÇÎ*ÎLäaÍSn¥ ŽÞ©²ŒRŽyeÙrý”×¼rtq4 ²q6ÌèÆËšŽg—`‚^ÝË3 -â!Ô… -!+£7ƒ±!ï/)ú?•X¤µ~k½ˆ9´:›ê¸k˜‚¬è©„+æ 6,-m=’¯-ø†mF×iS}(ÿ´gì"áùÂl}y2wß™æ˜~än˜¹íÝõµðiì‚Ú,ÑÐsJ>ʼñbVJzÀ8‰Ù®“/*hÆ/±Ïààbµ;ÛP( ƒu¨Ø¶¥ð¤ÏPmc aq—íR6ϳY–µ8@›ÀWäGÄ?ºÕ¢ä¡ÂÒP[µpiå]廫CݳdžKz ÆZqeÀ‚̽•fÞÍ_×#@¹ÚJs„aFFÌRÆý{a»¶s¼ÑbiKSU—Òõܽu²Mý ‘´k·Â…ÔCÑoxÿà ÀÓLGËíI;'c|ʘáóÄ îk7çßžÓ•5ß0xèɃ¤¢¹cwÓ…îÉ<ŠÎÿƒÑ|ŸŒ +0rÊy½Ÿîý±÷/Xlä¤endstream -endobj -1042 0 obj<>/XObject<<>>>>>>endobj -1043 0 obj<>stream -x­VïOãFýÎ_1=µjˆ'!?øЊ+G…t@¯I…ª¦6öÆY°wsÞ5!ÿ}ßìÚ®=µ™¬wæÍÌ{3óù(¦.~cõ¨?¤¤8êF]Ž'Ñ€ãž{ø+%-ýÁi/ŽÆoôOQï­ƒ¸?y}ãýì¨s9¡xD³%¼‡§xg–|w»4KZq4Šhê䚆g4+·”+ë”ÎÈ­$Ù•(¥%ñ(T.¹$£ikª’¬,ey<»‡uÄëíÞ(ÂzëÛp×'“¨ -ç8°Å"É•ÔŽÚ)¼Ô¯_j±á•±N‹B†£A}ÔöÚ½!R#¿› -ÈL•§”IG ‘<ð¸É,ÿ sDWKŽR£¿w¥&k -éV´²¤tbÊR&.ß"LW­#Ó¥vÜGÞáþÆ8‰{‚/ã}¾jRJ„&‘[C I••)9ƒë’6üb“GTw/—îKú(ôµÐ"ÃcHŽ¥yËVÉŠ„=ð}·¼ËæÇ ¢&!uDÉÊë½—”ËG™@R•ÊmC˜u!¶´Tð×T Î}®¤u¨3­…µS¦ˆbi€V9Ú¨<ÉØ8!.ðÖ§ËÓ¦ ´«ö~9[@¡á*×MI©t —4#äDâëÄ;G™l¼IâF!ß•Û»=À%Ò´¡°Y;Ö¶ûŽ+ÂvSÀ -ÃZF4ãúµA°¦|ÀnEÚèvHOງ(žÅÔî!¡ÔZC£ ¡Äh 1oŒÝVZ=Õõ †þnÂÝh¨ÓAÒvºéF«’¿Ðl»V‰ÈAp,öšª½4Ž¶Î÷X§,8~fÝ‚ê”á*mìË4ØcDýÝÎ(—àˆ·ÃhAŸlñ……f•ú½ç•x”`( *ý"À&Ý܃"hyÜRåÌ´@N‹¸ 1ªÐ0î+Äèí úc…–aÿdyz)¬5N^ ü‚»C _B òIktÙà˜2>µàèZUÄÄõðr“!<_.K„Ë™rÛµ<{…¨i_Ñ;ï®Ãvƒ†öu/~¦þ¤¦þøõ—¥) Ó‹Ûé qã§ғ§6ˆõºA=øòfæÏz't;íôNHº$Š¢=¹4„á›õ˜áZ¦Ò^h©²h"2ûrà?ÍçwW7·wÓùü‡W3£Æq4©‡”ÆPAõ)=£9~‚þ9ÓáùµºÂÝÝ|bXëRyXÿ+ |íâ70­É÷dß°°}ì+ã÷Ø1%rùÆ(>4)s¹(…“'[ z¢+ZTæÊÚ”î›}þ |Ï܉»Ýñ ÂC#Ö™¥ ?–ïЇ ߨ;ÞF³ö›6WP¡ë”Üç•~ w›•¡Mæ5T²FH¾c•Â®ÞqoÐtE¶Ê2Œ?/ŸC›w¡‰L@_óL×|mæ¿?™“ãÁÈšC+-°Nlô¡¦ÑØü¾D…ÊVù>/XObject<<>>>>>>endobj -1045 0 obj<>stream -x…V]sÚ8}ϯ¸“—Òp1!@:³ä£;̤”-î²É‹l pcKÔ’!üû=W²“à¦ÓÉ„/KºGçœ{¤Ÿg!õñÒx@#JŠ³~ЧÑà"Òp2ÆçþKIk÷àrt‰¯o<NúÁà­á8|{ÆåU0iO¸ŽÎ>|RR´ªÑdLQJ@ÔïS”tºÌÓC–Ê.M…8Æ -©•$™I[ah›Y:ꪤ]©ã\$Têè½,Œ¦Ìô]W”è*OIäX«Âd»•´Z­ÞG?ÎúÔ /°Ÿ(í˜Ìâ‘&“E±H)3¦’†ôÚÍ0¢ˆE/Í6ÒØ ž;=Ì]m¥b,´ÎžÜàÒâþnº¼## €xTíRa±.j1’T'U!•6ÓŠ:ºÄ°ªL$`§òá=3`·Âòàd%Ÿ,ídi0ñå9Ê£h‘Âd²t(?|º¢ ™æÞEèñ†AØ€n3±QÚdjC O¢á¯¥é XšÎlíö·{ЪŒyî×;Åv˜ƒ °jòkÀlNÞÎílú÷üËr¶ ì“=]¿ãX(üæÀ3#õ’€?h™è¤Ùíï@_)•kQå––¬«oHPœ õ¡ý쀢mf Px© R Åú sŠÊXo ÇÀÉ-Qf·Õl•Ëé ÔóÞ¤´êðÔ±}œˆJÊ´Ît¼SÒÆ™6ð;2E$Z­[uõŽ дÙÁâÆœ.è óŠ°2^¤µ,ü†³L¢ïžL‹4@Á›é3Wæ¢\t³ÕÞQ\ ®²:Ñ9Ý˽ÌOµ‡½·" \~¾fÝý`îîB(¨—‰\&Ö`Õª,Ñ$`Ó+iªÝN—ÖÐe—° Ên¾|½ëº×Åý·e—î§óÏÓyØmñ临˜Ga»•]^ Þ†¤w^!ž²¢*^‚ªšåk[þµF/ÝÔÇsÉ~CÛ×Æñ@áи.g!~iô™S %i/ð¥?t™Ù#§'—†)­#i¦Hç©, ah` —cž;v2Y‰f^ëÊg†’‰4Fø^ä˜d>™I7ÏŠÌg)L¹Õ-r‘ܺ…6¬V,‘ -HE™ÂW‘ -c0×ʳG‰n±gó¿î7 -U#¥G¢U~l•-e!2ÅnéÝ&6’‰ivÀe]öºË`›¤Âa‡åð\­W¨+,÷œÌÐ' kì„1h‹ÔeÌ«ãÂéŽuÓvaÉËøíûêBié ëâ€Âú>nž+€,äÎT)öÒÚ#@]6AÂûdÂêHa´çÍ" ö×9ù8`{º »rm¯G˜ÉIJÖj&¯1;ó—k øX!E8aì¶.‘gèPƒ#Ln>rJ%î‡vÿ­ê`GL ¾]]>¼o#[JL7}ôÐÁ `U•È! äe(³•J+²üÿϵ•)ziÔ]™!†V²bÙ9<¹êþff}RúÄŽnf ‚°LtÓ¶ì-‘¼öl§€>¡ã¾6YæÐ\rÛÍ‘é²ÊÚËÂŒ&Æ”GWïmÔZµêº:æh¬,–¾ÑØÏU!bô˜ð«#ú÷w‚a€ÈOLͺÔ}›Ïþc£ ºqjÒâ†K¿dÚKŠ7œƒŒpóˆ=ô $W&°4íÅp?Nn·ÒÂá¬pyÚ"6œ'G!Ž¡ÇŒ´7ÞØŒqSŠÂßø0PQsÖ÷ǧIÊlgé Îó€¾J$ƒ¶<®¬w㾩‡<[­Uú7Æ‹8¸iÜ}SÐòûò_2öøuqGLªÝµ"ÙzX|"#>/XObject<<>>>>>>endobj -1047 0 obj<>stream -xmVmoÓHþÞ_1Ê—+RëKÒ’ô>ð¡¥EB-GÃ!¤êN{M–Ú»fwMÈ¿ç™Ùu B¨icÏËó23_f4Å¿-çt¶ ²=šSš?Ÿs:¿Xògü÷šjùb¶¼(ã/®VG¾ú‹fç´ªkq!ÎtJ«òxV̦Åó‚Þ¸òÑØÏÏV_ðø9ÍféñÓùßYMÊkEÛ)7\«£iu Rõ?¢wýºÑd5)PÁ‘¦t:_œðxµÑ¨1(nÅ]‡·\=<ãZ­+ŠŽÖš:íkç[ü¾Þ‘¢û·W´ÿ¦}AEµñ!rº‰×¥óÕh’ÓÎÎÒ¦zUÓ¸m@˜²1ÚFNÁeâ^ÙÏš Yï"*2s¶HÐè”* ­8WDâI¥íŽZWé0ÁT”žB§KS]ý’¡”ãy ÌûŸêG“­²Ñ”z[iO¬ùί¢óU¦®#:¨½kAüaëù…ÆVh¶ µÆY†yTÕ½j× - ` Íi£¾ú0*­Z þ^—66Çϵ„]ˆºñMÛ¶ktË%uíùQQ£Ìk·<5’jI¼ èÕ½–Ê’u‘eP÷M³#´‰^#U=*sÀh¨©T@ƒ™&©$‰‚‰ªUGÙ]”Ä€„¢Ô|ÖË!‹£ï8çü¿³99Ÿ‹óª4˜¬àrV°Êº»—bFy·ì ¼€†BßuÎÇ ²Ky@øhVÐ=}3 Á°½PG†‚c€žP³9¤f¯¿ö:Œ[Vk -QYc ƒýˆR‡„w$_!°o ˜®ˆ;mb¥£`”d¯„0Òjf‘D¢!NŽ×1Q¢ófÇ`¬ ×5©¬HÏB(ÇÈðg Ý 8ÖAª±øÄ&¿OO‘JmlЛBȲ£Ü9€ø1y  K„vë…‚Ÿ„Xæ]ÒàÞªÝ/ Âqe(‡ãÂÆõMEåFc@Á¡9tv++ÇÂê@~ë t*^„Ó )03ð^ìá_†|kâ†{õƒ‚¬½uþ1cÀîû#Sr´x"¼õ:¤!軲`*°$*UMppQëà?Õ 4/«¡ª P¯ -£äÙïiv²Brß ®6Ø rSÐå0Ù­*Èäe¼¾¹ýôÿíÝíÍ ÉÇ÷7—×ùãÇ÷¯W7¼Ýä‹Ë7o—…hI¬\åhsmó4JÃTÀéÕË+1©üråÈÏ^£§ØKrʺ(è-dª>àس -fzã—ƒË.K‡Ë°Ã"ë5½5¬åw/Ó”`Ór‘’Y…èx¼ðöt¸A3=D€» °eFÅ 7å½N÷Qh×NÚw&u -w$k«Lr«ù’ž-p­_œÑó³)Nt¦÷—o¯.éw_ø°¹veÏG”(ˆ[>^8]Îq§W¿»ÓÏ—çÅrq£ž¿Ÿók7«£Ž~.{;endstream -endobj -1048 0 obj<>/XObject<<>>>>>>endobj -1049 0 obj<>stream -x•VMsÛ6½ûWìøÒd&¡>kÙ™ÉA±åD3¶äšLÓLÓD‚j`Њþ}ßdê°é¡c{Æûñöí[üu2¡1~&´˜ÒìŒòúdœŒi~q‘œÓü|ÿ§ø³’Êp0™Ïþ}ð.;]_ÐtLY _g‹sÊ -‚Ÿ1¾É_\îE㥅#ºRâA§ôMkɉz'ÈIû$íËìÏàf²ˆn^ÏæÉŽ^L“IBkí­)ÚÜ+££åœ&“ÎrºHÎØ2Û+G¥ª$åF{¡´#A•ržLI^:ï8,åBS#milMÞГ¨T!¼Œ)¥ÏRBXO¢r—«*^>ì…'¿—ðû(«#ç2¦×“YÌ5­“!,kv•¬ I©’”§R(xúHF÷V0w^6±‚M#œ“0ª*Ž‚Ó˜7þ×ì¾Ø­ØUG:û()”Jˤûnz–̘ϨÚíM[TZÞÜ„ -‚çW¤tødl&Áê ‘ íÅb[% Æ(V–m… ùÞÎjÂLàl—£Ñ8Gýƒ„rшª”W¨ V%;í¢Ja+Õ{¦ D¸_Nê‚j àHÖ€´92…NGa¤Ó?ù€Å),Šp#$¯ 7Ue\Sƒ førY´ tÀùv@ñõšÓÚÆ*Ç—€E¿¸Š[6&rfú?çm}š€ñKçÚºaÖ:3ºþm×:´›9 -ÖÄ~¯ ø§.øÅÏ„ðý'øåÅ'_Œ2ÎQÓ ._^É•Å í¸€*ªU%l¨˜1) (‹ZrpT{7tñ=^Ü©Gm¡‹Z w¸ Ί'p .í1FÌü@WïèTɸæýîœL4u]75úº9Mè3"²˜‰¢þáËî"‹íŽ|ÂãVÆQŸ õ±ß°ãÑõ˜.z)GÅøþ裎¡ùP´¶®¹ÅoAÒº1VØc[GCËF€oi/Ã#+EýƒT¼¥£üÁTD)ÿ°JW›)-ÓôãíŠ@òt½ÝðB‚Üoïéf™÷ÛkÊ>¬(]Þ¾[Rúq­J·°¿ÜÞÞ.7WiŸ@'Ñé‡í§ ]­¯h³ÍhõÛ:Íh½¡ÕòórßGéoõ -zWIÙkÀIá=@`®AYi-YKçÄøÂ<àYƒ¨³Þg‚S€‡eäy—D.’ò¬í$Z4H¹Õ%„XÀŒwU* 9Ë÷2üæ‰Öw¨g¥3U²„ÓÜXdäqßIOm“|xC·$¾E9ÄIŸ‚—§ÀÒ¸W£0\xˆ7wWË  F~ÅÎË{Ë&J:ŒX_ƒ°]mÒî @"Ïb˜ÀaMlÀ³rz”ãW¼ÂHªèy³G9m…ô1§X_™†Ú`˜2¸Ûñ‚8 Ç¼ò:`~ƒÆ²67φÞï)ÇûõŸÁ'¿9¾™`+ðûèõŒù63~Ú°M¢ÕwÛm°¸ÎBqÿ æ ¹ö*ßG&à«nõ…J_±j†‹<²¼z 'VhÏFðt€^`-woHÓN²ø}Uª‡ÖFÍ O.€T -À{ ]Ÿÿó>›_DQù/Áùbž,ÎÎ@˜Ì8±UvòËÉßžgdÛendstream -endobj -1050 0 obj<>/XObject<<>>>>>>endobj -1051 0 obj<>stream -x½WÁNãH½ó%_–‘ˆCB”0#Íf…Ä2ì­4—¶Ý&=ØÝ™n›$¿¯ªm†Ùã!‚Ý®îz¯Þ«ò¯ƒ ã3¡Å”Næ”×Çé1ÍótJ³Ó¾Oñë5•rc¶˜¦óáóåÁøëŒ&Z–ˆ5?]в Ä9>¦e~xãý‰~¸ÖS¨³4w¶¤ÒTšjµ£LSårÕè‚ŒýD–? ç‘X‡cÝäñRþ¾ùwW¶Á9R5ªÎÔ¸2Y|ò#Mfñ`£“IŠ¯Åá4=I§)-uhhú:þ1¦|üÃï­¥f¥)wu­lAÉÚØ:¿úóîòû?—ß*½«eÅí½,8»¸¾º¼YîÝn­ÙRæ¶)]•´s-ÎþÑЃnxgì7ÁaxGEOª2Àkgƒæà–Ÿð´¼¸_ÝRpe³Q ò®ÁÙ¼×ySí€HhTUé"í‚Nç1UT#[oLU‘Õ»q„'|CŠ’ÂZ#›u“ÐÆØÂmÈÅä‘z@ÁÙcwù D©uêASP;*Y9€Ë‡,]k‹„Ø7µ©”ßËëËÍÝKRXÁ|ùÉ+$æ9Àé%ë ›v \díB0ʪ;±”òiV®mˆwÒ¶ñF#4vbjƒöOÚ yyep÷ˆ2,½"B[뎬Áî+õÄE!À¿‰èu­ ‚º’·`QdaˆÜ€Ya•×*êÍj'SmV@L™Š32R/žJü,c[¯7`ûº”Õ…T÷ÈõºR[>Âàø¾­€ ªÀš‰,oœD14GÁ¥_-ŽŒïG´Ö~¥Ö²a;‡Úx •ç`:V¿êÒmfîþ®myc>lŽÊ×ôd” oÖåF5WÞƒWuzÿW¿þF¯'^OâªÞ~¯WxMd•F×ûºíJûE–Œ]@‘T‹¥\”.TO BqI…T7Ì&SùãØW’ÐÞ£ÒzaÀ÷c(ŇZdœ«‚Ö(8•àŽHžQÉ°õŽ¤Þ4ªX*ütµ7€Vô"MÉQ”_ BÛH/‰ÖÒ¢äC‚Á˜oé=ùˆ%*W¸˜h(W¤Å2–)]¬tþ8Ø{ÓÙ‹§7O¶A’d¬•¯[£ëµóʤÅ8JÙ]f©´A -HHölÜ¥ƒs'ƾÉðê^‘“€ óä¢÷ºD(ÀÿÚz…¦:+z£à~ÅP guR|öôgÿ%òœp7El|o Ö…áî'-mñ™âj÷~|ž©P@Nôk)gRbÞ~X¨Ýa¢Ó½¬åüp²Ì¸0 -ïÐX·ñ¯¯î–—7Ü$Ð@:±˜ÿ§‘Jþ³ð“‹ˆÀŠ™ˆ£1¾’½À­·ž¯ÃS{>$k$‚V(<Ñ:âú½8€8Ó\h­-áð¶¨Põ²—A'y–R¦sžÅ×EV}Ñô=^t:Uµn i’à_”¡úö5ظTh¼²G¥ki7’ „ÞÜ&Û®ÙN ´"¥³*¸Ž0C†=6sØ‹ñþƒt©°ƒglIŒ$HðÁîÉ@Y¬Dó êr- ­"oœ´½ ,„û3¦#zÔ¾ÎèTžŽù³Ó£œ"Þ‡/åi>Ù¶Îb‹ ,¶ÔÍÊä+ÉR&»È-›J¡aÄp@øº.`é8kÍ“S€rvå A$Æ@”«`Ü?ØRŽ;,`ê;S]IJköŸ8O”»p:‹ƒu?qÚ`£¤Ïtv}ÝòPöz™xÖm·Ûtïw¼Ûýæ± ÓNj*ú&€ç}¦±™ìOÍ£éœ÷»Š-YepÅ#¸MttesN€N¬ÑjU`ìšHQ´\2 ¨¶q5Ú:†bìÚxeCÅjF÷¬ý‰»é³rnÍT¡Ö¨ü-`‡&S¼à3[…iï¬+®ù|¥,¿ÈÍÂù¿p—ãEŽ÷GÁò‹£›oK˜—Ž’÷ÈHÐ|;½c c@•R¿V UÿxNߪ»¬ ‚dS™f'ŽÑéíy ‘öÑÍÞÝ%/,bn3¥ÞÃmÈU­´&\âËq!_o}.Ô¿žvoI“9:=¡ùÇi|‘¸;ûëüŒn½û íÓ—c˜…p<>ï¨`´˜âíסÙb–.æ§x—ÃÝÉŒº\ü}ð/”“Dendstream -endobj -1052 0 obj<>/XObject<<>>>>>>endobj -1053 0 obj<>stream -x…WÛNI}ç+jý‚³‚Á7l²o@È -iÃzÁZi%$Ô3Ó¶;ôt;Ý=8þû=Õ=¾d DQ$c{êrêœSåoG}êá_Ÿ&Ž©¨ŽzYÎÏ'ÙˆF¼à¿“4ŒzãlüÖƒ‹A6hp5;:û<¢~Ÿfs$_LhVôz4+º…5FAYã3zìÞÙ ÿ °”ÔÉ•)I™ Ý\Ò“5zÓ¡•p¢’x“J9W…’¦ØÐz)Q -´VZ“±„ÖvMÁ)Xûaöõ¨G§ý! -•]mí*Å3‰²tÒû G§ê»,É[k?dÍCƒ1ðÀC—H€„ˆ^UÖP!j/ÉÎ9<^„µ%éœuž”§¥xQf@¨yɯ„vR”rµ1ü7¬¬ Ô~¤>¸É;öMÙ0e4“ÀaÄeÊðtÀ2ìÞ×)"S™áë ,4ñ\¯èôŠ®nÿ|¸¹ÿ÷æžžž.¿\]>=u2úÏÖä—¶Ö%-=*c@¶˜˜Q­¶Sc^ºè†×ÖÔm|ŒJkŽcHC¨$2}7`¡ ˜§µ,F^•Â@\ÌÅ(–ªÈ¨Pð½.W[•NÚ•ÿmÀ˜ä+gÁ]èѧ\€”kfqªj…O¤ Q˜¯ˆ -h3~kgkìsÓíH4dt;oU 7‰ÃðƒêP'K¢€¹ éY#OùIò…S+†l†¾ƒ†1¾S‹eØÛ)Ä€®¸øÕ½¯¼O°ó†`ç?!X -˜B‚ô­óftyÈ{º]^ÿu{s7£ãß_Gk¼÷ òM¯ý!#»€ÓðO(}ã²ó°fí7PO¯12žÇŽ_-°wjŒ.ª¾¨ƒ­`ˆº*–Â(_ÁéØ@žhj,¬f&òûJ: -úÝÊ¢³¿;dW|`ñ2¸RÒaƒÖ`µ5¦¶a'œ«ŸÈàôu²§T4Dƒo‹7ÀŒBàl›ÍbuÙEW‰4o 7“TÉk¥‘7VmS=ÞÄqIôK ã=‹¯ÂØÞ±¦„íz“Yb±^T"|\QZš¸[·Ô®‚ÝrgmòuÝÌžö{9‡ºPwsœñ¹Ò&g´§æŽ>û|ѸŒ_Cü"ÀÂÇH<1hêìW\côÉõnaòLO·œNøéPv_8£É(›Œ/páÓ~\I7³£Žþ’Å&Fendstream -endobj -1054 0 obj<>/XObject<<>>>>>>endobj -1055 0 obj<>stream -xuWÛnÛ8}ÏW ,Öj9v\Û-ºz]ضÙÆ»‹y¡%Êb#‘*)Ùñße§IÀ±È¹œ9sfôóbJ—øÒrFW JÊ‹Ëø’«—ñœæ«%>Ïðg%eþÁÕlùøÁ»õÅäÓKšÎiÁÖb±ŠW´N –./iŒfñU¼Œi-]MËgë8>§é´=>ž-qxô­ÑTç’S–B§í©áÔˆ\¹I -%uM“É»ë?o?~û÷ã·ÉúóÍ©¹QLßMC.7M‘²=MI•5eUË”2cIP%œÛ›ú³|ÿ’ÆÓ«xÆa„›“>šî(™Ìÿ/’Ä4â'¨f»…]¥kãŸ7Z=ÐÆ<Ð^ÕyL×™?¹¸Â'~BBgÏœwÖ}Ü"õ ÐøzhQÊ×dªZ€Õz”:í‚ ÐQ¡´ŒIn_= â™ßÉd£¶NÚ´“º¬àò‡Éujdk`X«Ê˜¾˜Z¾¢ëš”£Ê8§63ä*™¨ìpŠ(ŒÞ¶ys…­åLH8¤(ÌÞ=)Ê}ÛYä}¤¿9™XY?ðWH_ PHÚÓø¸˜¡î[‰B!Æ|{âôuLþÝ?×(¼¹'Ñ–Ö‚W¥tNlüuv¤ªÉ‰ƒ£Hé(TJZÖàß=1 -ûk©ÏP3B "F$A?X+“º8“uSjœ†å†ˆ£³88›…Ê€r½¿H{²üê^Â^"P Ç4öð£ûÇF$; XDjöÞÆÑÝ™:ƒâyþöÖÉ\-Ë»g´ijJUÊ@•/²kªÊØÚ7 ò-ñÇ=v^¹ñ]?†0tÝ8‰á›ah–¢Gf’‹àGgjÛXáû¸)Pó>p*”B…zcý>OA¥z@#'ß7=tÈs†¡à„¤àyÛ–Qª;YD][‚‚rµÍC]:WR›f›“?Ü…Õ=»:FÖUÀ“°Š?"ßÐÅPsæFŸcLïs™ÜsÕ½´°ÈT–Ÿûüè¡sʹw õ¹HØC«/ÃBZ)êVo?¿Ã-@ô÷2ÔùÄá‹ÖáxöâX:߃(–Ÿq™mfdYA:å bæØêäÓq¤ÊwiÕœ5ûˆd`Ȫ [Ç;¹,*z,¾n-v¢6bNòW**íjÛ$L'w2P¤×7Qp÷xÐë>/XObject<<>>>>/Annots 288 0 R>>endobj +1086 0 obj<>stream +xm˜ÛrÛ8†ïý]s³ž*›æQ”|³ëØ›Œ«<‰w¬”÷bn( ²™ð %©8~ûý»A-E•ªX??4Ð'€þwQˆå1%3Z×gaâ‰ûï¯OgQ”3ʳ ¤šâ(棪è‰ÇS6ñ¬¦|¤£p(á5EY$”‰šX:Kí”!¬­`{YS‘bJÖ4K`î픬 ÅŠ) _¾xC­AÓ0X(špÜiÆNÕ”¥ÌD°«JÂÙS²¦…¸ãì”dwæH›ŸTkP¤ p¦Zƒfó SÔ:›ä(Øä¬ïìȬwŽ)Éå<©ƒZƒÆIkª4(ª ©u(NáäïÐȬŽ)‰bÎ8Ž)ÉΆ쬃Zƒ¦3¤BQ¥ÙÙü`bël¡u&gExgGf½sLI”zÁþ8¦$Œ2ÎŽƒZƒb}4­§Jƒ.æÜ_ž*ÍÛRšÈQ %ÁÞ|Ò¦V¸P&&¾{¦$òžcEÏ”äPx›x¨5h!³Š* šN¬5h¾@Í”­Ò4Ž_Om óÔoÏD„td62ǔĒaÆî:¨5(–L4U4ÍQ5e«4(Ö»~f¥A¼[<ÍcÔ+É#Ù¾ I°FIÊ™aG2Ôš]â®WTiÐœOE•æF‡Ý²Ö%3¼­"¼K#ãS"¥ÄA­±è,æH=U»ä€* —,Âq¶ZÛ†@8ž¢:“fº8ðJkPÛÎÖ6Sšù á›idÖÎ1%±køáí”D 8àœ3Ô4‘FóTi›Â¹¶E +'ÍI’º9[­9 !·°§Jƒ¦ ·°§Jƒæ §ÐQ›$¼‰ýÑ"Â'id6+Ž)9%É1›¤Ñ.J2ΠƒZ# 8<Ð ž* +g‘O•]d¼=Uš“$=ê¨ «{ó'"| #³‘9¦ä¨c6ÐÑn ÌA­9Pi]O•Å» [ÆS¥9Д“ä©Ò(_U<ÕtØj ºãÎͬ5®k¸­ ýŽj Š†.ôTiP¹¤)ªtMix˜ [œÛrÓYpÿŠâx‰kÙœó䘒HSqk;¨5hÌ—+E•æHšœ­”1nv|Pò%)A®X±GZ³)çÁSkŠ×ß;ðÎÁ–J‡óBAkˆ~“+v”b>ÒB»¦Ò0EeRM••ó^Ù* +'ôÌvÙÌ^úùÕ“S,JBUš—囯¢JƒJUÚ:…hýÌpjÒ óðpf¥Ñ¦h—¹²ÕÚn€™¢6 „ï˜X^d±(ÈBl),nXˆV”D«4ÇÃßh<åï>1¾>É}’Ïv+ØP¾M,O$r6Úñ]+Š²ùõ+Ê>ðÔJ܉¹#¯/‚-…E¸=óy6CYx†ÃR¶¿où$ “p©Æ+@"u³Á$¥ua'yNk'×!0(‚™’“cÖ.±_í@Þnbâ§cÖN¾>Në‰ðv;ǬªÎ±ÛõDx»‰‰cb‡ƒÕ¥E>;«‰°‘#b3·ß0d)ùìl&Â6Žˆ Ž ))§Q>;›‰°#bƒ{¿”šmä³³™Û8"6¸¨»4Ègg3’(Lq…qHŒp0º$Ègg4käЇåÙÕGlå–[üü0Ëç´Üȯx²>¿YõCW¬‡ß—ß0-Ùq—˜ ÆÈó‡¢èënS ÆŽIÇ1çtMË×=Ýì_ðþÄ1|ίӌnï–¼bÒ¥l_̳|-{ZµíwÂß‚ÖmU™õP¶ µ[úãËóò o6fCCKOE½*hÓ®÷µi†Âûa:^ ½›¢ëº§¡{çÁ¦é÷**ªj\W61Ö-€Öû®Ã<´ÚÔ·µÊÚô2™8SÝ &ÿÖ®xxÔÚ™®‡skȺ(áDÙˆ×PÝ"!YcB‚Ký€øŽ–žü—IV†¶í¾Ù¼|†ÝõÕÕÛÛ[Ðs¤AÛ½\aUñè·;öo´+^L@•)zC½Á {©üoüfºîý_nÊàT &§lRþ¦D”È RÿÆ$úü•>™ÆtEEûUU®é¡DÌðáïóOÿA=wï\IèÈ)˜Š–*›uµç¿•Ã«k Ý·ûnm¼'H©›“ àr×6—U‰âү让Ê*£Û~+ù×í¯^vU0üœ,¦~¼}5(ÞIÎØ嫹ê~~q׫Êp\·m3 âRâƒ}2yðGûÆÍxßôš +ÔiiÐ)O7~¸áùñ›Ÿs÷i0; +¯é/S ß¹©%ú¸…d`tMöeµ)›ü¡lŠ®<=6æM‰Á…²ÞµÝP M{,wT™8¹¦ÛÎ`gË´}½B›mù²ïlwlËÊLM4Å)†)VáàÞQ¸Ñ†x°ö0™ç4`ä®èjû|:b.UõdÎìšž†¢¦(á6 ÒØàÃÉf…2Ùvm3Ã&à Øà×%Vh«j0]ƒø~˜k$f\°ÄÑÁÇÒ¦0uÛˆñ/õš!hœ8ö‹óñÇ ì~ee;¥±9éM‡³á¤¹N6|¢¦n7ì›ò'­«ƦÇšÿb)At÷åé‚ž·Ï/ø¿l?åÏç¥ü‰¿_З§«ø‚Ì°‚àôüÏ|xÞoÑ;p¨§»¶ùÇ@Ïm÷ýŸìˆNÅ]Y¼4mÏ~?v-vGýKÏâ,0t'Ïu n_[kÈã¡Å[€Ìs|h?v8qy ðëçûÿòÞ*èVrC·Géyh×ß1üèéŸÅnÇ“|E5š'>óKüüîö¡ +FZYŽN²Sñtà÷Íе›½¼³d"Už›¾ß×;~M'ƒ·‰<ÓSÉÞ‰Ž¼•‡Ó[sÚmò0952=õ0;õpvêa~êáüÔÃÅ©‡Qxò©Ätõq>¤’kùUG©¾i¤ø1Ÿ§¸HÌÿ^žýçìÿ¶ Üîendstream +endobj +1087 0 obj<>/XObject<<>>>>/Annots 340 0 R>>endobj +1088 0 obj<>stream +xZËrÜȼó+úàƒ|Яy”´ò*BäÒ;”å‡à Hb53 Œ(þýfVcºX‡íØ-“‰ª®Ê®®.@ú÷Eêü—ºeæò…Û.’Y‚ß„?~ýëE¾˜%n±âŸ7ÏgËìÝæBàÁá‘B8—æÉÈ+¸Å2›­à³XÏæ O·XÌÖ „Ï4z¡¡b°óläV1Øe1ËıâƒË’ñ²^‚ùz¶@¸ þoa€«z®`îàRfi€œ@†›2 @*›Q aƒÍS +mƒÅ6@¥È +öÉ ÕÀ2¹3›L'°Ø,”çx„Ë®b>žÌ(;Èå’–†" çÜÓtQ° r¾ÎMÁtà!Hš„óU%ô€œIxæÒd¥#©kf)Ü +lQ@~a3™;'¬`°ël–*+˜ΡV´U vµ­kÎKxµ"g€É +Ä¢82…ŠÁÎWÔ0˜*»b‘FÖ/:/lãü*⢗æ<Œó@*梋Y.¬w[p7A&snŽ!úU ›xëM3–ÐÁANph)†¦Q ½aÊò‚á’»fÀ #„!ŠúÒWY’šðH+ ¡@&’Pƒ@*[°ˆ… va©D[Á`W<¨b+ìÚê(Ú +FAhXÅ`ýÎDV0Øå|³âƒË3;UÁV1X#+ìz=ŠJ1:{În"¶¼D +ÔŸ]%¼<°-ˆûšc{"'2¡÷åB*æ,°yÑT17`>ZT1d²vmƒMWh +»ÈCnLG1Xl¥&«"âfÐŒƒµ‹,®«'¼È"kÇ£@÷â‘D@Ä“@Hd!T ƒÅ-¼PV0Ežs¢­`°ËÓ‰¬`°Ö;… ¡ÐÖ +±U ¥£QùdqEXá\`²ë±(JJR1Ø|92UÌtxxÄV0XŒ9ke#`´µU „ó¢R ¿×˜ƒÅí ‘£­`VT1ŠJ1+j•—± òH(]0dCÔQ1XÔ–¬`°uYÁ`½p‘Œ„Š”!V1Óå Ykæ…]¼è¼(=`ÄO +ŒOüŠ€ Â`t†·´šœ@¸ä8íRöéH*¦\YXÁÈ#‰0 ÅÔÀŠ)„¤˜›Ê©,zö$œ0yΩžúˆ6`ñN ÂÅ6Hsš£]ñH¡–S´x:Ch¹Ò®2+"œbpLöa˜ñ"’ŠÁbOeƒE•ãM%8æVçÈ9¬b] €k +äEÄDìAr‘¤8XE9CÅ`mk£[Å`¡[®¶À|ËòÑfé|’b†žµØ*‹c¥Qyéqã³â}ü˜ªí¼ðoZ— ƒr¦:#·:ãÅ›ßoµ@”%ƒ œ@›À zà°ÂBtÉý ¤bª—0šÈ +»ä¨)¬`Dk/‘U ÇH×ULõ8âF[¯º»Ÿµ™ÜÀ B¸5oéÈ D¸¾Lƒ¡b¦ÊQ4š*F@¸ }°UÌd¬Œ"+˜ÉX)DV0XlÕȳ`ö“±gÅþ’И½Lh_>HN ÂÀ1Ò;E…³“{§¢Óó^'N1¢Ørz¡¡b°öº+¬`°ãWbk]ƒ#¬Ýk‘–I„tËcIoˆùÂlÉ™!‹SÉÃtÉóY/”a­øš–°5#DqjŠœ@8Åu¶R1X»³¢©b‚mYXÔ” /ͨ2P„p‹Q‹R1X\çÈ:²‚ÁâCÉÈV0XôShmûÚT[ÖêƒÅ{ƒ†¬Çoë•OêÙ{ƒeg &;pCrT’¬Oölë“‹¬àld}²ƒm†âIÑ+!ƒRÌd­´"+,^P2塤´¬n$¾Ý +ÄQ, ¾œ@T(§¢È D&èèj¨,.àBLMút5|Ñ`‡ô`'…‡•¯,šüîÃVį‰é€H*æ’Ûý³Ñ-€»&S1d¦‚ÁâàZYÁ`¡ó\YÁ`ñâŽe£gÁØ|@ȵÞÁ·yn Ëj…ʼn|PƒµéIXÁ`1µÁq´ — ä¬`°è©¨‡È +FÈÛ]d}ÈØmkw¸œ²!rÄp SYÁ`q rd3(K(²‚ÁÚ9[ÁŸÜn°U W7ö>²‚Ábʧ‹ÎÁjäýÒO7b°øÞ—)+ìœã¦Ø +‹ù*Ïv@ð™À^èøUß~æšöid`ð?a"b,ƒ‚‘eo¬}›Éígº‹FX>wÈðÙ…gñÆeukçЀ‰!Ì0³ð¯Î%!8Í"!«Ž4p¶2gÍ¡:ñ©’?sµˆàpøn:P¿}<>›™C|øµ‹—íçàp`ض0¼ñ1Ë,BFÏs8Û0Ô·½Ø…ÌŸÍa@6 â~:3˜w8ΘΔ@pøB€{ p2 Nä"‡o­¸ƒ]„£'Gœ!Èww—y*ÜÝîL´Kw·³¿KÜÝöͦ¯÷{÷T~¯®o›Óý¾êþòç»ß.Þâé·öš~·{óéØWmÙó©ëûZwÍKçŽUÿÒ´ß:÷R÷OnSîKšªåÕcuÜÙoß&ÑßMy¨Ü¯U×ìO}Ý]}t¥{>µ•ûr¬\~®§®÷;ú»üˆãwÎ ÄtYõÛ˧¦ë;>#ÎhéüûlÛ,›)OÃÀNÉc×!£íSx j8’ÅÒ°•|eçN]µ39Ò•‚~Sîž*wSõï>ý²qæï}¹}ª&)ñ¡Ï×?ÿ²¹Û¸‡zo´ê9f$7÷¹i¾ž'¿~1£´~n^Ü}‹ æv?œŽ[îQçÊãÎ=ê·«ž÷Í«ëúõb~Ã& ¦'sÊBÂeºj{jëþÕ5ÏX†»W?²,̉{hZ×UÕ5Ú¡f†šlŽSM¿t•Šsç°3%jìÔ?UǾޢ’Qu]Õ~¯Z«–×å·óz¥;T‡ûªuÍÍ%j¸ ïšCY[ ’áûIèÿ+=3°Ýî!D·à&œI­¹½º6Ivu×·õý©GéáO·EŽm¹ß¿ºCy,ñÛqâS¹¼¸Ü^xœÊñAœ_ôã“’1£9gíõÅè÷áMj¬³nRºëzÛ6]óÐ;]ê#ªÜm^»¾: /U•Ã~…JRA>‘üÉ—è4±›¦¯¼„øG¡q|¹ùôw[µ‡º£Æî]Ýûâ>·5lîÕvËC>hŠ{÷"˜#]ùïuõÂm pÛ§òøH`Οƒs6þuçF5S—ûæqÚ¹xðpº¾Ã±óXc³A÷T¶Óþp…½Á5/Ǫížêé‘?Ôº]ÝVÛ¾i_Ä;•Ðö!Š5øCð1yf´Ù×Í®~x¥>Àÿ²¶/¶´õ EDËA›iwƒÛ¶*û +uÞ}sÏe‹k6Ó ÿGXÙ矟¯ÝóÛm‡‰lNÏÏMÛóæòÇ'›e³Sõ°rÛì|u’“ìFGej÷žiq™>sÁ?ýkb¼©z£?´5:Xg]à§(RÚXŒTáqéöeûX¹ãéÜÚlÁ@;áÕnG7¨Æ³OÔfiŬgåöë4>/XObject<<>>>>/Annots 392 0 R>>endobj +1090 0 obj<>stream +x•ZkoÛÈýî_1ØE +Ԋć …ã$[/b'µ¤ß +š¢mîJ¢—¢ìøßï9wÈ™#% Zl`ûøð>æ¾æRÞ?N&nŒÿ&n–¸têÊÍÉx4Æo—ë_ø7Oñuã²ùhуµ»9¸qóù(NàÆMÒt”™RÝt–ŒæPº˜@¥žË£)¸yFƒÈ „ÒÉœJ©ìtr êÕfÓQµ¤ªw¦ð*rir ·"©˜ìŒ' jƒÅï•õY`6n:¥^tH b0f`'J“CR1Ø”QŒ¢ŠÁNÓÑLYÁ`–Ï`Ö» s¬ƒÜbkÀâáÆÍòÑÄM'Ðjé jd€08YÐ@zƒcfc0h ì9o!p©tLT 6›Ðd`Íd¾H­ôòß<0“Bpœá‘T 6Cmd½Zä¥7[à[n€jÒÛ9NI/8¡X‚)¾åÌŸéON­d–ò<³\y%('e—ÒÞ—-äÖ–¹(—Ì|l”3`¾DH_Ôk$ƒ…±\YÁ`§ùbÅ—ŒSž2˜U 60@µL2 zšQ­;K„˜i9ƒ8Öz*‡¬ s"a 98G-Рb°*J+ˆú”Œé>R² ;()îp`FN Ü9”ƒéŒ¾¥ŠÁæVu‘ u€„EV0S2?p׎’¡¯9%Ì® ;J„8JŽÓFN L&=‘TLwS(V0ÝÍánd½C3¦-dœ:$Ðœº,pð}€p6£?ƒ“ÍIÅ`SV—°‚Áâ¬X™kùYÁˆ‰¤bEW§"ª,.¿LYÁ,Á M5+‹ËPe3mÜTDV0XØ™*+åëh.¬b°°‹dYd,¼Ù8¬ÿ‘Ÿ¤GcÁ w ÿ¬±‚ÁârÅL“±‚ ®Ê‘U Ù;`ƒÅ5‚@Í6•8eýTbÙydfÑ»†SÖÀ +‹ŠG¤L“É +†YÌ „&°ŠÁÚï…ìs€PYï2® ¿?p—ä¥2·}š/}†S s!¬`FÙ\Ž²‚ÁN9¡DV0Ø×qaã@h„\XßAxãFË (tØRHÅ`q¡m#+˜.YŒëb#fÛbñ„ChT }sR1]​¢ŠÁÚYoI` ØŠÈŒ$–ý»NäÐuHT/ÇQ†sAÅtˆK¡°‚Áâü²‚Áâ½4›»xKeõ£'2¾Àú³ˆ …T(ô†á bÁ᳇‰p‚³9ÈYîPCVÓx3Oß…RŒÛ{ä"d“pÁá'rfÎ^ç Ò̈æÎôG.B¨´Á8àl"G.BpöʹÙëöi!G2}Èi›á×AÎR—÷[{6Ãé Ø"Äñò…p2š4å"„›xÿâG'ÈRñ7Eùû=‚í+Tˆ!^¬ad®÷¡oÅC“*ÕV8-D.-/•[¶û]çÎÊ&:8L Í}¾®T•¼êã#\Û=æÙ¹éõ£æûª­Ä“Ÿ>nO¡öôýúå§ÿQ\¤é˜÷ó[7rvÞl6p c7˜ô]Û6ß\7/»®Ú`̯벮|D uW÷Ý ÝcßÀ‡Ö=TëGWbF]8ô÷ñ­u˜w×´a"-¾¾¾|wÕ!¹¾=Ø+­¿]w?»«ª{Æpè'%%.?”«óº)6¬ëçƒÓi¾ýxyvqõŸóWËëFÝ×ÎýüŽs¿/6÷_ƒ–hUÓ·ËYÙùö`IcxÆÝÁ̓i¶~é˹W½Æ@ÿ~ùý·zý¯ö¶Øðõj<çÿÓ`½yusvùæŒeð[Þ6åž“# S¾ññÓÙxÁçõÈø—Ãy†] DÆs¾[žüëäObçªæendstream +endobj +1091 0 obj<>/XObject<<>>>>/Annots 444 0 R>>endobj +1092 0 obj<>stream +xYËrÛH¼ë+úæÙƒd¼ ž6ô°¼Šµ,­¨ A°%aD´<ûõ›Y v)oìÆDx˜Î®ê¬GW7é?Obá¿ØÌ“¦nO¢³ãÿxøz’g‘)JþÙšr~VN`m7Kð—­Éçg‰)S°5óùÙ\q +¶&ŽÊ³X‘ƒÍŠ³T³ +ƒçg¹fnMÍl5›Új ¶˜¨B\H‚*êœ;ÀP„¤8?›)Rc°IÊLˆšj ¶ŒN`f8Ãñ¬Æ`ãôÀVc°™T'Ø*Üš4Šl]°ÈtÆ`gŒ\€ G3fÉ“»`!8°~ÁfR÷À*ÌTÌ(ɳ® Ó=†VËèG€´Z€hQÑç9)7bzRc²%ÖlÀ”›Ú*L¹É$‘ýôP” &Á9c0›I€`kfÒžS\ÁN +\€¨Y|À)È0¥A½¡Æ`ÑFÚ­ÆLB6Õì±$93ÚŸÒFr„&.ÆÿQlOjLI %Va°hä/° +SRÌî ¬Â¨‹;žÕ˜g¦`Å=ËråóT&@š U`4 +¢01@à„t‚6Ô˜j¹c0Õ˜]!Õ˜j“[Á¢Ëöê)Xc°ïz_1ÒÀ¤{sŒ&NŒ ++@!Û3¸“.Äž‡òÈMsGäÊ‘†˜ã(ƒÍè=°NNI—á„€@· +Ê寞Ã]¶‡Îi©Hn²Ç`17cÍ* v–ãìǃ—¬šßVcdX(VcÖ%?`]¨ÉLZPîâ\€dW³ƒØ4Iœ'5+£K± +3œŒ-êmå2Ècþ%s„;Ä]5+Ï„À:S\.ì†÷- +r¦ƒÍK*ö¬„š•¥4 ŽEjªˆ&cŠ§ œ¢sµ¡Æ`ç¼Oƒ©ÛÑs\‰ôL€lÉQæ ô5ì<‡éº‡.ŽR‘ÎiKÉ +^Ñ™:U†}¦HÁÊà ¦ƒ-xö«0º(å‘ ¬“„ÛVÎoFI$ν$ON’&Ë~°i`†m#ŠU˜‚9L«0;<°NpšKá¢ÍL&€‚ź3E&`&€”‚8ü9NaàD=9P§ ”&%µx§N ^ +Ò$% Hòœ¦MàdÚ8§ò ¤8M¥uÑyôâ€wºçbÃ\‘S+OT0Õl>CŸÖm*éĦ¼õS²i€tˤ3Äû˜§Ú©ÔN\Œ÷w/\IRc¸ÍrT2°râR¹§P> ¥‚0”v 5¦[ž#Å* ÆšUó­l5 OGR”Æd9€버d£|6¥h© …S(p +‚có).@¦Ê@jÌ4°©ëä$îû‹Û_@3qnÏ)§h08õ¤Æ`±š3° +S«bv™G0ÞÖÉE98£œ\AîÄ9}žSÐËõä$w²œäÖÉݳN^`†g¹:RÏ:¹‘ûv‚úZå*ÈoÙ@j Çùõ¦3¾«0ØŒ—‹b+/ËÀŠàQpnâ€ÆÉo€0ĵ+Rc°èÁT³ +ƒÍSøŽ5‹&°` `q¹°bsvxÊ·qŽX>F# ö‚ÎÙÉ\@ÃòÇ$7㸟‚b—(ÎÙ¡Q¥ë8,Ø¥®$Ž‹ÝÛ EÄ @bP.Hìç9g‡oöŒÇ… Z„ÞD;Ü®>tù,VŒ|bð.ˆÝg2bƒ{_Î)WÉgo31ø_±)øTGixnä3mB—¹¸°Êï“󹇸|öûL +P”l”No~7•Ï4B?Oˆ-+œýÃDŒ÷'^I<éûú{„”óôxæâñäó5R›ÇgþxZ”3ó¸’ßN#óXÿvQÕo/}·Û¬þöøÇIdN±e‚¿=½V£ùsW­›çƦ2W][5sÙmƾ[¯moº_­ÙØñ½ëßþNØÁ{øG÷nVØ>Æjl`òÜlV¦pâ°öÅÃé»1Í »Ü_]b'»²+·LïtYmÌ¢j—•YZ(eL»íGÁb¨Ü;æÆ v40¨&'W—ÿ%¬íívÝÔÕhEÕÐ.·Õ0¼¯ÖÚ:eø•Úç`1v}³yqŽ? æ÷ÁöŸo«úµÙXs^×HühšÍs×·.;È0‚ùvu~o®šÞÖ°ÿë8±÷»~Û ö¨`7¬ËjW3ÉGÔb·ÝvýhWÎñÂö?l?/ª_m[a÷•y°kQ3¼6[3véÃõ%Ú™lÝüœ¤Ó….šã¹yÙ…Í{3¾Ê®\ªkv·µ õÙñ:”ÚϤ +á_ÑÉÛÁ´Õ¦z±­ÝŒ\®*¾°5ÄÉâ£QëDØ°µuS­áyûf¹ÑÊ(”ÑvÇIüò³j·k‹ˆo®ÍT„g‡FÕÙÇ0[ªo§:º›vÛw?P¸eß½ì$4ˆ  ½ò%ýÑØwÓ=ûÅGÑ_ì} ®|©èïûn¹¶-Z}èÖ»}?é:{OUÝwÃ`†ÝS@äkM~èU^áÔ0OóÂŽ##•ùtó}óɆ=ŠF-órxzÌÓÝÃ?¿>Üý~ÿÿ\ÝÝžß|çjãu××”!Ùæ)Àlá¸k«aü æ¶zSk±jn¿\ü½Ãô¨–Ýnd.ªU ¦Z­ïÁwÔín=6l©fƒmŸ«Ú­8蒅̾-hΑMÅðs u=.»v[õÍÐm\§©šßm×]ýö¡‚û®:Jå7û´«õÊ|z®Þ¬éœÓOø £ÿÔ¬ìC ÓS®›Ã °?æ°[zœ…[­ÌÐü[†ž®ÒmõÓül›ãƒþ ÎP#ًתG»Õ”C%ú[÷bÖŒêÈä©YY³Æ´þ¥¢¾z?n›'Ìk&Bm  øUó« }k[ zôÖv;ÉÖA.Ö¸J/×Í~D|¾.§O²¨Ä¿2•ri/Îo/Î Îï¸9pÖ;Ž•0YcüÊÍ姳hÎKþ|9Œ}UKö2>/XObject<<>>>>/Annots 479 0 R>>endobj +1094 0 obj<>stream +x}˜]oÛF…ïõ+æ®ÐÈüI]ŽÓ$ÞÔn¤Ô½È MQ6[‰ôKRvóï{fVä)@Q4ÀñÙ]RÿŸ…à¿P²HâTÊý,˜øËôÏ—³8’æúï^Ù<9Š¬f$÷² æ!1g—Eóvi4_JjBíHÂ.Æ#ž9»ÅržêzER¶ž—{É<♡$E|{‰–ºœ 5#¹—d9ˆ‘ÜK¶8a$÷¡æ79e GÍD]q ˆ4Òª™ÐpHÂ0\ž@gi6H?ÑèAèI:KÍs²#‰`pè`Á ÚÎL0z’iÿÐS–iP¼}"gOIƒ.,¢‰:ÇvíMŽM‘ã‘:Gž’†m¬Ÿ +ÉDu+ÄK- Þ?tvœP·$ñ¦7®g¶©cû^±cv&ÔÎ1ÛrØBZ‹Ø„2’ÇãÜ3g·pß“é×@lBíHÂ.Få'¨,B.ºWqôeG¡>-”shŸèÚ +'ñÝ®éa¸±ž µ³Pp#`@ñb‹°ðWÉvön=»ü"tYoõ‡ˆ4Ïd½±ß!Y—«]û*ÿk릳þkö6·ö.¼Þ\\ïêªd84uó¨Øçïò¥ê»ÁYÁñd¶*ö…ÍFÚá©êäúæÃJJóe󳟋²n†¶øålÛU$.lú q—E#7R¶Í¶~< ÝÛÕe$÷E÷,×mÓTå mGL¤è¥8.%[0‹ÕÖäÄÿÛu,ß.šv—øöæg·nÓŸ%D§á7šÿsæŸjw…Hµ2ŠôýX¤ºïU/¯OUã¼}»PøRu}Ý6ßÞHÝË¡¯6œÁy­4ìM‹‚>/XObject<<>>>>/Annots 482 0 R>>endobj +1096 0 obj<>stream +x­VMoÛF½ëWLÓq‹ú¶$ßl IshƒÆºä¸"‡âVä.»»´* ?¾ov)[v¨ Á‚Èý˜7ïͼñ_ƒ ñ™ÐrJ³+Ê›Á8ãÍÃק÷ƒéz‘Mh1_gSjh¶¾ÊfýSMw²Ÿ³u6§ùj‰ßSü9¦2.LfsúÆÂlš]=»ŒÞ­i:¦M LWËmŠoò‹_í‚¥ÆUפLAöîn~»½ùyóg<ps* ªÔ=Sg:ß©š sႉåÓ¨#êÊWB0’J‰|Cvgmø1­ž¤Ÿ-²e¯ýY¾4J‰¦­§V¦½²'Ò3ÓAjÛ·œkÀ³­Hï#¶¥ÄFmkv˜ÿ漓 ÿ#ÌFퟗã3`±ÅrôHà(Ó¶/Œ>šœI‡·Ð¨ËQ¬½µiZ]£@¥0ºöèPÑ‹^¦Äõûž€Œ†þ™£eô¹Gå¹U(âï¡Ž}¡ó¯£ù¾œ L÷à À_󻊢ÒtôÉh.]‹æ6 M¤ÐÍ|¯mçéž‚ §&u½«BtGi–è©Ñ–Å,š¶?$6&XÎUvœ*)¹ø–1ÑŒjN@Ñ› w¼A‰6ûQ»¬Oå{ *}RFÈk(DÒìÂËôõ¤•#R|ð”,HÃ4S°÷Cºá{¦;½–&™³ºi­ Ê ë1JŸk§¡yR(4ÄŽ“Yu°Þ’C^É£ó\—cîÀF  ?Ž +§Í>îp}ÐMWGcÌè=‡èB¤“Q…å÷YÛéæ¢âÒÕq:ê3 +Êaxçûã%^Æ(Ñ30¶pªcôWøD&iI2ý KÓ9Yq ÚÇ…+Q~Ño’'Ç€{1G8Š·Þ­Çñ|–Æñ¿þ 3_³ÕjžfôRPý²ü1ø* åyendstream +endobj +1097 0 obj<>/XObject<<>>>>>>endobj +1098 0 obj<>stream +xW]oÛ6}ϯ¸ëK]¬‘¿'ÃÚ.-‚¡IW»Ø‚f(‰’ÙH¤CRIýïw.)Õ®švKÛ‰.ïç9‡7wGcá{L'š.(«FÉrIû[â—ÍǧÉ)Í–'ø|²Læd%°áô——Öv:Ÿ|±À¾3¥É|œL['_=8]|{àåúhøú”Æ'´.áb9¦u‚h V^nizF¯¬^’ßHruJ™Ñ…*+¼2š +UÉäÙú<Íh ìéxr’,àk°ÞH¤&ðãD½­ä#‡)|ËÏÁÄ‘kÒ\Y™ycwÝÃ\9oUÚpÌ„.`S–Òyڙŋœ=Ôœ‚§É„ƒgˆ[4Uµ#g‚a&49)icBD³ewŽJCÞ”.,ÇÛZ‘y•É„V0æ²kÜŠó0–DUžÅsÉ‹dÖ–LNq±H¯qœÁ#UÓƒiªœR4ÆÔˆ¬tI•ºåpÊÅ~Žè”Û9NfÓ üÏ“%ÞQµ_Ëʤ¢ú»+ˆ:| «coKkš-ýJo¯ß¼¿úð®5žŒã€:_xÿ¸A&îÞ`S6\•¹…?m¾–a(F£ùé ÇmIÓe2‰%=lT¶i{‚þb>@™Â|Ò ½3ZÒƒò|&‘e¦ÑÈ$BÇI{/ís´›û(a„IâEYªL‰‘jQK2¶Ë¸È“Pñ. ”½`ìÁ8¡›Á¥ ¨x0䤆û¶ú ž®D +R±H©ˆ¸yùþêÏÕÅå›Äö½¸Œ¢\z¡*wó¬H Ÿ/AùïÃ×ó–S`èPÚyô'>ëø6@[€Im|÷œEÈN äÄM˜¸ý“¾t i)Á"CYd» +ܲNVEáo9×€Ô̾m›ÒEŠÐѬ—´­ºÊ¶n+3U(Šœï%ÉŽ9¡~’7&a. ÑT¨Ó2˜«¹e»¾s[‘6\÷üg‡•ÉD5DB©V*ö‚Ü<ë—ùîjƒ*•†ç:ÊH êu2k¬òé= ç‚0p’-‰ÈmXô ÂIp¡`3uW!SöõˆBHŸ m–‘øz8hW ˆto¼»ƒƒôòi÷Œ„Ö¬œ|K¨¬©xË"t ¥€e”˜$Ö‡Xy'Îؼ±yÔ“pÿ€š÷”ÐÑQÌ @.t/À +¬1Q\vKK-àZä÷Ð^uÀûàø퉱Øk#»oö-Ðí Í|À‚‡±HͤŽ iýÆànàë8ÒqD ×N+ÝÖ=®RåÆcÃ*}רì¿ €«ÒÊ+6¯v@À;Þ^ö´Åº–Õ)Ö^œ‚®ÎÅo‚¾ïÀZ>wyµ>ÿ…Ö¨©0¼»0ãƒv¡Ù¹* ý{RAGy¤ty±bâíç@Àn·=7ŒrëÚT—í%>^à_ƒå”óÓd±˜‡”_¼}ù‚ÞYó »h¯–pUqÓŽ»#Ç'#ì’m‰ÿ{¥Ÿ-ùŸ”z]²ÃóõÑGÿ|Õê^endstream +endobj +1099 0 obj<>/XObject<<>>>>>>endobj +1100 0 obj<>stream +xWmS7þίXè‡:S|öù|#“¤e¦!)¸Íd&3ùN¶¤üïû¬t‡1y)0‡Á«Õî³Ï>»þz”Rß)M4œPVõ“ÙŒ¶»Â}§ÓdL£Ù¯‡ãdHVÒ¶}œ~x4¶ƒi +ƒh;€}czÈm::KÒÆt4ÁË`ûj~ÀsïíˆÒ”æK„;™Miž‡›û4Ï:sCÂÓÆÔ–^Ì¿õÞ"§`ÜéIŸõœ´·*“.¾×:ê$ôqcÊQ.—JËœTÆzJ‡g=ŸU ],I¿Vzµkæ×R“ÈaOÎáq#ÙwŸºé0 ¸θ—ñ¾ô!ðî`’Œø]-ýB×uN·w=Ž žZ[§JU[lhi,¬§½:¯8WrkS9­Å­$¡Ijo7!–ï_¬]ëéÙ{/å½'™«oàŠÜ}ždF/{é €€ü 9r¦”HF‹vðéÓ×5MFÃÒ'3üH´÷µ šóVŠ’P#ÔçN HkŒ§^íl¯0™(zN” Ñ[(Ýså"§ðà(¹Fà÷·.8ùÊÂ=ý皇ÇcºM:ÃY2ˆéÌ×’ä½È<¹öâžÌò YŸõVX%-¤¿“ `­Õ½t µô+ \•60-•ÆO[¢@ÑBÐÐtU«\&Í?[Æ]¾Ÿ¿yI×(Xs‰pç›H5æ{ulŠò/0ûÜA«peùX.­ËŒ•Ÿ_p›lÊO¦Þ‹²¬¨¨bnÌÈŸðGhšCæ[`⻪@ÞP)EeI ·SÎ#çÃ(½×0ÖÔF¥ }YŠ i 9§ÚEDN”öÒ.Tè„Lå•áÚ0-Cÿ°©«d¦–›àÅn+]Ь]áÆæ¥p7L  y[× ]Õ:æ3nÔ’;T­öó.6 +n(7úWO7h'ºcYä:.¬y&€>D’å'܇û½·í%;r/ìßù‚s J@O("î°µ&¯JyJ‹ÚÓR¨Â€a­x ÷µŒ:™Ôðþ‰—γ&óe'‰Íbcr†ÊžýŽi¶…ÉMРýª<¿º¼¸ü¯è—6öâ‚‹,“B·§1U:ÁI…¸²Ì” DTïõŸ¥]BsŒ FnÌR +4ÖVë¹BÌ(W1‘”€ïœrQyíª.AYwÊìßg¹ÌªÊŸSçæìÝmhiM«Ù–º%e¯Äû0^¡@pü#GO©’v-*G_¸ÍxÌúãïasüaÆ) §EÁsÓ#QAën=7“ifÐ6΃LäÉÍÛÝK½QE r'‹¢áú¥˜Ý¼t‡w ×^V4^$t^€Zxu+_RÈ<0Y  ” Yý1xðÓ™£ñÛ y‹|vOíV/ƒC`Û©`)š©sû V—¦­ï0,Ü z]§ÉùGGó/ÇqÒ®[8Ÿ™°ÏÏçîë ÒÙÏœ “·9»]Ÿ_œ…ªjÉ{™Õ^, +Iw*1õ-o²u åøí>Öå 6\¹fû"eàbð-Û÷ô ¸´àI +š£9c,!,£ÊfIØi×h'p(°¹…öñO§VZ>/XObject<<>>>>>>endobj +1102 0 obj<>stream +x­VmOãFþί˜žZ5HÄy%/|hÅ•£Bºƒ^“ +UM?l콇½ëó® ù÷}f×NIàÚª-0YïÌ33Ï33ŸOÔÇ÷€¦CM(.NúQŸ&³y4¦ñlŠç!~*Ip>D³×FçãhøÚÁ`4yãíò¤w=§Á”–xŸLÎñÎ2!øî÷iwN–4¹ eµ£\Y§tJ.“d3QIKâQ¨\¬sIFÓÎÔYY=Êêtù †Î î§Ñ†;_‡“As2Fçð‹[¬ã\Ií¨ûžÂK£æ¥ÎŒuZ2›£®7ÐN%ùÕÔ@fê<¡T:Z‹ø„ÇMfów˜#ºÙp ”ý­ã(5YSH—qÐÊ’Ò±©*»|‡0]]F ¦OÝÁ)‡û[ã$î ¾Œ÷ùªI(šDn ­%ÕV&ä ®KÚò‹mQ؃\¸¯è½Ð„)Cr,­:¶Ž3öÈ÷ýæ>]¶ˆÚ„4Å™1Ö{¯(—2€¸®”Û…09êBìh£4à1®…(Ötû\KëPg*…µ[S%ˆbc€V9Úª<ÉØ#8!®ˆ´9í]Ÿ·¥}µËÙ + W)hn*J¤½l„ !'ÇÞ9’È|dãm· +ù®ÝØÝ.‘$-…MéXÛýå®Û‰Mÿ kÑ’kècÔÁšêÿ¹Œ´ÑÝžÀu»: Qü©£îhéå3 ò‰Ö »÷vØc­ÕSSÚ`ãßI&ÜÝë…z=äk/™ž` *þkí,w¥ŠEn3°`qØì¹¹pÔ*°ƒÌ°Þ@n¾Çe­ñ3K,—` —Oië`_&ÁÀšÏöF9û/@¼FÒd‹Ït(4 Ô‡ì=gâQ‚L`7Ô§ô³Ûtsû‰P Íqp•3Ðý8¬ß*ĨB¯øT#Fo_Ðoº…ýµå™¥t°Ö:y†ð îŽå{ È'Q”h°Á! 0e|jAÏ5dªˆ9ëáå&Ex¾8ÜT—3*äv¥¼x¨íÿ 1÷zÞ]í;-ã›6|ÀúÙ Öo*S@œWw‹3âv…ßJÏŸüŸÛå›DŠ†ý œ ÎènÑž‘tqEJi¹ÂWšáÂe*L­½ÆeÐ:dú嘸X­îon¯îî«Õw!¤v2ÍѼM£…§ä‚Vø +ªç$‡ç— +w÷S‰a••ò°þW@yé¯`*Éß°{ìÆï±c6äò•|lRær] 'ÏܵÌDC´®SL“ÒTî«Cê |-mîyð`b¡ñêÔÒ•Ã÷è»ß‡+¯To£9ûÍ ƒ*HÐj* îëJ?Лmfh[…ù i”Æ·©JØì 7M7dë4ŸóšI0¤y÷’HDµêÀtCÑvÞû“Õ)9„,4ôÏëÃV ÝÌïGT¨4sÈ„à9‹)Ç8®n.¼½[Ü,"÷„é…øèúòã~#Á®4ìź;Çë@+~±ÀŒä¡âÇ¡ñ«×³N£åÖ¦•©KDóÐö¿Ÿß]^}x÷|Ìb{hÆ~&ÐY$¯?uKk75…}ÿ&¿à˜Úªõ‹•rÒ÷àÞõ¬™ƒ VÖÙˆ&Óf7Z\~x{I?Uæº#j×–=Á’³Úm/t§ý9ïRÿañOÇÑt2 {å Ïæß-O>žü³gkšendstream +endobj +1103 0 obj<>/XObject<<>>>>>>endobj +1104 0 obj<>stream +x}WÑrÚ8}ÏWÜÉKé ¸@H;³„¤;̤”-îf;“Ù Æ–XK†ð÷{®d'ÄIv2!€%Ý£sÎ=Rþ=P?élDiqÒú4žEçt~9Æû!~KI+ÿàbto<8¿ìG÷ ƃ×3®â“O_Ïi0 x…ê£Ë1Å¡r¿OqÚÙ›2Ïö*“]²† +qH$ÞÒhI2·’6ÂÒF9:˜ª¤mi’\$tæ˜,SŒ&å"úe*JM•g$r¬Ua²ÛHº»»ûÿ>éSopÜqÖ±Êá‘!› +M‰HHY[IKfågXQ$¢—©µ´.ªçG` sï6R3Z©G?¸´¸½™,oÈJ@ ÞUÛL8¬‹ZŒ$3iUHí„SFÓ}Ç”V•©ìLÞdÜF8Ü‚¬å££­,-&îUž£<ê€)¬’¥Gùéëg$ÓÜ;¼×J¬µ±J¯iȳ¼ô±$½!KÒ™­ü¾6b:µu"ÏÐz‡Øï} Œ†Â0“—µs=›ü9ÿ¾œ-#÷è^®ßñ»/üǃf&ê%߇½LÍVÒìú=°WÊäJT¹£%«Åj[”äB?@Ø0;¢x£,äÁš7ÑÔ™½¥Äè¶ø _}*ÌãA»e}. ÓSÞ†¤=wX!UQÏAQ ægÙÚ?Öæ¹{:ðt.ÙghïÚ (<ßÍ,À«†N-µ@’v +ñÛ”Ê8…8¡‚ Li=3M&ÏdI= Cø¼ +ܱÃÈD4ïÊT!´L¥µ"ôÇ!óÉL¼¹*TÈ"R˜rgZäzùu cY­D"~2ƒŸ¢†Úc®µ”«‰~±'Ó÷ˆ…Ǻ‘2 1:?´Ê–²J³‹E¶C—‰µdbšpY_†=î³Ö$6­px¡39$ïVwk¨+­,wœÀÐ' kl…µh‡ÌgËѱàuǺi»°Šäå|‚öÆ}õ›!¡4 †uqaý3O@rGê {ií Š.› å}2au”0ÚÓfP‹Fûã”B °=ý†}¹¶×cÌdâ^²Öj&¯1;ó— øX#=8Yܦ.‘+t¨ÅQ%×_8RÿE»ÿîê@ÇL >}¾¸ÿØF¶”á8nú较AÀª+‘CÈËP +f+“N¨ü•ÿçÆÉ/?7ê¶Tˆß+Y±ì Ü õa_3³!!CRÇÓŧق ,Ý´m#{K¤ =Û)¢¯@蹯M¦Â‘™Kn»9²\Vª½,ÜÁhLyðõÞFmt«®¯cÖÉaý\"A‰àð¤Z{¢ß<ûÌS²*MA?ç³Ø`‚¦^EZL¹äs–=§ws y¨p¾ï4˜Fì  Ê#±”ÀBв—Àõ8E¸ÍÊP‡±Æåhƒ¸^º]üð¼8qþla¹Ö®Y'Ÿq'®KQ„«ijNÐú‚â µi©¶ŽN1Ï>臈2¬ÅãÊ*õ.nœz{­Uùÿœsp×ø‹¥ å¯åßdÝDÔÅ=C™ñ÷‰t`ñQŒôÿõqÖT ëÎkŠÃVG’á|åû¦s¦?˦a¸W”Ækîh"1•{:ø«-¨;Öþ•$~-o€ +¶øŠÖ溬/zƒþM¸<£Ñø’¯ŒËÉ·« ß~ãH§ëãë-¯Ök†÷ÆýÏ<þËèùø<.qmŘÁ€§ÞÄ'ü§% Îendstream +endobj +1105 0 obj<>/XObject<<>>>>>>endobj +1106 0 obj<>stream +xmVÛnÛ8}ÏW ü² k}«í<ô!iR Ø\º±»E`´DÕl$R%©ºþû=CRŽ«EY"çr朙ù~2¦þi1¡éœòúd”h¾¼Èf4[.ð<Á+© &Ó7øù›ãùôõ«õÉŸï/h<£u 'óù2[Òº ¸hŸÞšüYé¯gëo88£ñ8N8vú % +í¶*ß’3µôª–ŽrÑ:üñÖ´›J’rTEC[Ñp2G0°°ÞJ„äw†ü¾Á-Sv§“]-eAÞÐFR#milß›= ZÝ]‘“ö‡´Á•Ê:ÏîVæÆ¡Ar;žfvãUevfòJIíÙ‡‰V诒Ùì="RïL#5T2ºrp  öåáxPH½§ÚÒ ðBø“kd®J%‹WîaJcl€-÷yü%~$Y íUî¨Õ…´ôI«Ÿ|™ï©Pe ‘AiM .§ž.|Vº@²ý#­SF3̽¨V¢Þ€ €%H5¡­øºXÄÏР¢!U-¼Âû2×¾z:}:ƒÄâöÎË…¯*>¬ê¦’5‡ÔX¤g{AõÎX†Öw +d:dëÏšà⢇ÃûoJߧÔÓâ˜Àõ(”Ü5b¤ýÊ=¶Ž} º/oÑw© C˜hÀ…~‹œ˜àÌÑo4…Ñø®¯r}ã‡0Ù‘åÓ©k±@h¥ÀsOg ·ÐÐöá!J² %‚•¾µ-÷haèáAâºJ Ø±+´‡ì#Møxø«Ù]!ø¼ øÑV‚ ÃñÌmqò&ÃUåú†Œ:ª Uö¼sð&Êõ".Ðm­°Wíx‰8,D"gÑt]:ìf“S5x*´4­ëT­0AÂNA—] dµ +:GÏãõÍý—ÿîîoÎ)<>Þ\^§ÇÏÖ7<݇ËÛÛãa¸Œ\nåHs£*åÓÔsÃ¥€4‚¥÷ﮂHÃk G>{¼‡1—Âzx¹DŸ°äiÍ2ž|µˆb(@]qaéf—gžÆ[Ý8þø.v®^*awäj‚lÜVxjl€€ž+ÜY€›0åJvLévÉ•Œ{‘«7VÂ’g%5û#·iT¨Ê¥—iƒϱ¸/§ôf: ÷éêòîê’>Zóšk“·¼<æpÊÃîÂp1ºàö6¶?þ6[̲Å|‰õïÇ~u³>ùûä#4dendstream +endobj +1107 0 obj<>/XObject<<>>>>>>endobj +1108 0 obj<>stream +x…VÛnÛ8}ÏW ü²-ÐÈ×ÄN>¸ÓHìl¤n·Øî-Q67©%©¸þû=CIi*X$q,q®gÎÌðß³1ð3¦ù„¦—”–g£hD³««hA³Åß'ø³’r,ôãÃîñ€ãÅ8ºhEg—Ѹ“ÁlÔ}´²ãÙ(ºê›}Ÿœ o®h2¢$G$—ó%YÐÅ›ôÕµ{mœÒ{:™Ú’åN“öIÚ×É?AwÊâıŒè|‘ÑÄ—•ƒ¯ S ç$„Š‚½à´‰ß5›€-6+vʼnŽÆ>Å^¹Ò2jßM.£óY»ƒ©‹Œ2CËÛÛA°ü†”OÆfÅ8˜£F,tOðm•Ì£TX™×œ¦c8ª0€³mŒFãù÷JE%vªP^!/ÔXål´õ*…-Tg¡6áz9©3*%€#YB0æÄìÌH§ó‹$² ‚׈›¢0GΩÁ 3|©Ìj4@Àzñ¶@±úÅ©me•ãˆsÀ¢@]¨BË6Á„˜™î/)@_:W—Ö±‡áÍ/»Ö¡ÒLO¦)õš@ùrî!A/Y‰bây¿þ¯þX=„´ÝèN–n׫MB;㺗ÓfoM]Q²Š“ÛÏ÷\ðÀóÖ3s€ÌÖZ3ÖG¥3sDw°^ÃÀ„H¥öèº +Ô¹ô|–*µÆ™­“VCUó"}ŒhY€>Zxõ„^zÓÀ +Ç¥81öó/­ó« ‚ûî ~{õÉÀ£Œ³ž×8Ì”o¯û¼Jšæli€,*U!lȘ1OØŠ\RÐS{×7ñ3^\©GmŽ¡ŠZ vÐ]ÅèŠ^è &}`Ž+wFTθZýw¦um5{9 |Y "ú +<ÇD–ÿð²Uä¹D»ŸpḔM„'Cï·lxx3¢+ž¢ãh6Ðùä"Zà?FÆ_ðówç;‚ß¡ÀeÉ…~ª–•±ÂžÂ¼uÔ—¬ˆñŽ†°Ò?²Rd€˜ïè${½qÞ2ñPÿ´ŠWª1-ãøóÝŠÀùx½Ýð"Ãàß>Ðí2AloÂ/ïÞ/)þ¼NVÅ[ÈØÞÝ-7×qI;¬ãOÛ/º^_Óf›ÐêÏuœÐzC«åÚç¡óÒiu³ô¾°E…÷@ƒ©‡É@KkAÐR:'ö Ó‚[ìã'ÿO"8ŠXKž·JCÀYn½DÅz!×:ÇHÖÀcãí¨Ê•Å`K2}|¶Dë{ +L´Ò™¢QÂhj,"òÐwÒS]E$÷oéN€3˜tÍ`ëùJŸƒ•§@ÚfÃVF¡-8ñà¥Yßm"¨0¯ +¬ùÛ·ß;KlT¬f¸Cˆ'm˜s×›¸½HS ²ŸEÕàEº =ÒñÀ«Qa${Yt´o¢G:uðу ×,…ïÌGmÐ[ ÌíxUQc^~-°€¿aä xTWˆÎî€ýýr$|ñx>ÅjàKÑù”©ËôfGãæø§Á‡Xœ[¦¸f͆x•šêãU»Šº(BvoxpEîWÞ‰¿7 ´c ¸ÙC,0•+Š›GCÍvjñí*WûÚ6c7\¸L.é){x³øq;ÃòbzÁéüßÍo6ŸEóK\IYx<åxVÉÙïgÿjendstream +endobj +1109 0 obj<>/XObject<<>>>>>>endobj +1110 0 obj<>stream +x½WËnÛH¼û+¼¬X”õ°äÈÁNœ…¯ã…ø2$‡ÒÄ$‡™!-éï·º‡ôƒJö¸6,Kä°U]Ý­ŸG:Åï„–Sš-(-NãSZ,ñ”æçK¼ŸâÏiÊåÆ|9‡7ÎÏé4î_Ü`r¶ˆ—ÝÑÙY<{1rö>>ëmÌñV¬_®Øby~ñ—9M&´Êââ|I«LîŸÒ*=¾µþ@ßmëÈ—IœÚ*§ÜšJµ§DSaSÕèŒLõÞ­~¿ &±u<ÖM.õæé«ûåÉÖ»1[*Æ^•‰& O¾§É<6šMb¼ÍŽWÚ74}kø”FSŽûø[[Q³Ñ”Ú²TUFQmª5]^ÿyõퟫoåΖrâøts}u»zu»­ÌŽ»‹é:§½m)³Õ ­uÞáo2wð¨èI&¼¾¶•×l¼â'­>ݯïÈÛ¼Ù*ÀoÈVJí½ZkòjÏ@E p9ÈܶU‘í¦4…r¯òú|{ÿ’N0Ñc~Ò‡ÒypzÉÚ릭kÀÔÖ{“ žºˆ…äÓllÛ{ÒU㌆ixbj½vOÚ yiap÷„½&å}[ꎬ÷zâ¢à,:]*£6gL"ŠÌ‘»0œrZy@½Ýì`*ÍzÄ”)8##õâH ÄgðP1¶¹qz ¶Ÿ¡‹YVHõ¹NjÇ! ÂwmQÖL`ykÝ#Š¡1—~¶ïO¨Ön£jOÉžà΢6Ö¤ÒL‡êW]¾M*˜{8†Sµì˜ã÷ç¨|MOF ú¦Î·*+¹òÖN•ñÃ;>=þò;¡ÎÂí¾ü^¨è.NݼlWÓ/zdÐ<ª£ÈX¨á fÁœzŠkÉo ·a‰J‡Œ¾Ñ‚v%Ö+®AU0xRu(BȥʨF¥}ÈwDë G×{’BÓ(_)QÓÝSšüD'Awž2]íEsQè)-jÝGH€bi*}>amÊ•53Ï C²¢)Ö¯ˆéÓF§ßÛ®¯8:x²õ’$W­\‰Ê]ÖÖ)g¤b¡$Uíû˜¥Ä) !ñ?pÜ¥ƒ¸#Sdx ·7äDà£B×äjw:‡)Àÿ¶ç +Me’õ‚'C)Õið¹™?7^2¬§Aœ€»É¨;$Xg†ç4g„Ïû_ÛWà™2äD¸¥LJ°ÀÚ{ZÜËYΑ%Æú‘÷h[ÁþÍõýêê–§&GG#óg©è? ?òè Xé"ÒÊ_É^` =·ž¯£™ö|HÖH3ÄSybf„ó¯&ßâDs¡µUŽÖ^eª^|Œg)%:UàYºÈª/š~¸‹.P§ªÔ „"Óü‹2T?·Žs…‰+> +]Êœ‘l ôÆà†L׶æv¡e1]Þv„‰Øx2ÜÌÑfŽ{1>¼“ñä÷è;’FâÅøÀ{4P+‘Á|‚ºl‹€‘6VæÝ-„3ö!zÔ Ñ),š9lK…'½C¼’§yëPTµe†[˜\a–n7&ÝH–²Ën¹©d¾­‹˜`•J^˜”³Í "0¢l6Áƒƒ[ªEa´¦~$õØ,»)ÿíñùž·>l|³)V»³øÿ±lQ÷– n—ô‘.nnú(°“…s»Ý.~õ7ÞïóX‚e9 ¦r…±‰4Ðù>Ò÷0R^¶åQßRâD|×a4«MòÍ'4xU¥ƒYc\”*ÞX¸‰F sIÈN ÚÆ–ïØŠá¾qªò‹îCï¶ÐÂÚš©LÕ( üÏÐ=M¦øvß ÈÃò(´È˜g™±Òª°â˜wÖÑÿKƒˆï÷„Ch?[ºýºBk“X)úIFs× °±| Y©î­ñF®<Ȫä!„óîûËdäÎgø–6‹—3.«û‹¿./èÎÙ)}¶)ÖMžg?:êŸ-OQ¾¯¿©Ì—óx¹À×7¾<™óé«ÕÑßGÿÓ}Åendstream +endobj +1111 0 obj<>/XObject<<>>>>>>endobj +1112 0 obj<>stream +x…WkO9ýί¸›/Ð y‘À~JWH[6 £•VBBž'qñØ©í!Í¿ßsíÉ£SZ„Âd|çžs|ùz4 >~4ÒhBEuÔïõé|<î i|1Åç!~¤yübt9êßúb8¹Ä{­×ÙÑÙ§1 ”Í‘dr1¥¬$$è÷)+Næ¢PZ…Í)YGë¥D_å…VҪĆŒ”%K¢(¤÷¤m!4yé^U‚pȈJ¢8ou”5‡§ùyí +ù!ûrÔ§î`„–²ò¤°ÆÈ‚_÷=z:¹·AþAa)©“+S’2A:T&=Y£7Z ‡,xH¥œ«Å›¦Zh­´&c ­íš‚sáÛÊ®­]å¢x!Q–(Ч9ÚQßЬ·Ö<}è5‡†€’¯ð zU¡ËBÔ^’sx|kKÒ9ë<)OKñªÌPó’? í¤(7äjcøoXYh0º<%_KžE•‹V©O' +È`"ÅïŽÏ­’ å6òÓÆ}ŸP«IÕB¡=ÍDX®­{Ú7K‰Î7˜JŠÐ\st®Û(åcDgnÃHJŽµ ZA¥@â”0B¯V¡ >0.sWûàÏø· ,i#1®Ò•õ^åZ6 2{æBéÙ(»}ÌhÄ탞&²Ä×9š==f¾œqó¹³¢,„GÜ4Ö”^†€NP9â*SXç@ÁÍ´˜`q Kb +ÄgÀöT¤»]5|9£ë]²ý³ÇTÕgTõ«ÔMâXxLçÎxp+Ö¤¡:(²‹ÜR©im=SåqT‘œgŸ.in²¬»£A¢i&À˜óª¾;dÕŸ<Ô)s˜që ÄðR¯¨{M×w>Þ>ü{û@ÏÏWŸ¯¯žŸ;=úÏÖä—¶Ö%-€9Jb$¶ÊÁ|˜J­~SGl +­-¦»xŒJkŽcHC¨$R|7€  (§µ,ÆZ•Â@UL¨ +Ö¨Œf¶e«¶ÄÚC51Zù £4Aôº\må9mWþ·U’¬œi!DT@@Ê5³*UµÂ7°ÐÈ VÄFDßÚù\Ät;=º›·ª†DgaøÁqÈ’µPÀU‚„欑]>I¾pjÅ¢;`ã;µX†½Bèš‹¯î åfÿ„Y)R‚‘Ó[çÍ­sÂÓÝóìê毻ÛûŒŽ?þ1Zã¶o°nvã™i ˜‡DŠ¥ëËÛyX³ÚŒg7˜bG¬Ê;ýE¥w£ëÉ2>áT Øçˆ×^òB൳fÑ& ªÛ6[ZSÇ‹òUÒ«ôñþ‘Câ«„c~/¬ƒN ¹Åщ¿3¦ÉÀ¾e¿SIÃ_(cB…« ÜhÃóF;ãVN¾*[ã6¦¼†;ï_†hqàÝéÂæk^Ô¶>ÛšTã?=º"SW9l£¸—!WÖŸe73 ¹´>ìäµµóÆÉ0…•5ªÐÞ¶X¦Ë7-<p!ßÉZ·Ò6óNÇ=Ö“f0‹«1ž’™à®=`±—Xn˜;ÖâUPd¤Ð×Z:,± /;Ta! é[™£B½„¡býŠ­½A¶è[¦-8… ¯*¥…ã hƒï÷c‰$Ük4'ö}¾9ÓÒðÎD0tU_ÔÁV°À]Ka”¯àmì9 O´1VT3ùm%…½s«‡Î~ì]ÅõR™2XHÒƒÖ`®5¦¶aoÈà„uº§T´@ƒ×ˆ7ÀŒ¡l6Êæ*uÙ>;‰4oV‘ˆ 7“vÑfgÞö˵©5b‰ÊxȸºâUXùÎg<¶EÞ}Úõ&9²Äb|5‰8ðEéšÄzØZ›vì®sÖ&/ÒÍìy7s¨ u7{o&‘œgŸ.Lð?Êň&ÓaZBâö@3g¿`ⶨww!¯»=Ðö/y/Ù/-ãé¸7\`£ÁãA¼mn³£Žþ DÅendstream +endobj +1113 0 obj<>/XObject<<>>>>>>endobj +1114 0 obj<>stream +x…W]oÛF|÷¯X(*‘dÙŽäi€8I MâÆj‹~9‘Gñb’ÇÜ‘’õï;»³Mž°½’Vš*g‹ªÖ ¥Ö‘¢Jy¿µ.‘³|ÿŒÆ³ ä‹0ÂÍÆk‰¦;J6•ÿUÛAìàD­Ü®×°kÊÚÊû¦4´²´5u6¡›TNn®ð €ß*-‚sGÎ;ë·J$ÿMoËRú Ùª6`µu™tÁè(7¥ž^¿~Ä#¿Óéʬ½ví¦uQÁåw›•‰Õ­a­æm)?ÛZ¿¦›šŒ§ÊzoV9³ä+›twˆÊm¹nóæ +[Ç™ò(HžÛ­>R”û ¶£ÈûHñ:vº~6à/e¬¥ v‡ñq1CÝ×…BŒøö6 +Äéë˜ØòWy_¢ðöT{X;^Ú{µð7éQ¦&¯vž"SnTn*u þ=£±¿–ú\ƒ0#Ô bdAôƒs:®óy]7¨Æi8nˆIlËTÚ >•åz+•ôdøÉ̓†½X¡ži,ðCz#ŒH¦6°¨ÄnÅÆÓý™z‹â {ëäw¾ÖÅý)­šš“0PàceÀ „웪²®–D¾>cÆÃÎ+VÒõcèK׳ ñ1|2 ÍQÔâÈLòü”©Y7NI_7SÔÄnCŸ’ÑùÞXg¿ÏSQaÑȱBã÷MÎ0œ.xÞ¶eÔŸÊõFçQ×–à„¢Ì¬³#èÒ6ëŒäpVÆÅ>²®ŒBÂJA*~‹¤¡ÅPsæFŸã„Þg:~ઋ´°ÈTÊÉýrï¡sʹw õ¹è2v»V_†…tZÕ­ Þ}ºÆ-9 ú{)ê|àðeëp|þr_:éA«Ÿq™mfdYA:å bæÙêô÷ý HŒ#îÒª9jöé:žÐrWÙÚßÉt^ÑÛ`ñMk±µs’?PÑ”¾vMÌtòE‹¾©œ»G@¯³ ª¹€1‘:­Ñþb¨ÐÍHq[rÅ'iËýÎÉ×OBÄ€<ýŸÁzuxœ%Aë—V\nß‹?Q·€D{ad‰6Foé?ý=4ìÖä9dŒ{ÁR“ ¦³ÂA4¼¢(±˜ 2y#¶1Èmk0\¶ÈrIW +4V`;¦$€Ter¡TÈA©xèA›ÛAõÝcLÙ|Vd4Ey4)ÔË0ë¨Um_œ^D+S žlÞtRÂÌZmÊ5¸ÅY¡ä ›Æ7-#XOZíòŸY樄®áª%lGÈCÛý›v€gKÈi»_´óΠ´œŽ-Aµ€óˆqf-ÄjêûDÈSóˆ™Á¨qÇ׈U„’ͱ֊> „¶Ó‡nÿ¸¹%< ¥žÝþ¡˜>Ô$’Õ9³C•l†.WSS…ñjxû^ê×ûÿ‰6·Ú>1WžÖfc}ø|Çxà µ €d<ÐÜaÆù¡Žò"³¾»y”=~×µ »_ äÏG?è ‡tKÊÁ¨ö¼'¡ˆ<§« +\À΄twlw£„‰]IcËtÜf&ÎD}Ãênyu—üÿ L+TœÉý ØicuäQ“”H·ºëG¨—H•Ø¼ÞŽgÆ@?2RÜvÆ¢ÑÍÒ óWá«ÏlŽ/gW4ŸÏ'W¼ÆܽûtýŽnýŒèƒ›;í ¥Ã…ñâìŸßëº\\Nó«ÐñsNçãò䯓ÿ¯rrendstream +endobj +1115 0 obj<>/XObject<<>>>>/Annots 487 0 R>>endobj +1116 0 obj<>stream +xWÛnÛF}×WLõˆiI–u `´Nb~°ëÚJƒ¢.‚¹”6&¹ wiEß3³”,1î%AJÜÛ9sfü­3 >þh2¤“1Åy§õi<šESM'xâ_¥)•£Ù _xq2D£—^ ‡'/š‚רßü¸ûØ™ £! N§0’Ó`2Åð)£ûÎÆãègrŽÇѤùÄo9àAÿ…¸ÞÍ;Ç—# hž"ÇñtBóDÜöi÷®RÚØš–ÚSו:6©Ñ Å6/k¯+2Ž +ë‘z¬Í“)–xúVkç]—lEÎä&S8婬ìB-² åZŽüJyüд²Î7V^Ï¿vút48Aó¤Û«Øã’¦'£ÈÇ%9]=™X»ˆÞ¯tüHÞâ+M&=°UÕEÁ±ðu¥ÊRWî ©"áƒÎ’J|"]øjC¦à»-ß•‹T–Ù5¥¤Èu¨(Î îÑCÓ«…öoHû8zxÍ&Ž/g¨y¨äÑ ƒDæ¨ÍÂëçB ¹Ð½»ZüsEsDN6pôö©vš¾¿¥üywõñþâî÷‹»‡‡ùõí¡É^D)·²u–ÐBsÉóÒ-^Q©œ[Û*át 5e+{eg¤u›xéL³WǨ¼Kë,Ût£sj©#A˜[£ݾGS¿VèÐñ­ÀìMá<Š +c¶j¹•âº|öôà^D¹zÔp{rª+è ÓX-¼Ü4KÊL¡Ù-í¬q$MQãv8Ø\ùW–@ŠÒ:g˜k;j2Ùج*^yBåÉÖx`æ’Š +•ã´e¿ò“’*Ps¾GJ.³]Ѐõ¼•6S‘ßrÐÔ³gô ßœ__tÙ:¿ýÓçå_`zì-È‚ÄÛB­‘8.>ßh¼±%Ž¯åNªàJ[$ÒÁúŽ¨.ùM©A•?¥MãW0ššï¨*‹¥“Lsµ;%¸u¨ÊGZnmÉKíÿ¹C}¾µ¯Eÿ³EòEfíc]ÒÑ5Í/îçï~ýÔî ÀÆ…Ú½Þ¢"¢ œC¼¬, 1Z)óîU¾P"B€Ÿõä3êcלwè¸Ì²è؃>ävZ(–*x¸ºeí©Ð: "“+Ç2º¨`ÿ£S[~…»È~ oPçÄ2Ea/h‰Î¦@¸ei¥ ‚ŽÙÏ +j¬(7|O@ñ-`þZC«šÙáXü‚MȤZ*S/L»4Λ,ûh¥”ÓÙ¶PAŒ 5R/I²å@‡@£•zBo£H{ Ñõ~Ç#ü'!òñå³0–•N5tEsO¾š‚žÑF»C>õ8Y]ˆŽH€<¶•Bê+ ÙD¨¨Ê×å±uph!A¿„ꆙ=‡B¢(\Œõ ,ÂL‘}R5êÍ3‹çfÀ³¹™`Þ3«¬Å•MÂxb~YÈ +7òóèÞ«óÃëªbdÈ°E¬‰­Y +1ìÀ\H›Úk•–ߎ4D˜ÛHÝ +Ò EÜ["0ZLñ¤2“ìR—$FZ4Ì¥Dt)<³vow‡–Ûí˜GÞÌÅ{à0˜Q;æÙsÑwM+Às;Ì…¸ÚÈ€Ü)`¬Jµ0™ñ <¯ 2GXÜZ®3ý¤3äºâ³¹Mxrp%VØÚ fWK·ì3wwë¬Q¶ý,{=:¿ù¾Úcûvv7¥>kÅÓèЗ›ù—kC¤›~Ù®=¦’ðf79x­yÃKš.õ«áèür~q'+j‚‚2wê²´U[xÃxÉÀCOÚ”‘` +q[³_/dˆm [ïG'£0‘ïEMÐò‚ äDt?ÖHš-ËrÅÍ%BB ÔÃpÖk'b.9B9¥­2ªá…‘C`®0icæF4&8wNššØàhèÏò‰ˆZuoXxÝ‚Ýx…yÈÂ-ý‹üŒlµ”•@F)/¹¥Õ‚ƒifÚŠµ±Ô WÖšŠý›[Ù€Ù çL­õmµ„}O+ïË·ÇÇ»(ÂS“Àvÿ9çÕg_¤Ã*•ØX¨Ï–ïEŸJÌ0þ)ß;ä÷…Á¿üLOèt: Kûýùõ»sº­ìWÞˆ>ظα.+ÿ|óh{áhÒŸîÆ£É(šŒ§ ¶âÁ„O_Ì;¿uþ EFendstream +endobj +1117 0 obj<>/XObject<<>>>>>>endobj +1118 0 obj<>stream +x­VÛrÛ6}÷Wì£<QâEûMMãif7mÔÉ‹_ Q“K€²õ÷9 ^LIé´Ö;AìžsvÞ„4Ç¿VÅKJË›y0§$Žƒ5%ë>Gø­%íýB<_|oa½¦yÐÿ©ø‚}á:ˆ{Œ$X´ ?lGðúìᎢ9m÷ˆd¹ZÓ6óëx’N>j'µpJèÓúªtf^,ié^LýléE¹œ¾ˆr'n·Ü0R¸j‘¦qDÀšlRgÝrBaØ-G«`ÉË[C*“Ú©ý‰\.éYžhßèÔ)£EA¥Ls¡•--™ýwBàÀœ!©Å® “UaN% yÇÛœ¦aÜF$, í1å«C€Œ#t635˜ª +‘^dü¸Es0ç6…9œÎ¨Ñ2H8‘¯lÉWQ*-ïyš뢔À¶¦h87RQT Äý]«×ÙÏJ7¯´}ÿyöñ3Ò9ªÚhN‚a¦` rd“0 þŽ¯C2—°H®±2óÊàˆkÑØftù“y¡] ¡™„^ ¦3ʱ¾[’É:O;/à ëÌ* [0H0¤_9ŠÓÊ´©•;‘©˜¨³sS£÷êÀ¤yTÚC/+eYHkÁhgV£Ï2L®{ßáÀÙ¢÷ {%Û†“ÔÙTFKœUeݢσx´ºˆî„öÑ ÍæŒÿÇ-ÅÁë,Au)f¦P©”宇í¤Þ] 8Q8YkD}„Ù  <:àÇiºÚE= +9mñ§ñ2X†KZDè,pØ¢}üVÉÓhAS´"_ËÞl¿ý‡ÑŠŒ)š=|¯Þ»ï•lØ+(H©¹ð.q¹²L“×GÔm9ÍÐ+}ÖLºt–ël{hÚ½3]ëŽÌ§h¹ò•ó†à¥<†/ÎcÀ‘ýG$ŽæÿÀÑ֢æù?Æ +)D3ڣ묃ðŽ¦qØ6§KŽÎ„aÝÙ)p"wFøÝ©” +e}E;Úd¸±Pˆ+]£‘Ù€äÁ× +3zÇGâ¤8ÂÁQøÔý„hõ8AØ}/L* +fˆ†OÿÔSÏÍ#í å. +Â%²êpvê°3¯ 2Y T¶ðísB¥(a¼rîÄiæʇ‹0·0$Úpe¬äFоÞûlòWÄMþDVµ9b~6¦eÜ߇ÉEÖÀÎÂq_¶”ÒÆa‚ÂçÎôÉv“©–m' .zÒ/Íc;|©é³tˆ‚±Q"(žy(!?«üdèé‡5¹¯25x'¼ÊÊFã'}HG%ÎÎ¥]ã§Ïhrâ&cgÛ×yZ’vmÒ”ûo×múÈßšó§Íûþ{Àè#+!b4úA'‚ev +É ô ©.¿`†Ç9ºSÅIaGKb/hÄÈÛ›¦¦§Iòt‹A”ª’Ón¸§žÑS $€ »ôÊ ÂÓ!V²V&{ºõ–&ï1öZv!ôžSy bâzÕía–€uÒ"‚ëXq¥G‹Ëeê å¸-\|‘¸•£¨SÜNîË‹p?À§A|žõ¾©¤²Aéå„ÇÇXŸµ&Už"±ãe6(ʼnv¨ CãáÈ¥Á gÖ%Tž¡VAq¾ÛÛ\UÀp/Rb¢éÑŽ–ºñ©ïPÈÙ&Í!³U'ò~t.CÔð@ÆP4S6­%~KabâÎÐÆùÒ(¹ùìÊf;ÊŸÑÝiGeá/N<£jùF([ß3ͳ‡õÛM6^«xÁ½êßÝ–“U¬–¸»óÖp͸¶7¿Þ|í:¨Gendstream +endobj +1119 0 obj<>/XObject<<>>>>>>endobj +1120 0 obj<>stream +xWÛnÛ8}ÏW Ú‡MZ¾Ä±îSÚl›n¶q±/y¡%Êf#‘.I%ñßïR”%ÚK.9·sÎÌøçÉ”&ø;¥åŒÎ”×'“lBóÙy6§ùj‰Ÿgøo%•áÅ V/_¬V4ÉÒ»Å/0¹<Ë.ÒÑyvÞ¿lÒ~IgÏVdzGÉb°Ýq<1²ù$[F«×ÝÀðøóœ¦SZ—Èo±ZÒºŽ'´ÎO¯/?‘( ++Sz›Ñ­Ò¹¤ÞSé¨nœ§¤me6¢ªÔhõ³‘ïI肶RKžZY ¥•êIT‹÷‡wë'Mϲüžî…õ*o*aIi/m)rØñ;Ilu-µ'Sâ&}¹IQ-ڡüÖÔ$HKÿhì=^i±•áÚ^Z·—¹W2¸½6Îï`ÕhÙ·œã2‹Î5lô“ÏèœoëÓÕÃÝ[U {èÙâ4”8V.&+Ì!xzTUÅN­ôÕpªt8tùíÏöÕ!E?[€{(Ú;©‘rãWÎMÀèQh†rS×%^¼ߡ~QZ”'ß)¤C6Þä¦"Uï«P2á•Ñ„²6Ày•¯½I6´¨åàÍ΀ñW$ˆ»¦z@ä9nHL0B`HL§s£½5U…ó›Ç5ð»þt3ô8Vªmccˆí%P«’.£5Ââ‰ïŽ?Cbݧcéó1’9Òþ”à˜‘wM¾ 7_-1gÛchÈO +é¼Ò1ŽŽ³´—B‚Æ5j\D`b‰s(Oéøã +ÿ€K4HW`¼*C%úÌc°w/ìVú£X2¶IÎCzPÀ¸l©õQh 76 +×bàtc(rUðÀjéwñ1A©£ïW7twú9w%¼ØZQS2|÷Ž±†9g+Ñ `ŠÑ±»qÅ_Á·2¨M'_'·A» wŸ0Û˜þáúµÈèk«öžqECW +Ë<Ü„„@Ð)?ïhFW‡?Ù‚¢uÛÐ:¡s_ãâ'á—å‡çÿ"ƒXi/ò{ û’fx®S‚î™Éè’Á|/&'º|ÙWÊ:>–vÈÞ5be§¿%… ¢4.­G Þw­žÆ+ÝÈŠUÈÄÕÅ#C>©0!ÀaÿÂÌ£¶÷FI½bb#Ñ°9ס*±©â¼žÒ ŸÇôèl{hi±ÃfÜ#ÌÇy>šñ¯4¼j[ætqž-Χ´X®²ÙEhâ·—×/yÉ +‰^™¼áÝ($ÊwGÓ>†®Îh´œ€y­j³a¾œgË>…òéßûk}òïÉÿØï®>endstream +endobj +1121 0 obj<>/XObject<<>>>>>>endobj +1122 0 obj<>stream +xWmoGþî_1"JTûàÀR¥•ì4N­Æ/‰òÅRµÜ-°ñ±{ÙÝ3æß÷™½àj”´‰dnvæ™gfžÙûvSÿch8¢duÔ&Úþ° |èÓYGgt:ãïx2ÂßVÒÆ}o~TÆÃxÅ•ñ*Ó—üøyå6îGãÒöbú‚çÞeŸÞÐtNqt:ÐXÎFš¦@Ÿ¦I—ª¯^O¿õédG#4ßç¹uúKmF‰YåÂWÆÏÞãWtžyiµðêI’ÔÞ*éhn,7Ʀ$ +¿Ä•ÀÆhVþrÐÙ~ì22ÍUŸZ9ÊR‘ÓZé™Òén)R³þAô kŠ|k»Ÿj›—¥qÞíoa¥Ú@s˜öFZ¬$ŠéLV|Ÿ›ýøetDÄ€œŸi G*¥tVåÑÐu–~mìc“SÜø­2j³ QLÛœ =œ9À@n7‰Éê#MŒö6Ov8þ¾'í“Jdí~Oïò”â˜Çᤜ‡“Á8Ì:øvš +ëä1I‘,ÉÌ ©9I+™,`®Jó­P¨žÏIäH(·JxL¶HT¦<7¼Ði=_ƒá&‡wkeâ³Mé0ðè$FÏÕ¢°2jŽGÑ)?¹òä–¦ÈRšIÒÆË´ \h ‚PU°€K:ß[ák±äÍ„3svLÓww½«»ÚçÆa†´0­Y NeY[ºRœq®€wÄD²:Q¹È˜!—Kñ¨ô‚ŒÎ6´Æ\# ØwÂnÚÙÜ‹ÕLк…Ç~±ˆ­U–‘HSú¨tñL®Èsc}Ð ùì¥fS°m×a:*JÉ­•G•”ž[á¼-ɱåVœ*†³à<ÉRveL#f™d×fæ…Ò»c‡Ä®ïé DŬÝHqu{†3`—çiŠ6pÒE45´àó~©š¹ªâÎ ð tņÊüµ”ið¬g¨C +H~¹×JÂ.@7£­r_‰Ç`¿BgÑCW•šÙ»<«ú¹KlÑ*¥†p3K½LÍð÷ßPJ9ÃVÛIè>¼Fhe$Tdž‹ s‹Ö͇>×ÜM8íEÆxCº’JGØma¤º¦å›RŒKâ œ1pž˜£è´æÂBú°8Ð>[~ÐÜòeõ;¥Þu€N3–à¬@ú¤Wgñ`µñ°4¡ëyx!n¹QÚ“òuO´QçTÕ%9#ôf·3VÐ 3ÛÀÇOÛN©¿ç†=æžÌ F1Y6꧈ÏuWº•Ibˈ³_/:}fÐ#üÌ…9ª½Ô´î4lýh&9nÃÞåŠÇ,|XðÃÓR^nÚÛÆQáªn¿;+û|òma\Þ^´&æÂÆ2ÇbfŠR6Ã(™­ÁÂr+ƒæ^ÄßÁ¿µYkzV™ÂýK:ºœ>ô*¡ôêúðºdÆóU„¦B¦cêÔÁØ;ÞæV_Í”)ðçûë‹V}Âá œßØ ++)ÊnDe (¨è¢œh®–|Nd–9T…n½W…Mpkú)2Ö¯­Øµ—i§7°a8DjV,@Œ«œäV§i¢N¾Ni‡J+1ÉúÊ‹B`¬8>{hÅ ÊT6 ‡ª De°LÂ{/-¹Ø—IŽ!Ÿ¯;ŠqE^bÀàr<¹X= ¿,±Æ#¿lÅlŒ¹} JØèÛŸC‡‚#Q†cñðüaû>‰¬`ö1aîÐq®^Àˆø$3|‹èª¼vò•µBï&Qùb n.^ÐtÞ¬ƒš +&Á™•ðÊÜÖöå"ãÛD½¶ü&/A¶Ã.OŠrÂ\—ûªÒ·íe:…ÁÜd™šBZž‘tÖàc\á0nCü°ÆeCþ.ܹ[o'ƒ³h‚·„ûüg­¾Öš—8-bôÛwÿú áúüÝW7ïoί߿í÷£_éžKhÃ/FÃe-´fä¸ ì˜×¤´^*^tÝ~¾{Ïóïå¸^ãÚN.,îÒVÛ·ëüBB?Äú6Lš@ÉNK¢»0ú­ÕŒÇ¢ÒœüQÝÛ8ÙIäÁ[Z‘½õ¸S2³@YKöš+Ñ’îøLÙçGÃ=¼ÏMðÑ»œT÷ŒxtÎb¼Ë£É,µ´{~}qNwÖ|Åe'áòs:‰GxŸ édÜÇËpÚ­8Ù¾gýàæ;ŸFc¼>ã½9íúìûýô诣ò××ÿendstream +endobj +1123 0 obj<>/XObject<<>>>>>>endobj +1124 0 obj<>stream +x•X]sÛ6|÷¯¸ñ“Ó‰hI¶%§“vÆNÜÖÓø£–2éC^ “€’õﻀ”BÏd¦MÆqe····wô÷£ ñgBó)Í(­ŽÆÉå%í¿˜5þgL³ËóäŒÎ/çø~r–ÌÉHÊqvŒ§û/ñìt6K.âÙ)ÎwGi6MÞ ?¿^þ1¦w´Ìi’œŸMjž\Ì.i™ù«Ç´LOhðß—‡§¿ÿ|zøüø~"§ßè¶vÒÔÒѽ¨$=I«Ë4öÍòn?§É„¯…ûGÓ¹³ÌNnÙB·eF+Iµv2#WG¢,é^ºëÛ‡U"-T--ÒX+‹08"•!½­©F4KÂR>&±Ò™Ð²P–øoMaÃ#üY2EV'©®ÁÇä4-?<žÞ>â u*œÒµ¥m!ÁÎdŠ?Àv”ìñ+Y¥j@1ÂiC[°™0|*9$=•.=-´u–´ÄG>Þ/(N¬„•‰´c:ˆ-¬Õ©LÈV¹‚$H àYf¤µI¼q:KÎ9£Î[ƒÀ†­jG:§´Få*õI y~ëQ†ú@Q¾>'{Ðá]áN(W%@Õ\I ÜÈT›ÌR¦¹nÔ½Q™$ʇ»2rnäv 3”kST¾Úw ú¢êLo-0+Yƒ³L6Ñ4ÈÔTj䀇q›¿¹Yi6*åÏÄ°º•Øy5I™É,¡«šä‹¨àÇs. +ÃÓ]ˆQ|¹k$G¯pÐV0˜=|+¡êAž¥^)c’&!ˆ:G:!V´ãn_C†#âC>ŽDÈÖÑjÇšf¢T½Æ¹Rë綡¯'%H âw¯ŒY +e}Cx”dÝV*…†}4µï&Ï|!6²ï+ß|hþP¿¼Ÿ¤¿ƒAG~ƒ˜F~o%z]†ÂpöP˜(5d†CFº‘u ÒaÃ'%z‰ñí¹‘6¡/…‚æ%(DŽ)€dƒçŒl ™š±š‚™9;<Ì«ÞYâ„Ïùx«ÍóÚè¶9FÏÒq(õ1"xH¡¸Ì#o-_/^íë‰äXhPddÕºö­Ç't>Hâð]‰;¼…`0mr;Žçd +¢hå¡6a³Œ”] Û¡CäñrÏÈ«Þ`„Q•0;ä|x¼’Ù(£ëŠ«éqÁ–¼P)ÍÈéÿ‹öä !uô õ³€m{j/7Tà\ ìU­Ð‹,O ‰>Þ¥þÖ{ÌZÖP-›®m!§T˜AoijA;}k!‚aC4ðOp”¡_žk‹¿®žnèîáãMã×7>… +6’¹¶³vÜòìt‚Bè0ۆʶЬ gtyXŸ¿ŸVÁ‡v¤ß)^3µîÑP|Þ@j£m  +¹ú£Ÿ7Oÿ€ã=??Vã ”ìö-÷à÷VÎ"’'øäÏ%àŽÇíš: +‡£æÀ$XñRA„ÆÀuã(ì«Ô5lo\y×»zéëmd…ÑßYÓ ; x+Ö-J +\Aõèo§S0 øpÌ ÜˆïÞ‚é.>sÉñ ,î®áˆÁ‚q˜ÿò@`‘ã¡ÐÍã ò}\@ú`_Oð·] «R¨¿i=´ŽÿYøÝ€Õ= CÖ©hl‹Ý¢õéÓ ú¤×°aÇ|Rõ3}Bè>øˆsë=¦!ª-¯VGÈž †qóù~D}óâ`“2dû™…à׸\¤r˜‡(­f÷3-& ,^ý/nîÖ>&…a<ŠôKàÍKZˆz[öøѾX«Ý ð=î ëÞ˜Dp ÀÈ^0.j–þ?!×ËAh(‘YZ†e¨«›Ï/„û‰øûÎFVè›T³¢^àÝû|ÉH—­Ÿ¿•dN”­0Ú~rlñ\1ø±*‡¼ÀLRÞ©ãó÷ L††ÁÂ';J~`‹þîûéïh‚1Ç;Æè û7o‹<7ºdïyÚÀvéÕ¿ßÕq|:çÃW¨ÍAÏ÷iKä«1«jÖe@)«6Ï¡^¨@f±"#<]È`Ü·ƒ‚Äõës µlà;ð ‡Oú/¯Ðø¯ÚšÇjG˜/#Ç…s8šŒG“ Â2Õ:^.n‡[# "I2ÇÆÌ;(½rXö8Çýjup(7ºòÙñ’ZBµ`’Ñ–0@5­5>ÀZ±.¼ï½6^)ÔÃ>û™j"UÝÊËÛcdžTè%‡D™óˆü‡ó´’¼«0,ìۼЀè`&þ`!øU GäK£hX-/[[jŸ¹¿Ü·§J8¼#… '£0ÒhÉþmæ‡êùÉk±íêvð>êT%GšËRìP<•ÈäW”Ð3ŽH`Uâ“qs¸MS¼¼…`YJýèaÓç—›°·à]¿VFcÊ î@Ø‹6`Ø”øÊPz˜B!ŒH!`,¸˜p¯ÇèÕCsYÈA§Á6JÞ=YoüzÄo2 +‹[\èù¶Ã®Šòƒâ<<®W/¶î8ŒÍ…¨VÃU‰W‚(Yñëçàùjˆ;Žvrß'3ü&âòŒfgÉtvÁN±¸º»¾¢G£}?ê/5‚,“:êÍÇømÃÏlè|~žÌñˆ1›Nøé›åÑ?Gÿ\¦Ÿendstream +endobj +1125 0 obj<>/XObject<<>>>>>>endobj +1126 0 obj<>stream +xXaOãHýί(…/Œ™$0!ŒV'w‘ ÑìV²têØí¤§ÛÛmr¿þ^uÛ$p×3·7Œ ±ÛÕU¯Þ«ªÎG}êá§O—:Rº9êuG#Ú_ì +z4àr1ºÄõËpØ‘•”]/°¼o,ÿ|wEý Zä°;áÌ?ïÑ"=Y¬%Ý?üíÛ|1§\òÓâ÷£ÏwÔï‡õgƒK¬Ç2åüsÂïÚÕ¢(vT˜TT2#¥éaNß•ÎÌÖÑlApÊXôà ›ˆÉÛ<¹ùš$ߧ³Ù"Iæ¿Í“‡óA’Ü>Mÿ1yš'ÉdqóÞ‡:ã[=:ëŸwìNjt%”vTÁýé#³ÌJçx¥¿µéZiIZl${°Uº†§¥PÖu‰ƒþàTƒÁÇ­*¥ÍÝ 4Y]O¿Í½ÙU†ýQ–J¯‚’u›Õƒa—á?™VTíJ•60šgG…z–_[§®ü~÷â|@gƒ/Ý~ã-jþÓ)wV­Ö%'iò‰úWW#zP©5Îä۲ݲæ¼{¹uüã} ‚Üâ¿ '6%â>ä’ü–;ï~'$ÝÑMÁQ•ŸèæEZZÜ<~ž>ÂiW‰ô™€lK«QìÍØýà³OÒ;J4ø;2ùAZ$øb˜Ÿ©Ù”u%-ÓÃEm¿Å_ýÊ.ÑÄ"kwäÖ¦.‰¤gYVd4Ø®eêEeЪe4 ž‚„Ù+ ‘M1·s𵂿E½Ñ€ª(Ìö- QÇSc¡†ÒÀpð0Ø@ý–¥­ZxEƒFÔæÞA'Ka½îÁQQ!\4P›+á: ¿Ë°Sç¸CéËSØÚçVRKëÕày†4eR›Jzº(;ä`&\Ý®9Ê×ð+£ã‰\JÀ–|Š&#êØ»ªÇ(‰J-!Œ­ªÖr»ÏèAh±»Ý׆áTlÖÆUq·˜¶¡d™<—6³cΛ|­¤v˜/ \ý>J6ê¸/ÇO“Ÿ¬¸ýöðõ—ÌlPKÿò“¥ÓÙÍý¯·ú…Ýf9üì…ëÉ_§³Žï“§Ùxñ3O&³Ûÿum’ô^µF¹ÑFŸ•VéÊÓ¼¥¹º,­’O±ˆb÷éÎ Œ­ ½kdŽî„Øæ?½qÚQ‡aî€EA©{£ÖùÅP:@o”Ò‚—"óbÇ~ìûUŠ#»t½ƒrQÕ©M1YlÜ<ä²7yJ˺âåhy–+·ÑhØ"‡ )Ûa•†ÍP(P\X?” U¸?/’CКø¼>8žÎñ!Ã:( «€”pΤ +U„ÃŽ"Ðz³ˆŠ2#S•«P[ör½áÞ%¥•£µÙþÐòÒbT\ ³Bôøô¢R`¼”kñ⧆ЩÓ‹²FsÝáÙÁ´(GÝæÈYúá·P³P7’€Ó)©Š®–Ø× ôÐ@—,#µÏŒã¥¼ï2¾›´Hø^lÅεŽ)QThW«5ïè© +¶D탛(÷[MÛµ ìßó’­¿(‰.ôç™2÷‰Û±¾:ÇÿYOa @áØžînÞF.4ãëE\ÒÄsÏ–ù\О½=SöU˧܋‚±˜xrŠü´xÐ-º¥QØ·,A¿ÎnΖ‚uÆHnt_G¢ §LnQ¨ᥦS„ \’yÄÅSž,<=¥bN˜(áÓøþûø7̧‡„*­ÁD"a£Jyäb|æ4W܉:Ëâ€ZPlùÕÀ¼6ƒòZã›ÄGô;x¦fÊB“êåÓÐ!f™¯Bì˜C-Gñ(ëe¡Òð|W¾†±Ô·sòû¨ð0êù½ÐhÍóà¡xRÉ©3«‹bÍ¡ìÍy/ç716CŒN&ÚæÁcct¸ x&*VŠpüx—OW§,ï[厳Ukì5œ$ÍöIâv®’›$Ik vºâQךÂÉ +š²•$…СC¦’„g´D¹wI¢±µ Ñzdã#Iƒ´•+ eáî\á$€Æzô–Ž&ÿÌÜ ÎŽg7áI=c‚Wåñ»!cõn‹” ¨³šð¢R|,i‰µ‹ypq¹æ¬ A+kêJªÌJ²¯]£¿;æöù—Ò¢Îâ2Ø7yOHo–·ð&þŸŠx§4½§ôßG‡‰Bsr³”Y˜Z£Qí¢„cƒ]8?\ˆX@‡ÇWÖ͵R>/XObject<<>>>>>>endobj +1128 0 obj<>stream +x•WïoÛ6ýž¿â|˜$²%;qR`’ØÝ $n«+ +h‰ŽÙJ¤*JNòßï%ù×â-]ÃfÈãÝ»wïŽ?Ž|êáŸOÀúgG=ïò’6Å~ôhÐ?÷®hp9Ä÷à"ð|*$-°¹‡ãëvs0ôúífh·R?¸zûþ•ï ÿ}â-OpykÛïã3~¾áJ÷c®(\ï ú]Àùó‹K +çq¸CÍ'E½­I›R”Êh* Ù\ÆjñJ‚–ò…V"­²)ð[}–J—J?Q¼…ˆKYx¿†ßŽztæ=ܲ1~hÂ%[LSó̆ä‹ÈòT’JÓÊ–…(¥%‘¦dT.¥•ØPJmáýpÈä¡uò{w>ð®ðÿÐ],•6mütòð8¦“ѧûZ–ϦøÎÑ ~ÐSaªüK£ÛwÇ5lóXä¹™$‡«?8^_´õåÄ,RÂf²²XÉâ=7}¶‘›¼JE±e®ŽagÁšªˆåOØö6©‰Ej‹Õ–-‡ÏÖo†F&2q„@vHé8­y(€Cëtr3þ}2ýûú.?N¯Ãñá“éíÝçшFQëaåÕÍ™ÛÊ6»äû¼M#rË—)—<[9B0K6ÝÏè‹Ò‰y¶4 i€ÞŠ~ôЄQµM4sg³sû!Š¾L¦Ó0Šf_gáø¾DÑèqò×øqEãÐÉùƇ3½ µïìκ9C“ºN’BZ”o–XuœÒÃL”ñŽæBÖ£ÉN5ÐüµN4·X1iÅvïF¥…@ó«â²âÌé­O)‘90gÊ€eKóì †·]ø&õJF3 <¸¾PO°‘x`ª0)Ñi^÷.~µ{òG¥ÐêÙJÝwé³V/Ý;¥«—}„»²Œ»kÙ݆ò 6 Ç}‚aMgtçÊ£NÙÛ4ˆE.æ*Uåën< +ƒßÄmeYå,f¢ýCÓÁ×ÔÍBÄÎò²X\ ¹ƒ„V=œœnå +ý£’(8v¦žYpžý€VÆ +Ó‰.e@íy© ÊÖé ¥Æb#$SYÞL>Íö.žš!½æ°‡q*“,;iDÅztM›}¸¨G™èP[jÌÒ¼€pÇàEhEAŸG{w­·D¿ºhÀÖÒ)v«±ŽÐNùàÇh«ù7;J`úc×òÆÇYW¦BI4‰i=á}{7ÇPFé2à¬/ ÍîMàÄ)ÕúÀÕuwß|GàHüyŒÄ!Û,].]ËÓPÊ·q{÷À`BóR¼e¦×:GP‹ÍÜ ÆKfÎm–›X絚n<=mÝ\«|£¥5Æíi ÅMqO#·ªÂÝþŸeq]{uZ œhÐD’)§¤öañ,©j¦ròê’Þªèbû½žßÅG°ÕÀ§7Ó}VF6™;70»õÔJ¶D›©™ÂI¯š„ÖÂzéþö£HQQO +ݺĂ(Z9ßçIªœŽÕ-§Ò—ÂbÀšžÔ +Ÿ0›Jf»Ñr'¹vs‹¹¨å'4kih"› Î6†xà h‚bè6“MUòà‹Xë ÏÀøΛ9~s5ýÇfsU¸^n5®ãÚŸ{¿ì½Ï΂sïï4d;hãY„ «ÊsS”ô}•n¾ÝmÛañÞä7Ð7cc}xWpn*¤f´oʹcÛñË&HÿâË>] {ÞU€ÇfÒ™]ßß\ÓCaœ`ŒL\qKrÌHœµGΆ=·w& ÞT¼N“NÐçãðèÏ£Õ ŒÉendstream +endobj +1129 0 obj<>/XObject<<>>>>>>endobj +1130 0 obj<>stream +xW]oÛ6}ϯ¸èS +8òGÛ°‡diÑëÇ`}É %щtE*ŽÿýÎ%)YQ ؆¥]DÞÏsνüu1¥ þÒrF× Êª‹I²ZÑéG½ÃÿLh±¼Nnh¾Zâï³9þZKÚâì·»íÙëÕé,ηGéÃ<™¶6Úßßm.ÆŸ&ô6[š&óë-àäf±¢MîMOh“]Rüç ´%Ûì÷¦vô'}5ï7?/&t5EÀ¸08'ëgYãØËËKÒûïŒ?Íi:e§WÁëÕlé½ÃÈ¡9œšÅS—½ûlëµKR–\!éá;‰<¯¥µd¶þ7?¾®ÉúH’péM—ìa_Ï“9‡ýÙ(­ÍÁ*½£m£3§ :§Ÿœ¡\îKs$ëDZJþÀ¶`a6 ð]êÜì 5ÞÜZT©x.ß[& ö|‹r:ádN"5ÏrD_ÖôCé±P%²BiiÑÀ²¥DŠª¦¯ÒÝ=|[“>>^ªD&ødã ÿ…¶¦& 1Òéu2c\ •Irǽ$¥Éìe-8ßÇ÷d4GƒÖ6û„nKkF$†r™å‹ÈUÒ&§ôH‡Be"@8¨p0;pïÄ‚Þ—!àx.‘W…,£˜Džˆ\çSêÕ#+•ÔnšI"K¥Ô´SÏø)¨×éωâ|eÿï/Ÿ¿­7k*yjöŽÔÜÂ|Ĩ-Ý;\Æ~Å‘œ5eÃ{uCºÌŒ›» xÐ>…LXÉ®jÎÎç­M?^eù¶r ¥ƒÄ'üéëÅïa$7Zríÿ½ÿ>H9œº„6Ü…x±®7]øÀ5w³4™(ÁêTK7¢F—LŸ¶6¸ßXtgK€°‹4°ãaè;–ZÚ„½m «\ãfÉsöµyV9â€Ïz’d™/‘±!ëJÑinD¦Òò8ÈVéŸ2c)óñDZ.T@ c•q²O-dz0õÈHÊex ­ $@¾£½¨fôñý°µ?|#_ŽÑÀ¥Ç-:‰Ü1TYq‡¸¬»Ê1‰d­ß–½k®è^dOÒYÊ„æÂÔ¦ñµrEcÃu Š5$Ò±ßòVßHdµA§ãõXÛzlA|ßÔ¬Š—× Ì#p/KŸ©à³crGn#±¬–€êV!_p;tÇÓ‹œ&È.Jχݕ/èbBßà Rv"bì[hEÏG€røbO©†ñ›J@ò^GX2@U<Ùi9« ¢„£ £[P'+3TÈñ;o<3ÚÕ¦dü#_ápÖóÀ§¶( HÆ.ƒÔ²WŸÿÙJ>^nX/ Â>ñY/…Эmmª–É÷ÓØjá$_²Bèß鳆ÝBjAb/ Pb”• MÇ †—å‘L긾qWûÌ9‘°,ÙvÓÍ݇¢EŒ²Ä„>z—ÓéÕô†0"ò×ß +YziêÆHE}L ü!ìeˆ»cp.\á„å¡Cw†ËZ‰ÁO."k µ+$(Ýìª0ÉQ8x¯ NX©¾‚FÎd¦$äiÁ!IZY¬X»|t]<@ãYD Éû—™˜"ʶÐ}îUµmY™|Ú(+KçˆÒ†Yiýòƒå¦íxª©*ô£u $zFxØ%†çž㹿«OS#ZiÅçV™[µkÂ62-)¤âé­¸ßcÔµ#-&´ËªŒ ÀcÊ~äDk^2Á)#(ì/ø:ˆ¿Lߣ<ÏvnX :úaÓVg¢¹~xaÅz#¥aüÅõ™ÇßÉp ŠÍcìQg…ÑÊúÑÉuîwÏj7"ñõvíl‹6Øxo¼ñÈͱUšpµi«J¹ï«ÔNnõ Hþü95”œîæo;ty­†¥Zþj˜/½¼BÖu—vŒAn·3˜´VùB€ùÝÖ›%3HÈÀ¹•<Á¹]Ø0ü˜«½¤¡à¸Ç};÷À ’ö0§ÂE)ö·üÍ$ÐXf.Ïž TR ~a$³6}Ü\ùßô§Û˜zµ8öx9UŽ®Xíƒ:¡ž5a"xn¢íSé´ÑŽü‹Àçý(·#¿þ¬…qàÖä1gº‡0âÝBÎðŽ]#BaÉ +µ<6BžHÊV\¥˜w~vDŸNfmUŸ¡ÐØÙGññˆwµb^Ž±œ H¯åðOoÏK¼oP%HœÑ^:ÇŸVñÎt§öêš“y2YÜðËi}ûå׆Nº7YS!-ÏO6{Õ^¹ZNðœþ_¯J~gþî9_Γ%Þçö1›³ë›‹.þÇoendstream +endobj +1131 0 obj<>/XObject<<>>>>/Annots 494 0 R>>endobj +1132 0 obj<>stream +x•XßoÛ6~Ï_qè“ÄŠå8þ1`É’¬š¤[\tòBK´ÍF"]‘ŠãýõûŽeGi±-œH&ï>Þ}÷Ý1ߎRà_J“!)+ÉoÚ??JÃd@£ÉY2¦’ÒÑ8™5O=>ãÛÙ«ÂZþvL§°?ª›ÆªI’Òh:ÁïÃQrN•¤åQšŒh˜’!¼L‡íƒw‚§t6ÃgIÞø«Ëy2œœÞÌ(Ð|‰³§)Ís¤ͳÞí}Q:7[KVfu¥ÜŽÌÆ)£- ÓÚlÉÊŒ^ªU d¢\ˆãù×£õ‡`˜ç½¥©°[–…´–”vrU 6ÁËNo>Ùy8A<°áÀkV(©¥R쨶’¤ÎªÝÆÉœ6ÂÚ­©r±x¨™% ÊÖ¢(¤–+yZI»PI¢vkXQ™wK¥ÉeÑ`LÏB¸|ì‰ä) ÝÍ?Þ>§ÇТ0ZžðoY!EEN¾8²®RzeÉŸJ•›B¶Ph!,½v—ÐlZ›ºÈi!‘=Q¨dÞñïÖÂÑV¹5*=Ü^Ò¦2Îd¦ð/âaIñY-{1ψ°XK‡8<‘Än¼Rš6…À§G ìmÈNhQ;ÒÆu|/ Üò³¢|¯J~«¥³I³m8iý‚˜î·A@>Àä +h_Â6ηF¦Òïr²Â‚ÅÎ;Åbà¶ÆÍÖÐVìì/ìåÖ~/4Ý^ØØšSΨ?ß}øíþê:>¶Ñ +¹Jh¾†uüÒf«™/¼énîmøcÞd û“5òƒÃñ„Øûž¤þË~$ÍVZ_02@R˜œ¨‰z³Á©20âÄ— +\"3"Ï9wÈ\UƒŽai:B$œ´ ЀšñòžN²Ìj¶áÉr6òÁï>üÈì¯D†à†ò´›B9²–>¢çcZàÕÕõ=É<˜uŠeO÷®+•½£©÷AÏ¢¨%#dÛºp¨JaŽ‘ûjZú(ô­Ð?lLâwbÛN“tFýóa2åðÿmêX7•\2ÙÏÛ§¦ðé:h”„Ï Qðäwœë÷÷_æ÷Ȥ c©ñøJbæÒ UXÂ;Æ«´–U'Ä\M\âÍëù@•fç(OÙmŸUÆÈž(=¡ƒ ¨`½Pž%/žÍ A“ßl?CB‹®*yÅ eÍ¢ÅinùÖU™‹¢Ø»ÄÂ0¾ø–«õZB[lÚDnõ&ô5ÐÔ)‰žQÃ;„q)À®&8ʽÏP0‚y\ye6æNÔ­”öŠÚh–{‘P9¤•U6P©tÍ4ÃS€G²z1â„z-ÎÉrƒ¶Áuˆãòìe“W +P©ºaÆkeòèd~â·„#€î}iXÊ"x²°ékµå£¡ ‰l o™Ù a‘Šñ‹Ð#¯<ô[•UÆš¥c*#n¢¼O:³ÀcC8ŽX3Å‘b¯ì?zlû@t %(c)ú¹Ä–UŠ]Wr¥ D;ø®Ð|qAá"8㣢rÏÌÖ[‹¢Ûm6œyBf¸ÎBOò^E{¤†t˜ÆJB€TÉ„M_+´D!“ +Á­diðÕë¢èœšË‘ ]°\Û ÷¸%> œBW¥•“ÅÎ[´2&'•KÁb¢øt§ˆZçèt¶ÎÖ˜0ü Ó%Ç©•ËymsL@e1N€Ý¾Ûø @T¦ÆPÆéSÖÖ^/âø6{i\ì[ärÑÈo—Ö<ÜE–ÀÈ…*ª@“R9¯üp‚Ž™Ç•&¸>“¡f¦×iñg<½ÐŒç>L²gCt÷ódŠŸÐ}vë';*äsÔzôkÓˆ‡aSÏ‘AµZK˜ 1ûÞõÓ&âÚp&à\¶b†ÛÀ=HiÓÝ}¸[M¨ær„£Â˜§zÓ.Œ³È,xbäâ)L&ºêow2F"ËVÌ_t)3O<îüµÏËÏ3·Fcô…Üh|àúœ†Ýg;qcŽžÞ ›±§OСn›‚ý ÔÛÓK¢Â¸‡H•†¤KŒ&]¿ÞÉžPh¾þ á„õ¥ÃîR<µbRª–OŽN‹;ÎG‡U©Ñrd‚Õ¯;Àð‘¸Ï‹ö³/d¥QmNhRÛø?øûÝøÅbù™ø•µu\¼VúáŒëµ/ª¬KÒu¹`ÔË}™Jý¬¢íZeë¶qLN‹Ex9Ü£ ²œýŽ« +$«|#–1„æð÷L­ð +Ÿ«@,?2Æ ðü5ì±÷xì£ÁA ZBÅ€ìKðB°0 •†I® Îv®oÚzv4è/|¸Ob¨«LÙæ–³£no–%™GU¶æüXáÁ)H_ü}Õ«Ïž åS‡fù²vþþÈt ïâ Ú ì¬™Ü1½4âæÈsÿ@ñ¢Q äØAèm.vý{ÌÚ7S_fÊ…Ò/nrÇdN›´§cÜë§g4O“ÁøœUóáâöò‚>Uæ+æº2Y]BÚ{v?néOÝWwìÿq³÷uö£»üh2J&cü ƒíÏ9 ×ó£?Žþhs—fendstream +endobj +1133 0 obj<>/XObject<<>>>>/Annots 499 0 R>>endobj +1134 0 obj<>stream +xÅW]oG}çW\ùÉšÏWòƒ'­¥Ú¤5VT©’5ì0βCffÁüûž;3 fƒª*RÕ$&à¹çž{îå[«KüíÒ¨Gý”²U«“t(MûxŒGxíáÇHšãÁxL‡³À‡ ÓA2ŠGûä_ŸíÀlR¿Ä³ƒn'¹üwfûîþè Mº'ÍþñKkÐï&Ê£^’†=†L†ÉŸôq*å÷ñÁ‰è†Ã}"ûœo¦­‹Oêvi:LéxDÓÜ'Ö¡iv>]JšIëH¯Ò%9M"Ç{R–ßËRÌ +I¶Z¯µq4׿ÊÌnídNkaíV›ÜÒv)°ÜHCb5|»²2OöñDùÓô¥Õ¡v·ŸôÀ¹[))Óå\-*#¼ïµ¶VÍT¡œ’Öûªýêù)·?³Í‹O—Ô„äÚJX²’îé‹*s½µô0%aI”$*·”¥SYph¥AÈÁÊ¢v!2Hb%ÝRç¤Ê.6 +×OŽui añ/æº(ôV• b®HcqÅ?³«YÂYÒ\2Ü¡KŽeï÷¨Ý&cüÿD„ßà{EJ[#¿=meVåvtE‡|éƹºZñŽŸ=Hws7y|.ô³ž?¾ýpvŒF»räƒõ°Ä‚’ÛjÚŠ‡Aå ë|Ç € @ŸRjG‚™`Ø*p ²S÷-mD¡òx:¡I)ù‚‡ºÎ8rÆÈu±°`á*2Æè \ç\^`‡Š4ê¼’ÖŠ…/Ñ>¼÷µÑ>Lïì¥B pxÒÄé\&Ñ{/Eã…Ä l*Ûƒ#&Nò‡c&só01DæðF„ÆÙÊHa™>¡U¶ª(PøÆ•FÆÍš šéEå{ë€hýËýaÎC Œ\i‡þõDG<ªðmmä‹ô¡y¬½©†çïK…èÐ@øW€ß%ðßÈ}ö±üu__ÔP¤½| Z@V!${rÃy¡³¯¤+Td_`P&訲Z͘Yh'¤Âu?nháœ\­£¯Y#mU@ÎJOCbÓ°l›Õ}‚bxò¼©iÃx®ÁJ#¿U +ŠÆÔÁ«†x">뀗09=•ê•D–éª Eg UÃŒƒéø¨‘oXagÆÁ!)X]ˆ)LzÁL™í(d*ß*[V( ÙœTÂ{ñUF¢ ¨Y ß±èãžœ¹^iðíØø'MôzˆÑááûN ÿ71<$rB 1¶¾.Œ®Ö,ƒ^›=`—¼ž¸UÓµî§+zw ÔI¹äú×àœ½;Ã0\T+..ê|Ö0yH› ¾cý(Å)ðB e˜K!@–g0vÐ `¶`npJ”‚ɱ€¾‰#ƒ a®¡²[J±éaÚl‹;”Õäð“ß38NDe ½å cQcJ)±àñ‹†qv|<ˆDã ©ýt‹Zï#„ª‡ÙjýäÄv×®ÕxrÊö÷àT–UŸ£x x\¬)9ăV"èàãŽm@ù6?Ðŧ,.TíQ2îR½ÔüÕKGtÌÿ|õƒ|uï‰×,Dô›*«W²; Í"ùŠ1îê aÍŸöO‘œÚ†0ŸŸ®ï?Rû…n'÷×wþcðx–»üüD<íÞ8é^pü¯uéätVljÁä­xü—Y x]Š%Š?“Sðñúþæš>íŽ[yéó‹ûl×7Ú£–âØÜ#|{KñµŽo÷R6úqÚú½õ7 =iCendstream +endobj +1135 0 obj<>/XObject<<>>>>>>endobj +1136 0 obj<>stream +xVkoÛ6ýž_q‘îCT’%9–Ü-Òç>4I·¸(†vhŠŽÙJ¤+Jqýïwøíxq‹.d%&ïóœsï—“”FøM©È(ŸoNFqYÒîÑÞâÏ&qNã²À{šgñµ‚8<Âõíc8<*ã4Îp!}Èn6)âi8Š×b8ûÙìlºá;fÓ³4³ùn}#ÚtœÅåa´Ïf'É«)¥cš-PŸI‰—Êe:¢ü\«…¼íaõ†5sFÌSÄún)T'9ë¤VdD{'ÚŸgŸ`jLiêMEYSgKi¨Ñ• ½8¼X‰†©ÊP·dnæ8§ì;½SòkòFªþ+™éDCsÝ-‰¹/Èt›Zã\÷ªCXÖûˆ¢43ëu-ê:kšùŠ³®!·ZèÖÙïvL³àið1XäH±ÔšÉ +û¥—-ÞQ­êµqàT(ÞnVÎ8‡º­h-ìÀYå<ß\>#^K„rPŒ8Ë&hè¶n¢[j¸Wwº¾¨}UIWrÔÒÖh¡ëZ¯¥º…Ç–5¢-ª©ÝwÈ;æh-d-žúîŒhj›ÌäEÙY\âÎ=¢U-˜Hs!PoÂ÷üí‹çôûõûÙ5ñ%Cz-ÕÌ>¥¢¡ Q0ÓÙvs„%¸ ÔV»Ñhl%:&ëmŸÂ·µž³úïC~BE·õ4tN‰C#Ãi#xßÊnƒC¶¹GlVºa½Ö·Z}ÛÞ/ë×7T‹;Q[øæ9 é ËVpÝ4BU¢:âJ›p÷WÙ,'¶V®^ÎÞ\¿¾¾:–ûŠíç”݈õ’µ"‘*±½L<Žøl«<@ÏiãKµce4t¾p@¨pŠnzZX®zÌkÝ~ÞòÍSp ‡ÂòV[ls¸´ ·ãKWü'–' ‡o†I/oè½T•^ºš%ÙZØà¾TÂór‡nÓµ=ï¬ ¹º{&:Æ8ñÚ*Né¹óÝw Ùem˜uáÜj‡Ÿ†mhÕê; b´DÉ©Ûy§¡f©ûºÚKõ0¼{*eAaUí Y4ºÍ +šé dÙ ‡\T6+[ WFKe+°^×B†ÇX;àþ‘KÚ@‘¡d˜Ì™YRTQb3IN-duJQCÃû]àáÎTÐÊïœ#z©¬¼µÊ +=¥_Wëß‚Ñâ;£; ŽØ÷B8nz×ë-Ž§Žïa‰.=ŒèÂ×ñ8 ÿ=Û›­¾;q_c¾…‘Ä9õ¶£‚x@W»ÖŠ&ÈŸÿQÌŠyÅDc‡JÐï‹áÿîï‚ÕÛ6¸w‰ê1dNuþQ˜§?þ4ø=ÖáèGîÜk …Ñ=oÖ•k&þCØì#vÌ@d°Eðº7ØèDáõÐÏšÀA[êE-¾Ê9†|#„Z£W¢…Ò@YâØ•‹Ü«o:Ð.bµV"¬$Ñ•&³\‚uÌO$ôÓª ë þcáÐAÆîiƒ‰iϨÍ2ÚÛ1@*¬=˜ «ëÙV>”èœpºã‘\˜'. Kï 7NçÂê|áßÌ› ‡à y ©ÙÐ;˜÷&1ö#È~Ã>»UÃëØö˜áo¬—" oXnP¤Ž:8Û»d“1Ûô_€-«^TÄeJùÔ÷ñ#6]·$¯Êp Í˸œæ4çq1uÛÍÍÅå³ zÛêOÐXz¡yAê¸2§Ø‘GeNQ1ÂÆâô#{è¸ÇÅë½½›ÖäËÙÉ'ÿX²ŒXendstream +endobj +1137 0 obj<>/XObject<<>>>>>>endobj +1138 0 obj<>stream +x1OÃ0…÷üŠË׎ƒíŽ)…­TK,,®ã@ªÄŽSàßsnʈ„,ßpwᄃ÷Q0 øÈ +¸;”P‚c­•ÄZáºb«‹õC Œîò®Pt ¸O)h»j<ìðÒû6|N𨓯uêÉÙ9öéÚ0šÞÃèÆ£‹äFŸð ½,%QÙ‹nW¯•°Lq—aÉ8©ò’Ì\ô&õg)€ù‹½[wÁ§†áŸXu5Ÿ"jÃß.àC³ß6ðÃÉÙ»`çÑù„.‚Ï~K&01Å¡”t“"¶ëßfŒï`Æ£3e§fNï(ëíEˆñij‹Y_ËšH¡–*•[÷ºx.~ ÆrPendstream +endobj +1139 0 obj<>/XObject<<>>>>>>endobj +1140 0 obj<>stream +x•WÛn7}÷W àU€du·ä}HÒø©\X}3àR»”ĆK*$ײòõ=Ã]j×òºMe@²¸s=sf†úv1¦þÆ´˜ÐôŠòòb”-—Ô¾¹-¾Œh2]d×4[.ðÿx>ËÆä$m <¢ùßš'³i6­Ÿ|\ñCØ>½ÁÒðæš&#Zmàòj±¤UŸã$|²f£¶•SfK·¾ÐÆ:*”N­« Â;åÒ'´>¾Yý}1¢w“L JaÄ¢ +;¨\e ‹°¿ñ¢ö÷n:Ë&,~'ʵ a +vSKÍh©Êµtd7ô§QOä>ÈÒÓý@nßÓ]eèÎjᔿ󖄧ƒÔš?=áõñî7ÚˆRécôõ»2ÕÓ[2ö@UPZ}—,Ùä1žÖ¡Ýêj»k-éó\è‹-*-Ù9b¾Ã9l„#K{gU! ¸œA€¸`Æ:õ="ãpÒÛÊåçžs d­&/ݣʥÏèÖ)Tö9!ÅO‹*g`DãTÈ\y>‚Xå‚AA:H°V®‘£½ðþ`]q–s!‚X (ßêb€`±ƒ¡ ù0jEáM*Ól¥ Pí[¥ÀDŽ1â£A€0|¤£‰­¨a؉pÂÍˬ ‰S©-wU¾C²ùΙƱ2V#Å×"yÏŠ'§Â¿¯œ§IÛ­jˆzÊíí¹P//¤Ý¡×Ú$¥<³ýÉU{‡;-æP€]‚J™ï„Q¾¬!BÿFæ!òEJ`µimœeiI•)¤ÓGôoã#¹}Þ—ÃçœTfãºܪœíò·q ­¥‚u0qçlµÝ‘5< +-RãtΖ2cÕúY´Áý Óµà÷úH²P‡Ž2…B#UBGû KØ¥-F +"QæU§ç =Çy€6Vk{ˆ®€µ!ù$Êý¿$R ûøq‚¦îi†"£Õ˜%{;YºÛ=·«§µ”‘*“۲İä¬<s±sÄx +hä80ÊT DþÕFì‘3TµIŒç8rê„Àt ¿©4¤8©fPœ1isb¬ÑgïyfóPAwœäÀh-y p@ØBŒš1„­’,–‚|Êå>D +æ0ƒºÙçÔèä½åÃþP¬3ßÈ$Š bÁ†7#ºæE0ÎfÓ öË<[âëàògóÝ8¥Œ°!ã9 —‘´‰±mYâÜá”ÿŠ9ÿ’†ë¹‰³ïÜÔy53®HGœClC±I„Sl"úuccD/•/ãÆHž(Í×g¾ «Úÿ·nM?tSóâ¸K¡ôKÍ ¹©y°;´,æg°!ô<·• »›WAvÜUÊ÷Ïôú“µ…yý¥W_©ú5/A†®nXsuzðåi—ÖŽûÜæ«3U îøëô °´ ø3ÔÛMŒŽ¨e?Ñ(<¿Ñ…öàã«Øɽyœ)e}áyeùºð:ÄÀP¯Ças]P&×U!›ùZ_þDõ2CtýÉÓzz‘jùvðÀx17Iœ²¯Ï´*UHBqØwªÍJ&ß?0]£&8düó3¬³ÖUŸ•nqb,[ì¶n4lYãò§{ ²'£¶‹›ŒœµÁ~m“b+'ëé¨ÇJ!Mûœ5”÷wIB†Ïš¾mŽz¬ì¥rkt'«ÅXêö{ÝÊi´$¶j¥Ë×-±´]ôÖK=à[ ¿ÃÝüTÕ:– +wú6É+Ò<¶ÏÙ¯.D·D1£Ò†¢•ê±âD¡ªä:âR®¹ñNJ|Ʊ0?küz¬vRòÜŒ)µ‰‡mFõe¢=VpCwqõ%t™d5ÅXšÙÔ˜Þ,›kj÷ù2›Ž¦¼ÿ>ýŸ_m|xå—Úl1ËWøáÉF'×ýçÕÅÿkqÂendstream +endobj +1141 0 obj<>/XObject<<>>>>/Annots 502 0 R>>endobj +1142 0 obj<>stream +xÕXÛnÛF}÷W Pq‹º_ Òê"­Õ·íŠ\Š›\f—”¬~}Ïì’"Eˉš¢@›¾ˆËÙ¹œ9sÆŸ®Æ4Âÿ1-'4]P˜]‚ÕŠÚ/f‹_F4[-ƒ¹û:¢å +?I1ÎŽh:_Ó³O&ãq°Â“Up{ún Fõ—Úþí2XÔF&0ÚXïžüõÇ«Ù"ÓtL(£ñ|„{Ý/)=\½Z_ ßÌh<¦uŒ€«%­#wψÖáõ:¿:Mõ^å[’"+RþÄP‰'©Þªœ +£·Fd¸¼HE(­{TYI:v?~·þ€;,wÇu!²ß‹}´ ¬öOšÛ¯)ÓQóûD… Á‚3ŇF4Oáþ:º¶[ÊŒ +aí^›ˆ"QŠÀmï¯{ eݹ¨wÑ ;jéýEG·FWEïäûïh¯ÊÄ…ì9½¤§ÀföíLNç‘mD¦ê¼*÷¹¾W¡ÑVÇ%Ý¿ž‘ÌCs(JsÄ~tnO„M¤ h(ÛÚÅ϶Ô¯¡¤Hó$K•5ÃT‡"ZvjXµ¥Ö±ìŸäùÙ ¸Úx#ϾL@|9µqݾDÏ_L‘,d1huîJâÒØË„b4g©,Ž1¬º2ô[®‡?©¼z$7N–ì{òù*ÖXFZÑ;!±›C]Ì4ö¼A¢MáCŠœš€Þ–Šœ6’B*õl!C82ÔÈ'gÞô ŒÁAÇ5¢í1]p¬M&s2Už³%—œÖŸm:µÀ-VÛÊÔ÷µÖlhTQông@ +†,f>ŸuæO­ºþ¯kÞ÷Íç솬”®f‘«¶<ÀÂ1â3>ZT.”høcoõÍGÊÈ?4ÌäÂ&ÿ"EÊ–Fm*NOÐø|Ë´8fÓ &ó`…ïà o¾}ww?#>Æiï»ÏLð ó «…âIóÇš/¤Ù©Ðe´k¢gRT ”Î?#?U#j>ê„ *¡\G2‡¾‘0ÔU^6¿Âè˜AûÏŒi»6s¹'í”Bâ}=–î;êÁÍÙN)´pBŸ)ƒ5šR…U* =íóHÆ¢JÑ} â˜gQ‰fT'—àü@ûWaäØó+`t’òaª6C+Ãʨòàz§Ž„ò +Sÿc(òÑD…Œ<® m;+éžµÌ.´vó¤]h§1‹æ¾Ô Ë=ÅÛ[?RZÈ5ˆqŸ]£`΂¼Á²™ˆÀgšCæqâµÓWîpŽç¤Œ +ÉÕ¶IL-|˜ 0ªTè8% ‡ +"  ¹-žF$R°F†»“ ²K^…šÈ#Ú»ÓeRY¼y×Pk‡ô[7›\¢±œñ0ùTÙz õnø?⾎ö"½Pÿ-˜? ðªïûš*àO¿Ô?ëR¾t,ëÄòQ„âŠÁ]°R&2Êf5`h‡ÓBc¤l0+ÆØ©zذ•NSvPÉúJ@çžák™U&Pä[ˆoíŸËDzÙ&¼lpŽ:z—J^ŒŒ¡që7N¥§×}Nv¦F½†œQ‘„ß©…ù­0Nr zÙ†ÖE!6*Å\Ázƒ ‰Ç”sQ¹ Ó‰Tæ;etÎÝ®3Y*¾ó¨ŠšLzé‚÷…k’×[\š3«Æ1{¢ô4àØ z¯–54ŠÐí ‚˜ PÈΑR Åó¼h~ÎY&:"æMËáB&Ào;­O½Ñ¼gÞä¹@Ô1æ?”Z¡Ì"Ê眾£;(` ‰£m…b  +©Š™¢J7Nv÷{:ï%%y=5 öŽc Ѫyyñh/ ¶x&¿®$\ä'£¸2€†¡D¦E\ÁV;× zKcì㼘¦³`Æóu#SÁ¿w']æëÞL-¼2á?ÔòHز*e7 ÈÍ^!z#Eªþ„€2:ƒ³M´Ø;6*¯Å|ü·öŸïM»™à°=Y Óèôl§Œ=äái\×Xôy?Hʲx9º›—6Û¡ÛÂÕq¨‘D×oReîî8Ñ 4= Z¹À$»iÕ¿‡ÚðͪީƋe0ZMi±œË[W‚‡»ûWwôÎèX'èuwIa_Í+ƒåû×J6[΂å;â£S·Rü°¾úåê/E°7endstream +endobj +1143 0 obj<>/XObject<<>>>>/Annots 507 0 R>>endobj +1144 0 obj<>stream +xUM“â6½ó+ú¦*̇ ›ÊÉdrɤ6ª½Ì¥‘e¬,9’<,ÿ>O¶™&‡5ÔÈ­î~ïõkóÏ(¥>)åsZd$êÑ,™Q¶Ü$kZ®sü?ÇŸ“TÆ®¾ýõÛ(ÍÉ’V›<ɨ¦׳á¤i7º>×4Ÿm’ÅUôúŒh6K6×Ñ,KrZ¥kÔ¯i1›Ç>Ý)V¾>#ºJñ*zuF•o¢WgDóü¦r¼»\­>’ܦÏKJSÚ—Ð+[ç´/:5f´ãÖK7mØû“uøÀ^R¨8`C¬½¥ƒ$Ü+èpÆYÓçí ½Žåñý®LûíõøÄPºqöè¸öĦ n­eOh_)ÿ°ÿ:šÑ$]$s@³slŽ²–¦ïTñJ° J´š>ScC rñÆ&ðQz¶Æ 9©Pd‡‹lI/J8ëmh+‚B¡'å¤Öïºî¤{SBÿöiäÊ–ìˆ=ÜR´H·&–<©Bš1 ÎßÄ-:àëXQp\–J$±ÃôyC)”OKŒ £N¿XSªcëú”Ø­>$û¬ïƒ™Ì£ ‘µ¯$´TQE²M‡æ* CÑ؃„@\³Nu¨;ax«µ=)sŒEJgëN(k&ZI•Ô ®8<ü0’ïív_¶ûŸéæYOç ÈÓŽëcµæ±xäÉÁ/–¤áƒ–9|Û4Öˆ¬™PO»Úyp<™ÄéMþVƒñëêè®eC€ßÐ&8«8ÿœ*‰q8cÃÌW¶Õƒ:ÿ¨(„m£‹àI/½Ó­ÙÀNóŠÎ'pÌ ^!Knu€åáGeÝ]SU,CÇ3Ê(´„y‚ü†·þ°Žm‘¡ŽÆB&6x2BîG< ýÓCw{áYŸøì‡rþÄ]gø%› 'K#ܹ µ_sO?ÓùB÷$ûØ4:¸¶E«ã:_fÛ5¨¢±ÄS¸°Á¢ƒá­µåk,‘,àÛZƒÀŠðîy¾<¾½ Ç̺-Ãn]ÌøÔÏéSÌž>¯.Þúï½_cû›ëáfšá'b½ ù2¾¡±v»íËã–>;ûï z²¢þèÖ6fN. “|¶ù_˽̗Iž­ñB@õE‹üºý9ú™7 0endstream +endobj +1145 0 obj<>/XObject<<>>>>/Annots 514 0 R>>endobj +1146 0 obj<>stream +x­WßoÛ6~÷_q@æ¶bÉvìè€d×<ÃÅ0ï’h›­Dz"e×ÿý¾#%ÙÑ æN$ïÇwwß]þÄ4ÁOL‹„¦·”•ƒI4Á›îëןø ÍçqtK%ͦѬy(èipõXRÇÑüê0YL£˜f‹WJšNn»'¾zýŒÓÙ¾7MÆ›Ç$îÇÚ$%v +¤hQèLiÀ·UÛÖt›œ{©Y ×Âf>2‘W‚¢V‰G`ĺÏÄY¬d0Œ~l²%–«ÐˆÞQÕ'½ ]4¢ >ý@7¯[_[2à8˜ù=Ë…”1É…>Ë}%ŽJèS•'ÓJçÌ„wsv3™`X5™i-¼—•üŽyT㓨=tQ}hjµ™>x +N„†óºnVºã©‚É9M0šæÑ¿Ád¯h͸4Í⛶.0SYäУö^Só§§ÊXÒhGzKO÷î_õÄúƒ zîfMÂۛʷö%;ÚzK7`[S¹Hrs¾`éÒ„;7«–Æ Óe”‡ô”wSñL'€$AÂD#oÛ­×cýIÇþ1ú—¡ÞŒvþU8›Ó)v¢9V‘å_ ô¢hdÇm…ü‹6 &¸¬ás÷¾UkirZÌçÿ§«…¦±¥gsïÛyùÞƒÞlS-¦ßæô3ýž:õ£Ð1?t/¼¹4`ÔÕNy voê"o „‰æ «RY^OÂzü±@íÊÇ/GW•Jôûå…ýбuÆS»—ÑÅ™}¸žíÄʛ͌ÇmVIÌ°ÆY¹H~ÊÕöì™/4„˜>…5¤ „¼?øÆ’‚Áðwõìbc“scÚÀ +T¨R… Ì„¥1`ýG¬"¼ö’8ò­Î>BP!cÃ÷±‘”©ÂÌõáÒÍ…Xù¼ó¥¡®å¥y¦Øã§snÿ°–_Ö•Ùb-nñOkš&äëÁ/ƒ¿\àûïendstream +endobj +1147 0 obj<>/XObject<<>>>>>>endobj +1148 0 obj<>stream +xu”ÍnÛ0„ï~Š½Õ"Å’\K9&M}kÑ".zñ…&׋TI*‚Þ¾CIN[#µa€àÏîì·³þµÈh…oFeNņd³X¥+ÚäEº¦uUbã瘎ãÁÇ,Oó˃ûÝâf»¦,£Ý±6UI;Eˆ³ZÑN.·ÚˆÓi Ϻ–BÍä‡æ`OZÒI›OÁRkµ q ‡Þºòµpìi°õ„kF‘ÂzÍA¤W»çÅŠ’|µ;µüáÙy²†Ž>=“>/XObject<<>>>>/Annots 517 0 R>>endobj +1150 0 obj<>stream +xW]sÚ8}çWÜÉ! é¾¥™¤›™NÚmh»y¶ÚÊ’+Ùaù÷{®dc’N3€ìûyιW¿Sšàß”–3º\PV &ã ~iÿ|ý8˜-–ã÷4?/¨ ÙÕr¼l¾izt¿t9§Óîwœ.­%~nh¾¸‚Ý9¬Nh†ÿNÒ&\N¦|||ða5¸¸{O³ ­6ˆ{±¼¢UÂÅ/ÙðÛÃý_ôEºBy¯¬¡ªò$LN?”ÉíÎÓÊ®³Lzÿnõ÷`Bç³9ÞÞXS9«é“òU8aÓeôq~9Ïø©ïJî”yö²­0Ïü%x,[žjÏ?W[ _ÉÉdÜx™ÕNU{Ê•Ðö¹ñ4§é´ñ4[¢ðô w¤L0ò(ŠµàÂÀ„“Z +/Iùp$ÖJ³µuÝü2­¤AÚ•E,’ŸTŽŒ¨Ô‹¤6/« +q¦2L/cŠ10ZÛøõ$²-l®6ûà´6¹tzÿZêã”î"¦û`+v/*üAÈ)\|Ì„“›Z“±8³”Ù¢t= Ñ‚´›à2”xk}E±0àjc8kF!@_)­÷)»–{xÕ:Ù(-éÐ'XВˈèDcWä…2@€*š ƒHª~R÷¦y:¶„±%Ö¥åŽçr#j]ые¤&üR8QÈJ:â/îfM¿‡dà;Óäë²´®Š§ CÚ +Ok) ¬Éœ6¨Q|„MIÙn„ö²oµ=~aX¹ºÿÔˆ¼¥BUÖ(kø¡R>À­vàl ôÆ,CeúD 8ÿÃîZø„º·°ƒTm¿Žf>6 ¸C®è,óuˆ˜F¤hº–çøšý¤ª¶¡ìN=o+*,Ã}]W§GÔண™¹r2CW÷L«^0•Ì9xN…ÌEƒè^ýöpC¥¨¶cú±E3¸Í…45•¶ôçu9âØ â(æ³h;üÅYT²R²Çõ!¢ˆ&pA[]$À°ù»ÕŠ´vLYªË…±®:¦ú4~ma +¸±J] dÜ/@2dÀòJ¬A•«W‘Ê–À‡ûKuqwHï±´ã6Çts¨ âÆA”½­{É|qøÛåG'…;(jÏøÉ£×u®XËúϱ0ôÍ~ÞéüV•½‡OË}ÒÊ7Ü$À…¼2Á”À%°ôJ瀠ãF/DSæè”Æ!#"{Qa¾=GÅ€Œ½Þ˜¦›‰ò0ç›Úd,A¢/æ뉸A:"wð^¥ +‰)½X£÷<öxºDlØ{l÷o-/¯czw¹m„#ô‘‚Qí"Ì5U"ÙŽöšÂm€o ­f\›·e1íQ”^GbG‡â{-…³Ëg=0'Hä¢EAìRk6ظµdw&ÖîÂgB3¹7ÐM±—­Á(‹FºÍ€ÃþQÐïÇ%æ<š5àìñöë÷Û¯OO°OÃO¬2lçé]/òÎKÐZ,‚Ñf;0£¡~¶ †¿¬>Ü~ –SdQöРéF}kζB¤!Õî +~Ýmû¬lëÇ}ëH/ßp™KŸ9UÆ-­b¡'•Ø»ø3gØÔ/ê>p¹ÁüÊ›=‘­v”âãí J±Q,*ÝJáýκœrQÆ.ùôîH¬Oˆr£íéZÑP˜‡ ÄÝMˆLNJšºÅêÍ%è¿w ˜ÅÆìŠeK‹Ïðõu' èÃZ¬ú-ú”TRyè~R…NùÎn˜½5²Ða?;Ð$–Œ i%~Júü:»‡‰š­ÊDma*"Ǹè…^îñ ŠíCBNxÏ:/õ†ž†aóhB…ý±“Cp‘+_j Kc€€×m-°ê\5+HÇ­¬£}­ŒÃs`Ù*M'ìÇ,“ëP€Žß€J†j|͈o(aí\…ÇöúÄ6rMÓ›ûaHÄXoârŠŽ/a è¸/Bi±æuG@ 7öæ°¯8kOÖlN|L׸”ðÎÒT3ÛÀ< õps„Qµ°(ã­…¯€qï?ΠÇÅÔ8Nµ*‘ÊMm1ûµ=¬h\b¶Yv£ž…Žq%1øšisu¸\òuwÈÿ¦“ëï|9/W¸`ÃÐ场] þü ¦+@endstream +endobj +1151 0 obj<>/XObject<<>>>>>>endobj +1152 0 obj<>stream +x•XÁrÛ6½û+vt±2#Ë’íHN/;±;î$Ž«I¾@$h¡&-«_ß·)‘”“¶“ÄCàb÷íÛ· ÿu0¥ þLi~B§3JŠƒÉxB³ÓÙxFgçs<ŸàŸ•”……³É)^_Y˜¾}7>ï/\.Ž¯Ïh:¥E†CfçsZ¤„&Z$ÃÅJ°r$4Ý.(Y™µ¦Ä…Ð)ù•ð´VyNkcŸðäWt/Š¥Àî”Dž›5 ªœ´qí"-”VÎ[á¥Òªg•ËGùfñçÁ„Ž¦§ãœ=LŒÖ2ñö >áøŒ`éÆ„#kŒçõd%ô£„'’à™´n¥J2e°ìÈhZ8%(7‰ÈÁõ}\Ú8/ 2¶w¶•…ñ’ +Siv 쇫чË1-V€ƒy*Ë\²?¥°žÏ…#lòøzVC:¤{™äjÿ·zÈ`:™TVù aÙ +»¡5Þ¼„Ï›ž[¿" ņ.ò\9ÄÏ©½ZHQŒZÎdÖB(]ïÉ|INy9Ž^¼£)²Ìé>:=¬ý«’k¥8€…Re‘§Ji åœ2ÚucÀ×'sP_ƒ%8RÙ”–•÷ððl‘x»Ebp·³5èÖ_Žé}®’'vf`ÓÑÒâÍQU"©¹yDR_°ò9ð;8Çõy-"µ<„ÄúýöæÈ”EfJ'bÎpÍ&Ž#U®ÌÅlœl"3¶ Ÿ¢ûMlŒÅ,"9¸¿úòõêËÃCàýÃð£A,ZòáM/æÖGßB™E›' ^ÑP§-ÝJyóù>XnB‰4E2¢ž5vç;¶‚§ìbc( ëveø£ª(³Ü@•Þ;©ówŽL¥K¬*=*Š œo•JíU¶ágƹÆOnHɸW8+&¡çÓ/WïE¦džvB(…s¦”RáÅR8ä ”@ ù›P³\¿ˆßC\zÁhO"ÉÉUei¬%'ƒÅ¨tÒa&rW+Á®æUM¡À9Ö«(ŸK€”J¡Cvéjq¬‘ÈÁdpc´ì1j¸åy›ûA¡ÛGÀüຂl¿7Ú[“ú ,àCÛBD¶S ©Ê2¨’ö!36ªj8¾‘%݈œ¡›Cœó '8¼µ@6‚Ö½Œ +t]åeÊ:¿/(V¯i,¹k¶u·Ó–n–8ÙÜÔ‚J9 +0bKñãGkªò4yÀÄ’=47‰Fg­t¥Ñ)“r`¥H#°NK~/p<þ hÝ¢,¡#ËM-ËJ‡çWVJ’¹,'çþâýÇØ0¬C{8¢Ã5~°W‡/‡´TÞ5¶‚ lëÁ×u&[HG} ñÇ [km7Óô˜›ehž Šè¾Âʆ”]ø‡#T.1r ],4ËÎÁõ¨kÌMð­åkh-Uê˜êp%f—®ÛÃVí +TaöG¼úEœ!¶§ïƦ!…™*hš´P¯ÆÜËSÇíŒÒ–¡» ûuzÁ<Л¸ug “’}è™'ÐLž”0´!:p•ÞAÑ FuOo²9¬IÞOa¼Aœ»öä'TÇ×-{„¦5P²Ó;…µA#/U{†`’Û +eie¦^vdb}ßâ™À¬@I"Ûó³n壙ÀÉ>¼—Æ[3V\¸h{*6‹ ]+K›Ž‹aâ…gÌaFB•T¹¨ úY`±ô¨ ʾ‡ÐÏtƒ1Ϧh,Ì tOð +«ºh, …&+`Œ³€AŸÈH›¶²—Ç…xêkÇçfŽÞCuIx(¦lÇí»mcÍ^ôWž‘ãÅl{³!¯6À¯ ^7ê¨ +€£Ïþ‡öÊË Vkão +Ž–YöÆY¦i÷àêdžÀ?„¿M%ïúx3As;ßž‡Î¨a×!œz=Ž|{Iÿò­—õ–þ£’ßäÍõìQ‚6Η»V&ù"žd8>ǃ0(¡ÀyøüÃÊh;áàâ»DÙÅvÝ™êèû}µáLàJˆa£fm;)u½!Š|ËÚÚthí½QeXPˆèO@ú•”î!­4î#˜qÒàÃ; ŒÛOÐÃVþ-@p'ÄÞÜ"צÂxUÛ­ë༖§3üãü”fóp™¼¿øtyAwÖü‰fJLRñ\$< +Œ=j¶Í'ïþ×Õõl~6žÏÎqíÅ0xú–]-~;øÇIzendstream +endobj +1153 0 obj<>/XObject<<>>>>>>endobj +1154 0 obj<>stream +x}WMsÛ6½ûWìè¤Ìز¾"9½9u=ͤ±ÛFöà ‚"b`Ò´þ}Þ‚”DƒJ'c #»owß¾]}¿˜Ñÿf´žÓbE²¸˜N¦´Z-ð¹¼YãsŽ?§( /æ‹Ùd¿ø¸¹¸¾_ÒlF›¶V7kÚ$;Ó)mäø«(¶‚üÞT™òÚ+Oü H›L9]©„Jå +í½¶ÆSj=lh»‡ÓªvF› OÂð··¿þÁ—韇OÿõnQaõnóíbJW³Åd÷ã* 2ª¡T犤S‚}Áp ȘҞ|&^cëwvZ”ï»Âéñó[ÜcÚÖUeÍ„~·zQî’ Yœ°\ºU¨Y—ëÚ+‡„«¶´Å¹†OÚôåKHäÞFˆ´©”²µÒè* ø +Ç…KºBØA…ðÏÌ…OeÉaؔ¨*§6 …g ‚}Iä¶ÏÊ€|@J[›*Tuž¯Ú:J’R8Q(`¤63óC® ¸%sòuYZWÅicV©Šý·oÐ_¡7Æ)ð0§~³#ƒ˜ö„*Êp¯{%kôÇbQ£óœR¡ó(¤$ÏmãxP»ä-öB>‡ïÏL+k¤ +÷2&;T(‹¶Œ"òÚÑAÚ¢´Æô¹õíTî$Ñ·4ä¨GntI£fÚnô:¢­®ð:Åÿ{3zœ’Åù0þÚ×v_Ë y‰pîT…f!à]àñ•äas¡Î]5À ½3ÖáM Ù ºEE9Œº8¼ÙT¹b=ìÓw}X8`€·PÖpDÙ? ikyè°)ß6Ô6Ö—D¥¢Î1t:J‡Ñ†A€Íƃi,ÓÒ|D4 ]ï™(€2ñCQC…k#3Å49Óp+¬2žžý€½z…˜sV˜ƒu4÷AçŽý±Œ]ZÙm$ÃÖ´{\”¶e¿Çâ`;cæço’TI µøHå–&!#bOÜez—åø;N»ÞnyºÉ“$ð“ü±.RÒŽÅ ¢aMeNGðЖM¥’XééÙ`‰‰zá±1˜§™..O5ƒ ŸÖǶ›®ï{ Ããà.(yL†JB ÎîÆŸNË\ $§„¢]®ÝÂÃ×aŸóÈÇf}\µ~¾>/XObject<<>>>>/Annots 530 0 R>>endobj +1156 0 obj<>stream +xµXÛnÛ8}ÏW úH_%w}H±í¢Xt»»õc_h‰ŽÙH¢*Òq¼_¿gHÝ̤vZ` ÅÛÌ™9g†ùv1¡1~&”LiSZ\Œ£1¾t¿þùýb>DcŠ“i´¤‚æÉ ý(§Ï¼žâÅ›(ÆÜ4ŽæÍ€§¦Ëy4¡ÅrŒ¯ͦ³(iF<;cvÏ.¦ÑŒÓÄ<[.º‘Û;äùœ÷ºµ<;³ÁÉѬ·j>_z«& lô#wò` «âîÌƘ}Í2“dMá-Њ›ûvuqó~N“ ­6À;^&´ÊÌcZ¥£Oe*IÐÎÈšÒ\¥÷æõê+v,š#zõéWþ[{ʈ¬&QUùìVR%ëB£tiè³(Ö‚ +Q7u§dy´@•¼×ÝwsWë]u³×užñcºžÌàÂ*Õ7û›G²µªrIFÚ+eÆ'–´WyNéV¦÷î†t+Ê;™ݱÑ5®Ø(ìwB•Æº¥ke FªtcïÔ´uÔÈtW+{L)„¹ݯD- +ieÑmy w°Ý +K{YKçMr_>”Úº{áùåäÒ_¯ u§/ÊåÆ’Èu)[ûØÀ˜ÔQ3å2½3F–V‰ø%œÊŠ¶®3TÄ´¶,½wµ8SµL­®l¸"¡€aE/Ä_ —ÜG ;3iÒZ­¹ø¬õƒj‰|LeeQ8Í‘ÒA :Mq ÞŽ“rË EÆÅ.@òÔ6_Å‚ úîÞÀÒþ¸“$ø¾=/ˆl‘gò©3¯×Œçƒ×õáÙˆ]Ž\脵ålAí® +8}_Óý…ÑÀXΓÖvjÂ럪c%k»„kW`K_YÏ)Y³±%ánx(È}C@Y:ã}åœ{$Q¾E‡ªTÐ. +S*JN[ßï›-4ƒ«‘ÊM¨ +ÆrÃî:f+?4pk'¥œ4ƒû] åFÉõ­è¨…‰ŒÊtÐ;8Uº~ŽmÚUܦ²5p»Ýµ¦¹t³ã—ƒæV*g ë+åsFÀ=|Vµ{G@ÊðÒf²’n–2-MyiY§øI…wøbUºËEÝôÌè:\á +íŸï¡äû7š›:†¨£÷}¼ˆ£yó/¼æ ×5?¦XGphóe´øòÚ¯êßhîýÓÂè11•LÕF¥LÖYúÅojÛ]ˆy›2½2ñkàW×Yåí‚s¼0XÕÂt°óÌ‘Ïm~Ô¶öÞ +Æãæ3Ó7ÚŒïÕÆëeè$N¢ñrFq¼Äÿð”ú|ûñí-ýU므‰~Óé®ÀÓÊU&vîºÝpŒßðú®áæÐ9ÌÁ‘Þƒ>·Ý;ižàñqì›%|Ü»ÕÅßÿfdGüendstream +endobj +1157 0 obj<>/XObject<<>>>>>>endobj +1158 0 obj<>stream +x¥•_oÚ0ÅßùW}¢Rð§„>¶ëªi릦Úúâ8†¸Mlf;E|û; i÷PM‰`ûÞs÷\ç÷`J>SŠg4_/Ñ8¢Ë8/i±Šñ{†¯´ óËh<ë/Ü$ƒÉzFÓ)%ÄZ®bJ2Bœ(¢„¹Ì *™}9OžfËñ[†m¸ v]g¢·žI#¸ÓæðïÃ-ÍùÉzq”rÌ´(¡²"#©¬,#½!— Ú1ÃJᄱ”IË+ë÷äØ=öZ&ë+š¢_Öh¾¨Uß)lgÜI­h/]âXÇTÆLF¬Lmd!ˆ9gdZ…Úw;©¶uÈ®¼˜¢>T²%«KÑŠ»½èI¥³ô4´ωY:V”¡ŠÃÙÓ9Êr:yüv÷‹v”ÒZ(´>V­gLI.mƒx:G‘¹ {@|8S”B6q­6…äOn/„ªIcRPb…£WÉêꯌt0d…ÞX¼w¦—ÛGHaãû¼B:~¹W‚öÌŸ6¨µ¹ÞSµ#<ʶLÊGi + #ƹ°–à¶Kï•0$šWÔ†8% +ž=±Þ,Ç&ŸÊ?–¦ðM]ý˜r¹JÁöE£¶¡!<‡Ö <0çq;_ÖK Ê^z‰²Ú7ËgìÓùécÑøÆz.!àø´uåN”²´a{ÑZK} æÔSèÉ®;rá“*ú–4n€¯"4¸ §•èŒüÐaa™š®¥};3ó˜dü¿¢oo±ÕùŸÎ뱤vÑC¶ÁC˜çwUø¹ +t—ɇùv°6ž<誇3QÜ€a³”ˀŸ˜â¢xÓOÃP§Ÿ2ÆçäÈûíÊV¸zG1Ôº“á_xô«0Ff™PÁï“õªqÔt‰·ÓjNóÅ*\¡×_o®é»ÑÏxeЭæU)0Vþ–öÕÚí£8ºòûÿï_Ä‹q¼\áµ€Pó•Ïð9üüñNendstream +endobj +1159 0 obj<>/XObject<<>>>>/Annots 538 0 R>>endobj +1160 0 obj<>stream +x•WÉrÛ8½ë+úƒ]eQ¢$kÉÍY<“Ûq"¥r呈„‚”ì|ý¼Y–íÔLÅq™ zyýúuóg'¦>þÅ4ÐpLIÑéG}ÜÙÿúüGgG:ïÏ¢14èO£¡¿ÊiÞ‰GcÜM‡Ñ€ŸŽgQì¯ø)ìÐà|MùÞ™ù«ý³Ñ oŒ¦~ÿ+IëÎ(ãÏá– +8í.øЛE§w +}Z¬÷x2¥EêÂÅää¶RºVzCó¦,MU“Ò4ÅJÀú º;]|wÇãI{¼ »8ù ëʤMR+£Û—FÇþ¥Áâ¥7r£´fë;UgTgÒYå¨s)¬<ó®lëÛº7´¨ÕVÒW¥S³³t³ 2ÄXÈ$ZÙÂ’*Ê\R×2e÷}êÆ (œn• ëy÷óí[Zž¨HFÎêüöãÇ«ùœ´(dJ¥*åò4¢ÛJn•i,mee‘‰%³ö1ß“ '®„¾zÊ‘ÏDä¹üÍÁ8q ¤+ÒT1D"§u£Z"Wõ= ™­Jaxußf-wbô^QŠ$oRi_³ap­,‡Z­MEIçF¤Œ²Jâ^+Z«\S³ÇrvÞ›M{7‹Þ Ê&¹~–šÒhJe!têRè]&¾”ÝI4eº#™å`OÈþEx†,pàÆ!Ñ®I"­¥·†%"§+eA2Ôöí×Ö÷êfVßeRÛç\ÿ7Ê1AÌ=†1pÕ€õŸl$Ôªlò:«L³iu¨±’{-í(È šŠZ¬ JÖaiK°î‰¸|7«C€Ÿ‹ý7¬ê¦Q<£nn‘I,YVRj²¦àòA0MbôºaM"±2MM» õ‡Ì  ÊR!Ä +‹û%šiùÆ@a6ªr +Éé±+€Ô +…Óˆ»¶5<Pöêu03Ö S¥m¯°÷´_W¦Øw¶•ˆ.hÕlŽÜÊ;pæ͘>RPh™B¤‡ñX£|:H(0¥ÛeeÅBW‹²qÚ[¨ëñ@jèeÅçÑ‚ÄÏZÝÇ;hN à¡ôÙ>¿cñLÀ æÇ”(ÀQÊP4G'-ËÄcÐqEäñwIaFµâø'»°_ K&0¶*’w™Z)Ftuä7(íì.è>/XObject<<>>>>/Annots 550 0 R>>endobj +1162 0 obj<>stream +xW[oÛ6~ϯ8( +ÄbÅ’mÙ^P`½,CÚ]â¡š>Ðm+‘D—¤âØßwHQVܘ‹:¦HžËw¾sÑ·³˜FøÓ,¡qJYu6ŠFxÒ}ýùëY’D ¥óI”REÓq4i%ÝðiJgãhL“ù ¿ü×’ÖؘÏ!&|é ˤñdÍÚ£ñ<¦þp¼ˆ4Æ÷”5$Ý‚5ô–ͧöâ85ãQ +ýÅé&úß쯱»áTo··®(‰ÇѼ·;gQÉŒíÂÕxŠM¿r‚{kìŽGQÜßí­ywôzw{kìNÓNKž$ Ï«Š&ð}Þ®ÜnoÝ”±ôgy×…‰Îù*Ëõ wó¸ÀS¾çò^oYÑl@{½%Œ%pô¸ÉFBé(„¾ çÛå)‹þËkŽi¹æ;É(‰¦Ñ4Ó2wtÑ2™ÙBÕ¤Öd·…¡\eM%k½ZÞ]^/(ž°„a+b8@ã"ï´¶¨7ôe§‹Ú¾üêo#Ü™ñ¹®s©É*2Ín§´…*IÍ®T"gÐíDàL®‹üY¥4tP U±Xk|gª^›lî™­À¢•Ì;+œáPz93—PÅ':ý%¸ŠË9dæ¸\Ôt#ª•87øi¥®EiÈ(g§»Œã°ë@EÅö‹ÚÒíÀ»MØbwŒÔE&„žöÆ@úê@Ÿ‹:W{CŸ–ÞUw\j\Ux ŠZpÖJŸâ»5£uû*¸—¤  Ðý™­jÊœ*•ëCgŒÔðÆT«ˆaóxA™ÈswbSª•(i'4°Ç†DE‡Uº3kU–jÏâxœxæa¼ x™j´‘,À,‚éA” Ó4Ù–„¡ó°ÛsâÈ ½*¬À••·n¬$JÔ®Ûv{¢W쀠g#½hbÀ@M¦°òöÕOžˆ#Z0sãh¾ÏÛ/ÞuGWŽJ&Iø\Q%«ƒáÒı"¯@ŽVÍ®g Xñxt¿EØÓØcj¤íÂɦKm i‚Wnk¥,ó ,+‹¬°%€^œ^H +gÊù ×ôskv{4‰Q™àa?OOçàâecôe©2Q^N‡ËVòSÖnTKê×Oº³Ò ¼d¤ž=ªå¤j¸ùœ+ĴΘŽ€¥ËÜ®äL¨Nʳ¶¦=â&eþPW ç^ƒ%TÆžGDï¶2»÷lÇÉŒ•!HUa +£ËÐJÜwô0ÃÅÈÙ&2dÊB&jäÃîàRÆ]vÅ ´}ðUöIÓØAiA3æÕª::´‚[ß +Xˆ +¥H~‡OJ.ÿ‡:G0‚À› VÌRdÒÝʧ×U&i»Ìà(ìñåsÚUBvkŠç2l×h!ˆ†|%Ë=º­Àž—ŠÇÒpu>6“f—£ïÛrï:8åBêÑôõ,ÃÛÁôöUˆÔNl0:¡|T +,jü¬`÷C£o7¡zþ™Ó +Ì@hù­)´äÆÉâ¼ûÓ€ ý˜+Gd”ˬs ´ƒÒ-Àéjã¬yÄôaŒ êbY +å¦AýFq@©´ê | Ìl1q}jŒm)åè Ežs`}#Ûæ½?™…ú¦±[Åýå“ò8úÕ%Fé”KcÃLvR}§¨pkfw³×½kܹÅ~ +è¶E†€»~Š¥ïØìô°×p¹ ƒE·ƒÐnFšJ€7¾´·×w;ACv´Ûr”\JPˆ*‚ÞR0¿:uï˜ß©Új´I¨ìS³T†Û=L£Jô¨{OŒÀm¬,j3M1¢ßºÞz¢º핾÷IÖ…Vµ£ß~+ ONw<9íyV! "—bütEݵVÕà€ÒúÀ+^0ëp¢­KI×¥eÖ ‚Z:zÎ%Tß³ˆ0¥œ#âh+Xqè¬Â4º.¯ÕHK®€ü´V/î5½EÃø 1ö·Â¬‰ã>ôvDÙµˆê^–eDQÂ1‚´Ð45Rƒ9#ÆŒt9ÐÍB`̱£µue%‘×ZÑŽ6„* þ7›mDÃá€ÎÞóäC(W\cÄsS % Lì0í±* "ý™˜gɪ)m±C,³²@R°ê^mÑà2 _1uÁT7A·ciV9 +Uf•ÆâH s´xùÕ%YS``Ë@iP™Üp(ùÙèDmk?ÒÅ[…Ù®gj0Ï`WÔvnç˜WQôC„Zya®ý$¿£™gÑ`5æ[r¾’ÜE¬0Õ´Óí¬ìëwé°/̶‡t[ãž[8†ü ¾öz?‹ÿ?“¿ç)ÿn?Wô¢—îßçé ¾{y—J÷&§Ó(ò«†²僛7ß¾¡ßµºCXè}ûþåºßE5Åkþ|LÃÙí3ï]“^Mñj‡wº|0ñÅ_–gœýßôUendstream +endobj +1163 0 obj<>/XObject<<>>>>/Annots 553 0 R>>endobj +1164 0 obj<>stream +x¥XÛnãF}÷WT„ÆX´î—ÍÃB¾eز"i’]¬ƒE‹lI!Ù +›´FA>>§º›4¥d˜dŒ±-’]—S§NýËE›ZøjÓ°CÝ…ÉE+èí[¶Å‡ úí`L½Ñ¿÷A›2I<ÛÂéêÛ⻋îpt©?J¨×é}ÿ)¦åEý3îú0äžå»o†ìoÞs¯Ë¶œç¼[Ç7«‹ë‡iµ¡vÐëvh€Ðúƒ­"P‹Vá%ù¿5œÎz­ò#ÿü–?ª4ÒCãþõxÔx¿úù¢EÍ62‡úÑngò8ÿ0©N׎ÎV4‰÷;ñ¿É¿ç_´ð4/+uç°°èµZ­/žžÏoߟžëƒÌæ·öüõCŸÚmÆ¤Ó +†ƒ15;£`4èsB“Õê~¶š>Ͼ¡Åý÷§‹û;šß/ž¦Ë%..9ý뇞?Þd$A˦¤³Hf”k +‹,“iID Jå¢L½º»G]ÐR$kA;mò+Ò©$½¡ü€ƒ:T®tj()LŽâˆò¬ÿd× ^³3zéj'I„¡.Òœ +#ñ”=Ê0ç_sÜ~óá‰Wœ¡BEì®E/—*®dZ祱—÷.É°LrŒ˜ýpùÒ é{³Ùî¿Óš#Jd²4ŒÂv:Þÿå>SiŽ»"JTzêý’beòàkæZ·¹äÆç 0/2#¯¬oàÏÎ[[“«8¦½6F÷øPæênT,íŽÝëHe° 3…«k™J‘ï8@抇é¿6¥üÐBúÔó@àƒ­‘Ù‰ §ñŒ´å|—Iª¥ññ­É(b—y³Ó :­6RB1Ðâ(ÔsJb–í¸â!ÎrF_&)_De p½*<.RälŒ•}ø4‘+2*كαÞ"Š:¿Îrcs(VaTº-™õr©³¯©êËû +ýM¦˜)E:Ð Z×OÆ + Ðó^¦Ô˜I4Oöé,–™TÛÝÕÝi5ÐÔx:’–æ±@6ñu‰ƒTã‘Óƃ,cVXºT¯Îœ¦âUmñLÙ„¹ã¯ ‚ 1$" ÿ 8f§ t·‘ >©}/bËhÆÍà™r1;‘‡;fÊXö„#ÊY ‡JQb2²š øNS +Ðìb,0c–2ÏÙë)c‘¸ÿŒæâ‹eìçMýpº3,»þKÑ«ô Ôw¦2é¡÷—ekªARàP¦èeÔT[Î*×gé$ ›ª)®¥ÏQ˜ï”)Õ7‰¤ƒ0¾¯\FƒRjhöLóÅt¶º_ÐÝbú~L~˜L'7÷ôð¼ Õ‡©µföÏŸbsÐ#8zÁX5w"ÝÚ&D0¬4ûøøH&;¶öBëƒ +jŽ N ™o1M 3¾h…_EÆÅ=ƒa¶ºî`BúÆ0Mò\&{[@ø{UAuêì3½—YÎ*Å´à‡ +w¨3sRSXÖáÌ»­4 ¢Äð³#™e°›@)ÅÖ¯ë‡iæŽà;iå:Ç¡ +Ešba.DÊìcq”Q@+ØóD({Ôìe¨6 +–LA°|R¥&‡’ʈ+$Ë쵎evp-}û©¿;måó 0\ž7iÓòa¤úð¯Óš×rºUø ª¤§`Dhp(K-«séxà fHå òÝÿ«ÒÁ.b‹ƒ8"®³”\iPI¢eY |–°ï ¨¯™p@2zð +`Åj]ä9D¤€ÛdJ›Î`¶à^?ü••a)cÞXª ­às0{½/öV Y +«¢úäÀï©LTØò”7 +Q&þñoíÓ/‘AAÞpšºk7ŠˆÛIØv3GƒÖ3¤lDu¯ÖhL°Ï£Aãê©”ÑY%áЊ×d‰]Ñ \¬Ë ©Œ¢FbG-›rˆc +lM[ëÍ-Õ‚c¹vºûÕ¢±ÑÜ„b}$Ñ‘Ú}>âÜáùŽù˜Ü>b‡×£³wËS×kýù¡Ól cm7‰P' ZÄnOÐÊ +µGË»›)Ž„=Ùl¸vËáZh7d|Æò }çËšª3ç~pW3Ê +#/e,3vôBšÜ’iè(_NÄ'n&N;=måx²S’cfóVœÊ@ÎÆ;vÖaMØ1ÿÏñÒ€Vó&„<ÖÜæ vâ„wVû¦si’u€åvã.—o0—@90iíÊ-Ýø7*²)KÆÙ®"µuÌ‘Ùj›~IÛåÓM¥Ë6¦+‚š„­CãÏvUr«3w4dz¬,pM}`5×üòäͧes1¿emDˆÏ­ô¼Ï@.hxþ3§Ü¾ƒÝÌC®’÷{‘Ù^±oaƒ…UËd¢±ÜYßvuæéë¾~Tù™ EH¼Î9ÜG¾íþB0êÒ`Ø ºc·Mžn&àœþ™õðN‡ˆ<Í!(nÒãEÓi[xŸÿŠ­7ìá-¬àS½6r¿ºøþâwr%Cãendstream +endobj +1165 0 obj<>/XObject<<>>>>/Annots 564 0 R>>endobj +1166 0 obj<>stream +xµXïOÛHýÎ_1Šît©DŒí' qRôÊ©Ž¤íII?,ö&qk{}k‡Àýõ÷f×›˜H=©GUè²?æÍ›™7“þu? CêGç¾çS4Œ¼£!þ⯖´à Ý~»ûí ˆ/¢Èp8§0èã§]e49h¯±{<ò‚önkSßzýÖ®ïF°å¾é%¦~xÇVâ½—€¹Ã~è¸Ã·~„£Œå„Í‚ñ¶–9áȨµ×Zæ Ømû +_l¯± ÖÚWÛkвCRkÝpø RÀ¦ùx8;lV|·½Æîñäس¼Ë„ƒn`ÃipÀlú x#æ‰fo·d´'¸¿Ýk-±¾ wï|zpôt4] ¡¢Ñ¦‰IŸ¦qWTUº,dB÷Oô9-µ©èzJµ"A¥N‹ZjZ¦²¢z%©sË¿êP)užâ¦*ð{e·.¤~R…ìÐFfYï[¡6-µZ—Þ›éW€a ¢×@ç4éNÖe©t [™ÐKIÅ:¿‡Aµp¶+{u‡¿2þîM! Ö¶EM+Q‘Ði% JÖ€¸4ù 3U沨©ÄÉOD~/PVÎj‹Åñíg¶R©\n¦Ø|Ûm­‰'c=K«Ú£«å +5g +‡ìu˦ „À‘õÖP%rIí!¿e©Bª™PwI—qœ¥pX+Y7~Å*ÏE‘<çµK1 ßóë ²6ðšKȧ¢–æ^ Ù&­W„«iQÕ"ËpÙÞðhŠtY¨,S&,ÈG‘—™‰ÁJmð:~«u†Ô“$bà*AÆJ&§›O'œ-È”~H½ðØá'ðñ~wë•j©¨÷‘´RõÏ•Œ5°÷bêHd“ESuø +Ætñ*iq6»ß]_¿ÐÍälö±H¿ÐDjDÿl¶MÏï‰ ÙÓÿÒ¼²ÈàY+УÈm;¦RG6®Š…¢À¸ÖÂAüÕœ¸F8Oiöî–Þ#UõïðbàCÙ(EùÝNœàGX‘Êÿ¯…Á$=Âß¾àÁ +eS?4–.X&‹L,«Ó™ÿ8í¾ïè~v¦à Íæøº½ùíf>_•=ƒëÅɬb–5dòtfÏïß;¼¾¡‹»«O—w4þ4¾z?>IooîhúîjB·wW×ÓË»Ã_çBFqŸÎܮˋïbu>ß+‰_mY™ÊÙ©…óæóÎ뙉ÍYaŽñÉ:ŽeU-ÖYöÄ +F[4k[Ùô:¨½®Ók„¤á +É8IXš®å†šRªè!F÷Zµ gªÚM´iBçO”È…XgõaÓVÔb!5ZQ–¹FÕ +ª]ñÁ”ÛlZžÞb°:]å÷^¬ŠÅs#]>¹k¹xÕó¼+j"µGã¬RPT4£®… &OzÐ&#®ö¬ksm’ÄyŒžÿ7w¤¬fsÏÚ¤pª\±P«ì§Ñ^ÙÖÍúŽK…ŒÑ¸oh¶$î¡ð¦™¶B'e¼®!òÝ”²hȾ|œw¹pŠ;«ÜK’<-à–5Ú0»ÕkµÔÚCšÉ%wSOzFô -Ù²‡aÊ’jŠÌs{ÌÎß4©7§{ r ~FýçÌþÖsʇÎÈÆrxFOro^é&±I“W,cKº-³nÚé…ÍOv”_a6Ð?Ì=³áÜ›LáÈíSÏ0wƒvE“©–u37ì9Ûm¹¶—V¯Ìùºâì¶yþ ²5ÂÃYRjµÔ"§•RßÈœ­Ú…Íæ˜#Ç&@ò²zªj™7a¶t%ÓJˆ#YÇGæf,ʽ8sZˆֱхÈœ +y†éç»kpAHphÐO&i`ÚÀç¦ÍÝ4Æì/´ÊÁºQ4Æî»d1z€é)\¨ÚÖð¡E¾Ý  ÿšÐLQºRb†ì¥mʃGþM‹Çè+ac´,…æü±¤Û'ÏÝפ‰ó¨FtJ ‰Š23½ ©€–:«ÆQ3Úšp² B!ö B¿ 5LD#‡¬RkÄÃzgld„.d‘ʤà +ƒén­YIÈ–l®•Á€)ûen®=MrZÇ]áA|y^5ªm+LÍÁ=è]-kFÆFžËß¡qÃ¥K +ÑVx¶]õ~þLWÒ0 ó¯änŽ<Ûk"3 ×­¯“?–h™«îxÈÌŒ&©ýܶ×D¬ÏøHl$3ˆðŸ +#|ÖÞ(²ŸÎÆÎÇèê+Dž.T¼6yžá»=w¥7ô1ª粒Ápà #ü/_„üÒåôàƒR„óendstream +endobj +1167 0 obj<>/XObject<<>>>>/Annots 567 0 R>>endobj +1168 0 obj<>stream +x­WmOÛHþž_1Â5Õ%~K⤠…WtÀåÀÒ©ºØ q±wÝ]›$Òýø›YÛiä´À•)‰½;Ï<óâÇ_[.8øïÂ؃aÚr,ïl>®o¹ÞÄòÁŸø–)¸Ã‰5¬®¸im_§à9®åm­n_ãêhˆ%Ù:Öd‚¾êõ@ŽÁ ­1 'cü=rkŠÃ}“X½Ùó-·Úì¡Ùz´ì³!¸.÷?C™ Ân°@<™$r‹ˆ50|ÅÒ,áð>ø‚¶^eÛeQ™ŠE΄2M™ˆÊ5zt¨â,·à<Ü­!Gt–eJ¢Ë9p‘«˜ã}YZb€¯¾;ÀdQ×æyh7!ˬD†,iz¹í† &8³±`IßkY€à<º}1D|^(ñ@ òÞHÁßáæ8\P¤´™G½"l(ëåBbyÈ5ñ…¥TVÍú€’éZÃ}odMð©ïýbßÅÂÖ‹ +Ïs±Wè>ܘ¼L,4W˜ô¾Üd“Ò²Æ%\ßœˆa_ šh} ··A,å=(4ÆÄÊÔG¼,HüÄVwͽèÃFÙ5®KM+”$¸ˆE±Ú… ‰!}ßÁ°‘Bÿêë£PóXŠŠ;¹¢ +Dü)ÑsŒuÀêÑ­ŠÒ.¿Ø¿« VµeS“KöÈAù’SÎ ~ͤl¬k}ľÂEmâ7½Xs@z÷º:¿>¿ +>ÌæÓôðV%OfÁéôsDÏÄoûŸöÓý¨¿ÿqÿrÿæsób>M²Æ½ëÓ›`vLÛØJ&GIFý®s¦òvµw9üÁy†ýÊlÝÀ 3èÔœ¿ý²:D®±uføôoÕ€zycÜØÌÃ…„vþëßÑÑ {x‹¯àPGSû‰)[gR&6fÓîxϺy hºš:‡i‚zñ,X¦×€&ÙÔ.´²M/Úš¥wÌ07O†ÝY™‡ß’óȺ1rYà1Ø~­ bçiVÊx¬[xG¿ºªcÑ—:óÿ´f™>F±‚âì¸NecÖ/ï¬I¾´sÏtqÇ¥ð_‘¥£ÊÚ{“õàMÖÃ7YÞdíÿœu§:Ù~Îz®d^žé1Í ñ›)ß(OÙü;½ŸÄw¶Nï¬PŠû†Å^ó>UzƒNÂRlà)ûÄ’‡ð]‘Ã9°DÍÈH”8‡”3¡ŽØšMðò%¹Rçµà+Äpˆ‹}v€ú“tH¿"Ï7t.4¯ôÚ'´WÛZ°ï‘ìþ‹H.5\¶çà3dΠÙÂê'­ehÄ+çü2ÎÀÕ8¶ Xpœ Bª”%Érš­4+p”§4»/æ{Ø«3X ½^âM8;¿8Å/T}–eAÉ<-4J¤DK¬ffÄ¡aUBžåH÷¶¨E8ý‘,õàxMšIÞ)’Íä«|cf뽫gÔIíÒÿvÖÚÈmkt'zÐkó´&IÔTcÅMäUŠbRE¨yJ»%- Á(†)ÀZ’âFë¯E¬xŠ:¢« &1Þ)»Å>›TZÙõñe`2Œ/>vÖ{vy<ƒ¹’_x˜Ã‰ ‚2¢Š’Þ¯Múc•ë³ý1ã ‡o"´o8 óÓ õWë_§7µcendstream +endobj +1169 0 obj<>/XObject<<>>>>/Annots 574 0 R>>endobj +1170 0 obj<>stream +x¥WËrÛ8¼ë+¦rRj#ÚzX½lååĵÇ›0å=ø‘„„´¢|ýö„LÉrmÕ¦ü*‘fÐÓÝ3þÞÒ9¾†4ÑxJYÙ;OÎñdÿëÓ»Þx¶H&4Lñ»¤ÉxžÌÛO}æõ4“¿›âOø°5cÛd>ò~jI«Þht3..æxP"î–„OqÛÅhˆGÛ8Ôx1{|ž1%ÓS;FÃÉã¯ÒÞÙ儆CJW¸ÿt>£4÷×>§4ë_'Ém„£Ï¢\ +Ê´¤#ÛT•©ÞIÊŒÎdåȬèÙM­´“5ÝS(½~Fþ£E±#©°ºN(Ý(KøÞn¤&A…Y«LÏÓ¯½s Á4ïWíAX'¬Uk-sr†Ê¦pª*$qt~…V¦.9xaDNKQ!4™šVBdî´=}ĵÃéW+Ú™EøÞ(TÂßðè襤\®ÇE²¦”X/¬Ñ/ˆO;»]9Ÿ¸ŽÀTs$èÇn[]G¸ž¥A§è°öîyBWšìè»pŒD‡<匭ªª’ÞØ;Õp¢FÃ*¸…rm£¤ÚVªö* +JÀc®®/©}Ä`²3þ!i)Ùˆ–»`C©ô´=¤]« lx N¬äë¡òÜà1'–lÃá¤ã)ÅŽÛÖ÷FÂÜrºWh<7€äé}šÞP)³ÐÊ–6¡·"ÛU(2=„}Ã_piÃ3Ta­É”Çé˧¿|Á˜"s | FóxÀ{²`€´ 㧣ÈL)µV,Êú‡B8ýwº¹y×Jó¨)CIjÅ5ÀÅÛûè¸ðX E»çqÆa/,¥ÐÞìÙvÑôb5™÷cÑ%ö#L}Ù†wò`ËÀ~Óø¾–&—iÁ…éŒs14‰ŽpÐN™Á{;­ô(ò¾±vgoQGtÞJs8Åÿ|ó1Mgþ_Ï/?¼z‰)×|ÅlEoºã$GÄåƒÙù"öÇ=4|2›$³é>/XObject<<>>>>/Annots 577 0 R>>endobj +1172 0 obj<>stream +x•X]oÛ6}ϯ¸ë“ÄŠ¿?ú2¤kƒµ[·xè ´DÛl$Q#©8Á°ÿ¾sIÊvØÚÂŽ*‘¼çžsϽʟCàïæ#Ï(+/ÉbAdzÅÅ€¦³A2§ÉbŽŸ‡ÃA²$#iƒ‡X~øˆGóÃÃ#,8÷è¯.Æã9ö™Ï“)•4ñßþ£ »‹7«‹ë&8ŠVÄ7[Ìi•û“´Êz«¤µ°*#UY'ŠB8¥+ªÎ¤µ¤ð¯¢n Y'kK¢Ê©–¦ Lç’oï¨k™“0º©òËÕ77ÇõÈ–ë¬P²ráFG÷é>kêìì³Ixp@K†0L&ãõGÓdïUÞÛh#E¶£´g›ºÖÆù`²r2s gL´U²¢Üàˤ—¼å€úÈÿ‚÷ø«sMüg˜bzM¤#‡l®ÑµQÂIjêB‹œrep–6OtnÞ )åµF–ˬ4ˆâܳ#œyÈÙkú-ìÏKCä´Q…´çVŽŸG{km#™.ºÉó/FUNšw|/½¤Ïwý_¿¼íìów¼ “gerfËç;¾L»‘Ó$rˆè©³3§ MÀÎX=Ž‡:j³ß2;÷ ãüŸ+IzWèu!KK²Ê 3,ËûUeP˜ª¶þÑÛÒooŽ.jG{ [‰¹¯EÆÂõéYK·—²j£'^QÂ(ÝX:ê)è?ÊÊ&ô„%pE_U•ë½¥ŸV¨˜¬hrÎ~ËŸœÓ«›vû$ †¯j5t{‹å¿ÓÃt˜,^ùRkw]N)C^Qδc¹H}nP‚Qa{z¹á«xäh–L˜×•§À'”+x§÷LÝ}…ïýN8Šhö¸/àHS”;„’Š4&t¨Ö5`ç²WEÑÁ éËr{Ž`:ZlÈX(¾5ÌÅ)ä.W¢Ð[NñtLh O×ÐF<¿ÅÏIF,sÿlTvO…Ö÷ìds'ðTûg+ùVY‡Ñ«ØžƒgöÛÄ}üñÓç4½ó Òômc t÷VWÎèâN:üWø9M= 4}_=(£+–'‡u;¼§Ý”s…Ó¤(BnNò"Š½x²ÔX$„CGª"ÙìjÇm à ñ— |ãXìyQå`¡ ­›“gêz‘dVcCJè£Þ#lsEw¢\CëUÚÁ Ü1N¨€Þ+vŠ„V;T38E±3xÖ“nô̤6^³€ËG‰‚÷ä;˜Ì¿'·)Æ 0'.«P˜èdu° À)T©\èz¸B!Ä8‘ŽÒœä^l:<­µÛqÌà·[:DÔ‰†»ÜâŒn¿z÷ÆwÒP¾}úÞLºì=:‚†Ó´³Ãip7»lÂZñÀçgÖþ‰‰éL/½“HǸÄmÏ ö3Šï¢°l=¥ðó¶ÁPžÝï…²2]Bíj­ +åàtàË/Xwm†‡KT ×_`æÑQ)¾ëï¬Æ¦£0ÿ«Æf~Œ¥4´Íæ@Çó¡€'^¸¸‰´Óh4i/†æóÁ99é%+GfÚØT>Ëàe®×4ZO&sÌ€¸a˜ng$$^ൄ§JÞõHJ›)RÛ + † +xµŒŸg¾N íÕ« 3X Œ>/̶±ükÒÆËà¨1mÝÊ:uº°ÿ®ÐËþ²ô²0Ž„‰Éê¢á9ÞüD®¡Áµµ¥æpóå+WBK/oè@mW’ÇÒƒóúу{5\ÏfFÕgªÃVÀw¬ˆÃëM¸q¬þÿóJHw £<ôæzPL;¯cq®~}}Íí ‰³‰…&3ž6¶2©¤»æ Nùgñìø±þ,ù-·'ä·èúÓd¹XRvx‡¹Év®©¶ß°‹hïÃÉ¿ÑlŽ—ž%¿‘÷în>¿¹áø^%éÎqˆ=‹1õç¼ç½ÿÞê'óI2ŸáWþnÊ»½_]ürñÐAÄendstream +endobj +1173 0 obj<>/XObject<<>>>>>>endobj +1174 0 obj<>stream +x­SM›0½ó+æHxù†=nÔÓV­‚Ô ƒMâ­±©í„Ýß1U6½ôP¡ˆhð›yóÞóï Ÿª²ú1ˆI Ež òºÂÿ)þ ‡!Ø7Á×’šÒ”¤qe]¢¬¡a€¸8†¦›žÖRêY¨#ìš„á„Ú±#½VÃZ¾v a¢†ŽÜqcâ4‚P øŒ/ë¨”Ô œ±ÒH7v(@”–$÷°É…t€qÁ× $‡6üÚîVH¿A¢ŠÔ^BD´iYmë^.ߙܵlÃÃì&5ªƒ+!Él{?*b’=&¸:ÒÍͼ…'zá(1WàfÔ•»õˆ1¯çŽÅ„àã}´A„ó²Ùó4iã@ï‡bò +íÍÔ°Eø“z:ÑNHáÞÿGSB&,íP};i-ífÙ•|Øî–@øÑgëç…°im7ÿ, 2?…bz¶ð­yH}V{)¸rö»­G·f+¿öÚü®4Œ›ž–p-IfÜöFt˜QÔ ?Ãz„Ú°@ò#U(ì‘/[øèoë2èÞîH0>гtd_o LJ¼¥uIQ’º,|OÏû'ønô ïÞŠþ<â¢K<<6ºB¢*~ôçŸÅѬáñ&=~ð kÞáWÍ«œTxß—Àç¥/}n‚Áf;Úendstream +endobj +1175 0 obj<>/XObject<<>>>>>>endobj +1176 0 obj<>stream +x¥WÛnÛF}÷W M‹ºX•Þ€¦Ñ<uyHú°$—ÒÚK.½»”¿ï™]êÆÄI€Ú‚$’;3gÎÌžY=]Li‚ÿ)¥3ºYP^]L’å’Žov‹ Í'ÓdJóeŠï‹4IÉJ*±vB77éáÉlžÜŸÌæ“dÑÛÜ.’—‡'ˆ˜Lú·½ÿ4™õKgp¼¿Z]Œï^ÒlB«é’VE0ÅüÅï2k×kU¯éÞªÚÇ/&Ó²r߯‚é4¦£›9ܯŠojoMÑæ^™:.šÓtÚ/š¥€‹E«r„— ·1ÖS!]nUÃ6dJÚ˜yƒ»OÍ>tcchÚ)¿¡·¢ÊDBÁS4Ϥ;³äèMo"°sóƒ×Òš +8ÞþùŠr­dí92®Ù=9i·Ò^Smp{#ÉàÍÒNt$¬ië"¡;cÃ+±ÐIXH¾Ä–EÕhéƇ°…²2÷ÆvI¿t¶HæLÍ_×ä u¦Eœˆ&} +‹t,´tÿ3~QÖ1R®{¨¥,ØP΋º`ÖýFøÀ˜na@!ç*rß +­;*ÀEÝk ¼“º¼&åé¡E(,D¹•* +4†¨)“~'eÍÙžVη‘ÿ©ÕÇ£×f®s^VI_°$Õ°˜þRi¼qÁø +®ñQS#œ;]ê'?zik¡é2°7š› +H‹Ë„Þ‹žú›¸¥SmÃìõ°JLönc'š97ÜúZƒòÖqLhh<«ÉUY‚çe,Se@•Zn¹Âûe^ì6*ß„øØ­.Hó8€HðÇùï}“Þˆµüð=ÚRþÀã» ½äM7Mæ73Ín“%>Ñ_þÞ¯µÉ„þwïjt|HBØb„ÎFE¬A Ø5ê9p¡›§£1æˆÖÒS°¢§V¶ÈÀ ß)á}ú‰[{³Êl%P<˜ì³Ð߇j£×ŸÍL@;~¦ñVØq€2ÖM1v¼Û#o{µí™KƒA´Ð|¨¯ÙqqÁ4Õ*Gz¬!X"3­ÿ&ò)¦ßî²}׊½i\ŸAZâÖl}6ßÞ••®­N|¡Z^@W¿äk|÷|ª¯£^}c6ä>Û:;ÎT j-ðº¿jèêù:Ÿ6Ê™õS輯XŸvÉ™5€Ô`ýð%òÎëлp8æ»@A¾ÖbýÔ‰›ßa·X)œ©F.¦a)Z ¹-ãÈAï²Á¦ RÓËmOò]#¯)k= µrõw*,”ÝšŠ“оËJ¿OªŸ‘mÍUÄæ„h#°ßÐâtñȲƒ° @›â +I+Om…­ïÇcõKhÌJLevR¶(ƒx®‘¹*³Á¾¬E%Ý5“(oEiëÂ@Š0 z¹±<8éþ×Õ´º•n¨Íïx(ðôë ZÁDnñ%“ý+ÂÛ)­ç‘eƒ§1VØqšŽ"Ì_”ÛÃĆ„íQ«pÄ99d0ð£A8%¢˜¼¿H #V™BDLÙ\KQƒHä±ß8q2  •Uáœ>jx: þKLÁ˜-ºäGzS.¨J¦#Y•Zo<Ô@µ,=dÖ­ã CÎÑ”(¤3þ-ÉÅ"@÷p,A§C•)$àVªæ©*é’ W·U&í%šÂ©5säÍ l8fD bƒ¬‹Ý‡Ó°7Vð{õ‹–~ +~Y‰ÜwÉå Uthľ2V6ZäÎœ¢Á!¡„—}ïá€fZ>JÌ}‰3!‚ 0^9ž}u9uÇIrÏsŸñ÷8Ã!'T:’•C<Î7Ì9¯‚–~Ù× 6Ûz¤Íuõðœƒ3Æãa;±g..º´A£r˜ñÝòx¸¿]â'G8ÞåwÃ<'é?øÈ1OÙÑëÕÅßÿýE Fendstream +endobj +1177 0 obj<>/XObject<<>>>>>>endobj +1178 0 obj<>stream +x•VÛnÛF}÷WL‘¤v€ŠEêbvá EÜZEQÄyX‘+i#’Ëì.-»—ï™]R¶n-ÛâeîsæÌ~=ˆi„OL³1%SÊʃQ4ŸÓÝ?³Æ͈&É$šP:Ÿáz~%d$­ ;¢$žEÇí›xšâº{ÃѨýך§ tƒ™1”[ÑÇ<Æéq4ïì&Ѭ“Ñ4Æ]°¨îByÄß$‰â¾»7‹ƒáûcŠg´X!õé<¦EîCÑ";z+—Íz­ª5ÕFUN|ëe!Kûzñš)ÅP`ÍÁxM¡{ô±’´·ä4å¬4ƒ‰ JÊò[ë„q´¼E.u!2–pi%eº,E•ÓN¹ Ù, +²™QµƒÚF8ÈgÚä,ÌAÀuœDcv-̺)e9VÇ{˜BÐü@¯ü½Ï‚Vª“Ue]H’7Â{ĶUÐ7ÕÚR©ÖÄ)OBÊ#:æŒã(MÆÈzÍñ çÔþ]§4te=´âZ†¯jzå‹Ç%‹CÉXóÅwÃ¥ªî»Ô¾Îú ÚI*ÅV’m€_ <þZ’ñq6VšGt‡5ÞÊiPÓ™ +‘E>ªG¼3ÓTmCG¸¬œŠ(цJi­XË.¥øA¼¡³A¼«ˆï*÷F(¢ž‚p˜ X»Õ!{k,‰iŸDQà÷âeL/Ç4>;ûþÛ„îÐ9èš5óMC³Y±³N5†YêkÆ£rý©x^1*|Í9øÐ̯l$URæÑKtÆ麖9©Š€QÌ ]öÊ‚.†À5¯Þk¨Õ½|m›ô„þJÇÿÐ+’ÙFÓFµ=ݨ^á‚dÂ’¶\f…Â<ÐpXèLmÝ°Ø¥=‘ç>ÌûJd’T}Š¾ò'¥e&¬ënÇ“ U¥°ÛS\EÝߨgîBX»C5N¨÷â­.…ªN?_.Î]|¦—§Ÿ~«ÔÍgº”æZšÓO—¢\ +9F³Ï=e$sBWWgm+|ÿ¿I¾nœãFòćID¡„E¹ñl’¤tuÄ´½]íÕkÜÛhö,>åÕ·¯÷2¥Çž’– üWç«'¼?U& båžÈ;?aá}Ái^ŽNÀl9Âì)ü›?u&Z³2ÊÆcîÈåXñ™!£Ãç!"WƼåpžÎf‡fàça*=ù3B±X[È‚˜-•ÛBŠœë¡™ž”ºÚ=À#‹ôH/A†-[uô£Pt ¢ò…Ö[Âba‡y$'Ì0íxù°Œ‘¶)xËù”ë¯Ê¶EËðIª[@~ò +ôDè Ï“ ç˜/¢+l-ª¥æõ´aÂíÖnÐBjÏòmÒC鲡·”‰:Ä B­¥A½¬Òv`E×Â( ¾¹G_¡z÷ƒ$Å ƒ%焽¨4–rM|0?>lü½ÝßKÈêývµ©ì!'°6¢d>Ì62Û¶ÄxW—p¼¨D)=1óVk,¥â¿®ÔŸ`%à“B¿ðï‘l»Èðˆãå í‚ìR¥¥|˜ì·«$P{[K´°Ø7AUØi¥p¨>­Œ.»=ƒPÛÛ¶*aË° ‡õÃ[é¢Ð;N¿öPlw'yãŒÈœçí½×ÿ“ü@<גּ/Ø=ÿýñ#¾Ïÿ0”nÞžãé$šNbš¦i4û³âåùÏoÎéÂè/2sôVgþøæ ƺƒxŠ#ö<¡Ál„CWþÌq4¥ÑlŠó:‹¦s¶ðnqðËÁ¿mp…³endstream +endobj +1179 0 obj<>/XObject<<>>>>>>endobj +1180 0 obj<>stream +xWmoÚHþž_1ßH%py HýªÍµU[媻J‘N‹½À¦¶×ÙµCúãï™YÛ8$§žªB0»óòÌ3Ï ÷'#â߈æcšÌ(ÎN†ÑbA‡·Á‡!ÍGÑMsü=šDsršÖ8;Äíö¥>;žÛ³cœ¯¾dv4žE“gfß._°üúêœFsZ®îl1¢e"ž‡´ŒOotYš|CUA…3y«‚Tž„äµ{ÐοZÞ¼¾šÒwÙÈ`àDýù‰ÅéXü¹—l[hÒĨD:ýP‘® ìÀqZ‡RøR¹R'PÇ5 Dö'ú MµAEÁÍ'ÌèØ>Í9µŽ^Š.pbåâÚrS¡»Ÿ1AÜø +ém½´JÊm¶cŽUøB\:àóõ·V3çÙD/-bèºÓ*yÖüÐzc[‚3^XÍÌkÔ¾C¾†°/„)ROAÞû¤Ë8Âë£AÒl~«  +4T×.3ÞC"¡:K|ñ,ò# %x«ãŸÈe°î±èý.òï›È –9Íom•&˜—NÑÍÇ?>|¿&o6¹J öæ³àÌ$HRÀQN´mÝ!@ Ÿ4nÝ(‡@H9™†éöÉ®8‚²ŠVT¢M/Nz^¨>G&SbíÀ(©EÁ µÕ<ˆˆóäÅ@¢frñήú„|ÌÚ4Óíá1íвMp S¼~½V(Ú9U tP9‹™"6;u4Ù Ë\ŸVA£AV6Þ¦Hkg1­q¬Ö»c½âìƒØ(¶¨.÷ÞÓ¦àˆ¿½¿üüùžM½CÕ…sf³­Å4²íbnœÊ3bŠÞÞ¼Ãh¸³×5=0èù¢ñ•Ù/„)£)"ÀúÝgÁ¸?˜íq¼ÆLͺõ® +vpS›sé8JUt‚ñË]£Ö ò€Y<ßwÛ}½d¤nq¬ )‹…DÏt¯­7Mþã;”[`§˜ýöÀ'NeÇ›­Pµ^©A&ycg#ú‹W>¦ U˜ 96“ ¼õ–t”—J2“ã ú2ìÜB„£wb¥%‚PEÚNš^¦8$Å š9€ª0{k\9ü#×>/XObject<<>>>>>>endobj +1182 0 obj<>stream +x…WÛnÛF}÷W v‰ÖÍ’ì7'n€È¥‰Š¢€Q`E®¤É]†»´ÂÂß3CR¢%± ›âîÎåÌ™3ë/gcá{L‹ Mçgg£h¹¤ã¯b‹#šOçÑ”fËž§Wx,4m°w„Ó‡_ÍÞ«å27{'Øßl=ev6YF‹fëxŠÇÖ,M®çÑäÔÊ ‡“é,Z~ëiÍæÑìÔÂìÄW«³Ë73iµ$óå‚V‰d7¢U|±qE¦©8”*M+2þæåê3ŽŒèšOŒ£ÙtBÃÉU´ÄßUrAøŠº|TÅ¥ÏK/Ó<¹Ì cƒ.°ö‚ä-%¦ÐqpEEnC²LŸÝÚ³ñ Ç(Ek-õlóô× Ú›ðI<¤úÔq~OÉæv4gÕÎùPÇߦ¯‘@Ì@뼶µ7iJ±³ºxrFÁ‘j½ª–¢(M§yÚ›°«!Ò*C`À‘™nÏ´Ðöøõ½û).LDÒл:¹çTEôKW¤() äðšykâÂ}#u"z×ú«ÊòT¨´Ìû¿½¾êyÆá–)5¿~:¬>ÔƒÉ?5ôNeúéþâ£Ùî½NMüpÿòÔâk4¶!7/¹=Ý&ÌÂäégÜš‚gnïEp ÝñÎ9NoÀéסH‡wÂï<‡L¡Ö,îhˆ „ý€¨B³c}'r”¸a ˆZÊ\Åû&õâ’Ââ3Úc2¡ùèß;öǸÃ9S„¹ìˆJ ω(+OÇârdê2 ea3™ªzÎcU"M® ˤJE–Lüþ|ú¨öo¸ŠŽv/,‡ét„©‚{§%i$ zƒBœ¨Y}'aL›™1Xw»­; |3HêÁæ6½L¶:qÍC£VîF-ñÚ`.ñVÁ—-`¤ÉD—özÖÞ€ïj +Ö¡yêGÏq· ,ù(Y]“H[*:¿mÕŽ‰ïswRQduÎ=×õúýz´|'i•†h'KñÎá"ÒŠ3ñ• qзŒÑ†TˆqkbAcëYØjM”0 ¯Y(3âb´~©«Ä÷ Œ_š×‚G‰8ñ; ª×]Šþ¹s\ØÚ‚Š!y!×Ê£Ÿ*0ÒDù׿Úñ-7¬gŽq-„åžÛÚO=Bj=Õ¸ÿÈáHŠ&ô¦•„¡Ê!öí%F®×IoþãŽA.ÜŽh@ŽÃöœvo|b3.ß,›«üxŽZ–Sš_M£éµÜ«>ݾ}u‹ê¹Ï,Åw..3ˆ«@Íæ‡í‘áb„»ý/ˆ³Å,ZÌñ/o¼ñùßVgžýù?Lendstream +endobj +1183 0 obj<>/XObject<<>>>>>>endobj +1184 0 obj<>stream +xeÍnƒ0„ï<ÅÜšJÁÁ@1µ•z¨Ô6~~BìLU޾뒞*k%KóÍÎî~? #ÉPA$"dq!R¤¹âÌ5Úà ƒÝs© [¶d¹„nÀxA×›*/h¨š»®7ݽ>3B2äé0V"c~óÒÂee¿hÅáúë„Æš;‡]®[ åR;Ã5pÕÈћߜƒn6ÓÓ29àƲf]àHäÓ9S&"ö™ú&¹o·Ú{ÎëGª±ŽšßF•/'¼žÈ½÷¸=ìñ6Ú3ãx´õ>/XObject<<>>>>/Annots 584 0 R>>endobj +1186 0 obj<>stream +xuWÛnÛF}÷W ô°iëf)òÀIkŽÛX@¢¢X‘K‰ Éev—Väã{f–¤h:E€Ø4wçr朙á÷³ ]ãß„–SšÝP\œ]G«þ³;<\ÓbyÍh¾Zâ÷éY†ã—³y4Å…ñ]é­IêØg¦ ‡æ4™4‡¦Kd†CªØ*ruUëù=@1ynY¹#Sñ]üÕÈ‹]n¶*'Wl£Ø”)UʪB{mƒõkzÍÆßlJ—S¤Ÿpñ%Üû'œš†S×t9A‰ø½kòyfeLoè‹Û+«ÖNÛÍ8Ñ©ªs¿9ÿ™˜BeåO•¸Æd›Öeëz)!Àô_¹VNÕTÛ6‹.üB•HaÇ [ªÿ–•ø½Pœ5©2i¯$&® ]zº}¸{÷ñßû÷÷ïÞŠö¾È9hÎe0gSim£¥­Š¿í¬©a'Ñ^e¹#˜ ÑSaMmæ­ûç¬LÌÁ¡î äŸÚnµ5®=ß•‹C¯›C \6ç”á¦v±Í¶:AZR¿··—<|^?HäQúô„V©R[ó¤/hÔ9|ƒ0퓶#*´b2앧@«ÖŠó 5o3Ïþm]–Ì"xq %ômk?MžVy~D5œÓ@)M ϤjàXú,±ú{­û0(ŽŒû†C˜Œ%;ÇáÌŠ¬’$ã’ª!niÄ®Æ&M²ôf­L&iX þÂ:¹.ÿ€b%*ì‘e«»< +Ðá0ñëŽ×MdR¥\AvT´€#ŽWj›k GºŒí±ò¨z›ÒíFëR~n3ý¾!D¸7èB±)ªÚnX$€Íw´è7ŸV€È­í+oéñþ] ¦×9È‚54! å¼²¾®èÀt:±MÌŽèƒDˆ Í€üÁtmi$ý!´ÁÑ KVo G°Ñç}ï9ÄžÀ†zYk` ¾¤©Ž›NxPÇþ‡l†SLÁ;õÀyæÎÓˆî<ä‹Ó +%`cìQ«à€6c¡ñ‘vàŒ'ýÃê.ÇÔú}Æ +±ÔÂÛô­4Ù3=f9oU¹ƒŒ!6Æ2ED¬ÃCæ÷½Œ®wIU•5* ƒ²Áx)åÃ|±Gx`ó}¨¼K¤5b`¼ä9·ÇAþ'\/ä,?7®˜Ø¦ ̉^(ð¢žÐ)…Ì\ÂÃ^ã²Ë ã@ÐÌA'Ãv÷ +Û¦‡†ŽkRûgÓÌ: ðpSÜJ¶¿:}ʸÁ´ÓH1Wãá4ø;ätƒ¹‚Ž*7+•mcob“S©w†‘„‘¦[1˜˜iHMâ.1V¸V¢€„¼5ÊÊ Å±®<·«¿‚lð +fqjlðª5ÆÚÞfÜ;ØÿG‘ËAœ6A™…qS³=+ e‰VR¦÷ Â!ZàNÙ´uoQnŒS–•¹ sž»Ü+9Ér„»QHà*D?âi©Ê†¡Ý#Îò7vEï²\|õE’|èÛ6¦d<‰ˆŸñØ j¾T€òYÙdß‹DÌúԚ♥i°„íæäÿ. άCèv/¢â4Ã,ó²¯B·1Ò©KƒçÜ)`»׎ÃQKOæ#o5·jÁÕ¡°Ä Tï`8Kr­Ò’:ŸÌ™³àÃÈÌv{ÈB¸Î³Grx|™Q𓶌>^¨Tv•ƒ•8eÞšT;¿(­À¶—A CÁÉhç=€[zƒfƒ=æ}eÊ„åM;éæÀ{Að<°ÎšG×—¾,ºã®¿c ¼½•.W‚Š[-Ž®ªòv’d"ðÕÍy㪕Ä÷ (ö Ñ÷†$€ ŸÒó~õBtØBtB3,Ì4XॠÍû(Æ5O 1Ôֹ݄1ûú]³k>*7`² "¹ü‚ÃÀ D&*Øœ g»1 +ò„ŒièÇ[‚‚«©4"nšm·‚@äAÏ„ò;‡aw +Uº8ÄÒ®+Lt»f¹fÔ4öÞÊìäK‹{)\`ÕüF,SYº {MÓb‹1xÄ2Ð_ÜdGÉsš³é!ýüÔ#z4)<œ´E^ø í¶3 ÂED\Ø1»Uëp`ත#>/Ú ' 6ÂåP¼ç“7,"•ƒèŽAjšd™ý*ÏÅ{]ˆr¯>¬z­«h2[pG|ù <_âÃûþü~1å¸ß¯Ïþ>ûÀeQ®endstream +endobj +1187 0 obj<>/XObject<<>>>>>>endobj +1188 0 obj<>stream +x…VMoÛ8½ûW tjDñ×ÚΡ‡Ý=ØE  ôBK”ÅF"µ$×ÿ~ߌ>+[$ç½yóf¨g šãoAÛ%­6”Õ³y:§Õý=þ¯w[ü_âã5³‡ýìîqM‹í Ùì¶´Ï ÛçsÚgŸN¥Æ6ÉRÔí­ªõ]£B89ŸS,U·ÖÆRÛh2u~CÖElOB©ües’~ÞÿšÍév¹I×@ùô¤ì™²Êà`  m.gtÆYüŽm“~Õ–L GþU{¦b°Î±©Âz……¬õ&žSÚ—ú t_«ª:1_Ueò{±J—Œ=¤B‡6â ¥ô¬êƒ‚8ò Àܸ¸Š*"¹‚’Æê¡ÒãzHRú„m—Ø–U¢ÜiV3‰^kÊœµ:‹H9aU©œ‘].pœ>+ϸ"…dogŠ7Äá¯?9»¢­¨p~‚_:ÄÈ ²‹Î~~&ź£œdätÎ3LÂéKB¡>¤`Z`Ýj‘yTŒë½–²Rg/ýÙÖÛ ²:*c!¶þP»ïd©UÌJZ¸Ô$4séô#¾5)†‡ ™êÔaÆŠ’Þ:bd3úå;M\uí$†¥ Nè×½nœ‡O¥,#›ÎÿÒŒ)LÒ¾Û)×g"™ ^׶GR¹™7ª•G“øîð©¨^`%š 2‘õŒÜn0!×>F]7]f•;råÙy\£¡Ë; :t-eì‘ôo•E´Ø{l¼tÄtRD:b4ÞÕÑ)‘ +/JöZw.Þ»Ö¯#œeZø¾K{$ V(¬”O]v³æÒs¬)Ð`w!¯‹%À¨==?=ôv™è-ü@±©ÿq-—k+ÈÎŽ¸ºËfÍ1ß qT^& há© 7ÔÍaÞÑKuUu„{7¸c÷sQæö„ª±7ãœyƒgBÛt^×6óç†g“”KbWQ·ßc^Ó0±D{8ËÕèD¢½è3Æä© ̤É“;¿†BʤïY 0Ïê”XÄR½B8žzuc0»ZŸ>Á¼¤@Ú* kL7d(âR¡Ul½¾s߯1±">È'èFyÜm<…È0.#²-&¨!ž±x!>æeXˆîèUSâÎä»ÊÔãHäþƒ€¡b@é•Öšß°Å› |Ebßÿ@cÒª",w,Ù`¸2ùÚ | Êx¾$ ²µ²ê¨kÜÅ0Ék”í~=9HñÄj³sš^Ѐ“”!S8ÛL÷¸ëß(¼mìV´Ä»‡Ü»Ï_Ÿ¾Ò_ÞýÂDß\Ö2¤bqÀÛáÀív~Ï÷ôs?ª;GÞ³Þ®Óíf‡·¬ÿ±âGîgÏþœä endstream +endobj +1189 0 obj<>/XObject<<>>>>/Annots 591 0 R>>endobj +1190 0 obj<>stream +x•VaoÛ6ýî_qÀ0@bŲ;)ÚIÓ t«½}™÷’hK$z$Çÿ~ïHI¶åØ ­DÝÝ»wïîøÏ ¢~"ši2£¤ŒÂÞt¾þ2ˆ¦³pNÓhŽ©¤q4oš§‚ƒñü:œP4…SœN®F8õO|z3#šÂkœEÓœ¹>:zÄÙlÒ~ÈgwËÁåÏ74Ñr x³ù5-S‡ +o’ÀȤֹÝÓGJU)òŠð»e,h¾¾[~sÖÑÜ['S _¦Á¯*¯òjC¢¢§%Ý{Ë]n³Îvìm§EíxÎØöÖ˜º”´W5eâE’èl^ÉHý"59O‚ž¤½{ø² Jà{µ&ï;—Áâó×?£Ó0¥$´¤o'›ÜQ2=u3¢a4ñYÝyì¹» ]–'€àüíþÓ„Oø¸çÌa³;E±HžëmKx¢*«€iã½7i³õ8&Áô)@œ»ûOß%á4ËÀÙ«J@ae<ƒèPœ‡Š”NQ«…d3Ù½ u®%cÕ–@dS¶TÈRU Äëºr‰*K<¿?Å€dÚ0Z)ûƒ?šrN®Âù +¦Œ·Â˜]JÃoà4ÔüÓ?üÃ[¡O¼nÓR4V «ôÎ øZñ ½ï.:Š¹ƒîŽTrÈÒÅã\øG\+‘ Û–kð‰ªŠ=•"ÉòJúc–È­ÇI"ƒŒâ¨‚GA·” ++baäêå¦É/¤%œ{ôãÿ“bÀ>8@¡6è`×1È¢‡ ¥Ç%…ÞRUWöHä좒Œ_è=muþ’rƒ‰4m3æä\4ßW!=¬ñø5µK]½àÜð»º1’)“=±‘o«¤ÓÁ{â#Ó¶ƒîåÏm‰´…ô +E“Ò‚V©Ú…´hâvnWÁ5ȇRi Ž”RA©´"/L¿7P"Eù +ÁñøKå‹,Ô¶”à0Q©£‰fE3qx’©Úò¤cЖh) G@«]£¯Úb(×C=òX‰±„e†²²L€Ã…t”fj+Á84C/@/âB’Qp8ZJ£X‹*É0F\Åy†Î«k^Ú(|h3­êMv·Ú©)&ð·ÕʪDüuå›Á‹²’;ZVVïz©µ]tæÖwù}Ô솼b-b!?¤Æ<Þi®e‚°ç·~j£°]­A/òNÕEÊŒa¤i¨kH•Ò%FÛžÞåemôe¡°J.7—Ü$¨(ûþ® u¾:r×£…RφŠü™‘›&lÛúGªþÀ{öËãíÃ=Ý>~þɇëvaÓ­aðÁs¶ðûô Y€÷71CêýUž} ××ë[Û¢²Æ÷O#éób¢^hAÅÕá¢Ü¢„"V/ò@ +u5ñ»úí:ð p7€s`G´‘?æ(P“SOëXB¥Zn ‘ øÍcy©.yðatÜf´3㚥}fp‡ÒҚЦñ)¡ÁwûË+Ýën+X6jÇÓ-Þ/F÷@+üߤ®•q&ª=)è]S^ÀеíЖûÓ‰<,x21š£ýÓÝõ¸±Üˆ4{ceyáÌ)ß ¶ŒX’~®€/A&˜¤˜–XÎزŽÊ~ŽOjwÑŒ* ‡4´•Ü§^“í…÷AɃO¦¹õxz¢F󆸭WÁ•Ÿ‡þ +|y Éî*7>‹^â0ƒ²v&·<ô‘òcl€,;¬G’ÕuVkMýA»t1î7§úצP±(þƲKlŽ)Œë«§¼É‰ëÅÅm~Õ,û#é5À}¼ë׸ָKÛÙ—ŒÂ“Ý\â§ói8Ÿ]ûëÕÕ”=}^~ü =’×€endstream +endobj +1191 0 obj<>/XObject<<>>>>/Annots 600 0 R>>endobj +1192 0 obj<>stream +x­W]oÛ6}ϯ¸ËK½!Qý)ÛŠ!ëP`N»ÅE1,{ %Úf#‰*IÅñ¿ß¹¤äÈrÖ§¡­Sšäý8÷ÜÛogêãÏ€¦CÅ”ägý¨oþv6GCŠgqÔ§œãþa•ÑýY{ÝÉ(×gýîdM)îÇÑŒïÎgѼ^ùÝÖ:§a<>Þĸ;‰§ð‡»ñ<šÔ+·µÆÝÁäp–wÛkìÙo°Ä»ÈŽF£>dz)>‡øg$­ýÆ`8A°a„(Fc„9@0 ïëeÉ{óã½Ã{Óy4z¹w½<{û~Lƒ-×(A<›Ò2õÈ÷i™ôîä³£d+Š$·•ôãò+Îëó=Úió¸1º*é]ØjLõ(S…$Uøko2½Ù?deâ”Æ—¹Šôçpirð9ŒQºeÚk¦Û‹cã}:œ”%üåø +‘KÒkÿÿTçþw’pýªU¡ŠMÄ–Z÷ÿÒå•u$2«i+žBž¥0°ä¤éf,‹ÄìKG¥°1¦ö8²2tœ]øœöÀööòä BÃ}xXkC{]ª¬4HC“¨KáT"œ¬ãpé v9Ï»%}º½é&ó^"Ëö$Ò”z°›ëT­÷?’è&Ò$€€Í¢øŸëwbž«ˆùÇõíÍ þ9<†¯U˜åVÚP9η4*fO¢Hi%’G®.o¢ gt–1t÷"_ Ú©,#áœÌQ'àÅ'D☋ðï#쫵m98nÙ‘"ÙÖC„>°¶~AàÊI¹ØÓN>pݘº‰ÀÔLpÍ…ÓÛ’{ƒt…»È½ÅnLcOäºØ¼A—W8\§ž$óB­}h>,›¯Òšlh&¨C)“>çÖe×>P´Ómh¥6ÖH1y; ‡{qÀÂ7·ª\_Iúïþ?åÏOß¡ +¬¢[·:½ ÝV¡<;è‚bb¤U"SÆ:p"Åè,Ó»†/u&ò$œ·eÉ% Ÿ²9¾®“%0ÕÒF´ä”‚s’ +— ­ J”ë,Ç(Y´ß—w÷” +'V°5Åç¬Hý +›îøl! Vl nÖu ~#­Æe ɧB‚6þ6)fÙÞËO’)èמ•Ü ¸ÊB+›  Ú•QnÿC¨Àœx$øµ¸Ä[äÕ:Øg»_ C;ìã´é(÷ø4ŠYÌ¢ØS)u™É ½Â>¢ZFn„I9_ ä~óNÞ ü•Ê C™qUÉ'5P>uß Ô(hˆu9EáÄ +®aˆõ”¨d¾B kQ„׎ͺNº”=ƒá6Wψ¥Æ¢+¯Í{¶1#¨Ržh¤5 F7¯¤ÛI^ÉD™¤ÊQ¶"e˜t€â[¥pQй÷rîsšÃG‚š2äP<¼8¯<ÒÀ·Iu«¡3‰`/dwÊ%[ĉlÏC ÁXDW¯?!$¯ 4H!eÊ=µnÐîЭ…çLá]>×Zwh«`8¢k›µ¨2‡~|Éx…äÜ:u[•¥6'­(Ýõ‡÷‹»åçt«[h”2¯’=5d·\ ½áÌü¹6A˜°š`ëŒî+lYêÚä¾s8d˜}&dc£¦ð©Š®Ãl +Š†ËçD–~LCÉ= Ùáù}дb#Í9­Îy£w-(Yf‚wµïÂ[¸Âð‡ëŒNœÆ«úA¢ë@â—ž{N‹Å †—…JŒ¶zí(8d˜qª°:“˜gʬ‚NyPß¾E‘¾l÷a&D +è1žäIÆZFïêÿ%ˆZ3·¶Ôé¦2Nùݬ±?\IƒŒðP¼qÀBJÿÒyP0FzõÂì…6e¯+}.Ôóˬ Ñœ°é ågža0jÔ–ü„jzxtÄÜ×½X‡È7»Ã'F®‡D˜§Ú«°Öø‘Å4Fš<;Q…”C 5¨ÈbàïCbD7O†Å N;W¨š2)<(k•I»G;äun'R†uOVå*¨d‚uÆãsU]WßÓ*ó\Àá†Ã;]e©á~{Ùl9”€Î¬Ùø•¯?Q< /ÜÕâúŠ>ýÔÅáFéðè‚ï]6Ç/§ý9?mÁÑ÷^Ä1~£Æ3<£8>™°•_—gœý s’«ïendstream +endobj +1193 0 obj<>/XObject<<>>>>/Annots 607 0 R>>endobj +1194 0 obj<>stream +x}VMoã6½ûWÌÑù3²] ‡d½)4ÙtãEzè…–(‹‰ÔŠ”ô×÷ )ÛŠŠ-›„"9ófæÍþLi‚SZÎhSR&Ñ_Î?¾þ>X®£)Å‹8ZPIÓٿê çAwÝÅ2ºîìÎã8šÐ|¶ŽbÜ]Ìæ°V|^h> vg|1,x«³Ä½y´ììu–%­¦Ñº³×YÍt¿£Þß$Æ·Åj ß3ü¯%eƒÛí`|·ÀyÚfÈF¼ZÒ6õI˜Ð6ŠÆåR;•§ŒÆ•´Žœ!A/J§æhéqKVÖY“Ò„ãdE)é(ÞIØαõ5™ú|i½j/ý²ý>˜ÐÕtÍàyx4M‘FíÇ'Ÿ +)¬„÷ Nà›Àû¨>f0­4~–(° +²ïÖÉÒƒmœáDòj¯éÛãý_Ô¨ agÏ8ÓƒÓ‰q °A¬íÚ4•h›+K‰I%á·8Uˆ]…¦Tdaª¤]-t’KKF3äA”†÷F=§»ÆÑQíøÄA¦B-CÎv¬1ºŸ¨-lŠô ´{É·Rúª` HxÒÔʽ3N—·zfÔ?»S!qƒ¢û:÷Pw áÐקO”äBkø…Mù&‡¸?ÐÃcºC _}8 åÚ¼–RhKϢܡžže¶çW›#HP£¸ª.ä=”ÊÕ ¸ŠÄyNØ\Uö§XÎ$¶ìþï¡Šd4¢wÓP„"M†žï¬úŽ¨¥5MÈ6…žW¹8 \—­Ô&DÍjS‚­ýËO›OžººçS$‰i@¨P&±> î=`Å;‘\ÎÆw×m—/Dø­Ó„èR¿·YO…,2tTèó€_¥¬<1¨râõÁTÔð ÚG݉^ï[·¾ma«0øÄ6™”­¿BXwn.” ­¹û8‘§œqWɃJjcMæzÎÏÅõIz c uƒÈÐn&ëtîżüþBB‚O2:QnŽœÃ‘ìÙÛƒ¢dÝðÉk“ÆÕߢð^$XÔ:ÙA×"ÏÒZÚ0ß.) ciù‘&Θ©ØÏó%:F×xÌc…0ç.ûgJÚ>Ãn ˜™Ò¬¦pˆÚãn[/þ%7¾ÿ¡½;ˆùÇà]†&r`}3sAþ ½{¯eÅþ™] ½tÌ%鵚TÊ,;°î”°M’ÞµgŸï7Á^¡ &ë¥<Ú{Ñ¿XßAàõžÛaDÒ%Ý@·O„®#¯æȤ* Eèwùæ¤N¡–mî²Æ5˜ÊAMz¾K0T;Tx +AÎk]åÁF¢ª +…)ÃS#•A<^HôÎÑ7­ÞÚ1vš2g^yúô<Äþè^¢¬,²ÁƇÙéeŒvoUn'’× s|€Yvd†Š¶B}IïÔY¦#*Å+ÓE|¬2ÔWEƒ~xp p­8J}PµÑ+<±{‘žGêø.>?‰®N¯Ç/ÛÏ¿ò®R>0…YÉ¡žáo”?5Iãÿ-œ©|ªšx•_êý"wn/þQZÒJ7o/¦.Ò%ýP+ú 7Æ÷òøxÿ<%}}|‡ŽïV-ìiŒWÞjNóõo><¡žonoè©6ß!Õ´iÁùÁÈ!].\-'kÞO\Nìé 4›àu¼ñ“Õ×k±\DËx…G#Ì_Çlåóvðçà_“!Ÿ©endstream +endobj +1195 0 obj<>/XObject<<>>>>>>endobj +1196 0 obj<>stream +x¥WMoÛF½ûW zrP[±YrzK‚0Ð8n­ =ä²"—âÖä.Ã%Ũ¿¾ïí’M§(ÚÂ6l“»óñæÍ›Ñ׳¹\ák.ë…¼ZIRž]Í®äz~=[Êòf¿ø©µdáÅâj1[M_¼Ýœ½|ÿZW²É`kµ¾‘M*°s…'Éù'k2£SùÅíœõ²ÕM§µ•ÏƦ®ór·eSùtwûû‹ÍgWr¹XâþyëÝñÔù†>æëèãòÕr¶à©7[ßÔ*iâ¥ÌçýÅâÀ­mô®VqV\ÜLR;ï²fH“×®Ý墤íƒ.´äŠq#è˜T×HGɹ+ã¦ø¡}þ*†epG7ºv;mµk=.–UÛ0#m÷¦v¶Ô¶ñ’¹† +‡ç)õL>k©jíñ2f´ê3:—nŒÄèù®Ó¶³¸Â›\˃*·j‘oM£y BPµ*½ '%Þ )6.\}š7În ]"¬è\Z¯y‹ÅSVx·¸'„»'‰* +!÷E»Û)•7-BµIâõ.m $“¸S%2ÑõÞ$øÝ™&É$̸nT³‰ÓÔ• +à#ÎÚ‡ãU¥0†QWið@3ï<ƒÔû|J•äÆ¢›Üx©ŽKª}R›-’fH£€¦C­ýÁ7º¼ý­*à›5æᬵ ‘U…ib¿wbŽ ð^À§ÌìZð)&Þ¿é\ýèÅ€º5î‡Y$ÃSþ‡.½k <ÅC5ØHC_. +y´®C±sÕüC+äj¯%5Y²ƒY¥KuùZëž¡Ì” ÝIvè£ + €ße¬/+€Ã#“NrëÐ`𲎄ê!ïB)2ôwhÁR¥šÀ1,“´Eƒ +O3¶»5h:'±¼ÉHäG.UZb®pÑn¡ °ˆpÊ ,‰-H?An4bÇ¢9êèqzõÏåà8÷Ay¿#ãhò¢œŒ¶„‰<‚ +@0úïvÃ߯ÏC`7<¹ïÇãSÂŽ¦Øp0:é‡8³ñªW\J»Ú…åD¶¡Â® °Gõݺo¨MÈ?k‹by©Ë-ðC^Šj\+fòÑbi¸à;ÅÒu*8v\ò€¦oX€{ª +Ô˜Òa¨bP²¿£Íät,çÖà ˆò1ž˜¥!åx+[®H$W§8Ýð?0¾»}ø‘óäÄ!©‰»ô{é,æ×x?ji¤‘6TN_X æÉH d{ ¯¸_ræ1–± b†€ê|w1&ÊL +ç±4`÷ÆôšD ÚGÝãt½&¾¶3< ¾å¬G÷œ(·|”›RÞc¯A5âG“~kDét¡`´1²™¼Õ‰BpGÊæˆ8¬iqw~–çrßa\íu!_Î÷F…ØïžÃ ø$aì[\‡YVFðN +³­U}øòÿwŒEŒÆ°ö;ž9Ñb”+Ž²M1¬5j ±¾ÂlµMß•7§OLËë?¸ý‹Ïk¨î“,×ËÙzuçÏõš~ÞœýzöäÁÂœendstream +endobj +1197 0 obj<>/XObject<<>>>>>>endobj +1198 0 obj<>stream +x…WMsÓH½çWtq2U‰cçÃ1GC–Z Yb +¹´¤±4Dš3’µæ×ïëÉv”TmdÍt÷ë÷^·ŸÌi†_sº¹ Ë¥ÕÉl:£ëË9~^-oðóœ¢Møàr9›^¼õÁÅâzzõÖËåë×'矯h>§õÁËZg„À³­ÓÉw¯œ'k¨)}¿ÿò“*N m¥j½¢ûµüåˆMF¹³mM†+剽ÜQgÛ2 o¾3Üè­z/ oM߯Ìèl~‰ôÖÙd-'äú´°¡.q“·¸‰›x|¤2Jv;³ë‰$ëHm•¡ÒæxÖȹQê’¥kÍ(,Ç”~žýÐ&³yå½Få¨# é^,€rL•;²ÉVÛÖŽëUÔ2îKðŒ´§Di“ á¡ 7qkøY…¼7ÖU£î8æV3 +?Po²ÙN“2/#®ë²OÑÇ¦\s¢KÝìÀòr‹ðÂXÄñŠìY˜´pÖè?žš½ï¬Ë„MM§Àô˜%4¢£ôùè‘Šo,z 0^õ'r`RÚ§I/õWÍ~zúsþùÍA{ñŠ38ST»\5ôŠ‘ÒŽýäìBüdr$&¼,¸4jΨ*´OªÆ£‚·(ÁúWûFʶ ‹`æ˜c:¥M‹ÚB‡{ŠÁ7FÐvÚƒzè^‹ôĽܳoú€ ­p7Ýó«Ó€/HEºkå(ª©K» ×£_Þ馰‹‚¤ $!ÕˆO1ÂB+Ü Ò4µ­iPÆqU½ˆs§¸±x]B™1 +Ê ¬p|•,Ê)g›˜©D]{À-07¢{\æ+% , whÝ©Ø–ŽwB¨ˆ|§Ð¯Ö±‡å&jotÁBSHÕ±pÓ¡ó›˜S $ ¯B³`%â ŸDz 2”¡Ü¥vÈ*´Ò‡,ÝéÔYo7MÏ•Hc(´YÀ‹0У|G°¼â +Ž¬Då2‚ìE¢û´# åQ$éA*`”ÊU”Êß,ƒ~HVv$˜éb+]?9z‚iÂùt.ƒ1ea®Li©ìy$2c:7è´1¥”îcÖ° †ºîgýx„¹”½LaB« +E– •2!Á£áŒúAÙëÑÛôâïfX2 œúÝ‚&¡ìh)„1í?[Ê•Q"‚0żûÇÇÐS¸ç¨±H1ýLŒQŽy‰ÿ— 1çx*‡ÂXÙÀ t;zˆ–T…cCýÀ }S>u:Á+ 5æ"ëÆÀ<´rìzž}^Ðòƒ$–‰)}BFouVúú ì)ábjÒN±ó§¤6À LÄ×Ñ`åDhØr¶ìÂrñÈU´+©RU"ÛŠÊTj35¼4½H‹QdíÿäÙw÷øíáÓ~úõftà`@Rú\YTÐËkÓ©2tÖÖÒbhæ0­@¬W^Œ½ß%E\iÙf±¬ØpÚt*Ãvñbl F{#¨­-q¸_Šÿæî3…"@]6¨l…”¬,>˜×¼ûöÄØküÁéJö§Û¸^~Úo>£ÐØn¯MkÂöÄa–ƒH¡Y§²|b%–ØVeš1%6Ãθ¡Ð¹è£²ô¶)GÛ­[W[ÌÖ1Å>~h=…Þa{¥8eÚ*ˆlŸfÔQXã?ñ¢MÂhŠÔ2@U€bT-'2ÖdÉÅ"ÖÂÐã•H7Þ8¥¯€Ó½Èä¸0üÐÌðÝ¡·’CnM 6y(î°ÜLéãŽâΊî ÜN(Äâ°bhK0$¹8xGün‚a;ÔvºwŠë±×OZÏèá~”¦êèîÃ7šóÏËÞjç |y[^Òb>x\Ý}\‰[ü’‰ykS´‹¨Dª>^?»™}“àåzuus5½Y,±€á®ë¥ùk}òÏÉ@ÌÂ)endstream +endobj +1199 0 obj<>/XObject<<>>>>>>endobj +1200 0 obj<>stream +x•X]oÛ6}ϯ¸ÈS$Nœ¤IÚ·4]>$ËfÛÛ@K”­†U’Šçýú{IÚ²œ¢Š ŽLÞÏsÏ=Ê÷£)]àß”n/éꆊæèbrA—7W“kº¾»åÏøqšª£ó£óÏïizMó +Wnîð¡$¿¸ yqò¤M3í^ëÿ¯ëP¬~™ÕkšN㕳Ë[\9™¯4½qú”¬£§Ùì”jOŠ*­BÇa¥?éœöºÅÇ–ÕnèëÓ—¿ÈvÚ©P·Kòtã'ô%2Æ®={¿ ³éÕ䒽Ƹ^Y×àŽmÉ÷ÅŠ”§•õ¡Eøþ¦kƒûµòA´%õ^»½KÁÒB£"ÞšW]RålCe]UÚ!º±OÛ»B#¨ÏHMÿ£šÎèSäæL+c[ÓX[÷‚gT£6ÙzJjϽøƒíjDh+ªŒ»­jƒï|°"Ï€‚[(CòTjB÷ÔêÀžqh@U;:”´ „”S¾oD4JYâ8Cº¨""h©°­ï ÌÒÓ—•*¨ÊLèÇa•ñLѧ§'úŠð¡Ü¦‘ÇAG'é«ËÀ7#m6#Õu¦.b};g—N5 ƒ¦nƒv•`#dh]·‹šãµ;¼¯MÅ0AÕ¥Ÿ\õˆ¦GBkÎ8V= ZK‚3©ÉÒÙ¾6þL>ñ­G¡õmX±xƒGí"¨ºÍ(TlªòéižëÖ{öþ8ûãùœš}­K$ ¬I©¢°=FL·}#seÛ\Ѧ¨.T»µÂ#¬¥Ãq¢bÞŒKï7ªX! r}Û"ÚQŽ¹% #¯¥S‡Æ@ +@ÕœJ‹n©3=ûÚPp=h¡ÌÏÑÄ°²ýrÅ!mh™MƒÁ­3{LMzW«ÉÚ¶ÁÙ8ZSPó_9ÿ jò;9ס8o½bœ`ªx ³ã €ÀI5"¶Q/LF@Ó÷^c,ƒ•¨´øÖXûÒwRëÊ-ᇌ§ÿd£Ü—õªO‚3‹• T ¸˜ææÓ`Ãæ¥Puy*†õIpÇBÊã}#(Z"âp3xHñ)MŒ´Ê2YõÝ„æ<'\ÅzŒ Ùwº`~Œ¡×Ì» èY@XS¶ +s §á S2­°j)Ó‰š­yóXWj‡­RIð1öäXª3jEí?ľ¾l½ÄFñò‡HÂyì£û*s—P&Oή›ëÚ0ΘšUˆ“[ö†ÇÍÄmí œã¨û[ˆâ9»•|‚îð®Ä݆΢Á}Cƒ%Êæ²ÉÔÔC£Üƒ°Ë ú6fƒ×˜zfRxň~ªØúÌæHþÓÂ>èÛ‚×%Z\ƒ3ãŽËF@q|4X[œZÂä„~kº»'<­Û}ÎÏ·?ðα1‡ˆà]Æ®ðÛ`\3cæ> +R…¶Ë&ñ/Ï4vÛ†´ò #ì}ÞryÀò +ÓËË úklpÀA€Üj]2³â Kfcä]ÆIàH{ØÉ·˜ƒñ±¥..ZV–tœLÇ°ã¹ ÆP£Rqݪ ÁìØÖoLb`È +˜e‹0Ê–Ï#¥H£†Šöìjeóé—KµÀ`Ý÷l6díð(ã&{b7D<³¢kv ÛÜxK/­]£Zžžï“ÖMÚ”Û¯>8lcm«}ïˆT>`]ýoT6A«Ö»ó±¬·ì$³Du´õ¾æÜ ¡Éj³Ó¯c—†@ ‘\o%o–„ƒˆCi·•zåDàÊéÂ6„)ƒ?<>‘(R©zUõ๗[—ÚP§Ó娳wq|öJr(¼Eûª5›m5^xìz”'‹V‹¨¹¬}‘·Œ¦­¾NÜ%¯P&™Lˆ,ÒÓ:xcRKY¬Û0Ï([áÉã_ ”ƒE_YdÆBC%Ý‘œö³ÔÓUi¼°Ë ŸF"‡t1v9Ȇ×ó_OðWã%ÝyNbìSÔQ“ÞÜs[t̲T0V¬T»(Ö@ 4%ãxÂ`>Æb#]#×½"`l€êà¤w¬G‘J˜w‚Ô:ë¼äÊú[± Ìm%e\‰è|tf±.ØØXYvª™”¼Ì„2سYr1D˜–×#ò1@V¥¨Û>e1ŠÊ4 +ïÐ\ÜÁ‹Õ-,¾NSò0–‰¼:D*ò•K=ÈŸ‘Xj¼¦abYŠB’ Ö¼È >‘Öð~ŒÐ«Å‹îùj¬Ü]’fÓü}ãîŠnnïøeqvÿøñH²ß¸·Ÿl— $ùÞY>~v{ñžÏ?½ýëÛëÉíÍþB‚3ïÞóÕ_çG¿ýæGÊ£endstream +endobj +1201 0 obj<>/XObject<<>>>>/Annots 610 0 R>>endobj +1202 0 obj<>stream +xuW]SÛ8}çWÜ7è 1ùjžviYZv·¥ é°ÙQl%Ø’+É ù÷{®dcètÚ¡Xº_çÜs¯~hˆ?#ši2£´<&CšMfÉŒ¦‹9~㯕´¦ïÏ“é[&ãQ²xãŒ'ÃæŸÛOG£ñûäœÆ³s˜/izFºæU‰¶JP›ÝIyp—™´.QËXI®`iì«òH/Tá’÷9¦ÀÁd¡~ßqŸ¬©+º¾¤ Dáy™,23ê'÷@pÖ|^7á" H­ ™Ôd`83³sôuÉð(Ï`²]¤ +* r  v¶À c^¬®þ8¹½¾üñ.ò©WDØr…Úä¾ØS¦Ökiqaûþõú_Úå*Í)(-Y¡7’Ìš­¤m(Jîb½—ûŠÝ0(e¼Þw®ðw¸òw ]{N´êØуYq\`í )‡8UvˆŠ†À)'âêöÜ66Ù<¬­Õ¦¶H%Å/6¨¦JÀRe*xq7"û¯5ȵ§Ô+¿¡šÈÁy0«‹(›Gaöý:˜Çðu¦Ø"\&(‡·VÖ0UÊÓ˜B/Ùgšði-Ÿ|Ìɬ­)ƒ-ÓCRÀª²&•UU¡bïucic¼A‰£çžÏ¶À;ÁÉØXÂ3ÿï%ÕMûÀ»¦ÜoàGì:n›Yì5Žõ¨ ï"XÀyDC™3ªP[å¢À¤Èz×¾æjÛÜâ@¾C¨äÒ\Â2# "6{ wòg-5üDÑ WJe´Ú³’e¦¯Ú¤Ñý°%ôý¥*jоŒ +m¥¯­†;˜ôíòcègÄÕrPÓr§|ŽS½pz´…ãº<›å,`8 +gÿ2»S"ÍC#úìP{Ù‘ÜBG=U +І +÷Òáˆ,´èt7—DèùMM •Ã9±,!Üý=¸ ìF{㬘¤Á=À“æ!¾@ƒ¾Û˜P/ëL¹T`çA4Ð@ÌM´qøðÙe¨BÊ }1Š]a,c°ò^5˜L£T\#CˆOdûøØøM¼Ö®1a0ceÃhþÂèaÒaÖüirMK‹6‘=`9á~wZT`)ÀNPÔ ÌЭ +kWêóÍýò¦l$凗µì 5÷x4“.µj…˱À éÇ®°ã9.gbk­Yñp¬éèC”o|í,ˆØxÌôA³îMméo¥ë'Z™'œ +æxÛC—q@–ü …ÿp…šÿ4v;â EDJ¡«_¹3…°\€J¦ yú]Ýß±¹3~h.Ðc¼ÖB¥ÿä_‚wÒÆÑ.´W5ú™çÄV9TýyR´û2ÁTB'[™ ¡a÷í0ï™Výmïš7Tè(ãù2Ž@"¦PØáû°2+ÂÍÂ.aUîÂÜC0•{º•Ùg¬ïs<2¢ø÷³mª¥°+,ãèág:¾Í ~:´Üá½¢Õ±Ë Ï‘6h,¦¨¨†r÷IîŒÿ +2ÌŽ­ÜÔ@ûlt=…öc—„„¡g4øŒ­"å+ì‰Xó$0à‹‘Qí¥6½gRz„Åp%±«íðÀpB è8Öh²fªô8ŒŽ'&bÀ¢¹fÂÇ·B`º€jåPjˆn¬jó´— ß(K0–tZi––(\‹µÁó¿°pf’`äÇë: ž¸í;bÖ¼®ð^=,7÷ùž\nj,%×lÍã-ø[äXÚÌ“¿vÁ²ãÙ¼éŸEóu„·èâ|B³Ù"j`,í7kP ºì>wØî`4Ãëx1¡Á|xÎ6Ãèe…ùôöSf:Ÿ&óÙ"0²?–Gÿý¯Ôýendstream +endobj +1203 0 obj<>/XObject<<>>>>/Annots 613 0 R>>endobj +1204 0 obj<>stream +x¥X]oÛH|÷¯èÃ=¬H”(Ù’Œ{88Ùø6{òâ—!9gMr´3¤µú÷[ÝCÒ4“Üa±b[æ|tWUW7ýûEL ü‹i³¤ÕšÒòb-èj³ˆÖt¹Ýàç%þ;M{~€¥ý—Ïÿ¹Ø\G1].VÑ’JŠñýºýTЗ‹ág<½¼Š6çƒÏxº^GÛáÓÁg<½^D«ÁSŽpµˆñõÛqÔ*ºüöÁv‹Ð»/îÀyÐrÅáK’ë ¢“,ßîƉbõüö’â˜v{Æh½ÝÐ.$´K'»ÜxREaOžê\Ó—›»·7¤²ÒTÆ×NÕÖQmqzq&[ÉÕ`aU›TÕ¿*uš+,.}·àÓnþÕTËov¿],h3Ä»lòðó;Úóq¸ft†ÝSfKeø´2ÑÎGÔBÇgª,¶:hG•Ö‡”«gM^‚Ô|Õlp—JSÛTuRH '=kñâùíºe°ëknÉç¶)2J4rV™©ˆe6mJdýï°¹C”ï\®Áò(¹ÿº»'Þ ½9T•Sög_ëò5¬ÈñÞζ!îLy,4_À7†h­¢½)$¹A”! RUF'ãsÆâq²WÆ"­¼)ÎoÈTµ>02¤ÿ‘|êѽ³%_±Ž3#Ά¸M}†œöG´ËUM^™lJH•ÌÕ§áéÃÍ®?jWOÉ[ɵTgä„ÐÕè¦D×5ØÅ.Î?°11“ÀF͵×T+ÿä[Ó–ÃÙ&ÚÆ´^3 Ëõ†Kר\Öýl¹âkš]oSŸõïq·Í'ÓÉ2i©‘)$W&ŠR[íÍ¡ª¬{fˆ õŽÃ´q ‚†Æð()mBooÞ}¤;úïÃ?^ß;iµð"•‚åw„ZðŒê4ìî$<¡D¥OÔ™Á6÷e Íd®ët~Te”7eÀ EŸ9³‘ûD%µVýTÃ($**U†¦ÄÚš2㟾‰çîæãûQì÷ŸÞÓ§û¯£+õs§=ÃQ×5AÐßÁÜSªàê ESà ëåc±;aJØ)(þ‰õ]ª47•:ýÉÓ)ÃÊžTUó¾j‘ôYTS8 ÷Êa|<‹ûØŸ¨´ dí´¢Z.n™@ƒ÷ý†‰ÎD}#¸p!c`9˜Jäk.füêL'͆Q‘ öqÐ5í]#n ¿éá“Bæ<6,k’þ5{|Ó^õb\š +œîk‚=z7 9”þã¤ûÕ2Â?R°Ô=ۆa_y|3EÅŸPZ4p=6­¦J¹FðáT ê=£LéÒVR3{(Pîìµ{ Øæ, \Ò dp`¦ F,â¬a'L,¥…EAÔm¨¥qŽ½Ö'ö&S’Fá>0Â7³§ª°Ã£“àÀTCo™îbìñ q‡¤ŸC +‰ÙQ‰)LÝùôÛ†âs $ ¶ ?eÜNº(øûÑr­‰–ŠS2ú’IµxÑ›£³Ï&¥É9ä0i%8{}œ‹æpÉŽš*4Ùàn4ƒâ`a{]Ã#p,,™/¯äØ0}¹|€ \ha~§;FYó|¾pѵÍà—51«(§¶ˆ “8å *È•öý»CŸŒèôÁ›xágýÂíE:¨G§ÛDñ´çWU©fŠ—ZU~\t0‘Ù"Ú\ΖKNôeš„kÂjŠ©ÀQ̘†\Ç}S°:U6ƺy’]¦Ÿuaܸ¡Óô Rõ\šáª¾ò9Yú£PÂú®_A«¸*—† .äû¦~û§4¬·šŵr¼¡M…ÉN Ž3ègB,=„n÷{–´¤D…ÐU)ˆj*)ß–'‘(F'úØnç(RÅa!®«ÎìÈ—IÛqzŸkÛÄËšê;k¸jÆgu&ò:÷ g‡²á¦€‘·; ß²;KÃd¥C¹È¹3zé ¾f¼w”¯-³„i•)—IÁµ,óÈ‘u¢ÄN¹IsòÍ£Š„Óõá^ã>Ü£‚Úõá`XˆIàÌ•…ÐÕT[}bíHRL‚e¦Nlö£`î‚Bú7Ó¾áG°&>* údãݳîèž“nå ¶9ï)•ì ¼5!5Ï8áöˆðRÀ­€’ÆìGâæ(– @t³6·P*]=0~Cy)-Ç–7…"èìì0ÅÄ…7 æì?Ræ°—)•ç–ç‘HÚ©>G| Œ|Œ%þ}çôGÈóêÿeôùᎭE¼§…`~ ÇÙ‚m`ã];¥†y¤ËT0~Í*ïé_]¸ó §[ÖGئÝ~ @ã?:PwFY8ey ~¡¹Œç+4^ãÄøæºÑG‰éŒù€ùÁWÁà½W?3}Ô•¼k5GÎ)×àNÞxc_‹¸÷ÙØƳ›‰„˜á/2šCWÒ`DóÛ]óÜ]-‘åU´ÅwLõë? +qX²Zµ?C÷´ŒAÇ‹œ0“糯ßÿo¿øIŠÆ×BÃ_8Áuãn”bʸúTþÂ1Ѽ£RÓlÆã ¾HåýÔþÎÞN¶áŒm«Ùx…? \áµm»ŒÖ«ãœàÁÙßðb‚q+¼s‹yï,ÆŸ:ÛÍ6 ГMÆ/r—›Ëh³Æ_Køá:æ=ïw¿^ü «~Yendstream +endobj +1205 0 obj<>/XObject<<>>>>/Annots 628 0 R>>endobj +1206 0 obj<>stream +xW]oÛ6}ϯ¸@QÔEcÉ’¿‹m@º.CÚn‹÷´ %Q6IôD)®ýøK‰²ìØk;±MóòÜïs©¿¯á/ yHãÅùÕÈÑl6Æûd1Ç{ˆÿRRŠÅ‚o勧s/hEÇSoìdG€õÜ[+NglÖIYùß~¾ +Çà˹·¤œÂeàMÚUFw̯18˜,œႆ3o +  ya»b fs4±Zàê‚»èöcàäd·ì÷ngxs‹8õfdÝÖtdñ‚qƒì¢Û +—/&Ðe¼õfÅ!?‰– »Z¥ÈÍl1§Ub£9¢UŒª¡³ln-¼DžZ} +n™‘³ ¨+ƒâ0§²=g CS gè6K˜åÕú4±ˆÁÛ¬¦Ÿ+çV;²*•K®¬¼d*™ãÊ¡Ø@©Q]1!þ©ÀNI÷G\…‰.^0ѵìoOÜ¿lg"vù\.ŠšÍîòåFx7MÎ6¶o0}ç + éZ—rÛOß!Ê=¶7¦[sZtÇÝyñ(Tf‡-¢ê*Úö†Œ7ÚP$â„â"ðÿk±É£3-س÷N>ÊRd´¥È%â‹:Ço‡jËÊÅVkG†«Rg6›‘܈G¥KÐvãÔ'¯GÝM¡9Ñ—îãTžÆiµ‘˜lb"M\ªÈV"åÚþR!ˆn”¸ Þ( +Ô|\ãÞó”.é²$°†mèñM®•¶×UÄYœÎVGdmøþXg:ÙŸddÌ…®Ïs‡wjûñçy?œÛxpÎa…À Y¡™»„ ¶@^QQÕ†^¼zqÝðÙÛïoÞ}xå¶0œب ƒÔöÆ3 ïéKû¢–Ùž±"ªU‚&e¶Fxq„öKŠâhb6ž} §ŒÏŠ,ÂÐÿ/•ë¯Pi™ò¢N |ƒÎflÉ7p„š/หtæ³o‡qvQ%·™±ìí^Ú¯½yà0­ìÁƒžð¹,¬ÕãámC Ê(%ÚÛl$¸ü~  0¸kî”ûwOh_°Ì +Y‘ˆùÖxÿ’cÒO(y›qqm𑨮 |^û°¶¨üçoýç¿óAÿÏmö '/¼Ù4 ÙŸK~f4O1¿”úšÞöŸfl¦ƒžpcÎGh\ö¥áyK ÖbmècmGÇd>ñæ3<û²ÈÌÞ\~Z]ýzõ/•óa{endstream +endobj +1207 0 obj<>/XObject<<>>>>/Annots 631 0 R>>endobj +1208 0 obj<>stream +x­V]oã6|÷¯Ø^ââ,Y’mÉ P¹|Rà.×F‡C)‰¶™H¢JRv ôÇw—”GqRZ$“\îÎÌÎòÏQþ„D0‹!¯F¿\Âӵƈ—sóe‚ŸÃ™Ÿ€â°Â½ž~üóûÇQ´ôç¸9öc¨ æö(ýWÂÝp{:Y`<:Âý}dX`°ÅË…cé…‹à1Fœ¤…tÁã¨_øÉezÀ)¤+ fV‘ø‹x iaK ÍdžWMÉ ½áeùSz?ÃÏ0ÍD=͘ÞÐÓëSCŠãu¼èÔL‹ñ¯RÔ`6îÎ?}8ÍÕ–+0Ò~÷åò +Y1Q»8ó.N€‘b„Ï_Õ†öc€•,K¹õrYU¬.(JÅøËð÷ý¥OL`·á´»(ê._Þ~:¿ùüüö1mc֬ⴄé "JG®`/[ßD]Èî²Êfù¼¨D-´QÌHuäÖŸmLN†i`O§Ä–C£ÄV”|Í58é8ð|ujY8@OIi~t«‹¾d˜¶ZMK™³rªY•1KfÍ ¨& §ó¾ÂU\“"=’ ¢¸nd­‘GqÏ•Þȶ, ãgðŽ4Á‘><å +bw”•wßÉ ñ4€ËÅâµÃ¬W.CŒß¦ ´Íõ†R/ +(¯dm‰6\æ‡ë1ÍnymZV–û ©v¢,aÇjc+ ±Ú;é*M×ám:W¢±;Xk°'Œ@‚Ê=ò¾•ÆÉ ŠC}»N“¬‚Ãj@½vG×L k)ux#µY鈢Š$.Ý·øxé®Â]ʬ{%”6>¤Òå‹ð ow@Ù9×@ ^í\T:IóÌAøŸ„Ûƒò*7'°rÇöX3S¬–¢°4–‚`í,D·è VŽgHq‹¿jëMÇ÷¿³Ë ãð7¬oz<‹W³L7xå Y°¥Š6çÄLƒä¸„qßÄj˜¬Ë²#¥7ÏY-à‚3ûû,‹ƒöý,wX¬3Z*Hä0jO­Ñ´¬8Š7‘6©2R aF†R«¨Ñ9þZ±íV¼ömÄ:[á9úgÆò`‰y5Èê[gØ/rõáëæ1œs|7¶XªêqÞt ö# w¸GñÚÚçE ‰“mäâêöý ÷DÐC|iôëY«ŠnªV>¶ˆñÁ‰{ã1+¢Áþ•™õ±©¾¡>D{ÿŠ,=Óë“Núi}›m…l5× Î#œ@ä•TûÞ©O°®Û?ø ÷8L{ÓÐœíøØ;ybé@~ Eæ¬Æ¬šp&ák}‡H4ø×J¢Qjp¥de¡èþ…ƒQºWÏ,BÃÇGN1>:w×®Êî©äÙSÏX¼´/7*õκuÂÿeËøë²BèBL¯—Ý8ã…/Bˆ“Ä?­òœáQòžç.eÞVèŶi);/Ä÷b°œ—(Ýbœ¢Ôe´ z­á¶µ:š's?ÁÇ (žÑÉ«tôÛè(#Eendstream +endobj +1209 0 obj<>/XObject<<>>>>>>endobj +1210 0 obj<>stream +x½WmoÛ6þž_qÈŒÆÅbÉ’ß CÇ]±æe±aXö–èˆD:$×X÷ßwGJ‰ãØ]°·0,ñx¼{îyŽç»½ÚøÁ †N’b¯ ‡ðø¡oð¡ ýnDÐð{¯Œ@s˜£mw?|T¶ÝA÷Á6FûÊt›Û(¡i/ŽƒÄÑpÍ/à»6tG=\é ‚ž÷r<Ýrf8iæsˆ‚n'†>ÙëašºÐÚ0Mš'§ߎUÁ„„%­Vyεy=ý´×†V„Ù¢µ3:áÚÂe9˅ɶ[\%/¥…Û<œJËõB ÃwÛ¼Óª\À¥ÊE²‚Í™U.–²:1œt!Š(£–O©\jä4CàK™X¡$ÜpË¥=€„Ij 3¥á)X¸¥s˜5 æ0S6ƒ\%,&S¸Ÿ½6î醢2Lõ +lÆkt:ALèÌ3µòU¸û ö>T2î]2ÕJÙoüj¯ZmR<*,˜1ËÔ/ÖY®mýE•`2Uæ©K€¹Ð1f1lukðù–ÃJ•žß ¹MÂmÞ›Þ‡Á˜¹ì õtðé/â‚9 ’/É3ñ¢Ê¼©9„÷™©‚C*4O°d‚{àR>gen1pžç&¨¶×hPÅ Ãm6sèa©°L©’XH,»GêjtŸf·†Ð×Àu¾üÎÑZY†¾,ñ™r!… R0–i‹44‰ ë¨NF^It^×ïú dùÙû|R/*4¦æWËŒ ™ ™nT¸ )ã2Vrž¢§;ðx6G½P\›žL1{æi·i&·˜ùð8Øzt)%⎴VÀäî‚´MÅxPoUgËÌí!qËEIA*sO— ´HLŽ…fe,/Ð{ÆWî>/XObject<<>>>>>>endobj +1212 0 obj<>stream +x­VkoÛ6ýî_qj3D’%¿[C'@Ñ¥Ýfcûw¨,Ñ6ItD*^°õ¿÷’’?¢6fÃ2HÞǹs©ûš‹6}] &¹ÀE†„±J !_ñgG=ð%#ïn½hã£C“£´5®B®tMÈTÄòNÌ–íÕÓ’)¾â"Á¬µöÕJža#Ò»e*²õVBªz1ÓÚ„ª1¹¹$†*÷Ýô4¤šŒaIÌfÇ:O§ºå))ÙDÄE!_&{]/¡ï9"ú ò¹¾ÔÈ"{ÀâÄØg±0ƒ‡Ê[Άª|•ƒï8Uoߤƒ:D¬„,— ®¸à·Çº8Ú¨s=,¿ÛïÙýž‹þ``G=Ö&7—ø5_X 0A3š‘ºŸ´®åöé%jH7ã Ms1lM™4¯$S=<%>ffàt]{@ïBô¶ú=­y5­ýVû€ÖŸÈendstream +endobj +1213 0 obj<>/XObject<<>>>>>>endobj +1214 0 obj<>stream +x¥WÛnÛF}÷W Ò¹°HIÖÍ ‚"ij4@ƒ¤±Š¢€bE®¤H.³KZÚþ{Ïì.%Š܇:€#“s=s梯WCàßf#ºR’_ ¢ùœŽ¿Ì h:¼‹&4žÏðy6ÇG#iÙ´¿²ƒè.ÈŽ ߈Òd<‰n/½¸L¢Ùù‹KŒFã£q+çÑ(ÞÂÞÁït|ˆçøâíâBøñý€îh±¢a4¾ÑùN¦sZ¤.Ë-’mU–•F'´SÅRiz½ør5 þ°A–E^½ +ÏFÃhÊϾ¼>—’ÉFӋ߬XË—Ë*‰U¡ª(­È—"²ÒuífƒÇietÎÉw+rˆþT³´çÝ„Ø{ÎkÏ“ŽížèRy¦qÜ¡Ž¼²à©aû-P™²V&µQÕ>ÆFôÍ¿§Ï2ý}f÷ e~ãºÃ ¸]œ©eÜØy&C~Й0 +ýÃfà¾Pc¤ †ç,7$Z¤M\[óœß0—([5ºXí¤$®o˜.Ï:µ§ ^Ã:i9ùEõ·øÞHùöá]ß–2Q+•ðô;§h9<;ç:6µóT3°!Õ"⑈Ž‚|­Ñh)æŸ4TXŒÉMÒ ËמB}¶À>˜á&I¢kÌåÿoô¸Ïw:ƒy:ŠÀ>Pû=³ eñM#²ÌíÉkGl³x)Ý•À ‹€Ü>d.Úä"kò Ë5Әτ ÂØ Vc`>ö°Naöçnx[i-¶Ìã5šBf…¬Ð»PCð¾\Ue$*c&ÅÂF…ßïnÒ†p¬;4àŸ*¹ØcT¬ñfyF¸ °åŒg.4_^ßâIÏ÷ˆË¡!L{ëxy^ƒþíáz¼Žš‘2‹†Œ±í€åP”;j|â°3uRး9¬ÈD 6œÔ…T2øþÏDbq'8Fú4›†®ñš â]ÝGIºú<÷—û'”ë5ˆrª|Î×*Hœ\Ý­V<˜Ú{ Ÿãþ=¸Ö¢Æ·v7Ÿ:¥4ÙÞßUn‹ MÛ+±ÆA4w‹ášW¸‹j\Í’eÎðYÄE #Jjº5ŸH{xÃ=€F­Àt•8é` ÅÅÎaì°Å±vÊLTî„´–…4­Àin#œ$Þ½uN áßÉæ·ø®‚ ‚Š¤½‡7Þ¾¡OFá[øNê¹ɺýF¥?8ù.|¾$q´kKkw(gãh†/?øÖ“ö¦SÖüiqõëÕ¿‰;‚endstream +endobj +1215 0 obj<>/XObject<<>>>>>>endobj +1216 0 obj<>stream +xµXÛnÛF}÷W â>È€E‘º«€:m øÁh륀cE®¤I®²»´Ã~}Ï,©‹)ß*;2 XÖî\Îœ™9Ì÷£ˆBüD4êRoHqvã1mßÌB zÁ€ã(ÑhŒ_¤9ΆÔ{ADýñ¿GQL6_ÁpÖoµ™^—ïV‡»¸P[yÊc—¿¯O†“µÙÏSvڰܹèÃ5MçÈd8Ñ4ñžCšÆ­ÂJcš.¥•‹œf’¤°*-ÉJG…Uù‚ÜRÒÉôÛQç‚s`C-›Í‚XçóêÏkû-Z¤z&R’¹3eõÝ`}…œÌV©p’–:“‰2»©Ý}ÄØBLM¯éâÎJdAÒ™»Uã>ÍUºÉ!^Š|!ršDšêzPùLå á‰8–Ö’ÊIP&ò\²*S©0|ž³µ"›‰:ž¨t96ÐUy@PÂÒND©Öw”ª; _ÊþZåÒ„‘‚~¯ Áÿ­(Ü’ª—‘ß e¿:©šu¬Œ £\ɠܦÊ:¤Õ¤öeÌ­W±BYŸô\ƒXý¼‰W‚·NÄw0€xͽŠå™--rhsú‡]Ê4µO„Ǻð¹ÐÁ™mM|\f´T:çò¾Óè¶çÛkF<³^m¬T/T^QrÛÖOµV.…Á˜¨ÛEÒƒ(ºt”£Û˜áö'PÜó]:W>QÓmŸ\Ó7›(rõƒÉŠ&º+cÝíJX{8OùsíKùR[êŒÔÖÄ;‰Š­èç Cø  ·3úq-µéŽQ½rèX¬<~íÏdìH«±7ªÉøRW^æ~` [yJ—$’„÷×RV½¸]£~!ìnßéãq¼uÚBGæÒ¶ÑLεŸYá° ÁägÜqÒõþÛÔ„wM³wˆ™¾—Ø@§¼Me«l´v˜ .–ð=V-öl.*~‡¹±…ß¼‹mÊÛl×-VÇ´Ÿûó¹"ã@bîª0š¿Œgµ€62*!='è]²JJt1K}µv@[­œ% Mk~[¯t:“jããôZò\kheÛv%c……K,±Ô¢0‚IV…¹ÊþÚZ'm„_ª2±&Ä\-;áè¨Äêî–ÂQVÒ:D•*`!ˆRaÍ4ÔGªcÔ°oð?`½2›œLQÉ`ŠŠÎ5Ë-ÆC@½r+·8Äž.!¸ü£ ¯6ãÂ:©«“¬ì|~ÝÀî +õ)uá•â¨53È{Ê Fž¶€;”Ã-5+Y/ÿ˜æ±@J,õ8pÍ:ßa '$!¢O¥YÙ UŠèñ^kdª²•ÆnF=®àr]ÄçdÛñÚ@=ÜŽ$ÔÓ§ßnZÇ7'›T Š/êóð˜L:ᤠéúêòSóvó3ý®W¥Q‹¥£›V|sBÑd2lãmrJ×ENW*6ºJÈbšä±—1\ÇCçÈþ+[°ôêßÜËdïОÛ/çWû¤Ü5»wãK™«Øs˜õ¶XH.]ód㳀ŻÍìÁŒ-¬ÙoûÇ-»ÐÛÍüry}îut=Bð؆‡˜õî…ÿûL'J¤·œ«ö›2u.{ àÿ!òv3D šÊÙmàR=²øb©6ŸÃ¸a¹ Aâ*  s1®E£á "< GÁd蟲®Ï¯>ŸÓ£¿ÉØaÆSt3vÛÑðãµG!Óðp*­ã!7]âÝÒ_…§sÔFCüÿŽ8™?§Gý¹„_endstream +endobj +1217 0 obj<>/XObject<<>>>>>>endobj +1218 0 obj<>stream +xµWkoÛ6ýî_q C +Ô²e;²²oîºÁš ›½Ç‡-Ñ;ITùˆëßCJrRÅËp‘@‰-òÜsÏ}ðòË ¤1~BšOhQRÆAÓÃCeø0¦I4 BšÅsü?›Î‚sRœ6X<Æöý£]ÆqpÖ.ž`ƒ_úa5]ŒéœV +ƒÙtBÐ΢˜V©‡Ó*9MM!3Q³&Ǿ/V(žÑÈj5*Äz¤yb•0»ÑO—ËŨfå­Ä×@KÐ3jw·J›»šiýnõy0¦a_`âô¤÷Yé¸ôK*—Úè;ÇÍì!J“sÕ!j»ÙˆDðÊàîhoEµU + ç`~¨'´HiA±dËx ¶=2}Õšè@µvã#7½šOãô¬¯}8ﮆ{°gîdÁu÷烠MýǹÔÃìë°ÏÓãèЇ;ŠA¬Ã>ç£Cî(:=²'´äZ Y½¾”:ZºÝø¨Ô–¦'tƒN¸•*}=¯“Ž˜k¢~k¯ÈßXãOàzŽ>…{¹SÓ©öýAñ¬*‘´u-•¡Tô;Wk®¤¦¿ÏüI)f\ oOm•ÈÒ5M2’¬æûÕ·ï^2¢s²vx¬@ÔŸáÿŸZŸ½æ˜k»Ÿ×å¸È]?i{ó°Ð¦Ê@îsoÛÕ^ ×ßiÇöˆX]Vƒ×¾|ßv`ˆ]Ì( ÝÜ6l·ádî8LU—Ä +-‰¥)Æ4ÖÛL…¨8±ÁX„ÙˆFžæ ª&㆔HInˆU•Ü‰*£TÚuÁ©V²¬veØ)? &n”ë<ÓAûb3÷âZn14jÃP½;i-Y¹fô³ãE‰¬*žgÁäJÚ,oÖ°º.ºš69ó;ÝâȬ;%0:ò˜c÷­·9º8§pî$Á„‰qØ[ÿ$Ja|oð³çƒlXÅ"ÇðŸf꣜iÈUÙÝÅ9_<ìuüÆœ«\oQ¼àLƒÈ=Wþ„ñ$·œrYs×y$^ q·qc H÷ôjô/î{LùÃN¯ŽØ[+v$+<Ø=sap]ÐùÿITö+Á¤‚‹ÐPï´áå{Äßä^L×3µçãçàýÊ™f¼Ç­ áÊ0áìÕ§'Ìt{Ú&9¾jñÖ Üë÷¿ÛóóúÊ­Cx!¢£‰Ø#§z6÷\ZÖŽ¥n»¼ÛtÍ Þ’«{‘àïV˜gUJ7…Í2¯Â3ÿ£Þ%S‹ñ³g¦u- UEñ»æˆ‹«”Î[87ùëå²Á_\Qöddô×õ忈v•JÕ¤øè"é*pÄ!MÏ›lºDsr$rÍ¿žMšKÏ +ΕHppÐN!<•[XÑŸ—}´¼1‘z¾•tW5[d·¬¼Da. FÊkPŒ¯‡žë˜0Èðd› ˆg+g9‹SQa‹¢ W7QלW´ÞíÛ]:«;¨E©p·&[øUA=¤¶ kãã÷"„m7x$BܪNã >ŸRÍ‚qä‹s¹¸ú° %?£ÐG™XwpûjuàÃ0ÂÕ6žÒp>Æ5=íól> 渫⒚žF±ÛòÛjðÇà_´Ð¼endstream +endobj +1219 0 obj<>/XObject<<>>>>>>endobj +1220 0 obj<>stream +xeSÁr›0¼û+ö˜Î|tÒf¦gÜ–N{èE‘Vz®$âúïûö¤ãŽí±@Oo÷í®~/rdüÉQ-q[B‹,ÍP«´FQW¼^òÏi´ÓÆ]Q§ËËûfqóX ÏÑ´±IYWh¸Q–¡‘WƒØïí<¨…3 +ðýéóOðò´Ó"ìÄô’lÆò ~g<ŒmÉ "²àGIÎû ÈAiµJ?4/‹$C’ß2ÁF]=ŒÎiúãÔø`ì³± +Ûõ©‘aiKA¼jaVBJmÀž¼7Ï\s ÷êà -øxO“fÐî4y9z';âYóW[xÀ3àS ƒÇSƒÑkç'Ò7ò$]R¥uŽó¿–e…só¸BΊ¶H–uš¯UZN3’•ýèt®;{ÀÄ–§’†U=ï>èášù9»Ý$ óˆ¶DñŸÄ ñM»7#ùÿ`‚Ü]cÛ]'¢ë‘‹l0r–c3©è¯Áº\ˆÁv;Ú;#‚ÆÆHGžÚ€¯ÛHÑ÷;ñ¦Á+:°‰#ëEàoFiVJ ½öÑô ;7C1¿÷6ï^ *85³°`—IJyèQviìC ‘@ç4»ä´'×pA¨£Çf24³”äÃÛÑNÌ}9ð”æ˜6ÖêSs²¶>Y›—|•ê[äw|#ÔÕ·õæ~­£->’–vš6N•œË“*[ýotQiUÖ|m¹U¹Š'>5‹/‹¿ê?0“endstream +endobj +1221 0 obj<>/XObject<<>>>>/Annots 640 0 R>>endobj +1222 0 obj<>stream +x¥WÛnÛ8}÷W ú² P+¶|ß·\Úm°mš6îv,hŠ¶ØJ¢–”âúï÷ )Ù²ÛÛAlK"93gÎœýÛÒCšÅ4š’Ì{ƒh€;û÷ôæÃ(¦ÉtÍ)§ád„ïp•ÑC/ £áþi<Ÿv®s gÑ¢³Vh2™às<Ÿá3Æ¿U´îÅÓa4¡ñ`†Ol›Ny‰¿b“£é<Óh1ŽFx:ŽÇÑ´¹â§Ýk<O±*¬õO;×x:]ÀÝÃÓ«eïâå‚â-×@e:›Ó2ñ`àŽ<{e¶Tº6ÅZojxú ò•€Û1 G‚î­Î…ÝÑÉ….ΗŸzêÇcœq†=•5Y¦,ßf#ÃY0Ò±Kî­²êßZ;])z¯D¢‹MX<¦á°YÏ,_©µ;S“ÄѺ¨ ó{HT¥Ú‘LEY)ûœÊL §(Ÿ9ö»JEå÷ +\H“ã¬J¬2E[]¥| öi%œ–M$ÃQpt­3åÈ)û¤%~ÀœËWï"Q$””TáOä;"Éu¡|¡R8·56!UH»++m +>ÀÑ2U'V[œK-݉åàîpJB”ŠB`°Gè¬õäñlòx~ŒÞ(J±QÞË*UôâàCƒ™uÀîÕÛË·È42&ÙÉ(œuœ6ŸÙ+!?o¬©‹$,™6®Ä Å`ˆü/¢ÁÈ'ø²®Rcstg*õû©sKNYbd«¢"üœ™•.„ ŽÝˆ'Е( +Sà”göÝß\“÷øÇÆ'ƒxmºšuwˆ—ôòòݳˆ® RÝÚƒ50ÁÕ¥²N%@wµ 8˜BùÐûûpfÑ<„óÖǘWJ«å +±*0Ž+# €·’‘¥XéLWšÓlHÈ*”ÎG]$f h–4F±³’Ú€µDgýñ<¢LÜ= Ñà9m‘gÄT"5‰7ØêB*¸»ÖRÄ[‚øöc×~ßU»Là˜øª¦Ìl8èµ5ùÉ.Ï«ö x•™F2›j+-Qd¦®2]0à ª¢tT(T’cí€3'v»å" bssÑ­gÊa7 MÅ"'Ùg.à°ƒ‹•«¯MΡ L4^ÂnƳk€ÅÌÈÖ–Ö^0üé…aвÌlÁ”CM\¾4?ÜÝþýÏíÝÃòòõë(­òì;*tbzf½²ÀYV°Viü´¥˜íh¤‰•J±HFt RlÙ“€|§ Ñ^p#N^X B›ÀêN•,Bˆ‰!9 +ž\jê,ñò¡`µ¯^ôË~pA¼*Þz¡®ÿ>—PE.@nÐ-,¾¸¿¥ÅäOeWÊšP5¼}£YÍŒÝ};èï‰Á)µîCŸoš¡®õh¯ +Üv±@ Ì€*‡/ž~¢e ÷?ÌŽÎ÷òЛöš–:ɧmÐa/7ÙÊH“y„Û¶zp¥)©† MõòÎm¨RõD¯×8“ד»åø„-Ç›™Z)R°RªØ7tÓØFõpPÎä€Eç{±o©rÛm]ÊJt?òŠÌwø…™Ë#d-¦Ä' =Û#Òm¨†ýØÌ ì #éc>õIF^ßq¹×ôk€ï9• ™b0%ŒÙHb`©m>LР]3Q°È²€Ê‘8èÇ“# ˜¡OB?O¢*¡3LòµL™Ï¾y´rúüTŸ“ªdE„· 4¼VÀ¼U´ôj‡ù–ÓáŠ+•Ô˜¹üv€…Mæiµó'AéDÅSÅ¡‰@– …W‚0Ï`$ª 3ölu–'dñ“ FׄLÁyD[ã›9Û òóÎ+Õ$š&Ü}ìý®#l~<G³é>/XObject<<>>>>/Annots 687 0 R>>endobj +1224 0 obj<>stream +x•W[sÚV~÷¯Ø—NOHÂ’h&Óq.NüPÛyéÄy8HP¢[¤ƒ ýõýv„¸éÔ™€V{¿/ßÏ\šàŸK¡G~@q~6q&D3gJÓ(ij‡ÿµ¦%#@ºÿøôáÌŸùÎ%Þ$9M'3'l¡ŒΆ0°—¾ã±ØpêD¬áNð.'¿X, ftõŠm¢™ëÌZƒ§aMb²çué³9Á›¨XŽÅyãºN@—ìqSxÇú&±@‹XrN.|æ@1Ô#CO„‚Œô¸ÀCkÌT€çÍD¨U(ÀçÏX….ÊB=2˜ö +}zœïŠ!Á`ó¢H„Fl²@{/|ž=ΟZ>&ñØã\d‚œ2‰z\4>‰¶+@ f½>W€‡Ä°óV¦=ν´|œAW€7¹”€Š®{ܬ G@žã ÷B”"í1JF½™7*o|=#7¤ù-lÈ<‘™Ð<>[Ëtµ©ÓbEf­éAå EïÊ\¥iê2Ëtýbþõl|=…ñVÐ::Ÿƒg™Ö¡ÆèŠÀ×Z§h[ÖßøÉ +½÷–Ò†LI›"Ñ`QE":+U«\¼¢BǺiT½cIM¾pbØçÐ mÓ,c#&4r¹d¡º( )ct^Zë‘þQel7;2ºÖh4Ík½#…ç¼Ä‡Y+ð'úûFí(.Ÿ@—°bæï”S®Š#Å•Zi‡®Ë<Å“.R]Äúå‰Võ¤i¡uAYZ|ƒàmjÖB¤b³QY¯!ÑM\§•IËÂiU¡~¦ìãG6ASé*¯2M6‡’ŠóÎNûºËÐ9-aI"ÀOˆþo댓ˆð=y¨|C×çUV.Tö¥5A†^þ^ÑÕ¤15ºFðeXpÔ×ô¨#.´Y¤%òˆ„2öœ^·{$ZÏïï>ÜØÁåé U\/«ºÜTϳÞ^}º½¹:`Yõò¹·u‹ì­ËM–pÚÄSbKšk.+c„?W¨Øšu¹…[,õÐx‘é'-UÇnS¦X[Õz©k.+ª3z§%0ÊV÷‘ í:ö¬ŸŽÑ¸f·Ï=žç´âáe‹}-ðã‹S;’Nóñó³ÚPäõ®2p·RMƒT%(+n,tÞ÷MZë\Æ–Û©¶V@ÏÞ©mö¬ÖfSUemºôeåª,ž©»6Â=š3ö3¹[ +áa «êr™fºùýÔv Ëͺ3ú¿Ü>>vL€6Œ{Ö «ûX4ýÚкÌ5%ˆZ ý˜J(KKÔVnjXØ †l.xxm +΂2ÿjgR§Oûöû(m?d}a†¾0lÛû§ž4•ŽÓ% ¦•.t™`ÅÙ fÓŸeâåqXÌaHÔ:âÀ¼¸xw÷pq!áåIÎã÷3&‰Hþ‚^F™±©‡ý9ÔÛ9"ïœ8OøÅQ&^ –‹ˆcÛÂÁ lºA°z;N-–ÃxÓÔciàqÃ+tœ¥‹qç³dbA&TÙ®3ûtblÑ׋£‘28¢…QIžÊb_ã²ä~âoï%9o‚ƒ2?²êsWɲc}à)¶,:rŒÅ3.LËt$ëÄâ<¢+Ŭšo]&ÁdrDÕ7Èah ûƒdć²l³P¶VÁÜn}P1V +6g¹¤ªL #7Ά5vÚßX¯vá«Þèr¡2ÛmŒ_£n¿fÊÄE_êB-2ØÃ@.ŒD•f Rvßre'\Üió#«o:Û“æýíÛOÝÏoînµÉ3¹Æ×q»ëG8e]êΟG/Ûݵ®9ÑÌÇ™‡ë,¸ä•úpõÇ›+º¯Ë¯˜4¸ëâ iñŽu\N"ŸFáE”üŸ{…~ç0_貸÷ó³?Ïþ£öÁbendstream +endobj +1225 0 obj<>/XObject<<>>>>/Annots 692 0 R>>endobj +1226 0 obj<>stream +xWÛnÛF}÷W Ü‘‹ºÙ’Ü7ÛiÚq’&*úPÅŠ\YLÈ]ewiYýúžÙ‹.ŒœI“KÎåÌ™3Ã/'êãÏ€&C)¯OúYw¶?>ürr1fC÷ÇÙ”jº¸œfýxUÑG~ž.¯FÙgÃIv/øhﲦËËìjïÌ¿6ÁäÅtCü3’ÞÞàjòõÁÍì¤÷ê‚š-8ÖñtB³Â‡Ú§YÞ™-%Yi¥¡º±Žl³Ziã¨Ðµ(UúA+KB$èlö Æ·7ÖùKIçÏÿÉK‡ìRnæñé.bcÔfEç~8žD[éØŒ€hÇ4—äf ©Ö!Ú¹ÑkNR›¿,´¡?KUà6åU)•#§‘@.\x?¦)ÇÖ§­Ã—·½¯¤°h.` /²ÇGaJÝXz+ÝZ›ÏtÃ>Kõ€Pò¦†áJ­B^5…,h]º%^,-¥u¦œ7þ‘µÒ‰²²Ù1Œ†ãì☺Ãi6¸¢îå…P×–>Šz.Àƒ!b’–”v¤œ‚ \׫J"ù’ÿß…«ô`t³¢Z¬VœÍéI©¶è½…|Ý[‘ÿ¡Ê§tzßñ¹"]#EUmèKSÂ÷[2ì)ŸVS ˜Áä²+‘Ëû³sÚè†o5Uq|(u˵(jØ¡ÛzžåZ-h%Œ¨‘d¨©€uª‚4sÄå8ÃÓ—Î×lž’u›J’ÈsÝ(—ÊpEôÆ$íŽ.B n“;‘/K%if¸I®ã‹¾/~Ó¥b·žs6r'Æ>ìCÁ(w"=ü ×Ǿ¨Ep༃ZKœn¹¥p|¿±^Ñ€©Êy¼¹èùÉÜ}ÇœƒÑKÁøã-s†[Ø2Û•B—dôzÇ  Ø4z}sè ÿŸ•^Ã"xz ¦5\ƒLvšÒ\žÁüJX‹.*ÀO¼“<ÌWä!ž÷"R@œPE绿6P;ð«n'ÌÍ{NÒâ½Î¾ÕÊ]UÒd4ãÆôˆzC¥ÛÐü`“ éÊÈGÖ ÀÔ(U›ò_@œÝú±à+ÂÍëwIñÅÂ躅ç§H +N$ÙsåÀ\A1¥õT‰‡\—^ v,´Íöû‘xØÇŒ õõåo¹L jÏ "´µtõ´5Ph‹Œ~•*—ç¨HÒÎí3Œ•(¬%0*©–õWzÑò,RŠs™ dB%ϨF+m-çúLÉ᩹%Tv‰Â+ݪûöTË3$ •7ž$õ¼Þæóþå-ú]Ä#ÑdÛ‚àÄêĵJ |¬à›Œ®c_ÀÌ9-õš9[Ñ|Çü$Æ¡$HtRb˜üÄ&0–»»¸CFDOEŠÏ“ÏÏ4æ>ì0qèPwÜÞ@Ú½m4ºDÖ÷´·« {ÛMð½>žú׊ðD’¨Îý÷M҆ŚÂ6»D–´‚þ3‚íŽÎ¸4éŸ]vpä±Û•V7Ž?[lÜfàÉã ìQ:L±Ó“.ïM-0¯ßþFúáo!&UE0(˸5°¹îPJÙõ£E¶W¢ç½ð7¥´ÙýYˆðp1ú iè®Â¬@9 XX°K ­ÅÆëHŒç¸|Å2°¥UœZet£ýæ²-4Êú<ðÞypXÐ|ƒÆUÅÑ2ÿ¿uïôê‚9ÝEµ9Ý iG»£Iy%oæ:Ï>æÀ^D±‡°.ýºW@WB±q;MJˆ‹u¨*ßBãÙ2ŠÝàãgŒä!$/}Ø>–º@]¹Q¸¶{ξa-6X¼¶Acâì¥ǵ/Qµ9 +lj½þÁö‚µq%‰;" `GŒ¥¾õ› 4Ó÷îè2h™:I ùKÁ/ã‹Òð§“+Ö¡Y¬³çDÕSóðùþW]ÝB.I ü…À¶ŸÏ÷Xñ9¤ÈûZÃëz0p™¾[è±\­³íà‚ÐÐÒ¢ð’f^øE#L§°r)Þ-™iP<^m[!ÇTr} Sä F|Ö0^AÖbÁk¹_l½)UóDs|{˜ïÜÅN¥7Z»Ú™õkzv^*ü" gÒ} Ö†nA½B>öTëæÓQ‚ä4µ֪ϼÓø®÷j‡Y×Rí.Deã§]z{ïÑÌ?l¢Ûá:•‘ù—ã™ɦnÕõû.¦1«ÁŸÈÓ/á»òãõÝÍ5½7ú“ÌöŽo8®›^èNúWLýÐ3¨Øñ†ñÃïøö¿·Œ^L.²Éx>}'Cvôóìä÷“ÿplendstream +endobj +1227 0 obj<>/XObject<<>>>>/Annots 697 0 R>>endobj +1228 0 obj<>stream +xWioÛFýî_1uRX,ê .;mØ®ÛuÒÆ*Š¢.Š¹’6!w.iYýõ}³Ü¥ÛAQuDîìoÞü|Ô£.þëѸOñˆ’ü¨M&´ýS,ðÐ¥QÜ‹†4˜Œñ»Gc*$Í!ÛÅíæχø !pF9FÑÈ?dt{(ìÇýQ4ñŠû¸ìôƃ ~öûÃh=±ST?±¢ÝgœÂ§±—u§;Ï9 zø²½» ÌýòNôú}HÕÑÅÃ(~2º ñ¡ÃÓ£Îõ€z=šÎçh2¦iêéÒ4iM—’^M?Bè9™VG–Ig%¬]§õI¸Ý"©ËbCk•e”)[R‰Û¹H–JKÒ"—8*—$èøå1‰ÕJêT¦§´6ú¤¤¥¸—8rŠMÁ¯Y ¿e+]j#7}øÖ¤+œØ¥Ä_¡SÒ†–ÊSUȤ4Å&¢kS|ù*c».¤t’šÕjs³U–z³ú?¹ãHm¦>IªìyÀ錡ìEƒ¸Oma‚ᶳúòüá|Øâÿžï“oyÿÖ*ùÄPí)kwRyßá¸Ï;3¥;s‘Y/Ðo‹cgßÌ̽<õ‘õCúž6´´(šf@Mo(•6)ÔªTÈŒKß°rN“L!øSR‘ŒNéBX™ãùÒ䫪”ETû,î ÖØnÜÚ3k2\Ï6”Wà|`SïdyñöýmmßÌwÌSiX裻R~`ñÔäB鈦ø –P'(Ü ·¾`ߊ|&j:jS¢Â³ÐêŸ:ë$ìÃÊ®Ib*]:T€ºÆ€ùðάᱨ‹$1E!íÊèTéý¦Õùk ¨E˜RSRHQr½pœZ>”dK¹"e9ŠúÐÕî†ëHÙ?|½N %F—€‹mòÛ5*ªýI›µ&¼,•ÈšÒq5>…"eœaßS&5(óÊzm5 †Mgiê×泺{ܵ&w¯j±- “ç\ÔˆÚ.Ù“¥,dSZ¡M5(Æ”/öMµ¨±@mAíÜW@ü¨±p'=k¶ûlí<ºÙry†žâ'v¹5!?¼½"Oa-×A´AH.¤–gù góÂä.E¿mU<Ï_€{Œˆ~·æC/ú 5ãÔyì©<—©‚Ùf?;\É£¨;2o„®D†juÔã¤oí>[%_.Ë¥IVòs¥îE†ÖÁ°<§çŠ@l£aðw¥S³ÖSúåêrK>:¾•Å½,^Š…,Ž1„¥Â¬@Ý­—*Y:‚Jelù’ mÂÝÜ^óàqB "÷uóq3)Y +½õëP-§´1U¤»¯2Nþ # ù@V˜¦UŠ ؼ{½Uì€îf+»aÁÎö½ax‚Sš)®K¤Ð勳“ÏdaGwÂq³Ø2¤dªF3Q,°\¯æ@~*n“‹R!7ÁVÉòÀf ™èSÕ£×µ¶µ(ÐÿbáÎõõÐ çà«çmܼ=~¯Ûˆ°}mŽé’û!›‚ù¿dL¹ÿÒ›ºãºlî.7¨fî”1BG—¹kq¯áŽÎó6r÷ŠÖb³GG_Ñ5H¡X-sØ*,@ÙÊ2×Î¥ªGw·MçÜá´”° &¢½sæ<£ úÉ©æÁ äVéD’DèÞê“ž":”¦ ²ö|Ë8e"ÕÅÉC^T%i©®ðÃ:ÜýÈØUð»²uS°Õj…%!}¸ðºñ¨ÏÕ¢Bó™ã°EšÖª× 2X9W¥kB„Ísg‘@‡XU-ÐL?¶]¦ž×.~ N̉¦ðú 8 ~lWn·ðõæ“ òp¢_H&¢Eí†åÓIdú#:Î ìÏJWd7˜Ý¹ïÓÝz û[³1þ¹ÈÌLdóØû™¾Dô‚¾‰¢¨¼ëpƒ@¬D²ÇöeqòÝã+‡KÊËÛ$/Ÿ·SjöLj/¨‡o¤¶¥íÆIíúºòS±©Sï8Ê”W^xÈã%ì—nU ôÊ­gûYã¡ÛÔåª0‰L+þ– Cãs÷ÔøÎt/ +^7¹µžV~0x„G~ôã;±ÙÂèèw»ÝÚ¡ÄKµ1'ùã‘ÜõGcîÄŸöâI49‹ñ8‰FC,ïiëöÍÍ:la>âûƒ®LRñ:ì(Κ14ññ9‰©=î:ùÿÑÆãA4áó–ícVûýôè×£ _—oendstream +endobj +1229 0 obj<>/XObject<<>>>>>>endobj +1230 0 obj<>stream +x­WÛnÛF}÷WLV +‹ºX–ähaËq!ÝXQ@/+r)mLr™]ÒŠþ¾gvI™bì4É /;3gÎ93ür4 >~h2¤³1…éQ?èÓèlŒi4àç!þIñÑÕâ¨w3¢Á€1?;žNhžï÷iv62£b#©´ÒLdXX*4}ÖÊ_%³‚/ Št*TvJ*‹ôÖRntšãùX‰0Ô%žYD¹°v«Môvñù¨OÝÁY0DÜN±)~S=©D®etÌè’îEº$¢TeÊFêIî,;*Á)2ª«»Ó7¶‚­‹çˆ–´¯Ì¿‹²Ÿ¤Y¾¥´´­$¡Zi×ÿþæ Ñ¹äðÚV% ÅB%¤b®ªL˜C¯µFÕ®‘|Ð0׸8ÌŠ nÖÏÙ.“ˆ3°²Æ[Å1²¤û×P¢Ë¾ÌZ*Q o¾Ó»;\Ë;=Y„=÷ºëÅ3:\©ÙºL¬ K£ŠH#¬ÎlÀ§tѸá8qã8w+­eåŽtì ùn›sIàO†P¡ÙåC~› ƒ* •­ù˜V1ûb« ©7*“TnQ…—‡óÅ[¾M2D5 ‰ÎºˆÒT«M+Z™Gî!tTáôïD;’_A;Cïf\Ù r- w-±&fsÑ+9˜:¿Td¥H\vžšó½Q± +=ífhúZZJeVz~¾€š×e"•§´* ¨•2?ÜÈðÑ5k¥¿ÒñÌaéÌ ÝT§ËJ=•à¯Èƒcšs. h(,Nü¶M"îàËâMxÊ¡¾÷Oj—P%÷ª!5Õ¾ N…½ÖÛŸ„ØO‚}µ80+3e ¥Œ¼PV.Çâ¨é5d›®ín§KïR¶Ìód÷l.Ù +UÛË–Þ¶Œ–oÀ{7aÅìî$˜ðó4˜²Ú—Ãñ¤2’ `bÄp‚i0¸€“ŸWVþ¤0ƒ;£W‰LYå½7Fg¿Ï¢ÁÐé'˜L8w2eLJ•…IÁÑéäÍ þ‡jn0«ìjQ5|è’Nšºw—b—C+P|ÜëñGü¯e/ÖQlª¬DžË,’Q@7FÊ«ûk>™õ]³e‡kÖh¦!Ü&»³øIluvéÕZsõq´—š2N­®ØF‰ U•:C«+mâòÚˆt/¬T<Âñ|eå: %€Œ Wxæï#F­41¦z² è^ïSjײÏPÃ9øDî —‡Ñóz¢Ð“Ê·þZÝ ‹RFˆÙHFDŽÎßù°€nMÚntRåíA¯Om KfÎ'ê¹Zm‰­†¯!-´©ÌÔ—RÒ'Þ]æ×ô‹ÏêÔC?Áœ®ýÜ‘¾;èŸ×ì\»É‹)|ü/bÔ³`#x÷ Pg€ä ˆj¹†Ê*ƒn ÑÏ<¹Ýîä½Íù&—í ]$NM9)+Ø$N¢kŽ™<@ JàìÅŸõr8ûrÀ*piã8my{a1þ¹”=MkeI1¶X£yöǨvˆF³wËåÃüÇÅrù»è™ô8ΑîW굩Æ7¥Aæê;ý€ËlµZÀóR™®@Yp*]]æ'¨ÚoÇ\½e7r–„E/xBµêå.2|Õ˜Œ+‘Š¤Ž|Óm¬ŽÖ<ÊSlpb-ò…;—Arñ}4ôÄêTbòi™`ô·BBä‘Æ2Â6žŠ‚7ˆ-ò>Åê¸Â¢­­af‰5>^ž3£sÿ9ðº&ϧ½Óù*4ÑkWh²ìÌ0 ûƒ‹+L4üòM«]©Ñ˜¹Cˆ·‘=’dË0q‰¹á&s1e‹õÎÅôÌäñ‰àV߃µ7Ô˜`sòè:—l*»Âú”ŽÜΪá”î,à¼êòxgÙX $[&W½ÙÔjJãCI›Ê+¸7ø<ã>¢©@Mûn4WÔ³B‡Xþ­7˜>÷pT[hþBÚZ4þ€ÃÚÜ{¸ýøןo?ÝxüþO¯Ð­®Æ‡!“ÈŸö¬@›®ZÊë( ¬«…þ•‘±ÖÐ5؈~kWX#v ÷a4V 1³›V±ñaþwfL«ñ7ÀWöôâŒÎ§ÕÔ¸¿üûê’× Ï a‰5½p‹;ÝŒñA>=£î¤Á;Ð÷÷¦ÑdLÆS|ÝãÑɈOx¿8úçè?í^ +Cendstream +endobj +1231 0 obj<>/XObject<<>>>>/Annots 700 0 R>>endobj +1232 0 obj<>stream +xWmOÛHþž_1ªZ5•ˆ;!/ýr¢´¨z +„T­í Ùb{S¯MÈ¿¿gv×ؤPU!ÎÎÎË33ÏŒõBá_H³ˆÆSJòÞ(˜Ï©ýUÞáû`DÑx,h2:ÄïhR)iá®?ý‚0(œM!0™Ïøþ¿$zõ¹7sZ°ÚœÂqŒÝCF×½Î#Φ‹ggí#Î`dѹ×>æE‡pÃ`Gœ!(oÜžµ8›‡Á¬s¯}ÄÙb„³ö1§qxLÛ³OËÞðtBaHËc;Ïh™Z´F´Lú±¬¶Rô K£taª`v@Ë‹Ï$Š”ªµ¤/'GÇ—¢HÖ”èTÒm¿ÐMtžË"•é퇀–ÔE¶£­ØQ¥?,öF4ÇAƒýD—¯¬¾M©ãLæ¤ ä ÆTÉaKºTwª¥:ª ë³c|‘\?8 dJ­JóÅ=c^ˆý/åO­Š€†§SCÇ/ö:ÉZÐ_Ö¦"‘$ºfÝ0\­á#¢ÜÔ•,I*˜*á›4ÄÈGyˆAˆŸqS£›·×à{Ñ4˜07k€}SŒ±o6pïñÝI‡QMâNÒ›®ƒÿ˵=,þì蛀nÖ¢zoh[êâî/¹ñvÉñwÒ•ˆÚÈ”b8ܾÿmã^‹UÜ‘ S«J ü— èlE;]“@¶kÃW Åe&ú=3"M!¼MRªMåäDû”Ëj­QŸš’RŠJ6yCM1Ä6s[]g)©"U KTˆ”TEkáòµÕå½Lm®:qR˜Ú—cSGiŽ49_v¦r•Ë—Bs»Aì(C¥¢R­ Ú€­—&__¨ßR¡’rQÔ"ƒ°÷[îà ªskºøRÔ¡m¡lgm:.Ÿ‹{ ð­×‘1¶*8Ilf×ÜõEýJ‚€™<Þc¶)­©myî•ÔµÈcÁÙo3š‚8€& >¿¢ ™*´7•§ÜPøê)÷ku¥2UíÇý~;·‘u-"—–B:|!«Og—×d϶hWåû·ïIl6–§¸\P·}RkÒŠMŸÿàÛoÉs@Í™bĆh,šÀ)ÖP>”U2ôp5dùÀ€®5ÜÜH½Éöò)*åF—•‹³HÀÁ`&7SÇØ æÞÀ¼ãiFÀáÖi?‘ôÅ’<)Z½®S÷g›Â·s@{UÍ1"ÞŽL‚6T¯›£t†=Å%¾q£!…‹9“Üm4‘k؆ríñ +C7< Š +Ý´ãiÊ4˜Ÿ?ß±–â],'Ûè+qÛ™ +ý¥‹ð(Ó¥8²±®Øn/ì†6cÉý—*Ãåú¾ÜOM¿N{(û£s • |¬ï¸g\>¢€G'Æ (Ó´Ð#¤ Ága@—Ü{ΙÐ9&+”Y]´ƒ„Ì1܇K @.ó˜IÑfß°r. ÏTvda%ÒY¦·vÏ–,KžV3TäqöÄ%œÆ¨äœ?ÉG|úáQ»íGÓùíŽû#}¿øzqysA'WW—W–L¾Ã‘{fÞ1U¾ó_6˜a¢ªÒ5’ô«ÑOv^p|ÉÛÄ4Bﲂáé¡/°~‡,’Zm +ûÀèÛq\æ–TS]ȃ=ÿ¶< ˜$›ÉQ4´õĬ×gæ{ÊÄ¥mé¡?°0Õu£Kðè€;g¥îšñáhF[ßç¾mîT¥Îh• ®&wŒõÕnlzòd“éÐ0ïë±|Éæ’olR†§#Zðæ“q„? æø‹%ÿãBIÿªU‰jõ?\Yæª +ŒÝåZ˜^ÙxDN™Ÿë[ÖPX×xy‹Er¿%.ÔU¥bËð,`ý·›æ#§ÝSEsÿ¶‘bÅÛŠÈœWÝ)¸Ñnùb ¯iݦñoñôíî +Þcî3L×h_T‘›Ý~S{Ea]¨ÇßÂIw¹2åo»€•s äý5™Ùß/ä¤W®Ø8½/rn4™óéáï.ðþÉDó \ð,âNêÚí0ßt¦^@˜Ó¿•š ˜çEÅ”8ÃÛêå¼Æòo}ÁÐ-0rËÁTÀ[¯[gUŽ)‡7‚Š^²q¥íšø}þdÉÈ>›î”»g4´#ƒŠA~ø3¦$¥'SLé‚VFa XVtƒÅOo ˆ“&xÿs +úoÖ–l±8Úôt̲±íZ@Š¨:kBb; J²?„°gJ<•Yb³Óë\%¥6zUÙü1¨þeà‹ìV^Ås_d M73¯oOWyk'7ï:ÆmNwtbw.»ÌOŸOh¼ô=›ÏsO4!ºy¾Ót5Õt}tþéˆcþÉ/nÇ:©9µ6í¶¦C¼:æcÌFà˜´ÿRÎÄøÂd6 fS¼Ö³ðì¿:Yöþéýø‚ë(endstream +endobj +1233 0 obj<>/XObject<<>>>>/Annots 705 0 R>>endobj +1234 0 obj<>stream +x¥XÛrÛ8}÷Wô›<[6uµ$çe*{×µ±“‰”Éì_ ’0&.ZÖßÏi€¤(&µ;S—/"ÀîÆéÓ§ùÏŘFøÓbBÓ9%ùÅ(áIûãËß/&ãi4¡Éd(§Ù|‰ßáSF«‹ñÍ2ZÒx9‹f¼:¶Ÿx†h¼˜Esš-ü¾KIÛ‹wë‹áýŒÆcZoÙó|¹ uêh\® %¥N’)I¦ÊÑOëßñ +ÌùW.µKŒÞª]T˜,,5Ö.éh*Ê+먲’Ü^ÒÓšV²|‘%}6™JŽt‹¦¼ +/Þ46 ¶ØW$_eßæa¯’=)ËϯGtíAY§—J'Y•Ê”Êí;Ž6• &æ­umoøfÊgë„SF÷œD´ÞKÀ£,‰óHÉh +€K‹"2¡ˉhÒXʲ®<Ò³<"&ñÝñÀ³Òц—%§““íd^d ’èæ Aƒ+¿¼UlK“û'’øÊJÓ^…ÊŽ$µ‡“àsÖ9(ç$¢qZâ´ë–¥B]QbòÜèH¤y/ï°úÝ›¥µûÁÞˆ|òÁþ©•ÔŽœ¡¤à»ƒaÛøþÆ6(IïÅ—¼‰cï)Ž•ÞöÃj8OOKv°QZ ¡Ì˜gO4,äTi iL†œãIyPVF½hž *ZdÖ ZÁ!ãGªJ™ ÌéÁ^¥©ÔƒæÅɺ‚2[ÃwÃ@$ªÎ,+ˆÎõÂ6Ïk‘Ãež©DÒg‘<Ó”âKFš¹PÆ?ùÐO6{‘Bí"º{u¥H´Âʶu’ ¼p¢E.iøÚCDdä;¨ëíôö“›Ùb.°ãõ¯ú(kÄh.¼N°‹®AòW”!a¬„µ&QÀ늩y_z2 =@~7’d€›…¥ƒÌ²š˜=}^ +c­bUS¡!:3‚“öJ´vÈêõi»Eæn¾8v(j*Žd¶Ý¶4¢üzÂzí83‰\¦ŠjöýoYz›æJ³ª„õB‘Ä‹PY«¢MÀA(URk¶Î»Þ7êÞ©¸÷ÐCÐ +:™šVd>g'®¡öƒöRéOµ+MU4 ì‘™ §`4Ø૯t +`Og'd2¢\Œ(>o^Òû(ˆà¶Ñ£N”qìŒÉl—Ò>+ÇZ:(…Òq\‹ÖyÄè M ç®Ck +ñ%™¤Í±Ç‚ÔTHÿ5–“gÔO_…¼Ax¾× >Ø9ßz°ï¸w1ªŒb6¨2Î,¶½s[¿€/ ¤z¡œÑW x]¥Á{½Ûs_…³1ÍS£áDwc…\${…Ç^½Ð›lHFÏ‘g6§ÿê¥6ãÛ^úØÍ î€ì°”‚²d«ÝNZüþ;Ž³[©/ÒøRúÆ÷M¬¡:[S´T«r:ø«:† äç²Ø•b³AUú~8”.zs5Ï“zŠ¹^DË1þ桲Oæ‹:›M%ø &¼Ž~ËUðÀ ÁWè= +-v²øŒ X ;9âÓ,Ò)’´]ÂNÊ·ZNPu„™ÎÔÎks¸¢}×/ƒvæÛWT˜‚ìÀÏ=¤úaùêíDÓªš¤Ca&c +Žb1ÖÕÅÃ'×%aÒòµÂ¼Á +”|ìo3sCöh¡¾¶¡L£hkœ!ãù¦nt¾•`xn¥äÍf›¹ñ8M§˜ö}ÞnFuÞš±¹^nÛn²º€ýVï0´8úUɃôôÞÿÙø®q¹ÛÚß³šP˜LN}Å—ˆ(Q¡/LfŒx´uÅ›á?£¼UoÌbÃdÊê˯ëOŸ>¶§éà*¶~ßâªÆ×±ëÉ2ßâ×ø?°åi¡£îeV€Ï:”t¯«q…,p×Ã+€Œˆï\è#YS• Jr 7e¨ßB€§>q¼Ä›pAÉXïXœì}¹?Ÿš¤ÊA!ÿ~;uú6@»9`¤Xžš½ùFœÊ•«#´ãfâ¥}gLŠ¡´¬úXwRËRà"ûøÕ‡ŽÂ’Œk ð•×ñº)q5BÀµZ6ZØ­M¢¿ p\©;m¬c“¡®<¬þª6ËMÔ> —µÌìqQ 3yHÅÊÞcD/¯ÓÓVXÈ<ßæ½´Òû»¿T§õÛ)ÍñÛOÝ«·ïÞÒçÒüŽ >t±gw×ã9.õË)]/F·ÿ›(3üGÀb¾ +´˜³…»õÅ/C¯©endstream +endobj +1235 0 obj<>/XObject<<>>>>/Annots 710 0 R>>endobj +1236 0 obj<>stream +xÝX]oÛF}÷¯¸/…œB¢>(Kv_ +'Ž»ÆÆI7RÐˈJ“3,ghÅØÝÿ¾çÎM§(Ú>uD°HÎý8÷Üs/õëÙ”&ø7¥åŒâ%ÅÙ$šàÊñããg³å2šÓ|~‰Ï‚âËøø-§ÕY|1‹.h_D3Ü/æÑ¢ùÆw_¯ÏÆ·sšNi±ƒÅå’Ö©·?¡urþAK2¹½¤­´ŽR%vÚX§rÆä–2SQ*·õn§ôŽÊÊlsYXR–V¢Ø +RÎÊ<‹èSS"4ÕVzk£”Lé”ѯ֟Ï&4šÆˆož³½­q{²Å6%¡SÒü‡3dK™¨ì‰{áhà}R.e> \8ìU²çǪZG´’ÁK¥ØIKF{‹Cv7êøóÖÙ üE‰Ñ™Ï¨0•$¥L!8H>~Ê2n#Z–N >ÁJ褬2M{¹mÎÇTf¢ÎÝæG;Ðæ|ŠŠöpÖL•ÚÍ«¨12[ ¬èZYÑ^æeVçTH·73ëôa;1E©rIÖ¢¶\ e{ãÛ‹¦æç´KíÂÕ– ç”åbÇ ÂÔAå9ÀHò:õ‡;è…ä»@)È¢´¨pghEž›=ˆJ8'P©]ºåo *¦96_ñq¨7ˆ”H ˆïú*Èþ…!ÚŸoz¹¥2—Nú‘¨ŒLµGôÖ³Iä\,¯h[§vªVŠäÔ°ZeºžEò'­¾x6~R:žÑÃȽò‚‰Ü{¹)‚ó +Üq™{E‘/ú¥¼…]W‰$0Ÿ~^àÝ«¤2ÖdŽàÖ-eHïA@¨ +Ý­΂è""€^ ž>Cá«í}²{Ã# íV­¾¹ #ö~ò‰‰Æ§ eã77mG¢"+|„qÔ±S¡ÌBxì^•¬ë )ŸöúÜŒr‘QÀÛc« ýDÈÙÏ”bb‘³ŠŽ=ÑNï2oA”Œ† ª"«L$•˜o~Š *Ù~™0ËM/?£¡>|XóµààÁ÷Ö9ªÊš‹½¥‚„ƒ0ç&9O–fîòmÚ$Ðãcéý#=¶ÞÂrD¯!zá…p¶Tó_Š°·*in`s±IpF²õß.Únïðþ•©¡»c©mÀ2…à?F†âH˜«/œØ÷ýi½ƒ“V|î¬&À£M®Y3.!È¿Ö=Â×%Zš¥ÄɲÙ}2Ó­0Ü ?q©‡’@…èç96×(ž_ › ÝûžŠ§žxÉ{óƒòÅ3}7ÏAÁ±À¯v-Àl©sT[‘* SASÂFuä`vĹ/º_a{ÞüÔUõ+ëo FËeDƒ}æEw«øü‘¾NÝâŠgšŸU'ï u+ }¶ÐÚ¯éLñkì γ‡=¶2Ì8‡]óë© L¯œÀ<! Ç“ÌâÏ7˜‰•ÉéG¡eŽï-Eù¡êQauÃÅë4e{~¨­0Í“°©ý~Z~Tç*yàö|øç é±?;Qßx[l¨YÐŽI>Kþ/z$ÀýºØ3ÚºBð{¿ó`«‡ŽüA¿/G9;Åœ*±XÿM‡z}âŒûD~QX—¡Û¡xõ/Šç߬~Y­ßÞüðaýÍf³z‚&ñl³Ñan¾¾ 'Ú}å,;¾Ö]Å §A˜WÞä@æØ z>±,+»Ùô,…¤Ù^KìëØÓEõD7ïÞ Âhãó,Uá>·4ê(o³lð6È^‰(] 5|¯Å3u…7o)mý|Ë /ÎGÁí´ØA}_‡ýßkK§»ÙJÛ +]ÌûfiÚÜï?ü|Ç~‡M>æ¿G«7 ý?5x·&¹ËGñ,Z.—Obü¶ãß°´ò^6;/£Ë«˜â%ÿJ„gV×÷¯¯ñ:k>³ÄÞ˜¤.0ü[²'Öt±Œ&—1–“+~þï§_üªsÇ/Ò~ɘ/çÑrq^W–K¶ðv}ö¯³ÿg’ß?endstream +endobj +1237 0 obj<>/XObject<<>>>>/Annots 727 0 R>>endobj +1238 0 obj<>stream +x­XÛrÛF}×WtR’S"x/òË–.‘£ªÈvLf]®å> €!10Ã`Q܇ýöœî(Š²½©µKU’€™éËéîÓ=øó¨O=üôi2 á˜’â¨õðf÷ëÛ£þ¸h4žD*h0Gýæ)§ÙÑdõhÔ?‹ÎxqrÆ‹òÄ‹ýÞ$šÐÙtŠ=¼Ú‹†Í¯ú=ì>Ù)V‡½1ï•'9;>‡Ú3(ó*Ô¶Or¶7â糩èžOX’<Éêt c‡ç£pv܃†ð$«ƒ1N Gc±j8’UyâÕËùQ÷æŒú}š/“ñtBóT éÑ<9yë6”¸õ–ªLÓÒäÚÓ²t…<¾ÓL—º$céÇÙ§Ùüç»ïÞÍ\,f[_éb8X,¬® +g‹Ÿ¢Ÿ¨r¯æõ¨ÓÂàyzòw9+Ê>ºòÞWª2xV6%¯+Zë²0Þã•'åiëjJµ.”¨õºtëÒ¨ +¸’·•äM¥#ú„“çdµNI¥…±ÆW%´¢«ÏäŒ"öÕØU‹Nƒ„,;{¹®!Žä›”é|½¬súýïðÉà€eI¹±÷þ5‹Dî´AùÅÁw·¤™*b%q§¬ªÖ¯»]Ïo"W®"ú¨)Sˆ¹¢Â”%aµ’L¡X^÷&iJ¤ÓïG½á,‚x/£…õ¶„šå]†Ã‹°aÜ8¡ký s·.éçgO_Róû6é‚ÍÁ$ÓÄë\’ÆÈì8×ED·KòˆÜC±=£¸ŠT%!OƒºxÈ‘6(i* ÃKwÛ‚ýŠÇ-Þ3 ,‘ ³ÄUÝé²äó¦¨sdçãåõÅxÎøC‹›àl6›Èß›õz!E»ˆmýØõEÜìÊEYUäßnëE^e®^eZg •Y–©hxJÕ–©EÑûë«Sº†Í)]*k–ǽÖk5HÀ.Žé^Ö(iœ‡Ät±qžI3žŽtZGªÉH+ÇÉÎ,…bÉ@·´Õß!&wÆ'¡<¸H¯nof ª§ú=¬‡nb–¾’óÿM|ðåµ+J\ÜùݚǼÍ3€%q?J\Ñýo~Ÿä][¥øÿÛ´ÞÌ߇g]ž‚fw—ä×:ñ¯i)eßQa’Òy·„ ÐÙDÙMËU—Ñù[Vt†ƒh2™PÿlºÙb0ž4tÐVû$šöÑî&ÜÖA¿ .@‘·´B÷b{¢z…cÏçÿñœNmuZç²Udë"†ƒ;n+5WXJÏDEôœìZìwœwJIn’{fa&<í¥÷Y¸¡C&Yp¬Ý +Žv¤6«×kW¾ ´ÿ}NXù³–?Çàä°ÙÞ ÂÖ0YÚ¿H`üàj`ÍùÛ7(§=×…QX]§²+¦ý.Ýr¡{<+µH~B”/Û^êì1ff‡'½*vu4vX#Ô'%LZ9×CÀÚÐd¢õhïÁ,ÃYéY,JÒ:×Êã],ä!:žšãª6)o´`šýï"ߨ­‡{…–tùRxpym+®pÊâA{H2ëà±ç5Ü¢1bNàÐìqܪV¥â³l:ZRZ'œŸkUV&íc®Ðªª9i«çï+S` »°˜/ñ_ã+>ŽYZ!¾þ˜µíç$ÛÃ2wáJý…>ЖÌWzÖð<ÔeƒQÛZ7Ü)á&O–\^R4)6­ö¬˜}S(&¼ò2ôJÛÀŒhñê§Ú‚ÂÔéÑwò”ÁŠUœo%ÊU$²~˜p“Ú0@*Íle—2¤2”œÒÒrëpIø¯Uù¿!œÁ_.!–›ùP±ßÞ-fÜ452”4éß`‡y$$¸‹+J+”æƒQtõÏÙn”á4Oy<ß0ÅpEäpìЩ$ÓÉ=dŒGõwhŠó9Ž(êm–/mYƒåxüãŸ4zyŠ±™oKüµ+0§³\-̵í/”ž"xx{öX£¡6Ú¢BËA9WaçÑœ~@§ÜQ 6¤mâRHoÁÓâ¤A2Á ç¡AL\£t—Ž³ÇüÓ?Œfy‹Wß!Ê!’|ùÙ‘&²fYméøö¸àV’¹Ü`dòÇðùïŸ"Ê•£ÀD§oÏlûÌçü6+¬…°²~ƒ&÷¼§ñ©oRà<xa_ÜøÆ\Ž±+Éø¾ÁY),$×f6¦~üå¼ð ;)ÿ ×KmÁ™&“I8ð©=ƒ²•tdÔ rBCÒIfM¢òˆîÈp­2„—àʶ„FàëØ'¥‰™k1b'2„#$V³©Õ¶œ zP `bÜàÞ-+mYÃ>õz\¦X¸Ì¾,é©k±*º\ðP£!8ØëªBS­r¼å{'RLàº<I~ Z6ª …nezDu~!ƒG|ìøúUl,£×'°J¸ ›äuúâZ&ÝJålËÓ‘T<æqùî±) éÜÃR×Öø&%Ÿ"8-pC«‘:ø;èEô>tìÏe„ׂ•FW1c1RO[¹Œ@ÖŠãÎQBATúŒ·”Gܦ8L!jþ ˜¼¸¬µ“Ꙍ½IuÚŒpýá4šži0•³‹»Ë z_º?˜j®›{©ÜÔ%'úø@Ö›©3é3þ¹»„k¸ÌµÌS2æÊ(Ëß¹&ãi¸5O¦,áçùÑoGí„óXendstream +endobj +1239 0 obj<>/XObject<<>>>>/Annots 732 0 R>>endobj +1240 0 obj<>stream +xX]sÛÈ|ׯ˜‡TENQI‰_wWII¶ì¨*’‘w¾½,±€…w¤ùïÓ³» !Ä©ŠÏ¾‰ý˜ééîèÛÙ„ÆøoB‹)]Í)­ÎÆÉßœþ÷üél>N–4[Ž“kªh2›>•´>›^]'W4›/’)žNgód?ñSœC³É;®— ü<Å?#)?»Ýœ]~¼¦É„69ß=_.h“ù{Ç´IÏ_Ο´µj[_ÞÑ}NGÝR!ö’¥ºjJé$ÕÒUº&gD*éåœr£+r…$ÝÈZÕ;Ò¹ÿبF’ÓþgiŒ6ôòîÝæëÙŘ.&Wˆ{“óù©¨ÉÊ:ó ÿ–¼¿y¢\•¸ÒÒA–eÂ{.?¦1è‹É$_]QwÂËt6¦°¤Ë+®¸˜Î.y*¥°¥Põ+n32oËòH[™k€"œ)íc¦Ó¶’µã°•¬„*z¯k«2i¨ÖñBNÖÈRîEíøê^B0Î’ªcÞ[;<*i­ØÉ„6ØnEµÄçó¥²ØµV¸—Šv”Ûj‹+e#5€!¸!zˆãH¢,Q™ù5þ6 jÈVÛ$ÕuŽ`8`eb¦”)#S§Íñ?G¶ƒ­‡ì¼z¬æ º¸Z%s†öŸú€¸èžvÒ!ÖPø7YÅKºÚªîüÔòÑÖ¢bL+½G&žQâ'"F\ (©)™„Ì¢C,ô±Ô¤œ§N¯8Ÿ<À…sÍ/——óÄ×!Ñf7¢´Té+Ù! ¢XG•òÔŸõiUÀn9§uÛ4Úx:üPØ9Xäyý¿öõµ°ö”¯„o@ —už'ôd”¦…t$ÒH^ÓC7’>Óõ_5š3 ü³&ˆìÕ3ZCþ£¨±¾¶XãŸä0Š¼[*ÞØ)Qd³°„¶.ùW\mtÊrPûAF«Q¸ƒ8&I ¡'nXÖ„VÓ Û—)¨R_ÑF•ƒ<Ëd²‚€DK&à  j–¨3º$(š¾¨:ÓK«ï—wo‘›N“éx‚SVðo@¬Å\—¥>0 ÂP`tãp¬¥ªM‹N¿Ú¨ªEI>?ÜÜ?&î» FÕ¹WºµðU§e›!σrùŠIøÐ;²B©Â‘ÊÒ•1ý ›§sÏFôkȤS"×È”·ÞeŠcÑï–Sðw¾Íú|DÛ#=«´&ãGoX‡/郼8Áƒ2xn n0óXÐA›×ÑmCÉï"uHú¤FvØ÷i*˸¡WðÚTƒùe*d é"qOÁqõ¤šœFm['¶Ü +ZÜQ;• +_žLàk¶tìÖjàÀ’ñ˜³‰sÄ#Ï´E¤¥FåH¤ž‰Þcc` Ý”Vþëò䶠ò š;Ä°3ð}܇ƒZ+ ìÞûÞ‘lë—‡öÒ‹ ì˜N8¯Ã¡Ôؽ—fpûËùã&>ñö¡‘;ìüh¨'šüXdƒõHeGÜ63-Œ#î{.0‚6Ÿ¨Ö‡—wO6 ¬nÙØØB°BG×àfë_àXîˆßÁ:ªàë&?zNÑgûM·Ñº-Á Ó ›å‰8=¬X~ª†Ž¡ üœÐã€B”·µW©(•óí.„ÈñCQüÍkÊļ‘M‰º ”`Çíóç/ëûÇO¬ë„îÅÈQðZ£Ü£@ÔŽÉž¹Ú¡û"ã +®'ÔÌbiCQ†hß[Û¢8Ëc¹ˆ—ò"ìì4SéL–^hCÚZ¶ÄÉUîŒ*‰Å àÊ3÷ÙúcÁŒîà`jTã˜0ƒyÌV̓¼.ú°>)ìáÊë{OWF›í©7p ó[Ó.ÑI#gšcÂòÎð&pGÉ/;³­GK–oG©ƒ²¢>/XObject<<>>>>>>endobj +1242 0 obj<>stream +x•XioãÈýî_Qñ"ˆ°i]Ö |îXÛ“‘f'ô¥E6Í“l-›þ}^U³)™v2»3°!ñ¨ó½WÕþý¨O=üïÓd@Ã1ÅÅQ/êÑŰߣé¿ø©4¥rc6‰†ÝëW‹£ó»õû´HÙÆx:¡EB°ÓëÑ">YdšâÜ貦:Ó%%V;Rô¨ë//®VŸ®~µÏ¶„—ß7ÚÕ§´ÍLœák]ý ã5*U¡É¦òyƒWþæ(ç·>,¾õè¬?Œðzââʬ눯ž!¢py_•³Á8ñ“Ý°b[–:®áÍŠÄçÃr™BþªLÈiUÅJm…g ÒÀU“’© _R»ÁW¾«’V¨ä´ ž ‰ùgõwojÐj'~}©"ºLkí½œ\§Ä¸6Ò´²Å;±¾É~ôãì.“¦+ÜŸu}_¦6´$Ôw¾é +ñðßñß4$³è‘”«éáÛÜñd¯ûRJ!וMM®]DsSÆZ VÚ­méð¥mÆ{a ”J[JR+SR±‰³ŽÓ¢{Œ w‚ ®%Ž/¦œý»Aª£‡Ïó’t&ÑÃÁIŽ‰©[íÚRT]ìK=œEã?´7q½‡µ6ü&dàÃ1ìêMU:²›º‹³Ý ÝZÇ&õÐzÇ÷\:&übì®UEt„ëïªXçú”–øç[¿\¦•N–˨ ã>åzŸPKÕ–©#¼¶Z@tò¦~ã×ï]¼IíTªˆ6ýÖÝøsk_<ůŸïîŽ>>ýê)¸¶¹‰ óxèžÕ|Ô?mt€iï•áDƒ"M|¢çw3êCRÓF3׶LÍó¦Rµ0Þ—®®61vgáÜÚê…DG¿—_´aÀê+êV0#“¦ºÒL¬^Ô`Eo®%@E}b·Žfß½œ‚˜Lq&ÔAÈ°ÎT; ð­„~TÎ!”„`¾Ú­%V<Ê„d-IaÖÿt#í?¿‹›áq6‰¦<ÿr0žˆdïs“›­Ðï?¸mY›Xñ¾¶Îiç¨PqfJпڸšTC¡k÷§¼ž ¦Q¶Ïc£ÒÐÐBÑ\+_Í­ÉsR¹³ðOL«}„¯JÛx¿hr ¢AÇÒú†yP™zG……ö0% åx¬*tJW– õÆQo|Ñô‡ÿPª·ècÁL“©V¨Ñ2tŒ' ”Õ@VÖäX¶zÈ-Oˆ$GÊÅŠñ¢J‰^©à`tønœÛÈxÞfü¯òÁ0ðƒÑ¾°·)Ý”MŠtc¥À{]Ù<Ç›À¬;¬Ô-vY +<– @°¾Èîqòy~ûé5N$²e¾{mµÙ1¤m¨0*A\g¥‰U+Î1ýÝÖÕü—ËO·_Ò0¾vPœJ`{kàæéáòþ±k»Ýõtûé·7iylãBÍ‘äW:}S•ñÚù˜?\Éð£ÛTÞÖA€È‚Ñ,D—q½a¬u0è[Š‚ê8<`‘ù–´(QÌW]÷´(8lAò¨o³r§D ¬E) Ê­x®,€ ³%Ùµf,Ÿ=«n®#ú’A[…BD¡[ˆÞ˜úf…Û¯§:>•ƒ{y¢dÛBú§žfâÍH|à²j¢àÄ——0D×pôµ¦tƒ+,ÑËa0²º®Ÿ­ÅΘhÅ:Ñ0©]f7y‚&ºX19¡¶R8µÔ±ÒÏð)w4yìüÔ_ñ,¸ºšËvÌP7"‡Ó äÈxÇ”53(“_5Er3½ùQ©p3®ú¼Ÿ7Æeí4Á+â6ÃEl=\ù]B åéŠ%ÙÑÖø%o/üšÛñÑßÀLã$ õÑni¥bQ~¥U `I:¸·„b#}¨¢¨ªH +W¹¤ã–Eÿ–Ë`o´½“YfiT4øð\»h5ës­$@ÎZ½ý¦r“p™y[a#|ààßœ|œ¬%ÝñË,¤”'‹CÛû F¸ +e³,OøÛñ: hÒñò½”<îe)V+ì>©^éøõ}à¬#šÍþÎ_µ)0þ¤¥>ŠPø‚Ü=ˆ;uXOh™Dž]§Ò Ð¿x·špŒý´ÂQ©ÆiÔÅŸO‰å‹ÕòDN–*ç…m'óîN©2ÏYýÏå~© ¸«@‹‡CÌ­ì÷ XÍÔh‰´08Å¡/Ñ©)à€G®ß'¸ãîö:ÁÊÉâ…kæ´ßExÝoDDå[µ;À¨£e +Õh2HÕj®­YMöi³› a7¹~µ¾ÞK纙†p²ªàZ|fœlÎwœÉùݸ»÷L£‘ß{Ÿ·ñ…¿&œ´–Ú…۬׶H/¸†vãøÆŸM.ÓÆ]›õt: ñ¸MƲgÍ/®.9º¯`!ÝØxÛ’LMétŒ?L‡t6éÍxµú¹¿ÝÉG“Mý6;í±ÅÛÅÑ¿Žþ ’aœ endstream +endobj +1243 0 obj<>/XObject<<>>>>>>endobj +1244 0 obj<>stream +x­WïoÛ6ýž¿âV h +ت­8²]`šnÝtY׺؆º(h‰²¹H¢+RUóßï)ú‡ÜuÁ°Mlét|w÷îÝéÓÙ˜FøÓ4¦Ë„Òòlèj:ŠšÌ¦øã-)ÇÙŒö¿ê5¾Œh2ŸFWéø2šÛÜFáWg{9gƒ¹“i4{ Ûq’ìlÿm2ߘwXÀé°ãhÞÇz½8{úrBã1-rd-™Mi‘¹8G´H/®e®á1S&mŒQÕš6º%«)ÕU®Ö îÕZ”|c[ë\Ò HYR†#ó¦`[#¥{ìwUÍÿ Qe„O· J %+kž,þ:Ñ©Žqö…*·…,qƒìF”I +‹sLÔÙÅI4a;ï­ó3àVЭ´ïŒ¬’ö¦Ê5’ñ©‘ž4;ƒQýYÖüm-{Y?6;ìTèTX¥«ˆ~Ö­„ñ€ì!˜­®-ÓÒP¥-mÄgN„. é #·¢Vž:¦\É"®Š{‡©C°Ñ%ðmD-#Zl¾RŠÊÀBØÞé>îmÂÓØZ¥VfÛJr9Tuâ>SµL­®ï¿’Ê}9Rùöù/¯ôZWôæõ‹Ëµ•n˜V(@,Euï£âÒWiÑd|þA\Èœ™^$\’pÒù!ÞÞI2È4Û­®­Kt°bºe*ÏeÍ´áô¨æ~úr¾ãù0žíX”éÖâÑQÚ€¡6Æ0Ðn>wŽX̱»Þ¯ ½Åä1e*qd¦\EÜ1¸æy—ë¢Ð-çiyÁxåÁ´_>yæÑœrM.cÆWÑ Aú•c+솾§%þ…8fï¿2‘vßØ|¹<·\–hæî ¾xä0œ6u§â´ +”É\4…Ϫebê­‹ +Ÿøüó[ï¹ó: J”Ôæ{F”+á{n¹džó½*.­tv·ç칩?«´ßl8'­!à¶h¬.QT8aåûç=wŽál»§#ºÉé^7®/§X`"qè~N73/dnàÌ?–±{-Åt¶®1Éleª@æ,”ú «,’bUHǵ8ŽâÑ•ƒæûʽ/îÒ‚âD4ëyBCj¡‰¬,­BÃñ1&x(Ñb¸À$vÜ —Š +ݦ\ßÁ„ª:Šy}ë¡ße†ÉÀWÒ¶RVè¹5×çÿ؈“@·¿.8èÚKÿJ²Hº>ÖxbòD<}BS w1ÏCÌ!¨þi.<Ö…îkäÐŒ+É#Ÿ|®þ#à©A-+ëˆÞºZo s‹o®¾ Ã3@XzTɾ¤ÂçSiu}gZY7¯”ÅÐzÄÌBøVÿ ]‚b\ß#ƒÜê̺=ê=hÝ©okù9¤©| äã†ÂèrƒãDÙÃ0½n,µBÙï¸Ù˜ŒxVÜ9Ö3£àg×4§òô QC—Õ{ec^c›<ïAÖ¹Ÿ§¼u£µ)ø&¹HœËÛÆnGâ-Í«O[·-¸{”ßï +­Ñ#…‚>"‹½³÷:é&„+²“ÝÃ~ùæH>Z&Bó™Îa8J¹ƒWÓ·ÑÉúɃ¼wæì8 ‡H]’ü…^ ,ƒâI}¹ŸåÿK3ð^Œ”¯Ž~îž%÷ƒÛ¯,ñ(š&sL Y4K®ØÁ8¼¯¦™ÞA[.i`%u´t[-+æPuœ ‹ÔQ¬@Å®Š³n±O&x¥Š)IðwŽwŠì;äõsz]ë¿0«è6¼Ûïv¬á¯E£Ù% §#¬<ÙÅQµé¦ÂfÛ¸=Ê<£·]™š-½éÞ:ÞAÙ»{õà L¦Ž×:v6ó¥g¿ý  0xSendstream +endobj +1245 0 obj<>/XObject<<>>>>>>endobj +1246 0 obj<>stream +xXýoÛ8ý=ÅÀ¿8l7IóY`qHÓ.¶Ø&Í]ÝÛ[¬‹‚–h›DjIª‰ýãïÍP”½jwq8E?$rfÞ¼yó”ߎ鿎éâ„^œSQ¼š<ÿñŠŽi¾Â“óË š—t4;::¢yqø‹±¥{ tõº÷ne*Mtl›gó/8wÚŸ›žœÏNqò𗶤¨ ÚÓÊø©rë@Æ’³´»mBq£ñîãWg¯¯çd^«¨Ë ©@ÊãW•Ú}ˆÊGºÕ¶M8öM_ÌN8âèµÑ5£ ãÚ«:ŒHÙ’Fw:nœ+G3šotÐT¯‹è¼Ñ¸/ ã©p6j=šª¢¥¦Zûµ.ñϸ‘4+W¨jõ+Ò2Î +¸/£Àâåbñ˜ðZ,š„VX,¸>«jÍ„vôï-¢1,Æà Œ]KœÚ.dÈWÞÕ¤U±™Ñ¯®—D­FØè?9ýÛºrKU}"×DÉlÔxí¿j*Þù¶:0Haã€å÷&Ôäí m0ÑàðƒàÖ¤áøµ26â7¢4&ªŠ*#7 ÿ%¡ŠØâÊnÉ­$×ÜßY"“ÝÚÑBHÂ=B ´ -bê0ªãÀU¬´×¶ÐaFoW´u-úÐ7GÚ®œ/4ØtäÈ{/O€³4E(0¨°g¤„NûÙíõx Ö”…à\MÞDÜ_ zàˆqó!)ÖÅ{+Y÷pØŠ±zBkœstƒ½«è^Y]Ñø3„GçËDÔ +W®øˆÂó,"¨ZÎ0‘ütPƒäÁ5P¾DK¾âV@ઙn{PÌpçÿþç -ÛH¥£ÏÖÅÏ µ{”˜…«›=åD½^:¥À)T#OáñŒ8üÏÿ_3Æ%? ú›ÊÈ8O·¦ð.¸U¤îq ?8ÒtOPÀŽ ¿sk9¤|7§×Ži:!°P#´—¸Q Ô{ojå·„38‚&Žw pý6ܺC0É +nˆ#ÿ?A˜Y’ œžœÑôìdvÉâöÑò”íh3ÙµžõÚl+§J´Xƒ›þ§Zú¡Ø(Œò7¡³ƒòö +§;ÖT=îcíDä,o22ֶ›&ö":L “éóX•|žúL¡n|ÿ2Sg¤MßM'Kø‘ð?z@ú2<úÉ„˜”a©•Ç…ð '{5rò=T‹+m4/õ=|1]<.=—†”1ˆ ¬eJÓûƒÐñ¤*ìÖ¦ÁbꉋgY©@ŽÁiñºè@6í=º-8Iú¸¥† ­Hûª­ª-}U•)“;aD3¯z)OeÞ:µ,"I|<ÇËýµÖok`³ZjœÔc)p+È×òN yŒsA;åûG·hŒ=?þË +÷ò.’ÊBÝá‡Úùw†§LŽj"`‡·UɾH-a× §ú‰—H¬7O`%`— ×–B£ ³2¨´cä(5¯Qq3°T`[ÍŠ—m§Óû^ïï,áý÷}`ö$#-îç.4 –)ÛϬ*v6*1#x» ëcòm#¡G¶ÁüP:RÆvE‹Ã®Ÿœ€G(R9Ä §jlYUNE¥x K/§‹gâÍvÊ"ÒJÕÀƒ´×Àwþ.VlÊ^Œe¼Ã3¥>hšT+X*È^­ïôÞ˜öŒé&ä™î÷«kêAûž§Î@îYb«5$9×Á£¼+dg’Ùá [ø6©´´ša–bòEÏŦ…=œ»fî e·ï’§Ä"\ÃFjï¼m¿m¯ÎðuÆŽÙ‘(ÎIóßZÈ”…7 rÝ@ª0L; ÓŽâ·™8^×æ²CF¯T€ŽBˆúýÕ b³ŒwzÍj¶&ÍûoB qñ a>Zó”¾ÃíkÒG 'ý‡‹ß˜†¼Yol‡P—Ñ ònÒ3&ùÀ>¤×$\ ©»¯@v©2<]<ЖQ( hØÐç邬'ä:ÕÂ+(O U°Ä–>6ÎfC¾SůK\fÉê§þsUz¿í7YÄ !bÞ -Åî^³ž Ü’Oúâeë7’€ûŸ{ë{ïh+k,ðÝÞ/Â8±é:à;+¹ößøJ/÷Ìw®Ï·I¼Æv1q¦Ÿ„Küuœ”ªrìú˜íËO?¿ùõó»÷7×ï>ß^ßüôöîÍbÑ­ŒÅâ¦õølŠÿNß¾‹Å}úÈ}‡À×p>ùžÎÌ>ÿñ²ûÁñéÉìèòŸÍÎ9é×·¯®ÙÎ~áO›×®hkÜ­øÛ5]v~!¦GWüþ³+³n½¼Aoa†|[È—îKþ™DÂ4ô¯î ç#‘.A1¹§§³‹óË„Øå Çx3?øçÁ8¾°£endstream +endobj +1247 0 obj<>/XObject<<>>>>>>endobj +1248 0 obj<>stream +xXaoÛ6ýž_A–¶â؉gŸÒeÝ4AÖx†º(h‰¶XK¢JRvýï÷î(Ù²Òk‘6u$ÞÝ{ïÞûýìR ñûRLGb<q~6Œ†b<›áÏ«›)þáË*±:{??»øp%./Å|EÏNn¦bžU"6…Ç+Žžð©vb£öbqžéÊö±TïæßÎC1¸G#Ä>o‹¢™[,Êp*¾£@…ÌÕâ]ŸN.D¢2UG¡C[ñ9;ŠnÕ÷J[•p–BœÑ$º¢8Ÿÿø¡='iÕZ;”%T¢½±_øÉ‹“–Vn¯wŸžžþ¤“Ž°‹Ê"*䤋õOjÇ‘JŒó÷"C8d¥ ~®ùâœQP]ˆZYü„¤ÛÐٹЄ;àIåV¿½Ðyi¬—…¥™rÂ!#äb8mQ‚ÛxS +¬‹²†œ„'œ—Ö‹\UÔ&á”êv¹§ærCI±”ñ¦*)CÊ‹IRR°ÈJ%*Y¼ë²8'Q±B¹Bb]­VÀ™´*7Û†ŽÌÄ2ƒö¬’ÉÀ_ª“Br{°‘säÅ» •û»yÍŽ¶djEÙì ‰ zSü¨WÙë‹^¡|jLBßÁë¡ìDôpÞÚÊÜõ Ú,QÖq…tätb ÊŸ f£ ]§¤EóQRDê_ˆž_?ŠR:·36ÄhOªm¤ÖRÎIH¤n'íñaÉùÕ1x£‚̬.ë +Ès£ŠÙµˆ3N?}ûúíÛqªbÖfÇ”h-a!àÉ)%zˆeÒ'=Rflõb•K³e# [>@8DÄé²Æ?y¼{ +h´që‹Ÿ²1ŽC5Mí“PÐ`t-ãY4!ˆ `°¯2ùJ¹>àŽ!3üÛÉ|)AM¢–ÕÊÀ—ÚâÉ`}~§ ¿1 ár!¡œ ê<[h ¢`QVÆŒ餣FWA¤»¸Lªœ»bËM©*˜³a¥P—)kéxE”ÖrDB~¬"Ž•ã4aúOsd·äô[­óøÈ ô¯52'Õô¹cÈ„ùƒû§;œÃ¸¶íQnàN'c¨`Äü ³Ã(¡ïKH¹Š£¨[ g€¡šC€P:Ih—Jvùp‰†KXU JAþ¯³{`dle)òüœðŇÙq$ŒnB+¾Ö€Ð¯ÆnÐß^£Ü«hHS¢…ó+a(¹kk(“ã5øüç'2ô È(ô uø‰ %s˜AÍC§^2%N,ŸKø©Ù WªX¯4Àó©5Õ:e39é¹RBs³–¢Ñ64šF7cÖŸ³Mœ‰Ë¡¬Ö³)æ \t ´áãå~ƨ_à÷à ˆi±HM®ŽC>p–h£»i&ù@ +ä¶êT´T±ŒÉ {P<ë6—ºðø +ŽŒÑT`$/ȃXþÌ¡¿—2ù©F%ZøZÿ^f/&-b!)ˆ£¥ +mKPG#HtìœÏýó¶Ø_>Ö™>T‰ +ƒPeDÇÑ~Ó©²¦V¬¬ÉßfV•Á[^ œ£©©j +žøŒ¸—[8•\¢ŸÈ Ǧžë•ë¶qßÄê­ê‘¸ð®KM•%¤ jTÛKo{œq Ot”…}‚Þ®Ûñð.âñúb¾UE`æÐ…Ú5¡‰¥Þ±‚Æ6šU†…ô0 х輦_‹×W”î ÄÐ,x>U|C¦®›6’ +ÑëÇAÙ)“ÐÍœiº/(1…ï_`\X{N aˆ\"F1$ͬ!%Œž +>ÊzÙYe¶T6׎Þ#h÷ÌúªÊ²Nø:_ Ãã’fé(lG?;M ÎÛ–]qëÔ݆܄R¨W2:¡û€(w¦J¿©D +í´¡ª\¦ãžjݘm 9ÑâDs½ôÉá *”«r¨fYx:á‰E¯h‡&W þ.¢†Ä +£ ¥.-îŠÅþǼÄæúHú»Ùu_$fLp$\@¶htÐW¦ûNxé±/–¬þE'ño9GH¶} “`ÆbƒE¼€Ô~kx>ý8´vkj<„ÚÐ~  OS/äáDN·z‘$h +lf‘xð‡zwe™ézÜK/Ãj¨W±¸WÙNͽûp/ öé¸Î¾ð]àwz…{„uödo§²a^ß7€oèÃÖ(kÚ»Y¶p‹ä V–%ö]^FÈwÂ…ÜYÞ-,¨ L”•-áá1®,½‡«bï+š8ü‹¥‡Æ"¹ ù.¿ãîjM&že¡2¶)÷È:ì÷ xˆ†6¶zKª—WÐòWÇ[n‘[؃‹È’ +‘`½"ƒÀnEÙÄéã>s˜àuå?Í’÷$Þšø@fÕ ~ju@)¬r­íÅÕÿ¢íÙW¾ˆ™¼]ÂÅ£gÉ7[(šÑ½øpS¯J—ü‡ÃÍXL¦ãh2¹¦…ùåîñý]Ø¿Q]÷&F¯cZ“çP~ƒæ•Át8£çAÄJ¯+\é¡À]½â™ánÅK½h¬Oõ"ú fœ~¸J^M¯¢éäÿ%‚ÃnÆãùÙßgÿ€ô¥"endstream +endobj +1249 0 obj<>/XObject<<>>>>>>endobj +1250 0 obj<>stream +x}WkoÛ8üž_±0pw-+¶ãWôCÚ´@€ÆÉ%.ŠÃùг–HU¤âøßß,))Šúh µ(îîÌììúûÑø;¤ÙˆN§gGƒh@“Á0šÑx>Ãï#ü’6þÁx4ˆ&?{0L£Óîƒ÷Ë£“Oci¹¡Ñ( †4O¢ÉtNË„i0 eüæßt§4ˆòñlF}R¤S±$·ŽKújŠuÂ)£ÉÉ4µ”U•#e)1{‘(ýH‚òÂlTŠ” “‘x»üv4 þð4!蛚=¥Jï"Úo¥ÛÊQpþ‰Ø•"Mø@R,¬<&S´NIÀ€cÖ xlôF=–EÈIY[â´°tŽö[K½ÓÈï8T“‰´Ýš‚Þ=„ô)‘Ï×hYP&œãŒ ­e§°BZ“>É俨z0šFc®8 ;jоŠl-(QÒ:TSàõÜèDê˜ËF¼ÒâÔÆ”:Aa:ÁñhùÊ‹L&ÇUÕ¯Lª?:‹æ§Þ/¾* wñ{ïEË ¾¸ú¼î³%¼Ä·)7 +óB­39A4ds«ÍÁ”F.ÂmQ.ܦj‡š€5×–š8˜ +ázì_uæ “èQ¼ØPlÊ4©#…ÛùÂQ…t˜h¸¨x%0oty…¿¿~_õƒ÷´Ô°­²,‘/žuÂ"Gîe[æ¹)ÀöO¤é9|™A›sºßŠ‚A¹ žmA§ÛK©éëÙÄ»@ÇýÇÑ 0y=Vú£YÍØ­q,q¯mÈ ìsÉ)ím.v좲À`έi_Sê;f ¦vÏ+”ÍfÜ 4ôÚ<–h·5´¼O’§%2•H¹†t§b–——ËÕ[Žð"®&UЉ7¢Lx/^2+üùcŸ/÷K{OÁÈr´º¡¸¨Œ&è☥Þ!¨Ç—y?é®V+–™Œn/ï{¤6m¢TVa“ ˜ÿÍ =ï:þŲø ¢Ðup¬®vƒ5j ȸOB{9nù,²<l¿ ¼ZUÂîy„*a´æî/púM-Í•øé4òövÆ]Ê˲-áÓ°ýªÜÚ®Œ€OÓ^hOŽ…Âl’î(]K]Ò ]J»c`Ûf½ûžþ9.½ï:(ÿšÝ¦ž½^±¼˜· V¡_“Bì×"ÞÙs,^ALpj²[tsÌÓÄðÎ¥¥‹ä³ìýo%P#,ÂPQê0ëYFñùjµWZ;ð`q¦ÚÈ4 +MÕüŸ‘6ë'eJ œ±4€Ëg…-…m«S;ÜùlÒ7ç·ÆºæÒj8©Xñêë¶ÒQ™‡'vé¡ûfçËöº°ùiÂëOk¸ðôtXEQ¡§µRb'¹¦0/”f´4Ý_-fÍÐÄuÐ +ëů˜~© †Õ.¥½ëbD´†é1[ýZ¬ƒHÓIÇËÌ©Lž°%b É0RTð0¿é¡"¿p7sŒhé7µ¼òÑPuk‹!¿Or¬öªÁÐlTÖ8b¸7ìê±ÉUhz>ÃÓ.m/E͸zA/È©rlŸ®|­¡=Z¦[c˜ÁŽ#-êBh» €r_vETÞy™ÿÖ0ã/*OŸNê‘rys}qµxøp³XÞÝ|浒Ωµ\šL ¹œœIéÏ*+|Yòø=ïÚüÙɧÆÖY4‹Æ­±V1w7õ̺®ÆTxs^ ¼áxÍç#šÎ&ÑôÌï(÷×ï/x„~CAtiâ’÷.¿Eð»ýá_äæ§ÔŸ Îx¦!ÏÖ——+m]QÆ~a=§{édtÈÿêm·{Ýó…ãÙ8šá;¾¼%oæcþèãòèï£ÿRï¨Ûendstream +endobj +1251 0 obj<>/XObject<<>>>>>>endobj +1252 0 obj<>stream +xW]oÛF|÷¯X¢#ÉŽìæ¡€c'­ÛÚN-F½œÈ£y ÉcîŽVØ_ßÙ;Š¦ übñãvwvfvùõhAsü-ètIÇ+JÊ£wñÑë'´XPœÑr-ç Z½‰Þ¬Î(NiÍçsŠ“Iœ+K¢®e•ªo´–´QªEÑ’h\®LiÛÒï:¯è7Š¥©­3‚tF.—´åVàª(IT)á0U%E“â¥\I™6¯âÏG³9ÍÇѱ'µ¶NåÚˆï¼þ°ê²œuiΖ§ÑÙ±ôæ6~OoÃcûb&#.N(é§K] +UÑ…®œÑE!ÍO> dm%Y‡<œ&åð+“†ÿו$[ËDe*¡RâÙ”‹áZeåT"œÒ‡¤ìrá(5U* #SÑúú¥>~Dßåa©6Jûx÷ªJõÎÒMLki‘Äq´ ƒcuá±}x¸±£ ‰.kQ)‰þÙ­°¨EW|ð#ê"ùÍÉÊ"WËUq/þ<¿¡kQ‰ÄX"Fm´Ó‰."ä ª´Id: +w­£­ÎܬGg'Zð!£T¡åjÛ8U=øHEˆCÄ(Np’Ê”ty{}~u¹oŽ)€dEY(Eg£°¹Þu$b|kaÐUsh,ÞLŒäOhÛ'(l.˜ÿ‘Ù$—%Ç8ž…‡­|)hÖçמ’xl¹ŠN˜«Ã»¡yœå–“³áè–¤â$¨.˜Ž™*¤ïZU9VÜõÍäþöî_ïn?}¤6_ð>3 5Ž Ïo^qõ8\ìð$ÄR1Að v¹•fJ*…i÷Ï%½R¾ûN$_šúû'7¯"/9+JÔ ¶™Æëšnׯ—t/LÝ{J—°ÀB…Ë}?YUªBŒ‹GAFg§4™k»\%¹×Ú Ôg*…w@~ÀîqûbM¥¨Zª¥û¸ßð¶ë# $k,x=…©î%ز¤’B +(ÂÊŒO~–¶ƒÈd[¸Z‰ö¶kº™û^ùÀbjr‰¡¿Ì ‡À)蔵Ï]$•6}=@F9% +õO`“ª ·2üÏÂcT™P*ÁY› W#¿6pïO|ÿRÈF‚,=ÉLSydÁ/¼0Š>„¬•ÑU‰£Eú2D4Ÿ­ð#%Lœ¢³Zàž¹„ŒÖ³)ù –9Šš¶•(ñ¥B‹TlÑÏBm ¬³C‰s®’g5µ®"º‚Eâ¦|ë0Æ‹Õ± Kî´Ëƒõa €OáW)Zªd0_*Ø2‡Þ¥AÄ@ÌÕzœùÿÀ‘1•âanì=9 i\ŸY<@¾ 2’<˜5êåäð.Áö”}¿¬9Q̾¶Æ½n‚bAðëÀÀß.Þn6÷W77ñfó #þ´3Làú†^¬=­ï´v/6›ðãx¹Ù°lÔC×£½Yr!J5ߧá)¸ZÀ?:Õ[f;JD!?œë8S™äú ÓgòBOÔ£ôóŴКN‹žô­n`-v ­„¾2P®P0o3LQ~mß"vÿ· M&š ÍŽx»'7îw+’•IÓo?ƒV€«¢[(†(N©ÌC„ÍÃK,l>Ø8g§‘OƒÎ9s ¸QzÌ‘õû‹OwWñß]a®Çƒƒ¼?ž1†°Ï2@ãÃ=qÐ¥JÃÅïÕ fF4}ŽîÏ–ä ƒÄLhx¶wQyبԩ,BŠ–÷“>Ù§ø•iTjï‚eEvßÕÒÊâÊÛJ¸¦¿ÒzŽ‚b€˜RYÞ¶(ƒº<šOu;H“j¸Øw† ì[h<µRý(yB²ý„€‡£'FZàk÷€ ùËÞ Ô¸ÿ úð–ï Ÿ'|•×¶—cëËí˯ ¹Æ¬‡ÈÄiÓNéÁh¬a©°¹ª1¯‘̧kvV8¸„Dá»#ýýجÄxÜùÑ€þû Óh§@BO3å Û]Õ›øÁN»öÏ óĉ¢[Ô×{2u1 ¿n‡ ¤ +mã“÷vW´†{ ³Žg¦›ÛxÄ3΢Àó“ˆÇlÖ Œ~6öAB¯à²xðY>ïþi3 {X)» +ÇÈÆhê!WÀ’<•‚à1ôûjÏlvÿ|ûT¸wxIý¾Îâg¶Œj¨†¥0h™ß5>¡˜Š~Θ">ðèõÍDEø\€lð!µ÷¨ï7ŽþúÃY7¶«Óh~vL«ÓE´Z½áõ†öî;®þ ¢bsMÞEú/¸Ùþ•Ùéüg~þ­Ƅýè +;< C½Åëü÷ x~§aü©ZœîŸ“99=‰NñOçtrö†/½þ:úþá7Úendstream +endobj +1253 0 obj<>/XObject<<>>>>>>endobj +1254 0 obj<>stream +xmT]Oã0|ï¯Ø· Ò¤”6ðÖò!ñp…£9¡“xq’Mkˆã`;ôúïoì´GÕ;5•{wggvìAB1~ MGt1¡B â(¦Ëd¥4N§xáo˜ªÁ< ïÇ”$”UH™¤SÊJBxSVœˆÂIݠβ¡µ°ÈúèØ:.IZjÙ(éüÇFºµlÈ­™j‰5KºÂ—p!óBü”5¯Ø¾žF§ÙÛ ¦óÑ$î$CÖR¨\c¡óɈ×eW 2°¬¥Ûöå +ÑPÙ©6@½È¦ÔK‹Œ–³ï$§Éª¼ÖnJª´QÂ]“eÞ&ÑÈÞ-nž=e‹Èýv>¹}¸§‹ç«ŠhJ¶]>´¾Ãa» èÙêÎPÃÂ@Ž]ûJƒZ¨tèuÙш([CºJ=+¼Cܪ«)ï^£åL,¬¬·~¯$Ð’ª­Yq(05ÜÖ²a8Øìų[ÌEÙcu÷"y–/Ú¼¯ŒîZ{Fûõ«Ë3ò$÷ßÓ‡YÊÛ°·dóÉÆúö¨ÆÉB¶Â1T#qDõV+eËEgüÔú®úák¡gt]ƒU¾=Ä„ÁD0M°@ÎÜ Þ.”@f%WárÏp?ÎY­4fÀÈßRÙãod]÷Nz\ÜÑ“‘J`s×Ü; C¯'O·7°$=8ïè’­4"¯¹o˜E±>¬xÄ5´ ×–ƒm˜æ¢xïÚÿâÌή¡õÑ@ÖÛú‰§ŽŽ LP +'ra™¬>èöˆ¢lVGMÿ¼ô¥‹¾á%TíËZµ ¢Âáö§ÚðJZg¶aÃûtws$Ü*é%iÜiô7ŸAvý†áAŽ¢óÞ ŽòíœïΧñ•?‘˜Hnoé‡]¸{ì5-Ù9Ððý=k¡üëO¡z…+Åú‚ãé8šNR\a(–NüÒ]6ø1øl©yendstream +endobj +1255 0 obj<>/XObject<<>>>>/Annots 735 0 R>>endobj +1256 0 obj<>stream +x•W]oÓJ}ϯ‰—"%n¾Ú¤Hµ”^xzI¤^ ú°±7ÉÞÚ^w×nÈ¿çÌ~$©Óêê +Q°½;gÎœ™>vÔÇŸM†4:§´èô“>Þì~üø«3M“1M¦IŸ +ŽÏ’ixÊiÆçéì|š i<àÿCü5’–ø0ÂPüaVl×ÉE8::KFñì3§áìàb”LŽÍö ¡D;wWóÎéÍ û4_"£óÉ”æ™KoÒ“ÏzCµ¦Ë´&aIЕHšŠ®u!TIuYçÒžÄÛù¿>õ†c˜8¹mŒÌ·4ÅBìfá*e¿ƒ‰÷Û_3ÒÈÇFYUKú!E¦Ê•?<¦Á N’s>|%— muC)BQe#Œ»ÃÕke)]‹ª–¦KU.…•TˆIÁ᳨Ý]‡T°U‹E.i£ê5\ªUcà—Ù`äƒôIÝ^dP2iS£2ó.¥O¹‡¯½Ïßïæß“—ru1˜+£›2{5Ã;ŽYˆcÈ?Зð©éZ•!!>ÌI j¢´”&×+]—ÇFÚÚÒÒè‚6Ú<ØZÔJ—ö°v1Ã;UfzcéÛ<8Nèn-Kù{‚ëÍòUöCÇïö–»€hî_0¨¥Lßâ¤A—èò˜S¢Ìðƒ¥µBÄk kÆ™dÿ¥($2̨ÖÂG¶ûBõ¶òÕàòkcà1¡9Bñ.Z~Hld•+i=€«I/‘#˜Q8¬­nê§.á Éߢ¹ÜÛ*)RF þ™#µT½T8¡lË·­ÁßÌãä.›<'—<3|ü:¡K¼ut> éy‘y¨§L€È »7lu/hRDzÀg—_7¹eÏ!Uh(€„À¹ê¦À2Ç¥ávgrŒ¹q*`ÔóÇÞÑ%ÝU³=¾ØÊÿ× Úä×[WG Í‚;ú5™±ôëäŠoøzrrãC‹@)€U‹^Ç»jËqó«ƒ,#ÓvLßi6#!å + ¥äT¬þ;Ó% ¬cˆ™fîj4´”!V²hBvˆ QÏWSôÝþ¬¥Yk}ŽÂÉ[O—PÖv’`ø¿6bKÊ«DЦø–“m©‚ëµñAFSíõtDSVÍ8W¢+Ä“P9ËLB×^"…V¾µB‡–V‡pœVik™6ÊFx‡'KÚ£×%°™@ƒ–?ô¹TO>Öhɉ]¾Mö™*Ñ«P4 Ća¥—K•*øØbNT¦DÞ<$<åÒâRÖ;ùûõ(kÛE?¦yG×AËEö1¸òn™É@µ–¿yÄÚ¦€þpÀÁ# ›X2¦òÕ%λW;‘£¼ê¶±¨„Ám´…z6ýs•ë…Èï{Êȹ‡V±Å"á±3ŒÎ•õ;¶zzÓ§ ¿ƒd<B1°Îà_hë;O±ŠÞûcXbø{H$´æ{ÚÊQžŸàîNœÞÄ‘ß‹N'Î9ŒÎx‰œ4òᙀ)m)Wí‚~®‘¶½wøâ©”µ³|Ovͼ¹ÕŠ-ãŠìð¬1âÝÌÇ#–Xâ3RA¸cFaüCïÖ‡šÍþ(3Ì=®©‹É†ºnë9ZÞR ãž€šg:E¹Ëúõ ÁÿÇFäjÉsé…- ö²äB|ðµŠÀ±´‡]é|o‘wkU8–è]ò¡pŽuQÙŒ\)'±ŒÎ7Y_}ù>#_}æh (wõÍ õèò•»/ßf@Ý Æê8/P £EÁ¸õ™kL, +9íµÞ•.†àÚ¤å°)¶œ]`nŽ† /ám»s¼5ЛÁÂk> €‘.Ø,‚Òò÷œÛHcƒãÐ'ÂVÌB„åg êÏ å–ÊtØ.Ê­‡-r‹íÑ^Ñ•]Z„Uã«J¶zY·¼_{QR¼}0üŠâÖgÄ}¨"¡ùB€¡µÖ–©È „(Ï(vvz3ÝoÝÓ‹d2:ã–þ_¿Ðÿ&0žŒ“É9~íaãÓ {þ4ïüÝù­†Iendstream +endobj +1257 0 obj<>/XObject<<>>>>>>endobj +1258 0 obj<>stream +xWMoÛ8½çW °‡¶@¬ØŽc;½ùhКva/Šr¡%:V#‘®HÇuý¾GJŽ¢$ÝÅ¢j[ä|¼yófôã` }üÈd(ÇcI˃~Ò—“i?Êh:Áç!þ*-Ëð`tz’Œ^zp|2z~ã|~ptu*ƒ‘Ì—p2žâC&pÐïË<}ûÉn%³Ú‰’o¶ºw^ùÜYæ&“Ü;<+Un$µÆW¶(tõáÝü;,Žd0ˆ{à ,¾=“›¹l[&p˯tc`vöùü ?(/[e`XIaSUÈÆéJ¼•…µÁãóTyÉJ9þ"y4Dï}é Ž‘)¼>Æ%K[Ið’ȵ9ùUîd±Ã—ÜÜÁãöç×_fbT©åÇFW»p‹Öï*»YÇÁȃ”v:î”s›`…<´JWb—!ËŸsƒ'¹—;ô*½—eeËð˜¾r>eÞÏ °Seð¿ÛÂÞYÓñ\iØpÞ%2·b¬»ÖFœN7Uîw²²Ì/¬_í:Ð83tºÐ)½};ÿrùå½°ôˆÏ./$]Y§Íí»Žß‚mUI"0Q%r¶ô,%KL›í`9‹žXî7NÒJg,µ*âa™X“ŽoF¾䰔ݾ#h÷YD‡¢Ü= L¨õº²ªHh«MüÞñ]Ê|Çš¼¿"q£Jö­yZ? /™É‹PÒ•2wZzã!âÃך¸ tftÆ«P»=Ÿñ/t“nÃV7æ+´­yº`þ %þk. +×ã/_*Çò¤v½ëÀ\Sæ`§pì/•‚Ïu +‡‘cåÆoTQìž´l 1Ï5x4"ñXµ¨w<Š%¹÷gª\¨ rŽÞA3^Fé¹ø­ô$ãPÓÄG•µk˜ Ñ"1={ÐÔ&ä ]”O¼M-¸R8ÁžÚi@å†ÉååºÐ%hª³`¬ƒ[Œx®UI:±n,,oL†P<èd‡JÚXŠEDsºa¿Ôy +Ãèøsr·B“ç­d®@s8~Dóš*Š¶—Tr”YÉ9¿%X!øò·¦¢ fAå+­â§ý'Ç{Q=¨¼P‹¼€æ@—k’D™‹ðÔdG)VX<ù=È:Å!Z”}}xÈSE‹²'Û¦á£ã•M(¶5¯S,Î9¹n<©:òRëGZÍØù˜Q(¹«y‚ëÎ~Ï80¯÷ÀÇZf×—- .Ž3à65²ŒX$i„RóÎ[¤Ô#t™Ýœ×Uþ€)yôùìâÓõÍÇþj+>/XObject<<>>>>>>endobj +1260 0 obj<>stream +x•TMoÛF½ëW Ѓ bDJ¦èCØù@}hêÖz(rX‘Cqr—Þ]YÕ¿ï›%ÅØJ.…Y¤fÞ¼÷æãq–Ò)­3ZæTv³ERôýÃíð° <Ï’5­Š5¾/¯’%9¦± dOcìUQ$é›!þJ«å™ÈôÃíföæÓ‚®iSSš¬–å¨r•´©"ö‚6ååÁºo;g÷=½%¯º­zµù:[Ð<S^V¶SÚP§|`‡cÐÚ5GöñæÓŠÒTjχâólIx¡aúg×Ú­j¿Ì=—A[C¶Žï}·MJkêÓóí‡÷ míÁâûƒwdM{„;© ¢QÓÃÍï·7¿¤å‰ç2ÉDÈA‡&¦þ}÷ù<»'v#,¥ÞÙmË©¡Â ,Bˆ¢Ïnïþx Á¯äÇŽ• &sÆ¢[žrEÛ#uMCĆž²Ñ†…S¯è‹Ë?š~Aµuå3ñÆJ¹ ýLìèÁ–.‘¤hoôãž'‘>˜;Ž^TR úsït§Ü‘> oMp¶máÖÐ×kJWÒW É­o³ª,ݬou©‚hdB#{åýغåw/ÇéÙZ’ÿs^NÀ³Dñ׳ñ:è'xu¨‘Y‚»•ØxhØ0ÚI%ŒÝ‰I6Ö‡ ¤àw§*Žäe®ÇÎ|Dü‘öÐ~áa=XZWR0ƒúR)S=c0I®Neã¼>œÂ)N›ÝOÌ¡HÇÖT7Œ^{táD;˧o†á§8nקKDƒõõÞxJmÒº¬)Õ>qf«=ííjK×'cigŒà ù~¼Ï‘ +ŽÃÁ“³mxS;•BåùQ®Ð)ÇSï5ùb[)ïéf°ØÜPfrÑcMð?ÿÛT-{V)Ìù?GÚ+ì¡­ò&¡¦ÄŠ¯U™r‚mvá¤-±e¢«‡Ê´=|°î…œƒDD¯=¦Ä¥y®ÓˆÞ#üÂ_½@ …á»/Ì)‡šÖ¨QãT6וÌh?¤*× +v:ƒ%¤›óÙ<·öÅã¤øF´éhÊÐGÅ>Vº”(F´¯ëê_ãñápˆ,~ÍSUEÖíÆ|dü>i«=ZF+nyœÝLo—V;,Èâ¨+yÊU©ë“—Gzi83•ìˆ°Ë'ªÒQb‹ñ)kÿåÑtÅwçÀ~³µ%þøÃ'm!OÍ67]±ct5Bªí“b» Àˆ|>úZtŸ¦4PBqho’}[dv½Ô);‰Îêbv:T!U°o3ÒÊ18›¢ÐnˆžL¥Ü‹m ÖK*íºEô¶q ÊLêH•³¯âäVÓ^çUÖ䤜tc¿¤k”]¨`ôôðnÄÅýûãçõG*”)küö·GzÜ•*1–ÞÙ¦Òª¯þY™Ùàok*ÌYbNá¶ç†Èœ-èñáçû†RÀ[Ú!#Ü}þ”j§¥Ûšw¾pûYVœÙQ/µ!(Aëƒå`à{Y; xGff×¾LW¡l;ŠëÀ3oy쑯M›„£y p®[Gv}ú¢Nº‰à‹êjðA}°ì.Ç¥PPAwnwh¦ÍÀBÆ™’•,Û9ÌyÏ}¤”Pi9éf ˜.`Œˆ–ÜË…­ÔÁCÂæ†Z»ÍÍî"TÎt–‚ªÑÖÖu®aäE<@¦u§$ô™õ'J­SN+÷0 ê/û­{ª_‡MìF]D®Á” +jÛŠÓ%ÍxŒú;±YL1“ÉìÁ BJR&Êmò†‘P¼K·<›`rºÊMÂt­ÎcƒtœK3n)¡É²~XÒÅ°*Ú~`(ç:ÃPFý¹Åp‚o›û–Ô|h„E×ñäü±L6ƒxssÙ"çåfï÷ßÛJÇ’—œ¶¢#øe_´ÔüM‚ì©G]ïjqgFÆ.WðŒÉÍÖç¡ \(™&ÆÓdFèî^ rŠ,9 ¹Ð/ÐÚÓFU×(nÿH +Ãe¡Ï“Æ ŽÕô—Ê´ŠÄÌ6dăeXï?éR…&xL¹o3ó•ŽoŸZj¸Ääß$ªS’•÷ÜQó&—ô Y˜ÐRLh‰<ÈئÂøÌ2¯Z•B[ÝH†ásàÒ6Ðoä1¥fÕ1å˜ØR)jY—ïŸÛ F!ýp'ÁT!Ìnc¶ô>†¯Â– '!Ûö€.±WEºEyéL6ƒÊéWˆåò^èÙ*aÏqå8çáNÐA¦2ò–X£Nƒû»?ž©vZ3-Óc+”x‚M£ÙˆQáx˜mªÊº:Ðâ^‚§[•¼hàt3ÐÑ.jÇÔi×u£ËLjg\l¿l<à$üt¹¿N·_oÇóÂÿA'ˆØž¢¤“]Y:Ô|ƒoäPžùÕÆ”aÊ$ox +E¶¿mþ;¶<4­X †›è¸÷61 7¦:°œ= í—)cÝ2ôfÒ4ÎoÄÓl.ÅÁƒ)7õñ¬¢Çx…@áÀ§Ç6gt´M7®öÀ‚Œ¡å¡ÈšHzãEºúDÁ¯7DeŠJ°‰Á¼>Éu8x-“áÉA³X¶‘ÏÎU[}XÇcATå¹ÿîüÎÓù §õRѽ½þóå>/XObject<<>>>>/Annots 757 0 R>>endobj +1264 0 obj<>stream +x•X]sâ¸}ϯ臩 +© +ÌgöiÙ0™Í½I&7ÚÝ*^„-@ÛòZrþý=-Ù`ØÌTmÛR÷é¯Ó­ü}Ñ£.^=‡ÔQ”^tƒ.î>^¾\„½0èÓp4BJ©ß7ÕUBs^OÃÁÏ“1¾‡x’Öᨋmƒa xÛd„þŠ· ºƒ`tx:˜ôƒIã)  B^q*´L&@W†Já¸ôª¥ãI0ôz77@önp#Åš €ø« +wÓÎJҰǘOuþ¶¸èÜ ¨×£Å¾MÆ´ˆ‹º´ˆZ±ŽÊTfVX¥³àjñí¢Kípe‹¸µØJ8Cð›ÖrG¹V™5d5[HcH¬tii·–ìVoïÜ…•²V»½SvÛNb‘‘ú‡5’ÅZÊ´¥¼Ðï*–A=̦ÏdÊ<×…­ÐôúpÐr-‹BƬ_eN¡Ý*A ŽbU%e,a)HŽƒQSJ¥È é5m %ßU¶¡ÒÈ‚Dé2³¾ÖEê\BëB§$2úCe±Þ +»È°idÕ»¤™*ddu±'ì~—…ó_ç.ªÐÎP`_†£qåžÚîa»6îUžˆˆAu¤:¹0fÿ+ÑípônŽ&³cŒt“²2¥ö¬T˜›æ‰2[8uµ‡X©‹ÀÓ|£czž>Rªã2‘& ‡/Ï3 RÅù17ò,J‰Z^5µ½²BeÐà<ù<=Ð\¯íŽÓjÙÚZ›ÿÒéìv» qQgyÐïz'¡êÚ…9–‘8•0b­6e¤gŠÊEô&6ÐÎâWrÏ6ã ™Hç’c~’2•Wo¨‡ªàòh÷>õç>ÛùcîâkXe³šÚáUî+¥J]‘Æ+Št,9GÀÉg+  ÈŒb˜”Gì|k¥±øê½Î¿æ2sÚ˜…|F¹…Q¢P¡gæüìë&½Z³Õe‚x"¾«Dr±ìtñF\Šô$­‰D./M#w½m M4Ÿý÷3½qéd"Cßœ;agÑ´>\e€Ø÷š‘pž)€Aýê±ÁƒU¹AJ-8ƒ¨‚Ìd€Å[Q¸}kõ= ûõ™þ½.]l¡+œ3ëšòD +ÈÁfSB=”¢€‘apt’ 'l=|nZ‰vuãWwh°'#útû㽟䤥Âíy‘‰£ ³U9Ëç0¾ÜÝRØïŽA—F}ŸzNùaæÌQ•(e)Äd2Å +&¯oÍ„]§y‚,ó²ÑÇ·äwª–¦Ã¹Ôñ6z§ ZÎBä|ÍAËÖ“¶ðž§s0kSñ!‰Aj­¸`‹ˆW#¬ßsY(×F’š¼eÜ¿wqƒ||E„\àˆüYdÒÊ]¤Wß@­Qò# Ù€n3âväø¼s×¥®Ø^0è‡ ºa0Á_bsß²…çý  ñà=H¼èiúø™.›*/iþúŒæ4_¼¼Þ.^_¦5BôlNü3û<¿¥K¶ +íåGë_ç •*¦OTàsyõáºé_Äë¢ Ë’ô™é^#s?Qfù.~ÆÎ¥åez£³ép’[µ^ûeô¦¢7}¸‚´[‘ÝnE¶ ÂåciìáÁÞ%bc~*?VjÿÄÔó‰Lºú]»o[ü™Ü q7*T;@>PShNbõà±ôÛÐg°‹[ó 0ã‡`‚ •¢2¾ºÌïg¸ëMö>>rt»Î±Ë”Šª›EA®®éí;?óy©y¢ýz?{rwÑ;îjè›\>Rð°׶U“ øߔі9‘‘0S€«Ð 2”G^®|f¶#æ7[`@±øꪪÐï3âS.§Ù¼&À3µ¦\¥ÊOfÇ¢mp ` OŽ èŒþ*Yõ(ø¤aÛŠHû¡Ä»V¥˜¨X†Á0ÄÏ;‘÷Û*Î]"™ X%>d \Èm5†ÿ¤”Z„}Åþ=æÌ@hvx˜BO‰Ã!‚é€tPíÖ¾>Ýÿé|4ì4õ¢âfƒ.Oiâ˜r­òâ>eëYÈù‡y0VyËŠ°¸ž%—ïWÍÔð0„Äñ&±C@–-l&šåUåpå‰È}¦°š½èx×D™œÑ¹¸qq¢Ãrü"¹Q‹jó“Á}Fà(ŒÌ‡ s£åÀ~äWЛó;wYW(À uŒë`ö5» *m¢!W…ÝUo"–ù#ãÐó¡ÃÇJeþ€sœ+‘Ä\H@Ÿ~Lu˜|~ž)õ|p@xWÂí=e1·äg³=¢ž`j­Â³‘6ße"]¶–W×$m€Ù$ðfsq6û“Ô™nO.p.¢J©«Äyµ Xv¢yd¯« h’TÁîY—Î+:ã9-Ò8BE6ÙWAæDäy³Ü™Òf§â}‰³š6FUc¥/vŽ»Ç‡¦ñÓÜÏà®1îÙÊÑLÔ|" öè™ÎˆxºŸs^ó4 k3iÝD ¯9¢Ä˜ámCÂàœZs (Ð1‹2² +«qnRÑMÿèNú4Œ‚ÉhÈÝ}>}ümJÏ…æɃfÍS%Ãl×[Úã.f¬ÿáa0ãŽú¼ì¦Ç»?/.þwñ ý,Yendstream +endobj +1265 0 obj<>/XObject<<>>>>>>endobj +1266 0 obj<>stream +xVßo£F~Ï_1RB¤ìØÎcr×T‘Úܵqß,U ¬í½KØåÿ÷ýŒI¬öŽHŽñÎÎÏ׋€&ø hÒtNqv1ñ—K:~”[¼Lh:[úSš-øÜÎü€JIã5Xø·íÑ|æßuGÐìO܇ÓL–hô„¸\kyX]Œï(XÐjgæË€VI}wB«Øû¤óÚV¥Ê·ô"²HÐ^Ùýöùþëõê[suÖ\M'þ—½/…ÌY€bwYX¥óF|—x“‰·Ò¤ò8­I¦* +]ZÚè’ìïlï>Žu•[ÒÑ7[È’È©³¨¿êò@F–ßeyCU ËÅu°Ñ ‚©²±Z£oâÌ$SIV“IE‘\™So©Óì7Žs®[Çç>BN¼Rk{ٜ޺Sâ¢ñ»µ2–6kd$MD1nLßç©|–oö¦K'áÔúI§Z¼& $hx…ãó¹ƒ >­ÎdÂV¨ÜÝkÖ–*ª¬4|¿—ÍýNÅ;J$‚K¨*tN—Ô˯il\U*¹:*"epm£r™pAþÆÚàÄåoà2ŠŸ|P׫D™"‡g‘Éóv>H' =ÛB–FçgL2N|z@l¤7lÜHÊ*€,’m¥’Af" \?^¿mw ¶ÀŸMC…·þÿ¹ËKꤸ(N4$„d¿´öb¸Ô¢(åkö$¸¢Jíúº=ˆÍµÌ¤ã30_SiÜSí4ôÜÈ¥L`†YÝgôO› ƒùƒîž«úO¨êw”÷¡Wy¬³L¢}ÙRžÂ0© tE{Á¿¢û¸¦ÇXùóñS8,P«ç§—õµ+à Q(ì°,Ö$W¦è2|<¬süØ6ãQ‹³E7þ –!Ò¸Ïå³;akÇ34ndtÆHT, üõ{ÃÊ4øQ¹©ÒôÈ{sƒü×jjltšê=&K¡ëÒòMdE*oêô@š ú»(6C™À¨`sï§Cœ +c ²ö¸MÚ¥þ¢ÞÚ9‚“¹úø×RÈ0´—iº¾þ/Ò“‹lÒªu`DúëF&ï@9”onÀÕ!€mòÕ õˆÔB¥ˆþÞJ‹ø‹}.²µ÷mY!zT”ÒÜtZ[Æp—p,’Vm$Š}©’³ŠqÖSÜéìyÚÇ=·K‡yžhÐoy™8W”cözuƒJ…Â:àt³¹-Ø ¡——MJ‘ç*‹0’øé=߈mÿŸXœ÷¢>¯-“lñ/—£Æh½aÕkRKµiØRí݆ÅÁ¹ÉÄm%4ˆŽ1Tˆ³ÎbngU|*&fÕã,úë}­Ñ¶[ÊhÄ¿Žx%ŒN zhMœéz'Kêëmz?Ñ +…^æ6BÇ•¥S̱§.§4ŸOü»c,ñ^¯¥®W¸Ï:®¸'v[ᨽ2ZLjùw)9]:g‹™¿˜cQfÝw!{÷Ëêâ‹Ð_9endstream +endobj +1267 0 obj<>/XObject<<>>>>/Annots 772 0 R>>endobj +1268 0 obj<>stream +x¥WßoÚH~Ï_1 +º ‘‚Á@ œ”ª^Úžš\®ðvÜÃb/àÄx}»v)ÿý}3þA´§*‰¬wgæ›™ofÖÿ^øÔÿO£>  +·=¯‡'ÍÇ—ƒÀëQ0æÏ-ݽIµHhvq´ÜR0ñG{¥Ü¨ï9Y䪽ñÐ (höJ¹Û Öödq«öÆ·^Ÿ‚fïh¹¥É˜q6{¥Îaà ²8è¬öÆ š½Rn0€¡‹,rÕÞhâù4{¥\qlädq«öF·l¯Ùó}Žïíd Îû#ZËKö¼ñ¹©?ìšEý^àh8á÷ÈjZ&²:ì#0~u¸9ún~ѽ’ïÓ|Å4Æ#šG‚ÍÃv©ŒœK®çÏ8V;#oÌô™GíE?Q¹[«‘ÍŽÏ‘ÃRƒ¶_µ}£m㔢ôj\±ZÅßÞ¨d'ù›ÊŒÍG§ N¨Óg2#´óvšiÚx©#B„ò&·]z¡IW‹öí⚶*¥L­q6ÈÚÅIB©Éi©AƒL«’mµGÍN#U7¤È©m–hØ£&µbBÀ5c©†]œo œ>¿Ÿ>Q[æÆî)4E‘Ê`Á’r¥¯=š0Ù|o8è×[oŒoxÓjQ·p¶›˜P%]_ªn/»µÅª€ÿ½NÌR%ÿœ<&þs:,lœïéŽÑ ïØ…JRŽè4´û,GXœÛ9œÝkˆ£}U#r4Õù26ŽRµÕ85ŸÎ>Îÿðç9ÃÐô²¶¦ÈpîqúåñÓ´:õJa‹¤(¬N$ð™²Ð :µÞBrWqª%­ï)7eÄ7:¥eœFqºægœôCàá4’Xë{åx‹@›ÆmÉ`¾‰A5>™¹+™T‡Þ#ú¢`ÁR,„= f‹¶…69¯=2¬+ÈK|#êìª&Ñ/³ßFŠ¬Î³ǧ{_q¢}Å®ˆ}vè\„[=ÛXÚÕd]ÎË£¥Ðp?­$"—èºq\ÒW•M’OÂnTºÖî‚DÍ‹ªV4hR/ðÑ;í•-à2LïfLczP)ªÏÞ˜â.ÓEu…wÂpþaìúòn+tèr& p3*gBuÖÉàúÀÕñ0C1muZÍÎúÚÁm{T¶í©“¾±Ò~`H–‚¨ã-¤¢„û• :ÂyC{SÛÈôÚšˆ+Ÿèo±c¾×a¨n8Ò^°c•GnL"lŠ´JÊÉøÊÊsŒê"×®î"õ<PœtýØ2c¹Í¿Òö +ö3wá$~Ñ'îõ8Gó(²P!ì ¾ªæŸ£‰Aí(Ì—Õ +—„eµ&³!©'nE.S¡þí8v¨ºCLÐ2Üù²DÅ鳑vÈ]°@2DË´³ÈSÓ5¿/“Þyôbpb”/BñºथÇÙLøô4}‚Xž¡¨°Ö\ 7u«èê<ìr…É]Š;žè)óÌ Åõi?¥4“žé®¹´û^ßðPÑ¥SGü%·w¹ÞrmqˆÐU(3.þV¹ïaTco«ùÚ–oT^©Þª—Ó¸Ž¯wÈÛåcV{t^›š€A0 :5ô8ïc$â5¢C!*åE‹CÆqíÞ«·?À{ǘßûp± +äF:›>¼›Ò“5\óôÞ„שċe;µHgÔÃ%0jÿ}GCoà݇O¬å÷ùÅ_ÿ +(?·endstream +endobj +1269 0 obj<>/XObject<<>>>>/Annots 775 0 R>>endobj +1270 0 obj<>stream +x½XÛrÛF}×Wt)/ô ó&^\¥EŽ7©’e¯É”ZîÃc3ôÌ€4ÿ>§g’‚MöR¶,‰$ݧ»ÏénèóÕ€úøÐtH£ ¥åU?éÓd:I†4žMñzˆo+)ç 8zúñîïáèÍ`–Œ©¤É<™R|SÐâêâmIƒþ8™]\ì'³,5?ì†ÍÒp>Onj§ãI2ø¦×ÓÙ~2oüqyõüÕ˜Zæˆi2›Ò2 ˆû´L;…IEAkª[=Kž-?âøœ8ÅÇ{£1Yf…L+«ü‘„Îȉr-îÒÔTÚÇ;ÎzÃi2á;–[‰ |ûƒ!UîŒõB{Ú¥½#oJ)˵´tØJM™riåœÒò[I®qhò'þHjo•t¤4Ÿc÷€9¡4pš)+So챎dRŽ*ö†“Ê£ÜKûvXØê`á»(ß +çÆfd,iz'ÅN ),yùÅ“ü\)ä Ã%Ð&E¢Ö’1g\~PàH'gc¡ƒò[SyʤUûš ­«6Jƒµ®ê¢7.¡W(Xi@:¥scKáQÂvI/T¢åôðúù㲿 äÀl8ÞòúÓãý»ßÞ.yóHéV Ð–í°Ù«¡÷ó›÷Ë7½{S `Sy0³aÝ2ò=;†{re?s\9WÉn¸r]dbGÎ×äÊu’§¥d—™ÌEU4òA~YbšhÈWó®~Õ‰L»©yØiœÐ-’¯5¥î¬ž¡ k‡P­õðJ +r0/i-דð”…(zÏ¢Ž†€ðÍNjF ÷ÑxC—”'åàÂY „aF„œ4¿^X¿|XD‰bRgà’b¡cO ]!RÊ ‹„~ !^´ –!›©pÈúÑT¹àÑ›â:‘©¬ØDž¢1‰h x§¶ôoSšç_å4Èí‚&Ð^ø!§fA;k¼IMÁyÈä­ ÚȸÓåbbׄãÃû²ñu"úÙ¸Íu[ùf¾6¥ B­­°Gr^;ß« *vÕ.Tú ØL1ø·5È5ºqę̀{jÊ²Ò + Ydké%O ÅŠo9c#0õ3±&Ø4…rÁ1:6÷ G¹5%m¸‡p®Ý›øz 'ãÄÛ„–\ߺGeF³á†Ý9dmüîîþëË‹!ŒÕŽ+Ä. ZNZzÑœó<$ãÑ-á&™á7†À?Pìè %*?öõL_“HS ‘.aÞ€ úH\Ð#“…;µ'l l)æLñŒr·çÖ=ϯ&þúâkð]ß^§ú6ô1ºã¹Ò5ÕíNš]!»Yz 9)ýÑ„×Æn®é€M   1ö7.Q¸xÞ#zuࣛÀ3r'S%ÐOceé.׋À£Ëær¿xr’Ìú#ZoZ`(±€ÀNôn±MŸkxvw*O¬ãå–pN`»¤Q°w¯ïÏ,Lzë#Í“‚ÂÊH 2} +²¬h×C)'ѤÞ^¶ò ˜ªÃ-N´ •ç¯žîͲs±B4LŒ+D3sžVþœÅ΋C{RÄ_ÆOˆ[±ü?ðïÙƒp~![[&ðsÓÀ)7H¬W%¿©›˜Òhÿƒù´G‹+±ISç«•Öá?JãÅ@9SŠ¼ö‚„<ÞýÿV?ˆÚ¿*Ħ%„³ËÔsOãÞm±Ê‡©a»Ïïßèòé'‰¥áŸÿ:“›ìó +Oyãã""W¥[fð¯´êp‡]=ëÒûUKñ'ÌŸ|Xu4šs³Ê/;G1_äžÿr…<ÌÏìôxñ_²¹0£—¨u,ϹÇb¾G"„¥œð b¡2 òJy?uÚ^Áb<]ÁÙcžW—ŸTúé{û„Ìî…¾ß +½ù~¹…ÓוóßÙëÖ”ò%ž,¾ŽÓñ0ÊùÁ2¬|† +é¹qc¨¶ +rÀ‹Ë9øõñ´÷èõõ}OÒ`þÉ#è…¢¸ee—vKÄÏDgõþÊO.týá&mxˆþÀóŒ½Ö€ê‰EP ½«Ÿ]¾E÷oLŒY½» F³d6Ñd2M†“Þ%w¯¼£·Öð<¥—&­Êfj±ñÞGû³õ¦}¬5ò·ñtœL'øËŸœÙÀOË«\ýÔlH/endstream +endobj +1271 0 obj<>/XObject<<>>>>/Annots 778 0 R>>endobj +1272 0 obj<>stream +xµX[oÚH~ϯ8ŠT-•‚kƒ)H©ÙtªvµìÃ`àÄxX_Bòï÷;36‡v›î.(àxfÎå;ß¹˜¿N²ñvÈw©Õ¡`ub[6îl?>½ç;äùžÕ¥9¶gùå1Ýé5·k[.y]û\ü¥’æXèv!¦úH,“Ú=«]îtڞ嘽“ºVlwé‘ãÐdÎvuº>MBm–M“ ‘/%Æj¡ +ÓèQžÒZ¤b%s™R”/g«™¨d>m´§oi%lYÀ2•ÒJÁÄ(ÁåJä‘J¬·“û“w—€A볩é´àÑ$ldA­ó"_š-•I>MXÇv™Ö©ZË4¦l-ƒhÉL[±ÆQRs}]d2ý%#c¶9zFÖðf„Ïñ×ñ©”µì©·.šG±´Œº<’ðe&))âØÜ×J¢ `ÆðçQR®´ÂD楲¥H!ã“œŸr±„ÏØqZSü ”h6}«ëÛ±<têv|:„[¯7[=«Ã€#;|ò´Á°¥+%°åQÆ`<Š¸VB£E™ðŒ‚ˆ˜Ä,Sq‘ËÞçKŽö}þu¨Ux=õjÚ^ñ'¡ã¯ÔJ;³Kž’©K,Œ¢T¹JŸ„¬|€Âí NÎ*†Z“®æ„A¶‚ÛPózNZ-'(!"™ÌI$á^†“½Ë™{f¶oufKUÄ!S]Ç56÷’ƒÁßãÿªÈr³´ß¨ôa»*ÿ8ßiŠ|x”)¾9-¦Ó­—G™Ss”]+ytœìòë9q¤² Êo&PÛEFq„¾Àý,×µÍ?`C§EÀ…²ŒY™(EšÊ$Ÿ©H ",k⡨½ßIáªh¦QøB+s'Jr¹€ÞT®S™A™6°ŠN™ÄÛ…ØÁ…4¥iãÓõhúö_˜´N£•HŸß§ªX_ŽZ÷Å•‰¥Z°˜ê¦Î#ñû`U½£év-§Gͪ$r#Y‰{•Fè¦Udr×Ï2II%Ä…6K™ÐXÍç"É-AàŠ>Ž†|I¥V]pÚH÷ +>›¸—=ZBGšW·_&·º/†2QœA2qÃÕ•h´(`€Ñhô0idÔ U’§*Ž‘Qo•†9ÖÔ†­œ«55Gž¡èî9–¡*±k×tî«ìÞ T‘ä dE¦‡j²š“‰Jš¡œ‹"ÎM±Ïúì#¦…-´ñÇ¢cºQEå]ƒM„eè¼ëg?cƶŒ¾ÆŠ#<¯þGø-º|1ÁÈ'±ZÇ-7Ë +t”Éàîj2~KKP)ÉftÞÒ,Ü1™;E¾¹q¹]Nr|Òíé\Wó7¦Ó7…ÙVåXƒ6"ã[{ŒW¢,CfDyVBÕ¸X—c¦¯/œtBw?J0g†t:“ÁÃó©1³ž™¸LæiIne¸™ÄØ²GuƒåÓ @„sÛª°›Nµn‹Ð`u¶˜¾¿ -ɧ(ƒ‹å$¬¨Æi…çZÌ™*Î×RqÂà\g_¨tqÊ~l')\è¾@Wj#Ñ>ÏLJr ª2…Y(ä, aHjŠÙ`ÓqÊ©ø‡aÚ›I)U$×±0Ýš +µ‰ÐŸuµÜ  b†¾F³ VÍ°íP3À›ð2Cäʘ‚Lž†0†³ôªMÒZX:R7·¿—QÚ¶­9x†™ãa«ÙòÌ0<6ÉAF×—4F™ã§ž´ÄA4UÔÆy×7³òÚwÕ•#A<ø°Z䶞FIžtª¦µVYôTX5»Ç\ÄHQ]AùI¨Ç¦:–×r¡®muñÖ&}bâ, +™å.Fä}ê Qr¯4Àž +^<òÑOQYóÂ>uýî¨k;^Çî G·×ñýç/N«Ýºúµ£ëMxƒánÀ²O®ƒ‡Ñn«ã½ØwÐäû丶S¯vV´ÛnÏví–s1{Ð>µ.¼Vû¢íx¶7׎Š"ËïdÉ6Þ~Ïq½Ú&ä“h3íÚ’Ay¨Q~^.S%PÀ·Oàš„‡(xPó¹ÿMDä—±Xd}úãóWª^Ö„±¥ÿ( “œíÙv§v` ERED»º2›o|Íÿ%QÃPÓÛ™ò 'h;Cné¤:˜¸|‹±²âl·,´N¿Ct[Ôñ[V§ÓfîÝ n.ô1UÌsŒ-:Q9}²_ÍêHÓ·Áû°ñŠ¼äßEü~éàs½6‹ON~;ùIª:endstream +endobj +1273 0 obj<>/XObject<<>>>>/Annots 781 0 R>>endobj +1274 0 obj<>stream +x…T[oÓ0~ï¯8CZS;vn•&Ñë@bÖ €7qÓtIG£ þ;ÇYËDVF"Y¶ÎwÎwîßþ˜I9 NÂÓ¡3|à^àxÀÃï.'x×6&¨þç8‚yèDG0*œ‚Þ]\FœXäãY#‘^¬¬i`CÙõhhFKÄ g.øè–燧/âä,­ÆÐæéE–m¤>Õ^ÔRÕ…øÇïkÏ\ÛHýÖÏDïkókZ_¹rÞÝÿÀ´õr ÿP‚ç¢ë¶\K=†ˆ~ž,ß‹éUY^­¶²(Æ0ZçÕh-šmÁ–q³y¬£KyÀCæó Êòôè}æÅ}žÜÿßDý¾YIƒµ"ø¶vGÛLБnU)ç¹Ær*½Ç`ì{d0#35:;dœ‰j¶Uv¢GQzÕ6æ(þgè•yªe„óPî6Ÿ¸‘αU)óØrÖem´Œ€vì†s7d^7823U–²2z´ä@©ÅáL¹ãÛ™º-¤h$”"/@$\™Ði^e`¶yon>Æ7`ì¤Öû×]Ï:8¢ÄVœª¤íˆàA4€ýo ­SadŠ:Ç”3ǵ”Zn +L+Ú•°²½®ã: ;_œ/Ô{t7<¸K}\o!ær‡ûÜÚXM®¦¸ÕÊÎÌìÂ䪲ºÃ£Ê0 ¸þÎvœàZÂ}”žE¾Å/âÁûÁo\€›endstream +endobj +1275 0 obj<>/XObject<<>>>>>>endobj +1276 0 obj<>stream +x…WMoÛF½ûW |± È´üQËÉÍnÀ‡È)¬¢‡º(–äR܆ÜewIËú÷}3KÒ•¦+ÖrgæÍ{o†ÿ]Ò.iqE×·”ÕGódN7w·É-þ]àóþzM…|q9_$wÓ/VGŸ?ÐÕœVîº]ÜÑ*'Ü3Ço²ÓǺñîUç”z· Æ®ÉX +ªNÕÙêoyòrŸ<¿¾I®ðìéÓ«ö¯FoÈãSñð ]^ö‡¯È‡Ÿ¿<ÕíÆùo|93¹¤¨ÖY©¬ 5¥[Ú”&+)«Œ¶m LYRY¦Ÿ«Lh9T­²ÒX<ŠÕpçŒ$Ï9_^Çì‚;ÏTU¡¢c)IËÇ ­Jâe™³­26¼_Ù–ª% ½Vù–Z‡€…öT˜J“²ù…óHÝØ–׎ÌäL[jÏ•ï„³Ü˜éŽ ¹r +Òo)w¸Àº¥dU—ë÷D"ÈÄž´”uÚjK*EÈ*w’2kUø’Ið‚íM(¸ÔêÕà†.pqSU÷¤‡:¡Ÿ-̺óª5Î2ÎüíH†RJµ¶Ü8äPãTF…›V\­é™YÃ|˜!®Í2cž»¬«QÇíÕmrÃÔx·1Hjù´"f ™‚¬Âu^Wu’Uá]MKÝ><>=Ë—ÿãWRyŽchŽÍø¡ 4™–°Lè· ¹NE¿?.Ÿ<*³.Ž¹ùæ +ƒÀu'<<$óÂ9ÛMjxL1‰ñÐ ×Õ®Õˆ¾fh†v«R&ç±ø«Ý6dðÜôIË2aØR=‰Ù«,6ÜnÉ1Q!8Î#ù ¼Òöˆ]¥ïw(tMã<óu×¾'wá€u*º +`ö‚D}³Y=IÅlÂp$ÒÓÖi΂cêª*8b­z'z{]ÃÕ³L*æ…:Mp¼ˆª}9 úýw/§?½œ½œM))í vã`ƒŠjZ¶È_ ;×Þu$ÈUj*Ónå{ñLî߀UîjîcåÖÈx’.W2o˜*e¼Ô«2ë<¡g$þééËýã2ißZ¹½v0§]€{~Pè²¾¼þ¡¾°höf #Tƒi‰J3´B·lÊX—“ʪCø¸],$Ü«ƒ·î=ˆoKèöãóî˜Ù®.D€¯ì)pTˆPêí$|­Ð ÃüaZ¾zÆž‹Ï{ÊfÇO!ŒHhiéÖu~ŒÛ·ˆ)ÂKÖ¯€ƒç(”®«r‘cÐmï…¨: ïÃ>å“ÜÂV+4fó‰2§D_®è“ë#3ñÖqFuÇsÓB„›JìœÕm& hp„íW>› êõZù¼ây ûØ”yúÔåjÖWË"ÍF ‡÷ \ +ýÀ Mê‡êá?Þ!_`OÖ8O,8†(vÇÆg”vhµt›ç«Õ¼D(/#=4:3…áí@æáÐùÀpM'ÚÎ¥ -W÷ϲ”DÊ싱ۘ7d‡^qe€Jô.Ö¨í«ñβéO@F;1’X"÷,LîÇr—[ÌeÊŒNÂÞPËT-Êè ú:X–8§óH’÷Äþ7&ÓˆK’ù?Ѷ#»ü9méÊÑò¦û¥ }®Æê8q}gÇ »Ð©*vUüg83T~ì òÎ"m€Õ€ðØrZLð8–tœé5ƒ8¤¼pôï/q&¹Š›óÅç»÷׫ëy|ÛùñëÛÍâ&YÜÞáµëö‡ûËêè×£BÉÆNendstream +endobj +1277 0 obj<>/XObject<<>>>>>>endobj +1278 0 obj<>stream +x­WÛnÛF}÷W Œ•I%Y’óRøÄq][m^+r)mLrîR‚|Ï IY¢ã¶(ªØ/»;3gÎœ}? +h€M‡4šP˜ ú:ŒûϦ¸â·ÐË‹áø‡/f3ô›?Å +7ØÇ«#‚Á¤?«¹œó90¹ûƒå§ŸÆ4áÉd6¥y$ï4;wÖkòkåÉÄd7Ü<ÉNæߎÔ Fý!|èÄ&Ñ©ÊÔ +ëÅÀöuæq«²ˆö_×f#ãòD=‹¡Ä8O6&µQ&7ÜZÚõk+ÃIÌV-<ɵÍáhlpî²°[g²ÅØèD¨J'Î?#zŽ}­6U0«Ä.UBÇ«RØ +C[fþ1zŽYÑF%&jž7†›ðtªÓ¥Ät›Ûû«Ÿ(´Y¦Col†gxÁq8y]ùOƱ‚žØí +~]:É@ZÂñ°±/«ZØÖ¾6>5`\$Îâê#ü¸Oó5¢ô… Ÿ8\`™Á!΂ËU¨9)~«á£fs‹ ðíÎ<-:zõ‘zÑG;¯UĶ{ 'Ý–yÙüj…Ïé] +®½»Ú€ëÓÞÈëÄVÅA Nf·`KA©ÅMbžtx,â. +¤7B,ÔGѲ ®©(TL¸¤¬T¨®KÎÂuœŠ÷X„¸á@€I¦a¦u¤£v +ç ÖHÕŠšÕ™^0¢Ì,,2XõêBc~¤Ê=ªûöžjo8Û‚‹ŽËuhb£ÛYÜ¿–$.Ó˜suÜ$‘¸t) ^œ0§ŸÎ)€Ú°ìôFãª/›êSaa#W.ᎫֿÊTo8…B¢|¿6& h`ÄyyTéRQÐ?ïÓEG%ùZ°ZÚ^œÔ ÖП%³¨Ì#å5èc!/"ܸ2Ïm!@µòVè<1¡âÁ HgžKõÀqZB"Uð'´ˆdW´uU©ŠºrB…k£EbÌN®ÕÊpµ@DÚ……Y‚k0=fåáÚ‰µò%ÈXæÌ ÈıiD¼8øÍÚ‡ŒBˆ _oïaˆ{«ÃÁ ΰ㇮±Š›Òö—·¿>J›qoŠ=Iì–µl£·Gv¸•¹¤J0Þ “‰æ"ÀÈòVL¹¶é{©‹g&ª©í¥Úîu4$FŽÙµ;°ý~}Ù +Ÿ7S(Œ¦ìQëP,¨‘|† :XÏñª}Ó¨Ô6È\î컎U™x(<ºó¿Œ¾ñÛw9¿ +›Šw?#Ò¸Ö2-|M5ÐÄrxQ/“ÞÀ‰­8E[žXä÷fh MêNËó‚hîþ~… ,tÕ-ìEà"ºF•¯}ÕKò7¸+XJ1Ëžâtˆ:ïT½‚±q¨Ë®ÃgúŠ)#Ÿuw×wó6 ‘µJ§*V»Šû»Ñb‹ ×a~WfýOè‘r^AüÏW¨O©.ë6¢å–*i¡ÂíÕ¬J”+‹“þžŸ‰&á +Ž" +$ª[Wÿ}as]x(Y— iÀ DQAóyVËnëȦÈ'Lš²ªU3ø Uã“ö3Q‰'HŒÿ–ö'X´n W{íãu ¢R>/XObject<<>>>>>>endobj +1280 0 obj<>stream +x}X]Oã8}çWÜ7@j3¤-m‘V+QV£] + Œæiä&.õƬíÐe5?~ϵ4 eŠÒؾŸçÞ{ÒR:Á_J“ Ç”­N’锶ó„/'4¥IJ£é÷§ã䌌¤%öâèÙ°Y™L“Ó°2{àEˆn.ôéê„ÎèaIi2h i§ã)=ä~Û =dGÔúü$²Õ¢”Ž­§¸O‡Û§?~œP?…á1ý?ñԇ뭅wRa>íkü…6‹í›-ï,¾Ÿá:ó× œÄ—Ë­@šy?ò¦xÇýO/é¥õêöÿãÑ·/óûÇcÞúéjDiÊ©è‡\ôŸÄîB—VY§Ê'ÒKÆh[z|ö:ÜVûjlêЇ}…Àî3:ÊÙþ.`b¨Á€ž?þö¼±q'»ÖhU.¹ ŠÊ­´QN8dåÐ×lå±Ë(×±'fÐÒ«îMcÈ¡c!3Q!⎲"K?Ú>‚ Ë{'±£|]!™Û€ùÁQ{ö« +dt¹Uå³/èÐÈ‘ù¡GÝ!Ú²Z*±(#­®L&눧q„^·†ghÛuíAn(š½µüIaÐA˜æ´Y!aÎÄJBïiÏbä¾v›)Oú/Wˆ½+ÞB(k.PãÚƒ¹ã¬–ºìïf¶ö§™ \EÈÓ‹V~„×à‹#¯Ðú™[Ó3““2T=+iž¥7]arWEÎFñ<ÇS÷¥NòJ©žV mVZ礖þ,+‚Å8ˆ®ˆ2íV\gÖàœãÙ`ð²ÌéíN“)È/ÆÝ} @[†6 ƒ<~¢¿PMµY‘Ørº=²Ësñœ7tÎ=éö'$Û¯<=Î1ÓÒï3½ð×Kýe Òd¼µ¹ÅÇqÝ +c:‹“ ³þʲ¶¤cWJ‹¿û¡¹â)/N‚ïú+KË áü˜¹ÎAÂ=ÈÄÔM"ôöÐú¬Äƒê!UMÙㄯ|‘ ¶*Ê·ºéÆ£]dÎõ†ä¿b ªZÓ» ²šñaQàÁŒêñ¸·õQ ¯ÀjD=f ¨óË;Ô x–&ûVf+£Kõð ö×*OO¹úâ@À1<}¬ÿSIóëy‡ë=q¢ÀÛ#Ñ /·½"ÏÑqku¦»Üëð>Í[l¾ÝÜýùÇÝÍ×ÛßÓÙo±Í2 ¤ QÓÄðê€þEG×.ûAI3faóH¯p‡¦nã0²’À»Ùº)ÁšÄ\+ŒÖÚ©H#½é¨‡T'‹Â³!ßAî,{3‰øuœ àÁ[,âoe™søEä÷çe©+ØåßN^Dö ¦}½¼EÃ3ŽÒá}†|6¡¯Û¼nÍiÑeB9ú%kBrî=¡ÿ\VëÈAQĬ¯Ø•½¼ÎC ³ô¦ˆÂ«A õxîCÙqØ„|¼YxÞh:Qm†3o¹ötw_4 Ãf+™W`ì ק«i|{MÇøAb:¤ñd¤CߠίgçtkôŒx•á%l˜ßØÈ~}¢?9ÁOù‘ï¹>L¡æc¡óÞÑd”Lðû~˜ÈÎÎøÑ燃¿þVAVÁendstream +endobj +1281 0 obj<>/XObject<<>>>>>>endobj +1282 0 obj<>stream +xíWËŽâ8Ýów #H嚪ÕtiF4›’I IØÝqÕ|ýœkçAG5jºf5šÉqü8÷ع÷\û[/ ÿ€¦!E1%ÇžïÍfÔÅ/>M¢Ø›Òx6E=Ô I; ö)Œ#ï¾îšŒ½àª+D5 ‘ëY¬yÌ6ŒÜ=Ž)h½›x6¥ujû}Z'}óª’¬Ð*ÿK”¹V@ùv’¦¤RS™I2R¥² ½Ã›(é«H^déÑ|W¢u«ËŒ:†اZI;[è‹‘tÈMië/=ŸFAä… Ð?hý‚ŽI¿rÏÝ£O÷Ì1ðÆQH£pâÍðÄÀϧ­’%µ¿…ý$ ³ ú è58v—çŒì¯B®¡*ÑεÎg'h'=›eûF„÷ùË…-—¶\ÙòaH´ë‰oÖŸÂÍü¹ÿËóáfÑV—mue«2\#n÷#lAyzûž@v ¶džáfõÓü°Úš –ÜV~ÁÆñ~°yøgªQKî)Ú¬Ú7P,ÕÈni´aªÑ]°,β0tÉáo‚¬!Öá£GëqJ«‘8•™.òž|–¤ÄQ¡ZÿÕÎ5µNG™ÃÕ³ÜÐW«’N†í°gæjO¹bÎ ‚û]tñ‚g¾Ï¶ºÈ´N Áb¬g„¸.(¿Ã#Iàé¢ÇÇPŽ•aý ªpÖŠ*„’q´:¼Z°c¤/µu»B„U{cöŽ5G-–Ž¹ˆd•H^y–ª4à„ÖIr*dJ;p¶ž£ôÅ5ÛÆö::ºs1 ¨MRÔYÈsŸ¿ÚóÀ£?3©(/¯TAº÷ÙFª;Ü1(ö»ƒì%8[‘áñø4ð‚Že,«Èa¢å I¨KÕж9¬EËz`&Ì5ÅÔ±‚å¥|Î1b—ü;&¿[M#b•£}h˜“³F# îsiÁ·5–‘ÚàÜåÍ>/XObject<<>>>>>>endobj +1284 0 obj<>stream +xW]oÛF|÷¯Xø%NaÒ’,Ér°ãðC·ZMQœÈ£x ÉSyG»ê¯ïìò(ÑtŠ ™&û1»3»úóhL#üŒébBçsJÊ£Q¼XÐá£ÞàÍç“ø‚¦‹ \ŸÏâsª5e8;ÂÛûpvº˜Ä³pv‚órôfutv7¢KZe4Ž§çšÃØl¾ U*&F´JNè[ÿ–“?®?|÷éí)áòæpùîpy+—oWŸFMÆñ.Nuý¤kGÏÆç¤HŽÊ¼®Éçº$…(+[Eªñ¹­WÞ<áŽ*µ‹ÙÔÙÝ”ÆcŽ>jÃ&’ÛÞUI^ÛÊü·låh­ý³Ö[¦Ô–ÊTT*Ǿֵ}vø­ª” +›¨bð€, +JlåMÕhò–l’4õ)­RŸÇNÉçÆ‘ËmS¤ðˆ¤àA¥;üR^“3¾‘p$|FbOùµûŒ4@@µm8¦ŸÆdñ9¡L™ÂIЙ- +ûlªMŽ„ð=»Gì -²¢-·l T¤U’Ãyªù `*•$Ú9³.(±õÊjµ)uåC¾ŸQòø¯SÊŽrƒl ‹h”ã.-×î¦ÅCg´Òf“¯mSçÖ^ã|[»…ë@ÇĆqgŸÇµ÷ºÜ"€ à+x¾Dìný!Q©ã%…i£8äAe=W¤Ö¥}â|j[²ÓUèâ`dþKÜ“×q£¶ÚÃ|@]‘4ðgâY‚ûå~ùHh0ÖnßÐÁäÊuŒ¦F+™ïv§ ÀŽ2u.„Û½î ÄúmSص*Üïx#«»É·XÍ‚,öÂaj¶[[{úvZšè%¬AŒ~†jˆd¢¾-²ÛZ?ÛÇñeŒâåŠsD[oU ’±f¥:SM!<…ù˜À†$WmUíÈ)N±âël[_€oÕ{"‚,©Z¾5\³Ùhˆj*¶›í¦V5”#ÄÅÅ_ƒá§ÒÐÂåŽ +ÍÏ•Å­çC0ô¦²o¸( +š£Ð›P‘V¸z˜~h. °ã—ØŸ| ñ“ã–ñ_´æ†gidF±Û>?ºÁ3]#g™”ª<…0Y ¾j åú…•áÄù• s*0Á²ò|\¾‡nÑ¥˜n--?®:Üè$zˆ–ÊQ±F‚n‹¼†glF¶ºðŠ×Œ@ŸÁÒ•Z(fÈ»`OU“hŠðD·¶\ BImÒð”I-H¦S°@K/-¦¸h_O_Äp+2PydWëmaøˆ@f¯EyÔ¶àŒÄÀk‡ ¿i ƒôJfy¡ÿ +‚Nºz2`‡Óµ£&©­³™‡ã¬A¿ÂB—Cèà."oàv[[o‹£­âçI‰õ¦†}t¸áMb¶œN+AðгÇDŠnmØ'‚PeoÚzC^ÅWtÕºüz©‹ Ä©†°ð"»Åsn°Ë`Š–ývz9î’n ¨¾j,r½”… <ÆûMÙ±EäŒûéø5Á…=É>è +xÝ-º‡Î„<æˆmÍ{*³‚­ÒÉ`Ñ•;@ +è„©W$ a¢`½kô+<ö¶;Eá¡…M@vGÑõ=]tÝIyý"R¨ò`òžò@+º PÀ8îfÛýÃÞ_è–ã‡Ú” +:ÝcÓ1ìi,Òai=~‡ ¼¶ÅÀ惪t]Aí8Ûèê¡ëèèjõî!ºza05ª°Ç1v ¾œñ¨èþZ®dð‰|µkÁLÞؘXÔK#ÄØCí+kOhf'¿æøaŒíï–ƒA–¼*8’àìnæûxŽï~‹s|ÅÓùL–¨ë7× >óÊ|Û—2¶u¯D#|ïãï`ÿ¾tMç‹x>›à»(ŽGc6ð~uôãÑ?ˆþ§Áendstream +endobj +1285 0 obj<>/XObject<<>>>>>>endobj +1286 0 obj<>stream +xÍWÛnÛF}÷W òR'iÝ%m»¶ £ð¥1ƒ<4}X‘K‰ ¹«ì’Võ÷=³KR"-¥íS#4dîÎåÌ™3£¯'êãg@³!¦å'ý O“ÑÏñ|†çÿ¤/æsÚ=ÌðzØFÕÑñ4Ôgû4³W/®Bv—ÍvÎo'4P˜ ’é|FaìÞ÷)ŒN7©²d¥y‘†~¤Ÿ”È%iCwO$âØHkx~>9¿7ΆÓ` §›•Dà‡®PjI¦ÞtýðLÞpâ>¼Ã*Ÿ¹ˆV©r>ÓÂîù ØoŸoº¸- +<`>ãK÷žCzx éꆞoBJ•³oóEi•P’f°ì>‹|!j¯"*Rµ$a»ñTN£`È)"$™%Ý%´Õ%n´ÐÅÊÝzã©¡­,×km +@¹•¶ÜéÒë"ÕŠ„Š¿a¡U‹ú;ÀU‘Êq'âMše”ˆ4£B“-„)º@†®l¥+6šÖÚÚt˜l$•0©¶” þÈÔ!T®)28B¶\(ÎÞètÁ ð5¶ XðÇ,:x§`m‚Í6_å‚ÅEù˜ªNèbÒ#_4Æ«þëCHe¸v`'¢tÁ’tY£¬ŸkÀÀ<ûf®u>+q=þ»Lšì9ö*ò*Š*þŽ_ë½XW„óÛ  ý¸ÏFcßEÏ;Ô®*p™Çõñý¯¿¼üðÄFÛ 8 ¦ÌÎFMŽÕè( €ðƒË ÊBv|ö¦BKȵƒ’›iæƒÐèÈV—yÃNÖt/lMpyâ÷§Sn¿©Ñ×ïÐÎï:^Ù‚eaB¿ +z2i.̶B–~sŒÎ2iz$²b¥ËåÊ%£¨ßu›³PËÍ:[ë{—¥ýôÖ¡ã˜_yÞø2‚z.Ça$€x‘cïÂå!=C$ÔÉBÌ£sÊt$²ÎEëJƒFu™¹ÎêRÖq{%^tMxb§Qº®5+±ãöY]®›ÓÓQˆ:ÑV[ÀVì+áé¤[§%¡ÉuÃot™ÅÌ¡®æDcj|ö¨T‚Õñ€mkÏ>G|†^*¯PÒf:~…5fT¶‚»e*Ïô{.¾H{X”vbÆ&vav%ðŽ5x×`$ÕKj´Ê¥âé"Û 5îóbÇH´XÖy9‡¹ZeÛN‚¸Ä59œÕè4€º9 *6MÕvæ;à ^Ç'7%ç’€S~YOŸŠ7¿/3½Ùè^ CZ5'ÛÃó{¶º¿?4ó¸Äy·7»Ã£˜Zü™Å(22‘Æ€O[†™ƒ?Ôñ® 7jG+Äob Yè¼_H´‘ÛŽbëÕá_¡Ò§ óA0 ±¨L‚9~C—©úw"3Àž·²•gƒåƒFèÁJŠ¾u³>/XObject<<>>>>>>endobj +1288 0 obj<>stream +x½WMSãF½ó+:œ *hmË_›JR…ùÈr6‹S{9Œ¤HG3Âñ¿Ï뙑, ¼ÙS€’-©§»§ç½îÇßGCàwH³…SŠ‹£A0ŸÓîR=áf@“ñ4i<Ÿá;¾©’”Âv€Õí¥± gÁÌÛŽ`ïMßs†£Öô¿ÜgóàcßíbyôázLÃ!-Sìc:ŸÑ2±) hŸ,W’Žs‹œ +¡¬Ži-*QH|%‘çj£éA‘ £HĆ„&AÝU0’U@Ö׺’©¬*™´þbQk©O—ÏG:†Á œ”E”°ËTU±„Gï„d.c“©’ð§¨L½&Q”óTšrù*ónŽZš&ÃUö´"YªZa‰0”™^`½RužÐ&+áwû&®¼ýhŒ9Ñ›”¶ª¦•xEš%Ý-±¯x••’3ä¬t•Ò¸hl¹ÉôŠwIûú½Rñ‹Òºá2É´ˆrÙËÓ=­TO±*²òé@á)Úª`Ø‚Jß©5—RöÊ/þ|ÊU$ò¿`íkœòó^`]DA¬Ê”Ò,—ô¿ýp= ŒŸa0Gt6šs|¢:äUDq¢_¨TW¥k¸WŽoØõaô-Ÿ ,`3pé~¤!`žn.ápb?‘ðƒ/`µ`Ür™ +ty{~sç–ïèr6šÓ ¨*’„W¹ð_e¥-;èkV&L€äÒ¤=è¢ÖU1|RĘÞ[oYÕTÌ3d¿¤-É[Jd*êÜü'ˆŸ«¬Õ¶‰|¡JS  18Æt•à6e qn)Ò?}oå²a%{°tâÕˆ BÌ"ÏÁ$)^(Kû[«äSÆ5ÿÞV{Ñî¤YÜÜ?MõñÄ̯ÃÅϧeVôõæ"!eALŸ//úÔ½FÖŽš‚Û=8*(ð 7-Ÿ%gÖ-åå…eg!,³ø¼öOMÐù›û@5ÎJÇUÉíQ¡h/ÜìºÎp»Ç‰¦äŒNë›{¡p›þW6owm¾Gûwè|ظÃçé„÷¹` ¡AKîD»þÜt]ק÷+œb.¸b¶ÓÅÂÈ7r€Ãwr¦†oçÜÉ›ãçcÀìéUüÍ$BÏGßÊìSU9xpì‘Û½©=v©ªÆ€o›‡¥˜#·|ù] ãàmKÜšªºd<ÄÐ/ž$Ïý‘…–.x3Ž¯ï¿\ÜÜýFç·‹sZÞÓ⪷Ñå§+º=X^}9Æ(Âû<ëŽÈ‹ö·Å鲈¸xÊú‡êCh4LuÝ…‹Å+t‹Ý—¥—˜È7b«yÐú}³å›¹ê±`'©/|P8PåÛáo;FÕ™¹½ ï’µ3ñõÐô}Ÿ¡“V°5BÄW«3b÷Sz‡gxÚ!To@B‘…c't™˜‹£µçŒ ÈUØÑËšÁøuÅR‡Ñêüñ~3?æYÊ -QO‹n ‰PLjù 9³C‘îf/’TU…)jxóÞׯ÷ÿ ‰n% -|b®<®ÍN úðå–>ñ†uÀ×.:t~’ñ@z‡Ÿä‡ -X*Êܸìæ‰öDøAeOD/¬€¿Þ@Çh8«[R&¶ãu Eäq]UàV'¤{àIÛÍÔ3^ð6æñ_0Å«§Ø€|XP4„ÛÖ*iÐÏ©÷è¦Û¬O4jó?̾=Gñº9ÈC-f¶ÒÝ= ®»Ùõ¶pæ93š»†éî—%/•™Hxg‚hzd;ÜV £¯–•?ê“ã±Î“b°ë†$kç]Qœ¥-j¬!|˜î>& -7»òí‡ä>WIîE8lð†7xŸÿi¥Hr¿HGvÇXyôÈù”H·Á˨——*oóvx;¥ùÀpøⶠ1ön¤µ_…7 éïb«+¼\Íão3·o?¿{K7ÖüFôÁ$M‰ÕvÐÒáÂx9 ÛÏÙ;Ø|9—‹Uhügõq}ñ÷Åÿ®n’endstream -endobj -1056 0 obj<>/XObject<<>>>>/Annots 460 0 R>>endobj -1057 0 obj<>stream -xWïSÛFýî¿bë/qf‚°ldžÌ0-I Ã(¥™NédÎÒɾDÒ): Çÿ}ßîIÆVèŒdÝíîí{ûvõmÒ¿!-&4SœÆÁ˜æ³Óà„f' \OðWiJåÁìô·Ï<˜ÎÃ`ö܃Édú¬)x ÆpÌw§“`BáëÉ)\œ`¿Ëè~Â8–Î^cMN“ù4­­«[+/£/ƒ1…S JF±-j×ؤéÑ(ªã’œ®M¬]@ïÖ:þJµÅWšLz`«jŠ‚cá›J•¥®Ü+RE %•$¸#]ÔÕ–LÁ{{¾9*¨,³J Hqä¡¢83ØG#>^³,týŠt/ÙÄñå)rî3y4e°qI0 NŠ:õ«žò}4á|î ƒ›#P¿êu‹Êˆà†§éûzÀÏÛ«÷w¿_Ü=u!Øú¥le/û ¸¢aži¶âš¸´É²íh:§V: ð„‰Ð­èöRÖ…²KLÛ -4©AS¸¹…1[õÜJŽ]¾ €~z°/ \}Õp{²j( ‘€4t-¼!ì4+ÊL¡Ù-í¬q$mAëv2÷]Õ/,¥uÎ0åv eαYU¼¨ ™ûJ¶ÁTT¨«-û-p>I©C£=nr˜ô‚¬ç½c3#ù)MC1{FñÍùõÅ­óÓ?ë¼ü „kc ²àr—¨ ŽO;Zol‰ã빓,¸Ò‰”‰·¾#²Kõ¶Ô‰ Êw©AíÔkMÍwd—ÅÊÉIsµ;%عTe‰%=·¶äÀ%÷ÿX(ḭ”pÌ»÷¥é–J¾Ì¬ýÚ”ttMÑÅ}ôáî×ý|œ°ÝãÁ‰åÃ0Ô«ÊÂS¡waà½Ê—J4 4`yù„<Ù÷*/³¬Aö ¹¬–Š• ®nYŠ*”ƒÉßäʱª.+XÁTlϯ°rÙ4öbX¦*ìyMÑYË(—.­€T5 üIAœ妀žïé)¾Ü_hÖR3Kk¡· ÕT+e -á‡é§ÆÕ&ËÄ>J*åãt¥T#C­òË!Ù²§…§ÓZ=¢Æ‘¤½Â èz¿òþ£úøòI ËJ§ú"ʹ'cmBÏh«Ý!ŸF|X]ˆžH€ÜºLáèk ùD¨ªªnÊÿ`mر6<ô‚P¼À_B…}+¾C1‘¤!x¬}¯4Â4—}rµjέŒÛ©ÇµÝ™`þ%3«¬Ç™]|×bžYÈ öSGßË÷ÃËÊ¢…HF¬‰mXÑÁ`H›Ú+™ž_) ßMºHÝR …Ü›-ÐjLñ¨2“ìÔ(ZJÕ÷©DtÊ_³–w#EÏm×ýQŒ7‘x÷\CÇ|{Jú®x…\s"®¶Ò0wŠ«R-MfjŸ§é+,v=×™~Ô tSñÚÜ&Ü9OØ+4pm3€«¥jö¼ÛuÖ* -Û~’¿ß¼÷_í±¾ëåmªÏzñ´zôù&ú|­bˆv[7Ýø1b* ov„§W<»éBPÿ1ŽÎ/£‹; $”¹Ó”¥­úRÀÇsFR®ŒSˆË›ý‚xþ„¢0ñ8z4uCÔ, {‘Ô¿ÀmÝχ‰’Š æNÏ?tl½q¢ìrPà(«4#£UF ¼0|ˆÎ&õÊÌdCßF™sù¤©‰ –ú"Í¡¥ˆ¨—|ñ†©g0Ø×h’máqþi°¯V4ò–~{­¼­Ý2YËËdªnÌ3HnQjÉ—>&çše‘7KW¾Û$ÿ[2K³Ζ7µÑKTâ -ö=¨»Xä]DB^×uùæøx³¿’,ìVw‘3*í¬uÎcÖ~#ðc[bc)+á^´¯DŸD?y|ñª#¯(áï['SšÇþ=áþüúí9ÝVö O_ïmÜä˜Ð¼ó¨Ûp´˜àæ™q|¶˜‹ù ؆§á‚7]Dƒßß]endstream -endobj -1058 0 obj<>/XObject<<>>>>>>endobj -1059 0 obj<>stream -x­VÁnã6½ç+æèkÙ’ÛÉÍM7èMºíºØK.´D[l$R©$þû}CJŠìlÑí Xù8óÞÌþyÓ1­Z,)«.æÑœÒùu´¦t½ÂïÿI{ÿ!YÇï?ü°½˜Ý]S2§íXËÕš¶9gŽ7Ù䶵“ -"ú¤<4Â)} û/ôUéܼXÒÒ½˜æÉÒ‹rÅåö‹9M“ “/¢Ú ~ÃÄ«pÀt‘F ]DqD›ƒÔy·&¥8îÖ$«hÉk¶†T.µSû#¹BÒ“<Ò¾Õ™SF‹’*™B+[Y2ûïÄÄ‘:CR‹])=@.ëÒ+@òŽ!@„/BXÂ’°ÐS¾:È8Bç3Ӏ̺ÙÛYÂ|9Ä£MiǨ'by*¾JÐS–$_E¥´¼áÏPlštßD%mMÙrn¤4¢¨[H÷»V¯³Ÿ•n_i{ûyöé3ÒyVÑœÃLÁ¤Ê' “Ÿñ8$s‹äZ+s/Žx¯";ÁLÞcþd^h×@y&¡¤éœ -|ßd²ÎÓÎð†uf†­­$Ò@¥§1ŠÓʬm”;’©™¨“s3£÷êÀ¤yTÚC/+eUJkÁhW½FŸd˜¾?î¶ÃA©CŠ¾NHØw²m8IOEi´ÄYͳlúhÀ‰ªõ3ŠÝ@‘±À£~ ¸HÓ5¦,{ìQÈYÀŸ.–Ñ2^ÒUß@…]…×oíkM¦>/XObject<<>>>>>>endobj -1061 0 obj<>stream -xW]sÓ8}ﯸfˆ§™$eŸ -]f˜YØ.„Ù—¾(¶œˆÚRä¦ù÷{®d;Žf—¶t¿Î¹ç^ÿ¼JiŠŸ”–3º^PV]M“)ÍÓY2£ùj‰ÏðÇJ*‹Ùrž,.½Hg«—/Þ¯¯&甦´.àd±ZÒ:'8˜NiÌ -»Q^Ø#K¹r™•^Í”&-|meB·žüNReœ§p*£R>É’DY’–þ`ì#e¦ªj­2Á÷yñ(íK‘IªÒÛ7ëWS§×Hl>ß~ ‘çV:~™Ð7¥q²÷·«šýIÚ–fWG‚ýŸµ|KBç´•ZÚðÔÊJ(¸,Գ̩@"BîöÂz•Õ¥°ÈËK[ ®·!)¶º’Ú“)p“>Ý·Q’pR;ÔßšŠD—n%´ØÊpm/­ÛËÌ«'™ Ü~6(±ßÁªÑ²o9Ã#d#jØè'ŸÐ_8ßÔ§«c°·ªbtNQrÊ + €Ó­„àé œâÚj8Â|èöë=žíËcýl‘Ì£vR#åÚ!8®*œ› €ÑAh¦º„y¿Cý LZT.Û)¤C6Þd¦$UíËP²ÀBYÁ®aä!T¾öªµ¡E%_q¯vLÀø_$ˆ»¦|Bä7$&‚CRÇéÌhoMYâüæÈq *¶þp?AQq¬PÛÚÆ›K V)]Bk„Åÿ$¾;ùˆ¶ 5šHŸM8¸Ì©åF옑wu¶ 7/–˜³=áÉ4ä'¹t^¡ÑN'ÎÒN8`\r W¨q‰%ÎÐxH'_Wø|\¢Aº*ãU*Ñg^ëš°•(\Û,˜s­‡N·±yé+£P‡(ïm:6(\‹Ó5"Ï@4VÁ?«¤ßÄÇ(!RGßïîéaô9w'¼ØZQQkøá c~䜭„À£bw‘rÅ/à[Ô¦k_'·¡wƒ4…r³ô7ׯEB_qëgÑDp\U(,ópoR>W4£ËãïìN¡£º´®MY×ú¶m‹âÝùïHÁЬ´Ù#Šº¤žë¶@¡ï™ÉPÉ`¾'º|©+e‰>>•vÈÞ5be§ÿ«B々©uh <ð¾kõ<ùSéú™š>„ {@ÎHŒ8þ"¾®ê*jY“Ó m.`;¨ß<‡¾Ã²×sàÝ°,3hµ#v -5€Õ#†¥¤GÍÀ±Ø)ý+Ï­ü1\œ1KÆN–û ™\éFëjO¬aò‹³É - à¢ÆÅîâ‘!ŸU‰hÀ¡~aæQ£½±¥.˜ØHLiÎõI¨RlÊ8¯&o(…àóŠ0¾N£öcLã§A7mÞG¡‹º›°RFðOÆxÆÆ蔵—eGÑ0Rm¬€ -¸wl«Ï¸;̪pºBÃó©ÒAÑRX½md7kôx¼LV¼V!’‡ÙbÙ$ÑF^v{Hëìaä .ðÈũGŽÀ¸©K ´eíñ{ˆy„ ›í “Þ±ÇpÍXBoÿ¬E© -%óOº1øfA NúkzžK»5ý2—µë› yµ˜Ó]¬çæ×7iŸ°¾ÄL+q iºÇ(lXJ@´*‚ñb‚´"å­Ð.6*:Í<Öû‹p\H¡¥Ý»kzCã9ﶹw}™{\ºóÚ âFæu“¸w¨>LcT»Û¡*‰ÈÏZ z Ý-$‚©×Á¹Xž¢À²'ó„>…Åb8ä2«E«‹@_šÕ"6‡±9æ]'6Ã^aÏa÷ʃ ¨ÇqÏ,ðÊy[g¼±c쇮b]¾i{6Mͯè2,-o7Jw&+Æ =VÕ¥W˜¨‘•m)¹Þ*”‹,t§YP—Sô›fB÷¥X¢­,x%cÉÃçm%: šØ𿢶8/‰¡Uº0w~)SóËTÑÎA¥³Ý&tt9 ÕUäea Àq'êï PÞËšÎÇhßüEˆ¿ -Ðÿí'‘®ºÖQsøo¨^G.¾Hi¤¸^GœV¦ |A®®ùË/¢ÿíöóû[Þ§B€w&«y -S–oŽÛ ãå,èg3†½Àgçø].VQgÓ~ôÇúêï«œJ¸endstream -endobj -1062 0 obj<>/XObject<<>>>>>>endobj -1063 0 obj<>stream -xWïS7ýÎ_±ã|(LÁ?)LÚHCÊ4œÉf:òl+ÜI‡¤Ãø¿ï[éd›kÜ6…a°ï¤Ý·»oßJ{êãw@§CPVîõ»} úÝ!ŸâóVÒlïb²×»ìÓkšÌ°ãä rÂê~Ÿ&Ù>5?¯èZ”’î¤}Rþ/•Ï”=SóÚ -¯Œ¦™*d÷`òu¯OGðtC›ýÍóá {²ý¼Î-ó7É ,–•ð»ŒÐyá¥Õp÷$Ijo•t43–‚csµ_à…Ê"$aå›Æ^úŽžCŽ´rT䢢¥ÒS¥ó6ÜBäfùÑÏ­©«ÍÚ—¡¶ó²0λ­ÅœÛ+×nšW;ÓÃÖHs­t¦¨C¹þ17/ýGïðƒäüH R9åÓ&Žuºv¡ÓÒ/}XÅ)^Ûm"jgA¢˜v½ƒ‚÷°gG*k¼ÉL‘¶¬}ìXo«l+ÇÿnßEú'ó/ñô.i0ˆmt4 ,¿™!;µuò¤@¿˜!"'©”ÙB]éP‘ÇZ¡,x#<¿&Q!ŽÊ*áÑŸ"S…òÌs¡ó¨ž0êëÖÊÌ«à Ž¶K)óÔÓî1¿¹òä¦.ršJÒÆË<:®5'ÔÔ)à’Î÷J<s@®Á!ìqh¯Cš¼»í]ݦÅØ0Õ¾ -8Íj´XYë¦7±Ç¹ÖáÁêLU¢à ¹JŠ¥çdt±¢%Ún2FaWíhîD9ô’° »¬jKU$òœ>*]?“««ÊXdB>{©y)²mB®CS4)%UMé™ÎÛ:ó5‡Å+7šÔd¸ƳB!d}"9bZH6m¦^(½Ýml|G_ %féèZú‹«›»Ð“ ryžç “®KCsÞïjÝNßY­3n_V¬(Ư¥Ìƒ `Cr@ò‹TvŽt3Ú&öR<„õ%˜E÷û*Jeïò§†ÆûÄ+Z¥ÔÐkÖþ^¡¦øü'ÒuáU›Ø¿?@ 2ª ÏÅÄr‹&òçšÙ„Ý^Œ7„+)Âè -´ÏnZ¶)G»dÞÀçŽé0ŠN i%,óôÙäÄ`ÊÇêw¢Ìu€N3–`¬@ú¬—¢îrcµñ°"õܼдÊ(íIùĉ6*ãœjXRqb„^m3£„N0˜é -6~Ø0%=gÂ2' ÛQL–ôþ¹îJ·¼r’X}à âè— =šp„ß¹ÐGÉJJëaÓ«©d¿¡ {—¯ipÚèÝè8Ê˨;êÆ£Âö¤qT»†’HòÆlƒrØ›éAV^¦ç‰ái<7lö&íárÚ­ÌYYàFLM•4twPÞ„+ç8‡øÿ ÍRÓ“°ÊÔîojz¿ÏDA8”ƒ„@pïbòA>n¹:ð µéR'9cëü}WpØ<š*ð÷»ñE«dasS‚m ŠRŠHP "ƒ"Ïc“sås&«0Ö!4ìpc½©u†Ý˜,TQ°¤mô¯å8©-º`è°‹Ü”¬IŒ+6w„ÕYóªú±×á ´ÓJ4÷Š¾òì%ûg -ŸA¬"'ÙUJ *ƒ!a2…yÌÅKådòYð¤ι ô|\Ž›ÓhîëàÄ/Z>׋™>`+f;;Á€Ä÷ÀWäÈAg ë˜EÜ’ÈO¢¨9ûh:hy`œK3Ÿdç8’–Í™8&¯åz;ˆÆC˜3¹ÀcDºž)œ4†ôX ûœÛ´>Î6>`¤IæWUÙr 8[<)Ö@( ç:Ž°^߶çë f¦( j¯°Œ ‹5>Æ6óµ ¸¸âÀ…Ó÷ÖýâhØE:ñÖê M¹†¹¸é—ˆ´g|þî·«ë÷×çã÷oûý_èçp/Ðß5×.h­5cƱ`kyJGëvòMÃ#6üAjiUFãF–fe‚ËÑß|‡Õa€ûQè1Ú‘áu*ÚÿEýåæÓï>Ý|¾};˜2æ_c£Žq†õ ‹‡´ Æö û_J‚`§R5£wp‚kâÙˆo„QïÎÇçtkÍWL_8ÉÂi"Ðœ¥ G§C\óýï[rÎÖŽO»§'g¸‘ÂÒ°ÏÞOöþØû >"]endstream -endobj -1064 0 obj<>/XObject<<>>>>>>endobj -1065 0 obj<>stream -x•X]sÛ¶}÷¯Øñ“Ó‰dÉrm÷NÛ;qZÍõW-eÒ‡¼@$$"& %ûßß³ P’é™ô6¶‡÷ãìÙ³ ?ÓÇt~B“3ʪƒÑpD'“s|=½à¯'øï4-åƒÉdxÚ~5?8þ4¢_h¾„¥³ ü¬ŒF4ÏŽ¨÷çËýãÿx¼ÿüðëhò;ýFèZ;“Ѫ4ü¬ŒÚéœ/¤Ê’*]-´ód—´}óÝüÛÁˆãÑð®~àaœ±‡¶R¦¦¶Ζ%[;¦;J»²5Í´[ãÑÿo3g›76S%Ý*–®œÝøeC³i—kbêÚÛ²‹äøÓ)ÇÐÁÉg9 ä Û–@FSm -… -’¹šÞϨRYají·8âˆ6Žì¦¦øzRžDŒÇ¤v­‡4/Œ'þWÓét8L†'ì5cÐ𘂥ù‡‡ãéú€Ê¨`líiS Z„3¹áøàE¬û@S‘Ê+S£¤NëhcPÑ\#m<Õì’9Ö!;.¬¨²ëùOG>ÞÍ(WA-”×p‰´S:ð­¼·™Q ÈÆ„‚4@ Ä©òÜiï‡Éâɘ‹ŒîáxÙ:8vÔXS¦VV*g–&“¤ú8¿—(Ù Ó<–åhtü «×-M‰ j.&Üé̺ÜSn¹nÔ8»6¹î%ʇ»2rn^Fhi]£’jßÎè‹©sð 1]³\7Þ@eÔ¨/^†51€ÜÀ̵Éø™êW·R/Â&­sé²&ý¬ªñ㽈!pª)wäèM´QÌ.…|¹ïzyƦ㘴H½D:ÑWh‡Ý®†Ž’D„»(´ ¬à4eêΕÖ>µ }=ZEªç¿Ãxá¬Ê30ûë;«¤ë¶Ò`)8,ÞXzºnä µ~¥O ñ®P?ý -­‚pQéùtú{«ÑCè2¼U#°Hõ˜*âCN‡Âw Òņ'%z‰ãÛa£ý¾œ×€´ç9¥ÞsºgRàŒ'À‘dä8£]y@™7½3ïr>ÜX÷´r¶mѳtK}"•‚x,[ϦñE¨Ñ¾$ûBƒ"#oVµ´Ÿ°Ë^ ‡t%l#„@0k ŠtÀiõ>7¡®)«²Cû‘'ã‚È›Þàg*å^Pç}ûÉ((³6ÎÖWSâ/…¨Ön쀿£=9CP}³a,Û½T·tSHÊÕ@^ͽÈôD4IÇ»ÔߋƬxz -澺9žÒT@½e©ìˆì[ ô¢~£ýòTó Àˆ˜ýyùxM·÷¯·¿¾“*È4JÚNþYq_å›Ðé׻ᚆʦ°Ì žÆ{‰mó—)á tè…l#"œ©í6ŠƒO©6ÖG¨«ý<»~”ø{ïðy]½R²Ú·Üƒß[ã8‹žâ\lyV(}ôê’¶\Ì°N,4Hë°ˆw"Áór)_:y)@1”¡jkž®nRM™{¼ñGƒñÏ„ª ¼cLûË#BE -šô‹3¯¢(Ú²l}P·™‹qé$J\•â ÓI8Ò¤Ìr©yU=Pß.¾aõî=§ÁTz`9b]ªÏ õð?(¡ïgœ"b©7H¦=:Žã6ËpKxÂ2•¶ˆµ§çœï8q}Á•Bn—IŸ–û7"ÔÉ -5ÀU| &cé¡ …r*±çbl@„I²û3G {õ(y)°0åø–ăý-íõlm¿«ý@4ëEÀý6ƦŸ©jÑߘx3X«’/ñ1öÞ¯¸Ã¤*éÊ8>ÃoS.&tvþsü½Åìòöê’œ•"~´n 5\#T†tн08?±®ü£žŸÏÏ. _8}2f#×óƒ¿þF{Üëendstream -endobj -1066 0 obj<>/XObject<<>>>>>>endobj -1067 0 obj<>stream -xXmoã6þž_1p¾dÄk;A^E'qî $Þ\¬Þ¢€€‚–h›Dª¤Ç÷ëïRŠÜq·m[ì69/Ï<ÏÌ( i€‡t1¢ÓsÊʃëäàóÝ Ï(YâÍù%þ'§A0P’öOû£>%kI÷ÿü:Oæ´T…ü”üŽkg4†k'£ \;JÖÊù÷„¿׈¢ØRa2QËœ”¦‡9}S:7G³„Îú2–Fì -/ƒMçmÝ|IÓoÓÙ,IÓù¯ódòp:JÓÛ§é¿'Oó4$7ïc8"¡s~4 “!bæp2£k¡´£áOiœçV:Ç'ý£Rdk¥%iQJŽ u¶F¤•PÖ…¤?ÕbðÑ5CB•´KcK¤&ëëé×¹7û!¢Úp¢£U¥ô - (©Q¿==:ïsŽ¦5ÕÛJe-ŒæÙQ¡žå—.¨«ü³pžÚéÆT[«VëšÒ£,ýDë«KzP™5Î,k¼¶Uçl8è_²³·Ë]ÈŸƒ¨*þäDY!ã}F Ü@n±õÀî<¡ÜŽn -Ρ´ÈD=˜i)¹yü<}DЮÙ3ÓŽ4W—±›±ç!f_žwdh‘wd–{‘`Šaff¦¬šZZ&†‹Ú~˱ú“}¢ (EHÖnÉ­MSIϲªÉhð,ËÕ‹Ê¡ ”RËh¼âö¨²3V" jbV/ÁÔñM©UQ˜Í[¢gÆB•A,`ß~²ô?;ð‰¨Í]€NVÂzŃ ¢¦B -„h 3W!t–|-ÁSï°GÙÇ3ØÚçVRKëuày†2åR›Zzº(–`&B-ל /åkø•ÑñB.$`K?E‹ ì]¿c”D­ÆFÕë=¹Ýgô ´XÝ£þkËp*ʵqu<,¦mhVf¹”6´±Pc®›|­¥vœ˜oÜ÷>J6¸ûáãÓä'n¿>|ù)7%ºèÏ?8:ÝÜÿr;¡Ÿ8l–Ã.\Oþ1ý6¾O&O³qò£H&³Û?{6M¯Z£Ýh£O*«tíiÞÑŒ\SUÆÖé§XF±çtçÆÖ„Þ¶2ÇÜBìêÎ?½qÚQaîEA™{£Öùbh 7ÚFeÁK‘{±ã ¿ö“*C‘}ºÞBKÑõ±¿¦˜,6nrÙ™<¦ESóq ;ËÛhŒj±„ )ßÂÊ‚34 -4Ö-…*Ü_É>hm~^œOïpŸa=4†U@J8g2….ÂiG h½Y DE›‘™ZªÐ;ör¿áÙ%eµ£µÙ|×òÂbIÜ ³BöøéEeÀx!×âÅï aR!§eæ¾Ã[ƒéPŽ†Í™³ôÂo©æ¡o0$§cR5\-á× ÌÐ@ä9‰¨}fe?~ÊøiÒ!áGx±[× -¤DQc\­ÖìÑSl‰Ú7Ñî7š6kØ¿ã%[QSè¯3eî ·e}õÿ·Ÿ´"ÂB€)¹=Ýݼ-[Æ×I\ÒÄ{φù\0ž½Sv]Ë—Ü‹‚±Øx–ùiñŠ[ô÷Z£°Y‚~™Ýœ,댑:ܘ8¾DAΘܢPÿÁ¥vR„Õ  Ü’y¹Å[Þ,<=¥bNØ%ÓøþÛøWl¦û„ª¬ÁF"a£ÛGyåb|÷ö W<‰Ëâ€ZÐlùj`^WÁVyñ²ñѽÏÔ\YhR½|gš"Å<÷]ˆsèåhU³(TÖãÕŸÊ×°–úqNÞ€ -/£‘ß Ñ<ñŠ7•%õfMQÌ¡9´½9ûrÞ‰±9’dt²°Ñ¶¼6F Á;P±R„wõtMÆò^Âå¶ÅêYn¹Z†¿¨á4mݧ©ÛºZ–iš5XìtÍ«®5…“5^µm+M ¡K¡C¥Ò”w´R¢Ý»4ÕpíB¶ÙøJÒ"må -HY„;WøÀà@?z+G[æÒ ®ŽW7ša‚¢†5Á«òðÝ€µz»AIÐÔYM(xQ+þ,鈵‹}pq»æª @+kš -JªÍJr¬}c¾;ævõ—²¢Éã2Ø yOHo–]x§#Þ)ÍKï1ýÿUÆa£Ðœ€,2›B§b ªmðÙà@®7"Ðþ‡+ëæÆ)Þ0ù½†lÛ£løóÝeû­><¿è.Oéü -ŸîùÑ|üp=¦Gk~‡¬éÖd cí ñ½“îøÉÅ¿cÈ¿÷;†³‹³þÅù%~1s£_Ÿ$ÿ:ø/¿ä¿endstream -endobj -1068 0 obj<>/XObject<<>>>>>>endobj -1069 0 obj<>stream -x•WÛnÛ8}ÏW ’‡MD¾ÖN -ìC.î®ÄÍÆî,h‰ŽÙH¤*Jvò÷{†”|C´›&H`SäpæÌ™3£ŸGjã·CÃ.õ¥Gí Mý^;èRÿbˆÏ]üå’îA¯×}ûAç² O\ÏŽZŸÛtI³î\àCL°ßnÓ,:¥êç„°ý¢5iSˆBM…!›ÉH-^IÐR¾ÐJ$%\09¾k£Ï³\éBé'Š–"Q!óàÃìÇQ›Î;íà·l7­ÓlÉ“ĬÙ|i–HRIRÚ"…´$’„Ì‚Š¥´ -©-¼³ŸšL6­S§Ý >ö@t9tAçK¥M?<<ŽèäöËý'-‹µÉŸÙ!:ÁzÊM™ýféöæÆq Û<Y¦E*ÉáÚéo.Úùpâ a3Y™¯dþžº=¶‘™¬LD¾cÎÇ°·`M™Gòlw6‰‰DbóÕŽ-‡ÏÎw†FÆ2v„@vHé()cÙ@Ó:\þOþ¹º›'W³QóÆñäæîë툆aíafå>/XObject<<>>>>>>endobj -1071 0 obj<>stream -xXËnÛ8Ýç+.ºrG~ÄuÒf‘L4Àô1pÝdCI´ÅF"U‘Šã¿ŸsIJV&AÒÀ|Ü×9ç^ö×Ù‚æø^Ðå’.Ö”UgódNëÕ"YÑêê/ñÓHÚú…üÉè󛇳ÙÝœ>ÒÃ7­¯ðGN¸e>§‡lBñk¯´%ÛÖµiýI_Íû‡Ÿgs:_Ì“+í“ͳl°íåå%üð™ÙÝŠ‹`ì|¹æ³ûBÂ𸌋“Á1¾âõÑ )K®tÿDž7ÒZ2[ÿÉû¯²Þ$úH‹Ëhïb…¼ÀâE²Jè³ÙSÚ˜½UzGÛVgN)tN–œ¡\Ö¥9u"-%/ð…z9×`]êÜ/öµþº¨RñÚg>w™ø€¯‘J'œÌI¤æYNéˆ~(êDV(--Š¶SÖ!ˆS5ôUº›ûoÒ¢ÂâãD%2ùÃGOøÚš†$®ˆž..’%Ì Q™$w¨%)M¦–àxß“Ñì ÊÚÖ ]—ÖLIŒä\Ë‘9ª¤+LNéö…Ê -x€R°SÑápíȼOpº.\Àö\"® -QÆ{p%â„çÚ8Ò Y©¤v³PQ*àY*¥¦zÆoAƒrlF\Láç«ûÿþòùÛæaC¥1OmÍîHÍ%̧ìÚÒ-ÄifÁYS¶œ±W'¤Ë<ʸ¸ëŠ{íCÈ„•lÈæè|ÜÚ ý%Q–o3ZÚK,á_Ÿ×à(>Ç%¹Ñ’sÿïí÷Q¸ ÈaÔ%ôÀ%QðëkÓ»\s5K“‰ŒNµtSjuÉêrƒó­Eu°·{O;îǶcª¥MÑÛ°°Êµ`–<¨n̳Êá„x6@$Ë|‰´ QWâ€Js!2•–‡Q´Jÿ”Hé' Âbw!«Œ“Cj!Ò½iž@ž@RNû¸Mhm òÕ¢šÐÇ÷ãÒþð…|:F§jz·´W¨$6pÅeÅâ´öìÞ+Ç$’Cdtv;ön8£µÈž¤³” ͉iLëjåŠÖ†ã@kH¤ã°ä¾‘ȃJÇã1%¶³Øø¶mXÙ/¯ +¢•Z®+K­©¶ƒ½O$1d(Ès•ÕÚõÎ`-â´GßÀY–5#‹ÕªWŒ¥UmpÜC¢B±Ld ÕùxeBc¨Z)Œg/ m q’©·IÛQÛMa/–¸ðèl¹ tÃ8ùZóÈ`£Æ‰Õ Ï, D¤j\Ë-O%™ky€`Q½fƒ;¾ùÖ[38:jÙé>/øíT€lýÅs5lb7BýÆ ‚VoØ„ýaÏ*ÓÆ*i;Ó2cóaïrRL$fÓÖ_½ÅÈ.PwùO,צyÊ€ëUÚYêOðæžÃ)þ¿š‡4‚IÈýßõ­Ï•z†¨…¼ˆëBb®³ðå¥gÍŠ³Ùö»àx:¦“þ[‚ýp²Ÿ«åÑïGÿ¡Ên¿endstream +endobj +1289 0 obj<>/XObject<<>>>>>>endobj +1290 0 obj<>stream +x•WÑnã6|÷W,üÒ`ûlÇv’}HРõµˆ‹ À½ÐeñN"]’Šë¿ï,I%6ãCQ\.‰‰;»3;»ú{0£)þÍèfN×+*ÚÁt2¥Å|9YÐâö¿ÏñßJª›ÁÇO šÍhSá‘Õí mJÂíÓ)mŠ«{G|‘ÍLEs:˜®)©ß$)O[)<=WÏ;º¤g¥ï–#Úvž´ñ´ÞÜ?Mè>ü¤Ò´Bi*ŒöÖ4´Ô9™Žþ°ù:˜Òxv=™#úÕõ|’®ÌW@Œ+›Z"ä?ªíZêñr4_.³;+:šŽB{r¢Ý +ò†*c „$Yxe4áËya}·‘¯%>IÏ¿Ðpoe%­•œ£óÒiט­hÈìÓÈÁµÛ ò¨pt†|x”n8¡§ø š&^‹„'ר]íI”/@'v’Ì Ê`ÖÒÞx©½Bœ–¶Öœ´' ÄdqI_Ñe³‡&ô§“x%Ú +Z‰Dè |MN‘p¤b¡40Tç}¹:Ô2·c{Pºº[’±à2‹Œk¡Î_>pQ¹„ø(©1rqÝV£°[ä* \(18 +¥Kdì¥U¦T8¡‹U£tÇŸ³ðf¨ô{’A•±%2Çñ[YÀb|ÚyÅrÁ]”Ñ–I&!Ÿ??LÈѨ¹å`­Ô%TècIŠÆ™P„·ü³\â‘C†›ªÔm’”Òd¤dDßTçXXî!ÑCmˆ,mé×û5Ê‘…|ÆE(!Âæ£Jq±F̯‚FÌA³:EY A®i„G¢‘ëw… ÙçÔ`wŽÚu4Ë.ö(„ŽV€Ö ïe»G3žqv±è!Ѿ}àÞD6`ºRãá‘£nf@s‚PÄÅÃa\¸#6ç9Èðè̬¢'B»x.ÁKí‘–ÔBÐ^º é1â©Ðj§l §‘YY¢±R”G†Å½Œ›'v‡P ‡bG°æE•(ƒè~º£¦“ñõ"øoâ›Ò»”ýîÈÓ)4žßLV½ïŸÝ»ËíŽzb©'ÈÇóÁ5Ší Úo»Æ«=¤õé]z2ÜÈO ¦@®yfÒ$†`b ê/t1߆_dFhöè,#ڹתÌ1~"¤t®Ÿ*z8R)+àܘ']û9«F¯ù~L®1Dbrl8‰ÈõçM°§~^T=R`¸Ûo;kСDuJ ¹büð7\9ðõ†~Ã=‡ók Ù½¯‹“¯föÕçÌ¢üŒ,Ý!´6.$¬5̪V”yü®ÆÔˆ]ŒÞÔjQ•5íEsƒV  AÏE¾ÃàÁ…¸³0ÑøЗrÞŽº¨­Ñ +>}*¾¼ß)\3V9Ž¦GàØí$üëlxðÝ'+Y‚$ª‚p̨Lxk†1”T»×ýÇa@ñyéy›F©Ê§óGîpOÔ:>€‹ï.Ry¾obÄØæ$PÙdó_®”.š®|µ0Æ|£³I¹jçøAÏë§ô8çi%¦ˆ]Kÿðøù)Ë–•Šv‡?¤Sy‡2Úˆ‡‚«8‚s¼;3èu +dð¤Â6¥w.¶c°‹9,Öëqß~!ÇKÛEzŠóÑ"ÁàõY?÷K_\ÐRëÈx´1†=4Ë5í\§ëV bŒ¾…³ ñS¸ò +3_¤ÂP-ö{ q$²±4”lœ=¶ñÃâTÙQ;‚÷wxF×qt…t0ˆ°K&ƒŸìõÁS¸«G¯¾vV’žUÖxb6ºÐD?ÂŽú.»yÌn<_bÜÜŹñXâÀ&€×‘°}b‘–N5qAc‘öÿM0¯©É(΋°ÒÆ°˜1‚vW+wìrüº2 ‹XFqODï‚ÑdÒ>ϵ:iŽQLï’£r±šJ…Î ~ÀkÀž£²$ÊD€Fü.{nM)ö+ ½ô“Ä>~ºM¯’³^1o¯iµœEJžî{¸§ß­ùŠW0 Œ¢cÇÜ6: ˜­ð^ŠÆ7Ó;ýÿ½1,V·“ÕrŽ5·Ï¦ >æ—ÍàÁ¿AQ÷Öendstream +endobj +1291 0 obj<>/XObject<<>>>>>>endobj +1292 0 obj<>stream +xTÏoÚ0½óW<õR*4 è±ÕV©‡v›@꥓8à’ØÌvšõ¿ß³)-e;L‚òÙï{?>û× CÊO†YŽq²¤IŠbr•Ì1™Ïø?ç×JÔ±0-²dò¯Âd^$ùiáf9¸¼ Ë°¬z1ŸaYÒËrØo¤†@Ù(©=›”R½HÇ7•i…Ò£^U+kz'Ñ(ç¿@èŠåÎI á½lwÞÁˆ²”.lÜç¡4üFø·-Ê_,Ÿ££lLŠËjØ«¦Ai´¥çJ‰Ç»‡ˆùBX¢YéLó"céAú›»ï hÑJ˜zº$ÑëðŒíbïp¡ÝQ7+פ.­¬ Èö`¯ü&¶qþˆÆ—ø6êŒlWbÕ’!ÏÀŒò"‹¨çs¡¶‚û®ñ*ªÖŒ½ÍýÚÃI8rv!Ú• ‚nÏÜ¡åFiêŠÃÑÀÞ«wÐû\°Ö÷… >[|¢QKæÆqb–aÎ>öÁì¼2:dåÚU£ÂÁ7áÈÔjÝñ2à†6Á‚“x¨? §Ì4ÄSI/TãÞü™¿þ¬à]2#Ïâ\\ßß\ã‡5Ï’gð«)»–W€]ÏÑaùh–^ýßàNŠyRLsÞeØ,˜oËÁÏÁ ‡óendstream +endobj +1293 0 obj<>/XObject<<>>>>>>endobj +1294 0 obj<>stream +x}V]oÛF|÷¯Ø—"`1’¬ÈN>4A]híà¿É¥tõñŽ¹;ŠÕ¿ïìeÉLQŽeñ>fgfgùýbAsü[ÐÍ’®×TµóbN«å¼XÓêöŸ—øñLMz°XÜ«éƒÏ›‹wŸh9§Mƒ³Ö7·´© çÌñMuù¨ÚRQǾq¾U¶bÒ!ôÞoþNû7yßìzU,±óò‹k;åupv\³¢Åb\³¼0¬Ùì˜òÁýž=õm¾|£è(*ó’~cQe4ÛXÐf×Ò \O +õDÐv+«QC:1ؘ´2ì\ojA:§Ùâ:ãó¬Œ9P•`bo”S:ï¶^µâNEAƒLAµ,¢«œL­ „ªZã µWÚ¨Ò¤Ey?X¢Fã›è• ûÉí¯çK±RI;Âenô‰ƒR®éñÏÏ(NØ)Æ3–k¨ö¾feöÈ€¤¶J[ü®å¸nŒ~aRt¿‘㟚§íxšTf=ƒO;µXGµ©Ceg'èY'øoTFÎAÒƒ<4¸•ZuÈB” >Â5мպ3ö•\z¾ }µ#èžcɽ~~N¦ÚeÑ’·Ò pþ^]OYú-ûtÀÉV€4¶Î¿ñu  [Hé\ˆ&°WëŒ:溠¯ 8¹êh7úÞë¢'L•ðU£B„¤ÜÒýÝã)±w»ÃW:”=P+U×ܱ­¹¤ =`c;-葱C\ì:, W; )N6âÀÐ7—éÞíÑW‚ 9AÛû ê°É*TÁk!¯žT0¶<œ(r—0ÙiKɦÒ'Lƒó½ù•Bv*˜QêíV Ù¨*¨SDÊpöàþÌgŒU&³aãäöòõ ý!%Ô^£ô }Y IrÏã +™«PÐïXƒ¢²Ž`gÜŸo5«ØGô T.§ +‰uÄ)Rf’›øý ÚD‘¼<ϽԕqÕË)ñ¥äéìZÂ]û€öš)ôÃÝ›PLóöœnB.ú'……ä@ŽÁ@[N1×"‚5xh¼kÑVc†Â¸@ÃMU8"僎*b5(BpWOèFxÙ@6Á[(ýèºÎùØ[¢®ää´$˜ÏôgD"oã‘À¸[a,@Û„æÇ‘É ÙbRUU ÔÚ#´ ûR(©­—Å0.‚úTK­¢*èIDÉ>ÊX㡃‡åØ•dšÅžïöCe\˜ +NÐFú² [±[Œ<ñØùô++ŽÙ÷Ê •`ðlME®]¿(>‹[„!:a@³z^Aa¡O ƒñ)Ñ*!{o³éKä&7ª7ñê?˜ÐHÂãò¦‘>ØèžQy˜¥O„Ñ‚CqTàb`\cÐITýœÍùñlb3'Û"Ð/t§Læð­‰ÇuOBz©E e/Hú‚ðy<Èvn4C$‚ïŒ`€Ùj×*áÁ1 >Ë÷Ì­ØL”™ÖßaFÿ£[Å/Š®ç?‘nñÝžV|ÓÎШ9'Š…(IÖ-2õVB/®½2“ûÎÏ,±Y"ßùZR +·jkuìk&°PhÎx¡÷ ò–qfXϵWäÀ¬–MÓÿ›ç} +ºcDuÄ(>µòÛNÚîþßξ=uöê:“™):¸Ó þj}[¬?.1Æ0Àóµ”ùÛæ⯋T1endstream +endobj +1295 0 obj<>/XObject<<>>>>>>endobj +1296 0 obj<>stream +xWÁnÛF½û+ºÄ$Y’eI9ôà$N´®ÓZ‡P,É¥¸¹Ëî.­¨_ß7CJ–h(#—»óæÍ›7«¿/¦4Á¿)-gt½ ´º˜Œ'´˜]ç4_-ñ<ßהËÂ|u3^½¶0›½²ð~}qõ醦SZç²X-iL&´N/Ký¤Ë¹ºté6ÐO}£ß®¿cÓü¸i4[Ê:» …kÊŒB­uF©³i㽶‘Tšê(:ÊM©ñP(¼bë"¾«*gË=í¼‰Q[|6¤Ð¤©@ª®K“ªhœ¥ ý“± +¶1¡Ñôz<ãÐß.wKíùˆ•±Ýù4¾ûz×…=O÷&õ.¸<ÒCž›T·G|{ËÁ @–¥ÛJKƒ<8ƒ^X¯U6RÿG©J pµAŠ. +PÎxÜRöŽ¦à‰y]O[ÊÀ×›\mõã7xtG”éÚk$¯³—Œs™.U•(ĵÀ@îÉ1CJö´ñÊF¦Lu§Ó®Ð%õxÓæ„Ëx§ácúœÓÞ5¨Z¤³%ˆh¯Ã€O´ò !ê²ì€‰HP‚Jí{‘ÕõÊÜw¤ã,!š2•dƒÂ˜¶-õ ü Ñ;« ÕgI,ÑF(¨È±•™îIqJ[ëv´3u›èNà +÷®b&»$úÀ!(Š¦Ò’·œ4vSb6Tk2TÊB„¦ª½{Ò7”—{ÎÆK#„#·šsy\´N5Ü'¯õ +š«¦Œ¦Æ–ƒ Aî3þCÚ&&¸'0rµ(( ?ÂgÙmP\¡ù/Ç8Øß@Òå¯%tUBýKU³“d&lÅæÕ¸[h»³ãþlEŒ–+©*×°c7L/•DK"˜µ÷°ôuà) iu=ùxÿþà¾]v#øÅðøôUï9•Ä«.#¦ß›¥ò4Á–ŸTÙ°ùþÀÑ%zc,„‹ F¬ˆ]'E”*Ð:èÒg²sW8h®Fñ`2Îp^/㎫C›ÂIì î¡th“ ²;>/XObject<<>>>>>>endobj +1298 0 obj<>stream +xmWaOã8ýίõË•Õ6Û(å$>Àí"­´p{j¥ÓúÅMœÆ‹Ûiéýú{c'´„ + ‰gÞ¼yoƼœMhŒ¯ ]OébFiy6NÆ4›ß$—t9¿ÆïSüXIyxp5ž'³S.æãÓ&³q2=ub~…À½÷˳/74¹¦eT³ÙU2§eFÀ4Ó2>ŠWz-•?_þ›—4™Ä7GÓk¤_fÃ;OΠ뛚|!)ÕJVžD•‘“v+-Urc¼^’ A)^Uٔ䭨ÂÈ©ÿägÚ*-H+|äBþ˜LŽÓÂê= ­iñxÏ(Æ4š\ BäNMY"“KèÓP**äôáx—'„ñ…ð´åZÐN!ÐQãTµ Y(”ni@¦öÊT¤ª^BW®“ÔTyBO…À¾PŽðÍÕ¿K ô€ŒV¾4Ò1¬÷(DšÊÚ¦uã©2ï`÷³2m.IŸ"ÅŸb-1JBË÷+S©¶20Ì7Æ›–‰õ> >êW`¨—º0•i,‡¡=IûÆtÁ¢ß=e2æÆš]]AÕë½—ŽVÃ#NVç±TåKmœSkÝ–åLÙ)ÇÃ=ÕÒæÆ–´–ÞCB;å =h®„(ð°“5•ò Â[¡Á:+HKÇø!ŽéørÎɵz–ÐЦ¢q HB§’jk€¨t*¬¨4h`*"rImÁ]××ÜÞ(™pöØQ£‹ËÈÓ“>qÒG÷û·°Qª™A6†*kÀâæ9oUêIÇP…JÛX)²/;« È”² +í Ól +Û™Ê dT'·Ê4®Ç"*wº['ô=§=|$+Áé%[ £Y½Ïoi/Ý`uÎÄTá<70WA²Ñ5yŽN‰–鄶٢J%Œ²‚ ÜÞùí`¥÷[sÿ€|ÕÐœ°rëéaþ5•—`A 1lTcjñ—†é+8ƒ*ì¡éBƒL÷r²É‹B@H¥Édàùd£,öZ4õˆ&SËŠu²°Ð˜=9mvìmüo“{ [˨ZH›µ8p‡œJ‘óMf(Ö›^ y£ÁÎANAʃá]G¯óõ1ÿ‡à +ŽÎÜB¦ƒfèÄF|˜œ,åBÎ ·-–·DªM±p†!D)aØ  Õ'â„`F¥Qì"íLõ›'Ì +h‡å…áœú -˜1F`^–H>SÁGÇäŽÜF`Y#;ä?¬B¼àv¨Ž§#87 L]”Øž«+_PÅ„¾Á¤ìHÄX?¾¡=ïÒá] -ˆ=†zDn*É{íI`ÉUqg¯å¬6ðzŒT ŒjA¬Ì!wÀgþòÌhט’ñxE„ÃIË#›^Ø‚£¸@2vù2H-[õñŸÌäãd Àzö‰÷z)„nmSuL†¼ÛV'ù’BïøÌ5lR {Ùƒ€mü0Ê\(:V4^–2©ãü -ø]Õ%˜s$aYŽ¢í»›+ªEŠeˆ }ò&‹óÅB‹È_C|+d饩o#± 11² „°•1nÁ¸p-»&ˆÝ*,%?šˆ¬-Ô® t[;U¡“#ÿ04²^ì°R+¬‚FÎd¦$ÄiÁ!I:{hY¬¹¼w½?@ãIDÉû—o™è"ÊvÐud¹mY™|ØH+Kç”Ò–Yiýðƒá¦«xª©*ô£MzBxØ$šgÍŠñ<ØfÇ®oéÄçZ˜[µkÃ44-)¤âé­¸ß3äµ'-:´ËªŒÀmÊ~à@2Á!Ã)Ì/Xù_¸¦×H$ϳ Ö€Ž¾ÙtÀžxO‡\ß¼0b½‘ÒÐþâèÌío d¸ -Åæ6ö ³Âhe}ëä<Š³'µžxz»®·Å;øòA{ã1‹c«4álÓV•2rßg©ëÜ,êA‘üþSj4J#8Ý÷ß®éòX›ù«e¾ â -Q7}ØѹÝÌ@bÒFå;úw—o–Ì !#ãVrçraÂðm®ñ’†„ãtl÷]ß <6HBØCŸ -S¥˜ßò7@c™™<¹7PIø…i!X ôÜéýæÌÿ¦>ýÄ4ÈÕÈ°ÇË1stÎj €Ð9­ð¬ ÁsèÞKljvê_>~ÌG¹úñ7`- ˆ#³Þ!9Ó?œ€¯¨b†uÌ -h -Cf(TÈåI0rGR¶â,Ÿó“-ú¸3ë²ú …ÆÌ>/H¼†ýór2Ãp>+ ½–Ý?¾;'xß K8£½tÎîN>?$Ãá±ïøJ?z'vbÕé~÷> Ôç·„•²ò6ÔIîŽo¤ÙÝUtw±ÆÛüê‚Ök>/XObject<<>>>>/Annots 467 0 R>>endobj -1073 0 obj<>stream -xXQsã6~÷¯ÀôÉ;+¶ãØÎÍôas»¹vf³Û»¸³íL^h‰¶ÙH¤*Jq|¿þ>€¢ä(¹ig³ND‘|øøÏÑŒ¦ø7£Õœ®–”£i2Å -Ìøã?ÿͦódJ×óU²¤‚f‹erÓ>åô0:ÆÛ›5v…½ü‚h¾¼–“klºW׋d ¡+Þ1—‡øj±J´X¯ø þWšv£ÛÍèònA³mv°z¹^Ñ&c§´IÇ÷ôÝØÌ=¥¹Ñ¶öT¨5^“¶iu*kQ©¼?º*ó¤<ªšÜŽ¥•çÚê½¾¬´/Å!ÕÔH1©ª³T¸Lç6Œ¦4™]%sè?ŽUò”¨„¾n¾Ü?Ï?«HåÎê þ+͵ª¨Ö/5ùº2vïi‡eoŠ2×)´U–½V—ÐÏ8tpMžÑVãþ*7ÿÕÙ@}P5M} ˜J÷·TV®v©Ëe!^– ßÕ³÷¬a6[]ÃO¤qKÆR™+|Šµ0²sÙm›š¬«º·jù„yU¼ñW¥ÿltí“öØ|‰€ÂeßáÓ^xçÄ1F¬àˆn²q¿"µÕrªÖ6lO¢›a·?ÆÖÕÉÿƒÕÒ“¨÷£¥ûO và³Õ¿~ýùŸß>}Ž·B¬Ú ?OÖ-ã…}݈ ¹Öå]Ú¢q²JÖœKŒ‰ùrE¬½Çª¼ì@³”NħÎ"( ÎÚQS–¸U -D\²Xbw•*Ë8vˆ\ÕŽaëlOÔÚ·†«Ù^>3–‚XË2,×á _üë¯_¾0ú+•Â¹ˆtú275°âÑë%m±ôéó=é4¸èuRM?joÒh-:èYåf þÉkdÍ Ž-—l€µôEÙ{eÿ¿ccßñíd¾Nf74¹žƒJàþß]ó¦Ò;»c‡ˆ•¯¹­ÚÓ˜~iù€>Š@¦¿Þ*\([á%Pˆ¤JÍÈøéÛ÷Í7DÄ‘ -Cpn0Ît­Lî ¬Á·3Öêjà&Î=&„v9^ðŒÃn®‘Ìz?›”“>Ñì‚ÎvŠŽ‡Éž®’‰]»@ æ›ãW>ä0áÇ@Lq ŠCNú˜ç½Jl<3FRug¸#_üÙÙf÷o|àv>#ž¨‚w -ˆ2È™ÒÈóõ þ~¥°+«\Y2Ò"ËHáß–Q°](Åd bŽÛlJ…± ƒOÁܨ8²½PT˜GÕµ.JÎZ\—_°$YV(@^Û¯yL¬ÓÙ… W@rL´¯Õ67΀…EŸIk<_ EK¥hK]yrX4=âJL¿7iå¼ÛÕœðˆ‡°KôrtF؆°±/FŠ=ÅZY?ÜÌvõÁCÙÒS¡`*Ž82§ñÙJï hëÝ*ˆ$ø0çÄ+N— 2û僢‡¥‰£ @fˆ çY¨`¢UuWjAça¬4èÊd XÈ”\¡™L¸j¥ ‡W¯“bpkNWpDæ$ÔÌÎs]9íüyûÌ1P -^ì5µÎO"AÑÞ¹ŒL¦_ˆ".(îãÐi蔣.ú&=ĶhŽ B2—ãÚÅ‘'£ùº¥6I¿ *ׄº[}#|Û®›—VE_ÆX"§‹E|‡°æZ£=²¨L -SKFP„¿¥¹i+‘ IpÖa½K¸ã¿¼›ÒMh'óEèHØé )×Ï¡ÅÓm Ÿ‡ícck4‡Ââç2fÓPuâÿ¦ˆ¾ËŽå¥oÐ^Η\Én;¤UlU$øµm$…:Å­ÿZ8³Ûá¸Ü¹§¦ì6Æv WÜtrFå.UÃ’àOÜF*Mk´pt«SMÜ1ýÖ‡“9é™;dgÑ=ƒƒ,>°†âg!·³³k/ã1p/ïæmç4Ž7๋Eï™qMΓ -#"f<¯ÑÝ ýl@6^ô(CE–;„‚ëw5Nê©c˜Â¼0§²w:»ßKU‹:‘!L‰Ãˆ¯ÄÅ_uIŸˆJKå Õ†¶Eö_€ú]ÿÅ ú;þ+_sF{-ýsp¡^LÑd›bËVïúÜÕ@3Š\EǃI!lË6ܳIXŒ3Ù˜órtú.ÓÓ&SÿÀFlcÚË{`h…%Ð@f°¤ëŒm Ì“IîqüøA¼ÁNFt€ŠésñB°™úQÎ ŽöÐ4L€ÖÃò(PfFÏ“È®rE[ŽvD÷W=ó4w»,=4øµÇCmÀƒ>/XObject<<>>>>/Annots 472 0 R>>endobj -1075 0 obj<>stream -xÅW]oÚH}ϯ¸Ê[²R’¦ÝÔ„îBT­´R4Ø8µ=tf áßï¹3cÀNV•VÛ4à™ûqî¹ç^~œÅÔÃOLã> F”g½¨GÃËËhHÃɯûøÕ’–üGùOÌþüíl8ˆq,îp¤ á¸»œfÎP÷£ ?ðA÷æð¨7`OM7ó³‹ÏWi¾DX£ ^¤ÎiæIg]FqDFÒýŒ¾eeªv†æ$ ‰’Deײ´Y"l¦J2Ro¥þeþ ›ìÝÛìöÇ°Ù™¯3C…´k•RVnU¾•†pDšf|ÝZº–*ÏÕ.+W´ZàŠÔWÜ3S,¢D•KZf¹üÕ»êÑUíiˆ¬á‹Â?Y&z¿±°cÌNéÔÐúK¾Ö£nÜT'§L*Ù=3yã\m-œÂñóio§á>©åÓ×Ûç¯qy$ª+ðkwŠvbïòÎRÆq¹ç¬wk $5)M¥²$¨B8l§‡\ð"Ó¸oh+ò, §#š–’/8lëDQŸ]k¹É÷@r©tá+¶Ñj ×)×`Ûº­ÂÒ±rÑ*Á›÷®Ê…éœ=W‘"<©5âNT*£àluE™£Ö OÙ5ðè1#p’ßpQ³U¥}\xÀÔXŠÄâ…°„w¨–Â0_f¢XÚeyŽgð+­ŒÛ¥´P«Ê4­?<æ<2ÏE- ee]é¥ÈrD¦ÐŸÏÒ…æ°vÅiy~]*D‡ŽÁÿ„.‘çV²å¯ x¸¢ÀÆiDßÀ -€L†ìuÈ-ç¹J¾“ªP‘%|áF"µh¡²*Ì,ôRáº7;XX+‹eôQ‡¬–¦Ê-÷.–«,˜ FC<ľÅ%Q -& Dø&Žxî~©‚ºî2P±Á¢‡y»îPG —cn}0ÊÐ9Ë^¿ü¬¡RJÌ'<~V0ÎŽ›·Å¬ˆæÜÙa˜wBÍ=}Œ‘Ø3ºµ -Oß²ýœÊ°Ús37ÔÑ¥X!°°"èÜf§¶ <ÍÏtñ9 kAwMbŠCÐ÷GcjÁ=?Dý _ì{BspD_²²z!³7Ð*’/˜ -¶^.ƒùaQpI©« ãøéáúþuŸévz}÷àÞzÍ°ö¤7âéö'Q|uÄñ¿Ö;¦§gU-X±Ìd+&oÅc¿L<ÁëR¬Qü…äQs”vh"± ó¬Þän?Õ·½’¶þ¼®z· ’!S%k^3Œ´–¹éÄèV³–ážõ¾&Xyëí±æÈ…´É…/©?So˜‚&è}»¯›“åqcßw·®ÕjxÀ` cL=gƒÂ‡ÖDŸaž`Å°òfk?×+êðŠ¼À–ÜpŠµx›Éûø°Õ»ûîV²ÔÎ6¼ý>ý6ŸB« S ¯Æ¡yŽ{zc< "ú¶§ÃŒúÉõ<,c'Ôá½>•Æ3/ØÄÀ"ŒoLÛÐ<±/-¹À¨’n”»Ï2!Újµãƒ ña]9ƒpúáÏ$•Á oû&_ÝVµYÖû…ÛhU‰uñ¶ª¾àüaˆ¸M9©ó<»¿!¿œöѱ“@Ðx„¯l“®À×´3»¾¿¹¦¯Z¹õðV%n`¹5ŽƒèÖǻ㾚Ÿý~5£ñh‚olpÚ±íOó³?ÎþËnŒ”endstream -endobj -1076 0 obj<>/XObject<<>>>>>>endobj -1077 0 obj<>stream -xVÛnÛF|÷WØ}p”HE—´)àÄNúKnÍ (â¢X‘+“ ¹«p—’õ÷½P–d«—Ø°-˜Üs™33g¿ô©‡ï>bJ†”Õ'½°GƒIŽi0ásŒŸ†ÓÂ>H£çÄÉ ŒŸ;1š<=ð&=‰Þ ¨ß§täÃñˆÒœ¸×£4;O‹RQÍu!s*ÅJV+®ˆåy©K)H.H¨GV•\—âž–¬ax›7Š´´ÏT=3)´(+þêÇô Òõhâ²ñ  ßùÙ-+ÎG{ Þt‡oY=gtsù–~}Jg”l‰àT1ó»dâõ(è÷И £MÁ -â™-q!ª%@˹fe¥N|¾¯äœUü›üY³Yjô¥ÔZ6¹¢×ô? Ò½­xÖ6¥Þà¥VñæHÌ\Ö ¥Wò^ŠŽ÷1A³[ªøŠWì$¡®tÙðLÖ59Ϥ’ÊŸ}£þ¸ VŸ§Wé‡ÙûÙôXïK¦ t)YóuÁ•"2SŒÔFi^ÉÙp–“•Aaã Ú%XÛìpbˆf>vfžd  €þJŒ>Šò\*bY&[¡IpŽà9§ ™4ÏmβÂbþ‚˜¢5¯*ó×Ä6OºJÈ_ßÒ§Rär­hšF±az·JÁCJ÷è¬tÓfº{,ÜßÚ²áyhÂEï&[Íñر8 _†IØé#¦oIrй{íÂVºíIL£€ -¹*sŽÖ @N9’eZ6R…l«|§çÃ:?”¢ÝbeHÁD¾%©ï$½Y–³T2ºEÂŒç¦=ƒ”ÅÓˆ¤óxûVŸêµcü™m~@¢h‚Ì™*(È)2=D§Fe~JAMÝçn^³¡¬Èò{èJõßxI¾¢Ÿ—ë_|ÐŽÜAá?>nÀ¾?ôÁ¸ ‹Ü°ãöèD׎Itá{œ`ìÎL¥áŽXN5ë‚ rÆÒ¿ÜP™‘· x©nŒ½5!ýþÄ+xeà¼#íö صÁï˜ì‚U(ØŒ6ç«H´ÐØ©×Í_®zw÷C—ñØlƒÿsfot†@{ÙL*;,,³¹‚Än’$†ôVŠ¬jVÔ3øœÿ9ˆ½æ À‹Š?”óŠcÝ13LF.y‹þahÃV†u*¾ÕYÀ*)8æ+2 ©$µäY •1·0Ec[˜£„èŒÛA`ˆîükÏ TH;AM‡Ùn~~.‡h:K·v!¸¶ŽiŠ-¤Ì¸zaÛ0röþb m·«œéú²]Änx>š‡êGê¹óVcóbÀækö•Û`Öïým`Gîĺ(á΀¡’Æ|Ð:p8H¶sÈ4£43Û;rõy²fÞqÜ{ú”LÜïâáÈÞ½Ö>^ÆîRp!$š„Ñ7©íºöÒªy=‡¬±ö“á.”ŸÍÔ ™Xo(~„¥±ÒΦ)u¹/Ý%DíÔü_ÒŽ=ýdŽ' ã‰#ãíÅõ› ºiä¬ º”Y‹{ÃÐÄ úC\Ç £Ø¶âÌËèdQÞ›àÔ`Œ=´˜ÐØöåf` Fƒp4Cl@#™]¥'¿ü ï¯$yendstream -endobj -1078 0 obj<>/XObject<<>>>>>>endobj -1079 0 obj<>stream -x•W]oÛ6}ϯ¸@6ÌZù#n’ØCÚµO+Ð!Þ[€Œ–h‹‹DºüˆãþúKJ–¬¨[¦ICñ~œÃs量Íi†sºZÐÅ%åõÙ‡ÕÙôó;ZÌhµÁ›Ë«kZ4Ëf3¬ä“¥Øyii™ÑG£7j¬Ò[úzó…6ÆR¡œ·j¼,?_­þ>›Ñ›Å>&¹ÔÞŠª:P-´Øb‡¾Ä¢Ê…WFóf=¿J¡ß\,³.³yF·¢^ ºàXië’æófëâ*»ä­7¤C½F~fCjõDî༬ÝMäö=ÝM·¦V¹»W¯I8Ú˪âßH„žð|¸ý6¢VÈ’cý®txzMÚì)xU©ï’w6°æ)¿¯UØnź’tsˆ¾˜"T’ƒ#ç»WpœÃ‡?7´³æQ’@È€ä7ƪ˜‡•Î›#甚Šœ´*—.£¯VáàŸ)~[„œÙeFœS!såx Û‚C -YàP5â=`2NÌÑN8·7¶`.„kã»I: ˆ(Æd*}>VÑfú¹=¦ Ø›Pdå· l¤2ñ³A‚½4\Ô³¦¶Và })ü‘7'sHÏyuL܆¼ؼ4`¦ ¬ô£©1’?àƒ -÷>|Û¤ÊlU£Ö#¶×ÃM£ <Û…ìö£®P5­¼ÀgÖ \\f±”¸Ü9`¬e^ -­\(BBZæ>ê‡Ô’ÕÁÚXû%]H[PÄ&O‹szªI¥7V Ô¡­`%d‡„”#„-µ-¼C‰¥5a[’Ñ’6 -%’xª¥ÎØ4½k9íQp7éU-ô½>,”çΣt¡PHATÑ£uU}™(ýàC…y^ ©*³¡Àµ&ù$êÝ¿)¦cú8R“jš©ÈhU‚³Ö_)Ð!w³ãru´–2*£GCй©ktLFåø0×h;´'BŽ­Lyr^äŽûì3UÉ%ztl9 ”Ž¦á6¡Â.Õ4ŠX&GdƒŒ>9Ç;vsNº$GkÉ“€ÂàbÖÌ!|Õd‚ì\î|”`87s*î¨ïwûb¹fO+‘I<°éç½kÁ2UÈùÏä›y6k±Ì2d“s.£\[­v;ƒý+¢ý¥m«Cƒ¿¹2¨÷4Ý­h—8ûX€ÒûCÁ5½Ä\›˜Ñsãó8+ÚHÔvÖ“ØŽ)ìþÛ6 uÔ<œw-TõÜò%)7çEºÆô¬‹·Úzž› }.Òæ”—½ð^Õr$ü‰Ý8èž\z\;ˆ—_ûŒÕ¸å9Äз#«BGÄ9=Oøü8ESà±°¹EÉVŠ5ŽSôöðëÅ€°v¿ ùëÝ ‹xQ↲3{¯˜½Vî*‘Ç&R§{ 7(Ã÷ƒG¨ ¾u‚\êÍý@é¼ -…l†äóBü‰¦k¥§(ð)ÐMÛIô [}9po~<,¾gÕ¶pÓZ¥jåÛM±¯÷Ž—t¾»g}FK^°ÀàÝé&WjÌKÿ4b.[Œ±~6ì¹Âe76ò˜ä¢®lDÖo:PìÅs=.x)¤îÞ³…r.pY´ÌðZS¨ÍÒˆ—´`®±b‹~Kb³˜Kª·{9ö’Ö¢Ó|2Š¹<”¦Æ|¶1ÚX.©—w®Ä5üxª)—€ë{rÄ‹ÔÝ{Ž[¢DQm|ÑíñbE¡B:òR¯¹ÒŽF¼Æ¹°>#^ö¥”Ü(#¤Î¢Õa‡è>Ý ±uÄ .ã6N¹–ݽ°ºõÚ®Å\šfÔ¸©ožrÝÍ¥½cð'¸ã4ç‹uSùøNáWüA€nÀÿå y¶6{†ÕkŽ]Ð ¥†AûRáê ÑU2¿î>Ò..ÓGÚÿû†¤—|7.¯–ÙÕå5>X1ã×úÓêì³%œ’Ëendstream -endobj -1080 0 obj<>/XObject<<>>>>/Annots 475 0 R>>endobj -1081 0 obj<>stream -xÕXmoÛ6þž_qÀ0Ôb9vœ8)°)²–¡[¼o6Z¢,¶’¨’”ï×ï9R²d9)¼¶ ëx¼—çîžÓç³)]à{J‹]^S\œ]DøwzÍi~³Àß3üI)?€(ÿšò¯_<›_GSºšC  éÕEtþÉéñìÍòlòvE´L¡ÿúfAËÄŸ¾ e<²;ëdA•°v«MB‰pb%¬¤£ï–q”mࣣ‰tñÄË%áI«ttNωÚL$z{’èÚèºH~øŽ¶Êeä2I…Nê\^rAãée4ƒ3£J¿ÛbŶEVôÐ6SqFµ•ÖëzÅJtn†§±.PexP±ÑV§Žîç$ËØì*'“}Œø‚Þí™°™´-3e;½øÛ:mpL•$áˆ4GQª­™ä:ùIJQ“ʨprÒø²=Šó‹ð¹ J^éŠ}µ@™,ÉÔeÉš¼Y¯lm ¨À-UëÚ4÷uÚllTå"z ³   C‹Ï&ò‡ZûàÚbvNVJŸ³DÇu—`aïñ36Zd.–(ø}m Õ'ÊÈß‘N;LP8H‰²Î¨UÍá‰Z›oCÏæèj¨Üo¾}÷0FcÐEtã?÷Á3ä*„ªÒæqËé\¯Uù -},û**EfÒû2òs ’ö£ž£h"TêDæb7TǺ.]{íø+” 1\ÿ™’}ÃnÔœnIŒg×n®ÆTç¹Þ2zQcÞ/D_ §â:†Ž ;‘©¨s”›FËð­€»o‹v´ïj›¬Ž{÷¿„ßî¾71žäj5±2®r;_&TÖˆä§Aæ ‰±xN'êöZZÕm=\¨íy÷ u¢žÆÅ"¹ -InÊ1ì]Æä“àaÚ:°/LR´gôÑB$x¤yh{‰ýLëæ«Ü@Ž' ÈŠŠÉ§´GC ¸â1ŒTì{GD5xF{J9OHä¨v '+dìšÃ£fmDA¢Lhë¥]V[A¥°ÜàÂÎÌ6„¨$¯<ÎD¹F¯©m3h7ü¿€ÞøyR›<Aÿ-\;HøˆGÑ÷Ó -|)âO_@ýÏÚÉ×¾zÄ0#ñ'Fæ!:©Œe 0I0ô`ÌJcV¬¸P´‡Ì!!X1i•ž&öØS wLná qr8ötZ{€—òɵðÂÞÀˆÞç’W#S°ÖæÄ!y@¡ Àï™^o,4‹Å3œ0‘0;·P¿ÆsJ.¹@ÄPʱ¨ÄJå`ì;áMT~„ô•åF]2¥AuëB6³ˆïÜóœ65zçCºZÎgæxµ!r™p¡ì}õ\¤²)ù–ãù @W>òÃX#rJÁd^¦Á/Y#]¦â>iÙ]ßúÙ8‚ ´Zã–°sŸäÁGÔÞîwHµBšER(àÆyÆFwà´{ 4ÚÉ@r•rKf(z°¿?´ïAP -ñ‰7.ƒV>ÖijAC5¯h´;Ú -(ž€¯O 'ùa”ÖÐ0”ɼJkØѱá¦cÞÒû,/¶ãˆSÎÁûé¾eŸhºws $¿?¡Ñž ëj'û±@€¶ -!0RäêOÐ$£ X܆’‘‹ub¥Ê†£§k­9Öt t%G› CÙ^»+ãC¿FØßAûùÃÁÛ³¦eÎU¯'0ò³3Òf=9÷YܯâˆÁ~î‘D£XåÊf\f¾›µÀÎwHp)0ìλàì&¼K8xçàÑÉKZ;”!ç÷<!CäÃH®_‡*‡Qb+°"5C…‰)-ª*o~³’{ŸºwÂÅÞn¾)÷-›…ùª N‰dÂë÷EÜÀÁ)gb‚ÖÔ½)¸‹‚¢ûv% -Ù¸iÉé5ÞßÜ\Òõí4ì=woîè½Ñ±AÑ}/ã“ãöÀx1Ã[šdt¦ç‹y´¸¾A%@~vËj~Xžýrö¿3¿?endstream -endobj -1082 0 obj<>/XObject<<>>>>/Annots 480 0 R>>endobj -1083 0 obj<>stream -xTMÛ6½ûWÌ­^ R¬•¼)zðf›ž¶Hk¹ì…–FŠtIj]ÿû>JvVë ŠÀ° j¾Þ¼yà ­ðK¨L)+¨î«xEEYÄ)åëï)þ–© ¸†Gÿ±HŠ,ΩHs¸ô”À½8ŸmósOéê.ÎfÖùÖbßÍ­E—t›çñ™³UŠ:Ó)džŸa½ž¹uv†™_YggXËòUæà›¯Ó·ÍßW‹÷ŸrJªZðU¬Kªš‘UõrËöYÖLOËÍÃö醤&g¨–„{ÍP{i4™–Ž²a–iöGc¿‘|ÇÚËZŒ>ÞŠ¶•u|S}EÉ;JP)”Œ²P«f™ÇYLŸ7ôÑèVî;Å…’ý.®ñq -}A¥a2­:Æ(¥#,‡±Ü,Œj¡7!újÖvOK2;>ÑAôèÇy+ÇŽÜkç1,8Ç„RÔ¥ÌQê}(ÙZÓ:%£#%5SÇê‹rÊCQ’z}·ý²©~«P”_ÀmE¿Pg’‡®LÞk±S³›Èk¸ƒò´ãN>/XObject<<>>>>/Annots 487 0 R>>endobj -1085 0 obj<>stream -x­W]ÚF}çW\)%x1ß)•v“Òä!ªÚ¥ŠªÒ‡±=À$ö ±!üûž;cp’ª+••@öܹßçÜ»÷bá/¦Å˜&sJ‹Þ(á ÅüõÛÏü†f³8šSAÓI4­rzê]=Çq4»:/&QLÓÅW -šŒæí_½~Æét-jÙpºŒ–4ÝGc¾;]BGxò§WÏ8]Æ7§ëÞÝêžÆ#ZoÛ|±¤uæC›´ÿf/¥´4‹èq¥Ò;ôA¥Ö8³-é­r¥UIUÊŒV*—/ןz#Ž§PÒ:»RTZ)ÉhzE"X€íÅ‹`o8™ÂiÏ¢8¢÷ꪴTF» 9E¢jÉñI…äz/¿²Kµ­MßXz»u›—t°æ¨2éào!…vd¶ääAXá£(¡%7;•ŠœŽJžøx‹ ¯3Ê”•ii¬’Þ„O‚Ÿå^”T9i´IÚZƒ¡K¤eU‡ýÙy¹Iaq°b8IV:SÙ& ¾£ey2ö3â.Iä¹99ÚÂÿ½Úí¥­SÙØG¡r‘¨\•ç¹Âh°äà¤ØI’_ˆöˆJd”ˆ\è”Ë%Ë4¢ÔÆJR -ï‰ÄT(áÖ àÚÊJãÞö´Ý¡-Úð/¥ÏLZR—^×í=ÜëGuã9zΗN9j.²Ï¹PÈÐÞœ`?y`‡Úžô»V_¨é^iI›>çCqˆ&Í<€¸¡Ä"}u¯¢î$Ï·ÞWÎ’Z$¹¤§ÃD8ôðÛÕ“/¿0 Ôè­ÚUœ·’NªÜû²±ò»Õ¸îÌþpÈ'ÃÂeÛNÓöɸ"úE§’’Jåå¶H¸J,:ꈤBS"p†–ò©¨’3ú­l[w—”˜cr47ÝæßsòådHnëã…·šZÝ­¨õ‰ARH†½ -"Éy,ö]‘Dœšðº¹w )¢?LE ÚiQr4nÏ5ŒH®±E ‡jù¬†Ó\åsÂòyU·)ø×°"zh=ð×.ýÝÿÜ2–Ïœóò¹ÒŸ]“Æ‘ç”s‘˜\¥N=?ŒÒ%we R_[`(¿ˆâKôAÇ´»Vä+z·jSþ©Òž‡?úˆ_Õ¸7Ÿ·ø¶ýÆÉÔKP`)¤€aE µ 6¶ù¸—š:8%ýà#)ˆ,(j”ø X÷™¸ÒVÃÀRÁ&¶jÈ€ö¦º,›ÚàÓ tó²ñµ!ŽƒgŒ§U-bV x­~#+ôŽ¹Ñ³÷G¥3¦Þû»9F] 洛?ð`eùâ…YÐXê~næ\oÀ•íuq!ï›16 \ø‚Öœ‘J~ö¼j:b„qºü3 ü¯Îkª?‰2Ž4ÀJ¯ééáÃãÃwD=µ¬DÏíXó¦Â¦²­ûžƒñ½¦;ðµ±å$ºß±täÅÎ…[À“yî} –ŽÖvòžé„ìH0Ä05 V„u`Õ¦ìØ9°Ø4 -{ý"œÆ5•M°HÍ0ß4ûV„Eà û_µa¦é@qoÝ{®ÖÂd´˜ÍþOWsMCG7´òà‘Çtýà“^¯m =Ïéý­úAÉ›ö…7—„5ƒ¥kŽçŠÛ›*Ïšan9H[(Ç+PXá,i{…öñ ØUgý"{áA?‹\•ò€Ç~gt~f®FZ;ȲzûãIZ‰Ñ6À”Ë1.É/Y™Úž=Ù$ø©€“;CÚ@È×ó‡.É æ>èªc[¡´L‡øÛS® -v.¶oÄ€ÍI±Åð~MâhøÖž}„`?Î ßÇ2S$ -£Øg—vbåóÖ—š­–—­{2ap<ó߀fo(±]x¦‹i´˜/â&~jý´îýÚûþ -=endstream -endobj -1086 0 obj<>/XObject<<>>>>>>endobj -1087 0 obj<>stream -xu”AoÛ0 …ïù¼-j7¶³Ø=¶ërÛ°¡vÉE‘˜Zm,y’\Ãÿ~O¶ÓmA— €a‰äãÇÇüZd´Â7£2§bC²Y¬Òmò"]Óº*ñœã瘎ãÁÇ,Oó˃ûÝâf»¦,£Ý¹6UI;EȳZÑN.·ÚˆÓi Ϻ–BÍä‡æ`OZÒI›OÁRkµ ñ!½u/äkáØÓ`;ê… ×$Œ"„ ô(šƒH¯vÏ‹%ùjwjùóód =}"z“>/XObject<<>>>>/Annots 490 0 R>>endobj -1089 0 obj<>stream -x•WMoÛ8½ûW rrDñ×ÚéÞÒ é(Ònã¶{È…–h‹[ŠTI)^ÿû}CJ–¬$ ,Š±EÍç{o†¿FSšàß”V3š/)-F“d‚_øcÊ_?ŽfËUòžï§É’ -š]­’UóMÓã¨ÿ½ ùt‘L{Oûßñt¹¼L¦ }Wr¯Ì.Msavü%¸-n=Õž®rÙs8I‚K/ÓÚ©ê@™Úîw šNw³JwrOÊ#¢Ø.L8©¥ð’”ÄFi¶¶µ®—$¥ZIƒÜ+‹X$ŸTŽŒ¨Ô³¤c^Vâ ! $ÓyÌ3Fû¿þŒ„C¶…ÍÔöœÖ&“N^K=i뻌é>ØŠÝ‹ -¹ ¦ÂÉm­ÉX<³”Ú¢t ÑvAÚmpJœ[_Q, ¸ÚÁšó ¯”Öû6»‘xÕ:Ù*-©ë,hÉeDt¢±+²BÀÀ‰ -M…A$Õ0©{ÓœŽ-a€‰Ei¹ã™ÜŠZWô,t-© ¿N’Q<¥›ÛÑåݬAÀ˜ ¢I5ùº,­«NÏŽ†ó-bÆ” O) <ÊŒ¶¨#¿vy>·°j+²ÚËø´3úŸ¾0®\=ZN£f7T¹C€ÈF ÈG?Â:´¼À×ô'íU•‡þ8µË+*,óbSWçGbx ë™r2EûÌ¿6¼`*™q }®8f”‘ÐZ¼úíá†JQå ýÈÑÆC!MM¥-ýE]žslñ(æ³<6þ‹³(g¥ä@Æ.#š@"mtÑ"‹Í·øl{¼fªms›ê2Da¬+„Ž)‚gŸF„˜ëç\ŒX¥¾ÜÖîA,À ™ -2ƒJlÀ)%nP‘Ê–‰ûKuy×¥÷Ø(ßiÇ Ýt5AÜÁ8u°5Âc/™XŸ±]þüEá:éqôºÎ‹Þð+ÈÐì网Îçª~Yî­|ÃM ¸W*‚¸v€^éT` ‰¤k(ý¯Zz`ŽJ  Øį¨ëe.uÆ c|E´ƒBeš¢,¥p¤¢~ÂþŽoó[ Êu_êν¢ÅÃ>WiÎÇ0±Ï˜¡PQPž¼ždC^ˆ¦Ì! Ð (ÓHD¢Â ÜEÙ€–½^BÓÍh -y˜‹mmRÖ!1TýÀõ–¸A:"wð^¥ -‰q½X£<y El³÷Øîߎ¼¼Žé]Þu‚ÙGè#73Ý!E˜kªDC4…Ûß‚͸6ÿ¥ónÛˆÊô:{:ˆGâkyœ}6@t‹ËN3ŽPk€ÔšÍJæ–ìÞÄî ~&t”ñä) ¾HdäÜŒCl+ý~ZgΣYÎo¿~¿ýúôPû4þÄRÃvžÞ "ï½ÁÅm‡i44Ì–qÀÕ‡ûÏÁrYÔ>téYºó¡5ç [!Òja ¿îó!5õã¾Æåe÷IÎo¸Ì¤O*ãNW±Ú“ÊBliü7gØÔ/Š?À¹ÅËš­’­öäâãí J±U¬,ýJáýÞºŒ2eÆæùôîD±_°åFÛ— FÃZ7%4!Ò¹•Ó¶û÷Q±NW¦Þ‚ôr?ê3f±±1ÅbÙÚhüúâÓNéŽaG¬ú}j¥zÙu¿•†^ùÎn˜ƒ5rÐñ0;Ð$ÖÓZü”ôùuv[j¥& - S9Æ•/ô:p§UlêrÂ!œu^ê-=ÃúÑ(„Š»e·ø™ò¥бv°ðr®〫f àâ8°šõð¨åðX¶nG¶iÖÊM(@¯v• +ÔøëßgÂî¸ -ÇËÛ<ɵ)Øó»I cljk*¶8¾>„] çV< ¥Å†w>ž1ÜØ›niqÖ†2õ!Ɖ't+ /.M5C° ÌÃdçË&Ø ‹2ÞqøÂo § ¸Ø6ŽSm&K¤rS[Låam»=K Â6oÔ³Ð1®$¦_3r®º«Áœ/ã¸qÞü¯‹4½uy^¬Éjy…›:lÎçœÛízôçè_+Óéendstream -endobj -1090 0 obj<>/XObject<<>>>>>>endobj -1091 0 obj<>stream -x•XßSÛ8~ç¯ØÉ îLÒ@ïå(ÜpÓR®äÚ{àE±e¢b[>I&¤ý}+ÙñÐÞÝ”2’W»ß~ûí*ïMéÿ¦tzL'sŠó½£ÉÍOæ“9ÍÎNñ|ŒÿFRêfG'øøÊÂôí»ÉÙpáb±wx=£é”)™ŸÒ"!ptD‹8Z¬$ +K¢ ÛÅ+½.(Öy.Š„ÜJ8Z«,£µ6Oxr+ºùR`wB"ËôšUVš°vžäªPÖá´¡Ò¨g•ÉGùfñm'“cœź(dì$ìk¼ "ÂÉŒ`éÆ„%£µãõx%ŠG O$Á3iìJ•¤SJaÙ’.h©á” LÇ"C×÷aicÌI›ÁÙFæÚIÊuU°~?\ >$pXNh±ŒÈ³P™Xf’ý)…q|.a“‡×óÒˆîeœ©eøktÄ`ZWF¹ aÙ³¡5>9 Ÿ7·~Gò g™²ˆ)œS{µ"wœIÎ=¹PE½'u%Yåä$xñŽ¦È2§ûàdXú|2›Ð%תxôJ”A"4<+¥É•µJ¶LŸ‚‡0ªà\eZVÎÁM`´…ãíŽÑ]kkÔ7ÕoNè2Sñ»3°iiiðÉRU"—‰™~Df_°Z;8Ñõy6u<÷¬Äúóöæ¯@—J¦K/bNsM)Ž#Q¶ÌÄ”¦l"Õ&§_‚ûMlŒpd,F÷WŸ¿\}~xðäˆ>hÄRˆ\>¼ÄÜy髯µ`ó¸Á+â ¥[é.n>Ý{ËM(«¡RÆ4°ÆîüÀ–÷”]l y”Bñ®4¿ÔAµæ“ë©ö¡Ü'õbþÁ‘‰´±Q¥CYTó­Y8•nø™q®ñ+7ôdÜ+œ’0ðé·«K@‘*™%½Ja-ô)¡D8±9ðuÐAþÆ.1âwP˜A0…#gd«²Ôƽ•^ -¤Ú«i”ŠÌÖrÐ>¢ª)ä9Ç¢4t ¼¼BN8t(D›®Ç]A 7ºFE[žw¹ïeº{Ì®+h÷¥.œÑÙhÊ>t-d{Ũ4…4ÎgÆiõÇ7Ò¡¤“Õt³“B¾á‡·È&CÐ9cQÖÓV^ªŒu­‚¡Î‚‚M[›NèšMÞµÓO眜+ëÀ[bl™~øhtU‚-àY²¸ûF'ÑôŒ‘¶ÔEÂÜ)’јF¬Ù’ä ä?‰'XDç@\¹(KÈÉrSK´*|·s+#%ÉLæ@•)p~ù!4OÆlßìi_ìÕþË>-•³-oÛ(ö‡ÉàAæ|ü!èÎZ×ÍÆ4=fzé)y¨º¯³áfþhŒæ± DÎ!¡£ùÆÙ;¸Þ‘ ¹ñ¾u|õ­Þc°õ¢#N=S= -¡²üÓw;êÔY[§ -sˆ?âÕ7Â<±=½¡"ò/2UÐ;¡l¾4^y§žÛ¥-CÛ ‡åzÎ<(6akk S’èbß1O <5a€Ctà ¾…°Å’êÖÞd3ªI>Lá¼Q˜ÁvT( W‡×{)ôf5Pöê38…%¢@^*¯ú A’Ýêeidª^Z2±ÌïFqL`d ó8–ÖîøYwt€QkçäÞ‹ -£.O+.\t?z†—°ˆUèž‹~ú…gÌaáÇCW™¨ íÛšgO¡ô¨ Ê~€Ð¯tƒ‘Ï$è,Ì õOñ -‹»h, ¹†4+ïa #F»È´Hšî²“Ç…xjǧf¦ÞAuI8(†=IÑz¥À¡ˆ\ŠÂwóÂÓñáwÊHîž(Aæ_5H[?˜Aø€v%ž›yàv±ãö§ß ŠLûzT_Ãî-Ð`pŽue,:F5<áfãp5ÐOH9>ú.Sã>xÓaá„>jVépðw ¦i®ñœŒt¬”oè˜Mó}„ð -RøóFv<¡÷Ûáûî_»Y³Ý–'æpWÛ^vȆÛ`Dàk ž×m;ˆPé…µ@¾Ùò2cÖYÅ0<@„ƒf2ø½a²išÿðZ™¥cÐ(à§)趫7ó47÷íyhìZ„S¯‡p'÷Ÿ¿’ßi(hë6YscûID£›ó}¯ÓI¾ˆ˜çŽÏòXÌ‹¯sEÿÃè2ÞÎ;¸ /Q}¡k÷¨:ºÆþPt8¸%bæh i¡í&¥.;D‘mÉ[›ö£»7ˆ ‹êm -H¿’Ò¤UÛ FdxÔc‡¿qò²ØÀÊ_ xw|ìÍr­+LYµÝºÎêÑy:Ç×g'õ×ÑýùÇ‹sº3úz*½×qÅã‘p¨3vô Ù~pzŒo-þïmvv:›œÎÏpÆ«'3¶xµØûcïf…~dendstream -endobj -1092 0 obj<>/XObject<<>>>>>>endobj -1093 0 obj<>stream -x•WÁrã6 ½ç+0>yg'¶;í-Û4Óí&mãN{È…–(‹‰Ô’Rÿ}(ÚR¨äÐÙ‰Gk‘Àððÿ8™ÓþÍi½ åŠ’òäbvA«ÕŸ—×k|.ðg%eþÅb9Ÿ]Æ/>oNÎï.i>§M[«ë5mR‚‹ Ú$ÓGQn¹½®s锓ŽøA’Ò¹´ª–)UÒ–Ê9e´£ÌXºßÐv§ucµÒ;Ž„æoo~ù/Óß÷_þÜ¢Ò¤òÓæûÉÍ—³ÜOë\Ô$HË–2UHJ¬ì †;@FÔrärðZÓ)\&R½ÈÛ:¿û‰æˆ„C:[^"lX]Í®fôͤ*Û30o€S…›µ±û(×éór¶XÏVl$º/tú¾:„îTY!<%¹Ð;öË9H•« -±Ò§8*~) -³£­y=òÂÞ’B%ÏÁN‡ò*ToJ_ßâžÒ¶©k£gô›iå‹´§ì㬪Tµ¨}áBÂ'-².S”ÙÐçZ>i²SÔ0%Q8!Rº–V$•VÕ¹ÀÕ8.lªÕS„Jáž™)žªŠÃ0Ý><’¨k«€Ö3 Õg ‚}Iä¶ÏRƒ„| IL£k_v{±êŠý%óH*aE)‘ºÌ,¹Ò XRkªÊØ:NSKÖì¿{ƒ&ó 2̀ǃé›fÊŽ4bÚs²¬ü=¾îdÒ IÞ‹ZU” UD!ùä ÝùëK:¹IéÝJ­d:‰–x'véÑo@£LY(¹çŠ!mj´-÷/² ÄcGéØ|GŸ3 „¶Fk -¶Q:fŒC!B¥¡7HÿÓTÕÝ™‰B•Ö¢ïtXAaøV–Œ¸²&‘i&"$Ä`¥*å H¾"͵ŒSóôiFÖˆR -H“{o˜Ñdt±0•B«ª) 3œBá¬G8¾ó5MuÞ •é¹ì|fÔ¶Á1Ú¢æ=ôÉ‚ô?è%µ²ˆ+q€Kˆ*÷;gxoyð^76sáÞ¡¼\#4kÏÓT¢/ÑË)ù`N ð=}bRp²_JfMé!ê; 7Ä )ï*Ê ëßÕÔòžFu}øW)c¨,¸Ìé Üaù©ª¬gùœh3ˆÍM$ÔgÅ©TÎ-G¨< …I‚§¡;"ÙFå1|§‚–ðýûÍ8¦QHY!vLG©t DM¦&±E²$) -Ó:îÕ.}Ë°­Hžý÷ïL+£éïåMv¨ P–]Eä5Ð!1ee4"ŒésãºÑ$Ñu4ä¨'vrJ“vâÛnò:¡­ªñ:Ãÿƒzœ‘Áy¿µo ì®Irä%Â5¹•š…€tÃW O|˜óuÕ'ÔN‹7žd‚2„mEZŒº8¼ØT¹f=Òw}X8`€7PÖpD9< iëxh¿"I×5Ô6Ö—Tf¢)0t¥ýhà ÀzãÀ4–i i>"ñ„ö[šƒ…®å×L”V@™ø¡l ÂNrÉ4y§áþ’X3’xzBôòbÎYñ`FtöÖÑÜ;ö?Æ2>heØHÆ­1j÷¸(]Ë"~‡ÅÁcæo’îUIŒµøHåŽ&>#bOAîrµË ü§Ý`Áìoò$ñ|?ÖÅQJº±èEÔ¯  Loqx÷méÙTÉ+Ý(=,1Q/<´ó4WÕÈe_3z¿>vÝt~7XFwAÉc2dêkðÁ‚¼éúÎó’óBÑB×íã~™ ,xîc=>î[oÐ÷<Ö=ÕýÊÓõ,/Wì -|bÈLÛhK½A&Ú²¶¦ÀAôÄ`÷d1=LП»D6½ÁVtÔ$ÞBÀþ&CNûý’ÃFylÌÁ©ì¼w6X<¿»Ëä|…Ÿh×Kü`»š]sòo¾}¾¡?¬ùñ£[“4%TůèŒöìpál½À³ÿÿƒær}9[¯®ñ›——Wló×ÍÉŸ'ÿ뤈Cendstream -endobj -1094 0 obj<>/XObject<<>>>>/Annots 503 0 R>>endobj -1095 0 obj<>stream -x½XMoÜ6½ûW rñpäý”6zpФŠ4m³Ç\¸åe"‰ŠÈõzûë;3¤$.½vœ¢((æ÷Ìã{3Ãýv1ƒ)þ›A6‡E -y}1M¦ØCŸ}þúõb9Ç¿ ÍæÉjXf üßµ*øDó!]½NR›§ÉÒ7hh¾^&3X­§Ø[Ãb¾H2ߢѰ£«ôtt5O°šg¼ñb½Z¼6h£IË%­å¹4¶ÉàìdÔYµ\®U³ mt-Þ9h£UéÏ Fƒ6Ž¾NOF ŠY6Kæè-¢•úmûfsqýn ³lJÄ;]g°)æ)lòÉÇ&— `ody¥ò¯æåæ ®Xùxññ·®¯ßeVƒhÛêv'¡•]­ŒQº1ðIÔ[µh ݪ;ÙœLP ­åó®o;½o¯º« -:` -¯f taSLºëÃõ=ØNµ•#툦 8¨ª‚|'ó¯|B¾Í­,NÎ(u‡G” -׊[¡cyêVYC›j¸Ígžr®»…ëwóÞu#ó}§ì12®æëéZ&-¯!jE'jie—ÀMs>Üî„…ƒì$:àÌæ¶l¢s9»t&*Ã.@“*YZ•ndï9™\Gâ‡Xë[cdc•¨ªãü-;íÌ -ð8ã=Þ¦ów¤Ñ„ûðƒ~I¼&),^0ˆ:á«ËÞ]鈥<©—Là ¹K¶…[¢Uú€ÛX9ä°r ×J‚Ãî´¡ïp -bÓïáŽx_HËûù®,³øjlx´·Ák„;Qí‘MŽÕlßSÄÉ‘8¦ÇøyŒ(t`Ûé;UÄWšëºVmU…lDØÚ<¡wإ쎜´è€Rä~Zêët±Ïe‘ÀuHpõê€{­ UiÒ€q(Ùà,ºñŠ»rб-½ȱi†Á0¢ãïòÞzGXÐÝ^£+þ+Eã>îz]zè .ó¡’ƒ¨4ˆñû’Îu×IÓjŠZ^ežR«›só9èÅp¨÷\0 Äûˆ£¡Þož¡cYÖDÊt QÍíi@„A˜;Š ÕA]aÔ¸ÔÍeìáÿ£N‡M¯ÑgP`„á*ñŠ…gj4L—?*Ñ}$Ö¿’¨ d(¦ØÜræfz>”ít_Òc"Y°mÔ™TA™;šÿ#ìDê`p£jCqràXäb:ðm>¸d(8£rÕ]Ù׃֧Àw\ª“¹ÕÝч.*0à aõô5ö`Ø¥º\H“wjK‰n«ïd“ä}.[‹¹Ž¤€´.jTZ„Œv< !•0R”X£žZæ2f´ÀA?œY:nçeq>`i}d׃B$ð%>¾Ooç/ÃÇƮȖ1C/’ù…½ßSŽ…)Á P6l¼«‚}OB”+–±Ò(jÕ(Œ]% ¹hh¬:©qï³Ã˜AKU&Ž -ÆÒ‚+R+=|ðÔ!”i‚ó9ÍRÁÅ52VïA1‘1{õj¸v$›ö-•Äd :Œ«ùXã-÷ô’ÑT’UÂÆlzÎt»UÇï HMüfꙬ$B¡¥i.-Å)zâáõbU¾¯Dçës¬L¸Òàd|Eû;(éüRSqH 2£ú‘&ñm%?Ö¹¦Å7¨e9Sot±ü>/XObject<<>>>>>>endobj -1097 0 obj<>stream -x•OÓ0Åïý£žºÒ6ýKÓ=î²TB´EpØ‹ë¸ÙÄ.¶³U¿=ÏvÒ‡EU¥¦¶gÞüæós0£)>3Jç´X/ÓdJoÒi²¢å:Åï9¾FÐ>,,æ7ɺ¿p·L6sšÍh»G¬Õ:¥mFˆ3Ò–¸Ì *™}¾ÚþLi<_%Klíµá‚šu‰Þz&àN›ó¿w¶Ôç'›e+¥Ít(¡²"#©¬,#½'— :2ÃJᄱ”IË+ë÷äØx-“Í ÍP/k¼XFÕ«$Mè½ÂÆÔŠNÒå!˜uLeÌdôÈÊ£½,1çŒÜU®­m£”ìx”ê³t§ 61vY²ºÞû‡Çß!i'¥§‘­xNÌÒ¤Q™*Îç+TêtõõÓûït¦”ÖB¯õ±¢º„¶¹´5õÙ"™ûÌ¥`Ø8@Æ™¢Š ®Õ¾ÜáÉ„P^3*±ÂÑ‹d‘…à•‘î ¬¬Ð™¿éåövç°ñ’x…¶t,ô ˜?!mPks}¢êHx”M™”ŽÒ@FŒsa-Á€!—>)aH:´²(¨ qI<{b½Ú–_Ê?¶ÛÁJ±ú„¾*är•Â$µÚ „†@°!Z'ðÀœÇí¬—j”½ô!! -dµo–ÏاóÍÇjÑøÆz.!àø´±rž3u1[×(0+ -ÅÖÒŠâ{ºü* ûÅž4{ÙükâðÎs0Údó¦Ï > ýÉß#;"¤GþÞ~¡l…«'p„C;þ…×I¿cd– ü>Ù¬kGÍVxa­´Hoâ%ûxûñî–>ýïº×¼*ËßÚ¾¾qs`œÎñªÊFÿyµ7—“¹L—IºZã…x‹Ôÿõn;ø2øLŽS\endstream -endobj -1098 0 obj<>/XObject<<>>>>/Annots 511 0 R>>endobj -1099 0 obj<>stream -x•WËvÓHÝç+jÁ"9'–-Ûñƒ]d†™$l‹ ‹¶Ô¶š‘ÔB-Ù _?·úáWg8„œèÑõ¸uëVéûIL=ü‹iܧÁˆ’â¤õp‡ÅüëÓ'ã8ÓEo¨ ~o üUN³“x8ÂýádõùéhÅþŠŸÂõ/&Ñ„Ÿá©¿Ú>NñÆp2æ÷ð¿–´<ú80ÂRAÃ1ûµ|èÍü¤{ +=š/÷h<¡yjÃÅäô*U#kGt_«²QåŠfmUéº!UÒL GýèñlþÍZŠÇÎR.ú°u:ŽâˆÞ—M­Ó6i”.Ý›CŠcÿfŒˆðæ¹ReÉ.6ªÉ¨É¤5ÍYäRyîý€±o”¢QkI_T™ê¡»9U!ÐB&™(•) ©¢Êe!ËF¦ì¾G˜†Óµt;ë|º¿¢‡SÉÈZÝøp3›Q) -™R¥*ùpÆȵҭ¡µ¬ 21¤—>&]æOäÉQÞŠrÊ‘ÏD义üÍþ(r s¤+ÒT1D"§e[Z´D®š'Òk•ÂðâÉe-7bô^Q$oSi^³ap¯,‡‚-uM©ÌµHe Š›Ö@°¦¥Ê%0Õ[,§Ýé¤{7ïö{ n’+àg¨­tI©,D™Úº×‰/egM˜þHæ¡?Çѽ…¶·°®B€ð0À‹špõ÷Šz™¦Žô‹ú!ê庼ÿòpFÈŠ_~_X3œÎÉȆÝwö*ýpZË%Ž7Ú"Ø–õŠN)kšêu· ²0…Ldt['°­dT:ƒ»n¶ñ10ÃezˆC ØO¡x©<œˆg´'¥ …«eIŠ% C³FÔÍ[Üs¤²>§we[ü¥æñœ“l’(ŠÑLJFÇf¼#ýíìí¨´Üh TTX¼véY±ÚG¥0i*©µÑË&JtÑ=Äq 1Ñ - íQ%þ,œøð5ôÖ—÷ïÎ^3`õS0¬j Þ>ס—I"¡+Íú“Ó2`0ˆsuÃÄñ -NèÅ7™4æ%×ÿÏÌ>½Fƒ†nd lí`ý{+[IèUµ¹C£ÉjÝ®œÈµF²@/l-¹ûSш$ÏX,MJ?S®oz±ðK±ÿ‚ƒþ$Š§Ô ÀÍ3‰‚e ÖBÊ’Œ.¸|P#D“èrÙ²à‘X趡M&‚†¡ ÊP!”r€û%š5•?xùþÞªÚÊ/§cY³ãbÉ© »6 <PöêE6ÓÆŽ]§¶·`o›dYëb+^±"º¤E»:r+Á˜?˜b=¤ Ð`…H÷ÕçP}:H(0¥Ý4²f­´AÙ8í5¤ûxÚ©õšåshÎ@âg©cŠ-´ºL0VB•çÛüŽ•9ƒ˜KS®¡G)C.-<¶,*‡ ã0ŠÈ³7 n“Ât*³‹“]ÌF%˜‰5ÉÇL-#ºx:òd|ú†JÂŒ4fÊv²§Œgêø4Lˆuåm F@Ú6¶ï 7»ÂD ¬Ÿgò‰XÝ6*W?ÔDĤöc40ÄTTžë ct;£¿ßÀN£’‘ˆEÃÚÉd^‘ZÒ“n­¯T¢ì8ea ™ïP;ž»×#?4OéO½ 3i×{óÎ8[wš>£¼JÉZØ݀ɻï¦ñl®íF0†aHÑ:¯VGºîïvÿ]t}Ú¦û1žL»q·w]ÎîáçErý³kÍË!ëïR­ÚÚjî^_øüûØ{1ÃâŠÁ ÿDzíÕWZ›ˆÜ…¬_}uÇÂ6aû(ê.øÈ/³ZbRaÌñò CeÀ»ŒYáv»Ïn¾ šAˆÄ¿B«( »MyW߯°hÔk…ÞLj)û·%Ùñ•‘eÌŸ²æmi´ÿvxì¤ÄN£½ýEä ¿DcÝÝšÚà”Ë/Š¢+ÒŽÝJ…›¼T•èaÌÊÜ9ÖQÎqc -ñxÕ -»ã³Õ –оs«:Q¶–þ32ï² -³Ð%ÄŠ'ÞoåsÈäS3·Ü ?KV*—låøŽà° õ[쎑À@ß8W>ã¤mpèûy&!ªÛpÍ9xÀŸ ìê×Eàσg‘‡2ž[í[H6“Ê -Mçä­ÀdºÍ!‹|(˜Xâ{Æ%[itþ5ˆòò‰‚ò‡Ý -b̪ëìƒðn¹çì9ΗVÙ[µÚiÐî…€M§L¥ÁE÷¬1¿÷)<£ñh⾆èÝüäãÉÅŸ¿endstream -endobj -1100 0 obj<>/XObject<<>>>>/Annots 523 0 R>>endobj -1101 0 obj<>stream -xXYoÛF~÷¯¬-RwÍÑyHzØEZÄyX‘+‰6ÉUvI+úãûÍ,/)JQ9V´ÚÝ9¾ùæ ¿\„4ÂOHóˆÆ3Šó‹Q0Â7üòÛ¿\DQÑl1 f”ÓtLêEF·|šfóq0¦ÉbŽÏ~­¦õE¸ –4ÆÕ1_ŠÚ_ê-sZLöÂ0‚‚ñh„¸ÎÐêW|³¿Æîrñ½ÝÞ:§(‹Þî‚EE‹(˜³àpŠM¿Á½5vÇ#¨ïíöÖ¼» ýÝnÝé¬ÕÃ’'ÑF†óúršÀ÷E½’ÝÞ»³ ¬ógyW§KA~ÂrýBnvK<å{r÷zËœæsÚíõ–0vÁÑnóÕÝiü톮ßâ~Hwkb{F!Â? ¦³Ý%B”Ýŧã25Å󻇞¡$ Ȭ©Ü¦ŽW¹.Ê€^¿]R8aÁÃZòp xÆ$æL èµÕªL‹ }ÚÙ´(Ÿ}ö‹F¸:çãï -26Ñ–JC®ÚíŒ-¡QSµËŒJXL8“Øô ÿ­ÓL»+:˜ŠòÊ•X[¼Ç¦X§› -,Vr‚ÜVaQ¨\'­b?”ƒcbíTñ‰ÖQ ãr™ .§ݪ|¥.>–Ú*säŒØ)—qv(ÍÙ~U”t?ðn¶Ø§íSk¹Ó^9H_ècZ$fïèÃwUŽk‹«_˜§4„œµ±§xànÁhÝ?oÜ‹fàÐý¹­©²„r“¤ëCkŒ¶ðÆå«€aóxA™J9±ÉÌJe´SØÀcGªÀŽ¡˜ÃªåÌÚd™Ùs„8'žyï^l*ëôk`Ö`zRYÅÁtU¼%åèr§Êí%qä”]¥¥UÀ••×n¬4êÔ.S1Û§åöD¯Ú/@ÏFzÑÄ€*–\Zêûç?z"ŽhÉfN‚ð ª[…=¯_kÇ%»ë0Õ.Aeh€©{€´ÐM¢-\ -èVK‘;6S+i‹Má¼LïŸSŽØîÔÆËmýoœHÊ ‘(F9ì‡2ükèÚÔPOdwZÄZ«¿T©ÕÜ‚YÜy»®ßN¤éL~cYîDït‘ó Ûî¶dr$Ku0Wu‡ò›e„z¼©Ð&P‰P‘Ks‚­„ð4iP£,íj\YóWrŠ<Á‘b•®GÆ¥fÒˆæͤñ²*·†ÛØãcÚùÃelŒfS®oŒ§Hõ Y¡œ®™WÞÍ^ÿõ®qû9r‹ýTÐüÓ’¶¥ Øé!ë¬Åݼ¼4]Ma€Ê˜èûHÝß}S…ô}!ò–³3ãºu€B”,´°”Ûª{#bN@~mŠÒ¢CeŸì™Ù0Ü~N鹈`:“¡ÖØ{ª4Ùâ€U‰BɹƒÞЯm ?Q ]ŠöÆ>ú.¨‹§ÔšB(ºßj ÈÚh{‰`ƒÈu¥ƒH7kœjÅKfN´µI.ÀŽ+”ëCíAKÏ.…%éúž„aèG¯]ÁŠCk†ÑÕæG“çý|Ê`>×´Wð‚^¡_ý‰¨Ëi*@ÇK”5_fšaLù›ûÕ^gY@ïÑS0 ÕðUfc‡‘Óά•>/XObject<<>>>>/Annots 526 0 R>>endobj -1103 0 obj<>stream -x¥XïâFýÎ_Q‡"-+  LîCÄÌ@‚4Ã`“;Ýœ¢Æn 3¶›¸ía‰òÇß«n IVJnW; ¶»~¼zõª¼¿Ô:ÔÆß |êö)ˆkm¯+ü£Ã?ßÖºƒ;¯K·ß»¥˜zþ->Ý·ˆ–µêwÜíßzÊ]¢^Oö†üîã_*iS»_ÕZ“6ÝÑjÿý!~ ­Û6­‚~kþ8õÚåWþü'ÕTI¨†în[wÃúÇÕϵ65;moÕ£]ô4ÿnt:]9:[Ñ(ÚïÄO£Í¿háy:_ž Tâ×n·¿xz>8¾:=×™ÎìùÖä–:ÆÂ÷=¿Ý¡¦?ðz]Ÿ­VãÙjú2û-Æßš.Æ4/ž§Ë%..9ýÖ¤Wo2}¯Ý¿å£Ó„tÊ”2MAž¦2É¢#‰0$A‰tLIIÌij"ÀYΈãKå/9â ©ŒÒw…ÇE‚œÑ²_&rCFÅ{P>Ò[DQåàUnlåËJ¶%û^:-¸õçu>·^ãõã ýMªc˜)… -ZÑóÚ-ÿ‚H¡ =zÙË„ê3‰Kß®b™IµÝ­QÝÖaLõç#ÏÒ<(cÝ&¾N!ƒPS<Â(› .°ŒtpÂÒ¥zså4ïj‹gÊF­Ï£çyuxˆ #ýÅ1;CŒdðI%ÐYF3vh˜¢@.fG,²`ÇLC€e—8¢\Er¨%Ö s ­fÃO¶&wÔÌ°J4»§8réÑRf;´zf, ãÏè1¾X&⌔=#þ ­/%¡’+l?˜“É:p›YÒ&\e¦…‚¡jËÉeú*kÀ{tê Z¤Î©µá\™R¨K:S´—˨_jÍ^h¾˜ÎVã=.¦?àcôÃhú4ºÓäeA«ï¦v\ðŒ(zºxþ›†GO BJh c…?؉dk{Á°€ÐìÓÓ™ $ÙÚ Q¤(?.8ÙdÚE4‚ÚE@Gü*R®ñ ³UËÇ0-úÃx4Ê2ïmáï]aZU´Oõ^¦‹³_œ?ìT°C-˜p œSœÀ²WÞmý ]Ð&†ŸÉ4…Ý‚)¶nÒµ&%ÒÌbä=J«B;ÕP ’ƒ #$Tf‰£ =ZÁ^A„²UÍ^j£iÉË'Ub2ª yC¹Ì^ëH¦WWÒ·±_ú{ÔVEsà&mZE‰>|sYóJN‘ -Þ Nº~ Fˆ>‡Ž²â²H—Ž÷š†T*ÛýY•vgsX–Û$®+Ⳬ ƒïÆÕ•ã³ ðBJEû[ÁZçY!©dï6žÒ¦óŒ-²­ÉßY-–2âÍFœjË¢ÏÁìõ>ß[Ed9àÜäÁõží=æ˜>.hxþ#§ÜE»‡\%ïø"µ¼c)ß !ª–ÊXcÁ³¾íúÌ£׋Bsª˜P„XA£ñÚw府¡¼ÐWRâ¼KS´Å{%Ç°T¬SÅCdo±_ñ¦Y§ƒŒ¢æ¦RBÛTç{[ÛÖdXP ÓÇÿ »Ô¿ëyƒ.omËÑóý4×?³?ê`%4Ìmxv'šß¾'þÕE±7€§þнdöÚ ÁxUû¾ö?Ü!eƒendstream -endobj -1104 0 obj<>/XObject<<>>>>/Annots 537 0 R>>endobj -1105 0 obj<>stream -xµXaOÛHýί¡;]*c'Á Hœ´œÚÀ‘´œ”ôÃboˆ[Ûëó:î×ß›]oâä@×J-Q7ëÝy3óæ͘¿÷òñ/ ~‡º!EÙžïùŽ½õ}ü¿ƒßRÒœ7ð(üqûv//¤0èááŒ:A×ëÔ«”Æ{Í5v^ÐÜm¬3êú}¯ÛØeÝàŸ; º!Cò­Å°ÃvÁËŒoÐØk,3 -zŒ{s°¹Æ.Ünm®á‡ïg›kìvú[ºƒÀ;¦ ?À™Œz8Û¯W ¸¹ÆîQÏ;jìr ‚°,Ø Z»àƒAÀá::Æ—À{†Y˜½Í’ÑÃâz¯±Äâu´Ùcs½Ò~6Ù;¼„=šÌÁ”0äÀNbß&Q«ïu¼®GãeQ¨²"A©($åËì^–¤æT”I^ÉR¿™|ÁU= -{U»ÓÇE­ë\R¢õRRµ-„&Q&Zæ/qò_KŠå£LU‘ɼ¢H¾x,²{‚vpÞ<•KS¥H×Xâ2y†X­òT‰Ø ð©mˆ -ËsURàû¿é&J>jgõ.ÉqVÓhBÛ;¶¢U&W S¬¾®Di­‰gc=MtåÑÕœ2…‚39©\²× ›u0ࢤåÚ|4hø.sh»ÞÊ:¼?LðZTQ”&ÐkYÕžF*ËDo75kŽ»Ø·(¸{FPLVÆ…ú¡µŠQI{Ó&b«¤ZŽ&¹®Dšâ°=áÑIš«4U+"%ŸDV¤&O µÂíø.RË4f»"Ò[ÈøÄò§cG ®n¤çâÖÚS*Ôƒ¢öG*•ª~Õ2*ºѾ×,½o\`ß°´u®2‘ä§ÓÑðvt5üL×ãÓéÇ¡é»z"—À‹žE¢Djº; À°ÐÑ®…Þ89Ä^ðà»RéôâGær+óT<è“©ÿ4@Ø}ß…{뙜“4áçæúíõl¶(Ú׋ÇRGeRT‰ÊO¦öùÝs£k:¿½útqKÃOë÷ó÷ty}K“wWcº¹½M.n^¼‹…~2u»ŽßÕÙl§$~·ee*g£Î?šÍö_g&6FVÆË(’ZÏ—iúÌjFk4s[Ùô:(lö¨v"›ÆÔóhÇ,I#¹¢º4=&Âè]£²!ðö'’¨^۠ΞÑ~æb™VuËQó9úA]s#½€¢k~0É!‹In¢|x‰n[g÷^¤òù¶‘?É nßaó1ð0¶;¡aÖuÊe„nÀý¢dKâÊnm#qòIFË -âžÓu!óÚ¡‹§Y‹Ë'¡·³7°Ê=$Î’n•¢B‹f·ÚÛMò1Iå:k%žôŒäÚµf!TS’€d®Û‰ììMMŒ¨~º¹. ×üg°o®3íÑ|˜¹Ö4JgÀœXÇÂÄI ªÎìÊFõ”ž¥-Ö-û¥ž;C¾x’1Tz&ª¸µ†¶™–ÚŒÏÇ›´\a¶(AN÷Ó:Èagw7= \¬¡cWÔl¶™1sÇÿ¤Õp‡Œß<{dKÍcÞ#`¯ëåQ¤K¤™ÙV”ê¡-”úJæYÝ”Àqt9€#¼ÔϺ’YMËWz bÊ*:4'#Qìð…é% -XÇ>Fšƒ|Å<õ͵<' -”L”φ|¬!u!Ý-0Ñn&>ÎмTb`縟ñ„;φbFW0Á¢rUY-8°È7à ´ÅLj¾´lq»’äÙCŽÙœHþ¦ÑF"›rJYˆ’9fƒn¯tqn½&q̵ -Ù)0d*JUÄáeH94ÙY5ŽšñÙ¤“åJ³:Éâ@ÔB{Àj#˹à ÁþÐÈË<‘ñ>+fÄeÉŠ\C¶Áöh¤ Lò/ÇÆáÚP“Ó:î:Dœç]£~ÐÈÜÔ%܃nVò©bdld[FŒŽ. ÄWX•ãÙx™W»ü™,¤‰†ggÉ3wƒp-<ÿÕ°V,S g] éÝHßKzůG¥ÌÔ#[13β7/6,—A-¸Aˆ? ð^P~gl‡ΆèIê Ú «hÉN (ÓÙÚî@»ß1Bø]¯–½~Ï뇼£ÂR/`(“½?÷þXÞ»endstream -endobj -1106 0 obj<>/XObject<<>>>>/Annots 544 0 R>>endobj -1107 0 obj<>stream -x¥WMsÛ8 ½çW`rrgbÙ–Ûée§_i3Ó¦ÙVì¡Z¢m¶’èŠT\÷×ï)*Š’v;M˜" àááúq2£)þÍhÓ|AYy2¦Xá|z{2_^D ŸOñYR2_E«ö[AŸy?Ï—QÌÏøå¿tâ%Ž%«%¶Åø_KÚœÄñ9îH¼PÂî9oqß±ÄïxxŒMͧ³Ç÷ñƒx¶ˆCCü`6[=~ð2=™\^Ð,¡tƒø+ü‘»°§”f#„GôY”kA¢Êé¦V••5ÝèÚšgé7œNp³?=Ž—8=ºUU®†®ÓI<t{>CFÖw²6$ŒÑ™V’ =n¡ƒ²;’"Ûù²Ž(ÝI#©Òu)ŠâHV|—dw@ +¤7ôþ&=?cóSÏæf_}ü€Eº¼zÿ¿¤Í¢(x^6Æ’(Œ&ÓìQ¾-ÓU&÷–/䵞k¹w -úp#zy¤\nDSØ3ÒUqØÖ• {Ý]gT‰Rætê‘ë£v -ß~*sºæh¬,ƒ£¹–q[ÐÃEÞB¤*ÒuØ­vžQ-PMÊ’B8ý£Qµ,%pGt!!Y¡°b¢öŽx¸kdØ°mž;'~Öé}8ºPÕö”'*ç±D6} -á ~;Éaz«2Q<å=ûí°WÛ -YM%`Vû¶iÁ!õ…9­E!ª ¦ m„*Hƒ[ø®6tÔMÃG8¸z-9­ŠíÂ]J†ÞèêŒØ×É%× ³{dÊuÆlür ý>#ùNºðêF½¥Ée.‘USº @dº,Q^Ï£h¡|þÞÚa§P(™¨®7ÆãåC@}‚Y(N$dÔÛZ”>è­¬$â\,@=\ }Ÿ…>6Èê˜å`œÒñí¬Ý?ŸLTndtSg¶2ª¤<©Ô²(ø7¢x˜ë¬ášt>¢h²¢É‘A'€{°²5Ê‘«Z­‰áG™™ñ7œ¢)Ø·®•tôì‰"*³Öyã¡´ØÌF -ÛÔH¤!`âj§ß Æsî/H$§~Ñ-ëþz"ó¼=<÷B”é¢h=†1¦ñ…æe˜‰Èm5Äîðè¾ã L7Ž.¼KPàj0»–¨8eu}‚]Ʊ¼AxkAܱ.Î'«NœóZA)h/²ïb+Û–µå9^F+žÆ×x±l Û=ìºÍ½k€¬’”@À3øE„Ä•oè`q厴øÿ?O ª2:ìæõ̚ᳶ̈́qiwq] ƒ[B×õ4îœø㡹?EèÏ=HÃÀ1ŽWÑì‚ÆIâEƒ¹Gô* ÍkŸµ›Y yq¢$Ã9`jwøÿrfèZ5°à ™Lï%Ÿ³\g¡Téë¨ÓÃÈþôÓÄ—Çíì—±cF©1ýõÈûõYDW™ÚÝËx°4`‰¯©í/µßKß+î§+jtÅ‚‡Nq¨¬–fUHƒ1A‚Pœ«ëKj—˜ -(.œª¡Ñ¼H•”,Kk ^Àå FýY,†Â~¿‘‹´_~'GÙ?¹°bÍJÞ>scJ)ŽÜþ~4Š—ÓÂe€Þ¥é •2Û‰J™ÒDô“å Q¬(¬".ÎÎÒÚtsjN_>½wyc8Df¨ÜŠGÆÙqÊg§·¾ ,3³ÔVq‰Ñ‚ÜÀÃî¿­š›·m¡š;äJm8ÐßÖDgÁãFïÏÉð“èÀ¦ãoÍ[} ÷äj±ùXÚ}†aTá1Ô/…B!-<¨ÈŠéárµ‚žÔÔÊ)ÛÉì;gŒëBæ&JÒŽ}ÉzåFÔ‡v»ÿ0¨›žèsè]`OPÖát‡I‘ýj‘ðV€×kšá¢±÷füîãmú1ÚÞwF¾ZW½ -3RÛÆ1ØÇҎݨÿ”ËÀMš³vÐÌ?°Ù»¼js4[àmr5Ç[¿Ù¡k}~ñáå ¼£éohºôº?nðÉq80^Æ®Ëý÷ë]²L¢åbå›bó-oÒ“¿OþæJÄ"endstream -endobj -1108 0 obj<>/XObject<<>>>>>>endobj -1109 0 obj<>stream -xWÛrÛ6}÷WìäIžÚŒnÖ%/çîIܦµ:éƒf: IˆH‚@ÉšNÿ½gPÚyhãĶBpoçìÙÅ÷‹uñÕ£qŸ#J‹‹nÒ¥þ`’ôi8óïøg$-/^Ï.^¾R¯G³%ŸMÆ4Ëç»]š¥AV:ÒKJuQˆ2£\•’¾H““Mªœ½œ}ƒ‰4š¸'ö>Ë:óþhLáiãÀ?¼î ú0ûô-„•­Œ¨Ö*9©ÒI³©$§É­å¹ë꺾îO’Þ”®û£dÈÎg0¬JëDž §tIi®déhÞQ%-´[ÓR›ÂÎ/©2z«2iIP!Ei¹ßkiöª\ùøîŠÊ hK™p‚³AÍÌV¶@‚+Ð¥CÒ…péšßÌ•õ…Ý”zW‰O› -ÉœJQ°?K;™çü³qŠd8žk‘£3ðadFÁ)Â+m¡ly~ÅBø·¾ªV,ý2 ~c¼6‰oœÖù¨´ñ*…‚¤ÒZRø["ÉÚu²B”ˆÈã“" ~¼¨ÀF×e¸p™Ò![,BÑÆ$¶Ó>kªôÙ³>ä—ï»4e£ÎýaÀµ—"]O[W•6·Ò;™ºš¹ÏàÐ -5+)”n~óïu“ säïÖgâ?½„èÍ+ú€ö`’"Q£¢p’êÊ”)_Úì}0¢]o‡¿*~7ÀQxÎg>ÕzEûüjˆœ–*—¾Û^çÑÞY[3³JºÍ²/so=oæPýþáú÷/oZü?÷{Ɉ«2|Æä¹Åw'Ö¸‹JŽFÛ·,s RÀ„’q.±øÐQ“RïöWè:/Ô‹\–d™‚X €»[HUTx€>~Ò›NkHÀÚ¡Ø÷ÙŠuF…ª,¤ÛIY6AF•Ú -£tméH£¨ÂÙdz>ÉGÁ\ÑI‡©2Íë ,öœÑ‹Û -G[Î>C=ÌW’º»CƒþIÛ›^2yá{«±:½!eŽöƒèpϳ~ùڠ碓`žž|]ž69¨Ëå–]ë#ƪ„’ -×èb0‹çb+i2E–#“ÐI½„nY¹\ Pm†Dv*Ï[y‚ñ²Xà™c G“4)ò?5ÔÄ)6S"×+ôK¾‡æÄ‚ðØ»7¢ÿ&.2biùý^«tC¹Ö–®–ß!†¢ÝCÊ -D¾‚<£s…c ,0aDz:…ùøéóý|þà_˜ÏßÔÆ€wotéŒÎ¤Ã…ßçsŸÐ|þ®Ü*£K¦g0Ú(Þ‰Q®¼o%¡¯ÍI]D¾{KµEA8t”ê„Q ÍÖ¬ÈO_4éÿrH‹Å¢™ÅŽr ØÚ59cד"ÃYƒH(¡z‡°Í…9“i8*µ „A¸-$b0\ @¾—,œº˜¢‰˜Š)¤j¯kNú™œI-=g‘.»93nèG£Ì~ŽžO BrÃXžë]U ¤“«B¹0æð ã ` D:Lûá $±BÒ‘Ÿa‰xšø’ÍÏÐÁԜ޼œNZóÔ“àˆ4‚:$Õ7ÖÅ 8¥67?qŽ“¡Ø¡{…õÊo9ÈhitA˜%å8(þ?$}$­¤±"gâ ¤kQ® óÎN¾ -ÒŠÝHoe†á‚†ƒÂ'Ù¢mdÎI{EE`‹%>VP@>¢$(x]ň=9–:ÏÁËÜCÏT­!ÆA"lq®hkô «,YÍ­—¬ƒÏWì»ïa7¼[zÎeÚ³ -A×xö•rwŠœ/FÓƒq>\ñ;~Á+¥Ì<…ÓP(¨èÓdÒJ´‚…6ÀÒ¤ÍÆ{³,a”óõºiÚnØ Õc";&ÊNlP•l‹@Äj!Ó Eíµ/@óz(X¨Äô1æͶramâJy¬®|*Àcƒ4ùÇ›A£«†M2¹ 97êØñÛMB_yÀc Â:é Ñ¸zpN¹Nytˆ¨ ÏvÜäuööµŸ©K¡ü õS -9éÊoØlº¶ÍqÈÍ{.K°V§¼ñùuõúDNpÎ/½¦…”Ž»o(þŠfŸÉØo+~ˆÜ²¯Ú·¥t³Ì lW •+Í^þ…ÅS¥-¸¹ÿ2Ž -ñíØÏrì¦vàrl䷲Ȱæ"íq€ã|=à•zn¢­5FŽ¿r âšœù%3G–Ú8§T /ïº7Â5}2 ëqß_¦YËÿƒŒÇÃd<š„‹øpÀ&ßÍ.~»øŒ½'Aendstream -endobj -1110 0 obj<>/XObject<<>>>>/Annots 547 0 R>>endobj -1111 0 obj<>stream -x­UMo›@½ûWLoD*k¾ vo‰ÚF9¤Jk¤\|Y`±7–î.qòï;³@â89ôPYFf?fÞÌ{óügB€Ÿ²âÊv°WèÒã×õ"Ž3¶tµa)´d[Mo lé<$¸C²Îðw„_- ^\å‹å÷Âòšb§ë òÊ… /½›žÕGÞY° -Z¹×Ü -àˆ'i¬ìöp‘?` Dâbx½–Ú°JÔãÖÞƒZ6p[=èÄŒ°CÿÙ½–ƒÖÓ¨®y£šÁJÕQ„ü0fâò¤!ƒîƽì*u4ð#‡Ë»{Ú‘±¼iÜ.®VZ>"„[¹¥ÍÓ¼Ä ?`° )˜RËÞŠŠ²ù'郎E¬æúÀ´EÙHDz^f9?«ûòó ¶b¬á¦u 33tNUÃx ¸ËqF¶Þƒkû/Ë¥œn3£]ŠZé½`°KòzÏýÂ{§µáÙ‘FÞö`#òrªÒÏØ:„˜Ä„]ßEi6Ñ<·Á_±Íz~š±$vÔ\–;tûOo»â2¦,HW(GÖkÕ4êøp°¯¬TÝ;Ñô\óV¤€£fñˆ‘•Ð)UD^%z-JTeåx>Jä—µhÕ#®¥:_tjìæ«š&µØ{'ÆI=Ž3Ö½Ž†¥,¡*&…ORE½ó®wõ§èM瀮Á/º> ¹ó¶ÿ1Z£°;¤ª;O¬¿ -X¼ ÁîH3Qxà[,:°Gì+Žñ)GUEýÜò¶àè3ø!žHm…°È"˜¡ï•Æ9¯_ì -^þ>r]¹ÆŸÌ`É{^ÈFÚgÄÿ–¯’†h)¦Wª1e3xowáA©Ý 5¢Ù f+@ÃW'YFê8æ}F” a8Åç¼` -6â;AÀàJÙÕŠŽ‡¶¥zbbTr%Èw -Ô(ö‹ qœÙÕ;o…à[4§žïÉmQÚ(ý©Ü -Šç3èµ|hì4ÅëI´!Ng°Ž!J6l“·—·W—p§Õƒ(-E9´hdNÑŸoøYä„‹ÓÍàÖ™> ˆˆÔª}îËOt?É–¥kü¯Â\IBKßòÅÏÅ_!Ûò†endstream -endobj -1112 0 obj<>/XObject<<>>>>>>endobj -1113 0 obj<>stream -x¥W]o7|÷¯X0šöIrIéФ1š‡¢.¢"Ixw<‰6<“<É÷ï;KždéÛê8¶t"w‡3ËÙõÝÉ„Æø7¡ù%½šQQŸŒ³1½~-hº˜ãå%þ;IÕÉÛåÉèê ]ŽiYaÇl¾ eIX=Æ“âÅ»µh‚t´Èèw™·«•2+ºvÊ„ôÂæZÖþåò&F™ÌS”‹WÓìq^,²IFLp¶l‹ ¬I+§4™ô+/çÙŒW.×ʾùµuJé §ÞC¶¢µÝR°x - Ôìò7.姭 -kú(ê\d#¥í¹ôG;9û˜.&¯ºãíû¨•³5p|üó-ZI83ÞsxòÒm¤;'cñx-É⇣­èH8Ûš2£+ëâ'Nb¡—Ø!ùý ·¼u£¥íÓ–ÊÉ"X×eýÒËY6ejþº='o©³-ò$4qÓ×°(BÇBG×ï˜ (¬œg¤,G0R–¼P.S2ëa-Â`:niA!ŸU¡ZwT‚ Ó=h ‚—º:'è¦E*,„Š,d­ÊÕ! å2l¥4 €‘íhåäühù£îâû6÷²ÎzÀ’TÀbú+¥ñƒãw_†áýႨŸ¼G!¡é4²7HZØHËÓŒ>‹”žú‡‘¸R‚©¶aö€z¨“½][À‰dÇb.,—¾Ö ¼õ¬€Ï ù:Ïðy•dª-¨sRË +¼[öåÅv­ŠuÌkÑê’´µ·耄x|þ]LbÒ±’_^¢,å¼at5¦7»K7M•EñëóJÛ\èwaÇp ”]úTðÓ Ô4¤‰ýH®o,Ž¾WrB7w{.SØ ZÉ@qݵ²ö B„oèW\}álÕv#âÆæß„þ9êŒ*ôd®ñ 6Â"”‘nÊ‘ç{ž;ô©Þ¥PmÔnYMPKFPÜÒ­C‰Ü¶á¶)·\P»‹œÛà4=h‚‹¤[éùæûPNú¶>ˆy‚€…>ktõÕÙÞ'Gz~BµCúZïF¹2 ÏѾ¯Ï:{\ÉÃR8Ú}kë™Ý‡up´€Å¸ûæ)¶Ž‰ïCø„¿H<”øß! À#EÔ7’tŸ=®“Â[#ÐJÑà*Ñj8h•ºj¤” n[tÞA“RèyNyØ{•7?«Pnc;˜ú.?eóÞ¥o{­añÐWÙõ£·¬.Š.-nÙI–h[À/áR¥âFì“WõÒ{îÔlIB£ý¡ÑrªEäó,T¥`‚ .œµôçÜ!’c•9ܪ‹=&Á€Öq/¤ëß–ÐFèVú¡Ý~bŸç†Ö[L€O¸Å‹\ö7©Œ­i«´Fž[ö ô’Æ:á:äi:ž.˜¿ä û& oÚ¡Vqj9˜øƒ¹Am2ôE4S¸Z¢…H§l©@"g¡¥0 ‘xìïK2{.º‡òQN±Ç9à3¢Fôd€à¿â -^KTÉOô¡Ú¿¡J(™NdÕjµ°mÕ² -ðOM[à Ó×ñýòäï“ÿ%ƒËendstream -endobj -1114 0 obj<>/XObject<<>>>>>>endobj -1115 0 obj<>stream -xVmOãFþί˜êŽ†“'NLBʼn;é*UÐ&UUÖö$^b{Íîš@_þ{gví"„øeÞç™göþ „!ý†0ÁxIq0 †0ŠNè4›ò5}4Âʽ˜DÁ¤ûüóò`ðõÂ),Wdj2 a™™a™Í‚Q×ëµ,×PiYZÔô­â óiyGꄤÅêýÑ”\,Ó£Ëa+žÀ*HYÛkz^¤á·Æ -m!~¢(«\$,a34‰* -Q¦°•6“ažƒI´¬,©eÂ’|¢tʹÇÁˆ] ½® ,IŽÕé=™¢ ùZ¹{—¬dŽœƒ‘E•#à£pßN†bÛHÒö7åÚ@!×ʼn§>å!œ´GAÄn¡ùñÆÛèç0°E50âý‹Ã -]Ù¸X¡/k~øaËò»`›Ô0˜µÖ?À¡SSO]è‰p×ÚEXÔoèj£™B¿‚3E¸¨ÞPpÎt]6ô½à‚r*î!j­4hŒXc›Rø"^ßS/ÞVÄõ“»¢"¢"$QÂFÉÚ“ª5˜'c±x#¦]y¥¡OWCø8‚ÑÙÙ¯z‰K‡Êe†%ûðhá0àa¢…z`JÀ_$U€W WjŽÙ÷ð¾Æ¡DL„cjˆUU…)È”4 Œlì"“-x]B½­=@W_¢;ï…WÂ?Ñè?8L2™lš˜ÉN¥¼ä˜%M'¹$èÃ`«Dä™2vo£ŽŠHS<öJ$²šS#ù7‚8ƶ·£ãc( a6sº -ÚÏ°cîJ³¥:œBçÅ…*„,ç×ç‹åùïË[¸\̯ÿ(åã-,P? ž_/D f­`zÛQ¦dNáææ¬i‚kø«ä«ÚZn!·=*”0T®~8=Gpsʼnææݘ5Á— ¯y¸Ï«k\çe8ŒNÜØ›áw_­¯Žð.þD” æÀÊ‘/n¤üûœÓ D898%K)ÌŽÂ;lþÒšhÌbºÏÆ[îࣴ¬øöTAχף HeBãÜ°4Cž“ØR<ÒÓh ½30‰ùY†ü4H%êKKŒkr)—A1 I´‘7LÏ3JYŠ‰ôVjiFÕ–°Ð®€Ò]äJm€V;|É/~haËë…e4š:ç=¢qŸëûZ&›¼¡ ò ²]1nËñ’s„çˆÍ±çã.€Ëí%¨PñʘXÛÅêµ(¹có&éÚdà,%¢òqqV¨©^Fª’¶\ BKEóŒ¯|õžïúþ¸Y]³`ÀŸœµ“Gm UðÍEôóë¦7+¾­>mW­5ÝVº4=Îb­EÁ,˜d˜l:ü^Š(EŽŽy…Õ†+Cõâž.åßÄHGÝꥌ›}ý“3À( 8ö²'Ïe^›$¼¨äë4ÝÆð|Äæ×HÍ%0ìJ/KÚX…°TsXiU´ë„bkn›2øeÂ6,mÖJå¹Úr¾ äèaÛÞv{bÁG«EbIï¼¾/۾؟pç ²«Ð3Þ¿îØ@#½Ë¼çk5kN}á„š³1L¢c>©,Îý|WZÝabáB%î0æÊÄzýV¼?Ñ 3}Ï 3šFÁt2£ó%ÉG6óeyðÛÁÿóYèendstream -endobj -1116 0 obj<>/XObject<<>>>>>>endobj -1117 0 obj<>stream -x•WïoÚHýž¿b¾‘JàBFê‡Tm®­Ú*×PÝUŠtZì6µ½Î®‚Ô?þÞÌÚÆ8ÑU§(!˜ÝùñæÍ›áþdLgøÓ|Bç3Š³“³èŒ&óWÑ”¦‹9ÿ_§i}òvyòòê5ç´\ãÊl1¦eB8~vFËøtM#ºÑeiò UÎäe¬ -RyÞ×îA;ÿbyKSÃ[MæÑ ¶NØŠ2µ§\ë„J‹ó%[ò6Ó­9Okëho+G7*[)ò{_êŒW^Gô±$ãÉ—Îæ›tÈc›e:OØâV•|“ýÃëø<š°W\ÃGÈPÅ&5¥ÑÎìƒá+«½|$¹/¬MµëDv_é -ÇÛ 9]“#ÀL•ÆæQíi2šðvú¾2×´[GªÍ\oœ’|àuø¸kš–[äÙ‚Üùˆ¶ÊsÔ½4CTü3zÝ`? ±å*Ó¿Tj”‡—IE¶àLÞ<¨´Òxîw‹'¥»Bè*ͬ/ñ’†¸˜¡:~x€ ØÕ€² -§WšP¡Âz msTÌ®a¡Øª¼Ê´31cR¡|ÎÇ4ü3èåo•Sq‰ 3¥v +Þr0vGÛ}±Õ¹§ÛÓÁhpû‚ÐN§iD—9N cæŒâÿa'Gí´À!\cnÎÚ ¹Ô=ÿrMìPNÓ*Ö`a"Ø•°?EƒÀÄr@je«²‹H„j(Î^A -Ð#ƒ=S›MÜÞ’*{þ9<ð›qKMŽcèýXò£6ræ%gUZš"Õá`Ÿ4ðUø•~Ó*ÃQÏv[–­ ž… £†Ö…£;.e ’ ÇAŽÐà†ät¿ÇÛ¶é -8vtIIêqt}òìõ/{ºf‰i¯L+”H -Úà^ƒ~dðü9ƒ~{|Ñ£@;‹ÄÙ*µM“78Q¿?²é{š! üÎÜs¶^[£É«Är¨DZûP‘nßïÀqZ‡RøR¹R'Ã5+Tõ'ú MµAEÁÍ#ftlHŸæœJG Å8±rqm¹©ÐÝO˜ n|‰Ö¶^Zéä6Û1ÇÀ*| -å­ƒ -ðùú[«ólb1„Üi•Œs i_­2SBSZLö˜xiÚsž[éèÏw¯ÿcåàÆ]×J>/XObject<<>>>>>>endobj -1119 0 obj<>stream -xVÛnÛF}÷W N™ºX•d¿9q ´@.MTŒ+r%mLî2Ü¥þøž™%%ZQƒ:1@ï’s9sæÌ|=ÓÿÆ4ŸÐåŒÒâl”Œh6ž'Sš.æxžà·Ò´–‹Éì*Yœº/Ƨ¿˜ŸøàÍòlx7¢+Z®á{¶ÀCFð;Ñ2}EøI3>ªjèKçòa^fò26è -w/IN)3•Nƒ«rk’kúâVþõòËÙˆ.Æ#ºÌÄZîÙæ韗´66ã/ñëSŸó9eë›Ñh\4[ç»ÞMi<Ž\Lfìê/W“ߺ:ϨPš| ÜÂVj\]Å‘¯ËÒUÁãÊxZ»ªÀ>õÞôº •Æ*…,i«<ëƒÊs‘êÒ¼L&ìû<€PÒy´µ3yN©³º -8A 9‘àHu^UYV_ª€KøèÇ™Ä,¯hC×…º$ïÖaÇPs\ª3ðÄ‹¸äÎVͳ -eëµJ^Ú;î:¦h‚­½&9ôHˤT´m1¬EGÚÖò´3a) :*’6àÈL¿I:hõÍú9­LD¿P¹mçTE4H_š(« DpÌÀ¼3iå>J‘º ÝÁµþ¦Š2ת-ýOc¯~>òŒ;¦D~]G:žbîÇ8üSû@ïU¡Ÿî_}2›m ·¹Iî_„šBlÆkÈÊKVO7Ù#ó/{ú² /Qu·ó")Pètëœ‰× ñÛPå·B貄¡¸¬áà?»„„7Bw`Ò q¿Ò8ÊÜ€07Dejâü„8l¸†°øŒç@è6úû–ý1ÐpÎœàG®3¢ƒÃs¦ªÅSÉÓ¡š¤¸ÎƒAØL¡š#穪‘&XW†…På"¼êýh Íú¤v=—­¼ˆ\>Ðí:`Õ¿×x‘´©AÎVT+® l;Ÿ1íbÛ8ÄYÇÛyç—[¥{°Åø‰kž Q [iıÁøáWdÖ±€É%Ó[šêY+x–7(4¬X‡–‰ÛÅ‘ã~UXÙQ ²:2I[–':¿é4ŽÛ‡w’[)+²:çNë{ýQQ u„'é•–r'ëñÞaóèt™xügÒV0äèýnL*lrýÄé¥T?bבíàÀŒ6ô¶©„¡)¡óÝÂ"+…ÁþèÍ?Ü;È…­ÈqØ#§ýOBlõx·h÷×ñ kþâ’f“«¸A}¾y÷æµs_Xƒo]ZPUš_t\Ì'XØÿÇ>8O“ùl]oOlä—åÙïgÿàÈendstream -endobj -1120 0 obj<>/XObject<<>>>>>>endobj -1121 0 obj<>stream -xuËNÃ0E÷ùŠ»£H­‰“(v–­‰Pÿ@“4Uc—ÄAäD–%KsÎÜñ|F1 • ÍQQ,bäI!2dZñ;á;Úè`¢‡çRÁ´¬äZÂ4`<Žaê…À•4TÍ]×ÛîÞœYÉ ™ Ê.Q"gióÒŸeå¾hÅáûë„ÆÙ;]®ÛX åR7Ã5ðÕÈÑÛßœƒn¶ÓÓ2yàDzæºÀ‘(¤s¦LE2Í­ä¿ýª÷œ×T{7.bUßF•9ÿ\§P…ÐÁ=î_{¼îÌ8]=d}é{gƒ¸ûãw*á]4ÿí"S™P¹æM0“A}2Ñ{ôˆ£nendstream -endobj -1122 0 obj<>/XObject<<>>>>/Annots 554 0 R>>endobj -1123 0 obj<>stream -x…WMoÛF½ûW t‰ Ø´$K¶\ ‡¤NZ£pÜÆrˆŠbE®$Æ$—Ý]Zß7³$EÑn‹ ‚)îÎÇ›7oFŸŒi„cºžÐåÅùÉ(áþóÇç_øšÍù3§ée4©2z<¹œÍùål^Î'Ѹ~â·ãLÐlr]áêd:‹æõ¿eƒÓË9ÞMç×ø{‚ÿVÓúäýâäâã MF´X#¶«ë9- ßÄß·ªôÚÒMD:®lê÷”ég¹ÓÅ7¹9¾7Ï/§ˆv‘ o¢qDw…·&©bŸš"œœÒx\Ÿ”qòQå+E®*Kc½#¿E@&ËÌ.-6dJ¾‹o¼Ødf¥2rù*ŠM±¦RY•k„¬è¦1>¦Æ×pãO~/ˇÀl7tñqÒÞn¸:Á#‹CzK_ÝVYý£rÚ.‡‰^«*óËÓ‰ÉUZüP‰ë9O⤛ôûø=ÓÊi@¿¨ujmN¹*׆Q°T9þ+-ðw® -REÒ\IL\åºð¯'7¤Û‡ûwwŸþºÿpÿþÃçhëóìødáˆÎÇL2DÆ>וE,­Tü´±¦‚ÃD{•fŽà?äK¹I45XE´@Õ¾¤Ebv,‰Óv¥­qÍùæ¨\ q¼.[Ô3\žRŠ›ÚÅ6]éùsõƒoj8¤w·ç¿>|Y<üGŠÃHnÓùä*ãa-„R+ó¬ÏhІ÷IÙgm”kÅÄÛ*O¢V× 5g)p¯ß¦ž£µUQ0cë€9"‰hU…ò’U±¯T–íQdç40]¯ Ϥ*äXø4u¶úïJ;öaPs#éa2òì‡S càŽJ’”™¢ú(·ÍBv½36©“¥·ƒhiRI+t›Õèµ^X·ÀåßP¬¤ã;ÔZé6ºåhãp˜øuK¡O‹:²3©R¦X} -ÍÙãx©V™r¤‹Øî¡M‰ É)Õun]는Ÿ%®+T¢7Ñ$¢{ŒM^f“šx¢<ì£åFWòº=Íb‹ÞyG÷ïD½ÎÐ/¨ZÍ\Î+ë«’vÌ©åÄ쀎h$…˜ 8äw¦ÕÁˆPßA/UV†À`1¢/Û4Þr -ˆzÆ:Yk -Ò¬×:®¥w§öÝ38ŽÞ³)N1 Ýx`uêÎÖ|ŽÇi0–P2ö(Xp@Ë¡pyOÇ“þîÁwô:ÇÔø=¢†Xjà‡mz*ÌÇÁøTFO‡^Î[UlÐËè8Ærˆ¸w©ßv2º&U–Ö¨€ÊƳJʇ©f÷ðÀÌ÷ÑJ _"²‹‘ƒy–ex\í{àp=“³ü\»bv›00':¡À‹z†¸ -£¹„»­Æe+­,““@˜Nú*v÷Ä°À5©ý³ëÔ: ðp)SÜJ¶¯>dÜ`Úi¤˜«Îñðqüíó}ƒ™…!q(7·+ÛÆÞÄ&£Bo # #µd1˜œHMâ.0ǸFš¤:öðÖ(+ƒǺô¬!VÙàÌâÔØàEcŒ{{•²€°ÿOM.qVØ„ÎĘåˆëšmXa(M´’2õ¼‡.ì£îµ¶{‹rcN˜¢¨Ì9˜ó,uo½žF×Wó ü³‡ÿaqòÇÉ?Ëb¨endstream -endobj -1124 0 obj<>/XObject<<>>>>>>endobj -1125 0 obj<>stream -x…VMoã6½ûW tʉâ¯ÚΡ‡MÛ{Ð"Š{¡%ÊâF"U’Š×ÿ¾oFŽ•EàÀÉyoÞ¼êßÙ‚æø[ÐvI« eõlžÎiõð€ÿëÝÿ—øxMÅìq?»ZÓbAûG6»-ísÂöùœöÙÍ©ÔØf"™@ŠÚ ½Uµ¾oT'çsŠ¥êÖÚXjM¦¢ÎoɺˆíI(•¿lNÒ/û³9Ý-7é(7ÏÊž)«  -ÚærF‡`œÅïØ6 é7mÉÒxäß´g*ë›*¬WXÈZoâ9¥}©Ï@÷µªªóóMU&ﱫtÉØC*th#ÐQJ/ª>(ˆ“!¿\À›«¨2!’+(i¨*=®‡$¥¿¡ƒ°í›À²J”;Íj&ÑkM™³Vg)'¬³ª‚#•3²ëÀŽÓgåW¤ìñíLÑãã†8üõ;gW´ÎOðK‡¹AvÑy£Ã÷/¤Xw‚“ ’œÎY`†Iø!ýšP¨)˜X·Zdãz`¯¥¬ÔÙk¶õv‚¬ŽÊX‡­?Õî[Yj³’ƒ®5 Í\:=ňïÍFŠááB¦:uØ“±b„¤·ŽØÙŒ~ùÆFW];‰a)ˆúu¯çáS)ËȦó¿´$c -“´¯ÃvÊõ™Hfƒµí‘T®CæÍ‚jåÑ$¾;|E*ªWX &¨Lä“F}'#·LȵQ×M—YåŽ\yv×hèòN‚„]K{$ýSe-ö/1‘Ž …wµ@tJ¤„‹’½Ö]‡‹÷®õëg™¾Ò ƒ -+åS—Ý㬹ôk -4˜ÄDÈë¢C °ªCDO/Ͻ]&z‹?QlêÇ\‹ÁåÚ -²s£#®î2‡YsÌ7h•— ZxjÂ-us˜wôE]UáÞM'îÁØý\”¹=¡jìí8g>Á Å™Ð6×µÍü¹áÙ$%Â’ØUÔí÷Á˜×4L,ÑÄÎrõ:‘h¯úŒ1¹G*s#irÅäÀ¯¡2é{h̳:%±ToŽ§^ÝLà®Ö'€O0/)¶ -ÃÅ Š¸Th[¯oÅ\çwÁkL¬ˆò ºQwB!2ŒËˆl‹ jˆg,^ˆù@G¢„;zÕ”¸3ù®2õ8¹ÿ `¨Pz¥µæ'lñ.(_‘Ø÷?ÐØ…´ªËK6®L¾6_…2ž/I ƒl­¬:êw1LòeE»Ÿ@OR<±Úì܃¦W4à$eÈÎ6Çß?íú7ŠÅo»­óîÞ}ùúüø•þôî® úÝe-C*ö¼Üm—xÉo~+UÑz¸˜û©Ý™;ðöõvn7;¼¸`ë/ ~ôÇ~ö×ì?~ õendstream -endobj -1126 0 obj<>/XObject<<>>>>/Annots 561 0 R>>endobj -1127 0 obj<>stream -x•WïoÛ6ýî¿â€a€ -IJe;vR´’¦2 éV{û2ï%Ñ–IôH*Žÿû½#%ÿ`E 'É»wïÞÝ1ÿö"â'¢ÙˆÆSJÊÞ0â Eüõõ×^4™†3šD³pD%¢QxÝ<4ïfWᘢá0œ`u|9ĪâÕëYÑt^a-š\cÍ=ðÒÑ#Ö¦ãv#¯Ý.zƒûk i±¼é슩C…7Ið)+5ü„ddRëÜîè#¥ªyEøÌE …¯ïßœ¥hæ-õÇD±HBúMåU^­ITô´ ;~›Ûloaä-L(Š £Y8e 7ÆÔ¥¤ª)/’ÄþÌ+@éàs–=I{ûðeN•À~µ"o;“Áüó׿¢S7¥$´¤o'›Q2=53¤~4ö±Ý}y옻 m–'€àüýîÓÿ„KØÜ1æ°Ù­¢X$Ïõ¦¥=Q•Õ -À´ñÖ›°ùô8&Át)€ŸÛ»Oß%á4ÊÀïìd% °ñ2šB†HÎCEJ§HUŽB²™l€^Ð*×Æ’±jC ²I[*d©*Ðâu]¹‰*K<¿?Å€`Z7Z)û“_štŽ/ÃÙ%4 ¦Œ7˜mJýoàÔ×ü‹éïÿéO¡r¼nÒR4V «ôÏîð›Zñõ½í½w$s Ý©ä¥óDZð+ö¸R #¶M×2àU;*E’å•ôË,‘- +úíIú{Ya,þüƒÂ/¥ˆ xc4†\¨¼2;À]eÛ•µÙß<Ò3î':ÜG>x«ëÔÓ²OÄÓŸËo¿Ó÷X]X$¼˜1Í»ÑËK*fG]h ´ß^A ×°¢Øn•²4 [%7Ÿz5d7ômþ>ðyè®Ia’”â9ì1ŠmÛ€©\`ÒÚ„’²¤G¼¼Áª,@P´[*<9ÿ~˜ 4²•šExrúµ;¦»§éî@XZÎÐ3:Sä1Èäºi£ñzáÑÌÛ>,rFyX6oë½Ù`;[S¼º­ŒÃDíf)Ý^Wsݸ¢ÝóŒ.ð 0ym\¶6˜¾»´òµÖóZ¾Âš—®–¢y{_žÌp±Ÿ_Ь»¹.îïïè§5¿àIújÒ†|ˆËÔº£ëñ ß²®á—3üKp5Åu&ã9ø¶<ûëì$¶ÿuendstream +endobj +1299 0 obj<>/XObject<<>>>>>>endobj +1300 0 obj<>stream +x½VÁnã6½ç+¾4 8®í¸vrÈ!A[`Ù¶‰ @.´D[\S¤BRVÕ¯ïRN%Ù=,P hÈyóæÍ>ÌhŠŸ­æt¾¤¬<™N¦´œ-'sZ\¬ðÿ¿NÒ6~X,.&Ë÷>œÏ§ï˜M§o¯ºYŸüüû%ÍV´Þ"ûòbFëœy:¥uvú rIZé?­¿"rA3päÙ|…4ëüt]H5]ÜÞÈVAYCÊ“± I#6Zæ´i)—[Që0¦MHm©µ5åÊówRO·ÖÑF† y™ÕN…öñ…Bš[Š–Q ÷ì• ·¯·[ ª¤ÃáR˜LR»”SÞêƒ2;Ú* ¥ôb°ýXm½g¤Zz/ `v° +q@U;šœ2‘áÔÕ u+ýhLM¡²âX*€kœ$º^ˆ=;_L ùNŠœœh¾Í§ë¢˜MéÄ‘Ð\zµc˜Á‚(&’]*/ó1iÛœi¤ÉÚX2@ªçóº«î¾Þ™ÖzÉ×È×UeXD¯ +ÛHœ™ YN÷¢ÜßKÿÄMõñ2X¡Á + &(7áE";UDÆXVËÄÓgCÞ–ì{$Ë´’&xÊ­ù)P,ÐL/+¶ÔH­#L‘…ZhÝÈ´ ä~ÓkÏ€€,à"–×PV|,qK3kH«pꇨïmRªÚȬö‘ÒlÏXé +"L/%$¸žª’Ʀ3áÈ@wÖí'ô9P™®â"ÆÐ ZM ]Ð(0 YHç{ÅNè"‚ô‹ÎP0zÅÜ°õ±L0|òû:mŽa?$ÔtËÿ£ÔWˆ¿)ÕÁ/ö¶éÐi —`ŸäáÂøaXF½T>©0 +ΰQiŠ_ÇìTÉDXèG›Ãìø‚§1ƒBwQ¡¢÷¬/¹ìÇ ¼ãᯜÌUÆU~h7i¤Y¹Mê~9Ä‚ŒCh·<&t{ƒi(a³9¼tJ) a”:Ÿ`S€O`ŠTÊ‚”‹ 8߬…É´0–|ŽIÁˆ7BEݲÉpœÁÑ> æH8§2 —°hþ•EJë†ÉŸj•í¡ÿ†ãžïŒ9|ª1(Ýo†{.°×w;«¿Ó&ô7–§O>}¯íL$Í~Ö+âí1”Ñ‹‰‹ôE0½xä´<Å5|žã…Ö1 [€!À=ð%ãÀáÍw¯µ@¾°µ†:„ *«µp¸»º¢D3o¯Ø#Ž¶ûˆM‹='<xâGT›®úeýœä õh ‡¶ÛA³£5{(^G€ÑåD,a3I±A清b9¢`ìÜƤ—£e“(mm°ª*™©­âͺ™Èöê_€ìf„mTèF´>!L)@ëlOm3üÅÕ¹p +/†47ïìñ[ P-¦½ª`¬)ì×Qª©[¨)?ûpêàAa™¾º‡Y²g£¼ýž]… êk­ãÁƒ¦Á6ØÚXcvPQÏÿǬ‹[¤‹mW7ïø\ñÓ ÜÆô`aó†GtLc[ð•×ˆè]Ø1rÑ=gK¼L/Îi¹êžd÷×·7×ô§³_yýj³ºÄòŒ/Fyv>/XObject<<>>>>>>endobj +1302 0 obj<>stream +x…VïoÚHýž¿bÄ—¦Rq1PBNê‡4!'¤p(ê]N§Å^c7¶×·»Æpý½YÛù᦭‘YïÎ̾yófþ=òi€?ŸN†4šP ¼Mü7¤ñôÏC|µ¤È½O‡?x1à½_ÖG/Çäû´Žàd2=¡uHp0Ð:8^+’¹Ø¤’ªtßXì$YÊŠoV"Ûª“%õ/îV³‹³%©Â&*'|øÅåÕÙï+J“\’ŠxåýúÛÑ€úþñ®Ãã…x” zÍúpâyýZYxŒ…¥LfJ(E‘ä[J L§* Ù ÆR!süÖRðbzø@"yo®l½uspñôÜ-ª^'XЂ#÷h—Æ];؇¡ïc@L’dÉÀ&À&‰Ü01·g/pÎQ?-ÐçŽß\õÜÝ?^ž’LòŸìQ–lcK"5Šb™¿`À•‚§À±$u{H0ni¦ [¯ÄÁPXºÒuÆTJ;Ї­M2éÑã(ïß$ŽZ€×H©W´gR¹“i·jª$M[* 5¸ªqRe=ú +í¨áv×l…ôî.Ï)ЇÂöZµHjµx¥oVD] d˾~\‘•9©© +¢BÌ2 +@q¤Þâr\ +K +\uqÑ·ÏLgPNîEV@éî!ª2Ž†÷J?nµ* ›Íu8¦œ[vQ²±• êåµ>_rb%yðÚ­¤ÓZÝDC¡ +j‡¡´"I žS!4rR‚ÚÀw'ɱȦ.3UjTË%ßé>ºß6È:Ö¼Ð[r?¿¾¸¹_Íÿœ9šce5û}1»^»%ÉÙF…ÞBÚ²d`©ýÉΘÉÐÚF³ÊX“ãçŒEª„Œ¾R¤ ‰2µ·Á®FÅå‚ÿk±BH£4AAx}³m¬¾®Ö³…7¿ž»@°”ݽ‘×Ñ]s ]f2n4g±b­UþÎÒcq­âC[´mëYHU9òûByIºÜ÷á6€Ïi+Ñ¥Ê n“ý§ºC¶PîDŠb|8ö'£é¸Ë]ã­!›tƒ,êW¾Vu‘\±X××5(]ŽÈ• ‹ ä`˜aÒ,>5‰Ž_TuþÜ3Ú’ µ*yA’ãy4ZØ ‚U¬úNóÔ€|êŸ 휥EmÐ#Jôì°‘ ¦† ¶è°‚ˆÕ œÉl…›Pñ{Ú¨ýó@Ò°]9°`«¡ +Oݤ.Á5:WA¬à> HrDµ<iÄP«ZH芘WyÀԃߵ`D*Ôü&Py¢¿«ÜüÖ ÚrhŽF! ®‡è2eáÉ=¦5žpUUyYhe °¡!⃠+, 4;ìòlîŒ + FñŸ#*m’&6‘Ýú®âDløþ³Š=Wy”lK´‹ÆÁé'V©ùdØ&Æbäjš£ké\M¯ø]ëŠ ƒh‚´n1.@ÓT†Ž-Öw«ålvá ¨#DÕ`2S‘› )—hkp¦ðÝ €·Tgöéªu~£D¤¥ÄÉC—3Ðqܶ÷Ú§»ßvãzܳ×#†ó퉻ßfr!öŸn1…îÜðÚÇØŒ19<ö=bwøù4ÍÞB[ßÚŠÒà­/§ÍÐí1¾OG½›9xu¶ørFK­¾ñxt¡‚’'+7òɾ?Áý“Á);ïN†ãÉÔ›|6‘ù>4[ýqô?Ö5ì…endstream +endobj +1303 0 obj<>/XObject<<>>>>>>endobj +1304 0 obj<>stream +x…V]sÛ6|÷¯¸>9™Z4)êË~óg£i”¨‘:I§îH‚"’`вúë»RŽÍd¦öØCQànwoßN" +ñÑtHñ„Òò$ BŠÇÁˆF³)ž‡ø3’rÿE_àcï‹ëõÉùýˆ¢ˆÖ9o2™Mi6 +CZ§oë?¯§o•Mõ£4„‘òíúëÉ‹“½‰âÏø8ˆâ`ȯ°ìºéî.ä­t2u?]9úqåZ•’ÖšÞ«GIw–½:mü?kôîãrEñðժɫ>ÜÎéF¤[I+õ¯¤ðUü´ Ç4N(Šš“3Jfô¨ŒkDQÿHçä°‡r²´TÊÊ)]!HUþu¦Ó†_’¨2ÿBWX‡ÚoUº¥Rd’e*Ï¥‘U*Éi칄ßáÜ ë[î¤#]ó!6 ¹#×>N7ŽæÄq‰tDé<§½r[þBT‡_ø§Ûõ¹¤( ²F L.WckÉ»¡&#*‹œÎxý”= +£tc±ku1¦´P(ËúºÝ~&†‹k²Ò°Røp½BR#êú@¯T—µp +ûmt‘ÑüöŽ2ÃÜ?¼ù]¢´‚EÄáÃÛ€ÖÀù˜á" +6RXí…B¹6…”+×A¯Úûù—Åß"W›ÆH¤nä%-ÏoÀt!ÿ¶(ŠotI©0Ù%†á`4 +w×ç–Æa8ÛçeÄù{ ^„÷ª/°8jŒð<îžo¿ŒÓ#„—OÃA©†¼Ó­ªäOÄÇ\6u{]ù<‡”Ýl¶A^úÏ2ï–rŠ¾6\=‹ lxŠÐuVÃ@:uö5pE•ÜiCÚ‚–qsµ,Ê·¶ÀKì¶`ÂY>›m“üD}]n‹öè^Úh]öðÁ{—ˆª};f4 Ã_}Æx·‘®Ÿè{­wŒ§pd¬ƒ¹_/„G»œ}_P¢Wh$¶9bÑÔà(³Ü8s²M]kÌ–EÂ¥ö ÿH0ê¼Ëzvk£Nu#@î*‡Ó°½Š¼=;ÚäûÆѦ)©–&×¥`KÛûðDÒ·6Ém6^[¾ìóû Š0urL“AJÿœÞP`èy£ã¶àO ¹´>W5™î¼CoáQÂÓóÂÝxÀ-¶Z#Ê«ÅMïÈ»¨ ¢ ÍWW Á’d+ Ïm…éÇŠÏÉ5¾秨%ãA²=2Á2hôOéãgUezßÝ;îïÅj}³üX¦‰–…•*ŸD Øs èl#Ï!÷$Shƒië'tï¼LYCÒ(±ß}s/m8ö& ¨Ìw#ÍÀûfKzªëêk£GGïrÊz@ÿàîÅÑ­{»lAëŸù1ç®2Vžq¨‘ÞC íÚFÅ nÛR˜_€ÇºÙãñh8ɵ®Om0E- ³½ÆÚ.¨¸‹'‰ +|úÀŒgNðôa}æsÝ_І[åqY ¡öâÐJÝûFÛ=­:s]­ëQÐOÐÃ7‡7<½Kùð–kˤûú¨&ð *ÍØPÁ¢DC\ q€¯ÌO±Èx*²Éç™opž™8Ptn3ën»ÑWäYLc\˜ý¥uuµ¸¾¢¥Ñ_ý}µ3 \PtÅ™£Ûƒixá/¹¯>/XObject<<>>>>/Annots 792 0 R>>endobj +1306 0 obj<>stream +x¥WÛn7}÷W ôbVÖź䥰]»_)q +¸+JbÌ%7K®½ôÛ{†\I¶( +C‚vÉáÌœ9s†þvÔ¡3üuhØ¥Þ€²üè,9£AoŒïþhˆï.>¥¤/`ëîëÃoGq2¦óÑ QNçã¤W?hš†cúƒŒsê ±xé|” ëÇœF]Xï×Ø{¿ßI0ëàäNý´;²×áýo#ëž÷`ÐëñQ9õ‡Ýä¼~Úš!¸ò¹œµoÆÔ=£Ù †#šÍC‚x“LEž +fNÖ¯dIW“›)eZIãÝéì+lûÔéDÛVw”ta}2[)GÙJ™5^(ƒÁªå +™©…ÊH™…-sá•5I]S‹œ”|쵺ƒèw¶’òÒyRžÄ’ðô¨Ìܮϛ»ßw³€Ž 8!!ä›H*UZù )ç*ŽëÂð#¯rIvAëRye–ÍÚk§ ᬅ#á Q:@Cä,épb2ü<#oã;ªŠ¹ð.H¼¥Eª‘.hQJIˆÔh+æx²yp¾Åf-Ó¿NᜧŽå.qdCù +%°t”JihYJáõ†¤Y “Éy3¤Kt‡À'­–­…úe2]Íåüé4”÷¸Ä0éÛZœZmì×6¯òBË$ ôpÏEW3¡Ÿ‰QvøMψ2,¼›|¦\d+#]ˆé0ÅÚ ·ð…å²Ì°ØÐu’ŠÒΫÌB­ÁŸ­ì²2Ø:PGe™Û¡(ÁËý«˜ pñöÀñžÁ@lkåWà'‰ù$°A¸ª(lé¡0ß*U2þ&Tlg뿃{€?ðz'ÀŠå¹ºxHèqVÅ~¶‹B¡ÛéŽÆul¨#ã ²g±D¢ac€@€Ò €øqë"ÆŸo›ÑW à½2Õw0l/$\¯V*’uçeîžN_õá¶#VÞïÚíõz€w.AåÚšû‚ZY+“¬|®9V±äã~Ú¥Øú»-ºVï,ÊÆï¨t& MX©jY÷Óv—EYЕ5Ffžùþe?¶Y4¦ãžP¢òÏ„Š/"„,Z¢í„qkô@ö,›ß ÌŠSŠ‰c+_C5™(­N¸Kª‘Ýþ[KY­ÛAÚk 9ì¹Ká‹Þ¦xm¸ËýŠ…‚#A@Ðßq˜¯Un˜ú\·‡ÀøZHŸNŽ'—·ô eyütÁÍêIÐ&#¨Hö©;R\ÝΉ°ØÚÖwvõО<€Çâ ÑS±þß±P²zàrr?%Ë‚5h^BuJvˆ7—×'ÿѹÎxу°BÌCÇ.T‰AÁêíR²,Æ~Ç/b¶“- [¬ý5í¹´‚R-Ìóö X ¿35RQ ˜Œ[–ÕÃ"¦:¡É"R•%ZhÈó|¥šgVsM¨²eÙ׺ÕË!lྶ%ÄaEø›I൯©Ôh€HuêAu}@ƒlú•[¦Ž¼1 íÁë«¢ÍcåÐÂÁ- 1ÖÓ\º¬T鞈E é× +H¡ˆã:kPŸÃDæ6«v&¡©àÛ‡Ù4¹þ|ÝäëFöÌŹÿãÕCzPkÄû‹‡i#xÜmmpK°L`vw= D¼ÿtýaGDÄvüPZo3«Ý1 <’ã8y wxá&µt|U•%”Õ(xS6±Ø egÓÃûÄ>²+Lë¥$Så©,cØ˜Ï ŠŒN¸#ÔW è6ŠÄh«ˆÁßaÍÀ;fuœ(<eùtÂ*^ Øa‚–¤-t´JA²(>,·¶ˆ³U $h€y=[ñ¢”Î…Ä>Üaí¢7ÀÄ¢ÉLß+çM–êxÇÄÉô8¹›†){~+ Á „|Ì$ằÄ}¸¹Â¥¯Ì•±Ú.7û›ËV®x¾™ |GÈî›AOíþÖ…ëû_WöbÉ1§PÒ%È8~H·$ ŠæÁò“Vïs©C7.of31u1&@‘‚'¡8í›Ñþ2>¿F!»Ÿßàù¿ŽÁy7êu§¸{=;úóèZß bendstream +endobj +1307 0 obj<>/XObject<<>>>>/Annots 801 0 R>>endobj +1308 0 obj<>stream +x­WÛnÛF}×W üR–"u±À(ìDnÄŠk©1Šº(VäJbBrY.iE/ýöžÙ]Z²£}h0¼ìÎœ9sffõW'¤>þ†tÑ`LqÞé‹>Þ<_îâ74ŽÆ¸æ ÏDäŸ2šw¢ñDŒŸ¿Çcqvðµ/&Øj/Õš Óhp.BNÎp?ã¶R´ê„ý·£~àç<#ÿÄ~ö€ì·4<ï‹so)‚5gh8ÄaÄNrŒÎÄÀ?yC48¾ßÆÈÂÁ^²g{W‹Np}Ná+P5žà&± õiŸþ¬·Ë‚n(ÖÅ*]7ñiDô «’ôxZèšÞé¢Pqýø¦ë>†"êRdº¢H|£•®Þ,¾túÔ Çb§s™/åü2¸R:ï½èŒ?þ¦ë´1Šê è«”¢Û4®´Ñ«š>^ÎèVr­ØzÓ»,UEÍ^œûU¥óÖßlÁäª.ß®"oíˆXçÁUcæ;8 &€éÛË™ø4AsxÝÔvc,+‰mZÑNý¿¿â4Àãµ¼xwÜÜ¡Éø«ëÛÏçÑ—*„7wˆåÍ íUÏQJp¸{"dÂc¥-`WÉ +„â2´A§Ï4¦ ¦0Æ31ñ¥Žñ£d2À!?Æ#q~y{u‰Ù®y:Ñ{79ŽÒö°Êqá¼î¶ôÎú8&ÿßï7Üìøò¯¬Q„DÁAØñtÑù¥ó¾Z,Hendstream +endobj +1309 0 obj<>/XObject<<>>>>/Annots 804 0 R>>endobj +1310 0 obj<>stream +x•W[oÚH~ϯ8êK©Ìý’Jû©¢&„ºR¤Õ`aÛãõŒüûýÎØ&)aVQÛ3çþïœþsÑ¢&~Z4hS§O~|ÑôšÔow¼.u‡<·ñ/“ºƒî íõÏtݳPî5Ë_óo­nßP§Õö†S»Ùòâ-¢…³Ð^áìœi¾{òýfyѸíR«EËQô‡ZÎb“–~íAù™6:´´ADRHH%~&c™XQžn2H²šìVªŒ–£YãnFvýFYzÚ)ÈÔ«ÌŒGË­¤HXil¥Ž|¨[Ë/Ë_Mª·:^.ÔB'é¤ÔÚ”Œ²’„%<{qå˜çëø’"íCg¯¨‘ÊL§æ`;•zgi¾Ž”ß°~ªÒÆ.ÜÙNÛ“{é|A]”91 wò4€>ÏîaMEˆl+qÓna=ÆÏÔZþHi¦×‘Œùg;¾ª½ <šÊ“5œª(GzVwÓÅãè»7¾¿¿<1¹œÜO'KoòsrI+w©3ì_ÒÓôf鹧Õ9-—óëÑd^^†Ôby]¾ˆ$8Ñ ùêØã£ÆíµºE­ë ŠTQVdÖKwQé±­Ì(Æìt¿ÉÆè=VêmÆJm®6häC  ¹9Ð/½¦²Û£”ýšQO—%âµÐIñáx‹‹-!ËœÙsÜXŒ5Äâð.—.û܈ñí…Æ (7%6uÕ_’|•èÚB«å#t¦ ¸pœNä©/€CBΔ‹Ñjt}t µI4/ŽVœƒt:+ç"Å"Ò®ãão¤“Pmrh‚‰7]]!onß8ªÄÝÒµ$’ó™Å TO1.Üp‹—üÂHe^è¹æþ Ÿ¿V·+êx @w`¤€¢ÄpŒ‡=¤§ä4ù9»žŽéúëóóõøán:ºý†Þý›Fø€.?®¿L˜öŽ  N k(UÂyñi†D|R‹‘ˆÌ>Ñ'°É'zIÎPEÐUÈ\0-(¶™Žh«wÄq¹ ÈЈJr ¤ubkVuûHø®¤õ—À“k碽rVÔÈH?Ï”=Ð ¹¬8>C/#ŒŒÂndýèM!ò¡²«‚·ñ•Î^6™ÎSN³ûPV2oåïZ"— Y4%WÌÍ!|ÉЃý`&9=?nXo*0c¾v«óÍÖ£ÑVú/®@&^cÔ$ás­ì¨6ca*©“ÓÌT¶(BÓE¿GYcïL*}hÇCL˜ œp:‡Œˆ×‚ \A·ÚìÀ’Ç$@ˆòÙ?¤õ­¹ÀÉ<ÈënÁ#U2?_õŸ¯†¿;Ã|3ÀÖÁ4ÎêrÃ%ªD®zô8y Å¼í2êŠÈŠéˆÎCÚÁ :Æ`úÂ%|Y8·ÑµdmÀFPJ5Ügn éãrÕȳ2Ø™/ç‚ã†àgG*:ñÝ”*ë[ëk ·Ëf}³S‘hÁìfÌ©$a²à:C¼Ä ŽðŸÝ÷è/lY(³ ŸK8½íB+¹.–nbt 'õÝꂶȠ)^…Š¸×ÞLk'+ |â­È¡(|—w—/,“Çið]f‰Œè‡[K¾Ò÷ùôþÇlÌûÛ®ƒ½°®µ–GüŽ×ã5ãܪýWšÝM¿jšcV¶ð<_ž“ë|”+÷¾JôénvN°ûQp.«Y|´û4ÏÏI÷ +éz»÷–žëÈèKn€ô˜Û{­_Ü2¼³©ÌÕµ¬¨1÷x?)m`¦îKnÅ“›²Æê´¨Vì(ñ”1ÃLÇLlN±ƒ˜=F%÷¸Ji×ü¬‚;•S<¥«Q.à:¯ +øF³c¤ªPa#¶ äé ¸\Û ß—Æõj"-V´ÌqµÙ®u¶Õ0ÊÄ}¦d…aIÙ­>þ72ìP¿×+vìÅõÃÍ5aòüâ6k?w =wC«R >h^ýÏE±Ûzý^»„e«Ëú&Ë‹?/þ¦bendstream +endobj +1311 0 obj<>/XObject<<>>>>/Annots 807 0 R>>endobj +1312 0 obj<>stream +x…V]Sã6}ϯ¸³/ 3ÁÄ&_ì ,-3» Ûd¦M[ÁZlɵl(ýõ=W’xËB†€eݯsÏ=Ò߃˜ÆøÄ4OètFi9Gc¬¾~ÿu0IâhFÓ©¤É|-ÂSAkì_,°¿ûªïؘ&É4Ši²˜ãÿÙ<šS-iß÷ö&“Itö&Øï¶^l'WgÏi³G‚³EL›Ìå5¦M:üCéÌ&ñj/p)Ëb!í&—äŒh×6î)ì +Y¢à¢ BÝKÔdÒ´­IíI5ìP›& +>“Y4áb®5™:ó儵Ø6‚vßpõ³Â¶CÜ“©Ð€Æ‡èvu¹=ý/Œe ðrñ }_§¡¯CÒ ‰´ ÛV•©:GÚ~K×ú!‰,“§Ä@0ðdsî¿ognÐSRmDÉÉt5EtÍè PÔrÔÆÚYw½òd¼MB'=Ä©)«-$±3h¿“®p´s=ç(„§ípéWR+™mz‘…Î(­¥h$•mѨ +žRS)Tƒ®£‰FS¦ì=­n¾,¯¿FÌ>Ìt<¢× Ɉd“FQ´=Š0GHhØr¥Fï·Ãé¡K¡©w€ÓÔT€™ÉF¨‘ ÀeªF0vYXÃå²OÐŽÞÁ~ó*Q‹R6àÜ£°®L0Aw…Ù‰¢Éón@]ËB +îmU+¤ Ý€Rñ'XvÔÞ07LQ˜Gî -†“DÅQœÌo)VÄÂÈå;ÊM_H ÷èG?bÀ6ØA¡Ö¨cW1ˆ¢ƒ ¥Ç…ÚRUWöHäl¢’Œ_èmtþ’r‰4m#æàœ7_W!=¬ðø˜Ú…¿ª‹Žs.ømÝÉ”I‚žXË·U²×Á{×pdÚæbpÂÜ·)>Ò‡+$MjHCpZ¥jÒÜûu°N›µ^S@{oËàjùît—ëëntM v– -J¥yaº•„Db„ÈWÈ“›e*_d¡6¥ã‰J©Ü¦ÐYšþÄ}OÕ–û"ɉ–’rtµjÓ5ª°MrסšuK(Wf‹ -8œK—€Lm$òÇPë Ћ¸dŒŽ–…„.)Ö¢J24W/Eq¡³êJÖ -m¦U½ÎNà¶@÷ÚK€ üm´²*QÅï®|éx WrKËÎÁJ“ˆCnkî̬¯S ò3¬™$yÅÊEçB|y4O&ò…‚Uœ®eù*Ê R(bõ"¤Ð>'~²¿îî¾p숶#òGìjrÊáÞK¨TËM!$¿¹¡,în!Õ·I4š»CGwÇ8gi—Ü»´´&´i|JhðÝúòÊEõºF€» F“ÚV°ïˆÇ¨{ þÄžÔ•2ÖDµ#½kªQ hѶÏrwÚ¿ûw&Fs4­ö÷C.,×PÍÎXY^8‡}ÊWƒm#Fªï+àKÉú.º%F9f²£²ã“Ú^4­ -è! íZ%ש×d{½àéQrã“in=ø¬‘î÷2G9‡¸]­–Áå[ ýPƒO56¹¿ÜÀ•´CN…¸@kÛ·[®ºÑá¾Í­n€BŒOLzGä[À÷õØÚ£§[Û1tŒºàÊ„)û{]¨XÿðåÞæèæ¸4ûÔ5LpÞY$M¡\6WŒ£8¸n‚cƒû«ÃN\¦ÜUñÇþ™˜Ì&álzå/x—îúyÑû£÷C}÷`endstream -endobj -1128 0 obj<>/XObject<<>>>>/Annots 570 0 R>>endobj -1129 0 obj<>stream -xµW]oÛ6}ϯ¸ËKÝ!Qlù3Š!ËP`I»ÅE1,{ %Úf#‰*IÅÑ¿ß¹¤äØrÖîehêD&y?Î=÷ðêëÑ€úø7 iLà %ùQ?êãþðÇ¿MGQL“Ù$êSNƒQû”ÑýÑî3VÇÃhÔìõ«ã8šÒ¤?‰f|ö|7O~uç9§x2Ú_Lpv<™ÂÎNΣqóäÏî<ãì`¼ÝË«»ÏXÙo°Ä«ÈŽ†Ã!>G³)>cü7’–~alg!îÅp„0¦áÁûzyäµóýµí#Ö¦çÑðåÜåüèìfDƒÍ—(Ád6¥yê‘ïÓ<éÝÉgGÉZ+In-éíüK·6fEg7qc¡GmWFW%½Ûßì«é7·îz”©B’*¼é¿V™^ˆìo²2qJãK ¢ä”‹š6¢ð! gŒiŒÏˆÛ8$-¹ÇHW8‹ÜwÃ-˜i¬‰\«W è²æ"C/©'ÉÜQKšËæ‹´!$Ž zQÊÍ“³°k(Úò:´ä.ÖH1Á; ì‡{²ÅÂ7·¼_Húw9äÏß  -¬¢ë×:=¡ÍZ¡<è‹bb¤U"SÆ:p‚MÐCY¦7-_šLä3H8oËr”KYes|%\'K4iª¥hÎ)ç$Z”(ÖY¨£dÑ¢ŸßßÝS*œXÀÖŸ °T õ+lvºãsY°b‘´®[ð­Li0.¨OH>´A0ð·‚”1Ëj/QI¦ I^Ÿr…à* Ímƒ‚øWF¹ú‡PsàBâ›é÷žWý®þ¶eØúg¤ÄÇ} -<ä«`MXönEQS)u™É äÂ>¢fF®„I9 _½ä®ó©¼A •!&¢úª’w v`}è¾Å©ÕÚ–1ß@b×0Ä*âÔ3_ XÂkÇfS-]JƒÎAˆp›«gD‚‡vcy–­×övœƒˆ„©@R´Ó@£§Òm¤ wn¢LRå(^‘€8L=@ñµR8(èØ{9öÆ9Íø‘ © 9t÷ -ö«p‘Ñi›êZCmÁ^Èn”KÖˆÙ‡@ƒ±ˆ.^3~@K^h“BÊ”;kÙ¢Ý!+:ϙ»|noÛ\ÁpD—,9KQe]ù’ðÜ /ˆºu,í¶*KmRºË÷î=wóßnŸžÙ;=Ã@£”x•ÔÔRÞr%Pô–3çÏ ÂL×rzíÇ•î}íU¢©MîûÇ“§µüX¸Ë¥WAÖÉÒ†`SÏw±«˜|ñ˜š 6MAx2ÚbéƒÓAŒy<`B¶6 -jÉ6á&̶  h(°|Ndé‡>”ÜÓ߇M+VÒÓÒèœG–zׂbà ‘e&Xvu‡ÞÂFIŒk×`tâ4îÖO]_鼬pÙcº½½Â˜s«£­^: -fì*¬Î$&Ÿ2« VÔ³›×uiÑçuæL$‚Nãéù<Ôz]£wM§ÿnwi4êª2®ùm*°= ª6òŠû x〈”þÖóÐ`4õ†9z …Ê4nZúT¨ç—¡ˆA¯97 ÔÁÌÏ#<Ï`ìh,ù‰2Tv{ »¯:² ‘Ov‡UŒ_ˆ0ÝOµ×8`Åñã‹i´yv¢ -)‡N8j’%ÁŸ‡Ðˆnž ‹—Ý\¡m>H`ÈÔð ,U&m¦È›Ü lMVå*¨dšuÆãvUSW–`÷þ›+^xz‡Åßßؾõx¢àä‚鮲Կ2 `¼Q­ÖxÀrÖ¼ ðbÚŸ ñÞ6æëíþâöò‚>ýtÇeqG¡qmè‚϶ÛO§1^ïÒÞ½KGxûžNf¸†qh>/XObject<<>>>>/Annots 577 0 R>>endobj -1131 0 obj<>stream -x}VMoã6½ûWÌÑù3¶S ‡d½)t³éÆ‹ôÐ -Q67©%);é¯ïR¶e)‚Ø–HÎÇ›7oø³7¦þÆ´˜ÐtNiÙ%#¼á1|û½·¸IÆ4ŸÍ“•4žŒðŸ -z±:[$×­Õé|žŒh:¹Iæ8;›La)>ñYx¡é8ÚðÁøÀK­Gœ›&‹ÖZ뱤å8¹i­µÍx¿g£ÁßhŽw³å¾'ø·’òÞݺ7¼Ÿa?­s 1_.hF´Nû¢ö;©½J…WFãÈÏZ:OÞ ¥3spô¸&'í^ZRš°œ(%Ä; ×ÚvsMÆžÝ,›C¿¬ôFt5ž&xîL]dIórÂáåS!…“ðžÃ |ÃIØqY/»¥>Ûß .ªD%íå¦PÙ°)G J㳌i!3AîÝyY†Ôjox%EÁI8µÕôýñá/ªU†”`~Ë?¼éßBd €£2Í kêÊ%´Þ)G©É$á[ì…*ĦÀƒ¦LîeaªxÓÆ -î¤#£9 \KÃkƒŽÓMíé Š‚6¼c/3NÁÊÙÉŽ3Fwa]æÈöB{±•|* A_Ê“ÖVùwŽÓïš:|à¨?:S8ŠVt¢n¦oOŸ(Ý ­á6å›H=ò¾ SˆAèÝWà€”op-¥ÐŽžE¹A=']ǯ6p⸪>âKåm f¸À ·S•û0–å»ÿ»¯™ èÝÔ”"B‘e1†Žï&"X ýc¥3µMeaàÕNìQ ®Ëeã5`‚¨¹5%ØÚ=ü´ú¨«;>Ešš„Še"lë²à!¬¸¿ ’ß±…áýu£ ý3~kµìY4úºØ÷õLÈQÆŽŠª°ƒ áW)+žT9 jb* jœÛù¬íìõ¶qKܶ°U¼b›LÊÆ_!œ?5JYî>²åïˆw"ù¢RkœÉ}²SqCERÃ8P[#3´›É[{v€^þ¿X…ðQtûÚ™c8övBŠY²nðиšÃ;>ˆDt-p–Î Ô†ùv&TdKÓ ¤˜1S±ÿŽçsv]B`+Ô€9w^?QÒuv ÁÌ•f5…CÔg›ê„QQrã‡Ò^´w+b>Á9—±É£¸ÐÌ\ÿ†Þ>‚[Y±æD[ h+=sI­&•ñ¸Ë¯=%\î"ϫh¯PP“w ¶AôÏÖ7x½åvôiB·ÐmÏ¡í(¨9ЂTÅH‘:Ä]¾y©3¨eƒ]^û3<ªIÇwɆ“j† -O!ȹErÐUl$ªªP˜2<52™t DÂOÒ}†}ô]«·fŒ§Ì‰W>Ï1â°u+QVÙhãbvãÛ‰7*·ékÔ9ÞÀ,;0CES¡®¤·ê,³•â•é".« uGâUQc…¯®'À1®G©÷ÊÍC,<ÊÍMPá‰ÝÉô4R‡÷óÓêêxgyüºþü+Ÿh+å¦P$+yÔ3þFù3“Öað l¹²àSUoÀ«Ý¹Þ/rƒä¶â¥?¼þü¡týöbl‘…`O¤óÝ''æ Àâ;­ûØÊ„ÞCž‡ t¨ïÆCãï— ã9®šË)ÍF\>/XObject<<>>>>>>endobj -1133 0 obj<>stream -x¥WMoÛF½ûW rrP[±dÙrzK‚0Ð8n­ =ä²"—âÖä.Ã%Å(¿¾ïí’M-ÚÂ6l“»óñæÍ›Ñד¹\àk.«…\^KRž\Ì.äj~5[Êòf…¿ø©µdáÅâb1»ž¾x»>yõþµ,.dÁÖõêFÖ©ÀΞ$§ïrU5º–ù|&Ÿ¬ÉŒNåW·uÖËF7ÖV>›ºÎËÝúåúÏ“ 9_,aâTÙT>ÝÝþ!­7vËSäú›¯¢¿óËålÁãpo6¾©UÒÄcK¸í-VÇnm£·µjŒ³â²è€ž>˜¤vÞeÍ(iòÚµÛ\”´}èC—\1z„ž “êI)y‘»b/0nŠ}&óËœÁ ÜV[íZ‹eÕ6ÌKÛ©-µm¼d®†¡ÂáycJ=“ÏZªZ{¼Œ]÷J7ÆcHôô ×iÛY\a‚M®åA•5‰È·¦ÑÍg7….VtŽÒhÞ -e2e…wp;€;ñxDø÷ûw’¨¢ðgr_´Û­‚QyÓ"TÛ˜$^ÿàÒ¶Ð8Áâ0‰;U"]ïL‚ßi’œAÂŒëF5›8M]©>â¬}8^UZcu•4óîiÆ3H½Ï§TIn,j°Î—JḤÚ'µÙ i†4*X;ÔÚï}£Ë3Ñߪ¾YcÎZ›YU˜f/¦!ð;p)æÈà|Ê̶Ÿbâý›ÎÕ^ ¨[ã~±ŸE2<í‚Ð4è‚ÅL@òøñè@v×Ð Ác§‹B­ëPò\5ÿйÚiIM–òàWéR]DÖÖºç)ó%ÜÄxRŒ-º©B`y«Ì:àðÈd£“Ü:´™Èl‡­z Á¾P ]±T©&| Ë$mÑ ÎÇDŽM¯C%šÎI,1%錧=Wï¥TÖê: L°®!…V³¯JÐãÐ"‘Wð–ªýQÀɤÖô…â>£`bÁÞ*pIײÙakã°ì |Žú,Hã„®–ç}ŒzjIfÐX¼SÕ€@PvÏQyih É øÓDÐ2YíJAdš¸»Nït ’¢ýÓ”¥¡°AQ‹ý6$è5³Ímè(ú–TŽI’ÜaØÐR¨Q­RÞ£RœÇÛZm 7`«]n ‰²Rh…›,®M ÜÖ|,ëeëIÞÏþ%#ήÄB:$dÈm€làt:5lçPͪf¸üp@Q(³µÖâK46ºfˆõgˆ™|dà¦éÕd ÅÝúÐh˜:“ÖâõWï“~\œ¯f7œõ`ò—ÅõJâÛAÂ˃~…uxóÿÝð}_GIre·ä áü?öÏ7³ùë#F·©¦¼ÉHäG.UZbºpÝn¡ °ŽpÖ ,‰-H?An4bÇ¢9êèa†õÏåàP÷Ay ãhò­¢œŒv…‰<‚ -@0úvÃߎ°KlFàw>¹ïGåSÚŽfÙp0ºê:s±«×] -¼Ú†EE6¡Î® àG Þ¸o”¨P@!k‹b|©Ë PDv -;«Äc&-“†»¾S,`DzÓhgÀ(€ú¶ÄÇÚ@FMk/F+Ɖ;ñ;ÚRŽWÁun@Ì€Xâ‰IP R¹²åºD*qŠ3ÿã»Û‡Ÿ1ON’ ¸K¿çÎbŠwÕ©’La[å †Å`ž¼ä¨@¶{²‹»&'c‹!& ϧq/cB‘§Ì¤pî«öpÌ°I” T?Îس`âk«1ÉâN 0uljrûÇçPAß±/ù=t´#~Xé7H‘N× -F#›É[(w lŽˆÃÊ÷ègIy.ú†ÖNòåtgTˆýîá!l 1ì°ŒOÆÖÅÕ˜eeï¤0›ZÕû//ñ?pÇpÄ€ ˱ã™#-F¹â(›#[£¶Ðë+LXÛô½ysüô´¼šñcÝ¿û4Þ“– ÷MÊl–«ålu}'ÒÕý²>ùíä/ªÌøendstream -endobj -1134 0 obj<>/XObject<<>>>>>>endobj -1135 0 obj<>stream -x…WÁrÛ6½û+vrRflY’eY=*q3ÍÁŽ+“| ˆDL @ŠU¾¾o’’iw:Iœ„"°»oß{»úu6§~ÍéfAW+J˳ÙtF×Wsü\®oðs?NÑ.|pµžMo}°X]O—o}°^¿>ða{vùiIó9mw¾ZßÐVÏf´M'ß¼rž¬¡:Wôíþó*Ešk£(á¡¡Æ+ºßò_Ž„‘”9ÛTdD©< ÏÔÚ¦áÍwFÔz¯ÞÅËÂ[Ó÷ÛŸg3º˜_!½­œlù_Ÿæ¶5´Ónò7‰:^'>R’’Ç–¶:dÂÉ:R{e¨°žÕ|n”:gé3 -+bJ?.¾k#mK^y¯Q9j§út+ Ó@Ål²×¶ñ„ã:E•5¤Œû<#í)QÚdŒCø_(èMÜjñ¬BÞ;ëÊQž·_î6ŸïŸž†ƒýƒü”¶9á·Q)*îÀèšDQØÖÙ©jåJnfÈÄ)©Jcâ–Ä(nrjMílQ ÛÒ -S£¤ *áj6…pß>ƒŒt›ë4§Ú5žßìn°pj§œ2©’c\7RjÎy·´+g÷Z2µÐ™­5Á÷:íŠÉ‘·¢ëÿCÑd™H -E›‡F5ÞYÙ0Ûž&›»§÷äHºduqÇ1÷Z ð#ñ¦0ÂiR†ãIUUt)úØQÐTT"Ñ…®`y±Gxf,âxIv‡,Lš;kôofO%¼o­“̦ºU`zÌÑÀ‘û|òKÅ×½¯zŠ0)láÓ¤“ú«f?½ý¹üôÍA{öŠ 8SPÀ|>½šÎQ›p™ªé”Ã%žúÊÅ‚}er"…:¼ÌøÔl&P]h#WG¹Ø£Cêík.'‚…Ó3Èìœð UZ7¨1tº£ücq«=(ˆ.6H] >ûº ò2wàtÓg­ŒA2Ü XÜ(GVOUØC¸níôòV×¹EXÄe öªšýJ ,4#jTš¦¶15Ê8­ªs攨a0^— ÒNG†Œ‚ - %+\%‹rr%$ó'fÊÑ_×p Žèž–ùJ‘Æ èšw*¶¥&VD¾UèW `D¹‰ /Xi -É:Áuèü.惩Ø÷¡û™°a…O"=z9òp.S9dÚ ‡,ÝéÔYowuǵpc(´Y;À‹0Ò“|G°ö¼%œ!XŠÊd(Ù³T‡´# ùQ$éQ2`”ÌrÌrJaÌô’øιqð‘l¦«~È´ÝéL  -ÔA™ «”ð^F:ã1fu~@!SÚ@çà&Ÿb¨ënòO€J˜Ròe -’B•(µµ” žŒj|ÐÍN•Þ¦Ï°€VÀº‹ç‚S¿%ôD8r2­YRÃ'lR™2Š¥f:Cxÿø: /õ$É#@²Mò˜Ã1Ïq0 x^ôô9ÑÀ!7–·ð=—LV”*q¬¯˜¡{ʧN'xÔÆ”º1> }×ìGÖ}nPö'(Ù¢>"³·:Ìýý¹.ð4Qé „óç¤vÀà?LØíÑhåXvØ}öÂ…•ãQ”‰ -8J¥*ÞÙPœT©•ªi¢ð,T¬K‘Ãÿ“7&âÝãׇÃLì¬éÈÅ€(÷»´¨ Û(¦SEè°­¸ÕPÐq†AXº<Û|·a²ÔÒ¢‘Ì#±,…Yh×9w;Ç‹a΄Eìl¡²¶À=Ð@Ánœå¸ eªuÞc >°’²¼aŠkð,2(þÁé’·ªÛ¸t~ö¡Qh췌׮1a§aƒP¡Yç¼’ålˆVÛƒV…Ý%Vb“ÜQè\tU^…{e€£ W«,&í˜ê½Ÿß·žBï°Sƒ€\œ2MÄÖS3ê),‘ñŸxÑ&aPE 9 2@1ªV$<äxõÅzÖÀÞã•H7Þ8¥/€Ó½Èä´0†üØÌ𢳔cnµMsa²0^Üqå™Ò‡ÅMÝ…'¸SH°ÓŠ¡-Á˜øâà!ñ Fo_Ûù२ƞ¼i{:±ûcø€2ÂŒÝ}üžsùiÝYî|…¯të+Z-ðÝKN7w6ì?y~ÞÚ-šÀ*áª/ú×/n3~ÿ?–®åÍrz³Zc=Ã;×+>úçöìï³amÇ…endstream -endobj -1136 0 obj<>/XObject<<>>>>>>endobj -1137 0 obj<>stream -x•XMoÛF½ûW |r›¶dÇrrsœÈÁ®[)hoÅŠ\J“\fwiUýõ}3»”(ÊAPAjw>ß¼yÔ÷“ ]áÏ„fSº¾¥¼>¹Ê®hz{ÝÐÍÝŒ?ã¯ÓTž|\œ\~~O“Z”¸r{‡áøÕ-ò³É$»É¦=©ZÓ\»W“ãß ùú—Å7\½¡É$^½˜Îpõl±Öo>'ëèi>?'ãIQ©Uè@X«ÀOZ§½nð±¡Z5[úúôå/²­v*˜fE~냮}F_©ª²ÏÞ¯èbrMÙk<€ë¥u5î؆|—¯IyZ[„ïÏaÚT¸o”×¢)¨óÚ\ -––•ñ¶zÕ•ÎÖT˜²ÔÑ}ÚÎåA}FjúU·•>Gn>À´ªl£cë^ðL‚ªÕ¶·ž’:p/þ`A;ƒmIe¥ÆnKSá;¬C€È3 à•ÍUEòT*£{jt`Ï84 4ΣŽ%m!å”ïR–øÎ.ªˆÊmã» -fééËœ -Ôe&ôã¸Êx¦èÓÓœ}EøPߦ‘ÇAG³ôÕô0î‘6Ÿ“jÛÊä±¾­³+§êšAcš ]©ØÚ˜fi8^»Ç[ðº*&¨ºô“«ÑôãHhÃǪ±'A+cIp&5Y9ÛµÀÆŸÉ'¾õ( ¾ +oàÈ¡]eš…ŠM@>=-úºuž½?Îÿx~  ‚N;šI›AR*Ïm‡ÓMWË\Ù¦¯h?E_Å^į+bZ•Y:å¶Ñ>¦¨ÎU³³Â#¬¥Ãq¢bÞŒKï×*_# r]Ó ÚQŽ}KF^K§Ž€ªÜP[uìkKÁu …¢Ž&†µíVkiKÌl n͘1ØcjÒ¸j©%kÛgãh LAaÌW|åò3(VÈïìR‡ü²ñ^ˆ1Ã(”ñ@ÏŽgC&ÕdˆØZ½0Mß;± vT¢ÂâÛÊÚ—®•Z?Pß~ÈxúßÑH&0Ê}Ù¬ xœ™¯¡ZÀÅ4¶­7-…ª‹s1”¨O‚;mªPœAÁÐ×€›ÁË@ŠOib¤U–ɪk3ZðœpÍ/²ouÎüC7Ì»5èY@XS¶ -s §á‰ª`Z`ÕB¦5Ûðæ±®Ð[¥”àcìɱTgÔ -ã?ľ¾l½ÄFñò‡HÂý:8DöUÏ]B™<9ûnnLÅ8cj®¬BœTÛ¢«xܪ -qG[{È—ø Ôý-ÄŸyAÎ~%Ÿ¡;¼+qw‰a³hðÐÐ`‰²¹Þdjê±QîÎQØÅ}WÕ6¯1õ̤ðŠ%ý -T±õ1˜=>Ì‘ ü§5„}Ð59¯K´Ø€3ãŽë€âøh°¶8µ„ÉŒ~kºû'<­»}ÎÏw?òα1‡ˆà]Æ®ð¿Á¸öŒÙ÷Q*œ°[6‰y¦±Û¶¤•aïó–ë×,¯1½¼ ¢±ÖÁÈÖ3û(^º`6F~°ÑvaŒŽD±Ç|‹9;êâ eEA§ÉÔi ;žÛògÅ1J!×YЭ -ÌŽmý&À$†Ì°‚½lFÙñy¤iÔPÙ^\CʲlI{ÑsÕ­Vj‰»ïØ|è5Ä£Œì‹ý0ñ슾ýÙ5lõÊ[ziìUóô|ÿ˜4oÒ¨ µôÁ)`ë[zG£*ñëÌ¿Qá¯[ÙåE€Èe'=[˜¨§­÷†s4„.Ëí^ÇŽ]Ö1D6r½“¾½4ŒBN Ü­Õ+'WNç¶n!P4üáqTQ­Rô¬ìÀwG.wt.µ¡V94¦«”£ÖBæÅ1:(ɱ ÈB.4´26ܪüÙÍ(O¯QsYA"sU;8(J_¡z¬ázZ¢{ÃI½ì')ú¡&ùFÙà–‡Ñ²æ™HÒ}L6=y ²HS#èàÍI­d -ÃîÂ<—ì¨ -®YB1=Š -¾z± !L•ôKDrÚÓRO?T§ñÂ>/|‰AÖåØå ^Ó+h=~MÁ‹œÁ˺óœDÙ§¨¢6«xƒ/nÑ1ËSÁX¾VÍJ h€&hKÇñ„À|ŒEGºQF¯}yÀØÕÀIïZ?Ž"•°ß îQÇàeWÖpÜŒm<ßI˸ÑùèÌbm°±±ÂlUGüÌ„2Ø·½ôbˆ1.¯Iä3b€^¢n‡dÔ‹RT¦Vx§€Žàâ^¸®œhnñuš’‡–°Tä"êU‘±\êAþÌ…Æë&–%)¤Ù`Ý‹âiÆÝš¿àឯÆÊÝ%‰6¹Åïw×øeã=³ÿüþñã=d¿qo?Ù/CI:ò½‹þøÅlŠ@Ò¶øñ 7³›lv{‡_NpöÝŒMüº8ùýä?ÒïÎóendstream -endobj -1138 0 obj<>/XObject<<>>>>/Annots 580 0 R>>endobj -1139 0 obj<>stream -xWMsÛ6½ûWìÍÎŒE[’-ɧ6‰ëÄmóÑX™ô™DB"`Ò²þ}ß.H‰¦ÝiÇÓ&1Ý}»oß.þ>Ó9~Æ4ŸÐtFiytžœÓl:Kft±˜ãïüç5­åÃÅåUrñÒ‡édœ,^øãÉ9ìóÿ¾¼;O.“+šÌ®`¾¤Ét‘ŒÛt'Æ‹óç®ß,În.h<¦åÑÎsZfbùœ–é‰ó™ö -sÈØZûµJ5•ê‡¤²ÌØ )²zKª©smk“ªÚ8KAûƒ“kçé›±+c3zÐ~GZ…Ý)©¢ :W5®ê,Píh¥_-ïÎi4ž&„p’9« ^ål?»` õ¤Rå_Ûh9 .~ìpœP鲦û©«ŒÎØÅÀÀYaVgA§7õîlh@!`öúùõJ­½+hm -À$>Ü ÕëB?([w¨‘”µ©2UGπ랥èÁ(êÐÖ{w™K›¹Œ™ä –Î?K®•)Bã¾¢ñE,àh:¿1þÄ}E)ˆÑ¼ó®©èöš^#šX¦§ hÂÕ?ù†J¢¬ ß„÷\D)R¯QcA -.kæ¶>.¹L¦æ¢²]@%€Àƒ ^Èj‘1?ÖW¿Ÿ|¹½þþ*òjLØ -…Ùäu±£Ì¬×Úã—ïëÇÛ?i››4§\!Åä•Ýhrkv¶Ò¾¥Š¤>ļ·.w%€vmQƒ*u¼>tn[ð·¿,øCB·5mKvèÞ­8.°Ì® „ɧÉöQ±Séœ -*!ÎîÀmk“ÍÃÚÚlH)~±Aî,U -•))¤8ð*nHö¡žj+×2ÏüJ6!Ô`X¿¢l9†Ù=ú5<ôj¨opÅÂe¢rxkã -fJ}! Àh§­~¬#"€Y{WŠ )-ÓC“Ôªò.ÕUUaböcébü„GÏŸ]‚·“+°±„)f*þ=Õ‡½ç]›îÞ7ð#v·Í,öÇ‹|4Eb±P?v$2‰Kš3ª[jð7h5ËmÙ„j¨• -šr]€܉u¶¢î×ÿÒ6Ú¦í¡"7B‹²ëf¨ËÚh«vÿ!"— }PôV¥9°prûC£•×5•V; +)°¶ÚC€¢pBaIåžYd¹ ç~4zléÀ¬¥#9ê­ó?Ð`Td -a{µëKnuT ¾%T -i®á€š›½ƒ¦ýw£-üDñ Ðµ2ZíXÑ2WªgíÒÎåkuõ Žô/£b{]7ÞÂL)ú|ýVúñÄ_u\T…ÃôÜš:Ç©A8úª"p^f G^fwÆB¬yˆDŸ=Šo!?šûDÙ¨‹{‰85=HÌc5Æ$…²p~a0ÔYõcePºSÉðGä9á E¯Ë95 ÂÀoêJ¨Ω JÀRÂ*0(W+…ý($°Î“,¸‡ò¤¹Ä'4º€¨3R…Ñ@ 1?ÑJ<Ö‘àCÁŸ Ë…”{/f\(vvvƒ1Ë{ÖhŠáÜŽiô×-pBŠ"ØÓÛv Èoâån¹‘1Eƒú× ’ý!“çW—[Zz4‹.¯†‡%Ñoè„î±Éð÷ŸƒUoiXïñ§ÇåŽgQ‡ø>Yõ8»ï?}[~jÅÀ±@ñÂ'Ÿ(!¾Å£™©7+teŽ%ùÛèzß­öÄÀ©eܾ±–ÕÇÚnƒ¦DéÇ×Þ’‰ýŠG”Ä}XÑà;×xúÝØæ‘Vî§Äïúnï2îÏßÐ……7¯±”óOk·'ìPS@’N |åÎÊs*¢1Ò§Œ°ÃmK]8«1ìä/íåú’Wã‘d*©kö{Ö“.Žn)¾i š' ~9ƒeß'³yÛG‹öëïÚÅÕ”fs~-ãLLígïî‘ ºî?Øîh<ÃK{1¥Ñ|"6ÿï³èb~‘Ìg‹Èå‚mý²<úãèo;endstream -endobj -1140 0 obj<>/XObject<<>>>>/Annots 583 0 R>>endobj -1141 0 obj<>stream -x¥X]oÛH|÷¯èÃ=¬H”(ÉúÀ=œl|Ž}‰yñˈ‰³&9ÚÒZýû«î!išë,°X±-s>º«ª«›þí*¦þÅ´žÓbEIq5‹ft½žE+ZnÖøyŽÿNÓ`)‰ùË×ÿ\­·QLËÙ"šSA1¾o›O9}»êÆÓåu´î?í}ÆÓÕ*ÚôŸö>ãév-zO9ÂÅ A¼!ŽZDËáƒ÷»«éí’â˜vNsµYÓ.•df´KF»ÌxRynÏžªLÓ·›»÷7¤Ò”ÆWNUÖQeC~![ÊUcaY™DU¿*t’),.|»àËnúÝ”óÏïv¿^Íh3J»tôðó:ðq¸fp†=Pj eø´b¯¨=„jÏTZÊmyÔŽJ­S)SÏš¼>)©ùªIï.•$¶.«.¤NzÖ.âÅÓÛUJo×÷Ì’Ïl§´×ÈY¥¦<"^@”Ú¤.õ¿ÃæQ¾s¾ìÈO üåþûîžxƒöæX"TNÙ_|¥‹×°"ÇOºØšDfŠS®ù¾1D lL.Éõ¢ Y*S:Ÿ1£ƒ2iåM~y|G¦¬ô‘‘!ý;ˆäSˆœ-øzGLŒ-q ˜pÖÇmè2äÄ°?¢]¦*òʤcúDª`®¾ìOnîpýI»jLÞJ®…º '„®7íuU]ìâðÓ+3 l$ÑL{M•òO¾á0i8œ¬£ML«Óð8_­)°´Eñ±î'óMoi²]¦â8ºŽæ}Õ¿ÕÆ ìþ5¯L+ʨ¡HĦd±W”Øò`Ž5Ðeý3C@´\&µs`tÔÀGÑ@q#zóá3}ÚÑÿþñúÞQ£‰Éä,ÃË,Ô„gtÇaw+åíUòDõ‰™l0˜7¦ºJ¦'UDépS - ú…3«¹ÿATRsåO C¢¢B¥¨eÚ[[QjüÓâ¹»ùüqûý—ôåþûàŠ^ÝiÏ°AÜÄDô˜{JüB=¡x*¸‚bý£Œ,vï™vŒ# -b*ÉL©ƒ^òtΆ°2gUV¼ šc$=AUνrÏÁâ>ö)*,y;í¨–‹&Ð=Ä…ÿÀDk&¾\¸1°ÎM©rò5~u¡³fã(É9ꊮ׆ïtðI!!ó#ŒŽ–5Iÿš<¾k®z10M9N÷Á&=‹Æ,àqÔþjŽÊ™“‚µœîì ûËã»1*ÿŒ€’¼†û±yÕeÂ5‚§§Ü£îSJ•.l)%Ñ3µ‡eÏž{Š!g‰îuçuGzä¢:ë=Ôq ®Õ-•N-K­ƒH1–‹† ± (É-ʧjŽ(ŒsìШ²£™Ö6w©=—¹mûúL4Ô™ê6£Mx÷Uú9t¶ÐǘKµ7¹©ZwƒÚ›P|~€äæâÇŒòYç9?Y®Lƒ#шq -BF73‰çê!yröÙ¤Àþò P5‚‹)?ŽNy}<ŠÀ­ -®q7ZH)qx]ÁQp,Œœ//åØ0]q}‚h\Hdçî¨[þ¹Bø|á¢m¶Á]+b  øš’ÏÍÞ)g€PAF¨Ë·ïÝ5¢[Ð'ã…_uú 7%é»ýqÅãŽ_U&šå*®]hUúa‰Âr&³h½œÌçœèË5 -×ìY@«Î+¤ÿ1C2ŸuÎZV9šë -äIv©~Ö¹=q»‡|“'(Øs!‡«:Ÿà déB ëÛ. ,â^ƒ[Àé&F.ÿûºz »®´¹÷ÚÕ•r¼¡I‰IßC$È€‰±ôd‚=XÚ’JÆCøF[Û ¬.¥è¾Dª¼ès³£èI‡…¸®[‹$_ì›>Õ¹cÓ\^Ö”o¬áêžÕZÏëÜGœʇ[iûBìϲ§K›eÅCÁȹmÒw| Ìxï ^-šf)Ó2U.•ÂkØæ b *E©3“däë §íކݻC}·íÞÁ¸“ ÕÃ7X2 ¡­­¦ -¥! I1 –›:s‹hS”êÐu¸wõ_‚EñQÑ— k輦”‡@wœ´+{±MyO¡Äh{eF¨ ©}Æ ·G„W -n ´¯Mξ$®ÞuôÀ&·P2m]0~¿y)@¶Fݾ—ÈÜÞÓu/>-Ãè'3–÷…"hmí0ÅÄ…÷!ŒõìCRî°™1—†çHšw‚ ñíaèC,ùð·HÐ Ï«ÿÌ*èëÃ[ŒxPÁôÎ! ÛÀæ•sÄ}h¦Ü0Ï´9K½¿æ—ww¯@Ü ûÓ1+%ì Ór7P`p89xA8eŽY¦¡¾…èÆI+pš+HŸ<Úþó3?²„å{¯0¾¦ú¤Kyg«O°žs¦Á¢¼SðÆ®*qï³±µg_11×ßd´‡Â¤åˆF¦·3Úòûg¸ ø8Œºÿ ùÇáábŽ'3~W@'µœ}ËìÈóI<Ãk>ÖüÙ~ñ”M°)†æö¿p‚kå(Á|*@uIü…c¢iK¢¦É„I|‘êû;©ý½­tÛF·ñb­6 Zmy$º¡=8û+^h0x…wvQïœÄ+ü]&ë¹0ö£Áåz­W›@ëõ–÷~Ü]ý÷êÿ¤uíendstream -endobj -1142 0 obj<>/XObject<<>>>>/Annots 600 0 R>>endobj -1143 0 obj<>stream -x¥WmoÛ6þž_q@QÔEcÉ’¿Û€t]‡~h»-Þ§e(‰²ÙH¢'Jq ìÇï9J”å·uÙRÔ MÞÝsoÏ‘^4¿€f!§çW#oDÓ韓ù Ÿ!þ—’R»Þ,În@‡7‚þøåÇ«p<ñÆŽFÞœr -7iWÝ]…¬67›A0Ç¡fµß-¼’ó)»èöjê¶ìßÝÎt -½9áÂvÑmÝÜX}A¸€°]t[ã±Õcز‹n+ -þ`âˆ]ðÖ›å•ÿ°Z¦Ýt>£ebýÑ2,×ÊÐVeÙ5E;Jd*ꬺ&U˜Jd¿ýðæ+z¹ü =„Õ3ðkSú™ŽEæ‘G¢ÙvfÝIIÕZR. ÜhIt\粨D¥tA*¥®YnDCxÖ`+ŠŠ*}dÞè\n×i•™‘½¯,b™ÑÕ*K¬©­*"U$ É/2®+e’D‘P¦¢R”J¯A¹è‚1 çˆ"ìwãƒGßë"U«¶šÃó¸0f«ªxíÅ8q¨h`Í°·-„½Éæ ‹ < ¹F`q‰Ó0*¤L$¼ÐTÖ;ÓÈÝ8ãNqr¨o@‰9‚Y­K]¯Öä@Z…¬.’ëjtC¯*iSê,YQ/ðœJN‹¹&£#.×=Ð¥ÖÕ³chñ†<¯©ß躌¥ï`øðÿцÅCºø«C'zúß7)Mu´© -^ÄÒQîØ•\<4%•ê,ÓP¹"³Ë#©‘,^? vVÐÐX8Pž~í…‘ß 7­ÃXI:¥;¤Òè ¥gþ6Ûc*:BMûÛò‚Ã0Œƒ°Ü ¢;›?º³];^6³Gp˜ßcóá$ðæ£ðkæ÷êN*Æ"sjN‘™¿œ¡z{MÂÇ€™§k™ Òƒ6ðewUÜëx×È.Hð£ÞRmdiû…Üø©¦í½GeÓPZêü´­{ý縫Á±7Óô·GvO‡˜*Xδ~@{ØÖÓ‹´\výÓU墙 CŒ"KNÔþlH/ymW¬'…åX†Éèy(¢®Üy³‰ÞöÏ_8hcÕœ£Åýq¾¼È–˜W}Îm©gÓž¨+ƒÓ0¢²§ó¤R qgø5K˜ÖÕê8þ±ˆAÔl¦_*çM;­*•K.¥Dd*™ã⡺À¡Q]1!à©ÀNI÷žD\v‰.^0³µto%î_¶ã»,—‹¢fØ]‚ÜôîÆÇÙNö æŸï\¡á#ýE«RnúY; -®F@ÊüjŽ«ì°£#…ÊìœET] ÛfñZŠDü@‚BüÆøÿÕ<îÏ`“Ggº¯71îä£,EFQŠ\"Ò(qÌîvž¶„ì´ØRcÈuUêÌæ5’kñ¨t ÆnÜûêÐíl$z“Ò]dœÉãˆ-×Ã!&ÒÄ¥ŠlMR®í7ÂÙN´—ÔýMµ\Ñ ‹òý`~ÿòð=i¡~‘®J§¼q ™e‹­0VçþF–ëD¥íýAqV'ÇCØ1^ìßV™ŽDö;ó¢«ác’qÁ>—|ãyÞwç6žA-çºBÑÞ°É}Å\ ÿˆNµ¦¯^\7”÷öÓ‡Û÷_¹íÃpÙÛ?ÂÎöDÖÖ°3¢í5i@ßÒ«CYêa_زà3CµJÐúLúÁ?\sx^à…ÖgTM´ùræ¾V *ƒ±:‡VáÓ`­þ,KÍOÀÿ W3Ee§ÒÊ/\:§9FûéúX¬ÐÖ…•á¨íd#~šm{vïwÿp—šÊøJ=î¯þ6­ ½R‚–ÌZbÝtäH)eÞÙh­$³BV$b¾è7ô¹ -ŘÙd\þk<ŠÕ¨Ïkq+*ÿù[ÿù¯¶2ö¾vr’˘Ï#f}¾ŽüwxëÚ_0Aæcš.¦ÍK­yÒýTêÏhszÛÚ±®a0ųÃYh¯ží ‹–ÒðÕƒðî,V†>Õv¨Nfo67×Äéˆ5ü°¼úùêoÕˆendstream -endobj -1144 0 obj<>/XObject<<>>>>>>endobj -1145 0 obj<>stream -x­VÛnã6}ÏWL·q±–,É×ä¥È:Iá»I±Z,úHI´MG"U’²k ßRÊEq,ZÄ SœË9gÎ诳"ü‹ažÀxyu…Ìá&‹9~Oð_sX»ƒé$ “þÁ§ôlt{q écÍæq¸€´ŒEæƒ8§á8œ„ð»ì–Ã׫ϟ®Àp½ç¬r¿Ý_/¡Pò—t‡!'!ƒd†õ¤ÅàFZz¬UYªƒÈUU1YP”Š=ð×áw]Ò§C8l9vå%m¢ÁõÝç«Õ——Ù Œ‹)YÅé(‚ # -XŽZÃQ5¾ Y¨ƒi«ª¦ùª¨„Æjf•>‘€uwÄ‹S°eØÓ-±çPk±%ßpÆ^9¼Ð‡GR[BÑÓJÙŸýé´kFÑ£Rå¬Vel” 9’Ü‚®spйà¼Ó¢Ò‘”"=µV56¢¹©•4HŠ§¸ãÊlUSñKø@šàHÞò ô±;ÉʇdxêÁåãñÚbö$â YxŵچðÕ2m¡©]¥¨<Ä©( `¼RÒQn¹± ìOáSêÝsiV–Ç!é¢,áÀ¤uÚU…X½žL•¡t˜ÍäZÔî ÖXœ+ªòˆ -Ø«Ví½bzm¢ÒýÌ)„XCa  rÛ¤4CÈ*¤^+cDVzʨ#…G»¿Cm*|J[}¯…66„Tùzž~v”u‘s3ÄàÍFÍ“H/=„ÿIÂ(o²±:¯€•vÄž™fR‰ÂÑX -‚µ5Ó K8izž Íþº‘í' pÞjãðl4¯;<‹7«L·˜²768\E“sb¦Fr|ÁøÜĺ_¬¯²%¥›Ðq”LáWˆ¢K÷yQųAþ¢ØZ­·\jHäC°úHmÐ&Œª8Š"mÒ(d¤ÂŒ¼ ¥&½¨ÑCþZqìÖ -‚æ}ÄZƒá9:iÆò`‰yÝ«ê{kݯj áû泪.ùV®Yêêqó´ vË óºGñ^ø}$o%Ë›»¯”¶Iäöå€Î³F¼,»ÐÏN~kù¿ïlÀœ|z‘tf7§.¤fEˆÿ ù9#m¶»l/TcÈ©V¸ŠpùMP;“>ÇrÏÝÀào>Êãí\Âpš¬Óïüã¹›œgzû=1g38ùà:â(/4]dÍni×·šÛh…Îø\tk­*w Uö&Ïö_ Žq‚Ôà;J18¹­Ø6¾¿È_ -Ü­´]»×¿Í ’ÚsücGñ;çKUἿb©¤Õøjtú¡%G0ï› GWË4º]´¯ñ _÷c˜]$ጠñ â^«Ï-\«¼©Ð»ÝS‹Aw!˜'ÂvUBŠB%²ÐºäÆÀ]ãT8™OÂùláÑžÅá&=ûãì_è!endstream -endobj -1146 0 obj<>/XObject<<>>>>>>endobj -1147 0 obj<>stream -x½VmoÛ6þî_qÈŒÆÅbÉoµÅ4ÉV¬yY#l–} E:b#‘IÅ5Öý÷Ý‘Râ8VÛu/)RDâñøÜ=Ïsâm«=üׇɆcH‹V/êÁha4àßü5æ­Ã¤Ÿô`’9îOñÝëA’v^Ÿ{™f¢`pÀ ©ìóä}«Ý~/šb _?VN˜…‘V4Ç|ot¹€ Ët¯`N8_*a|Æødý~€ÐŒ)s’!ºR¥Nj»× åv!e -”^ÂL@i§— Tr.ñ1—ÖYÐs˜i—A®S–S.Ž^S¼±þéšÀس—‰º¤a4 ƒç:ÏõRªkHuQàî—@=ZC(Ôhí¾ «/ªÕáA¨°`Ö.yX|T\Øú«.ÁfºÌ¹/€y舆9„­o,>ßXéÒÀãã;±pi¼-{'äø±3_p]0©ªò—û‚5KJ,)3‘YU^Jn÷àÚÿŸéB—F¤È”¡q\ÌY™;.òÜFÕöÁ8”DŒY†Û\滇T!M\+$Ù]‡AÝÝÇÕ!š:ݧšës…ûk´L~?z £q'òU RIq°Ž‡:´©‘ W)o¿Ö~w0ÚØßà­Tå‡pÒ#+‰†•òQ73©øïàL¨c%·$Z -›£yãf&[ÌždA1n†©-aá0¤ nJ¥ »–¢¢è’€¼·ržcöfçQÈBs9"ÚèYÌkÓ®¬fÏÄÊŸGžs(>Ôq€ZÛ&è6cqaµîi)¢7kj|'ø˜…ìû©L¬˜±§¹àHÌ$SQE5UÃ8¯5ç)êN£Å¨5=hRËÂè…0p¬¸-…JE§« !…G‹t rØBâÞfÌ÷¨ê͸&iÍ.<ì°á¡ß¥5±1ºrÆbf©›¾ÖìÚé«ÊóùÊs -»žø݇I\µ(8h}TQï'eõ5¹w”ÏrÕ¹z:¸ú€@õó㛳£W;—§‡; "Í4t´w.ÉÅ4aÚ´ p¬ßÉTؗдµ2_¼¥!¤Dm<÷èü"ys~vÙpü»ãä烷¯Úß5¬¼†¥PÚÙÿ^ Úxî•6øµý¦^Sÿÿ#êÖ ±EQ±áW•õ´ÃvèŠ[¼uYýbðäÍ°zó;<{†s¦L3ˆï˜·ÞMlËŽHR|üWW ATë7DáJƒêaAÒsà -¬kÎ~p#ìB+NFÂû -]…𳔕¿ØË0kgùL·¨®%Ÿñº^ükVG<ÞêÓ—úýFæ9ÎðêñÛ¨Ž¯ÇßñóçñÇ'ÓêÓãÅ|:„ñþ$\®/NàÂè÷x ƒ#–2ÅèFL„wë ÝÉ/ë¼SÝ{ Ö7-¡{˜…óÒQøh2Š&ã)ªCÇzuœ´~jý -ýdendstream -endobj -1148 0 obj<>/XObject<<>>>>>>endobj -1149 0 obj<>stream -x•VkoÚHýί8Ô*¶±!@ZE«D$RµÛv[P÷CèªÆ‡ilㇶýï{glSu7ñ˜™û8÷qîø¾å¢Oocƒ‚¤Õ·û8÷톓1ý÷è“3D­Ëy˹îã óˆ4Fú‚¤û}̃ª×ã,ÒdÏ¿´ú°Ü¾=!á̇«ùÇ‹?¼óîo ,X‰†£ß_¿ž·ÿâé’§a»AHëÃJÑmÏV…R<½E(Ö´ÖÚ,à“/Ѥ¿ b]úùy ƒæ@nÐ-ƒ…Åî)k–_ox;ƒjçž?GžÀŠà<ø¹‹àΑÅR>JG&ËŸ…Ün -(gªÈ)þÌž‰ozí\ŸÕ¥µ¼‘®–ëÚ§öÀÙž™ˆýœËRp×-› ’|—B–'xRÆB(D„â1C` "U>Y§„%L­tgÆüŽ‘—/kOÅ,ohu@Ž>Ù"R§SâÜÊÚÎi%î¹ÄbÒçnð V™`âÓžEªQZSxû·cT(sŠªY¤Š5QýÃ՞͈ïá¨iµè-Žñï®}f’•ú ¥]&å¢ÇäâxÏn­˜ñðüs‘“Iâ¾6ÈìmÎ2XktÝ'*H‚DÖ¤ó7ðÂqŽªl½øÜàôí.lãÙ9Úmb›8õ!!±®Y3ÝûŽT"«³Á$Mâû‚ç„&yÕ«ß™³¥ø’‘w·]5ðÖÑ‘!ÍÑAZš W!Wº&d*æ)y'NË‚öˆäyÍ_q‘bÑË|µ’'X‹üî6Ev‚•ê½˜QmBÕ\˜½¹œî%†*÷#¢éQH5™Â’X,u¾œæ熡¤d£J¾Nö.ˆ·O¡/9"þåP¿ÕÈ"{ÀêöÃÔg‰0#‡Ê»uÉX%Æ;õÈ;LÕ«W{é ÙaƒPJk7Üî›c]œCG›ã_Àò¢ì çzRÝJ&ŒÎNËé8»xsy?sñ… -S £!«ÛRC°jkìÑ“Êæ^ÃœIód0×SXâ]aæ×p<´Ç£ ÝÕ$:h WóÖûÖ¥yOendstream -endobj -1150 0 obj<>/XObject<<>>>>>>endobj -1151 0 obj<>stream -x¥WÛnÛF}÷W Ò°HI¶%9AP$MH´QQ0P¬È•´ÉUvI+BÛH$­¦MÇ wçræ̜ᗋ1ðwL³ ]O)+/FɈ¦·3ü¼™óÏ þI+÷âönœÜœ{q};Næý¯éýˆîh±‚é¿äû£-²Él£éÙ¯V¬åsJe¥ªRu’§V”K‘Xi¥¡?ÉÖÂÔôþ×;úûÙåâóň†ã\.r6ôâEï™´"ãGéý]ô?œLùôxœÜ&×Éÿèé,«jíÏÞÐxìƒ ‡ß®è äï#¨7Ò¼ dËeÞ½<¸êŸ©Îœ!Q…{'[{U-U•÷íQ.d©+K¢¦z£,í´ªê+™Ýè¦Èi)I, Iµ¦LW•ÌpRã° —¡ºN&œ¼Ã•®)×¥P•²\êÏ­ Ï•Ï{/QyA…ÎDA ®%>µ»Nsâë,¡tµRë7óùpªôñÕû.Lˆj2õwÊñ(©¹$] ãÓÜVzt@ÄÈõé¸Úk³E‘õZ"m“P0º•ÃѳÿÁµ3úQÁ¯hp·ªU&j¥+ZiCš­9ÄT&ím¥Ü"‡·„I;Q2è.çpOÒR%eÎÆ—}Ç¢¨kN€Ý•ÓÖr—ÐÃàÊÛB5p¹[IK‘m›%íª‚˜ŒZ« -%ñˆ¢}k®ƒNò„A+Žè{ƤÒ`N®q œ<\†‡±2¿ƒü{U>ár-uÞxªÓS=öªÞ0ã𬋣҆kÎèšér‡  -¡­b&­*%Ijuc2™VÖÂG¶ñIÇVP® ø®Í–`ú¨=Pø(mÖ²³3Z×ßys§&tˆG_)Ðü#%±ºëºÅà•Ñ%'߯È1úîÍVОCþu qð-¯âbÒ©ñ3½Sži÷ª#ï‘,xjØ~ T¦¬•YcT}…± }À8`&æ?¡Ïì´,¯&«°Ï#ØA²‡“ŸFÈ,Êò¥A»åü;ÿé`âƒPf[´J™/=‘†l­3 ƒn‹,Ó ¦óÿ7šÞÇqÐA¯;‡@=ðú-S uð#ŠÂ ‹duãùEµ±êëë&T€œ,2‘+mJQÄ´‚ÆÙ |Â`5Úõa-„Á_ºÉm¥µ˜‡Kt„,*Y£qq Âb¹ªw?” ÆL‚ÈÊ˼³!ëö Æ5ÀK)˜jeÈSÀ‰3 -$9Ó]¼ƒ}Uˆ'*".‡È¶äøó¬þm,Æàá’w,7Ofɘ1¶=°ŠrOÑ'V<Ód5¶‡«£>fµá¤Î¤RÀ÷&’zˆ{Á1ÒÝlZºN‹A¥ûfˆ’ôïóÐú  -õé^;´/Žûñ±ÙŽw®3ì¾›Z$ÁtÖnâMf'Mqðk“[Q #t* *¹U «¦ÂÚÓ`‘ˆʬେË6CÍô«& -Þ€ð¹G²3!%66h±m£K;Š4TeWˆÚíª‚Ö²’¦X˂ûgðZeqÁ8É%2t(6 Œ/UÐ/5ævÀ§ƒ[zr†Ÿ´.ôÞ¹!¾N§Eà('€ø»u8¡qÕô#rñÔkk\Ÿ£ËxÈ!Ìg.£Iqq‘1'1-¸úÛ=öQU**ŸçR9ýêAÅ[BBïO”[ -Œ¯¬ Šå¾Q¡õ– -…E”×Õ ó°tŽ§øHœ_Óôn”¸ï«O¯Þ¿~EþÌ_!otÖ”€×í$á0^Î&ø <~ÑßX\=,‹ÕÚÒ‡Æ-¨7³›d6ãóG§7láÇÅÅÏÿ=yendstream -endobj -1152 0 obj<>/XObject<<>>>>>>endobj -1153 0 obj<>stream -xµWÛnã6}÷W 6}p€XÇñ¥@€zÛðCÐíÚ/4EÙÜȤ—¤âU¿¾3ºY–“:›K‚1DÎõÌ9£ïü aÔ‡Ë!ðM'ðׇÁx„ÿ÷ñψ;Ÿÿ&€ ,b¼1ã?àé €ï²Ô­¡ø1â{*ˆòo~"—¾<5Òeþ–mîi],áY Ò‰Íuj…+”בPÐÃk_8îÇnK-h%Œ¹¶)çBDç‹ozaà1„¦g›Æ±äR(‡¾=ï¤ZJ¡ãçMœÞ:Æ(r ëQrqm3‹9ô(ý×]‹$±O„ŹNó\àÕ™íM¼_fVX+µ¢þ¾Ñ¨3€0,Õë©‹µª$a­xÔͱ€Ðñ"?Ñ+©ŠÇÕÍnàLÁR_3µBì)ÁL’Ck–mìXæÁÌÒ;H´~°ÈÏ¥ýµrWB»×xƒ²NåIÎeO4q?¯nâ‹M¤Jþ tâÔÜÇÒXw¿eÖ¾˜v¥ó&>Q©=V_]©½‰S{yjTÂ6Ägïgôýf¨A… £zëpDYBCúr­¬Î9øp˜ÐX1†3•ÏŽ•0E8U8NÅù«j6!'þF¿NÑî~ä»8‚JX`7Öý,S,A?ãŽr½DiBž¨[Aš’ LcþšNØR? -Tš p"iY’ ­² ªË# -1…ý€DÑŒ‚µSÞg[MVÓqîÏd3Dª°Øa´ÝÊÖÑ=Ìj%Ž)¥3©Vét™äÝjmkôfë,`µ¡‚µõ -‡“JÚÿ…¡wå]z#¯ïÁ\'ÌHÛ³[Á%Š, ‚b¹J #œ*F®AD\^“7]À -‹ÈR#öTMÕ®X›è¸ sÄ€[3› þÐ&qnDóØ6TŸ¥Æ#Ñû™!†Z­Ø¡¤²œH°«Ekê<Õ†áBCý.Üâ!ò4ƒ ‹„÷Ns'<µNoä¿ÅIRŸ<ZNÈî{•éÔ´Ü–¨Üà -b/͘§Ei Ö¸µ¶{ŸKÁ¦˜…‚¸³.Ÿ6„*ì$FŸ†À%'Pl¥¨µ\ÊÍV£c³óº"®Ë†Ö»Z-hgÕÕru:“¸pá®ôé·»îÙÝy$@è…bŽÉÄ&~8„ùíìSûvû;ü®·™‘«µƒ».¿;‡p2öðcróTÁ­äF©XäÅó@ žU<0ż¿’ _íX"::täöËôöŽM³G7¦¨¨˜¹ä9z±ñŠ­5­}²õ=' ,KNz5!Á¦Öÿáà6z¹™_fói¾5—Dâ…àLÖÐö|Wz›éH²äž2BI>i¿ !Sær$?W‘—›©+bpœœÝÞjÕÅÿmUmñ¹·,·K¹¢o,Á™ ØØâUí4ŠëÒœ(6R1òa9{yüÙ¹80ó¡%8ƒi¹*ξ3.7›pˆo¿ãKN® -5œOo?Oá‹Ñßw(J<%¨å¯W]èúøFuKõ„…°ŽDg±ÆO ¥9É Fo4ã›4^Äþ\tþîü&„ê7endstream -endobj -1154 0 obj<>/XObject<<>>>>>>endobj -1155 0 obj<>stream -xµWÛNãH}ç+Jbµb¤‰'! ûÆÌ,Ú±›ìå uìŽÓƒíöô…Lþ~Nµí†VÊp ÈÝ]uêTÕéò׃˜øŽi:¤Ñ„’â` h8™âs<ãÏ!~¤UX8>‰fÝçý³ÐbK“þI VZ$G‡ï_Ô‹8¹Hr©’ˆD’h_:²~µR‰’ø7|õ½5ý\-ûV&Þ(·íW¢¸Ù¨r©Ê4²úsF~õÊ*'kkôÔÜ/çóÓ`Óè\ZXŒbz‹Q#ÓÆæKF}©¾=k³ËCêj&öÄC×Ü^xxÖèžyÐn- ˆÝ]s{ááY£{æáæÒZ¥K*D)2Y #:eÙ-¡–m†X÷ëJX»Ñ&};®ÃXÕí4ùÓ¦|±ÇŸ˜ëúÔÜ®ÇØŽ©kYÞ­!p ¦î-¶^I 2é«JG+mèi–ÒhKÿ»BZU"'úúÈ—‰.8Óä4y+w»¯ß½æÄ4òÁèuÅöDŽ6zÿ­Y×ÒäÌöf¥Œu7œ¡®§F¡/ûµÜêI££?ÁCS*?Ár{s}íz ñ]¦[´{´ÕVõ>píÚ÷£§ÕÕ?S×óAo8á1àœDn5‰4EÓ‰ÎÊU)I¬nt Ýßþõ -š%“ŽŒJI¯H”¥Þª2£Tûe.©2º¨œåîk ECvÚd£fa8‰Æ¼p©7ëšv«½¡¹(–‚~e\”è²”‰cnm´ÏÖõQUyÛÊn-ÂIÞ¼R™g)Á˜Ãà!m? >ûg'O&FãÚ{G“ˆ>«B¹ ¡#s6kÿÖc­…i¥/ -LA~–Ý*DáÉ°°™KaçNšp½¨Ik]I–¨äƒ+ï½ÃZcÁþÆÏ1#"ƒ5îÚyË·¤K|ˆ;¡rÁÉ` d>«ÒƒPIƒÁ¤ÝZ'‹÷¨·”²`Ú€ÛT»³¦>‡è1’&Ò8¡Ø_¥quÂ]Dgðg}²Æ£ÆÞ À/¿'ÄÝH}@õÌ-@’A"ÃD ²:>wXÔŒÒ6χ.Ø›Ks§üÝ(÷¢Lé*÷YX8},ü:õ˜=;nšÐ"Z¬Á(~–ya² -ÍÑâ¦À¥Ì_ÎçµýÓ Ê@ÀŒÀ†Œþ¾<ÿÙ.SmêBïŸ%Mûõ¦Ñ,¦ÑI]M×óÃè{_ka½w<¬gõ‚+PæÀ`™!$<ÕXÐ_çŸB¶‚3•¼¥vØž¢sóLct_hœËd¤²$˜ ]Ñ ãrŽH6kò|É^Q³¸ ŽÊÐwUu+eIËíN蜽nÁ¥Šß%|®SöPڜ֎·‡!±† Mm´¤êrX)”0š—ˬîÎL‰¢.ê+œK_ã+´À™BDŒÞÊ´éöÇÄ·óCâÛÌ|¬›Ôq}5òGWÈwJR'-1ßNÜrç"„v€n{0´ÝBÒ¨ÁÀ½Îä«¢Ë+ŸQP8]"§¬d ŸK¦ÚBi¹‹$?¤åÙãFiD8kj/Í¢ÙɈ&£I­ÆóÓ‹§teô¨+}Ò‰çI(àå„õb~ ¨7âM2=zV&ÇÓq4Ìð≓ ü}qðçÁw¶æendstream -endobj -1156 0 obj<>/XObject<<>>>>>>endobj -1157 0 obj<>stream -xmQMÓ0¼çWÌq‘Ú§UŽÝ$­ -W¯ýšxIìâþ=Ïí"¤Šb[ÉŒçÍÌÏB âG ­±i æ¢*+4Õ†×m×òZóë §â¾/Þ~|Ñ¢?1¥éz †Wzu'DÙ–xpVM)gßôÏŒßB0,ã×u[6̸ëGÂb쓱áwˆ4¯GïÒ0òNHàN×ãA΄Gò£x_LTã -Ç) ƒ|š»Äx’‘±w:MVVguÖ›²Îšò|öî쌄½QÞwŠør|€’Ó0Ê On!Í :0áb4!œùÖc# þ&Åóý»æ;qKÀ¡¥ªÝ,͆|(ñõðéû‹é9O!M&ðÏÁ“ŒüE'uõÃÔœ‡Ô³±&Ä,ÍS*bÎÇ'k˜7›_ôÚðUˆsà¡`).Îÿ(ot/ˆ†Ûí6UsËèq·¿ßáèÝ3©ˆ÷N¥™Ã½úÍÌõ_º­¹pýß·í¶l›Žëf@ÓfÞ‡¾ø\ü±‰¼³endstream -endobj -1158 0 obj<>/XObject<<>>>>/Annots 609 0 R>>endobj -1159 0 obj<>stream -x¥WÛnÛF}×W òR°h‘ººo¾ÄÑÄqb¥éƒbE®ÄMH.»¤¬èï{f–ÔÍ1Ð$"‹Ú™³gÎ ÿí„ÔÇ¿& Æç~ÐÇ/üòÇÇ?:Ó0ˆh4SÊ) ð×?eôЉanW£it¸º÷œÓ œç{¶ðB£ÑŸÃéŸþ;M‹N4ƒ û|Âl<æ-òÄ.ãi0¤Áù0`u ƒqóÄ«ûÏXŽ±Ëï•Õ½g¬ŽÏînõrÖ9»9§¨O³PO¦4K üw¯RUÖÚQôÆ®©¶te‹…Y®õƒÊç -)D¤*R'³/>õ¢!èÞ;“+·¡k›+S°Míl–iÇ»Øa8ñ{ƒ!ìaa@÷N;ýïÊT¦ÖôQ«ÄKo2¤0lL¢ ҇ɥ^X„±±+ŠáÀ+ 0ņà´NME±Oà”ÊL«JS®¾jª8ú:UµØ*<Ä6ÇYµšgšÖ¦Nù@Éþi®*7é…îÂdº¢J»'ã ÜUù<`+REB©ÇJr"ÿ¢’ܦb0KUUkëÒEì6emlÁœÍR]áÄzmviâêȳ÷ 8%>KM²ãÄnIg7 ´`Ömc{ìŽOw ïew‹p ¥ZjɤNõ¡Ô ºôz~óáÎöè.Ù…¿7ï?ÏÞƒ `BÌilpL!èÊ]ªøëÒÙU‘øã&¡«ýd;ú¡ÏŪN­û­¢;[ëßýî]B3¦BbãU®‹šð]ñÏM¡|„w­žLEa œòjÇíûë+’¸_1’!õZ4ûîf-Óo.>¼BÜjýÁV­Jí*àÖæ†-´ÐÛ¦3 ¦>¿°øTŒœ¥tÆ:®?§=“¹îR•à²Ü‰d«RÍMfjÃô±¤âZ -“>›"±k@3£!då°6ÚU*=v‘úãI{d³$èŸÒÜ@N%®&W€mUÄá.Ll Ò-QP„ª:òß«êMæ9µÃ1ñ:‘Ù%'½p6?².¶‰D}Ètœ\fÅÃêj£xíªÎLÁ¤À¼ÖeE…F…V¬Fæ(Ýý2÷²”èV˜²³¤©zBæ„âýÊÂà-X¸ªÛ 29´†‰Æ[8 œväv°˜y -·µ§…‘œ^X-ËìLÙ%ÑäÅ%/g=«ö.}º»ýûŸÛ»‡ÙÅÛ·AZçÙáÆm5¾ …G!BUèRcmU?ÁWçP¾Ù†æ^€AƒXk–ê€. -“¥µ ¨ZáÐBÔøE9P'(äòh÷6z©ô™¶gØãÅpKUjWY"×Å! bDÐõ{Ñ =äˆxÏØzvÀ5Æèì&nT¨‡råaÇec4 ÓU&} qaž“b„¬E4‡ø$~Dö[Fží¨Ï l 3éa‚–KÅË ?ãq«éW_8•«8ÅÐAR˜»b Cµ§Í‹©´k¦YöáQ9p€qWž£Ñ._(HÀDð]ú x]+“áíc§Ìgi­œž+à)é:yCƒq§Þ„ZzµŽÉ¤åìzUêØ`ž“ o »Ì×8j#'AéTÍË®‰@– ×?+a€ˆuéç5جM–œñžG™š0'd ¾G´±þ2 -rmg7Ó½×ÀQ0Œ¸ûþÀ[êÑô{ôf:œ ƒÉxêo|<åè^Ï::ÿ,nÞendstream -endobj -1160 0 obj<>/XObject<<>>>>/Annots 656 0 R>>endobj -1161 0 obj<>stream -x•WKsÚH¾ûWôek‰+$a 6•ÚrÞ9¬í¹lÅ9 ÒJôŠ4˜xý~Ý£A€¬íT€V¿ß­ï'>ñϧ8 0¢¤8{cŠ¦3oB“iŒßþ7š–Œ)øüñéýI8 ½3Š‚ H -šŒg^ÜA9]ŸìÃÀž…ž¿Ýƒ'Þt+Føc<+(à¯Hø^Dgá4ðeÄ (({ °ÃMfgxXPÄê,Ð㦑é§ðg"PŒC:ó™Q€b¨3 Ç…cj -°Ã…3VT±PŒÎz…¡=. Å‹˜IBv¸`ƱCd$²@‹g=_ @ #ËÇ Øáü™upÂj-Ðã¦\ ]´}z\ì÷ú|z\`·2èq~lù8ƒ¾=nÌvþùìpH.'~ÆÜò›1â -/‘†DŒF½šŸŒÞÍÈi¾DDˆò”æ©ù˜æÉÀ¼Ð£×U¹ÌV›&+WdÖš®U±Pô¦*TV2Ò4UžëæÙü+ÄM`°7”Ò›§ƒ9x–YÓj® LI£•aqŠ¶UóY¡Wo^SÖ’©hS¦,ªLEg­UhƒGTêD·­jîXR[,¼öyô‘¶Yž³c¢¢x2(+CÊ]Ô†…6z¨Ô9ÛÍŽì ]kô¸‚æµ¾#…ßE…³VàOõ÷2:¿£¤º] -Å¢çp 4+ˆXgÊÒõöÔj¥Y‘ Ì°zô®j ¡¼Õe¦ËD?¿g£ºÕ´Ðº¤<+¿ÁŒmfÖB¤³Qù.”ê6i²ÚdUéu ¸l‘ì(B¬JÒ?TQ皘bôcM7pæÛÇ.ŸZÂ<(’´Ÿ«?ëÌ¥œG´|^åÕBå_:å2¼ð˜ð÷‚^©6K¨Õ ‚‰/Ã"[¡¼PvCÇ^j³È*TJéô²3õÎ ®.ß_Û丹ÒVMµ©f½8ÿtññüÐ —ŽŽ(ZƒäsçÏVS»®6yÊá銈RÛ\¿y• 9…Bõ7´hª-\?Ô# Epè.<Íõ­–šfW£‰p¡šx#@}Ýè¥n¸ ­pçضáì);kþlßÒca»Ü¸ <‹V'æn—Wº´þNãa‡})ðͳDŽÁ19ƒXÒ!ß/-B+5wµAjÕ¶(‚ÅËÍŽið}“5ºÐ¥±ÅÍ%}(ùáÄt"{Î4øGÆjS×Uc\©äÕª*Õ]6{®Ž§éÞÊÀÃHl :ÉNÝTË,×퟉(GÌÚ9ƒ¿ß.nnœ@›CI¿Ì“µˆ'“Xó{KëªÐ”"C lÄTF+Y¢®Û2#âû*·ãeÁÃ{SrÆ•y‚/i“ÝîÆÊm¼Iº^³þ²Iûþ2lÙ½mkdK8E+]êóÐ*°sÛ–cžK$Ž{ÙziÖ•D«Ñ9–)VÃéé›ËëÓSI -o;^qŸ13EòÌ(”ýaB.ï}Kœ³òÌKŠôPÀO2úboI‹Zq¨+[¬¸½‹a/Ľ­‡J¶r¿ôF›¶Éðµ|œŒòl1rž‹°>‘8=RªÊüιæ§'Ùb‚i,ÙV -ìþ–)J‹ãÀ…âg»â…M€D‚›Ž÷èAÛÙùÙõ‘]¢»‘òˆhàÆÁ\a‘JÓ‰9’~/ -euD!7ZIµß\¤ÆÑx|DÕ·çaÜî¬î£ã -·>"Þd8y$ËXN°¢q•TKª«¬4r â€[ãjø§‹=ÝÔ§_Kr™¢þ»KïpCwê¼}`òË.„ХZä:µG—Üz©6*Ë[”Ï–û'åÊÚçXX³x"¾ï\r‰Ø;7ß^¼þôÏÕüãå…·6…=Fwô.9ÉFï’îàÆÞÔ'w±ÞQÜ5ÓŽÀÇËÞtR„÷Ùû×ç½:§«¦úŠÑˆC<Ùð“ °‰C?‹ë4¤aàŒOŸ~ÆóëhMñNîhÆBßÎOþ>ù²Y Lendstream -endobj -1162 0 obj<>/XObject<<>>>>/Annots 661 0 R>>endobj -1163 0 obj<>stream -xWÛnÛF}÷W Ü•‹ºX–ä¾ÙNÓ¦ˆ“4Qчº(VäÊbBî*»KËê×÷Ì^taä¤(’8æeçrfæÌáç“õñg@“!]Œ)¯OúYwøÇ€¼ÿùd4fC÷ÇÙ”j]N³~¼ªè¿O—WÙφ“ì2^ð£½Ëš./³«½gþØô&GÓ L ñÏHZx{ƒ«É—nf'½—# h¶àXÇÓ Í -jŸfyg¶”d¥y”†êÆ:²Íj¥£B×¢TTé­, U ³ÙGCŠÞXçO%þWx¼tÈ.…‘áfßî"6FmVtî‡ãI´•Žø‡ÝÁà í˜æ’ÂŒ!ÕÂ:D;7zÀ AjSà—…6ôG© -ܦ¼*¥rä4È… çcšépl}Ú:|q›Ñ»J -+æ¶p=> -SêÆÒéÖÚ|¢öYª„’75<Wj…òª)dAëÒ-q°´T”Ö™rÞø爬å°N”•ÍŽa4g£g`ê§ÙàŠº—C@][ú ê¹@ “´¤´#½àåº^UÉ—üÿ.\½ £›ÕbµâlæHOJµEïÍ,¼àëÞŠüwU>¥§÷Ÿ+Ò5RTÕ†>7%Üy¿%Ã^0òiUq+á¯@gpsÙ•ÈåýÙ9mt÷šª8Þû<œ(ó@Ø­ˆDQôÏèðœGÎÖó,×jA+aD HB·” -•©C JŽ,ãqú"4ÿ5[¶§dݦ’$ò\7Ê¥¢]Ñ“´@Kw/F¡bƒa6Êè6™¹ù²T’f†ë:÷³ô«.{ºõ}jcFÃ~°»/DÁÏv oà‡±/>ê8ï ÆG(‡ˆm‘n¹¥p|¿±¡$¢Aw+çkĦ%™»ï瘂¥àšá”¹?C)[Àó„„ö “•Ñ«]c€§Á›ó0ðÿIé5,r€§·èΆ+ÉN -±ÿg0¿Öbò -ô4Τó¹ƒAëÖOBC-güÚ€!Ñ“u£8aØ8§’vï±Á­VÎ誒&£³GÔ*݆è6‰*­Œ|džLbPµ)ÿÄ)Э‹®c¹yõö)¾X]·ðü›‚q\Ǽû€áá^A1¥Eš:=äºôÂ$ÇBÛl†ùð°mêëËßr™=@Ôžˆkkéêik ÐL0ý"U.ÏQ‘Ä·Ûw+P˜`TR-ë9®ô¢åY¤,æ2È„JÞ9‘ÁVÚZÎõ™’Ã3RsK0ó…W:,œmÝ·°[žA©¼ñIbÜëm>ï^ÜbêµA<C¶-èNÌh\«Â{ùÀ¬¿Éè:ÎÌœÓR¯óh°Í7̯ÑdÂ8”‰.ДX@?² ¬òî.î0†± ¢§"Åç›ÏïAî}ØáÆ¡×BÝñxIðývÐèYßw06½]mØÛnëïÍ XÕ+Âi—wîÏxn7Ä (Ö¶Ù%B°¤v#Øàè^LêàYù°ƒ#׈ݮ´*xpüÊÚbã6+Ðo+_`ÒaŠžtyïhj€yÙøñ7Ò  2©*‚AùXF¥Áæº{@)h×/Ù–QÏ{#àoJi³û³ᡘú - I(\\…]r€± ÊB†Öbãy$Æsœ¾è2tK#ª¸%µÊèF{µ³-4Êú<ðÞypXÐ|ƒÁUÅÑ2ÿ7‰xúVuÑ9ÝEµ9Ý i×vG“òLÞ8lwÞ}Ü{Å‚j\zíºW@W‚±q;mJ“u¨*ßDã»*4­ŠÝâãwŒä%$ Eh¥.PW®íž³¯`X‹ ÄÚ6hlœ½Tà¸ö%ª6GMã±7?Ð0š 0IÔ•ü]é…Ì £Xò[¯hÀØÂwGEMhÏÄHfÈ_^È/JßN®˜R„±f¼Öž#Wߢ‡ïÇ"|1Ý-åÀ_lûÉòü¬ÅUŸƒp¡¡Û–úÁÀeúæ¡Çrµ>̶ƒïÂ(€S…§6óƒaKé¥XirÇùX·BŽ£¨äú€®°ÐÑ ‘ø™ËXŠ(HjÁ’Þ A¯KÕ<Ñ_/Åó|ÀÜ©ŒÖî»vf½Æšž— -¿HÙthùÐ-¨WÈÇžj@tÝ»ûivòÛÉ¿aÛ"Wendstream -endobj -1164 0 obj<>/XObject<<>>>>/Annots 666 0 R>>endobj -1165 0 obj<>stream -x¥WkoÛFüî_±uRD,J¤dIvÚqR·)š¤UE]'ò$]BÞ)<Ò²úë;{½œŠÀvÈ{ìîìììòãIJ}üKiœÑ`DyuÒOúxÿRþõî~Cçé(™PE£Q2 -%ݸ¥Av‘Œi8c[†ŸZÒüd0œðc6I85pÇüÛÆ*ŽŽÃ^·º÷\Ñ0&{«ìMšõ“ôØäÕô¤w=¤4¥é!&cš.’>MóÎt)ééô=öà¼ÛÓéÉ&ï­„µë¯ÄÓ’º©7´VeI¥² 58]‰|©´$-*‰¥fI‚NŸ’X­¤.dqFk£Ÿ4´wKîbSók¾†ß²•>uÓA’Á·Ž ÝbÅ.%~ ]6´4¸¼PµÌSoº65É{Q­J¾sß…‚žfµÚ<Ù¶,‚YýŸƒÜsÄG[ª*{qºðPv³a2d‡½Ç—÷—çýsü¤acFnc'x÷·VùéàšÎe¯w=Žø²7Sº7¥ ["îp)±¡ç3s'ÏB(YÌקï‡;” M3À¤7TH›×jÕ(¤Âåk9‰y©í©D>%¬¬ðüÂT«¶‘uâ]Ž÷ ÚÚÞƵ³+fÖ”8^n¨jAøÀ¦ÞÈæêÕÛoßÌ÷ÌScxÓ{:üÀÛ S ¥šâÿ ÕWâÅ‘lñÔŒ âQÍ„çŸ6 J37 ­þñi&a÷(ÕÔpýȨÈsÓêÆ¡ârãiðƬá±ðU‘›º–vet¡ô‚~ÓêžÂ10Ò"L©)¯¥h¸@8N-ï²\‘²…_tKÞÝx);ò‡ûRnt¸Ø&¿]£„º´YkÂËF‰r[+.°­O±*gØ”) 꺵á6gõPëõ®Ï·â²-a[ͼ€Üv&·O:uwTÉMUq¥»do—²–Ûz‹Ú…*ðH×Æ4øÖñmmRWP· -U2xP%˜º—Â5Ûýl}=8Ùq¹Ρ žØv{Ò¾{õ’͵\Ç­[äöBjY3Žò:¯MåÒøÛîŠÏó*iÌF–%Y?…rŒ“ÉÀéêO¨+w]àÊA‘ª*Y(xQn<²1;\í£¤?:gz-t+JT´£'c§¾‡ŒŠ´A|•l–¦ˆXÉ­º%ä…aùÜ=GPDò ƒ¿+]˜5°žÒ//_ìJ§7²¾“5ÁK±õ)úD„°Qh ¨ÍõRåK‡B¼RÙ#[¡,£”¸“»c<)Ô)rïÊ5ª|)ôBú×±¢ÎhcÚ:îz`ì®-9ù3ô1äJ­ÐbÛA°xÿ¸Uìî.»aÁÎ#ö=gxŽ‚Sš)®¤Ð勳SÍdm#G÷Âq Ú2¤dÚFKQ/°\Ô¯æ@~* EªD£„`Û|ydÓCfúô¾;ù[‹:ÿoî]_PŠ^:_oYämš%Ã$Kèô­î"Òîu¹9¥¬ln¼È”µšž{uvYÝŸ|P Ìà)cÁ‡ÚÜvXsXýÁ}UnŸÒZlh*Ûƒ‹Ö2—­Âô‘µ²tÒ/Ccq=é}I¯Xé´”° F¢p³põ';`5jàÒ¹$‰ÐƒÕOzŠèPnèDÈÞç¥ãŒ å‹”Ñ6hºÊ¹Òsépíå ­ÁïÖzq°íj…¢x†¸ðzëPŸ«E ­ ™CØîþ]¥C¢(<¿üÄr¸-ö 3`Ò¼a7Äî(è ö¢ªuB§Ûi“ŸZhÉèBRòì ¨¡t@Œknj ªáüÜͲèj’ãYáJ2e€ *>αzz'‹¡S#ÌÂ?+ÝÞ“Ý`*¨‚º÷ýLÉ-+ Ÿ.J3å_Ñp$ 9=¢o’$©%ÏO,(¨”•¨!˜è,V¾{xätú–z­­{–S.v^ï´Y©» ŸC]K»á•º¯éë6tÑX×Ø3ÀçEÑqÕ>/XObject<<>>>>>>endobj -1167 0 obj<>stream -x­WÛnÛF}÷WLf -‹ºØ–äha+q!ÝXQ@/+r)mLr™]ÒŠþ¾gvI™bœ4É /;3gÎ93ü|4¤~i2¢³1EÙÑ ÐùÙ4Óùt‚ŸGøk$%G׋£þÍ9 ‡´HøÙñtB‹˜ðü`@‹(xØȜʤÊJC2•Qi©ÔôI+=J•ÌK¾$(Ö™Pù)=¨<Ö[K…ÑYçmHä$¢HWxVä1ÂÚ­6ñëŧ£õ†gáqƒr#JRü¦zR©\Ëø ˜ÒÝ‹l%Hęʕ-(Õ“ÜX*”á)2ª«»Ó7Âv‚­Ë爖´¯Ì¿‹²Ÿ¤Y¾¦¬²%­$¡Zi×ÿþæ Ñ…äðÚV¥)%B¥¤®ª\˜C¯µAÕ®‘|Ò07¸8ÌÊ n6ÏÙ®Ò˜3°²Á[% ²¤û×P¢Ë¾ÌZ)Q"o¾Ó¿;\˃¾,£¾{Ýõâ™ Wjv§.+£Ê¨rÒ«sò)=4n4Ϲqœ»•Ö2 -rG:qÐ|·M‚¹$ð'G¨Èì -‡!¿Í„A•¥Ê×|L§˜}±uLD•K* ·¨ÆËÃùâ-ß&¡†Dç=Dé%)ªÕ¦­*b÷:ªpzŠwâÉ/ ‡¡3®Ál¹‘Àû…Ç»‘X³¹Çè9˜&¿Lä•H]vžšó½Q‰Š<ífhúZZÊd^y~¾€š×å"“§´ªJ¨•r?ÚÈèÑ5k¥¿ÐñÌaéÌ Ý -T§«Z=µàß:‘‡Ç4ç\@ÐHXœøu›DÜÁ— Ä›ð”C}ïŸÔ.¡ZîuCª}6œ -+úVozl`? 6öQ`ÔáÀ¬Í”=4’2öBYi¸‹£¡×ˆmº±»®¼KÙª(Òݳý¸d'Tc/[6zoØ2^¾vïßD5³{“p:ÄÏÓpÊj_ŽÆ“ÚH.iˆ‰‘À ¦áðN~Q[ùp^„Ì¢ –pgô*•k=¦wÆhãLøY:=½Ñó §ÏA©œ©©ò(­bø:¼:ÁÿðCæqc#­–]ÑIûA÷î2(wÁͽ*Ä;&Ãa å¦ÎJ…Ìc‡tc¤¼¾Ë'³Ê›‘¶ ¸f–Âm²;[‰?ÄVç'`£87b[G{Á)ã4ëŠm•¸àaáQå©s4¼V(.¯ÈöòÊÄ#ÌÏ׆®óHȪ…£a -?bàJ“`¶§»îõ>¥n-û 5üƒOä¾py¸á½hæ -=©bë¯5 -Xš2FÌV2"ƈt.χ…tkšèüÐv£Ó:ozsj `33?U(ÈÕj+ì6| i¡MU®>W’>ò3K¿ø¬©}9òs¬ÅìÆÕõ{ÃÁEÃε›¿˜ÅÇÿ"F36‚7ŠtžHžƒ¨–k¨ 3 á™îñÌ“ÛmPÞáœ{rÙÎÖEê´Ñæ´‚Yâô$UºæˆÁÉsˆĸäNÆŽQ|ñY/‡³ñ°/¬—6ŽÓ–wK—²§i£¬ƒ#)Á®çÊmn«ÒÊ”· ¸oµ¯Ø2á:D¡©˜bì€*AlAv#ÐÓeçw³W¸Ì]¿aܽùŸè4Õ[®=‚óppÞÉ:!ÌØHa”Ë’àƒµšgßxŒ‡ha4{³\>Ìß¿_,—¿û‡žIãé~¥~gjpSdn ¾ÃÐc¥­ x^&³( N¥k£«âUû™«·ìFÎ’°.ðO¨N½ÜE†¯6€q%bR±À‘oº½ÕÑšz†=N¬%ÌÛíî\ÉÅ÷ÑЫ3‰ù¤eŠ "5V¶ñL”¼Gl‘÷)ÈÖmìæh 3K¬ñÉðò´9¿ðßÖäÅ´µ}:_åÑႦzíJM–Á cr0¼¼Æ\Ã/ß´Æ•Z™;„x'Ù#I¶Š"à‘T˜nm S°Xï\LÏ\nq -n>X~# 6'®sɶ²k¬OéxÁíü¡Né.ÅÎ /yB²UZrÕØžÝI¦´>—´©½‚{ƒ4î#š -Ô´ïF{Q]0+t„Oë ¦…Ï=Õ–š¿ˆ†‡¶MÀŸqXžû·þúóÃíÇ»ÂðôŠÑx†¢ùEdEú£˜§µp9|‚ÏC&‘?íY6[u”¨J,­¥þµ‘±ÖÐ5؈~kWX#v ÷a4Vk1³ûV¹ñaþwfLëñ7Ä·öôòŒ..Ç~jÜ_ý}}ÅkÐ' Œ„¨Â²^ºõî Çø,ŸžQo2ÂwwüÈöt>9'ã)¾ôñÂdÄç¼[ýsôòß dendstream -endobj -1168 0 obj<>/XObject<<>>>>/Annots 669 0 R>>endobj -1169 0 obj<>stream -xWmO9þž_1ªZ5•`“MÒ¼ôˉpE¡©ÐIH•w×!.»ëtí%äßß3¶—lÒR•ªÇö¼<3óÌøG'¦>þÅ4ÐpLiÑéGXNfшFÓ >ð¿’´ä å_1ÿºþ§3žDSŠû}ü.(¢aXåtÓi¯±;žíï¶ÖØ…¦Yûnk]Ð`ð>zßÚm¯±;?[ÁzÛkìNãhÒ¾ÛZcw6‹âönk]Ð0~[»Þùˆâ˜Kk<Ð"sôi‘vi7R–ô(+£tiºhrD‹ù?$ÊŒìJÒ§³“SJ*Q¦+Ju&é®[j €S]²Ìdv÷.¢Nê2ßÒFlÉêw‹ï>ÇÃh…ÝTW8o¼u¥“\¤ ÎAŒ±ÁbMºR÷ª9eºª¤›‹S|‡#…~ô'ÂFš+YZZVºà‹ÊÂ!¶¿’ßµ*#>Ð;0‡–]lu!Ò•*!¿ª%‘¦ºfÙPlW°^®k++’ -ª*Ø& 1òIá<Žá¯qS£à[Ð×à}ƒ1’8Ü®öT1FĶ9ǃÅt/=F$‰{I¯Úþ‘iXüÞÐWÝ®„}khSéòþ¯p¹±vÁþ·Â•ŠÚÈŒܾœþíü^‰GUÞ“ S++àþ¯èbI[]“@´kÃW ÅGfðsdD–áð6i¥ÖÖŸkíR!íJ#?5¥•V6qCN1Ä.r]ç©2S)Ÿ°ð””¥•ðñÚèêAf.V­Œ8+Mұɣ¬@˜¼-[c}æòe¸ÐÜn;É‘)¥°êQ¢ÔÎag¥ƒ)äò·RȤB”µÈq8Ø-·0ÙÎK¸4½òЕP¾u:[&_Š ðÕp‘1v"8H¬fÛÜ IýB€€™"Y c6-©]z¤Ô(ÁÑßE4 °MB|EI2S(oªv¹ ðÕsì[Új«re·G€ãá°œwžµ5”¢ŽBZ<—öãÅÕ ¹½ ÊIùöõ[ëµã)N$À]—Tä‹´…bSçßøök -œP ¦…¾Á‡&pJ4„÷¤M{®†,÷ŒèFÃ̵ÔëüÐ-¢J®uexœœe -«0¹™:)Á…0ê=O3”Hû™¤ç -¤èäúJ=œ+ŠPÎd $ø[60 :WƒlöÒ+—†Â=F[EWšM™äîã ù‚m(×mâØ·ƒ@ƒÂ¢šÖ`lDŽ -©dUâH8“ÝpùÄ‘ìиÙýRDUñ€"roN»ñ­µŸ·XÃKR7Yò“#]7®‚ê˜î 34*‰ãÛuÎ^X—êég0Ò_.¥Ì84m39[Ž¸´w‰ÏÂ9ë ’ÀdÌ„fpÒKŸ_Ñ_Òì`4> YæŸÀñ¬ -›7B 1T#ƒŒA|ø3#÷¡gUÌâ8Ý…âˆPÐ-f=½1àJá èFôjݬ¿bVtái©ee›¤€‘øΨýgcuO]ºh×Þ.UZi£—ÖE›C^ Ÿd;G1+n|ü>’š"oš,ÞwÏWy¬'ß[6¹ ØÒ™ÊÜ´ß;ßoáxî5p<–ÅÃi4 i<Á2ëÞœ\~>/XObject<<>>>>/Annots 674 0 R>>endobj -1171 0 obj<>stream -x¥XÛrÛ8}÷Wô›4[6e],ÉyÙÊÅÞumìd"e2»¥ˆ„$ŒI@C–õ÷{ºAR“šš©Iʲ%€ÝÓ§O7ôûÅ®ñH³§g×Ñ5>á—!¿|ù×Åh8ŽF4M¢kÊh2ãwx—Òâbx3æ4œO¢ ¯ŽÇÍ;^…!Î&Ñ”&ó?‡Ÿ\ÓæâÝòbp?¡á–ö<Ïh™ˆãkZÆý¥£8תÐärÒ‰)è§åoxæ䑾-bg7fí]–jk}:º’²ÒTzMÅNÓÓ’:Ñ9}v©‰t‹.¿ ÞÔ6 ¶ØW¤_u×æagâÏŸ_]Ó•€²LúÆÆi™è„¦Øµ­Ë"˜˜6Ö­+xÃ7—?ûBÆÙŽ“ˆ–; xŒ'u)9‹ž–O0L€{`¯/M¡Ö)l ±Ûn\¦Œ Œ–rÑè¾ÌZ~I*-v®ÜîÃoÆ&þoo:¡ÅÊÒZð:ƒGL¦Dn;ç„l\òA&Mù(t. ŠÈ„‰,ǪNc®·Æù‘žõ1©ïŽ¯ž×­yYs:9Ù…Îö)¨ä#ú·;hÐàR–7&…ƒMî2y{"‰„”—–vj¿7é‘´8 ’³ÖA9'ýŒ³§ X7,mê’b—eÎF*É:y‡Õïž<k‹ìèA’ö¿hk´-¨p´)øÄÅÁ±íV|ÿ`ŽŠ¤wâ‹ß¬Vâiµ2vÓ «æ<„–ì`m¬B¡Ô¹g!2*-Ðô&EÎñI~0^Ghž*Z¥Þ!ZÅ!ã%1¹ŽQGætog’DÛ^ýàh -]A™-á»f Ue–‹Dçza›çµÈá2ÏL¬é³ŠŸiL«>#Í\ÈW?Iè'›H¡vݽ¹Š´ÂÒ7u’ ¼ìáĪLÓൃ$ˆéHŽÛ«êíôôS1ñû©ÂŽ×<*QVˆ=ÐT‰N°‹¶AòW”!a¬”÷.6Ào«Š©x³ê ‹™‡ ¿kM:@ƒÍÊÓA§iEÌŒ’—½óÞ°*©Ð›:ÅŠÉN;%Z9dõú´Ù s·3)Ž-ŠZ¡€öGr›öƒ5[jQ~ =a½rœºX—©"B;ÿ§sGo“ÌXV•°þ(’zQ&mT´8Å£‰sçݦ—ƒûZÝ[÷zZA'׈ì?ÏÁ‰«©ý`E*åTÛÜ•û”2“âŒ|•J7 ö´vB&#úÈÅâƒñæ9½ÿ€‚nk=jE¹ZÎ¥~µÊµ6Åjeu¥0vµªDë¤äôM¬¡:´T«r:ø«HC -òsYlsµ^£*¥tÄ\Åó¸šb®fÑ|ˆ¿yèƒ,¯FÓY•ÍºdÆ£¯£ßr<ð¨÷:Fʪ­Î{’± tëCŽø4‹´Šdm×°€’VË *0ÓšºÀyë—´kûeÐÎ|KE…)È÷dè Õ Kª·M£h^ƒ™Œ)H8ŠÇXWiŸ\c‡IÈê×ó7¬PòAr°¿ÉÌ ù£‡úúš2µ¢-q†`Œç›ªÑI+ÁðÜHÉ9šÌ&sC ôã1¦}ÉÛÍu•·zl®–›Á¶¬6`Ïꆖ‚~1ú …žƒû?ß. ·`[à{V -“É©¯H‰¨úÂdƈ'¹=¿Õä[êӦؿ ðe¨cD, î©Yï>Þ-Ow¿~]Dw¿Þ[’K,µxÁYªs‰)…oLç”øþ°ˆ'Ú¦±ÿvË—R=qñÅ(>”Tðy¨r•ûk‡^|ùeùéÓÇ?8w+uApìŠÂ-n|ûÍ£á-~ oq—‡£hÑ7žÿB«ÞétB±A+:í’!žá‰1C‚ŸLÙ#yWæ1j}ÍÃåY¨©2|*Œà%Þ„›OÊBʪç/éËýû^è‰‹Ë Ü”ç› Žë -Ä4$ѧ)«l­N:ÀåÙ¼à.%=cë\‚i 7ô¬J¬[mu®pC~|‡²F«b­ÇýRII·¼®sܹp%õȶ‹^@”›Ç•µµÎl2ƃÀ*w(”‰^—¡$ᘺ-"Þç($°R±AË*p€šfUzšÒ ùç¯ D[šž€/ä¶>£_ÜŽi:¹ ãüâíã»·ô9w¿aô§mì…äÃ)¾-˜éj6½ú3t™à{†Ùtn6a;wË‹Ÿ/þZ (|endstream -endobj -1172 0 obj<>/XObject<<>>>>/Annots 679 0 R>>endobj -1173 0 obj<>stream -xÝX]oÛF}÷¯¸/…œB¢>-Ù}Y8qÜ56Nº•Ú €^F䚘œa9C+Æîþ÷=w†”(º‹EÛ§],~ÜÏsν£_/¦4Á¿)­f4_R\\L¢ ®ðÇ”?~üþb¶ZE Z,®ñYÐüz~ü–Óúb~5‹®h1¿Šf¸»X.¢eóï¾Ý\Œï4Ò&eËëmoB›øò“–dRr{I;i%JdÚX§brÆä–RSQ"wu–)QY™]. KÊÒZ;AÊY™§ýbjŠ…¦ÚJom”)2úÍæËÅ„FÓ9âÛ$—logÜžl±KHè„4ÿá ÙRÆ*}¡Ã^8xŸ”Ëg™{ïù±ªÖ­eðRÀc)2iÉhoqÈîFÞ:»¿(6:õ¦’¤4‚)ɯŸ² Ûˆ6(K'Ÿ`%t&)­LAÓ^nÛK®c"SQçnû†£Nh{9E{uÖL•Ø훨12[¢­(ЭFudE{™—iS!ÝÞ ˜i'@T¶cS”*—d}#jË Â«lo|Õôü’²8¦Q®¶H¸¤4'S•ç(Fœ×‰¹S½|·PJ°(-*…ºsiEž›½ˆJ8'Щ,Ùñ7.:¦96ßñqè7€K‹?ô‚ª ûW†Ðhÿ~ó¢¯'®}ÜêødoãRUÅ™tÞsç[,Ä“‡M¯m@…–1à ¢*DÅÁÆ®ÊG"w£DæÒIŸgføNb¨AH-1…@Evæ+3ÂÖiªb%µCÓÙ\ -놌­¦-ʆ@*¤/ܘö!‹<™Ô²ìœ¬x¯ëbSÕÖÉäÎûµÑJŠÔÉjØO¹—&GêðŸ{nJ µ‰}~Œ;  ú"áÓcǹŸ×¾m(’´¶.î„ëùc<ìųÔG „@óü…ìÞT¸Ä´W ðËE05fm†"”È$â+»ÍÊ O¾!Z»ší±Û.ãÝKÉÁ"¨ jC_g–(†fƒRF/ªà”®eŸˆkƒÞ@Θ„b 'cÀž!™*ôtö‡µÐxü-ÝNKZ Hhƒ•Õ³¬þõûœŒf‹èf¹:‰ó­¦õã[’Z@å‚EëÅ".“º(åâY¨œð"È{#«Êè’öΕßLJÃ!òï–‘©²ñùÓþ=~:¢÷{"çÖzýóOž"Ë 4°ñ€dµJShKêOZ}õØý¬ô|F{Œ.;ô: Ü2Ss#¤Âz}îÜO×~¨ÐZP@䘽ÇO±6‘µ}¾G®q`>ý,‚zTqe¬I!8Äb¡VCúpC±èÑhåð.Hô$"BC £Á³ -ÿ¦tœìÞñx•«£ÕwwäÏÞO>1-À+dRÿî®e;º½Æ×Au½’wº‚ƒYˆšÝ«’gÀo{íoÖ„«Úd4ú…³ŸW5„Ê"gùÖneÞQr5|‘ X²JEÌÚ—BÙ¸6µ£‰Ùé'ô1Р  ¯f)ëåg4´È‡k¾<¸Ô:GWYϱUQ#ú¹‰EΓ‡eŸdWd1´þØzÿHÏŸ­w°Ñ[êAx‘E9[à‡ÝBŠ°*ÙoÊœcKáRŒ{ëuj|¿l•¤3TþŠ1œz8¶zðñmF@ÿù46 0GÀÜ|åÄþÂÑŸVG8iÿ`ÄÅj<Úäž5£bÿkÂA/Ðøº„\°L9Y6{Ujxk`+\ ærƒO\êUI Côó q4_Ü ›m$…}Å'^ã¯ù!ü꙾›ó¢àµ€¯våÀܪst—* A¶vÄ`z¬#j>/XObject<<>>>>/Annots 696 0 R>>endobj -1175 0 obj<>stream -x­XMsÛF½ëWt)Ñ) ü?”Ë–,ÅŽªV¶×dÖåZîa ‰‰€ˆâö·ïë€)ËI6.UIf¦§ûu÷ënüvÒ§~ú4ÐpLIqÒ‹zxÿúüëãÛ“þ¸h4žD*h0Gýæ)§ÙÉdõhÔ¿ˆ.xqrÁ‹òÄ‹ýÞ$šÐÅtŠ=¼Ú‹†Í¯ú=ì¾À™)V‡½1ï•'9;¾Äµ¸|Ì«¸¶}’³½?_LåÞáå„%É“¬NÇPvx9 -gÇ=Üždu0Æ©áh,Z G²*O¼úz~Ò}sAý>Í—ŒÉx:¡y*ôhžtÞ¹ %n½¥*Ó´4¹ö´,]!ïæ4Óåƒ.ÉXú~öy6ÿéîãû÷óï‹ÙÖWº ««ÂÙÅâ‡èªÜ«ù¯'=:ï¡ð<íü‘CÎÊeŸ\yï+U<+›’×­uYïñÊ“ò´u5¥ZG—¨õºtëÒ¨ -¸’·•äM¥#úŒ“çdµNI¥…±ÆW%nyÐTšUVyj±{„ TÖûÙª¨¹I†9s$ $¾“ |XÑ'cS·ñtù("Ú-Œ(äl`A˜© ›Zi[í~ròúæȬEg±ãʹÜïÐ~Ñ<Ó¥&`¨ÔؼG¹K€C -««Lp –PZÂä²ñpcòõ ™%Ãut³€e,°,‚?°?Cœ›ÔA¨ñ]!f±­Æ®Zt$Dˆ`yþ$6`Ü•çnÃ'ÄÎa•2¯—uN¿|ü;ìC08`YRnì½ÿ‘•E Ÿ·NùÙÁv·¤™*b%~s¿\Q‡²ªZÿØízÞ¹ru¸OX‚÷EôIS¦!Š -S–p›ÕJ⊾ã3Ý7I“Pç}ÐÊpÎAt,£…õ6ášå]>Àæ°aÜèÐ~й[ˆ‹Ã³€Ôü¾ Ñ`aPÉC5„/ñ:§Œ=ò ÎuÑí’¼;##"Ÿ`ÞžQœsª’IƒºÔˆ¨Ö…i*qÚssÛôþŠÅ­wfX"vf‰«*ºÓeÉéèMQçˆSŽÞ×7×kàm8?‚ÆÏœ÷ĆƋ›Í&ò÷f½ÞFñ.b£~ìú">Çm•‹²ªÈÏ}Øû7à|ìÃ?aÔU^e®^e„j–ÏÀM*/‚7S)`ó”ª-3–¢7×gtãRz­¬ªÂG÷Z¯ý »DÙ=s®Á8ÿ»XŽóLÑЄóu¤Ó:Ruˆñ징ãŒcªDÆfà|Úêoàê;ã“£Ì×·of`ˉ*#Õø‹IÙMÌÒww·®{‰4ñÀî7®P $±ûk¯x¦6ç\%q?J\Ñýo~Ÿä][¥øÿðì_WïÍüƒ0—(çòd7»{M~­“@xû0Þ+º6Ãï¨0Ié¼[BY(×$tÙMËU—Ýðª{>D“É„ú£P̓ñ¤!¸–¿&Ñ´ p[ -ü™ŽqK+Tofñ}©c<9ì˜ãýßÀ}_‚ìnù"”5&"E¶.b ±ãöR3g¤t *¢·¨I¡ñxF»<ù=Î?£$7É=3­0)¾ö’}OkVS¸$¡"ÙÝ¡`ÎhGê³z½v¥ß[Ù‘RöõsRþhç!bãÖä ²ù·*K³$m$b¨ówo‘÷¿”Ð*kq^ÙÉ‚§C·ÌvÔ J-wÃ7RVž·©³§èç˜"÷ZªØÕUÐïœõƒ²@‡Ýk ]šVE£¼Ä̱Ũq¸'ÈD¡ÖÞƒ2Y†³Ò°(9Hë\+w±P¥Ü±oë-®òÚz˜Wh Å—ŠæƒËk[iÔÐ3îG[‹ˆ¿ —-Úô`Â{¢_ÕªT|–UGOë„c­ÊÊ$(’èÙ´ªjNˆêð}e -´¸W½;þkLà‹OcÄ­ þ”o{Á¬ Ë88 -Wê*|›Ž_©ðÃËó Fm#²á¾fr×Ω+™'žbÕjϳ²Ï¡ÃGwˆW^ -©è¿-^áT[°bèè=Šož2X±Šó­xY¼Š°×ÃC -H>£17Ú¥4Àg %Ç„4@ǹu8Š ü×*Çù¿!œÁ_.!–+:ùß¼[Ìij¤…k¿ÁÝ[pWH¤VHä£èúŸ³]ãÇažòè³aBâŒÈaرQI¦“{È0h&ëoPëç%b^,Ô=º¸Ú´'r³Ì‹qiôò # OYKüµ+𬳜-Ìãí/å"…óðöÈí±FÜh“ -é\i¸Çúu}G-Üô‘¶‰K!½aO‹Nƒd‚¶×ã81q9”>º ºt=æ?˜¬ 4Ë[¼ú^žäÁrGNèÛÈšeµ¥ÓÛÓ‚ Oærƒ¾ÑŸÂZÄ¿ß{”3G‰ÎÞžÙú©ÏñmVX ;aeýô°^ò©çÔŸè~àÜqxa_ÌK<â2—£›L2žå8*……d¤cfcêÇ_Ž ²“ôÏ0ºk Î4˜LjÄ‘Mí±”¨ä\:° 'Ô)dÖ$*èN ×Ú!BH0ÂWÖ%_Ç>)MÌ\{ts!v"BØC¢5«Ê} ·íÛ*kÎâ@j¨SmÉÙ æe‘&Ætü~YiË7<¥^A•…ËÀ’öU‹¯b§ËðŒÝÁAÏXW<˜j•ã-Ïô0H1ëòL$ÙlÙ¨2$º•vÙùBøôõÁu,mÝg°JMò:}6ÄJµR2p=íwr‡1C¾)mJC :×°TÇ5Až;å3‡æÙ¡ƒ¿ƒ^DBÅþRDx-Xiäyeà3¾#Fèi+d­Øïì%$D¥ÁxKyÄìÉn -^ó/`ò,Ú.xˆxÆ“.xÚ4|ýá4š^ipÉ×:³«»×Wô¡t¿2ÕÜ4S¼|‘˜èããco:¤óÉ@æ—>úl$טð¡C:gf+i¤¥Yæ/‰“ñ4|i˜ŒYÎOó“œüäî:Ûendstream -endobj -1176 0 obj<>/XObject<<>>>>/Annots 701 0 R>>endobj -1177 0 obj<>stream -x•XÑrÛ¸}÷W܇ÎTéÈ´$Û’¼í´cgÔ3µãµÔfô‘ ˆ˜$”¢¿ï¹(ÓÜô¡ÙlÆ àÞsÏ9÷BßϦ4ÁSZÌèrNiu6I&ø„ÿ™ò?/ŸÏæ“dI×ËIrEM¯¯O¿•´:›]^%—t=_$3<]Ï“IüŸbºž.°âj¹ÀÏ3üo$ågw볋OW4Ò:ç³çË­3î„Öéh3zÖÖªmyÜ| ‡œŽº¥Bì% JuÕ”ÒIª¥«tMΈTÒfD¹Ñ¹B’nd­êéÜÿÚ¨F’ÓþgiŒ6´ùðaýíì|BçÓKĽÎF¼*j²²Îü‹I>Þ>S®Jié Ë2á5ŸÒôùø\^R·Ãfv=¡ðJ—W|ã|6t8ä¹”Â"”BÕ¯8Íȼ-Ë#me®ŠpN¤x´CŽ™NÛJÖŽÃFT²ªL裮­Ê¤¡FXÇ/r²F–r/jÇG÷j„q–TóÞêìØáQIkÅN&´Ær+ª­ ÞŸ7,•Åª°Â¹T´; ÜV[ ,©üÁ ÑCGe‰’ÈÌ—¨ñ§UC¶Ú&©®sÃ+3¥L™:mŽÿø9²l=dçø³«äf¾ óË›dÎÐþS=ÐN:Ä -ÿ.«xHW@Õí¿ÖZ>ÚZTŒi¥÷ÈÄ3Jü£qĈ %5%“Ytˆe‚>–š”óÔéÓí3#ì+ö^mfG#*œk~¹¸ðµH|}mvïßöå·Ç”–*}%!Ä/Á+ë¨Ržé"й>½ ¾Ž8ŽhÕ66ž=o‚t^ÿk]h+O °P8 öòpV‡ø(¡/ ®4…h,„&ßgäÝ&ä/ÍàY—m¯hQK™®ÿì¨Ñœq µí¤ÎøA»¯^(*ëÊ:uRàë·ïø'9œñG¹ˆ-êïã{³‘e@ÖÂiÚºä\!p´Ñ)ÿ’CAXŽ[ >Ä1I’à3=Ï€Néfì`3ƒF74…ÿåàä2™ÞàLpsɼžÎ’eB¿jàZ³þÑ%Á.諪3}°tóãâñþ=гY2›L±× Ê» =×e© †…êøQ:lk©jÓ¢3mÔNÕ¢¤_¿<Þ><%î‡ .عWºµ0,U§e›!Ûƒryx†÷XñØÛ²3ŒÂ–ÊÒ˜1Y ž×JÏ£ôkȤ“9èÙÈ”—ÞgŠcÓ¿-§àÏ|Ÿ5”°=Ò‹J a2~Ô×Û -62ÈðŠๅux€™õ‚Ú¼îŒn‚”Hþ©CÒ'©³}ï¼™ISYÆ ˆ×ÐÖ "xœ5S9H%kø÷dW¥ 5jÛ:±å>ÓâŒÚ©Tøòds¿Àja­¬09wŽxì¹€‚¶ˆ´Ô¨‰ÔóÑx ,¡ÛÒêññA$a *_Àý¹ B;ƒ¦‚ó°Qk¥A/ñ¦z$Ûú×CïêÅŒvL'ì×ቈPj¬ÞK38}3zZÇ'Þl4rG¯8Z'ê‰&o/Ù`TRÙ1÷äLK㈛ª Œ õÓgªõaó¡ããÉã¡€ÕãÛ û3V˜Ð’¸ÓÅúØ–Ûí°Î…*øºIĆBôÙÄfÖ-´…nKpÈ4ÃN|"N+–Ÿª¡ch?'ô4 åmíU*Jå|/ !r|à@ÇPT³Àšr1¿‰ÇȦD]PJ°ãîåË×ÕÃÓgÖuBŽbä(x­Qîq jÇdÏ\íÐÚƒq×jf±´¡(C´¬mQœ®)àu/åyXÙi¦Ò™,½Ð †´µlˆ“«ÜU‹À•gî²õÛ‚ÝÆ1ÀÔ¨Æ1aó˜ ›§:86\ôqu2Rþµ‡+¿ß{zó{´Ùžz—00èý0r¦9Æ7ï ïÒˆw”ü -±3Ûz´dùv”:([ ÊÔ -Êh‘¥Ìv#¿`ˆ•£]1<3ƒùäÊà5]óà;ÊÈÕÄl¦$é›Þtö <g*<ˆiƒÆBa»f ËÂ`keäš¿È*…0ˆcšÃ,e'²)€B2óŒCaѯy¶ç©æG^]ÖµÊ0í#ãÔH×ÃÞõ%ì;#X è3€ïRyÜ P F^dŒI•mæí%°8•=D–!&§|êXRYYî ìçj•ªº ] +㮆™g$‘<€Áê3êÐ,}oRíšš-ßb•´Ô8–»í^ãôèüцŠ m¡¢_äýÀú1‡Ý¼¯~65Ñþ,#®rßÓ0Ž¥ì•ð|% ¨ý5,íˆnZðsPÛ­p ¿¿'˜Ðà°c”}'HVF–º‰ù5œŒ™"¶HÔ'“öÕi4]¼¾žèêv˜è]¸,•þq<‡ïj×ë஀½õʵwìd¨³+ V¯ÔšC´_•“ øq*Â4È“+6Xû…ŸãÎüv€šb9)•ÇÅßÃsOÀÝ0¯¨¶Ý¦¦ª¡Á-á_¾F±‚!A\¸²ú{" å5w_Väo1a‚ûÛ4ý;·ÉþãR¥ FN ¶GÞ5àîp -’¸µI°ç;Í‘ý#|1»hÅ¡q ˆ8x<;%·@¢6ø³ºùÏý‹/9®×Ô9å4ñc2>9Ý÷ÖoXãT?ËÖг÷Kß²Ç\*8q2„yÁû-2µ~ó; ºýd‹aÞÏÿŒ†/Þ‚w;¤}NAwßÌBП–ñ®5½Â·ËKš/–É|~ÍÓýêöñî–žþ†Ø1å‡K¿'0ù|Š¯UxÉùb†oEþŸÛÀÕâ*YÌ—øjË Þí~}öÛÙ°ÉFendstream -endobj -1178 0 obj<>/XObject<<>>>>>>endobj -1179 0 obj<>stream -xXkoÛÊýî_1uQÔlÚzXEaÇö­k;”¦ôeE.ÍI®.—Œ¢ß3³\J¦Ý¦m‚8ó<ç̬;Ðþh:¤Ñ„ââè"º ËÑ?dz)~ñ¯Ò”Êù4õ¯_/ÎïÆ4Ð2e“Ù”– ÁÎÅ-ã“e¦)Î.kª3]Rbµ#EºþúâjõÅéêWûlKxù­Ñ®>¥mfâ _ëÊèïx¯Q© -M6•Ï ^ù££œßú°üvtAgƒQ4„×WfSG|õ …Ë£ˆø®œ 'јŸì‡Û²Ôq oVœ >–ËòWeBN«*ÎPj+¥þøÖ¯Vi¥“Õ*ê¸O¹ÞgäRu…eê/Ä;âм©ßäçõ{—oR;•*¢M?¥u?þÜÚOñOw÷¿DŸž~õÜØÜĆù¼FtÏj>ꟶ:À´÷ÊðN¢A‘¦>Ñó»9  G)„é’ÎÆc™Á0šEƒˆ>Ú25ÏM¥j¼/]]51vbÝÚê…D¥g±—a´cÈ*,*W03“¦ºÒL°5^ÔbEŸn>J ŠþÄnÍxYA™êL¬ƒi©š}Aè;)ý¤œC( Á|µÛH¬x”‰Éš²$°ëF`p~·CälÍx.!þÕp2éÞç&7;Áß~þpÛ±7±â}cÓÎQ¡âÌ”ªq5©8†R×îòz6DCæûœ1>*9z(Z¨bí«¹5yN*w^à‰éµðUi[ï—mÎÃa4¼àñ„ôF~”a.T¦ÞQa¡ALÍB9ž ë -ÒU¯åBÁIt1¹lûÎC‹ÿQª·ècÁŒ“éV¨Ñ4tŒ' Ö@^6äX¾~È.Oƒˆ$GÊÅšñÂâJ‰^«“à`ôxoœkdLo3 ¨2Â0ðÒ¾°·)Ý–MŠtc¥À{]Ù<Ç›À¬;¬TŽ-öÙ -<–-@°ÆÈròeqûù5N$²e¾{mµÝ5¤m¨0*A\g¥‰U+Î1Ó½ÝÎÕâ¯WŸo{¾¤a|í 8!•ÀúÎÀÍÓÃÕýcßw»ïéöóßߤ屌s|5G’ßèô]UÆkäcñp-CrlUyW" F»]ÅuÃ6Xó`зÕqxÀ> #s-é Q¢˜¯ºîiQp(؆äQßfä^‰ZX‹R •[ñ\YfK²Í2X>{VÝ|Œèkfl -…n!:xcê›5n¿BœêùlUt îÕ‰’­ éŸzš‰?4#ñËʉR€W_^ÆQ\ÃeÐךÒWX¢WÂD`dõ]?[‹Ý1ÑŠ#t6¢bb»Ì6y‚&ºX39¡¶R8µÔ±ÒÏð)w4yìü~°æYp}ÿ´-™¡nD§2È 1a)ëfP&¿rŠ6ä6fzó£Ráv,„'Z]õy?7ÆeÝ4Á+½â¶ÃEl=\ûB åéŠ%ÙÑÖøeo/üšÛñÑßÀLë$ õÑni­bQ~¥S `I:¸·„b#}¨¢¨ªH -W¹¤ãŽE–Ë€oµ½—YfiT4øð\»h5ës­$@Î:½ý®r“p™yka#|ðàßž€œ¬%ÝóË,¤”'‹CÛû F¸ -e»¬NøÛñ& hÒñê½”<îe9Vkì>©^éùõ}à¬#šÏÿÎaµ)0þ¤¥>ŠPø‚ÜZ=ˆ;uXOh™Dž]=§Ò Ð¿€wšpŒ=µÂ‘©ÆiÔÅŸO‹åËÕêDN˜=*çÅm'óîN©2ÏYý—Õ~© ¸ «@‡‡CÌ­í XíÔj‰´08Åá/Ñ©)à€G®ß'¸ãîözÁÊ â…kç´ßExíoEDå[µ;À¨£c -Õj2HÕi®­]Mö›i»›Œ°•úÝDöÓáÞOº¹†€¶ªàš|a¼jÏ{œÑùݤÚóËh6DMgÑØ»x|ZÞþÎ?~¹pÒêήÙll%d=.Û”f­·é NF4ÁÿÓ‰l[‹«‡ë+Ží¸H76nx_’Ù)ýLðËوΦCYLÿ¿ }<ÃáÌï¶Ó[¾]ýíè_Šq endstream -endobj -1180 0 obj<>/XObject<<>>>>>>endobj -1181 0 obj<>stream -x¥WkoÛFüî_± `Ä$F¢=ôCœ6­ÔMmÁ‘<Š“<…w ãßÙ;R”)·)Ú$ò»³3³«ÏgSšàoJËf Š‹³I0¡§ËI° ùj‰Ï!þW’R÷b¶^Oz1]†¿˜ONŸ_mΞ¼œÓtJ›—/VKÚ$„‹'ÚÄW2Õ¸1Q&®QåŽ2ÝÕë2U»ï*- -~±¯tªriF¤,)Cµ‘ióZ#¥Ûö»*×(§› Ź’¥5—›OgOgAˆ»/T±Ïed3i­÷˜ ].‚9¯ó§µgà+èFÚwFV?I{]¦`}®¥ÁIšâꋬøÛNºã9Èê±9ÄN¹Ž…Uº ègÝH,ñÆA„f¯K„–hi¨Ô–2ñ…Ð.„aä^TÂÊÓƒ)U2OF¤ËüÎÅÔFéñe¢’m2ÀWHQ¬vp»Ï»C›°i[©ØÊ„s‹$—C•'Ç'ª’±ÕÕÝPöå8‚òíó_^é.éÍë–#j2gL+B,Dyç³âÒ—q^'|ÿ.eFf —¤œtzo—Þ dêý^WÖÝ­bº%*MeÅ´á ¨æ~òr}àù8\yMÃ`„Á4à-‰n ‰-¹8èc‰Œ;nÀì6ìíd\.ïw¹ŽDþˆÆL*ÎÑQÀÚÁ3ÏÀTç¹n±íG.¿ -Àöò™¿xBk/Íq8÷!ç®${a3úž¶ø×ÁàØÝe2¾ñòíöüÝv[@Ðí~ø@z¬® j“ÈTÔ¹Ô2'õÞ¥O|íù?°=lD¥($XÍïŒ("áå¶Ý2ÅùÝ!®ªtënÎù €Q}QñPg¸'® ~ÐZÔV(G,rÜyé¼gц×íè:¥;];IÔά@BÄ­€ð_&]ØÈ-ÿXÔÆ~p³·Ò­uš$³—±“®¶GEˆ*ÐFŠ(—Žfa„“)Ãe°š9G{ŸßÆ9… QïÖ S;dÃ`WÕðÎc Ô…2vö‹BSNrX •-§¼µ ¢? Ãà#i)KÈmÍzüï/bèæ× ']y×$û£KÙÅÇöNÌ™àƒgM§§ñ!çu—s««°×¬ÿ¿è -ÛZ|µ\œËç‘/óà"«@2+«€Þºªg‚ݹAòÈ>/XObject<<>>>>>>endobj -1183 0 obj<>stream -xXïoÛFýî¿b /r‰±GvÇIÑ ±ã»(×+ª X‘+ic’Ëî.# èof¹”ʤÅáùArgæÍ›7oýûÉ9á×9]ÎèÙœòêäÕâäé/èüœk<™_]Ò¢ ³ìììŒùéù,»ÊfÙEF¿˜º°;O/þC÷ήM©éƒmódñ'\ô'Lgóìgœþ²Õ5)j½v´6Î*íÆ“©ÉÖG§M(l5^ÀyüjöúzAÆSî´ -º˜ò¤^°e¡§Ñ‡ \ []·£ Ç>£éù³lÆG¯µ¶Mh„7NU~Dª.ht§ÃÖÚb”Ñb«½¦Â8ëŒÆñx9G¹­ƒ®ƒ§)KZiª´Ûèÿ [I³´¹*Q¿"-ckOçáe˜¿\.w¯å²‰hùå’ë«U¥ß®¼þ½E4†ÅÔ8¨So$Ne2äÇkg+Ò*ßfô«mÁ%ÑZ#l°ŒŸ|ýÛ¦´+U~"ÛÉlÔ8í¾jÊÞùöÚ3H~kå÷FÔäm¯ko‚ÁÇ? ‚×v$ítè ǯ”©~#Jc‚*©Ô!pÓð_*o-þ¡ê=ÙµäÚ¡“ú›u!‰Ð­-„$Ü#Ä@ÛÐ"¦£:ö\ÅZ;]çÚgôvM{Û¢o}³¤ëµu¹½ùèå p–¦öŒ”Ðb—Ý^ß—`M¡Q¾«hçLÀù9¢{Ž¶à0$aÔú±x_KÖý8=lùÖÔzB|gé:[Ò½ªuIàOïwÖ‘¨^— ®ñ…§YDPµÊ0‘ütPƒäÀ5P¾@K¾âT@ପ˜nGPd8óÿó„Vm ÂÒçÚ†Ï µÝIÌÜVM‹žr¢N¯¬ Ràú‘¦ð<#Nÿóÿ׌qEɨþ¦42ÖÑ­Éõv¨{ìéŽ4=’p`ADƒÆïì†G)ß-èµešŽEê ¨á[ÈKتê½3•r{Â7øM2àúm>8õ€`”œ Fþ‚0±~!œÎžÓô9˜ÅícÍSv ÍäÐzÖGhs]ZU Å"Üô?ÕÒÅVa”¿y ”wT8ÝY°¦ìq‹hG"'y“€”±¶åÎ4¡Ñaj˜L—NüÀªäÒÔ' -uãû—™Ò8á mún:I‡ ˆ„§™£é hE+HmXa"! 7¹F5ÙluFù¬ŠTEê"Ô:bPcxÖX–}K&”qee ‰ÂýÆò3¡¦€ šÌÜý õA«‚súÒúá¼>ûªïͺË]÷ªZ±2îÍx$‰.O1e¢ÍxÑ¥GH_†G?¢2¬´r8pôä¨FN¾ç€jqdLÎKý_ŒG—KÏ¥!e âk™Òøþ tG<© -»µi°Ø°jÂòÉDD,cpZ¼.:P‡M{n N’þîc¥ác|+Ò¾nËrO_UiŠèNÑÄŽ”Dz oJ‘$>^àåþXë·5°ÙÀ­4¾Ôc)pËË×ÒNóiŒSAåûG·hŒ=?þË -òΣÊBÝá‡Úùw†§ˆŽj"`‡·eÁ¾H­`× §ú‘—H¬7O`%`— מ|£s³6¨´cä(6¯Qa;°T`[Íš—m§ÓÇ^ïï,áý÷}`ò$#-îç.4 –)ÙϤ*9v6*1#x» ëcôm#¡Û`~(G©c»¦åi×ON (R1Ä _Uزª˜ÚAVâ5jz9]>/ivP™.P¬¤u8¼óϘp±bSöb,ãž1õAÓ¤ZñÀRAòj}§Æ´gLÿ0Ò Ítï¸÷X…\SÚ÷Md="ש^Ay5¨‚%¶Òð±)p2rO¿.ApXMµ~쯫Òû}¿É ãØ€Ìð^h)v÷†õlá–|â—­ßH_ŽÖ÷ѧ­<®e°À{¿0 -ÀˆM×÷¬è:Øã¾^œ™ïTŸk£þ8íbB¦…K|;ŽJUZû€Ü_v}Lö姟ßüúùÝû›ëwŸo¯o~z{÷f¹ìVÆryÓ:\›Â¿ãÝw¹¼—Üwp| ç“ÎéÌìÓ¯ºŸœ_̲³«g4ŸÏ³9'ýáúöÕ5ÛÙ/|µymó¶ÂÙŠï®ñ°ù¥|0½œÅ"ã%ø¦´6›ÖÉ›ô¦Èµ¹Üx_òÏ&‚§¡u7lHºDÅì^\^d—ó«ˆÜÕÇz³8ùçÉ°³ìendstream -endobj -1184 0 obj<>/XObject<<>>>>>>endobj -1185 0 obj<>stream -xX]oÛF|÷¯8(ê-ɶ>Ü'§nZáÖ*Œ" -‚y/"yÌÝQŠþ}g÷H‰¢óÐN…¼Ý™Ýó·‹‘â÷HLÇâz"âüb Åõ|Ž?ofSü9Æ—Ub}ñ~qqõáFŒFb±¦g'³©X$χb_L%ö:ËÄZ‰…P…·‡¾X+”ŒSQ9eû¬ų5k©géÓH<¯„O•ˆMáñŠ£'|ªØªƒX^fz«²ƒðF¬Ô»Å׋ÁP F×ѱ/ã»århfï–Ë2œŠï(P!sµ|ק“ ‘¨LÕQèÐV|ÎŽ¢[õ­ÒV%œeDg<‰n(Χ߾kÏIZµÑe •hoìg~òê䆥•ÛëýßOO¿ÓI'Ø.ÅerÒÅæµã?‘JŒó"C8d¥ ~®ùò’QP]ˆZYü„¤ÛÒٹЄ;àIåN¿ƒÐyi¬—…¥™rÂ!#äb8mQ‚ÛzS -¬‹²†œ„'œ—Ö‹\UÔ&áœêv¹çærKI±’ñ¶*)CÊ‹IRR°ÈJ%*Y¾ë²¸ Q±B¹Bb]­×À™´*7»†ŽÌÄ2ƒö¬’ÉÀ_ª“Br°‘säå» •‡ûEÍŽ¶djEžØì ‰ zSü¨WÙë‹^¡|jLBßžÀë¡ìDôpÞÆÊÜõ Ú,QÖq…tätâ:”>ÌÇA»NI‹æ£.¤ˆÔ?;=¿þ)JéÜÞØd£=©vB´‘ZK9g ‘º´?Ƈ$—7§à -2³¸¬+ Ï*æ·"Î4:ýüíÛ·oÇ©ŠY›oP¢A¶„…€'§”è!”IŸôH™±Õ+ˆU®ÌŽ€lùáw¦ËÿÏÇû§€F·¾ø ã8VÓÔ>  Æ·bp=&Ñ# öUæ _©3×Ü1d†;™¯$¨IÔªÚ@øR;<¬ÏïôwÍB !$”sEg« R¢A,ÊʘÑ!tÔè*È€t—I•s×Bl¹)"õ]…3c¶¬ê2e-¯È‚ÒZŽˆBÈïƒUırœ&Lÿi!€ìŽœr+¢uyþµF椳š>wª™0pÿàtÇs×–£}”[¸ÓYÁ*1ßéì0JèûRn£â(êNàD¨æ ”NÚ§’]¾\¢áV¨R¿ðëì;™Aʼ?'|õa~ ãYhÅÑ8šEãJ­{I¼»E§{Âo¢!Å>Í‹⯄¦äþ­A`Ž»ÕàóŸÈ$4p£ä£êá„$;Œ–H,` 5#ÊÉž8±Ì®à¬f/\©b½Ö€Ñ§ÖT›”må¬ûJ õaàZ†b<ŽÆCÒxÍ®ylʶq&FCYmæSLD àè@¨Ä7Ì¡¿Ä/îŒAÕr™š\Æ}`/Ñ.FŸÓtòDÈ Ö©h¥b ” -@¡xVp.uáñ¼CªÀp ^ñý‰C.e¤ •¨âKaü¸šq¼¢´ÔŠÕ¤ ŽV*40@½ Ñ©ƒp>wÒÛbúó¸Øô¡OT€ò(#:Ž6N•5µbmMþ6ó°´ Þò!à|MíUSðÄgĽÜÁ³ä -E¶H86­ô\/_w'VïTÄ…w]jª,!‘ Ú^z×ëäŒy¶£,lôvݘÇw!óµ*3Ç^,Ô¾ M,õN4Ò,s¨2¬¦Ç™ˆ.Dç5=ør\Á¾ tHh8†fÁó©Êà 7uÝ´ãTˆ˜ˆ<ÌN™„næLÓ}@‰yüð ÃìpJCäé4”!hf)aUpTÖËÞj¬µ¥²¹vôA¸gÖ×U–uÂ×ùœ4EHGaŸ89Ûy:XuÞ¶ìš[§î6lïä&”B½œÑ ØGD¹3UøM%Rh§ U岨0'ÌPëîÀlKȉV(šð¥NŒQP¡\•C5«*ÀÓ O,zEÛ4¹bpzA5$P](ueq«P,ö¯8&'î ¤¿ŸßöERaÚg@Âd‹F]p`zè„—›cÉêïPtÿŽs„hïÇÈ!<f,6XÉ Hí—†çóCk·¦Æc˜¦ íG -ú4ÿBNät©WJ‚¦ÀŽ‰G| w_–™®gÁƒô2,¤†z+Ìi©íÔÜ{7ÚfŸN‹í ß ->âVP/¶p°Øž #àíT¶&Ìë›ð }ØeM{7kËʲÄæËk ùN¸ºà’;Ë»…µ‚‰²²%<œ"Æ•ÅÈ÷Ð`Ulá}E§±‘±þÐX$¤3_ÂÕàWÜb­Éij,TÆÂ6åY‡M¿áÑÐæÁVïKõ ZþèxËrë{tY²B!,Zdز(›Ø }ÜlŽ¼®ü‡Y’¢±ÍáÆÄ»@“ßȬ:ÁÏ­(…¥®µ] ¸ú_´GûÊÂ1S‚W¢K¸xôL"ùŽ E3ºWfõÒ4šàG³küŒá&šLniu~¹ÿøþž®î_©®£×1­És(¿AóÊ`:æÛH½l ²Ö›Êwz,p{¯xv¸;ñR/íïz5ý‡4¢/—7Ó›h:™á‡$Hb6¢X¿-.þºød„¨lendstream -endobj -1186 0 obj<>/XObject<<>>>>>>endobj -1187 0 obj<>stream -x}WïoÛ6ýž¿â``[ ÄŒíøg€~H›°8Yã¡æ! %:æ,‘ªHÅñ¿w¤äjZ׶\›âݽ÷îÝùëÙø;¤Ùˆ.§”äg1 É`(f4žÏð~„W©h¾bò½/†ƒ©¸ì~ñ~uvñiLÃ!­¶4‰ÅhDÓùDL¦sZ¥„Hƒ­’7fû$£á@VÏ‹õI“±^'ŠüNzZ®è‹-÷ÎK¯­!¯²ÌQ^©=iG©=˜ÌÊT›g’T”v«3¤\ÚœäÛÕßgê/ÅA߸Ì(Óf/è°S~§JDÁø'_É,;âE‰têœlÙ:¥Ž9‹à‰5[ý\•1'í\…ÓÒÑQyØoE¬ÌÞ ¿óXM.÷ÊukzB -fÿOptN0¤D!_kBdI¹ôž3¶´QÂJålö¢Ò¿D“Àh*Æ\r„wt‚Wnù'ó¤T?+çQN‰ç kRe®+‡S[[™•™/à -¥—¹JÏ;¶jð4xy3£ÒšŽ:.î~Áõ•É”sÔs*©Jíô.„í…€=äR‹h ÏB:w°eêpø¨\Öoœb9€q¦ýãòÃç?V·÷Ká_ýú-“ØC×!šË(~Ú©èéBÈ46NÝŠ£­Êåêt”RAu€Æn9 §È¬UGeMAsœ¤ŒÌ)w‚T™$ ô409Vö¯×KÀÈgWCX› -Ü9¢ù­|xžÙk„Ðh_ÿ¢Lè#cË<¨½T_+]â¦Í±“ Ø/)É”,û^½úo¡¢ÆÀIGb“¦ƒs h›çæ`‰Ò&É §•\…\¹×€nxß4ïS”º{:ɹ©‚Ñ D?å•óO¬°…àú劫7×+p~²ç–1©ô¶<6AÏ›sw×ËXÈŧEmRýÚ¥ú£…˜_ÃŽÄ\ŒÄTÐm`4¡yƒ|ßoׂc[ Ë-ÃÔ[çmAйB%z{ ^e•ô;T£ã/3½Gu€«ÌlýØpeî—¦¨1ÄÀIt+ìh)±U–6‘âí|a. C:Ì9 UþKkÁó$òŠÍþx÷¾n`o™e‡e…"_|× ‹¹«]U¶ñßQi óà Ú<ÚT ôLÐãN– ÏC4rŠýA)C_“à ‘0ƒHŤ¦q8˜`¶Lq÷¬¡ñÁz~PMtùÆ>WèÁ ¾“/ŠG¥*SG{—ú¬–†ò -µ~ËúßIÌâÉ­¬2 <ƒ¢ Œž5þü´ÄëwÁ]Ô‹Ñi0ò`))ê¹)z;aýw¸êñeÁeú‘¶õš5fd®ÄÃÍcô¶-WÔÊ‚´÷÷qéµøx×AùÿÙ=ÕÓ£/^AÍ;«Ñºi)™ìÝÖ±(&ø7¹;ácy3Ê õªº›@„ˆw¨na©¬L\XFÉÕz}ÐÆxðèpN{’©ˆ]uú?#m7/ÚV8ca8®^5Vv°Ní0êŤo Îï¬óÿ™Vëá¤f%tj¨Û)OU¡ÄgÇì[ø>L°ØöâZF ïD­‰Ã# ÐaAE…ÖZ‰äN…¡L°–Žçm£ª·µÓ(ÅuÐ -ë%,žaՌƅ/ -¥½cZ´Fì9»þFn¢HSÛI'ÈÌë\]°%b, É0]t4±°þ¡¢°†Ÿ†+1*¬oEí£±êÖnCaÉäXíU˜¡Ùê¬qÄxoÜà[èØô|†_Ö^•N“ëzQ&Hc%õ¥äk-Ð2Ýã8öô”Zå°f—Ò¸-\蔇²kª°µò"Ìü·6ƒÿ|é7L]Nš‘‚µtsw}»|úp¿\}¾ÿ•WNºj¯ -76—Hñ§h³:3üŒ -«ùÏôÈk8zñ©™^£‘ †ÐÄB âò`ÓÌà}3¹îêaŸœ7so<ó9ÿÈšŠé"¬/×wï¯y’þ²èÆ&ïda­àgûCl<ƒù%õg#üKßÔS˜ómýÀ¹5ΗU–Ú+zTÞó|F¿|¶2ç·ÁÔ%t_<žÅ ¿óÂ¥óôquöÛÙ?ü¶¯Èendstream -endobj -1188 0 obj<>/XObject<<>>>>>>endobj -1189 0 obj<>stream -xW]OÜH|çW´"EÙH¬a² N‚@î¸; Ç¡“öeÖ㠶Ǚ³ñýú«žñc8]Ä ëéîêªêö÷íãoFGs:XPRîœÅ;{_i6£8£ù<šïÏhqü)ú´8¦8¥ýhŸâdçÊ’¨kY¥êm„%mÔƒªDQ´$—k#SZ·ô»Î+úbijëŒ ‘Ë%-E¹¸*JUJ8LUIѤx)—FR¦ÍÇøÛÎtŸ¦³ƒhŽØ“Z['rmÄwö¾,º,§]šÓùQt|ཾ‰/è$<¶-fB1ââ„’ÞëR¨Š>ëÊ]Ò¼óY k+ÉÈB8äá4)‡_™4ü¿®$ÙZ&*S •Ϧ\ ×*+§á”®8ä e— G‰¨¨©Ri™Š–Wg”úø½ÊÃRm”öñîU•ê¥ë˜–Ò—ôJy÷L$MýúÉÕÇÈKΊuƒm¦ñº¦›åޜ;bïÒ9¬°ÐWár_£‡ÁãOV•ªãbÁQÑÙ]šÌµM®’ÜkmPê•ŠBƒŒ ?`÷¸}±¦RT-ÕRƒ}Üoø[‡õÐG’5¼Þ…©îز¤’B -(ÂÊŒO¾@KÛAd²-\­D^ö¶kº™û^ùÀbjr‰¡¿Ì ‡À)蔵Ï]$•6}=@F9% -õO`“ª ·2üÏÂcT™P*ÁY« W#¿7pï» -¾.d #A–žd¦©<²à^EHBVOÊèªÄQ"}¢šoÖø‘&NÑY-pÏÜBFëÙ|ËEMÛJ”xƒÇR¡E*Öèg¡ÖÖ١ĹWɳŒšZW]BŒ"q»|ë0Æ‹Õ± Kî´Ëƒõa €OáW)Zªd0l ™CïÒ b fˆj=ÎüàȘJñ07öŽžœ…Æ4 -®Ï, _ŠIÌõrrx—`{ʾ_Öœ(f_[ã^7A± øu`àoŸOV«ûËëëxµú…Þ&p}Cï—žÖ·Z»÷«Uøq0_­X6ê¡ëÑÖ,¹%ˆÇšïÓð\-àê5³%¢ŸÎuœ©Lrý"Ó7òBOÔ“ôóŴКN‹žô­n`-v ­„¾2P®P0o3LQ~mÛ"vÿÐ&MŠ…æîŽx»%7îw+’•IÓo?ƒV€«¢[(†(îR?˜‡›‡—XØ|°q¼œF>K :çÌ1àFé1G–Ÿïn/㿻 \;+x{ïþy3 {X)» -ÇÈÆhêK®€<$y*Ácè÷Õž&Øìöøö©pïð*’ú}ÅÏlÕ6P KaÐ2¿k¼ø„b*úq8eŠøÀ£×Wás²Á‡ ÔÞ£¾ÝX8úÞ—ãnlÍGÑþñ>cçÑbñ‰×sÚÙ)v\ý DÅæš4¼‹ô_pÓí+Ó£9¾vÓÉlGóˆ?1¾ö¤Kìòl8ü-u‚]ÖùïðýVc`´zˆÅ;?'uxtáKÚz|À—.â¿vþ\©9Jendstream -endobj -1190 0 obj<>/XObject<<>>>>>>endobj -1191 0 obj<>stream -xmT]Oã0|ï¯Ø·+¤M)Màò!ñp…£9¡“xq’Mkˆã`;ôúïoì´GÕ;5•{wggvìALcübJ&t>£B Æј.â$Jiš&xŸào˜ªÁ<Œî§Ç”UH™¥ e%!|<¦¬ŠÂIݠβ¡µ°ÈúèØ:.IZjÙ(éüÇFºµlÈ­™j‰5KºÂ—p!óBü”5¯Ø¾žD'ÙÛ`Lg“Y4Ü0CÖR¨\c¡óɈ×eW 2°¬¥Ûöå -ÑPÙ©6@½È¦ÔK‹Œ–×ßI6N“Uy+¬Ý”Ti£„»"˼ŒÏ£‰¼[Ü<ÿzÊ‘ûí| rûpOÏWÑ”4j»|d}‡£vвա†…»ö•4µPéÐë²£Q¶†t•(zVx‡¸UWSÞ9½F;Ê™XXYoý^I %U[³âP`j¸­e!Âp°Ù‹g·˜‹²ÇêîEò,_´y_ݵö”öë—§äIî¿!¦³.”·aoÉæ“õíQ+Œ“…l…c¨Fâˆê­VË–‹Îø©õ]õÃ×B7Î身|{ˆ ƒˆ`š`œ¹A¼1\8(ÌJ®:Ãåžá~œ×µÒ˜#Ke¿‘uÝ;éqqGOF*Í]s7û& ½Ÿno`IzpÞÑ%[iD^sß0‹b}Xñˆkh¯1,Û0ÍEñÞµÿÅ™œ]…Cë£ 2¬·õ?N;+˜ NäÂ2Y}ÐíEÙ¬Žšþ;?xéK% }ÃK¨Ú—/´jA)D…ÃíOµá•´ÎlÃF÷éîæˆg¸UÒsŠ/ãþH£¿ù5d×oä(:ïÝà(ßÎÙ>á,™à¢)‡ñ$J£ID˜Lroí‡X]¸ƒì-Ù9Ðñ}>k¡üëO-¥ÂÕb}ái2’YŠ« EÓ©_ºË?W£ªéendstream -endobj -1192 0 obj<>/XObject<<>>>>/Annots 704 0 R>>endobj -1193 0 obj<>stream -xW]oÚJ}çWŒÔ—T¤RU壹ÍCÛÜ‚”+¥}XìöÆö:Þu)ÿ¾gv×`œÜ«*JìÙ™3gΠϽ˜†ø‰i:¢³ %yo ñ„ÿÄüçÛ_½ølé|:‹†”Óh|ͧŒælOç“Y4¢ñlŠÿGø­$­Ü‹øbM^{1‹qIçÀÕ¢wz{A£!-Vˆi2Ñ"u¡àIrr½¥•Åg}Ò[²š.K +‘<Õ%Ýè\¨âíâßÞ£1ŽŸ\ëÂV:ËpP°¼¯+™íh.ò¥ ýË´u”cˆ§>†ÁÙ‰á8#º¯d%Ÿke”•ôMŠTkövz;¦8GFS¤Œ#Wr¥ÄN×” UÔÀ¸3ŠÝ(C‰Ï©Oe&…‘”‹'I!âµ°î¬À‡Dç¸ËŠe&i«ì†/\©u]Á?‰/Bt¡úÔîo®šTš¤RK™z—ÒÙW¸ZÓ‰Çc€CƒO__ÍØ,òÉãã`fç‘+úÒu‘zÃWPy༹ˆjP} »ð*ÉF6æÄQoQ˜- -™éµ.€ås-5´ªtN[]=+¬Ò…q•v)РAåA©Þú²Ž#zØÈBþÄ}‚jã¯å£ì‡Z懛û( *pxÀ…(d‚ øTÇ¥gc+AÄŸ¢(O†6 -o$n«Ü•ì¿¹t¥0>Òý²»ÒW)£« -#Z ”#Â7©îY]£2SÒxÒgI¯#Ø”;¬­®íÞSŸð†ä/‘ƒîi™‰)#Pÿ™#5TVz¥`¡L'gcÁùÔãäMWu–‘Ë ž>~Ñ%žºhƒôü­\-6§T€üh±ÑƒD ¥ËÐéMâóËÏŽ¡ÜüHš !pî!»ÕôFàeiœ8Àݘ›­6L9oöŽ.Ñù*ÕîåÁNþßOÐCßߺ:j0hæ¬GÕ¢„¡ï'W|Âד»–Å*J¬\Ö¼D—;Ž›µ²lß39¼§ ZŒ„¼k€Ö.*JÉ:è`õ(i`CÌ4sG›‹–’R¤ÓIMÈ4êùŸ)ún?jiViŸ£p’8Ð4¹›$þ‚_[±#åU"hS|ÇÉvTÁõZø ½‰€^{:¢Î +mœƒ+Ðâ§PËLD7^V…N¾V¡C‹V‡p83¬ÔÆ0mZÊÒŒðÚ–Œ%ÐëØL AÇú\ªŸ>Öæ&'v!ø.Ùçª@¯BÑ TƒxÆœ^­T¢àc‡ÙR–˜$ nTzÐ ¡à)ÇÔ—ÂîåïêQXÓG?&YÝŒ»VË5:9bW`Èÿ¹g&U+ñp6uýဃG@6± ¤Lå«KØ»G{‘o†:xÕï b4*PŠ -§ÑNèùêÇu¦—"û10PFÎ=´ŠÉ—JИatnŒ´ïøÖÓÛ!]4#{ìÕ‚•çWIï}lû!¶¨IH!4å{ÚÉ=EŽ- n Ç ‚[æ"‚²ïl/•yA¨š#[#h•\+§¬ŒÑi¯î¾ÎÉ—ž©ÙË}'c>òp÷eì+Èí%êQi‘B^0e½4fƒŠBN‰wlBpÝÑqX -ËÍ>07>CËWƒðw;;^èM¼ôÒ†9Ï}_IlÚ€ÒñwLl¤±…9d‰°:³þ`gã‘0O¹“R–ŠbçŸa­†ÊbiÁ"t]4cŸ–aÃø¬’J½²ï7^‹/Ì&¿™¸Mq·Å#t^0ttÀÚðþÔð‚çÊÄ£‰ÞÎ úÅÈ/è×ú…¢5¯y1ù“/ãé8šNføÙ˜s ½¿{¿Ö“LÒendstream -endobj -1194 0 obj<>/XObject<<>>>>>>endobj -1195 0 obj<>stream -xWÛnÛ8}ÏW °Û¶â[l§@QäÒ yhÚE¼(È -Q6‰tE*®÷ë÷ IÙŠêd‹"¨m‘s9sæÌèÇÉø7¤ÙˆÆSJË“A2 ³ù Ñd>Ãçþ*I¹09?K&ÇŒÏ&¿Þ¸\œœÞœÓpB‹N¦s|ÈZ¤o†ãdœ úd¶”iIÐ7S=Z'œ2šr¥3RÎâY)”¦ÔhW™¢Õ‡·‹ï°<¡á0Xîf°üæ‚î´m™À-·–û‹Ï—øA8Ú -  -“Š‚j++r†–’D Ú©T8™ÑZXþÝGr0ÄÞÔGø#özˆ‹rS‘÷’Э 9¹µ²´Üá‹Ò+x¼“îòöË=iQJúQËjço±õUeêMxàü6LÙNÇ°¶.–ÏCŠtM&÷Y–ø¬4ž(G+‰ô–"}¤¼2¥̾?å¼”ÀN…Æÿv 4 -³2ºã¹’°aMhaHGf#5Y™Ö•r;Z›æ—Æ­½¿vØ8ghe!SöáÍâËõ—w¾ôˆŸ]_Qº6Vꇷ¿G‚mU‰0Q%t‘;.%—˜m¶c€å,xârÿn)­dÆ¥…E<\&®IÇ7G¾ä°”=¼e2°Ý_"ê‘°\`f€Øl*ó$Š„mµ ?¢{@ÏüQBßÀ5.Ûü -´DHÙKôæÓò ù‰ÀØ@b„”®…^IâšX{°‰¯‘À vf´$tUtåk¸ç5|ó…nòmøbƒ¾@ßÈ×%ãz2Þä$q;ü…TKa¹L©Ùì:pG*ÃìûL¤àuL¡¸VÖ®E±{ÖºžÎ|®Á£Á˜0‡Ò@8X›úãɾ4“„®Ð ÷¢\ -¯ t‰NBk^!ºzUˆ’)Wø›B V–•l”Œzh˜’†º=IV*d eÝ,6| ¬q&5 ãZàwØN:D’ä5§¨ÊM!KVfÞX½ñBŠ’IÅÕãBÀr­3„â@f/B¬«¥P*Õ8¬5wO´à)Ä¡pà²k´3³¾•¬G˜Ž¦SFó–5É—n ç¬ë(¶ KÐ~Ë`ùà?Ð_’õ•óš_Ia?Ûq¸‡Å“P…Xª -±Ì;FªÑ ðDJ‚©,]X<ûÝ‹ úÅ"Z”ݵxR© ’ˆ‚¤mÓðÑñʭ쉶կí¬™}@'ú1ÀrL¹îY0·P$½ŠlA ±Ëßq4˜å{øÍ\\cõ„¹vúùâêÓíÝÇäþöš”×Àœ'ƒ”-*ò=À _‘R®@#“*P°Ç“FÙNòU?;Q66˜sgä²ÆÅ _ˆ3(VFbQàz{Ûñ X|îÛ¢ÕtuÇ#°ê‘ ÊÜNí` J£˜¦Í,äE)ÇåX£4®ýY2RÃ݇ÑtFìð°oøçýñy(£û§V?ƒ&g‰¥°íDìN§ëÊhõ÷+!J‰ñ Ø0¾š9ÚÉõTºôÔ‹À¬þ{X¼h4ªò¯yâGÚt•BYÝó<Ô -‡m°™ìº’«éÞ0˜÷‹»Û{œñ*ÉÃÁòaîwlU¢ãŽ/Ø‚e/œ'¸óB¶®Q)ážO§…‚Båê"óZ‰<¤6õjÍChïË?ï8 rFb Â0‘¦ÒòÚd;5䥓ké…Š³Ì!6uÕLç„9%sVþ 3õƒég?šöœ‰ëê³^µå2–û@ç×ËÛI– ØÅrIKô¬«Tú¸CÏHäx´ü‰¦Æf†)t´šU÷ÅÜšn¹Ð;Xs~{$»fªü×°™1Ð+Á¢ÀÃNV{VÂ`³i¥6¨;ŒÚâé‰dÛÆ°Ýc„óvÏÓÔŒ$¬aþ0{°;Þ-ì'õQŒŽ`ÔÍ“á9õŠÜ(Íø•Ë7Ä£Ü`Vóû‡ÓÚ¿üPDÛÙà:Äap¸§7:o^‡â2Â8¼RÞä5\{lìÔ÷h£ã|=-½Ç>âåþôfÅr8Å;â|LÓ¿ÿþ~¤¯•ù>acJñ²‚½©Å¶ûÍ…þl„—À¸ -ÿï—À ÜΦs,p05Ÿ²‡‹“?NþjYªendstream -endobj -1196 0 obj<>/XObject<<>>>>>>endobj -1197 0 obj<>stream -xTMoÚ@½ó+Fê!4*bÜCU…|¨š¦©‡ª‡e=ƛڻÎî8Ôÿ¾³kCí©B³Þ™yïÍ›yÄ0æO ó LÕ`!™&Q³tÎÏþZ„<¼˜¥—Qzúb±\ÜÍ Žas®$Ã:Î3ÃZ•*~lK³åÏ‘CIÊh0y8wÕ&’Fçûÿ‹›ëÖ…rP‰_èÂ>£Ë–l•#´áT‹ -auõyqõ&–o׃1Œâi4áêâ"\ú¾¼_CûŒ¶OË™µÚšM‰ˆ®Â«\ÀWÜ#-–_V°µ¦©!\ BY¡ÐdNŠnð3Ø´PVŽƒ˜¬Fæ# ¥ÑÃ@¨…eøžÊYf*Á"U"0ûÀèÎ 7V‘×Æ—;d?©Ûk°]¡dá) h´zjð@"Àg䃙/ôy°ª¶…›ĵÑdMY²Z¾ÈÅÝ{ˆg]_GÓ8âÇlÈ_FqŸÌ2KNZ—J -ò\¸¡µpnÇ5T‰»4/öM¼=†ßú˜×N8 -ô:;ÔN‘zfÍ–…ï•V9órî -ÔÈmÉo½X&Ôg5@°î•È08²Å-ßo¡a η€Q›õ |Á¸7ìk tv„à@9Û— ¾]ZbOéí?ÄÇä„ÚW×È=wÜ=ìIÒ)~Õ™ôO ±q˜HéýCø›^8áS£žE‰šÜ;PUãˆE^>–•Ø ¨¥mkb«/£ïÝNÙ¿4ónÝ GïDëÉ:äàú¨ÍŽ<Ô¹5UÈôÀ#Û7ÄO/³ã,|xÙ*ñ8»V˨û)ô‰¯ýuçzC“ÚÕÆRÎ9,sÔ1 -˜¸„k‚s¿.ÎûÌ!4gŠ~+˜†Ø°¬ŽÝ÷ÄÛ!`mk>/XObject<<>>>>/Annots 717 0 R>>endobj -1199 0 obj<>stream -x¥XÛrÛF}×Wté%T ¼ˆÔVíƒÖŠU9±b1ñ>ðe ɉ 2ˆæßçt@@”ì¥RQ šKßNŸÓã?.b㿘šÞP’_Œ£1þÂ?bþñ釋ÛE4§ùdM(§I–º(Fbëu3» h_Uå?®¯‡Cd±9KUY·»~½_û¯ß' ,F‹hÉl#ëÉÍ‚xYµ•4™*tu -çHO!_ç•)å`„Ã>Q¥Ž›_Ÿ²þÿ¹8š,£ø¶KÕ϶Òš×× -íI¦>~÷I†âc½ÉŒGî^om“4`¶A©íj“ârÚ‘;âéè+Ó]š›Âx@‚C{“ìqè…NÅRét@Aªà­Ý’VŽ›£Îsí† •ñD0ÀÌÐ@`u°¤Ò¶“—DÞÖ.Ì‚É\©töEœÜhÚë¬ÜÖ)'lЇÔj¸ç+Xž=Þ¿1æF?~ü¼úø­åÊþG§nŽô°+Tb,½³u©U-1üoXƒ{ôóŠr³CN™™¤¸}·Îæ¯éJûpÿý݇¿^íª)L‚LÐÙff±”«Bí´0YèÔƒçÌN¾F_5BÚ™‘N¼·:"-*‡îE/ƒa¶fW¿z{M¯ÓZoaòåipØ—®3-÷ v$èâäËpwɺÔEâŽeEÂÀÖ¥žþIGí/¿•?DÛ*XðÄHË4Ž–.„w;ÂçÃW:!wwùì“iȸ—í…Êõ>üt ´îq?í…@Y1à/%{U z•ÉùÏL´­m3µƒž)4ÂFkI]¯Š,c½¥'Ia±ÕÐQD'`ÄPòz¡2HˆWé‹B+ìÐŒÂê¬a%š:Ä“™¦ÚÎ)Sn×Ê Œ¢Î7P2fVWOëL·ÕÞÖ¡úõ•@쬥‘r!W@{–Qfís]zÊk,€JíxºÀ•^ÿQc0,Ìý`^œVn›ø$‚/³ˆ?U{VÀör\Š‰B:"³;´ëz` Ö56<Ìd0ç=w2R@¥©¥Ë˜½`:‡1–@аäžÏl¥n,1Ma¶Z_ á.BåL·a)¨é bˆ&xH¹o·æÍ\±|z¸o¨á“‘¨V}ZTÞqGa¸¨³Š¹ÉÂÄšbbM TCÆXÆa`–y%תÚjŸáqÐ.mƒ yLé€Ù=ELFÕTŠÚK+ÿÝãC3ÑÀ(† ¸“`Êf 7‡g‡ô>†ÉÜ '©›ö€.±WyºAyé­3¬¥Ó/ËäÕ³+Tž%2òËq. -Îà/‚ - ä-±F2ï~{¢ÊiÍ´ ÕnƳ 4|:b&Mîë²´® -´x†—àéF%Ï8]t´‹ši|ÒvÝhÄò1âáÛÏ8 :ß_¥›·ÛñÜràÐ "¶y‰§—(iëd[–5ŸÃXÁ9”'~Ë2e˜"ÉjžŠ‘í¯›ÿ†»ª®, dKÖ‚a€Æz :î½M È©,gHûyÊXÇE÷ƒ ½š4îå|zkHqð€ÌLuìÔCô¯2(8ðô˜Äæ-mÝŽÏ=° chy(²&’^{‘®>QðkQ™¼lâ!^žˆä2¼”iòäॸ „!Ÿ!˦ú°Ž§Ž¨Êú ôßüƒÂl1‹7Ëð\.Ùø÷«‹_.þßX‹­endstream -endobj -1200 0 obj<>/XObject<<>>>>/Annots 726 0 R>>endobj -1201 0 obj<>stream -x•X]sÚF}÷¯¸™1™1ܧR§nm×5xÒÎð²H l,iUíÊ„ßsw%ÄIÚ8`ÄîÞÏsϽëÎzÔÅOF!õ‡¥gÝ ‹oø­ÇoOÏÂ^ôér8 -BJ©ßWÕSB3ÞO—ƒÖã>‡x’Vgá°‹cƒË0ð±ñ þ‰ ºƒ`¸_ŒûÁ¸±ÊBƒw í]]ASØe-)…£1„û§Ú–¾“t|ê—ùYçf@½ÍWðv8ÑÞ¹ +e­v{«ì¦Ä"7"õ‹µ%-Šµ4”iKy¡_U,‚:º›NÉ”y® [YÓëÃmXSÈ•, -³~•9…v£ 5\8ˆUY””±ü‰¥ ½{§&”J‘Ò+äÊJ¾ªlM¥‘‰(Òef!}¥‹Ô…„V…NIdôIe±ÞDȘDV½JšªBFV;ÂéWY¸øun¢*íQ0fŒÁöE8Uá©#àÛµsGV剈بŽ´Q'Ælãÿ%ºŽƒÞÕÁe¬‘‘ÎbRV¦ÁŸ%’ -wÓ?Üþå xkT hâ›R- -ı™ "=¦‘$[G´ÆÓÖ“œ‹3d¬0°—o:Ãâz>Ìü}ÕÖ g@(9‰Ý@Ô0dÑ’Á:`"Z¼¯®±=¹‡Ǩ٥ŽìÃõõs¦mt8np\ðÿQ¨Uµþê^s›8 ÿ>éÜò9±oÅôçâΈ«(Ø ul×Þí T"DC ï:I»+ó:E,ó[Îaú€ŒAK•ùëÙaΈ¹â`5F)¼û!ÛÙäñy¢Ô;ðÆõæU w -ô•Å<ü\“ŸwÈz‚)ºJÏZÚ|›‰tyû‚¤ 0%¾GÂm® F³¿žèö,„à"«”ºJL€«sÝøÊŽZ±Ê`M’€S8<«2ÃmKg<1FÀÈ&»*É D¾`ªÌÏþ<ûoÜFìendstream -endobj -1202 0 obj<>/XObject<<>>>>/Annots 729 0 R>>endobj -1203 0 obj<>stream -xVÛnÛ8}÷W ‡8@,[²ãËcÒnŠ»i·ñ¾XP"m³+‰ -IÕñßï IɲmÄLòÌíœá¼ b˜à_ ‹¦sÈŠÁ$Â×xÍa¶\às‚ÿZÀ–p+}ÅôõíÓ`:§õy4ƒîfÑÊ?çð<8½0_EÓÓÊÃz0~\A¼€õ Ï—1¬¹ƒÀ:¢á»>¨r+wµ–åžY‘28H»‡??Þ½Y÷30šNÐÕ5÷'ã¾T¢¤f¥*ý±FŽ%è®È2Ëk.ÀÔU¥´…­Ò`÷øNvï³LÕ¥•~™Å½ÀÊ“.5þªôŒÐ?„¾…­ÔÆ¢åêHdt£x%dÌ!F&Û‹‚áÎ\€U`rVñksî-´È‘wœJÒ8NùF4­”½ò«wauYåýn¬Œ…ÍÆ -3’sV½éñÛ\È'ñjoÛ„PέŸEpŽ2ôa‚úG(¾ˆjÑ;ÁúB–q³e²4` -˜µZ¦µ†Îw²yØËl\`pêJ• Ðc üo㺖üúÒà±­,§‚öüÍ”Á•¿žËX|þN]¯¹4UÎŽO¬—í¼“N4„ìÙUBU^0I<‰àcµ%ãF@Q#ÉRÑTŠ÷2“ -ä0’ë×ëײmÕmæÉvu=*•Ë’Ä^†¸³[Ø 3t¦á#¦^‹—uÃ!=RXÛÍMÁ$Z·MÂéÓ3ïD4î@„Ž¥Íž»ZþmS=^ÑÝKõþ ¨n/yz]fª(6.»Ç”çh䎪†£_±ï„vG,ùöø!™NX«§ÏÏ››PÀ^¢°°ý²¼[“Rš•;̈ðC˜ãÇnv½û3¶Vb†÷šªf÷Ì: ìÔ À¨‚Ïe&  ÚÝ»— -Q±­óü$ts‹‘ÿG‡œ¶*ÏÕ¯”&°Ð–Å++ª\ܺ¬THì&ØЙFŽ(Þ dîíuåÌܲR_¨”12Íô _›‹WzæÜò'­Ð3py¾¹¹¬;ø"Æ’5©hû°0]Mµ÷^ܽ˜=ñî2ç<ÊK¼„Må4ܨÒwÂbäÕ¡dÅføŽN ÛëI§Pian[ÔF"Ôã*ÞÀ¦¬:hÉ/ãZ¸ÅìxÚ%:uÆ@r†íÏ`k¥ùáR9NÙëT%£%–4P¦½†›RõzuåSŠxª‹oú´Žž‚÷Ûv?·-+;Q_F+Yü'äÈu£U;Ñhåç¢ä™Šb9×¢‰°!´RŠi¼Õ,ÞP@Ie?˜ÌYŠ£ )²HÝÅŽò@Ú» Íc&Í<2ѯ#>Eç‡ØŠ(Ñnúâîx“Ý Lì•ÄÞf@'’Þªw4µŽÜ Š±’!0&w@í¸êÎàÎñc-"œ;qàäÃM2_„`Vãé2Z®¦8¸&þN{¾ÿëá¾jå†À*«©·¶så(žã ¼œÂh‘8ÌŸbg‹Y´˜/½+'Õ?Öƒ¿ÿREm§endstream -endobj -1204 0 obj<>/XObject<<>>>>/Annots 742 0 R>>endobj -1205 0 obj<>stream -x½WmsâF þίЄiCfÀ` :“Üär/sIÓƒo¥{ Nl¯»»>Ž_Ik›—r7mgzÉ„°Þ•ôHz$­ÿlù0À_&Cf­7À'ôáÓÇçw­Qà ˜Òg·coV-RX´Ž–LÇ^p´çä&CoÚÈñâ WíMo½!ÍÞÑ2ƒÙ”ì5{Nçí ÕXxqÐYíMGÞ‚fÏÉ|XËñâ WíMfžA³çäF#XËñâ WíMnÉ^³çû§AÀÎûŸ´òŠ$1¼0ÄCO'ôÿ´„¸õfy½þÃ|–1e(˜N`q‚° ;i$ -0R‘úfùr$Í)dé°’îM¼)¥{uVÃ`§ç9Û'ÖøxÏ'ßQ„ ‰(KrˆòSÑÿÅ”)ã8ùú ÅIjHð -¥íñçÿÞpêù3è ‰Ç˜“åV ©Iêd-#ÀüØ­<µSç¶&[{¡ÊãUçvusz¨Îb2‘C!6¨9À(Ø%i -¹²°–HÓB -‹v¶RKÞ«DêuA€Y‘:Ãশe$¸ÒP"â]b·¨>ÝÏŸ!J´ ­Ò{U™F -´ A‚×ÀŒ¨?@¯ÇÎëvú¥ÑýT…"í£Ùµè§Éº_Ûb·Âkƒôû&Uk‘þqöèÇÈ°Ô‰ÝÃártä#2õ¾°cvJGÏî%ƒ#L>v"4ÂGsi׉2‹Lâ©å|ñ~ùöݯ— £¦×VeçžæŸŸ>Ì«S' -ÛÀU§eÊ!/„FÍHÖ‹ÖÛH‚8É%¥îŸÀ*ë­ÌaäQ’oèíBî:G­¯{Ó¤Wã6çÎnCªñ“è`0kŽquè=€Ï-hHÕÏ‚Ù†¬4Ì##ñ߬k”çøFÐÛq_ê? ]Þ;˜"-m±£ø4lè\“+l¿aûßL‘Æb«Î¥uÏFk&$ÂýsD®NÚÛ|iÙ$ù,,áVäiº(ˆ¨yQU‰Ä€ 4®ôÑ»”ü[H€«0¿[áQäXwº«Ê»B*,§nÞ1Ãé‹Ò›«Ë4SÈ0‰÷ì W•Kìµ­2– ¹ê ?D™ZC©xh«êgÁc„Nâ[±ö…‡.#¸?po±øª°‰ÊaGäÃ~“c…_âߥè´aÕ¹Vq|ÝE^X¡-ØÔà{ǵʯq·òcuó=ð&EäüeÐGCÍ™âBí©bKGcÈ“Æ*G/ÀIL¾]ÆïÈdʯ¾ƒ’­ÞÁh:» ð8­k"òY]ì”á–#{\Ö—`¹”òP%Êý[†md.µHSG±*®=9TPØš¨7¨×KªfVC«ÎÏ«N™Dw?•˜ÊŽZ¿ K«ÖQ~â@È‘¡«¦}ÿa>Þ~xŒxâ*ð :hx^½£®jh†a%e2ç>t¡Ô³'®gÏ 7}s†ð NR'ˆE¼Õ%—¿2G »°W%˜-­LET~ôD~M ‘½ŽAuâ«îhÁ•a•J™J‘©ˆ'†„µ8ÏK+MÝBê¡ÿ((ãò°y´R?Ñvû…Zpš¼Ê3÷¦yb±s”Å™ Xä þ«:¿År  Gàp‰c¼äXNZJP1 q1Q2…å/DZÒ;3Dìty¤¶W¤"É_÷Bj à êÒN"ÏMËü¶yãÁGŒÁ™Qº%›)€NjxZ,˜OÏóG&ˆ¦ŠôGÊš’ -¡[÷‰¾´aŸÊ‹oVÔîXË3Ý{V7ç9üÂ>ŽvIu=ô†Þˆ&ŠtNñÌÞX™QaQ ˆ»Q¡LòµrßÃ9{™¤ÛšÝ -[©ÎÄëy\KC·:ÌÙaåcV{ð€6W;ƒÁ@Õ¹‚§eïj £ânY²³¸ò5­ÂZE¢ÿ0­ÞIüߦ#|­Á[^ÔYÌßÌáY+jp¯Â’*˜#IZ{õñÞdÈï1ÿ´þÇ“±7 ¦îågæ“®·ËÖo­¿?ÌLdendstream -endobj -1206 0 obj<>/XObject<<>>>>/Annots 745 0 R>>endobj -1207 0 obj<>stream -x½X]“Ó6}ß_qgû:‰ÉÇ’d™Ù‡íRÚÎ, %a ÓôA±åD`KA’òï{®dçÃ@‡N;»$‘¬ûuÎ=Wùx1 >þh2¤Ñ˜Òò¢Ÿôi<½N®èj:Áë!~¬¤œ°• ø×ë_ÂÖ'£A2¦’Æ×Ʉ⛂f'oKô¯’éÉ"›õù𖉟æŸ_Ó`Bó^ÇOðÜ< Vû4O;ƒ«d’ÐL¦•U~OBgäD¹·ij*íÍßã€+ â½áÎͳÎ|-ƒÀßRåÆX/´§QÚ;ò!–²\JK»µÔ”)—VÎ)½"¿–äƒ&?³GR{«¤#¥y›ïSo0J†l4SV¦ÞØ}ý×~!Ͻá Æž¹•öÜí|áS·p¶‹ò•pnglFÆ’ö‡wÂcײò’¶¢¨à„ÁQH UZêÔî7^ftÿìöÜG(F×n¤µ½I2åêËÅp<¡s'Ãâ!”/º)ŠÂìHÝY‰ TNÚË­’»çû7¹ÖÔµ7œ&ƒëcQ\'iÓdi->ÅN ),yùÉ“üX)ä Ã`“"QKÉ>g\~@Î-NÎ:ÇB;åצò”I«¶5Z56V­”˜r¨‹^¹„ž£`¥è”Î-…GÿØ@&½PŠ–Óý‹Çó¶ÿ]  ‡ð ÛƒÕsþÙjw(ÐÏw¯ÿx5ÿíå¥kÒP)^á‘dû3¦Mï×—oç/{w¦(€Ô"8¶ç<#Û‡gre?’A9WÉnX¹,2±!çŠKrå2IÎ¥„'ˆ5UÑð …`.j§Ai ÐVnÉ'5`;ºAãZƒ‰ÎâjÖðµ6z[ÏA¹Àk8æ"­y}`(‚²`OBo™ýñ xør#53¨å·Äø@—”'å` [ÀŽaè„œ4ÿϼ°~~?‹\¥Î:ÀEDÄæA›B¤2àg ýB<©±‘ÍT8d}oªq€ÍèU±-ËTV¬" ÑÁDph ÷ýëSšçŸå4ðò&ðCø!§fFk¼IMÁyÈä=$ʸ%æb Ô€ãÍÛ²ñy"úÕì¸v[ùf¼6¥ B-­°{r^ߪ twÕ&TD ¾™¬%àomk´íÐÂQ÷Ô”e¥œd6.¥ßI”<-·†–á /®‰9|™†¨Q‡{ÎE.|°Å±Ç©P.Fkçã(·¦¤µöœk71^oùÄÉ8à6¡9×·nf™Ñ|pƒî´6;~w{wÏõˆå…~yì¸Bl²ÀÕ¸pàÒÓfãu#£WQ­~øbÓg'"çcëÏô%‰4…Ît ’è=q)÷ì’,ÜAûAÑ;q3çˆeÌÝU®{”¸&òúâ?K ]ß\¦ú&t0ºeééšêf#ͦÝ,½‘”~oÂkcW—´Ã°Ðv 9ìG.NX<GsO?HÌ -þu!÷0œÏ#>哈\•®ÁohÑáƺxÔ¥·‹†æ."˜?y·èhôäfN”Ÿ6**0/r«¶ÀÌd3[<úoÙ(ÌÊè9jËsl­õ„0´.2,ƒ~Wžgqû9…Ú#zŒó-æùw5ùA¥¾·MÐìN軵Ыï—[}Q9ÿ­®M)ŸáæñyœŽÅ(ç‹g˜xÒsㆢîÖ -tÀ‹39oxópØ{ôúú¹@¸püÙõ„Qܲ²ÓsKÄϦãõØÊ7º|÷2.ÙïXÏØjíP­hñ°èTB¯ë» ýwb–Ÿ» ܉Ö/áws‹¨í5÷‹Eç fþSú3oÐâö]ë‹nôæD¦õD4M“éõß; ã ~vûâ§[ze ‹5=3iU6’<Œñ%ÆtD½É0ô¾ž¸šà+Œñ4Þ»¯‡|ÌÏó‹ß/þ['X„endstream -endobj -1208 0 obj<>/XObject<<>>>>/Annots 748 0 R>>endobj -1209 0 obj<>stream -xµXmOÛHþί!U—Jĵ÷H|I(Håè•Tíér6ö&18Þœ×nàßß3»v^LÚ½€ÆÞ™}æ™gÆüuâ‘‹o:>5Ú¬N\ÇÅþðøãÓ{¾CÍnŸ+òܦÓ)þŠéÎ<ó{ §‰{¬ðñ“JšŸ\LNÞ]†G“9[nw;4 a—&AMi´Î>Šlùvr¥Íbi­O“¥¤ÝcZ§j-Óì‰ôZÑ<’š2¬Xc+©¹¹ÎµLÑ«…JŠ­gä oFøŸ‘JÙ‹Ku¯áøˆ£æ\ &4béXwY% -DB3IIÇö¾qi)YôMR¦ŒÃDf…³¥Ha㓜˴|xºÇiÅñZ¤b%3¬ŽcJ¯fN ’ù´Öš¾¥"X‹T)­ Œ\®à]%Ž…*( ªwœ®G~àãDS¿Ý!» „Ý<¯7zN›G>ðQÈwÐ - lqÎØb+c0¾‰8—%V EÚxFIDLb¦UœgòÙé³%gë>ÿ:4®ŽƒÇÀŸâùëÀªxûÏ CŽ®ÔÊæS—x0ŠRd*}z Yy…Ûœhæ3CmHW9„E¶„ÛRózNÆmÊ”DF´ÌH$á^… -ÍÃXfàÚ™]¾õ©—*C¦ºÉ{¬ïƒ¿ÇÿU®3»´ß¨ôa›»²þ˜¡4ÅÎðM¦øÍe1nOy”9•ƒòÑ -çùõœøi•õñÝjùN— ˆ3ôÇ×™©Fÿ€ -.í"gE¡äi*“,~¢<‰ðhCPÂ¥j¥QøÌ+s'J2¹€ßT®S©áÌXf§(â­†E!V°¦4­}ºMßþ‹Öi´éÓûTåëëÑÑè~ภ±°B 6SÞ4a-J^¬²wÔý®ãõ¨^J"7’•¸Wi„îa[…æÆQˆŠ&”T™A^h³” ݉ÕLpM!“Ü®èãhÈûQTj% ÛÓZº'øb¥k¦ 4Õm³16ë0R¿ºý2¹=\ovb}ÍH~(3ÅQ¡d7ÜQ¸7D‹‘ÚÐl@uÙx†*ÉRÇ(½·Ç4dŽgjÃÇ™«â›A­gPç=4ä‹1ˆÐU™RšqÊ“ŒÀh[d›­aµÝ™¨¤ʹÈãÌvÝçáÝosp /K£m[%çw“Àk¨phÃ4ä]ãû'alõö5Q!$ø?ÂïÐå³QG>ŠÕ:–èÍZçh=“ÁÝÕdüþ–– R’Í$x¿¥Y¸£<·”l)2{äV9¡s–écçFöß|˜NßävYYŒ5ÚÍ·ö -\‰° %eº2­ÔÊI¨jÇŽi_¸:…i“”`„ -ét&ƒ‡§S†B;šÙ=3$¶–ü2p;—qÜU…`GÕ€åã ÀŒs+±›No‡Ð‰MµØa—Z’‘Æ‹!ÏPŒÓ< -Ï™3•Ÿ¯¥â$…Á¹©<¾Péâ”ϱ¹pa]©DŸ=³%ÉbUV4 -U(Ô,``H*Ž9`ÛšŠñùÅ0m¥“Òhf‘Éu,ŒÁV¡6¹‘Õ ”33üí´žm²*mÇ…Rpì¤owÀ£FædLÁ&M˜–Ùz©AÓštŽÉÔÍíÅïE–¶ý­G^Bæ,ͦš½¦ÓshlK„>Œ®/i ±ã— ÌÄZœJ‚Ê߱£õ1ì4–óA<'q¤ÆäVU£$ˆsQ¾ìqk¥£ÇRfÕìcd£PŽò T¯Ø/“>1q¹Ô™YzŸ:HC”Ü+C#°§„×µóK‚×-­Xاn§;êº^³í¶‡£ßkw:ƒfs|9ð­Æå°SÙºÞ„7˜‡|!ûä{ÍN³Ûh7Ÿ­;˜úäù®W1¯vQ´Z~Ïõ݆w1{ð>5.šÖEËkºÍñ¸²Q|:»“,»øîô<¿YYdŠ|­¦[ydñ|Ÿ%–eª -øöÉ\±ðj>·æ¿‹‚‚ì2 ݧ?>¥òëÏŠ1Žô§¶0òá°=×mWvŒ¡HÊŒ˜£î¦Qæ¦yé{ÎÌÄRÒ¶tæ8øžÎPR¦–?w€ïQT¾€¤HÍëÇÏXúî²[ˆ´×Æ¿º j÷<ß n.ô1U\wt°b¼e<êåòzÇ7Sá«ëDv:í.4Þz 6:žœüvò7ÍØ) endstream -endobj -1210 0 obj<>/XObject<<>>>>/Annots 751 0 R>>endobj -1211 0 obj<>stream -x…TKoÓ@¾çW̱âì+~äDž‰ÒÒ6öÆqj{Íz­ÿY'¡Âê•-¯æ›÷|óu@à¡0à>$å€x„Ï<Dà?Ã×(Ø:B݇ºÏýõ€qâ (ñ”ÀIä…§[ëÎG¢ohF+Ä[tí‡ø“v† ÄÉU¡3]Åy©&@^Äû!:s•æM]ÈÃ[é„×ÊÈ"…¹4V™°(ïdÓ2*r_=Pöý+Š‡>/XObject<<>>>>>>endobj -1213 0 obj<>stream -xWMSãF½ó+º¸UF؆ÅìÞ`7[Å!fS8•CH¥FÒÈš¬4£ÌHxýïóºGFì&) -0h¦?^¿~ÝúûhAs|-hµ¤ËkÊê£y2§«›ëä?Wø¼Ä·×TȃÅ|•ÜLÜmŽ.>¿§åœ6l]¯nh“ìÌñŸìôc©šV{Z¼Kè¾n¼{Ö9¥Þ킱[2–‚ªSu¶ùK¬,VÑÊùåU²„S\[$ôð¬ý³Ñ;rÅx7^¹¢Å¢¿²\!j\yüùŽ¬nwÎeìÒä:¢Zg¥²&Ô”îiWš¬¤¬2Ú¶2eIe™|®2¡eWµÊJcqaªÁæŒ$Ú9/.cŒÁgªª×±$¦ÅÀqB›Ò„h,s¶UƆ“m©ZR€Ök•ï©upX§ÂTš”Í/œGèƶ8wD&gÚR{ÎüÀýåδ—pdˆ•Cè~K¹ƒëZ¤’U]®_‰8 {ÒRÖy|h«=©q ªÜIˆ¬UákH&Î7pv4!áR«g ]àJÃRUפ‡:¡ÎfÛyÕgg~:R¢TR­-1Ô8•Qá¦YWkzdî°#fðk3„̘ç.ëjä1D»¼N®˜wïvA­6Ä,!SU0çupU'QÞÕ´ÖíÝýã<øï¿Ês @s„´èlÆ—&ÐdXfÀ2¡_ƒæ<ýv¿~ðd¨Ì¶R8æjÄ›0@® ~׃ppyæ‰ þtvÔÄñbý¡h7˜«]«á}ËÐ åV¥LÎÑcñg»o4È๨“–Û„aKõÄgße±àvOŽ‰Š†Sà<‚ŸÀ+uaÕ8ìw©ú}™ÐX§Ð5óÌÚCø^Ó ¬ÛQÑU€´¿*õ%çVè©*†#‘¤¶Nsn;&°ª‚#îX狼Áa×0,“¼¹N¡N/bï>ýò¿§ÓwOgOgS"FâFÑ ˆè8ˆÈÐKµ -,š@¤aŽn½ë =ªÔT¦ÝËsÑO®â€Uîj®f嶈x.g2oH2e¼Ô³2w{BüÓÃÏ·÷ë¤ýÖŠõÚA¢i&¼rð/™1Œ*ëÓë/õ‰IUÞ&ØKf¤Ò%½š¡ -ìeiÄÝ9ɬz —‹Û  xP¸QÇdkK!Ÿ÷ÑÄÈ»CÚ𙕺ŠÖ€”z?q_+TÃ0¸S-›ž±òâó«þfÝOÑ‘ÐRÒ½ëüèjöZ(¦¯¹‹Ü£Pº®Ê¥)ƒn{EDÖi ø5ìS>‰\¡1K 4*óqJôõ†> ±>( 1ßÂ:#Ž¨îxzZ4¡ÆئR;gõ@›  >› êõVù¼â© Ù•qúÔõfÖgËM2JŽè¿NŽ ™KÜ­²ò`Î žc[ÇC}áá2 ºÂhB“ŒÉsÅÁRî¥Ð¥Ø•Q#¦î„odKz&ŽB–5©ÉÅúIg´j:ß8lHàÅ:,GšY‡óÌH¦ dY{¸ñʼnSýMÕÍ0ŒŽûe°såõe¼bÅ¢¨¶ZûÑFq™Ð—¸LìTì÷âówV‰û‚x¹D² ^òx1² vK¥ktÜ18LÙ$Œ£_˜Rêªl½Ê¾ÂÀ.®äý:‹UP”ë´ÛNr¯ ˜(jAK $ºXy¨ô¯1¼ £ny®¢|ýà(úµ}ØäýEŠÁí±ë´˜ãq8é8Ùk†rÚ–òòÑ¿ËÄA˜ä*nÑŸo^^µ.çñÍçÿ¿Ü]­®’Õõ ^±†¿ljÿ´9úåèоendstream -endobj -1214 0 obj<>/XObject<<>>>>>>endobj -1215 0 obj<>stream -x­WÛnÛF}÷W ŒUIeY²óRøÔq][m^+r)mLrîR‚|Ï I™bâ¦(Ê8/»;3gÎœ}= -h„ÍÆt:¥0= Gt6š §49Ÿá~Œÿ…¦X>Œ'ßùp5?:ù8¡  yŒ³¦ç3šG„sF#š‡½{ë5ùµòdb2ž"«]ö³§­-ž)¶ílÙÇñ¹µ-“ˆœ7IBKMj™`»%¿ËùMN]P¦R|t´Àõtûøçí#™ìÝüËшÁép z±Itª2µÂz1°†}y<ª,¢öçÚld\ž¨JŒódcReqíU¡Ý°¶2ž'låÉ“\ÛŽÆç. »u&[QŒA„ªtâüÑsìkµ©‚Y%v©:^•ÆTÚ2óLjÑsÌŠ6*1Qó¾1Ü„÷¨S.%6 ËØÜ=\ÿD¡Í2zc3¼ÃŽÃÉçÊ2ŽÝôÄn_ÐðëÒIÒ®ˆ‡}YÕÁ¶öµñ©ã2qçQb»ÀF+í=ƒ²4Þ#×Ë -ä¼°HpÊ8{k ÙÚQ® -$Yr$1h„”âK„Pà6–fé2êøc2ä_ûhˆðã!Í׈Ò&|æpe‡8 .W¡æ¤ø­†ŒšÍ,6À{ó´èéÕDcí¼VÛD4^¼ëwÌËæW+|ÎàJpÜ×Üîõ–@^‡Ü ¶*bp2»[ -J-ó¬ÀcwQ •xb¡>ŠŽ]pME¡bòÀ} e¥¢Du}r®ãT|Ç"Ä ÇL2 3­#uS8gH°®@ªVÔ$¨Î¤ð‚efa‘ÁªW³ð#Uî™PÝwT{ÉØXô\®CÝÍâÖøµ$áØp™Æœ«ã&AˆÄ¥KIðâãpòñ‚¨ ËÎàtR•cp6œ 骩AÖ9råN¹j׫X Æ3(Šøsc¸Ð‰Rœ'•.Ëa0[ôT’¯U 0«¥ÝèÅ»zÁ*´d.•y¤¼‰,DFrƒWæ¹-®Nö -'&TB?áàüsÁ8NKC¤ -ù…6B‘òŠ¼®*XqpWN¨pm´Ù‹V£R®–‰H»°0KÐc ²Ç¬?\A±V¾%Ëœy™8Ö Žç\Ìûc›òŸó^}ˆPe—Ñüúá|¨s=l8‹i®<ÚPØR@6W¢™+äqO¶’¾PqlB$…›ˆH¿Y‘QÈ´ãóÝý qa8xÄvüÑ Vqkº×þêî·'i6î›’O»eEk¯bôZ”‡[™Kªã ú™(/Œ,oUÀ”+œ¾–ºØ1éPS]/жÕ×9fcÔþÀöÇÍÄ+|FÜÐM¡\p:c:‡BfA à3ÐÁzŽWµM£^» sѳï:Veâ¡óèÑÿ2úÆglßçü*l*ÞIüŒHãZÇ´ð5Õ@ËáE½L:'¶âmyj`©oMPB›Ôý–§QÞö~… ,wÕìHà"zG•¯6ƒê¥ ù›~Ü,¥˜eÏq:D£÷Ú^ÁØ8Ôg×áÎŽ>c–À Agýýýý¼ËBd­Ò©ŠÕ®âþ~Àhqä:ÌïÊl¸ -=RÎ+ˆÿë5êSê£Ïê—h¼¥J:¨p“5«åÊcÆ¢Çä¿g¢I¸ƒ£ˆI翪ÍÖÕÿPØ\JÖ'hpƒ‘FTPÄ|ž„Õ±Û9²i2ÊI“–€±¬j A«%CúêÆã'µ3R‰'Jœø…-¶çY´n×­6òºÑ)žN*G F* uŸg0¯L&„F¥ž S»ágˆœ‡ˆßñŒ2«gäà“alì;á:Èwùp§†!d -C””‹È¿B-ò\p¦&U5ÑU¼HÔŠûê=âL8žVÑÿ|l ²ñëŽi–ŒªõA ¤%ök¢±•K¥Þ€’Çù†$€eOöî°qIÈ0 TÓ@¿J·¡–%Öч*'#º¨;®{=ýøZôn>]Uã+èhxÎÙ<ØwüuY½ÀÝUó ÷×õ=noZ¯o¨¾w½4+©}Û¾o­ —7Ïü·ëÍóÜ©å2xõõàîm¯Þë÷kß|¥oºóò“GióøýùÍUãÃËãøpúß<:è:/ÞFHŽ©ñeï[Wýöôõ•sòñ¼þõLñ“ûü”¦³ú·å姫K‚d~á!áƆeŠñKT—‘4³1~lG½¿“Ùd8›žc`Æê‹)r;?úýèoÉ>ÔÕendstream -endobj -1216 0 obj<>/XObject<<>>>>>>endobj -1217 0 obj<>stream -x}XmOÛHþί˜o€”¸yသN'%PNÕª~Aª6ö†lq¼©wMŽÓýø{f_g M%'Ø»;3Ï<3ó¸?†4À¿!h|Jùê`úpðáj@éa§çøQÐ  ôõßýÿ¼û¼óàøáûÁ€úÃAvŽãqêno÷n…CñåvloñÝôÌÙèÛ„ש»^` þ¸ÄWüÌƼüÀ¢ð‹ºî^Rzj|Øù~<úúyvÿxÌK?\Ðpè±ëN9¸ ]e¬ªžH/hL¦™WÒz<öhÔ£ñã1庪dneAóW²Mµn¬¬yÑVÝ°¦Ov)¤BS¥-­…14¯µ(ra¬ÉèÞKÃèñ8±ù¥0ô ­D¾T•4¤+R¶œ ñã“öqû`œ<ÈhbL³’´Ð5ûA+½’•ÅOaI”¥÷-1ݵäê©©£Õ4—¤*w8u£ëç'ļFÀlÁ¨ÕºT¹² -.ñ,3ºö1Ðløí‚ãð@‚»Ê$†;¶Þ¥^ »L²¦i­7ßGJfÀ‚6 -îçº,…•Î#€ŠT"i¦·õpÇð)1­L7RXgn ¾À¦¨Ši X·ÀÓ[ˆjù° UM3i§Ÿoî©^NÛejÙfáÎè4;áÔOL´†pv’1ךÉÖ¬{$KO£.Ô•ÉCþ9p,@ëRä’a—H3™Y`—µ”‰ß-cE‚uŸ»‚µN{¾J“Û( ÆËUaòhLýÄ(œIc|®ô¦"d Ô¹(¿³,È®EmUÞ”¼s5”y7¹4N(^DeÅ36± -·*®k,d4öêÆÉë@8PÄH ðùï½äLy³uBaRšÞ6µ¾ß›^,@#³5;Ë\T¹ãˆ<|A(e„ñšÉÌt'ðfs<"£‡Ÿ„툊Ôñ¨–¹T/®È¬Ö2£\г”$±º."Û"‡ÑŽ”œ­{"FÇžá×0ïöç}Ÿ¨¹@GŽ§zF¸¥]é:qÁò9h±tô-°Ûó¢ˆá=Ø#ÜF»jlëÐA‚>ˆBàp¼‰qö?%\ô5ÐsÛßãžs6¬äðÑ*$·áCÑØ¥®•Y9tõZyè2Ê&þ„ zQ"нMc€6æ2 2,":ÈŠ¬Üh{.|Þ›ã«ÉÜæGŒìgÈì²ËÆe_С­qŽ,ëÑ–ÕB‰y jitSç2"> #ôº3<}ÛŽµ‡s}Ñì­}ðOŠdŽiN›%0ðs&TzO‡|#÷%m¦<éç ^¡€½-_=”Q D^;ò!wœÕJWýÝÌÆxÚ¹ÀU„<­µr#<’/Œ¼RëgnM ÌDLBLJ_õl¤Sx†^uƒÉÝ”;Åó7êØ—’äUR=-çº^j]Z¸½lc#º"Ê@t[qÌl}ŠgƒÁËgvÄitâݽ—>[M6õ#<Œ|¢¿PGÑ¡ 9½ÝnÙ¶¸Ï ’=ÞÎp»ÉI‘íŸ<7&˜fÃoSw½p×KwýÎ 3' ýY£íf¯Twþæ³ _Ý•ÏÚÊÝSÆ],Z;Ö¸Ø ë®| -Vx ßHÕT§´cuK‘Ø|3÷½ÎHÌMH¦rÓÖ9v¸Ry­!OEõ»lØšRq¦7$ÿ+hÓ¨çF¬Èh&„ñÊ€'1š -$§#àÞ^ -1Ÿ¼Œq®ú©ÓêÙ„•&óZåËZWê_r¯SNceôÙBqcZºŠ:ÿÑÈú5ðŽ¸{<âü@¨eAŸo»¢(Ðb‹1:WÀ®p6\L³Ž¼£¯7wþqwóåö÷áô·ÐWY÷Ñ@D]èßÐP½„HlíÊÔ0SαptwtéoÀÈF¼@L³uSA:ž²¸ò³4aÐ3‰yœjeY:ùãZ&ˆÂ­do&_Œ'ÞV€¿‘UÁð‹ è'U¥øå^GÖ"†´B‚¾\Þ¢ÃÕ–†ãs4~ಠ»xwØæÝ‹inAóTúhl ɹw -þSÕ¬FPe²â£âPö -9G18̧·Eäß¼ŽÇ}e°›9¼ùð¿Â$¨¶Ó˜—\;}» Ø0ùRM § -k TJ®– 8æ,jƒOe´¡]rÑ"Œ“¿˜Ì1 ;Hº`c¢Ð¨gÞß©§ô%Í™RáÕâWŽþÃÕyxsžžeƒó1~ó[Ìýäz:¡ÛZÇÌ9^C¡ÇÙ[Þ×Ëûg#üEq4ü%;ÉükžËžoE¡ÿðŽ“³“ììôÿ»ÕÏøÖ§‡ƒ¿þ$Œc4endstream -endobj -1218 0 obj<>/XObject<<>>>>>>endobj -1219 0 obj<>stream -xíWKÚ0¾ó+æIó ÀöÆc÷Ô®Z©$d‚Ùxì®í€¶¿¾3v‚ÙˆªÝöR©$gb23ßØão&ü¥0Ê B±ïL·7 \Áb‹ Ç(l ‰“$EÑýR­%·®©VGÃá#3–kœþ Œí-î; DiQ¹¹+¨€Ÿ¨Gœ'©¥ãý¤Aé6]ÍÂ>Oú4NÝ8sãÜ×}hY;W¼(ßf«É²ûfÙCÙjÄYçN¬-gi<¤Ø<Î,%õð„8Ѳ7êF™­æ/ƇÑ6H0ä žð¥+í§«ëŸC͸Û|5O5wPs·¤ùŠ â퀹>pmà(l œ#`[Ú|[ò=0ÍA*±Ê–J ˬ8à Ûs“©·7HSŸ\QæÖpbQUø¦„´P2¿SêAÈ;’Ì - ˜uG¥ð.îʵҥRPŒKHƒ¬4dk·Ã90¼£&Ê/¾ºV¶ì7+ŸÇíŸ÷v²ymÁ’%wOÎXËG¤Žw&|6ŒdtA~1bÔ}¬¸,8¨-ð—Ö &fAE¥ù¶ˆÙ%ŒTG?iÜùÛ©‚í`ïÏÕÚ2†¼ȲK›µìÅðµä„ó$‹R+)¾sÞìðtÖ{G>6jÏp…[NÐ¥[ŒÜq|Ÿîl1[ž1,-ÐEXÄ´LnPC!3„é,†‰K—x%3ç7>£ÐóÌ)DÁ"Ê4Fž[.ŸEC©‚=ð:¿NÜe¿ÿ=i²¾fäóSQ&*hHù ˆ'¾¡d#¬wæ¿ãæ¸]\¾óIw–êÒòÛÔýò ûãö/óyÃÆ—ù)¾Å ¦’k$¬~]DΨçwh=”b¯¬ëÊb-³· þFHtþÔw¤x‘¨‰Ù½=,JH¨ÔTôjÈËÀîˆx]ýÏNg,­k¡suNóB`Yq(öÂ*˜¾ÞAMÊ1ÔP!r¬ŠœË;5¶Á†µ™#6±Å ±¥HãTÀ5ß«Ö' -¢¬Ný\í_m· Á~ÆÃÒ‰Œá=íÍY'ùÊÆØ÷y"m²ö•ÃGÂ9e^”ÿ²$ýißûÊóMß>®ûöt8Š“qÃÑ°þš|œNà“V÷¼°0WEµGúÁÆ_IÊô¨QˆF~Cnºé»xÔZZb,Vhe°ô>/XObject<<>>>>>>endobj -1221 0 obj<>stream -xWÛnã6}÷W ò²))¶ÛIÑ ½ÈÃzÓÆhQ} %Êâ®$º$•¬ûõ=C‘¶¬¤è¢âÄ’8—3sÎŒþMhŒŸ -¦t1§¬Ó1Í.&ø¼¼ZàsŠ_#©½[Îï.i2¡U#ó«­rÂãã1­²ÓÇ]“•F7êoá”n,­¥{–²!WJÊu-TCµ°NZýlñW49U:Õà†¥gUU”éÆ©¦•ä4é,kÍ­[÷ÃêËhLÉä"Âÿ©+•%[ê¶Êá‘ÁƒÈwø#œ$«\ëÃIñé<½äc÷I…È ÝrL¿LHãsJ…P•õAºªô³j6]8>„Ù€J¢¡¥¨¥%] ÚzË–ð¥!)²ÎsÉwÕˆ,“Öªu%©2Ú|¥ÂˆM-òEøŒ’ï̩@8²­4¢–KU'íL{Ñh#Õ¦\ëÖ”Z^eõÉ'(\m’Æ•}·ÎÉz‹P6€odæø_ÄnÑõUb¼|aº(<þF£WÄÈZ?q>F×ì49*ÞŒï‰{ú2nR7{˜ˆ¢+²ÖþÂ{öÁýv¿|$4Þ“D+)ÊÚT;ß9\dÜÕ)<æ‹©ÜË2pÓÚv БûŽZËmÒ]H”Õšýh´È3ô<-¥{wÿù‘ÀDð@Ë$Ii…ÞE´- Ð̪ZU Aå])8ðÅ» -Qr¼ôaŸÕ¾Ð±;/:ÀÎï®iº¨÷Œ’ù8½bLfé,¥Gé@³ µ[ØêAÄô ŸLéœ}ìˆ#èQÔkžÍJt,ÓçU“ƒÜ´\Á.½¿] ³•Î{Bº}g@Bs‡«Þê ûèùz’÷¤n©n²Ès_æoõ–Q}L¶^§hm4„B©ù:À·²ø(VtáÞëÑ@¯?6•^‹Êþ‰™·ÝUH¾Ãj¶Ç=­ §v»ÕÆÑ[ÚIßJÇ°IúÚá…UîÝù¤të99I¯S”°œ#š{+ z‰•+—…h+ÏV˜O Œ`HJñ9lv¤«O¡ÑúÛÎàÀ)³×&Ѓ…ÕAÑ7 ˆm7 iͽív»1â†r„¸¸økðüÌ·‚´p¹£Jrÿseqiàù ½iô.Š€òãQ¨N¨H'_¨HlêO]ñjº’NŽ±?ý/ÄOO:Þ•’ž’yÅnû,µ é÷¤AÎÞ‚ªÏ ž,Ð`1ȆiÈ¢}de8w~Ge´ -LЬ?Ÿ—á„[Å“&¥š–ŸW·ÿ“dè} Zk ô£a¥Ý?x ÷"Α.¼à5#Ðg°oŒF-3äÆ]°§ªÊ$%¸#»F[®¡ä:kyúyí‘Ì%fa…–^jÌr¯€=}ñ†;‘Ö#;#·•Êxì#?5€Ô£¶Ýg$^#.|Òé…Ÿè•üddó¤À1¥[KŸTf´Õ…ƒã¢E¿ÂBÌ!tpŒ´¸Ýít¦±it@ü>/XObject<<>>>>>>endobj -1223 0 obj<>stream -xÍWËnÛFÝë+.¼©ÈŒ$[²\4â棈“Æ ²hº‘C‰ 9£ÌQõ÷=w”ÄH)²jmøÉ™û<çÜË/ƒ1ð9¦ë ]Î(«£dDÓùe2§«ù5~ŸàËH*·éàÉË+)-pe6¿¦4'(ÍÎïu#©Y‰ßJKU©$½~ÿÒý›”n_ÐË”J…‡’l½H2­ -*ÊJ’.Ü?D½d¥ù* ‰¬)Õ’„u>ÜÝ?„'ÒOƒ]Œ/“ ¼Ÿ—•U‘Ð]A[ÝâLC ݬܭ3>ûäå4D|¾)•%Û®×Ú4ô”¶Òú1¥ó3Òë¦ÔŠ„Ê¿cÁGø”~U¢–¿œ²<©z‘÷"Þ”UE…(+j4ÙF˜& '&³äŠsJWõøj6šÖÚÚr2ÙL*aJm©Ð†3uj×”Ab ÅÙ½±(]B0ƒúÛP.øÑãwzF Ä… ØÜhó™Ð.QÜ”¥Êá„n¦CòMãzÅÿÞ§T‹l…îsï€NDé†-å²52G[{>×(ã@ì›y®kxô‰X‰ëù¿eÒeϱ‡ÈC!þž_ë½Xׄ'/oh T3¼/.¯|;ÆÓd–Ðîv·¡ÄŒfüæÝï¯Þ½yÿ–MïóãbrÌ\?ÑgtæT§NÖ¹+#üà2à²=ŸCWY¡N¥åH¡$JÎ`óAhðò€kÞ0óÒׂ^ Û€ƒ.OüüxŽöíSì~ R?îye ”`Ö -zkÊZ˜m´ùðctUI3$Q5+Ý.W.E]眅:­+±µžÑ¸,íÇG=ÇüÈ£'$Pû’‘âEŽ¼ —‡ô8‘Ð(Û€NF×TéLT@®Ë<\´®5 «ËÌñ«\‡ð•øŠ¤#ì‰Á\fåZ8‚Éc-n× ÎéïhDLô€°•;ì‡xzéÆ´$hi¿Ñm•3>„BºšÍ©ó9¤V Ö‡>´ž}Žøª‰Ryž60ÓóËUXi¥²¡ÜQ†¢ÏúZ|†•¦¤±‰]˜}!¼c%ÞŒ¤úZ­j©xÆÈÃ"uîë’Ç•8@9PçEjäNhUm{ â÷äxVkT§+(±ôŠ©yµ3ìùdRr.Щ1¡–qÜü¹¬ôBT½‰µ0-GèÏlu7ê ^q˜qdêíMOÖÔ°À—¨,’‘…4xÚr™9øcäqS -ã™ôFí`…øMŽJ6ºW4r»Ã©¢Ø¸@üPUFt$}$Âljâð~1ÂþƒYOdØUñÈÁP°/hÉ÷c–WHºÂ62›úÆeĵ%l'Y‹®¢ùíÒ4¤ÒïGF~iK#ûD»—7C¿@ùFƒâÔhæ·“™ˆ:/‚q` -æÎfà+V7ÿƒšEÑå{guÄJè´h·CP@ó9X®H@hKn™Š›ÇÍ4c1³º!ûЫFªþ&1\‚}F.4榑².prHÀyÙüdÝxµ-tVÐRëœÊ\ -VÑ–M²a7‘4î+®ìW —u¬ÇuÕðƒôçÚ•;ô×é‡k Ùèo-½8„®pC¶±Æ˜ àÅCšß+6«Íüv´¹Ý -ÇZGJŸ.)Îí÷öŒg>&oM‚u܆Ù¤|—n›¡³¾hœQ&€°þæ· 8”1Ú"†dg”–ß(°-v¯0Qcöcèb„«{˜Tnè‹Ë¦Ö@BŒ'·:ôýÆåyÞ´Æ3¼7Î/ñ†xÉ -öðìõí3ìƒúÂÄ>˜µ<Á±i··^Äã×¼Hæç?²p_ÍæÉl:Á¾ÎG#üE:øcðŒcÉ—endstream -endobj -1224 0 obj<>/XObject<<>>>>>>endobj -1225 0 obj<>stream -x½WMSãF½ó+:>AÕZkËøƒT6U6  Y+Å!ä0’FX i„×ÿ>¯gFF°E.lk¦?ß{Ýüs4¤¾‡4õi4¡(?xŸ¼S:MñÚÇO))1üÑôõƒEpôùò”†C -ؚ̦Ä;ƒÑñUB;UÓZmñè­qhíc Î p".‘6kÆ˺bݾ栛‡wk^l³V×{‡Þã(Êû -&8ê&4eGÔ*’ZSmæ/º"â‹(tj®Ó‰ˆž ŠN·Ñ;*jÆÃkÏJL£u -{çx… uŠd,‹HÒýq˜ -Y"h­0•õZÕYl;» uü6a·‡¯Y­‘¿ hÇZÐvÃȪÖ5O ->Ô1«Â#o"T5~;F2ÓòšmEQ9whö¹¶-Æ¿±ÖÌ è–Õ£Ù-Ï- ÿý0€$•Dñl ßÍÖyU¡‚fÍ0<úÓô -»Ô֔ˌ²´2ñ0›_òSL'æÔÎM]½Ã¤ÎQwù=’›ªù”ש´=©º?q.ÌY›¼Ðn¿E(Ñã»ä«1ÊM:¢åå•kÌWÍÍßFƒDn=2=4Þ‰fä7Ui â¹øžæuþÂ1 Ý»i5s4Nð?ÇlD“)ÖeìðFkoKõˆq„(ªs‰åƒwoöÙoŽ÷§>þ׈?¼«žNfÞdìcËå[ƒ![»Žþ8ú³H%–endstream -endobj -1226 0 obj<>/XObject<<>>>>>>endobj -1227 0 obj<>stream -xWMoÛF½ûW t©HŒ$˲] mÓÂ*Œ¹¬È•´ ¹ËrI ú÷}3»”IJ.Ú"‰cQÜùzoÞÌþu1£)þÌèfNWKJ‹‹i2¥ÅÝ,YÐâö¿Ïñ¯Ò´ _,“åðùÃêâã§Íf´ÚÀÔòö†VÁÌtJ«ôòqC×Ð^Ùš¼*ÖŠjGW¥š”%ë´6ÎþúZUuSŽ©Þi|Ò5ÿB£²Ò]U:£BùZW#Úæn­rr¥œ4x·X'©³˜þ°úv1¥Éì*™#ŒËÑAûQBÏâxoò<ß©W¸'Ÿ›í®&•½":µÕä^uEn+*]­mmà'¸¥uåö^WΠ&ÖÕtŒnàxp(¡?¼ÆIã©T•*4¡½©w”ÂÒ˜”' -%¡Õ{G;çkO_/÷;-áÇAÜîÍ -Ý]“«èi5ðŒgR篸¨\B|Ô”»¹øfmQØ5r” -KgJ Œ¤tŒRWÆerÄ`3Bµkcþ

)¤¤tÞ›5‚AjÜ9fÛ€ÐL»ˆŽVשºÖE‰fìaö~¢mZÇm+®€ôÆTˆ0@0 <5%šÍ @™g't7Bsöƒ”£oa*Ú!ÚY»¤‘鮩¡kíB¤‡Ï­âTÀ‚e¡ë™™¥òJ«ìÀaüžwÆͺC™œ]±"TîÕd(ƒjjp¹6)›56S6=ŒÉï\“sšÒB!íÙø:EvÀß}ütG3ˆ2«óäjúivÜ%ôY}7v“b'†»Ò>™ß@þÑŒ«á›¡Ç|él`>u9xÈæÙpˆŠrâ†(š¼6%Xê ½()/ò©ãÁ¥Èx˜Ÿ®÷š„Hàú½Ì/ê{Û˜*Eã°R2¢õ;^¢èÆOÄ£‚Œ¸kgKBÊôF!pnÏNïC„zuk™ßj×FIHŽe'Âùôe%âóÜÎijÜçB*Ú»êû¶rè)Ñ.¦.bñ7x¶ƒƒ¡0ZwÂÀÅP˜'s”ÊSý7ö‹Æ:ÐOÕõ-A7Ðdjm¸3Ùß"ÉDXŒºmáƒÓ'Š -˜W®xræí-[ê¼À£6µ="è#K88;ôµe!Æx¢ÁÂ}oÏ„äÆÿ.ËÔW„UeûŒ†QY‡ -W¼ìÍèµ9@ñ¹Q¡µö Gkn?ÝIœÝš,_®2‘EÕÑk)ð0´A¿ o¹FUÿ0x§ºRñ ãeNUGmx¼Q‡#º Ø%ý*pŽGõƒ¦Â©àO§¯F5Äñ±qi¬Ã|ê›ÃöA[#ó])*kšXßú0ð>rC'°#z;ß/ÖmL©¦ të_mÚ¾.•Ìy·+È|{Žxw÷p‡¯Î>QðÁVCG&¨È•./ ËMÊ‹|6÷¿9c†|òÇ®dÑ>³o³_—°ûendstream -endobj -1230 0 obj<>/XObject<<>>>>>>endobj -1231 0 obj<>stream -xWÑnÛ6}ÏWÜ—¡)«–ã:é€=,ÁRØÒ1—¼Pes¡H•¤¬ùïw.IǶ: CÑƵÈËsÏ9÷Pù~QÒJºYÐõŠêîb^Ìi¹˜+ZÞÞàó¤6>(Ë›b9}p·¾øðð‰sZ·¨µº¹¥uC¨3Ç7õåýVôA:*W=‰®ÔK×Z× SKRÞÒ¿_ÿk”7©ÆìzY,På›Ê‚îm× §¼5yå’Ê2¯\Ü*V®·2—÷ÒípÞ१õý7 -–‚Яñ'ÕZI -ZoOª¥½H ÃàöÊlx•—ÀÕ’ -¤žF©u\é·vÐ ãÓ¬¼N(Zï©Ž0±7p•ÞÙ§°Ñàƒ$/:É‚­­f’:ë(B ±J‹JÇEi?¸¢Vá›à„ñ­t“Óßês³ÜIzÂa,Nt‘ƒJxÙÐÓwhŽÙ)rÅ -z‚½/‰‡Q˜ˆ=H@¡ ~zÛÉ°en´z•$èqÍåŸÛçM®Æ™HϨÀÓVìÖR£|ìäP5„Äš z©"Hü“•áÚ$}åg£w¬R'öIˆJ‚O$p ´ojÁ „}#—^.ýPoIxz”¡’ƒzyN¦Ú%Ñ¢·â P'´j¦,}–FºxÃIV€4¦IŸ¹Û“W¤t.XØÀ‰ñMFò½”MA_@qtÕÁnô}PDO˜ªà«Vxž%Hnèñá銄Ø»Ùâ+å Êî©ã®ÙKÓx²Q0ºÇÆnÚГÄ¡q°ía°(\c ¤8NØ£„¾©=0Hv‡y¸bÑ Ê<®Ñ‡‰V¡^óiõ¤ƒ<øp"Ë]ÁdW¤ E›òœH­ó˜Í/ä°SÃŒ¼Pm6lÈVÔæ@Ÿ,R‚³Ïðgª‘»ŒfÃÆÉé[áš‘çƒ[hœBëžç²a’øœ2Æ"W¾ ÏXƒ¦’Ž`'ïO'gÍjéæ*WÓ™DT@n3ÊM#ü~†ÖGQ8AOÓ/N%ÒoQÐ×^Ûúõ˜‘xÄ9;»æN¹à”üŠ†vJŽÜö‡‡³ˆäe¹LÊ:¦Ó£ƒS!…¢§Œ¡×!–Xií0d9Qac IQ'j”ˆ©d¡ªX Â#‡Õòe&xPOpÚÁtÚ¾·. Fù j®üŠ…IŒ„ˆÅnòg \P:bÆ(à ‹f™z¶¬¨k ÔáÚËŽ}1¢ÄÆñbر}ì¥AôÌ%W%¬aßÃÑ\6£â$Âè˜Ó½àÁ|¨µõSœ´æ)­Á†M! ®AvÜéX!dZ’- ó!¢#*Æख1²mž²øT”·ˆFÌňÑu“ƒÆüãS¢!UDÂΤ¨¢²ƒWÿƒF.–·-O ÄÆTÈUûYüD¸hP¥¼ á .o\{\?'s~<¹¿ó ”láéz:qxnâ¼î™ Àduˆ·äÎb0>5€lkGÎ6$øÀn0[o;áð*€8Á¥Î:ãn¸ãïXvl3VfÚûoÕ‰À~t=ÿ‰T‡ïv0`ųá†FÈ9RÌDqÎn°o°"zvm„žœwZ°Øf‘|ëÎ,߉Qah$ÁÈ€…FSâ3å8oäwŽÃ:Ù(vEŠÏÆbÙô.øæä.Æ8H —}…2ÍD -z× -¼džßá~î4ý1 ý´–m¤&°€Š™I£•¨_ɸ§â…T¥´ -{~â—½ä*¼‹1rä>Ñ zÆÕù+ßœ÷çÐAWä@{ìÜêUql£¦w~kµ¶ãIð¾Ej™^‡bð"z‡‡ôâ<Ö8˜‰1¼,A“‘˜CÑ‹ÜÎ \ÄB/—üžôYw°+&*ñåòäJgª™aîÝbäªý„À<°4cûFÁ}Wµ5lC={Žß‰KJû—÷Ð -Ÿ]’Qp ’#}>Ñ@ûÃÙÿ9á·Ç _^'Rÿï/ËÕm±ú¸ÀÇ—Û|É-ÿ¶¾øóâƒo'^endstream -endobj -1232 0 obj<>/XObject<<>>>>>>endobj -1233 0 obj<>stream -x•WMoÛF½ûW t‰H´¾,+‡ìÄ)‚ÖuZëŠ%¹×"¹ìîÒŠúëûfHÉ­ŠÀˆ@jgÞ¼yófõ÷Å„Æø7¡›)Í””ãhL‹é,šÓ|yƒÏSü9M™¼˜/¯£å¹Óé™w«‹«Ï×4™Ð*C’Åò†V)!ÁxL«ä²Ð/º˜’­ ›l<ýDÁ5úýê‡æ‡C£éPVé¥ÏmS¤äk­SJl•4Îé*Jí=K™)4>ä -¸²ß+K[;Ú:‚®ðµ!ù&ÉIyRu]˜Dc+òÚ½˜jM>ÇQÏ Æ4šÌ¢)§þ~itÔ½jã#P¦êâStÿí¾K?z O&qÖÛ,Ðc–™D·!¾¿çä ‹Ân=%…A\A/­Ó*©œÿ£D%¹FºÚ D›…öh -Wµ”}  xbžG³IKÙdM£YDàí]¦6zÏõ;|²G”êÚi Ó·Ìs».ŸT+䯀׃ä£0CŠw´vª -Lê¢Ó6×Zë𤭠õ¢¿™ud+¹Ê êGá ÑÙ¢@?ÏPT_ƾ–íñŽÓ"ú’ÑÎ6è^ “WÓNûG¬ä,ˆ ‹¢K³&bA+JµëeVkèÀ(tבXB8¥*(© 0]µ-ñ{­ÞW*–T}Ö™Äã„ÆŠ,[¹˜é> .iSÙ-m g`ýƺ:ÈÊœ-™É®ˆ>p‹‚)µÔ-¼ÆiŠÍšjíІRU£)kg_tÉC„ ÀÃWãd ü[͵€f‰í`a?hr TÃÝRŒJ`§{nYTG#ÑK)Òê9uAK!tHÿ¨ Uµ›ø åê…•çfðb<Â@ç¯[H®¾|%T²a’<ö)”ÞËëÑQORÓíÇ_Žöåó˜Gôï[oþ‘iù/ßØ[á@Šæo:cèzªf?I߈åû+q:ßÎhד7bºÜOUÚ†m§±lzÅZÊÁÞõ¹ƒÙ`º=o\¬›Ì§‡»½/xú~Ù]–à^x!(†‡Oßd,ñœK‰Úâ‚búZ(·†Al$àúE Ë‘ïTÜÙ]¬×¦BptÁˆ7bݱF+eŽr fFC©œÜæÊ«ÑBØ„¬6ÄëUÜquädVø Š=Â=”9í!°’dOv‡ƒ—0£lŒ(fµqý½Ä‚‡øv`Á¶'7¹æRyª9ÔÌ÷Ÿ–¾«ÊuM4Àî·ÒÝZÅÓMi@ïuÏ‘Ä? -\WA‹–]ÓuŸI`g6&ÜÇ°¦^[’P©{‹Ÿ:SØÕ]+q~²˜-ç­=ž€ø¡Æ…W^1ÿa)çݱ»[CÒ’7Ë›·„E%Ã~掊„¼¡Iñ>&ôµÊ’‹Ë‹‚•JAr -[n“ßùÀþßÚª]D·]Ü Z\_ãg B×ÖT`Ð÷…ÌÉ%v¢°UåŽô|çK0•º´ÈÙT4ê½r¦Ø wWŸ—Ýo’É?‹–3Z|·×ˆ§Û‡»[úêì3ï‚O6i\qå£ýÑÍ¿{ÒËÿ-Ÿ/–ÑâzŠ»=_sØûÕÅïÿž¶€eendstream -endobj -1234 0 obj<>/XObject<<>>>>>>endobj -1235 0 obj<>stream -xuWaoÛ6ýž_qð—9C­ÚŽ­¸ú¡Y[ Àšuˆaƒ¿Ðe±¡D•¤ìx¿~ïH)vI€ÄïÞ½{÷Žùq5£)¾ft;§›”²êjšL)]½K´XÝâ÷9~¬¤"r!L¦Àiaõ‘„ÖôðõŽQLi2»AÈ™ªB&—Ð?¦¥LÔÈéÃñ>OãKáéAT[A…@'D­Sõ.`d¡PzO#2W¦&Uºj›d¦.º7((ö¥r„o®þEZ d4ôG+Ãz‰Bd™lüÚ¶žjóö0+sÑå’ôk¤ø×XKŒ’ÐúÄ}ÂÊLª½ 3@Çñ¦cb{ ˆÏú¤.MmZËÅ!@hOÒ½1O![ôà‹§\¢ÕÜ8Cér mo^:ÚŒÏ8Ù\ÇR•g,qNmuW–3U¯ÔH[[ÑVz ”/I  ¹ -¢ÀÃ^JÔÖʃ{äžî…ë¬ -ã‡8æÓÅŠ“kõ(¡) ÍDë@„N%5ÖQå^UXSeÐÀL8Dä’º‚û®o¹½Q2áìù\Mn‘'ŒSšÐ&{<.åâ4ÝŸƒGÁæ9YªjŽ[è¼U™'Ct*†ÇJ‘¿=X]f<.›±Ð¾4í®$pž«rFr¯Lë\¢~Á»ÍuB_ -:bšd-¸?ƒd›q™Ñàó÷t”n´¹fzêpžÛX(Ø@.GtmQ _¢ã{¡k¹¨3I%£¬ wtþBSXïÃ#a¸¹‹@~„vhNX?ˆuÿù]lk/sÀ‚&bبÉÌ´:ç?Z¦¯Tà š¨qp€¤ 2Ýc”ÉÏZ}›ÐC) ªÊä2°}±Ý,üF´öŒ,ÓÈš5p²ÈО#9m<çøߦðÀ·•QÁ9ëräN9G”!5¼Næ(Ù›A!E«ÁÑITAÖ&qŠ€Þ£c'oEÕAÁ Bð^ ggÞC¬£fèÇN¼rQƒ€~!jPÜË#Ó&r,œ1„¨$†7Èh3Ɖè<ŒQo{ISÿâ ¾±È`Ô9a¾í t%·ìœ>pÇ9à MLÍÌDF e1Û¥ç<âx—ÇlÆ,¡ÏÆ®j¬§¦Ñ*¼4‚×`Þ GUÐÞႆØð}äùfØ•`§‹rD ±HäÄa ³ýüa2÷2W.)§RŠ½jý…•Œ ™3c±<0ëÈ øÛÁX-¼ªXуNšÀ 7±žgEË{>¾×"¨™z4tÐ5B ÚA#ct&w+³WÖ5rúYò.ÁÅJ-Ñn´Vcup\׿÷¯*ŠÉGP0ôµ{éïd süö;…_*ðÆhX]¨¼6À½eß—uÙŸgd0¸«èp7y5[}§î×C"îÿ\ú¾ÄêÂRá% Oï ˜VÌŽº`h ´ß]G ×°®xÜrªde` {%· f3æiŽù3øÀ穸2'©ÄcØi ›·S…€ßZØ—äå,q|”a6X•%¨Šn7°€C…?sÁ/¼”²—š¥xÑ»}ÓßÜt ,0gèý© "årÛvÑxÕ°Móþ«±žÏóªA‡vØ×Ö4¯/sgëã䫽£réݶЭ+»ÍÏèþkãâ…-Ø0úý5–/¢àÚò êp ëˆZu7èYŠ ÿê†Òù"Þe>|½û@߬ùŽÉ¤&kyÙ‡¸Lݤ?0¹ãzž_¸ž/Rüðœã2ϧ)û´¾úëê¿Üûendstream -endobj -1236 0 obj<>/XObject<<>>>>>>endobj -1237 0 obj<>stream -x½VÁnã6½ç+¾4 8ªe»vöC‚¶À²m‹¹ÐmqM‰ -IYU¿¾oH9ÑÊÙôP ÐóæÍ›7|¾Hi†Ÿ”ÖsZ¬(+/fÉŒVé*™Óòzÿçøµ’váÃry¬Þú°˜ÏÞþÎfçWÝm.~üõ#¥kÚì}uÒ&'džÍh“]"ûÇ„¾¨\’V•t6_¿¤a5_#Ù&¿Ü’&mwp2µW¦"å¨2-ÉJlµÌiÛQ.w¢Ñ~JÛÆ“ÚQgÊ•ãï¤<=]­ô^Zr2k¬òÝÓò…¬Bl):FÜéõ ·kv; ª¥ÅáRT™¤w© -|9£ªÚÓNi (¥KˆÁcµqŽ‘j霬³‡Uˆ#ªÚKß攉 §nF©;é&Sj •§RôTcéz¥÷j±L– ¼¦³„¤ÈÉŠö}ZmŤJ+N¼æÒ©=£õ|‘¨ç¥r2Ÿ’6í•^VY*Hõr>¡[k íœÏ¬0ÆI¾¶2ž\S×Æ‚L´¬0­Ä™ÉrzåVàøAº— îÝdˆ—Á - Š”C@¹¯rñÙ‹#ÇêZEº>UäL)чd™V²òŽrSýà©Hg;j¥Ö¦È|#´î}dZPò°÷c@@æq«l¬.>ƒ¸³™©ŽHªqêƨM¬ÚȬRl/XéOL'%t$¸žº–•# FÃRù{H蓧2^ÅEL¡´š@8º4¢Q` 2ÏŠMè· -Dxé<¡`ôŠ¹ñ`ë}µ¦°Œ¢üw¹¶§°ÿ¤×xËÿ#Øo¿«ØϯvvÞ{ȵ„g°kòŒa -13“A*ÅtW±mi -_§ì[ÑRXï'Óù‚‡2ƒP÷ÐR¡‚Œ0zîû}œ÷®S[™«Œ‹ý®ùÄg•ä&jýõË3Œ¤ÙñÐÐãýf£„÷æ0Ø6›Ap)J}ïlp ÌôˆQù—·‚rágà›µp>Z†4X ¸ÁÀ·B³åp\…£CL•°Ve.aa#Ô­('nTvÀ4´÷rgÈiåsƒ±éo<õ šÁ  _dÃE—ПØpœ>º^pÁ®·”è¦nˆWÊXMŸ /ÐÀ â‘ÓðL7p}fŒ·\Ï4Lö/Á—pŒÇ7?Œ:å -ÓhôNX¯²F ‹» ©kŠ4ó^pŠãdÂOX¿X~ÂÑä þ„š*‡Ç~Þ`iGC=ÚÀ¯ÍnÔì`ÔÂ×`ð<JÃŒRl‘9ì¤PŽ(;·1êådà$JÓTX\µÌÔNñ:ÝŒd;õ7@ö£Â¦*t+:ŒÆ 5=ÐV› qu.¬Â3"ÎÍw–û"¡{ lf¿®á¶1ú—S,­ß²›släQaÃ~së²d#G#x%¾x ûAÙ’Çc½ƒKl±Ê±Ų̂°ÁR˜²l nµP0VLØç¼øsÅÏ*¼ p³„-ÎkÑ!qˆí@[Þ bpaOÌuÿHLWx»^/ð´\ÆçÚãíýÝ-ýnÍWÞQ?›¬)±Qó†Q^\­çxƒ†·ÒÙt¹Âë÷§9^ 0[óÁ_6\ü>˜Ûendstream -endobj -1238 0 obj<>/XObject<<>>>>>>endobj -1239 0 obj<>stream -x…VïOã8ýÎ_1ê—e¥mhÚRÊIû…²ªD¡G‹ÐÞq:¹‰ÓdIâœí4íýõ÷ÆIøQ`O´(uì™ñ›7o柟zøóé¤OƒÙAÏëÑÈïy}ŽOðÜÇWKŠÜ‹á¸ÿÁ‹ïÝ;ñmypt9$ߧe'£ñ -C‚ƒ^–ÁáR‘ÌÅ*•´S¥ûÆb#É*ø TV$x³ÙJP•Ø˜l,©{q·˜ü=›ÍI6Q9áÃ/.¯Î¾/(MrI*â•ÏËŸ=êúÄ» gâQF0è5ëý‘7äõkeá1–2™)½£LE’¯)10î¨42d'|K…Ìñ[KÁ‹éî ‰<ä½¹²õÖÕÎÅÓq[´¨:{À‚¹G˸4îÚ™ØÁ> ½1I’Q$››$rÂÄ8Üž½À9Gý´@_÷üæªãî~tyJ>òÀ é†5 -þÈó‡-RUÑyšÈÜ>þ2yÝþ‰7bÄn1î`€I,  (”¶ÀÄh¤µ§¤Ðʪ@¥œÐó›ÛÉüênA¸{,5oÎéêìzvvݧ5g]P¨Ed‚½ÀM!a=É`n#3„F‡‘Vù½Ç#ÃÆýc~zø¼ŸÛ)™§[Ç#MóóOçã‘Ùú#Z d÷á3U( óÈ¡GJ“C=VÔ"äªLC -bYyôlYI²$úݨë3+ ¤B3Zx^¤ Ìé8u2±¥m–XúJýÞpÜùBIn¬cZ¿"_ï#Û^¸%ù•ÂEÚMµ“ü+;”%ëØ’H¢X¦Å¯‰pÜáJÁáÇwt·†ˆÒ ²¨_øZãE¾s5GÐc]_× ‚9"W‰ ,.ƒ`†Iw°øÔ2öü¢¸óçÒ–L¨UÁÈ Š|ðσÐÂf¬âà:€ƒýÓþÿC;e…Q+4Î…Ýb4ݸ‰¶‹Y³sxè{ÄîðóiĽ…¶¾·¥Á[.ÇÍ$î1Ó4:ÖÃñâlöíŒæZýäaéB%ÏYnJå“]„áº'ýÚùûãâp4öFÇý&ÀÞ˜ÏN–¿üaKñªendstream -endobj -1240 0 obj<>/XObject<<>>>>>>endobj -1241 0 obj<>stream -x…VÛrÛ6}÷WlŸìL-šÝì7_M£DÔI:u ”‘€–Õ¯ïYr&3µÇŠZ»çœ=‹¯'…øhS2¦´< ƒ’Ñe0¤át‚çFR’K|ì}q³:¹xRÑ*çMÆÓ ­2ÂFaH«ôl¾úóºqúNÙT?ICxëB¾Y}9`b²³$ þŒƒ( b~…e7…Hwou!邏©ûéÊá+Wª”´ÒôN=Iº¯ø°ì»ÓFÿ³f@o?,–”Äß­ÿ¸êýÝŒnEº•´TÿJ -¿‹Ÿ´ñƒxDƒx @QÔŒœQ2£'e\#Šâ@øG:'‡=”“¥¥RVNé -Aªò¯36ü’D•ùºÂ:DÐ~«Ò-•"“$(Sy.¬RINcÎ%üç^X¿Øêt'隱͹Æðqºq4#Ž[Kç@”ÎsÚ+·å/Duø…º]_êAŠÒ k”Àär5¶–¼j2¢²Èéœ7ÜKYÑ“0J7»V—#J …²¬¯KÐÝçx0SÎoÈJÃJáÃIô -I¨ë½¿Y_©.ká(öÛè"£ÙÝ=e†¹<û]¢´‚E$á㛀VÀù˜á" -6RXí…B¹6…´V®‚^µ³Ïó{¿E®6‘HÝÈ+ZŸß€é"BþmQ”Üê’Ra²+Æá`8 w7–Fa8Åíó"âü=¯Â{Õ&—Xµ †xuÏwŸ‡ƒÉÂŒ+J&á ™¶ÑI‚ç‘î•1óÕy-Y !-ä;¶Èí5åªàêhŒ@‡“ÏοꨊŽ/9¬Å`4siªS‡ý30SY•I£ªM¯&ÖúÐì-E¹¤ÀASUˆE*,ÊS>©†¼Ó­ªäOÄÇ\6u{]ù›m³þ‰úº,Ü;íѽ´Ñ:»êá5÷.;UûvÌh†¿úŒñn#]?ÑwZïOáÈ:X'ò°Z -v9ÿ¾ µB\¡‘ÚæˆESƒ£ÌrãÌÈ6u­Y0[N —Ú'ü#ÁH¨ó.ëÙ­v:ÕŒ¹«NÀô*òöìhOïGG›¦¤Zš\—‚-mïÃ×’¾6°I®h³ñÚòe_<\R„©“cš ’aëµÑ8ˆàÁó}lÅÉ°~›TˆŒ'Á˜]yÉ|×R×p‘½€ÓÂ@­”l UM¹–ÆrE0Ù£jÇH({µG¸ÀÎ byÃ~Ð>Ó±}fuø.ïÑzü§üÓ†’³ÏûwZ“Kë Us­éÎõV%ýtñ9¹Æ7äìµd0ê™<½_ûÇ\7Ç´áVAy\ÖšgQ{h¥îí£ížV¹À®Öõ(è¦(èá ÈãñR>¾aÅÚrÝ}}Tx•fl¨`aÑZC\sq€½ÌN±Èx8²×Çšop ™8Pt¦3í.½Ñ7åiB£IØÞ]—×ó›kZýÅ_[;ÓÀ=EWœ9:°]0˜ÄþúûS«Ž§Áx·ä(¼ä•÷«“?Nþ4™šáendstream -endobj -1242 0 obj<>/XObject<<>>>>/Annots 760 0 R>>endobj -1243 0 obj<>stream -x¥WÛnÛF}÷W ôbI‘’%9@P؆Õ/‰Ô¦ô²$WrWÙ]ZÑK¿½g–¤/jã´¨ Ë&wvgöÌ™3ã¯GõñÑ8¦ÁˆÒò¨ôñ†?"þøøóQ|6Ft6šC*i8Žƒ³æ© 9ÛS|>„Åp2æ¿ñc$­ê…h„Ç’âá8ˆ)öO¼)Æa£æGŽFÁøÙjÔ‚ˆÎÙ+¶žGðçZw“A09ôv¹8 -§ç÷i±Â…Fã -2¼I»W±uÒP4ènÓU‘KåèÝݧÅÝÉâ³ß뽧ƒ!‚]d]GM/>ØG“akÒGp­ ŒÞé¥BÑŒR­Vùºwó0¦OÂléJ+%SGÚ<{9$aIðÉ}:2p7­ãZÁr.ÊDüT{R5žcD™u/¨Ôp‘êr[H'I(»Ãõœ&·É-}­¤u¹V>¦ÙЕÊH+ïíe‚Íšº´qnû& SatìreƒêAªÿ,¤¬v¡åXÂîl\Y¼<Æ“… šËÄ#0A^ -›§¢(ö=Ú는”Â3²Ž[+dÀ¾á=`Þi»i±‘4Í ¾RF÷&G–šd-»Ç³Ëº—Ò/Ox_8M`NÇÁ„© ¯Ëx4¦zµ…Í/žFƒ:­‹«ûpvO|œ'”td«íV÷ÿŽEà[é.gwsÒÈFí¨C™Éùñæòú×ÙôsO‚èü ¢™²°æj 8‘ÜÜXGn‡ÜëµÄC»ÜmüZ"¬$½•F86·{ëd " ¤êKûœ‘߶…Èr”+¿—©Ûd´…®ªE@³UMì S¸0Rd{J¤TØêC“Y’ÊÕiGiìÒr6Ëþxà¾Óæ‹«†¿G¢Å¼væ²@ùDj®BÖÍÒÉg.°&òμ¾ç\ºjÛq‘IsÈ΋,k|5m€FiG™´©É“'xj,ìaîjo€‰%–+Ýo}Ÿ[×é±°Û­LóN¦O³Ûy×|+ ~ƒù˜IÂycǧW*s¥ ½Þ/OZž¶57Åá/ºki)öžjÊôNZàŠªm&и<žÄ’cN ¤k†qüPtI…|·¡(õ!§ÚW#íd²È$S‚ "O| Üt£Ç®ÕÂïgü£®8:œ´¦;.OzuwŒ‚¸N €jË­¦;ÆÁ7µW[〇³Ýh x†kÜä©ÑV¯½¿¸¥¡pƒY%NÛîÂùŽÍ¼ô~ÿÖ'¹O7=dåû%>ƒ²=9@3/+ í ëŽeC8»¹¸ 0q„/|ꙌòË5?wý«¶ ‡ -½Ö’®Ä&t?8ä - ¥¯1fÄ ’´ò̼¬áC]¡ ‘wh>7 U9»‘EÑ#™L̤7ëåwd©iØhíüf¹Dk³o*¬F;!m¡ƒ¹ŸWšRô³0ÕóA8íÓy;ÿ kŽÑÁWÜkYîùí±tûõPu`‰!ñ-7Ÿ/hU:bç«ÖYÖÚ†Óv®! 5 @¥ox-Š N ÞEau•ªŽÝ#1!†E•¡šn¯ã>FífLHd*|À ô“j½ÞC©ŸW›¶7soçÏø>…»ôÄÜ4Ó=k·Uj‡Œ -Zr¨²Ü~°ž$høMõOž&SÿO°ÍÚCþÏâzZ‹¢>ßæzqôáè/€ù®Ôendstream -endobj -1244 0 obj<>/XObject<<>>>>/Annots 763 0 R>>endobj -1245 0 obj<>stream -x­VÁnÛF½ë+>)€¼%YR '…È×qm"FÑÅŠ\J›.¹ wiU—~{ß,ÉZR[a˜ ¹Ã™7oÞÌè[/¢þ"ši2£$ïÄoøñåáç^4]ˆ1ÍÆ31¢œ&gs1iŸ =²=-^‹MsÜñ_)ÊÂÁd2Óル¸7¼~Mє⠱g ܤ!äˆâ¤ÍE$&‚.áÅo®²Ø‘å[ÒÎÕÊÑv£ -úô8Ó—>>«Êi[|yªJI:’¯â¯½F3`‹Ó~b´*üOüvx=¥(jŸŽç|úÄ.w¶¦Ô’¤»eLŸo–Od+öÇ8èäZÆ’Ò}¥ Oï‚?zPÎÖU¢èª²[§ª“–e¾’„G†Fnc·T—¢C4Ÿˆo7‘­À—þ°W;/¥O6”U6ö‡õ¨ÖÔ§÷åùp˜ÈʱՅõ³…þc”ª·CÇчp)6>7‡^BiÙ‹ Y5Á¶ÚF¡‹ÄÔ©J€ê°Œô¨@K5Ù¬ÉQÐ'iœ €uJl]‚(45++»2*wr5òBeÊJ13ºX“±¸d ¶y[Ø£ØvõU%Ž!„´’ë5hbnBMžlõWi$ØÜ(¤àmx½Ï~ }_o§“šýAhSAPTý†ÖÊj‹<ÓJ#U¼ßÆÊ”¶ˆÄ€3("(¯‘“û‘ž®uåü€’J6°â6œ@"þßïnîâ÷Ÿÿ\éYµðoÒSX§l zgËë±ÖÂa¦§XÁäÎÂ3Ä‹U,/ÿ ¼:ÊkçÉù¶ÂN•²$Tý‡Ò -¨@^§u[éµ.¤ œæÆÕ ¨¿°5:·=þN0\®Ìanç¼Ê»À4 E¸i0軸£=cöן¶(A±P¤l`Çå+‘Ø" }SAD(Þ€N¬w¾rYÒ¦hx=~éú¨íÁN{A7ú'],HŸ¡±¹R%:ÓMŸzìÿÀÏ€8<{`sS&Þ¶ªe–ŽJÙò¬Ð8™5Cæ¼µê8¼À4Ú³|Koèbþú­¸HÕ³F£„§)±çôážn%zñ#”v‹ïn/——±8<9 -øæ$Ï­|VЗñš;¾ÁɲG9(›™ù®êYО-Ì®euˆ BÙKåEqLÛ^ƒ¶*,é¡«Ò³~ÿk×`ZøˆÑ w™øªÞÚ3PL©U Wˆ¶×å¾ò>/XObject<<>>>>/Annots 770 0 R>>endobj -1247 0 obj<>stream -xW]oÛ6}ϯ¸èKS –#Ùqœ¿½È–Y2£ëÙ2™SMól™Ü O=ð~ºÆ»Í—7øácaa>¿J²ó…Å,¹¥Ì-a.KSìˆO£¹Yv #gæfé-îȲ|³ ‹O|ì·ÕÅôþ–²+Zˆgq³¤UÂÀyù¦­W–ÒeBï>=®>ѯR*çèAÔkAÎtV*’&W¯Vß/®h’Íqþr§½ùúÀïØzz­Ofs\Žu˜KzßxkòNzmš¸uNi:l þbk¼H;ÊÕNU¦U9é†DCøÙjvÚš¦VOè÷a‡uÔ9ÅзË7¦‘µØ@_•u¸J7zØ;¯êo¯È›Áñt]{!K%·ºy³¢r†¶éq¡£ÒÔµö/pªQýiìI„㥣°Út.ܽ¶¢1GÞ®‰€ü:g—ŠÆ4ûz<Ø9vÑ— -‘:o#@ €ºŠñûˆÈHN2³ü¯åFvŒ -á· ÚäºÐ|u„€Lñ£ýÂtMNÂsOÅl7tI¥÷íÝtê˜ùÄØMü5•;—”¾®ž ‰€cçôA–Œ5yC³lgzÿŒV¤²Ô:î&Û5aÛ­+-«ý€²^WQVµÆioìž -c‡U°Â?‘/#â +b 4Ñ -¹å^ƒ Yu9sœ}MÖí -æô]{¤ÉºÛ$7‘Æß8 µöbïø‚¨€‘\Ö§Sw’iàv‘ãÍ¥q>@rœ¡“Yi "‹‡”ëÕú9çþ6]Pbtâ‡øùüéL…ØáöŠimM'9,VRUá‘÷1„'–¤i<ÔÆQž¡›\ïtÞ‰Š -¨×qö²´OˆaCªÁfe̶ì4',áêÀ oŒIˆ}›é¹ù1F Qs* ·* ¤CAÌ2kå{…b"š}àlHØ?wu´>¦Ú”æËçtÿ™¼‘=Yë†3g ëØ;žäͳ”#sN(‡ÿã;D«6ûz*z&]Pcl z`Šd¥C) loô|1Ùu'Khš‰¶¦"òå%·3ÆsC½öåó,Ÿê'TZÓyêKƒtóVáV¦z«TËVjêð×P. JvùèðÙÕ,œtƒ\¡XŽ¸µªPh9ÕÊ—&?¦"é"ÁÙ*e·7ÆÓ÷Îy,HáX¿c. —Ž"XÁ3´ˆÊˆ<\WÁMc8O°~M­Ñ¨ÇÀÌŽ–F¡ÿŒ|ú¾OäüÈQNƒ±ª¹L‚ë¼k õž¡ÃX¼|gzÆr£‚‡/‘Í6Öb U{8]øžA;É|êíÇ/ôöÏÜ‘ÀC÷ÿö*¡”ø2&,ƒˆÏóetcE[j ¹îE90¯¡¬Ö”¦à¸ X)[Lð–}pìéÚ¨á˜@†Œ@ ç4u83^˜±C3Ü& -kê±¹=Eù<ÝÁô†ëùPøBö:7óÍcûZ.”¡SxÕBŽ÷è=\áIý+ê—êØ™C—fÙAΦ^@"çÓ4íž5P8Ÿ»FÛŠ Öí©äŽ5V¡Ç £O”¶ëÖ(¾ $rr#Kd~h€Ôˆ:Lyw'£ößc@ASs8ÈãÆè+Ð@ -Geöì15ñðÂÝzÜÅË¡( -»¨O0bŨ˜Ë‡Žü¹‹uyÈv^žÞ_ŸŒŽÃ Ä–'9ݵ±ËÞáù—ØqÇå×$9Z‰©rœ:&<ÉVK´Ð…æ‹a˜#¨ÎõÆ‚»}«‚‹ÓûtðᦣWãsyê:ÃøŽ¸PÆǸ ~ñLTfqóô~9Ü0É®1 \a¤ÇÉŸÒCõDÚðÍóþïq (§¿ûcuñ×ÅIrÿêendstream -endobj -1248 0 obj<>/XObject<<>>>>>>endobj -1249 0 obj<>stream -xTËn£@¼û+J{rÀ{}Zç±Êe•¬‚6—HÑx L;3ƒ­üýöNœd+Ëžê®ê*^&1"þÅX$˜eí$ -#Ì£4Ì.|ðß(”“‹|rþsŽ8F^úÚl¹@^€ë£¹œÊ½EP`µ³Êì•Yñý+ÚÉlWç|kˆ$¡z–?3^:â‚$ SFœæUmq¨›Ò(áŠÚ(éȼBŠ¦QÅÁXÚ‰Z×z W)4\lÝøÎRg¤â’BáqZ‡*ìkn®×W¾5÷‹gaâû9±Ý2¤Ÿc„–ÕãYˆ~Ù£´k¸-ñ•Ý‘.,õH3¦P{ÕЮå"8£Tè¡O¹\þ¹A•ñ~¦¡±Q ŸŸ›o^ÑÙ#Ašd”f˜ZM!tÁ­Ë¹€-3\£©Y*Ǧ_™ö…öØ¿¤Ž¡H÷„¾]½³ù†Øò|eÿ¦_j[»¾¤¶åcF½t^r^˜£OÍnýùq1 ëmT£„örT™º†P(H«J”Ô4tðºø†L»ø݆'®ùû÷ë_ë§ä)ù—O¬ñP)Í¢¼R‡ƒð[&´Ê°4õ ÚH­·™¬„Þòž;æçýøez”†Z¶¶«†ÓŸd~óújXû1rŸ¸v»ÂgƒÜ …oYâˆÎ¾s€ÙÛiˆáårtSœr —3ÄÙÜ¿ï…À¡gήHvÞËÂÕ¤ý¹ ÎøÀåÁ"áÓËJìë/CÜÜ>ä·XK©¬Å½O:NC·¯Øþ&Í–a6OøCÃq<óÏ®óÉïÉ_{;_Þendstream -endobj -1250 0 obj<>/XObject<<>>>>/Annots 773 0 R>>endobj -1251 0 obj<>stream -x}WaoÛ6ýž_q0ÌRÙ²'-Plëºvöak ú…–NJÔH*ŽÿýÞ‘’ã¨éX¶¥ãñîÝ»wô¿9-ð—ÓÍ’V*š‹E¶ õâ&[ÓúöŸ—x9¦JÀT.¹\>~¸Èó®òëlC å×7ÙjøfèSt´Ül²åÔÑÛíÅüý+Z.h[aïÍÍ-mËèwŠÙ¯µê;Ê_eô‘;ë‚n÷ô¶ßûÛ¯qe~“V¾\­á}[Î`šgôGœ-û"hÛ&Ó5åù`º¼A0ÝÖLÜ(mH•¥c全ŽvýIÊ^ž´'¯šú9^3ëöâlA/—€Vž)¨;\à.è ªÄ ¬¯´aÚ1<3mO¾ß5::Û'£_Œ·WÔ%gž™tE0ª•§¢VížK¸æ˜ öÚ1[Çq¿"˜˜u„eZ$PIL Ɇţö ©@ÞJ¸ˆ9{>/…¸¨´â¼é‹ZÞ%‡Bµòî<›J²­Ùtœ*î`|hÇ]3ú$à Š@¹ xI"G$_r© ¸öóÙ;Ûwd+êØ:Ô–î­éÛÀ ²Ñ¸"Þ+òwÚOª-‰+ |Fÿ0€/X߃£ÊQ#˜§úîlÑ€Ü'd0Ù¹³ÞëAp­?°Ã6æZ+xS)ýZïk„!,QÂY2q(ûAJë̈¬G€tYò=Û±›lY9 #s¼<+‘DÈ0ȇÅÑ_@2>L+ôÎRkÁ#ï{©¡¬vF&’h*<ª# ÛtYçl°…5>óÍŽZ>øîˆlDJbt\‡ê”'aGnë€&2í}ÇEÄ6DZ6Ún¤ð1ƘßP¤­ô¾wJ:ódˆ[)€çÒñˆÛ ‚R3; @JÌ’âŽ!ÇÀ#Ô\áõe&88l ú|yA× H• @ËÎHhŸÚG!ú¯QÌ)öŸÑbÛÃhé}KÆÚ;ø³ý¾Ž ÛðUåŠìD»j-ý„@È=·`Bòt<½bMROixGÚ3Ø‘¡{=ŸŸ*}šËB‘ÖsŒ’\fô[vÊn«ïüý3ù6ÉV’¬(½ç²…>`t¼ÁPÖ¨ŸŒ9;gZòOAE'¹Dû¨‡Ihíî^[¼AÆ’Ì$ÕXšÀÆÄvŠß°ÕèÆFû‘FÐÑ0(-ˆ+ZàzÀÆ>tÊ5Rùü4DÑcÑùÂ:”x„2=LKü»´=öKkÈR*k òéôs{šQ©Õ¾µ^§,NqFŠÁO´•i€ÿ{vGÒ Õ~ÓÖCOé¶0}ɨ² QhNØ¡#C2zv!\+Âï{0 -i«}•þ‰ øAB°ƒ…äã â¥ï¨0BI!˜´[ÒÜ(¶çŽägo Wâ0¢ø=Ö­2zdz=&ø3¬âW,eªö˜Ê‹´0Šb6© v q–V*¦tH.Ú0Cbs:®z/vð†fGB¶ ²õ#OEþ¢JAâdÕƒ|T½‘tà­<m>]Ä<¥zÃì¦U¤h¾ _Û–=³õèaT¢7:§QJœh@Éñ^”$θ’1[Í ½9Š¼!W›†V©ýùNß ù­hlªoùXY-Íß_G¦ÙY6oÒ£±l³So§û8ÆSÖ &“&˜gôù\;+$>*õ’Ä4ÅÁÙg@@økÖ¶­Œx¨*Þ…žwÌœ o„ýð’´†a2Úe„ÄÁ¤x<ÃίÇÐ_çÃu:Üb 7”/Æ@™œQg#GðlÞ{77¶PfÐ^£wø¾Ï~h&‹Æ¶þΚ´aáSMŽGV!,˜ÀH.±˜ÆèàŸ æäx€*­y,â!ŽÍËáé¥È”ôA«p´ñyLd8wê…D{ < *’“7Ì¡ñÜÛÉÌo4îÑm”)#п«¨ÅP§ǽÖ3´û†u©=&A%¡¼¢´q6+cì!m†ùg0!kQEJ]U-|õ\ôNzôÌg´]<+ bE -QÆ‘s“àù»}ü©±’O`ËÿÿYon³Íõ?€`šçkñþÛöâï‹ÿŠ€YVendstream -endobj -1252 0 obj<>/XObject<<>>>>>>endobj -1253 0 obj<>stream -x•WÁn7½û+¦ºTbY²eÙ)ЃƒØ€&Mµ@_¸»Ü#.©’\Ëúû¾îZ†lŠ @Â%93oÞ{Cý{4£)þÌèòŒÎT¶GÓÉ”³éäŒæW—ø÷þMµ|8»¸œ\½õav±x}âÓòèôvN³-kY\]Ò²"˜NiYŽ—+MÇ˟؃dÏ8¶Å¤ô®ÎËÃÑ1i—Â./^ {Éú†¬~Ô–~?Üo"Åón×ú.ÒÖ¤%D{óšJ]óÎ=i¥­T¤BkG]ÔGÞV:pÈ)ÌÎQ÷²?êw‘|MßU[(R›ù¤q LÊ8¯} B•ë­ -U¤Ò·•La¬I;>:@µ±:Nú g‹Éœƒ\G.ãàð¨l§9 ãÊ ç¿ó±)•>T¤(šÆ™Ú”Ê%»vrÒd%5¼d -h‘²wCr·¨¬õ1½Øí7:ÈÞ(a[µ#ç9<W§Äw®L³Ò•)GçúªU@ -)¢1ÀË…¦€ŸK¤°.B¦³éœJ|`ôF…rEÿÜÜÿ «B£éÑÛ®Õ 7S¨RII-§·iŠ2WOÎçòÙÇÉ|Bw.éà”%‚1w` 'vŸ]NÜ »Z -m4’¤ÑÝ×åÍý×ë?èæþþÏûµ:F…ø º$ºô™LÂGöá2 …Ò;§Ÿ6ºL(„¥ìAñÛ˜B¡sX"ÓÄíÞ_¨‚QÊM ÞK¨Vå[£•^•:01±3ÇWŒ9'˜sxw<”öÄ]©G¸ß·ƒBBBÒÝŤ[Š¾N¼ôpÜŸ8 ˆXŠ¥B'êàq¢-*þä aèsè¦*E+·‚ë.@ýå -œCVä&Çtì÷/Ÿž€÷Ú<æk8æ„–+QHí:ä çë½î,£!äc®V~‹ÿ!ÎÍJ´±¬¬ƒˆœí*ôýèÛÍÈ‚“>¤A:&? É¸òå¾DßWC+¿¥äùLðUWBûÀÈÔ´ñ1¤1¡o’µjÍ»P«Ý;á@ÆFWoEeIJÈÚ€Â>WbÃgZ©ÍjV¨„æBØÅ®¨  L@AIœÚ~a Ak‘ÂZë°ýŸ(ÉúËN—› A‘=ß&üì[¼·b¯TÑAÏÍb°ÙÞ*/üÆ!Oo‡Á2í}´©ŠL7.(ïz)æ~—ª*n90~ŒJèºJ+dçóiÖ‘`…–ñ•ìT=Žº…³TÞýÊCráM(ù´£QU<˜|Ú`ÃóŠIÇòpjàŽ\/@-Ç Ä#Î¥›Yè )LkË-à#U}YvÍd;r„Þ dm!§CÂô­‹@90'FݲÍX嚎­ ñã²T&âûh GðÜ^ÓûyÑÃœ6‰§Õ+·¦ -¨ ×ä@‚SÈàì?bJ”˜ ÌÜôp,ŽÇ˜­­kB.¤ŸTÉïuB `!¯óÝz¿6$iC’¾sBÒWPàÍ#*Gþ™€ÜrÆi‘$ WèäL5[NnôÞºÒ¿,éÈ{sêbB× $w®T SPÂÅ_3½[óTOÅHô°äΙ'¹%¬É”†gþÆêYãº'Zc0j2¼AX -ÿêÚ Âï}¸0“Šk~N–ˆÉß U©0ºLƒÊ#1ä‡c¹ÈaxÏ¡Mi3Áú¡ÃØ—b£}³•àÁ`pø~HDïÁ·ѳ7|»û<êÉÁ÷òLÇÒó¬‚ÜR³~E£RÔˆç+xŽW«´O£Tæ ,'$ X9¸¬YpåÞ½úûáPª„YÇ»öƒ-³BºÌcXà³Îs¿ß~Ô,03ø6ý>+–ˆSh<è”÷•A 1ËÀèG]DÇkóôËà{Q¼¾á™¦“ UÎkðå1æF]ÓI——#³ßã¥Ùkê÷67_ŽÇnÓÞ‘>Dak`™ïF+çá&ô…‡'„-ƒ+ä)ÂC É©$ NcÐÊó€_û½·ñM/¬"âm‡aÍý· Ä$N°÷Õÿ\Æ!Ç<›Oo¯ú7³~z]Ób>ËÏÐï×_>]Ó·àbäÒg_âÛ?ê8úÉpàäò ¿­ªñ»ÏÖùâj²¸8×wÍ.øôÍò诣ÿ/Ù„îendstream -endobj -1254 0 obj<>endobj -1255 0 obj<>endobj -1256 0 obj<>endobj -1257 0 obj<>endobj -1258 0 obj<>endobj -1259 0 obj<>endobj -1260 0 obj<>endobj -1261 0 obj<>endobj -1262 0 obj<>endobj -1263 0 obj<>endobj -1264 0 obj<>endobj -1265 0 obj<>endobj -1266 0 obj<>endobj -1267 0 obj<>endobj -1268 0 obj<>endobj -1269 0 obj<>endobj -1270 0 obj<>endobj -1271 0 obj<>endobj -1272 0 obj<>endobj -1273 0 obj<>endobj -1274 0 obj<>endobj -1275 0 obj<>endobj -1276 0 obj<>endobj -1277 0 obj<>endobj -1278 0 obj<>endobj -1279 0 obj<>endobj -1280 0 obj<>endobj -1281 0 obj<>endobj -1282 0 obj<>endobj -1283 0 obj<>endobj -1284 0 obj<>endobj -1285 0 obj<>endobj -1286 0 obj<>endobj -1287 0 obj<>endobj -1288 0 obj<>endobj -1289 0 obj<>endobj -1290 0 obj<>endobj -1291 0 obj<>endobj -1292 0 obj<>endobj -1293 0 obj<>endobj -1294 0 obj<>endobj -1295 0 obj<>endobj -1296 0 obj<>endobj -1297 0 obj<>endobj -1298 0 obj<>endobj -1299 0 obj<>endobj -1300 0 obj<>endobj -1301 0 obj<>endobj -1302 0 obj<>endobj -1303 0 obj<>endobj -1304 0 obj<>endobj -1305 0 obj<>endobj -1306 0 obj<>endobj -1307 0 obj<>endobj -1308 0 obj<>endobj -1309 0 obj<>endobj -1310 0 obj<>endobj -1311 0 obj<>endobj -1312 0 obj<>endobj -1313 0 obj<>endobj -1314 0 obj<>endobj -1315 0 obj<>endobj -1316 0 obj<>endobj -1317 0 obj<>endobj -1318 0 obj<>endobj -1319 0 obj<>endobj -1320 0 obj<>endobj -1321 0 obj<>endobj -1322 0 obj<>endobj -1323 0 obj<>endobj -1324 0 obj<>endobj -1325 0 obj<>endobj -1326 0 obj<>endobj -1327 0 obj<>endobj -1328 0 obj<>endobj -1329 0 obj<>endobj -1330 0 obj<>endobj -1331 0 obj<>endobj -1332 0 obj<>endobj -1333 0 obj<>endobj -1334 0 obj<>endobj -1335 0 obj<>endobj -1336 0 obj<>endobj -1337 0 obj<>endobj -1338 0 obj<>endobj -1339 0 obj<>endobj -1340 0 obj<>endobj -1341 0 obj<>endobj -1342 0 obj<>endobj -1343 0 obj<>endobj -1344 0 obj<>endobj -1345 0 obj<>endobj -1346 0 obj<>endobj -1347 0 obj<>endobj -1348 0 obj<>endobj -1349 0 obj<>endobj -1350 0 obj<>endobj -1351 0 obj<>endobj -1352 0 obj<>endobj -1353 0 obj<>endobj -1354 0 obj<>endobj -1355 0 obj<>endobj -1356 0 obj<>endobj -1357 0 obj<>endobj -1358 0 obj<>endobj -1359 0 obj<>endobj -1360 0 obj<>endobj -1361 0 obj<>endobj -1362 0 obj<>endobj -1363 0 obj<>endobj -1364 0 obj<>endobj -1365 0 obj<>endobj -1366 0 obj<>endobj -1367 0 obj<>endobj -1368 0 obj<>endobj -1369 0 obj<>endobj -1370 0 obj<>endobj -1371 0 obj<>endobj -1372 0 obj<>endobj -1373 0 obj<>endobj -1374 0 obj<>endobj -1375 0 obj<>endobj -1376 0 obj<>endobj -1377 0 obj<>endobj -1378 0 obj<>endobj -1379 0 obj<>endobj -1380 0 obj<>endobj -1381 0 obj<>endobj -1382 0 obj<>endobj -1383 0 obj<>endobj -1384 0 obj<>endobj -1385 0 obj<>endobj -1386 0 obj<>endobj -1387 0 obj<>endobj -1388 0 obj<>endobj -1389 0 obj<>endobj -1390 0 obj<>endobj -1391 0 obj<>endobj -1392 0 obj<>endobj -1393 0 obj<>endobj -1394 0 obj<>endobj -1395 0 obj<>endobj -1396 0 obj<>endobj -1397 0 obj<>endobj -1398 0 obj<>endobj -1399 0 obj<>endobj -1400 0 obj<>endobj -1401 0 obj<>endobj -1402 0 obj<>endobj -1403 0 obj<>endobj -1404 0 obj<>endobj -1405 0 obj<>endobj -1406 0 obj<>endobj -1407 0 obj<>endobj -1408 0 obj<>endobj -1409 0 obj<>endobj -1410 0 obj<>endobj -1411 0 obj<>endobj -1412 0 obj<>endobj -1413 0 obj<>endobj -1414 0 obj<>endobj -1415 0 obj<>endobj -1416 0 obj<>endobj -1417 0 obj<>endobj -1418 0 obj<>endobj -1419 0 obj<>endobj -1420 0 obj<>endobj -1421 0 obj<>endobj -1422 0 obj<>endobj -1423 0 obj<>endobj -1424 0 obj<>endobj -1425 0 obj<>endobj -1426 0 obj<>endobj -1427 0 obj<>endobj -1428 0 obj<>endobj -1429 0 obj<>endobj -1430 0 obj<>endobj -1431 0 obj<>endobj -1432 0 obj<>endobj -1433 0 obj<>endobj -1434 0 obj<>endobj -1435 0 obj<>endobj -1436 0 obj<>endobj -1437 0 obj<>endobj -1438 0 obj<>endobj -1439 0 obj<>endobj -1440 0 obj<>endobj -1441 0 obj<>endobj -1442 0 obj<>endobj -1443 0 obj<>endobj -1444 0 obj<>endobj -1445 0 obj<>endobj -1446 0 obj<>endobj -1447 0 obj<>endobj -1448 0 obj<>endobj -1449 0 obj<>endobj -1450 0 obj<>endobj -1451 0 obj<>endobj -1452 0 obj<>endobj -1453 0 obj<>endobj -1454 0 obj<>endobj -1455 0 obj<>endobj -1456 0 obj<>endobj -1457 0 obj<>endobj -1458 0 obj<>endobj -1459 0 obj<>endobj -1460 0 obj<>endobj -1461 0 obj<>endobj -1462 0 obj<>endobj -1463 0 obj<>endobj -1464 0 obj<>endobj -1465 0 obj<>endobj -1466 0 obj<>endobj -1467 0 obj<>1<>6<>7<>12<>18<>23<>33<>36<>38<>43<>50<>55<>57<>60<>73<>90<>93<>100<>109<>115<>117<>119<>]>>>>endobj +.(DëèàYóÑ'8¦3Ö•8šœ&Жi´À_L…Ÿ?Cÿê„6¾|ßí«çœNä?Lß“`õŽQ×tÞžÓx6¿c©Z¦©Ÿ¨ 6ówmÞ,–¶7j3¯Ž?Náq‡ÔÜ!æu„a9ÒìZ}Ç–¿äžÖϳèíè)¡VªyólZ« +åGòÐ17á6AAi0Uû‰÷„ðRö‹¥õõj„ã sóÉA¼lò:k/Æˉ3¦¬Ó‚jॠ¼^~¹Xn·Náᣥê_˜xqÍÔ~s Š…¶°´«;íÕʨwÑoÏkÐ$}Ê‘9‘øÐ ‹sÂbNûl¿lÊŠ]Ád‡S¶:¹zKUýÛgA=LYÐj/qV8NÐw-@%¯­Œ¶NåB¨çã·VÖOëÐËÕs+›Zh Å´¡NÅA¨ƒoL´•ÐP`/ €´¼üÜç@83ÃŽ:¼_é´hÁ¡×ð…!z/û@®p¾Ñ%8T›Â}r5{qÉ6_o6Ÿè£?®™Ô™Aç݉çÎØ·ÈÍ·V§0Öè§iùà¤TÑr·”•» +¸‹„um=¹Z„bܱƋSšLÁõÙ”õÆ‘’nkóÛ7🵙 >îLŽçcZöÞj2[D³i‚ûöÆñ”}|Ú ¾ þ©q»endstream +endobj +1313 0 obj<>/XObject<<>>>>/Annots 814 0 R>>endobj +1314 0 obj<>stream +x­V]oÛ6}ϯ¸ÈKS –#ù#O뺥-´[ã6К¢,Ö’¨‘”5ÿûKJŽëÛ†À±d’÷ãœsïåŸg)]â/¥«ŒfK’õÙer‰_ÿ>½=Ë®³dF‹e–Ì©¦yv\ o=ð~Z,²dIóë+²EŠÿÅÇâûyu6½»¡ì’VòY^]Ó*iàyñîããê#½–R9G¢^ r¦³R‘4¹¢ôæËÃËÕ·`%½ŠV&3Ž~•_¼o¼5y'½6MÜ4§46eWˆ›¢Yí(W;U™Vå¤ á±!Õì´5M­ŸÐ/Ãë¨sŠ]Ó׋7¦‘µØ@_”up¥› =ìWõ×—ä {¾¤I:‹AËRÉ­nÎqVTÎж1=::—¦®µ?Ç©FõÇ™&1ùŽvÂjÓ¹à{mEcŽ$¢]+'Ä\NœŠÆ4ûz<Ø9Ñ— +™:o#@ €ºŠùûˆÈR´^Ùd0îæŒØŠ×r#;F…ð,¨6¹.4»Ž)~´_˜®ÉIx*½oo§SÇ„&ÆnâÓTî\RúºŠTÝÐ1ŸÁ1>ˆÁ:ûŸ¡v… k!Kݨ§Ýd»†Cn»u¥eµ`Óë*2jUkœöÆî©0vX!Ÿcõ!EAX>b¸r+6ʽ¼²êr;ûŠ¬Û7âÊé›ö€vÝmB˜¨<ï †üz±wŒa¤td‹ówÊÂ'™ñhwBsiœlqQ¥ÀŒ‹j2K#otCÕôjý pÌï¦ ’ŠÎÈ›ÏïQ…Tˆ¾´WôøøHkkzÇé°$ª +¯¼¡;²$Mã!Îî$xÝäz§óNTT@†ŽË5zDj6+c¶,¦¸e§¹ò®s¼1Vöm”§æGUuyÈškR¸mdŸ ë‚*˜eÖÊ÷ +]A4ûÀÕ vØ? u´>ÖÌgô Žôó§{ºý±äFOÖºá8ðòÏ bç¿Ñ‰½“]k—9Ô[m˜"YéÐây½üÌ]ÝÉÅ i2oÖTdX}¼„¦sB`n¨×¾|ž´c9„h:O}iPuC`Þ*xeæ¶Jµl¥¦߆rqÈOŸ¸f®qÒ êƒ9ãÖªB¡5çT+_šü©¢H! .:qèü¨vxoŒ§oóX±GiNGNWˆ ­»2"î*„‰c çÖ¯¨5}˜ÙÑÒ¨ÛïÔÐ÷}"÷ B&Hgš„`øu yäËÙ½xgzFg£‚ÏPi³MÂd@þÐD…ï9G4^ÐƧÞ~øLo»çრ+¦ê×— }0Ù—±¢|žïo+ÚRKà )*ÇK ­´Ö †Ô§]È^ÙB`j#ZŽÁð¡k°]#0î 8¼G"§­-u83: Üï0¶÷ïšz,®ïá<­Gp·áF;t¦P‡É ò€çX Ã,´p¯ZìC[/©¿DÝ©Ž3Ð9ÌCäúèH?ÃÒ´ûq6†‘p¬”Ѷ"Ïöxé© j 04rá’Åêº5z”ï‰\®Ð½ô'²&5¢V¼„«ãdTó{\еÁò`c ½Æ +geöìq?ákÑqcõÔHÍLØ}@}‚+nsùEš;Åëá2ô©‹s¨_^žÞ-Ž.iÕƒ-Orºmãø»ÅûO‡ùËmÓ”-z½¥2½¯ À1Åǽt¡»Çö<µÂ¹ÞXp·oUqz—1\ÀtŒj4xqH +·g¾®^dOy-ÕòÎJwïã`XÇÄf1‚éÝõö$[Ðd17Üÿ~‹ž/¯“å"èJ—ìñ×ÕÙïgìðHendstream +endobj +1315 0 obj<>/XObject<<>>>>>>endobj +1316 0 obj<>stream +xu”Mo›@†ïüŠW=90`;>ÕiåR%UPs‰­—Á&‚]gw±•ßÙ·ùP…@†¯÷™¿FR¾2,rÌ +È.J“糌Ÿóå‚Ÿ9߆PG—e4½™#ËPÖÞ¶X.PV`û4E)'å®±86m iH8‚@Õ’N›7HѶTÁŠn# µr¢QÚÂí-[7žYÝIlRž&MBI°¹½^_•/QŠ8›%9'ž8±ÝrHy°Ø¡äîé,A(BöÆr-§ÕüË,œ‘f¬§¢µzß±œ!J|è˜cçE2÷±ü~ƒ’…æ" |,CaCÐ_?'ß¼¡·'>Èô& Mb3|8!›@¨ŠS׃r%:V¸FÛ0]I¿* †ö”¿Ö=‡Ò*úvõOÍ7ìÅ–ë«ÃÉ@ûHØÆ…4Rw»zí=rn˜ÓŸ’ Ú‚ÿؘœyjIØ¡/'ʺo™¡ÒŠ>’¨uÛê£çâ²ìxzs>²yGÚ·/®°Ú[22+~ÿêN´Ù®¦üj´v±ÁÃúçåú9·aùÈ÷Ýh<îH1ƒ7Ýã(|—5:2Œ¦ Ò˜ÉP[îsÏúü<~©µÑ¶Û ÞŸˆ ˜ÿÎúj(ë?Zû}åwƒ%Ç÷ëy³fIáçož`8\ŽÄ²9ïár†,_ î~á Õ–½Ÿfá­¼gœ¼¼ì/Ò ñöî±¼ÃZJ²a ߯ڡà¡÷®ób™ç9ÿ+°[–-ü·ë2úýX—Eïendstream +endobj +1317 0 obj<>/XObject<<>>>>/Annots 817 0 R>>endobj +1318 0 obj<>stream +xuW]oÛ6}ϯ¸0,ù+vÜŶ¢kW`[k`(ÐZº’ØP¢FRqüïw.)9®’!±,[äý8÷Üsé/4Çß‚î–´ÚPÞ\̳9ÝÎï²[ºÝÞá~‰—c*å–ž.Ÿ?^,+<\-ÖÙ†Z¬ï²ÕðÉЗhh¹ÙdË熶[/®«ôz‹ÝÉåjÛèóÝnê«g^ÓrN»o+bXø&¿úÌuA·½ë+ÿj÷ýBV/îÒê›Õ-ÂÙWŸÚàlÑçAÛ6-º¥ÅbX´¼C>X´«™¸QÚ* +ÇÞSiíû +±‰OÚ“WÍ^ý¯™u•›ÓÍrü`â/ÃÊ3u ÌÝàba@øûKm˜ö ËLGÛ“ï÷¤Îüdô›ñöšºdÌ3“. ‹jå)¯U[qáÀ“&æé8îñׄ¥¦F±2m$¦§„䛆Ţö ©@ÞJ¸ˆ9{9/…¸¨°b¼éóZÞ%‡\µòî<›R²­ÙtœÊï±øÐŽ^3ú"à Š@¹ xI"G$_p¡s¸üŽùTÎöÙ’:¶€ƒµ¥kú60;±«qE¼×äïµ1žT[—@7øŒþaŸ³~•£F0OõÝÛ>¢¹ NÈ`â¹³Þë½Ap­?°ƒs­¬©”~­«a€9K”0––Ç8Šý(¥‹ufDÖ#@º,øíØM\–Nc‘9^ž•H" däÃæh/ ¦zo©µà‘÷½ÔPv ž‘‰$š +êÈmn›.ëœ 6·Æg¾ÙSË?À‘H CŒŽûa@€ò$ìÈm2ú4dÚûŽóˆmˆ´ 8Ún¤ð1ƘßP¤-uÕ;%yZˆ[)6€çAJmÉ ‚R3; @JÌ’âŽ!ÇÀ#Ô\áõíJppp ú|{Eë9ôÍÊ +@ËÎHhŸÚG!ú¯QÌ)ö_Ѳ4¶‡ÑÒû–Œµ÷°gûªŽ Ûð#ªÊå5؉v=ÔZú ‘nÁ„ äËsèxzÅ>š¤žÒ>ðž:U1Ø‘¡{3›*ÝÍdãT£d}ä–2¤Û2;ûð‚4¾K‚•Ä*Êí¹`¡½.04*§WŽÄÎY‡füSðÐI(N•0I¬Ý?h z7ÈUÒ˜$‹ؘØHñ\ýŒ>l´ %õ‚Æ‚²¢®`ìC§\#õûC%…Ï­Cq ~GhÒã´¸HÃÃ_2XC†‚ZU­õÚÿB;Qvü?°;’ndX¨öY‹ý¡ÛÜô£b.DÑ8¡î +uŠñI¤…<­ˆ¸ïÁ$¢Z4´Rz!nàG• YÒô)ôŠ'VpI¢Ü½„,Ò:I?£pž’G‚½ôˆÁˆË‹ zÏ­U&ð BòbQVÊSí1• + a Ä<™÷ ‰•`S*Œô'š£“c‹9.{/ë`b +åŒBc `“ôÅõçDÄ¢Ö ±ã|Œuƒ”½Éè=ÃZq×(_*šˆyJ݆ L«H·Åœ|mØö‚ëѨ'¾èœF1ëi#Ép%z'UÁ˜æ‰jE¤«M£§Ðþž|§òg£z'J™*[<FvK`³ëáàsu–ÍÛôh,ÛÕ©OÓ÷8/ƳÒæD& 7YžÑ×s,uê¨Ôg HJÓgÇ–iÆï=ÚÔ¶2¨¡xbÞ3w0‚ŽÞÃJÒ Æ’q]FHLŠ‡,x~3†þZNy‹ìvµÄ1mmñŽƒÚ)zK‹ù©ãÃxN{K³Þ»™±¹2ƒŽ½Çç*û©™lÛúöŒÐ ŸTöfŒ Gð›ð—rŒUäšHMc2C^Œêäa@.íyªé!ÎÂËáé¥è•´E«p^q?f4&™ˆŠ¢=¦FaÒ“2‚ÔÉ o4ú‡ž6 ª–Άáu”YÈTƒ3\ +ë>#aê–IP‰T¨¶Hn¸Ê{HÎ!?â`…!ô-ŠJ¡Ëê…žóÞé€@>pƒ¡‹.Œ A»ˆC.9RpâynÐÁíÓïüÈX¯ÖBœç¿Fn7Ûl³^â— /[±ùûîâï‹ÿ¼ºU6endstream +endobj +1319 0 obj<>/XObject<<>>>>>>endobj +1320 0 obj<>stream +x•WKo7¾ûWLu© IJä‡ìèÁAlÀ@㺎Z €/Ü]TI®eýû~3ܵ Ù>A€„Krf¾Ç õïÁŒ¦ø3£‹:SÙL'SšÏ¦“:»¼À¿Oð7hªåÃÉùÅäò½³óùû'æïø²88¾9£ÙŒ5‚Ï//hQO§´(Ç‹¥¦ÃÅOìAb²gÛbRzWçåá蘴Ka›χ½d}CV?iK¿ïï7‘âÖy·m}icÒ’¢½{M¥‹®ùàž´T‰–*R¡µ£.ꊌ#o+8䔎f§ÀcQŸtˆÆ»H¾¦ïª-)‡Í|Ò¸È&eŽ×>P¡ÊÕF…*RéÛµJ¦0Ö¤- ÚX'}“ù䌃\E.ãàð¤l§9 ãÊ ç¿õ±)•>T¤(šÆ™Ú”Ê%»vrÒd%5¼d +h‘²wCr7¨¬õ1½Úí×:ÈÞ(a[µ%ç9<W§Äw.M³Ô•)G§ºÓ* …A 0Âr¡) Æç©=쇋élú §X½V¡‡\Ñ?×?ȪÐhzò¶k5ÃͪTRRËñÍgšA¢¬Õ£Ó³ ù­K:8eI‡àCÌØÂľ“‹Éœ©¹­¥ÄF#=ÝÞ-®î®þ ë‡‡?FÔê"C<À?H\a˜LÂG݈Բr`„¢;§Ÿ×ºL()Rv¯ìÍ¡Ð9't›˜èuð…*?àÛ´P¼@µê,ß +­°TêÀ’ÄÎ_1Úœ`ÎáqÜ9(PˆÛ‹»TOè|ßÞ¤ 0“n)ú:ñÒãanP/ bX” +ÔÁãD[TüÉ1¢Í—*À£*Å%·‚ë.@ýåjCVŒzcÚKöû·// xmžò5sB‹¥x£ö òF +0ò–^w–ÑÙ±J+¿Áÿ?çf¥NZ[öÔ^DXÍv¸=ÝŒ,ÔèCL3`ònŒKßYæ%ú¾Zú %Ïg‚¯ºêßþD¦¦µÑ ÝKÔªïBìsïD]½•Í(!kQˆúú–•Z¯áC`… hþ ‚QìŠÊÊä<Ä©í6°²+¬´^‹Ú÷ð‰ÒÙy¹Çe$(²çÛDŸ=É{+Mó-@ z&‹ÁæÆVyÁà7y|3Œ +¶ißA›ªÈrã‚ò®×fîw©ªbÊAðë`Të*-‘ϧÙG‚(ã+¹Gõ8êVÌÍ òîW° oBi¬§-ªâyÄâÓnžT,:†”ÇRƒ¾Èåñ\ÐrÜ‘@<â\¨™žÐE©ÒÔ2|dª/Ë.€Ld–ŹVt3ˆµ…öÓ´rlå œuËmÆ*×tÜÚÏ1þKe"¾qß¡Ïkú8/zCÓ&ñœzÓÝ­)‚jÃ59„à28»˜%f+7=JÇcÌÖƇ!ÒϪäQ÷6!°wÆ«Én½_‰’Фôxý„Ê‘ SÎ8í ’„Ñ:9ÓcÍ-'½k{¬ôƒ/AywB]%ÐÕ4\£æs_¢¿Õx?°þæIž:qŠèÑŒ;gžud2ô’); Ìü{§Kdëži…‘¨m¼è +¢Ot®®]#ü®ƒÖ`RqÅO¨ýâ0íÔ™ +s+—9Py¤ ­øñPì-FÞp ("m–V?nõRhO³< ßǽè=8ðã6zé +÷·_G½,ø^žæXz™R0Zêbv®ørTŠñd…ÂñÒböi” +Àì…å„ +—5k®Ü»ó}?J•0åx×n„ƒ2+rË +Fó{qxæû‡Ì=ߣ?Öà +çÛ€ïN—2a`ýx‹àº6Ï¿ ½.j”Ž·6ú$‡éG#ƒ”3zñ³¢®é¨ËËCósÇ»²÷ѯk¦]ŽÇnÍÓý"}"pÂÆ M~­<Û 7¡o<0afV!OdHN5x ¨ÃUžü¶ïûßôª=D¼ç0 ™y ¹ÀFâþ]AQý¡ 9æy||sÙÿ”™áÇÓôò”æ§Óüèü~õíËÝÿc–¾úÏÕþ!ÇцGÓÏòø|ûH=›_Næç'xÊâq:›}æs׋ƒ¿þAÐ…eendstream +endobj +1321 0 obj<>/XObject<<>>>>>>endobj +1322 0 obj<>stream +x•WßoÛ6~Ï_që‹ÀVl9Nœ¼ ÛúcźtC=òBK´ÅD5’Šãÿ~ß‘b, Y·¡¨[K<ÞÝwßwwþëlN3ü™ÓuJ‹+ʪ³Y²ZÑñÃìð<™Ñb~Ìér¶Lnh¾H®ÉHÚâð æ/8Œ/ts,èruÿ¦øëOþ¸>»xCéŒÖ[8¼º^Ñ:÷¦x’?Ý6T‰¦QõŽ~þüuýù|ý“KšÏƒÉ4]%)ŒÆ_œ0Ží•+苨6‚ð#ʦ”NHP-÷´;¹rÛÖ™Sº&eI< UŠM)Z’²ÖY;ª¤+tN÷ãR=Êò@Ns3š"_ï8+D½“÷çxƒPk±“ä`ïY±wœé +osÊDYÊ<¤±ìÒ“­6Þ@æʦ8N:éUrɉrp[e¬#UU8/œ˜Â" DÐÚžûèðNÐoošp<®ŽCÆëJ(Ì+|úh‘Þ†' F„?¢€’L×ÝXŸ1û«5`×µÇ_a@•†öÂr¼9ǽSO!ðRY‡Gxn,•puµ+œ%N³Êt¨Dÿ{m­\L›ÐGç/·º’À`§2²®ÝnCêVU +Ép´iå*¯GŽ,œIz’/eYÒVBÙšR>“•®mì°Ÿ$„äsS2t2Upͱp w닯é/ί>?äâÙŠ\’Ø‹CB_ Öˆ¾,™ÀÁŠíÅ I¦r¸$èLdcô R8iÉçdÊ*&t§ø +Ãxô—Xá´±£p*áó¨…¸F +ž7þ®à 1êI•r‡¬ ­Ø¨R9V ]ø§9s”ov +hU¼~T@XÔ>“ÖBa w©™ÀZߟ0m]3:¡þ3*‘*0k˜ÒÈS(诒Õ0i&ÀðÜiê®h‡™T]H£ÜèÆH"bòm!¶Ñƒ–ÇBarÁF¢Œ€ÄéE5Èö´þ¹±N=I'ôÎË2@mu•|=Œç@ÙÓ2Æfò-FО…Yêݮǻ~PŸØ˜ÿÔ- Œ5îw{]ç  ãžºW +ñºDìÝBÕ0¢– Ô×sä2ü{Ì*áF–'@ :`|Á1¶§1°À>0®­Õs:ÔÖÚÖ› o±“‹÷±«/¤Ë.^÷ç*%»ã)Æ­Žy’Wl?ÅHÀÐÎÇóÄ߇¯/#RäžV®ËB5¸ú!mO­ªÅ8ÛH:M/¡÷h `:·`R7ôu eˆkò  tH4•J˜Ãd€“Gã­üä‡Ýi•Z?úŽvq¹á]cž\.R€ºLVø‰†ÜoŸo—³ô6F4áh‚]‚ÓyêM7É,X¦Gˆ–Ø"®–|ݯ¢Î€P¸7Å}÷›£Ú÷«ãJ4î 7Š-“ÁîÖ.¥¸x`‰$éo 4ÍèDâö MÛ^±î¸ìñŠEH Ñt™&¼Ë!Š4ñ9ñUÃG¯l^/œ/Šõ}×U4^þ)Ž˜·½ÖÓÑiŠ'kp¡ñCE˜ÂhCùÿ8r2äs·%„༕(mPè€E|ºgÛb4ï±sâÇu×6cg½õ~ŒÈâT7Ða>64µËX³½ª7ªÎYqœÛ^·eÞÙnY™›œeÒ8Æ0WFf˜ç~÷¶€}S(Ãqä W‹ K Wxëõ&H°]ÿG0`Nq #Óþ+»B' +÷M]· G¹ô8ëÃ;¡Ÿ¾OÂ(ÝvUÇríwA.ºÿ€5Cl0£â:¢:iü+ÛŸ‚`W½µv¶Jæ ¯Ë'¿^~„\^­’«eÚõ¼tÆW¼[Ÿý~ö7£"2cendstream +endobj +1323 0 obj<>/XObject<<>>>>>>endobj +1324 0 obj<>stream +x…VaoÛ6ýž_qÀÄdÅ’ÇÙ>mI³hq° óPÐes‘H•¤âúßï%'©šv âXâñîÝÝ»G~>Jh„ß„ÎSO)«ŽFñˆ¦éY<£ÉìßSüYIEX˜$³xúÚÂx4~mÇlF£øða7x€CöØú¾˜Æ“ÖùïKö(O°>½¾ tD˧ç3Zæao²ÁÂX/ÖªT~²ü÷èôzBIÒšÓYœÂxp+ªµ ±ŽŒ&|U¹$+ôF’)¨.…/Œ­­O~+Ii/m!2I¢,Ûg›ÚšGÞ®iãa°{Ç¡G4LÆmÀÌTµðj]ʘ–[Xf[QÃ%eF{¡´{Š9tµÌT¡2Äd ØÅ×HØ Ó:§Æñ7Ç©Äm¦”œw™Ž'( 2}»¸»ÿ¶ çèUX¼²{ÚXÓÔ0sI!E=tñ…Íi5DÚîRQ™(Ñ2áŒv«NS‚~gzå>©P¥„×Sé³Óö §K³Arù×PmÇ!*ªÜͯyCº©ÖÒº®Ü%®cD×z•V¾Md5X0Ì>°ö˜Þç©‹"òŠ;²ÛzÐf쬩¥ƒA…ò?¼„ =ĽЫÁ–KöåF:}ìóí¡^HÇóM­rÎlc˜p†¸‚\Êú™ %˜Cª…m9Ÿ6É„½iŽÑ6Ö}´´œªð¤˜`ÚÊ(*¢¯Ñ=Þñ(JÀš_E0SÙ–*)Pð‘MÛâðàôbþ=ŠctêÓûßîÿáL†î™'e5˜c+j‰nLGø¡¬±,,÷<‘oûûnTj+³²ÉQþaˆ?=;O"ŽÜ‹Ù¸<Öfmòý1ý¢„ÉÀ ¦,( ü¼ Tƒ¤ÎLÃ3Í 0|Ö`4«{à?“–KÂÅÚÆ +hAxÃ|.D;„¨Q¯3(™m0­LJ®"ô  úi¨vÊoÌ¯Ê ‰1;™·zÔO ¨ ç&kxjaŸ ôíð5W T«Ñè$9ùDüµæ «…s»|5˜€[ Õôḽ¼¡;­¾´/5´®’!_M¦Ìé)³XAB»˜¯Äž´Zæ·Ûªš…Z{Z^.Nç  òÙ°y,Z}†%Kt¯‚™O2ð$¦¿P>ÖÅÐ&Þ=…zn0Û7µ§\xAïŠgÕxVÏYr×Ù]ð@£àw7WãÙ]­žó¼²ŠS¦Ûw·1Í‘’#ñnp‰ +kªPh¤¯c—™#Q®½±ápzqBÀIÔ*"5&G$ Ý:<•ÞÆÔ±«óïK=/†Q²ãÌù@Ù(¡ã?oÚç áŒF‰•Fg˜û\ 4ñ›&A:º¶¼&¿hОv,¥,<“IÂm ¸.¡Žk+pØ°_g* IŸü×XÛ.w>/XObject<<>>>>>>endobj +1326 0 obj<>stream +xÅUMOÛ@½çWŒFŠ¯¿S© !JE­„„6ö&1¬½awÝŠÏì:NŠS‹c)¶wfÞ¼7Îë„B€_ +YQ +E= HžÃáG­ñ!€4¡dqžá}œ +ŠÃ +}ñ)›ï-4 +Ir0EAFò]Hv°„IŒŽÜÁr±°ˆÈgÿƒÙÏ®˜Ãb”ÄQ)RHÒ¥s `Qx°û<×[wWp¥¤:]¢¿œÌ†ÐÙŠ¶J–máÒî(uifRvçý€{Àšò_ókS|?¤F­VtÃy F+ñ²áHWo7· ª†÷›rywó¦’ È•óz`õ’Á-{ávü’­‚Ch?q ò§†5 ¤|-kŽ«ˆíÕ‹•^éO6¬CþêÊîî ÁÍÇÒï>²ëëíX(nÄ ±B?I>-Q$–ãîûÓÕÍåg¹VJÖyX¶.pßת)D[rM6!ßÍMñ žGøÖÎIšà{µôÎo/Îá^Égl\Ê¢­ycp ¥Sî÷!~8ÿ{© [V¢2o;N-Rˆ"ˆEÃО]-&?&ïu– endstream +endobj +1327 0 obj<>endobj +1328 0 obj<>endobj +1329 0 obj<>endobj +1330 0 obj<>endobj +1331 0 obj<>endobj +1332 0 obj<>endobj +1333 0 obj<>endobj +1334 0 obj<>endobj +1335 0 obj<>endobj +1336 0 obj<>endobj +1337 0 obj<>endobj +1338 0 obj<>endobj +1339 0 obj<>endobj +1340 0 obj<>endobj +1341 0 obj<>endobj +1342 0 obj<>endobj +1343 0 obj<>endobj +1344 0 obj<>endobj +1345 0 obj<>endobj +1346 0 obj<>endobj +1347 0 obj<>endobj +1348 0 obj<>endobj +1349 0 obj<>endobj +1350 0 obj<>endobj +1351 0 obj<>endobj +1352 0 obj<>endobj +1353 0 obj<>endobj +1354 0 obj<>endobj +1355 0 obj<>endobj +1356 0 obj<>endobj +1357 0 obj<>endobj +1358 0 obj<>endobj +1359 0 obj<>endobj +1360 0 obj<>endobj +1361 0 obj<>endobj +1362 0 obj<>endobj +1363 0 obj<>endobj +1364 0 obj<>endobj +1365 0 obj<>endobj +1366 0 obj<>endobj +1367 0 obj<>endobj +1368 0 obj<>endobj +1369 0 obj<>endobj +1370 0 obj<>endobj +1371 0 obj<>endobj +1372 0 obj<>endobj +1373 0 obj<>endobj +1374 0 obj<>endobj +1375 0 obj<>endobj +1376 0 obj<>endobj +1377 0 obj<>endobj +1378 0 obj<>endobj +1379 0 obj<>endobj +1380 0 obj<>endobj +1381 0 obj<>endobj +1382 0 obj<>endobj +1383 0 obj<>endobj +1384 0 obj<>endobj +1385 0 obj<>endobj +1386 0 obj<>endobj +1387 0 obj<>endobj +1388 0 obj<>endobj +1389 0 obj<>endobj +1390 0 obj<>endobj +1391 0 obj<>endobj +1392 0 obj<>endobj +1393 0 obj<>endobj +1394 0 obj<>endobj +1395 0 obj<>endobj +1396 0 obj<>endobj +1397 0 obj<>endobj +1398 0 obj<>endobj +1399 0 obj<>endobj +1400 0 obj<>endobj +1401 0 obj<>endobj +1402 0 obj<>endobj +1403 0 obj<>endobj +1404 0 obj<>endobj +1405 0 obj<>endobj +1406 0 obj<>endobj +1407 0 obj<>endobj +1408 0 obj<>endobj +1409 0 obj<>endobj +1410 0 obj<>endobj +1411 0 obj<>endobj +1412 0 obj<>endobj +1413 0 obj<>endobj +1414 0 obj<>endobj +1415 0 obj<>endobj +1416 0 obj<>endobj +1417 0 obj<>endobj +1418 0 obj<>endobj +1419 0 obj<>endobj +1420 0 obj<>endobj +1421 0 obj<>endobj +1422 0 obj<>endobj +1423 0 obj<>endobj +1424 0 obj<>endobj +1425 0 obj<>endobj +1426 0 obj<>endobj +1427 0 obj<>endobj +1428 0 obj<>endobj +1429 0 obj<>endobj +1430 0 obj<>endobj +1431 0 obj<>endobj +1432 0 obj<>endobj +1433 0 obj<>endobj +1434 0 obj<>endobj +1435 0 obj<>endobj +1436 0 obj<>endobj +1437 0 obj<>endobj +1438 0 obj<>endobj +1439 0 obj<>endobj +1440 0 obj<>endobj +1441 0 obj<>endobj +1442 0 obj<>endobj +1443 0 obj<>endobj +1444 0 obj<>endobj +1445 0 obj<>endobj +1446 0 obj<>endobj +1447 0 obj<>endobj +1448 0 obj<>endobj +1449 0 obj<>endobj +1450 0 obj<>endobj +1451 0 obj<>endobj +1452 0 obj<>endobj +1453 0 obj<>endobj +1454 0 obj<>endobj +1455 0 obj<>endobj +1456 0 obj<>endobj +1457 0 obj<>endobj +1458 0 obj<>endobj +1459 0 obj<>endobj +1460 0 obj<>endobj +1461 0 obj<>endobj +1462 0 obj<>endobj +1463 0 obj<>endobj +1464 0 obj<>endobj +1465 0 obj<>endobj +1466 0 obj<>endobj +1467 0 obj<>endobj +1468 0 obj<>endobj +1469 0 obj<>endobj +1470 0 obj<>endobj +1471 0 obj<>endobj +1472 0 obj<>endobj +1473 0 obj<>endobj +1474 0 obj<>endobj +1475 0 obj<>endobj +1476 0 obj<>endobj +1477 0 obj<>endobj +1478 0 obj<>endobj +1479 0 obj<>endobj +1480 0 obj<>endobj +1481 0 obj<>endobj +1482 0 obj<>endobj +1483 0 obj<>endobj +1484 0 obj<>endobj +1485 0 obj<>endobj +1486 0 obj<>endobj +1487 0 obj<>endobj +1488 0 obj<>endobj +1489 0 obj<>endobj +1490 0 obj<>endobj +1491 0 obj<>endobj +1492 0 obj<>endobj +1493 0 obj<>endobj +1494 0 obj<>endobj +1495 0 obj<>endobj +1496 0 obj<>endobj +1497 0 obj<>endobj +1498 0 obj<>endobj +1499 0 obj<>endobj +1500 0 obj<>endobj +1501 0 obj<>endobj +1502 0 obj<>endobj +1503 0 obj<>endobj +1504 0 obj<>endobj +1505 0 obj<>endobj +1506 0 obj<>endobj +1507 0 obj<>endobj +1508 0 obj<>endobj +1509 0 obj<>endobj +1510 0 obj<>endobj +1511 0 obj<>endobj +1512 0 obj<>endobj +1513 0 obj<>endobj +1514 0 obj<>endobj +1515 0 obj<>endobj +1516 0 obj<>endobj +1517 0 obj<>endobj +1518 0 obj<>endobj +1519 0 obj<>endobj +1520 0 obj<>endobj +1521 0 obj<>endobj +1522 0 obj<>endobj +1523 0 obj<>endobj +1524 0 obj<>endobj +1525 0 obj<>endobj +1526 0 obj<>endobj +1527 0 obj<>endobj +1528 0 obj<>endobj +1529 0 obj<>endobj +1530 0 obj<>endobj +1531 0 obj<>endobj +1532 0 obj<>endobj +1533 0 obj<>endobj +1534 0 obj<>endobj +1535 0 obj<>endobj +1536 0 obj<>endobj +1537 0 obj<>endobj +1538 0 obj<>endobj +1539 0 obj<>endobj +1540 0 obj<>endobj +1541 0 obj<>endobj +1542 0 obj<>endobj +1543 0 obj<>endobj +1544 0 obj<>endobj +1545 0 obj<>endobj +1546 0 obj<>endobj +1547 0 obj<>endobj +1548 0 obj<>endobj +1549 0 obj<>endobj +1550 0 obj<>endobj +1551 0 obj<>endobj +1552 0 obj<>endobj +1553 0 obj<>1<>7<>8<>13<>19<>24<>35<>38<>40<>45<>53<>58<>60<>63<>76<>93<>96<>103<>112<>118<>122<>124<>126<>127<>]>>>>endobj xref -0 1468 +0 1554 0000000000 65535 f 0000000015 00000 n 0000000250 00000 n @@ -3377,1254 +3498,1340 @@ xref 0000024834 00000 n 0000024938 00000 n 0000025042 00000 n -0000025145 00000 n -0000025249 00000 n -0000025353 00000 n -0000025457 00000 n -0000025561 00000 n -0000025664 00000 n -0000025768 00000 n -0000025872 00000 n -0000025976 00000 n -0000026080 00000 n -0000026184 00000 n -0000026288 00000 n -0000026625 00000 n -0000026678 00000 n -0000026765 00000 n -0000026819 00000 n -0000026905 00000 n -0000026972 00000 n -0000027058 00000 n -0000027161 00000 n -0000027265 00000 n -0000027369 00000 n -0000027473 00000 n -0000027577 00000 n -0000027681 00000 n -0000027785 00000 n -0000027889 00000 n -0000027993 00000 n -0000028097 00000 n -0000028201 00000 n -0000028305 00000 n -0000028409 00000 n -0000028513 00000 n -0000028617 00000 n -0000028721 00000 n -0000028825 00000 n -0000028929 00000 n -0000029033 00000 n -0000029136 00000 n -0000029240 00000 n -0000029344 00000 n -0000029448 00000 n -0000029552 00000 n -0000029656 00000 n -0000029760 00000 n -0000029864 00000 n -0000029968 00000 n -0000030072 00000 n -0000030176 00000 n -0000030280 00000 n -0000030383 00000 n -0000030485 00000 n -0000030587 00000 n -0000030900 00000 n -0000031004 00000 n -0000031107 00000 n -0000031211 00000 n -0000031315 00000 n -0000031419 00000 n -0000031523 00000 n -0000031627 00000 n -0000031731 00000 n -0000031835 00000 n -0000031939 00000 n -0000032043 00000 n -0000032147 00000 n -0000032251 00000 n -0000032355 00000 n -0000032459 00000 n -0000032563 00000 n -0000032667 00000 n -0000032771 00000 n -0000032875 00000 n -0000032979 00000 n -0000033082 00000 n -0000033186 00000 n -0000033290 00000 n -0000033394 00000 n -0000033497 00000 n -0000033601 00000 n -0000033705 00000 n -0000033808 00000 n -0000033912 00000 n -0000034016 00000 n -0000034120 00000 n -0000034224 00000 n -0000034328 00000 n -0000034432 00000 n -0000034536 00000 n -0000034640 00000 n -0000034744 00000 n -0000034847 00000 n -0000034951 00000 n -0000035055 00000 n -0000035159 00000 n -0000035263 00000 n -0000035367 00000 n -0000035471 00000 n -0000035575 00000 n -0000035679 00000 n -0000035783 00000 n -0000035887 00000 n -0000035990 00000 n -0000036092 00000 n -0000036194 00000 n -0000036619 00000 n -0000036722 00000 n -0000036826 00000 n -0000036930 00000 n -0000037034 00000 n -0000037138 00000 n -0000037242 00000 n -0000037346 00000 n -0000037450 00000 n -0000037554 00000 n -0000037658 00000 n -0000037761 00000 n -0000037865 00000 n -0000037969 00000 n -0000038072 00000 n -0000038176 00000 n -0000038280 00000 n -0000038384 00000 n -0000038487 00000 n -0000038591 00000 n -0000038695 00000 n -0000038799 00000 n -0000038903 00000 n -0000039007 00000 n -0000039111 00000 n -0000039215 00000 n -0000039319 00000 n -0000039423 00000 n -0000039527 00000 n -0000039631 00000 n -0000039735 00000 n -0000039839 00000 n -0000039943 00000 n -0000040047 00000 n -0000040151 00000 n -0000040254 00000 n -0000040358 00000 n -0000040462 00000 n -0000040566 00000 n -0000040670 00000 n -0000040774 00000 n -0000040878 00000 n -0000040982 00000 n -0000041086 00000 n -0000041190 00000 n -0000041294 00000 n -0000041398 00000 n -0000041502 00000 n -0000041606 00000 n -0000041709 00000 n -0000041810 00000 n -0000041912 00000 n -0000042337 00000 n -0000042441 00000 n -0000042545 00000 n -0000042649 00000 n -0000042753 00000 n -0000042857 00000 n -0000042961 00000 n -0000043065 00000 n -0000043168 00000 n -0000043272 00000 n -0000043376 00000 n -0000043480 00000 n -0000043584 00000 n -0000043688 00000 n -0000043792 00000 n -0000043896 00000 n -0000044000 00000 n -0000044104 00000 n -0000044208 00000 n -0000044312 00000 n -0000044416 00000 n -0000044519 00000 n -0000044623 00000 n -0000044727 00000 n -0000044831 00000 n -0000044935 00000 n -0000045039 00000 n -0000045143 00000 n -0000045247 00000 n -0000045351 00000 n -0000045455 00000 n -0000045559 00000 n -0000045663 00000 n -0000045767 00000 n -0000045870 00000 n -0000045974 00000 n -0000046078 00000 n -0000046182 00000 n -0000046286 00000 n -0000046390 00000 n -0000046494 00000 n -0000046598 00000 n -0000046702 00000 n -0000046806 00000 n -0000046910 00000 n -0000047014 00000 n -0000047118 00000 n -0000047222 00000 n -0000047326 00000 n -0000047429 00000 n -0000047531 00000 n -0000047633 00000 n -0000048058 00000 n -0000048162 00000 n -0000048266 00000 n -0000048370 00000 n -0000048473 00000 n -0000048577 00000 n -0000048681 00000 n -0000048785 00000 n -0000048889 00000 n -0000048993 00000 n -0000049096 00000 n -0000049200 00000 n -0000049304 00000 n -0000049408 00000 n -0000049512 00000 n -0000049615 00000 n -0000049719 00000 n -0000049823 00000 n -0000049927 00000 n -0000050031 00000 n -0000050135 00000 n -0000050239 00000 n -0000050424 00000 n -0000050477 00000 n -0000050564 00000 n -0000050589 00000 n -0000050643 00000 n -0000050730 00000 n -0000050784 00000 n -0000050871 00000 n -0000050904 00000 n -0000050952 00000 n -0000051039 00000 n -0000051086 00000 n -0000051172 00000 n -0000051219 00000 n -0000051305 00000 n -0000051346 00000 n -0000051391 00000 n -0000051478 00000 n -0000051523 00000 n -0000051609 00000 n -0000051642 00000 n -0000051697 00000 n -0000051783 00000 n -0000051808 00000 n -0000051861 00000 n -0000051948 00000 n -0000051998 00000 n -0000052085 00000 n -0000052118 00000 n -0000052237 00000 n -0000052323 00000 n -0000052366 00000 n -0000052453 00000 n -0000052496 00000 n -0000052583 00000 n -0000052624 00000 n -0000052670 00000 n -0000052757 00000 n -0000052782 00000 n -0000052828 00000 n -0000052915 00000 n -0000052961 00000 n -0000053046 00000 n -0000053090 00000 n -0000053177 00000 n -0000053228 00000 n -0000053315 00000 n -0000053364 00000 n -0000053451 00000 n -0000053499 00000 n -0000053585 00000 n -0000053650 00000 n -0000053713 00000 n -0000053800 00000 n -0000053858 00000 n -0000053945 00000 n -0000054039 00000 n -0000054125 00000 n -0000054227 00000 n -0000054276 00000 n -0000054379 00000 n -0000054422 00000 n -0000054508 00000 n -0000054556 00000 n -0000054643 00000 n -0000054684 00000 n -0000054771 00000 n -0000054815 00000 n -0000054902 00000 n -0000054946 00000 n -0000055032 00000 n -0000055097 00000 n -0000055143 00000 n -0000055230 00000 n -0000055255 00000 n -0000055304 00000 n -0000055391 00000 n -0000055445 00000 n -0000055532 00000 n -0000055583 00000 n -0000055670 00000 n -0000055721 00000 n -0000055807 00000 n -0000055861 00000 n -0000055947 00000 n -0000056004 00000 n -0000056054 00000 n -0000056141 00000 n -0000056191 00000 n -0000056277 00000 n -0000056341 00000 n -0000056428 00000 n -0000056469 00000 n -0000056533 00000 n -0000056620 00000 n -0000056645 00000 n -0000056687 00000 n -0000056773 00000 n -0000056824 00000 n -0000056911 00000 n -0000056958 00000 n -0000057045 00000 n -0000057086 00000 n -0000057135 00000 n -0000057222 00000 n -0000057270 00000 n -0000057357 00000 n -0000057399 00000 n -0000057485 00000 n -0000057526 00000 n -0000057569 00000 n -0000057656 00000 n -0000057706 00000 n -0000057793 00000 n -0000057841 00000 n -0000057928 00000 n -0000057982 00000 n -0000058067 00000 n -0000058116 00000 n -0000058161 00000 n -0000058248 00000 n -0000058305 00000 n -0000058392 00000 n -0000058488 00000 n -0000058574 00000 n -0000058615 00000 n -0000058677 00000 n -0000058764 00000 n -0000058789 00000 n -0000058838 00000 n -0000058925 00000 n -0000058950 00000 n -0000058998 00000 n -0000059085 00000 n -0000059135 00000 n -0000059221 00000 n -0000059265 00000 n -0000059351 00000 n -0000059395 00000 n -0000059481 00000 n -0000059531 00000 n -0000059617 00000 n -0000059667 00000 n -0000059752 00000 n -0000059801 00000 n -0000059885 00000 n -0000059932 00000 n -0000060016 00000 n -0000060097 00000 n -0000060145 00000 n -0000060232 00000 n -0000060280 00000 n -0000060367 00000 n -0000060417 00000 n -0000060504 00000 n -0000060552 00000 n -0000060639 00000 n -0000060688 00000 n -0000060736 00000 n -0000060823 00000 n -0000060871 00000 n -0000060956 00000 n -0000061001 00000 n -0000061087 00000 n -0000061130 00000 n -0000061216 00000 n -0000061257 00000 n -0000061343 00000 n -0000061392 00000 n -0000061478 00000 n -0000061524 00000 n -0000061610 00000 n -0000061655 00000 n -0000061741 00000 n -0000061793 00000 n -0000061879 00000 n -0000061929 00000 n -0000062015 00000 n -0000062061 00000 n -0000062147 00000 n -0000062190 00000 n -0000062276 00000 n -0000062320 00000 n -0000062406 00000 n -0000062449 00000 n -0000062535 00000 n -0000062580 00000 n -0000062666 00000 n -0000062704 00000 n -0000062790 00000 n -0000062832 00000 n -0000062918 00000 n -0000062961 00000 n -0000063047 00000 n -0000063085 00000 n -0000063171 00000 n -0000063213 00000 n -0000063299 00000 n -0000063343 00000 n -0000063429 00000 n -0000063476 00000 n -0000063562 00000 n -0000063610 00000 n -0000063695 00000 n -0000063896 00000 n -0000063946 00000 n -0000064033 00000 n -0000064083 00000 n -0000064169 00000 n -0000064202 00000 n -0000064251 00000 n -0000064337 00000 n -0000064384 00000 n -0000064471 00000 n -0000064504 00000 n -0000064619 00000 n -0000064706 00000 n -0000064731 00000 n -0000064813 00000 n -0000064900 00000 n -0000064985 00000 n -0000065072 00000 n -0000065105 00000 n -0000065160 00000 n -0000065247 00000 n -0000065303 00000 n -0000065390 00000 n +0000025146 00000 n +0000025250 00000 n +0000025354 00000 n +0000025458 00000 n +0000025562 00000 n +0000025666 00000 n +0000025770 00000 n +0000025873 00000 n +0000025977 00000 n +0000026081 00000 n +0000026185 00000 n +0000026289 00000 n +0000026392 00000 n +0000026496 00000 n +0000026599 00000 n +0000026701 00000 n +0000026803 00000 n +0000027180 00000 n +0000027283 00000 n +0000027387 00000 n +0000027491 00000 n +0000027594 00000 n +0000027697 00000 n +0000027801 00000 n +0000027905 00000 n +0000028009 00000 n +0000028090 00000 n +0000028143 00000 n +0000028230 00000 n +0000028284 00000 n +0000028370 00000 n +0000028437 00000 n +0000028523 00000 n +0000028626 00000 n +0000028730 00000 n +0000028834 00000 n +0000028938 00000 n +0000029042 00000 n +0000029146 00000 n +0000029250 00000 n +0000029354 00000 n +0000029458 00000 n +0000029562 00000 n +0000029666 00000 n +0000029770 00000 n +0000029874 00000 n +0000029978 00000 n +0000030082 00000 n +0000030186 00000 n +0000030290 00000 n +0000030394 00000 n +0000030498 00000 n +0000030601 00000 n +0000030705 00000 n +0000030809 00000 n +0000030913 00000 n +0000031017 00000 n +0000031121 00000 n +0000031225 00000 n +0000031329 00000 n +0000031433 00000 n +0000031537 00000 n +0000031641 00000 n +0000031745 00000 n +0000031848 00000 n +0000031950 00000 n +0000032052 00000 n +0000032365 00000 n +0000032469 00000 n +0000032572 00000 n +0000032676 00000 n +0000032780 00000 n +0000032884 00000 n +0000032988 00000 n +0000033092 00000 n +0000033196 00000 n +0000033300 00000 n +0000033404 00000 n +0000033508 00000 n +0000033612 00000 n +0000033716 00000 n +0000033820 00000 n +0000033924 00000 n +0000034028 00000 n +0000034132 00000 n +0000034236 00000 n +0000034340 00000 n +0000034444 00000 n +0000034547 00000 n +0000034651 00000 n +0000034755 00000 n +0000034859 00000 n +0000034962 00000 n +0000035066 00000 n +0000035170 00000 n +0000035273 00000 n +0000035377 00000 n +0000035481 00000 n +0000035585 00000 n +0000035689 00000 n +0000035793 00000 n +0000035897 00000 n +0000036001 00000 n +0000036105 00000 n +0000036209 00000 n +0000036312 00000 n +0000036416 00000 n +0000036520 00000 n +0000036624 00000 n +0000036728 00000 n +0000036832 00000 n +0000036936 00000 n +0000037040 00000 n +0000037144 00000 n +0000037248 00000 n +0000037352 00000 n +0000037455 00000 n +0000037557 00000 n +0000037659 00000 n +0000038084 00000 n +0000038187 00000 n +0000038291 00000 n +0000038395 00000 n +0000038499 00000 n +0000038603 00000 n +0000038707 00000 n +0000038811 00000 n +0000038915 00000 n +0000039019 00000 n +0000039123 00000 n +0000039226 00000 n +0000039330 00000 n +0000039434 00000 n +0000039537 00000 n +0000039641 00000 n +0000039745 00000 n +0000039849 00000 n +0000039952 00000 n +0000040056 00000 n +0000040160 00000 n +0000040264 00000 n +0000040368 00000 n +0000040472 00000 n +0000040576 00000 n +0000040680 00000 n +0000040784 00000 n +0000040888 00000 n +0000040992 00000 n +0000041096 00000 n +0000041200 00000 n +0000041304 00000 n +0000041408 00000 n +0000041512 00000 n +0000041616 00000 n +0000041719 00000 n +0000041823 00000 n +0000041927 00000 n +0000042031 00000 n +0000042135 00000 n +0000042239 00000 n +0000042343 00000 n +0000042447 00000 n +0000042551 00000 n +0000042655 00000 n +0000042759 00000 n +0000042863 00000 n +0000042967 00000 n +0000043071 00000 n +0000043174 00000 n +0000043275 00000 n +0000043377 00000 n +0000043802 00000 n +0000043906 00000 n +0000044010 00000 n +0000044114 00000 n +0000044218 00000 n +0000044322 00000 n +0000044426 00000 n +0000044530 00000 n +0000044633 00000 n +0000044737 00000 n +0000044841 00000 n +0000044945 00000 n +0000045049 00000 n +0000045153 00000 n +0000045257 00000 n +0000045361 00000 n +0000045465 00000 n +0000045569 00000 n +0000045673 00000 n +0000045777 00000 n +0000045881 00000 n +0000045984 00000 n +0000046088 00000 n +0000046192 00000 n +0000046296 00000 n +0000046400 00000 n +0000046504 00000 n +0000046608 00000 n +0000046712 00000 n +0000046816 00000 n +0000046920 00000 n +0000047024 00000 n +0000047128 00000 n +0000047232 00000 n +0000047335 00000 n +0000047439 00000 n +0000047543 00000 n +0000047647 00000 n +0000047751 00000 n +0000047855 00000 n +0000047959 00000 n +0000048063 00000 n +0000048167 00000 n +0000048271 00000 n +0000048375 00000 n +0000048479 00000 n +0000048583 00000 n +0000048687 00000 n +0000048791 00000 n +0000048894 00000 n +0000048996 00000 n +0000049098 00000 n +0000049523 00000 n +0000049627 00000 n +0000049731 00000 n +0000049835 00000 n +0000049938 00000 n +0000050042 00000 n +0000050146 00000 n +0000050250 00000 n +0000050354 00000 n +0000050458 00000 n +0000050562 00000 n +0000050666 00000 n +0000050770 00000 n +0000050874 00000 n +0000050978 00000 n +0000051082 00000 n +0000051186 00000 n +0000051290 00000 n +0000051393 00000 n +0000051497 00000 n +0000051601 00000 n +0000051705 00000 n +0000051809 00000 n +0000051912 00000 n +0000052016 00000 n +0000052120 00000 n +0000052224 00000 n +0000052328 00000 n +0000052432 00000 n +0000052536 00000 n +0000052639 00000 n +0000052742 00000 n +0000052846 00000 n +0000052950 00000 n +0000053054 00000 n +0000053343 00000 n +0000053396 00000 n +0000053483 00000 n +0000053508 00000 n +0000053562 00000 n +0000053649 00000 n +0000053703 00000 n +0000053790 00000 n +0000053823 00000 n +0000053871 00000 n +0000053958 00000 n +0000054005 00000 n +0000054091 00000 n +0000054138 00000 n +0000054224 00000 n +0000054265 00000 n +0000054310 00000 n +0000054397 00000 n +0000054442 00000 n +0000054528 00000 n +0000054561 00000 n +0000054616 00000 n +0000054701 00000 n +0000054726 00000 n +0000054779 00000 n +0000054866 00000 n +0000054916 00000 n +0000055003 00000 n +0000055036 00000 n +0000055155 00000 n +0000055241 00000 n +0000055284 00000 n +0000055371 00000 n +0000055414 00000 n +0000055501 00000 n +0000055542 00000 n +0000055588 00000 n +0000055675 00000 n +0000055700 00000 n +0000055746 00000 n +0000055833 00000 n +0000055879 00000 n +0000055964 00000 n +0000056008 00000 n +0000056095 00000 n +0000056146 00000 n +0000056233 00000 n +0000056282 00000 n +0000056369 00000 n +0000056417 00000 n +0000056503 00000 n +0000056568 00000 n +0000056631 00000 n +0000056718 00000 n +0000056776 00000 n +0000056863 00000 n +0000056957 00000 n +0000057043 00000 n +0000057145 00000 n +0000057194 00000 n +0000057297 00000 n +0000057340 00000 n +0000057426 00000 n +0000057474 00000 n +0000057561 00000 n +0000057602 00000 n +0000057689 00000 n +0000057733 00000 n +0000057820 00000 n +0000057864 00000 n +0000057950 00000 n +0000058015 00000 n +0000058061 00000 n +0000058148 00000 n +0000058173 00000 n +0000058222 00000 n +0000058309 00000 n +0000058363 00000 n +0000058450 00000 n +0000058501 00000 n +0000058588 00000 n +0000058639 00000 n +0000058725 00000 n +0000058779 00000 n +0000058864 00000 n +0000058921 00000 n +0000058971 00000 n +0000059058 00000 n +0000059083 00000 n +0000059133 00000 n +0000059220 00000 n +0000059270 00000 n +0000059356 00000 n +0000059420 00000 n +0000059507 00000 n +0000059548 00000 n +0000059612 00000 n +0000059699 00000 n +0000059724 00000 n +0000059766 00000 n +0000059852 00000 n +0000059903 00000 n +0000059990 00000 n +0000060037 00000 n +0000060124 00000 n +0000060165 00000 n +0000060214 00000 n +0000060301 00000 n +0000060349 00000 n +0000060436 00000 n +0000060478 00000 n +0000060564 00000 n +0000060605 00000 n +0000060648 00000 n +0000060735 00000 n +0000060785 00000 n +0000060872 00000 n +0000060920 00000 n +0000061007 00000 n +0000061061 00000 n +0000061146 00000 n +0000061195 00000 n +0000061240 00000 n +0000061327 00000 n +0000061384 00000 n +0000061471 00000 n +0000061567 00000 n +0000061653 00000 n +0000061694 00000 n +0000061756 00000 n +0000061843 00000 n +0000061868 00000 n +0000061917 00000 n +0000062004 00000 n +0000062029 00000 n +0000062077 00000 n +0000062164 00000 n +0000062214 00000 n +0000062301 00000 n +0000062345 00000 n +0000062432 00000 n +0000062476 00000 n +0000062563 00000 n +0000062613 00000 n +0000062699 00000 n +0000062749 00000 n +0000062834 00000 n +0000062883 00000 n +0000062968 00000 n +0000063041 00000 n +0000063088 00000 n +0000063175 00000 n +0000063200 00000 n +0000063248 00000 n +0000063335 00000 n +0000063383 00000 n +0000063470 00000 n +0000063520 00000 n +0000063607 00000 n +0000063655 00000 n +0000063742 00000 n +0000063791 00000 n +0000063839 00000 n +0000063926 00000 n +0000063974 00000 n +0000064059 00000 n +0000064104 00000 n +0000064190 00000 n +0000064233 00000 n +0000064319 00000 n +0000064360 00000 n +0000064446 00000 n +0000064495 00000 n +0000064581 00000 n +0000064627 00000 n +0000064713 00000 n +0000064758 00000 n +0000064844 00000 n +0000064896 00000 n +0000064982 00000 n +0000065032 00000 n +0000065118 00000 n +0000065164 00000 n +0000065250 00000 n +0000065293 00000 n +0000065379 00000 n 0000065423 00000 n -0000065471 00000 n -0000065558 00000 n -0000065632 00000 n -0000065719 00000 n -0000065787 00000 n -0000065874 00000 n -0000065928 00000 n -0000066015 00000 n -0000066083 00000 n -0000066170 00000 n -0000066244 00000 n -0000066331 00000 n -0000066379 00000 n -0000066466 00000 n -0000066523 00000 n -0000066610 00000 n -0000066691 00000 n -0000066746 00000 n -0000066833 00000 n -0000066914 00000 n -0000067001 00000 n -0000067034 00000 n -0000067087 00000 n -0000067174 00000 n -0000067199 00000 n -0000067255 00000 n -0000067342 00000 n -0000067411 00000 n -0000067498 00000 n -0000067549 00000 n -0000067636 00000 n -0000067723 00000 n -0000067810 00000 n -0000067866 00000 n -0000067953 00000 n +0000065509 00000 n +0000065552 00000 n +0000065638 00000 n +0000065683 00000 n +0000065769 00000 n +0000065807 00000 n +0000065893 00000 n +0000065935 00000 n +0000066021 00000 n +0000066064 00000 n +0000066150 00000 n +0000066188 00000 n +0000066274 00000 n +0000066316 00000 n +0000066402 00000 n +0000066446 00000 n +0000066532 00000 n +0000066579 00000 n +0000066665 00000 n +0000066713 00000 n +0000066798 00000 n +0000066999 00000 n +0000067049 00000 n +0000067136 00000 n +0000067186 00000 n +0000067272 00000 n +0000067305 00000 n +0000067354 00000 n +0000067440 00000 n +0000067487 00000 n +0000067574 00000 n +0000067607 00000 n +0000067722 00000 n +0000067809 00000 n +0000067834 00000 n +0000067916 00000 n 0000068003 00000 n -0000068090 00000 n -0000068155 00000 n -0000068207 00000 n -0000068294 00000 n +0000068088 00000 n +0000068175 00000 n +0000068208 00000 n +0000068263 00000 n 0000068350 00000 n -0000068437 00000 n -0000068485 00000 n -0000068572 00000 n -0000068620 00000 n -0000068707 00000 n -0000068756 00000 n -0000068797 00000 n -0000068882 00000 n -0000068907 00000 n -0000068951 00000 n -0000069038 00000 n -0000069083 00000 n -0000069170 00000 n -0000069214 00000 n -0000069301 00000 n -0000069345 00000 n -0000069432 00000 n -0000069474 00000 n -0000069561 00000 n -0000069609 00000 n -0000069696 00000 n -0000069761 00000 n -0000069809 00000 n -0000069895 00000 n -0000069920 00000 n -0000069973 00000 n -0000070059 00000 n -0000070084 00000 n -0000070138 00000 n -0000070225 00000 n -0000070250 00000 n -0000070329 00000 n -0000070416 00000 n -0000070498 00000 n -0000070584 00000 n -0000070659 00000 n -0000070746 00000 n -0000070819 00000 n -0000070906 00000 n -0000070955 00000 n -0000071033 00000 n -0000071120 00000 n -0000071145 00000 n -0000071208 00000 n -0000071295 00000 n -0000071358 00000 n -0000071445 00000 n -0000071499 00000 n -0000071586 00000 n -0000071627 00000 n -0000071674 00000 n -0000071761 00000 n -0000071786 00000 n -0000071820 00000 n -0000071854 00000 n -0000075683 00000 n +0000068406 00000 n +0000068493 00000 n +0000068526 00000 n +0000068574 00000 n +0000068661 00000 n +0000068735 00000 n +0000068822 00000 n +0000068890 00000 n +0000068977 00000 n +0000069031 00000 n +0000069118 00000 n +0000069186 00000 n +0000069273 00000 n +0000069347 00000 n +0000069434 00000 n +0000069482 00000 n +0000069569 00000 n +0000069626 00000 n +0000069713 00000 n +0000069794 00000 n +0000069849 00000 n +0000069936 00000 n +0000070017 00000 n +0000070104 00000 n +0000070137 00000 n +0000070190 00000 n +0000070277 00000 n +0000070302 00000 n +0000070358 00000 n +0000070445 00000 n +0000070514 00000 n +0000070601 00000 n +0000070652 00000 n +0000070739 00000 n +0000070826 00000 n +0000070913 00000 n +0000070969 00000 n +0000071056 00000 n +0000071106 00000 n +0000071193 00000 n +0000071258 00000 n +0000071310 00000 n +0000071397 00000 n +0000071453 00000 n +0000071540 00000 n +0000071588 00000 n +0000071675 00000 n +0000071723 00000 n +0000071810 00000 n +0000071859 00000 n +0000071900 00000 n +0000071987 00000 n +0000072031 00000 n +0000072118 00000 n +0000072163 00000 n +0000072250 00000 n +0000072294 00000 n +0000072381 00000 n +0000072425 00000 n +0000072512 00000 n +0000072554 00000 n +0000072641 00000 n +0000072689 00000 n +0000072776 00000 n +0000072849 00000 n +0000072897 00000 n +0000072983 00000 n +0000073008 00000 n +0000073061 00000 n +0000073147 00000 n +0000073172 00000 n +0000073226 00000 n +0000073313 00000 n +0000073338 00000 n +0000073393 00000 n +0000073479 00000 n +0000073547 00000 n +0000073633 00000 n +0000073708 00000 n +0000073795 00000 n +0000073865 00000 n +0000073951 00000 n +0000074030 00000 n +0000074117 00000 n +0000074174 00000 n +0000074256 00000 n +0000074342 00000 n +0000074417 00000 n +0000074504 00000 n +0000074577 00000 n +0000074664 00000 n +0000074742 00000 n +0000074829 00000 n +0000074878 00000 n +0000074926 00000 n +0000075013 00000 n +0000075038 00000 n +0000075086 00000 n +0000075173 00000 n +0000075198 00000 n +0000075261 00000 n +0000075348 00000 n +0000075411 00000 n +0000075498 00000 n +0000075552 00000 n +0000075639 00000 n +0000075680 00000 n 0000075727 00000 n -0000075771 00000 n -0000075815 00000 n -0000075859 00000 n -0000075903 00000 n -0000075947 00000 n -0000075991 00000 n -0000076035 00000 n -0000076079 00000 n -0000076123 00000 n -0000076167 00000 n -0000076211 00000 n -0000076255 00000 n -0000076299 00000 n -0000076343 00000 n -0000076387 00000 n -0000076431 00000 n -0000076475 00000 n -0000076519 00000 n -0000076563 00000 n -0000076607 00000 n -0000076651 00000 n -0000076695 00000 n -0000076739 00000 n -0000076783 00000 n -0000076827 00000 n -0000076871 00000 n -0000076915 00000 n -0000076959 00000 n -0000077003 00000 n -0000077047 00000 n -0000077091 00000 n -0000077135 00000 n -0000077179 00000 n -0000077223 00000 n -0000077267 00000 n -0000077311 00000 n -0000077355 00000 n -0000077399 00000 n -0000077443 00000 n -0000077487 00000 n -0000077531 00000 n -0000077575 00000 n -0000077619 00000 n -0000077663 00000 n -0000077707 00000 n -0000077751 00000 n -0000077795 00000 n -0000077839 00000 n -0000077883 00000 n -0000077927 00000 n -0000077971 00000 n -0000078015 00000 n -0000078059 00000 n -0000078103 00000 n -0000078147 00000 n -0000078191 00000 n -0000078235 00000 n -0000078279 00000 n -0000078323 00000 n -0000078367 00000 n -0000078411 00000 n -0000078455 00000 n -0000078499 00000 n -0000078543 00000 n -0000078587 00000 n -0000078631 00000 n -0000078675 00000 n -0000078719 00000 n -0000078763 00000 n -0000078807 00000 n -0000078851 00000 n -0000078895 00000 n -0000078939 00000 n -0000078983 00000 n -0000079027 00000 n -0000079071 00000 n -0000079115 00000 n -0000079159 00000 n -0000079203 00000 n -0000079247 00000 n -0000079291 00000 n -0000079335 00000 n -0000079379 00000 n -0000079423 00000 n -0000079467 00000 n -0000079511 00000 n -0000079555 00000 n -0000079599 00000 n -0000079643 00000 n -0000079687 00000 n -0000079731 00000 n -0000079775 00000 n -0000079819 00000 n -0000079863 00000 n -0000079907 00000 n -0000079951 00000 n -0000079995 00000 n -0000080039 00000 n -0000080083 00000 n -0000080127 00000 n -0000080171 00000 n -0000080215 00000 n -0000080259 00000 n -0000080303 00000 n -0000080347 00000 n -0000080391 00000 n -0000080435 00000 n -0000080479 00000 n -0000080523 00000 n -0000080567 00000 n -0000080611 00000 n -0000080655 00000 n -0000080699 00000 n -0000080743 00000 n -0000080787 00000 n -0000080831 00000 n -0000080875 00000 n -0000080919 00000 n -0000080963 00000 n -0000081007 00000 n -0000081051 00000 n -0000081095 00000 n -0000081139 00000 n -0000081183 00000 n -0000081227 00000 n -0000081271 00000 n -0000081315 00000 n -0000081359 00000 n -0000081403 00000 n -0000081447 00000 n -0000081491 00000 n -0000081535 00000 n -0000081579 00000 n -0000081623 00000 n -0000081667 00000 n -0000081711 00000 n -0000081755 00000 n -0000081799 00000 n -0000081843 00000 n -0000081887 00000 n -0000081931 00000 n -0000081975 00000 n -0000082019 00000 n -0000082063 00000 n -0000082107 00000 n -0000082151 00000 n -0000082195 00000 n -0000082239 00000 n -0000082283 00000 n -0000082327 00000 n -0000082371 00000 n -0000082415 00000 n -0000082459 00000 n -0000082503 00000 n -0000082547 00000 n -0000082591 00000 n -0000082635 00000 n -0000082679 00000 n -0000082723 00000 n -0000082767 00000 n -0000082811 00000 n -0000082855 00000 n -0000082899 00000 n -0000082943 00000 n -0000082987 00000 n -0000083031 00000 n -0000083075 00000 n -0000083119 00000 n -0000083163 00000 n -0000083207 00000 n -0000083251 00000 n -0000083295 00000 n -0000083339 00000 n -0000083383 00000 n -0000083427 00000 n -0000083471 00000 n -0000083515 00000 n -0000083559 00000 n -0000083603 00000 n -0000083647 00000 n -0000083691 00000 n -0000083735 00000 n -0000083779 00000 n -0000083823 00000 n -0000083867 00000 n -0000083911 00000 n -0000083955 00000 n -0000083999 00000 n -0000084043 00000 n -0000084087 00000 n -0000084131 00000 n -0000084175 00000 n -0000084219 00000 n -0000084263 00000 n -0000084307 00000 n -0000084351 00000 n -0000084395 00000 n -0000084439 00000 n -0000084483 00000 n -0000084527 00000 n -0000084571 00000 n -0000084615 00000 n -0000084659 00000 n -0000084703 00000 n -0000084747 00000 n -0000084791 00000 n -0000084835 00000 n -0000084879 00000 n -0000084923 00000 n -0000084967 00000 n -0000085011 00000 n -0000085055 00000 n -0000085099 00000 n -0000085143 00000 n -0000085187 00000 n -0000085231 00000 n -0000085275 00000 n -0000085319 00000 n -0000085363 00000 n -0000085407 00000 n -0000085451 00000 n -0000085495 00000 n -0000085540 00000 n -0000085585 00000 n -0000085630 00000 n -0000085675 00000 n -0000085720 00000 n -0000085765 00000 n -0000085810 00000 n -0000085855 00000 n -0000085900 00000 n -0000085945 00000 n -0000085990 00000 n -0000087128 00000 n -0000087289 00000 n -0000087458 00000 n -0000087651 00000 n -0000091401 00000 n -0000091595 00000 n -0000096208 00000 n -0000096402 00000 n -0000100424 00000 n -0000100618 00000 n -0000105295 00000 n -0000105489 00000 n -0000108864 00000 n -0000109025 00000 n -0000109259 00000 n -0000109463 00000 n -0000111991 00000 n -0000112175 00000 n -0000115562 00000 n -0000115737 00000 n -0000118870 00000 n -0000119045 00000 n -0000121911 00000 n -0000122086 00000 n -0000123648 00000 n -0000123860 00000 n -0000125016 00000 n -0000125204 00000 n -0000126725 00000 n -0000126922 00000 n -0000128358 00000 n -0000128573 00000 n -0000129938 00000 n -0000130117 00000 n -0000131659 00000 n -0000131829 00000 n -0000133376 00000 n -0000133555 00000 n -0000134989 00000 n -0000135168 00000 n -0000136881 00000 n -0000137060 00000 n -0000138608 00000 n -0000138787 00000 n -0000140477 00000 n -0000140671 00000 n -0000142391 00000 n -0000142589 00000 n -0000143950 00000 n -0000144148 00000 n -0000145832 00000 n -0000146020 00000 n -0000147693 00000 n -0000147872 00000 n -0000149972 00000 n -0000150151 00000 n -0000151924 00000 n -0000152103 00000 n -0000153783 00000 n -0000153971 00000 n -0000155826 00000 n -0000156038 00000 n -0000158096 00000 n -0000158309 00000 n -0000159876 00000 n -0000160065 00000 n -0000161340 00000 n -0000161528 00000 n -0000163054 00000 n -0000163257 00000 n -0000164983 00000 n -0000165186 00000 n -0000166036 00000 n -0000166248 00000 n -0000167758 00000 n -0000167938 00000 n -0000168696 00000 n -0000168917 00000 n -0000170715 00000 n -0000170921 00000 n -0000172803 00000 n -0000173000 00000 n -0000174586 00000 n -0000174797 00000 n -0000176366 00000 n -0000176554 00000 n -0000177456 00000 n -0000177687 00000 n -0000179554 00000 n -0000179766 00000 n -0000181714 00000 n -0000181945 00000 n -0000183955 00000 n -0000184177 00000 n -0000185990 00000 n -0000186212 00000 n -0000187950 00000 n -0000188148 00000 n -0000190047 00000 n -0000190259 00000 n -0000191158 00000 n -0000191337 00000 n -0000192800 00000 n -0000192979 00000 n -0000194295 00000 n -0000194474 00000 n -0000196096 00000 n -0000196275 00000 n -0000197772 00000 n -0000197942 00000 n -0000198286 00000 n -0000198489 00000 n -0000200392 00000 n -0000200552 00000 n -0000201675 00000 n -0000201905 00000 n -0000203429 00000 n -0000203641 00000 n -0000205430 00000 n -0000205623 00000 n -0000207029 00000 n -0000207218 00000 n -0000208909 00000 n -0000209088 00000 n -0000210834 00000 n -0000211022 00000 n -0000212929 00000 n -0000213142 00000 n -0000215027 00000 n -0000215267 00000 n -0000217360 00000 n -0000217572 00000 n -0000219173 00000 n -0000219379 00000 n -0000220540 00000 n -0000220728 00000 n -0000221926 00000 n -0000222105 00000 n -0000223111 00000 n -0000223299 00000 n -0000224926 00000 n -0000225114 00000 n -0000226383 00000 n -0000226572 00000 n -0000227880 00000 n -0000228050 00000 n -0000228522 00000 n -0000228735 00000 n -0000230550 00000 n -0000230763 00000 n -0000232341 00000 n -0000232563 00000 n -0000234382 00000 n -0000234622 00000 n -0000236345 00000 n -0000236552 00000 n -0000238397 00000 n -0000238628 00000 n -0000240518 00000 n -0000240740 00000 n -0000242686 00000 n -0000242898 00000 n -0000244947 00000 n -0000245150 00000 n -0000247484 00000 n -0000247706 00000 n -0000249950 00000 n -0000250157 00000 n -0000252137 00000 n -0000252316 00000 n -0000253874 00000 n -0000254044 00000 n -0000256044 00000 n -0000256232 00000 n -0000258319 00000 n -0000258507 00000 n -0000260317 00000 n -0000260495 00000 n -0000262345 00000 n -0000262505 00000 n -0000263289 00000 n -0000263483 00000 n -0000265084 00000 n -0000265273 00000 n -0000266934 00000 n -0000267104 00000 n -0000267926 00000 n -0000268148 00000 n -0000270284 00000 n -0000270497 00000 n -0000272551 00000 n -0000272773 00000 n -0000273995 00000 n -0000274208 00000 n -0000275805 00000 n -0000276027 00000 n -0000277850 00000 n -0000278072 00000 n -0000279804 00000 n -0000279998 00000 n -0000280725 00000 n -0000280895 00000 n -0000282572 00000 n -0000282751 00000 n -0000284566 00000 n -0000284735 00000 n -0000286578 00000 n -0000286747 00000 n -0000287736 00000 n -0000287915 00000 n -0000289563 00000 n -0000289751 00000 n -0000291242 00000 n -0000291430 00000 n -0000292855 00000 n -0000293025 00000 n -0000294693 00000 n -0000294863 00000 n -0000295420 00000 n -0000295599 00000 n -0000297205 00000 n -0000297384 00000 n -0000299054 00000 n -0000299224 00000 n -0000300773 00000 n -0000300943 00000 n -0000302243 00000 n -0000302413 00000 n -0000304039 00000 n -0000304209 00000 n -0000305796 00000 n -0000306000 00000 n -0000307587 00000 n -0000307781 00000 n -0000308949 00000 n -0000309152 00000 n -0000310725 00000 n -0000310903 00000 n -0000311589 00000 n -0000311792 00000 n -0000313470 00000 n -0000313658 00000 n -0000315387 00000 n -0000315446 00000 n -0000315549 00000 n -0000315714 00000 n -0000315796 00000 n -0000315904 00000 n -0000316083 00000 n -0000316200 00000 n -0000316334 00000 n -0000316469 00000 n -0000316616 00000 n -0000316764 00000 n -0000316941 00000 n -0000317067 00000 n -0000317205 00000 n -0000317365 00000 n -0000317513 00000 n -0000317699 00000 n -0000317855 00000 n -0000317968 00000 n -0000318085 00000 n -0000318220 00000 n -0000318361 00000 n -0000318476 00000 n -0000318587 00000 n -0000318764 00000 n -0000318867 00000 n -0000318983 00000 n -0000319132 00000 n -0000319231 00000 n -0000319344 00000 n -0000319457 00000 n -0000319570 00000 n -0000319683 00000 n -0000319796 00000 n -0000319909 00000 n -0000320022 00000 n -0000320135 00000 n -0000320250 00000 n -0000320351 00000 n -0000320464 00000 n -0000320655 00000 n -0000320752 00000 n -0000320937 00000 n -0000321040 00000 n -0000321163 00000 n -0000321284 00000 n -0000321395 00000 n -0000321590 00000 n -0000321705 00000 n -0000321828 00000 n -0000321945 00000 n -0000322062 00000 n -0000322166 00000 n -0000322354 00000 n -0000322576 00000 n -0000322714 00000 n -0000322876 00000 n -0000323012 00000 n -0000323114 00000 n -0000323331 00000 n -0000323435 00000 n -0000323566 00000 n -0000323686 00000 n -0000323892 00000 n -0000324019 00000 n -0000324103 00000 n -0000324308 00000 n -0000324466 00000 n -0000324613 00000 n -0000324740 00000 n -0000324920 00000 n -0000325029 00000 n -0000325143 00000 n -0000325287 00000 n -0000325450 00000 n -0000325599 00000 n -0000325779 00000 n -0000325882 00000 n -0000326038 00000 n -0000326148 00000 n -0000326292 00000 n -0000326433 00000 n -0000326582 00000 n -0000326698 00000 n -0000326861 00000 n -0000326971 00000 n -0000327110 00000 n -0000327236 00000 n -0000327352 00000 n -0000327481 00000 n -0000327657 00000 n -0000327760 00000 n -0000327891 00000 n -0000328020 00000 n -0000328162 00000 n -0000328286 00000 n -0000328415 00000 n -0000328542 00000 n -0000328664 00000 n -0000328769 00000 n -0000328933 00000 n -0000329036 00000 n -0000329171 00000 n -0000329351 00000 n -0000329478 00000 n -0000329614 00000 n -0000329748 00000 n -0000329954 00000 n -0000330054 00000 n -0000330172 00000 n -0000330337 00000 n -0000330428 00000 n -0000330589 00000 n -0000330715 00000 n -0000330842 00000 n -0000330982 00000 n -0000331118 00000 n -0000331226 00000 n -0000331400 00000 n -0000331506 00000 n -0000331626 00000 n -0000331738 00000 n -0000331855 00000 n -0000331957 00000 n -0000332164 00000 n -0000332276 00000 n -0000332392 00000 n -0000332537 00000 n -0000332746 00000 n -0000332881 00000 n -0000333036 00000 n -0000333162 00000 n -0000333294 00000 n -0000333428 00000 n -0000333560 00000 n -0000333736 00000 n -0000333872 00000 n -0000334026 00000 n -0000334172 00000 n -0000334398 00000 n -0000334510 00000 n -0000334626 00000 n -0000334820 00000 n -0000334964 00000 n -0000335081 00000 n -0000335227 00000 n -0000335385 00000 n -0000335503 00000 n -0000335723 00000 n -0000335822 00000 n -0000335940 00000 n -0000336068 00000 n -0000336226 00000 n -0000336397 00000 n -0000336513 00000 n -0000336624 00000 n -0000336760 00000 n -0000336891 00000 n -0000337039 00000 n -0000337184 00000 n -0000337285 00000 n -0000337462 00000 n -0000337574 00000 n -0000337705 00000 n -0000337829 00000 n -0000337996 00000 n -0000338113 00000 n -0000338243 00000 n -0000338383 00000 n -0000338520 00000 n -0000338656 00000 n -0000338792 00000 n -0000338929 00000 n -0000339041 00000 n -0000339216 00000 n -0000339319 00000 n -0000339470 00000 n -0000339572 00000 n -0000339694 00000 n -0000339826 00000 n -0000339946 00000 n -0000340061 00000 n -0000340175 00000 n -0000340288 00000 n -0000340405 00000 n -0000340520 00000 n -0000340636 00000 n -0000340751 00000 n -0000340867 00000 n -0000340989 00000 n -0000341110 00000 n -0000341229 00000 n -0000341347 00000 n -0000341467 00000 n -0000341570 00000 n -0000341736 00000 n -0000341856 00000 n -0000342025 00000 n -0000342213 00000 n -0000342394 00000 n -0000342550 00000 n -0000342738 00000 n -0000342842 00000 n -0000342995 00000 n -0000343106 00000 n -0000343214 00000 n -0000343364 00000 n -0000343468 00000 n -0000343586 00000 n -0000343704 00000 n -0000343825 00000 n -0000343961 00000 n -0000344060 00000 n +0000075814 00000 n +0000075839 00000 n +0000075873 00000 n +0000075907 00000 n +0000080020 00000 n +0000080064 00000 n +0000080108 00000 n +0000080152 00000 n +0000080196 00000 n +0000080240 00000 n +0000080284 00000 n +0000080328 00000 n +0000080372 00000 n +0000080416 00000 n +0000080460 00000 n +0000080504 00000 n +0000080548 00000 n +0000080592 00000 n +0000080636 00000 n +0000080680 00000 n +0000080724 00000 n +0000080768 00000 n +0000080812 00000 n +0000080856 00000 n +0000080900 00000 n +0000080944 00000 n +0000080988 00000 n +0000081032 00000 n +0000081076 00000 n +0000081120 00000 n +0000081164 00000 n +0000081208 00000 n +0000081252 00000 n +0000081296 00000 n +0000081340 00000 n +0000081384 00000 n +0000081428 00000 n +0000081472 00000 n +0000081516 00000 n +0000081560 00000 n +0000081604 00000 n +0000081648 00000 n +0000081692 00000 n +0000081736 00000 n +0000081780 00000 n +0000081824 00000 n +0000081868 00000 n +0000081912 00000 n +0000081956 00000 n +0000082000 00000 n +0000082044 00000 n +0000082088 00000 n +0000082132 00000 n +0000082176 00000 n +0000082220 00000 n +0000082264 00000 n +0000082308 00000 n +0000082352 00000 n +0000082396 00000 n +0000082440 00000 n +0000082484 00000 n +0000082528 00000 n +0000082572 00000 n +0000082616 00000 n +0000082660 00000 n +0000082704 00000 n +0000082748 00000 n +0000082792 00000 n +0000082836 00000 n +0000082880 00000 n +0000082924 00000 n +0000082968 00000 n +0000083012 00000 n +0000083056 00000 n +0000083100 00000 n +0000083144 00000 n +0000083188 00000 n +0000083232 00000 n +0000083276 00000 n +0000083320 00000 n +0000083364 00000 n +0000083408 00000 n +0000083452 00000 n +0000083496 00000 n +0000083540 00000 n +0000083584 00000 n +0000083628 00000 n +0000083672 00000 n +0000083716 00000 n +0000083760 00000 n +0000083804 00000 n +0000083848 00000 n +0000083892 00000 n +0000083936 00000 n +0000083980 00000 n +0000084024 00000 n +0000084068 00000 n +0000084112 00000 n +0000084156 00000 n +0000084200 00000 n +0000084244 00000 n +0000084288 00000 n +0000084332 00000 n +0000084376 00000 n +0000084420 00000 n +0000084464 00000 n +0000084508 00000 n +0000084552 00000 n +0000084596 00000 n +0000084640 00000 n +0000084684 00000 n +0000084728 00000 n +0000084772 00000 n +0000084816 00000 n +0000084860 00000 n +0000084904 00000 n +0000084948 00000 n +0000084992 00000 n +0000085036 00000 n +0000085080 00000 n +0000085124 00000 n +0000085168 00000 n +0000085212 00000 n +0000085256 00000 n +0000085300 00000 n +0000085344 00000 n +0000085388 00000 n +0000085432 00000 n +0000085476 00000 n +0000085520 00000 n +0000085564 00000 n +0000085608 00000 n +0000085652 00000 n +0000085696 00000 n +0000085740 00000 n +0000085784 00000 n +0000085828 00000 n +0000085872 00000 n +0000085916 00000 n +0000085960 00000 n +0000086004 00000 n +0000086048 00000 n +0000086092 00000 n +0000086136 00000 n +0000086180 00000 n +0000086224 00000 n +0000086268 00000 n +0000086312 00000 n +0000086356 00000 n +0000086400 00000 n +0000086444 00000 n +0000086488 00000 n +0000086532 00000 n +0000086576 00000 n +0000086620 00000 n +0000086664 00000 n +0000086708 00000 n +0000086752 00000 n +0000086796 00000 n +0000086840 00000 n +0000086884 00000 n +0000086928 00000 n +0000086972 00000 n +0000087016 00000 n +0000087060 00000 n +0000087104 00000 n +0000087148 00000 n +0000087192 00000 n +0000087236 00000 n +0000087280 00000 n +0000087324 00000 n +0000087368 00000 n +0000087412 00000 n +0000087456 00000 n +0000087500 00000 n +0000087544 00000 n +0000087588 00000 n +0000087632 00000 n +0000087676 00000 n +0000087720 00000 n +0000087764 00000 n +0000087808 00000 n +0000087852 00000 n +0000087896 00000 n +0000087941 00000 n +0000087986 00000 n +0000088031 00000 n +0000088076 00000 n +0000088121 00000 n +0000088166 00000 n +0000088211 00000 n +0000088256 00000 n +0000088301 00000 n +0000088346 00000 n +0000088391 00000 n +0000088436 00000 n +0000088481 00000 n +0000088526 00000 n +0000088571 00000 n +0000088616 00000 n +0000088661 00000 n +0000088706 00000 n +0000088751 00000 n +0000088796 00000 n +0000088841 00000 n +0000088886 00000 n +0000088931 00000 n +0000088976 00000 n +0000089021 00000 n +0000089066 00000 n +0000089111 00000 n +0000089156 00000 n +0000089201 00000 n +0000089246 00000 n +0000089291 00000 n +0000089336 00000 n +0000089381 00000 n +0000089426 00000 n +0000089471 00000 n +0000089516 00000 n +0000089561 00000 n +0000089606 00000 n +0000089651 00000 n +0000089696 00000 n +0000089741 00000 n +0000089786 00000 n +0000089831 00000 n +0000089876 00000 n +0000089921 00000 n +0000089966 00000 n +0000090011 00000 n +0000090056 00000 n +0000090101 00000 n +0000090146 00000 n +0000090191 00000 n +0000090236 00000 n +0000090281 00000 n +0000090326 00000 n +0000090371 00000 n +0000090416 00000 n +0000090461 00000 n +0000090506 00000 n +0000090551 00000 n +0000090596 00000 n +0000090641 00000 n +0000090686 00000 n +0000090731 00000 n +0000090776 00000 n +0000090821 00000 n +0000090866 00000 n +0000090911 00000 n +0000090956 00000 n +0000092166 00000 n +0000092327 00000 n +0000092496 00000 n +0000092689 00000 n +0000095924 00000 n +0000096118 00000 n +0000100265 00000 n +0000100459 00000 n +0000104021 00000 n +0000104215 00000 n +0000108467 00000 n +0000108661 00000 n +0000112096 00000 n +0000112290 00000 n +0000112962 00000 n +0000113123 00000 n +0000113357 00000 n +0000113561 00000 n +0000115832 00000 n +0000116016 00000 n +0000119096 00000 n +0000119271 00000 n +0000122110 00000 n +0000122285 00000 n +0000124842 00000 n +0000125017 00000 n +0000127007 00000 n +0000127219 00000 n +0000128342 00000 n +0000128530 00000 n +0000130082 00000 n +0000130279 00000 n +0000131757 00000 n +0000131972 00000 n +0000133324 00000 n +0000133503 00000 n +0000135075 00000 n +0000135245 00000 n +0000136792 00000 n +0000136971 00000 n +0000138427 00000 n +0000138606 00000 n +0000140310 00000 n +0000140489 00000 n +0000142070 00000 n +0000142249 00000 n +0000143936 00000 n +0000144130 00000 n +0000145802 00000 n +0000146000 00000 n +0000147430 00000 n +0000147618 00000 n +0000149309 00000 n +0000149497 00000 n +0000151274 00000 n +0000151453 00000 n +0000153517 00000 n +0000153696 00000 n +0000155513 00000 n +0000155692 00000 n +0000157430 00000 n +0000157618 00000 n +0000159467 00000 n +0000159689 00000 n +0000161700 00000 n +0000161913 00000 n +0000163466 00000 n +0000163655 00000 n +0000165047 00000 n +0000165217 00000 n +0000165561 00000 n +0000165749 00000 n +0000167272 00000 n +0000167475 00000 n +0000169179 00000 n +0000169382 00000 n +0000170329 00000 n +0000170541 00000 n +0000172051 00000 n +0000172231 00000 n +0000172986 00000 n +0000173207 00000 n +0000174967 00000 n +0000175173 00000 n +0000177046 00000 n +0000177243 00000 n +0000178822 00000 n +0000179033 00000 n +0000180548 00000 n +0000180736 00000 n +0000181621 00000 n +0000181852 00000 n +0000183656 00000 n +0000183868 00000 n +0000185809 00000 n +0000186040 00000 n +0000188010 00000 n +0000188232 00000 n +0000190084 00000 n +0000190287 00000 n +0000191623 00000 n +0000191845 00000 n +0000193503 00000 n +0000193716 00000 n +0000195652 00000 n +0000195840 00000 n +0000196474 00000 n +0000196653 00000 n +0000198167 00000 n +0000198346 00000 n +0000199744 00000 n +0000199923 00000 n +0000201579 00000 n +0000201758 00000 n +0000203323 00000 n +0000203493 00000 n +0000203834 00000 n +0000204037 00000 n +0000205928 00000 n +0000206088 00000 n +0000207203 00000 n +0000207433 00000 n +0000208921 00000 n +0000209133 00000 n +0000210882 00000 n +0000211075 00000 n +0000212444 00000 n +0000212633 00000 n +0000214304 00000 n +0000214483 00000 n +0000216213 00000 n +0000216401 00000 n +0000218295 00000 n +0000218508 00000 n +0000220361 00000 n +0000220601 00000 n +0000222697 00000 n +0000222909 00000 n +0000224492 00000 n +0000224713 00000 n +0000225962 00000 n +0000226150 00000 n +0000227431 00000 n +0000227610 00000 n +0000228672 00000 n +0000228860 00000 n +0000230424 00000 n +0000230612 00000 n +0000232030 00000 n +0000232219 00000 n +0000233483 00000 n +0000233663 00000 n +0000234313 00000 n +0000234526 00000 n +0000236285 00000 n +0000236498 00000 n +0000238036 00000 n +0000238258 00000 n +0000240052 00000 n +0000240292 00000 n +0000242022 00000 n +0000242229 00000 n +0000244067 00000 n +0000244298 00000 n +0000246206 00000 n +0000246428 00000 n +0000248341 00000 n +0000248553 00000 n +0000250571 00000 n +0000250774 00000 n +0000253026 00000 n +0000253248 00000 n +0000255457 00000 n +0000255664 00000 n +0000257636 00000 n +0000257815 00000 n +0000259414 00000 n +0000259584 00000 n +0000261574 00000 n +0000261762 00000 n +0000263838 00000 n +0000264026 00000 n +0000265807 00000 n +0000265985 00000 n +0000267830 00000 n +0000267990 00000 n +0000268767 00000 n +0000268961 00000 n +0000270551 00000 n +0000270731 00000 n +0000272479 00000 n +0000272658 00000 n +0000273555 00000 n +0000273777 00000 n +0000275844 00000 n +0000276057 00000 n +0000278106 00000 n +0000278303 00000 n +0000279502 00000 n +0000279715 00000 n +0000281331 00000 n +0000281553 00000 n +0000283376 00000 n +0000283598 00000 n +0000285365 00000 n +0000285559 00000 n +0000286334 00000 n +0000286504 00000 n +0000288163 00000 n +0000288342 00000 n +0000290174 00000 n +0000290343 00000 n +0000292198 00000 n +0000292367 00000 n +0000293477 00000 n +0000293665 00000 n +0000295366 00000 n +0000295554 00000 n +0000297033 00000 n +0000297221 00000 n +0000298709 00000 n +0000298879 00000 n +0000300540 00000 n +0000300710 00000 n +0000301451 00000 n +0000301630 00000 n +0000303217 00000 n +0000303396 00000 n +0000305055 00000 n +0000305225 00000 n +0000306760 00000 n +0000306930 00000 n +0000308214 00000 n +0000308384 00000 n +0000309999 00000 n +0000310169 00000 n +0000311752 00000 n +0000311947 00000 n +0000313660 00000 n +0000313872 00000 n +0000315587 00000 n +0000315781 00000 n +0000317495 00000 n +0000317707 00000 n +0000318992 00000 n +0000319195 00000 n +0000320713 00000 n +0000320891 00000 n +0000321557 00000 n +0000321760 00000 n +0000323436 00000 n +0000323624 00000 n +0000325347 00000 n +0000325535 00000 n +0000327063 00000 n +0000327242 00000 n +0000328750 00000 n +0000328928 00000 n +0000329654 00000 n +0000329713 00000 n +0000329816 00000 n +0000329981 00000 n +0000330063 00000 n +0000330171 00000 n +0000330339 00000 n +0000330451 00000 n +0000330580 00000 n +0000330710 00000 n +0000330852 00000 n +0000330995 00000 n +0000331167 00000 n +0000331286 00000 n +0000331417 00000 n +0000331572 00000 n +0000331715 00000 n +0000331896 00000 n +0000332046 00000 n +0000332151 00000 n +0000332260 00000 n +0000332387 00000 n +0000332520 00000 n +0000332627 00000 n +0000332730 00000 n +0000332896 00000 n +0000332994 00000 n +0000333105 00000 n +0000333249 00000 n +0000333341 00000 n +0000333447 00000 n +0000333553 00000 n +0000333659 00000 n +0000333765 00000 n +0000333871 00000 n +0000333977 00000 n +0000334083 00000 n +0000334189 00000 n +0000334296 00000 n +0000334389 00000 n +0000334497 00000 n +0000334677 00000 n +0000334769 00000 n +0000334949 00000 n +0000335045 00000 n +0000335161 00000 n +0000335275 00000 n +0000335379 00000 n +0000335569 00000 n +0000335677 00000 n +0000335793 00000 n +0000335903 00000 n +0000336013 00000 n +0000336110 00000 n +0000336293 00000 n +0000336510 00000 n +0000336641 00000 n +0000336796 00000 n +0000336925 00000 n +0000337022 00000 n +0000337228 00000 n +0000337327 00000 n +0000337453 00000 n +0000337568 00000 n +0000337763 00000 n +0000337885 00000 n +0000337962 00000 n +0000338156 00000 n +0000338309 00000 n +0000338451 00000 n +0000338573 00000 n +0000338748 00000 n +0000338850 00000 n +0000338957 00000 n +0000339096 00000 n +0000339254 00000 n +0000339398 00000 n +0000339567 00000 n +0000339665 00000 n +0000339816 00000 n +0000339919 00000 n +0000340056 00000 n +0000340190 00000 n +0000340332 00000 n +0000340441 00000 n +0000340599 00000 n +0000340702 00000 n +0000340834 00000 n +0000340953 00000 n +0000341062 00000 n +0000341186 00000 n +0000341351 00000 n +0000341449 00000 n +0000341575 00000 n +0000341699 00000 n +0000341836 00000 n +0000341955 00000 n +0000342079 00000 n +0000342201 00000 n +0000342318 00000 n +0000342418 00000 n +0000342571 00000 n +0000342669 00000 n +0000342799 00000 n +0000342967 00000 n +0000343088 00000 n +0000343218 00000 n +0000343346 00000 n +0000343540 00000 n +0000343634 00000 n +0000343746 00000 n +0000343905 00000 n +0000343988 00000 n +0000344143 00000 n +0000344261 00000 n +0000344380 00000 n +0000344512 00000 n +0000344640 00000 n +0000344740 00000 n +0000344908 00000 n +0000345006 00000 n +0000345118 00000 n +0000345222 00000 n +0000345333 00000 n +0000345429 00000 n +0000345624 00000 n +0000345730 00000 n +0000345840 00000 n +0000345979 00000 n +0000346182 00000 n +0000346309 00000 n +0000346456 00000 n +0000346574 00000 n +0000346700 00000 n +0000346828 00000 n +0000346954 00000 n +0000347124 00000 n +0000347252 00000 n +0000347398 00000 n +0000347538 00000 n +0000347752 00000 n +0000347858 00000 n +0000347968 00000 n +0000348156 00000 n +0000348292 00000 n +0000348401 00000 n +0000348541 00000 n +0000348693 00000 n +0000348803 00000 n +0000349011 00000 n +0000349104 00000 n +0000349216 00000 n +0000349338 00000 n +0000349490 00000 n +0000349655 00000 n +0000349763 00000 n +0000349866 00000 n +0000349996 00000 n +0000350121 00000 n +0000350263 00000 n +0000350402 00000 n +0000350496 00000 n +0000350661 00000 n +0000350767 00000 n +0000350892 00000 n +0000351010 00000 n +0000351171 00000 n +0000351280 00000 n +0000351404 00000 n +0000351538 00000 n +0000351669 00000 n +0000351799 00000 n +0000351929 00000 n +0000352059 00000 n +0000352164 00000 n +0000352327 00000 n +0000352424 00000 n +0000352569 00000 n +0000352663 00000 n +0000352777 00000 n +0000352901 00000 n +0000353015 00000 n +0000353124 00000 n +0000353232 00000 n +0000353339 00000 n +0000353450 00000 n +0000353559 00000 n +0000353669 00000 n +0000353777 00000 n +0000353886 00000 n +0000354001 00000 n +0000354115 00000 n +0000354227 00000 n +0000354338 00000 n +0000354451 00000 n +0000354547 00000 n +0000354713 00000 n +0000354817 00000 n +0000354965 00000 n +0000355126 00000 n +0000355306 00000 n +0000355479 00000 n +0000355627 00000 n +0000355787 00000 n +0000355911 00000 n +0000356050 00000 n +0000356181 00000 n +0000356293 00000 n +0000356408 00000 n +0000356521 00000 n +0000356697 00000 n +0000356795 00000 n +0000356942 00000 n +0000357045 00000 n +0000357145 00000 n +0000357297 00000 n +0000357395 00000 n +0000357507 00000 n +0000357619 00000 n +0000357734 00000 n +0000357864 00000 n +0000357957 00000 n +0000358076 00000 n +0000358211 00000 n +0000358301 00000 n +0000358409 00000 n +0000358499 00000 n trailer -<<1ca9696980f269e0c25de21a8ecbd4b4>]>> +<<87d2ccdfffaca9782ac75b2582cbd107>]>> startxref -344676 +359159 %%EOF diff --git a/docs/docbook/Makefile.in b/docs/docbook/Makefile.in index b225eb9780..98b74e12ee 100644 --- a/docs/docbook/Makefile.in +++ b/docs/docbook/Makefile.in @@ -57,13 +57,13 @@ all: @echo "txt - Build plain text version of HOWTO Collection" manpages: $(MANPAGES) -pdf: ../Samba-HOWTO-Collection.pdf -ps: ../Samba-HOWTO-Collection.ps -txt: ../Samba-HOWTO-Collection.txt +pdf: ../Samba-HOWTO-Collection.pdf ../Samba-Developers-Guide.pdf +ps: ../Samba-HOWTO-Collection.ps ../Samba-Developers-Guide.ps +txt: ../textdocs/Samba-HOWTO-Collection.txt ../textdocs/Samba-Developers-Guide.txt htmlman: $(MANPAGES_HTML) +html-single: ../htmldocs/Samba-HOWTO-Collection.html ../htmldocs/Samba-Developers-Guide.html html: $(DOCBOOK2HTML) -d samba.dsl -o $(HTMLDIR) projdoc/samba-doc.sgml -html-single: ../Samba-HOWTO-Collection.html ../Samba-Developers-Guide.html ../Samba-HOWTO-Collection.txt: $(SGMLDIR)/samba-doc.sgml $(DOCBOOK2TXT) -o .. $< @@ -73,14 +73,21 @@ html-single: ../Samba-HOWTO-Collection.html ../Samba-Developers-Guide.html $(DOCBOOK2PS) -o .. $< mv ../samba-doc.ps $@ -../Samba-HOWTO-Collection.pdf: ../Samba-HOWTO-Collection.html +../Samba-Developers-Guide.ps: $(SGMLDIR)/samba-doc.sgml + $(DOCBOOK2PS) -o .. $< + mv ../samba-doc.ps $@ + +../Samba-HOWTO-Collection.pdf: ../htmldocs/Samba-HOWTO-Collection.html + $(HTMLDOC) --book --color --links -f $@ $< + +../Samba-Developers-Guide.pdf: ../htmldocs/Samba-Developers-Guide.html $(HTMLDOC) --book --color --links -f $@ $< -../Samba-HOWTO-Collection.html: $(SGMLDIR)/samba-doc.sgml +../htmldocs/Samba-HOWTO-Collection.html: $(SGMLDIR)/samba-doc.sgml $(DOCBOOK2HTML) -u -o .. $< mv ../samba-doc.html $@ -../Samba-Developers-Guide.html: devdoc/dev-doc.sgml +../htmldocs/Samba-Developers-Guide.html: devdoc/dev-doc.sgml $(DOCBOOK2HTML) -u -o .. $< mv ../dev-doc.html $@ diff --git a/docs/docbook/devdoc/internals.sgml b/docs/docbook/devdoc/internals.sgml index 79524347b6..982cfd2e10 100644 --- a/docs/docbook/devdoc/internals.sgml +++ b/docs/docbook/devdoc/internals.sgml @@ -26,6 +26,7 @@ telling if a particular char* is in dos codepage or unix codepage. This led to a nightmare of code that tried to cope with particular cases without handlingt the general case. + The new functions diff --git a/docs/docbook/devdoc/parsing.sgml b/docs/docbook/devdoc/parsing.sgml index 0121935d26..8d929617f5 100644 --- a/docs/docbook/devdoc/parsing.sgml +++ b/docs/docbook/devdoc/parsing.sgml @@ -196,7 +196,7 @@ terminating character, and the rest of the line is ignored. The lines <section> :== <section header> { <parameter line> } <section header> :== '[' NAME ']' <parameter line> :== NAME '=' VALUE NL - + Basically, this means that diff --git a/docs/htmldocs/Samba-Developers-Guide.html b/docs/htmldocs/Samba-Developers-Guide.html new file mode 100644 index 0000000000..f7a452bfc5 --- /dev/null +++ b/docs/htmldocs/Samba-Developers-Guide.html @@ -0,0 +1,7734 @@ + +SAMBA Developers Guide


Abstract

Last Update : Mon aug 26 12:41:19 CEST 2002

This book is a collection of documents that might be useful for +people developing samba or those interested in doing so. +It's nothing more than a collection of documents written by samba developers about +the internals of various parts of samba and the SMB protocol. It's still incomplete. +The most recent version of this document +can be found at http://devel.samba.org/. +Please send updates to jelmer@samba.org.

This documentation is distributed under the GNU General Public License (GPL) +version 2. A copy of the license is included with the Samba source +distribution. A copy can be found on-line at http://www.fsf.org/licenses/gpl.txt

Table of Contents
Definition of NetBIOS Protocol and Name Resolution Modes
NETBIOS
BROADCAST NetBIOS
NBNS NetBIOS
Samba Architecture
Introduction
Multithreading and Samba
Threading smbd
Threading nmbd
nbmd Design
The samba DEBUG system
New Output Syntax
The DEBUG() Macro
The DEBUGADD() Macro
The DEBUGLVL() Macro
New Functions
dbgtext()
dbghdr()
format_debug_text()
Coding Suggestions
Samba Internals
Character Handling
The new functions
Macros in byteorder.h
CVAL(buf,pos)
PVAL(buf,pos)
SCVAL(buf,pos,val)
SVAL(buf,pos)
IVAL(buf,pos)
SVALS(buf,pos)
IVALS(buf,pos)
SSVAL(buf,pos,val)
SIVAL(buf,pos,val)
SSVALS(buf,pos,val)
SIVALS(buf,pos,val)
RSVAL(buf,pos)
RIVAL(buf,pos)
RSSVAL(buf,pos,val)
RSIVAL(buf,pos,val)
LAN Manager Samba API
Parameters
Return value
Code character table
The smb.conf file
Lexical Analysis
Handling of Whitespace
Handling of Line Continuation
Line Continuation Quirks
Syntax
About params.c
NetBIOS in a Unix World
Introduction
Usernames
File Ownership
Passwords
Locking
Deny Modes
Trapdoor UIDs
Port numbers
Protocol Complexity
Tracing samba system calls
NT Domain RPC's
Introduction
Sources
Credits
Notes and Structures
Notes
Enumerations
Structures
MSRPC over Transact Named Pipe
MSRPC Pipes
Header
Tail
RPC Bind / Bind Ack
NTLSA Transact Named Pipe
LSA Open Policy
LSA Query Info Policy
LSA Enumerate Trusted Domains
LSA Open Secret
LSA Close
LSA Lookup SIDS
LSA Lookup Names
NETLOGON rpc Transact Named Pipe
LSA Request Challenge
LSA Authenticate 2
LSA Server Password Set
LSA SAM Logon
LSA SAM Logoff
\\MAILSLOT\NET\NTLOGON
Query for PDC
SAM Logon
SRVSVC Transact Named Pipe
Net Share Enum
Net Server Get Info
Cryptographic side of NT Domain Authentication
Definitions
Protocol
Comments
SIDs and RIDs
Well-known SIDs
Well-known RIDS

Definition of NetBIOS Protocol and Name Resolution Modes

NETBIOS

NetBIOS runs over the following tranports: TCP/IP; NetBEUI and IPX/SPX. +Samba only uses NetBIOS over TCP/IP. For details on the TCP/IP NetBIOS +Session Service NetBIOS Datagram Service, and NetBIOS Names, see +rfc1001.txt and rfc1002.txt.

+NetBEUI is a raw NetBIOS frame protocol implementation that allows NetBIOS +datagrams to be sent out over the 'wire' embedded within LLC frames. +NetBEUI is not required when using NetBIOS over TCP/IP protocols and it +is preferable NOT to install NetBEUI if it can be avoided.

+IPX/SPX is also not required when using NetBIOS over TCP/IP, and it is +preferable NOT to install the IPX/SPX transport unless you are using Novell +servers. At the very least, it is recommended that you do not install +'NetBIOS over IPX/SPX'.

[When installing Windows 95, you will find that NetBEUI and IPX/SPX are +installed as the default protocols. This is because they are the simplest +to manage: no Windows 95 user-configuration is required].

+NetBIOS applications (such as samba) offer their services (for example, +SMB file and print sharing) on a NetBIOS name. They must claim this name +on the network before doing so. The NetBIOS session service will then +accept connections on the application's behalf (on the NetBIOS name +claimed by the application). A NetBIOS session between the application +and the client can then commence.

+NetBIOS names consist of 15 characters plus a 'type' character. This is +similar, in concept, to an IP address and a TCP port number, respectively. +A NetBIOS-aware application on a host will offer different services under +different NetBIOS name types, just as a host will offer different TCP/IP +services on different port numbers.

+NetBIOS names must be claimed on a network, and must be defended. The use +of NetBIOS names is most suitable on a single subnet; a Local Area Network +or a Wide Area Network.

+NetBIOS names are either UNIQUE or GROUP. Only one application can claim a +UNIQUE NetBIOS name on a network.

There are two kinds of NetBIOS Name resolution: Broadcast and Point-to-Point.


NBNS NetBIOS

rfc1001.txt describes, amongst other things, the implementation and use +of, a 'NetBIOS Name Service'. NT/AS offers 'Windows Internet Name Service' +which is fully rfc1001/2 compliant, but has had to take specific action +with certain NetBIOS names in order to make it useful. (for example, it +deals with the registration of <1c> <1d> <1e> names all in different ways. +I recommend the reading of the Microsoft WINS Server Help files for full +details).

+The use of a WINS server cuts down on broadcast network traffic for +NetBIOS name resolution. It has the effect of pulling all the broadcast +isolated subnets together into a single NetBIOS scope, across your LAN +or WAN, while avoiding the use of TCP/IP broadcast packets.

When you have a WINS server on your LAN, WINS clients will be able to +contact the WINS server to resolve NetBIOS names. Note that only those +WINS clients that have registered with the same WINS server will be +visible. The WINS server _can_ have static NetBIOS entries added to its +database (usually for security reasons you might want to consider putting +your domain controllers or other important servers as static entries, +but you should not rely on this as your sole means of security), but for +the most part, NetBIOS names are registered dynamically.

This provides some confusion for lots of people, and is worth mentioning +here: a Browse Server is NOT a WINS Server, even if these services are +implemented in the same application. A Browse Server _needs_ a WINS server +because a Browse Server is a WINS client, which is _not_ the same thing].

Clients can claim names, and therefore offer services on successfully claimed +names, on their broadcast-isolated subnet. One way to get NetBIOS services +(such as browsing: see ftp.microsoft.com/drg/developr/CIFS/browdiff.txt; and +SMB file/print sharing: see cifs6.txt) working on a LAN or WAN is to make +your routers forward all broadcast packets from TCP/IP ports 137, 138 and 139. +You will find, however, if you do this on a large LAN or a WAN, that your +network is completely swamped by NetBIOS and browsing packets, which is why +WINS was developed to minimise the necessity of broadcast traffic.

+WINS Clients therefore claim names from the WINS server. If the WINS +server allows them to register a name, the client's NetBIOS session service +can then offer services on this name. Other WINS clients will then +contact the WINS server to resolve a NetBIOS name.


Samba Architecture


Multithreading and Samba

People sometimes tout threads as a uniformly good thing. They are very +nice in their place but are quite inappropriate for smbd. nmbd is +another matter, and multi-threading it would be very nice.

The short version is that smbd is not multithreaded, and alternative +servers that take this approach under Unix (such as Syntax, at the +time of writing) suffer tremendous performance penalties and are less +robust. nmbd is not threaded either, but this is because it is not +possible to do it while keeping code consistent and portable across 35 +or more platforms. (This drawback also applies to threading smbd.)

The longer versions is that there are very good reasons for not making +smbd multi-threaded. Multi-threading would actually make Samba much +slower, less scalable, less portable and much less robust. The fact +that we use a separate process for each connection is one of Samba's +biggest advantages.


Threading smbd

A few problems that would arise from a threaded smbd are:

  1. It's not only to create threads instead of processes, but you + must care about all variables if they have to be thread specific + (currently they would be global).

  2. if one thread dies (eg. a seg fault) then all threads die. We can + immediately throw robustness out the window.

  3. many of the system calls we make are blocking. Non-blocking + equivalents of many calls are either not available or are awkward (and + slow) to use. So while we block in one thread all clients are + waiting. Imagine if one share is a slow NFS filesystem and the others + are fast, we will end up slowing all clients to the speed of NFS.

  4. you can't run as a different uid in different threads. This means + we would have to switch uid/gid on _every_ SMB packet. It would be + horrendously slow.

  5. the per process file descriptor limit would mean that we could only + support a limited number of clients.

  6. we couldn't use the system locking calls as the locking context of + fcntl() is a process, not a thread.


Threading nmbd

This would be ideal, but gets sunk by portability requirements.

Andrew tried to write a test threads library for nmbd that used only +ansi-C constructs (using setjmp and longjmp). Unfortunately some OSes +defeat this by restricting longjmp to calling addresses that are +shallower than the current address on the stack (apparently AIX does +this). This makes a truly portable threads library impossible. So to +support all our current platforms we would have to code nmbd both with +and without threads, and as the real aim of threads is to make the +code clearer we would not have gained anything. (it is a myth that +threads make things faster. threading is like recursion, it can make +things clear but the same thing can always be done faster by some +other method)

Chris tried to spec out a general design that would abstract threading +vs separate processes (vs other methods?) and make them accessible +through some general API. This doesn't work because of the data +sharing requirements of the protocol (packets in the future depending +on packets now, etc.) At least, the code would work but would be very +clumsy, and besides the fork() type model would never work on Unix. (Is there an OS that it would work on, for nmbd?)

A fork() is cheap, but not nearly cheap enough to do on every UDP +packet that arrives. Having a pool of processes is possible but is +nasty to program cleanly due to the enormous amount of shared data (in +complex structures) between the processes. We can't rely on each +platform having a shared memory system.


nbmd Design

Originally Andrew used recursion to simulate a multi-threaded +environment, which use the stack enormously and made for really +confusing debugging sessions. Luke Leighton rewrote it to use a +queuing system that keeps state information on each packet. The +first version used a single structure which was used by all the +pending states. As the initialisation of this structure was +done by adding arguments, as the functionality developed, it got +pretty messy. So, it was replaced with a higher-order function +and a pointer to a user-defined memory block. This suddenly +made things much simpler: large numbers of functions could be +made static, and modularised. This is the same principle as used +in NT's kernel, and achieves the same effect as threads, but in +a single process.

Then Jeremy rewrote nmbd. The packet data in nmbd isn't what's on the +wire. It's a nice format that is very amenable to processing but still +keeps the idea of a distinct packet. See "struct packet_struct" in +nameserv.h. It has all the detail but none of the on-the-wire +mess. This makes it ideal for using in disk or memory-based databases +for browsing and WINS support.


The samba DEBUG system

New Output Syntax

The syntax of a debugging log file is represented as:

  >debugfile< :== { >debugmsg< }
+
+  >debugmsg<  :== >debughdr< '\n' >debugtext<
+
+  >debughdr<  :== '[' TIME ',' LEVEL ']' FILE ':' [FUNCTION] '(' LINE ')'
+
+  >debugtext< :== { >debugline< }
+
+  >debugline< :== TEXT '\n'

TEXT is a string of characters excluding the newline character.

LEVEL is the DEBUG level of the message (an integer in the range + 0..10).

TIME is a timestamp.

FILE is the name of the file from which the debug message was +generated.

FUNCTION is the function from which the debug message was generated.

LINE is the line number of the debug statement that generated the +message.

Basically, what that all means is:

  1. A debugging log file is made up of debug messages.

  2. Each debug message is made up of a header and text. The header is +separated from the text by a newline.

  3. The header begins with the timestamp and debug level of the +message enclosed in brackets. The filename, function, and line +number at which the message was generated follow. The filename is +terminated by a colon, and the function name is terminated by the +parenthesis which contain the line number. Depending upon the +compiler, the function name may be missing (it is generated by the +__FUNCTION__ macro, which is not universally implemented, dangit).

  4. The message text is made up of zero or more lines, each terminated +by a newline.

Here's some example output:

    [1998/08/03 12:55:25, 1] nmbd.c:(659)
+      Netbios nameserver version 1.9.19-prealpha started.
+      Copyright Andrew Tridgell 1994-1997
+    [1998/08/03 12:55:25, 3] loadparm.c:(763)
+      Initializing global parameters

Note that in the above example the function names are not listed on +the header line. That's because the example above was generated on an +SGI Indy, and the SGI compiler doesn't support the __FUNCTION__ macro.


The DEBUG() Macro

Use of the DEBUG() macro is unchanged. DEBUG() takes two parameters. +The first is the message level, the second is the body of a function +call to the Debug1() function.

That's confusing.

Here's an example which may help a bit. If you would write

printf( "This is a %s message.\n", "debug" );

to send the output to stdout, then you would write

DEBUG( 0, ( "This is a %s message.\n", "debug" ) );

to send the output to the debug file. All of the normal printf() +formatting escapes work.

Note that in the above example the DEBUG message level is set to 0. +Messages at level 0 always print. Basically, if the message level is +less than or equal to the global value DEBUGLEVEL, then the DEBUG +statement is processed.

The output of the above example would be something like:

    [1998/07/30 16:00:51, 0] file.c:function(128)
+      This is a debug message.

Each call to DEBUG() creates a new header *unless* the output produced +by the previous call to DEBUG() did not end with a '\n'. Output to the +debug file is passed through a formatting buffer which is flushed +every time a newline is encountered. If the buffer is not empty when +DEBUG() is called, the new input is simply appended.

...but that's really just a Kludge. It was put in place because +DEBUG() has been used to write partial lines. Here's a simple (dumb) +example of the kind of thing I'm talking about:

    DEBUG( 0, ("The test returned " ) );
+    if( test() )
+      DEBUG(0, ("True") );
+    else
+      DEBUG(0, ("False") );
+    DEBUG(0, (".\n") );

Without the format buffer, the output (assuming test() returned true) +would look like this:

    [1998/07/30 16:00:51, 0] file.c:function(256)
+      The test returned
+    [1998/07/30 16:00:51, 0] file.c:function(258)
+      True
+    [1998/07/30 16:00:51, 0] file.c:function(261)
+      .

Which isn't much use. The format buffer kludge fixes this problem.


The DEBUGADD() Macro

In addition to the kludgey solution to the broken line problem +described above, there is a clean solution. The DEBUGADD() macro never +generates a header. It will append new text to the current debug +message even if the format buffer is empty. The syntax of the +DEBUGADD() macro is the same as that of the DEBUG() macro.

    DEBUG( 0, ("This is the first line.\n" ) );
+    DEBUGADD( 0, ("This is the second line.\nThis is the third line.\n" ) );

Produces

    [1998/07/30 16:00:51, 0] file.c:function(512)
+      This is the first line.
+      This is the second line.
+      This is the third line.


The DEBUGLVL() Macro

One of the problems with the DEBUG() macro was that DEBUG() lines +tended to get a bit long. Consider this example from +nmbd_sendannounce.c:

  DEBUG(3,("send_local_master_announcement: type %x for name %s on subnet %s for workgroup %s\n",
+            type, global_myname, subrec->subnet_name, work->work_group));

One solution to this is to break it down using DEBUG() and DEBUGADD(), +as follows:

  DEBUG( 3, ( "send_local_master_announcement: " ) );
+  DEBUGADD( 3, ( "type %x for name %s ", type, global_myname ) );
+  DEBUGADD( 3, ( "on subnet %s ", subrec->subnet_name ) );
+  DEBUGADD( 3, ( "for workgroup %s\n", work->work_group ) );

A similar, but arguably nicer approach is to use the DEBUGLVL() macro. +This macro returns True if the message level is less than or equal to +the global DEBUGLEVEL value, so:

  if( DEBUGLVL( 3 ) )
+    {
+    dbgtext( "send_local_master_announcement: " );
+    dbgtext( "type %x for name %s ", type, global_myname );
+    dbgtext( "on subnet %s ", subrec->subnet_name );
+    dbgtext( "for workgroup %s\n", work->work_group );
+    }

(The dbgtext() function is explained below.)

There are a few advantages to this scheme:

  1. The test is performed only once.

  2. You can allocate variables off of the stack that will only be used +within the DEBUGLVL() block.

  3. Processing that is only relevant to debug output can be contained +within the DEBUGLVL() block.


New Functions


Coding Suggestions

So you want to add code to Samba ...

One of the daunting tasks facing a programmer attempting to write code for +Samba is understanding the various coding conventions used by those most +active in the project. These conventions were mostly unwritten and helped +improve either the portability, stability or consistency of the code. This +document will attempt to document a few of the more important coding +practices used at this time on the Samba project. The coding practices are +expected to change slightly over time, and even to grow as more is learned +about obscure portability considerations. Two existing documents +samba/source/internals.doc and +samba/source/architecture.doc provide +additional information.

The loosely related question of coding style is very personal and this +document does not attempt to address that subject, except to say that I +have observed that eight character tabs seem to be preferred in Samba +source. If you are interested in the topic of coding style, two oft-quoted +documents are:

http://lxr.linux.no/source/Documentation/CodingStyle

http://www.fsf.org/prep/standards_toc.html

But note that coding style in Samba varies due to the many different +programmers who have contributed.

Following are some considerations you should use when adding new code to +Samba. First and foremost remember that:

Portability is a primary consideration in adding function, as is network +compatability with de facto, existing, real world CIFS/SMB implementations. +There are lots of platforms that Samba builds on so use caution when adding +a call to a library function that is not invoked in existing Samba code. +Also note that there are many quite different SMB/CIFS clients that Samba +tries to support, not all of which follow the SNIA CIFS Technical Reference +(or the earlier Microsoft reference documents or the X/Open book on the SMB +Standard) perfectly.

Here are some other suggestions:

  1. use d_printf instead of printf for display text + reason: enable auto-substitution of translated language text

  2. use SAFE_FREE instead of free + reason: reduce traps due to null pointers

  3. don't use bzero use memset, or ZERO_STRUCT and ZERO_STRUCTP macros + reason: not POSIX

  4. don't use strcpy and strlen (use safe_* equivalents) + reason: to avoid traps due to buffer overruns

  5. don't use getopt_long, use popt functions instead + reason: portability

  6. explicitly add const qualifiers on parm passing in functions where parm + is input only (somewhat controversial but const can be #defined away)

  7. when passing a va_list as an arg, or assigning one to another + please use the VA_COPY() macro + reason: on some platforms, va_list is a struct that must be + initialized in each function...can SEGV if you don't.

  8. discourage use of threads + reason: portability (also see architecture.doc)

  9. don't explicitly include new header files in C files - new h files + should be included by adding them once to includes.h + reason: consistency

  10. don't explicitly extern functions (they are autogenerated by + "make proto" into proto.h) + reason: consistency

  11. use endian safe macros when unpacking SMBs (see byteorder.h and + internals.doc) + reason: not everyone uses Intel

  12. Note Unicode implications of charset handling (see internals.doc). See + pull_* and push_* and convert_string functions. + reason: Internationalization

  13. Don't assume English only + reason: See above

  14. Try to avoid using in/out parameters (functions that return data which + overwrites input parameters) + reason: Can cause stability problems

  15. Ensure copyright notices are correct, don't append Tridge's name to code + that he didn't write. If you did not write the code, make sure that it + can coexist with the rest of the Samba GPLed code.

  16. Consider usage of DATA_BLOBs for length specified byte-data. + reason: stability

  17. Take advantage of tdbs for database like function + reason: consistency

  18. Don't access the SAM_ACCOUNT structure directly, they should be accessed + via pdb_get...() and pdb_set...() functions. + reason: stability, consistency

  19. Don't check a password directly against the passdb, always use the + check_password() interface. + reason: long term pluggability

  20. Try to use asprintf rather than pstrings and fstrings where possible

  21. Use normal C comments / * instead of C++ comments // like + this. Although the C++ comment format is part of the C99 + standard, some older vendor C compilers do not accept it.

  22. Try to write documentation for API functions and structures + explaining the point of the code, the way it should be used, and + any special conditions or results. Mark these with a double-star + comment start / ** so that they can be picked up by Doxygen, as in + this file.

  23. Keep the scope narrow. This means making functions/variables + static whenever possible. We don't want our namespace + polluted. Each module should have a minimal number of externally + visible functions or variables.

  24. Use function pointers to keep knowledge about particular pieces of + code isolated in one place. We don't want a particular piece of + functionality to be spread out across lots of places - that makes + for fragile, hand to maintain code. Instead, design an interface + and use tables containing function pointers to implement specific + functionality. This is particularly important for command + interpreters.

  25. Think carefully about what it will be like for someone else to add + to and maintain your code. If it would be hard for someone else to + maintain then do it another way.

The suggestions above are simply that, suggestions, but the information may +help in reducing the routine rework done on new code. The preceeding list +is expected to change routinely as new support routines and macros are +added.


Samba Internals


The new functions

The new system works like this:

  1. all char* strings inside Samba are "unix" strings. These are + multi-byte strings that are in the charset defined by the "unix + charset" option in smb.conf.

  2. there is no single fixed character set for unix strings, but any + character set that is used does need the following properties: +

    1. must not contain NULLs except for termination +

    2. must be 7-bit compatible with C strings, so that a constant + string or character in C will be byte-for-byte identical to the + equivalent string in the chosen character set. +

    3. when you uppercase or lowercase a string it does not become + longer than the original string +

    4. must be able to correctly hold all characters that your client + will throw at it +

    For example, UTF-8 is fine, and most multi-byte asian character sets + are fine, but UCS2 could not be used for unix strings as they + contain nulls. +

  3. when you need to put a string into a buffer that will be sent on the + wire, or you need a string in a character set format that is + compatible with the clients character set then you need to use a + pull_ or push_ function. The pull_ functions pull a string from a + wire buffer into a (multi-byte) unix string. The push_ functions + push a string out to a wire buffer.

  4. the two main pull_ and push_ functions you need to understand are + pull_string and push_string. These functions take a base pointer + that should point at the start of the SMB packet that the string is + in. The functions will check the flags field in this packet to + automatically determine if the packet is marked as a unicode packet, + and they will choose whether to use unicode for this string based on + that flag. You may also force this decision using the STR_UNICODE or + STR_ASCII flags. For use in smbd/ and libsmb/ there are wrapper + functions clistr_ and srvstr_ that call the pull_/push_ functions + with the appropriate first argument. +

    You may also call the pull_ascii/pull_ucs2 or push_ascii/push_ucs2 + functions if you know that a particular string is ascii or + unicode. There are also a number of other convenience functions in + charcnv.c that call the pull_/push_ functions with particularly + common arguments, such as pull_ascii_pstring() +

  5. The biggest thing to remember is that internal (unix) strings in Samba + may now contain multi-byte characters. This means you cannot assume + that characters are always 1 byte long. Often this means that you will + have to convert strings to ucs2 and back again in order to do some + (seemingly) simple task. For examples of how to do this see functions + like strchr_m(). I know this is very slow, and we will eventually + speed it up but right now we want this stuff correct not fast.

  6. all lp_ functions now return unix strings. The magic "DOS" flag on + parameters is gone.

  7. all vfs functions take unix strings. Don't convert when passing to them


Macros in byteorder.h

This section describes the macros defined in byteorder.h. These macros +are used extensively in the Samba code.


LAN Manager Samba API

This section describes the functions need to make a LAN Manager RPC call. +This information had been obtained by examining the Samba code and the LAN +Manager 2.0 API documentation. It should not be considered entirely +reliable.

call_api(int prcnt, int drcnt, int mprcnt, int mdrcnt, 
+	char *param, char *data, char **rparam, char **rdata);

This function is defined in client.c. It uses an SMB transaction to call a +remote api.


Parameters

The parameters are as follows:

  1. prcnt: the number of bytes of parameters begin sent.

  2. drcnt: the number of bytes of data begin sent.

  3. mprcnt: the maximum number of bytes of parameters which should be returned

  4. mdrcnt: the maximum number of bytes of data which should be returned

  5. param: a pointer to the parameters to be sent.

  6. data: a pointer to the data to be sent.

  7. rparam: a pointer to a pointer which will be set to point to the returned + paramters. The caller of call_api() must deallocate this memory.

  8. rdata: a pointer to a pointer which will be set to point to the returned + data. The caller of call_api() must deallocate this memory.

These are the parameters which you ought to send, in the order of their +appearance in the parameter block:

  1. An unsigned 16 bit integer API number. You should set this value with +SSVAL(). I do not know where these numbers are described.

  2. An ASCIIZ string describing the parameters to the API function as defined +in the LAN Manager documentation. The first parameter, which is the server +name, is ommited. This string is based uppon the API function as described +in the manual, not the data which is actually passed.

  3. An ASCIIZ string describing the data structure which ought to be returned.

  4. Any parameters which appear in the function call, as defined in the LAN +Manager API documentation, after the "Server" and up to and including the +"uLevel" parameters.

  5. An unsigned 16 bit integer which gives the size in bytes of the buffer we +will use to receive the returned array of data structures. Presumably this +should be the same as mdrcnt. This value should be set with SSVAL().

  6. An ASCIIZ string describing substructures which should be returned. If no +substructures apply, this string is of zero length.

The code in client.c always calls call_api() with no data. It is unclear +when a non-zero length data buffer would be sent.


Return value

The returned parameters (pointed to by rparam), in their order of appearance +are:

  1. An unsigned 16 bit integer which contains the API function's return code. +This value should be read with SVAL().

  2. An adjustment which tells the amount by which pointers in the returned +data should be adjusted. This value should be read with SVAL(). Basically, +the address of the start of the returned data buffer should have the returned +pointer value added to it and then have this value subtracted from it in +order to obtain the currect offset into the returned data buffer.

  3. A count of the number of elements in the array of structures returned. +It is also possible that this may sometimes be the number of bytes returned.

When call_api() returns, rparam points to the returned parameters. The +first if these is the result code. It will be zero if the API call +suceeded. This value by be read with "SVAL(rparam,0)".

The second parameter may be read as "SVAL(rparam,2)". It is a 16 bit offset +which indicates what the base address of the returned data buffer was when +it was built on the server. It should be used to correct pointer before +use.

The returned data buffer contains the array of returned data structures. +Note that all pointers must be adjusted before use. The function +fix_char_ptr() in client.c can be used for this purpose.

The third parameter (which may be read as "SVAL(rparam,4)") has something to +do with indicating the amount of data returned or possibly the amount of +data which can be returned if enough buffer space is allowed.


The smb.conf file

Lexical Analysis

Basically, the file is processed on a line by line basis. There are +four types of lines that are recognized by the lexical analyzer +(params.c):

  1. Blank lines - Lines containing only whitespace.

  2. Comment lines - Lines beginning with either a semi-colon or a +pound sign (';' or '#').

  3. Section header lines - Lines beginning with an open square bracket ('[').

  4. Parameter lines - Lines beginning with any other character. +(The default line type.)

The first two are handled exclusively by the lexical analyzer, which +ignores them. The latter two line types are scanned for

  1. - Section names

  2. - Parameter names

  3. - Parameter values

These are the only tokens passed to the parameter loader +(loadparm.c). Parameter names and values are divided from one +another by an equal sign: '='.


Handling of Line Continuation

Long section header and parameter lines may be extended across +multiple lines by use of the backslash character ('\\'). Line +continuation is ignored for blank and comment lines.

If the last (non-whitespace) character within a section header or on +a parameter line is a backslash, then the next line will be +(logically) concatonated with the current line by the lexical +analyzer. For example:

	param name = parameter value string \
+	with line continuation.

Would be read as

    param name = parameter value string     with line continuation.

Note that there are five spaces following the word 'string', +representing the one space between 'string' and '\\' in the top +line, plus the four preceeding the word 'with' in the second line. +(Yes, I'm counting the indentation.)

Line continuation characters are ignored on blank lines and at the end +of comments. They are *only* recognized within section and parameter +lines.


Line Continuation Quirks

Note the following example:

	param name = parameter value string \
+    \
+    with line continuation.

The middle line is *not* parsed as a blank line because it is first +concatonated with the top line. The result is

param name = parameter value string         with line continuation.

The same is true for comment lines.

	param name = parameter value string \
+	; comment \
+    with a comment.

This becomes:

param name = parameter value string     ; comment     with a comment.

On a section header line, the closing bracket (']') is considered a +terminating character, and the rest of the line is ignored. The lines

	[ section   name ] garbage \
+    param  name  = value

are read as

	[section name]
+    param name = value


Syntax

The syntax of the smb.conf file is as follows:

  <file>            :==  { <section> } EOF
+  <section>         :==  <section header> { <parameter line> }
+  <section header>  :==  '[' NAME ']'
+  <parameter line>  :==  NAME '=' VALUE NL

Basically, this means that

  1. a file is made up of zero or more sections, and is terminated by + an EOF (we knew that).

  2. A section is made up of a section header followed by zero or more + parameter lines.

  3. A section header is identified by an opening bracket and + terminated by the closing bracket. The enclosed NAME identifies + the section.

  4. A parameter line is divided into a NAME and a VALUE. The *first* + equal sign on the line separates the NAME from the VALUE. The + VALUE is terminated by a newline character (NL = '\n').


NetBIOS in a Unix World


Usernames

The SMB protocol has only a loose username concept. Early SMB +protocols (such as CORE and COREPLUS) have no username concept at +all. Even in later protocols clients often attempt operations +(particularly printer operations) without first validating a username +on the server.

Unix security is based around username/password pairs. A unix box +should not allow clients to do any substantive operation without some +sort of validation.

The problem mostly manifests itself when the unix server is in "share +level" security mode. This is the default mode as the alternative +"user level" security mode usually forces a client to connect to the +server as the same user for each connected share, which is +inconvenient in many sites.

In "share level" security the client normally gives a username in the +"session setup" protocol, but does not supply an accompanying +password. The client then connects to resources using the "tree +connect" protocol, and supplies a password. The problem is that the +user on the PC types the username and the password in different +contexts, unaware that they need to go together to give access to the +server. The username is normally the one the user typed in when they +"logged onto" the PC (this assumes Windows for Workgroups). The +password is the one they chose when connecting to the disk or printer.

The user often chooses a totally different username for their login as +for the drive connection. Often they also want to access different +drives as different usernames. The unix server needs some way of +divining the correct username to combine with each password.

Samba tries to avoid this problem using several methods. These succeed +in the vast majority of cases. The methods include username maps, the +service%user syntax, the saving of session setup usernames for later +validation and the derivation of the username from the service name +(either directly or via the user= option).


File Ownership

The commonly used SMB protocols have no way of saying "you can't do +that because you don't own the file". They have, in fact, no concept +of file ownership at all.

This brings up all sorts of interesting problems. For example, when +you copy a file to a unix drive, and the file is world writeable but +owned by another user the file will transfer correctly but will +receive the wrong date. This is because the utime() call under unix +only succeeds for the owner of the file, or root, even if the file is +world writeable. For security reasons Samba does all file operations +as the validated user, not root, so the utime() fails. This can stuff +up shared development diectories as programs like "make" will not get +file time comparisons right.

There are several possible solutions to this problem, including +username mapping, and forcing a specific username for particular +shares.


Passwords

Many SMB clients uppercase passwords before sending them. I have no +idea why they do this. Interestingly WfWg uppercases the password only +if the server is running a protocol greater than COREPLUS, so +obviously it isn't just the data entry routines that are to blame.

Unix passwords are case sensitive. So if users use mixed case +passwords they are in trouble.

Samba can try to cope with this by either using the "password level" +option which causes Samba to try the offered password with up to the +specified number of case changes, or by using the "password server" +option which allows Samba to do its validation via another machine +(typically a WinNT server).

Samba supports the password encryption method used by SMB +clients. Note that the use of password encryption in Microsoft +networking leads to password hashes that are "plain text equivalent". +This means that it is *VERY* important to ensure that the Samba +smbpasswd file containing these password hashes is only readable +by the root user. See the documentation ENCRYPTION.txt for more +details.


Locking

The locking calls available under a DOS/Windows environment are much +richer than those available in unix. This means a unix server (like +Samba) choosing to use the standard fcntl() based unix locking calls +to implement SMB locking has to improvise a bit.

One major problem is that dos locks can be in a 32 bit (unsigned) +range. Unix locking calls are 32 bits, but are signed, giving only a 31 +bit range. Unfortunately OLE2 clients use the top bit to select a +locking range used for OLE semaphores.

To work around this problem Samba compresses the 32 bit range into 31 +bits by appropriate bit shifting. This seems to work but is not +ideal. In a future version a separate SMB lockd may be added to cope +with the problem.

It also doesn't help that many unix lockd daemons are very buggy and +crash at the slightest provocation. They normally go mostly unused in +a unix environment because few unix programs use byte range +locking. The stress of huge numbers of lock requests from dos/windows +clients can kill the daemon on some systems.

The second major problem is the "opportunistic locking" requested by +some clients. If a client requests opportunistic locking then it is +asking the server to notify it if anyone else tries to do something on +the same file, at which time the client will say if it is willing to +give up its lock. Unix has no simple way of implementing +opportunistic locking, and currently Samba has no support for it.


Port numbers

There is a convention that clients on sockets use high "unprivilaged" +port numbers (>1000) and connect to servers on low "privilaged" port +numbers. This is enforced in Unix as non-root users can't open a +socket for listening on port numbers less than 1000.

Most PC based SMB clients (such as WfWg and WinNT) don't follow this +convention completely. The main culprit is the netbios nameserving on +udp port 137. Name query requests come from a source port of 137. This +is a problem when you combine it with the common firewalling technique +of not allowing incoming packets on low port numbers. This means that +these clients can't query a netbios nameserver on the other side of a +low port based firewall.

The problem is more severe with netbios node status queries. I've +found that WfWg, Win95 and WinNT3.5 all respond to netbios node status +queries on port 137 no matter what the source port was in the +request. This works between machines that are both using port 137, but +it means it's not possible for a unix user to do a node status request +to any of these OSes unless they are running as root. The answer comes +back, but it goes to port 137 which the unix user can't listen +on. Interestingly WinNT3.1 got this right - it sends node status +responses back to the source port in the request.


Protocol Complexity

There are many "protocol levels" in the SMB protocol. It seems that +each time new functionality was added to a Microsoft operating system, +they added the equivalent functions in a new protocol level of the SMB +protocol to "externalise" the new capabilities.

This means the protocol is very "rich", offering many ways of doing +each file operation. This means SMB servers need to be complex and +large. It also means it is very difficult to make them bug free. It is +not just Samba that suffers from this problem, other servers such as +WinNT don't support every variation of every call and it has almost +certainly been a headache for MS developers to support the myriad of +SMB calls that are available.

There are about 65 "top level" operations in the SMB protocol (things +like SMBread and SMBwrite). Some of these include hundreds of +sub-functions (SMBtrans has at least 120 sub-functions, like +DosPrintQAdd and NetSessionEnum). All of them take several options +that can change the way they work. Many take dozens of possible +"information levels" that change the structures that need to be +returned. Samba supports all but 2 of the "top level" functions. It +supports only 8 (so far) of the SMBtrans sub-functions. Even NT +doesn't support them all.

Samba currently supports up to the "NT LM 0.12" protocol, which is the +one preferred by Win95 and WinNT3.5. Luckily this protocol level has a +"capabilities" field which specifies which super-duper new-fangled +options the server suports. This helps to make the implementation of +this protocol level much easier.

There is also a problem with the SMB specications. SMB is a X/Open +spec, but the X/Open book is far from ideal, and fails to cover many +important issues, leaving much to the imagination. Microsoft recently +renamed the SMB protocol CIFS (Common Internet File System) and have +published new specifications. These are far superior to the old +X/Open documents but there are still undocumented calls and features. +This specification is actively being worked on by a CIFS developers +mailing list hosted by Microsft.


Tracing samba system calls

This file describes how to do a system call trace on Samba to work out +what its doing wrong. This is not for the faint of heart, but if you +are reading this then you are probably desperate.

Actually its not as bad as the the above makes it sound, just don't +expect the output to be very pretty :-)

Ok, down to business. One of the big advantages of unix systems is +that they nearly all come with a system trace utility that allows you +to monitor all system calls that a program is making. This is +extremely using for debugging and also helps when trying to work out +why something is slower than you expect. You can use system tracing +without any special compilation options.

The system trace utility is called different things on different +systems. On Linux systems its called strace. Under SunOS 4 its called +trace. Under SVR4 style systems (including solaris) its called +truss. Under many BSD systems its called ktrace.

The first thing you should do is read the man page for your native +system call tracer. In the discussion below I'll assume its called +strace as strace is the only portable system tracer (its available for +free for many unix types) and its also got some of the nicest +features.

Next, try using strace on some simple commands. For example, strace +ls or strace echo hello.

+You'll notice that it produces a LOT of output. It is showing you the +arguments to every system call that the program makes and the +result. Very little happens in a program without a system call so you +get lots of output. You'll also find that it produces a lot of +"preamble" stuff showing the loading of shared libraries etc. Ignore +this (unless its going wrong!)

For example, the only line that really matters in the strace echo +hello output is:

write(1, "hello\n", 6)                  = 6

all the rest is just setting up to run the program.

Ok, now you're familiar with strace. To use it on Samba you need to +strace the running smbd daemon. The way I tend ot use it is to first +login from my Windows PC to the Samba server, then use smbstatus to +find which process ID that client is attached to, then as root I do +strace -p PID to attach to that process. I normally redirect the +stderr output from this command to a file for later perusal. For +example, if I'm using a csh style shell:

strace -f -p 3872 >& strace.out

or with a sh style shell:

strace -f -p 3872 > strace.out 2>&1

Note the "-f" option. This is only available on some systems, and +allows you to trace not just the current process, but any children it +forks. This is great for finding printing problems caused by the +"print command" being wrong.

Once you are attached you then can do whatever it is on the client +that is causing problems and you will capture all the system calls +that smbd makes.

So how do you interpret the results? Generally I search through the +output for strings that I know will appear when the problem +happens. For example, if I am having touble with permissions on a file +I would search for that files name in the strace output and look at +the surrounding lines. Another trick is to match up file descriptor +numbers and "follow" what happens to an open file until it is closed.

Beyond this you will have to use your initiative. To give you an idea +of what you are looking for here is a piece of strace output that +shows that /dev/null is not world writeable, which +causes printing to fail with Samba:

[pid 28268] open("/dev/null", O_RDWR)   = -1 EACCES (Permission denied)
+[pid 28268] open("/dev/null", O_WRONLY) = -1 EACCES (Permission denied)

The process is trying to first open /dev/null read-write +then read-only. Both fail. This means /dev/null has +incorrect permissions.


NT Domain RPC's

Introduction

This document contains information to provide an NT workstation with login +services, without the need for an NT server. It is the sgml version of http://mailhost.cb1.com/~lkcl/cifsntdomain.txt, controlled by Luke.

It should be possible to select a domain instead of a workgroup (in the NT +workstation's TCP/IP settings) and after the obligatory reboot, type in a +username, password, select a domain and successfully log in. I would +appreciate any feedback on your experiences with this process, and any +comments, corrections and additions to this document.

The packets described here can be easily derived from (and are probably +better understood using) Netmon.exe. You will need to use the version +of Netmon that matches your system, in order to correctly decode the +NETLOGON, lsarpc and srvsvc Transact pipes. This document is derived from +NT Service Pack 1 and its corresponding version of Netmon. It is intended +that an annotated packet trace be produced, which will likely be more +instructive than this document.

Also needed, to fully implement NT Domain Login Services, is the +document describing the cryptographic part of the NT authentication. +This document is available from comp.protocols.smb; from the ntsecurity.net +digest and from the samba digest, amongst other sources.

A copy is available from:

http://ntbugtraq.rc.on.ca/SCRIPTS/WA.EXE?A2=ind9708;L=ntbugtraq;O=A;P=2935

http://mailhost.cb1.com/~lkcl/crypt.html

A c-code implementation, provided by Linus Nordberg +of this protocol is available from:

http://samba.org/cgi-bin/mfs/01/digest/1997/97aug/0391.html

http://mailhost.cb1.com/~lkcl/crypt.txt

Also used to provide debugging information is the Check Build version of +NT workstation, and enabling full debugging in NETLOGON. This is +achieved by setting the following REG_SZ registry key to 0x1ffffff:

HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

Incorrect direct editing of the registry can cause your +machine to fail. Then again, so can incorrect implementation of this +protocol. See "Liability:" above.

Bear in mind that each packet over-the-wire will have its origin in an +API call. Therefore, there are likely to be structures, enumerations +and defines that are usefully documented elsewhere.

This document is by no means complete or authoritative. Missing sections +include, but are not limited to:

  1. Mappings of RIDs to usernames (and vice-versa).

  2. What a User ID is and what a Group ID is.

  3. The exact meaning/definition of various magic constants or enumerations.

  4. The reply error code and use of that error code when a +workstation becomes a member of a domain (to be described later). +Failure to return this error code will make the workstation report +that it is already a member of the domain.

  5. the cryptographic side of the NetrServerPasswordSet command, +which would allow the workstation to change its password. This password is +used to generate the long-term session key. [It is possible to reject this +command, and keep the default workstation password].


Sources

cket Traces from Netmonitor (Service Pack 1 and above)
ul Ashton and Luke Leighton's other "NT Domain" doc.
FS documentation - cifs6.txt
FS documentation - cifsrap2.txt


Credits

Paul Ashton: loads of work with Net Monitor; understanding the NT authentication system; reference implementation of the NT domain support on which this document is originally based.
Duncan Stansfield: low-level analysis of MSRPC Pipes.
Linus Nordberg: producing c-code from Paul's crypto spec.
Windows Sourcer development team


Notes and Structures

Notes

  1. In the SMB Transact pipes, some "Structures", described here, appear to be +4-byte aligned with the SMB header, at their start. Exactly which +"Structures" need aligning is not precisely known or documented.

  2. In the UDP NTLOGON Mailslots, some "Structures", described here, appear to be +2-byte aligned with the start of the mailslot, at their start.

  3. Domain SID is of the format S-revision-version-auth1-auth2...authN. +e.g S-1-5-123-456-789-123-456. the 5 could be a sub-revision.

  4. any undocumented buffer pointers must be non-zero if the string buffer it +refers to contains characters. exactly what value they should be is unknown. +0x0000 0002 seems to do the trick to indicate that the buffer exists. a +NULL buffer pointer indicates that the string buffer is of zero length. +If the buffer pointer is NULL, then it is suspected that the structure it +refers to is NOT put into (or taken out of) the SMB data stream. This is +empirically derived from, for example, the LSA SAM Logon response packet, +where if the buffer pointer is NULL, the user information is not inserted +into the data stream. Exactly what happens with an array of buffer pointers +is not known, although an educated guess can be made.

  5. an array of structures (a container) appears to have a count and a pointer. +if the count is zero, the pointer is also zero. no further data is put +into or taken out of the SMB data stream. if the count is non-zero, then +the pointer is also non-zero. immediately following the pointer is the +count again, followed by an array of container sub-structures. the count +appears a third time after the last sub-structure.


Structures


USER_INFO (user logon info)

Note: it would be nice to know what the 16 byte user session key is for.

NTTIME

logon time

NTTIME

logoff time

NTTIME

kickoff time

NTTIME

password last set time

NTTIME

password can change time

NTTIME

password must change time

UNIHDR

username unicode string header

UNIHDR

user's full name unicode string header

UNIHDR

logon script unicode string header

UNIHDR

profile path unicode string header

UNIHDR

home directory unicode string header

UNIHDR

home directory drive unicode string header

UINT16

logon count

UINT16

bad password count

UINT32

User ID

UINT32

Group ID

UINT32

num groups

VOID*

undocumented buffer pointer to groups.

UINT32

user flags

char[16]

user session key

UNIHDR

logon server unicode string header

UNIHDR

logon domain unicode string header

VOID*

undocumented logon domain id pointer

char[40]

40 undocumented padding bytes. future expansion?

UINT32

0 - num_other_sids?

VOID*

NULL - undocumented pointer to other domain SIDs.

UNISTR2

username unicode string

UNISTR2

user's full name unicode string

UNISTR2

logon script unicode string

UNISTR2

profile path unicode string

UNISTR2

home directory unicode string

UNISTR2

home directory drive unicode string

UINT32

num groups

GID[num_groups]

group info

UNISTR2

logon server unicode string

UNISTR2

logon domain unicode string

DOM_SID

domain SID

DOM_SID[num_sids]

other domain SIDs?


SH_INFO_1_PTR (pointers to level 1 share info strings)

Note: see cifsrap2.txt section5, page 10.

0 for shi1_type indicates a Disk.
1 for shi1_type indicates a Print Queue.
2 for shi1_type indicates a Device.
3 for shi1_type indicates an IPC pipe.
0x8000 0000 (top bit set in shi1_type) indicates a hidden share.


SERVER_INFO_101

Note: see cifs6.txt section 6.4 - the fields described therein will be of assistance here. for example, the type listed below is the same as fServerType, which is described in 6.4.1.

SV_TYPE_WORKSTATION

0x00000001 All workstations

SV_TYPE_SERVER

0x00000002 All servers

SV_TYPE_SQLSERVER

0x00000004 Any server running with SQL server

SV_TYPE_DOMAIN_CTRL

0x00000008 Primary domain controller

SV_TYPE_DOMAIN_BAKCTRL

0x00000010 Backup domain controller

SV_TYPE_TIME_SOURCE

0x00000020 Server running the timesource service

SV_TYPE_AFP

0x00000040 Apple File Protocol servers

SV_TYPE_NOVELL

0x00000080 Novell servers

SV_TYPE_DOMAIN_MEMBER

0x00000100 Domain Member

SV_TYPE_PRINTQ_SERVER

0x00000200 Server sharing print queue

SV_TYPE_DIALIN_SERVER

0x00000400 Server running dialin service.

SV_TYPE_XENIX_SERVER

0x00000800 Xenix server

SV_TYPE_NT

0x00001000 NT server

SV_TYPE_WFW

0x00002000 Server running Windows for

SV_TYPE_SERVER_NT

0x00008000 Windows NT non DC server

SV_TYPE_POTENTIAL_BROWSER

0x00010000 Server that can run the browser service

SV_TYPE_BACKUP_BROWSER

0x00020000 Backup browser server

SV_TYPE_MASTER_BROWSER

0x00040000 Master browser server

SV_TYPE_DOMAIN_MASTER

0x00080000 Domain Master Browser server

SV_TYPE_LOCAL_LIST_ONLY

0x40000000 Enumerate only entries marked "local"

SV_TYPE_DOMAIN_ENUM

0x80000000 Enumerate Domains. The pszServer and pszDomain parameters must be NULL.


MSRPC over Transact Named Pipe

For details on the SMB Transact Named Pipe, see cifs6.txt


MSRPC Pipes

The MSRPC is conducted over an SMB Transact Pipe with a name of +\PIPE\. You must first obtain a 16 bit file handle, by +sending a SMBopenX with the pipe name \PIPE\srvsvc for +example. You can then perform an SMB Trans, +and must carry out an SMBclose on the file handle once you are finished.

Trans Requests must be sent with two setup UINT16s, no UINT16 params (none +known about), and UINT8 data parameters sufficient to contain the MSRPC +header, and MSRPC data. The first UINT16 setup parameter must be either +0x0026 to indicate an RPC, or 0x0001 to indicate Set Named Pipe Handle +state. The second UINT16 parameter must be the file handle for the pipe, +obtained above.

The Data section for an API Command of 0x0026 (RPC pipe) in the Trans +Request is the RPC Header, followed by the RPC Data. The Data section for +an API Command of 0x0001 (Set Named Pipe Handle state) is two bytes. The +only value seen for these two bytes is 0x00 0x43.

MSRPC Responses are sent as response data inside standard SMB Trans +responses, with the MSRPC Header, MSRPC Data and MSRPC tail.

It is suspected that the Trans Requests will need to be at least 2-byte +aligned (probably 4-byte). This is standard practice for SMBs. It is also +independent of the observed 4-byte alignments with the start of the MSRPC +header, including the 4-byte alignment between the MSRPC header and the +MSRPC data.

First, an SMBtconX connection is made to the IPC$ share. The connection +must be made using encrypted passwords, not clear-text. Then, an SMBopenX +is made on the pipe. Then, a Set Named Pipe Handle State must be sent, +after which the pipe is ready to accept API commands. Lastly, and SMBclose +is sent.

To be resolved:

lkcl/01nov97 there appear to be two additional bytes after the null-terminated \PIPE\ name for the RPC pipe. Values seen so far are +listed below:

        initial SMBopenX request:         RPC API command 0x26 params:
+        "\\PIPE\\lsarpc"                  0x65 0x63; 0x72 0x70; 0x44 0x65;
+        "\\PIPE\\srvsvc"                  0x73 0x76; 0x4E 0x00; 0x5C 0x43;


Header

[section to be rewritten, following receipt of work by Duncan Stansfield]

Interesting note: if you set packed data representation to 0x0100 0000 +then all 4-byte and 2-byte word ordering is turned around!

The start of each of the NTLSA and NETLOGON named pipes begins with:

offset: 00

Variable type: UINT8

Variable data: 5 - RPC major version

offset: 01

Variable type: UINT8

Variable data: 0 - RPC minor version

offset: 02

Variable type: UINT8

Variable data: 2 - RPC response packet

offset: 03

Variable type: UINT8

Variable data: 3 - (FirstFrag bit-wise or with LastFrag)

offset: 04

Variable type: UINT32

Variable data: 0x1000 0000 - packed data representation

offset: 08

Variable type: UINT16

Variable data: fragment length - data size (bytes) inc header and tail.

offset: 0A

Variable type: UINT16

Variable data: 0 - authentication length

offset: 0C

Variable type: UINT32

Variable data: call identifier. matches 12th UINT32 of incoming RPC data.

offset: 10

Variable type: UINT32

Variable data: allocation hint - data size (bytes) minus header and tail.

offset: 14

Variable type: UINT16

Variable data: 0 - presentation context identifier

offset: 16

Variable type: UINT8

Variable data: 0 - cancel count

offset: 17

Variable type: UINT8

Variable data: in replies: 0 - reserved; in requests: opnum - see #defines.

offset: 18

Variable type: ......

Variable data: start of data (goes on for allocation_hint bytes)


Interface identification

the interfaces are numbered. as yet I haven't seen more than one interface used on the same pipe name srvsvc

abstract (0x4B324FC8, 0x01D31670, 0x475A7812, 0x88E16EBF, 0x00000003)
+transfer (0x8A885D04, 0x11C91CEB, 0x0008E89F, 0x6048102B, 0x00000002)


RPC Bind / Bind Ack

RPC Binds are the process of associating an RPC pipe (e.g \PIPE\lsarpc) +with a "transfer syntax" (see RPC_Iface structure). The purpose for doing +this is unknown.

Note: The RPC_ResBind SMB Transact request is sent with two uint16 setup parameters. The first is 0x0026; the second is the file handle + returned by the SMBopenX Transact response.

Note: The RPC_ResBind members maxtsize, maxrsize and assocgid are the same in the response as the same members in the RPC_ReqBind. The + RPC_ResBind member transfersyntax is the same in the response as + the

Note: The RPC_ResBind response member secondaddr contains the name of what is presumed to be the service behind the RPC pipe. The + mapping identified so far is:

Note: The RPC_Packet fraglength member in both the Bind Request and Bind Acknowledgment must contain the length of the entire RPC data, including the RPC_Packet header.

Request:

RPC_Packet
RPC_ReqBind

Response:

RPC_Packet
RPC_ResBind


NTLSA Transact Named Pipe

The sequence of actions taken on this pipe are:

Establish a connection to the IPC$ share (SMBtconX). use encrypted passwords.
Open an RPC Pipe with the name "\\PIPE\\lsarpc". Store the file handle.
Using the file handle, send a Set Named Pipe Handle state to 0x4300.
Send an LSA Open Policy request. Store the Policy Handle.
Using the Policy Handle, send LSA Query Info Policy requests, etc.
Using the Policy Handle, send an LSA Close.
Close the IPC$ share.

Defines for this pipe, identifying the query are:


NETLOGON rpc Transact Named Pipe

The sequence of actions taken on this pipe are:

tablish a connection to the IPC$ share (SMBtconX). use encrypted passwords.
en an RPC Pipe with the name "\\PIPE\\NETLOGON". Store the file handle.
ing the file handle, send a Set Named Pipe Handle state to 0x4300.
eate Client Challenge. Send LSA Request Challenge. Store Server Challenge.
lculate Session Key. Send an LSA Auth 2 Challenge. Store Auth2 Challenge.
lc/Verify Client Creds. Send LSA Srv PW Set. Calc/Verify Server Creds.
lc/Verify Client Creds. Send LSA SAM Logon . Calc/Verify Server Creds.
lc/Verify Client Creds. Send LSA SAM Logoff. Calc/Verify Server Creds.
ose the IPC$ share.

Defines for this pipe, identifying the query are


LSA SAM Logon

Note: valid_user is True iff the username and password hash are valid for + the requested domain.


Response

if (valid_user)
+{
+	UINT16      3 - switch value indicating USER_INFO structure.
+    VOID*     non-zero - pointer to USER_INFO structure
+    USER_INFO user logon information
+
+    UINT32    1 - Authoritative response; 0 - Non-Auth?
+
+    return    0 - indicates success
+}
+else
+{
+	UINT16    0 - switch value.  value to indicate no user presumed.
+    VOID*     0x0000 0000 - indicates no USER_INFO structure.
+
+    UINT32    1 - Authoritative response; 0 - Non-Auth?
+
+    return    0xC000 0064 - NT_STATUS_NO_SUCH_USER.
+}


\\MAILSLOT\NET\NTLOGON

Note: mailslots will contain a response mailslot, to which the response + should be sent. the target NetBIOS name is REQUEST_NAME<20>, where + REQUEST_NAME is the name of the machine that sent the request.


SRVSVC Transact Named Pipe

Defines for this pipe, identifying the query are:


Cryptographic side of NT Domain Authentication


Protocol

C->S ReqChal,Cc S->C Cs

C & S compute session key Ks = E(PW[9..15],E(PW[0..6],Add(Cc,Cs)))

C: Rc = Cred(Ks,Cc) C->S Authenticate,Rc S: Rs = Cred(Ks,Cs), +assert(Rc == Cred(Ks,Cc)) S->C Rs C: assert(Rs == Cred(Ks,Cs))

On joining the domain the client will optionally attempt to change its +password and the domain controller may refuse to update it depending +on registry settings. This will also occur weekly afterwards.

C: Tc = Time(), Rc' = Cred(Ks,Rc+Tc) C->S ServerPasswordSet,Rc',Tc, +arc4(Ks[0..7,16],lmowf(randompassword()) C: Rc = Cred(Ks,Rc+Tc+1) S: +assert(Rc' == Cred(Ks,Rc+Tc)), Ts = Time() S: Rs' = Cred(Ks,Rs+Tc+1) +S->C Rs',Ts C: assert(Rs' == Cred(Ks,Rs+Tc+1)) S: Rs = Rs'

User: U with password P wishes to login to the domain (incidental data +such as workstation and domain omitted)

C: Tc = Time(), Rc' = Cred(Ks,Rc+Tc) C->S NetLogonSamLogon,Rc',Tc,U, +arc4(Ks[0..7,16],16,ntowf(P),16), arc4(Ks[0..7,16],16,lmowf(P),16) S: +assert(Rc' == Cred(Ks,Rc+Tc)) assert(passwords match those in SAM) S: +Ts = Time()

S->C Cred(Ks,Cred(Ks,Rc+Tc+1)),userinfo(logon script,UID,SIDs,etc) C: +assert(Rs == Cred(Ks,Cred(Rc+Tc+1)) C: Rc = Cred(Ks,Rc+Tc+1)


Comments

On first joining the domain the session key could be computed by +anyone listening in on the network as the machine password has a well +known value. Until the machine is rebooted it will use this session +key to encrypt NT and LM one way functions of passwords which are +password equivalents. Any user who logs in before the machine has been +rebooted a second time will have their password equivalent exposed. Of +course the new machine password is exposed at this time anyway.

None of the returned user info such as logon script, profile path and +SIDs *appear* to be protected by anything other than the TCP checksum.

The server time stamps appear to be ignored.

The client sends a ReturnAuthenticator in the SamLogon request which I +can't find a use for. However its time is used as the timestamp +returned by the server.

The password OWFs should NOT be sent over the network reversibly +encrypted. They should be sent using ARC4(Ks,md4(owf)) with the server +computing the same function using the owf values in the SAM.


SIDs and RIDs

SIDs and RIDs are well documented elsewhere.

A SID is an NT Security ID (see DOM_SID structure). They are of the form:

revision-NN-SubAuth1-SubAuth2-SubAuth3...
revision-0xNNNNNNNNNNNN-SubAuth1-SubAuth2-SubAuth3...

currently, the SID revision is 1. +The Sub-Authorities are known as Relative IDs (RIDs).


Well-known RIDS

A RID is a sub-authority value, as part of either a SID, or in the case +of Group RIDs, part of the DOM_GID structure, in the USER_INFO_1 +structure, in the LSA SAM Logon response.

\ No newline at end of file diff --git a/docs/htmldocs/Samba-HOWTO-Collection.html b/docs/htmldocs/Samba-HOWTO-Collection.html index ffb6939e17..71e27a2e80 100644 --- a/docs/htmldocs/Samba-HOWTO-Collection.html +++ b/docs/htmldocs/Samba-HOWTO-Collection.html @@ -1,10 +1,12 @@ + SAMBA Project Documentation

SAMBA Project Documentation

SAMBA Project Documentation

SAMBA Team

SAMBA Team

Abstract

Abstract

Last UpdateLast Update : Thu Aug 15 12:48:45 CDT 2002

This book is a collection of HOWTOs added to Samba documentation over the years. @@ -73,34 +68,34 @@ CLASS="TOC" >Table of Contents

1. How to Install and Test SAMBA
1.1. Step 0: Read the man pages
1.2. Step 1: Building the Binaries
1.3. Step 2: The all important step
1.4. Step 3: Create the smb configuration file.
1.5. Step 4: Test your config file with
1.6. Step 5: Starting the smbd and nmbd
1.6.1. Step 5a: Starting from inetd.conf
1.6.2. Step 5b. Alternative: starting it as a daemon
1.7. Step 6: Try listing the shares available on your server
1.8. Step 7: Try connecting with the unix client
1.9. Step 8: Try connecting from a DOS, WfWg, Win9x, WinNT, Win2k, OS/2, etc... client
1.10. What If Things Don't Work?
1.10.1. Diagnosing Problems
1.10.2. Scope IDs
1.10.3. Choosing the Protocol Level
1.10.4. Printing from UNIX to a Client PC
1.10.5. Locking
1.10.6. Mapping Usernames
2. Diagnosing your samba server
2.1. Introduction
2.2. Assumptions
2.3. Tests
2.3.1. Test 1
2.3.2. Test 2
2.3.3. Test 3
2.3.4. Test 4
2.3.5. Test 5
2.3.6. Test 6
2.3.7. Test 7
2.3.8. Test 8
2.3.9. Test 9
2.3.10. Test 10
2.3.11. Test 11
2.4. Still having troubles?
3. Integrating MS Windows networks with Samba
3.1. Agenda
3.2. Name Resolution in a pure Unix/Linux world
3.2.1. /etc/hosts
3.2.2. /etc/resolv.conf
3.2.3. /etc/host.conf
3.2.4. /etc/nsswitch.conf
3.3. Name resolution as used within MS Windows networking
3.3.1. The NetBIOS Name Cache
3.3.2. The LMHOSTS file
3.3.3. HOSTS file
3.3.4. DNS Lookup
3.3.5. WINS Lookup
3.4. How browsing functions and how to deploy stable and dependable browsing using Samba
3.5. MS Windows security options and how to configure Samba for seemless integration
3.5.1. Use MS Windows NT as an authentication server
3.5.2. Make Samba a member of an MS Windows NT security domain
3.5.3. Configure Samba as an authentication server
3.5.3.1. Users
3.5.3.2. MS Windows NT Machine Accounts
3.6. Conclusions
4. Configuring PAM for distributed but centrally managed authentication
4.1. Samba and PAM
4.2. Distributed Authentication
4.3. PAM Configuration in smb.conf
5. Hosting a Microsoft Distributed File System tree on Samba
5.1. Instructions
5.1.1. Notes
6. UNIX Permission Bits and Windows NT Access Control Lists
6.1. Viewing and changing UNIX permissions using the NT security dialogs
6.2. How to view file security on a Samba share
6.3. Viewing file ownership
6.4. Viewing file or directory permissions
6.4.1. File Permissions
6.4.2. Directory Permissions
6.5. Modifying file or directory permissions
6.6. Interaction with the standard Samba create mask parameters
6.7. Interaction with the standard Samba file attribute mapping
7. Printing Support in Samba 2.2.x
7.1. Introduction
7.2. Configuration
7.2.1. Creating [print$]
7.2.2. Setting Drivers for Existing Printers
7.2.3. Support a large number of printers
7.2.4. Adding New Printers via the Windows NT APW
7.2.5. Samba and Printer Ports
7.3. The Imprints Toolset
7.3.1. What is Imprints?
7.3.2. Creating Printer Driver Packages
7.3.3. The Imprints server
7.3.4. The Installation Client
7.4.
8. Debugging Printing Problems
8.1. Introduction
8.2. Debugging printer problems
8.3. What printers do I have?
8.4. Setting up printcap and print servers
8.5. Job sent, no output
8.6. Job sent, strange output
8.7. Raw PostScript printed
8.8. Advanced Printing
8.9. Real debugging
9. Security levels
9.1. Introduction
9.2. More complete description of security levels
10. security = domain in Samba 2.x
10.1. Joining an NT Domain with Samba 2.2
10.2. Samba and Windows 2000 Domains
10.3. Why is this better than security = server?
11. Unified Logons between Windows NT and UNIX using Winbind
11.1. Abstract
11.2. Introduction
11.3. What Winbind Provides
11.3.1. Target Uses
11.4. How Winbind Works
11.4.1. Microsoft Remote Procedure Calls
11.4.2. Name Service Switch
11.4.3. Pluggable Authentication Modules
11.4.4. User and Group ID Allocation
11.4.5. Result Caching
11.5. Installation and Configuration
11.5.1. Introduction
11.5.2. Requirements
11.5.3. Testing Things Out
11.5.3.1. Configure and compile SAMBA
11.5.3.2. Configure nsswitch.conf and the -winbind libraries
11.5.3.3. Configure smb.conf
11.5.3.4. Join the SAMBA server to the PDC domain
11.5.3.5. Start up the winbindd daemon and test it!
11.5.3.6. Fix the init.d startup scripts
11.5.3.7. Configure Winbind and PAM
11.6. Limitations
11.7. Conclusion
12. How to Configure Samba 2.2 as a Primary Domain Controller
12.1. Prerequisite Reading
12.2. Background
12.3. Configuring the Samba Domain Controller
12.4. Creating Machine Trust Accounts and Joining Clients to the Domain
12.4.1. Manual Creation of Machine Trust Accounts
12.4.2. "On-the-Fly" Creation of Machine Trust Accounts
12.4.3. Joining the Client to the Domain
12.5. Common Problems and Errors
12.6. System Policies and Profiles
12.7. What other help can I get?
12.8. Domain Control for Windows 9x/ME
12.8.1. Configuration Instructions: Network Logons
12.8.2. Configuration Instructions: Setting up Roaming User Profiles
12.8.2.1. Windows NT Configuration
12.8.2.2. Windows 9X Configuration
12.8.2.3. Win9X and WinNT Configuration
12.8.2.4. Windows 9X Profile Setup
12.8.2.5. Windows NT Workstation 4.0
12.8.2.6. Windows NT Server
12.8.2.7. Sharing Profiles between W95 and NT Workstation 4.0
12.9. DOMAIN_CONTROL.txt : Windows NT Domain Control & Samba
13. How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain
13.1. Prerequisite Reading
13.2. Background
13.3. What qualifies a Domain Controller on the network?
13.3.1. How does a Workstation find its domain controller?
13.3.2. When is the PDC needed?
13.4. Can Samba be a Backup Domain Controller?
13.5. How do I set up a Samba BDC?
13.5.1. How do I replicate the smbpasswd file?
14. Storing Samba's User/Machine Account information in an LDAP Directory
14.1. Purpose
14.2. Introduction
14.3. Supported LDAP Servers
14.4. Schema and Relationship to the RFC 2307 posixAccount
14.5. Configuring Samba with LDAP
14.5.1. OpenLDAP configuration
14.5.2. Configuring Samba
14.6. Accounts and Groups management
14.7. Security and sambaAccount
14.8. LDAP specials attributes for sambaAccounts
14.9. Example LDIF Entries for a sambaAccount
14.10. Comments
15. Improved browsing in samba
15.1. Overview of browsing
15.2. Browsing support in samba
15.3. Problem resolution
15.4. Browsing across subnets
15.4.1. How does cross subnet browsing work ?
15.5. Setting up a WINS server
15.6. Setting up Browsing in a WORKGROUP
15.7. Setting up Browsing in a DOMAIN
15.8. Forcing samba to be the master
15.9. Making samba the domain master
15.10. Note about broadcast addresses
15.11. Multiple interfaces
16. Samba performance issues
16.1. Comparisons
16.2. Oplocks
16.2.1. Overview
16.2.2. Level2 Oplocks
16.2.3. Old 'fake oplocks' option - deprecated
16.3. Socket options
16.4. Read size
16.5. Max xmit
16.6. Locking
16.7. Share modes
16.8. Log level
16.9. Wide lines
16.10. Read raw
16.11. Write raw
16.12. Read prediction
16.13. Memory mapping
16.14. Slow Clients
16.15. Slow Logins
16.16. Client tuning
16.17. My Results
17. OS2 Client HOWTOSamba and other CIFS clients
17.1. FAQsMacintosh clients?
OS2 Client
17.1.1. How can I configure OS/2 Warp Connect or OS/2 Warp 4 as a client for Samba?
17.1.2. How can I configure OS/2 Warp 3 (not Connect), OS/2 1.2, 1.3 or 2.x for Samba?
17.1.3. Are there any other issues when OS/2 (any version) is used as a client?
17.1.4. How do I get printer driver download working for OS/2 clients?
Windows for Workgroups
Use latest TCP/IP stack from Microsoft
Delete .pwl files after password change
Configure WfW password handling
Case handling of passwords
Windows '95/'98
Windows 2000 Service Pack 2
18. HOWTO Access Samba source code via CVS
18.1. Introduction
18.2. CVS Access to samba.org
18.2.1. Access via CVSweb
18.2.2. Access via cvs
19. Reporting Bugs
19.1. Introduction
19.2. General info
19.3. Debug levels
19.4. Internal errors
19.5. Attaching to a running process
19.6. Patches
IndexGroup mapping HOWTO
Portability
HPUX
SCO Unix
DNIX

Chapter 1. How to Install and Test SAMBA

How to Install and Test SAMBA

1.1. Step 0: Read the man pages

Step 0: Read the man pages

The man pages distributed with SAMBA contain lots of useful info that will help to get you started. @@ -1452,12 +1415,10 @@ TARGET="_top" >



1.2. Step 1: Building the Binaries

Step 1: Building the Binaries

To do this, first run the program



1.3. Step 2: The all important step

Step 2: The all important step

At this stage you must fetch yourself a coffee or other drink you find stimulating. Getting the rest @@ -1568,12 +1527,10 @@ NAME="AEN56" >



1.4. Step 3: Create the smb configuration file.

Step 3: Create the smb configuration file.

There are sample configuration files in the examples subdirectory in the distribution. I suggest you read them @@ -1633,16 +1590,14 @@ CLASS="FILENAME" >



1.6. Step 5: Starting the smbd and nmbd

Step 5: Starting the smbd and nmbd

You must choose to start smbd and nmbd either as daemons or from



1.6.1. Step 5a: Starting from inetd.conf

Step 5a: Starting from inetd.conf

NOTE; The following will be different if you use NIS or NIS+ to distributed services maps.



1.6.2. Step 5b. Alternative: starting it as a daemon

Step 5b. Alternative: starting it as a daemon

To start the server as a daemon you should create a script something like this one, perhaps calling @@ -1876,13 +1825,11 @@ CLASS="FILENAME" >



1.7. Step 6: Try listing the shares available on your - server

Step 6: Try listing the shares available on your + server



1.8. Step 7: Try connecting with the unix client

Step 7: Try connecting with the unix client



1.9. Step 8: Try connecting from a DOS, WfWg, Win9x, WinNT, - Win2k, OS/2, etc... client

Step 8: Try connecting from a DOS, WfWg, Win9x, WinNT, + Win2k, OS/2, etc... client

Try mounting disks. eg:



1.10. What If Things Don't Work?

What If Things Don't Work?

If nothing works and you start to think "who wrote this pile of trash" then I suggest you do step 2 again (and @@ -2052,12 +1993,10 @@ NAME="AEN174" easier.



1.10.1. Diagnosing Problems

Diagnosing Problems

If you have installation problems then go to



1.10.2. Scope IDs

Scope IDs

By default Samba uses a blank scope ID. This means all your windows boxes must also have a blank scope ID. @@ -2084,12 +2021,10 @@ NAME="AEN183" >



1.10.3. Choosing the Protocol Level

Choosing the Protocol Level

The SMB protocol has many dialects. Currently Samba supports 5, called CORE, COREPLUS, LANMAN1, @@ -2125,30 +2060,29 @@ CLASS="FILENAME" >



1.10.4. Printing from UNIX to a Client PC

Printing from UNIX to a Client PC

To use a printer that is available via a smb-based - server from a unix host you will need to compile the + server from a unix host with LPR you will need to compile the smbclient program. You then need to install the script "smbprint". Read the instruction in smbprint for more details.

There is also a SYSV style script that does much the same thing called smbprint.sysv. It contains instructions.

See the CUPS manual for information about setting up + printing from a unix host with CUPS to a smb-based server.



1.10.5. Locking

Locking

One area which sometimes causes trouble is locking.



1.10.6. Mapping Usernames

Mapping Usernames

If you have different usernames on the PCs and the unix server then take a look at the "username map" option. @@ -2220,17 +2152,13 @@ NAME="AEN208" CLASS="CHAPTER" >


Chapter 2. Diagnosing your samba server

Diagnosing your samba server

2.1. Introduction

Introduction

This file contains a list of tests you can perform to validate your Samba server. It also tells you what the likely cause of the problem @@ -2247,12 +2175,10 @@ ignore your email.



2.2. Assumptions

Assumptions

In all of the tests I assume you have a Samba server called BIGSERVER and a PC called ACLIENT both in workgroup TESTGROUP. I also assume the @@ -2297,20 +2223,16 @@ best way to check this is with "testparm smb.conf"



2.3. Tests

Tests

2.3.1. Test 1

Test 1

In the directory in which you store your smb.conf file, run the command "testparm smb.conf". If it reports any errors then your smb.conf @@ -2327,12 +2249,10 @@ CLASS="FILENAME" >



2.3.2. Test 2

Test 2

Run the command "ping BIGSERVER" from the PC and "ping ACLIENT" from the unix box. If you don't get a valid response then your TCP/IP @@ -2353,12 +2273,10 @@ this is done via the ipfwadm program.)



2.3.3. Test 3

Test 3

Run the command "smbclient -L BIGSERVER" on the unix box. You should get a list of available shares back.



2.3.4. Test 4

Test 4

Run the command "nmblookup -B BIGSERVER __SAMBA__". You should get the IP address of your Samba server back.



2.3.5. Test 5

Test 5

run the command



2.3.6. Test 6

Test 6

Run the command



2.3.7. Test 7

Test 7

Run the command



2.3.8. Test 8

Test 8

On the PC type the command



2.3.9. Test 9

Test 9

Run the command



2.3.10. Test 10

Test 10

Run the command



2.3.11. Test 11

Test 11

From file manager try to browse the server. Your samba server should appear in the browse list of your local workgroup (or the one you @@ -2745,12 +2647,10 @@ for encrypted passwords (refer to the Makefile).



2.4. Still having troubles?

Still having troubles?

Try the mailing list or newsgroup, or use the ethereal utility to sniff the problem. The official samba mailing list can be reached at @@ -2774,17 +2674,13 @@ TARGET="_top" CLASS="CHAPTER" >


Chapter 3. Integrating MS Windows networks with Samba

Integrating MS Windows networks with Samba

3.1. Agenda

Agenda

To identify the key functional mechanisms of MS Windows networking to enable the deployment of Samba as a means of extending and/or @@ -2846,12 +2742,10 @@ TYPE="a" >



3.2. Name Resolution in a pure Unix/Linux world

Name Resolution in a pure Unix/Linux world

The key configuration files covered in this section are:



3.2.1. /etc/hosts

Contains a static list of IP Addresses and names. eg:



3.2.2. /etc/resolv.conf

This file tells the name resolution libraries:



3.2.4. /etc/nsswitch.conf

This file controls the actual name resolution targets. The file typically has resolver object specifications as follows:



3.3. Name resolution as used within MS Windows networking

Name resolution as used within MS Windows networking

MS Windows networking is predicated about the name each machine is given. This name is known variously (and inconsistently) as @@ -3226,12 +3110,10 @@ Since we are primarily concerned with TCP/IP this demonstration is limited to this area.



3.3.1. The NetBIOS Name Cache

The NetBIOS Name Cache

All MS Windows machines employ an in memory buffer in which is stored the NetBIOS names and IP addresses for all external @@ -3253,12 +3135,10 @@ is called "nmblookup".



3.3.2. The LMHOSTS file

The LMHOSTS file

This file is usually located in MS Windows NT 4.0 or 2000 in



3.3.3. HOSTS file

HOSTS file

This file is usually located in MS Windows NT 4.0 or 2000 in



3.3.4. DNS Lookup

DNS Lookup

This capability is configured in the TCP/IP setup area in the network configuration facility. If enabled an elaborate name resolution sequence @@ -3407,12 +3283,10 @@ lookup is used.



3.3.5. WINS Lookup

WINS Lookup

A WINS (Windows Internet Name Server) service is the equivaent of the rfc1001/1002 specified NBNS (NetBIOS Name Server). A WINS server stores @@ -3468,13 +3342,11 @@ of the WINS server.



3.4. How browsing functions and how to deploy stable and -dependable browsing using Samba

How browsing functions and how to deploy stable and +dependable browsing using Samba

As stated above, MS Windows machines register their NetBIOS names (i.e.: the machine name for each service type in operation) on start @@ -3535,13 +3407,11 @@ and so on.



3.5. MS Windows security options and how to configure -Samba for seemless integration

MS Windows security options and how to configure +Samba for seemless integration

MS Windows clients may use encrypted passwords as part of a challenege/response authentication model (a.k.a. NTLMv1) or @@ -3657,8 +3527,9 @@ CLASS="PARAMETER" >password level must be set to the maximum -number of upper case letter which couldcould appear is a password. Note that is the server OS uses the traditional DES version of crypt(), then a



3.5.1. Use MS Windows NT as an authentication server

Use MS Windows NT as an authentication server

This method involves the additions of the following parameters in the smb.conf file:



3.5.2. Make Samba a member of an MS Windows NT security domain

Make Samba a member of an MS Windows NT security domain

This method involves additon of the following paramters in the smb.conf file:



3.5.3. Configure Samba as an authentication server

Configure Samba as an authentication server

This mode of authentication demands that there be on the Unix/Linux system both a Unix style account as well as an @@ -3840,12 +3705,10 @@ to be created for each user, as well as for each MS Windows NT/2000 machine. The following structure is required.



3.5.3.1. Users

Users

A user account that may provide a home directory should be created. The following Linux system commands are typical of @@ -3872,12 +3735,10 @@ CLASS="PROGRAMLISTING" >



3.5.3.2. MS Windows NT Machine Accounts

MS Windows NT Machine Accounts

These are required only when Samba is used as a domain controller. Refer to the Samba-PDC-HOWTO for more details.



3.6. Conclusions

Conclusions

Samba provides a flexible means to operate as...


Chapter 4. Configuring PAM for distributed but centrally -managed authentication

Configuring PAM for distributed but centrally +managed authentication

4.1. Samba and PAM

Samba and PAM

A number of Unix systems (eg: Sun Solaris), as well as the xxxxBSD family and Linux, now utilize the Pluggable Authentication @@ -4187,7 +4042,7 @@ password required /lib/security/pam_smbpass.so nodelay smbconf=/etc/samba. >

Note: PAM allows stacking of authentication mechanisms. It is -also possible to pass information obtained within on PAM module through +also possible to pass information obtained within one PAM module through to the next module in the PAM stack. Please refer to the documentation for your particular system implementation for details regarding the specific capabilities of PAM in this environment. Some Linux implmentations also @@ -4206,12 +4061,10 @@ PAM documentation for further helpful information.



4.2. Distributed Authentication

Distributed Authentication

The astute administrator will realize from this that the combination of



4.3. PAM Configuration in smb.conf

PAM Configuration in smb.conf

There is an option in smb.conf called


Chapter 5. Hosting a Microsoft Distributed File System tree on Samba

Hosting a Microsoft Distributed File System tree on Samba

5.1. Instructions

Instructions

The Distributed File System (or Dfs) provides a means of separating the logical view of files and directories that users @@ -4444,12 +4291,10 @@ CLASS="USERINPUT" takes users directly to the appropriate shares on the network.



5.1.1. Notes

Notes