diff --git a/Bugzilla.pm b/Bugzilla.pm index d54f97491df5b7bf4cdb170546f0a5e8e40f977c..12ae42bbae0a5938380582f3b7f01ed9406ef742 100644 --- a/Bugzilla.pm +++ b/Bugzilla.pm @@ -42,6 +42,7 @@ use Bugzilla::Auth::Persist::Cookie; use Bugzilla::CGI; use Bugzilla::DB; use Bugzilla::Install::Localconfig qw(read_localconfig); +use Bugzilla::JobQueue; use Bugzilla::Template; use Bugzilla::User; use Bugzilla::Error; @@ -51,6 +52,7 @@ use Bugzilla::Flag; use File::Basename; use File::Spec::Functions; +use DateTime::TimeZone; use Safe; # This creates the request cache for non-mod_perl installations. @@ -82,11 +84,14 @@ use constant SHUTDOWNHTML_EXIT_SILENTLY => [ sub init_page { (binmode STDOUT, ':utf8') if Bugzilla->params->{'utf8'}; - # Some environment variables are not taint safe - delete @::ENV{'PATH', 'IFS', 'CDPATH', 'ENV', 'BASH_ENV'}; - # Some modules throw undefined errors (notably File::Spec::Win32) if - # PATH is undefined. - $ENV{'PATH'} = ''; + + if (${^TAINT}) { + # Some environment variables are not taint safe + delete @::ENV{'PATH', 'IFS', 'CDPATH', 'ENV', 'BASH_ENV'}; + # Some modules throw undefined errors (notably File::Spec::Win32) if + # PATH is undefined. + $ENV{'PATH'} = ''; + } # IIS prints out warnings to the webpage, so ignore them, or log them # to a file if the file exists. @@ -311,6 +316,12 @@ sub logout_request { # there. Don't rely on it: use Bugzilla->user->login instead! } +sub job_queue { + my $class = shift; + $class->request_cache->{job_queue} ||= Bugzilla::JobQueue->new(); + return $class->request_cache->{job_queue}; +} + sub dbh { my $class = shift; # If we're not connected, then we must want the main db @@ -371,7 +382,7 @@ sub usage_mode { $class->request_cache->{usage_mode} = $newval; } return $class->request_cache->{usage_mode} - || Bugzilla::Constants::USAGE_MODE_BROWSER; + || (i_am_cgi()? USAGE_MODE_BROWSER : USAGE_MODE_CMDLINE); } sub installation_mode { @@ -458,6 +469,16 @@ sub hook_args { return $class->request_cache->{hook_args}; } +sub local_timezone { + my $class = shift; + + if (!defined $class->request_cache->{local_timezone}) { + $class->request_cache->{local_timezone} = + DateTime::TimeZone->new(name => 'local'); + } + return $class->request_cache->{local_timezone}; +} + sub request_cache { if ($ENV{MOD_PERL}) { require Apache2::RequestUtil; @@ -694,4 +715,16 @@ is unreadable or is not valid perl, we C<die>. If you are running inside a code hook (see L<Bugzilla::Hook>) this is how you get the arguments passed to the hook. +=item C<local_timezone> + +Returns the local timezone of the Bugzilla installation, +as a DateTime::TimeZone object. This detection is very time +consuming, so we cache this information for future references. + +=item C<job_queue> + +Returns a L<Bugzilla::JobQueue> that you can use for queueing jobs. +Will throw an error if job queueing is not correctly configured on +this Bugzilla installation. + =back diff --git a/Bugzilla/Attachment.pm b/Bugzilla/Attachment.pm index 314227c873302950359f99a8adfacc567fd20828..4aa74dcdfe308d08e1b8fb16a50dce35bf2aa129 100644 --- a/Bugzilla/Attachment.pm +++ b/Bugzilla/Attachment.pm @@ -28,23 +28,26 @@ package Bugzilla::Attachment; =head1 NAME -Bugzilla::Attachment - a file related to a bug that a user has uploaded - to the Bugzilla server +Bugzilla::Attachment - Bugzilla attachment class. =head1 SYNOPSIS use Bugzilla::Attachment; # Get the attachment with the given ID. - my $attachment = Bugzilla::Attachment->get($attach_id); + my $attachment = new Bugzilla::Attachment($attach_id); # Get the attachments with the given IDs. - my $attachments = Bugzilla::Attachment->get_list($attach_ids); + my $attachments = Bugzilla::Attachment->new_from_list($attach_ids); =head1 DESCRIPTION -This module defines attachment objects, which represent files related to bugs -that users upload to the Bugzilla server. +Attachment.pm represents an attachment object. It is an implementation +of L<Bugzilla::Object>, and thus provides all methods that +L<Bugzilla::Object> provides. + +The methods that are specific to C<Bugzilla::Attachment> are listed +below. =cut @@ -55,60 +58,37 @@ use Bugzilla::User; use Bugzilla::Util; use Bugzilla::Field; -sub get { - my $invocant = shift; - my $id = shift; - - my $attachments = _retrieve([$id]); - my $self = $attachments->[0]; - bless($self, ref($invocant) || $invocant) if $self; +use base qw(Bugzilla::Object); - return $self; -} +############################### +#### Initialization #### +############################### -sub get_list { - my $invocant = shift; - my $ids = shift; +use constant DB_TABLE => 'attachments'; +use constant ID_FIELD => 'attach_id'; +use constant LIST_ORDER => ID_FIELD; - my $attachments = _retrieve($ids); - foreach my $attachment (@$attachments) { - bless($attachment, ref($invocant) || $invocant); - } +sub DB_COLUMNS { + my $dbh = Bugzilla->dbh; - return $attachments; + return qw( + attach_id + bug_id + description + filename + isobsolete + ispatch + isprivate + isurl + mimetype + modification_time + submitter_id), + $dbh->sql_date_format('attachments.creation_ts', '%Y.%m.%d %H:%i') . ' AS creation_ts'; } -sub _retrieve { - my ($ids) = @_; - - return [] if scalar(@$ids) == 0; - - my @columns = ( - 'attachments.attach_id AS id', - 'attachments.bug_id AS bug_id', - 'attachments.description AS description', - 'attachments.mimetype AS contenttype', - 'attachments.submitter_id AS attacher_id', - Bugzilla->dbh->sql_date_format('attachments.creation_ts', - '%Y.%m.%d %H:%i') . " AS attached", - 'attachments.modification_time', - 'attachments.filename AS filename', - 'attachments.ispatch AS ispatch', - 'attachments.isurl AS isurl', - 'attachments.isobsolete AS isobsolete', - 'attachments.isprivate AS isprivate' - ); - my $columns = join(", ", @columns); - my $dbh = Bugzilla->dbh; - my $records = $dbh->selectall_arrayref( - "SELECT $columns - FROM attachments - WHERE " - . Bugzilla->dbh->sql_in('attach_id', $ids) - . " ORDER BY attach_id", - { Slice => {} }); - return $records; -} +############################### +#### Accessors ###### +############################### =pod @@ -116,34 +96,35 @@ sub _retrieve { =over -=item C<id> +=item C<bug_id> -the unique identifier for the attachment +the ID of the bug to which the attachment is attached =back =cut -sub id { +sub bug_id { my $self = shift; - return $self->{id}; + return $self->{bug_id}; } =over -=item C<bug_id> +=item C<bug> -the ID of the bug to which the attachment is attached +the bug object to which the attachment is attached =back =cut -# XXX Once Bug.pm slims down sufficiently this should become a reference -# to a bug object. -sub bug_id { +sub bug { my $self = shift; - return $self->{bug_id}; + + require Bugzilla::Bug; + $self->{bug} = Bugzilla::Bug->new($self->bug_id); + return $self->{bug}; } =over @@ -173,7 +154,7 @@ the attachment's MIME media type sub contenttype { my $self = shift; - return $self->{contenttype}; + return $self->{mimetype}; } =over @@ -189,7 +170,7 @@ the user who attached the attachment sub attacher { my $self = shift; return $self->{attacher} if exists $self->{attacher}; - $self->{attacher} = new Bugzilla::User($self->{attacher_id}); + $self->{attacher} = new Bugzilla::User($self->{submitter_id}); return $self->{attacher}; } @@ -205,7 +186,7 @@ the date and time on which the attacher attached the attachment sub attached { my $self = shift; - return $self->{attached}; + return $self->{creation_ts}; } =over @@ -351,7 +332,7 @@ sub data { FROM attach_data WHERE id = ?", undef, - $self->{id}); + $self->id); # If there's no attachment data in the database, the attachment is stored # in a local file, so retrieve it from there. @@ -396,7 +377,7 @@ sub datasize { Bugzilla->dbh->selectrow_array("SELECT LENGTH(thedata) FROM attach_data WHERE id = ?", - undef, $self->{id}) || 0; + undef, $self->id) || 0; # If there's no attachment data in the database, either the attachment # is stored in a local file, and so retrieve its size from the file, @@ -430,6 +411,34 @@ sub flags { return $self->{flags}; } +=over + +=item C<flag_types> + +Return all flag types available for this attachment as well as flags +already set, grouped by flag type. + +=back + +=cut + +sub flag_types { + my $self = shift; + return $self->{flag_types} if exists $self->{flag_types}; + + my $vars = { target_type => 'attachment', + product_id => $self->bug->product_id, + component_id => $self->bug->component_id, + attach_id => $self->id }; + + $self->{flag_types} = Bugzilla::Flag::_flag_types($vars); + return $self->{flag_types}; +} + +############################### +#### Validators ###### +############################### + # Instance methods; no POD documentation here yet because the only ones so far # are private. @@ -465,9 +474,7 @@ sub _validate_filename { sub _validate_data { my ($throw_error, $hr_vars) = @_; my $cgi = Bugzilla->cgi; - my $maxsize = $cgi->param('ispatch') ? Bugzilla->params->{'maxpatchsize'} - : Bugzilla->params->{'maxattachmentsize'}; - $maxsize *= 1024; # Convert from K + my $fh; # Skip uploading into a local variable if the user wants to upload huge # attachments into local files. @@ -505,6 +512,7 @@ sub _validate_data { } # Make sure the attachment does not exceed the maximum permitted size + my $maxsize = Bugzilla->params->{'maxattachmentsize'} * 1024; # Convert from K my $len = $data ? length($data) : 0; if ($maxsize && $len > $maxsize) { my $vars = { filesize => sprintf("%.0f", $len/1024) }; @@ -538,7 +546,7 @@ Returns: a reference to an array of attachment objects. =cut sub get_attachments_by_bug { - my ($class, $bug_id) = @_; + my ($class, $bug_id, $vars) = @_; my $user = Bugzilla->user; my $dbh = Bugzilla->dbh; @@ -555,7 +563,25 @@ sub get_attachments_by_bug { my $attach_ids = $dbh->selectcol_arrayref("SELECT attach_id FROM attachments WHERE bug_id = ? $and_restriction", undef, @values); - my $attachments = Bugzilla::Attachment->get_list($attach_ids); + + my $attachments = Bugzilla::Attachment->new_from_list($attach_ids); + + # To avoid $attachment->flags to run SQL queries itself for each + # attachment listed here, we collect all the data at once and + # populate $attachment->{flags} ourselves. + if ($vars->{preload}) { + $_->{flags} = [] foreach @$attachments; + my %att = map { $_->id => $_ } @$attachments; + + my $flags = Bugzilla::Flag->match({ bug_id => $bug_id, + target_type => 'attachment' }); + + # Exclude flags for private attachments you cannot see. + @$flags = grep {exists $att{$_->attach_id}} @$flags; + + push(@{$att{$_->attach_id}->{flags}}, $_) foreach @$flags; + $attachments = [sort {$a->id <=> $b->id} values %att]; + } return $attachments; } @@ -715,10 +741,9 @@ sub validate_obsolete { detaint_natural($attachid) || ThrowCodeError('invalid_attach_id_to_obsolete', $vars); - my $attachment = Bugzilla::Attachment->get($attachid); - # Make sure the attachment exists in the database. - ThrowUserError('invalid_attach_id', $vars) unless $attachment; + my $attachment = new Bugzilla::Attachment($attachid) + || ThrowUserError('invalid_attach_id', $vars); # Check that the user can view and edit this attachment. $attachment->validate_can_edit($bug->product_id); @@ -740,10 +765,13 @@ sub validate_obsolete { return @obsolete_attachments; } +############################### +#### Constructors ##### +############################### =pod -=item C<insert_attachment_for_bug($throw_error, $bug, $user, $timestamp, $hr_vars)> +=item C<create($throw_error, $bug, $user, $timestamp, $hr_vars)> Description: inserts an attachment from CGI input for the given bug. @@ -760,7 +788,8 @@ Returns: the ID of the new attachment. =cut -sub insert_attachment_for_bug { +# FIXME: needs to follow the way Object->create() works. +sub create { my ($class, $throw_error, $bug, $user, $timestamp, $hr_vars) = @_; my $cgi = Bugzilla->cgi; @@ -903,7 +932,7 @@ sub insert_attachment_for_bug { $timestamp, $fieldid, 0, 1)); } - my $attachment = Bugzilla::Attachment->get($attachid); + my $attachment = new Bugzilla::Attachment($attachid); # 1. Add flags, if any. To avoid dying if something goes wrong # while processing flags, we will eval() flag validation. diff --git a/Bugzilla/Attachment/CVS/Entries b/Bugzilla/Attachment/CVS/Entries index 2c09732ea8c5c195930bc26523fb8ed7eee81208..5366bba7f87042e9587b69967f47d4c61ee6c120 100644 --- a/Bugzilla/Attachment/CVS/Entries +++ b/Bugzilla/Attachment/CVS/Entries @@ -1,2 +1,2 @@ -/PatchReader.pm/1.5.2.1/Sun Jun 29 17:38:03 2008//TBUGZILLA-3_2_1 +/PatchReader.pm/1.6/Sun Jun 29 17:35:28 2008//TBUGZILLA-3_3_1 D diff --git a/Bugzilla/Attachment/CVS/Tag b/Bugzilla/Attachment/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/Attachment/CVS/Tag +++ b/Bugzilla/Attachment/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Auth.pm b/Bugzilla/Auth.pm index 8e18f8699892667e85ad12c9748c4bc52a38672c..74678afa8b77ba2c86ee6f9daece445569f69cbc 100644 --- a/Bugzilla/Auth.pm +++ b/Bugzilla/Auth.pm @@ -151,17 +151,23 @@ sub _handle_login_result { ThrowCodeError($result->{error}, $result->{details}); } elsif ($fail_code == AUTH_NODATA) { - $self->{_info_getter}->fail_nodata($self) - if $login_type == LOGIN_REQUIRED; - - # If we're not LOGIN_REQUIRED, we just return the default user. + if ($login_type == LOGIN_REQUIRED) { + # This seems like as good as time as any to get rid of + # old crufty junk in the logincookies table. Get rid + # of any entry that hasn't been used in a month. + $dbh->do("DELETE FROM logincookies WHERE " . + $dbh->sql_to_days('NOW()') . " - " . + $dbh->sql_to_days('lastused') . " > 30"); + $self->{_info_getter}->fail_nodata($self); + } + # Otherwise, we just return the "default" user. $user = Bugzilla->user; } # The username/password may be wrong # Don't let the user know whether the username exists or whether # the password was just wrong. (This makes it harder for a cracker # to find account names by brute force) - elsif ($fail_code == AUTH_LOGINFAILED or $fail_code == AUTH_NO_SUCH_USER) { + elsif (($fail_code == AUTH_LOGINFAILED) || ($fail_code == AUTH_NO_SUCH_USER)) { ThrowUserError("invalid_username_or_password"); } # The account may be disabled diff --git a/Bugzilla/Auth/CVS/Entries b/Bugzilla/Auth/CVS/Entries index 8162108e8a7079478bb4fc001db881fb4ee2653c..c964647d9ceb4080702f158256d08b90fccd07c1 100644 --- a/Bugzilla/Auth/CVS/Entries +++ b/Bugzilla/Auth/CVS/Entries @@ -1,5 +1,5 @@ -/Login.pm/1.1/Fri May 12 02:41:05 2006//TBUGZILLA-3_2_1 -/Verify.pm/1.7/Wed May 23 18:05:49 2007//TBUGZILLA-3_2_1 +/Login.pm/1.1/Fri May 12 02:41:05 2006//TBUGZILLA-3_3_1 +/Verify.pm/1.7/Wed May 23 18:05:49 2007//TBUGZILLA-3_3_1 D/Login//// D/Persist//// D/Verify//// diff --git a/Bugzilla/Auth/CVS/Tag b/Bugzilla/Auth/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/Auth/CVS/Tag +++ b/Bugzilla/Auth/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Auth/Login/CVS/Entries b/Bugzilla/Auth/Login/CVS/Entries index bf5f46c0b897912edfe2e80c3f7c25b909447abe..ef36b106f777920c218223bf4fbe1399fe3b62c8 100644 --- a/Bugzilla/Auth/Login/CVS/Entries +++ b/Bugzilla/Auth/Login/CVS/Entries @@ -1,5 +1,5 @@ -/CGI.pm/1.8.2.4/Sat Oct 4 20:04:50 2008//TBUGZILLA-3_2_1 -/Cookie.pm/1.5/Wed Jul 5 23:42:47 2006//TBUGZILLA-3_2_1 -/Env.pm/1.4/Mon Jul 3 21:42:46 2006//TBUGZILLA-3_2_1 -/Stack.pm/1.1/Fri May 12 02:41:06 2006//TBUGZILLA-3_2_1 +/CGI.pm/1.12/Sat Oct 4 20:03:15 2008//TBUGZILLA-3_3_1 +/Cookie.pm/1.5/Wed Jul 5 23:42:47 2006//TBUGZILLA-3_3_1 +/Env.pm/1.4/Mon Jul 3 21:42:46 2006//TBUGZILLA-3_3_1 +/Stack.pm/1.2/Wed Aug 6 23:38:24 2008//TBUGZILLA-3_3_1 D diff --git a/Bugzilla/Auth/Login/CVS/Tag b/Bugzilla/Auth/Login/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/Auth/Login/CVS/Tag +++ b/Bugzilla/Auth/Login/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Auth/Login/Stack.pm b/Bugzilla/Auth/Login/Stack.pm index d5100386141e65847b224e46fe31c6f4b9275938..ab9a93bce99bc508d122c611ccc58cbbc664b14b 100644 --- a/Bugzilla/Auth/Login/Stack.pm +++ b/Bugzilla/Auth/Login/Stack.pm @@ -26,16 +26,24 @@ use fields qw( _stack successful ); +use Hash::Util qw(lock_keys); +use Bugzilla::Hook; sub new { my $class = shift; my $self = $class->SUPER::new(@_); my $list = shift; + my %methods = map { $_ => "Bugzilla/Auth/Login/$_.pm" } split(',', $list); + lock_keys(%methods); + Bugzilla::Hook::process('auth-login_methods', { modules => \%methods }); + $self->{_stack} = []; - foreach my $login_method (split(',', $list)) { - require "Bugzilla/Auth/Login/${login_method}.pm"; - push(@{$self->{_stack}}, - "Bugzilla::Auth::Login::$login_method"->new(@_)); + foreach my $login_method (keys %methods) { + my $module = $methods{$login_method}; + require $module; + $module =~ s|/|::|g; + $module =~ s/.pm$//; + push(@{$self->{_stack}}, $module->new(@_)); } return $self; } diff --git a/Bugzilla/Auth/Persist/CVS/Entries b/Bugzilla/Auth/Persist/CVS/Entries index 2263310f073caa570a733b4f26e65cd811c13325..cfa747072f019f6e40e4dd91588ea459ba6ebf48 100644 --- a/Bugzilla/Auth/Persist/CVS/Entries +++ b/Bugzilla/Auth/Persist/CVS/Entries @@ -1,2 +1,2 @@ -/Cookie.pm/1.5.4.3/Tue Jan 20 20:10:08 2009//TBUGZILLA-3_2_1 +/Cookie.pm/1.7/Wed Aug 27 01:08:50 2008//TBUGZILLA-3_3_1 D diff --git a/Bugzilla/Auth/Persist/CVS/Tag b/Bugzilla/Auth/Persist/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/Auth/Persist/CVS/Tag +++ b/Bugzilla/Auth/Persist/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Auth/Persist/Cookie.pm b/Bugzilla/Auth/Persist/Cookie.pm index 420bad16b0683a014e6e44081a24471c0c168745..9098f8989b70dc5ed65f116eeddd54a71956da01 100644 --- a/Bugzilla/Auth/Persist/Cookie.pm +++ b/Bugzilla/Auth/Persist/Cookie.pm @@ -60,8 +60,6 @@ sub persist_login { # subsequent login trick_taint($ip_addr); - $dbh->bz_start_transaction(); - my $login_cookie = Bugzilla::Token::GenerateUniqueToken('logincookies', 'cookie'); @@ -69,13 +67,6 @@ sub persist_login { VALUES (?, ?, ?, NOW())", undef, $login_cookie, $user->id, $ip_addr); - # Issuing a new cookie is a good time to clean up the old - # cookies. - $dbh->do("DELETE FROM logincookies WHERE lastused < LOCALTIMESTAMP(0) - " - . $dbh->sql_interval(MAX_LOGINCOOKIE_AGE, 'DAY')); - - $dbh->bz_commit_transaction(); - # Prevent JavaScript from accessing login cookies. my %cookieargs = ('-httponly' => 1); diff --git a/Bugzilla/Auth/Verify/CVS/Entries b/Bugzilla/Auth/Verify/CVS/Entries index d4138cd637e81b86676ab35f38f20e1d7a074dbc..bc58d19721e9232c56637bf1e6e34f5e01626ea7 100644 --- a/Bugzilla/Auth/Verify/CVS/Entries +++ b/Bugzilla/Auth/Verify/CVS/Entries @@ -1,5 +1,5 @@ -/DB.pm/1.7.4.1/Fri Sep 12 15:12:20 2008//TBUGZILLA-3_2_1 -/LDAP.pm/1.17.2.1/Mon Oct 20 18:37:38 2008//TBUGZILLA-3_2_1 -/RADIUS.pm/1.1/Thu Aug 2 22:38:37 2007//TBUGZILLA-3_2_1 -/Stack.pm/1.1/Fri May 12 02:41:14 2006//TBUGZILLA-3_2_1 +/DB.pm/1.10/Fri Jan 2 09:11:50 2009//TBUGZILLA-3_3_1 +/LDAP.pm/1.18/Mon Oct 20 18:35:51 2008//TBUGZILLA-3_3_1 +/RADIUS.pm/1.1/Thu Aug 2 22:38:37 2007//TBUGZILLA-3_3_1 +/Stack.pm/1.2/Wed Aug 6 23:38:25 2008//TBUGZILLA-3_3_1 D diff --git a/Bugzilla/Auth/Verify/CVS/Tag b/Bugzilla/Auth/Verify/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/Auth/Verify/CVS/Tag +++ b/Bugzilla/Auth/Verify/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Auth/Verify/DB.pm b/Bugzilla/Auth/Verify/DB.pm index f2c008dbf1e5718eb107308fe80840a92b1493c3..695671a31b054c79a3e18bb151f752146b82e296 100644 --- a/Bugzilla/Auth/Verify/DB.pm +++ b/Bugzilla/Auth/Verify/DB.pm @@ -53,14 +53,9 @@ sub check_credentials { "SELECT cryptpassword FROM profiles WHERE userid = ?", undef, $user_id); - # Wide characters cause crypt to die - if (Bugzilla->params->{'utf8'}) { - utf8::encode($password) if utf8::is_utf8($password); - } - # Using the internal crypted password as the salt, # crypt the password the user entered. - my $entered_password_crypted = crypt($password, $real_password_crypted); + my $entered_password_crypted = bz_crypt($password, $real_password_crypted); return { failure => AUTH_LOGINFAILED } if $entered_password_crypted ne $real_password_crypted; @@ -69,6 +64,16 @@ sub check_credentials { # password tokens they may have generated. Bugzilla::Token::DeletePasswordTokens($user_id, "user_logged_in"); + # If their old password was using crypt() or some different hash + # than we're using now, convert the stored password to using + # whatever hashing system we're using now. + my $current_algorithm = PASSWORD_DIGEST_ALGORITHM; + if ($real_password_crypted !~ /{\Q$current_algorithm\E}$/) { + my $new_crypted = bz_crypt($password); + $dbh->do('UPDATE profiles SET cryptpassword = ? WHERE userid = ?', + undef, $new_crypted, $user_id); + } + return $login_data; } diff --git a/Bugzilla/Auth/Verify/Stack.pm b/Bugzilla/Auth/Verify/Stack.pm index 577b5a22f18f768c7be73a96b06f0c7b0deb4f53..0ddb9a441d61e6ff62d1ad4f08ec3d9b85f3cb00 100644 --- a/Bugzilla/Auth/Verify/Stack.pm +++ b/Bugzilla/Auth/Verify/Stack.pm @@ -21,16 +21,24 @@ use fields qw( _stack successful ); +use Hash::Util qw(lock_keys); +use Bugzilla::Hook; sub new { my $class = shift; my $list = shift; my $self = $class->SUPER::new(@_); + my %methods = map { $_ => "Bugzilla/Auth/Verify/$_.pm" } split(',', $list); + lock_keys(%methods); + Bugzilla::Hook::process('auth-verify_methods', { modules => \%methods }); + $self->{_stack} = []; - foreach my $verify_method (split(',', $list)) { - require "Bugzilla/Auth/Verify/${verify_method}.pm"; - push(@{$self->{_stack}}, - "Bugzilla::Auth::Verify::$verify_method"->new(@_)); + foreach my $verify_method (keys %methods) { + my $module = $methods{$verify_method}; + require $module; + $module =~ s|/|::|g; + $module =~ s/.pm$//; + push(@{$self->{_stack}}, $module->new(@_)); } return $self; } diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 7f2b8d84b9b5fa5ffd88d450ab8dade25d057d6f..cfc01ba7b6022f138c52a7a823a42a1173a707ff 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -50,11 +50,10 @@ use Storable qw(dclone); use base qw(Bugzilla::Object Exporter); @Bugzilla::Bug::EXPORT = qw( - bug_alias_to_id ValidateBugID + bug_alias_to_id RemoveVotes CheckIfVotedConfirmed LogActivityEntry editable_bug_fields - SPECIAL_STATUS_WORKFLOW_ACTIONS ); ##################################################################### @@ -72,7 +71,8 @@ sub DB_COLUMNS { my @custom = grep {$_->type != FIELD_TYPE_MULTI_SELECT} Bugzilla->active_custom_fields; my @custom_names = map {$_->name} @custom; - return qw( + + my @columns = (qw( alias assigned_to bug_file_loc @@ -100,7 +100,11 @@ sub DB_COLUMNS { 'reporter AS reporter_id', $dbh->sql_date_format('creation_ts', '%Y.%m.%d %H:%i') . ' AS creation_ts', $dbh->sql_date_format('deadline', '%Y-%m-%d') . ' AS deadline', - @custom_names; + @custom_names); + + Bugzilla::Hook::process("bug-columns", { columns => \@columns }); + + return @columns; } use constant REQUIRED_CREATE_FIELDS => qw( @@ -145,6 +149,9 @@ sub VALIDATORS { elsif ($field->type == FIELD_TYPE_FREETEXT) { $validator = \&_check_freetext_field; } + elsif ($field->type == FIELD_TYPE_BUG_ID) { + $validator = \&_check_bugid_field; + } else { $validator = \&_check_default_field; } @@ -223,13 +230,6 @@ use constant UPDATE_COMMENT_COLUMNS => qw( # activity table. use constant MAX_LINE_LENGTH => 254; -use constant SPECIAL_STATUS_WORKFLOW_ACTIONS => qw( - none - duplicate - change_resolution - clearresolution -); - ##################################################################### sub new { @@ -237,6 +237,11 @@ sub new { my $class = ref($invocant) || $invocant; my $param = shift; + # Remove leading "#" mark if we've just been passed an id. + if (!ref $param && $param =~ /^#(\d+)$/) { + $param = $1; + } + # If we get something that looks like a word (not a number), # make it the "name" param. if (!defined $param || (!ref($param) && $param !~ /^\d+$/)) { @@ -261,15 +266,66 @@ sub new { # if the bug wasn't found in the database. if (!$self) { my $error_self = {}; + if (ref $param) { + $error_self->{bug_id} = $param->{name}; + $error_self->{error} = 'InvalidBugId'; + } + else { + $error_self->{bug_id} = $param; + $error_self->{error} = 'NotFound'; + } bless $error_self, $class; - $error_self->{'bug_id'} = ref($param) ? $param->{name} : $param; - $error_self->{'error'} = 'NotFound'; return $error_self; } return $self; } +sub check { + my $class = shift; + my ($id, $field) = @_; + + ThrowUserError('improper_bug_id_field_value', { field => $field }) unless defined $id; + + # Bugzilla::Bug throws lots of special errors, so we don't call + # SUPER::check, we just call our new and do our own checks. + my $self = $class->new(trim($id)); + # For error messages, use the id that was returned by new(), because + # it's cleaned up. + $id = $self->id; + + if ($self->{error}) { + if ($self->{error} eq 'NotFound') { + ThrowUserError("bug_id_does_not_exist", { bug_id => $id }); + } + if ($self->{error} eq 'InvalidBugId') { + ThrowUserError("improper_bug_id_field_value", + { bug_id => $id, + field => $field }); + } + } + + unless ($field && $field =~ /^(dependson|blocked|dup_id)$/) { + $self->check_is_visible; + } + return $self; +} + +sub check_is_visible { + my $self = shift; + my $user = Bugzilla->user; + + if (!$user->can_see_bug($self->id)) { + # The error the user sees depends on whether or not they are + # logged in (i.e. $user->id contains the user's positive integer ID). + if ($user->id) { + ThrowUserError("bug_access_denied", { bug_id => $self->id }); + } else { + ThrowUserError("bug_access_query", { bug_id => $self->id }); + } + } +} + # Docs for create() (there's no POD in this file yet, but we very # much need this documented right now): # @@ -490,6 +546,33 @@ sub run_create_validators { return $params; } +sub set_all { + my ($self, $args) = @_; + + # For security purposes, and because lots of other checks depend on it, + # we set the product first before anything else. + my $product_change = 0; + if ($args->{product}) { + my $changed = $self->set_product($args->{product}, + { component => $args->{component}, + version => $args->{version}, + target_milestone => $args->{target_milestone}, + change_confirmed => $args->{confirm_product_change}, + other_bugs => $args->{other_bugs}, + }); + # that will be used later to check strict isolation + $product_change = $changed; + } + + # add/remove groups + $self->remove_group($_) foreach @{$args->{remove_group}}; + $self->add_group($_) foreach @{$args->{add_group}}; + + # this is temporary until all related code is moved from + # process_bug.cgi to set_all + return $product_change; +} + sub update { my $self = shift; @@ -498,8 +581,7 @@ sub update { # inside this function. my $delta_ts = shift || $dbh->selectrow_array("SELECT NOW()"); - my $old_bug = $self->new($self->id); - my $changes = $self->SUPER::update(@_); + my ($changes, $old_bug) = $self->SUPER::update(@_); # Certain items in $changes have to be fixed so that they hold # a name instead of an ID. @@ -785,7 +867,6 @@ sub remove_from_db { # - keywords # - longdescs # - votes - # Also included are custom multi-select fields. # Also, the attach_data table uses attachments.attach_id as a foreign # key, and so indirectly depends on a bug deletion too. @@ -818,13 +899,6 @@ sub remove_from_db { $dbh->do("DELETE FROM bugs WHERE bug_id = ?", undef, $bug_id); $dbh->do("DELETE FROM longdescs WHERE bug_id = ?", undef, $bug_id); - # Delete entries from custom multi-select fields. - my @multi_selects = Bugzilla->get_fields({custom => 1, type => FIELD_TYPE_MULTI_SELECT}); - - foreach my $field (@multi_selects) { - $dbh->do("DELETE FROM bug_" . $field->name . " WHERE bug_id = ?", undef, $bug_id); - } - $dbh->bz_commit_transaction(); # The bugs_fulltext table doesn't support transactions. @@ -1082,11 +1156,13 @@ sub _check_dependencies { my %deps_in = (dependson => $depends_on || '', blocked => $blocks || ''); foreach my $type qw(dependson blocked) { - my @bug_ids = split(/[\s,]+/, $deps_in{$type}); + my @bug_ids = ref($deps_in{$type}) + ? @{$deps_in{$type}} + : split(/[\s,]+/, $deps_in{$type}); # Eliminate nulls. @bug_ids = grep {$_} @bug_ids; - # We do Validate up here to make sure all aliases are converted to IDs. - ValidateBugID($_, $type) foreach @bug_ids; + # We do this up here to make sure all aliases are converted to IDs. + @bug_ids = map { $invocant->check($_, $type)->id } @bug_ids; my @check_access = @bug_ids; # When we're updating a bug, only added or removed bug_ids are @@ -1108,11 +1184,10 @@ sub _check_dependencies { my $user = Bugzilla->user; foreach my $modified_id (@check_access) { - ValidateBugID($modified_id); + my $delta_bug = $invocant->check($modified_id); # Under strict isolation, you can't modify a bug if you can't # edit it, even if you can see it. if (Bugzilla->params->{"strict_isolation"}) { - my $delta_bug = new Bugzilla::Bug($modified_id); if (!$user->can_edit_product($delta_bug->{'product_id'})) { ThrowUserError("illegal_change_deps", {field => $type}); } @@ -1135,17 +1210,18 @@ sub _check_dup_id { $dupe_of = trim($dupe_of); $dupe_of || ThrowCodeError('undefined_field', { field => 'dup_id' }); - # Validate the bug ID. The second argument will force ValidateBugID() to - # only make sure that the bug exists, and convert the alias to the bug ID + # Validate the bug ID. The second argument will force check() to only + # make sure that the bug exists, and convert the alias to the bug ID # if a string is passed. Group restrictions are checked below. - ValidateBugID($dupe_of, 'dup_id'); + my $dupe_of_bug = $self->check($dupe_of, 'dup_id'); + $dupe_of = $dupe_of_bug->id; # If the dupe is unchanged, we have nothing more to check. return $dupe_of if ($self->dup_id && $self->dup_id == $dupe_of); # If we come here, then the duplicate is new. We have to make sure # that we can view/change it (issue A on bug 96085). - check_is_visible($dupe_of); + $dupe_of_bug->check_is_visible; # Make sure a loop isn't created when marking this bug # as duplicate. @@ -1177,7 +1253,6 @@ sub _check_dup_id { # Should we add the reporter to the CC list of the new bug? # If he can see the bug... if ($self->reporter->can_see_bug($dupe_of)) { - my $dupe_of_bug = new Bugzilla::Bug($dupe_of); # We only add him if he's not the reporter of the other bug. $self->{_add_dup_cc} = 1 if $dupe_of_bug->reporter->id != $self->reporter->id; @@ -1202,9 +1277,7 @@ sub _check_dup_id { my $vars = {}; my $template = Bugzilla->template; # Ask the user what they want to do about the reporter. - $vars->{'cclist_accessible'} = $dbh->selectrow_array( - q{SELECT cclist_accessible FROM bugs WHERE bug_id = ?}, - undef, $dupe_of); + $vars->{'cclist_accessible'} = $dupe_of_bug->cclist_accessible; $vars->{'original_bug_id'} = $dupe_of; $vars->{'duplicate_bug_id'} = $self->id; print $cgi->header(); @@ -1597,6 +1670,12 @@ sub _check_select_field { return $value; } +sub _check_bugid_field { + my ($invocant, $value, $field) = @_; + return undef if !$value; + return $invocant->check($value, $field)->id; +} + ##################################################################### # Class Accessors ##################################################################### @@ -1604,7 +1683,8 @@ sub _check_select_field { sub fields { my $class = shift; - return ( + my @fields = + ( # Standard Fields # Keep this ordering in sync with bugzilla.dtd. qw(bug_id alias creation_ts short_desc delta_ts @@ -1623,6 +1703,9 @@ sub fields { # Custom Fields map { $_->name } Bugzilla->active_custom_fields ); + Bugzilla::Hook::process("bug-fields", {'fields' => \@fields} ); + + return @fields; } ##################################################################### @@ -1671,11 +1754,6 @@ sub set_assigned_to { } sub reset_assigned_to { my $self = shift; - if (Bugzilla->params->{'commentonreassignbycomponent'} - && !$self->{added_comments}) - { - ThrowUserError('comment_required'); - } my $comp = $self->component_obj; $self->set_assigned_to($comp->default_assignee); } @@ -1916,11 +1994,6 @@ sub set_qa_contact { } sub reset_qa_contact { my $self = shift; - if (Bugzilla->params->{'commentonreassignbycomponent'} - && !$self->{added_comments}) - { - ThrowUserError('comment_required'); - } my $comp = $self->component_obj; $self->set_qa_contact($comp->default_qa_contact); } @@ -1968,11 +2041,6 @@ sub clear_resolution { if (!$self->status->is_open) { ThrowUserError('resolution_cant_clear', { bug_id => $self->id }); } - if (Bugzilla->params->{'commentonclearresolution'} - && $self->resolution && !$self->{added_comments}) - { - ThrowUserError('comment_required'); - } $self->{'resolution'} = ''; $self->_clear_dup_id; } @@ -2267,22 +2335,8 @@ sub attachments { return $self->{'attachments'} if exists $self->{'attachments'}; return [] if $self->{'error'}; - my $attachments = Bugzilla::Attachment->get_attachments_by_bug($self->bug_id); - $_->{'flags'} = [] foreach @$attachments; - my %att = map { $_->id => $_ } @$attachments; - - # Retrieve all attachment flags at once for this bug, and group them - # by attachment. We populate attachment flags here to avoid querying - # the DB for each attachment individually later. - my $flags = Bugzilla::Flag->match({ 'bug_id' => $self->bug_id, - 'target_type' => 'attachment' }); - - # Exclude flags for private attachments you cannot see. - @$flags = grep {exists $att{$_->attach_id}} @$flags; - - push(@{$att{$_->attach_id}->{'flags'}}, $_) foreach @$flags; - - $self->{'attachments'} = [sort {$a->id <=> $b->id} values %att]; + $self->{'attachments'} = + Bugzilla::Attachment->get_attachments_by_bug($self->bug_id, {preload => 1}); return $self->{'attachments'}; } @@ -2389,28 +2443,12 @@ sub flag_types { return $self->{'flag_types'} if exists $self->{'flag_types'}; return [] if $self->{'error'}; - # The types of flags that can be set on this bug. - # If none, no UI for setting flags will be displayed. - my $flag_types = Bugzilla::FlagType::match( - {'target_type' => 'bug', - 'product_id' => $self->{'product_id'}, - 'component_id' => $self->{'component_id'} }); - - $_->{'flags'} = [] foreach @$flag_types; - my %flagtypes = map { $_->id => $_ } @$flag_types; - - # Retrieve all bug flags at once for this bug and group them - # by flag types. - my $flags = Bugzilla::Flag->match({ 'bug_id' => $self->bug_id, - 'target_type' => 'bug' }); - - # Call the internal 'type_id' variable instead of the method - # to not create a flagtype object. - push(@{$flagtypes{$_->{'type_id'}}->{'flags'}}, $_) foreach @$flags; - - $self->{'flag_types'} = - [sort {$a->sortkey <=> $b->sortkey || $a->name cmp $b->name} values %flagtypes]; + my $vars = { target_type => 'bug', + product_id => $self->{product_id}, + component_id => $self->{component_id}, + bug_id => $self->bug_id }; + $self->{'flag_types'} = Bugzilla::Flag::_flag_types($vars); return $self->{'flag_types'}; } @@ -2868,7 +2906,7 @@ sub format_comment { } # Get the activity of a bug, starting from $starttime (if given). -# This routine assumes ValidateBugID has been previously called. +# This routine assumes Bugzilla::Bug->check has been previously called. sub GetBugActivity { my ($bug_id, $attach_id, $starttime) = @_; my $dbh = Bugzilla->dbh; @@ -3136,7 +3174,7 @@ sub RemoveVotes { undef, ($votes, $id)); } # Now return the array containing emails to be sent. - return \@messages; + return @messages; } # If a user votes for a bug, or the number of votes required to @@ -3327,59 +3365,6 @@ sub check_can_change_field { # Field Validation # -# Validates and verifies a bug ID, making sure the number is a -# positive integer, that it represents an existing bug in the -# database, and that the user is authorized to access that bug. -# We detaint the number here, too. -sub ValidateBugID { - my ($id, $field) = @_; - my $dbh = Bugzilla->dbh; - my $user = Bugzilla->user; - - ThrowUserError('improper_bug_id_field_value', { field => $field }) unless defined $id; - - # Get rid of leading '#' (number) mark, if present. - $id =~ s/^\s*#//; - # Remove whitespace - $id = trim($id); - - # If the ID isn't a number, it might be an alias, so try to convert it. - my $alias = $id; - if (!detaint_natural($id)) { - $id = bug_alias_to_id($alias); - $id || ThrowUserError("improper_bug_id_field_value", - {'bug_id' => $alias, - 'field' => $field }); - } - - # Modify the calling code's original variable to contain the trimmed, - # converted-from-alias ID. - $_[0] = $id; - - # First check that the bug exists - $dbh->selectrow_array("SELECT bug_id FROM bugs WHERE bug_id = ?", undef, $id) - || ThrowUserError("bug_id_does_not_exist", {'bug_id' => $id}); - - unless ($field && $field =~ /^(dependson|blocked|dup_id)$/) { - check_is_visible($id); - } -} - -sub check_is_visible { - my $id = shift; - my $user = Bugzilla->user; - - return if $user->can_see_bug($id); - - # The error the user sees depends on whether or not they are logged in - # (i.e. $user->id contains the user's positive integer ID). - if ($user->id) { - ThrowUserError("bug_access_denied", {'bug_id' => $id}); - } else { - ThrowUserError("bug_access_query", {'bug_id' => $id}); - } -} - # Validate and return a hash of dependencies sub ValidateDependencies { my $fields = {}; diff --git a/Bugzilla/BugMail.pm b/Bugzilla/BugMail.pm index 46f5597186db6b1bce30b9dd3212a4e51a51d358..9f7b2e7536a3726c087a6ae59d4073b920c2fdcc 100644 --- a/Bugzilla/BugMail.pm +++ b/Bugzilla/BugMail.pm @@ -216,6 +216,15 @@ sub Send { $values{'blocked'} = join(",", @$blockedlist); + my $grouplist = $dbh->selectcol_arrayref( + ' SELECT name FROM groups + INNER JOIN bug_group_map + ON groups.id = bug_group_map.group_id + AND bug_group_map.bug_id = ?', + undef, ($id)); + + $values{'bug_group'} = join(', ', @$grouplist); + my @args = ($id); # If lastdiffed is NULL, then we don't limit the search on time. @@ -410,23 +419,21 @@ sub Send { } } - if (Bugzilla->params->{"supportwatchers"}) { - # Find all those user-watching anyone on the current list, who is not - # on it already themselves. - my $involved = join(",", keys %recipients); - - my $userwatchers = - $dbh->selectall_arrayref("SELECT watcher, watched FROM watch - WHERE watched IN ($involved)"); - - # Mark these people as having the role of the person they are watching - foreach my $watch (@$userwatchers) { - while (my ($role, $bits) = each %{$recipients{$watch->[1]}}) { - $recipients{$watch->[0]}->{$role} |= BIT_WATCHING - if $bits & BIT_DIRECT; - } - push (@{$watching{$watch->[0]}}, $watch->[1]); + # Find all those user-watching anyone on the current list, who is not + # on it already themselves. + my $involved = join(",", keys %recipients); + + my $userwatchers = + $dbh->selectall_arrayref("SELECT watcher, watched FROM watch + WHERE watched IN ($involved)"); + + # Mark these people as having the role of the person they are watching + foreach my $watch (@$userwatchers) { + while (my ($role, $bits) = each %{$recipients{$watch->[1]}}) { + $recipients{$watch->[0]}->{$role} |= BIT_WATCHING + if $bits & BIT_DIRECT; } + push(@{$watching{$watch->[0]}}, $watch->[1]); } # Global watcher @@ -489,9 +496,7 @@ sub Send { # If we are using insiders, and the comment is private, only send # to insiders my $insider_ok = 1; - $insider_ok = 0 if (Bugzilla->params->{"insidergroup"} && - ($anyprivate != 0) && - (!$user->groups->{Bugzilla->params->{"insidergroup"}})); + $insider_ok = 0 if $anyprivate && !$user->is_insider; # We shouldn't send mail if this is a dependency mail (i.e. there # is something in @depbugs), and any of the depending bugs are not @@ -565,14 +570,12 @@ sub sendMail { ($diff->{'fieldname'} eq 'estimated_time' || $diff->{'fieldname'} eq 'remaining_time' || $diff->{'fieldname'} eq 'work_time' || - $diff->{'fieldname'} eq 'deadline')){ - if ($user->groups->{Bugzilla->params->{"timetrackinggroup"}}) { - $add_diff = 1; - } - } elsif (($diff->{'isprivate'}) - && Bugzilla->params->{'insidergroup'} - && !($user->groups->{Bugzilla->params->{'insidergroup'}}) - ) { + $diff->{'fieldname'} eq 'deadline')) + { + $add_diff = 1 if $user->is_timetracker; + } elsif ($diff->{'isprivate'} + && !$user->is_insider) + { $add_diff = 0; } else { $add_diff = 1; @@ -613,9 +616,7 @@ sub sendMail { # If there isn't anything to show, don't include this header. next unless $value; # Only send estimated_time if it is enabled and the user is in the group. - if (($f ne 'estimated_time' && $f ne 'deadline') - || $user->groups->{Bugzilla->params->{'timetrackinggroup'}}) - { + if (($f ne 'estimated_time' && $f ne 'deadline') || $user->is_timetracker) { my $desc = $fielddescription{$f}; $head .= multiline_sprintf(FORMAT_DOUBLE, ["$desc:", $value], FORMAT_2_SIZE); @@ -636,8 +637,6 @@ sub sendMail { push(@watchingrel, 'None') unless @watchingrel; push @watchingrel, map { user_id_to_login($_) } @$watchingRef; - my $threadingmarker = build_thread_marker($id, $user->id, $isnew); - my $vars = { isnew => $isnew, to => $user->email, @@ -664,7 +663,7 @@ sub sendMail { reporter => $values{'reporter'}, reportername => Bugzilla::User->new({name => $values{'reporter'}})->name, diffs => $diffs, - threadingmarker => $threadingmarker + threadingmarker => build_thread_marker($id, $user->id, $isnew), }; my $msg; diff --git a/Bugzilla/CGI.pm b/Bugzilla/CGI.pm index 1799786d3398991b3c67847c3bac5c105480191a..6d6ab575c5b4b9c2bdcb8926fd5ea6c5703aaba3 100644 --- a/Bugzilla/CGI.pm +++ b/Bugzilla/CGI.pm @@ -71,18 +71,6 @@ sub new { # Send appropriate charset $self->charset(Bugzilla->params->{'utf8'} ? 'UTF-8' : ''); - # Redirect to urlbase/sslbase if we are not viewing an attachment. - if (use_attachbase() && i_am_cgi()) { - my $cgi_file = $self->url('-path_info' => 0, '-query' => 0, '-relative' => 1); - $cgi_file =~ s/\?$//; - my $urlbase = Bugzilla->params->{'urlbase'}; - my $sslbase = Bugzilla->params->{'sslbase'}; - my $path_regexp = $sslbase ? qr/^(\Q$urlbase\E|\Q$sslbase\E)/ : qr/^\Q$urlbase\E/; - if ($cgi_file ne 'attachment.cgi' && $self->self_url !~ /$path_regexp/) { - $self->redirect_to_urlbase; - } - } - # Check for errors # All of the Bugzilla code wants to do this, so do it here instead of # in each script @@ -156,8 +144,47 @@ sub clean_search_url { # Delete certain parameters if the associated parameter is empty. $self->delete('bugidtype') if !$self->param('bug_id'); - $self->delete('emailtype1') if !$self->param('email1'); - $self->delete('emailtype2') if !$self->param('email2'); + + foreach my $num (1,2) { + # If there's no value in the email field, delete the related fields. + if (!$self->param("email$num")) { + foreach my $field qw(type assigned_to reporter qa_contact + cc longdesc) + { + $self->delete("email$field$num"); + } + } + } + + # chfieldto is set to "Now" by default in query.cgi. But if none + # of the other chfield parameters are set, it's meaningless. + if (!defined $self->param('chfieldfrom') && !$self->param('chfield') + && !defined $self->param('chfieldvalue')) + { + $self->delete('chfieldto'); + } + + # cmdtype "doit" is the default from query.cgi, but it's only meaningful + # if there's a remtype parameter. + if (defined $self->param('cmdtype') && $self->param('cmdtype') eq 'doit' + && !defined $self->param('remtype')) + { + $self->delete('cmdtype'); + } + + # "Reuse same sort as last time" is actually the default, so we don't + # need it in the URL. + if ($self->param('order') + && $self->param('order') eq 'Reuse same sort as last time') + { + $self->delete('order'); + } + + # And now finally, if query_format is our only parameter, that + # really means we have no parameters, so we should delete query_format. + if ($self->param('query_format') && scalar($self->param()) == 1) { + $self->delete('query_format'); + } } # Overwrite to ensure nph doesn't get set, and unset HEADERS_ONCE @@ -301,30 +328,22 @@ sub remove_cookie { # Redirect to https if required sub require_https { - my ($self, $url) = @_; - # Do not create query string if data submitted via XMLRPC - # since we want the data to be resubmitted over POST method. - my $query = Bugzilla->usage_mode == USAGE_MODE_WEBSERVICE ? 0 : 1; - # XMLRPC clients (SOAP::Lite at least) requires 301 to redirect properly - # and do not work with 302. - my $status = Bugzilla->usage_mode == USAGE_MODE_WEBSERVICE ? 301 : 302; - if (defined $url) { - $url .= $self->url('-path_info' => 1, '-query' => $query, '-relative' => 1); - } else { - $url = $self->self_url; - $url =~ s/^http:/https:/i; - } - print $self->redirect(-location => $url, -status => $status); - # When using XML-RPC with mod_perl, we need the headers sent immediately. - $self->r->rflush if $ENV{MOD_PERL}; - exit; -} - -# Redirect to the urlbase version of the current URL. -sub redirect_to_urlbase { - my $self = shift; - my $path = $self->url('-path_info' => 1, '-query' => 1, '-relative' => 1); - print $self->redirect('-location' => correct_urlbase() . $path); + my ($self, $url) = @_; + # Do not create query string if data submitted via XMLRPC + # since we want the data to be resubmitted over POST method. + my $query = Bugzilla->usage_mode == USAGE_MODE_WEBSERVICE ? 0 : 1; + # XMLRPC clients (SOAP::Lite at least) requires 301 to redirect properly + # and do not work with 302. + my $status = Bugzilla->usage_mode == USAGE_MODE_WEBSERVICE ? 301 : 302; + if (defined $url) { + $url .= $self->url('-path_info' => 1, '-query' => $query, '-relative' => 1); + } else { + $url = $self->self_url; + $url =~ s/^http:/https:/i; + } + print $self->redirect(-location => $url, -status => $status); + # When using XML-RPC with mod_perl, we need the headers sent immediately. + $self->r->rflush if $ENV{MOD_PERL}; exit; } @@ -398,10 +417,6 @@ If the client is using XMLRPC, it will not retain the QUERY_STRING since XMLRPC It takes an optional argument which will be used as the base URL. If $baseurl is not provided, the current URL is used. -=item C<redirect_to_urlbase> - -Redirects from the current URL to one prefixed by the urlbase parameter. - =back =head1 SEE ALSO diff --git a/Bugzilla/CVS/Entries b/Bugzilla/CVS/Entries index 9cbd50f29ac3910cbae90d5212232d9fb81f5103..449dae846ade781360622c5e9f7b796d336ce74f 100644 --- a/Bugzilla/CVS/Entries +++ b/Bugzilla/CVS/Entries @@ -1,42 +1,46 @@ -/.cvsignore/1.1/Mon Aug 26 22:24:55 2002//TBUGZILLA-3_2_1 -/Attachment.pm/1.56/Mon Feb 4 13:29:29 2008//TBUGZILLA-3_2_1 -/Auth.pm/1.20.4.1/Tue Jan 20 20:10:06 2009//TBUGZILLA-3_2_1 -/Bug.pm/1.241.2.18/Wed Nov 19 19:32:57 2008//TBUGZILLA-3_2_1 -/BugMail.pm/1.118.2.3/Mon Dec 29 00:35:57 2008//TBUGZILLA-3_2_1 -/CGI.pm/1.36.2.5/Mon Feb 2 18:23:43 2009//TBUGZILLA-3_2_1 -/Chart.pm/1.16/Fri Oct 19 06:46:14 2007//TBUGZILLA-3_2_1 -/Classification.pm/1.11/Tue Dec 19 08:38:49 2006//TBUGZILLA-3_2_1 -/Component.pm/1.16/Thu Oct 11 23:07:22 2007//TBUGZILLA-3_2_1 -/Config.pm/1.74.2.1/Wed Dec 24 19:08:58 2008//TBUGZILLA-3_2_1 -/Constants.pm/1.92.2.10/Mon Feb 2 23:28:51 2009//TBUGZILLA-3_2_1 -/DB.pm/1.112.2.2/Fri Oct 17 13:36:01 2008//TBUGZILLA-3_2_1 -/Error.pm/1.23.2.1/Tue May 27 22:11:56 2008//TBUGZILLA-3_2_1 -/Field.pm/1.31/Mon Feb 25 16:06:25 2008//TBUGZILLA-3_2_1 -/Flag.pm/1.95.2.2/Wed Aug 27 20:50:23 2008//TBUGZILLA-3_2_1 -/FlagType.pm/1.38.2.1/Wed Sep 17 03:57:05 2008//TBUGZILLA-3_2_1 -/Group.pm/1.22/Tue Sep 18 23:36:59 2007//TBUGZILLA-3_2_1 -/Hook.pm/1.14.2.7/Thu Dec 18 17:19:26 2008//TBUGZILLA-3_2_1 -/Install.pm/1.17/Wed Nov 28 16:35:57 2007//TBUGZILLA-3_2_1 -/Keyword.pm/1.7/Tue Sep 5 19:18:26 2006//TBUGZILLA-3_2_1 -/Mailer.pm/1.20.2.3/Fri Oct 3 01:47:17 2008//TBUGZILLA-3_2_1 -/Milestone.pm/1.12/Fri Jan 18 15:56:54 2008//TBUGZILLA-3_2_1 -/Object.pm/1.23/Thu Mar 27 05:08:08 2008//TBUGZILLA-3_2_1 -/Product.pm/1.26.2.1/Tue Aug 5 21:55:48 2008//TBUGZILLA-3_2_1 -/Search.pm/1.159.2.6/Sun Jan 4 18:21:05 2009//TBUGZILLA-3_2_1 -/Series.pm/1.16.2.1/Fri Aug 22 15:36:22 2008//TBUGZILLA-3_2_1 -/Status.pm/1.7/Tue Feb 12 01:32:51 2008//TBUGZILLA-3_2_1 -/Template.pm/1.89.2.2/Mon Feb 2 18:42:03 2009//TBUGZILLA-3_2_1 -/Token.pm/1.55.2.1/Mon Feb 2 18:42:03 2009//TBUGZILLA-3_2_1 -/Update.pm/1.10/Fri May 2 19:14:13 2008//TBUGZILLA-3_2_1 -/User.pm/1.164.2.4/Sat Nov 8 19:03:32 2008//TBUGZILLA-3_2_1 -/Util.pm/1.69.2.8/Mon Feb 2 18:23:44 2009//TBUGZILLA-3_2_1 -/Version.pm/1.14/Thu Aug 23 21:31:20 2007//TBUGZILLA-3_2_1 -/WebService.pm/1.9.2.4/Wed Nov 26 01:24:14 2008//TBUGZILLA-3_2_1 +/.cvsignore/1.1/Mon Aug 26 22:24:55 2002//TBUGZILLA-3_3_1 +/Attachment.pm/1.60/Wed Dec 10 18:32:27 2008//TBUGZILLA-3_3_1 +/Auth.pm/1.20/Wed Jul 12 11:51:43 2006//TBUGZILLA-3_3_1 +/Bug.pm/1.271/Sun Jan 4 04:38:41 2009//TBUGZILLA-3_3_1 +/BugMail.pm/1.124/Thu Jan 1 23:24:38 2009//TBUGZILLA-3_3_1 +/CGI.pm/1.41/Tue Sep 16 19:52:46 2008//TBUGZILLA-3_3_1 +/Chart.pm/1.17/Fri Aug 8 01:26:35 2008//TBUGZILLA-3_3_1 +/Classification.pm/1.14/Sun Jan 4 23:15:28 2009//TBUGZILLA-3_3_1 +/Component.pm/1.16/Thu Oct 11 23:07:22 2007//TBUGZILLA-3_3_1 +/Config.pm/1.76/Wed Dec 24 19:08:20 2008//TBUGZILLA-3_3_1 +/Constants.pm/1.102/Tue Jan 6 07:34:41 2009//TBUGZILLA-3_3_1 +/DB.pm/1.122/Wed Dec 3 07:00:45 2008//TBUGZILLA-3_3_1 +/Error.pm/1.24/Tue May 27 22:08:59 2008//TBUGZILLA-3_3_1 +/Field.pm/1.40/Thu Jan 1 23:24:39 2009//TBUGZILLA-3_3_1 +/Flag.pm/1.99/Mon Sep 8 17:13:37 2008//TBUGZILLA-3_3_1 +/FlagType.pm/1.39/Wed Sep 17 03:47:36 2008//TBUGZILLA-3_3_1 +/Group.pm/1.23/Sat Oct 18 16:15:21 2008//TBUGZILLA-3_3_1 +/Hook.pm/1.24/Thu Dec 18 17:18:25 2008//TBUGZILLA-3_3_1 +/Install.pm/1.18/Wed Aug 27 02:32:13 2008//TBUGZILLA-3_3_1 +/JobQueue.pm/1.1/Wed Dec 24 03:43:38 2008//TBUGZILLA-3_3_1 +/Keyword.pm/1.7/Tue Sep 5 19:18:26 2006//TBUGZILLA-3_3_1 +/Mailer.pm/1.26/Wed Dec 24 03:43:38 2008//TBUGZILLA-3_3_1 +/Milestone.pm/1.12/Fri Jan 18 15:56:54 2008//TBUGZILLA-3_3_1 +/Object.pm/1.28/Fri Oct 24 23:11:34 2008//TBUGZILLA-3_3_1 +/Product.pm/1.33/Fri Jan 2 13:47:56 2009//TBUGZILLA-3_3_1 +/Search.pm/1.169/Sun Jan 4 18:19:27 2009//TBUGZILLA-3_3_1 +/Series.pm/1.18/Fri Aug 22 15:33:03 2008//TBUGZILLA-3_3_1 +/Status.pm/1.11/Fri Nov 7 11:34:42 2008//TBUGZILLA-3_3_1 +/Template.pm/1.94/Mon Dec 29 00:02:12 2008//TBUGZILLA-3_3_1 +/Token.pm/1.55/Wed Apr 2 17:42:27 2008//TBUGZILLA-3_3_1 +/Update.pm/1.10/Fri May 2 19:14:13 2008//TBUGZILLA-3_3_1 +/User.pm/1.177/Fri Jan 2 13:59:24 2009//TBUGZILLA-3_3_1 +/Util.pm/1.79/Fri Jan 2 09:11:48 2009//TBUGZILLA-3_3_1 +/Version.pm/1.14/Thu Aug 23 21:31:20 2007//TBUGZILLA-3_3_1 +/WebService.pm/1.14/Wed Nov 26 01:20:41 2008//TBUGZILLA-3_3_1 D/Attachment//// D/Auth//// D/Config//// D/DB//// +D/Field//// D/Install//// +D/Job//// +D/JobQueue//// D/Search//// D/Template//// D/User//// diff --git a/Bugzilla/CVS/Tag b/Bugzilla/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/CVS/Tag +++ b/Bugzilla/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Chart.pm b/Bugzilla/Chart.pm index a119e4b7cd7041661f41b9f31ef5a8c2f68d3eb6..1f232f310ca33383a43e4e0977f362ba4d6e8685 100644 --- a/Bugzilla/Chart.pm +++ b/Bugzilla/Chart.pm @@ -382,8 +382,7 @@ sub getSeriesIDs { sub getVisibleSeries { my %cats; - # List of groups the user is in; use -1 to make sure it's not empty. - my $grouplist = join(", ", (-1, values(%{Bugzilla->user->groups}))); + my $grouplist = Bugzilla->user->groups_as_string; # Get all visible series my $dbh = Bugzilla->dbh; diff --git a/Bugzilla/Classification.pm b/Bugzilla/Classification.pm index 37ae3a0cca5787e9cd793d441ece740dbc8d34c0..a7f59b4bbab5314b8a874274c19df018c9e756c3 100644 --- a/Bugzilla/Classification.pm +++ b/Bugzilla/Classification.pm @@ -13,78 +13,116 @@ # The Original Code is the Bugzilla Bug Tracking System. # # Contributor(s): Tiago R. Mello <timello@async.com.br> -# +# Frédéric Buclin <LpSolit@gmail.com> use strict; package Bugzilla::Classification; +use Bugzilla::Constants; use Bugzilla::Util; use Bugzilla::Error; use Bugzilla::Product; +use base qw(Bugzilla::Object); + ############################### #### Initialization #### ############################### +use constant DB_TABLE => 'classifications'; +use constant LIST_ORDER => 'sortkey, name'; + use constant DB_COLUMNS => qw( - classifications.id - classifications.name - classifications.description - classifications.sortkey + id + name + description + sortkey ); -our $columns = join(", ", DB_COLUMNS); +use constant REQUIRED_CREATE_FIELDS => qw( + name +); -############################### -#### Methods #### -############################### +use constant UPDATE_COLUMNS => qw( + name + description + sortkey +); -sub new { - my $invocant = shift; - my $class = ref($invocant) || $invocant; - my $self = {}; - bless($self, $class); - return $self->_init(@_); -} +use constant VALIDATORS => { + name => \&_check_name, + description => \&_check_description, + sortkey => \&_check_sortkey, +}; -sub _init { +############################### +#### Constructors ##### +############################### +sub remove_from_db { my $self = shift; - my ($param) = @_; my $dbh = Bugzilla->dbh; - my $id = $param unless (ref $param eq 'HASH'); - my $classification; + ThrowUserError("classification_not_deletable") if ($self->id == 1); + + $dbh->bz_start_transaction(); + # Reclassify products to the default classification, if needed. + $dbh->do("UPDATE products SET classification_id = 1 + WHERE classification_id = ?", undef, $self->id); + + $dbh->do("DELETE FROM classifications WHERE id = ?", undef, $self->id); - if (defined $id) { - detaint_natural($id) - || ThrowCodeError('param_must_be_numeric', - {function => 'Bugzilla::Classification::_init'}); + $dbh->bz_commit_transaction(); - $classification = $dbh->selectrow_hashref(qq{ - SELECT $columns FROM classifications - WHERE id = ?}, undef, $id); +} + +############################### +#### Validators #### +############################### - } elsif (defined $param->{'name'}) { +sub _check_name { + my ($invocant, $name) = @_; - trick_taint($param->{'name'}); - $classification = $dbh->selectrow_hashref(qq{ - SELECT $columns FROM classifications - WHERE name = ?}, undef, $param->{'name'}); - } else { - ThrowCodeError('bad_arg', - {argument => 'param', - function => 'Bugzilla::Classification::_init'}); + $name = trim($name); + $name || ThrowUserError('classification_not_specified'); + + if (length($name) > MAX_CLASSIFICATION_SIZE) { + ThrowUserError('classification_name_too_long', {'name' => $name}); + } + + my $classification = new Bugzilla::Classification({name => $name}); + if ($classification && (!ref $invocant || $classification->id != $invocant->id)) { + ThrowUserError("classification_already_exists", { name => $classification->name }); } + return $name; +} - return undef unless (defined $classification); +sub _check_description { + my ($invocant, $description) = @_; - foreach my $field (keys %$classification) { - $self->{$field} = $classification->{$field}; + $description = trim($description || ''); + return $description; +} + +sub _check_sortkey { + my ($invocant, $sortkey) = @_; + + $sortkey ||= 0; + my $stored_sortkey = $sortkey; + if (!detaint_natural($sortkey) || $sortkey > MAX_SMALLINT) { + ThrowUserError('classification_invalid_sortkey', { 'sortkey' => $stored_sortkey }); } - return $self; + return $sortkey; } +############################### +#### Methods #### +############################### + +sub set_name { $_[0]->set('name', $_[1]); } +sub set_description { $_[0]->set('description', $_[1]); } +sub set_sortkey { $_[0]->set('sortkey', $_[1]); } + sub product_count { my $self = shift; my $dbh = Bugzilla->dbh; @@ -116,46 +154,9 @@ sub products { #### Accessors #### ############################### -sub id { return $_[0]->{'id'}; } -sub name { return $_[0]->{'name'}; } sub description { return $_[0]->{'description'}; } sub sortkey { return $_[0]->{'sortkey'}; } -############################### -#### Subroutines #### -############################### - -sub get_all_classifications { - my $dbh = Bugzilla->dbh; - - my $ids = $dbh->selectcol_arrayref(q{ - SELECT id FROM classifications ORDER BY sortkey, name}); - - my @classifications; - foreach my $id (@$ids) { - push @classifications, new Bugzilla::Classification($id); - } - return @classifications; -} - -sub check_classification { - my ($class_name) = @_; - - unless ($class_name) { - ThrowUserError("classification_not_specified"); - } - - my $classification = - new Bugzilla::Classification({name => $class_name}); - - unless ($classification) { - ThrowUserError("classification_doesnt_exist", - { name => $class_name }); - } - - return $classification; -} - 1; __END__ @@ -174,18 +175,18 @@ Bugzilla::Classification - Bugzilla classification class. my $id = $classification->id; my $name = $classification->name; my $description = $classification->description; + my $sortkey = $classification->sortkey; my $product_count = $classification->product_count; my $products = $classification->products; - my $hash_ref = Bugzilla::Classification::get_all_classifications(); - my $classification = $hash_ref->{1}; - - my $classification = - Bugzilla::Classification::check_classification('AcmeClass'); - =head1 DESCRIPTION -Classification.pm represents a Classification object. +Classification.pm represents a classification object. It is an +implementation of L<Bugzilla::Object>, and thus provides all methods +that L<Bugzilla::Object> provides. + +The methods that are specific to C<Bugzilla::Classification> are listed +below. A Classification is a higher-level grouping of Products. @@ -193,20 +194,6 @@ A Classification is a higher-level grouping of Products. =over -=item C<new($param)> - - Description: The constructor is used to load an existing - classification by passing a classification - id or classification name using a hash. - - Params: $param - If you pass an integer, the integer is the - classification_id from the database that we - want to read in. If you pass in a hash with - 'name' key, then the value of the name key - is the name of a classification from the DB. - - Returns: A Bugzilla::Classification object. - =item C<product_count()> Description: Returns the total number of products that belong to @@ -226,27 +213,4 @@ A Classification is a higher-level grouping of Products. =back -=head1 SUBROUTINES - -=over - -=item C<get_all_classifications()> - - Description: Returns all classifications. - - Params: none. - - Returns: Bugzilla::Classification object list. - -=item C<check_classification($classification_name)> - - Description: Checks if the classification name passed in is a - valid classification. - - Params: $classification_name - String with a classification name. - - Returns: Bugzilla::Classification object. - -=back - =cut diff --git a/Bugzilla/Config.pm b/Bugzilla/Config.pm index 619eb05a886c0f935a317641235b69f52fbcd662..14f10bed986be6b104c1321e0bc37640c0bc718a 100644 --- a/Bugzilla/Config.pm +++ b/Bugzilla/Config.pm @@ -34,6 +34,7 @@ use strict; use base qw(Exporter); use Bugzilla::Constants; +use Bugzilla::Hook; use Data::Dumper; use File::Temp; @@ -54,15 +55,21 @@ our %params; # Load in the param definitions sub _load_params { my $panels = param_panels(); + my %hook_panels; foreach my $panel (keys %$panels) { my $module = $panels->{$panel}; eval("require $module") || die $@; - my @new_param_list = "$module"->get_param_list(); + my @new_param_list = $module->get_param_list(); + $hook_panels{lc($panel)} = { params => \@new_param_list }; foreach my $item (@new_param_list) { $params{$item->{'name'}} = $item; } push(@param_list, @new_param_list); } + # This hook is also called in editparams.cgi. This call here is required + # to make SetParam work. + Bugzilla::Hook::process('config-modify_panels', + { panels => \%hook_panels }); } # END INIT CODE @@ -77,7 +84,8 @@ sub param_panels { $param_panels->{$module} = "Bugzilla::Config::$module" unless $module eq 'Common'; } # Now check for any hooked params - Bugzilla::Hook::process('config', { config => $param_panels }); + Bugzilla::Hook::process('config-add_panels', + { panel_modules => $param_panels }); return $param_panels; } diff --git a/Bugzilla/Config/Admin.pm b/Bugzilla/Config/Admin.pm index 838e532958f8b906d0c6f4c0bf65f9522f641b11..d4e822816af78ec30b639481c00e1c15a092d367 100644 --- a/Bugzilla/Config/Admin.pm +++ b/Bugzilla/Config/Admin.pm @@ -49,20 +49,14 @@ sub get_param_list { { name => 'allowemailchange', type => 'b', - default => 0 + default => 1 }, { name => 'allowuserdeletion', type => 'b', default => 0 - }, - - { - name => 'supportwatchers', - type => 'b', - default => 0 - } ); + }); return @param_list; } diff --git a/Bugzilla/Config/Attachment.pm b/Bugzilla/Config/Attachment.pm index 15ba2672aef26185d1b098079d9b4ce7729042ac..72ad29a2de3540507e0effe23f3dc498364986b5 100644 --- a/Bugzilla/Config/Attachment.pm +++ b/Bugzilla/Config/Attachment.pm @@ -40,19 +40,6 @@ $Bugzilla::Config::Attachment::sortkey = "025"; sub get_param_list { my $class = shift; my @param_list = ( - { - name => 'allow_attachment_display', - type => 'b', - default => 0 - }, - - { - name => 'attachment_base', - type => 't', - default => '', - checker => \&check_urlbase - }, - { name => 'allow_attachment_deletion', type => 'b', @@ -63,12 +50,6 @@ sub get_param_list { type => 'b', default => 0 }, - { - name => 'maxpatchsize', - type => 't', - default => '1000', - checker => \&check_numeric - }, { name => 'maxattachmentsize', diff --git a/Bugzilla/Config/BugChange.pm b/Bugzilla/Config/BugChange.pm index aec6e2428a37e69befe3c715415dfc555df215dc..0e518b68993222694bc8a277c87513ea7399ae41 100644 --- a/Bugzilla/Config/BugChange.pm +++ b/Bugzilla/Config/BugChange.pm @@ -80,24 +80,12 @@ sub get_param_list { default => 0 }, - { - name => 'commentonclearresolution', - type => 'b', - default => 0 - }, - { name => 'commentonchange_resolution', type => 'b', default => 0 }, - { - name => 'commentonreassignbycomponent', - type => 'b', - default => 0 - }, - { name => 'commentonduplicate', type => 'b', diff --git a/Bugzilla/Config/BugFields.pm b/Bugzilla/Config/BugFields.pm index db5d0a2ffcfb1973892db3727ec0b76c4ae3b491..b0375ad504e775ddc071b059a8d18e391563e551 100644 --- a/Bugzilla/Config/BugFields.pm +++ b/Bugzilla/Config/BugFields.pm @@ -53,12 +53,6 @@ sub get_param_list { default => 0 }, - { - name => 'showallproducts', - type => 'b', - default => 0 - }, - { name => 'usetargetmilestone', type => 'b', diff --git a/Bugzilla/Config/CVS/Entries b/Bugzilla/Config/CVS/Entries index 838f78e41ac6965d72fbf29a74a297c84d1ae247..5471abfb882c898771fdd7901bc6451bb5938e15 100644 --- a/Bugzilla/Config/CVS/Entries +++ b/Bugzilla/Config/CVS/Entries @@ -1,18 +1,18 @@ -/Admin.pm/1.2/Thu Oct 13 09:04:04 2005//TBUGZILLA-3_2_1 -/Attachment.pm/1.3.4.2/Mon Feb 2 19:12:15 2009//TBUGZILLA-3_2_1 -/Auth.pm/1.3/Thu Aug 2 22:38:39 2007//TBUGZILLA-3_2_1 -/BugChange.pm/1.5/Tue Oct 9 10:34:54 2007//TBUGZILLA-3_2_1 -/BugFields.pm/1.5/Mon Sep 10 22:57:00 2007//TBUGZILLA-3_2_1 -/BugMove.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_2_1 -/Common.pm/1.21/Thu Mar 27 00:23:41 2008//TBUGZILLA-3_2_1 -/Core.pm/1.9/Thu Apr 3 19:05:37 2008//TBUGZILLA-3_2_1 -/DependencyGraph.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_2_1 -/GroupSecurity.pm/1.8/Mon Aug 7 23:05:00 2006//TBUGZILLA-3_2_1 -/LDAP.pm/1.2/Fri Jun 2 11:52:48 2006//TBUGZILLA-3_2_1 -/MTA.pm/1.16/Fri Mar 14 00:05:35 2008//TBUGZILLA-3_2_1 -/PatchViewer.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_2_1 -/Query.pm/1.5/Tue Jul 3 16:22:01 2007//TBUGZILLA-3_2_1 -/RADIUS.pm/1.1/Thu Aug 2 22:38:39 2007//TBUGZILLA-3_2_1 -/ShadowDB.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_2_1 -/UserMatch.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_2_1 +/Admin.pm/1.4/Tue Dec 16 21:22:02 2008//TBUGZILLA-3_3_1 +/Attachment.pm/1.4/Wed Dec 10 18:32:28 2008//TBUGZILLA-3_3_1 +/Auth.pm/1.3/Thu Aug 2 22:38:39 2007//TBUGZILLA-3_3_1 +/BugChange.pm/1.7/Wed Dec 10 18:40:00 2008//TBUGZILLA-3_3_1 +/BugFields.pm/1.6/Wed Dec 10 18:43:28 2008//TBUGZILLA-3_3_1 +/BugMove.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_1 +/Common.pm/1.24/Wed Dec 24 03:43:40 2008//TBUGZILLA-3_3_1 +/Core.pm/1.10/Wed Aug 27 23:26:15 2008//TBUGZILLA-3_3_1 +/DependencyGraph.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_1 +/GroupSecurity.pm/1.8/Mon Aug 7 23:05:00 2006//TBUGZILLA-3_3_1 +/LDAP.pm/1.2/Fri Jun 2 11:52:48 2006//TBUGZILLA-3_3_1 +/MTA.pm/1.17/Wed Dec 24 03:43:40 2008//TBUGZILLA-3_3_1 +/PatchViewer.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_1 +/Query.pm/1.5/Tue Jul 3 16:22:01 2007//TBUGZILLA-3_3_1 +/RADIUS.pm/1.1/Thu Aug 2 22:38:39 2007//TBUGZILLA-3_3_1 +/ShadowDB.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_1 +/UserMatch.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_1 D diff --git a/Bugzilla/Config/CVS/Tag b/Bugzilla/Config/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/Config/CVS/Tag +++ b/Bugzilla/Config/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Config/Common.pm b/Bugzilla/Config/Common.pm index e6f0398e311014d0f75d40e12ba5adddee871fe3..b6aa1a108496179a2f02a5a9e34112022d0f2234 100644 --- a/Bugzilla/Config/Common.pm +++ b/Bugzilla/Config/Common.pm @@ -35,7 +35,6 @@ package Bugzilla::Config::Common; use strict; use Socket; -use Time::Zone; use Bugzilla::Util; use Bugzilla::Constants; @@ -49,8 +48,8 @@ use base qw(Exporter); check_sslbase check_priority check_severity check_platform check_opsys check_shadowdb check_urlbase check_webdotbase check_netmask check_user_verify_class check_image_converter - check_mail_delivery_method check_notification check_timezone check_utf8 - check_bug_status check_smtp_auth + check_mail_delivery_method check_notification check_utf8 + check_bug_status check_smtp_auth check_theschwartz_available ); # Checking functions for the various values @@ -277,10 +276,7 @@ sub check_user_verify_class { for my $class (split /,\s*/, $list) { my $res = check_multi($class, $entry); return $res if $res; - if ($class eq 'DB') { - # No params - } - elsif ($class eq 'RADIUS') { + if ($class eq 'RADIUS') { eval "require Authen::Radius"; return "Error requiring Authen::Radius: '$@'" if $@; return "RADIUS servername (RADIUS_server) is missing" unless Bugzilla->params->{"RADIUS_server"}; @@ -292,9 +288,6 @@ sub check_user_verify_class { return "LDAP servername (LDAPserver) is missing" unless Bugzilla->params->{"LDAPserver"}; return "LDAPBaseDN is empty" unless Bugzilla->params->{"LDAPBaseDN"}; } - else { - return "Unknown user_verify_class '$class' in check_user_verify_class"; - } } return ""; } @@ -333,14 +326,6 @@ sub check_notification { return ""; } -sub check_timezone { - my $tz = shift; - unless (defined(tz_offset($tz))) { - return "must be empty or a legal timezone name, such as PDT or JST"; - } - return ""; -} - sub check_smtp_auth { my $username = shift; if ($username) { @@ -350,6 +335,15 @@ sub check_smtp_auth { return ""; } +sub check_theschwartz_available { + if (!eval { require TheSchwartz; require Daemon::Generic; }) { + return "Using the job queue requires that you have certain Perl" + . " modules installed. See the output of checksetup.pl" + . " for more information"; + } + return ""; +} + # OK, here are the parameter definitions themselves. # # Each definition is a hash with keys: diff --git a/Bugzilla/Config/Core.pm b/Bugzilla/Config/Core.pm index b307dd7f5bdf1b9fc1ac0d0ab1c33e74248211ac..6d413b965770a56846dd49d6ae0102b24463b8ba 100644 --- a/Bugzilla/Config/Core.pm +++ b/Bugzilla/Config/Core.pm @@ -87,13 +87,6 @@ sub get_param_list { default => '/' }, - { - name => 'timezone', - type => 't', - default => '', - checker => \&check_timezone - }, - { name => 'utf8', type => 'b', diff --git a/Bugzilla/Config/MTA.pm b/Bugzilla/Config/MTA.pm index 37d99d967714c13f93b59f7bffb0add22ef924a9..c7843e286dfddcb8e4a701d32a20e6e5f5f50362 100644 --- a/Bugzilla/Config/MTA.pm +++ b/Bugzilla/Config/MTA.pm @@ -57,6 +57,13 @@ sub get_param_list { default => 'bugzilla-daemon' }, + { + name => 'use_mailer_queue', + type => 'b', + default => 0, + checker => \&check_theschwartz_available, + }, + { name => 'sendmailnow', type => 'b', @@ -90,7 +97,6 @@ sub get_param_list { default => 7, checker => \&check_numeric }, - { name => 'globalwatchers', type => 't', diff --git a/Bugzilla/Constants.pm b/Bugzilla/Constants.pm index 242a6ef7c39ae9d15db81bb0af320377102c37ea..1d2ebea70d39fa32c50d01fc27dc50574c5bb7af 100644 --- a/Bugzilla/Constants.pm +++ b/Bugzilla/Constants.pm @@ -101,7 +101,8 @@ use File::Basename; POS_EVENTS EVT_OTHER EVT_ADDED_REMOVED EVT_COMMENT EVT_ATTACHMENT EVT_ATTACHMENT_DATA EVT_PROJ_MANAGEMENT EVT_OPENED_CLOSED EVT_KEYWORD EVT_CC EVT_DEPEND_BLOCK - + EVT_BUG_CREATED + NEG_EVENTS EVT_UNCONFIRMED EVT_CHANGED_BY_ME @@ -122,6 +123,7 @@ use File::Basename; FIELD_TYPE_MULTI_SELECT FIELD_TYPE_TEXTAREA FIELD_TYPE_DATETIME + FIELD_TYPE_BUG_ID USAGE_MODE_BROWSER USAGE_MODE_CMDLINE @@ -140,7 +142,6 @@ use File::Basename; ON_WINDOWS MAX_TOKEN_AGE - MAX_LOGINCOOKIE_AGE SAFE_PROTOCOLS @@ -148,9 +149,15 @@ use File::Basename; MAX_SMALLINT MAX_LEN_QUERY_NAME + MAX_CLASSIFICATION_SIZE + MAX_PRODUCT_SIZE MAX_MILESTONE_SIZE MAX_COMPONENT_SIZE + MAX_FIELD_VALUE_SIZE MAX_FREETEXT_LENGTH + + PASSWORD_DIGEST_ALGORITHM + PASSWORD_SALT_LENGTH ); @Bugzilla::Constants::EXPORT_OK = qw(contenttypes); @@ -158,7 +165,7 @@ use File::Basename; # CONSTANTS # # Bugzilla version -use constant BUGZILLA_VERSION => "3.2.1"; +use constant BUGZILLA_VERSION => "3.3.1"; # These are unique values that are unlikely to match a string or a number, # to be used in criteria for match() functions and other things. They start @@ -305,11 +312,12 @@ use constant EVT_OPENED_CLOSED => 6; use constant EVT_KEYWORD => 7; use constant EVT_CC => 8; use constant EVT_DEPEND_BLOCK => 9; +use constant EVT_BUG_CREATED => 10; use constant POS_EVENTS => EVT_OTHER, EVT_ADDED_REMOVED, EVT_COMMENT, EVT_ATTACHMENT, EVT_ATTACHMENT_DATA, EVT_PROJ_MANAGEMENT, EVT_OPENED_CLOSED, EVT_KEYWORD, - EVT_CC, EVT_DEPEND_BLOCK; + EVT_CC, EVT_DEPEND_BLOCK, EVT_BUG_CREATED; use constant EVT_UNCONFIRMED => 50; use constant EVT_CHANGED_BY_ME => 51; @@ -351,11 +359,10 @@ use constant FIELD_TYPE_SINGLE_SELECT => 2; use constant FIELD_TYPE_MULTI_SELECT => 3; use constant FIELD_TYPE_TEXTAREA => 4; use constant FIELD_TYPE_DATETIME => 5; +use constant FIELD_TYPE_BUG_ID => 6; # The maximum number of days a token will remain valid. use constant MAX_TOKEN_AGE => 3; -# How many days a logincookie will remain valid if not used. -use constant MAX_LOGINCOOKIE_AGE => 30; # Protocols which are considered as safe. use constant SAFE_PROTOCOLS => ('afs', 'cid', 'ftp', 'gopher', 'http', 'https', @@ -419,15 +426,33 @@ use constant MAX_SMALLINT => 32767; # The longest that a saved search name can be. use constant MAX_LEN_QUERY_NAME => 64; +# The longest classification name allowed. +use constant MAX_CLASSIFICATION_SIZE => 64; + +# The longest product name allowed. +use constant MAX_PRODUCT_SIZE => 64; + # The longest milestone name allowed. use constant MAX_MILESTONE_SIZE => 20; # The longest component name allowed. use constant MAX_COMPONENT_SIZE => 64; +# The maximum length for values of <select> fields. +use constant MAX_FIELD_VALUE_SIZE => 64; + # Maximum length allowed for free text fields. use constant MAX_FREETEXT_LENGTH => 255; +# This is the name of the algorithm used to hash passwords before storing +# them in the database. This can be any string that is valid to pass to +# Perl's "Digest" module. Note that if you change this, it won't take +# effect until a user changes his password. +use constant PASSWORD_DIGEST_ALGORITHM => 'SHA-256'; +# How long of a salt should we use? Note that if you change this, none +# of your users will be able to log in until they reset their passwords. +use constant PASSWORD_SALT_LENGTH => 8; + sub bz_locations { # We know that Bugzilla/Constants.pm must be in %INC at this point. # So the only question is, what's the name of the directory diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm index d68c5dc4b9edfbb46fa10d4011ce5e641b9c2894..377f839300f30b99cb0836b208e2093e127d8c6a 100644 --- a/Bugzilla/DB.pm +++ b/Bugzilla/DB.pm @@ -274,7 +274,7 @@ EOT # List of abstract methods we are checking the derived class implements our @_abstract_methods = qw(REQUIRED_VERSION PROGRAM_NAME DBD_VERSION new sql_regexp sql_not_regexp sql_limit sql_to_days - sql_date_format sql_interval); + sql_date_format sql_interval bz_explain); # This overridden import method will check implementation of inherited classes # for missing implementation of abstract methods @@ -391,6 +391,15 @@ sub bz_last_key { $table, $column); } +sub bz_check_regexp { + my ($self, $pattern) = @_; + + eval { $self->do("SELECT " . $self->sql_regexp($self->quote("a"), $pattern, 1)) }; + + $@ && ThrowUserError('illegal_regexp', + { value => $pattern, dberror => $self->errstr }); +} + ##################################################################### # Database Setup ##################################################################### @@ -493,8 +502,7 @@ sub bz_add_fk { my $col_def = $self->bz_column_info($table, $column); if (!$col_def->{REFERENCES}) { - $self->_check_references($table, $column, $def->{TABLE}, - $def->{COLUMN}); + $self->_check_references($table, $column, $def); print get_text('install_fk_add', { table => $table, column => $column, fk => $def }) . "\n" if Bugzilla->usage_mode == USAGE_MODE_CMDLINE; @@ -672,12 +680,18 @@ sub bz_add_field_tables { my ($self, $field) = @_; $self->_bz_add_field_table($field->name, - $self->_bz_schema->FIELD_TABLE_SCHEMA); - if ( $field->type == FIELD_TYPE_MULTI_SELECT ) { - $self->_bz_add_field_table('bug_' . $field->name, - $self->_bz_schema->MULTI_SELECT_VALUE_TABLE); + $self->_bz_schema->FIELD_TABLE_SCHEMA, $field->type); + if ($field->type == FIELD_TYPE_MULTI_SELECT) { + my $ms_table = "bug_" . $field->name; + $self->_bz_add_field_table($ms_table, + $self->_bz_schema->MULTI_SELECT_VALUE_TABLE); + + $self->bz_add_fk($ms_table, 'bug_id', {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE'}); + $self->bz_add_fk($ms_table, 'value', {TABLE => $field->name, + COLUMN => 'value'}); } - } sub bz_drop_field_tables { @@ -1191,33 +1205,57 @@ sub _bz_populate_enum_table { # This is used before adding a foreign key to a column, to make sure # that the database won't fail adding the key. sub _check_references { - my ($self, $table, $column, $foreign_table, $foreign_column) = @_; - + my ($self, $table, $column, $fk) = @_; + my $foreign_table = $fk->{TABLE}; + my $foreign_column = $fk->{COLUMN}; + + # We use table aliases because sometimes we join a table to itself, + # and we can't use the same table name on both sides of the join. + # We also can't use the words "table" or "foreign" because those are + # reserved words. my $bad_values = $self->selectcol_arrayref( - "SELECT DISTINCT $table.$column - FROM $table LEFT JOIN $foreign_table - ON $table.$column = $foreign_table.$foreign_column - WHERE $foreign_table.$foreign_column IS NULL - AND $table.$column IS NOT NULL"); + "SELECT DISTINCT tabl.$column + FROM $table AS tabl LEFT JOIN $foreign_table AS forn + ON tabl.$column = forn.$foreign_column + WHERE forn.$foreign_column IS NULL + AND tabl.$column IS NOT NULL"); if (@$bad_values) { - my $values = join(', ', @$bad_values); - print <<EOT; - -ERROR: There are invalid values for the $column column in the $table -table. (These values do not exist in the $foreign_table table, in the -$foreign_column column.) - -Before continuing with checksetup, you will need to fix these values, -either by deleting these rows from the database, or changing the values -of $column in $table to point to valid values in $foreign_table.$foreign_column. - -The bad values from the $table.$column column are: -$values - -EOT - # I just picked a number above 2, to be considered "abnormal exit." - exit 3; + my $delete_action = $fk->{DELETE} || ''; + if ($delete_action eq 'CASCADE') { + $self->do("DELETE FROM $table WHERE $column IN (" + . join(',', ('?') x @$bad_values) . ")", + undef, @$bad_values); + if (Bugzilla->usage_mode == USAGE_MODE_CMDLINE) { + print "\n", get_text('install_fk_invalid_fixed', + { table => $table, column => $column, + foreign_table => $foreign_table, + foreign_column => $foreign_column, + 'values' => $bad_values, action => 'delete' }), "\n"; + } + } + elsif ($delete_action eq 'SET NULL') { + $self->do("UPDATE $table SET $column = NULL + WHERE $column IN (" + . join(',', ('?') x @$bad_values) . ")", + undef, @$bad_values); + if (Bugzilla->usage_mode == USAGE_MODE_CMDLINE) { + print "\n", get_text('install_fk_invalid_fixed', + { table => $table, column => $column, + foreign_table => $foreign_table, + foreign_column => $foreign_column, + 'values' => $bad_values, action => 'null' }), "\n"; + } + } + else { + print "\n", get_text('install_fk_invalid', + { table => $table, column => $column, + foreign_table => $foreign_table, + foreign_column => $foreign_column, + 'values' => $bad_values }), "\n"; + # I just picked a number above 2, to be considered "abnormal exit" + exit 3 + } } } @@ -1518,6 +1556,11 @@ Abstract method, should be overridden by database specific code. =item C<$pattern> - the regular expression to search for (scalar) +=item C<$nocheck> - true if the pattern should not be tested; false otherwise (boolean) + +=item C<$real_pattern> - the real regular expression to search for. +This argument is used when C<$pattern> is a placeholder ('?'). + =back =item B<Returns> @@ -1540,13 +1583,7 @@ Abstract method, should be overridden by database specific code. =item B<Params> -=over - -=item C<$expr> - SQL expression for the text to be searched (scalar) - -=item C<$pattern> - the regular expression to search for (scalar) - -=back +Same as L</sql_regexp>. =item B<Returns> diff --git a/Bugzilla/DB/CVS/Entries b/Bugzilla/DB/CVS/Entries index d299aabbe1b59321fb9c1daa797d29207c3f6576..c5d1afe109453006b44ff3ff83cadebf270c91e1 100644 --- a/Bugzilla/DB/CVS/Entries +++ b/Bugzilla/DB/CVS/Entries @@ -1,5 +1,5 @@ -/Mysql.pm/1.60.2.7/Fri Nov 7 00:10:15 2008//TBUGZILLA-3_2_1 -/Oracle.pm/1.6.2.8/Tue Oct 21 23:30:47 2008//TBUGZILLA-3_2_1 -/Pg.pm/1.27/Mon Mar 24 22:47:24 2008//TBUGZILLA-3_2_1 -/Schema.pm/1.99.2.1/Wed Nov 5 17:13:09 2008//TBUGZILLA-3_2_1 +/Mysql.pm/1.71/Wed Dec 24 03:43:41 2008//TBUGZILLA-3_3_1 +/Oracle.pm/1.21/Mon Jan 5 19:52:06 2009//TBUGZILLA-3_3_1 +/Pg.pm/1.31/Wed Dec 24 03:43:41 2008//TBUGZILLA-3_3_1 +/Schema.pm/1.109/Wed Dec 24 03:43:41 2008//TBUGZILLA-3_3_1 D/Schema//// diff --git a/Bugzilla/DB/CVS/Tag b/Bugzilla/DB/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/DB/CVS/Tag +++ b/Bugzilla/DB/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/DB/Mysql.pm b/Bugzilla/DB/Mysql.pm index f8198621cf22355dd722bb53b96e59bf39262306..f85bd31f1e29b1c8560818b3a63ae177295a79c4 100644 --- a/Bugzilla/DB/Mysql.pm +++ b/Bugzilla/DB/Mysql.pm @@ -49,6 +49,7 @@ use Bugzilla::Error; use Bugzilla::DB::Schema::Mysql; use List::Util qw(max); +use Text::ParseWords; # This is how many comments of MAX_COMMENT_LENGTH we expect on a single bug. # In reality, you could have a LOT more comments than this, because @@ -62,7 +63,7 @@ sub new { my ($class, $user, $pass, $host, $dbname, $port, $sock) = @_; # construct the DSN from the parameters we got - my $dsn = "DBI:mysql:host=$host;database=$dbname"; + my $dsn = "dbi:mysql:host=$host;database=$dbname"; $dsn .= ";port=$port" if $port; $dsn .= ";mysql_socket=$sock" if $sock; @@ -78,6 +79,9 @@ sub new { # a prefix 'private_'. See DBI documentation. $self->{private_bz_tables_locked} = ""; + # Needed by TheSchwartz + $self->{private_bz_dsn} = $dsn; + bless ($self, $class); # Bug 321645 - disable MySQL strict mode, if set @@ -135,13 +139,19 @@ sub sql_group_concat { } sub sql_regexp { - my ($self, $expr, $pattern) = @_; + my ($self, $expr, $pattern, $nocheck, $real_pattern) = @_; + $real_pattern ||= $pattern; + + $self->bz_check_regexp($real_pattern) if !$nocheck; return "$expr REGEXP $pattern"; } sub sql_not_regexp { - my ($self, $expr, $pattern) = @_; + my ($self, $expr, $pattern, $nocheck, $real_pattern) = @_; + $real_pattern ||= $pattern; + + $self->bz_check_regexp($real_pattern) if !$nocheck; return "$expr NOT REGEXP $pattern"; } @@ -166,8 +176,21 @@ sub sql_fulltext_search { my ($self, $column, $text) = @_; # Add the boolean mode modifier if the search string contains - # boolean operators. - my $mode = ($text =~ /[+\-<>()~*"]/ ? "IN BOOLEAN MODE" : ""); + # boolean operators at the start or end of a word. + my $mode = ''; + if ($text =~ /(?:^|\W)[+\-<>~"()]/ || $text =~ /[()"*](?:$|\W)/) { + $mode = 'IN BOOLEAN MODE'; + + # quote un-quoted compound words + my @words = quotewords('[\s()]+', 'delimiters', $text); + foreach my $word (@words) { + # match words that have non-word chars in the middle of them + if ($word =~ /\w\W+\w/ && $word !~ m/"/) { + $word = '"' . $word . '"'; + } + } + $text = join('', @words); + } # quote the text for use in the MATCH AGAINST expression $text = $self->quote($text); @@ -231,6 +254,30 @@ sub sql_group_by { return "GROUP BY $needed_columns"; } +sub bz_explain { + my ($self, $sql) = @_; + my $sth = $self->prepare("EXPLAIN $sql"); + $sth->execute(); + my $columns = $sth->{'NAME'}; + my $lengths = $sth->{'mysql_max_length'}; + my $format_string = '|'; + my $i = 0; + foreach my $column (@$columns) { + # Sometimes the column name is longer than the contents. + my $length = max($lengths->[$i], length($column)); + $format_string .= ' %-' . $length . 's |'; + $i++; + } + + my $first_row = sprintf($format_string, @$columns); + my @explain_rows = ($first_row, '-' x length($first_row)); + while (my $row = $sth->fetchrow_arrayref) { + my @fixed = map { defined $_ ? $_ : 'NULL' } @$row; + push(@explain_rows, sprintf($format_string, @fixed)); + } + + return join("\n", @explain_rows); +} sub _bz_get_initial_schema { my ($self) = @_; @@ -735,6 +782,46 @@ EOT if (Bugzilla->params->{'utf8'} && !$self->bz_db_is_utf8) { $self->_alter_db_charset_to_utf8(); } + + $self->_fix_defaults(); +} + +# When you import a MySQL 3/4 mysqldump into MySQL 5, columns that +# aren't supposed to have defaults will have defaults. This is only +# a minor issue, but it makes our tests fail, and it's good to keep +# the DB actually consistent with what DB::Schema thinks the database +# looks like. So we remove defaults from columns that aren't supposed +# to have them +sub _fix_defaults { + my $self = shift; + my $maj_version = substr($self->bz_server_version, 0, 1); + return if $maj_version < 5; + + # The oldest column that could have this problem is bugs.assigned_to, + # so if it doesn't have the problem, we just skip doing this entirely. + my $assi_def = $self->_bz_raw_column_info('bugs', 'assigned_to'); + my $assi_default = $assi_def->{COLUMN_DEF}; + # This "ne ''" thing is necessary because _raw_column_info seems to + # return COLUMN_DEF as an empty string for columns that don't have + # a default. + return unless (defined $assi_default && $assi_default ne ''); + + foreach my $table ($self->_bz_real_schema->get_table_list()) { + foreach my $column ($self->bz_table_columns($table)) { + my $abs_def = $self->bz_column_info($table, $column); + if (!defined $abs_def->{DEFAULT}) { + # Get the exact default from the database without any + # "fixing" by bz_column_info_real. + my $raw_info = $self->_bz_raw_column_info($table, $column); + my $raw_default = $raw_info->{COLUMN_DEF}; + if (defined $raw_default) { + $self->bz_alter_column_raw($table, $column, $abs_def); + $raw_default = "''" if $raw_default eq ''; + print "Removed incorrect DB default: $raw_default\n"; + } + } + } # foreach $column + } # foreach $table } # There is a bug in MySQL 4.1.0 - 4.1.15 that makes certain SELECT @@ -826,6 +913,12 @@ backwards-compatibility anyway, for versions of Bugzilla before 2.20. sub bz_column_info_real { my ($self, $table, $column) = @_; + my $col_data = $self->_bz_raw_column_info($table, $column); + return $self->_bz_schema->column_info_to_column($col_data); +} + +sub _bz_raw_column_info { + my ($self, $table, $column) = @_; # DBD::mysql does not support selecting a specific column, # so we have to get all the columns on the table and find @@ -841,7 +934,7 @@ sub bz_column_info_real { if (!defined $col_data) { return undef; } - return $self->_bz_schema->column_info_to_column($col_data); + return $col_data; } =item C<bz_index_info_real($table, $index)> diff --git a/Bugzilla/DB/Oracle.pm b/Bugzilla/DB/Oracle.pm index ef3f62fcb0b2b3c7b166171a9bd265d2656e4d03..ee150c024453db1724f7093bb7efeef854cc4ee7 100644 --- a/Bugzilla/DB/Oracle.pm +++ b/Bugzilla/DB/Oracle.pm @@ -65,13 +65,15 @@ sub new { $ENV{'NLS_LANG'} = '.AL32UTF8' if Bugzilla->params->{'utf8'}; # construct the DSN from the parameters we got - my $dsn = "DBI:Oracle:host=$host;sid=$dbname"; + my $dsn = "dbi:Oracle:host=$host;sid=$dbname"; $dsn .= ";port=$port" if $port; my $attrs = { FetchHashKeyName => 'NAME_lc', LongReadLen => ( Bugzilla->params->{'maxattachmentsize'} || 1000 ) * 1024, }; my $self = $class->db_new($dsn, $user, $pass, $attrs); + # Needed by TheSchwartz + $self->{private_bz_dsn} = $dsn; bless ($self, $class); @@ -95,14 +97,39 @@ sub bz_last_key { return $last_insert_id; } +sub bz_check_regexp { + my ($self, $pattern) = @_; + + eval { $self->do("SELECT 1 FROM DUAL WHERE " + . $self->sql_regexp($self->quote("a"), $pattern, 1)) }; + + $@ && ThrowUserError('illegal_regexp', + { value => $pattern, dberror => $self->errstr }); +} + +sub bz_explain { + my ($self, $sql) = @_; + my $sth = $self->prepare("EXPLAIN PLAN FOR $sql"); + $sth->execute(); + my $explain = $self->selectcol_arrayref( + "SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY)"); + return join("\n", @$explain); +} + sub sql_regexp { - my ($self, $expr, $pattern) = @_; + my ($self, $expr, $pattern, $nocheck, $real_pattern) = @_; + $real_pattern ||= $pattern; + + $self->bz_check_regexp($real_pattern) if !$nocheck; return "REGEXP_LIKE($expr, $pattern)"; } sub sql_not_regexp { - my ($self, $expr, $pattern) = @_; + my ($self, $expr, $pattern, $nocheck, $real_pattern) = @_; + $real_pattern ||= $pattern; + + $self->bz_check_regexp($real_pattern) if !$nocheck; return "NOT REGEXP_LIKE($expr, $pattern)" } @@ -185,6 +212,15 @@ sub sql_in { return "( " . join(" OR ", @in_str) . " )"; } +sub _bz_add_field_table { + my ($self, $name, $schema_ref, $type) = @_; + $self->SUPER::_bz_add_field_table($name, $schema_ref); + if (defined($type) && $type == FIELD_TYPE_MULTI_SELECT) { + my $uk_name = "UK_" . $self->_bz_schema->_hash_identifier($name . '_value'); + $self->do("ALTER TABLE $name ADD CONSTRAINT $uk_name UNIQUE(value)"); + } +} + sub bz_drop_table { my ($self, $name) = @_; my $table_exists = $self->bz_table_info($name); @@ -522,7 +558,7 @@ sub bz_setup_database { } my $tr_str = "CREATE OR REPLACE TRIGGER $trigger_name" - . " AFTER UPDATE ON ". $to_table + . " AFTER UPDATE OF $to_column ON $to_table " . " REFERENCING " . " NEW AS NEW " . " OLD AS OLD " diff --git a/Bugzilla/DB/Pg.pm b/Bugzilla/DB/Pg.pm index 4777ba89a17fc126c42365abba9495294ea5c557..18f9abf885270d53770979304e742b1086e48185 100644 --- a/Bugzilla/DB/Pg.pm +++ b/Bugzilla/DB/Pg.pm @@ -60,7 +60,7 @@ sub new { $dbname ||= 'template1'; # construct the DSN from the parameters we got - my $dsn = "DBI:Pg:dbname=$dbname"; + my $dsn = "dbi:Pg:dbname=$dbname"; $dsn .= ";host=$host" if $host; $dsn .= ";port=$port" if $port; @@ -75,6 +75,8 @@ sub new { # all class local variables stored in DBI derived class needs to have # a prefix 'private_'. See DBI documentation. $self->{private_bz_tables_locked} = ""; + # Needed by TheSchwartz + $self->{private_bz_dsn} = $dsn; bless ($self, $class); @@ -93,13 +95,19 @@ sub bz_last_key { } sub sql_regexp { - my ($self, $expr, $pattern) = @_; + my ($self, $expr, $pattern, $nocheck, $real_pattern) = @_; + $real_pattern ||= $pattern; + + $self->bz_check_regexp($real_pattern) if !$nocheck; return "$expr ~* $pattern"; } sub sql_not_regexp { - my ($self, $expr, $pattern) = @_; + my ($self, $expr, $pattern, $nocheck, $real_pattern) = @_; + $real_pattern ||= $pattern; + + $self->bz_check_regexp($real_pattern) if !$nocheck; return "$expr !~* $pattern" } @@ -167,6 +175,12 @@ sub bz_sequence_exists { return $exists || 0; } +sub bz_explain { + my ($self, $sql) = @_; + my $explain = $self->selectcol_arrayref("EXPLAIN ANALYZE $sql"); + return join("\n", @$explain); +} + ##################################################################### # Custom Database Setup ##################################################################### diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm index 02e4bfd0d3885f0624cf5bbc50f7f83d6fd3b9bd..f11c86e75399d5e5b2e3783ffbc1df59c1192a0f 100644 --- a/Bugzilla/DB/Schema.pm +++ b/Bugzilla/DB/Schema.pm @@ -210,6 +210,26 @@ use constant SCHEMA_VERSION => '2.00'; use constant ADD_COLUMN => 'ADD COLUMN'; # This is a reasonable default that's true for both PostgreSQL and MySQL. use constant MAX_IDENTIFIER_LEN => 63; + +use constant FIELD_TABLE_SCHEMA => { + FIELDS => [ + id => {TYPE => 'SMALLSERIAL', NOTNULL => 1, + PRIMARYKEY => 1}, + value => {TYPE => 'varchar(64)', NOTNULL => 1}, + sortkey => {TYPE => 'INT2', NOTNULL => 1, DEFAULT => 0}, + isactive => {TYPE => 'BOOLEAN', NOTNULL => 1, + DEFAULT => 'TRUE'}, + visibility_value_id => {TYPE => 'INT2'}, + ], + # Note that bz_add_field_table should prepend the table name + # to these index names. + INDEXES => [ + value_idx => {FIELDS => ['value'], TYPE => 'UNIQUE'}, + sortkey_idx => ['sortkey', 'value'], + visibility_value_id_idx => ['visibility_value_id'], + ], +}; + use constant ABSTRACT_SCHEMA => { # BUG-RELATED TABLES @@ -307,13 +327,21 @@ use constant ABSTRACT_SCHEMA => { bugs_activity => { FIELDS => [ - bug_id => {TYPE => 'INT3', NOTNULL => 1}, - attach_id => {TYPE => 'INT3'}, + bug_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE'}}, + attach_id => {TYPE => 'INT3', + REFERENCES => {TABLE => 'attachments', + COLUMN => 'attach_id', + DELETE => 'CASCADE'}}, who => {TYPE => 'INT3', NOTNULL => 1, REFERENCES => {TABLE => 'profiles', COLUMN => 'userid'}}, bug_when => {TYPE => 'DATETIME', NOTNULL => 1}, - fieldid => {TYPE => 'INT3', NOTNULL => 1}, + fieldid => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'fielddefs', + COLUMN => 'id'}}, added => {TYPE => 'TINYTEXT'}, removed => {TYPE => 'TINYTEXT'}, ], @@ -327,7 +355,10 @@ use constant ABSTRACT_SCHEMA => { cc => { FIELDS => [ - bug_id => {TYPE => 'INT3', NOTNULL => 1}, + bug_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE'}}, who => {TYPE => 'INT3', NOTNULL => 1, REFERENCES => {TABLE => 'profiles', COLUMN => 'userid', @@ -367,8 +398,14 @@ use constant ABSTRACT_SCHEMA => { dependencies => { FIELDS => [ - blocked => {TYPE => 'INT3', NOTNULL => 1}, - dependson => {TYPE => 'INT3', NOTNULL => 1}, + blocked => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE'}}, + dependson => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE'}}, ], INDEXES => [ dependencies_blocked_idx => ['blocked'], @@ -382,7 +419,10 @@ use constant ABSTRACT_SCHEMA => { REFERENCES => {TABLE => 'profiles', COLUMN => 'userid', DELETE => 'CASCADE'}}, - bug_id => {TYPE => 'INT3', NOTNULL => 1}, + bug_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE'}}, vote_count => {TYPE => 'INT2', NOTNULL => 1}, ], INDEXES => [ @@ -395,7 +435,10 @@ use constant ABSTRACT_SCHEMA => { FIELDS => [ attach_id => {TYPE => 'MEDIUMSERIAL', NOTNULL => 1, PRIMARYKEY => 1}, - bug_id => {TYPE => 'INT3', NOTNULL => 1}, + bug_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE'}}, creation_ts => {TYPE => 'DATETIME', NOTNULL => 1}, modification_time => {TYPE => 'DATETIME', NOTNULL => 1}, description => {TYPE => 'TINYTEXT', NOTNULL => 1}, @@ -422,16 +465,25 @@ use constant ABSTRACT_SCHEMA => { attach_data => { FIELDS => [ id => {TYPE => 'INT3', NOTNULL => 1, - PRIMARYKEY => 1}, + PRIMARYKEY => 1, + REFERENCES => {TABLE => 'attachments', + COLUMN => 'attach_id', + DELETE => 'CASCADE'}}, thedata => {TYPE => 'LONGBLOB', NOTNULL => 1}, ], }, duplicates => { FIELDS => [ - dupe_of => {TYPE => 'INT3', NOTNULL => 1}, + dupe_of => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE'}}, dupe => {TYPE => 'INT3', NOTNULL => 1, - PRIMARYKEY => 1}, + PRIMARYKEY => 1, + REFERENCES => {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE'}}, ], }, @@ -453,8 +505,15 @@ use constant ABSTRACT_SCHEMA => { keywords => { FIELDS => [ - bug_id => {TYPE => 'INT3', NOTNULL => 1}, - keywordid => {TYPE => 'INT2', NOTNULL => 1}, + bug_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE'}}, + keywordid => {TYPE => 'INT2', NOTNULL => 1, + REFERENCES => {TABLE => 'keyworddefs', + COLUMN => 'id', + DELETE => 'CASCADE'}}, + ], INDEXES => [ keywords_bug_id_idx => {FIELDS => [qw(bug_id keywordid)], @@ -471,14 +530,27 @@ use constant ABSTRACT_SCHEMA => { FIELDS => [ id => {TYPE => 'MEDIUMSERIAL', NOTNULL => 1, PRIMARYKEY => 1}, - type_id => {TYPE => 'INT2', NOTNULL => 1}, + type_id => {TYPE => 'INT2', NOTNULL => 1, + REFERENCES => {TABLE => 'flagtypes', + COLUMN => 'id', + DELETE => 'CASCADE'}}, status => {TYPE => 'char(1)', NOTNULL => 1}, - bug_id => {TYPE => 'INT3', NOTNULL => 1}, - attach_id => {TYPE => 'INT3'}, + bug_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE'}}, + attach_id => {TYPE => 'INT3', + REFERENCES => {TABLE => 'attachments', + COLUMN => 'attach_id', + DELETE => 'CASCADE'}}, creation_date => {TYPE => 'DATETIME', NOTNULL => 1}, modification_date => {TYPE => 'DATETIME'}, - setter_id => {TYPE => 'INT3'}, - requestee_id => {TYPE => 'INT3'}, + setter_id => {TYPE => 'INT3', + REFERENCES => {TABLE => 'profiles', + COLUMN => 'userid'}}, + requestee_id => {TYPE => 'INT3', + REFERENCES => {TABLE => 'profiles', + COLUMN => 'userid'}}, ], INDEXES => [ flags_bug_id_idx => [qw(bug_id attach_id)], @@ -508,8 +580,12 @@ use constant ABSTRACT_SCHEMA => { DEFAULT => 'FALSE'}, sortkey => {TYPE => 'INT2', NOTNULL => 1, DEFAULT => '0'}, - grant_group_id => {TYPE => 'INT3'}, - request_group_id => {TYPE => 'INT3'}, + grant_group_id => {TYPE => 'INT3', + REFERENCES => {TABLE => 'groups', + COLUMN => 'id'}}, + request_group_id => {TYPE => 'INT3', + REFERENCES => {TABLE => 'groups', + COLUMN => 'id'}}, ], }, @@ -518,9 +594,18 @@ use constant ABSTRACT_SCHEMA => { # to be set for them. flaginclusions => { FIELDS => [ - type_id => {TYPE => 'INT2', NOTNULL => 1}, - product_id => {TYPE => 'INT2'}, - component_id => {TYPE => 'INT2'}, + type_id => {TYPE => 'INT2', NOTNULL => 1, + REFERENCES => {TABLE => 'flagtypes', + COLUMN => 'id', + DELETE => 'CASCADE'}}, + product_id => {TYPE => 'INT2', + REFERENCES => {TABLE => 'products', + COLUMN => 'id', + DELETE => 'CASCADE'}}, + component_id => {TYPE => 'INT2', + REFERENCES => {TABLE => 'components', + COLUMN => 'id', + DELETE => 'CASCADE'}}, ], INDEXES => [ flaginclusions_type_id_idx => @@ -530,9 +615,18 @@ use constant ABSTRACT_SCHEMA => { flagexclusions => { FIELDS => [ - type_id => {TYPE => 'INT2', NOTNULL => 1}, - product_id => {TYPE => 'INT2'}, - component_id => {TYPE => 'INT2'}, + type_id => {TYPE => 'INT2', NOTNULL => 1, + REFERENCES => {TABLE => 'flagtypes', + COLUMN => 'id', + DELETE => 'CASCADE'}}, + product_id => {TYPE => 'INT2', + REFERENCES => {TABLE => 'products', + COLUMN => 'id', + DELETE => 'CASCADE'}}, + component_id => {TYPE => 'INT2', + REFERENCES => {TABLE => 'components', + COLUMN => 'id', + DELETE => 'CASCADE'}}, ], INDEXES => [ flagexclusions_type_id_idx => @@ -560,11 +654,19 @@ use constant ABSTRACT_SCHEMA => { DEFAULT => 'FALSE'}, enter_bug => {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'FALSE'}, + visibility_field_id => {TYPE => 'INT3', + REFERENCES => {TABLE => 'fielddefs', + COLUMN => 'id'}}, + visibility_value_id => {TYPE => 'INT2'}, + value_field_id => {TYPE => 'INT3', + REFERENCES => {TABLE => 'fielddefs', + COLUMN => 'id'}}, ], INDEXES => [ fielddefs_name_idx => {FIELDS => ['name'], TYPE => 'UNIQUE'}, fielddefs_sortkey_idx => ['sortkey'], + fielddefs_value_field_id_idx => ['value_field_id'], ], }, @@ -576,7 +678,10 @@ use constant ABSTRACT_SCHEMA => { id => {TYPE => 'MEDIUMSERIAL', NOTNULL => 1, PRIMARYKEY => 1}, value => {TYPE => 'varchar(64)', NOTNULL => 1}, - product_id => {TYPE => 'INT2', NOTNULL => 1}, + product_id => {TYPE => 'INT2', NOTNULL => 1, + REFERENCES => {TABLE => 'products', + COLUMN => 'id', + DELETE => 'CASCADE'}}, ], INDEXES => [ versions_product_id_idx => {FIELDS => [qw(product_id value)], @@ -588,7 +693,10 @@ use constant ABSTRACT_SCHEMA => { FIELDS => [ id => {TYPE => 'MEDIUMSERIAL', NOTNULL => 1, PRIMARYKEY => 1}, - product_id => {TYPE => 'INT2', NOTNULL => 1}, + product_id => {TYPE => 'INT2', NOTNULL => 1, + REFERENCES => {TABLE => 'products', + COLUMN => 'id', + DELETE => 'CASCADE'}}, value => {TYPE => 'varchar(20)', NOTNULL => 1}, sortkey => {TYPE => 'INT2', NOTNULL => 1, DEFAULT => 0}, @@ -604,98 +712,65 @@ use constant ABSTRACT_SCHEMA => { bug_status => { FIELDS => [ - id => {TYPE => 'SMALLSERIAL', NOTNULL => 1, - PRIMARYKEY => 1}, - value => {TYPE => 'varchar(64)', NOTNULL => 1}, - sortkey => {TYPE => 'INT2', NOTNULL => 1, DEFAULT => 0}, - isactive => {TYPE => 'BOOLEAN', NOTNULL => 1, - DEFAULT => 'TRUE'}, + @{ dclone(FIELD_TABLE_SCHEMA->{FIELDS}) }, is_open => {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'TRUE'}, + ], INDEXES => [ bug_status_value_idx => {FIELDS => ['value'], TYPE => 'UNIQUE'}, bug_status_sortkey_idx => ['sortkey', 'value'], + bug_status_visibility_value_id_idx => ['visibility_value_id'], ], }, resolution => { - FIELDS => [ - id => {TYPE => 'SMALLSERIAL', NOTNULL => 1, - PRIMARYKEY => 1}, - value => {TYPE => 'varchar(64)', NOTNULL => 1}, - sortkey => {TYPE => 'INT2', NOTNULL => 1, DEFAULT => 0}, - isactive => {TYPE => 'BOOLEAN', NOTNULL => 1, - DEFAULT => 'TRUE'}, - ], + FIELDS => dclone(FIELD_TABLE_SCHEMA->{FIELDS}), INDEXES => [ resolution_value_idx => {FIELDS => ['value'], TYPE => 'UNIQUE'}, resolution_sortkey_idx => ['sortkey', 'value'], + resolution_visibility_value_id_idx => ['visibility_value_id'], ], }, bug_severity => { - FIELDS => [ - id => {TYPE => 'SMALLSERIAL', NOTNULL => 1, - PRIMARYKEY => 1}, - value => {TYPE => 'varchar(64)', NOTNULL => 1}, - sortkey => {TYPE => 'INT2', NOTNULL => 1, DEFAULT => 0}, - isactive => {TYPE => 'BOOLEAN', NOTNULL => 1, - DEFAULT => 'TRUE'}, - ], + FIELDS => dclone(FIELD_TABLE_SCHEMA->{FIELDS}), INDEXES => [ bug_severity_value_idx => {FIELDS => ['value'], TYPE => 'UNIQUE'}, bug_severity_sortkey_idx => ['sortkey', 'value'], + bug_severity_visibility_value_id_idx => ['visibility_value_id'], ], }, priority => { - FIELDS => [ - id => {TYPE => 'SMALLSERIAL', NOTNULL => 1, - PRIMARYKEY => 1}, - value => {TYPE => 'varchar(64)', NOTNULL => 1}, - sortkey => {TYPE => 'INT2', NOTNULL => 1, DEFAULT => 0}, - isactive => {TYPE => 'BOOLEAN', NOTNULL => 1, - DEFAULT => 'TRUE'}, - ], + FIELDS => dclone(FIELD_TABLE_SCHEMA->{FIELDS}), INDEXES => [ priority_value_idx => {FIELDS => ['value'], TYPE => 'UNIQUE'}, priority_sortkey_idx => ['sortkey', 'value'], + priority_visibility_value_id_idx => ['visibility_value_id'], ], }, rep_platform => { - FIELDS => [ - id => {TYPE => 'SMALLSERIAL', NOTNULL => 1, - PRIMARYKEY => 1}, - value => {TYPE => 'varchar(64)', NOTNULL => 1}, - sortkey => {TYPE => 'INT2', NOTNULL => 1, DEFAULT => 0}, - isactive => {TYPE => 'BOOLEAN', NOTNULL => 1, - DEFAULT => 'TRUE'}, - ], + FIELDS => dclone(FIELD_TABLE_SCHEMA->{FIELDS}), INDEXES => [ rep_platform_value_idx => {FIELDS => ['value'], TYPE => 'UNIQUE'}, rep_platform_sortkey_idx => ['sortkey', 'value'], + rep_platform_visibility_value_id_idx => ['visibility_value_id'], ], }, op_sys => { - FIELDS => [ - id => {TYPE => 'SMALLSERIAL', NOTNULL => 1, - PRIMARYKEY => 1}, - value => {TYPE => 'varchar(64)', NOTNULL => 1}, - sortkey => {TYPE => 'INT2', NOTNULL => 1, DEFAULT => 0}, - isactive => {TYPE => 'BOOLEAN', NOTNULL => 1, - DEFAULT => 'TRUE'}, - ], + FIELDS => dclone(FIELD_TABLE_SCHEMA->{FIELDS}), INDEXES => [ op_sys_value_idx => {FIELDS => ['value'], TYPE => 'UNIQUE'}, op_sys_sortkey_idx => ['sortkey', 'value'], + op_sys_visibility_value_id_idx => ['visibility_value_id'], ], }, @@ -840,7 +915,10 @@ use constant ABSTRACT_SCHEMA => { REFERENCES => {TABLE => 'profiles', COLUMN => 'userid', DELETE => 'CASCADE'}}, - component_id => {TYPE => 'INT2', NOTNULL => 1}, + component_id => {TYPE => 'INT2', NOTNULL => 1, + REFERENCES => {TABLE => 'components', + COLUMN => 'id', + DELETE => 'CASCADE'}}, ], INDEXES => [ component_cc_user_id_idx => {FIELDS => [qw(component_id user_id)], @@ -909,8 +987,14 @@ use constant ABSTRACT_SCHEMA => { group_control_map => { FIELDS => [ - group_id => {TYPE => 'INT3', NOTNULL => 1}, - product_id => {TYPE => 'INT3', NOTNULL => 1}, + group_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'groups', + COLUMN => 'id', + DELETE => 'CASCADE'}}, + product_id => {TYPE => 'INT2', NOTNULL => 1, + REFERENCES => {TABLE => 'products', + COLUMN => 'id', + DELETE => 'CASCADE'}}, entry => {TYPE => 'BOOLEAN', NOTNULL => 1}, membercontrol => {TYPE => 'BOOLEAN', NOTNULL => 1}, othercontrol => {TYPE => 'BOOLEAN', NOTNULL => 1}, @@ -938,8 +1022,14 @@ use constant ABSTRACT_SCHEMA => { # if GRANT_REGEXP - record was created by evaluating a regexp user_group_map => { FIELDS => [ - user_id => {TYPE => 'INT3', NOTNULL => 1}, - group_id => {TYPE => 'INT3', NOTNULL => 1}, + user_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'profiles', + COLUMN => 'userid', + DELETE => 'CASCADE'}}, + group_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'groups', + COLUMN => 'id', + DELETE => 'CASCADE'}}, isbless => {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'FALSE'}, grant_type => {TYPE => 'INT1', NOTNULL => 1, @@ -961,8 +1051,14 @@ use constant ABSTRACT_SCHEMA => { # if GROUP_VISIBLE - member groups may see grantor group group_group_map => { FIELDS => [ - member_id => {TYPE => 'INT3', NOTNULL => 1}, - grantor_id => {TYPE => 'INT3', NOTNULL => 1}, + member_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'groups', + COLUMN => 'id', + DELETE => 'CASCADE'}}, + grantor_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'groups', + COLUMN => 'id', + DELETE => 'CASCADE'}}, grant_type => {TYPE => 'INT1', NOTNULL => 1, DEFAULT => GROUP_MEMBERSHIP}, ], @@ -977,8 +1073,14 @@ use constant ABSTRACT_SCHEMA => { # in order to see a bug. bug_group_map => { FIELDS => [ - bug_id => {TYPE => 'INT3', NOTNULL => 1}, - group_id => {TYPE => 'INT3', NOTNULL => 1}, + bug_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE'}}, + group_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'groups', + COLUMN => 'id', + DELETE => 'CASCADE'}}, ], INDEXES => [ bug_group_map_bug_id_idx => @@ -991,8 +1093,14 @@ use constant ABSTRACT_SCHEMA => { # in order to see a named query somebody else shares. namedquery_group_map => { FIELDS => [ - namedquery_id => {TYPE => 'INT3', NOTNULL => 1}, - group_id => {TYPE => 'INT3', NOTNULL => 1}, + namedquery_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'namedqueries', + COLUMN => 'id', + DELETE => 'CASCADE'}}, + group_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'groups', + COLUMN => 'id', + DELETE => 'CASCADE'}}, ], INDEXES => [ namedquery_group_map_namedquery_id_idx => @@ -1003,8 +1111,14 @@ use constant ABSTRACT_SCHEMA => { category_group_map => { FIELDS => [ - category_id => {TYPE => 'INT2', NOTNULL => 1}, - group_id => {TYPE => 'INT3', NOTNULL => 1}, + category_id => {TYPE => 'INT2', NOTNULL => 1, + REFERENCES => {TABLE => 'series_categories', + COLUMN => 'id', + DELETE => 'CASCADE'}}, + group_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'groups', + COLUMN => 'id', + DELETE => 'CASCADE'}}, ], INDEXES => [ category_group_map_category_id_idx => @@ -1062,7 +1176,10 @@ use constant ABSTRACT_SCHEMA => { id => {TYPE => 'SMALLSERIAL', NOTNULL => 1, PRIMARYKEY => 1}, name => {TYPE => 'varchar(64)', NOTNULL => 1}, - product_id => {TYPE => 'INT2', NOTNULL => 1}, + product_id => {TYPE => 'INT2', NOTNULL => 1, + REFERENCES => {TABLE => 'products', + COLUMN => 'id', + DELETE => 'CASCADE'}}, initialowner => {TYPE => 'INT3', NOTNULL => 1, REFERENCES => {TABLE => 'profiles', COLUMN => 'userid'}}, @@ -1086,9 +1203,18 @@ use constant ABSTRACT_SCHEMA => { FIELDS => [ series_id => {TYPE => 'MEDIUMSERIAL', NOTNULL => 1, PRIMARYKEY => 1}, - creator => {TYPE => 'INT3'}, - category => {TYPE => 'INT2', NOTNULL => 1}, - subcategory => {TYPE => 'INT2', NOTNULL => 1}, + creator => {TYPE => 'INT3', + REFERENCES => {TABLE => 'profiles', + COLUMN => 'userid', + DELETE => 'SET NULL'}}, + category => {TYPE => 'INT2', NOTNULL => 1, + REFERENCES => {TABLE => 'series_categories', + COLUMN => 'id', + DELETE => 'CASCADE'}}, + subcategory => {TYPE => 'INT2', NOTNULL => 1, + REFERENCES => {TABLE => 'series_categories', + COLUMN => 'id', + DELETE => 'CASCADE'}}, name => {TYPE => 'varchar(64)', NOTNULL => 1}, frequency => {TYPE => 'INT2', NOTNULL => 1}, last_viewed => {TYPE => 'DATETIME'}, @@ -1105,7 +1231,10 @@ use constant ABSTRACT_SCHEMA => { series_data => { FIELDS => [ - series_id => {TYPE => 'INT3', NOTNULL => 1}, + series_id => {TYPE => 'INT3', NOTNULL => 1, + REFERENCES => {TABLE => 'series', + COLUMN => 'series_id', + DELETE => 'CASCADE'}}, series_date => {TYPE => 'DATETIME', NOTNULL => 1}, series_value => {TYPE => 'INT3', NOTNULL => 1}, ], @@ -1193,7 +1322,10 @@ use constant ABSTRACT_SCHEMA => { FIELDS => [ quipid => {TYPE => 'MEDIUMSERIAL', NOTNULL => 1, PRIMARYKEY => 1}, - userid => {TYPE => 'INT3'}, + userid => {TYPE => 'INT3', + REFERENCES => {TABLE => 'profiles', + COLUMN => 'userid', + DELETE => 'SET NULL'}}, quip => {TYPE => 'MEDIUMTEXT', NOTNULL => 1}, approved => {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'TRUE'}, @@ -1226,7 +1358,10 @@ use constant ABSTRACT_SCHEMA => { setting_value => { FIELDS => [ - name => {TYPE => 'varchar(32)', NOTNULL => 1}, + name => {TYPE => 'varchar(32)', NOTNULL => 1, + REFERENCES => {TABLE => 'setting', + COLUMN => 'name', + DELETE => 'CASCADE'}}, value => {TYPE => 'varchar(32)', NOTNULL => 1}, sortindex => {TYPE => 'INT2', NOTNULL => 1}, ], @@ -1253,6 +1388,93 @@ use constant ABSTRACT_SCHEMA => { ], }, + # THESCHWARTZ TABLES + # ------------------ + # Note: In the standard TheSchwartz schema, most integers are unsigned, + # but we didn't implement unsigned ints for Bugzilla schemas, so we + # just create signed ints, which should be fine. + + ts_funcmap => { + FIELDS => [ + funcid => {TYPE => 'INTSERIAL', PRIMARYKEY => 1, NOTNULL => 1}, + funcname => {TYPE => 'varchar(255)', NOTNULL => 1}, + ], + INDEXES => [ + ts_funcmap_funcname_idx => {FIELDS => ['funcname'], + TYPE => 'UNIQUE'}, + ], + }, + + ts_job => { + FIELDS => [ + # In a standard TheSchwartz schema, this is a BIGINT, but we + # don't have those and I didn't want to add them just for this. + jobid => {TYPE => 'INTSERIAL', PRIMARYKEY => 1, + NOTNULL => 1}, + funcid => {TYPE => 'INT4', NOTNULL => 1}, + # In standard TheSchwartz, this is a MEDIUMBLOB. + arg => {TYPE => 'LONGBLOB'}, + uniqkey => {TYPE => 'varchar(255)'}, + insert_time => {TYPE => 'INT4'}, + run_after => {TYPE => 'INT4', NOTNULL => 1}, + grabbed_until => {TYPE => 'INT4', NOTNULL => 1}, + priority => {TYPE => 'INT2'}, + coalesce => {TYPE => 'varchar(255)'}, + ], + INDEXES => [ + ts_job_funcid_idx => {FIELDS => [qw(funcid uniqkey)], + TYPE => 'UNIQUE'}, + # In a standard TheSchewartz schema, these both go in the other + # direction, but there's no reason to have three indexes that + # all start with the same column, and our naming scheme doesn't + # allow it anyhow. + ts_job_run_after_idx => [qw(run_after funcid)], + ts_job_coalesce_idx => [qw(coalesce funcid)], + ], + }, + + ts_note => { + FIELDS => [ + # This is a BIGINT in standard TheSchwartz schemas. + jobid => {TYPE => 'INT4', NOTNULL => 1}, + notekey => {TYPE => 'varchar(255)'}, + value => {TYPE => 'LONGBLOB'}, + ], + INDEXES => [ + ts_note_jobid_idx => {FIELDS => [qw(jobid notekey)], + TYPE => 'UNIQUE'}, + ], + }, + + ts_error => { + FIELDS => [ + error_time => {TYPE => 'INT4', NOTNULL => 1}, + jobid => {TYPE => 'INT4', NOTNULL => 1}, + message => {TYPE => 'varchar(255)', NOTNULL => 1}, + funcid => {TYPE => 'INT4', NOTNULL => 1, DEFAULT => 0}, + ], + INDEXES => [ + ts_error_funcid_idx => [qw(funcid error_time)], + ts_error_error_time_idx => ['error_time'], + ts_error_jobid_idx => ['jobid'], + ], + }, + + ts_exitstatus => { + FIELDS => [ + jobid => {TYPE => 'INTSERIAL', PRIMARYKEY => 1, + NOTNULL => 1}, + funcid => {TYPE => 'INT4', NOTNULL => 1, DEFAULT => 0}, + status => {TYPE => 'INT2'}, + completion_time => {TYPE => 'INT4'}, + delete_after => {TYPE => 'INT4'}, + ], + INDEXES => [ + ts_exitstatus_funcid_idx => ['funcid'], + ts_exitstatus_delete_after_idx => ['delete_after'], + ], + }, + # SCHEMA STORAGE # -------------- @@ -1265,23 +1487,7 @@ use constant ABSTRACT_SCHEMA => { }; -use constant FIELD_TABLE_SCHEMA => { - FIELDS => [ - id => {TYPE => 'SMALLSERIAL', NOTNULL => 1, - PRIMARYKEY => 1}, - value => {TYPE => 'varchar(64)', NOTNULL => 1}, - sortkey => {TYPE => 'INT2', NOTNULL => 1, DEFAULT => 0}, - isactive => {TYPE => 'BOOLEAN', NOTNULL => 1, - DEFAULT => 'TRUE'}, - ], - # Note that bz_add_field_table should prepend the table name - # to these index names. - INDEXES => [ - value_idx => {FIELDS => ['value'], TYPE => 'UNIQUE'}, - sortkey_idx => ['sortkey', 'value'], - ], -}; - +# Foreign Keys are added in Bugzilla::DB::bz_add_field_tables use constant MULTI_SELECT_VALUE_TABLE => { FIELDS => [ bug_id => {TYPE => 'INT3', NOTNULL => 1}, diff --git a/Bugzilla/DB/Schema/CVS/Entries b/Bugzilla/DB/Schema/CVS/Entries index 87e355afd94917eebf5f0b800fe4d9dd01e9c4bf..6ff61f8b9da31e8b23a005936b19639c63f1bb36 100644 --- a/Bugzilla/DB/Schema/CVS/Entries +++ b/Bugzilla/DB/Schema/CVS/Entries @@ -1,4 +1,4 @@ -/Mysql.pm/1.20/Mon Mar 24 22:47:25 2008//TBUGZILLA-3_2_1 -/Oracle.pm/1.5.2.3/Wed Nov 5 17:13:11 2008//TBUGZILLA-3_2_1 -/Pg.pm/1.15/Tue Dec 11 02:26:49 2007//TBUGZILLA-3_2_1 +/Mysql.pm/1.20/Mon Mar 24 22:47:25 2008//TBUGZILLA-3_3_1 +/Oracle.pm/1.9/Mon Jan 5 19:52:08 2009//TBUGZILLA-3_3_1 +/Pg.pm/1.15/Tue Dec 11 02:26:49 2007//TBUGZILLA-3_3_1 D diff --git a/Bugzilla/DB/Schema/CVS/Tag b/Bugzilla/DB/Schema/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/DB/Schema/CVS/Tag +++ b/Bugzilla/DB/Schema/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/DB/Schema/Oracle.pm b/Bugzilla/DB/Schema/Oracle.pm index bd5c7247692ce780da967dd53863f5bed0f5260c..8332be707a2c5a38c527be9fad9b7f706a3087fd 100644 --- a/Bugzilla/DB/Schema/Oracle.pm +++ b/Bugzilla/DB/Schema/Oracle.pm @@ -152,7 +152,7 @@ sub get_fk_ddl { if ( $update =~ /CASCADE/i ){ my $tr_str = "CREATE OR REPLACE TRIGGER ${fk_name}_UC" - . " AFTER UPDATE ON ". $to_table + . " AFTER UPDATE OF $to_column ON $to_table " . " REFERENCING " . " NEW AS NEW " . " OLD AS OLD " diff --git a/Bugzilla/Field.pm b/Bugzilla/Field.pm index 0d7479034ded25c3b7e503144417cc37d6169120..6d271fe11d16a60a06dc773d736235fbfd6fb8b5 100644 --- a/Bugzilla/Field.pm +++ b/Bugzilla/Field.pm @@ -73,9 +73,11 @@ use strict; use base qw(Exporter Bugzilla::Object); @Bugzilla::Field::EXPORT = qw(check_field get_field_id get_legal_field_values); -use Bugzilla::Util; use Bugzilla::Constants; use Bugzilla::Error; +use Bugzilla::Util; + +use Scalar::Util qw(blessed); ############################### #### Initialization #### @@ -84,16 +86,19 @@ use Bugzilla::Error; use constant DB_TABLE => 'fielddefs'; use constant LIST_ORDER => 'sortkey, name'; -use constant DB_COLUMNS => ( - 'id', - 'name', - 'description', - 'type', - 'custom', - 'mailhead', - 'sortkey', - 'obsolete', - 'enter_bug', +use constant DB_COLUMNS => qw( + id + name + description + type + custom + mailhead + sortkey + obsolete + enter_bug + visibility_field_id + visibility_value_id + value_field_id ); use constant REQUIRED_CREATE_FIELDS => qw(name description); @@ -106,6 +111,12 @@ use constant VALIDATORS => { obsolete => \&_check_obsolete, sortkey => \&_check_sortkey, type => \&_check_type, + visibility_field_id => \&_check_visibility_field_id, +}; + +use constant UPDATE_VALIDATORS => { + value_field_id => \&_check_value_field_id, + visibility_value_id => \&_check_control_value, }; use constant UPDATE_COLUMNS => qw( @@ -114,6 +125,11 @@ use constant UPDATE_COLUMNS => qw( sortkey obsolete enter_bug + visibility_field_id + visibility_value_id + value_field_id + + type ); # How various field types translate into SQL data definitions. @@ -125,6 +141,7 @@ use constant SQL_DEFINITIONS => { DEFAULT => "'---'" }, FIELD_TYPE_TEXTAREA, { TYPE => 'MEDIUMTEXT' }, FIELD_TYPE_DATETIME, { TYPE => 'DATETIME' }, + FIELD_TYPE_BUG_ID, { TYPE => 'INT3' }, }; # Field definitions for the fields that ship with Bugzilla. @@ -136,16 +153,22 @@ use constant DEFAULT_FIELDS => ( {name => 'classification', desc => 'Classification', in_new_bugmail => 1}, {name => 'product', desc => 'Product', in_new_bugmail => 1}, {name => 'version', desc => 'Version', in_new_bugmail => 1}, - {name => 'rep_platform', desc => 'Platform', in_new_bugmail => 1}, + {name => 'rep_platform', desc => 'Platform', in_new_bugmail => 1, + type => FIELD_TYPE_SINGLE_SELECT}, {name => 'bug_file_loc', desc => 'URL', in_new_bugmail => 1}, - {name => 'op_sys', desc => 'OS/Version', in_new_bugmail => 1}, - {name => 'bug_status', desc => 'Status', in_new_bugmail => 1}, + {name => 'op_sys', desc => 'OS/Version', in_new_bugmail => 1, + type => FIELD_TYPE_SINGLE_SELECT}, + {name => 'bug_status', desc => 'Status', in_new_bugmail => 1, + type => FIELD_TYPE_SINGLE_SELECT}, {name => 'status_whiteboard', desc => 'Status Whiteboard', in_new_bugmail => 1}, {name => 'keywords', desc => 'Keywords', in_new_bugmail => 1}, - {name => 'resolution', desc => 'Resolution'}, - {name => 'bug_severity', desc => 'Severity', in_new_bugmail => 1}, - {name => 'priority', desc => 'Priority', in_new_bugmail => 1}, + {name => 'resolution', desc => 'Resolution', + type => FIELD_TYPE_SINGLE_SELECT}, + {name => 'bug_severity', desc => 'Severity', in_new_bugmail => 1, + type => FIELD_TYPE_SINGLE_SELECT}, + {name => 'priority', desc => 'Priority', in_new_bugmail => 1, + type => FIELD_TYPE_SINGLE_SELECT}, {name => 'component', desc => 'Component', in_new_bugmail => 1}, {name => 'assigned_to', desc => 'AssignedTo', in_new_bugmail => 1}, {name => 'reporter', desc => 'ReportedBy', in_new_bugmail => 1}, @@ -172,7 +195,7 @@ use constant DEFAULT_FIELDS => ( {name => 'everconfirmed', desc => 'Ever Confirmed'}, {name => 'reporter_accessible', desc => 'Reporter Accessible'}, {name => 'cclist_accessible', desc => 'CC Accessible'}, - {name => 'bug_group', desc => 'Group'}, + {name => 'bug_group', desc => 'Group', in_new_bugmail => 1}, {name => 'estimated_time', desc => 'Estimated Hours', in_new_bugmail => 1}, {name => 'remaining_time', desc => 'Remaining Hours'}, {name => 'deadline', desc => 'Deadline', in_new_bugmail => 1}, @@ -188,6 +211,20 @@ use constant DEFAULT_FIELDS => ( {name => "owner_idle_time", desc => "Time Since Assignee Touched"}, ); +################ +# Constructors # +################ + +# Override match to add is_select. +sub match { + my $self = shift; + my ($params) = @_; + if (delete $params->{is_select}) { + $params->{type} = [FIELD_TYPE_SINGLE_SELECT, FIELD_TYPE_MULTI_SELECT]; + } + return $self->SUPER::match(@_); +} + ############## # Validators # ############## @@ -253,11 +290,51 @@ sub _check_type { my $saved_type = $type; # The constant here should be updated every time a new, # higher field type is added. - (detaint_natural($type) && $type <= FIELD_TYPE_DATETIME) + (detaint_natural($type) && $type <= FIELD_TYPE_BUG_ID) || ThrowCodeError('invalid_customfield_type', { type => $saved_type }); return $type; } +sub _check_value_field_id { + my ($invocant, $field_id, $is_select) = @_; + $is_select = $invocant->is_select if !defined $is_select; + if ($field_id && !$is_select) { + ThrowUserError('field_value_control_select_only'); + } + return $invocant->_check_visibility_field_id($field_id); +} + +sub _check_visibility_field_id { + my ($invocant, $field_id) = @_; + $field_id = trim($field_id); + return undef if !$field_id; + my $field = Bugzilla::Field->check({ id => $field_id }); + if (blessed($invocant) && $field->id == $invocant->id) { + ThrowUserError('field_cant_control_self', { field => $field }); + } + if (!$field->is_select) { + ThrowUserError('field_control_must_be_select', + { field => $field }); + } + return $field->id; +} + +sub _check_control_value { + my ($invocant, $value_id, $field_id) = @_; + my $field; + if (blessed $invocant) { + $field = $invocant->visibility_field; + } + elsif ($field_id) { + $field = $invocant->new($field_id); + } + # When no field is set, no value is set. + return undef if !$field; + my $value_obj = Bugzilla::Field::Choice->type($field) + ->check({ id => $value_id }); + return $value_obj->id; +} + =pod =head2 Instance Properties @@ -361,25 +438,150 @@ sub enter_bug { return $_[0]->{enter_bug} } =over +=item C<is_select> + +True if this is a C<FIELD_TYPE_SINGLE_SELECT> or C<FIELD_TYPE_MULTI_SELECT> +field. It is only safe to call L</legal_values> if this is true. + =item C<legal_values> -A reference to an array with valid active values for this field. +Valid values for this field, as an array of L<Bugzilla::Field::Choice> +objects. =back =cut +sub is_select { + return ($_[0]->type == FIELD_TYPE_SINGLE_SELECT + || $_[0]->type == FIELD_TYPE_MULTI_SELECT) ? 1 : 0 +} + sub legal_values { my $self = shift; if (!defined $self->{'legal_values'}) { - $self->{'legal_values'} = get_legal_field_values($self->name); + require Bugzilla::Field::Choice; + my @values = Bugzilla::Field::Choice->type($self)->get_all(); + $self->{'legal_values'} = \@values; } return $self->{'legal_values'}; } =pod +=over + +=item C<visibility_field> + +What field controls this field's visibility? Returns a C<Bugzilla::Field> +object representing the field that controls this field's visibility. + +Returns undef if there is no field that controls this field's visibility. + +=back + +=cut + +sub visibility_field { + my $self = shift; + if ($self->{visibility_field_id}) { + $self->{visibility_field} ||= + $self->new($self->{visibility_field_id}); + } + return $self->{visibility_field}; +} + +=pod + +=over + +=item C<visibility_value> + +If we have a L</visibility_field>, then what value does that field have to +be set to in order to show this field? Returns a L<Bugzilla::Field::Choice> +or undef if there is no C<visibility_field> set. + +=back + +=cut + + +sub visibility_value { + my $self = shift; + if ($self->{visibility_field_id}) { + require Bugzilla::Field::Choice; + $self->{visibility_value} ||= + Bugzilla::Field::Choice->type($self->visibility_field)->new( + $self->{visibility_value_id}); + } + return $self->{visibility_value}; +} + +=pod + +=over + +=item C<controls_visibility_of> + +An arrayref of C<Bugzilla::Field> objects, representing fields that this +field controls the visibility of. + +=back + +=cut + +sub controls_visibility_of { + my $self = shift; + $self->{controls_visibility_of} ||= + Bugzilla::Field->match({ visibility_field_id => $self->id }); + return $self->{controls_visibility_of}; +} + +=pod + +=over + +=item C<value_field> + +The Bugzilla::Field that controls the list of values for this field. + +Returns undef if there is no field that controls this field's visibility. + +=back + +=cut + +sub value_field { + my $self = shift; + if ($self->{value_field_id}) { + $self->{value_field} ||= $self->new($self->{value_field_id}); + } + return $self->{value_field}; +} + +=pod + +=over + +=item C<controls_values_of> + +An arrayref of C<Bugzilla::Field> objects, representing fields that this +field controls the values of. + +=back + +=cut + +sub controls_values_of { + my $self = shift; + $self->{controls_values_of} ||= + Bugzilla::Field->match({ value_field_id => $self->id }); + return $self->{controls_values_of}; +} + +=pod + =head2 Instance Mutators These set the particular field that they are named after. @@ -400,6 +602,12 @@ They will throw an error if you try to set the values to something invalid. =item C<set_in_new_bugmail> +=item C<set_visibility_field> + +=item C<set_visibility_value> + +=item C<set_value_field> + =back =cut @@ -409,6 +617,25 @@ sub set_enter_bug { $_[0]->set('enter_bug', $_[1]); } sub set_obsolete { $_[0]->set('obsolete', $_[1]); } sub set_sortkey { $_[0]->set('sortkey', $_[1]); } sub set_in_new_bugmail { $_[0]->set('mailhead', $_[1]); } +sub set_visibility_field { + my ($self, $value) = @_; + $self->set('visibility_field_id', $value); + delete $self->{visibility_field}; + delete $self->{visibility_value}; +} +sub set_visibility_value { + my ($self, $value) = @_; + $self->set('visibility_value_id', $value); + delete $self->{visibility_value}; +} +sub set_value_field { + my ($self, $value) = @_; + $self->set('value_field_id', $value); + delete $self->{value_field}; +} + +# This is only used internally by upgrade code in Bugzilla::Field. +sub _set_type { $_[0]->set('type', $_[1]); } =pod @@ -483,9 +710,7 @@ sub remove_from_db { $dbh->bz_drop_column('bugs', $name); } - if ($type == FIELD_TYPE_SINGLE_SELECT - || $type == FIELD_TYPE_MULTI_SELECT) - { + if ($self->is_select) { # Delete the table that holds the legal values for this field. $dbh->bz_drop_field_tables($self); } @@ -541,9 +766,7 @@ sub create { $dbh->bz_add_column('bugs', $name, SQL_DEFINITIONS->{$type}); } - if ($type == FIELD_TYPE_SINGLE_SELECT - || $type == FIELD_TYPE_MULTI_SELECT) - { + if ($field->is_select) { # Create the table that holds the legal values for this field. $dbh->bz_add_field_tables($field); } @@ -568,9 +791,28 @@ sub run_create_validators { "SELECT MAX(sortkey) + 100 FROM fielddefs") || 100; } + $params->{visibility_value_id} = + $class->_check_control_value($params->{visibility_value_id}, + $params->{visibility_field_id}); + + my $type = $params->{type} || 0; + $params->{value_field_id} = + $class->_check_value_field_id($params->{value_field_id}, + ($type == FIELD_TYPE_SINGLE_SELECT + || $type == FIELD_TYPE_MULTI_SELECT) ? 1 : 0); return $params; } +sub update { + my $self = shift; + my $changes = $self->SUPER::update(@_); + my $dbh = Bugzilla->dbh; + if ($changes->{value_field_id} && $self->is_select) { + $dbh->do("UPDATE " . $self->name . " SET visibility_value_id = NULL"); + } + return $changes; +} + =pod @@ -625,6 +867,7 @@ sub populate_field_definitions { if ($field) { $field->set_description($def->{desc}); $field->set_in_new_bugmail($def->{in_new_bugmail}); + $field->_set_type($def->{type}) if $def->{type}; $field->update(); } else { @@ -632,8 +875,7 @@ sub populate_field_definitions { $def->{mailhead} = $def->{in_new_bugmail}; delete $def->{in_new_bugmail}; } - $def->{description} = $def->{desc}; - delete $def->{desc}; + $def->{description} = delete $def->{desc}; Bugzilla::Field->create($def); } } diff --git a/Bugzilla/Field/CVS/Entries b/Bugzilla/Field/CVS/Entries new file mode 100644 index 0000000000000000000000000000000000000000..598af3d7a71191215612f9fc55526ebbad041cd0 --- /dev/null +++ b/Bugzilla/Field/CVS/Entries @@ -0,0 +1,2 @@ +/Choice.pm/1.7/Fri Nov 7 11:34:44 2008//TBUGZILLA-3_3_1 +D diff --git a/Bugzilla/Field/CVS/Repository b/Bugzilla/Field/CVS/Repository new file mode 100644 index 0000000000000000000000000000000000000000..c4bc29948ee648f46f4cd977194af6a41e02f24f --- /dev/null +++ b/Bugzilla/Field/CVS/Repository @@ -0,0 +1 @@ +mozilla/webtools/bugzilla/Bugzilla/Field diff --git a/Bugzilla/Field/CVS/Root b/Bugzilla/Field/CVS/Root new file mode 100644 index 0000000000000000000000000000000000000000..cdb6f4a0739a0dc53e628026726036377dec3637 --- /dev/null +++ b/Bugzilla/Field/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot diff --git a/Bugzilla/Field/CVS/Tag b/Bugzilla/Field/CVS/Tag new file mode 100644 index 0000000000000000000000000000000000000000..fbedea21ce8ecdf9268a4ea4704638ca4869f24c --- /dev/null +++ b/Bugzilla/Field/CVS/Tag @@ -0,0 +1 @@ +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Field/Choice.pm b/Bugzilla/Field/Choice.pm new file mode 100644 index 0000000000000000000000000000000000000000..9e8fb123581e3032f74814dd12077c1b23a51dee --- /dev/null +++ b/Bugzilla/Field/Choice.pm @@ -0,0 +1,427 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Initial Developer of the Original Code is NASA. +# Portions created by NASA are Copyright (C) 2006 San Jose State +# University Foundation. All Rights Reserved. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org> + +use strict; + +package Bugzilla::Field::Choice; + +use base qw(Bugzilla::Object); + +use Bugzilla::Config qw(SetParam write_params); +use Bugzilla::Constants; +use Bugzilla::Error; +use Bugzilla::Field; +use Bugzilla::Util qw(trim detaint_natural); + +use Scalar::Util qw(blessed); + +################## +# Initialization # +################## + +use constant DB_COLUMNS => qw( + id + value + sortkey + visibility_value_id +); + +use constant UPDATE_COLUMNS => qw( + value + sortkey + visibility_value_id +); + +use constant NAME_FIELD => 'value'; +use constant LIST_ORDER => 'sortkey, value'; + +use constant REQUIRED_CREATE_FIELDS => qw(value); + +use constant VALIDATORS => { + value => \&_check_value, + sortkey => \&_check_sortkey, + visibility_value_id => \&_check_visibility_value_id, +}; + +use constant CLASS_MAP => { + bug_status => 'Bugzilla::Status', +}; + +use constant DEFAULT_MAP => { + op_sys => 'defaultopsys', + rep_platform => 'defaultplatform', + priority => 'defaultpriority', + bug_severity => 'defaultseverity', +}; + +################# +# Class Factory # +################# + +# Bugzilla::Field::Choice is actually an abstract base class. Every field +# type has its own dynamically-generated class for its values. This allows +# certain fields to have special types, like how bug_status's values +# are Bugzilla::Status objects. + +sub type { + my ($class, $field) = @_; + my $field_obj = blessed $field ? $field : Bugzilla::Field->check($field); + my $field_name = $field_obj->name; + + if ($class->CLASS_MAP->{$field_name}) { + return $class->CLASS_MAP->{$field_name}; + } + + # For generic classes, we use a lowercase class name, so as + # not to interfere with any real subclasses we might make some day. + my $package = "Bugzilla::Field::Choice::$field_name"; + + # We check defined so that the package and the stored field are only + # created once globally (at least per request). We prefix it with + # field_ (instead of suffixing it) so that we don't somehow conflict + # with the names of custom fields. + if (!defined Bugzilla->request_cache->{"field_$package"}) { + eval <<EOC; + package $package; + use base qw(Bugzilla::Field::Choice); + use constant DB_TABLE => '$field_name'; +EOC + Bugzilla->request_cache->{"field_$package"} = $field_obj; + } + + return $package; +} + +################ +# Constructors # +################ + +# We just make new() enforce this, which should give developers +# the understanding that you can't use Bugzilla::Field::Choice +# without calling type(). +sub new { + my $class = shift; + if ($class eq 'Bugzilla::Field::Choice') { + ThrowCodeError('field_choice_must_use_type'); + } + $class->SUPER::new(@_); +} + +######################### +# Database Manipulation # +######################### + +# Our subclasses can take more arguments than we normally accept. +# So, we override create() to remove arguments that aren't valid +# columns. (Normally Bugzilla::Object dies if you pass arguments +# that aren't valid columns.) +sub create { + my $class = shift; + my ($params) = @_; + foreach my $key (keys %$params) { + if (!grep {$_ eq $key} $class->DB_COLUMNS) { + delete $params->{$key}; + } + } + return $class->SUPER::create(@_); +} + +sub update { + my $self = shift; + my $dbh = Bugzilla->dbh; + my $fname = $self->field->name; + + $dbh->bz_start_transaction(); + + my ($changes, $old_self) = $self->SUPER::update(@_); + if (exists $changes->{value}) { + my ($old, $new) = @{ $changes->{value} }; + if ($self->field->type == FIELD_TYPE_MULTI_SELECT) { + $dbh->do("UPDATE bug_$fname SET value = ? WHERE value = ?", + undef, $new, $old); + } + else { + $dbh->do("UPDATE bugs SET $fname = ? WHERE $fname = ?", + undef, $new, $old); + } + + if ($old_self->is_default) { + my $param = $self->DEFAULT_MAP->{$self->field->name}; + SetParam($param, $self->name); + write_params(); + } + } + + $dbh->bz_commit_transaction(); + return $changes; +} + +sub remove_from_db { + my $self = shift; + if ($self->is_default) { + ThrowUserError('fieldvalue_is_default', + { field => $self->field, value => $self, + param_name => $self->DEFAULT_MAP->{$self->field->name}, + }); + } + if ($self->is_static) { + ThrowUserError('fieldvalue_not_deletable', + { field => $self->field, value => $self }); + } + if ($self->bug_count) { + ThrowUserError("fieldvalue_still_has_bugs", + { field => $self->field, value => $self }); + } + my $vis_fields = $self->controls_visibility_of_fields; + my $values = $self->controlled_values; + if (@$vis_fields || @$values) { + ThrowUserError('fieldvalue_is_controller', + { value => $self, fields => [map($_->name, @$vis_fields)], + vals => $values }); + } + $self->SUPER::remove_from_db(); +} + + +############# +# Accessors # +############# + +sub sortkey { return $_[0]->{'sortkey'}; } + +sub bug_count { + my $self = shift; + return $self->{bug_count} if defined $self->{bug_count}; + my $dbh = Bugzilla->dbh; + my $fname = $self->field->name; + my $count; + if ($self->field->type == FIELD_TYPE_MULTI_SELECT) { + $count = $dbh->selectrow_array("SELECT COUNT(*) FROM bug_$fname + WHERE value = ?", undef, $self->name); + } + else { + $count = $dbh->selectrow_array("SELECT COUNT(*) FROM bugs + WHERE $fname = ?", + undef, $self->name); + } + $self->{bug_count} = $count; + return $count; +} + +sub field { + my $invocant = shift; + my $class = ref $invocant || $invocant; + my $cache = Bugzilla->request_cache; + # This is just to make life easier for subclasses. Our auto-generated + # subclasses from type() already have this set. + $cache->{"field_$class"} ||= + new Bugzilla::Field({ name => $class->DB_TABLE }); + return $cache->{"field_$class"}; +} + +sub is_default { + my $self = shift; + my $param_value = + Bugzilla->params->{ $self->DEFAULT_MAP->{$self->field->name} }; + return 0 if !defined $param_value; + return $self->name eq $param_value ? 1 : 0; +} + +sub is_static { + my $self = shift; + # If we need to special-case Resolution for *anything* else, it should + # get its own subclass. + if ($self->field->name eq 'resolution') { + return grep($_ eq $self->name, ('', 'FIXED', 'MOVED', 'DUPLICATE')) + ? 1 : 0; + } + elsif ($self->field->custom) { + return $self->name eq '---' ? 1 : 0; + } + return 0; +} + +sub controls_visibility_of_fields { + my $self = shift; + $self->{controls_visibility_of_fields} ||= Bugzilla::Field->match( + { visibility_field_id => $self->field->id, + visibility_value_id => $self->id }); + return $self->{controls_visibility_of_fields}; +} + +sub visibility_value { + my $self = shift; + if ($self->{visibility_value_id}) { + $self->{visibility_value} ||= + Bugzilla::Field::Choice->type($self->field->value_field)->new( + $self->{visibility_value_id}); + } + return $self->{visibility_value}; +} + +sub controlled_values { + my $self = shift; + return $self->{controlled_values} if defined $self->{controlled_values}; + my $fields = $self->field->controls_values_of; + my @controlled_values; + foreach my $field (@$fields) { + my $controlled = Bugzilla::Field::Choice->type($field) + ->match({ visibility_value_id => $self->id }); + push(@controlled_values, @$controlled); + } + $self->{controlled_values} = \@controlled_values; + return $self->{controlled_values}; +} + +############ +# Mutators # +############ + +sub set_name { $_[0]->set('value', $_[1]); } +sub set_sortkey { $_[0]->set('sortkey', $_[1]); } +sub set_visibility_value { + my ($self, $value) = @_; + $self->set('visibility_value_id', $value); + delete $self->{visibility_value}; +} + +############## +# Validators # +############## + +sub _check_value { + my ($invocant, $value) = @_; + + my $field = $invocant->field; + + $value = trim($value); + + # Make sure people don't rename static values + if (blessed($invocant) && $value ne $invocant->name + && $invocant->is_static) + { + ThrowUserError('fieldvalue_not_editable', + { field => $field, old_value => $invocant }); + } + + ThrowUserError('fieldvalue_undefined') if !defined $value || $value eq ""; + ThrowUserError('fieldvalue_name_too_long', { value => $value }) + if length($value) > MAX_FIELD_VALUE_SIZE; + + my $exists = $invocant->type($field)->new({ name => $value }); + if ($exists && (!blessed($invocant) || $invocant->id != $exists->id)) { + ThrowUserError('fieldvalue_already_exists', + { field => $field, value => $exists }); + } + + return $value; +} + +sub _check_sortkey { + my ($invocant, $value) = @_; + $value = trim($value); + return 0 if !$value; + # Store for the error message in case detaint_natural clears it. + my $orig_value = $value; + detaint_natural($value) + || ThrowUserError('fieldvalue_sortkey_invalid', + { sortkey => $orig_value, + field => $invocant->field }); + return $value; +} + +sub _check_visibility_value_id { + my ($invocant, $value_id) = @_; + $value_id = trim($value_id); + my $field = $invocant->field->value_field; + return undef if !$field || !$value_id; + my $value_obj = Bugzilla::Field::Choice->type($field) + ->check({ id => $value_id }); + return $value_obj->id; +} + +1; + +__END__ + +=head1 NAME + +Bugzilla::Field::Choice - A legal value for a <select>-type field. + +=head1 SYNOPSIS + + my $field = new Bugzilla::Field({name => 'bug_status'}); + + my $choice = new Bugzilla::Field::Choice->type($field)->new(1); + + my $choices = Bugzilla::Field::Choice->type($field)->new_from_list([1,2,3]); + my $choices = Bugzilla::Field::Choice->type($field)->get_all(); + my $choices = Bugzilla::Field::Choice->type($field->match({ sortkey => 10 }); + +=head1 DESCRIPTION + +This is an implementation of L<Bugzilla::Object>, but with a twist. +You can't call any class methods (such as C<new>, C<create>, etc.) +directly on C<Bugzilla::Field::Choice> itself. Instead, you have to +call C<Bugzilla::Field::Choice-E<gt>type($field)> to get the class +you're going to instantiate, and then you call the methods on that. + +We do that because each field has its own database table for its values, so +each value type needs its own class. + +See the L</SYNOPSIS> for examples of how this works. + +=head1 METHODS + +=head2 Class Factory + +In object-oriented design, a "class factory" is a method that picks +and returns the right class for you, based on an argument that you pass. + +=over + +=item C<type> + +Takes a single argument, which is either the name of a field from the +C<fielddefs> table, or a L<Bugzilla::Field> object representing a field. + +Returns an appropriate subclass of C<Bugzilla::Field::Choice> that you +can now call class methods on (like C<new>, C<create>, C<match>, etc.) + +B<NOTE>: YOU CANNOT CALL CLASS METHODS ON C<Bugzilla::Field::Choice>. You +must call C<type> to get a class you can call methods on. + +=back + +=head2 Accessors + +These are in addition to the standard L<Bugzilla::Object> accessors. + +=over + +=item C<sortkey> + +The key that determines the sort order of this item. + +=item C<field> + +The L<Bugzilla::Field> object that this field value belongs to. + +=back diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm index a0c9567a2865cf6b46af23770417cbc47f8e9231..618cd3ef4af6cbeb1b6d32f5df5c513d78730fdb 100644 --- a/Bugzilla/Flag.pm +++ b/Bugzilla/Flag.pm @@ -180,7 +180,7 @@ sub attachment { return undef unless $self->attach_id; require Bugzilla::Attachment; - $self->{'attachment'} ||= Bugzilla::Attachment->get($self->attach_id); + $self->{'attachment'} ||= new Bugzilla::Attachment($self->attach_id); return $self->{'attachment'}; } @@ -1106,14 +1106,13 @@ sub notify { foreach my $to (keys %recipients) { # Add threadingmarker to allow flag notification emails to be the # threaded similar to normal bug change emails. - my $user_id = $recipients{$to} ? $recipients{$to}->id : 0; - my $threadingmarker = build_thread_marker($bug->id, $user_id); + my $thread_user_id = $recipients{$to} ? $recipients{$to}->id : 0; my $vars = { 'flag' => $flag, 'to' => $to, 'bug' => $bug, 'attachment' => $attachment, - 'threadingmarker' => $threadingmarker }; + 'threadingmarker' => build_thread_marker($bug->id, $thread_user_id) }; my $lang = $recipients{$to} ? $recipients{$to}->settings->{'lang'}->{'value'} : $default_lang; @@ -1159,6 +1158,44 @@ sub CancelRequests { \@old_summaries, \@new_summaries); } +# This is an internal function used by $bug->flag_types +# and $attachment->flag_types to collect data about available +# flag types and existing flags set on them. You should never +# call this function directly. +sub _flag_types { + my $vars = shift; + + my $target_type = $vars->{target_type}; + my $flags; + + # Retrieve all existing flags for this bug/attachment. + if ($target_type eq 'bug') { + my $bug_id = delete $vars->{bug_id}; + $flags = Bugzilla::Flag->match({target_type => 'bug', bug_id => $bug_id}); + } + elsif ($target_type eq 'attachment') { + my $attach_id = delete $vars->{attach_id}; + $flags = Bugzilla::Flag->match({attach_id => $attach_id}); + } + else { + ThrowCodeError('bad_arg', {argument => 'target_type', + function => 'Bugzilla::Flag::_flag_types'}); + } + + # Get all available flag types for the given product and component. + my $flag_types = Bugzilla::FlagType::match($vars); + + $_->{flags} = [] foreach @$flag_types; + my %flagtypes = map { $_->id => $_ } @$flag_types; + + # Group existing flags per type. + # Call the internal 'type_id' variable instead of the method + # to not create a flagtype object. + push(@{$flagtypes{$_->{type_id}}->{flags}}, $_) foreach @$flags; + + return [sort {$a->sortkey <=> $b->sortkey || $a->name cmp $b->name} values %flagtypes]; +} + =head1 SEE ALSO =over diff --git a/Bugzilla/Group.pm b/Bugzilla/Group.pm index d9f49c0747ef530e6d87741cbb02b72c2c5c4431..455276c99c80ae2e39ffe72c5ce650fc6fe70fba 100644 --- a/Bugzilla/Group.pm +++ b/Bugzilla/Group.pm @@ -198,7 +198,30 @@ sub is_active_bug_group { sub _rederive_regexp { my ($self) = @_; - RederiveRegexp($self->user_regexp, $self->id); + + my $dbh = Bugzilla->dbh; + my $sth = $dbh->prepare("SELECT userid, login_name, group_id + FROM profiles + LEFT JOIN user_group_map + ON user_group_map.user_id = profiles.userid + AND group_id = ? + AND grant_type = ? + AND isbless = 0"); + my $sthadd = $dbh->prepare("INSERT INTO user_group_map + (user_id, group_id, grant_type, isbless) + VALUES (?, ?, ?, 0)"); + my $sthdel = $dbh->prepare("DELETE FROM user_group_map + WHERE user_id = ? AND group_id = ? + AND grant_type = ? and isbless = 0"); + $sth->execute($self->id, GRANT_REGEXP); + my $regexp = $self->user_regexp; + while (my ($uid, $login, $present) = $sth->fetchrow_array) { + if ($regexp ne '' and $login =~ /$regexp/i) { + $sthadd->execute($uid, $self->id, GRANT_REGEXP) unless $present; + } else { + $sthdel->execute($uid, $self->id, GRANT_REGEXP) if $present; + } + } } sub members_non_inherited { @@ -266,35 +289,6 @@ sub ValidateGroupName { return $ret; } -# This sub is not perldoc'ed because we expect it to go away and -# just become the _rederive_regexp private method. -sub RederiveRegexp { - my ($regexp, $gid) = @_; - my $dbh = Bugzilla->dbh; - my $sth = $dbh->prepare("SELECT userid, login_name, group_id - FROM profiles - LEFT JOIN user_group_map - ON user_group_map.user_id = profiles.userid - AND group_id = ? - AND grant_type = ? - AND isbless = 0"); - my $sthadd = $dbh->prepare("INSERT INTO user_group_map - (user_id, group_id, grant_type, isbless) - VALUES (?, ?, ?, 0)"); - my $sthdel = $dbh->prepare("DELETE FROM user_group_map - WHERE user_id = ? AND group_id = ? - AND grant_type = ? and isbless = 0"); - $sth->execute($gid, GRANT_REGEXP); - while (my ($uid, $login, $present) = $sth->fetchrow_array()) { - if (($regexp =~ /\S+/) && ($login =~ m/$regexp/i)) - { - $sthadd->execute($uid, $gid, GRANT_REGEXP) unless $present; - } else { - $sthdel->execute($uid, $gid, GRANT_REGEXP) if $present; - } - } -} - ############################### ### Validators ### ############################### diff --git a/Bugzilla/Hook.pm b/Bugzilla/Hook.pm index de33cf581284db52787a9bf1b6ceea8bf578bda7..a0b14eaa50d225f0b48ce16e8080334bd8a77585 100644 --- a/Bugzilla/Hook.pm +++ b/Bugzilla/Hook.pm @@ -170,6 +170,58 @@ This describes what hooks exist in Bugzilla currently. They are mostly in alphabetical order, but some related hooks are near each other instead of being alphabetical. +=head2 auth-login_methods + +This allows you to add new login types to Bugzilla. +(See L<Bugzilla::Auth::Login>.) + +Params: + +=over + +=item C<modules> + +This is a hash--a mapping from login-type "names" to the actual module on +disk. The keys will be all the values that were passed to +L<Bugzilla::Auth/login> for the C<Login> parameter. The values are the +actual path to the module on disk. (For example, if the key is C<DB>, the +value is F<Bugzilla/Auth/Login/DB.pm>.) + +For your extension, the path will start with +F<extensions/yourextension/lib/>. (See the code in the example extension.) + +If your login type is in the hash as a key, you should set that key to the +right path to your module. That module's C<new> method will be called, +probably with empty parameters. If your login type is I<not> in the hash, +you should not set it. + +You will be prevented from adding new keys to the hash, so make sure your +key is in there before you modify it. (In other words, you can't add in +login methods that weren't passed to L<Bugzilla::Auth/login>.) + +=back + +=head2 auth-verify_methods + +This works just like L</auth-login_methods> except it's for +login verification methods (See L<Bugzilla::Auth::Verify>.) It also +takes a C<modules> parameter, just like L</auth-login_methods>. + +=head2 bug-columns + +This allows you to add new fields that will show up in every L<Bugzilla::Bug> +object. Note that you will also need to use the L</bug-fields> hook in +conjunction with this hook to make this work. + +Params: + +=over + +=item C<columns> - An arrayref containing an array of column names. Push +your column name(s) onto the array. + +=back + =head2 bug-end_of_update This happens at the end of L<Bugzilla::Bug/update>, after all other changes are @@ -189,6 +241,23 @@ C<$changes-E<gt>{field} = [old, new]> =back +=head2 bug-fields + +Allows the addition of database fields from the bugs table to the standard +list of allowable fields in a L<Bugzilla::Bug> object, so that +you can call the field as a method. + +Note: You should add here the names of any fields you added in L</bug-columns>. + +Params: + +=over + +=item C<columns> - A arrayref containing an array of column names. Push +your column name(s) onto the array. + +=back + =head2 buglist-columns This happens in buglist.cgi after the standard columns have been defined and @@ -233,6 +302,51 @@ See L</buglist-columns>. =back +=head2 config-add_panels + +If you want to add new panels to the Parameters administrative interface, +this is where you do it. + +Params: + +=over + +=item C<panel_modules> + +A hashref, where the keys are the "name" of the module and the value +is the Perl module containing that config module. For example, if +the name is C<Auth>, the value would be C<Bugzilla::Config::Auth>. + +For your extension, the Perl module name must start with +C<extensions::yourextension::lib>. (See the code in the example +extension.) + +=back + +=head2 config-modify_panels + +This is how you modify already-existing panels in the Parameters +administrative interface. For example, if you wanted to add a new +Auth method (modifying Bugzilla::Config::Auth) this is how you'd +do it. + +Params: + +=over + +=item C<panels> + +A hashref, where the keys are lower-case panel "names" (like C<auth>, +C<admin>, etc.) and the values are hashrefs. The hashref contains a +single key, C<params>. C<params> is an arrayref--the return value from +C<get_param_list> for that module. You can modify C<params> and +your changes will be reflected in the interface. + +Adding new keys to C<panels> will have no effect. You should use +L</config-add_panels> if you want to add new panels. + +=back + =head2 enter_bug-entrydefaultvars This happens right before the template is loaded on enter_bug.cgi. @@ -336,6 +450,18 @@ database when run. =back +=head2 mailer-before_send + +Called right before L<Bugzilla::Mailer> sends a message to the MTA. + +Params: + +=over + +=item C<email> - The C<Email::MIME> object that's about to be sent. + +=back + =head2 product-confirm_delete Called before displaying the confirmation message when deleting a product. diff --git a/Bugzilla/Install.pm b/Bugzilla/Install.pm index c70f8a8bc47fdead2a989cdb00f1b7a76ec671df..3d382add8b494eaaff5d21a40c514d5476d42a0e 100644 --- a/Bugzilla/Install.pm +++ b/Bugzilla/Install.pm @@ -62,7 +62,9 @@ sub SETTINGS { default => ${Bugzilla->languages}[0] }, # 2007-07-02 altlist@gmail.com -- Bug 225731 quote_replies => { options => ['quoted_reply', 'simple_reply', 'off'], - default => "quoted_reply" } + default => "quoted_reply" }, + # 2008-08-27 LpSolit@gmail.com -- Bug 182238 + timezone => { subclass => 'Timezone', default => 'local' }, } }; diff --git a/Bugzilla/Install/CVS/Entries b/Bugzilla/Install/CVS/Entries index f4d3a077babfc0f0958a61fccd937f9c2bdd0260..5bef5ad7d970eef44ff8bc954f02be34aaceacf8 100644 --- a/Bugzilla/Install/CVS/Entries +++ b/Bugzilla/Install/CVS/Entries @@ -1,7 +1,7 @@ -/CPAN.pm/1.2/Sun Dec 23 05:43:44 2007//TBUGZILLA-3_2_1 -/DB.pm/1.51.2.2/Wed Aug 27 15:22:10 2008//TBUGZILLA-3_2_1 -/Filesystem.pm/1.29.2.2/Fri Jan 23 21:36:28 2009//TBUGZILLA-3_2_1 -/Localconfig.pm/1.12.2.1/Mon Feb 2 18:42:04 2009//TBUGZILLA-3_2_1 -/Requirements.pm/1.47.2.6/Fri Jan 2 23:31:54 2009//TBUGZILLA-3_2_1 -/Util.pm/1.14.2.2/Sat Dec 6 19:52:48 2008//TBUGZILLA-3_2_1 +/CPAN.pm/1.2/Sun Dec 23 05:43:44 2007//TBUGZILLA-3_3_1 +/DB.pm/1.58/Fri Nov 7 11:34:45 2008//TBUGZILLA-3_3_1 +/Filesystem.pm/1.33/Sun Jan 4 14:29:54 2009//TBUGZILLA-3_3_1 +/Localconfig.pm/1.13/Sun Jan 4 14:29:55 2009//TBUGZILLA-3_3_1 +/Requirements.pm/1.56/Fri Jan 2 23:31:22 2009//TBUGZILLA-3_3_1 +/Util.pm/1.16/Sat Dec 6 19:52:06 2008//TBUGZILLA-3_3_1 D diff --git a/Bugzilla/Install/CVS/Tag b/Bugzilla/Install/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/Install/CVS/Tag +++ b/Bugzilla/Install/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm index 270b0e8041a35fb4bdcc2489dbafe105fe14d497..b6bda167e7e1c80d552b527eae55b5e6562d6484 100644 --- a/Bugzilla/Install/DB.pm +++ b/Bugzilla/Install/DB.pm @@ -86,6 +86,12 @@ sub update_fielddefs_definition { } } + $dbh->bz_add_column('fielddefs', 'visibility_field_id', {TYPE => 'INT3'}); + $dbh->bz_add_column('fielddefs', 'visibility_value_id', {TYPE => 'INT2'}); + $dbh->bz_add_column('fielddefs', 'value_field_id', {TYPE => 'INT3'}); + $dbh->bz_add_index('fielddefs', 'fielddefs_value_field_id_idx', + ['value_field_id']); + # Remember, this is not the function for adding general table changes. # That is below. Add new changes to the fielddefs table above this # comment. @@ -526,6 +532,18 @@ sub update_table_definitions { $dbh->bz_alter_column('series', 'query', { TYPE => 'MEDIUMTEXT', NOTNULL => 1 }); + # Add FK to multi select field tables + _add_foreign_keys_to_multiselects(); + + # 2008-07-28 tfu@redhat.com - Bug 431669 + $dbh->bz_alter_column('group_control_map', 'product_id', + { TYPE => 'INT2', NOTNULL => 1 }); + + # 2008-09-07 LpSolit@gmail.com - Bug 452893 + _fix_illegal_flag_modification_dates(); + + _add_visiblity_value_to_value_tables(); + ################################################################ # New --TABLE-- changes should go *** A B O V E *** this point # ################################################################ @@ -2894,7 +2912,25 @@ sub _initialize_workflow { # Make sure the bug status used by the 'duplicate_or_move_bug_status' # parameter has all the required transitions set. - Bugzilla::Status::add_missing_bug_status_transitions(); + my $dup_status = Bugzilla->params->{'duplicate_or_move_bug_status'}; + my $status_id = $dbh->selectrow_array( + 'SELECT id FROM bug_status WHERE value = ?', undef, $dup_status); + # There's a minor chance that this status isn't in the DB. + $status_id || return; + + my $missing_statuses = $dbh->selectcol_arrayref( + 'SELECT id FROM bug_status + LEFT JOIN status_workflow ON old_status = id + AND new_status = ? + WHERE old_status IS NULL', undef, $status_id); + + my $sth = $dbh->prepare('INSERT INTO status_workflow + (old_status, new_status) VALUES (?, ?)'); + + foreach my $old_status_id (@$missing_statuses) { + next if ($old_status_id == $status_id); + $sth->execute($old_status_id, $status_id); + } } sub _make_lang_setting_dynamic { @@ -2993,6 +3029,25 @@ sub _check_content_length { } } +sub _add_foreign_keys_to_multiselects { + my $dbh = Bugzilla->dbh; + + my $names = $dbh->selectcol_arrayref( + 'SELECT name + FROM fielddefs + WHERE type = ' . FIELD_TYPE_MULTI_SELECT); + + foreach my $name (@$names) { + $dbh->bz_add_fk("bug_$name", "bug_id", {TABLE => 'bugs', + COLUMN => 'bug_id', + DELETE => 'CASCADE',}); + + $dbh->bz_add_fk("bug_$name", "value", {TABLE => $name, + COLUMN => 'value', + DELETE => 'RESTRICT',}); + } +} + sub _populate_bugs_fulltext { my $dbh = Bugzilla->dbh; my $fulltext = $dbh->selectrow_array('SELECT 1 FROM bugs_fulltext ' @@ -3057,6 +3112,29 @@ sub _populate_bugs_fulltext { } } +sub _fix_illegal_flag_modification_dates { + my $dbh = Bugzilla->dbh; + + my $rows = $dbh->do('UPDATE flags SET modification_date = creation_date + WHERE modification_date < creation_date'); + # If no rows are affected, $dbh->do returns 0E0 instead of 0. + print "$rows flags had an illegal modification date. Fixed!\n" if ($rows =~ /^\d+$/); +} + +sub _add_visiblity_value_to_value_tables { + my $dbh = Bugzilla->dbh; + my @standard_fields = + qw(bug_status resolution priority bug_severity op_sys rep_platform); + my $custom_fields = $dbh->selectcol_arrayref( + 'SELECT name FROM fielddefs WHERE custom = 1 AND type IN(?,?)', + undef, FIELD_TYPE_SINGLE_SELECT, FIELD_TYPE_MULTI_SELECT); + foreach my $field (@standard_fields, @$custom_fields) { + $dbh->bz_add_column($field, 'visibility_value_id', {TYPE => 'INT2'}); + $dbh->bz_add_index($field, "${field}_visibility_value_id_idx", + ['visibility_value_id']); + } +} + 1; __END__ diff --git a/Bugzilla/Install/Filesystem.pm b/Bugzilla/Install/Filesystem.pm index 54350be9ba564413197369d0fb17b53950a2c48f..bf5ef8e61c67a32cee9fc72b30251c130df72bde 100644 --- a/Bugzilla/Install/Filesystem.pm +++ b/Bugzilla/Install/Filesystem.pm @@ -64,6 +64,7 @@ sub FILESYSTEM { my $libdir = bz_locations()->{'libpath'}; my $extlib = bz_locations()->{'ext_libpath'}; my $skinsdir = bz_locations()->{'skinsdir'}; + my $localconfig = bz_locations()->{'localconfig'}; my $ws_group = Bugzilla->localconfig->{'webservergroup'}; @@ -114,8 +115,11 @@ sub FILESYSTEM { 'customfield.pl' => { perms => $owner_executable }, 'email_in.pl' => { perms => $ws_executable }, 'sanitycheck.pl' => { perms => $ws_executable }, + 'jobqueue.pl' => { perms => $owner_executable }, 'install-module.pl' => { perms => $owner_executable }, + "$localconfig.old" => { perms => $owner_readable }, + 'docs/makedocs.pl' => { perms => $owner_executable }, 'docs/style.css' => { perms => $ws_readable }, 'docs/*/rel_notes.txt' => { perms => $ws_readable }, @@ -167,7 +171,7 @@ sub FILESYSTEM { dirs => $ws_dir_readable }, js => { files => $ws_readable, dirs => $ws_dir_readable }, - $skinsdir => { files => $ws_readable, + skins => { files => $ws_readable, dirs => $ws_dir_readable }, t => { files => $owner_readable, dirs => $owner_dir_readable }, @@ -197,8 +201,8 @@ sub FILESYSTEM { $extensionsdir => $ws_dir_readable, graphs => $ws_dir_writeable, $webdotdir => $ws_dir_writeable, - "$skinsdir/custom" => $ws_dir_readable, - "$skinsdir/contrib" => $ws_dir_readable, + 'skins/custom' => $ws_dir_readable, + 'skins/contrib' => $ws_dir_readable, ); # The name of each file, pointing at its default permissions and @@ -209,6 +213,7 @@ sub FILESYSTEM { # we create. Also, we create placeholders for standard stylesheets # for contrib skins which don't provide them themselves. foreach my $skin_dir ("$skinsdir/custom", <$skinsdir/contrib/*>) { + next unless -d $skin_dir; next if basename($skin_dir) =~ /^cvs$/i; $create_dirs{"$skin_dir/yui"} = $ws_dir_readable; foreach my $base_css (<$skinsdir/standard/*.css>) { @@ -288,12 +293,8 @@ EOT # It's harmless if it isn't accessible... "$datadir/.htaccess" => { perms => $ws_readable, contents => <<EOT # Nothing in this directory is retrievable unless overridden by an .htaccess -# in a subdirectory; the only exception is duplicates.rdf, which is used by -# duplicates.xul and must be accessible from the web server +# in a subdirectory. deny from all -<Files duplicates.rdf> - allow from all -</Files> EOT @@ -372,6 +373,11 @@ EOT unlink "$datadir/versioncache"; } + if (-e "$datadir/duplicates.rdf") { + print "Removing duplicates.rdf...\n"; + unlink "$datadir/duplicates.rdf"; + unlink "$datadir/duplicates-old.rdf"; + } } # A simple helper for creating "empty" CSS files. diff --git a/Bugzilla/Install/Localconfig.pm b/Bugzilla/Install/Localconfig.pm index 28fac39fcae1429c7204d0beec9ee3915c620087..45005f032037da74cbfed8e8482427018b23222b 100644 --- a/Bugzilla/Install/Localconfig.pm +++ b/Bugzilla/Install/Localconfig.pm @@ -32,7 +32,6 @@ use strict; use Bugzilla::Constants; use Bugzilla::Install::Util qw(bin_loc); -use Bugzilla::Util qw(generate_random_password); use Data::Dumper; use File::Basename qw(dirname); @@ -184,28 +183,10 @@ EOT desc => <<EOT # The interdiff feature needs diff, so we have to have that path. # Please specify the directory name only; do not use trailing slash. -EOT - }, - { - name => 'site_wide_secret', - default => generate_random_password(256), - desc => <<EOT -# This secret key is used by your installation for the creation and -# validation of encrypted tokens to prevent unsolicited changes, -# such as bug changes. A random string is generated by default. -# It's very important that this key is kept secret. It also must be -# very long. EOT }, ); -use constant OLD_LOCALCONFIG_VARS => qw( - mysqlpath - contenttypes - pages - severities platforms opsys priorities -); - sub read_localconfig { my ($include_deprecated) = @_; my $filename = bz_locations()->{'localconfig'}; @@ -233,9 +214,27 @@ Please fix the error in your 'localconfig' file. Alternately, rename your EOT } - my @vars = map($_->{name}, LOCALCONFIG_VARS); - push(@vars, OLD_LOCALCONFIG_VARS) if $include_deprecated; - foreach my $var (@vars) { + my @read_symbols; + if ($include_deprecated) { + # First we have to get the whole symbol table + my $safe_root = $s->root; + my %safe_package; + { no strict 'refs'; %safe_package = %{$safe_root . "::"}; } + # And now we read the contents of every var in the symbol table. + # However: + # * We only include symbols that start with an alphanumeric + # character. This excludes symbols like "_<./localconfig" + # that show up in some perls. + # * We ignore the INC symbol, which exists in every package. + # * Perl 5.10 imports a lot of random symbols that all + # contain "::", and we want to ignore those. + @read_symbols = grep { /^[A-Za-z0-1]/ and !/^INC$/ and !/::/ } + (keys %safe_package); + } + else { + @read_symbols = map($_->{name}, LOCALCONFIG_VARS); + } + foreach my $var (@read_symbols) { my $glob = $s->varglob($var); # We can't get the type of a variable out of a Safe automatically. # We can only get the glob itself. So we figure out its type this @@ -302,11 +301,6 @@ sub update_localconfig { } } - my @old_vars; - foreach my $name (OLD_LOCALCONFIG_VARS) { - push(@old_vars, $name) if defined $localconfig->{$name}; - } - if (!$localconfig->{'interdiffbin'} && $output) { print <<EOT @@ -319,30 +313,41 @@ as well), you should install patchutils from: EOT } + my @old_vars; + foreach my $var (keys %$localconfig) { + push(@old_vars, $var) if !grep($_->{name} eq $var, LOCALCONFIG_VARS); + } + my $filename = bz_locations->{'localconfig'}; + # Move any custom or old variables into a separate file. if (scalar @old_vars) { + my $filename_old = "$filename.old"; + open(my $old_file, ">>$filename_old") || die "$filename_old: $!"; + local $Data::Dumper::Purity = 1; + foreach my $var (@old_vars) { + print $old_file Data::Dumper->Dump([$localconfig->{$var}], + ["*$var"]) . "\n\n"; + } + close $old_file; my $oldstuff = join(', ', @old_vars); print <<EOT The following variables are no longer used in $filename, and -should be removed: $oldstuff +have been moved to $filename_old: $oldstuff EOT } - if (scalar @new_vars) { - my $filename = bz_locations->{'localconfig'}; - my $fh = new IO::File($filename, '>>') || die "$filename: $!"; - $fh->seek(0, SEEK_END); - foreach my $var (LOCALCONFIG_VARS) { - if (grep($_ eq $var->{name}, @new_vars)) { - print $fh "\n", $var->{desc}, - Data::Dumper->Dump([$localconfig->{$var->{name}}], - ["*$var->{name}"]); - } - } + # Re-write localconfig + open(my $fh, ">$filename") || die "$filename: $!"; + foreach my $var (LOCALCONFIG_VARS) { + print $fh "\n", $var->{desc}, + Data::Dumper->Dump([$localconfig->{$var->{name}}], + ["*$var->{name}"]); + } + if (@new_vars) { my $newstuff = join(', ', @new_vars); print <<EOT; @@ -417,31 +422,46 @@ variables defined in localconfig, it will print out a warning. =over -=item C<read_localconfig($include_deprecated)> +=item C<read_localconfig> + +=over + +=item B<Description> + +Reads the localconfig file and returns all valid values in a hashref. -Description: Reads the localconfig file and returns all valid - values in a hashref. +=item B<Params> + +=over -Params: C<$include_deprecated> - C<true> if you want the returned - hashref to also include variables listed in - C<OLD_LOCALCONFIG_VARS>, if they exist. Generally - this is only for use by C<update_localconfig>. +=item C<$include_deprecated> + +C<true> if you want the returned hashref to include *any* variable +currently defined in localconfig, even if it doesn't exist in +C<LOCALCONFIG_VARS>. Generally this is is only for use +by L</update_localconfig>. + +=back + +=item B<Returns> + +A hashref of the localconfig variables. If an array is defined in +localconfig, it will be an arrayref in the returned hash. If a +hash is defined, it will be a hashref in the returned hash. +Only includes variables specified in C<LOCALCONFIG_VARS>, unless +C<$include_deprecated> is true. + +=back -Returns: A hashref of the localconfig variables. If an array - is defined, it will be an arrayref in the returned hash. If a - hash is defined, it will be a hashref in the returned hash. - Only includes variables specified in C<LOCALCONFIG_VARS> - (and C<OLD_LOCALCONFIG_VARS> if C<$include_deprecated> is - specified). -=item C<update_localconfig({ output =E<gt> 1 })> +=item C<update_localconfig> Description: Adds any new variables to localconfig that aren't currently defined there. Also optionally prints out a message about vars that *should* be there and aren't. Exits the program if it adds any new vars. -Params: C<output> - C<true> if the function should display informational +Params: C<$output> - C<true> if the function should display informational output and warnings. It will always display errors or any message which would cause program execution to halt. diff --git a/Bugzilla/Install/Requirements.pm b/Bugzilla/Install/Requirements.pm index 47699e4324d710b839950a87fd5e151ac3a25e8e..5647181cc75dacd4100f633aa6c81abba27abea8 100644 --- a/Bugzilla/Install/Requirements.pm +++ b/Bugzilla/Install/Requirements.pm @@ -64,11 +64,22 @@ sub REQUIRED_MODULES { # Require CGI 3.21 for -httponly support, see bug 368502. version => (vers_cmp($perl_ver, '5.10') > -1) ? '3.33' : '3.21' }, + { + package => 'Digest-SHA', + module => 'Digest::SHA', + version => 0 + }, { package => 'TimeDate', module => 'Date::Format', version => '2.21' }, + # 0.28 fixed some important bugs in DateTime. + { + package => 'DateTime', + module => 'DateTime', + version => '0.28' + }, { package => 'PathTools', module => 'File::Spec', @@ -225,6 +236,20 @@ sub OPTIONAL_MODULES { feature => 'Inbound Email' }, + # Mail Queueing + { + package => 'TheSchwartz', + module => 'TheSchwartz', + version => 0, + feature => 'Mail Queueing', + }, + { + package => 'Daemon-Generic', + module => 'Daemon::Generic', + version => 0, + feature => 'Mail Queueing', + }, + # mod_perl { package => 'mod_perl', diff --git a/Bugzilla/Job/CVS/Entries b/Bugzilla/Job/CVS/Entries new file mode 100644 index 0000000000000000000000000000000000000000..a2691d4479f9bc293d2fc29a52b5f45f06207e90 --- /dev/null +++ b/Bugzilla/Job/CVS/Entries @@ -0,0 +1,2 @@ +/Mailer.pm/1.2/Wed Dec 24 04:30:55 2008//TBUGZILLA-3_3_1 +D diff --git a/Bugzilla/Job/CVS/Repository b/Bugzilla/Job/CVS/Repository new file mode 100644 index 0000000000000000000000000000000000000000..5e47bb1632a3158dcb4ee47fd3329adf4443d759 --- /dev/null +++ b/Bugzilla/Job/CVS/Repository @@ -0,0 +1 @@ +mozilla/webtools/bugzilla/Bugzilla/Job diff --git a/Bugzilla/Job/CVS/Root b/Bugzilla/Job/CVS/Root new file mode 100644 index 0000000000000000000000000000000000000000..cdb6f4a0739a0dc53e628026726036377dec3637 --- /dev/null +++ b/Bugzilla/Job/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot diff --git a/Bugzilla/Job/CVS/Tag b/Bugzilla/Job/CVS/Tag new file mode 100644 index 0000000000000000000000000000000000000000..fbedea21ce8ecdf9268a4ea4704638ca4869f24c --- /dev/null +++ b/Bugzilla/Job/CVS/Tag @@ -0,0 +1 @@ +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Job/Mailer.pm b/Bugzilla/Job/Mailer.pm new file mode 100644 index 0000000000000000000000000000000000000000..24b589d801efc8d049b5b45328286c86256d98b4 --- /dev/null +++ b/Bugzilla/Job/Mailer.pm @@ -0,0 +1,57 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# The Initial Developer of the Original Code is Mozilla Corporation. +# Portions created by the Initial Developer are Copyright (C) 2008 +# Mozilla Corporation. All Rights Reserved. +# +# Contributor(s): +# Mark Smith <mark@mozilla.com> +# Max Kanat-Alexander <mkanat@bugzilla.org> + +package Bugzilla::Job::Mailer; +use strict; +use Bugzilla::Mailer; +BEGIN { eval "use base qw(TheSchwartz::Worker)"; } + +# The longest we expect a job to possibly take, in seconds. +use constant grab_for => 300; +# We don't want email to fail permanently very easily. Retry for 30 days. +use constant max_retries => 725; + +# The first few retries happen quickly, but after that we wait an hour for +# each retry. +sub retry_delay { + my $num_retries = shift; + if ($num_retries < 5) { + return (10, 30, 60, 300, 600)[$num_retries]; + } + # One hour + return 60*60; +} + +sub work { + my ($class, $job) = @_; + my $msg = $job->arg->{msg}; + my $success = eval { MessageToMTA($msg, 1); 1; }; + if (!$success) { + $job->failed($@); + undef $@; + } + else { + $job->completed; + } +} + +1; diff --git a/Bugzilla/JobQueue.pm b/Bugzilla/JobQueue.pm new file mode 100644 index 0000000000000000000000000000000000000000..102f58bc68d247f3e4c664b74584ed703ad3af84 --- /dev/null +++ b/Bugzilla/JobQueue.pm @@ -0,0 +1,108 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# The Initial Developer of the Original Code is Mozilla Corporation. +# Portions created by the Initial Developer are Copyright (C) 2008 +# Mozilla Corporation. All Rights Reserved. +# +# Contributor(s): +# Mark Smith <mark@mozilla.com> +# Max Kanat-Alexander <mkanat@bugzilla.org> + +package Bugzilla::JobQueue; + +use strict; + +use Bugzilla::Constants; +use Bugzilla::Error; +use Bugzilla::Install::Util qw(install_string); +BEGIN { eval "use base qw(TheSchwartz)"; } + +# This maps job names for Bugzilla::JobQueue to the appropriate modules. +# If you add new types of jobs, you should add a mapping here. +use constant JOB_MAP => { + send_mail => 'Bugzilla::Job::Mailer', +}; + +sub new { + my $class = shift; + + if (!eval { require TheSchwartz; }) { + ThrowCodeError('jobqueue_not_configured'); + } + + my $lc = Bugzilla->localconfig; + my $self = $class->SUPER::new( + databases => [{ + dsn => Bugzilla->dbh->{private_bz_dsn}, + user => $lc->{db_user}, + pass => $lc->{db_pass}, + prefix => 'ts_', + }], + ); + + return $self; +} + +# A way to get access to the underlying databases directly. +sub bz_databases { + my $self = shift; + my @hashes = keys %{ $self->{databases} }; + return map { $self->driver_for($_) } @hashes; +} + +# inserts a job into the queue to be processed and returns immediately +sub insert { + my $self = shift; + my $job = shift; + + my $mapped_job = JOB_MAP->{$job}; + ThrowCodeError('jobqueue_no_job_mapping', { job => $job }) + if !$mapped_job; + unshift(@_, $mapped_job); + + my $retval = $self->SUPER::insert(@_); + # XXX Need to get an error message here if insert fails, but + # I don't see any way to do that in TheSchwartz. + ThrowCodeError('jobqueue_insert_failed', { job => $job, errmsg => $@ }) + if !$retval; + + return $retval; +} + +1; + +__END__ + +=head1 NAME + +Bugzilla::JobQueue - Interface between Bugzilla and TheSchwartz. + +=head1 SYNOPSIS + + use Bugzilla; + + my $obj = Bugzilla->job_queue(); + $obj->insert('send_mail', { msg => $message }); + +=head1 DESCRIPTION + +Certain tasks should be done asyncronously. The job queue system allows +Bugzilla to use some sort of service to schedule jobs to happen asyncronously. + +=head2 Inserting a Job + +See the synopsis above for an easy to follow example on how to insert a +job into the queue. Give it a name and some arguments and the job will +be sent away to be done later. diff --git a/Bugzilla/JobQueue/CVS/Entries b/Bugzilla/JobQueue/CVS/Entries new file mode 100644 index 0000000000000000000000000000000000000000..961e6e7c37e89da3da7fd83bdde42ecd4e1346bc --- /dev/null +++ b/Bugzilla/JobQueue/CVS/Entries @@ -0,0 +1,2 @@ +/Runner.pm/1.2/Sat Dec 27 00:52:12 2008//TBUGZILLA-3_3_1 +D diff --git a/Bugzilla/JobQueue/CVS/Repository b/Bugzilla/JobQueue/CVS/Repository new file mode 100644 index 0000000000000000000000000000000000000000..60b12ebedfa3ad9f4948f1d0a1b1ffb36189945a --- /dev/null +++ b/Bugzilla/JobQueue/CVS/Repository @@ -0,0 +1 @@ +mozilla/webtools/bugzilla/Bugzilla/JobQueue diff --git a/Bugzilla/JobQueue/CVS/Root b/Bugzilla/JobQueue/CVS/Root new file mode 100644 index 0000000000000000000000000000000000000000..cdb6f4a0739a0dc53e628026726036377dec3637 --- /dev/null +++ b/Bugzilla/JobQueue/CVS/Root @@ -0,0 +1 @@ +:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot diff --git a/Bugzilla/JobQueue/CVS/Tag b/Bugzilla/JobQueue/CVS/Tag new file mode 100644 index 0000000000000000000000000000000000000000..fbedea21ce8ecdf9268a4ea4704638ca4869f24c --- /dev/null +++ b/Bugzilla/JobQueue/CVS/Tag @@ -0,0 +1 @@ +NBUGZILLA-3_3_1 diff --git a/Bugzilla/JobQueue/Runner.pm b/Bugzilla/JobQueue/Runner.pm new file mode 100644 index 0000000000000000000000000000000000000000..06b8a7a94e8d9b77720e45ee615fa2863e578025 --- /dev/null +++ b/Bugzilla/JobQueue/Runner.pm @@ -0,0 +1,99 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# The Initial Developer of the Original Code is Mozilla Corporation. +# Portions created by the Initial Developer are Copyright (C) 2008 +# Mozilla Corporation. All Rights Reserved. +# +# Contributor(s): +# Mark Smith <mark@mozilla.com> +# Max Kanat-Alexander <mkanat@bugzilla.org> + +# XXX In order to support Windows, we have to make gd_redirect_output +# use Log4Perl or something instead of calling "logger". We probably +# also need to use Win32::Daemon or something like that to daemonize. + +package Bugzilla::JobQueue::Runner; + +use strict; +use File::Basename; +use Pod::Usage; + +use Bugzilla::Constants; +use Bugzilla::JobQueue; +use Bugzilla::Util qw(get_text); +BEGIN { eval "use base qw(Daemon::Generic)"; } + +# Required because of a bug in Daemon::Generic where it won't use the +# "version" key from DAEMON_CONFIG. +our $VERSION = BUGZILLA_VERSION; + +use constant DAEMON_CONFIG => ( + progname => basename($0), + pidfile => bz_locations()->{datadir} . '/' . basename($0) . '.pid', + version => BUGZILLA_VERSION, +); + +sub gd_preconfig { + return DAEMON_CONFIG; +} + +sub gd_usage { + pod2usage({ -verbose => 0, -exitval => 'NOEXIT' }); + return 0 +} + +sub gd_check { + my $self = shift; + + # Get a count of all the jobs currently in the queue. + my $jq = Bugzilla->job_queue(); + my @dbs = $jq->bz_databases(); + my $count = 0; + foreach my $driver (@dbs) { + $count += $driver->select_one('SELECT COUNT(*) FROM ts_job', []); + } + print get_text('job_queue_depth', { count => $count }) . "\n"; +} + +sub gd_run { + my $self = shift; + + my $jq = Bugzilla->job_queue(); + $jq->set_verbose($self->{debug}); + foreach my $module (values %{ Bugzilla::JobQueue::JOB_MAP() }) { + eval "use $module"; + $jq->can_do($module); + } + $jq->work; +} + +1; + +__END__ + +=head1 NAME + +Bugzilla::JobQueue::Runner - A class representing the daemon that runs the +job queue. + +=head1 SYNOPSIS + + use Bugzilla::JobQueue::Runner; + Bugzilla::JobQueue::Runner->new(); + +=head1 DESCRIPTION + +This is a subclass of L<Daemon::Generic> that is used by L<jobqueue> +to run the Bugzilla job queue. diff --git a/Bugzilla/Mailer.pm b/Bugzilla/Mailer.pm index 7b673440b0552f8c96c26277a2b7eef026c512e9..d3810b72bcae4b9d331d31c8e6899155a9793860 100644 --- a/Bugzilla/Mailer.pm +++ b/Bugzilla/Mailer.pm @@ -39,6 +39,7 @@ use base qw(Exporter); use Bugzilla::Constants; use Bugzilla::Error; +use Bugzilla::Hook; use Bugzilla::Util; use Date::Format qw(time2str); @@ -52,12 +53,28 @@ use Email::MIME::Modifier; use Email::Send; sub MessageToMTA { - my ($msg) = (@_); + my ($msg, $send_now) = (@_); my $method = Bugzilla->params->{'mail_delivery_method'}; return if $method eq 'None'; + if (Bugzilla->params->{'use_mailer_queue'} and !$send_now) { + Bugzilla->job_queue->insert('send_mail', { msg => $msg }); + return; + } + my $email = ref($msg) ? $msg : Email::MIME->new($msg); + # We add this header to uniquely identify all email that we + # send as coming from this Bugzilla installation. + # + # We don't use correct_urlbase, because we want this URL to + # *always* be the same for this Bugzilla, in every email, + # and some emails we send when we're logged out (in which case + # some emails might get urlbase while the logged-in emails might + # get sslbase). Also, we want this to stay the same even if + # the admin changes the "ssl" parameter. + $email->header_set('X-Bugzilla-URL', Bugzilla->params->{'urlbase'}); + # We add this header to mark the mail as "auto-generated" and # thus to hopefully avoid auto replies. $email->header_set('Auto-Submitted', 'auto-generated'); @@ -144,6 +161,8 @@ sub MessageToMTA { Debug => Bugzilla->params->{'smtp_debug'}; } + Bugzilla::Hook::process('mailer-before_send', { email => $email }); + if ($method eq "Test") { my $filename = bz_locations()->{'datadir'} . '/mailer.testfile'; open TESTFILE, '>>', $filename; diff --git a/Bugzilla/Object.pm b/Bugzilla/Object.pm index d616bb2daca8f459cd85e6f41b10c75382a5ae7e..53720327b59be3e20abf69763456c48d470ddefd 100644 --- a/Bugzilla/Object.pm +++ b/Bugzilla/Object.pm @@ -63,7 +63,10 @@ sub _init { my $name_field = $class->NAME_FIELD; my $id_field = $class->ID_FIELD; - my $id = $param unless (ref $param eq 'HASH'); + my $id = $param; + if (ref $param eq 'HASH') { + $id = $param->{id}; + } my $object; if (defined $id) { @@ -114,12 +117,10 @@ sub check { if (!ref $param) { $param = { name => $param }; } - # Don't allow empty names. - if (exists $param->{name}) { - $param->{name} = trim($param->{name}); - $param->{name} || ThrowUserError('object_name_not_specified', - { class => $class }); - } + # Don't allow empty names or ids. + my $check_param = exists $param->{id} ? $param->{id} : $param->{name}; + $check_param = trim($check_param); + $check_param || ThrowUserError('object_not_specified', { class => $class }); my $obj = $class->new($param) || ThrowUserError('object_does_not_exist', {%$param, class => $class}); return $obj; @@ -237,6 +238,14 @@ sub set { $self->{$field} = $value; } +sub set_all { + my ($self, $params) = @_; + foreach my $key (keys %$params) { + my $method = "set_$key"; + $self->$method($params->{$key}); + } +} + sub update { my $self = shift; @@ -280,9 +289,22 @@ sub update { $dbh->bz_commit_transaction(); + if (wantarray) { + return (\%changes, $old_self); + } + return \%changes; } +sub remove_from_db { + my $self = shift; + my $table = $self->DB_TABLE; + my $id_field = $self->ID_FIELD; + Bugzilla->dbh->do("DELETE FROM $table WHERE $id_field = ?", + undef, $self->id); + undef $self; +} + ############################### #### Subroutines ###### ############################### @@ -511,7 +533,9 @@ as the value in the L</ID_FIELD> column). If you pass in a hashref, you can pass a C<name> key. The value of the C<name> key is the case-insensitive name of the object -(from L</NAME_FIELD>) in the DB. +(from L</NAME_FIELD>) in the DB. You can also pass in an C<id> key +which will be interpreted as the id of the object you want (overriding the +C<name> key). B<Additional Parameters Available for Subclasses> @@ -698,6 +722,8 @@ updated, and they will only be updated if their values have changed. =item B<Returns> +B<In scalar context:> + A hashref showing what changed during the update. The keys are the column names from L</UPDATE_COLUMNS>. If a field was not changed, it will not be in the hash at all. If the field was changed, the key will point to an arrayref. @@ -706,14 +732,27 @@ will be the new value. If there were no changes, we return a reference to an empty hash. +B<In array context:> + +Returns a list, where the first item is the above hashref. The second item +is the object as it was in the database before update() was called. (This +is mostly useful to subclasses of C<Bugzilla::Object> that are implementing +C<update>.) + =back +=item C<remove_from_db> + +Removes this object from the database. Will throw an error if you can't +remove it for some reason. The object will then be destroyed, as it is +not safe to use the object after it has been removed from the database. + =back -=head2 Subclass Helpers +=head2 Mutators -These functions are intended only for use by subclasses. If -you call them from anywhere else, they will throw a C<CodeError>. +These are used for updating the values in objects, before calling +C<update>. =over @@ -734,9 +773,11 @@ C<set> will call it with C<($value, $field)> as arguments, after running the validator for this particular field. C<_set_global_validator> does not return anything. - See L</VALIDATORS> for more information. +B<NOTE>: This function is intended only for use by subclasses. If +you call it from anywhere else, it will throw a C<CodeError>. + =item B<Params> =over @@ -752,6 +793,27 @@ be the same as the name of the field in L</VALIDATORS>, if it exists there. =back + +=item C<set_all> + +=over + +=item B<Description> + +This is a convenience function which is simpler than calling many different +C<set_> functions in a row. You pass a hashref of parameters and it calls +C<set_$key($value)> for every item in the hashref. + +=item B<Params> + +Takes a hashref of the fields that need to be set, pointing to the value +that should be passed to the C<set_> function that is called. + +=item B<Returns> (nothing) + +=back + + =back =head2 Simple Validators diff --git a/Bugzilla/Product.pm b/Bugzilla/Product.pm index 95a0e38407a3cd4a04935c7176e67165669b8cf8..396aaa346704b9ac1a670d745100cee0a3993627 100644 --- a/Bugzilla/Product.pm +++ b/Bugzilla/Product.pm @@ -13,20 +13,23 @@ # The Original Code is the Bugzilla Bug Tracking System. # # Contributor(s): Tiago R. Mello <timello@async.com.br> +# Frédéric Buclin <LpSolit@gmail.com> use strict; package Bugzilla::Product; -use Bugzilla::Version; -use Bugzilla::Milestone; - use Bugzilla::Constants; use Bugzilla::Util; -use Bugzilla::Group; use Bugzilla::Error; - +use Bugzilla::Group; +use Bugzilla::Version; +use Bugzilla::Milestone; +use Bugzilla::Field; +use Bugzilla::Status; use Bugzilla::Install::Requirements; +use Bugzilla::Mailer; +use Bugzilla::Series; use base qw(Bugzilla::Object); @@ -39,22 +42,81 @@ use constant DEFAULT_CLASSIFICATION_ID => 1; use constant DB_TABLE => 'products'; use constant DB_COLUMNS => qw( - products.id - products.name - products.classification_id - products.description - products.milestoneurl - products.disallownew - products.votesperuser - products.maxvotesperbug - products.votestoconfirm - products.defaultmilestone + id + name + classification_id + description + milestoneurl + disallownew + votesperuser + maxvotesperbug + votestoconfirm + defaultmilestone +); + +use constant REQUIRED_CREATE_FIELDS => qw( + name + description + version ); +use constant UPDATE_COLUMNS => qw( + name + description + defaultmilestone + milestoneurl + disallownew + votesperuser + maxvotesperbug + votestoconfirm +); + +use constant VALIDATORS => { + classification => \&_check_classification, + name => \&_check_name, + description => \&_check_description, + version => \&_check_version, + defaultmilestone => \&_check_default_milestone, + milestoneurl => \&_check_milestone_url, + disallownew => \&Bugzilla::Object::check_boolean, + votesperuser => \&_check_votes_per_user, + maxvotesperbug => \&_check_votes_per_bug, + votestoconfirm => \&_check_votes_to_confirm, + create_series => \&Bugzilla::Object::check_boolean +}; + ############################### #### Constructors ##### ############################### +sub create { + my $class = shift; + my $dbh = Bugzilla->dbh; + + $dbh->bz_start_transaction(); + + $class->check_required_create_fields(@_); + + my $params = $class->run_create_validators(@_); + # Some fields do not exist in the DB as is. + $params->{classification_id} = delete $params->{classification}; + my $version = delete $params->{version}; + my $create_series = delete $params->{create_series}; + + my $product = $class->insert_create_data($params); + + # Add the new version and milestone into the DB as valid values. + Bugzilla::Version::create($version, $product); + Bugzilla::Milestone->create({name => $params->{defaultmilestone}, product => $product}); + + # Create groups and series for the new product, if requested. + $product->_create_bug_group() if Bugzilla->params->{'makeproductgroups'}; + $product->_create_series() if $create_series; + + $dbh->bz_commit_transaction(); + return $product; +} + # This is considerably faster than calling new_from_list three times # for each product in the list, particularly with hundreds or thousands # of products. @@ -78,10 +140,508 @@ sub preload { } } +sub update { + my $self = shift; + my $dbh = Bugzilla->dbh; + my $user = Bugzilla->user; + + # Don't update the DB if something goes wrong below -> transaction. + $dbh->bz_start_transaction(); + my ($changes, $old_self) = $self->SUPER::update(@_); + + # We also have to fix votes. + my @msgs; # Will store emails to send to voters. + if ($changes->{maxvotesperbug} || $changes->{votesperuser} || $changes->{votestoconfirm}) { + # We cannot |use| these modules, due to dependency loops. + require Bugzilla::Bug; + import Bugzilla::Bug qw(RemoveVotes CheckIfVotedConfirmed); + require Bugzilla::User; + import Bugzilla::User qw(user_id_to_login); + + # 1. too many votes for a single user on a single bug. + my @toomanyvotes_list = (); + if ($self->max_votes_per_bug < $self->votes_per_user) { + my $votes = $dbh->selectall_arrayref( + 'SELECT votes.who, votes.bug_id + FROM votes + INNER JOIN bugs + ON bugs.bug_id = votes.bug_id + WHERE bugs.product_id = ? + AND votes.vote_count > ?', + undef, ($self->id, $self->max_votes_per_bug)); + + foreach my $vote (@$votes) { + my ($who, $id) = (@$vote); + # If some votes are removed, RemoveVotes() returns a list + # of messages to send to voters. + push(@msgs, RemoveVotes($id, $who, 'votes_too_many_per_bug')); + my $name = user_id_to_login($who); + + push(@toomanyvotes_list, {id => $id, name => $name}); + } + } + $changes->{'too_many_votes'} = \@toomanyvotes_list; + + # 2. too many total votes for a single user. + # This part doesn't work in the general case because RemoveVotes + # doesn't enforce votesperuser (except per-bug when it's less + # than maxvotesperbug). See Bugzilla::Bug::RemoveVotes(). + + my $votes = $dbh->selectall_arrayref( + 'SELECT votes.who, votes.vote_count + FROM votes + INNER JOIN bugs + ON bugs.bug_id = votes.bug_id + WHERE bugs.product_id = ?', + undef, $self->id); + + my %counts; + foreach my $vote (@$votes) { + my ($who, $count) = @$vote; + if (!defined $counts{$who}) { + $counts{$who} = $count; + } else { + $counts{$who} += $count; + } + } + my @toomanytotalvotes_list = (); + foreach my $who (keys(%counts)) { + if ($counts{$who} > $self->votes_per_user) { + my $bug_ids = $dbh->selectcol_arrayref( + 'SELECT votes.bug_id + FROM votes + INNER JOIN bugs + ON bugs.bug_id = votes.bug_id + WHERE bugs.product_id = ? + AND votes.who = ?', + undef, ($self->id, $who)); + + foreach my $bug_id (@$bug_ids) { + # RemoveVotes() returns a list of messages to send + # in case some voters had too many votes. + push(@msgs, RemoveVotes($bug_id, $who, 'votes_too_many_per_user')); + my $name = user_id_to_login($who); + + push(@toomanytotalvotes_list, {id => $bug_id, name => $name}); + } + } + } + $changes->{'too_many_total_votes'} = \@toomanytotalvotes_list; + + # 3. enough votes to confirm + my $bug_list = + $dbh->selectcol_arrayref('SELECT bug_id FROM bugs WHERE product_id = ? + AND bug_status = ? AND votes >= ?', + undef, ($self->id, 'UNCONFIRMED', $self->votes_to_confirm)); + + my @updated_bugs = (); + foreach my $bug_id (@$bug_list) { + my $confirmed = CheckIfVotedConfirmed($bug_id, $user->id); + push (@updated_bugs, $bug_id) if $confirmed; + } + $changes->{'confirmed_bugs'} = \@updated_bugs; + } + + # Also update group settings. + if ($self->{check_group_controls}) { + require Bugzilla::Bug; + import Bugzilla::Bug qw(LogActivityEntry); + + my $old_settings = $old_self->group_controls; + my $new_settings = $self->group_controls; + my $timestamp = $dbh->selectrow_array('SELECT NOW()'); + + foreach my $gid (keys %$new_settings) { + my $old_setting = $old_settings->{$gid} || {}; + my $new_setting = $new_settings->{$gid}; + # If all new settings are 0 for a given group, we delete the entry + # from group_control_map, so we have to track it here. + my $all_zero = 1; + my @fields; + my @values; + + foreach my $field ('entry', 'membercontrol', 'othercontrol', 'canedit', + 'editcomponents', 'editbugs', 'canconfirm') + { + my $old_value = $old_setting->{$field}; + my $new_value = $new_setting->{$field}; + $all_zero = 0 if $new_value; + next if (defined $old_value && $old_value == $new_value); + push(@fields, $field); + # The value has already been validated. + detaint_natural($new_value); + push(@values, $new_value); + } + # Is there anything to update? + next unless scalar @fields; + + if ($all_zero) { + $dbh->do('DELETE FROM group_control_map + WHERE product_id = ? AND group_id = ?', + undef, $self->id, $gid); + } + else { + if (exists $old_setting->{group}) { + # There is already an entry in the DB. + my $set_fields = join(', ', map {"$_ = ?"} @fields); + $dbh->do("UPDATE group_control_map SET $set_fields + WHERE product_id = ? AND group_id = ?", + undef, (@values, $self->id, $gid)); + } + else { + # No entry yet. + my $fields = join(', ', @fields); + # +2 because of the product and group IDs. + my $qmarks = join(',', ('?') x (scalar @fields + 2)); + $dbh->do("INSERT INTO group_control_map (product_id, group_id, $fields) + VALUES ($qmarks)", undef, ($self->id, $gid, @values)); + } + } + + # If the group is mandatory, restrict all bugs to it. + if ($new_setting->{membercontrol} == CONTROLMAPMANDATORY) { + my $bug_ids = + $dbh->selectcol_arrayref('SELECT bugs.bug_id + FROM bugs + LEFT JOIN bug_group_map + ON bug_group_map.bug_id = bugs.bug_id + AND group_id = ? + WHERE product_id = ? + AND bug_group_map.bug_id IS NULL', + undef, $gid, $self->id); + + if (scalar @$bug_ids) { + my $sth = $dbh->prepare('INSERT INTO bug_group_map (bug_id, group_id) + VALUES (?, ?)'); + + foreach my $bug_id (@$bug_ids) { + $sth->execute($bug_id, $gid); + # Add this change to the bug history. + LogActivityEntry($bug_id, 'bug_group', '', + $new_setting->{group}->name, + Bugzilla->user->id, $timestamp); + } + push(@{$changes->{'group_controls'}->{'now_mandatory'}}, + {name => $new_setting->{group}->name, + bug_count => scalar @$bug_ids}); + } + } + # If the group can no longer be used to restrict bugs, remove them. + elsif ($new_setting->{membercontrol} == CONTROLMAPNA) { + my $bug_ids = + $dbh->selectcol_arrayref('SELECT bugs.bug_id + FROM bugs + INNER JOIN bug_group_map + ON bug_group_map.bug_id = bugs.bug_id + WHERE product_id = ? AND group_id = ?', + undef, $self->id, $gid); + + if (scalar @$bug_ids) { + $dbh->do('DELETE FROM bug_group_map WHERE group_id = ? AND ' . + $dbh->sql_in('bug_id', $bug_ids), undef, $gid); + + # Add this change to the bug history. + foreach my $bug_id (@$bug_ids) { + LogActivityEntry($bug_id, 'bug_group', + $old_setting->{group}->name, '', + Bugzilla->user->id, $timestamp); + } + push(@{$changes->{'group_controls'}->{'now_na'}}, + {name => $old_setting->{group}->name, + bug_count => scalar @$bug_ids}); + } + } + } + } + $dbh->bz_commit_transaction(); + # Changes have been committed. + delete $self->{check_group_controls}; + + # Now that changes have been committed, we can send emails to voters. + foreach my $msg (@msgs) { + MessageToMTA($msg); + } + + return $changes; +} + +sub remove_from_db { + my $self = shift; + my $user = Bugzilla->user; + my $dbh = Bugzilla->dbh; + + $dbh->bz_start_transaction(); + + if ($self->bug_count) { + if (Bugzilla->params->{'allowbugdeletion'}) { + require Bugzilla::Bug; + foreach my $bug_id (@{$self->bug_ids}) { + # Note that we allow the user to delete bugs he can't see, + # which is okay, because he's deleting the whole Product. + my $bug = new Bugzilla::Bug($bug_id); + $bug->remove_from_db(); + } + } + else { + ThrowUserError('product_has_bugs', { nb => $self->bug_count }); + } + } + + # XXX - This line can go away as soon as bug 427455 is fixed. + $dbh->do("DELETE FROM group_control_map WHERE product_id = ?", undef, $self->id); + $dbh->do("DELETE FROM products WHERE id = ?", undef, $self->id); + + $dbh->bz_commit_transaction(); + + # We have to delete these internal variables, else we get + # the old lists of products and classifications again. + delete $user->{selectable_products}; + delete $user->{selectable_classifications}; + +} + +############################### +#### Validators #### +############################### + +sub _check_classification { + my ($invocant, $classification_name) = @_; + + my $classification_id = 1; + if (Bugzilla->params->{'useclassification'}) { + my $classification = Bugzilla::Classification->check($classification_name); + $classification_id = $classification->id; + } + return $classification_id; +} + +sub _check_name { + my ($invocant, $name) = @_; + + $name = trim($name); + $name || ThrowUserError('product_blank_name'); + + if (length($name) > MAX_PRODUCT_SIZE) { + ThrowUserError('product_name_too_long', {'name' => $name}); + } + + my $product = new Bugzilla::Product({name => $name}); + if ($product && (!ref $invocant || $product->id != $invocant->id)) { + # Check for exact case sensitive match: + if ($product->name eq $name) { + ThrowUserError('product_name_already_in_use', {'product' => $product->name}); + } + else { + ThrowUserError('product_name_diff_in_case', {'product' => $name, + 'existing_product' => $product->name}); + } + } + return $name; +} + +sub _check_description { + my ($invocant, $description) = @_; + + $description = trim($description); + $description || ThrowUserError('product_must_have_description'); + return $description; +} + +sub _check_version { + my ($invocant, $version) = @_; + + $version = trim($version); + $version || ThrowUserError('product_must_have_version'); + # We will check the version length when Bugzilla::Version->create will do it. + return $version; +} + +sub _check_default_milestone { + my ($invocant, $milestone) = @_; + + # Do nothing if target milestones are not in use. + unless (Bugzilla->params->{'usetargetmilestone'}) { + return (ref $invocant) ? $invocant->default_milestone : '---'; + } + + $milestone = trim($milestone); + + if (ref $invocant) { + # The default milestone must be one of the existing milestones. + my $mil_obj = new Bugzilla::Milestone({name => $milestone, product => $invocant}); + + $mil_obj || ThrowUserError('product_must_define_defaultmilestone', + {product => $invocant->name, + milestone => $milestone}); + } + else { + $milestone ||= '---'; + } + return $milestone; +} + +sub _check_milestone_url { + my ($invocant, $url) = @_; + + # Do nothing if target milestones are not in use. + unless (Bugzilla->params->{'usetargetmilestone'}) { + return (ref $invocant) ? $invocant->milestone_url : ''; + } + + $url = trim($url || ''); + return $url; +} + +sub _check_votes_per_user { + return _check_votes(@_, 0); +} + +sub _check_votes_per_bug { + return _check_votes(@_, 10000); +} + +sub _check_votes_to_confirm { + return _check_votes(@_, 0); +} + +# This subroutine is only used internally by other _check_votes_* validators. +sub _check_votes { + my ($invocant, $votes, $field, $default) = @_; + + detaint_natural($votes); + # On product creation, if the number of votes is not a valid integer, + # we silently fall back to the given default value. + # If the product already exists and the change is illegal, we complain. + if (!defined $votes) { + if (ref $invocant) { + ThrowUserError('product_illegal_votes', {field => $field, votes => $_[1]}); + } + else { + $votes = $default; + } + } + return $votes; +} + ############################### #### Methods #### ############################### +sub _create_bug_group { + my $self = shift; + my $dbh = Bugzilla->dbh; + + my $group_name = $self->name; + while (new Bugzilla::Group({name => $group_name})) { + $group_name .= '_'; + } + my $group_description = get_text('bug_group_description', {product => $self}); + + my $group = Bugzilla::Group->create({name => $group_name, + description => $group_description, + isbuggroup => 1}); + + # Associate the new group and new product. + $dbh->do('INSERT INTO group_control_map + (group_id, product_id, entry, membercontrol, othercontrol, canedit) + VALUES (?, ?, ?, ?, ?, ?)', + undef, ($group->id, $self->id, Bugzilla->params->{'useentrygroupdefault'}, + CONTROLMAPDEFAULT, CONTROLMAPNA, 0)); +} + +sub _create_series { + my $self = shift; + + my @series; + # We do every status, every resolution, and an "opened" one as well. + foreach my $bug_status (@{get_legal_field_values('bug_status')}) { + push(@series, [$bug_status, "bug_status=" . url_quote($bug_status)]); + } + + foreach my $resolution (@{get_legal_field_values('resolution')}) { + next if !$resolution; + push(@series, [$resolution, "resolution=" . url_quote($resolution)]); + } + + my @openedstatuses = BUG_STATE_OPEN; + my $query = join("&", map { "bug_status=" . url_quote($_) } @openedstatuses); + push(@series, [get_text('series_all_open'), $query]); + + foreach my $sdata (@series) { + my $series = new Bugzilla::Series(undef, $self->name, + get_text('series_subcategory'), + $sdata->[0], Bugzilla->user->id, 1, + $sdata->[1] . "&product=" . url_quote($self->name), 1); + $series->writeToDatabase(); + } +} + +sub set_name { $_[0]->set('name', $_[1]); } +sub set_description { $_[0]->set('description', $_[1]); } +sub set_default_milestone { $_[0]->set('defaultmilestone', $_[1]); } +sub set_milestone_url { $_[0]->set('milestoneurl', $_[1]); } +sub set_disallow_new { $_[0]->set('disallownew', $_[1]); } +sub set_votes_per_user { $_[0]->set('votesperuser', $_[1]); } +sub set_votes_per_bug { $_[0]->set('maxvotesperbug', $_[1]); } +sub set_votes_to_confirm { $_[0]->set('votestoconfirm', $_[1]); } + +sub set_group_controls { + my ($self, $group, $settings) = @_; + + $group->is_active_bug_group + || ThrowUserError('product_illegal_group', {group => $group}); + + scalar(keys %$settings) + || ThrowCodeError('product_empty_group_controls', {group => $group}); + + # We store current settings for this group. + my $gs = $self->group_controls->{$group->id}; + # If there is no entry for this group yet, create a default hash. + unless (defined $gs) { + $gs = { entry => 0, + membercontrol => CONTROLMAPNA, + othercontrol => CONTROLMAPNA, + canedit => 0, + editcomponents => 0, + editbugs => 0, + canconfirm => 0, + group => $group }; + } + + # Both settings must be defined, or none of them can be updated. + if (defined $settings->{membercontrol} && defined $settings->{othercontrol}) { + # Legality of control combination is a function of + # membercontrol\othercontrol + # NA SH DE MA + # NA + - - - + # SH + + + + + # DE + - + + + # MA - - - + + foreach my $field ('membercontrol', 'othercontrol') { + my ($is_legal) = grep { $settings->{$field} == $_ } + (CONTROLMAPNA, CONTROLMAPSHOWN, CONTROLMAPDEFAULT, CONTROLMAPMANDATORY); + defined $is_legal || ThrowCodeError('product_illegal_group_control', + { field => $field, value => $settings->{$field} }); + } + unless ($settings->{membercontrol} == $settings->{othercontrol} + || $settings->{membercontrol} == CONTROLMAPSHOWN + || ($settings->{membercontrol} == CONTROLMAPDEFAULT + && $settings->{othercontrol} != CONTROLMAPSHOWN)) + { + ThrowUserError('illegal_group_control_combination', {groupname => $group->name}); + } + $gs->{membercontrol} = $settings->{membercontrol}; + $gs->{othercontrol} = $settings->{othercontrol}; + } + + foreach my $field ('entry', 'canedit', 'editcomponents', 'editbugs', 'canconfirm') { + next unless defined $settings->{$field}; + $gs->{$field} = $settings->{$field} ? 1 : 0; + } + $self->{group_controls}->{$group->id} = $gs; + $self->{check_group_controls} = 1; +} + sub components { my $self = shift; my $dbh = Bugzilla->dbh; @@ -99,25 +659,33 @@ sub components { } sub group_controls { - my $self = shift; + my ($self, $full_data) = @_; my $dbh = Bugzilla->dbh; - if (!defined $self->{group_controls}) { - my $query = qq{SELECT - groups.id, - group_control_map.entry, - group_control_map.membercontrol, - group_control_map.othercontrol, - group_control_map.canedit, - group_control_map.editcomponents, - group_control_map.editbugs, - group_control_map.canconfirm - FROM groups - LEFT JOIN group_control_map - ON groups.id = group_control_map.group_id - WHERE group_control_map.product_id = ? - AND groups.isbuggroup != 0 - ORDER BY groups.name}; + # By default, we don't return groups which are not listed in + # group_control_map. If $full_data is true, then we also + # return groups whose settings could be set for the product. + my $where_or_and = 'WHERE'; + my $and_or_where = 'AND'; + if ($full_data) { + $where_or_and = 'AND'; + $and_or_where = 'WHERE'; + } + + # If $full_data is true, we collect all the data in all cases, + # even if the cache is already populated. + # $full_data is never used except in the very special case where + # all configurable bug groups are displayed to administrators, + # so we don't care about collecting all the data again in this case. + if (!defined $self->{group_controls} || $full_data) { + # Include name to the list, to allow us sorting data more easily. + my $query = qq{SELECT id, name, entry, membercontrol, othercontrol, + canedit, editcomponents, editbugs, canconfirm + FROM groups + LEFT JOIN group_control_map + ON id = group_id + $where_or_and product_id = ? + $and_or_where isbuggroup = 1}; $self->{group_controls} = $dbh->selectall_hashref($query, 'id', undef, $self->id); @@ -126,6 +694,21 @@ sub group_controls { my $groups = Bugzilla::Group->new_from_list(\@gids); $self->{group_controls}->{$_->id}->{group} = $_ foreach @$groups; } + + # We never cache bug counts, for the same reason as above. + if ($full_data) { + my $counts = + $dbh->selectall_arrayref('SELECT group_id, COUNT(bugs.bug_id) AS bug_count + FROM bug_group_map + INNER JOIN bugs + ON bugs.bug_id = bug_group_map.bug_id + WHERE bugs.product_id = ? ' . + $dbh->sql_group_by('group_id'), + {'Slice' => {}}, $self->id); + foreach my $data (@$counts) { + $self->{group_controls}->{$data->{group_id}}->{bug_count} = $data->{bug_count}; + } + } return $self->{group_controls}; } @@ -341,7 +924,10 @@ below. Description: Returns a hash (group id as key) with all product group controls. - Params: none. + Params: $full_data (optional, false by default) - when true, + the number of bugs per group applicable to the product + is also returned. Moreover, bug groups which have no + special settings for the product are also returned. Returns: A hash with group id as key and hash containing a Bugzilla::Group object and the properties of group diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index 499cc071f9d0ae542582c9e6c479add828bd974d..47b4e129631c0716ee44981990b6ec7a32dd9992 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -53,12 +53,6 @@ use Date::Parse; # to, in order. use constant SPECIAL_ORDER => { 'bugs.target_milestone' => [ 'ms_order.sortkey','ms_order.value' ], - 'bugs.bug_status' => [ 'bug_status.sortkey','bug_status.value' ], - 'bugs.rep_platform' => [ 'rep_platform.sortkey','rep_platform.value' ], - 'bugs.priority' => [ 'priority.sortkey','priority.value' ], - 'bugs.op_sys' => [ 'op_sys.sortkey','op_sys.value' ], - 'bugs.resolution' => [ 'resolution.sortkey', 'resolution.value' ], - 'bugs.bug_severity' => [ 'bug_severity.sortkey','bug_severity.value' ] }; # When we add certain fields to the ORDER BY, we need to then add a @@ -66,12 +60,6 @@ use constant SPECIAL_ORDER => { # the join statements that need to be added. use constant SPECIAL_ORDER_JOIN => { 'bugs.target_milestone' => 'LEFT JOIN milestones AS ms_order ON ms_order.value = bugs.target_milestone AND ms_order.product_id = bugs.product_id', - 'bugs.bug_status' => 'LEFT JOIN bug_status ON bug_status.value = bugs.bug_status', - 'bugs.rep_platform' => 'LEFT JOIN rep_platform ON rep_platform.value = bugs.rep_platform', - 'bugs.priority' => 'LEFT JOIN priority ON priority.value = bugs.priority', - 'bugs.op_sys' => 'LEFT JOIN op_sys ON op_sys.value = bugs.op_sys', - 'bugs.resolution' => 'LEFT JOIN resolution ON resolution.value = bugs.resolution', - 'bugs.bug_severity' => 'LEFT JOIN bug_severity ON bug_severity.value = bugs.bug_severity' }; # Create a new Search @@ -100,10 +88,6 @@ sub init { @inputorder = @$orderref if $orderref; my @orderby; - my $debug = 0; - my @debugdata; - if ($params->param('debug')) { $debug = 1; } - my @fields; my @supptables; my @wherepart; @@ -117,8 +101,8 @@ sub init { my %special_order = %{SPECIAL_ORDER()}; my %special_order_join = %{SPECIAL_ORDER_JOIN()}; - my @select_fields = Bugzilla->get_fields({ type => FIELD_TYPE_SINGLE_SELECT, - obsolete => 0 }); + my @select_fields = + Bugzilla->get_fields({ type => FIELD_TYPE_SINGLE_SELECT }); my @multi_select_fields = Bugzilla->get_fields({ type => FIELD_TYPE_MULTI_SELECT, obsolete => 0 }); @@ -220,10 +204,9 @@ sub init { } } - my @legal_fields = ("product", "version", "rep_platform", "op_sys", - "bug_status", "resolution", "priority", "bug_severity", - "assigned_to", "reporter", "component", "classification", - "target_milestone", "bug_group"); + my @legal_fields = ("product", "version", "assigned_to", "reporter", + "component", "classification", "target_milestone", + "bug_group"); # Include custom select fields. push(@legal_fields, map { $_->name } @select_fields); @@ -319,8 +302,22 @@ sub init { my $sql_chvalue = $chvalue ne '' ? $dbh->quote($chvalue) : ''; trick_taint($sql_chvalue); if(!@chfield) { - push(@wherepart, "bugs.delta_ts >= $sql_chfrom") if ($sql_chfrom); - push(@wherepart, "bugs.delta_ts <= $sql_chto") if ($sql_chto); + if ($sql_chfrom) { + my $term = "bugs.delta_ts >= $sql_chfrom"; + push(@wherepart, $term); + $self->search_description({ + field => 'delta_ts', type => 'greaterthaneq', + value => $chfieldfrom, term => $term, + }); + } + if ($sql_chto) { + my $term = "bugs.delta_ts <= $sql_chto"; + push(@wherepart, $term); + $self->search_description({ + field => 'delta_ts', type => 'lessthaneq', + value => $chfieldto, term => $term, + }); + } } else { my $bug_creation_clause; my @list; @@ -330,8 +327,22 @@ sub init { # Treat [Bug creation] differently because we need to look # at bugs.creation_ts rather than the bugs_activity table. my @l; - push(@l, "bugs.creation_ts >= $sql_chfrom") if($sql_chfrom); - push(@l, "bugs.creation_ts <= $sql_chto") if($sql_chto); + if ($sql_chfrom) { + my $term = "bugs.creation_ts >= $sql_chfrom"; + push(@l, $term); + $self->search_description({ + field => 'creation_ts', type => 'greaterthaneq', + value => $chfieldfrom, term => $term, + }); + } + if ($sql_chto) { + my $term = "bugs.creation_ts <= $sql_chto"; + push(@l, $term); + $self->search_description({ + field => 'creation_ts', type => 'lessthaneq', + value => $chfieldto, term => $term, + }); + } $bug_creation_clause = "(" . join(' AND ', @l) . ")"; } else { push(@actlist, get_field_id($f)); @@ -343,18 +354,39 @@ sub init { if(@actlist) { my $extra = " actcheck.bug_id = bugs.bug_id"; push(@list, "(actcheck.bug_when IS NOT NULL)"); - if($sql_chfrom) { - $extra .= " AND actcheck.bug_when >= $sql_chfrom"; - } - if($sql_chto) { - $extra .= " AND actcheck.bug_when <= $sql_chto"; - } - if($sql_chvalue) { - $extra .= " AND actcheck.added = $sql_chvalue"; - } + + my $from_term = " AND actcheck.bug_when >= $sql_chfrom"; + $extra .= $from_term if $sql_chfrom; + my $to_term = " AND actcheck.bug_when <= $sql_chto"; + $extra .= $to_term if $sql_chto; + my $value_term = " AND actcheck.added = $sql_chvalue"; + $extra .= $value_term if $sql_chvalue; + push(@supptables, "LEFT JOIN bugs_activity AS actcheck " . "ON $extra AND " . $dbh->sql_in('actcheck.fieldid', \@actlist)); + + foreach my $field (@chfield) { + next if $field eq "[Bug creation]"; + if ($sql_chvalue) { + $self->search_description({ + field => $field, type => 'changedto', + value => $chvalue, term => $value_term, + }); + } + if ($sql_chfrom) { + $self->search_description({ + field => $field, type => 'changedafter', + value => $chfieldfrom, term => $from_term, + }); + } + if ($sql_chvalue) { + $self->search_description({ + field => $field, type => 'changedbefore', + value => $chfieldto, term => $to_term, + }); + } + } } # Now that we're done using @list to determine if there are any @@ -369,7 +401,7 @@ sub init { my $sql_deadlinefrom; my $sql_deadlineto; - if ($user->in_group(Bugzilla->params->{'timetrackinggroup'})) { + if ($user->is_timetracker) { my $deadlinefrom; my $deadlineto; @@ -380,7 +412,12 @@ sub init { format => 'YYYY-MM-DD'}); $sql_deadlinefrom = $dbh->quote($deadlinefrom); trick_taint($sql_deadlinefrom); - push(@wherepart, "bugs.deadline >= $sql_deadlinefrom"); + my $term = "bugs.deadline >= $sql_deadlinefrom"; + push(@wherepart, $term); + $self->search_description({ + field => 'deadline', type => 'greaterthaneq', + value => $deadlinefrom, term => $term, + }); } if ($params->param('deadlineto')){ @@ -390,11 +427,16 @@ sub init { format => 'YYYY-MM-DD'}); $sql_deadlineto = $dbh->quote($deadlineto); trick_taint($sql_deadlineto); - push(@wherepart, "bugs.deadline <= $sql_deadlineto"); + my $term = "bugs.deadline <= $sql_deadlineto"; + push(@wherepart, $term); + $self->search_description({ + field => 'deadline', type => 'lessthaneq', + value => $deadlineto, term => $term, + }); } } - foreach my $f ("short_desc", "long_desc", "bug_file_loc", + foreach my $f ("short_desc", "longdesc", "bug_file_loc", "status_whiteboard") { if (defined $params->param($f)) { my $s = trim($params->param($f)); @@ -416,8 +458,6 @@ sub init { my $chartid; my $sequence = 0; - # $type_id is used by the code that queries for attachment flags. - my $type_id = 0; my $f; my $ff; my $t; @@ -460,6 +500,7 @@ sub init { "^(?:deadline|creation_ts|delta_ts),(?:lessthan|greaterthan|equals|notequals),(?:-|\\+)?(?:\\d+)(?:[dDwWmMyY])\$" => \&_timestamp_compare, "^commenter,(?:equals|anyexact),(%\\w+%)" => \&_commenter_exact, "^commenter," => \&_commenter, + # The _ is allowed for backwards-compatibility with 3.2 and lower. "^long_?desc," => \&_long_desc, "^longdescs\.isprivate," => \&_longdescs_isprivate, "^work_time,changedby" => \&_work_time_changedby, @@ -539,12 +580,6 @@ sub init { $params->param("field$chart-$row-$col", shift(@$ref)); $params->param("type$chart-$row-$col", shift(@$ref)); $params->param("value$chart-$row-$col", shift(@$ref)); - if ($debug) { - push(@debugdata, "$row-$col = " . - $params->param("field$chart-$row-$col") . ' | ' . - $params->param("type$chart-$row-$col") . ' | ' . - $params->param("value$chart-$row-$col") . ' *'); - } $col++; } @@ -652,6 +687,7 @@ sub init { $params->param("field$chart-$row-$col") ; $col++) { $f = $params->param("field$chart-$row-$col") || "noop"; + my $original_f = $f; # Saved for search_description $t = $params->param("type$chart-$row-$col") || "noop"; $v = $params->param("value$chart-$row-$col"); $v = "" if !defined $v; @@ -678,24 +714,21 @@ sub init { foreach my $key (@funcnames) { if ("$f,$t,$rhs" =~ m/$key/) { my $ref = $funcsbykey{$key}; - if ($debug) { - push(@debugdata, "$key ($f / $t / $rhs) =>"); - } $ff = $f; if ($f !~ /\./) { $ff = "bugs.$f"; } $self->$ref(%func_args); - if ($debug) { - push(@debugdata, "$f / $t / $v / " . - ($term || "undef") . " *"); - } if ($term) { last; } } } if ($term) { + $self->search_description({ + field => $original_f, type => $t, value => $v, + term => $term, + }); push(@orlist, $term); } else { @@ -775,8 +808,9 @@ sub init { " ON bug_group_map.bug_id = bugs.bug_id "; if ($user->id) { - if (%{$user->groups}) { - $query .= " AND bug_group_map.group_id NOT IN (" . join(',', values(%{$user->groups})) . ") "; + if (scalar @{ $user->groups }) { + $query .= " AND bug_group_map.group_id NOT IN (" + . $user->groups_as_string . ") "; } $query .= " LEFT JOIN cc ON cc.bug_id = bugs.bug_id AND cc.who = " . $user->id; @@ -820,7 +854,6 @@ sub init { } $self->{'sql'} = $query; - $self->{'debugdata'} = \@debugdata; } ############################################################################### @@ -923,9 +956,13 @@ sub getSQL { return $self->{'sql'}; } -sub getDebugData { - my $self = shift; - return $self->{'debugdata'}; +sub search_description { + my ($self, $params) = @_; + my $desc = $self->{'search_description'} ||= []; + if ($params) { + push(@$desc, $params); + } + return $self->{'search_description'}; } sub pronoun { diff --git a/Bugzilla/Search/CVS/Entries b/Bugzilla/Search/CVS/Entries index 2982a7b2c0b43b88b12f604857d24cf2eac7a490..8431e79cf3def36b25297035330e9dec63d18253 100644 --- a/Bugzilla/Search/CVS/Entries +++ b/Bugzilla/Search/CVS/Entries @@ -1,3 +1,3 @@ -/Quicksearch.pm/1.20.2.1/Fri Oct 10 17:44:46 2008//TBUGZILLA-3_2_1 -/Saved.pm/1.7.2.1/Sat Nov 8 19:03:33 2008//TBUGZILLA-3_2_1 +/Quicksearch.pm/1.21/Fri Oct 10 17:42:45 2008//TBUGZILLA-3_3_1 +/Saved.pm/1.8/Sat Nov 8 19:01:41 2008//TBUGZILLA-3_3_1 D diff --git a/Bugzilla/Search/CVS/Tag b/Bugzilla/Search/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/Search/CVS/Tag +++ b/Bugzilla/Search/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Series.pm b/Bugzilla/Series.pm index 95d0a8f50de4e1af7e6561155d732b0c4a0f876f..1aaf287cedafaab7780d1175d730ed1c8ddade0d 100644 --- a/Bugzilla/Series.pm +++ b/Bugzilla/Series.pm @@ -33,7 +33,6 @@ package Bugzilla::Series; use Bugzilla::Error; use Bugzilla::Util; -use Bugzilla::User; sub new { my $invocant = shift; diff --git a/Bugzilla/Status.pm b/Bugzilla/Status.pm index f8b77331c06207685dfb44b785a55b3e8904e2d8..289e1726056add8f4533b98e1ab516dd795b9e31 100644 --- a/Bugzilla/Status.pm +++ b/Bugzilla/Status.pm @@ -22,35 +22,99 @@ use strict; package Bugzilla::Status; -use base qw(Bugzilla::Object Exporter); -@Bugzilla::Status::EXPORT = qw(BUG_STATE_OPEN is_open_state closed_bug_statuses); +use Bugzilla::Error; + +use base qw(Bugzilla::Field::Choice Exporter); +@Bugzilla::Status::EXPORT = qw( + BUG_STATE_OPEN + SPECIAL_STATUS_WORKFLOW_ACTIONS + + is_open_state + closed_bug_statuses +); ################################ ##### Initialization ##### ################################ +use constant SPECIAL_STATUS_WORKFLOW_ACTIONS => qw( + none + duplicate + change_resolution + clearresolution +); + use constant DB_TABLE => 'bug_status'; -use constant DB_COLUMNS => qw( - id - value - sortkey - isactive - is_open -); +# This has all the standard Bugzilla::Field::Choice columns plus "is_open" +sub DB_COLUMNS { + return ($_[0]->SUPER::DB_COLUMNS, 'is_open'); +} -use constant NAME_FIELD => 'value'; -use constant LIST_ORDER => 'sortkey, value'; +sub VALIDATORS { + my $invocant = shift; + my $validators = $invocant->SUPER::VALIDATORS; + $validators->{is_open} = \&Bugzilla::Object::check_boolean; + $validators->{value} = \&_check_value; + return $validators; +} + +######################### +# Database Manipulation # +######################### + +sub create { + my $class = shift; + my $self = $class->SUPER::create(@_); + add_missing_bug_status_transitions(); + return $self; +} + +sub remove_from_db { + my $self = shift; + my $dbh = Bugzilla->dbh; + my $id = $self->id; + $dbh->bz_start_transaction(); + $self->SUPER::remove_from_db(); + $dbh->do('DELETE FROM status_workflow + WHERE old_status = ? OR new_status = ?', + undef, $id, $id); + $dbh->bz_commit_transaction(); +} ############################### ##### Accessors #### ############################### -sub name { return $_[0]->{'value'}; } -sub sortkey { return $_[0]->{'sortkey'}; } sub is_active { return $_[0]->{'isactive'}; } sub is_open { return $_[0]->{'is_open'}; } +sub is_static { + my $self = shift; + if ($self->name eq 'UNCONFIRMED' + || $self->name eq Bugzilla->params->{'duplicate_or_move_bug_status'}) + { + return 1; + } + return 0; +} + +############## +# Validators # +############## + +sub _check_value { + my $invocant = shift; + my $value = $invocant->SUPER::_check_value(@_); + + if (grep { lc($value) eq lc($_) } SPECIAL_STATUS_WORKFLOW_ACTIONS) { + ThrowUserError('fieldvalue_reserved_word', + { field => $invocant->field, value => $value }); + } + return $value; +} + + ############################### ##### Methods #### ############################### diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm index 1362ecae3e32f4f672dea68da11095ddfb3230f1..3141c8a4cded1c5697c82f7a59124b8b26550fc6 100644 --- a/Bugzilla/Template.pm +++ b/Bugzilla/Template.pm @@ -41,12 +41,10 @@ use Bugzilla::Util; use Bugzilla::User; use Bugzilla::Error; use Bugzilla::Status; -use Bugzilla::Token; use Bugzilla::Template::Parser; use Cwd qw(abs_path); use MIME::Base64; -# for time2str - replace by TT Date plugin?? use Date::Format (); use File::Basename qw(dirname); use File::Find; @@ -160,7 +158,7 @@ sub get_format { # If you want to modify this routine, read the comments carefully sub quoteUrls { - my ($text, $curr_bugid) = (@_); + my ($text, $curr_bugid, $already_wrapped) = (@_); return $text unless $text; # We use /g for speed, but uris can have other things inside them @@ -175,6 +173,10 @@ sub quoteUrls { my $chr1 = chr(1); $text =~ s/\0/$chr1\0/g; + # If the comment is already wrapped, we should ignore newlines when + # looking for matching regexps. Else we should take them into account. + my $s = $already_wrapped ? qr/\s/ : qr/[[:blank:]]/; + # However, note that adding the title (for buglinks) can affect things # In particular, attachment matches go before bug titles, so that titles # with 'attachment 1' don't double match. @@ -229,7 +231,7 @@ sub quoteUrls { ("\0\0" . ($count-1) . "\0\0") ~egmx; - $text =~ s~\b(attachment\s*\#?\s*(\d+)) + $text =~ s~\b(attachment$s*\#?$s*(\d+)) ~($things[$count++] = get_attachment_link($2, $1)) && ("\0\0" . ($count-1) . "\0\0") ~egmxi; @@ -242,9 +244,9 @@ sub quoteUrls { # Also, we can't use $bug_re?$comment_re? because that will match the # empty string my $bug_word = get_text('term', { term => 'bug' }); - my $bug_re = qr/\Q$bug_word\E\s*\#?\s*(\d+)/i; - my $comment_re = qr/comment\s*\#?\s*(\d+)/i; - $text =~ s~\b($bug_re(?:\s*,?\s*$comment_re)?|$comment_re) + my $bug_re = qr/\Q$bug_word\E$s*\#?$s*(\d+)/i; + my $comment_re = qr/comment$s*\#?$s*(\d+)/i; + $text =~ s~\b($bug_re(?:$s*,?$s*$comment_re)?|$comment_re) ~ # We have several choices. $1 here is the link, and $2-4 are set # depending on which part matched (defined($2) ? get_bug_link($2,$1,$3) : @@ -550,10 +552,10 @@ sub create { css_class_quote => \&Bugzilla::Util::css_class_quote , quoteUrls => [ sub { - my ($context, $bug) = @_; + my ($context, $bug, $already_wrapped) = @_; return sub { my $text = shift; - return quoteUrls($text, $bug); + return quoteUrls($text, $bug, $already_wrapped); }; }, 1 @@ -612,7 +614,15 @@ sub create { }, # Format a time for display (more info in Bugzilla::Util) - time => \&Bugzilla::Util::format_time, + time => [ sub { + my ($context, $format, $timezone) = @_; + return sub { + my $time = shift; + return format_time($time, $format, $timezone); + }; + }, + 1 + ], # Bug 120030: Override html filter to obscure the '@' in user # visible strings. @@ -745,9 +755,6 @@ sub create { return $docs_urlbase; }, - # Allow templates to generate a token themselves. - 'issue_hash_token' => \&Bugzilla::Token::issue_hash_token, - # These don't work as normal constants. DB_MODULE => \&Bugzilla::Constants::DB_MODULE, REQUIRED_MODULES => diff --git a/Bugzilla/Template/CVS/Entries b/Bugzilla/Template/CVS/Entries index 7e21a541367d4d0a1404953a938283d5f50d3e91..483001723b1abfbb73981e88b9af739fe358eaa6 100644 --- a/Bugzilla/Template/CVS/Entries +++ b/Bugzilla/Template/CVS/Entries @@ -1,2 +1,2 @@ -/Parser.pm/1.1/Wed Feb 13 22:40:10 2008//TBUGZILLA-3_2_1 +/Parser.pm/1.1/Wed Feb 13 22:40:10 2008//TBUGZILLA-3_3_1 D/Plugin//// diff --git a/Bugzilla/Template/CVS/Tag b/Bugzilla/Template/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/Template/CVS/Tag +++ b/Bugzilla/Template/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Template/Plugin/CVS/Entries b/Bugzilla/Template/Plugin/CVS/Entries index c5e7a80fdade3c3b24693458db4249af77ce00aa..f6935b9732332c0d0587ff1bab343d3d1580a25f 100644 --- a/Bugzilla/Template/Plugin/CVS/Entries +++ b/Bugzilla/Template/Plugin/CVS/Entries @@ -1,4 +1,4 @@ -/Bugzilla.pm/1.2/Fri Feb 7 07:19:15 2003//TBUGZILLA-3_2_1 -/Hook.pm/1.10.2.2/Mon Oct 6 16:32:39 2008//TBUGZILLA-3_2_1 -/User.pm/1.1/Wed Aug 4 18:08:21 2004//TBUGZILLA-3_2_1 +/Bugzilla.pm/1.2/Fri Feb 7 07:19:15 2003//TBUGZILLA-3_3_1 +/Hook.pm/1.12/Mon Oct 6 16:30:56 2008//TBUGZILLA-3_3_1 +/User.pm/1.1/Wed Aug 4 18:08:21 2004//TBUGZILLA-3_3_1 D diff --git a/Bugzilla/Template/Plugin/CVS/Tag b/Bugzilla/Template/Plugin/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/Template/Plugin/CVS/Tag +++ b/Bugzilla/Template/Plugin/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/Token.pm b/Bugzilla/Token.pm index a54da4af59848ab8dac507ac6efd9c939d8a07b7..157cc0622c3051cd1011f77f3dd849d9d80a7977 100644 --- a/Bugzilla/Token.pm +++ b/Bugzilla/Token.pm @@ -39,12 +39,10 @@ use Bugzilla::User; use Date::Format; use Date::Parse; use File::Basename; -use Digest::MD5 qw(md5_hex); use base qw(Exporter); -@Bugzilla::Token::EXPORT = qw(issue_session_token check_token_data delete_token - issue_hash_token check_hash_token); +@Bugzilla::Token::EXPORT = qw(issue_session_token check_token_data delete_token); ################################################################################ # Public Functions @@ -173,53 +171,6 @@ sub issue_session_token { return _create_token(Bugzilla->user->id, 'session', $data); } -sub issue_hash_token { - my ($data, $time) = @_; - $data ||= []; - $time ||= time(); - - # The concatenated string is of the form - # token creation time + site-wide secret + user ID + data - my @args = ($time, Bugzilla->localconfig->{'site_wide_secret'}, Bugzilla->user->id, @$data); - my $token = md5_hex(join('*', @args)); - - # Prepend the token creation time, unencrypted, so that the token - # lifetime can be validated. - return $time . '-' . $token; -} - -sub check_hash_token { - my ($token, $data) = @_; - $data ||= []; - my ($time, $expected_token); - - if ($token) { - ($time, undef) = split(/-/, $token); - # Regenerate the token based on the information we have. - $expected_token = issue_hash_token($data, $time); - } - - if (!$token - || $expected_token ne $token - || time() - $time > MAX_TOKEN_AGE * 86400) - { - my $template = Bugzilla->template; - my $vars = {}; - $vars->{'script_name'} = basename($0); - $vars->{'token'} = issue_hash_token($data); - $vars->{'reason'} = (!$token) ? 'missing_token' : - ($expected_token ne $token) ? 'invalid_token' : - 'expired_token'; - print Bugzilla->cgi->header(); - $template->process('global/confirm-action.html.tmpl', $vars) - || ThrowTemplateError($template->error()); - exit; - } - - # If we come here, then the token is valid and not too old. - return 1; -} - sub CleanTokenTable { my $dbh = Bugzilla->dbh; $dbh->do('DELETE FROM tokens @@ -357,7 +308,7 @@ sub delete_token { # Note: this routine must not be called while tables are locked as it will try # to lock some tables itself, see CleanTokenTable(). sub check_token_data { - my ($token, $expected_action, $alternate_script) = @_; + my ($token, $expected_action) = @_; my $user = Bugzilla->user; my $template = Bugzilla->template; my $cgi = Bugzilla->cgi; @@ -377,7 +328,6 @@ sub check_token_data { $vars->{'token_action'} = $token_action; $vars->{'expected_action'} = $expected_action; $vars->{'script_name'} = basename($0); - $vars->{'alternate_script'} = $alternate_script || basename($0); # Now is a good time to remove old tokens from the DB. CleanTokenTable(); diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index 41ded04679f436814089873a4a97e0cb49e2ab6d..0c0f45bc05013c3119aebc60a6a9822677e041c9 100644 --- a/Bugzilla/User.pm +++ b/Bugzilla/User.pm @@ -49,6 +49,9 @@ use Bugzilla::Product; use Bugzilla::Classification; use Bugzilla::Field; +use Scalar::Util qw(blessed); +use DateTime::TimeZone; + use base qw(Bugzilla::Object Exporter); @Bugzilla::User::EXPORT = qw(is_available_username login_to_id user_id_to_login validate_password @@ -352,6 +355,22 @@ sub settings { return $self->{'settings'}; } +sub timezone { + my $self = shift; + + if (!defined $self->{timezone}) { + my $tz = $self->settings->{timezone}->{value}; + if ($tz eq 'local') { + # The user wants the local timezone of the server. + $self->{timezone} = Bugzilla->local_timezone; + } + else { + $self->{timezone} = DateTime::TimeZone->new(name => $tz); + } + } + return $self->{timezone}; +} + sub flush_queries_cache { my $self = shift; @@ -364,75 +383,62 @@ sub groups { my $self = shift; return $self->{groups} if defined $self->{groups}; - return {} unless $self->id; + return [] unless $self->id; my $dbh = Bugzilla->dbh; - my $groups = $dbh->selectcol_arrayref(q{SELECT DISTINCT groups.name, group_id - FROM groups, user_group_map - WHERE groups.id=user_group_map.group_id - AND user_id=? - AND isbless=0}, - { Columns=>[1,2] }, - $self->id); - - # The above gives us an arrayref [name, id, name, id, ...] - # Convert that into a hashref - my %groups = @$groups; - my @groupidstocheck = values(%groups); - my %groupidschecked = (); + my $groups_to_check = $dbh->selectcol_arrayref( + q{SELECT DISTINCT group_id + FROM user_group_map + WHERE user_id = ? AND isbless = 0}, undef, $self->id); + my $rows = $dbh->selectall_arrayref( - "SELECT DISTINCT groups.name, groups.id, member_id - FROM group_group_map - INNER JOIN groups - ON groups.id = grantor_id - WHERE grant_type = " . GROUP_MEMBERSHIP); - my %group_names = (); - my %group_membership = (); + "SELECT DISTINCT grantor_id, member_id + FROM group_group_map + WHERE grant_type = " . GROUP_MEMBERSHIP); + + my %group_membership; foreach my $row (@$rows) { - my ($member_name, $grantor_id, $member_id) = @$row; - # Just save the group names - $group_names{$grantor_id} = $member_name; - - # And group membership - push (@{$group_membership{$member_id}}, $grantor_id); + my ($grantor_id, $member_id) = @$row; + push (@{ $group_membership{$member_id} }, $grantor_id); } # Let's walk the groups hierarchy tree (using FIFO) # On the first iteration it's pre-filled with direct groups # membership. Later on, each group can add its own members into the # FIFO. Circular dependencies are eliminated by checking - # $groupidschecked{$member_id} hash values. + # $checked_groups{$member_id} hash values. # As a result, %groups will have all the groups we are the member of. - while ($#groupidstocheck >= 0) { + my %checked_groups; + my %groups; + while (scalar(@$groups_to_check) > 0) { # Pop the head group from FIFO - my $member_id = shift @groupidstocheck; + my $member_id = shift @$groups_to_check; # Skip the group if we have already checked it - if (!$groupidschecked{$member_id}) { + if (!$checked_groups{$member_id}) { # Mark group as checked - $groupidschecked{$member_id} = 1; + $checked_groups{$member_id} = 1; # Add all its members to the FIFO check list # %group_membership contains arrays of group members # for all groups. Accessible by group number. - foreach my $newgroupid (@{$group_membership{$member_id}}) { - push @groupidstocheck, $newgroupid - if (!$groupidschecked{$newgroupid}); - } - # Note on if clause: we could have group in %groups from 1st - # query and do not have it in second one - $groups{$group_names{$member_id}} = $member_id - if $group_names{$member_id} && $member_id; + my $members = $group_membership{$member_id}; + my @new_to_check = grep(!$checked_groups{$_}, @$members); + push(@$groups_to_check, @new_to_check); + + $groups{$member_id} = 1; } } - $self->{groups} = \%groups; + + $self->{groups} = Bugzilla::Group->new_from_list([keys %groups]); return $self->{groups}; } sub groups_as_string { my $self = shift; - return (join(',',values(%{$self->groups})) || '-1'); + my @ids = map { $_->id } @{ $self->groups }; + return scalar(@ids) ? join(',', @ids) : '-1'; } sub bless_groups { @@ -441,54 +447,45 @@ sub bless_groups { return $self->{'bless_groups'} if defined $self->{'bless_groups'}; return [] unless $self->id; - my $dbh = Bugzilla->dbh; - my $query; - my $connector; - my @bindValues; - if ($self->in_group('editusers')) { # Users having editusers permissions may bless all groups. - $query = 'SELECT DISTINCT id, name, description FROM groups'; - $connector = 'WHERE'; - } - else { - # Get all groups for the user where: - # + They have direct bless privileges - # + They are a member of a group that inherits bless privs. - $query = q{ - SELECT DISTINCT groups.id, groups.name, groups.description - FROM groups, user_group_map, group_group_map AS ggm - WHERE user_group_map.user_id = ? - AND ((user_group_map.isbless = 1 - AND groups.id=user_group_map.group_id) - OR (groups.id = ggm.grantor_id - AND ggm.grant_type = ? - AND ggm.member_id IN(} . - $self->groups_as_string . - q{)))}; - $connector = 'AND'; - @bindValues = ($self->id, GROUP_BLESS); + $self->{'bless_groups'} = [Bugzilla::Group->get_all]; + return $self->{'bless_groups'}; } + my $dbh = Bugzilla->dbh; + + # Get all groups for the user where: + # + They have direct bless privileges + # + They are a member of a group that inherits bless privs. + my @group_ids = map {$_->id} @{ $self->groups }; + @group_ids = (-1) if !@group_ids; + my $query = + 'SELECT DISTINCT groups.id + FROM groups, user_group_map, group_group_map AS ggm + WHERE user_group_map.user_id = ? + AND ( (user_group_map.isbless = 1 + AND groups.id=user_group_map.group_id) + OR (groups.id = ggm.grantor_id + AND ggm.grant_type = ' . GROUP_BLESS . ' + AND ' . $dbh->sql_in('ggm.member_id', \@group_ids) + . ') )'; + # If visibilitygroups are used, restrict the set of groups. - if (!$self->in_group('editusers') - && Bugzilla->params->{'usevisibilitygroups'}) - { + if (Bugzilla->params->{'usevisibilitygroups'}) { + return [] if !$self->visible_groups_as_string; # Users need to see a group in order to bless it. - my $visibleGroups = join(', ', @{$self->visible_groups_direct()}) - || return $self->{'bless_groups'} = []; - $query .= " $connector id in ($visibleGroups)"; + $query .= " AND " + . $dbh->sql_in('groups.id', $self->visible_groups_inherited); } - $query .= ' ORDER BY name'; - - return $self->{'bless_groups'} = - $dbh->selectall_arrayref($query, {'Slice' => {}}, @bindValues); + my $ids = $dbh->selectcol_arrayref($query, undef, $self->id); + return $self->{'bless_groups'} = Bugzilla::Group->new_from_list($ids); } sub in_group { my ($self, $group, $product_id) = @_; - if (exists $self->groups->{$group}) { + if (scalar grep($_->name eq $group, @{ $self->groups })) { return 1; } elsif ($product_id && detaint_natural($product_id)) { @@ -517,8 +514,7 @@ sub in_group { sub in_group_id { my ($self, $id) = @_; - my %j = reverse(%{$self->groups}); - return exists $j{$id} ? 1 : 0; + return grep($_->id == $id, @{ $self->groups }) ? 1 : 0; } sub get_products_by_permission { @@ -580,44 +576,70 @@ sub can_edit_product { } sub can_see_bug { - my ($self, $bugid) = @_; - my $dbh = Bugzilla->dbh; - my $sth = $self->{sthCanSeeBug}; - my $userid = $self->id; - # Get fields from bug, presence of user on cclist, and determine if - # the user is missing any groups required by the bug. The prepared query - # is cached because this may be called for every row in buglists or - # every bug in a dependency list. - unless ($sth) { - $sth = $dbh->prepare("SELECT 1, reporter, assigned_to, qa_contact, - reporter_accessible, cclist_accessible, - COUNT(cc.who), COUNT(bug_group_map.bug_id) - FROM bugs - LEFT JOIN cc - ON cc.bug_id = bugs.bug_id - AND cc.who = $userid - LEFT JOIN bug_group_map - ON bugs.bug_id = bug_group_map.bug_id - AND bug_group_map.group_ID NOT IN(" . - $self->groups_as_string . - ") WHERE bugs.bug_id = ? - AND creation_ts IS NOT NULL " . - $dbh->sql_group_by('bugs.bug_id', 'reporter, ' . - 'assigned_to, qa_contact, reporter_accessible, ' . - 'cclist_accessible')); + my ($self, $bug_id) = @_; + return @{ $self->visible_bugs([$bug_id]) } ? 1 : 0; +} + +sub visible_bugs { + my ($self, $bugs) = @_; + # Allow users to pass in Bug objects and bug ids both. + my @bug_ids = map { blessed $_ ? $_->id : $_ } @$bugs; + + # We only check the visibility of bugs that we haven't + # checked yet. + my $visible_cache = $self->{_visible_bugs_cache} ||= {}; + my @check_ids = grep(!exists $visible_cache->{$_}, @bug_ids); + + if (@check_ids) { + my $dbh = Bugzilla->dbh; + my $user_id = $self->id; + my $sth; + # Speed up the can_see_bug case. + if (scalar(@check_ids) == 1) { + $sth = $self->{_sth_one_visible_bug}; + } + $sth ||= $dbh->prepare( + # This checks for groups that the bug is in that the user + # *isn't* in. Then, in the Perl code below, we check if + # the user can otherwise access the bug (for example, by being + # the assignee or QA Contact). + # + # The DISTINCT exists because the bug could be in *several* + # groups that the user isn't in, but they will all return the + # same result for bug_group_map.bug_id (so DISTINCT filters + # out duplicate rows). + "SELECT DISTINCT bugs.bug_id, reporter, assigned_to, qa_contact, + reporter_accessible, cclist_accessible, cc.who, + bug_group_map.bug_id + FROM bugs + LEFT JOIN cc + ON cc.bug_id = bugs.bug_id + AND cc.who = $user_id + LEFT JOIN bug_group_map + ON bugs.bug_id = bug_group_map.bug_id + AND bug_group_map.group_id NOT IN (" + . $self->groups_as_string . ') + WHERE bugs.bug_id IN (' . join(',', ('?') x @check_ids) . ') + AND creation_ts IS NOT NULL '); + if (scalar(@check_ids) == 1) { + $self->{_sth_one_visible_bug} = $sth; + } + + $sth->execute(@check_ids); + while (my $row = $sth->fetchrow_arrayref) { + my ($bug_id, $reporter, $owner, $qacontact, $reporter_access, + $cclist_access, $isoncclist, $missinggroup) = @$row; + $visible_cache->{$bug_id} ||= + ((($reporter == $user_id) && $reporter_access) + || (Bugzilla->params->{'useqacontact'} + && $qacontact && ($qacontact == $user_id)) + || ($owner == $user_id) + || ($isoncclist && $cclist_access) + || !$missinggroup) ? 1 : 0; + } } - $sth->execute($bugid); - my ($ready, $reporter, $owner, $qacontact, $reporter_access, $cclist_access, - $isoncclist, $missinggroup) = $sth->fetchrow_array(); - $sth->finish; - $self->{sthCanSeeBug} = $sth; - return ($ready - && ((($reporter == $userid) && $reporter_access) - || (Bugzilla->params->{'useqacontact'} - && $qacontact && ($qacontact == $userid)) - || ($owner == $userid) - || ($isoncclist && $cclist_access) - || (!$missinggroup))); + + return [grep { $visible_cache->{blessed $_ ? $_->id : $_} } @$bugs]; } sub can_see_product { @@ -660,20 +682,12 @@ sub get_selectable_products { sub get_selectable_classifications { my ($self) = @_; - if (defined $self->{selectable_classifications}) { - return $self->{selectable_classifications}; - } - - my $products = $self->get_selectable_products; + if (!defined $self->{selectable_classifications}) { + my $products = $self->get_selectable_products; + my %class_ids = map { $_->classification_id => 1 } @$products; - my $class; - foreach my $product (@$products) { - $class->{$product->classification_id} ||= - new Bugzilla::Classification($product->classification_id); + $self->{selectable_classifications} = Bugzilla::Classification->new_from_list([keys %class_ids]); } - my @sorted_class = sort {$a->sortkey <=> $b->sortkey - || lc($a->name) cmp lc($b->name)} (values %$class); - $self->{selectable_classifications} = \@sorted_class; return $self->{selectable_classifications}; } @@ -833,7 +847,7 @@ sub visible_groups_direct { my $sth; if (Bugzilla->params->{'usevisibilitygroups'}) { - my $glist = join(',',(-1,values(%{$self->groups}))); + my $glist = $self->groups_as_string; $sth = $dbh->prepare("SELECT DISTINCT grantor_id FROM group_group_map WHERE member_id IN($glist) @@ -878,7 +892,7 @@ sub queryshare_groups { } } else { - @queryshare_groups = values(%{$self->groups}); + @queryshare_groups = map { $_->id } @{ $self->groups }; } } @@ -970,12 +984,12 @@ sub can_bless { if (!scalar(@_)) { # If we're called without an argument, just return # whether or not we can bless at all. - return scalar(@{$self->bless_groups}) ? 1 : 0; + return scalar(@{ $self->bless_groups }) ? 1 : 0; } # Otherwise, we're checking a specific group my $group_id = shift; - return (grep {$$_{'id'} eq $group_id} (@{$self->bless_groups})) ? 1 : 0; + return grep($_->id == $group_id, @{ $self->bless_groups }) ? 1 : 0; } sub flatten_group_membership { @@ -1071,7 +1085,6 @@ sub match { && (Bugzilla->params->{'usermatchmode'} eq 'search') && (length($str) >= 3)) { - $str = lc($str); trick_taint($str); my $query = "SELECT DISTINCT login_name FROM profiles "; @@ -1080,8 +1093,8 @@ sub match { ON user_group_map.user_id = profiles.userid "; } $query .= " WHERE (" . - $dbh->sql_position('?', 'LOWER(login_name)') . " > 0" . " OR " . - $dbh->sql_position('?', 'LOWER(realname)') . " > 0) "; + $dbh->sql_iposition('?', 'login_name') . " > 0" . " OR " . + $dbh->sql_iposition('?', 'realname') . " > 0) "; if (Bugzilla->params->{'usevisibilitygroups'}) { $query .= " AND isbless = 0" . " AND group_id IN(" . @@ -1415,14 +1428,18 @@ sub wants_bug_mail { } } - # You role is new if the bug itself is. - # Only makes sense for the assignee, QA contact and the CC list. - if ($bug_is_new - && ($relationship == REL_ASSIGNEE + if ($bug_is_new) { + # Notify about new bugs. + $events{+EVT_BUG_CREATED} = 1; + + # You role is new if the bug itself is. + # Only makes sense for the assignee, QA contact and the CC list. + if ($relationship == REL_ASSIGNEE || $relationship == REL_QA - || $relationship == REL_CC)) - { - $events{+EVT_ADDED_REMOVED} = 1; + || $relationship == REL_CC) + { + $events{+EVT_ADDED_REMOVED} = 1; + } } if ($commentField =~ /Created an attachment \(/) { @@ -1537,6 +1554,17 @@ sub is_global_watcher { return $self->{'is_global_watcher'}; } +sub is_timetracker { + my $self = shift; + + if (!defined $self->{'is_timetracker'}) { + my $tt_group = Bugzilla->params->{'timetrackinggroup'}; + $self->{'is_timetracker'} = + ($tt_group && $self->in_group($tt_group)) ? 1 : 0; + } + return $self->{'is_timetracker'}; +} + sub get_userlist { my $self = shift; @@ -1875,12 +1903,15 @@ value - the value of this setting for this user. Will be the same is_default - a boolean to indicate whether the user has chosen to make a preference for themself or use the site default. +=item C<timezone> + +Returns the timezone used to display dates and times to the user, +as a DateTime::TimeZone object. + =item C<groups> -Returns a hashref of group names for groups the user is a member of. The keys -are the names of the groups, whilst the values are the respective group ids. -(This is so that a set of all groupids for groups the user is in can be -obtained by C<values(%{$user-E<gt>groups})>.) +Returns an arrayref of L<Bugzilla::Group> objects representing +groups that this user is a member of. =item C<groups_as_string> @@ -1900,12 +1931,11 @@ Determines whether or not a user is in the given group by id. =item C<bless_groups> -Returns an arrayref of hashes of C<groups> entries, where the keys of each hash -are the names of C<id>, C<name> and C<description> columns of the C<groups> -table. +Returns an arrayref of L<Bugzilla::Group> objects. + The arrayref consists of the groups the user can bless, taking into account that having editusers permissions means that you can bless all groups, and -that you need to be aware of a group in order to bless a group. +that you need to be able to see a group in order to bless it. =item C<get_products_by_permission($group)> diff --git a/Bugzilla/User/CVS/Entries b/Bugzilla/User/CVS/Entries index 24da95aa98953a849d2f7604a29d672c52db70a3..d4519c8ac1a9c91b02192b550e0f5a55e446d669 100644 --- a/Bugzilla/User/CVS/Entries +++ b/Bugzilla/User/CVS/Entries @@ -1,2 +1,2 @@ -/Setting.pm/1.12.2.1/Fri Sep 5 23:03:03 2008//TBUGZILLA-3_2_1 +/Setting.pm/1.13/Fri Sep 5 23:01:18 2008//TBUGZILLA-3_3_1 D/Setting//// diff --git a/Bugzilla/User/CVS/Tag b/Bugzilla/User/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/User/CVS/Tag +++ b/Bugzilla/User/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/User/Setting/CVS/Entries b/Bugzilla/User/Setting/CVS/Entries index d060c1a49edcae45a61804be19acf6cd6298c06d..f02ebbf99a6aa7663e917eb57c1dc74c74e09034 100644 --- a/Bugzilla/User/Setting/CVS/Entries +++ b/Bugzilla/User/Setting/CVS/Entries @@ -1,3 +1,4 @@ -/Lang.pm/1.1/Tue Aug 21 20:47:54 2007//TBUGZILLA-3_2_1 -/Skin.pm/1.4/Tue Aug 14 21:54:34 2007//TBUGZILLA-3_2_1 +/Lang.pm/1.1/Tue Aug 21 20:47:54 2007//TBUGZILLA-3_3_1 +/Skin.pm/1.4/Tue Aug 14 21:54:34 2007//TBUGZILLA-3_3_1 +/Timezone.pm/1.1/Wed Aug 27 02:32:15 2008//TBUGZILLA-3_3_1 D diff --git a/Bugzilla/User/Setting/CVS/Tag b/Bugzilla/User/Setting/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/User/Setting/CVS/Tag +++ b/Bugzilla/User/Setting/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/User/Setting/Timezone.pm b/Bugzilla/User/Setting/Timezone.pm new file mode 100644 index 0000000000000000000000000000000000000000..d75b1113b66105995af6ee636c52cb6235e2e37d --- /dev/null +++ b/Bugzilla/User/Setting/Timezone.pm @@ -0,0 +1,71 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# The Initial Developer of the Original Code is Frédéric Buclin. +# Portions created by Frédéric Buclin are Copyright (c) 2008 Frédéric Buclin. +# All rights reserved. +# +# Contributor(s): Frédéric Buclin <LpSolit@gmail.com> + +package Bugzilla::User::Setting::Timezone; + +use strict; + +use DateTime::TimeZone; + +use base qw(Bugzilla::User::Setting); + +use Bugzilla::Constants; + +sub legal_values { + my ($self) = @_; + + return $self->{'legal_values'} if defined $self->{'legal_values'}; + + my @timezones = DateTime::TimeZone->all_names; + # Remove old formats, such as CST6CDT, EST, EST5EDT. + @timezones = grep { $_ =~ m#.+/.+#} @timezones; + # Append 'local' to the list, which will use the timezone + # given by the server. + push(@timezones, 'local'); + + return $self->{'legal_values'} = \@timezones; +} + +1; + +__END__ + +=head1 NAME + +Bugzilla::User::Setting::Timezone - Object for a user preference setting for desired timezone + +=head1 DESCRIPTION + +Timezone.pm extends Bugzilla::User::Setting and implements a class specialized for +setting the desired timezone. + +=head1 METHODS + +=over + +=item C<legal_values()> + +Description: Returns all legal timezones + +Params: none + +Returns: A reference to an array containing the names of all legal timezones + +=back diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm index 3c59c177c9db7b22c4292718cff1146786ca2702..376bcf6cdbbf5fec8fa8c5de8df049791a67f657 100644 --- a/Bugzilla/Util.pm +++ b/Bugzilla/Util.pm @@ -36,7 +36,7 @@ use base qw(Exporter); html_quote url_quote xml_quote css_class_quote html_light_quote url_decode i_am_cgi get_netaddr correct_urlbase - lsearch ssl_require_redirect use_attachbase + lsearch ssl_require_redirect diff_arrays diff_strings trim wrap_hard wrap_comment find_wrap_point format_time format_time_decimal validate_date @@ -50,6 +50,10 @@ use Bugzilla::Constants; use Date::Parse; use Date::Format; +use DateTime; +use DateTime::TimeZone; +use Digest; +use Scalar::Util qw(tainted); use Text::Wrap; # This is from the perlsec page, slightly modified to remove a warning @@ -285,13 +289,6 @@ sub correct_urlbase { return Bugzilla->params->{'urlbase'}; } -sub use_attachbase { - my $attachbase = Bugzilla->params->{'attachment_base'}; - return ($attachbase ne '' - && $attachbase ne Bugzilla->params->{'urlbase'} - && $attachbase ne Bugzilla->params->{'sslbase'}) ? 1 : 0; -} - sub lsearch { my ($list,$item) = (@_); my $count = 0; @@ -414,38 +411,42 @@ sub wrap_hard { } sub format_time { - my ($date, $format) = @_; + my ($date, $format, $timezone) = @_; - # If $format is undefined, try to guess the correct date format. - my $show_timezone; + # If $format is undefined, try to guess the correct date format. if (!defined($format)) { if ($date =~ m/^(\d{4})[-\.](\d{2})[-\.](\d{2}) (\d{2}):(\d{2})(:(\d{2}))?$/) { my $sec = $7; if (defined $sec) { - $format = "%Y-%m-%d %T"; + $format = "%Y-%m-%d %T %Z"; } else { - $format = "%Y-%m-%d %R"; + $format = "%Y-%m-%d %R %Z"; } } else { - # Default date format. See Date::Format for other formats available. - $format = "%Y-%m-%d %R"; + # Default date format. See DateTime for other formats available. + $format = "%Y-%m-%d %R %Z"; } - # By default, we want the timezone to be displayed. - $show_timezone = 1; - } - else { - # Search for %Z or %z, meaning we want the timezone to be displayed. - # Till bug 182238 gets fixed, we assume Bugzilla->params->{'timezone'} - # is used. - $show_timezone = ($format =~ s/\s?%Z$//i); } - # str2time($date) is undefined if $date has an invalid date format. - my $time = str2time($date); - - if (defined $time) { - $date = time2str($format, $time); - $date .= " " . Bugzilla->params->{'timezone'} if $show_timezone; + # strptime($date) returns an empty array if $date has an invalid date format. + my @time = strptime($date); + + if (scalar @time) { + # strptime() counts years from 1900, and months from 0 (January). + # We have to fix both values. + my $dt = DateTime->new({year => 1900 + $time[5], + month => ++$time[4], + day => $time[3], + hour => $time[2], + minute => $time[1], + second => $time[0], + # Use the timezone specified by the server. + time_zone => Bugzilla->local_timezone}); + + # Now display the date using the given timezone, + # or the user's timezone if none is given. + $dt->set_time_zone($timezone || Bugzilla->user->timezone); + $date = $dt->strftime($format); } else { # Don't let invalid (time) strings to be passed to templates! @@ -475,33 +476,56 @@ sub file_mod_time { } sub bz_crypt { - my ($password) = @_; - - # The list of characters that can appear in a salt. Salts and hashes - # are both encoded as a sequence of characters from a set containing - # 64 characters, each one of which represents 6 bits of the salt/hash. - # The encoding is similar to BASE64, the difference being that the - # BASE64 plus sign (+) is replaced with a forward slash (/). - my @saltchars = (0..9, 'A'..'Z', 'a'..'z', '.', '/'); - - # Generate the salt. We use an 8 character (48 bit) salt for maximum - # security on systems whose crypt uses MD5. Systems with older - # versions of crypt will just use the first two characters of the salt. - my $salt = ''; - for ( my $i=0 ; $i < 8 ; ++$i ) { - $salt .= $saltchars[rand(64)]; + my ($password, $salt) = @_; + + my $algorithm; + if (!defined $salt) { + # If you don't use a salt, then people can create tables of + # hashes that map to particular passwords, and then break your + # hashing very easily if they have a large-enough table of common + # (or even uncommon) passwords. So we generate a unique salt for + # each password in the database, and then just prepend it to + # the hash. + $salt = generate_random_password(PASSWORD_SALT_LENGTH); + $algorithm = PASSWORD_DIGEST_ALGORITHM; } - # Wide characters cause crypt to die - if (Bugzilla->params->{'utf8'}) { - utf8::encode($password) if utf8::is_utf8($password); + # We append the algorithm used to the string. This is good because then + # we can change the algorithm being used, in the future, without + # disrupting the validation of existing passwords. Also, this tells + # us if a password is using the old "crypt" method of hashing passwords, + # because the algorithm will be missing from the string. + if ($salt =~ /{([^}]+)}$/) { + $algorithm = $1; } + + my $crypted_password; + if (!$algorithm) { + # Wide characters cause crypt to die + if (Bugzilla->params->{'utf8'}) { + utf8::encode($password) if utf8::is_utf8($password); + } - # Crypt the password. - my $cryptedpassword = crypt($password, $salt); + # Crypt the password. + $crypted_password = crypt($password, $salt); + + # HACK: Perl has bug where returned crypted password is considered + # tainted. See http://rt.perl.org/rt3/Public/Bug/Display.html?id=59998 + unless(tainted($password) || tainted($salt)) { + trick_taint($crypted_password); + } + } + else { + my $hasher = Digest->new($algorithm); + # We only want to use the first characters of the salt, no + # matter how long of a salt we may have been passed. + $salt = substr($salt, 0, PASSWORD_SALT_LENGTH); + $hasher->add($password, $salt); + $crypted_password = $salt . $hasher->b64digest . "{$algorithm}"; + } # Return the crypted password. - return $cryptedpassword; + return $crypted_password; } sub generate_random_password { @@ -599,7 +623,7 @@ sub get_netaddr { sub disable_utf8 { if (Bugzilla->params->{'utf8'}) { - binmode STDOUT, ':bytes'; # Turn off UTF8 encoding. + binmode STDOUT, ':raw'; # Turn off UTF8 encoding. } } @@ -772,11 +796,6 @@ cookies) to only some addresses. Returns either the C<sslbase> or C<urlbase> parameter, depending on the current setting for the C<ssl> parameter. -=item C<use_attachbase()> - -Returns true if an alternate host is used to display attachments; false -otherwise. - =back =head2 Searching @@ -899,15 +918,13 @@ A string. =item C<format_time($time)> -Takes a time, converts it to the desired format and appends the timezone -as defined in editparams.cgi, if desired. This routine will be expanded -in the future to adjust for user preferences regarding what timezone to -display times in. +Takes a time and converts it to the desired format and timezone. +If no format is given, the routine guesses the correct one and returns +an empty array if it cannot. If no timezone is given, the user's timezone +is used, as defined in his preferences. This routine is mainly called from templates to filter dates, see -"FILTER time" in Templates.pm. In this case, $format is undefined and -the routine has to "guess" the date format that was passed to $dbh->sql_date_format(). - +"FILTER time" in L<Bugzilla::Template>. =item C<format_time_decimal($time)> @@ -932,12 +949,14 @@ of the "mtime" parameter of the perl "stat" function. =over 4 -=item C<bz_crypt($password)> +=item C<bz_crypt($password, $salt)> -Takes a string and returns a C<crypt>ed value for it, using a random salt. +Takes a string and returns a hashed (encrypted) value for it, using a +random salt. An optional salt string may also be passed in. -Please always use this function instead of the built-in perl "crypt" -when initially encrypting a password. +Please always use this function instead of the built-in perl C<crypt> +function, when checking or setting a password. Bugzilla does not use +C<crypt>. =begin undocumented diff --git a/Bugzilla/WebService.pm b/Bugzilla/WebService.pm index 0e429241d686c58e025b04c012ec960e012a4518..438a6671040637999edafa260e6784a2682247f1 100755 --- a/Bugzilla/WebService.pm +++ b/Bugzilla/WebService.pm @@ -21,6 +21,7 @@ use strict; use Bugzilla::WebService::Constants; use Bugzilla::Util; use Date::Parse; +use XMLRPC::Lite; sub fail_unimplemented { my $this = shift; @@ -77,6 +78,14 @@ sub login_exempt { return $class->LOGIN_EXEMPT->{$method}; } +sub type { + my ($self, $type, $value) = @_; + if ($type eq 'dateTime') { + $value = $self->datetime_format($value); + } + return XMLRPC::Data->type($type)->value($value); +} + 1; package Bugzilla::WebService::XMLRPC::Transport::HTTP::CGI; diff --git a/Bugzilla/WebService/Bug.pm b/Bugzilla/WebService/Bug.pm index 5df7c7d196677c6d1ba411c755cede8d8f2b83bf..aaaf753a3788a8d5faad76df647d0baafe228f93 100755 --- a/Bugzilla/WebService/Bug.pm +++ b/Bugzilla/WebService/Bug.pm @@ -16,12 +16,12 @@ # Max Kanat-Alexander <mkanat@bugzilla.org> # Mads Bondo Dydensborg <mbd@dbc.dk> # Tsahi Asher <tsahi_75@yahoo.com> +# Noura Elhawary <nelhawar@redhat.com> package Bugzilla::WebService::Bug; use strict; use base qw(Bugzilla::WebService); -import SOAP::Data qw(type); use Bugzilla::Constants; use Bugzilla::Error; @@ -46,15 +46,6 @@ use constant FIELD_MAP => { platform => 'rep_platform', }; -use constant GLOBAL_SELECT_FIELDS => qw( - bug_severity - bug_status - op_sys - priority - rep_platform - resolution -); - use constant PRODUCT_SPECIFIC_FIELDS => qw(version target_milestone component); ###################################################### @@ -74,8 +65,7 @@ sub get { my @return; foreach my $bug_id (@$ids) { - ValidateBugID($bug_id); - my $bug = new Bugzilla::Bug($bug_id); + my $bug = Bugzilla::Bug->check($bug_id); # Timetracking fields are deleted if the user doesn't belong to # the corresponding group. @@ -87,17 +77,15 @@ sub get { # This is done in this fashion in order to produce a stable API. # The internals of Bugzilla::Bug are not stable enough to just # return them directly. - my $creation_ts = $self->datetime_format($bug->creation_ts); - my $delta_ts = $self->datetime_format($bug->delta_ts); my %item; - $item{'creation_time'} = type('dateTime')->value($creation_ts); - $item{'last_change_time'} = type('dateTime')->value($delta_ts); + $item{'creation_time'} = $self->type('dateTime', $bug->creation_ts); + $item{'last_change_time'} = $self->type('dateTime', $bug->delta_ts); $item{'internals'} = $bug; - $item{'id'} = type('int')->value($bug->bug_id); - $item{'summary'} = type('string')->value($bug->short_desc); + $item{'id'} = $self->type('int', $bug->bug_id); + $item{'summary'} = $self->type('string', $bug->short_desc); if (Bugzilla->params->{'usebugaliases'}) { - $item{'alias'} = type('string')->value($bug->alias); + $item{'alias'} = $self->type('string', $bug->alias); } else { # For API reasons, we always want the value to appear, we just @@ -111,6 +99,65 @@ sub get { return { bugs => \@return }; } +# this is a function that gets bug activity for list of bug ids +# it can be called as the following: +# $call = $rpc->call( 'Bug.get_history', { ids => [1,2] }); +sub get_history { + my ($self, $params) = @_; + + my $ids = $params->{ids}; + defined $ids || ThrowCodeError('param_required', { param => 'ids' }); + + my @return; + foreach my $bug_id (@$ids) { + my %item; + my $bug = Bugzilla::Bug->check($bug_id); + $bug_id = $bug->id; + + my ($activity) = Bugzilla::Bug::GetBugActivity($bug_id); + $item{$bug_id} = []; + + foreach my $changeset (@$activity) { + my %bug_history; + $bug_history{when} = $self->type('dateTime', + $self->datetime_format($changeset->{when})); + $bug_history{who} = $self->type('string', $changeset->{who}); + $bug_history{changes} = []; + foreach my $change (@{ $changeset->{changes} }) { + my $attach_id = delete $change->{attachid}; + if ($attach_id) { + $change->{attachment_id} = $self->type('int', $attach_id); + } + $change->{removed} = $self->type('string', $change->{removed}); + $change->{added} = $self->type('string', $change->{added}); + $change->{field_name} = $self->type('string', + delete $change->{fieldname}); + # This is going to go away in the future from GetBugActivity + # so we shouldn't put it in the API. + delete $change->{field}; + push (@{$bug_history{changes}}, $change); + } + + push (@{$item{$bug_id}}, \%bug_history); + } + + # alias is returned in case users passes a mixture of ids and aliases + # then they get to know which bug activity relates to which value + # they passed + if (Bugzilla->params->{'usebugaliases'}) { + $item{alias} = $self->type('string', $bug->alias); + } + else { + # For API reasons, we always want the value to appear, we just + # don't want it to have a value if aliases are turned off. + $item{alias} = undef; + } + + push(@return, \%item); + } + + return { bugs => \@return }; +} sub create { my ($self, $params) = @_; @@ -130,20 +177,18 @@ sub create { Bugzilla::BugMail::Send($bug->bug_id, { changer => $bug->reporter->login }); - return { id => type('int')->value($bug->bug_id) }; + return { id => $self->type('int', $bug->bug_id) }; } sub legal_values { my ($self, $params) = @_; my $field = FIELD_MAP->{$params->{field}} || $params->{field}; - my @custom_select = Bugzilla->get_fields( - {custom => 1, type => [FIELD_TYPE_SINGLE_SELECT, FIELD_TYPE_MULTI_SELECT]}); - # We only want field names. - @custom_select = map {$_->name} @custom_select; + my @global_selects = Bugzilla->get_fields( + {type => [FIELD_TYPE_SINGLE_SELECT, FIELD_TYPE_MULTI_SELECT]}); my $values; - if (grep($_ eq $field, GLOBAL_SELECT_FIELDS, @custom_select)) { + if (grep($_->name eq $field, @global_selects)) { $values = get_legal_field_values($field); } elsif (grep($_ eq $field, PRODUCT_SPECIFIC_FIELDS)) { @@ -173,7 +218,7 @@ sub legal_values { my @result; foreach my $val (@$values) { - push(@result, type('string')->value($val)); + push(@result, $self->type('string', $val)); } return { values => \@result }; @@ -187,14 +232,12 @@ sub add_comment { # Check parameters defined $params->{id} - || ThrowCodeError('param_required', { param => 'id' }); - ValidateBugID($params->{id}); - + || ThrowCodeError('param_required', { param => 'id' }); my $comment = $params->{comment}; (defined $comment && trim($comment) ne '') || ThrowCodeError('param_required', { param => 'comment' }); - my $bug = new Bugzilla::Bug($params->{id}); + my $bug = Bugzilla::Bug->check($params->{id}); Bugzilla->user->can_edit_product($bug->product_id) || ThrowUserError("product_edit_denied", {product => $bug->product}); @@ -371,14 +414,114 @@ You do not have access to the bug_id you specified. =back +=item C<get_history> + +B<UNSTABLE> + +=over + +=item B<Description> + +Gets the history of changes for particular bugs in the database. + +=item B<Params> + +=over + +=item C<ids> + +An array of numbers and strings. + +If an element in the array is entirely numeric, it represents a bug_id +from the Bugzilla database to fetch. If it contains any non-numeric +characters, it is considered to be a bug alias instead, and the data bug +with that alias will be loaded. + +Note that it's possible for aliases to be disabled in Bugzilla, in which +case you will be told that you have specified an invalid bug_id if you +try to specify an alias. (It will be error 100.) + =back +=item B<Returns> + +A hash containing a single element, C<bugs>. This is a hash of hashes. +Each hash has the numeric bug id as a key, and contains the following +items: + +=over + +=item alias + +C<string> The alias of this bug. If there is no alias or aliases are +disabled in this Bugzilla, this will be undef. + +=over + +=item when + +C<dateTime> The date the bug activity/change happened. + +=item who + +C<string> The login name of the user who performed the bug change. + +=item changes + +C<array> An array of hashes which contain all the changes that happened +to the bug at this time (as specified by C<when>). Each hash contains +the following items: + +=over + +=item field_name + +C<string> The name of the bug field that has changed. + +=item removed + +C<string> The previous value of the bug field which has been deleted +by the change. + +=item added + +C<string> The new value of the bug field which has been added by the change. + +=item attachment_id + +C<int> The id of the attachment that was changed. This only appears if +the change was to an attachment, otherwise C<attachment_id> will not be +present in this hash. + +=back + +=back + +=back + +=item B<Errors> + +The same as L</get>. + +=item B<History> + +=over + +=item Added in Bugzilla B<3.4>. + +=back + +=back + +=back =head2 Bug Creation and Modification =over -=item C<create> B<EXPERIMENTAL> +=item C<create> + +B<EXPERIMENTAL> =over diff --git a/Bugzilla/WebService/Bugzilla.pm b/Bugzilla/WebService/Bugzilla.pm index 53e0d7d79abcda10583ada20593a77b6df0f3fc7..2f35bbe595a01002fbcf36167841526a4b2996e6 100755 --- a/Bugzilla/WebService/Bugzilla.pm +++ b/Bugzilla/WebService/Bugzilla.pm @@ -22,9 +22,8 @@ use strict; use base qw(Bugzilla::WebService); use Bugzilla::Constants; use Bugzilla::Hook; -import SOAP::Data qw(type); -use Time::Zone; +use DateTime; # Basic info that is needed before logins use constant LOGIN_EXEMPT => { @@ -33,26 +32,29 @@ use constant LOGIN_EXEMPT => { }; sub version { - return { version => type('string')->value(BUGZILLA_VERSION) }; + my $self = shift; + return { version => $self->type('string', BUGZILLA_VERSION) }; } sub extensions { + my $self = shift; my $extensions = Bugzilla::Hook::enabled_plugins(); foreach my $name (keys %$extensions) { my $info = $extensions->{$name}; - foreach my $data (keys %$info) - { - $extensions->{$name}->{$data} = type('string')->value($info->{$data}); + foreach my $data (keys %$info) { + $extensions->{$name}->{$data} = + $self->type('string', $info->{$data}); } } return { extensions => $extensions }; } sub timezone { - my $offset = tz_offset(); + my $self = shift; + my $offset = Bugzilla->local_timezone->offset_for_datetime(DateTime->now()); $offset = (($offset / 60) / 60) * 100; $offset = sprintf('%+05d', $offset); - return { timezone => type('string')->value($offset) }; + return { timezone => $self->type('string', $offset) }; } 1; diff --git a/Bugzilla/WebService/CVS/Entries b/Bugzilla/WebService/CVS/Entries index b120f2d76996b615d7dc0650c01c222f0fdc1a7c..4c9f968678b906e0c14190f2743037aff1a380d4 100644 --- a/Bugzilla/WebService/CVS/Entries +++ b/Bugzilla/WebService/CVS/Entries @@ -1,6 +1,7 @@ -/Bug.pm/1.11.2.3/Wed Nov 26 01:24:15 2008//TBUGZILLA-3_2_1 -/Bugzilla.pm/1.7.2.1/Wed Nov 26 01:24:15 2008//TBUGZILLA-3_2_1 -/Constants.pm/1.16.2.1/Thu Jun 19 15:50:54 2008//TBUGZILLA-3_2_1 -/Product.pm/1.4.4.2/Wed Nov 26 01:24:15 2008//TBUGZILLA-3_2_1 -/User.pm/1.6.2.2/Wed Nov 26 01:24:15 2008//TBUGZILLA-3_2_1 +/Bug.pm/1.19/Wed Nov 26 01:20:42 2008//TBUGZILLA-3_3_1 +/Bugzilla.pm/1.10/Wed Nov 26 01:20:42 2008//TBUGZILLA-3_3_1 +/Constants.pm/1.20/Fri Oct 24 23:11:40 2008//TBUGZILLA-3_3_1 +/Product.pm/1.7/Wed Nov 26 01:20:42 2008//TBUGZILLA-3_3_1 +/User.pm/1.12/Wed Nov 26 01:20:42 2008//TBUGZILLA-3_3_1 +/Util.pm/1.2/Wed Nov 26 01:20:42 2008//TBUGZILLA-3_3_1 D diff --git a/Bugzilla/WebService/CVS/Tag b/Bugzilla/WebService/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/Bugzilla/WebService/CVS/Tag +++ b/Bugzilla/WebService/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/Bugzilla/WebService/Constants.pm b/Bugzilla/WebService/Constants.pm index 98597a98ec9c8a2229507dee9bca2c026afdfb02..593801a6f4447a1b23c108466bad6ca838db747f 100755 --- a/Bugzilla/WebService/Constants.pm +++ b/Bugzilla/WebService/Constants.pm @@ -49,7 +49,7 @@ use base qw(Exporter); # have to fix it here. use constant WS_ERROR_CODE => { # Generic Bugzilla::Object errors are 50-99. - object_name_not_specified => 50, + object_not_specified => 50, param_required => 50, object_does_not_exist => 51, # Bug errors usually occupy the 100-200 range. @@ -85,6 +85,7 @@ use constant WS_ERROR_CODE => { account_disabled => 301, auth_invalid_email => 302, extern_id_conflict => -303, + auth_failure => 304, # User errors are 500-600. account_exists => 500, @@ -97,6 +98,8 @@ use constant WS_ERROR_CODE => { # This is from strict_isolation, but it also basically means # "invalid user." invalid_user_group => 504, + user_access_by_id_denied => 505, + user_access_by_match_denied => 505, }; # These are the fallback defaults for errors not in ERROR_CODE. diff --git a/Bugzilla/WebService/Product.pm b/Bugzilla/WebService/Product.pm index cd86296a445a43608f926c03971932fc1e591129..4dd8944539138c4f8c454917aa7b82c0d1bc2fd8 100755 --- a/Bugzilla/WebService/Product.pm +++ b/Bugzilla/WebService/Product.pm @@ -21,7 +21,6 @@ use strict; use base qw(Bugzilla::WebService); use Bugzilla::Product; use Bugzilla::User; -import SOAP::Data qw(type); ################################################## # Add aliases here for method name compatibility # @@ -63,9 +62,9 @@ sub get { my @products = map {{ internals => $_, - id => type('int')->value($_->id), - name => type('string')->value($_->name), - description => type('string')->value($_->description), + id => $self->type('int', $_->id), + name => $self->type('string', $_->name), + description => $self->type('string', $_->description), } } @requested_accessible; diff --git a/Bugzilla/WebService/User.pm b/Bugzilla/WebService/User.pm index 5446d804fa730637599afcc3e0dba7b592e9d788..24b9be70932f9a334712a5bfc3497f9adb51cdec 100755 --- a/Bugzilla/WebService/User.pm +++ b/Bugzilla/WebService/User.pm @@ -15,20 +15,20 @@ # Contributor(s): Marc Schumann <wurblzap@gmail.com> # Max Kanat-Alexander <mkanat@bugzilla.org> # Mads Bondo Dydensborg <mbd@dbc.dk> +# Noura Elhawary <nelhawar@redhat.com> package Bugzilla::WebService::User; use strict; use base qw(Bugzilla::WebService); -import SOAP::Data qw(type); - use Bugzilla; use Bugzilla::Constants; use Bugzilla::Error; use Bugzilla::User; use Bugzilla::Util qw(trim); use Bugzilla::Token; +use Bugzilla::WebService::Util qw(filter); # Don't need auth to login use constant LOGIN_EXEMPT => { @@ -67,7 +67,7 @@ sub login { $cgi->param('Bugzilla_remember', $remember); Bugzilla->login; - return { id => type('int')->value(Bugzilla->user->id) }; + return { id => $self->type('int', Bugzilla->user->id) }; } sub logout { @@ -122,7 +122,105 @@ sub create { cryptpassword => $password }); - return { id => type('int')->value($user->id) }; + return { id => $self->type('int', $user->id) }; +} + + +# function to return user information by passing either user ids or +# login names or both together: +# $call = $rpc->call( 'User.get', { ids => [1,2,3], +# names => ['testusera@redhat.com', 'testuserb@redhat.com'] }); +sub get { + my ($self, $params) = @_; + + my @user_objects; + @user_objects = map { Bugzilla::User->check($_) } @{ $params->{names} } + if $params->{names}; + + # start filtering to remove duplicate user ids + my %unique_users = map { $_->id => $_ } @user_objects; + @user_objects = values %unique_users; + + my @users; + + # If the user is not logged in: Return an error if they passed any user ids. + # Otherwise, return a limited amount of information based on login names. + if (!Bugzilla->user->id){ + if ($params->{ids}){ + ThrowUserError("user_access_by_id_denied"); + } + if ($params->{match}) { + ThrowUserError('user_access_by_match_denied'); + } + @users = map {filter $params, { + id => $self->type('int', $_->id), + real_name => $self->type('string', $_->name), + name => $self->type('string', $_->login), + }} @user_objects; + + return { users => \@users }; + } + + my $obj_by_ids; + $obj_by_ids = Bugzilla::User->new_from_list($params->{ids}) if $params->{ids}; + + # obj_by_ids are only visible to the user if he can see + # the otheruser, for non visible otheruser throw an error + foreach my $obj (@$obj_by_ids) { + if (Bugzilla->user->can_see_user($obj)){ + if (!$unique_users{$obj->id}) { + push (@user_objects, $obj); + $unique_users{$obj->id} = $obj; + } + } + else { + ThrowUserError('auth_failure', {reason => "not_visible", + action => "access", + object => "user", + userid => $obj->id}); + } + } + + # User Matching + my $limit; + if ($params->{'maxusermatches'}) { + $limit = $params->{'maxusermatches'} + 1; + } + foreach my $match_string (@{ $params->{'match'} || [] }) { + my $matched = Bugzilla::User::match($match_string, $limit); + foreach my $user (@$matched) { + if (!$unique_users{$user->id}) { + push(@user_objects, $user); + $unique_users{$user->id} = $user; + } + } + } + + if (Bugzilla->user->in_group('editusers')) { + @users = + map {filter $params, { + id => $self->type('int', $_->id), + real_name => $self->type('string', $_->name), + name => $self->type('string', $_->login), + email => $self->type('string', $_->email), + can_login => $self->type('boolean', $_->is_disabled ? 0 : 1), + email_enabled => $self->type('boolean', $_->email_enabled), + login_denied_text => $self->type('string', $_->disabledtext), + }} @user_objects; + + } + else { + @users = + map {filter $params, { + id => $self->type('int', $_->id), + real_name => $self->type('string', $_->name), + name => $self->type('string', $_->login), + email => $self->type('string', $_->email), + can_login => $self->type('boolean', $_->is_disabled ? 0 : 1), + }} @user_objects; + } + + return { users => \@users }; } 1; @@ -328,6 +426,159 @@ password is over ten characters.) =back +=back + +=back + +=head2 User Info + +=over + +=item C<get> + +B<UNSTABLE> + +=over + +=item B<Description> + +Gets information about user accounts in Bugzilla. + +=item B<Params> + +B<Note>: At least one of C<ids>, C<names>, or C<match> must be specified. + +B<Note>: Users will not be returned more than once, so even if a user +is matched by more than one argument, only one user will be returned. + +=over + +=item C<ids> (array) + +An array of integers, representing user ids. + +Logged-out users cannot pass this parameter to this function. If they try, +they will get an error. Logged-in users will get an error if they specify +the id of a user they cannot see. + +=item C<names> (array) - An array of login names (strings). + +=item C<match> (array) + +An array of strings. This works just like "user matching" in +Bugzilla itself. Users will be returned whose real name or login name +contains any one of the specified strings. Users that you cannot see will +not be included in the returned list. + +Some Bugzilla installations have user-matching turned off, in which +case you will only be returned exact matches. + +Most installations have a limit on how many matches are returned for +each string, which defaults to 1000 but can be changed by the Bugzilla +administrator. + +Logged-out users cannot use this argument, and an error will be thrown +if they try. (This is to make it harder for spammers to harvest email +addresses from Bugzilla, and also to enforce the user visibility +restrictions that are implemented on some Bugzillas.) + +=item C<include_fields> (array) + +An array of strings, representing the names of keys in the hashes +this function returns. Only the fields specified in this hash will be +returned, the rest will not be included. + +Essentially, this is a way to make the return value smaller, for performance +or bandwidth reasons. + +If you specify an empty array, then this function will return empty hashes. + +Invalid field names are ignored. + +=item C<exclude_fields> (array) + +An array of strings, representing the names of keys in the hashes this +function returns. The fields specified will not be excluded from the +returned hashes. + +Essentially, this is a way to exclude certain fields from the returned +hashes, for performance or bandwidth reasons. + +If you specify all the fields, then this function will return empty hashes. + +Invalid field names are ignored. + +This overrides C<include_fields>. + +=back + +=item B<Returns> + +A hash containing one item, C<users>, that is an array of +hashes. Each hash describes a user, and has the following items: + +=over + +=item id + +C<int> The unique integer ID that Bugzilla uses to represent this user. +Even if the user's login name changes, this will not change. + +=item real_name + +C<string> The actual name of the user. May be blank. + +=item email + +C<string> The email address of the user. + +=item name + +C<string> The login name of the user. Note that in some situations this is +different than their email. + +=item can_login + +C<boolean> A boolean value to indicate if the user can login into bugzilla. + +=item email_enabled + +C<boolean> A boolean value to indicate if bug-related mail will be sent +to the user or not. + +=item login_denied_text + +C<string> A text field that holds the reason for disabling a user from logging +into bugzilla, if empty then the user account is enabled. Otherwise it is +disabled/closed. + +B<Note>: If you are not logged in to Bugzilla when you call this function, you +will only be returned the C<id>, C<name>, and C<real_name> items. If you are +logged in and not in editusers group, you will only be returned the C<id>, C<name>, +C<real_name>, C<email>, and C<can_login> items. + +=back + +=item B<Errors> + +=over + +=item 51 (Bad Login Name) + +You passed an invalid login name in the "names" array. + +=item 304 (Authorization Required) + +You are logged in, but you are not authorized to see one of the users you +wanted to get information about by user id. + +=item 505 (User Access By Id or User-Matching Denied) + +Logged-out users cannot use the "ids" or "match" arguments to this +function. + +=back + =item B<History> =over diff --git a/Bugzilla/WebService/Util.pm b/Bugzilla/WebService/Util.pm new file mode 100644 index 0000000000000000000000000000000000000000..cd75bee8cd83f4348d0a689787ca51fa2da9605a --- /dev/null +++ b/Bugzilla/WebService/Util.pm @@ -0,0 +1,75 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# The Initial Developer of the Original Code is Everything Solved, Inc. +# Portions created by the Initial Developer are Copyright (C) 2008 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Max Kanat-Alexander <mkanat@bugzilla.org> + +package Bugzilla::WebService::Util; +use strict; + +use base qw(Exporter); + +our @EXPORT_OK = qw(filter); + +sub filter ($$) { + my ($params, $hash) = @_; + my %newhash = %$hash; + my %include = map { $_ => 1 } @{ $params->{'include_fields'} || [] }; + my %exclude = map { $_ => 1 } @{ $params->{'exclude_fields'} || [] }; + + foreach my $key (keys %$hash) { + if (defined $params->{include_fields}) { + delete $newhash{$key} if !$include{$key}; + } + if (defined $params->{exclude_fields}) { + delete $newhash{$key} if $exclude{$key}; + } + } + + return \%newhash; +} + +__END__ + +=head1 NAME + +Bugzilla::WebService::Util - Utility functions used inside of the WebService +code. These are B<not> functions that can be called via the WebService. + +=head1 DESCRIPTION + +This is somewhat like L<Bugzilla::Util>, but these functions are only used +internally in the WebService code. + +=head1 SYNOPSIS + + filter({ include_fields => ['id', 'name'], + exclude_fields => ['name'] }, $hash); + +=head1 METHODS + +=over + +=item C<filter_fields> + +This helps implement the C<include_fields> and C<exclude_fields> arguments +of WebService methods. Given a hash (the second argument to this subroutine), +this will remove any keys that are I<not> in C<include_fields> and then remove +any keys that I<are> in C<exclude_fields>. + +=back diff --git a/CVS/Entries b/CVS/Entries index f260edbacaa1eb2ae1c9b33d2fb6f61bfcbfd357..be8bd6734db415a8b344bcb4928c9f1d947f11bf 100644 --- a/CVS/Entries +++ b/CVS/Entries @@ -1,75 +1,75 @@ -/.cvsignore/1.8/Fri Oct 19 07:58:48 2007//TBUGZILLA-3_2_1 -/Bugzilla.pm/1.65.2.3/Sat Oct 4 23:47:50 2008//TBUGZILLA-3_2_1 -/QUICKSTART/1.8/Tue Oct 23 08:06:36 2007//TBUGZILLA-3_2_1 -/README/1.52/Fri Oct 10 02:22:39 2003//TBUGZILLA-3_2_1 -/UPGRADING/1.1/Fri Aug 10 22:35:21 2001//TBUGZILLA-3_2_1 -/UPGRADING-pre-2.8/1.4/Mon Dec 24 01:37:43 2007//TBUGZILLA-3_2_1 -/admin.cgi/1.2/Fri Oct 19 06:46:10 2007//TBUGZILLA-3_2_1 -/attachment.cgi/1.144.2.4/Mon Feb 2 19:12:14 2009//TBUGZILLA-3_2_1 -/buglist.cgi/1.374.2.7/Mon Feb 2 18:50:20 2009//TBUGZILLA-3_2_1 -/bugzilla.dtd/1.15/Sat Jan 6 23:51:56 2007//TBUGZILLA-3_2_1 -/chart.cgi/1.26.2.1/Thu Jan 15 01:16:04 2009//TBUGZILLA-3_2_1 -/checksetup.pl/1.557.2.2/Tue Sep 2 05:48:09 2008//TBUGZILLA-3_2_1 -/colchange.cgi/1.62.2.1/Tue Aug 19 21:29:50 2008//TBUGZILLA-3_2_1 -/collectstats.pl/1.64.2.2/Mon Oct 27 22:53:45 2008//TBUGZILLA-3_2_1 -/config.cgi/1.29/Sun Apr 20 09:49:44 2008//TBUGZILLA-3_2_1 -/createaccount.cgi/1.57/Sun Nov 11 22:03:16 2007//TBUGZILLA-3_2_1 -/describecomponents.cgi/1.38/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/describekeywords.cgi/1.21/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/duplicates.cgi/1.61/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/duplicates.xul/1.2/Thu Oct 21 19:02:28 2004//TBUGZILLA-3_2_1 -/editclassifications.cgi/1.30/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_2_1 -/editcomponents.cgi/1.86/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_2_1 -/editfields.cgi/1.9/Wed Feb 6 16:15:34 2008//TBUGZILLA-3_2_1 -/editflagtypes.cgi/1.53.2.1/Mon Feb 2 19:01:12 2009//TBUGZILLA-3_2_1 -/editgroups.cgi/1.88/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_2_1 -/editkeywords.cgi/1.45.2.1/Mon Feb 2 19:01:12 2009//TBUGZILLA-3_2_1 -/editmilestones.cgi/1.62/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_2_1 -/editparams.cgi/1.48.2.1/Fri Aug 22 16:02:45 2008//TBUGZILLA-3_2_1 -/editproducts.cgi/1.142.2.2/Thu Dec 18 17:19:27 2008//TBUGZILLA-3_2_1 -/editsettings.cgi/1.11/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_2_1 -/editusers.cgi/1.146.2.2/Fri Nov 21 21:55:57 2008//TBUGZILLA-3_2_1 -/editvalues.cgi/1.30.2.1/Tue Dec 16 21:24:03 2008//TBUGZILLA-3_2_1 -/editversions.cgi/1.58/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_2_1 -/editwhines.cgi/1.21.2.1/Wed Aug 27 00:53:21 2008//TBUGZILLA-3_2_1 -/editworkflow.cgi/1.5.2.1/Wed Jul 2 19:14:19 2008//TBUGZILLA-3_2_1 -/email_in.pl/1.19.2.2/Mon Feb 2 18:42:01 2009//TBUGZILLA-3_2_1 -/enter_bug.cgi/1.160.2.5/Wed Jan 28 23:29:19 2009//TBUGZILLA-3_2_1 -/importxml.pl/1.82.2.3/Tue Aug 12 09:41:29 2008//TBUGZILLA-3_2_1 -/index.cgi/1.24.2.3/Mon Aug 18 03:57:38 2008//TBUGZILLA-3_2_1 -/install-module.pl/1.2.2.1/Mon Aug 18 23:29:28 2008//TBUGZILLA-3_2_1 -/long_list.cgi/1.48/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/mod_perl.pl/1.10/Sun Jan 6 02:55:59 2008//TBUGZILLA-3_2_1 -/page.cgi/1.20/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/post_bug.cgi/1.196.2.1/Wed Sep 17 23:55:41 2008//TBUGZILLA-3_2_1 -/process_bug.cgi/1.410.2.2/Mon Feb 2 18:42:01 2009//TBUGZILLA-3_2_1 -/query.cgi/1.181/Thu Mar 27 05:08:07 2008//TBUGZILLA-3_2_1 -/quips.cgi/1.38.2.1/Wed Nov 5 18:41:33 2008//TBUGZILLA-3_2_1 -/relogin.cgi/1.41/Wed Apr 2 17:42:26 2008//TBUGZILLA-3_2_1 -/report.cgi/1.41.2.1/Thu Jan 15 01:16:04 2009//TBUGZILLA-3_2_1 -/reports.cgi/1.93.2.1/Sun Dec 14 14:29:59 2008//TBUGZILLA-3_2_1 -/request.cgi/1.46/Wed May 14 03:34:24 2008//TBUGZILLA-3_2_1 -/robots.txt/1.2/Wed Apr 24 18:11:00 2002//TBUGZILLA-3_2_1 -/runtests.pl/1.5/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/sanitycheck.cgi/1.140.2.4/Sun Jun 29 21:52:49 2008//TBUGZILLA-3_2_1 -/sanitycheck.pl/1.3/Thu Jan 31 12:00:19 2008//TBUGZILLA-3_2_1 -/search_plugin.cgi/1.3/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/show_activity.cgi/1.24/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/show_bug.cgi/1.53.2.1/Wed Sep 17 23:55:41 2008//TBUGZILLA-3_2_1 -/showattachment.cgi/1.16/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/showdependencygraph.cgi/1.65.2.1/Tue Oct 7 19:52:53 2008//TBUGZILLA-3_2_1 -/showdependencytree.cgi/1.52/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/sidebar.cgi/1.19/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/summarize_time.cgi/1.23/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/testagent.cgi/1.3/Sun Feb 11 00:12:24 2007//TBUGZILLA-3_2_1 -/testserver.pl/1.18/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/token.cgi/1.54.2.3/Mon Aug 18 03:57:38 2008//TBUGZILLA-3_2_1 -/userprefs.cgi/1.120.2.2/Mon Feb 2 19:22:55 2009//TBUGZILLA-3_2_1 -/votes.cgi/1.55/Sun Feb 3 11:37:20 2008//TBUGZILLA-3_2_1 -/whine.pl/1.37/Wed Apr 2 17:42:26 2008//TBUGZILLA-3_2_1 -/whineatnews.pl/1.31/Wed Apr 2 17:42:26 2008//TBUGZILLA-3_2_1 -/xml.cgi/1.14/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_2_1 -/xmlrpc.cgi/1.6.2.4/Wed Aug 27 01:55:39 2008//TBUGZILLA-3_2_1 +/.cvsignore/1.8/Fri Oct 19 07:58:48 2007//TBUGZILLA-3_3_1 +/Bugzilla.pm/1.72/Wed Dec 24 03:43:36 2008//TBUGZILLA-3_3_1 +/QUICKSTART/1.8/Tue Oct 23 08:06:36 2007//TBUGZILLA-3_3_1 +/README/1.52/Fri Oct 10 02:22:39 2003//TBUGZILLA-3_3_1 +/UPGRADING/1.1/Fri Aug 10 22:35:21 2001//TBUGZILLA-3_3_1 +/UPGRADING-pre-2.8/1.4/Mon Dec 24 01:37:43 2007//TBUGZILLA-3_3_1 +/admin.cgi/1.2/Fri Oct 19 06:46:10 2007//TBUGZILLA-3_3_1 +/attachment.cgi/1.150/Wed Dec 17 15:07:28 2008//TBUGZILLA-3_3_1 +/buglist.cgi/1.388/Sun Jan 4 17:44:35 2009//TBUGZILLA-3_3_1 +/bugzilla.dtd/1.15/Sat Jan 6 23:51:56 2007//TBUGZILLA-3_3_1 +/chart.cgi/1.27/Wed Aug 27 02:32:12 2008//TBUGZILLA-3_3_1 +/checksetup.pl/1.561/Mon Dec 22 15:50:51 2008//TBUGZILLA-3_3_1 +/colchange.cgi/1.65/Wed Sep 10 19:07:01 2008//TBUGZILLA-3_3_1 +/collectstats.pl/1.68/Tue Dec 16 21:16:28 2008//TBUGZILLA-3_3_1 +/config.cgi/1.30/Fri Oct 24 23:11:30 2008//TBUGZILLA-3_3_1 +/createaccount.cgi/1.57/Sun Nov 11 22:03:16 2007//TBUGZILLA-3_3_1 +/describecomponents.cgi/1.38/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1 +/describekeywords.cgi/1.21/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1 +/duplicates.cgi/1.62/Wed May 21 00:00:57 2008//TBUGZILLA-3_3_1 +/editclassifications.cgi/1.33/Fri Jan 2 13:59:22 2009//TBUGZILLA-3_3_1 +/editcomponents.cgi/1.86/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_3_1 +/editfields.cgi/1.11/Fri Nov 7 11:34:39 2008//TBUGZILLA-3_3_1 +/editflagtypes.cgi/1.54/Thu Jan 1 19:04:52 2009//TBUGZILLA-3_3_1 +/editgroups.cgi/1.89/Sat Oct 18 16:15:19 2008//TBUGZILLA-3_3_1 +/editkeywords.cgi/1.46/Sat Oct 18 16:30:20 2008//TBUGZILLA-3_3_1 +/editmilestones.cgi/1.62/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_3_1 +/editparams.cgi/1.50/Fri Aug 22 16:00:33 2008//TBUGZILLA-3_3_1 +/editproducts.cgi/1.147/Fri Jan 2 13:47:18 2009//TBUGZILLA-3_3_1 +/editsettings.cgi/1.11/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_3_1 +/editusers.cgi/1.152/Wed Dec 3 07:00:43 2008//TBUGZILLA-3_3_1 +/editvalues.cgi/1.38/Fri Nov 7 11:34:39 2008//TBUGZILLA-3_3_1 +/editversions.cgi/1.58/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_3_1 +/editwhines.cgi/1.23/Wed Aug 27 23:26:13 2008//TBUGZILLA-3_3_1 +/editworkflow.cgi/1.6/Wed Jul 2 19:10:17 2008//TBUGZILLA-3_3_1 +/email_in.pl/1.21/Fri Jul 11 21:27:12 2008//TBUGZILLA-3_3_1 +/enter_bug.cgi/1.167/Fri Jan 2 13:26:51 2009//TBUGZILLA-3_3_1 +/importxml.pl/1.87/Tue Dec 16 21:16:28 2008//TBUGZILLA-3_3_1 +/index.cgi/1.27/Mon Aug 18 04:16:12 2008//TBUGZILLA-3_3_1 +/install-module.pl/1.3/Mon Aug 18 23:27:50 2008//TBUGZILLA-3_3_1 +/jobqueue.pl/1.2/Wed Dec 24 04:30:41 2008//TBUGZILLA-3_3_1 +/long_list.cgi/1.48/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1 +/mod_perl.pl/1.10/Sun Jan 6 02:55:59 2008//TBUGZILLA-3_3_1 +/page.cgi/1.20/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1 +/post_bug.cgi/1.198/Wed Sep 17 23:48:57 2008//TBUGZILLA-3_3_1 +/process_bug.cgi/1.415/Sun Jan 4 04:38:35 2009//TBUGZILLA-3_3_1 +/query.cgi/1.182/Sat Jan 3 01:08:27 2009//TBUGZILLA-3_3_1 +/quips.cgi/1.39/Wed Nov 5 18:38:49 2008//TBUGZILLA-3_3_1 +/relogin.cgi/1.41/Wed Apr 2 17:42:26 2008//TBUGZILLA-3_3_1 +/report.cgi/1.43/Sat Jan 3 01:08:27 2009//TBUGZILLA-3_3_1 +/reports.cgi/1.94/Sun Dec 14 14:28:29 2008//TBUGZILLA-3_3_1 +/request.cgi/1.48/Tue Aug 19 16:09:03 2008//TBUGZILLA-3_3_1 +/robots.txt/1.2/Wed Apr 24 18:11:00 2002//TBUGZILLA-3_3_1 +/runtests.pl/1.5/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1 +/sanitycheck.cgi/1.143/Sat Jun 14 11:15:22 2008//TBUGZILLA-3_3_1 +/sanitycheck.pl/1.4/Tue Dec 16 21:16:29 2008//TBUGZILLA-3_3_1 +/search_plugin.cgi/1.4/Tue Dec 16 22:39:41 2008//TBUGZILLA-3_3_1 +/show_activity.cgi/1.25/Sun Jun 29 21:57:54 2008//TBUGZILLA-3_3_1 +/show_bug.cgi/1.55/Wed Sep 17 23:48:57 2008//TBUGZILLA-3_3_1 +/showattachment.cgi/1.16/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1 +/showdependencygraph.cgi/1.67/Tue Oct 7 19:49:58 2008//TBUGZILLA-3_3_1 +/showdependencytree.cgi/1.53/Sun Jun 29 21:57:54 2008//TBUGZILLA-3_3_1 +/sidebar.cgi/1.19/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1 +/summarize_time.cgi/1.24/Sun Jun 29 21:57:54 2008//TBUGZILLA-3_3_1 +/testagent.cgi/1.3/Sun Feb 11 00:12:24 2007//TBUGZILLA-3_3_1 +/testserver.pl/1.19/Mon Dec 22 15:50:53 2008//TBUGZILLA-3_3_1 +/token.cgi/1.59/Fri Sep 19 20:00:25 2008//TBUGZILLA-3_3_1 +/userprefs.cgi/1.124/Wed Dec 10 18:26:51 2008//TBUGZILLA-3_3_1 +/votes.cgi/1.56/Sun Jun 29 21:57:54 2008//TBUGZILLA-3_3_1 +/whine.pl/1.37/Wed Apr 2 17:42:26 2008//TBUGZILLA-3_3_1 +/whineatnews.pl/1.31/Wed Apr 2 17:42:26 2008//TBUGZILLA-3_3_1 +/xml.cgi/1.14/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1 +/xmlrpc.cgi/1.10/Wed Aug 27 01:54:05 2008//TBUGZILLA-3_3_1 D/Bugzilla//// D/contrib//// D/docs//// diff --git a/CVS/Tag b/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/CVS/Tag +++ b/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/attachment.cgi b/attachment.cgi index a0f14c185ce0fe821268c7abd4975a99172391ff..35829343fa2fb229f1d25c7d3ab11686d665df81 100755 --- a/attachment.cgi +++ b/attachment.cgi @@ -27,7 +27,6 @@ # Greg Hendricks <ghendricks@novell.com> # Frédéric Buclin <LpSolit@gmail.com> # Marc Schumann <wurblzap@gmail.com> -# Byron Jones <bugzilla@glob.com.au> ################################################################################ # Script Initialization @@ -52,6 +51,8 @@ use Bugzilla::Attachment::PatchReader; use Bugzilla::Token; use Bugzilla::Keyword; +Bugzilla->login(); + # For most scripts we don't make $cgi and $template global variables. But # when preparing Bugzilla for mod_perl, this script used these # variables in so many subroutines that it was easier to just @@ -72,27 +73,13 @@ local our $vars = {}; # Determine whether to use the action specified by the user or the default. my $action = $cgi->param('action') || 'view'; -# You must use the appropriate urlbase/sslbase param when doing anything -# but viewing an attachment. -if ($action ne 'view') { - my $urlbase = Bugzilla->params->{'urlbase'}; - my $sslbase = Bugzilla->params->{'sslbase'}; - my $path_regexp = $sslbase ? qr/^(\Q$urlbase\E|\Q$sslbase\E)/ : qr/^\Q$urlbase\E/; - if (use_attachbase() && $cgi->self_url !~ /$path_regexp/) { - $cgi->redirect_to_urlbase; - } - Bugzilla->login(); -} - # Determine if PatchReader is installed eval { require PatchReader; $vars->{'patchviewerinstalled'} = 1; }; -# When viewing an attachment, do not request credentials if we are on -# the alternate host. Let view() decide when to call Bugzilla->login. -if ($action eq "view") +if ($action eq "view") { view(); } @@ -144,8 +131,7 @@ exit; # Validates an attachment ID. Optionally takes a parameter of a form # variable name that contains the ID to be validated. If not specified, # uses 'id'. -# If the second parameter is true, the attachment ID will be validated, -# however the current user's access to the attachment will not be checked. +# # Will throw an error if 1) attachment ID is not a valid number, # 2) attachment does not exist, or 3) user isn't allowed to access the # attachment. @@ -153,8 +139,8 @@ exit; # Returns an attachment object. sub validateID { - my($param, $dont_validate_access) = @_; - $param ||= 'id'; + my $param = @_ ? $_[0] : 'id'; + my $user = Bugzilla->user; # If we're not doing interdiffs, check if id wasn't specified and # prompt them with a page that allows them to choose an attachment. @@ -175,36 +161,18 @@ sub validateID { || ThrowUserError("invalid_attach_id", { attach_id => $cgi->param($param) }); # Make sure the attachment exists in the database. - my $attachment = Bugzilla::Attachment->get($attach_id) + my $attachment = new Bugzilla::Attachment($attach_id) || ThrowUserError("invalid_attach_id", { attach_id => $attach_id }); - return $attachment if ($dont_validate_access || check_can_access($attachment)); -} - -# Make sure the current user has access to the specified attachment. -sub check_can_access { - my $attachment = shift; - my $user = Bugzilla->user; - # Make sure the user is authorized to access this attachment's bug. - ValidateBugID($attachment->bug_id); - if ($attachment->isprivate && $user->id != $attachment->attacher->id && !$user->is_insider) { + Bugzilla::Bug->check($attachment->bug_id); + if ($attachment->isprivate && $user->id != $attachment->attacher->id + && !$user->is_insider) + { ThrowUserError('auth_failure', {action => 'access', object => 'attachment'}); } - return 1; -} - -# Determines if the attachment is public -- that is, if users who are -# not logged in have access to the attachment -sub attachmentIsPublic { - my $attachment = shift; - - return 0 if Bugzilla->params->{'requirelogin'}; - return 0 if $attachment->isprivate; - - my $anon_user = new Bugzilla::User; - return $anon_user->can_see_bug($attachment->bug_id); + return $attachment; } # Validates format of a diff/interdiff. Takes a list as an parameter, which @@ -255,60 +223,8 @@ sub validateCanChangeBug # Display an attachment. sub view { - my $attachment; - - if (use_attachbase()) { - $attachment = validateID(undef, 1); - # Replace %bugid% by the ID of the bug the attachment belongs to, if present. - my $attachbase = Bugzilla->params->{'attachment_base'}; - my $bug_id = $attachment->bug_id; - $attachbase =~ s/%bugid%/$bug_id/; - my $path = 'attachment.cgi?id=' . $attachment->id; - - # Make sure the attachment is served from the correct server. - if ($cgi->self_url !~ /^\Q$attachbase\E/) { - # We couldn't call Bugzilla->login earlier as we first had to make sure - # we were not going to request credentials on the alternate host. - Bugzilla->login(); - if (attachmentIsPublic($attachment)) { - # No need for a token; redirect to attachment base. - print $cgi->redirect(-location => $attachbase . $path); - exit; - } else { - # Make sure the user can view the attachment. - check_can_access($attachment); - # Create a token and redirect. - my $token = url_quote(issue_session_token($attachment->id)); - print $cgi->redirect(-location => $attachbase . "$path&t=$token"); - exit; - } - } else { - # No need to validate the token for public attachments. We cannot request - # credentials as we are on the alternate host. - if (!attachmentIsPublic($attachment)) { - my $token = $cgi->param('t'); - my ($userid, undef, $token_attach_id) = Bugzilla::Token::GetTokenData($token); - unless ($userid - && detaint_natural($token_attach_id) - && ($token_attach_id == $attachment->id)) - { - # Not a valid token. - print $cgi->redirect('-location' => correct_urlbase() . $path); - exit; - } - # Change current user without creating cookies. - Bugzilla->set_user(new Bugzilla::User($userid)); - # Tokens are single use only, delete it. - delete_token($token); - } - } - } else { - # No alternate host is used. Request credentials if required. - Bugzilla->login(); - $attachment = validateID(); - } - - # At this point, Bugzilla->login has been called if it had to. + # Retrieve and validate parameters + my $attachment = validateID(); my $contenttype = $attachment->contenttype; my $filename = $attachment->filename; @@ -330,10 +246,8 @@ sub view { $filename =~ s/\\/\\\\/g; # escape backslashes $filename =~ s/"/\\"/g; # escape quotes - my $disposition = Bugzilla->params->{'allow_attachment_display'} ? 'inline' : 'attachment'; - print $cgi->header(-type=>"$contenttype; name=\"$filename\"", - -content_disposition=> "$disposition; filename=\"$filename\"", + -content_disposition=> "inline; filename=\"$filename\"", -content_length => $attachment->datasize); disable_utf8(); print $attachment->data; @@ -369,9 +283,8 @@ sub diff { # HTML page. sub viewall { # Retrieve and validate parameters - my $bugid = $cgi->param('bugid'); - ValidateBugID($bugid); - my $bug = new Bugzilla::Bug($bugid); + my $bug = Bugzilla::Bug->check(scalar $cgi->param('bugid')); + my $bugid = $bug->id; my $attachments = Bugzilla::Attachment->get_attachments_by_bug($bugid); @@ -389,13 +302,12 @@ sub viewall { # Display a form for entering a new attachment. sub enter { # Retrieve and validate parameters - my $bugid = $cgi->param('bugid'); - ValidateBugID($bugid); + my $bug = Bugzilla::Bug->check(scalar $cgi->param('bugid')); + my $bugid = $bug->id; validateCanChangeBug($bugid); my $dbh = Bugzilla->dbh; my $user = Bugzilla->user; - my $bug = new Bugzilla::Bug($bugid, $user->id); # Retrieve the attachments the user can edit from the database and write # them into an array of hashes where each hash represents one attachment. my $canEdit = ""; @@ -408,7 +320,7 @@ sub enter { # Define the variables and functions that will be passed to the UI template. $vars->{'bug'} = $bug; - $vars->{'attachments'} = Bugzilla::Attachment->get_list($attach_ids); + $vars->{'attachments'} = Bugzilla::Attachment->new_from_list($attach_ids); my $flag_types = Bugzilla::FlagType::match({'target_type' => 'attachment', 'product_id' => $bug->product_id, @@ -432,8 +344,8 @@ sub insert { $dbh->bz_start_transaction; # Retrieve and validate parameters - my $bugid = $cgi->param('bugid'); - ValidateBugID($bugid); + my $bug = Bugzilla::Bug->check(scalar $cgi->param('bugid')); + my $bugid = $bug->id; validateCanChangeBug($bugid); my ($timestamp) = Bugzilla->dbh->selectrow_array("SELECT NOW()"); @@ -461,10 +373,8 @@ sub insert { } } - my $bug = new Bugzilla::Bug($bugid); my $attachment = - Bugzilla::Attachment->insert_attachment_for_bug(THROW_ERROR, $bug, $user, - $timestamp, $vars); + Bugzilla::Attachment->create(THROW_ERROR, $bug, $user, $timestamp, $vars); # Insert a comment about the new attachment into the database. my $comment = "Created an attachment (id=" . $attachment->id . ")\n" . @@ -523,32 +433,14 @@ sub insert { # Validations are done later when the user submits changes. sub edit { my $attachment = validateID(); - my $dbh = Bugzilla->dbh; - # Retrieve a list of attachments for this bug as well as a summary of the bug - # to use in a navigation bar across the top of the screen. my $bugattachments = Bugzilla::Attachment->get_attachments_by_bug($attachment->bug_id); # We only want attachment IDs. @$bugattachments = map { $_->id } @$bugattachments; - my ($bugsummary, $product_id, $component_id) = - $dbh->selectrow_array('SELECT short_desc, product_id, component_id - FROM bugs - WHERE bug_id = ?', undef, $attachment->bug_id); - - # Get a list of flag types that can be set for this attachment. - my $flag_types = Bugzilla::FlagType::match({ 'target_type' => 'attachment' , - 'product_id' => $product_id , - 'component_id' => $component_id }); - foreach my $flag_type (@$flag_types) { - $flag_type->{'flags'} = Bugzilla::Flag->match({ 'type_id' => $flag_type->id, - 'attach_id' => $attachment->id }); - } - $vars->{'flag_types'} = $flag_types; - $vars->{'any_flags_requesteeble'} = grep($_->is_requesteeble, @$flag_types); + $vars->{'any_flags_requesteeble'} = grep($_->is_requesteeble, @{$attachment->flag_types}); $vars->{'attachment'} = $attachment; - $vars->{'bugsummary'} = $bugsummary; $vars->{'attachments'} = $bugattachments; print $cgi->header(); @@ -664,41 +556,54 @@ sub update { $cgi->param('ispatch'), $cgi->param('isobsolete'), $cgi->param('isprivate'), $timestamp, $attachment->id)); - my $updated_attachment = Bugzilla::Attachment->get($attachment->id); + my $updated_attachment = new Bugzilla::Attachment($attachment->id); # Record changes in the activity table. my $sth = $dbh->prepare('INSERT INTO bugs_activity (bug_id, attach_id, who, bug_when, fieldid, removed, added) VALUES (?, ?, ?, ?, ?, ?, ?)'); + # Flag for updating Last-Modified timestamp if record changed + my $updated = 0; if ($attachment->description ne $updated_attachment->description) { my $fieldid = get_field_id('attachments.description'); $sth->execute($bug->id, $attachment->id, $user->id, $timestamp, $fieldid, $attachment->description, $updated_attachment->description); + $updated = 1; } if ($attachment->contenttype ne $updated_attachment->contenttype) { my $fieldid = get_field_id('attachments.mimetype'); $sth->execute($bug->id, $attachment->id, $user->id, $timestamp, $fieldid, $attachment->contenttype, $updated_attachment->contenttype); + $updated = 1; } if ($attachment->filename ne $updated_attachment->filename) { my $fieldid = get_field_id('attachments.filename'); $sth->execute($bug->id, $attachment->id, $user->id, $timestamp, $fieldid, $attachment->filename, $updated_attachment->filename); + $updated = 1; } if ($attachment->ispatch != $updated_attachment->ispatch) { my $fieldid = get_field_id('attachments.ispatch'); $sth->execute($bug->id, $attachment->id, $user->id, $timestamp, $fieldid, $attachment->ispatch, $updated_attachment->ispatch); + $updated = 1; } if ($attachment->isobsolete != $updated_attachment->isobsolete) { my $fieldid = get_field_id('attachments.isobsolete'); $sth->execute($bug->id, $attachment->id, $user->id, $timestamp, $fieldid, $attachment->isobsolete, $updated_attachment->isobsolete); + $updated = 1; } if ($attachment->isprivate != $updated_attachment->isprivate) { my $fieldid = get_field_id('attachments.isprivate'); $sth->execute($bug->id, $attachment->id, $user->id, $timestamp, $fieldid, $attachment->isprivate, $updated_attachment->isprivate); + $updated = 1; + } + + if ($updated) { + $dbh->do("UPDATE bugs SET delta_ts = ? WHERE bug_id = ?", undef, + $timestamp, $bug->id); } # Commit the transaction now that we are finished updating the database. diff --git a/buglist.cgi b/buglist.cgi index 3d9228fd0362e4273152ece36db2b1fc69efef0c..32fb1b3f0a2dcd896f83b174e7b0051868a08a17 100755 --- a/buglist.cgi +++ b/buglist.cgi @@ -47,7 +47,6 @@ use Bugzilla::Product; use Bugzilla::Keyword; use Bugzilla::Field; use Bugzilla::Status; -use Bugzilla::Token; use Date::Parse; @@ -67,6 +66,17 @@ if (length($buffer) == 0) { ThrowUserError("buglist_parameters_required"); } +# +# If query was POSTed, clean the URL from empty parameters and redirect back to +# itself. This will make advanced search URLs more tolerable. +# +if ($cgi->request_method() eq 'POST') { + $cgi->clean_search_url(); + + print $cgi->redirect(-url => $cgi->self_url()); + exit; +} + # Determine whether this is a quicksearch query. my $searchstring = $cgi->param('quicksearch'); if (defined($searchstring)) { @@ -138,17 +148,20 @@ my $format = $template->get_format("list/list", scalar $cgi->param('format'), # to the URL. # # Server push is a Netscape 3+ hack incompatible with MSIE, Lynx, and others. -# Even Communicator 4.51 has bugs with it, especially during page reload. -# http://www.browsercaps.org used as source of compatible browsers. -# Safari (WebKit) does not support it, despite a UA that says otherwise (bug 188712) +# Safari 2.0.2 (Webkit 416.11) and above support it. # MSIE 5+ supports it on Mac (but not on Windows) (bug 190370) # +my $webkitversion = ""; +if ($ENV{'HTTP_USER_AGENT'} =~ /WebKit\/(\d+)/) { + $webkitversion = $1; +} + my $serverpush = $format->{'extension'} eq "html" && exists $ENV{'HTTP_USER_AGENT'} && $ENV{'HTTP_USER_AGENT'} =~ /Mozilla.[3-9]/ && (($ENV{'HTTP_USER_AGENT'} !~ /[Cc]ompatible/) || ($ENV{'HTTP_USER_AGENT'} =~ /MSIE 5.*Mac_PowerPC/)) - && $ENV{'HTTP_USER_AGENT'} !~ /WebKit/ + && (!$webkitversion || $webkitversion >= 416) && !$agent && !defined($cgi->param('serverpush')) || $cgi->param('serverpush'); @@ -202,18 +215,17 @@ foreach my $chart (@charts) { # Utilities ################################################################################ -local our @weekday= qw( Sun Mon Tue Wed Thu Fri Sat ); sub DiffDate { my ($datestr) = @_; my $date = str2time($datestr); my $age = time() - $date; - my ($s,$m,$h,$d,$mo,$y,$wd)= localtime $date; + if( $age < 18*60*60 ) { - $date = sprintf "%02d:%02d:%02d", $h,$m,$s; + $date = format_time($datestr, '%H:%M:%S'); } elsif( $age < 6*24*60*60 ) { - $date = sprintf "%s %02d:%02d", $weekday[$wd],$h,$m; + $date = format_time($datestr, '%a %H:%M'); } else { - $date = sprintf "%04d-%02d-%02d", 1900+$y,$mo+1,$d; + $date = format_time($datestr, '%Y-%m-%d'); } return $date; } @@ -268,7 +280,7 @@ sub LookupNamedQuery { FROM namedquery_group_map WHERE namedquery_id = ?', undef, $id); - if (!grep {$_ == $group} values(%{$user->groups()})) { + if (!grep { $_->id == $group } @{ $user->groups }) { ThrowUserError("missing_query", {'queryname' => $name, 'sharer_id' => $sharer_id}); } @@ -277,7 +289,7 @@ sub LookupNamedQuery { $result || ThrowUserError("buglist_parameters_required", {'queryname' => $name}); - return wantarray ? ($result, $id) : $result; + return $result; } # Inserts a Named Query (a "Saved Search") into the database, or @@ -435,16 +447,14 @@ $filename =~ s/"/\\"/g; # escape quotes # Take appropriate action based on user's request. if ($cgi->param('cmdtype') eq "dorem") { if ($cgi->param('remaction') eq "run") { - my $query_id; - ($buffer, $query_id) = LookupNamedQuery(scalar $cgi->param("namedcmd"), - scalar $cgi->param('sharer_id')); + $buffer = LookupNamedQuery(scalar $cgi->param("namedcmd"), + scalar $cgi->param('sharer_id')); # If this is the user's own query, remember information about it # so that it can be modified easily. $vars->{'searchname'} = $cgi->param('namedcmd'); if (!$cgi->param('sharer_id') || $cgi->param('sharer_id') == Bugzilla->user->id) { $vars->{'searchtype'} = "saved"; - $vars->{'search_id'} = $query_id; } $params = new Bugzilla::CGI($buffer); $order = $params->param('order') || $order; @@ -493,10 +503,6 @@ if ($cgi->param('cmdtype') eq "dorem") { # The user has no query of this name. Play along. } else { - # Make sure the user really wants to delete his saved search. - my $token = $cgi->param('token'); - check_hash_token($token, [$query_id, $qname]); - $dbh->do('DELETE FROM namedqueries WHERE id = ?', undef, $query_id); @@ -550,12 +556,9 @@ elsif (($cgi->param('cmdtype') eq "doit") && defined $cgi->param('remtype')) { my %bug_ids; my $is_new_name = 0; if ($query_name) { - my ($query, $query_id) = - LookupNamedQuery($query_name, undef, QUERY_LIST, !THROW_ERROR); # Make sure this name is not already in use by a normal saved search. - if ($query) { - ThrowUserError('query_name_exists', {name => $query_name, - query_id => $query_id}); + if (LookupNamedQuery($query_name, undef, QUERY_LIST, !THROW_ERROR)) { + ThrowUserError('query_name_exists', {'name' => $query_name}); } $is_new_name = 1; } @@ -578,8 +581,8 @@ elsif (($cgi->param('cmdtype') eq "doit") && defined $cgi->param('remtype')) { my $changes = 0; foreach my $bug_id (split(/[\s,]+/, $cgi->param('bug_ids'))) { next unless $bug_id; - ValidateBugID($bug_id); - $bug_ids{$bug_id} = $keep_bug; + my $bug = Bugzilla::Bug->check($bug_id); + $bug_ids{$bug->id} = $keep_bug; $changes = 1; } ThrowUserError('no_bug_ids', @@ -989,6 +992,7 @@ my $search = new Bugzilla::Search('fields' => \@selectnames, 'params' => $params, 'order' => \@orderstrings); my $query = $search->getSQL(); +$vars->{'search_description'} = $search->search_description; if (defined $cgi->param('limit')) { my $limit = $cgi->param('limit'); @@ -1009,7 +1013,13 @@ elsif ($fulltext) { if ($cgi->param('debug')) { $vars->{'debug'} = 1; $vars->{'query'} = $query; - $vars->{'debugdata'} = $search->getDebugData(); + # Explains are limited to admins because you could use them to figure + # out how many hidden bugs are in a particular product (by doing + # searches and looking at the number of rows the explain says it's + # examining). + if (Bugzilla->user->in_group('admin')) { + $vars->{'query_explain'} = $dbh->bz_explain($query); + } } # Time to use server push to display an interim message to the user until @@ -1055,6 +1065,22 @@ $buglist_sth->execute(); # Retrieve the query results one row at a time and write the data into a list # of Perl records. +# If we're doing time tracking, then keep totals for all bugs. +my $percentage_complete = lsearch(\@displaycolumns, 'percentage_complete') >= 0; +my $estimated_time = lsearch(\@displaycolumns, 'estimated_time') >= 0; +my $remaining_time = ((lsearch(\@displaycolumns, 'remaining_time') >= 0) + || $percentage_complete); +my $actual_time = ((lsearch(\@displaycolumns, 'actual_time') >= 0) + || $percentage_complete); + +my $time_info = { 'estimated_time' => 0, + 'remaining_time' => 0, + 'actual_time' => 0, + 'percentage_complete' => 0, + 'time_present' => ($estimated_time || $remaining_time || + $actual_time || $percentage_complete), + }; + my $bugowners = {}; my $bugproducts = {}; my $bugstatuses = {}; @@ -1077,16 +1103,12 @@ while (my @row = $buglist_sth->fetchrow_array()) { $bug->{'changeddate'} =~ s/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/$1-$2-$3 $4:$5:$6/; - # Put in the change date as a time, so that the template date plugin - # can format the date in any way needed by the template. ICS and Atom - # have specific, and different, date and time formatting. - $bug->{'changedtime'} = str2time($bug->{'changeddate'}, Bugzilla->params->{'timezone'}); - $bug->{'changeddate'} = DiffDate($bug->{'changeddate'}); + $bug->{'changedtime'} = $bug->{'changeddate'}; # for iCalendar and Atom + $bug->{'changeddate'} = DiffDate($bug->{'changeddate'}); } if ($bug->{'opendate'}) { - # Put in the open date as a time for the template date plugin. - $bug->{'opentime'} = str2time($bug->{'opendate'}, Bugzilla->params->{'timezone'}); + $bug->{'opentime'} = $bug->{'opendate'}; # for iCalendar $bug->{'opendate'} = DiffDate($bug->{'opendate'}); } @@ -1102,6 +1124,11 @@ while (my @row = $buglist_sth->fetchrow_array()) { # Add id to list for checking for bug privacy later push(@bugidlist, $bug->{'bug_id'}); + + # Compute time tracking info. + $time_info->{'estimated_time'} += $bug->{'estimated_time'} if ($estimated_time); + $time_info->{'remaining_time'} += $bug->{'remaining_time'} if ($remaining_time); + $time_info->{'actual_time'} += $bug->{'actual_time'} if ($actual_time); } # Check for bug privacy and set $bug->{'secure_mode'} to 'implied' or 'manual' @@ -1134,6 +1161,15 @@ if (@bugidlist) { } } +# Compute percentage complete without rounding. +my $sum = $time_info->{'actual_time'}+$time_info->{'remaining_time'}; +if ($sum > 0) { + $time_info->{'percentage_complete'} = 100*$time_info->{'actual_time'}/$sum; +} +else { # remaining_time <= 0 + $time_info->{'percentage_complete'} = 0 +} + ################################################################################ # Template Variable Definition ################################################################################ @@ -1159,6 +1195,7 @@ $vars->{'urlquerypart'} = $params->canonicalise_query('order', 'query_based_on'); $vars->{'order'} = $order; $vars->{'caneditbugs'} = 1; +$vars->{'time_info'} = $time_info; if (!Bugzilla->user->in_group('editbugs')) { foreach my $product (keys %$bugproducts) { @@ -1183,7 +1220,7 @@ if (scalar(@bugowners) > 1 && Bugzilla->user->in_group('editbugs')) { $vars->{'splitheader'} = $cgi->cookie('SPLITHEADER') ? 1 : 0; $vars->{'quip'} = GetQuip(); -$vars->{'currenttime'} = time(); +$vars->{'currenttime'} = localtime(time()); # The following variables are used when the user is making changes to multiple bugs. if ($dotweak && scalar @bugs) { @@ -1195,7 +1232,6 @@ if ($dotweak && scalar @bugs) { } $vars->{'dotweak'} = 1; $vars->{'use_keywords'} = 1 if Bugzilla::Keyword::keyword_count(); - $vars->{'token'} = issue_session_token('buglist_mass_change'); $vars->{'products'} = Bugzilla->user->get_enterable_products; $vars->{'platforms'} = get_legal_field_values('rep_platform'); diff --git a/chart.cgi b/chart.cgi index c74df4f7b30c5dc5d9e8dfa430df9889800fde57..25d5b446decb5cae211f8a92bf8be2f520cf5283 100755 --- a/chart.cgi +++ b/chart.cgi @@ -282,8 +282,6 @@ sub plot { } print $cgi->header($format->{'ctype'}); - disable_utf8() if ($format->{'ctype'} =~ /^image\//); - $template->process($format->{'template'}, $vars) || ThrowTemplateError($template->error()); } @@ -294,7 +292,7 @@ sub wrap { # We create a Chart object so we can validate the parameters my $chart = new Bugzilla::Chart($cgi); - $vars->{'time'} = time(); + $vars->{'time'} = localtime(time()); $vars->{'imagebase'} = $cgi->canonicalise_query( "action", "action-wrap", "ctype", "format", "width", "height"); diff --git a/checksetup.pl b/checksetup.pl index d7a787f4885ef59fb07c6b7f303069446b7f6f20..da368a822cc7db06baac87c92731adb8e765c65a 100755 --- a/checksetup.pl +++ b/checksetup.pl @@ -95,10 +95,7 @@ exit if $switch{'check-modules'}; # then instead of our nice normal checksetup message, the user would # get a cryptic perl error about the missing module. -# We need $::ENV{'PATH'} to remain defined. -my $env = $::ENV{'PATH'}; require Bugzilla; -$::ENV{'PATH'} = $env; require Bugzilla::Config; import Bugzilla::Config qw(:admin); @@ -115,7 +112,6 @@ require Bugzilla::Template; require Bugzilla::Field; require Bugzilla::Install; -Bugzilla->usage_mode(USAGE_MODE_CMDLINE); Bugzilla->installation_mode(INSTALLATION_MODE_NON_INTERACTIVE) if $answers_file; Bugzilla->installation_answers($answers_file); diff --git a/colchange.cgi b/colchange.cgi index 3dbd93dca069633e0ae93f28bd472e1c2ee06475..5c44df3ede03af69f5658b02632a63acaa9f529b 100755 --- a/colchange.cgi +++ b/colchange.cgi @@ -21,6 +21,7 @@ # Contributor(s): Terry Weissman <terry@mozilla.org> # Gervase Markham <gerv@gerv.net> # Max Kanat-Alexander <mkanat@bugzilla.org> +# Pascal Held <paheld@gmail.com> use strict; @@ -94,17 +95,15 @@ if (defined $cgi->param('rememberedquery')) { if (defined $cgi->param('resetit')) { @collist = DEFAULT_COLUMN_LIST; } else { - foreach my $i (@masterlist) { - if (defined $cgi->param("column_$i")) { - push @collist, $i; - } + if (defined $cgi->param("selected_columns")) { + my %legal_list = map { $_ => 1 } @masterlist; + @collist = grep { exists $legal_list{$_} } $cgi->param("selected_columns"); } if (defined $cgi->param('splitheader')) { $splitheader = $cgi->param('splitheader')? 1: 0; } } my $list = join(" ", @collist); - my $urlbase = Bugzilla->params->{"urlbase"}; if ($list) { # Only set the cookie if this is not a saved search. @@ -184,8 +183,7 @@ if (defined $cgi->param('query_based_on')) { my $searches = Bugzilla->user->queries; my ($search) = grep($_->name eq $cgi->param('query_based_on'), @$searches); - # Only allow users to edit their own queries. - if ($search && $search->user->id == Bugzilla->user->id) { + if ($search) { $vars->{'saved_search'} = $search; $vars->{'buffer'} = "cmdtype=runnamed&namedcmd=".$search->name; diff --git a/collectstats.pl b/collectstats.pl index 6afa25978c1016e61cb7eab7e16e0dd94b497879..761c648c825613b56e55c8244eb78f607b6eb116 100755 --- a/collectstats.pl +++ b/collectstats.pl @@ -59,9 +59,6 @@ if (chdir("graphs")) { chdir($cwd); } -# This is a pure command line script. -Bugzilla->usage_mode(USAGE_MODE_CMDLINE); - my $dbh = Bugzilla->switch_to_shadow_db(); @@ -134,32 +131,6 @@ my $tend = time; CollectSeriesData(); -{ - local $ENV{'GATEWAY_INTERFACE'} = 'cmdline'; - local $ENV{'REQUEST_METHOD'} = 'GET'; - local $ENV{'QUERY_STRING'} = 'ctype=rdf'; - - my $perl = $^X; - trick_taint($perl); - - # Generate a static RDF file containing the default view of the duplicates data. - open(CGI, "$perl -T duplicates.cgi |") - || die "can't fork duplicates.cgi: $!"; - open(RDF, ">$datadir/duplicates.tmp") - || die "can't write to $datadir/duplicates.tmp: $!"; - my $headers_done = 0; - while (<CGI>) { - print RDF if $headers_done; - $headers_done = 1 if $_ eq "\r\n"; - } - close CGI; - close RDF; -} -if (-s "$datadir/duplicates.tmp") { - rename("$datadir/duplicates.rdf", "$datadir/duplicates-old.rdf"); - rename("$datadir/duplicates.tmp", "$datadir/duplicates.rdf"); -} - sub check_data_dir { my $dir = shift; @@ -402,7 +373,7 @@ sub regenerate_stats { # database was created, and the end date from the current day. # If there were no bugs in the search, return early. my $query = q{SELECT } . - $dbh->sql_to_days('creation_ts') . q{ AS start_day, } . + $dbh->sql_to_days('creation_ts') . q{ AS start_day, } . $dbh->sql_to_days('current_date') . q{ AS end_day, } . $dbh->sql_to_days("'1970-01-01'") . qq{ FROM bugs $from_product diff --git a/config.cgi b/config.cgi index ebdf71241d9750c12fd11184918876f49324cf4f..c229dacd693e44815d44fb2bd4177ae0da3add00 100755 --- a/config.cgi +++ b/config.cgi @@ -56,8 +56,7 @@ $vars->{'keyword'} = [map($_->name, Bugzilla::Keyword->get_all)]; $vars->{'resolution'} = get_legal_field_values('resolution'); $vars->{'status'} = get_legal_field_values('bug_status'); $vars->{'custom_fields'} = - [ grep {$_->type == FIELD_TYPE_SINGLE_SELECT || $_->type == FIELD_TYPE_MULTI_SELECT} - Bugzilla->active_custom_fields ]; + [ grep {$_->is_select} Bugzilla->active_custom_fields ]; # Include a list of product objects. if ($cgi->param('product')) { diff --git a/contrib/CVS/Entries b/contrib/CVS/Entries index 4770fd99cf831155c10a64573fc79347e46f6e8f..655102709f350b317f79f8a2f2501059447772da 100644 --- a/contrib/CVS/Entries +++ b/contrib/CVS/Entries @@ -1,17 +1,17 @@ -/README/1.12/Tue Oct 16 10:13:54 2007//TBUGZILLA-3_2_1 -/bugzilla_ldapsync.rb/1.2/Sat Apr 26 16:35:04 2003//TBUGZILLA-3_2_1 -/bz_webservice_demo.pl/1.14/Mon May 19 18:38:26 2008//TBUGZILLA-3_2_1 -/bzdbcopy.pl/1.6.2.1/Thu Jun 26 09:33:19 2008//TBUGZILLA-3_2_1 -/cvs-update.pl/1.1/Tue Nov 11 05:58:52 2003//TBUGZILLA-3_2_1 -/gnats2bz.pl/1.8/Sun Sep 3 20:37:01 2006//TBUGZILLA-3_2_1 -/jb2bz.py/1.5/Fri Aug 26 23:11:32 2005//TBUGZILLA-3_2_1 -/merge-users.pl/1.8/Tue Mar 11 15:50:04 2008//TBUGZILLA-3_2_1 -/mysqld-watcher.pl/1.5/Thu Mar 27 00:06:53 2003//TBUGZILLA-3_2_1 -/recode.pl/1.5/Fri Oct 19 06:46:17 2007//TBUGZILLA-3_2_1 -/sendbugmail.pl/1.8/Fri Oct 19 06:46:17 2007//TBUGZILLA-3_2_1 -/sendunsentbugmail.pl/1.10/Fri Oct 19 06:46:17 2007//TBUGZILLA-3_2_1 -/syncLDAP.pl/1.12.2.2/Mon Jul 7 09:01:17 2008//TBUGZILLA-3_2_1 -/yp_nomail.sh/1.1/Tue Sep 12 23:50:31 2000//TBUGZILLA-3_2_1 +/README/1.12/Tue Oct 16 10:13:54 2007//TBUGZILLA-3_3_1 +/bugzilla_ldapsync.rb/1.2/Sat Apr 26 16:35:04 2003//TBUGZILLA-3_3_1 +/bz_webservice_demo.pl/1.14/Mon May 19 18:38:26 2008//TBUGZILLA-3_3_1 +/bzdbcopy.pl/1.8/Tue Dec 16 21:16:33 2008//TBUGZILLA-3_3_1 +/cvs-update.pl/1.1/Tue Nov 11 05:58:52 2003//TBUGZILLA-3_3_1 +/gnats2bz.pl/1.8/Sun Sep 3 20:37:01 2006//TBUGZILLA-3_3_1 +/jb2bz.py/1.5/Fri Aug 26 23:11:32 2005//TBUGZILLA-3_3_1 +/merge-users.pl/1.8/Tue Mar 11 15:50:04 2008//TBUGZILLA-3_3_1 +/mysqld-watcher.pl/1.5/Thu Mar 27 00:06:53 2003//TBUGZILLA-3_3_1 +/recode.pl/1.5/Fri Oct 19 06:46:17 2007//TBUGZILLA-3_3_1 +/sendbugmail.pl/1.8/Fri Oct 19 06:46:17 2007//TBUGZILLA-3_3_1 +/sendunsentbugmail.pl/1.10/Fri Oct 19 06:46:17 2007//TBUGZILLA-3_3_1 +/syncLDAP.pl/1.14/Mon Jul 7 09:01:51 2008//TBUGZILLA-3_3_1 +/yp_nomail.sh/1.1/Tue Sep 12 23:50:31 2000//TBUGZILLA-3_3_1 D/bugzilla-submit//// D/cmdline//// D/gnatsparse//// diff --git a/contrib/CVS/Tag b/contrib/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/contrib/CVS/Tag +++ b/contrib/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/contrib/bugzilla-submit/CVS/Entries b/contrib/bugzilla-submit/CVS/Entries index 871807a7672b60d35f013ca00ef08066efba9bcb..9ac204840b0e0c70b4f31ddb99e36f9459ae3f7f 100644 --- a/contrib/bugzilla-submit/CVS/Entries +++ b/contrib/bugzilla-submit/CVS/Entries @@ -1,5 +1,5 @@ -/README/1.2/Wed Dec 10 23:36:21 2003//TBUGZILLA-3_2_1 -/bugdata.txt/1.2/Fri Jan 16 22:26:49 2004//TBUGZILLA-3_2_1 -/bugzilla-submit/1.6/Fri Jul 16 03:56:35 2004//TBUGZILLA-3_2_1 -/bugzilla-submit.xml/1.7/Mon Apr 11 14:23:32 2005//TBUGZILLA-3_2_1 +/README/1.2/Wed Dec 10 23:36:21 2003//TBUGZILLA-3_3_1 +/bugdata.txt/1.2/Fri Jan 16 22:26:49 2004//TBUGZILLA-3_3_1 +/bugzilla-submit/1.6/Fri Jul 16 03:56:35 2004//TBUGZILLA-3_3_1 +/bugzilla-submit.xml/1.7/Mon Apr 11 14:23:32 2005//TBUGZILLA-3_3_1 D diff --git a/contrib/bugzilla-submit/CVS/Tag b/contrib/bugzilla-submit/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/contrib/bugzilla-submit/CVS/Tag +++ b/contrib/bugzilla-submit/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/contrib/bzdbcopy.pl b/contrib/bzdbcopy.pl index eade7568323f504637492343c9b002dc068d64f1..b4f1fffd2ad38e967c9b030dd9eb0c3f4c50b646 100755 --- a/contrib/bzdbcopy.pl +++ b/contrib/bzdbcopy.pl @@ -48,8 +48,6 @@ use constant TARGET_DB_HOST => 'localhost'; # MAIN SCRIPT ##################################################################### -Bugzilla->usage_mode(USAGE_MODE_CMDLINE); - print "Connecting to the '" . SOURCE_DB_NAME . "' source database on " . SOURCE_DB_TYPE . "...\n"; my $source_db = Bugzilla::DB::_connect(SOURCE_DB_TYPE, SOURCE_DB_HOST, diff --git a/contrib/cmdline/CVS/Entries b/contrib/cmdline/CVS/Entries index b0b9d1452ae4e1bd2dc84d17db0be07f9fc7cddf..54faf70c21eaf42a4df58bfa74527e395838af5d 100644 --- a/contrib/cmdline/CVS/Entries +++ b/contrib/cmdline/CVS/Entries @@ -1,8 +1,8 @@ -/bugcount/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_2_1 -/bugids/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_2_1 -/buglist/1.2/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_2_1 -/bugs/1.2/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_2_1 -/bugslink/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_2_1 -/makequery/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_2_1 -/query.conf/1.3/Fri Aug 26 23:11:32 2005//TBUGZILLA-3_2_1 +/bugcount/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_1 +/bugids/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_1 +/buglist/1.2/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_1 +/bugs/1.2/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_1 +/bugslink/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_1 +/makequery/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_1 +/query.conf/1.3/Fri Aug 26 23:11:32 2005//TBUGZILLA-3_3_1 D diff --git a/contrib/cmdline/CVS/Tag b/contrib/cmdline/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/contrib/cmdline/CVS/Tag +++ b/contrib/cmdline/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/contrib/gnatsparse/CVS/Entries b/contrib/gnatsparse/CVS/Entries index 2bb3c006dfcc2421df4cd5c3be7de7e431fd591f..d14fc4fa9d70ee36712e1a23e20fcbcbfb265edb 100644 --- a/contrib/gnatsparse/CVS/Entries +++ b/contrib/gnatsparse/CVS/Entries @@ -1,5 +1,5 @@ -/README/1.2/Tue Mar 23 17:59:11 2004//TBUGZILLA-3_2_1 -/gnatsparse.py/1.4/Mon Jun 19 15:58:33 2006//TBUGZILLA-3_2_1 -/magic.py/1.1/Sun Mar 21 21:32:16 2004//TBUGZILLA-3_2_1 -/specialuu.py/1.1/Sun Mar 21 21:32:16 2004//TBUGZILLA-3_2_1 +/README/1.2/Tue Mar 23 17:59:11 2004//TBUGZILLA-3_3_1 +/gnatsparse.py/1.4/Mon Jun 19 15:58:33 2006//TBUGZILLA-3_3_1 +/magic.py/1.1/Sun Mar 21 21:32:16 2004//TBUGZILLA-3_3_1 +/specialuu.py/1.1/Sun Mar 21 21:32:16 2004//TBUGZILLA-3_3_1 D diff --git a/contrib/gnatsparse/CVS/Tag b/contrib/gnatsparse/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/contrib/gnatsparse/CVS/Tag +++ b/contrib/gnatsparse/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/docs/CVS/Entries b/docs/CVS/Entries index 0076ad463d47530c2436f9811f6192646765c17b..ab464955c21d15f929fbe12ba3b9c3ea2ce90c1c 100644 --- a/docs/CVS/Entries +++ b/docs/CVS/Entries @@ -1,4 +1,4 @@ -/makedocs.pl/1.20/Sat Apr 12 22:24:17 2008//TBUGZILLA-3_2_1 -/style.css/1.1/Fri Apr 4 06:48:15 2008//TBUGZILLA-3_2_1 +/makedocs.pl/1.20/Sat Apr 12 22:24:17 2008//TBUGZILLA-3_3_1 +/style.css/1.1/Fri Apr 4 06:48:15 2008//TBUGZILLA-3_3_1 D/en//// D/lib//// diff --git a/docs/CVS/Tag b/docs/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/docs/CVS/Tag +++ b/docs/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/docs/bugzilla.ent b/docs/bugzilla.ent index 04e3aa8955b02b9648148cfc14706bc0ecdd793f..e78530c3388a1f398733382e1cdc5b0fa1d9a526 100644 --- a/docs/bugzilla.ent +++ b/docs/bugzilla.ent @@ -2,7 +2,9 @@ <!-- Module Versions --> <!ENTITY min-cgi-ver "3.21"> +<!ENTITY min-digest-sha-ver "any"> <!ENTITY min-date-format-ver "2.21"> +<!ENTITY min-datetime-ver "0.28"> <!ENTITY min-file-spec-ver "0.84"> <!ENTITY min-dbi-ver "1.41"> <!ENTITY min-template-ver "2.15"> @@ -27,6 +29,8 @@ <!ENTITY min-html-scrubber-ver "any"> <!ENTITY min-email-mime-attachment-stripper-ver "any"> <!ENTITY min-email-reply-ver "any"> +<!ENTITY min-theschwartz-ver "any"> +<!ENTITY min-daemon-generic-ver "any"> <!ENTITY min-mod_perl2-ver "1.999022"> <!ENTITY min-mp-cgi-ver "3.21"> diff --git a/docs/en/CVS/Entries b/docs/en/CVS/Entries index 6c0ae8487e92c607f425345a31c3e4edbfd09ce2..e44d0fe752bb1158463d5b6124187b3d86c3e046 100644 --- a/docs/en/CVS/Entries +++ b/docs/en/CVS/Entries @@ -1,5 +1,5 @@ -/.cvsignore/1.4/Fri Apr 4 11:29:21 2008//TBUGZILLA-3_2_1 -/README.docs/1.12/Fri Apr 4 06:48:15 2008//TBUGZILLA-3_2_1 -/rel_notes.txt/1.48/Fri Apr 4 06:48:16 2008//TBUGZILLA-3_2_1 +/.cvsignore/1.4/Fri Apr 4 11:29:21 2008//TBUGZILLA-3_3_1 +/README.docs/1.12/Fri Apr 4 06:48:15 2008//TBUGZILLA-3_3_1 +/rel_notes.txt/1.48/Fri Apr 4 06:48:16 2008//TBUGZILLA-3_3_1 D/images//// D/xml//// diff --git a/docs/en/CVS/Tag b/docs/en/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/docs/en/CVS/Tag +++ b/docs/en/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/docs/en/html/Bugzilla-Guide.html b/docs/en/html/Bugzilla-Guide.html index 707f4a47e2c86c86087e5980565d94e961813bbc..4ddb958ba9887de2ee9527c46ee3a4c1f2a8188b 100644 --- a/docs/en/html/Bugzilla-Guide.html +++ b/docs/en/html/Bugzilla-Guide.html @@ -2,7 +2,8 @@ <HTML ><HEAD ><TITLE ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TITLE ><META NAME="GENERATOR" @@ -43,7 +44,8 @@ CLASS="TITLEPAGE" CLASS="title" ><A NAME="AEN2" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</A ></H1 ><H3 @@ -51,7 +53,7 @@ CLASS="corpauthor" >The Bugzilla Team</H3 ><P CLASS="pubdate" ->2009-02-02<BR></P +>2009-01-05<BR></P ><DIV ><DIV CLASS="abstract" @@ -714,8 +716,10 @@ NAME="newversions" >1.3. New Versions</A ></H2 ><P -> This is the 3.2.1 version of The Bugzilla Guide. It is so named +> This is the 3.3.1 version of The Bugzilla Guide. It is so named to match the current version of Bugzilla. + This version of the guide, like its associated Bugzilla version, is a + development version. </P ><P > The latest version of this guide can always be found at <A @@ -4565,7 +4569,7 @@ NAME="os-win32" Bugzilla running on Windows, you will need to make the following adjustments. A detailed step-by-step <A -HREF="https://wiki.mozilla.org/Bugzilla:Win32Install" +HREF="http://www.bugzilla.org/docs/win32install.html" TARGET="_top" > installation guide for Windows</A > is also available @@ -6803,14 +6807,6 @@ CLASS="filename" </P ></DD ><DT ->timezone</DT -><DD -><P -> Timezone of server. The timezone is displayed with timestamps. If - this parameter is left blank, the timezone is not displayed. - </P -></DD -><DT >utf8</DT ><DD ><P @@ -6972,34 +6968,10 @@ NAME="param-admin-policies" >3.1.2. Administrative Policies</A ></H3 ><P -> This page contains parameters for basic administrative functions. - Options include whether to allow the deletion of bugs and users, whether - to allow users to change their email address, and whether to allow - user watching (one user receiving all notifications of a selected - other user). - </P -><P -></P -><DIV -CLASS="variablelist" -><DL -><DT ->supportwatchers</DT -><DD -><P -> Turning on this option allows users to ask to receive copies - of bug mail sent to another user. Watching a user with - different group permissions is not a way to 'get around' the - system; copied emails are still subject to the normal groupset - permissions of a bug, and <SPAN -CLASS="QUOTE" ->"watchers"</SPAN -> will only be - copied on emails from bugs they would normally be allowed to view. - </P -></DD -></DL -></DIV +> This page contains parameters for basic administrative functions. + Options include whether to allow the deletion of bugs and users, + and whether to allow users to change their email address. + </P ></DIV ><DIV CLASS="section" @@ -11148,7 +11120,7 @@ CLASS="section" ><HR><H3 CLASS="section" ><A -NAME="AEN2175" +NAME="AEN2165" >3.15.4. Assigning Group Controls to Products</A ></H3 ><P @@ -11756,15 +11728,6 @@ COMPACT="COMPACT" ><P >Block everything</P ></LI -><LI -><P ->But allow: - <TT -CLASS="filename" ->duplicates.rdf</TT -> - </P -></LI ></UL ></LI ><LI @@ -12032,9 +11995,9 @@ NAME="myaccount" Bugzilla for the URL you should use to access it. If you're test-driving Bugzilla, use this URL: <A -HREF="http://landfill.bugzilla.org/bugzilla-3.2-branch/" +HREF="http://landfill.bugzilla.org/bugzilla-tip/" TARGET="_top" ->http://landfill.bugzilla.org/bugzilla-3.2-branch/</A +>http://landfill.bugzilla.org/bugzilla-tip/</A >. </P ><P @@ -12184,7 +12147,7 @@ NAME="bug_page" >The core of Bugzilla is the screen which displays a particular bug. It's a good place to explain some Bugzilla concepts. <A -HREF="http://landfill.bugzilla.org/bugzilla-3.2-branch/show_bug.cgi?id=1" +HREF="http://landfill.bugzilla.org/bugzilla-tip/show_bug.cgi?id=1" TARGET="_top" > Bug 1 on Landfill</A > @@ -12602,9 +12565,9 @@ NAME="query" any bug report, comment, or patch currently in the Bugzilla system. You can play with it here: <A -HREF="http://landfill.bugzilla.org/bugzilla-3.2-branch/query.cgi" +HREF="http://landfill.bugzilla.org/bugzilla-tip/query.cgi" TARGET="_top" ->http://landfill.bugzilla.org/bugzilla-3.2-branch/query.cgi</A +>http://landfill.bugzilla.org/bugzilla-tip/query.cgi</A >.</P ><P >The Search page has controls for selecting different possible @@ -12726,7 +12689,7 @@ NAME="negation" > At first glance, negation seems redundant. Rather than searching for <A -NAME="AEN2552" +NAME="AEN2537" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -12737,7 +12700,7 @@ CLASS="BLOCKQUOTE" > one could search for <A -NAME="AEN2554" +NAME="AEN2539" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -12748,7 +12711,7 @@ CLASS="BLOCKQUOTE" > However, the search <A -NAME="AEN2556" +NAME="AEN2541" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -12760,7 +12723,7 @@ CLASS="BLOCKQUOTE" would find every bug where anyone on the CC list did not contain "@mozilla.org" while <A -NAME="AEN2558" +NAME="AEN2543" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -12774,7 +12737,7 @@ CLASS="BLOCKQUOTE" complex expressions to be built using terms OR'd together and then negated. Negation permits queries such as <A -NAME="AEN2560" +NAME="AEN2545" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -12787,7 +12750,7 @@ CLASS="BLOCKQUOTE" to find bugs that are neither in the update product or in the documentation component or <A -NAME="AEN2562" +NAME="AEN2547" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -12815,7 +12778,7 @@ NAME="multiplecharts" a bug that has two different people cc'd on it, then you need to use two boolean charts. A search for <A -NAME="AEN2567" +NAME="AEN2552" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -12830,7 +12793,7 @@ CLASS="BLOCKQUOTE" containing "foo@" and someone else containing "@mozilla.org", then you would need two boolean charts. <A -NAME="AEN2569" +NAME="AEN2554" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -13097,7 +13060,7 @@ NAME="fillingbugs" >Years of bug writing experience has been distilled for your reading pleasure into the <A -HREF="http://landfill.bugzilla.org/bugzilla-3.2-branch/page.cgi?id=bug-writing.html" +HREF="http://landfill.bugzilla.org/bugzilla-tip/page.cgi?id=bug-writing.html" TARGET="_top" > Bug Writing Guidelines</A >. @@ -13149,7 +13112,7 @@ VALIGN="TOP" > If you want to file a test bug to see how Bugzilla works, you can do it on one of our test installations on <A -HREF="http://landfill.bugzilla.org/bugzilla-3.2-branch/" +HREF="http://landfill.bugzilla.org/bugzilla-tip/" TARGET="_top" >Landfill</A >. @@ -13536,7 +13499,7 @@ CLASS="section" ><HR><H3 CLASS="section" ><A -NAME="AEN2705" +NAME="AEN2690" >5.8.1. Autolinkification</A ></H3 ><P @@ -14411,7 +14374,7 @@ CLASS="section" ><HR><H4 CLASS="section" ><A -NAME="AEN2902" +NAME="AEN2887" >5.11.2.1. Creating Charts</A ></H4 ><P @@ -14880,7 +14843,7 @@ CLASS="section" ><HR><H3 CLASS="section" ><A -NAME="AEN2962" +NAME="AEN2947" >5.13.4. Saving Your Changes</A ></H3 ><P @@ -15997,7 +15960,7 @@ COLOR="#000000" CLASS="programlisting" >... [% ', <a href="editkeywords.cgi">keywords</a>' - IF user.groups.editkeywords %] + IF user.in_group('editkeywords') %] [% Hook.process("edit") %] ...</PRE ></FONT @@ -16022,7 +15985,7 @@ WIDTH="100%" COLOR="#000000" ><PRE CLASS="programlisting" ->...[% ', <a href="edit-projects.cgi">projects</a>' IF user.groups.projman_admins %]</PRE +>...[% ', <a href="edit-projects.cgi">projects</a>' IF user.in_group('projman_admins') %]</PRE ></FONT ></TD ></TR @@ -16287,7 +16250,7 @@ COLOR="#000000" ><PRE CLASS="programlisting" > if ($field eq "qacontact") { - if (Bugzilla->user->groups("quality_assurance")) { + if (Bugzilla->user->in_group("quality_assurance")) { return 1; } else { @@ -16889,7 +16852,7 @@ NAME="trbl-relogin-everyone-share" >Example A-1. Examples of urlbase/cookiepath pairs for sharing login cookies</B ></P ><A -NAME="AEN3297" +NAME="AEN3282" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -16930,7 +16893,7 @@ NAME="trbl-relogin-everyone-restrict" >Example A-2. Examples of urlbase/cookiepath pairs to restrict the login cookie</B ></P ><A -NAME="AEN3304" +NAME="AEN3289" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -17768,7 +17731,7 @@ NAME="gfdl" ><P >Version 1.1, March 2000</P ><A -NAME="AEN3477" +NAME="AEN3462" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -18231,7 +18194,7 @@ NAME="gfdl-howto" of the License in the document and put the following copyright and license notices just after the title page:</P ><A -NAME="AEN3567" +NAME="AEN3552" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -18268,7 +18231,7 @@ CLASS="glossdiv" ><H1 CLASS="glossdiv" ><A -NAME="AEN3572" +NAME="AEN3557" >0-9, high ascii</A ></H1 ><DL @@ -19178,7 +19141,7 @@ NAME="gloss-zarro" Terry had the following to say: </P ><A -NAME="AEN3817" +NAME="AEN3802" ></A ><TABLE BORDER="0" diff --git a/docs/en/html/about.html b/docs/en/html/about.html index 672ea8f7ec890e32e00e917587a28e8a8dfa049a..aaf2bb867852d7042fc1a9dafbe95d802c5cb174 100644 --- a/docs/en/html/about.html +++ b/docs/en/html/about.html @@ -7,11 +7,13 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="PREVIOUS" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="NEXT" @@ -36,7 +38,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -154,7 +157,8 @@ ACCESSKEY="N" WIDTH="33%" ALIGN="left" VALIGN="top" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TD ><TD WIDTH="34%" diff --git a/docs/en/html/administration.html b/docs/en/html/administration.html index dad721d2f5c0b6ee8edf07ca6e70223e94ed435d..856b1fc21d0686fb0c63ca28c78e5588be1f2f85 100644 --- a/docs/en/html/administration.html +++ b/docs/en/html/administration.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="PREVIOUS" @@ -35,7 +36,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -359,7 +361,7 @@ HREF="groups.html#users-and-groups" ></DT ><DT >3.15.4. <A -HREF="groups.html#AEN2175" +HREF="groups.html#AEN2165" >Assigning Group Controls to Products</A ></DT ></DL diff --git a/docs/en/html/api/Bugzilla.html b/docs/en/html/api/Bugzilla.html index 4c04db8dca39cbc36a6a2716056480b0b17eb1e4..6e2f30e136427eb10096558163c82ff880955c53 100644 --- a/docs/en/html/api/Bugzilla.html +++ b/docs/en/html/api/Bugzilla.html @@ -210,6 +210,19 @@ name="METHODS" <dd> <p>If you are running inside a code hook (see <a href="./Bugzilla/Hook.html" class="podlinkpod" >Bugzilla::Hook</a>) this is how you get the arguments passed to the hook.</p> + +<dt><a name="local_timezone" +><code class="code">local_timezone</code></a></dt> + +<dd> +<p>Returns the local timezone of the Bugzilla installation, as a DateTime::TimeZone object. This detection is very time consuming, so we cache this information for future references.</p> + +<dt><a name="job_queue" +><code class="code">job_queue</code></a></dt> + +<dd> +<p>Returns a <a href="./Bugzilla/JobQueue.html" class="podlinkpod" +>Bugzilla::JobQueue</a> that you can use for queueing jobs. Will throw an error if job queueing is not correctly configured on this Bugzilla installation.</p> </dd> </dl> <p class="backlinkbottom"><b><a name="___bottom" href="index.html" title="All Documents"><<</a></b></p> diff --git a/docs/en/html/api/Bugzilla/Attachment.html b/docs/en/html/api/Bugzilla/Attachment.html index f792ff5ba6a35708c5d19c741cdcafd4bae56f54..d41cd7c040ed384c2a796279e89eec4da7ff59c1 100644 --- a/docs/en/html/api/Bugzilla/Attachment.html +++ b/docs/en/html/api/Bugzilla/Attachment.html @@ -26,7 +26,7 @@ Bugzilla::Attachment</title> name="NAME" >NAME</a></h1> -<p>Bugzilla::Attachment - a file related to a bug that a user has uploaded to the Bugzilla server</p> +<p>Bugzilla::Attachment - Bugzilla attachment class.</p> <h1><a class='u' href='#___top' title='click to go to top of document' name="SYNOPSIS" @@ -35,36 +35,40 @@ name="SYNOPSIS" <pre class="code"> use Bugzilla::Attachment; # Get the attachment with the given ID. - my $attachment = Bugzilla::Attachment->get($attach_id); + my $attachment = new Bugzilla::Attachment($attach_id); # Get the attachments with the given IDs. - my $attachments = Bugzilla::Attachment->get_list($attach_ids);</pre> + my $attachments = Bugzilla::Attachment->new_from_list($attach_ids);</pre> <h1><a class='u' href='#___top' title='click to go to top of document' name="DESCRIPTION" >DESCRIPTION</a></h1> -<p>This module defines attachment objects, which represent files related to bugs that users upload to the Bugzilla server.</p> +<p>Attachment.pm represents an attachment object. It is an implementation of <a href="../Bugzilla/Object.html" class="podlinkpod" +>Bugzilla::Object</a>, and thus provides all methods that <a href="../Bugzilla/Object.html" class="podlinkpod" +>Bugzilla::Object</a> provides.</p> + +<p>The methods that are specific to <code class="code">Bugzilla::Attachment</code> are listed below.</p> <h2><a class='u' href='#___top' title='click to go to top of document' name="Instance_Properties" >Instance Properties</a></h2> <dl> -<dt><a name="id" -><code class="code">id</code></a></dt> +<dt><a name="bug_id" +><code class="code">bug_id</code></a></dt> <dd> -<p>the unique identifier for the attachment</p> +<p>the ID of the bug to which the attachment is attached</p> </dd> </dl> <dl> -<dt><a name="bug_id" -><code class="code">bug_id</code></a></dt> +<dt><a name="bug" +><code class="code">bug</code></a></dt> <dd> -<p>the ID of the bug to which the attachment is attached</p> +<p>the bug object to which the attachment is attached</p> </dd> </dl> @@ -194,6 +198,15 @@ name="Instance_Properties" </dd> </dl> +<dl> +<dt><a name="flag_types" +><code class="code">flag_types</code></a></dt> + +<dd> +<p>Return all flag types available for this attachment as well as flags already set, grouped by flag type.</p> +</dd> +</dl> + <h2><a class='u' href='#___top' title='click to go to top of document' name="Class_Methods" >Class Methods</a></h2> @@ -253,8 +266,8 @@ name="Class_Methods" <p>Returns: 1 on success. Else an error is thrown.</p> -<dt><a name="insert_attachment_for_bug($throw_error,_$bug,_$user,_$timestamp,_$hr_vars)" -><code class="code">insert_attachment_for_bug($throw_error, $bug, $user, $timestamp, $hr_vars)</code></a></dt> +<dt><a name="create($throw_error,_$bug,_$user,_$timestamp,_$hr_vars)" +><code class="code">create($throw_error, $bug, $user, $timestamp, $hr_vars)</code></a></dt> <dd> <p>Description: inserts an attachment from CGI input for the given bug.</p> diff --git a/docs/en/html/api/Bugzilla/CGI.html b/docs/en/html/api/Bugzilla/CGI.html index 6a0faf28beae16124d7801f4d1056160e7343430..a4185a3974ae270752f1d35ba8915d23b0185238 100644 --- a/docs/en/html/api/Bugzilla/CGI.html +++ b/docs/en/html/api/Bugzilla/CGI.html @@ -95,12 +95,6 @@ name="ADDITIONAL_FUNCTIONS" <p>This routine redirects the client to a different location using the https protocol. If the client is using XMLRPC, it will not retain the QUERY_STRING since XMLRPC uses POST.</p> <p>It takes an optional argument which will be used as the base URL. If $baseurl is not provided, the current URL is used.</p> - -<dt><a name="redirect_to_urlbase" -><code class="code">redirect_to_urlbase</code></a></dt> - -<dd> -<p>Redirects from the current URL to one prefixed by the urlbase parameter.</p> </dd> </dl> diff --git a/docs/en/html/api/Bugzilla/Classification.html b/docs/en/html/api/Bugzilla/Classification.html index fb0a9c69454ca4310f6e439b7fcf418b9023229e..5394173819e487825a9044158818839ffc0ed3d9 100644 --- a/docs/en/html/api/Bugzilla/Classification.html +++ b/docs/en/html/api/Bugzilla/Classification.html @@ -16,7 +16,6 @@ Bugzilla::Classification</title> <li class='indexItem indexItem1'><a href='#SYNOPSIS'>SYNOPSIS</a> <li class='indexItem indexItem1'><a href='#DESCRIPTION'>DESCRIPTION</a> <li class='indexItem indexItem1'><a href='#METHODS'>METHODS</a> - <li class='indexItem indexItem1'><a href='#SUBROUTINES'>SUBROUTINES</a> </ul> </div> @@ -38,20 +37,19 @@ name="SYNOPSIS" my $id = $classification->id; my $name = $classification->name; my $description = $classification->description; + my $sortkey = $classification->sortkey; my $product_count = $classification->product_count; - my $products = $classification->products; - - my $hash_ref = Bugzilla::Classification::get_all_classifications(); - my $classification = $hash_ref->{1}; - - my $classification = - Bugzilla::Classification::check_classification('AcmeClass');</pre> + my $products = $classification->products;</pre> <h1><a class='u' href='#___top' title='click to go to top of document' name="DESCRIPTION" >DESCRIPTION</a></h1> -<p>Classification.pm represents a Classification object.</p> +<p>Classification.pm represents a classification object. It is an implementation of <a href="../Bugzilla/Object.html" class="podlinkpod" +>Bugzilla::Object</a>, and thus provides all methods that <a href="../Bugzilla/Object.html" class="podlinkpod" +>Bugzilla::Object</a> provides.</p> + +<p>The methods that are specific to <code class="code">Bugzilla::Classification</code> are listed below.</p> <p>A Classification is a higher-level grouping of Products.</p> @@ -60,22 +58,6 @@ name="METHODS" >METHODS</a></h1> <dl> -<dt><a name="new($param)" -><code class="code">new($param)</code></a></dt> - -<dd> -<pre class="code"> Description: The constructor is used to load an existing - classification by passing a classification - id or classification name using a hash. - - Params: $param - If you pass an integer, the integer is the - classification_id from the database that we - want to read in. If you pass in a hash with - 'name' key, then the value of the name key - is the name of a classification from the DB. - - Returns: A Bugzilla::Classification object.</pre> - <dt><a name="product_count()" ><code class="code">product_count()</code></a></dt> @@ -98,34 +80,6 @@ name="METHODS" Returns: A reference to an array of Bugzilla::Product objects.</pre> </dd> </dl> - -<h1><a class='u' href='#___top' title='click to go to top of document' -name="SUBROUTINES" ->SUBROUTINES</a></h1> - -<dl> -<dt><a name="get_all_classifications()" -><code class="code">get_all_classifications()</code></a></dt> - -<dd> -<pre class="code"> Description: Returns all classifications. - - Params: none. - - Returns: Bugzilla::Classification object list.</pre> - -<dt><a name="check_classification($classification_name)" -><code class="code">check_classification($classification_name)</code></a></dt> - -<dd> -<pre class="code"> Description: Checks if the classification name passed in is a - valid classification. - - Params: $classification_name - String with a classification name. - - Returns: Bugzilla::Classification object.</pre> -</dd> -</dl> <p class="backlinkbottom"><b><a name="___bottom" href="../index.html" title="All Documents"><<</a></b></p> <!-- end doc --> diff --git a/docs/en/html/api/Bugzilla/DB.html b/docs/en/html/api/Bugzilla/DB.html index 3233204f64f2b5fecc5c997df952d03f8af975d6..7186468b7ef98d0571183b096ce7c982c4cfd30e 100644 --- a/docs/en/html/api/Bugzilla/DB.html +++ b/docs/en/html/api/Bugzilla/DB.html @@ -354,7 +354,11 @@ name="SQL_Generation" <dt><a name="$expr_-_SQL_expression_for_the_text_to_be_searched_(scalar)" ><code class="code">$expr</code> - SQL expression for the text to be searched (scalar) <dt><a name="$pattern_-_the_regular_expression_to_search_for_(scalar)" -><code class="code">$pattern</code> - the regular expression to search for (scalar)</a></dt> +><code class="code">$pattern</code> - the regular expression to search for (scalar) +<dt><a name="$nocheck_-_true_if_the_pattern_should_not_be_tested;_false_otherwise_(boolean)" +><code class="code">$nocheck</code> - true if the pattern should not be tested; false otherwise (boolean) +<dt><a name="$real_pattern_-_the_real_regular_expression_to_search_for._This_argument_is_used_when_$pattern_is_a_placeholder_('?')." +><code class="code">$real_pattern</code> - the real regular expression to search for. This argument is used when <code class="code">$pattern</code> is a placeholder ('?').</a></dt> </dl> <dt><a name="Returns" @@ -382,12 +386,8 @@ name="SQL_Generation" ><b>Params</b></a></dt> <dd> -<dl> -<dt><a name="$expr_-_SQL_expression_for_the_text_to_be_searched_(scalar)" -><code class="code">$expr</code> - SQL expression for the text to be searched (scalar) -<dt><a name="$pattern_-_the_regular_expression_to_search_for_(scalar)" -><code class="code">$pattern</code> - the regular expression to search for (scalar)</a></dt> -</dl> +<p>Same as <a href="#sql_regexp" class="podlinkpod" +>"sql_regexp"</a>.</p> <dt><a name="Returns" ><b>Returns</b></a></dt> diff --git a/docs/en/html/api/Bugzilla/Field.html b/docs/en/html/api/Bugzilla/Field.html index 4e48f65845f2166d345794970047529a04480077..1467cf8504ee313398d0f17c4bf3d8f9d151d1c3 100644 --- a/docs/en/html/api/Bugzilla/Field.html +++ b/docs/en/html/api/Bugzilla/Field.html @@ -151,11 +151,70 @@ name="Instance_Properties" </dl> <dl> +<dt><a name="is_select" +><code class="code">is_select</code></a></dt> + +<dd> +<p>True if this is a <code class="code">FIELD_TYPE_SINGLE_SELECT</code> or <code class="code">FIELD_TYPE_MULTI_SELECT</code> field. It is only safe to call <a href="#legal_values" class="podlinkpod" +>"legal_values"</a> if this is true.</p> + <dt><a name="legal_values" ><code class="code">legal_values</code></a></dt> <dd> -<p>A reference to an array with valid active values for this field.</p> +<p>Valid values for this field, as an array of <a href="../Bugzilla/Field/Choice.html" class="podlinkpod" +>Bugzilla::Field::Choice</a> objects.</p> +</dd> +</dl> + +<dl> +<dt><a name="visibility_field" +><code class="code">visibility_field</code></a></dt> + +<dd> +<p>What field controls this field's visibility? Returns a <code class="code">Bugzilla::Field</code> object representing the field that controls this field's visibility.</p> + +<p>Returns undef if there is no field that controls this field's visibility.</p> +</dd> +</dl> + +<dl> +<dt><a name="visibility_value" +><code class="code">visibility_value</code></a></dt> + +<dd> +<p>If we have a <a href="#visibility_field" class="podlinkpod" +>"visibility_field"</a>, then what value does that field have to be set to in order to show this field? Returns a <a href="../Bugzilla/Field/Choice.html" class="podlinkpod" +>Bugzilla::Field::Choice</a> or undef if there is no <code class="code">visibility_field</code> set.</p> +</dd> +</dl> + +<dl> +<dt><a name="controls_visibility_of" +><code class="code">controls_visibility_of</code></a></dt> + +<dd> +<p>An arrayref of <code class="code">Bugzilla::Field</code> objects, representing fields that this field controls the visibility of.</p> +</dd> +</dl> + +<dl> +<dt><a name="value_field" +><code class="code">value_field</code></a></dt> + +<dd> +<p>The Bugzilla::Field that controls the list of values for this field.</p> + +<p>Returns undef if there is no field that controls this field's visibility.</p> +</dd> +</dl> + +<dl> +<dt><a name="controls_values_of" +><code class="code">controls_values_of</code></a></dt> + +<dd> +<p>An arrayref of <code class="code">Bugzilla::Field</code> objects, representing fields that this field controls the values of.</p> </dd> </dl> @@ -179,7 +238,13 @@ name="Instance_Mutators" <dt><a name="set_sortkey" ><code class="code">set_sortkey</code> <dt><a name="set_in_new_bugmail" -><code class="code">set_in_new_bugmail</code></a></dt> +><code class="code">set_in_new_bugmail</code> +<dt><a name="set_visibility_field" +><code class="code">set_visibility_field</code> +<dt><a name="set_visibility_value" +><code class="code">set_visibility_value</code> +<dt><a name="set_value_field" +><code class="code">set_value_field</code></a></dt> </dl> <h2><a class='u' href='#___top' title='click to go to top of document' diff --git a/docs/en/html/api/Bugzilla/Field/Choice.html b/docs/en/html/api/Bugzilla/Field/Choice.html new file mode 100644 index 0000000000000000000000000000000000000000..e9c0cb706cddc1523bf9d522e4e147842fc581d8 --- /dev/null +++ b/docs/en/html/api/Bugzilla/Field/Choice.html @@ -0,0 +1,106 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> + <head> + <title> +Bugzilla::Field::Choice</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <link rel="stylesheet" title="style" type="text/css" href="../.././../../../style.css" media="all" > + +</head> + <body id="pod"> +<p class="backlinktop"><b><a name="___top" href="../../index.html" accesskey="1" title="All Documents"><<</a></b></p> +<h1>Bugzilla::Field::Choice</h1> +<div class='indexgroup'> +<ul class='indexList indexList1'> + <li class='indexItem indexItem1'><a href='#NAME'>NAME</a> + <li class='indexItem indexItem1'><a href='#SYNOPSIS'>SYNOPSIS</a> + <li class='indexItem indexItem1'><a href='#DESCRIPTION'>DESCRIPTION</a> + <li class='indexItem indexItem1'><a href='#METHODS'>METHODS</a> + <ul class='indexList indexList2'> + <li class='indexItem indexItem2'><a href='#Class_Factory'>Class Factory</a> + <li class='indexItem indexItem2'><a href='#Accessors'>Accessors</a> + </ul> +</ul> +</div> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="NAME" +>NAME</a></h1> + +<p>Bugzilla::Field::Choice - A legal value for a <select>-type field.</p> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="SYNOPSIS" +>SYNOPSIS</a></h1> + +<pre class="code"> my $field = new Bugzilla::Field({name => 'bug_status'}); + + my $choice = new Bugzilla::Field::Choice->type($field)->new(1); + + my $choices = Bugzilla::Field::Choice->type($field)->new_from_list([1,2,3]); + my $choices = Bugzilla::Field::Choice->type($field)->get_all(); + my $choices = Bugzilla::Field::Choice->type($field->match({ sortkey => 10 }); </pre> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="DESCRIPTION" +>DESCRIPTION</a></h1> + +<p>This is an implementation of <a href="../../Bugzilla/Object.html" class="podlinkpod" +>Bugzilla::Object</a>, but with a twist. You can't call any class methods (such as <code class="code">new</code>, <code class="code">create</code>, etc.) directly on <code class="code">Bugzilla::Field::Choice</code> itself. Instead, you have to call <code class="code">Bugzilla::Field::Choice->type($field)</code> to get the class you're going to instantiate, and then you call the methods on that.</p> + +<p>We do that because each field has its own database table for its values, so each value type needs its own class.</p> + +<p>See the <a href="#SYNOPSIS" class="podlinkpod" +>"SYNOPSIS"</a> for examples of how this works.</p> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="METHODS" +>METHODS</a></h1> + +<h2><a class='u' href='#___top' title='click to go to top of document' +name="Class_Factory" +>Class Factory</a></h2> + +<p>In object-oriented design, a "class factory" is a method that picks and returns the right class for you, based on an argument that you pass.</p> + +<dl> +<dt><a name="type" +><code class="code">type</code></a></dt> + +<dd> +<p>Takes a single argument, which is either the name of a field from the <code class="code">fielddefs</code> table, or a <a href="../../Bugzilla/Field.html" class="podlinkpod" +>Bugzilla::Field</a> object representing a field.</p> + +<p>Returns an appropriate subclass of <code class="code">Bugzilla::Field::Choice</code> that you can now call class methods on (like <code class="code">new</code>, <code class="code">create</code>, <code class="code">match</code>, etc.)</p> + +<p><b>NOTE</b>: YOU CANNOT CALL CLASS METHODS ON <code class="code">Bugzilla::Field::Choice</code>. You must call <code class="code">type</code> to get a class you can call methods on.</p> +</dd> +</dl> + +<h2><a class='u' href='#___top' title='click to go to top of document' +name="Accessors" +>Accessors</a></h2> + +<p>These are in addition to the standard <a href="../../Bugzilla/Object.html" class="podlinkpod" +>Bugzilla::Object</a> accessors.</p> + +<dl> +<dt><a name="sortkey" +><code class="code">sortkey</code></a></dt> + +<dd> +<p>The key that determines the sort order of this item.</p> + +<dt><a name="field" +><code class="code">field</code></a></dt> + +<dd> +<p>The <a href="../../Bugzilla/Field.html" class="podlinkpod" +>Bugzilla::Field</a> object that this field value belongs to.</p> +</dd> +</dl> +<p class="backlinkbottom"><b><a name="___bottom" href="../../index.html" title="All Documents"><<</a></b></p> + +<!-- end doc --> + +</body></html> diff --git a/docs/en/html/api/Bugzilla/Hook.html b/docs/en/html/api/Bugzilla/Hook.html index c9639dcdf5494ef532552c8a87fd37bbda832987..23eb3163ec81472a289e141da7f78682fd978f2f 100644 --- a/docs/en/html/api/Bugzilla/Hook.html +++ b/docs/en/html/api/Bugzilla/Hook.html @@ -23,15 +23,22 @@ Bugzilla::Hook</title> <li class='indexItem indexItem1'><a href='#SUBROUTINES'>SUBROUTINES</a> <li class='indexItem indexItem1'><a href='#HOOKS'>HOOKS</a> <ul class='indexList indexList2'> + <li class='indexItem indexItem2'><a href='#auth-login_methods'>auth-login_methods</a> + <li class='indexItem indexItem2'><a href='#auth-verify_methods'>auth-verify_methods</a> + <li class='indexItem indexItem2'><a href='#bug-columns'>bug-columns</a> <li class='indexItem indexItem2'><a href='#bug-end_of_update'>bug-end_of_update</a> + <li class='indexItem indexItem2'><a href='#bug-fields'>bug-fields</a> <li class='indexItem indexItem2'><a href='#buglist-columns'>buglist-columns</a> <li class='indexItem indexItem2'><a href='#colchange-columns'>colchange-columns</a> + <li class='indexItem indexItem2'><a href='#config-add_panels'>config-add_panels</a> + <li class='indexItem indexItem2'><a href='#config-modify_panels'>config-modify_panels</a> <li class='indexItem indexItem2'><a href='#enter_bug-entrydefaultvars'>enter_bug-entrydefaultvars</a> <li class='indexItem indexItem2'><a href='#flag-end_of_update'>flag-end_of_update</a> <li class='indexItem indexItem2'><a href='#install-before_final_checks'>install-before_final_checks</a> <li class='indexItem indexItem2'><a href='#install-requirements'>install-requirements</a> <li class='indexItem indexItem2'><a href='#install-update_db'>install-update_db</a> <li class='indexItem indexItem2'><a href='#db_schema-abstract_schema'>db_schema-abstract_schema</a> + <li class='indexItem indexItem2'><a href='#mailer-before_send'>mailer-before_send</a> <li class='indexItem indexItem2'><a href='#product-confirm_delete'>product-confirm_delete</a> <li class='indexItem indexItem2'><a href='#webservice'>webservice</a> <li class='indexItem indexItem2'><a href='#webservice-error_codes'>webservice-error_codes</a> @@ -129,6 +136,56 @@ name="HOOKS" <p>This describes what hooks exist in Bugzilla currently. They are mostly in alphabetical order, but some related hooks are near each other instead of being alphabetical.</p> +<h2><a class='u' href='#___top' title='click to go to top of document' +name="auth-login_methods" +>auth-login_methods</a></h2> + +<p>This allows you to add new login types to Bugzilla. (See <a href="../Bugzilla/Auth/Login.html" class="podlinkpod" +>Bugzilla::Auth::Login</a>.)</p> + +<p>Params:</p> + +<dl> +<dt><a name="modules" +><code class="code">modules</code></a></dt> + +<dd> +<p>This is a hash--a mapping from login-type "names" to the actual module on disk. The keys will be all the values that were passed to <a href="../Bugzilla/Auth.html#login" class="podlinkpod" +>"login" in Bugzilla::Auth</a> for the <code class="code">Login</code> parameter. The values are the actual path to the module on disk. (For example, if the key is <code class="code">DB</code>, the value is <em class="code">Bugzilla/Auth/Login/DB.pm</em>.)</p> + +<p>For your extension, the path will start with <em class="code">extensions/yourextension/lib/</em>. (See the code in the example extension.)</p> + +<p>If your login type is in the hash as a key, you should set that key to the right path to your module. That module's <code class="code">new</code> method will be called, probably with empty parameters. If your login type is <i>not</i> in the hash, you should not set it.</p> + +<p>You will be prevented from adding new keys to the hash, so make sure your key is in there before you modify it. (In other words, you can't add in login methods that weren't passed to <a href="../Bugzilla/Auth.html#login" class="podlinkpod" +>"login" in Bugzilla::Auth</a>.)</p> +</dd> +</dl> + +<h2><a class='u' href='#___top' title='click to go to top of document' +name="auth-verify_methods" +>auth-verify_methods</a></h2> + +<p>This works just like <a href="#auth-login_methods" class="podlinkpod" +>"auth-login_methods"</a> except it's for login verification methods (See <a href="../Bugzilla/Auth/Verify.html" class="podlinkpod" +>Bugzilla::Auth::Verify</a>.) It also takes a <code class="code">modules</code> parameter, just like <a href="#auth-login_methods" class="podlinkpod" +>"auth-login_methods"</a>.</p> + +<h2><a class='u' href='#___top' title='click to go to top of document' +name="bug-columns" +>bug-columns</a></h2> + +<p>This allows you to add new fields that will show up in every <a href="../Bugzilla/Bug.html" class="podlinkpod" +>Bugzilla::Bug</a> object. Note that you will also need to use the <a href="#bug-fields" class="podlinkpod" +>"bug-fields"</a> hook in conjunction with this hook to make this work.</p> + +<p>Params:</p> + +<dl> +<dt><a name="columns_-_An_arrayref_containing_an_array_of_column_names._Push_your_column_name(s)_onto_the_array." +><code class="code">columns</code> - An arrayref containing an array of column names. Push your column name(s) onto the array.</a></dt> +</dl> + <h2><a class='u' href='#___top' title='click to go to top of document' name="bug-end_of_update" >bug-end_of_update</a></h2> @@ -147,6 +204,23 @@ name="bug-end_of_update" ><code class="code">changes</code> - The hash of changed fields. <code class="code">$changes->{field} = [old, new]</code></a></dt> </dl> +<h2><a class='u' href='#___top' title='click to go to top of document' +name="bug-fields" +>bug-fields</a></h2> + +<p>Allows the addition of database fields from the bugs table to the standard list of allowable fields in a <a href="../Bugzilla/Bug.html" class="podlinkpod" +>Bugzilla::Bug</a> object, so that you can call the field as a method.</p> + +<p>Note: You should add here the names of any fields you added in <a href="#bug-columns" class="podlinkpod" +>"bug-columns"</a>.</p> + +<p>Params:</p> + +<dl> +<dt><a name="columns_-_A_arrayref_containing_an_array_of_column_names._Push_your_column_name(s)_onto_the_array." +><code class="code">columns</code> - A arrayref containing an array of column names. Push your column name(s) onto the array.</a></dt> +</dl> + <h2><a class='u' href='#___top' title='click to go to top of document' name="buglist-columns" >buglist-columns</a></h2> @@ -187,6 +261,45 @@ name="colchange-columns" >"buglist-columns"</a>.</a></dt> </dl> +<h2><a class='u' href='#___top' title='click to go to top of document' +name="config-add_panels" +>config-add_panels</a></h2> + +<p>If you want to add new panels to the Parameters administrative interface, this is where you do it.</p> + +<p>Params:</p> + +<dl> +<dt><a name="panel_modules" +><code class="code">panel_modules</code></a></dt> + +<dd> +<p>A hashref, where the keys are the "name" of the module and the value is the Perl module containing that config module. For example, if the name is <code class="code">Auth</code>, the value would be <code class="code">Bugzilla::Config::Auth</code>.</p> + +<p>For your extension, the Perl module name must start with <code class="code">extensions::yourextension::lib</code>. (See the code in the example extension.)</p> +</dd> +</dl> + +<h2><a class='u' href='#___top' title='click to go to top of document' +name="config-modify_panels" +>config-modify_panels</a></h2> + +<p>This is how you modify already-existing panels in the Parameters administrative interface. For example, if you wanted to add a new Auth method (modifying Bugzilla::Config::Auth) this is how you'd do it.</p> + +<p>Params:</p> + +<dl> +<dt><a name="panels" +><code class="code">panels</code></a></dt> + +<dd> +<p>A hashref, where the keys are lower-case panel "names" (like <code class="code">auth</code>, <code class="code">admin</code>, etc.) and the values are hashrefs. The hashref contains a single key, <code class="code">params</code>. <code class="code">params</code> is an arrayref--the return value from <code class="code">get_param_list</code> for that module. You can modify <code class="code">params</code> and your changes will be reflected in the interface.</p> + +<p>Adding new keys to <code class="code">panels</code> will have no effect. You should use <a href="#config-add_panels" class="podlinkpod" +>"config-add_panels"</a> if you want to add new panels.</p> +</dd> +</dl> + <h2><a class='u' href='#___top' title='click to go to top of document' name="enter_bug-entrydefaultvars" >enter_bug-entrydefaultvars</a></h2> @@ -277,6 +390,20 @@ name="db_schema-abstract_schema" >"ABSTRACT_SCHEMA" in Bugzilla::DB::Schema</a>. Add new hash keys to make new table definitions. <em class="code">checksetup.pl</em> will automatically add these tables to the database when run.</a></dt> </dl> +<h2><a class='u' href='#___top' title='click to go to top of document' +name="mailer-before_send" +>mailer-before_send</a></h2> + +<p>Called right before <a href="../Bugzilla/Mailer.html" class="podlinkpod" +>Bugzilla::Mailer</a> sends a message to the MTA.</p> + +<p>Params:</p> + +<dl> +<dt><a name="email_-_The_Email::MIME_object_that's_about_to_be_sent." +><code class="code">email</code> - The <code class="code">Email::MIME</code> object that's about to be sent.</a></dt> +</dl> + <h2><a class='u' href='#___top' title='click to go to top of document' name="product-confirm_delete" >product-confirm_delete</a></h2> diff --git a/docs/en/html/api/Bugzilla/Install/Localconfig.html b/docs/en/html/api/Bugzilla/Install/Localconfig.html index 5fa159899a39f5acaf304762b406b92a300a8546..f8f61c8f659b0956c30722e8778e62814a843741 100644 --- a/docs/en/html/api/Bugzilla/Install/Localconfig.html +++ b/docs/en/html/api/Bugzilla/Install/Localconfig.html @@ -73,23 +73,46 @@ name="SUBROUTINES" >SUBROUTINES</a></h1> <dl> -<dt><a name="read_localconfig($include_deprecated)" -><code class="code">read_localconfig($include_deprecated)</code></a></dt> +<dt><a name="read_localconfig" +><code class="code">read_localconfig</code></a></dt> <dd> -<p>Description: Reads the localconfig file and returns all valid values in a hashref.</p> +<dl> +<dt><a name="Description" +><b>Description</b></a></dt> + +<dd> +<p>Reads the localconfig file and returns all valid values in a hashref.</p> + +<dt><a name="Params" +><b>Params</b></a></dt> + +<dd> +<dl> +<dt><a name="$include_deprecated" +><code class="code">$include_deprecated</code></a></dt> -<p>Params: <code class="code">$include_deprecated</code> - <code class="code">true</code> if you want the returned hashref to also include variables listed in <code class="code">OLD_LOCALCONFIG_VARS</code>, if they exist. Generally this is only for use by <code class="code">update_localconfig</code>.</p> +<dd> +<p><code class="code">true</code> if you want the returned hashref to include *any* variable currently defined in localconfig, even if it doesn't exist in <code class="code">LOCALCONFIG_VARS</code>. Generally this is is only for use by <a href="#update_localconfig" class="podlinkpod" +>"update_localconfig"</a>.</p> +</dd> +</dl> + +<dt><a name="Returns" +><b>Returns</b></a></dt> -<p>Returns: A hashref of the localconfig variables. If an array is defined, it will be an arrayref in the returned hash. If a hash is defined, it will be a hashref in the returned hash. Only includes variables specified in <code class="code">LOCALCONFIG_VARS</code> (and <code class="code">OLD_LOCALCONFIG_VARS</code> if <code class="code">$include_deprecated</code> is specified).</p> +<dd> +<p>A hashref of the localconfig variables. If an array is defined in localconfig, it will be an arrayref in the returned hash. If a hash is defined, it will be a hashref in the returned hash. Only includes variables specified in <code class="code">LOCALCONFIG_VARS</code>, unless <code class="code">$include_deprecated</code> is true.</p> +</dd> +</dl> -<dt><a name="update_localconfig({_output_=>_1_})" -><code class="code">update_localconfig({ output => 1 })</code></a></dt> +<dt><a name="update_localconfig" +><code class="code">update_localconfig</code></a></dt> <dd> <p>Description: Adds any new variables to localconfig that aren't currently defined there. Also optionally prints out a message about vars that *should* be there and aren't. Exits the program if it adds any new vars.</p> -<p>Params: <code class="code">output</code> - <code class="code">true</code> if the function should display informational output and warnings. It will always display errors or any message which would cause program execution to halt.</p> +<p>Params: <code class="code">$output</code> - <code class="code">true</code> if the function should display informational output and warnings. It will always display errors or any message which would cause program execution to halt.</p> <p>Returns: A hashref, with <code class="code">old_vals</code> being an array of names of variables that were removed, and <code class="code">new_vals</code> being an array of names of variables that were added to localconfig.</p> </dd> diff --git a/docs/en/html/api/Bugzilla/JobQueue.html b/docs/en/html/api/Bugzilla/JobQueue.html new file mode 100644 index 0000000000000000000000000000000000000000..1654d4fecf2782ceeb7a7b8b2227e017095a1638 --- /dev/null +++ b/docs/en/html/api/Bugzilla/JobQueue.html @@ -0,0 +1,54 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> + <head> + <title> +Bugzilla::JobQueue</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <link rel="stylesheet" title="style" type="text/css" href=".././../../../style.css" media="all" > + +</head> + <body id="pod"> +<p class="backlinktop"><b><a name="___top" href="../index.html" accesskey="1" title="All Documents"><<</a></b></p> +<h1>Bugzilla::JobQueue</h1> +<div class='indexgroup'> +<ul class='indexList indexList1'> + <li class='indexItem indexItem1'><a href='#NAME'>NAME</a> + <li class='indexItem indexItem1'><a href='#SYNOPSIS'>SYNOPSIS</a> + <li class='indexItem indexItem1'><a href='#DESCRIPTION'>DESCRIPTION</a> + <ul class='indexList indexList2'> + <li class='indexItem indexItem2'><a href='#Inserting_a_Job'>Inserting a Job</a> + </ul> +</ul> +</div> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="NAME" +>NAME</a></h1> + +<p>Bugzilla::JobQueue - Interface between Bugzilla and TheSchwartz.</p> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="SYNOPSIS" +>SYNOPSIS</a></h1> + +<pre class="code"> use Bugzilla; + + my $obj = Bugzilla->job_queue(); + $obj->insert('send_mail', { msg => $message });</pre> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="DESCRIPTION" +>DESCRIPTION</a></h1> + +<p>Certain tasks should be done asyncronously. The job queue system allows Bugzilla to use some sort of service to schedule jobs to happen asyncronously.</p> + +<h2><a class='u' href='#___top' title='click to go to top of document' +name="Inserting_a_Job" +>Inserting a Job</a></h2> + +<p>See the synopsis above for an easy to follow example on how to insert a job into the queue. Give it a name and some arguments and the job will be sent away to be done later.</p> +<p class="backlinkbottom"><b><a name="___bottom" href="../index.html" title="All Documents"><<</a></b></p> + +<!-- end doc --> + +</body></html> diff --git a/docs/en/html/api/Bugzilla/JobQueue/Runner.html b/docs/en/html/api/Bugzilla/JobQueue/Runner.html new file mode 100644 index 0000000000000000000000000000000000000000..4d5dfd2397ff402dfbf36e2a4100808d89f893b6 --- /dev/null +++ b/docs/en/html/api/Bugzilla/JobQueue/Runner.html @@ -0,0 +1,45 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> + <head> + <title> +Bugzilla::JobQueue::Runner</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <link rel="stylesheet" title="style" type="text/css" href="../.././../../../style.css" media="all" > + +</head> + <body id="pod"> +<p class="backlinktop"><b><a name="___top" href="../../index.html" accesskey="1" title="All Documents"><<</a></b></p> +<h1>Bugzilla::JobQueue::Runner</h1> +<div class='indexgroup'> +<ul class='indexList indexList1'> + <li class='indexItem indexItem1'><a href='#NAME'>NAME</a> + <li class='indexItem indexItem1'><a href='#SYNOPSIS'>SYNOPSIS</a> + <li class='indexItem indexItem1'><a href='#DESCRIPTION'>DESCRIPTION</a> +</ul> +</div> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="NAME" +>NAME</a></h1> + +<p>Bugzilla::JobQueue::Runner - A class representing the daemon that runs the job queue.</p> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="SYNOPSIS" +>SYNOPSIS</a></h1> + +<pre class="code"> use Bugzilla::JobQueue::Runner; + Bugzilla::JobQueue::Runner->new();</pre> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="DESCRIPTION" +>DESCRIPTION</a></h1> + +<p>This is a subclass of <a href="../../Daemon/Generic.html" class="podlinkpod" +>Daemon::Generic</a> that is used by <a href="../../jobqueue.html" class="podlinkpod" +>jobqueue</a> to run the Bugzilla job queue.</p> +<p class="backlinkbottom"><b><a name="___bottom" href="../../index.html" title="All Documents"><<</a></b></p> + +<!-- end doc --> + +</body></html> diff --git a/docs/en/html/api/Bugzilla/Object.html b/docs/en/html/api/Bugzilla/Object.html index 379fa23afb30e23769a112310c278a2971acb11e..0151a78f482a37c78aee14a4a3e91b3318e4e180 100644 --- a/docs/en/html/api/Bugzilla/Object.html +++ b/docs/en/html/api/Bugzilla/Object.html @@ -20,7 +20,7 @@ Bugzilla::Object</title> <ul class='indexList indexList2'> <li class='indexItem indexItem2'><a href='#Constructors'>Constructors</a> <li class='indexItem indexItem2'><a href='#Database_Manipulation'>Database Manipulation</a> - <li class='indexItem indexItem2'><a href='#Subclass_Helpers'>Subclass Helpers</a> + <li class='indexItem indexItem2'><a href='#Mutators'>Mutators</a> <li class='indexItem indexItem2'><a href='#Simple_Validators'>Simple Validators</a> </ul> <li class='indexItem indexItem1'><a href='#CLASS_FUNCTIONS'>CLASS FUNCTIONS</a> @@ -188,7 +188,7 @@ name="Constructors" >"ID_FIELD"</a> column).</p> <p>If you pass in a hashref, you can pass a <code class="code">name</code> key. The value of the <code class="code">name</code> key is the case-insensitive name of the object (from <a href="#NAME_FIELD" class="podlinkpod" ->"NAME_FIELD"</a>) in the DB.</p> +>"NAME_FIELD"</a>) in the DB. You can also pass in an <code class="code">id</code> key which will be interpreted as the id of the object you want (overriding the <code class="code">name</code> key).</p> <p><b>Additional Parameters Available for Subclasses</b></p> @@ -388,20 +388,32 @@ name="Database_Manipulation" ><b>Returns</b></a></dt> <dd> +<p><b>In scalar context:</b></p> + <p>A hashref showing what changed during the update. The keys are the column names from <a href="#UPDATE_COLUMNS" class="podlinkpod" >"UPDATE_COLUMNS"</a>. If a field was not changed, it will not be in the hash at all. If the field was changed, the key will point to an arrayref. The first item of the arrayref will be the old value, and the second item will be the new value.</p> <p>If there were no changes, we return a reference to an empty hash.</p> + +<p><b>In array context:</b></p> + +<p>Returns a list, where the first item is the above hashref. The second item is the object as it was in the database before update() was called. (This is mostly useful to subclasses of <code class="code">Bugzilla::Object</code> that are implementing <code class="code">update</code>.)</p> </dd> </dl> + +<dt><a name="remove_from_db" +><code class="code">remove_from_db</code></a></dt> + +<dd> +<p>Removes this object from the database. Will throw an error if you can't remove it for some reason. The object will then be destroyed, as it is not safe to use the object after it has been removed from the database.</p> </dd> </dl> <h2><a class='u' href='#___top' title='click to go to top of document' -name="Subclass_Helpers" ->Subclass Helpers</a></h2> +name="Mutators" +>Mutators</a></h2> -<p>These functions are intended only for use by subclasses. If you call them from anywhere else, they will throw a <code class="code">CodeError</code>.</p> +<p>These are used for updating the values in objects, before calling <code class="code">update</code>.</p> <dl> <dt><a name="set" @@ -420,6 +432,8 @@ name="Subclass_Helpers" <p>See <a href="#VALIDATORS" class="podlinkpod" >"VALIDATORS"</a> for more information.</p> +<p><b>NOTE</b>: This function is intended only for use by subclasses. If you call it from anywhere else, it will throw a <code class="code">CodeError</code>.</p> + <dt><a name="Params" ><b>Params</b></a></dt> @@ -432,6 +446,27 @@ name="Subclass_Helpers" ><code class="code">$value</code> - The value that you're setting the field to.</a></dt> </dl> +<dt><a name="Returns_(nothing)" +><b>Returns</b> (nothing)</a></dt> +</dl> + +<dt><a name="set_all" +><code class="code">set_all</code></a></dt> + +<dd> +<dl> +<dt><a name="Description" +><b>Description</b></a></dt> + +<dd> +<p>This is a convenience function which is simpler than calling many different <code class="code">set_</code> functions in a row. You pass a hashref of parameters and it calls <code class="code">set_$key($value)</code> for every item in the hashref.</p> + +<dt><a name="Params" +><b>Params</b></a></dt> + +<dd> +<p>Takes a hashref of the fields that need to be set, pointing to the value that should be passed to the <code class="code">set_</code> function that is called.</p> + <dt><a name="Returns_(nothing)" ><b>Returns</b> (nothing)</a></dt> </dl> diff --git a/docs/en/html/api/Bugzilla/Product.html b/docs/en/html/api/Bugzilla/Product.html index 880fd2d82f57d51c2910ff2174dd70a598837507..9f2f56856867c0832651b1fe79bd2c8f1cb37a16 100644 --- a/docs/en/html/api/Bugzilla/Product.html +++ b/docs/en/html/api/Bugzilla/Product.html @@ -89,7 +89,10 @@ name="METHODS" <pre class="code"> Description: Returns a hash (group id as key) with all product group controls. - Params: none. + Params: $full_data (optional, false by default) - when true, + the number of bugs per group applicable to the product + is also returned. Moreover, bug groups which have no + special settings for the product are also returned. Returns: A hash with group id as key and hash containing a Bugzilla::Group object and the properties of group diff --git a/docs/en/html/api/Bugzilla/User.html b/docs/en/html/api/Bugzilla/User.html index 7a9accbc4411c90a84b0535bef0c68c545b5bbdf..69f193e500b3c577a19b34e15afc2f3fea5902c1 100644 --- a/docs/en/html/api/Bugzilla/User.html +++ b/docs/en/html/api/Bugzilla/User.html @@ -213,11 +213,18 @@ name="Other_Methods" <dd> <p>Returns a hash of hashes which holds the user's settings. The first key is the name of the setting, as found in setting.name. The second key is one of: is_enabled - true if the user is allowed to set the preference themselves; false to force the site defaults for themselves or must accept the global site default value default_value - the global site default for this setting value - the value of this setting for this user. Will be the same as the default_value if the user is not logged in, or if is_default is true. is_default - a boolean to indicate whether the user has chosen to make a preference for themself or use the site default.</p> +<dt><a name="timezone" +><code class="code">timezone</code></a></dt> + +<dd> +<p>Returns the timezone used to display dates and times to the user, as a DateTime::TimeZone object.</p> + <dt><a name="groups" ><code class="code">groups</code></a></dt> <dd> -<p>Returns a hashref of group names for groups the user is a member of. The keys are the names of the groups, whilst the values are the respective group ids. (This is so that a set of all groupids for groups the user is in can be obtained by <code class="code">values(%{$user->groups})</code>.)</p> +<p>Returns an arrayref of <a href="../Bugzilla/Group.html" class="podlinkpod" +>Bugzilla::Group</a> objects representing groups that this user is a member of.</p> <dt><a name="groups_as_string" ><code class="code">groups_as_string</code></a></dt> @@ -241,7 +248,10 @@ name="Other_Methods" ><code class="code">bless_groups</code></a></dt> <dd> -<p>Returns an arrayref of hashes of <code class="code">groups</code> entries, where the keys of each hash are the names of <code class="code">id</code>, <code class="code">name</code> and <code class="code">description</code> columns of the <code class="code">groups</code> table. The arrayref consists of the groups the user can bless, taking into account that having editusers permissions means that you can bless all groups, and that you need to be aware of a group in order to bless a group.</p> +<p>Returns an arrayref of <a href="../Bugzilla/Group.html" class="podlinkpod" +>Bugzilla::Group</a> objects.</p> + +<p>The arrayref consists of the groups the user can bless, taking into account that having editusers permissions means that you can bless all groups, and that you need to be able to see a group in order to bless it.</p> <dt><a name="get_products_by_permission($group)" ><code class="code">get_products_by_permission($group)</code></a></dt> diff --git a/docs/en/html/api/Bugzilla/User/Setting/Timezone.html b/docs/en/html/api/Bugzilla/User/Setting/Timezone.html new file mode 100644 index 0000000000000000000000000000000000000000..6ca1a8b279e5461c68f49c709c610b3361ae87e7 --- /dev/null +++ b/docs/en/html/api/Bugzilla/User/Setting/Timezone.html @@ -0,0 +1,53 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> + <head> + <title> +Bugzilla::User::Setting::Timezone</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <link rel="stylesheet" title="style" type="text/css" href="../../.././../../../style.css" media="all" > + +</head> + <body id="pod"> +<p class="backlinktop"><b><a name="___top" href="../../../index.html" accesskey="1" title="All Documents"><<</a></b></p> +<h1>Bugzilla::User::Setting::Timezone</h1> +<div class='indexgroup'> +<ul class='indexList indexList1'> + <li class='indexItem indexItem1'><a href='#NAME'>NAME</a> + <li class='indexItem indexItem1'><a href='#DESCRIPTION'>DESCRIPTION</a> + <li class='indexItem indexItem1'><a href='#METHODS'>METHODS</a> +</ul> +</div> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="NAME" +>NAME</a></h1> + +<p>Bugzilla::User::Setting::Timezone - Object for a user preference setting for desired timezone</p> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="DESCRIPTION" +>DESCRIPTION</a></h1> + +<p>Timezone.pm extends Bugzilla::User::Setting and implements a class specialized for setting the desired timezone.</p> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="METHODS" +>METHODS</a></h1> + +<dl> +<dt><a name="legal_values()" +><code class="code">legal_values()</code></a></dt> + +<dd> +<p>Description: Returns all legal timezones</p> + +<p>Params: none</p> + +<p>Returns: A reference to an array containing the names of all legal timezones</p> +</dd> +</dl> +<p class="backlinkbottom"><b><a name="___bottom" href="../../../index.html" title="All Documents"><<</a></b></p> + +<!-- end doc --> + +</body></html> diff --git a/docs/en/html/api/Bugzilla/Util.html b/docs/en/html/api/Bugzilla/Util.html index fae2c11f6e2a7da1ba4e8c40eff846b9a62ac2d0..8170630013585c666465812b5399ba8d12d7736c 100644 --- a/docs/en/html/api/Bugzilla/Util.html +++ b/docs/en/html/api/Bugzilla/Util.html @@ -207,12 +207,6 @@ name="Environment_and_Location" <dd> <p>Returns either the <code class="code">sslbase</code> or <code class="code">urlbase</code> parameter, depending on the current setting for the <code class="code">ssl</code> parameter.</p> - -<dt><a name="use_attachbase()" -><code class="code">use_attachbase()</code></a></dt> - -<dd> -<p>Returns true if an alternate host is used to display attachments; false otherwise.</p> </dd> </dl> @@ -348,9 +342,10 @@ name="Formatting_Time" ><code class="code">format_time($time)</code></a></dt> <dd> -<p>Takes a time, converts it to the desired format and appends the timezone as defined in editparams.cgi, if desired. This routine will be expanded in the future to adjust for user preferences regarding what timezone to display times in.</p> +<p>Takes a time and converts it to the desired format and timezone. If no format is given, the routine guesses the correct one and returns an empty array if it cannot. If no timezone is given, the user's timezone is used, as defined in his preferences.</p> -<p>This routine is mainly called from templates to filter dates, see "FILTER time" in Templates.pm. In this case, $format is undefined and the routine has to "guess" the date format that was passed to $dbh->sql_date_format().</p> +<p>This routine is mainly called from templates to filter dates, see "FILTER time" in <a href="../Bugzilla/Template.html" class="podlinkpod" +>Bugzilla::Template</a>.</p> <dt><a name="format_time_decimal($time)" ><code class="code">format_time_decimal($time)</code></a></dt> @@ -378,13 +373,13 @@ name="Cryptography" >Cryptography</a></h2> <dl> -<dt><a name="bz_crypt($password)" -><code class="code">bz_crypt($password)</code></a></dt> +<dt><a name="bz_crypt($password,_$salt)" +><code class="code">bz_crypt($password, $salt)</code></a></dt> <dd> -<p>Takes a string and returns a <code class="code">crypt</code>ed value for it, using a random salt.</p> +<p>Takes a string and returns a hashed (encrypted) value for it, using a random salt. An optional salt string may also be passed in.</p> -<p>Please always use this function instead of the built-in perl "crypt" when initially encrypting a password.</p> +<p>Please always use this function instead of the built-in perl <code class="code">crypt</code> function, when checking or setting a password. Bugzilla does not use <code class="code">crypt</code>.</p> <dt><a name="generate_random_password($password_length)" ><code class="code">generate_random_password($password_length)</code></a></dt> diff --git a/docs/en/html/api/Bugzilla/WebService/Bug.html b/docs/en/html/api/Bugzilla/WebService/Bug.html index 37af922c41f1c68c4368da3fd281028146d2e55e..ac5d3fa73ba511eb4dba26202182e10531ccf2aa 100644 --- a/docs/en/html/api/Bugzilla/WebService/Bug.html +++ b/docs/en/html/api/Bugzilla/WebService/Bug.html @@ -237,6 +237,132 @@ The structure of the hash may even change between point releases of Bugzilla.</p </dl> </dd> </dl> + +<dt><a name="get_history" +><code class="code">get_history</code></a></dt> + +<dd> +<p><b>UNSTABLE</b></p> + +<dl> +<dt><a name="Description" +><b>Description</b></a></dt> + +<dd> +<p>Gets the history of changes for particular bugs in the database.</p> + +<dt><a name="Params" +><b>Params</b></a></dt> + +<dd> +<dl> +<dt><a name="ids" +><code class="code">ids</code></a></dt> + +<dd> +<p>An array of numbers and strings.</p> + +<p>If an element in the array is entirely numeric, +it represents a bug_id from the Bugzilla database to fetch. +If it contains any non-numeric characters, +it is considered to be a bug alias instead, +and the data bug with that alias will be loaded.</p> + +<p>Note that it's possible for aliases to be disabled in Bugzilla, +in which case you will be told that you have specified an invalid bug_id if you try to specify an alias. +(It will be error 100.)</p> +</dd> +</dl> + +<dt><a name="Returns" +><b>Returns</b></a></dt> + +<dd> +<p>A hash containing a single element, +<code class="code">bugs</code>. +This is a hash of hashes. +Each hash has the numeric bug id as a key, +and contains the following items:</p> + +<dl> +<dt><a name="alias" +>alias</a></dt> + +<dd> +<p><code class="code">string</code> The alias of this bug. +If there is no alias or aliases are disabled in this Bugzilla, +this will be undef.</p> + +<dl> +<dt><a name="when" +>when</a></dt> + +<dd> +<p><code class="code">dateTime</code> The date the bug activity/change happened.</p> + +<dt><a name="who" +>who</a></dt> + +<dd> +<p><code class="code">string</code> The login name of the user who performed the bug change.</p> + +<dt><a name="changes" +>changes</a></dt> + +<dd> +<p><code class="code">array</code> An array of hashes which contain all the changes that happened to the bug at this time (as specified by <code class="code">when</code>). +Each hash contains the following items:</p> + +<dl> +<dt><a name="field_name" +>field_name</a></dt> + +<dd> +<p><code class="code">string</code> The name of the bug field that has changed.</p> + +<dt><a name="removed" +>removed</a></dt> + +<dd> +<p><code class="code">string</code> The previous value of the bug field which has been deleted by the change.</p> + +<dt><a name="added" +>added</a></dt> + +<dd> +<p><code class="code">string</code> The new value of the bug field which has been added by the change.</p> + +<dt><a name="attachment_id" +>attachment_id</a></dt> + +<dd> +<p><code class="code">int</code> The id of the attachment that was changed. +This only appears if the change was to an attachment, +otherwise <code class="code">attachment_id</code> will not be present in this hash.</p> +</dd> +</dl> +</dd> +</dl> +</dd> +</dl> + +<dt><a name="Errors" +><b>Errors</b></a></dt> + +<dd> +<p>The same as <a href="#get" class="podlinkpod" +>"get"</a>.</p> + +<dt><a name="History" +><b>History</b></a></dt> + +<dd> +<dl> +<dt><a name="Added_in_Bugzilla_3.4." +>Added in Bugzilla <b>3.4</b>.</a></dt> +</dl> +</dd> +</dl> </dd> </dl> @@ -245,10 +371,12 @@ name="Bug_Creation_and_Modification" >Bug Creation and Modification</a></h2> <dl> -<dt><a name="create_EXPERIMENTAL" -><code class="code">create</code> <b>EXPERIMENTAL</b></a></dt> +<dt><a name="create" +><code class="code">create</code></a></dt> <dd> +<p><b>EXPERIMENTAL</b></p> + <dl> <dt><a name="Description" ><b>Description</b></a></dt> diff --git a/docs/en/html/api/Bugzilla/WebService/User.html b/docs/en/html/api/Bugzilla/WebService/User.html index 9fcda0c459b34698b49ab22a8a56e1d32e67dabb..ee6197bceaff54b35249906f4046b26b4b80465d 100644 --- a/docs/en/html/api/Bugzilla/WebService/User.html +++ b/docs/en/html/api/Bugzilla/WebService/User.html @@ -18,6 +18,7 @@ Bugzilla::Webservice::User</title> <ul class='indexList indexList2'> <li class='indexItem indexItem2'><a href='#Logging_In_and_Out'>Logging In and Out</a> <li class='indexItem indexItem2'><a href='#Account_Creation'>Account Creation</a> + <li class='indexItem indexItem2'><a href='#User_Info'>User Info</a> </ul> </ul> </div> @@ -280,6 +281,212 @@ this means the password is under three characters.)</p> this means the password is over ten characters.)</p> </dd> </dl> +</dd> +</dl> +</dd> +</dl> + +<h2><a class='u' href='#___top' title='click to go to top of document' +name="User_Info" +>User Info</a></h2> + +<dl> +<dt><a name="get" +><code class="code">get</code></a></dt> + +<dd> +<p><b>UNSTABLE</b></p> + +<dl> +<dt><a name="Description" +><b>Description</b></a></dt> + +<dd> +<p>Gets information about user accounts in Bugzilla.</p> + +<dt><a name="Params" +><b>Params</b></a></dt> + +<dd> +<p><b>Note</b>: At least one of <code class="code">ids</code>, +<code class="code">names</code>, +or <code class="code">match</code> must be specified.</p> + +<p><b>Note</b>: Users will not be returned more than once, +so even if a user is matched by more than one argument, +only one user will be returned.</p> + +<dl> +<dt><a name="ids_(array)" +><code class="code">ids</code> (array)</a></dt> + +<dd> +<p>An array of integers, +representing user ids.</p> + +<p>Logged-out users cannot pass this parameter to this function. +If they try, +they will get an error. +Logged-in users will get an error if they specify the id of a user they cannot see.</p> + +<dt><a name="names_(array)_-_An_array_of_login_names_(strings)." +><code class="code">names</code> (array) - An array of login names (strings). +<dt><a name="match_(array)" +><code class="code">match</code> (array)</a></dt> + +<dd> +<p>An array of strings. +This works just like "user matching" in Bugzilla itself. +Users will be returned whose real name or login name contains any one of the specified strings. +Users that you cannot see will not be included in the returned list.</p> + +<p>Some Bugzilla installations have user-matching turned off, +in which case you will only be returned exact matches.</p> + +<p>Most installations have a limit on how many matches are returned for each string, +which defaults to 1000 but can be changed by the Bugzilla administrator.</p> + +<p>Logged-out users cannot use this argument, +and an error will be thrown if they try. +(This is to make it harder for spammers to harvest email addresses from Bugzilla, +and also to enforce the user visibility restrictions that are implemented on some Bugzillas.)</p> + +<dt><a name="include_fields_(array)" +><code class="code">include_fields</code> (array)</a></dt> + +<dd> +<p>An array of strings, +representing the names of keys in the hashes this function returns. +Only the fields specified in this hash will be returned, +the rest will not be included.</p> + +<p>Essentially, +this is a way to make the return value smaller, +for performance or bandwidth reasons.</p> + +<p>If you specify an empty array, +then this function will return empty hashes.</p> + +<p>Invalid field names are ignored.</p> + +<dt><a name="exclude_fields_(array)" +><code class="code">exclude_fields</code> (array)</a></dt> + +<dd> +<p>An array of strings, +representing the names of keys in the hashes this function returns. +The fields specified will not be excluded from the returned hashes.</p> + +<p>Essentially, +this is a way to exclude certain fields from the returned hashes, +for performance or bandwidth reasons.</p> + +<p>If you specify all the fields, +then this function will return empty hashes.</p> + +<p>Invalid field names are ignored.</p> + +<p>This overrides <code class="code">include_fields</code>.</p> +</dd> +</dl> + +<dt><a name="Returns" +><b>Returns</b></a></dt> + +<dd> +<p>A hash containing one item, +<code class="code">users</code>, +that is an array of hashes. +Each hash describes a user, +and has the following items:</p> + +<dl> +<dt><a name="id" +>id</a></dt> + +<dd> +<p><code class="code">int</code> The unique integer ID that Bugzilla uses to represent this user. +Even if the user's login name changes, +this will not change.</p> + +<dt><a name="real_name" +>real_name</a></dt> + +<dd> +<p><code class="code">string</code> The actual name of the user. +May be blank.</p> + +<dt><a name="email" +>email</a></dt> + +<dd> +<p><code class="code">string</code> The email address of the user.</p> + +<dt><a name="name" +>name</a></dt> + +<dd> +<p><code class="code">string</code> The login name of the user. +Note that in some situations this is different than their email.</p> + +<dt><a name="can_login" +>can_login</a></dt> + +<dd> +<p><code class="code">boolean</code> A boolean value to indicate if the user can login into bugzilla.</p> + +<dt><a name="email_enabled" +>email_enabled</a></dt> + +<dd> +<p><code class="code">boolean</code> A boolean value to indicate if bug-related mail will be sent to the user or not.</p> + +<dt><a name="login_denied_text" +>login_denied_text</a></dt> + +<dd> +<p><code class="code">string</code> A text field that holds the reason for disabling a user from logging into bugzilla, +if empty then the user account is enabled. +Otherwise it is disabled/closed.</p> + +<p><b>Note</b>: If you are not logged in to Bugzilla when you call this function, +you will only be returned the <code class="code">id</code>, +<code class="code">name</code>, +and <code class="code">real_name</code> items. +If you are logged in and not in editusers group, +you will only be returned the <code class="code">id</code>, +<code class="code">name</code>, +<code class="code">real_name</code>, +<code class="code">email</code>, +and <code class="code">can_login</code> items.</p> +</dd> +</dl> + +<dt><a name="Errors" +><b>Errors</b></a></dt> + +<dd> +<dl> +<dt><a name="51_(Bad_Login_Name)" +>51 (Bad Login Name)</a></dt> + +<dd> +<p>You passed an invalid login name in the "names" array.</p> + +<dt><a name="304_(Authorization_Required)" +>304 (Authorization Required)</a></dt> + +<dd> +<p>You are logged in, +but you are not authorized to see one of the users you wanted to get information about by user id.</p> + +<dt><a name="505_(User_Access_By_Id_or_User-Matching_Denied)" +>505 (User Access By Id or User-Matching Denied)</a></dt> + +<dd> +<p>Logged-out users cannot use the "ids" or "match" arguments to this function.</p> +</dd> +</dl> <dt><a name="History" ><b>History</b></a></dt> diff --git a/docs/en/html/api/Bugzilla/WebService/Util.html b/docs/en/html/api/Bugzilla/WebService/Util.html new file mode 100644 index 0000000000000000000000000000000000000000..28e34618024f9c055160f7a304bd306f701356e3 --- /dev/null +++ b/docs/en/html/api/Bugzilla/WebService/Util.html @@ -0,0 +1,60 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> + <head> + <title> +Bugzilla::WebService::Util</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <link rel="stylesheet" title="style" type="text/css" href="../.././../../../style.css" media="all" > + +</head> + <body id="pod"> +<p class="backlinktop"><b><a name="___top" href="../../index.html" accesskey="1" title="All Documents"><<</a></b></p> +<h1></h1> +<div class='indexgroup'> +<ul class='indexList indexList1'> + <li class='indexItem indexItem1'><a href='#NAME'>NAME</a> + <li class='indexItem indexItem1'><a href='#DESCRIPTION'>DESCRIPTION</a> + <li class='indexItem indexItem1'><a href='#SYNOPSIS'>SYNOPSIS</a> + <li class='indexItem indexItem1'><a href='#METHODS'>METHODS</a> +</ul> +</div> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="NAME" +>NAME</a></h1> + +<p>Bugzilla::WebService::Util - Utility functions used inside of the WebService code. +These are <b>not</b> functions that can be called via the WebService.</p> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="DESCRIPTION" +>DESCRIPTION</a></h1> + +<p>This is somewhat like <a href="../../Bugzilla/Util.html" class="podlinkpod" +>Bugzilla::Util</a>, +but these functions are only used internally in the WebService code.</p> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="SYNOPSIS" +>SYNOPSIS</a></h1> + +<pre class="code"> filter({ include_fields => ['id', 'name'], + exclude_fields => ['name'] }, $hash);</pre> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="METHODS" +>METHODS</a></h1> + +<dl> +<dt><a name="filter_fields" +><code class="code">filter_fields</code></a></dt> + +<dd> +<p>This helps implement the <code class="code">include_fields</code> and <code class="code">exclude_fields</code> arguments of WebService methods. Given a hash (the second argument to this subroutine), this will remove any keys that are <i>not</i> in <code class="code">include_fields</code> and then remove any keys that <i>are</i> in <code class="code">exclude_fields</code>.</p> +</dd> +</dl> +<p class="backlinkbottom"><b><a name="___bottom" href="../../index.html" title="All Documents"><<</a></b></p> + +<!-- end doc --> + +</body></html> diff --git a/docs/en/html/api/index.html b/docs/en/html/api/index.html index 388b5289961edf5212b584057ea65db3f18423ff..bfc01b86402e7f9dc322ec425403bf13ace3dfa6 100644 --- a/docs/en/html/api/index.html +++ b/docs/en/html/api/index.html @@ -2,13 +2,13 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> - <title>Bugzilla 3.2.1 API Documentation</title> + <title>Bugzilla 3.3.1 API Documentation</title> <link rel="stylesheet" title="style" type="text/css" href="./../../../style.css" media="all" > </head> <body class="contentspage"> - <h1>Bugzilla 3.2.1 API Documentation</h1> + <h1>Bugzilla 3.3.1 API Documentation</h1> <dl class='superindex'> <dt><a name="Files">Files</a></dt> <dd> @@ -60,7 +60,7 @@ </tr> <tr class="odd"> <th><a href="./Bugzilla/Attachment.html">Bugzilla::Attachment</a></th> - <td>a file related to a bug that a user has uploaded to the Bugzilla server</td> + <td>Bugzilla attachment class.</td> </tr> <tr class="even"> <th><a href="./Bugzilla/Auth.html">Bugzilla::Auth</a></th> @@ -123,117 +123,133 @@ <td>a particular piece of information about bugs and useful routines for form field manipulation</td> </tr> <tr class="odd"> + <th><a href="./Bugzilla/Field/Choice.html">Bugzilla::Field::Choice</a></th> + <td>A legal value for a <select>-type field.</td> +</tr> +<tr class="even"> <th><a href="./Bugzilla/Flag.html">Bugzilla::Flag</a></th> <td>A module to deal with Bugzilla flag values.</td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/FlagType.html">Bugzilla::FlagType</a></th> <td>A module to deal with Bugzilla flag types.</td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/Group.html">Bugzilla::Group</a></th> <td>Bugzilla group class.</td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/Hook.html">Bugzilla::Hook</a></th> <td>Extendable extension hooks for Bugzilla code</td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/Install.html">Bugzilla::Install</a></th> <td>Functions and variables having to do with installation.</td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/Install/CPAN.html">Bugzilla::Install::CPAN</a></th> <td>Routines to install Perl modules from CPAN.</td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/Install/DB.html">Bugzilla::Install::DB</a></th> <td>Fix up the database during installation.</td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/Install/Filesystem.html">Bugzilla::Install::Filesystem</a></th> <td>Fix up the filesystem during installation.</td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/Install/Localconfig.html">Bugzilla::Install::Localconfig</a></th> <td></td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/Install/Requirements.html">Bugzilla::Install::Requirements</a></th> <td>Functions and variables dealing with Bugzilla's perl-module requirements.</td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/Install/Util.html">Bugzilla::Install::Util</a></th> <td>Utility functions that are useful both during installation and afterwards.</td> </tr> +<tr class="odd"> + <th><a href="./Bugzilla/JobQueue.html">Bugzilla::JobQueue</a></th> + <td>Interface between Bugzilla and TheSchwartz.</td> +</tr> <tr class="even"> + <th><a href="./Bugzilla/JobQueue/Runner.html">Bugzilla::JobQueue::Runner</a></th> + <td>A class representing the daemon that runs the job queue.</td> +</tr> +<tr class="odd"> <th><a href="./Bugzilla/Keyword.html">Bugzilla::Keyword</a></th> <td>A Keyword that can be added to a bug.</td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/Milestone.html">Bugzilla::Milestone</a></th> <td>Bugzilla product milestone class.</td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/Object.html">Bugzilla::Object</a></th> <td>A base class for objects in Bugzilla.</td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/Product.html">Bugzilla::Product</a></th> <td>Bugzilla product class.</td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/Search/Saved.html">Bugzilla::Search::Saved</a></th> <td>A saved search</td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/Status.html">Bugzilla::Status</a></th> <td>Bug status class.</td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/Template.html">Bugzilla::Template</a></th> <td>Wrapper around the Template Toolkit Template object</td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/Template/Parser.html">Bugzilla::Template::Parser</a></th> <td>Wrapper around the Template Toolkit Template::Parser object</td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/Template/Plugin/Bugzilla.html">Bugzilla::Template::Plugin::Bugzilla</a></th> <td></td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/Template/Plugin/Hook.html">Bugzilla::Template::Plugin::Hook</a></th> <td></td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/Template/Plugin/User.html">Bugzilla::Template::Plugin::User</a></th> <td></td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/Token.html">Bugzilla::Token</a></th> <td>Provides different routines to manage tokens.</td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/Update.html">Bugzilla::Update</a></th> <td>Update routines for Bugzilla</td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/User.html">Bugzilla::User</a></th> <td>Object for a Bugzilla user</td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/User/Setting.html">Bugzilla::User::Setting</a></th> <td>Object for a user preference setting</td> </tr> -<tr class="odd"> +<tr class="even"> <th><a href="./Bugzilla/User/Setting/Lang.html">Bugzilla::User::Setting::Lang</a></th> <td>Object for a user preference setting for preferred language</td> </tr> -<tr class="even"> +<tr class="odd"> <th><a href="./Bugzilla/User/Setting/Skin.html">Bugzilla::User::Setting::Skin</a></th> <td>Object for a user preference setting for skins</td> </tr> +<tr class="even"> + <th><a href="./Bugzilla/User/Setting/Timezone.html">Bugzilla::User::Setting::Timezone</a></th> + <td>Object for a user preference setting for desired timezone</td> +</tr> <tr class="odd"> <th><a href="./Bugzilla/Util.html">Bugzilla::Util</a></th> <td>Generic utility functions for bugzilla</td> @@ -262,6 +278,10 @@ <th><a href="./Bugzilla/WebService/User.html">Bugzilla::WebService::User</a></th> <td>The User Account and Login API</td> </tr> +<tr class="even"> + <th><a href="./Bugzilla/WebService/Util.html">Bugzilla::WebService::Util</a></th> + <td></td> +</tr> </table></dd> </dl> diff --git a/docs/en/html/api/jobqueue.html b/docs/en/html/api/jobqueue.html new file mode 100644 index 0000000000000000000000000000000000000000..ec9a334ef5571b1bc2a6a0794fe664e7b1fa2ac3 --- /dev/null +++ b/docs/en/html/api/jobqueue.html @@ -0,0 +1,54 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> + <head> + <title> +jobqueue.pl</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <link rel="stylesheet" title="style" type="text/css" href="./../../../style.css" media="all" > + +</head> + <body id="pod"> +<p class="backlinktop"><b><a name="___top" href="index.html" accesskey="1" title="All Documents"><<</a></b></p> +<h1>jobqueue.pl</h1> +<div class='indexgroup'> +<ul class='indexList indexList1'> + <li class='indexItem indexItem1'><a href='#NAME'>NAME</a> + <li class='indexItem indexItem1'><a href='#SYNOPSIS'>SYNOPSIS</a> + <li class='indexItem indexItem1'><a href='#DESCRIPTION'>DESCRIPTION</a> +</ul> +</div> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="NAME" +>NAME</a></h1> + +<p>jobqueue.pl - Runs jobs in the background for Bugzilla.</p> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="SYNOPSIS" +>SYNOPSIS</a></h1> + +<pre class="code"> ./jobqueue.pl [ -f ] [ -d ] { start | stop | restart | check | help | version } + + -f Run in the foreground (don't detach) + -d Output a lot of debugging information + start Starts a new jobqueue daemon if there isn't one running already + stop Stops a running jobqueue daemon + restart Stops a running jobqueue if one is running, and then + starts a new one. + check Report the current status of the daemon. + help Display this usage info + version Display the version of jobqueue.pl</pre> + +<h1><a class='u' href='#___top' title='click to go to top of document' +name="DESCRIPTION" +>DESCRIPTION</a></h1> + +<p>See <a href="./Bugzilla/JobQueue.html" class="podlinkpod" +>Bugzilla::JobQueue</a> and <a href="./Bugzilla/JobQueue/Runner.html" class="podlinkpod" +>Bugzilla::JobQueue::Runner</a>.</p> +<p class="backlinkbottom"><b><a name="___bottom" href="index.html" title="All Documents"><<</a></b></p> + +<!-- end doc --> + +</body></html> diff --git a/docs/en/html/attachments.html b/docs/en/html/attachments.html index 7377de55117036e13a0168854afb5dfe17c64186..715ef29792c30df0a19ce04285a0c6d6febe2610 100644 --- a/docs/en/html/attachments.html +++ b/docs/en/html/attachments.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/bug_page.html b/docs/en/html/bug_page.html index 541c7c468705df42ad4cb42ff8046aed22a0d933..2759d57d40e120305ccb0d8922e661818b049453 100644 --- a/docs/en/html/bug_page.html +++ b/docs/en/html/bug_page.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -82,7 +84,7 @@ NAME="bug_page" >The core of Bugzilla is the screen which displays a particular bug. It's a good place to explain some Bugzilla concepts. <A -HREF="http://landfill.bugzilla.org/bugzilla-3.2-branch/show_bug.cgi?id=1" +HREF="http://landfill.bugzilla.org/bugzilla-tip/show_bug.cgi?id=1" TARGET="_top" > Bug 1 on Landfill</A > diff --git a/docs/en/html/bug_status_workflow.html b/docs/en/html/bug_status_workflow.html index f473f807b2d78510132c176622ea08748d940d2c..4af7c01ab6c09bee8b7a3d6da70251592dad24a7 100644 --- a/docs/en/html/bug_status_workflow.html +++ b/docs/en/html/bug_status_workflow.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/bugreports.html b/docs/en/html/bugreports.html index 0f7ae95bc0a6a728245ba1519b56a04ea960a8f4..e6cc457ba5e90b54edf45096c73ca22282012118 100644 --- a/docs/en/html/bugreports.html +++ b/docs/en/html/bugreports.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -90,7 +92,7 @@ NAME="fillingbugs" >Years of bug writing experience has been distilled for your reading pleasure into the <A -HREF="http://landfill.bugzilla.org/bugzilla-3.2-branch/page.cgi?id=bug-writing.html" +HREF="http://landfill.bugzilla.org/bugzilla-tip/page.cgi?id=bug-writing.html" TARGET="_top" > Bug Writing Guidelines</A >. @@ -142,7 +144,7 @@ VALIGN="TOP" > If you want to file a test bug to see how Bugzilla works, you can do it on one of our test installations on <A -HREF="http://landfill.bugzilla.org/bugzilla-3.2-branch/" +HREF="http://landfill.bugzilla.org/bugzilla-tip/" TARGET="_top" >Landfill</A >. diff --git a/docs/en/html/classifications.html b/docs/en/html/classifications.html index 2ce467c80e456fef531b0a98939a70e52f89404d..91779cf9a864b0f616af4e5f13e85ca47ab7f9e5 100644 --- a/docs/en/html/classifications.html +++ b/docs/en/html/classifications.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/cmdline-bugmail.html b/docs/en/html/cmdline-bugmail.html index 58538ed38d100e516bcf5cadb659ddbcfcfc4659..01ecb30f9450c551cfe2586e76598f2bd4b8ac27 100644 --- a/docs/en/html/cmdline-bugmail.html +++ b/docs/en/html/cmdline-bugmail.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/cmdline.html b/docs/en/html/cmdline.html index 6683d023f4e5760f89f4b4d032eae10e5a999c25..070f4ebc1f6a37e33666a68b9dd5a6ad1f7cd7a0 100644 --- a/docs/en/html/cmdline.html +++ b/docs/en/html/cmdline.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/components.html b/docs/en/html/components.html index 10c73f463336ed6c3f72ed62ea3e4cf807dc44ba..c8bcd6f3f69c8f4878d9292de026e0ab2ebc416e 100644 --- a/docs/en/html/components.html +++ b/docs/en/html/components.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/configuration.html b/docs/en/html/configuration.html index c9963706051942a7bbc749886aaef1b25a625320..90964083f54be35f5a44d672a8fc110b0ff28f2f 100644 --- a/docs/en/html/configuration.html +++ b/docs/en/html/configuration.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/conventions.html b/docs/en/html/conventions.html index 08655ed4238284b291442db9b7a4341e460b8cd6..5de95c853bcc0a2c903863029766331a28e6b946 100644 --- a/docs/en/html/conventions.html +++ b/docs/en/html/conventions.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/copyright.html b/docs/en/html/copyright.html index 82c42326e441fe2e27d411244b982d87d78f8905..4ba32b5806185f8a099768a1a822141f7cfca456 100644 --- a/docs/en/html/copyright.html +++ b/docs/en/html/copyright.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/credits.html b/docs/en/html/credits.html index 72f0fd3f37275a200521d43b3ded700717c888ce..25306e73724ce7cbcf3b550f165b260d7e9f4f65 100644 --- a/docs/en/html/credits.html +++ b/docs/en/html/credits.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/cust-change-permissions.html b/docs/en/html/cust-change-permissions.html index 65da85f10e92398b033b03f1f22a57bfa7abe2bc..c3c9407fb0d3dc2ad83c0e4f3a402a53eaeecbae 100644 --- a/docs/en/html/cust-change-permissions.html +++ b/docs/en/html/cust-change-permissions.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -208,7 +210,7 @@ COLOR="#000000" ><PRE CLASS="programlisting" > if ($field eq "qacontact") { - if (Bugzilla->user->groups("quality_assurance")) { + if (Bugzilla->user->in_group("quality_assurance")) { return 1; } else { diff --git a/docs/en/html/cust-hooks.html b/docs/en/html/cust-hooks.html index 3c565742226248e9f4a0842955e90d768ba644bd..a88e152079e18600cb0c5b1845ee945a6e30b613 100644 --- a/docs/en/html/cust-hooks.html +++ b/docs/en/html/cust-hooks.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -309,7 +311,7 @@ COLOR="#000000" CLASS="programlisting" >... [% ', <a href="editkeywords.cgi">keywords</a>' - IF user.groups.editkeywords %] + IF user.in_group('editkeywords') %] [% Hook.process("edit") %] ...</PRE ></FONT @@ -334,7 +336,7 @@ WIDTH="100%" COLOR="#000000" ><PRE CLASS="programlisting" ->...[% ', <a href="edit-projects.cgi">projects</a>' IF user.groups.projman_admins %]</PRE +>...[% ', <a href="edit-projects.cgi">projects</a>' IF user.in_group('projman_admins') %]</PRE ></FONT ></TD ></TR diff --git a/docs/en/html/cust-skins.html b/docs/en/html/cust-skins.html index 068c348eaec8d8fe5f31215e89b13295edd1588a..bdf084fb577b8f3d9d8dd3860ea359bb113238eb 100644 --- a/docs/en/html/cust-skins.html +++ b/docs/en/html/cust-skins.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/cust-templates.html b/docs/en/html/cust-templates.html index 76c4e0417dee6e2696acdeeca9c891c2e72c389f..140d84f99fdb14b859e66689cc542aca06a97054 100644 --- a/docs/en/html/cust-templates.html +++ b/docs/en/html/cust-templates.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/custom-fields.html b/docs/en/html/custom-fields.html index 9db10c445500d5b090e851add9d9cd523a98c808..26e14158cf9ff3c0c66d9fd224467ebb6ff93db0 100644 --- a/docs/en/html/custom-fields.html +++ b/docs/en/html/custom-fields.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/customization.html b/docs/en/html/customization.html index aa354bbb365b0f89536754fc98f6ca59a851d089..b8c85a053f683cc28c9a66d6facd7971e7cc3741 100644 --- a/docs/en/html/customization.html +++ b/docs/en/html/customization.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="PREVIOUS" @@ -35,7 +36,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/disclaimer.html b/docs/en/html/disclaimer.html index 995ab1fe28705c60661251f619971e1f09c44646..8e4abb102a5eed57aa520d1a4d9868480e58b3c4 100644 --- a/docs/en/html/disclaimer.html +++ b/docs/en/html/disclaimer.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/edit-values.html b/docs/en/html/edit-values.html index a62cc38e3514059559ff47a94fc604cf8dc4bbf2..d5f5ab7385739d09a317a06d42febd333d7e4a85 100644 --- a/docs/en/html/edit-values.html +++ b/docs/en/html/edit-values.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/extraconfig.html b/docs/en/html/extraconfig.html index 38f5d679673a3a1308b99a30fd7b03876519a237..362c83e39d0de0d79afc07cfed919f53689e8892 100644 --- a/docs/en/html/extraconfig.html +++ b/docs/en/html/extraconfig.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/flags-overview.html b/docs/en/html/flags-overview.html index b50f0c4a7b1ff87f4947648cf21f2e7c88475341..7001a6a16956c7ef5f9498ddbe05fb18f008ad11 100644 --- a/docs/en/html/flags-overview.html +++ b/docs/en/html/flags-overview.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/flags.html b/docs/en/html/flags.html index 0a96df143bc64072578acabdab132ca77e890650..85e9ea271aed9f72e07aae110703dbb9fdbd334c 100644 --- a/docs/en/html/flags.html +++ b/docs/en/html/flags.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/general-advice.html b/docs/en/html/general-advice.html index ec1914af06278680d8e2bbc41287055eed392719..1394881816cdc7c835649b9a6f1723c555869dd7 100644 --- a/docs/en/html/general-advice.html +++ b/docs/en/html/general-advice.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/gfdl-0.html b/docs/en/html/gfdl-0.html index f447343c35bf695096d38489223b2c15e083848d..e20c3d6dc3559732613df9f4661bb35b95c43915 100644 --- a/docs/en/html/gfdl-0.html +++ b/docs/en/html/gfdl-0.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/gfdl-1.html b/docs/en/html/gfdl-1.html index 16c7d0fc7730070633fe5e28c02c76164ba0067d..acdea68041129144683a5c7e9c4f7445f85300fc 100644 --- a/docs/en/html/gfdl-1.html +++ b/docs/en/html/gfdl-1.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/gfdl-10.html b/docs/en/html/gfdl-10.html index 2b834fe3ab2052b98fc307774ab396460b96434a..dcc103b62072a650052e9a235d9791f50cd5b301 100644 --- a/docs/en/html/gfdl-10.html +++ b/docs/en/html/gfdl-10.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/gfdl-2.html b/docs/en/html/gfdl-2.html index 45beb10b7d3c5b0542f481ab9da1e0863a7263e5..6864569fa65db1e9842ab258913f0da53190d020 100644 --- a/docs/en/html/gfdl-2.html +++ b/docs/en/html/gfdl-2.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/gfdl-3.html b/docs/en/html/gfdl-3.html index d978216a561b0d0ace32db3a1c92422ec5a9cf17..c62aaefc1a8e4f75f25af36ab3b254cd7229fb19 100644 --- a/docs/en/html/gfdl-3.html +++ b/docs/en/html/gfdl-3.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/gfdl-4.html b/docs/en/html/gfdl-4.html index f603b56ebc577a004163e79893940d9e24db63e5..d53b653324d80d4507c5d6968744a2a4fa00e53c 100644 --- a/docs/en/html/gfdl-4.html +++ b/docs/en/html/gfdl-4.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/gfdl-5.html b/docs/en/html/gfdl-5.html index 30c4ec99eb1ecb61bdec3accb86ce093c4abb49a..1bcbadeff159373594627a9163b463ab3ee2da9e 100644 --- a/docs/en/html/gfdl-5.html +++ b/docs/en/html/gfdl-5.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/gfdl-6.html b/docs/en/html/gfdl-6.html index 16c2dcbe3e69651e351087c77a8bf8f31871e083..9642e094bc0f4083453646681a764fc0cde27961 100644 --- a/docs/en/html/gfdl-6.html +++ b/docs/en/html/gfdl-6.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/gfdl-7.html b/docs/en/html/gfdl-7.html index 8513fa9f13a96ad4212a56006fd4f6f7ad4f9831..1dc8e3e94189fbca07c4707160ecb3f935291913 100644 --- a/docs/en/html/gfdl-7.html +++ b/docs/en/html/gfdl-7.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/gfdl-8.html b/docs/en/html/gfdl-8.html index faf4a4e561cf59149151f5be95cd6db1af8f356a..fe8ea2d8d038d9006cd1b6af3bca307d2d7f9aee 100644 --- a/docs/en/html/gfdl-8.html +++ b/docs/en/html/gfdl-8.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/gfdl-9.html b/docs/en/html/gfdl-9.html index e580c21e1c8dcf7ed34b2eff5c2437b1ee0be10e..708547607edcdcb460e654964728ec6fe34ea6ec 100644 --- a/docs/en/html/gfdl-9.html +++ b/docs/en/html/gfdl-9.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/gfdl-howto.html b/docs/en/html/gfdl-howto.html index cffbf220ebea547cc9a55fd6da44b140343a1850..309c7b185106e798a9d5dd6413e1666a690dd781 100644 --- a/docs/en/html/gfdl-howto.html +++ b/docs/en/html/gfdl-howto.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -83,7 +85,7 @@ NAME="gfdl-howto" of the License in the document and put the following copyright and license notices just after the title page:</P ><A -NAME="AEN3567" +NAME="AEN3552" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" diff --git a/docs/en/html/gfdl.html b/docs/en/html/gfdl.html index 591d12338f10cf236fc8bee9e8159481e1545829..0a3cce735a109ef10ce603443a5fa01a66918052 100644 --- a/docs/en/html/gfdl.html +++ b/docs/en/html/gfdl.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="PREVIOUS" @@ -35,7 +36,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -146,7 +148,7 @@ HREF="gfdl-howto.html" ><P >Version 1.1, March 2000</P ><A -NAME="AEN3477" +NAME="AEN3462" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" diff --git a/docs/en/html/glossary.html b/docs/en/html/glossary.html index 42aac3c9822281f7cd07f6dfe56288352d945681..9fa4c1c186053f389b14b4fad03014fe5de8ed72 100644 --- a/docs/en/html/glossary.html +++ b/docs/en/html/glossary.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="PREVIOUS" @@ -32,7 +33,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -72,7 +74,7 @@ CLASS="glossdiv" ><H1 CLASS="glossdiv" ><A -NAME="AEN3572" +NAME="AEN3557" >0-9, high ascii</A ></H1 ><DL @@ -982,7 +984,7 @@ NAME="gloss-zarro" Terry had the following to say: </P ><A -NAME="AEN3817" +NAME="AEN3802" ></A ><TABLE BORDER="0" diff --git a/docs/en/html/groups.html b/docs/en/html/groups.html index bf502c68faf6438b8631179a5a3e12139f16dd46..bd191e81c1ec6abdfccb577cbb2b93f3c2436dbd 100644 --- a/docs/en/html/groups.html +++ b/docs/en/html/groups.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -506,7 +508,7 @@ CLASS="section" ><H2 CLASS="section" ><A -NAME="AEN2175" +NAME="AEN2165" >3.15.4. Assigning Group Controls to Products</A ></H2 ><P diff --git a/docs/en/html/hintsandtips.html b/docs/en/html/hintsandtips.html index 7f21b8fa2c40dc0cdfcbae287fdd36496ee98b87..efd36592f925be5eb381ffcaeb98062dec5a049e 100644 --- a/docs/en/html/hintsandtips.html +++ b/docs/en/html/hintsandtips.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -86,7 +88,7 @@ CLASS="section" ><H2 CLASS="section" ><A -NAME="AEN2705" +NAME="AEN2690" >5.8.1. Autolinkification</A ></H2 ><P diff --git a/docs/en/html/index.html b/docs/en/html/index.html index a84537334bb66dc9a1d93418d56d5c8e048a99e2..3b9e8b21e854c2797159845469d7b9d690552a34 100644 --- a/docs/en/html/index.html +++ b/docs/en/html/index.html @@ -2,7 +2,8 @@ <HTML ><HEAD ><TITLE ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TITLE ><META NAME="GENERATOR" @@ -46,7 +47,8 @@ CLASS="TITLEPAGE" CLASS="title" ><A NAME="AEN2" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</A ></H1 ><H3 @@ -54,7 +56,7 @@ CLASS="corpauthor" >The Bugzilla Team</H3 ><P CLASS="pubdate" ->2009-02-02<BR></P +>2009-01-05<BR></P ><DIV ><DIV CLASS="abstract" diff --git a/docs/en/html/install-perlmodules-manual.html b/docs/en/html/install-perlmodules-manual.html index ef1c9a6a232650178d71593bdfa57119afc6c956..75de63c125923e8b829ee199040ce05fe715aa34 100644 --- a/docs/en/html/install-perlmodules-manual.html +++ b/docs/en/html/install-perlmodules-manual.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="PREVIOUS" @@ -35,7 +36,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/installation.html b/docs/en/html/installation.html index 3a014446246c834cd532e41c373b7706641e0641..20bdd8678d8d4e9f62faaeac7014ce5a5d1ac97f 100644 --- a/docs/en/html/installation.html +++ b/docs/en/html/installation.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/installing-bugzilla.html b/docs/en/html/installing-bugzilla.html index 306af6c582c0a928e5b9c7488157e4ab843770ea..ecda006ba54541ed4eb65813f15ed29046955f99 100644 --- a/docs/en/html/installing-bugzilla.html +++ b/docs/en/html/installing-bugzilla.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="PREVIOUS" @@ -35,7 +36,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/integration.html b/docs/en/html/integration.html index bdee60ba9df85336adf089ed7b729a1b213fd9bd..8f7bba54e1906696dd8d6e299c52aae60f770c06 100644 --- a/docs/en/html/integration.html +++ b/docs/en/html/integration.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/keywords.html b/docs/en/html/keywords.html index 6b731773485415c2f9945c9791ad49108f7ea839..e83282cca01d11f7632876f55a003fa5d9602575 100644 --- a/docs/en/html/keywords.html +++ b/docs/en/html/keywords.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/lifecycle.html b/docs/en/html/lifecycle.html index 3a0bd6533255436f4c8159215e711058bef68a99..2b1c3c593bacc03e5e7f03ccacdc6b03f3ca1231 100644 --- a/docs/en/html/lifecycle.html +++ b/docs/en/html/lifecycle.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/milestones.html b/docs/en/html/milestones.html index 732303e5370a432d98d5d794c3f2f18705f88137..03a79df2b552cf07f756a227dba5cbf381832514 100644 --- a/docs/en/html/milestones.html +++ b/docs/en/html/milestones.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/modules-manual-download.html b/docs/en/html/modules-manual-download.html index 4d3747d5a55d56603ec854d9e7270f1e4c588991..7f8e1b66097efe39c2c8b2e4ab75f2284789c98e 100644 --- a/docs/en/html/modules-manual-download.html +++ b/docs/en/html/modules-manual-download.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/modules-manual-instructions.html b/docs/en/html/modules-manual-instructions.html index e47e6c37b8a869c6b4bda042ba6331e89c1a0e5d..72c2b5b825d262a79b90422a1242c9e176f08ff6 100644 --- a/docs/en/html/modules-manual-instructions.html +++ b/docs/en/html/modules-manual-instructions.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/modules-manual-optional.html b/docs/en/html/modules-manual-optional.html index 93d3295d2796093c6e36de00661acec03c53e96a..05fb463e7d50a0224713531b53cba517cbd00905 100644 --- a/docs/en/html/modules-manual-optional.html +++ b/docs/en/html/modules-manual-optional.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/multiple-bz-dbs.html b/docs/en/html/multiple-bz-dbs.html index 641ac32fa6b657f76de935e130a00c274e33cc6e..ba50208a9f713d8a8d7c2b8bbb0810e2ec49dbcf 100644 --- a/docs/en/html/multiple-bz-dbs.html +++ b/docs/en/html/multiple-bz-dbs.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/myaccount.html b/docs/en/html/myaccount.html index 1771ae7446ab3609ac5e7039df2cde920a6c802b..3bdadf76d4e4a6868e7c6b12937d6614567dc5a0 100644 --- a/docs/en/html/myaccount.html +++ b/docs/en/html/myaccount.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -84,9 +86,9 @@ NAME="myaccount" Bugzilla for the URL you should use to access it. If you're test-driving Bugzilla, use this URL: <A -HREF="http://landfill.bugzilla.org/bugzilla-3.2-branch/" +HREF="http://landfill.bugzilla.org/bugzilla-tip/" TARGET="_top" ->http://landfill.bugzilla.org/bugzilla-3.2-branch/</A +>http://landfill.bugzilla.org/bugzilla-tip/</A >. </P ><P diff --git a/docs/en/html/newversions.html b/docs/en/html/newversions.html index a02bc207e68df45f9448c0ee47d6b62afb234d71..fe24676b7933fa15b9ca5ada2d88e964d9fbb58d 100644 --- a/docs/en/html/newversions.html +++ b/docs/en/html/newversions.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -79,8 +81,10 @@ NAME="newversions" >1.3. New Versions</A ></H1 ><P -> This is the 3.2.1 version of The Bugzilla Guide. It is so named +> This is the 3.3.1 version of The Bugzilla Guide. It is so named to match the current version of Bugzilla. + This version of the guide, like its associated Bugzilla version, is a + development version. </P ><P > The latest version of this guide can always be found at <A diff --git a/docs/en/html/nonroot.html b/docs/en/html/nonroot.html index 3a4b40c7c1b31dfcb014ddcd867412247d1a0e53..e2b53374814a22292574ddce3bf4d9860bcd5f95 100644 --- a/docs/en/html/nonroot.html +++ b/docs/en/html/nonroot.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/os-specific.html b/docs/en/html/os-specific.html index af2c44b3c9bee056b5f109681a0230632e7ca564..c7dbf8e76b2633a8c312f107b97394ccf1f07424 100644 --- a/docs/en/html/os-specific.html +++ b/docs/en/html/os-specific.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -108,7 +110,7 @@ NAME="os-win32" Bugzilla running on Windows, you will need to make the following adjustments. A detailed step-by-step <A -HREF="https://wiki.mozilla.org/Bugzilla:Win32Install" +HREF="http://www.bugzilla.org/docs/win32install.html" TARGET="_top" > installation guide for Windows</A > is also available diff --git a/docs/en/html/parameters.html b/docs/en/html/parameters.html index 28aec7fbe8a9a98d34a5a7c4ddd55b377a15a0b6..eb499556953de76b1151560dd8dd6a5d465adc67 100644 --- a/docs/en/html/parameters.html +++ b/docs/en/html/parameters.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -245,14 +247,6 @@ CLASS="filename" </P ></DD ><DT ->timezone</DT -><DD -><P -> Timezone of server. The timezone is displayed with timestamps. If - this parameter is left blank, the timezone is not displayed. - </P -></DD -><DT >utf8</DT ><DD ><P @@ -414,34 +408,10 @@ NAME="param-admin-policies" >3.1.2. Administrative Policies</A ></H2 ><P -> This page contains parameters for basic administrative functions. - Options include whether to allow the deletion of bugs and users, whether - to allow users to change their email address, and whether to allow - user watching (one user receiving all notifications of a selected - other user). - </P -><P -></P -><DIV -CLASS="variablelist" -><DL -><DT ->supportwatchers</DT -><DD -><P -> Turning on this option allows users to ask to receive copies - of bug mail sent to another user. Watching a user with - different group permissions is not a way to 'get around' the - system; copied emails are still subject to the normal groupset - permissions of a bug, and <SPAN -CLASS="QUOTE" ->"watchers"</SPAN -> will only be - copied on emails from bugs they would normally be allowed to view. - </P -></DD -></DL -></DIV +> This page contains parameters for basic administrative functions. + Options include whether to allow the deletion of bugs and users, + and whether to allow users to change their email address. + </P ></DIV ><DIV CLASS="section" diff --git a/docs/en/html/paranoid-security.html b/docs/en/html/paranoid-security.html index 3c4eacb5cb6bcbd51c2d2224b5f4dfad99dc3bf8..a499d8195f3e2d81c8e040c830f0a8277dc99de2 100644 --- a/docs/en/html/paranoid-security.html +++ b/docs/en/html/paranoid-security.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/patches.html b/docs/en/html/patches.html index 875b8629be7c77dbc944b2829a6a58fe247ea799..317ab0ae01fceb449ed81d98146b3f80dc66ad5f 100644 --- a/docs/en/html/patches.html +++ b/docs/en/html/patches.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="PREVIOUS" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/products.html b/docs/en/html/products.html index f7a50f18d8c11a24d9d5c1f3196dfb63285e103c..d9ce0d0ea5fb10f5b93009b4ef76da900b4fef29 100644 --- a/docs/en/html/products.html +++ b/docs/en/html/products.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/query.html b/docs/en/html/query.html index 28b8bf9f056f3ee9c9eea3b41ff862172e91043c..578d7c6ab60f5f462a5d47907007b9827a0675c8 100644 --- a/docs/en/html/query.html +++ b/docs/en/html/query.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -83,9 +85,9 @@ NAME="query" any bug report, comment, or patch currently in the Bugzilla system. You can play with it here: <A -HREF="http://landfill.bugzilla.org/bugzilla-3.2-branch/query.cgi" +HREF="http://landfill.bugzilla.org/bugzilla-tip/query.cgi" TARGET="_top" ->http://landfill.bugzilla.org/bugzilla-3.2-branch/query.cgi</A +>http://landfill.bugzilla.org/bugzilla-tip/query.cgi</A >.</P ><P >The Search page has controls for selecting different possible @@ -207,7 +209,7 @@ NAME="negation" > At first glance, negation seems redundant. Rather than searching for <A -NAME="AEN2552" +NAME="AEN2537" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -218,7 +220,7 @@ CLASS="BLOCKQUOTE" > one could search for <A -NAME="AEN2554" +NAME="AEN2539" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -229,7 +231,7 @@ CLASS="BLOCKQUOTE" > However, the search <A -NAME="AEN2556" +NAME="AEN2541" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -241,7 +243,7 @@ CLASS="BLOCKQUOTE" would find every bug where anyone on the CC list did not contain "@mozilla.org" while <A -NAME="AEN2558" +NAME="AEN2543" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -255,7 +257,7 @@ CLASS="BLOCKQUOTE" complex expressions to be built using terms OR'd together and then negated. Negation permits queries such as <A -NAME="AEN2560" +NAME="AEN2545" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -268,7 +270,7 @@ CLASS="BLOCKQUOTE" to find bugs that are neither in the update product or in the documentation component or <A -NAME="AEN2562" +NAME="AEN2547" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -296,7 +298,7 @@ NAME="multiplecharts" a bug that has two different people cc'd on it, then you need to use two boolean charts. A search for <A -NAME="AEN2567" +NAME="AEN2552" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -311,7 +313,7 @@ CLASS="BLOCKQUOTE" containing "foo@" and someone else containing "@mozilla.org", then you would need two boolean charts. <A -NAME="AEN2569" +NAME="AEN2554" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" diff --git a/docs/en/html/quips.html b/docs/en/html/quips.html index 9ff5fd88f22e1a4d8fce7940c8d37da0a771a931..dbfa6b11ccba63c9efadb8d4fae72b36e0de3812 100644 --- a/docs/en/html/quips.html +++ b/docs/en/html/quips.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/reporting.html b/docs/en/html/reporting.html index 776571c0bfa55d631bdc140547c39dea0d1c3b79..28b773f5510ff0635e734a4b952560d9e6e879c8 100644 --- a/docs/en/html/reporting.html +++ b/docs/en/html/reporting.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -193,7 +195,7 @@ CLASS="section" ><H3 CLASS="section" ><A -NAME="AEN2902" +NAME="AEN2887" >5.11.2.1. Creating Charts</A ></H3 ><P diff --git a/docs/en/html/sanitycheck.html b/docs/en/html/sanitycheck.html index fb3396b7553b3d7adb94efb8baa5d4dd059e2c0b..b4e46f73826b4653dc6bf3ba4d8e4b71a02b5c8f 100644 --- a/docs/en/html/sanitycheck.html +++ b/docs/en/html/sanitycheck.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/security-bugzilla.html b/docs/en/html/security-bugzilla.html index 5915e9baa553be7292fbbb39d707155b02b5c050..c083f9a6dbdf59bae01ed6337e6d592d174be111 100644 --- a/docs/en/html/security-bugzilla.html +++ b/docs/en/html/security-bugzilla.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/security-mysql.html b/docs/en/html/security-mysql.html index 89a70db7f17ac5de98cf39d222636c3ca5ab785b..4d429e7b70c19b540ebec944d74bf7fa73b0ae58 100644 --- a/docs/en/html/security-mysql.html +++ b/docs/en/html/security-mysql.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/security-os.html b/docs/en/html/security-os.html index fab95d530921d0834218c965254b4927f568685a..808dba3c4c702f24a5b31b5b1d62ec245476c5ed 100644 --- a/docs/en/html/security-os.html +++ b/docs/en/html/security-os.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/security-webserver.html b/docs/en/html/security-webserver.html index bc6e9fdfe5ba91a03276e13b37a3c86b278df30f..1101c99d8be4290c90cb44efffd571bb80bd8aa6 100644 --- a/docs/en/html/security-webserver.html +++ b/docs/en/html/security-webserver.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -179,15 +181,6 @@ COMPACT="COMPACT" ><P >Block everything</P ></LI -><LI -><P ->But allow: - <TT -CLASS="filename" ->duplicates.rdf</TT -> - </P -></LI ></UL ></LI ><LI diff --git a/docs/en/html/security.html b/docs/en/html/security.html index 84b04d9524552c8c72b72d0aa8c9d01dc832d434..a9fcb3ea883521fbca4a6ed30f47306f0c450547 100644 --- a/docs/en/html/security.html +++ b/docs/en/html/security.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="PREVIOUS" @@ -35,7 +36,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/timetracking.html b/docs/en/html/timetracking.html index ad0eb068672f5fd9f273c37f965b00a7c5eefb6c..5d275ed9b93cff6c36d4fe42992d67364dbf255f 100644 --- a/docs/en/html/timetracking.html +++ b/docs/en/html/timetracking.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/trbl-dbdsponge.html b/docs/en/html/trbl-dbdsponge.html index 56cf30c917213c43d1e9ebefafaa74d8ab6433ea..0d35fb28fefa6c5a287c36b24ed41349923ca6c5 100644 --- a/docs/en/html/trbl-dbdsponge.html +++ b/docs/en/html/trbl-dbdsponge.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -39,7 +40,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/trbl-index.html b/docs/en/html/trbl-index.html index a5f9336637302cd3c04de785bc475cb62d0f40a4..212c8c585059198c1f936388ceb5d3eb63cf2ed4 100644 --- a/docs/en/html/trbl-index.html +++ b/docs/en/html/trbl-index.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -41,7 +42,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/trbl-passwd-encryption.html b/docs/en/html/trbl-passwd-encryption.html index e69afc956a2c7a9199f7ce74bc12b7dd3d698006..7046a5c6f244e05cec59276a5fc3df10c56fd36b 100644 --- a/docs/en/html/trbl-passwd-encryption.html +++ b/docs/en/html/trbl-passwd-encryption.html @@ -9,7 +9,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -40,7 +41,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/trbl-perlmodule.html b/docs/en/html/trbl-perlmodule.html index a19a71182fccfe0fe3bc97f154ac56e081ccab1e..a738b663027c3188c6466ed020bf574f3cc10eb7 100644 --- a/docs/en/html/trbl-perlmodule.html +++ b/docs/en/html/trbl-perlmodule.html @@ -8,7 +8,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -39,7 +40,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/trbl-relogin-everyone.html b/docs/en/html/trbl-relogin-everyone.html index b7d1121133e7241bc52548c266743a358b38cdad..a9b09546380f643771ebe40c47f814b583ac5a13 100644 --- a/docs/en/html/trbl-relogin-everyone.html +++ b/docs/en/html/trbl-relogin-everyone.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -120,7 +122,7 @@ NAME="trbl-relogin-everyone-share" >Example A-1. Examples of urlbase/cookiepath pairs for sharing login cookies</B ></P ><A -NAME="AEN3297" +NAME="AEN3282" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -161,7 +163,7 @@ NAME="trbl-relogin-everyone-restrict" >Example A-2. Examples of urlbase/cookiepath pairs to restrict the login cookie</B ></P ><A -NAME="AEN3304" +NAME="AEN3289" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" diff --git a/docs/en/html/trbl-relogin-some.html b/docs/en/html/trbl-relogin-some.html index 8953642f37c96f897a0fb58ab1cd8433cb0ad2c6..6455efb412af583fc8e90af2e43ded72e303ce16 100644 --- a/docs/en/html/trbl-relogin-some.html +++ b/docs/en/html/trbl-relogin-some.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/trbl-testserver.html b/docs/en/html/trbl-testserver.html index 37ae76149dddafbed9dc4bf0ac0d0207ea7b4288..770654e370a919616488d10173b0048ce99db1fe 100644 --- a/docs/en/html/trbl-testserver.html +++ b/docs/en/html/trbl-testserver.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -39,7 +40,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/troubleshooting.html b/docs/en/html/troubleshooting.html index b59744fcf7dd8c266b92e70a832ce6b86ff9b912..b0ee12accd323783d52c591ca2e9675cc9260d86 100644 --- a/docs/en/html/troubleshooting.html +++ b/docs/en/html/troubleshooting.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="PREVIOUS" @@ -35,7 +36,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/upgrade.html b/docs/en/html/upgrade.html index a605bffe6a47421c2258098dbffc6b09a237a02b..33c644c5b831854f253e6fa5d16328fb93e8fada 100644 --- a/docs/en/html/upgrade.html +++ b/docs/en/html/upgrade.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/useradmin.html b/docs/en/html/useradmin.html index 32e3c069aa96e3b03361b306e8e8c066bede3150..2e2b9b7389a383ae7c2071cc08fcc0a4bc6cb02a 100644 --- a/docs/en/html/useradmin.html +++ b/docs/en/html/useradmin.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/userpreferences.html b/docs/en/html/userpreferences.html index 5bbd1963873b847d3b7f7d6895b5a90a42a47983..682bdc63f6a41a9775c3ff92215ff65ad314aae3 100644 --- a/docs/en/html/userpreferences.html +++ b/docs/en/html/userpreferences.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/using-intro.html b/docs/en/html/using-intro.html index 2839cb73b132cc62fa71fea67a453ec050a6ee98..ad03824feb84c2074543d1de0d1b17536a6886e5 100644 --- a/docs/en/html/using-intro.html +++ b/docs/en/html/using-intro.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/using.html b/docs/en/html/using.html index e917eefe5b294a4625ef97c6bb6a7fa34db7a810..f5212071bbc24b54de3a2de6767a184041566cfe 100644 --- a/docs/en/html/using.html +++ b/docs/en/html/using.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="PREVIOUS" @@ -35,7 +36,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -168,7 +170,7 @@ HREF="hintsandtips.html" ><DL ><DT >5.8.1. <A -HREF="hintsandtips.html#AEN2705" +HREF="hintsandtips.html#AEN2690" >Autolinkification</A ></DT ><DT @@ -275,7 +277,7 @@ HREF="whining.html#whining-query" ></DT ><DT >5.13.4. <A -HREF="whining.html#AEN2962" +HREF="whining.html#AEN2947" >Saving Your Changes</A ></DT ></DL diff --git a/docs/en/html/versions.html b/docs/en/html/versions.html index 27b8a89b91e5cb2bd7a329e91e1342fa8afbc4e2..8450238f1dd44a3c5785c8b981ef00e6f453f06b 100644 --- a/docs/en/html/versions.html +++ b/docs/en/html/versions.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/voting.html b/docs/en/html/voting.html index c481bb9fd2f8b2636e63f57870f270f12fa106a8..219e5a62fbb37803b26c217b2c3639b7ba64882c 100644 --- a/docs/en/html/voting.html +++ b/docs/en/html/voting.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR diff --git a/docs/en/html/whining.html b/docs/en/html/whining.html index f6784b6aa1416b86b3dbc1b7c64ed8267d616bcd..4fc2ae729ac91bad0a820e3f7a4556780c5c2120 100644 --- a/docs/en/html/whining.html +++ b/docs/en/html/whining.html @@ -7,7 +7,8 @@ NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" -TITLE="The Bugzilla Guide - 3.2.1 +TITLE="The Bugzilla Guide - 3.3.1 + Development Release" HREF="index.html"><LINK REL="UP" @@ -38,7 +39,8 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->The Bugzilla Guide - 3.2.1 +>The Bugzilla Guide - 3.3.1 + Development Release</TH ></TR ><TR @@ -423,7 +425,7 @@ CLASS="section" ><H2 CLASS="section" ><A -NAME="AEN2962" +NAME="AEN2947" >5.13.4. Saving Your Changes</A ></H2 ><P diff --git a/docs/en/images/CVS/Entries b/docs/en/images/CVS/Entries index 0d91b39413fa23bd478d60bcd8447636ed0d2884..6b58b4c7efe2bb477f442aeba2993762559bffce 100644 --- a/docs/en/images/CVS/Entries +++ b/docs/en/images/CVS/Entries @@ -1,7 +1,7 @@ -/bzLifecycle.png/1.4/Fri Apr 4 06:48:16 2008/-kb/TBUGZILLA-3_2_1 -/bzLifecycle.xml/1.3/Fri Apr 4 06:48:17 2008//TBUGZILLA-3_2_1 -/caution.gif/1.2/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_2_1 -/note.gif/1.1/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_2_1 -/tip.gif/1.2/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_2_1 -/warning.gif/1.2/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_2_1 +/bzLifecycle.png/1.4/Fri Apr 4 06:48:16 2008/-kb/TBUGZILLA-3_3_1 +/bzLifecycle.xml/1.3/Fri Apr 4 06:48:17 2008//TBUGZILLA-3_3_1 +/caution.gif/1.2/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_3_1 +/note.gif/1.1/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_3_1 +/tip.gif/1.2/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_3_1 +/warning.gif/1.2/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_3_1 D/callouts//// diff --git a/docs/en/images/CVS/Tag b/docs/en/images/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/docs/en/images/CVS/Tag +++ b/docs/en/images/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/docs/en/images/callouts/CVS/Entries b/docs/en/images/callouts/CVS/Entries index bca6e48ba5fb24d8b277719bed864fa04c4ac441..bdc9f75226e145baf3a354b7a847ec7cf77bffd6 100644 --- a/docs/en/images/callouts/CVS/Entries +++ b/docs/en/images/callouts/CVS/Entries @@ -1,4 +1,4 @@ -/1.gif/1.1/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_2_1 -/2.gif/1.1/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_2_1 -/3.gif/1.1/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_2_1 +/1.gif/1.1/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_3_1 +/2.gif/1.1/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_3_1 +/3.gif/1.1/Fri Apr 4 06:48:17 2008/-kb/TBUGZILLA-3_3_1 D diff --git a/docs/en/images/callouts/CVS/Tag b/docs/en/images/callouts/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/docs/en/images/callouts/CVS/Tag +++ b/docs/en/images/callouts/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/docs/en/pdf/Bugzilla-Guide.pdf b/docs/en/pdf/Bugzilla-Guide.pdf index f15be0e27fd432354e4d155115670791031b9532..50f1678c72cc2eb74c22369d0b6f77a326d0a17f 100644 --- a/docs/en/pdf/Bugzilla-Guide.pdf +++ b/docs/en/pdf/Bugzilla-Guide.pdf @@ -3,7 +3,7 @@ << /S /GoTo /D (1.0) >> endobj 4 0 obj -(The Bugzilla Guide 3.2.1 Release) +(The Bugzilla Guide 3.3.1 Development Release) endobj 5 0 obj << /S /GoTo /D (2.0) >> @@ -1923,12 +1923,12 @@ endobj << /S /GoTo /D [1282 0 R /Fit ] >> endobj 1284 0 obj << -/Length 185 +/Length 217 /Filter /FlateDecode >> stream -xڍP� -�@��[&ŭ���l X�ub�B��Ư�L�X����,3��2��K���2����HmE�qْ+䋪�x���O�e�k`�>B:i�M�523��N��(��^���e�����q���4��<�}ڌ �ɚ1�--���~����:wחS�J��JL�@.���>�Jendstream +xڍP�N1��+<� 1����Z*uD�É�R�*A;���B�ó������C��*8!��26���4�H\ȞB=~a��9��i�����CM�_A�� +j-23��S��JgXc�:�/�a��ks:��� (H�.��\���X���%EF��+���P��2)nQH�ɻ)��l}���\^�_yrl[�qrj����Kw.b���_��Uendstream endobj 1282 0 obj << /Type /Page @@ -1947,18 +1947,20 @@ endobj /D [1282 0 R /XYZ 71.731 718.3063 null] >> endobj 2 0 obj << -/D [1282 0 R /XYZ 505.3187 700.222 null] +/D [1282 0 R /XYZ 351.7094 667.9949 null] >> endobj 1283 0 obj << /Font << /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1294 0 obj << -/Length 514 +/Length 525 /Filter /FlateDecode >> stream -xڍTM��0��Wp4R1� ��j�RO��[ۃ�C�#�M����l��C��o�of�hD�QAq���f<gQ=Hԁ��@Cȑs�r�a�7ɳ���(�'y��7�E���e"%ΎYU�OT�*NXQ���{�Q���:4���%�So�P��Fſ���@��2,rz��OW8�����$�����;�r,�ї�4�W�e���0xo�.E~M�8G~͑�2�,�:��J;,��������O�=Ō��K����a��\�U��h��iq1E)-Q������C=J��`TR���yP��ۻ�qi�fi�%�I�����r�oO�� ��t�+�r�Ƭ*�^0�un�j�1�c���)���e� �>��E� �5�4c����� ��K��Uk���c�#��66�*�j�a��}��e��K셺��SH��:7�y�S>�mf��xq��J�݇3�Er�[{�����%�q� �ƹ_�j6)�M��������X�r������endstream +xڍT�n�0��)��HʤĎA����B[ہ�(Y�I�p��|ɱ��^�{x�S� �?����=��Q�4�%�u=�p����bf/_x3Z��W�%٭�C���"�3뫻k$T�b_�I���Q�)+����8�p{^�6:�p��8��2���q9Mr6�%G)�L��?m��&,J2L �x�#.�E1�5n";8-�brB�)��#��ӗ�0�(�@%���+����X٠-�1N +��h�viV��0�2_���۲�p�CJX��(Ѽs������SK��� �hEqzx/}������#�I Zf�(t���ȭ��6.]h�^:sN1B�~��0�r��`O6��6ױ���9vv�z����q�[%�O +���2���njjY7A� ۧ����ע�����FVr�Cmk`ͪ�_2��œJ��9�e�N����lވH�u��Cօ<����������A/.%�9�?���1��y~>�S;N�5���m�:�d웲{���v�d��0����� ^%Aendstream endobj 1293 0 obj << /Type /Page @@ -3200,7 +3202,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1446 0 obj << -/Length 57333 +/Length 57331 /Filter /FlateDecode >> stream @@ -3514,46 +3516,45 @@ E E� �E��/�P��p���T(�u��x�{*�:\E<�=�x>�x_R����*��P��p���T(�u��x�{*�����5�x�"�� E�WpO�"^�����B��g/�K*�:\E<�=�x�"�� -E�WpO�"^��"^ƗT(�u��x�{*�:\E<�=�x�%����"އ��e��>ѷ����s��i����~~\�;���ǯ�̧��=����S��7�7�����m�b���}sx��߾�?}k�������OOO�O��џsE�����~���_���i��7o^�P�}�%n>�@��pO�7��=n^���|�Z���lO�7�%>n^ ��x�Zڷ�W�-3v�n^�^R��k���W�=5����h��7�%=n^���|���y|I�7��}�y%�2��kI��W�=5���y%�S��k����%5���y%�S��k���W�=5���y%�S��k����%5���y%�S��k���W�=5���y%�S��k����%5���y%�S��k���W�=5���y%�S��k����%5���y%�S��k���W�=5���y%�S��k����%5���y%�S��k���W�=5���y%�S��k�ϛ�������+រo^K|ܼ������+រo^;\7��/������+រo^K|ܼ������+រo^;\7��/�����Geo�[�u�W�+y�B�,����03�I#̋bWln�ǖd���Tq��ۼ���&�Gk�:W�"����:�J��g^�|�y%yS�3�R�μ����W'ϙW���̫��3�$o�|�U�יW�7u<�*�og^I]��̫S��+��|�U�יW�7u:�*��ϼ��=q>�*���+��:�yu�y�AϼJ�ۙWRs>�*���+��:�y��u��Mϼ:�:� -�f�g^�z�y%wS�3�R�μ����W�~;�J�b�g^�:g^�}P�3�R�μ����W)_g^I���̫��3�$o�|���s��u>�*���+ɛ:�y��u��M�ϼJ�:�J��g^�<g^A~P�3�R�μ����W)_g^I���̫��3�$o�|�U����Y~R�3�R�μ����W)_g^I���̫��3�$o�|���s��u>�*���+ɛ:�y��u��M�ϼJ�:�J��g^�<g^A~P�3�R�μ����W)_g^I�����|�R�y�z������g^�;:μ>ח��_._��g^�U���z����?���?����-����_ν�ǻ���w���uO�.���x�D��;�u�n����G74����g��u���5�O���R��I��y�_���?ɛ:�;y�A~P�~)_�$o�<�/�k���M���| ����g��u���5�O���R��I��y�_���?ɛ:�+����'u���5�O���R��I��y�_���?ɛ:�;y�A~P�~�~�'u1�~�N��B��䉑@��9FR��H���#9ub$p7b$'O���1�s� �ńI�w�4�*�HN� �M�c$�^1�� 1�S'FwS!FR�#��:�Hνb$Pb$�N��B��䉑@�T���|�H���B��䉑@�T���<1ț +E�WpO�"^��"^ƗT(�u��x�{*�:\E<�=�x�%����"އ��e��>ѷ����s��i����~~\�;���ǯ�̧��=����S��7�7�����m�b���}sx��߾�?}k�������OOO�O��џsE�����~���_���i��7o^�P�}�%n>�@��pO�7��=n^���|�Z���lO�7�%>n^ ��x�Zڷ�W�-3v�n^�^R��k���W�=5����h��7�%=n^���|���y|I�7��}�y%�2��kI��W�=5���y%�S��k����%5���y%�S��k���W�=5���y%�S��k����%5���y%�S��k���W�=5���y%�S��k����%5���y%�S��k���W�=5���y%�S��k����%5���y%�S��k���W�=5���y%�S��k����%5���y%�S��k���W�=5���y%�S��k�ϛ�������+រo^K|ܼ������+រo^;\7��/������+រo^K|ܼ������+រo^;\7��/�����Geo�[�u�W�+y�B�,����03�I#̋bWln�ǖd���T��m�ۼ���&�Gk�:W�"����:�J��g^�|�y%yS�3�R�μ����W'ϙW���̫��3�$o�|�U�יW�7u<�*��3��.�|�թs��u>�*���+ɛ:�y���g^I��8�y��u��M�ϼ:yμ����g^��z��ŜϼJ�:�J��g^�|�y%yS�3�νμ����W�^g^����̫��3�$o�x�U��g^I]��̫S��+��|�U�יW�7u>�*���+ɛ:�y��u��M�ϼ:yμ����g^�|�y%yS�3�R�μ����W)_g^I���̫���+��|�U�יW�7u>�*���+ɛ:�y��u��M�ϼ*�>�:�O�|�U�יW�7u>�*���+ɛ:�y��u��M�ϼ:yμ����g^�|�y%yS�3�R�μ����W)_g^I���̫���+��|�U�יW�7u>�*���+ɛ:�y��]�3�tC��ޟ,�}�u�����#�y}�\����|�u]�ϼ��O����_�c^?���������ܻ������V{�n����;������|��ݭ���膆~�7u�w�������R��I��y�_���?ɛ:�K��'yS�~'��?��<�/�k���M���| �����~�7u�w�������R��I��y�_���?ɛ:�K��'yS�~%�������R��I��y�_���?ɛ:�K��'yS�~'��?��8�/��~Rs����H�n*�HN� �M�c$�N�4�� 1�S'FwS!Fr��H o�#9���@]L���z�H���B��䉑@��9Fr�#���#9ub$p7b$%�1�,?�s���+Fu1!Fr��H�n*�HN� �M�I�w�4�*�HN� �M���#���#9yb$�7b$%�1�,?�#9yb$�7b$'O��B��䉑@�T���|�H���B��䉑@�T���<1ț 1��'FyS!FR�#�� -1��'FyS!Fr��H o*�HN� �M�I�w�4�*�HN� �M���#���#9yb$�7b$%�1�,?�#9yb$�7b$'O��B��䉑@�T���|�H���B��䉑@�T���<1ț -1��'FyS!F2�i��T���<1ț -1��'FyS!Fr��H o*�HJ�c�Y~P!Fr��H o*�HN� �M���#���#)���f�A���#���#9yb$�7b$'O��B���;F��b$'O��B��䉑@��9Fr�#���#)���f�A���#���c���o1��!Fr��H�n*�HJ�c�Y~P�ɹW��bB��ԉ���T���<1ț:�HʝiV7b$�N��B��䉑@��9Fr�#���#)���f�A���#���#9yb$�7b$'O��B���;F��b$'O��B��䉑@�T���<1ț -1���i�T���<1ț -1��'FyS!Fr��H o*�HF~#�� -1��'FyS!Fr��H o*�HN� �M�I�w�4�*�HN� �M���#���#9yb$�7b$%�1�,?�#9yb$�7b$'O��B�4t36F�Z1һ�g���;��c�������H�#=`��˟����������:�������=�O�����2i�c�?��X����b�M�bA�w�0�*N�b�M�b��S,���P,8y��7�#�*F�I�b��S,���P,8y��7�'O���B���X��u.�{�.&N�b�M�b��S,���s���)fu3�Xp��n*N�b�M���^��� łR�bavT(�<�ț:ν�P��N���B���X��u.�{�.&N�b�M�b��S,���P,(�.f�A�b��S,���P,8y��7�'O���B���X���'O���B���)@�T(�<�ț -ł��ba�T(�<�ț -ł��X�yS�Xp� o*J���Y~P�Xp� o*N�b�M�b��S,���P,(�.f�A�b��S,���P,8y��7�'O���B�`�W��(?�P,8y��7�'O���B���)@�T(�|���B���)@�T(�<�ț +1��'FyS!Fr��H o*�HN� �M�I�w�4�*�HN� �M���#���#9yb$�7b$##�� +1��'FyS!Fr��H o*�HN� �M�I�w�4�*�HN� �M���#���#9yb$�7b$%�1�,?�#9yb$�7b$'O��B��䉑@�T���|�H���B��䉑@�T���<1ț:�Hνb$Pb$��1��>�#9yb$�7u����#��=b$'N��B���;F��u���{�H�.&�HN� �M���#���s��܉�fu3!Fr��H�n*�HN� �M�c$�^1�� 1�R�ivT���<1ț +1��'FyS!Fr��H o*�HJ�c�Y~P!Fr��H o*�HN� �M���#���#)���f�A���#���#9yb$�7b$'O��B�d�ob�Q~R!Fr��H o*�HN� �M���#���#)���f�A���#���#9yb$�7b$'O��B���;F��b$'O��B��䉑@�T���n��HpC+Fz��1�pGw�����<}�i]�c���~��u�����_��_>��^O���� ?��|�U&�ba�a�b��c(>���X�yS�XP�],�� +ł��X�yS�Xp� o*N�b�M�b������B���)@�T(�<�ț +ł��X�yS�XP�],��:ν�P��N���B���)@�ԹXP����P,8u�p7�'O����łs�b�ńbA�w�0�*N�b�M���^��� łS�X�wS�XP�],��:ν�P��N���B���)@�T(�|���B���)@�T(�<�ț +ł��X�yS�XP�],�� +ł��X�yS�Xp� o*N�b�M�bA�w�0�*N�b�M�b��S,���P,8y��7�%���,?�P,8y��7�'O���B���)@�T(�|���B���)@�T(�<�ț +ł��X�yS�X0�7��(?�P,8y��7�'O���B���)@�T(�|���B���)@�T(�<�ț ł��X�yS�XP�],�� ł��X�yS�Xp� o*N�b�M�bA�w�0�*N�b�M�b��S,���s��ܫX�u1�XP�],�� -ł��X�yS�b��ߊ�'B���)@�T(�|����łs�b�ńb��S,���P,8y��7u.�;�¬n&N�b�M�b��S,���s��ܫX�u1�XP�],�� -ł��X�yS�Xp� o*N�b�M�bA�w�0�*N�b�M�b��S,���P,8y��7�%���,?�P,8y��7�'O���B���)@�T(���X�'�'O���B���)@�T(�<�ț +ł��X�yS�b�������Xp��n*J���Y~P�b��W���bB���)��T(�<�ț:ʝbaV7��N���B���)@�ԹXp�U,���P,(�.f�A�b��S,���P,8y��7�'O���B���X���'O���B���)@�T(�<�ț ł��ba�T(�<�ț -ł��X�yS�Xp� o*J���Y~P�Xp� o*N�b�M�ba<O���U,����.�;:��/P,|y��2K���E�Wx�^��~��������w/__�n����OOO/�*��.�����4��}x��y7Ӌ4fs1�5Ƽߢ1�� ��P�Bc6^��̩Qfs1�EQ�(������PFs3�BQ�D(�����(s -��\L�O�9��l.&�'�|՞L� �2'<��ń�D�S���bBs��INfs1!81�ݛ��fε���d��'Bj��)Mfq1�3Q�d&���sdb�iLFo�0Q�&�����(s��\̹-Q╖���DK�ww%���P�(s���\�9)Q�U����D�I�79�,.&�$Ƽ[���̹$Q�����D�H�7�,.&4$ʜ�d6c���hn&�#ʜxd6�eN92�� ݈2'��ńhĘw32�� ň2'��ń\D�S���bB+��IEfs1!1�݉��fB%�̉Dfs1!Q�"���Ї(s��\L�C�y�!���P�(s�\L�B�9U�l.&4!ʜ$d6�c�=�hn&� ʜd6ReN 2�� �2'��ńD����|0��Q� ����(s��\Lh?�9��l.&�Ƽ����L�>�9��l.&$ʜ�c6zeN�1�� ��1��c47JeN�1�� ��2���ń�C��x��bB�a̻��̈́�C�w��bBڡ�);fs1�C�W�1{�!�0��t��fBѡ� :fs1ǜCy�j����-��&嘽ń�Øw�1��9WJ�"���� �����ń~C��o��b�����E�rCyn��bB��̩6fs1�fC�W�1{�!�0��k��fB��̉5fs1!�P�����i(s2��\L�4�y7���Ph(s��\L�3�9u�l.&�ʜ4c6�c�]�hn&Tʜ(c6�eN�1�� =�2'ǘ�ńC��Z��|0��P�����a(s*��\Lh0�9 �l.&Ƽ����L�/�9��l.&�ʜ�b6�eNv1�� х1��b47�eNp1�� ��2����ń��v`S��nViqu7�n��o��?�=>����f�����~;���|\Z��r�j-֛!������|�%}����������_�C�oǁ�˷����WG�>|�//��o�_��>}��?��G������_.�*����� } ��M�!������;���(o� ��ݗ�O_���j�7�c�����|o���������ܿ����oW���7�O��g����(o� ��'�����]��ވ�>]~{��}]M�zC�p���h���M�!_(yS�)s�De o*deJ���Y~P�,s�e o*�eN���M����������)�n�f�A���ɓ�����9yJ3�7Z3'Ol�Bnf�W��(?�P�9y�3�7�3'Ou�Bw�� �@�THϔ|�g������s���ń�ͩS����Р9y"4�7u�Д;ڬn&�hN� �M���S����s���+Hu1!IS�ݤ�� -U��'KyS�0W��bB��ԉ���T�Ӕ|�i���΅�s�D �ńHͩS����Щ9yB5�7R5%߭�,?�P�9yr5�7�5'O��B����@�T�֔|wk���B���I�@�T�ל<�ț -���'`yS!aS�ݰ�� -��'cyS!ds�l o*�lN�� �M��M�w�6�*mN�� �M����S����е9y�6�7�6%�m�,?�P�9y�6�77'O��B����@�T�܌��s�'J7'O��B����@�T�ݜ<�ț -ɛ���m�T�ޜ<�ț -ᛓ�|yS�}s��o o*�oJ���Y~P��s�$p o*DpN� -�M�������)�n�f�A��ɓÁ���9y�8�7un�{Eq�.&dqJ����}P��s�q o��9�[��D��8��� -����Fn�Թ�s�Ɂ���9uJ9p7Z9'O,�ι�r����̈́bΩ�́���9y�9�7u��{�s�.&�sJ�۹�}P��s��s o*tN���M����с����)���f�A���ɓҁ���9yj:�7z:'OP�BR�仩���:'OV�BX��)�@�Th�<qț -y��_�u���Ba��I�@�T��<�ț -���'�yS!�S����� -���'�yS!�s�w o*4wN���M��N�ww7�*�wN���M����S߁���ߍ�����V�w}CS�7�����=\���| ���V���v�������ˏ�����Ͽ���|�����������������~�������������퇿�oC����K���.���|����[�C�:�;���1����c���p��ńc�N�c��n*�u��yS�c�ʝc����p�שs��M�c�N�c� o�|��1_P��*�>�;�*�u��yS�c�ν�����p�שs��M�c�J�����:�u�u��ńc�N�c��n*�u��ySᘯ��c�����1_'�1_�7��:y�����p���s��M�c�J����� -�|�<�|A�T8���9���1_'�1_�7��*�>�;�*�u��ySᘯ��/ț -�|�<�|A�T8�����,?�p���s��M�c�N�c� o*�u��ySᘯ��c�����1_'�1_�7��:y�����p���s��M�c�F~u�w��T8���9���1_'�1_�7��:y�����p�W��1�Y~Pᘯ��/ț +ł��X�yS�Xp� o*F��X�'�'O���B���)@�T(�<�ț +ł��ba�T(�<�ț +ł��X�yS�Xp� o*J���Y~P�Xp� o*N�b�M�ba<O���U,����.�;:��/P,|y��2K�����+<b��o?��?����ǻ���G��|ʧ���[��~��t��Uo�}x��y7Ӌ4fs1�5Ƽߢ1�� ��P�Bc6^��̩Qfs1�EQ�(������PFs3�BQ�D(�����(s +��\L�O�9��l.&�'���=���eNx2�� ى2�:��ń�D�����bBpb̻7�͜k%^���}O��DyS���bBg���Lfs1��ĈӘ��"Ba�� Lfq1!/Q��%���s[��+-������JFq3�*Q�D%���sR�ī(���Г(or�Y\L�I�y�$���sI��+$���(o*�Y\LhH�9 �l.&$Ƽ����L�G�9��l.&�#ʜrd6�eN62�� ш1�fd47�eN02�� ��2���ńVD�����bB(b̻�̈́JD����bB"��)Dfs1�Q��!�����nCFs3�Q�!�����(s���\LhB�9I�l.&!Ƽ{���L�A�91�l.&� ʜd6:eN2�� �0�i@&���D����bB��̩?fs1��P����~��>Fs3��P�D����|(s���\L�=�9��l.&�Ƽ[���L(=�9��l.&dʜ�c6eN�1�� ��1�c47�eN�1�� i�2���Ŝ�%^Y��}O���xw�1�� E�2'���s����ZeM�1{� !�1�c47s�8�xE��=�M�1�� ��2'ߘ�Ŝ� #N�1z���&ܘ�ńlC�Sm��b�͆�dc��'B�a����̈́ZC�k��bB���)5fs1��P�d���i�n4Fs3��P�����g(s��\Lh3�9i�l.&�Ƽ����L�2�9Q�l.&$ʜ"c6zeN�1�� 1�0�i1&���C�b��bB��̩0fs1��P�$���`��/Fs3��P������^(sʋ�\L�.�9��l.&DƼ����L(.�9��l.&�ʜ�b6Z��Q�M-�Y�ś�y�t;��};�����������7C������I�u����b]��Vk���?�����/�+�����?���_��6��v��|�|��hЇ�����=������ݧ/��=�rݻ�yB����_����>���Q���˿�����_�FySo�_�<|�b�Q�ԏ�O�O��}��j���˧s�����_�FySo�/�Χ�����Q����O_�c�^��ވ�>]~{��}]M�zC�p���h���M�!_(yS�)s�De o*deJ���Y~P�,s�e o*�eN���M����������)�n�f�A���ɓ�����9yJ3�7Z3'Ol�Bnf�oz�Q~R�8s�$g o*DgN���M����������)�n�f�A��3�^��� �S�@wS�As�Dh o꜡)w:�Y�L(ќ:)�� +1���FyS�W��bB��ԻI���4'O���a�s�2 �ń6ͩ������)���f�A�5�^��� ��S�RwS�Ss�j o*�jJ�[�Y~P�Vs��j o*kN�b �M�f��������)���f�A�r�ɓ�����9y�5�7�5'O��B¦�a��*6'O��B���)�@�Thٜ<1ț +9���m�T(ڜ<Iț +Q���jyS�ks�m o*�mJ�۶Y~P�ns��m o*nN�� �M�������������m��T(ݜ<�ț +����vyS�ws�o o*$oJ���Y~P�zs�do o*�oN�� �M����������)���f�A��ɓ�����9y*8�7:8'O�B +�仅��j8'O�B��)�@�Թ�s�Ł����)���f�A�2�ɓƁ��c���:����9q9P79%ߍ�,?�s%��+�u1!�s�r�n*�rN�X�M�s9�N/7�� ŜS'�wS!�s�Ts o���9� +�@]LH�z�s���B=����@�T�<ț + ��'�yS!�S����� +%��'�yS!�s��t o*�tN���M��N�wS7�*TuN���M����Sց����9y�:�7�:#�� +���'�yS!�s�Tv o*tvN���M��N�wk7�*�vN���M����S܁����9y�;�7�;%���,?�P�9y�;�7�;'O}�B7Vb.��Z��������������o]������������_~������~�����ӧ���O?����������~���/�����?~�˷�v� �r�/y^��xsg���<�zқc��n�}���}���������p�שs��M�c�N�c� o�|�W�s�wV7��:u�����p���s��M���:�:��b�1_���|g�A�c�N�c� o�|��1_P��:u�����p�W��1�Y~P�c�ν�����p�שs��M�c�N�c� o*�U�}�w�T8���9���1_'�1_�7��:y�����p�W��1�Y~Pᘯ��/ț �|�<�|A�T8���9���1_%��|g�A�c�N�c� o*�u��ySᘯ��/ț -�|�|����:y�����p���s��M���:�:��b�1_���|g�A�c�N�c� o�x�שߎ���=��:q�����p�W��1�Y~P�c�ν�����p�שs��M�c�N�c� o�|�W�s�wV7��:u�����p���s��M���:�:��b�1_���|g�A�c�N�c� o*�u��ySᘯ��/ț -�|�|����:y�����p���s��M�c�N�c� o*�U�}�w�T8���9���1_'�1_�7��:y�����p��ȯ���� +�|�|����:y�����p���s��M�c�N�c� o*�U�}�w�T8���9���1_'�1_�7��:y�����p������'��:y�����p���s��M�c�N�c� o*�U�}�w�T8���9���1_'�1_�7��:y�����p�W��1�Y~Pᘯ��/ț +�|�<�|A�T8���9���1_%��|g�A�c�N�c� o*�u��yS�c�ν�����p�W��1��}Pᘯ��/ț:�u��1_�'�1_'�1_P7��*�>�;��|��1_P��:u�����p���s��M���*w����f�1_��1_p7��:y������1_�^�|A]L8������>�p���s��M�c�N�c� o*�u��ySᘯ��c�����1_'�1_�7��:y�����p���s��M�c�J����� +�|�<�|A�T8���9���1_'�1_�7����c�����1_'�1_�7��:y�����p���s��M�c�J����� �|�<�|A�T8���9���1_'�1_�7��*�>�;�*�u��ySᘯ��/ț -�|�<�|A�T8�����,?�p���s��M�c�N�c� o*�N��c�pC��� =��>�;��������$��.�n?<~�����wϿ �^�|���9wv�5o���U���Z�{���?����~��e�?�����ǿ�凾���?����(�l�W����ƣ���{�� o8���.������>��]��ސ?�=|z�c'��M�!�{~�)ǹ�_��b~l�z���}��jr��������(o� ���'��~1��y�|�d�<�g�v5��������G����#F��A~Ro�/���G��~1��y�|�d>?=[����n� �壹����j�7�c�����"�o���7�wO__�ǽ�FwSoȟ��_��g��FySo�_��#��Z�'~��|w���>�u5�� ��sy��|]��ސ_>�/��'��oW���7����~�oW����.��Ã}��j���˧���>�u5ʛzC~�t��c_W���7�O�ӗ�V�v5ʛ��������/����I~Po�<�Ǿ�FySoȟ�>=?�Ǿ�FySo�_�<=���v5ʛz��{�݄J��x8�*������C�7�x��y�!ț -o<t���M�7*�~��,?���C'�A�Tx㡓獇 o*������C�7�x����������<o<ySፇN�7�����C'�A�Tx㡒�7�� -o<t���M�7:y�x���<o<ySፇJ��x8�*������C�7�x��y�!ț -o<t���M�7��G�I�7:y�x���<o<ySፇN�7�����C%�S(����S(ν�P@]L�Bq�L����0���ByS�)��ʬn&L�8u�P��T�Bq�L������s�)P�P�zO��� -S(N�)�7u�Bq�5��b��Sg -�M�)%�S(����S(ν�P@]L�Bq�L����0���BySa +�|�Ӧ��/��:�����o��������{��Y��?�B�����߆~/�>~���;������zU.������?��?���_��5o��������/��o���Ol?�>�7�ޫq��p�Q��=|��7������yC��o�|pCȯW���7�Ow�^���ɯW���7�/wϯ?�8���Q]̏�_��>�|��|]M�zC�p���`����M�!������/Fu1o�/�̗G�̯W���O��|4���9b��'����Ѽ�|t�����7̗O��ӳU_�FwSo�/���~�Q�ԏ�����Ӌt_/&u3o��؏{]��ސ?�ݿ|��|]��ސ��=�G�۵(~O�X�������}��jR�����to���M�!�|._^O�ɯW���7����~�Q�ԏ��O���>�u5�� �����`���M�!�|:������Q���˧���g+�^��~,������}��j���//O����Q���O������Q���/O���_�FySo�zo��P��g�A�7:y�x���<o<ySፇN�7�����C%�o<���x��y�!ț +o<t���M�7:y�x���|��p�Tx㡓獇 o*������C�7�x��y�!ț +o<T����Y~PፇN�7�����C'�A�Tx㡓獇 o*��P��g�A�7:y�x���<o<ySፇN�7�����C#���Q~RፇN�7�����C'�A�Tx㡓獇 o*��P���,?���s�)P�P�:S(�n*L�8y�P@��y +E�3�2�� S(N�)p7�P�<S( o�<���k +�ń)��S(������g +�M��P�{M����0��ԙBwSa +E���,?���s�)P�P�:S(�n*L�8y�P@�T�BQ�=�2�*L�8y�P@�T�Bq�L����0���BySa E���,?�0���BySa ��3�����g �M�)%�S(������g @@ -3561,219 +3562,235 @@ E ț S(N�)�7�P�|O��� S(N�)�7�P�<S( o*L�8y�P@�T�BQ�=�2�*L�8y�P@�T�Bq�L����0���BySa +���L��� +S(N�)�7�P�<S( o*L�8y�P@�T�BQ�=�2�*L�8y�P@�T�Bq�L����0���BySa E���,?�0���BySa ��3�����g -�M�)#��B�'�P�<S( o*L�8y�P@�T�Bq�L����0���{ -e�T�Bq�L����0���BySa +�M�)%�S(������g +�M�)'� +ț:O�8��Bu1a +E����>�0���ByS�)��N���=�P�8S(�n*L�(��B��u�Bq�5��b��Sg +�M�)'� +ț:O�(w�Pfu3a +ũ3�����g +�M��P�{M����0���{ +evT�Bq�L����0���BySa ��3������)�Y~Pa ��3�����g �M�)'� ț S(J��Pf�A�)'� ț -S(N�)�7u�Bq�5��b��R�)��}Pa -��3��S(N�6���D�Bq�L����0���{ -e��y -Ź� -�� S(N�)p7�P�<S( o�<��ܙB��̈́)�� -�� -S(N�)�7u�Bq�5��b��R�)��}Pa +S(N�)�7�P�<S( o*L���)�Q~Ra ��3�����g �M�)'� ț S(J��Pf�A�)'� ț -S(N�)�7�P�<S( o*L�(��B���P�<S( o*L�8y�P@�T�Bq�L����0�b�WS(������g -�M�)'� -ț -S(N�)�7�P�|O��� -S(N�)�7�P�<S( o*L�8y�P@�T�BQ�=�2�*L�8y�P@�T�Bq�L����0�2�w�)��5��nr���)��~�M���ׯ,�)�˯oO�������OO�7VZ�e�����]m���w���O��:�ӯ��m�g��x�"��O�����\����@�vƻ=�|pC�n�ț:�(wvfu3a7������n��g7��Mw��m7����{7`VT� p��������� �ySa7�ɳ���n���݀Y~Pa7�ɳ���n��g7��M���'�n�ț -�J�wf�A���'�n�ț -�N����7v�<� o*�(�� ��v�<� o*�8yv@�T� p��������{7`�T� p��������� �ySa7�ɳ���n���݀Y~Pa7�ɳ���n��g7��M���'�n�ț -�J�wf�A���'�n�ț -�N����7v�<� o*�(�� ��v�<� o*�8yv@�T� p������`�W�����n��g7��M���'�n�ț -�N����7v�|���:�8�� �u1a7������n��g7��M�w�;�������� �wSa7�ɳ��λνv@]L� P�0�*�8yv@��y7���n��� �N���p7v�|���:�8�� �u1a7������n��g7��M���%����n��g7��M���'�n�ț +S(N�)�7�P�<S( o*L�(��B���P�<S( o*L�8y�P@�T�B�;� +�КBy79����pG�������W������~K��S�+-�\�}����O~������w������3��|��'�o���\����@���w�w������ M� o���� ��̈́����n��� +�N����7u� p��n���a7@��n��>����� �ySa7�ɳ���n��g7��M���%����n��g7��M���'�n�ț �N����7v�|��� �N����7v�<� o*�8yv@�T� P�0�*�8yv@�T� p��������� �ySa7@��n�,?����� �ySa7�ɳ���n��g7��M���%����n��g7��M���'�n�ț -�N����7v��j7`��T� p��������� �ySa7�ɳ���n���݀Y~Pa7�ɳ���n��g7��M���'�n�ț +�N����7v�|��� +�N����7v�<� o*�8yv@�T� P�0�*�8yv@�T� p��������� �ySa7������ +�N����7v�<� o*�8yv@�T� P�0����k7��ń����n��� +�N����7u� P����f�n�Sg7��M���'�n�ț:�8�� �u1a7@��n��>����� �yS����^��.&�8uv��T� P�0����k7��ń����n��� +�N����7v�|��� +�N����7v�<� o*�8yv@�T� P�0�*�8yv@�T� p��������� �ySa7@��n�,?����� �ySa7�ɳ���n��g7��M���%����n��g7��M���'�n�ț +�N����7v�|��� +�N����7v�<� o*�8yv@�T� 0�7�����n��g7��M���'�n�ț +�N����7v�|��� +�N����7v�<� o*�8yv@�T� P�0�*�8yv@�T� p��������� �ySa7@��n�,?����� �ySa7�ɳ��λνv@]L� P�0�*�8yv@��q7���� ~O���'�n��� +�J�wf�A�w�{�������� �wSa7�ɳ��λʝ݀Y�L� p��������� �yS����^��.&�(�� ��v�<� o*�8yv@�T� p��������{7`�T� p��������� �ySa7�ɳ���n���݀Y~Pa7�ɳ���n��g7��M���'�n�ț +�F�f7`��T� p��������� �ySa7�ɳ���n���݀Y~Pa7�ɳ���n��g7��M���'�n�ț �J�wf�A���'�n�ț -�N����7v�<� o*�(�� ��v�<� o*�8yv@��y7���n��� �J�wf�A���'�n�ț:�8��n���a7������n���݀Y~P����^��.&�8uv��T� p������n�rg7`V7v�:��n*�8yv@��y7���n��� �J�wf�A���'�n�ț -�N����7v�<� o*�(�� ��v�<� o*�8yv@�T� p��������{7`�T� p��������� �ySa7�ɳ���n��_��� -�N����7v�<� o*�8yv@�T� P�0�*�8yv@�T� p��������� �ySa7@��n�,?����� �ySa7�ɳ���n�����������v�;����/w��z�~;�����^��{=������������-�岵�������������_���ˏ?��og�����˧+·O������i��;�u���VC����l�I��87�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�J��Y~R�\�WCN�� ������M�r)_ 9ɛ:7�N���ulȥ��!'u1�\�WCN�� ������Mr�^ 9��97�R�rr7unȥ|5�$o�ؐK�[CN�b� �S�!�A�r)_ 9ɛ:6������sC.ի!'wS���Ӑ���� �t�5�.�ܐK�j���Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�J��Y~R�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Ա!���Ŝr�NC�:7�R�r�7ujȥ�{CN��Ĺ!��Ր���sC��i�A~Pdž\��rRsnȥz5��n�ܐK�j�I�Ա!w�Ր���sC.ի!'wS�\�WCN� �t�5�.�ܐ;urpԹ!��Ր���sC.�!'yS�\�WCN�� ���!�A�r)_ 9ɛ:7�R�r�7unȥ|5�$o�ܐ;yr�Թ!��Ր���sC.�!'yS�\�WCN�� ���|��Թ!��Ր���sC.�!'yS�\�WCN�� ���!�A�r)_ 9ɛ:7�R�r�7unȥ|5�$o�ܐ;yr�Թ!��Ր���sC.�!'yS�|��UCN7�v��N�vC>���ߐ??]~�|��|]���o �?��_��ǿ������������/����������~�v寿����ݕ�|�ϟ_�o�;��'���?$��Д|�� -ɧ�'�yS!�t�$� o*$�N���M��S�w�9�*$�N���M���ɓ|����|:y�O�7�O%���,?��|:y�O�7�O'O� �B���I>A�TH>�|'����B���I>A�TH>�<�'ț -ɧ�'�yS!�T�|�� -ɧ�'�yS!�t�$� o*$�N���M��S�w�9�*$�N���M���ɓ|����|:y�O�7�O#�J>G�I���ɓ|����|:y�O�7�O'O� �B��;���uN>�{%��.&$�N���M���ɓ|���s��I>gu3!�t�$��n*$�N���M��O�^�'�� ɧR��svTH>�<�'ț:'�ν�OP�O�N� �B��;���uN>�{%��.&$�N���M���ɓ|����|*�N>g�A���ɓ|����|:y�O�7�O'O� �B��;����O'O� �B���I>A�TH>�<�'ț +�N����7v����� �݀wu��0�ѿ��{|x������]u���������/_��||o�.��倵��������o��w���_~��O;��/w_^>��|�4�^���1��|��\��o5���͆���sC��i�A}P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��!��'unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~Pdž\�� 9��97�R�rr7unȥ|5�$o�ؐ;�j�A�̹!��Ր���sC.�!'ySdž\�� 9��97�N���unȥ|5�$o�ؐK��!'u1�\�WCN�� ���!�Ar�6�.�ܐK�j���Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�J��Y~R�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Թ!��Ր���sC��i�A~P�\�WCN�� ������M�r)_ 9ɛ:7�N���unȥ|5�$o�ܐK�j�I�Ա!��kCN�b� �S�!�A�r)_ 9ɛ:5�R��!'�{�ܐK�j�I�Թ!w�4� ?�cC.�׆��Ŝr�^ 9��:7�R�r�7ulȝ{5�n�ܐK�j���Թ!��Ր���cC.�׆��Ŝr�NC�:7�R�r�7unȥ|5�$o�ܐK�j�I�Թ!w�4� ?�sC.�!'yS�\�WCN�� ������M�r'OC�:7�R�r�7unȥ|5�$o�ܐK�j�I�Թ!W�ݐ��:7�R�r�7unȥ|5�$o�ܐK�j�I�Թ!w�4� ?�sC.�!'yS�\�WCN�� ������M�r'OC�:7�R�r�7unȥ|5�$o�ܐ�ճj�醮�o7���� ������Gj��e�!�|m������O?�������������ݷ���?�����㷳(����ן����g�����VQ�����w����������Y~P!�t�$� o*$�N���M���ɓ|����|*�N>g�A���ɓ|����|:y�O�7�O'O� �B��;����O'O� �B���I>A�TH>�<�'ț ɧ���s�TH>�<�'ț -ɧ�'�yS!�t�$� o*$�J���Y~P!�t�$� o*$�N���M���ɓ|����|*�N>g�A���ɓ|����|:y�O�7�O'O� �B�i�W��(?��|:y�O�7�O'O� �B���I>A�TH>�|'����B���I>A�TH>�<�'ț -ɧ�'�yS!�T�|�� -ɧ�'�yS!�t�$� o*$�N���M��S�w�9�*$�N���M���ɓ|���s���+�u1!�T�|�� -ɧ�'�yS��өߒO�'B���I>A�TH>�|'�����ɧs���ń�ө�|����|:y�O�7uN>�;��n&$�N���M���ɓ|���s���+�u1!�T�|�� -ɧ�'�yS!�t�$� o*$�N���M��S�w�9�*$�N���M���ɓ|����|:y�O�7�O%���,?��|:y�O�7�O'O� �B���I>A�TH>��*��'�O'O� �B���I>A�TH>�<�'ț +ɧ�'�yS!�t�$� o*$�J���Y~P!�t�$� o*$�N���M���ɓ|����|*�N>g�A���ɓ|����|:y�O�7�O'O� �B�i�o��Q~R!�t�$� o*$�N���M���ɓ|����|*�N>g�A��O�^�'�� ɧS'�wS!�t�$� o�|*w��Y�LH>�:�'�� +ɧ�'�yS��ӹW� �bB��;����O'O� ��ɧs���ń�ө�|����|*�N>g�A��O�^�'�� ɧS'�wS!�t�$� o*$�J���Y~P!�t�$� o*$�N���M���ɓ|����|*�N>g�A���ɓ|����|:y�O�7�O'O� �B��;����O'O� �B���I>A�TH>�<�'ț ɧ���s�TH>�<�'ț -ɧ�'�yS!�t�$� o*$�J���Y~P!�t�$� o*$�N���M��s�]� 7���wY����s���?�|�~@ ��߮��5���[�������o�篿���O����~�����>�}}~���E��^_~�t����!����[/��������~p;�{d��Tx�������� -�u�G�M���:y�#��{d�<Q1ț -Q���x�T���<Q1ț -Q��'*yS!*v�D� o*D�J���Y~P!*v�D� o*D�N���M�������+���g�A�������;y�b�7�b'OT�BT��;*���b'OT�BT�䉊A�T���<Q1ț -Q���x�T���<Q1ț -Q��'*yS!*v�D� o*D�J���Y~P!*v�D� o*D�N���M��������UT<�O*D�N���M�������;y�b�7�b%�Q�,?�sT��+*u1!*v�D��n*D�N���M��b�NT<�� Q�S'*wS!*v�D� o�;���A]L���zGų��BT�䉊A��9*v����;u�bp7�b%�Q�,?�sT��+*u1!*v�D��n*D�N���M��X�wT<�*D�N���M�������;y�b�7�b%�Q�,?�;y�b�7�b'OT�BT�䉊A�T���|Gų��BT�䉊A�T���<Q1ț +ɧ�'�yS!�t�$� o*$�J���Y~P!�t�$� o*$�N���M���ɓ|����|���s��TH>�<�'ț +ɧ�'�yS!�t�$� o*$�J���Y~P!�t�$� o*$�N���M���ɓ|����|*�N>g�A���ɓ|����|:y�O�7�O'O� �B��;����O'O� �B���I>A��9�t�|����|*�N>g�A���ɓ|���c������|:q�OP7�O%���,?�s���+�u1!�t�$��n*$�N���M��O�N�9�� ɧS'�wS!�t�$� o�|:�J>A]LH>�z'����B���I>A�TH>�<�'ț +ɧ�'�yS!�T�|�� +ɧ�'�yS!�t�$� o*$�N���M��S�w�9�*$�N���M���ɓ|����|:y�O�7�O#�|�� +ɧ�'�yS!�t�$� o*$�N���M��S�w�9�*$�N���M���ɓ|����|:y�O�7�O%���,?��|:y�O�7�O'O� �B�9f�.��Z�绬��v�9��ߟ|>}?���oW}�����Z|���}������?�����/?������ǻ�ϯ�ݸH����o�n�7��7�~^w��p�E�������ngz�,�� +�U���Y~P�=�N��Ȃ���Y'�{dA�Tx���'*yS!*V��� +Q��'*yS!*v�D� o*D�N���M��X�wT<�*D�N���M�������;y�b�7�b%�Q�,?�;y�b�7�b'OT�BT�䉊A�T���|Gų��BT�䉊A�T���<Q1ț Q��'*yS!*V��� -Q��'*yS!*v�D� o*D�N���M��X�wT<�*D�N���M�������;y�b�7�b#���G�I�������;y�b�7�b'OT�BT��;*���b'OT�BT�䉊A�T���<Q1ț -Q���x�T���<Q1ț -Q��'*yS!*v�D� o*D�J���Y~P!*v�D� o*D�N���M��b�^Q1�� Q�R�xvT���<Q1ț:F�N���=�b'NT�BT��;*��u���{EŠ.&D�N���M�������sT�܉�gu3!*v�D��n*D�N���M��b�^Q1�� Q�R�xvT���<Q1ț -Q��'*yS!*v�D� o*D�J���Y~P!*v�D� o*D�N���M�������+���g�A�������;y�b�7�b'OT�BTl�WQ�(?�;y�b�7�b'OT�BT�䉊A�T���|Gų��BT�䉊A�T���<Q1ț +Q��'*yS!*v�D� o*D�N���M��X�wT<�*D�N���M�������;y�b�7�b#�� +Q��'*yS!*v�D� o*D�N���M��X�wT<��;���A]L���:Q1�� +Q��'*yS�X���fBT�ԉ���T���<Q1ț:G�ν�bP�b��Q��>�;y�b�7u���{EŠ.&D�N���M��X�wT<��;���A]L���:Q1�� +Q��'*yS!*V��� +Q��'*yS!*v�D� o*D�N���M��X�wT<�*D�N���M�������;y�b�7�b%�Q�,?�;y�b�7�b'OT�BT�䉊A�T���|Gų��BT�䉊A�T���<Q1ț Q��'*yS!*V��� -Q��'*yS!*v�D� o*D�Ck�b���+w��x���?*�|����.U��U?��������~���u��_�^�_���C����wP?���O������w7yw�����Ǐo�����n��'�?��}~��*y��I�!�{~=���/Fu1o�/���g�~��M�!�|4�����]��~,��|4����o���7�wO__�ǽ�FwSoȟ.�-}��|]��ސ��=�G�۵(~O��P���>�u5�� ��sy��|]��ސ�.8�~���oW���0����ySaB��0�,?�0����ySa��3��0��g�M�a%������0��g�M�a'�0ț +Q��'*yS!*v�D� o*D�N���M�����Dţ��BT�䉊A�T���<Q1ț +Q��'*yS!*V��� +Q��'*yS!*v�D� o*D�N���M��X�wT<�*D�N���M�������;y�b�7�b%�Q�,?�;y�b�7�b'OT��Q�s���ń�X�wT<�*D�N���M�b��F� ~O��؉���+���g�A��b�^Q1�� Q�S'*wS!*v�D� o�+w��Y�L���:Q1�� +Q��'*yS�عWT�bBT��;*���b'OT�BT�䉊A�T���<Q1ț +Q���x�T���<Q1ț +Q��'*yS!*v�D� o*D�J���Y~P!*v�D� o*D�N���M����������x��T���<Q1ț +Q��'*yS!*v�D� o*D�J���Y~P!*v�D� o*D�N���M�������+���g�A�������;y�b�7�⡂�Q1�Њ�ߕ�CT<���_�W�|�I���u٪��{d��?��_���������w/�/o��C����wP?���O����zٻ��;o������Ƿ��z5������O�w�_�J��A~Ro��_ρ9���Q]���'���٪�W���7䗏��Y?���(o�����G��'Y�}���ͼa~�{��b?�u5��zC�t�n�}��j�7�����I?�߮E�{⍅��5�O����I}Po�/��ӽ}��j�7���u���;D'�^���0��g�M�a%������0��g�M�a'�0ț �N�a�7�!�|C�� �N�a�7�!�<� o*C8y�!@�T�P�=1�*C8y�!@�T�p�C���0����ySaB��0�,?�0����ySa��3��0��g�M�a%������0��g�M�a'�0ț �N�a�7�!�|C�� -�N�a�7�!�<� o*C8y�!@�T�0�a�Q~Ra��3��0��g�M�a'�0ț -�J��!f�A��!�{ C���0����wSa��3���ʝa�Y�L�p�C���0����yS�a�^��.&C(�����!�<� o�<��k�ńa��0�� -�J��!f�A��!�{ C���0����wSa��3��0���a�Y~Pa��3��0��g�M�a'�0ț -�J��!f�A�a'�0ț -�N�a�7�!�<� o*C(�����!�<� o*C8y�!@�T�p�C���0��{b�T�p�C���0����ySa��3��0���a�Y~Pa��3��0��g�M�a'�0ț -�F~51�O*C8y�!@�T�p�C���0����ySaB��0�,?�0����ySa��3��0��g�M�a%������0��g�M�a'�0ț +�N�a�7�!�<� o*C8y�!@�T�P�=1�*C8y�!@�T�p�C���0����ySa���C�� +�N�a�7�!�<� o*C8y�!@�T�P�=1��<��k�ńa��0�� +�N�a�7u�P�C��f�0�Sg�M�a'�0ț:C8���u1aB��0��>�0����yS�a�^��.&C8u�!��T�P�=1��<��k�ńa��0�� +�N�a�7�!�|C�� +�N�a�7�!�<� o*C8y�!@�T�P�=1�*C8y�!@�T�p�C���0����ySaB��0�,?�0����ySa��3��0��g�M�a%������0��g�M�a'�0ț �N�a�7�!�|C�� -�N�a�7�!�<� o�<��k�ńa�������0��g�M�!��m��0����uSaB��0�,?��0�s�aP�!�:��n*C8y�!@��yB�31�� �N�ap7�!�<� o�<��k�ńa�������0��g�M�a'�0ț +�N�a�7�!�<� o*C8y�!@�T�0�7�����0��g�M�a'�0ț �N�a�7�!�|C�� -�N�a�7�!�<� o*C8y�!@�T�P�=1�*C8y�!@�T�p�C���0����ySa�ȯ�!F�I�a'�0ț -�N�a�7�!�<� o*C(�����!�<� o*C8y�!@�T�p�C���0��{b�T�p�C���0����ySabX5��pCk����01���?q�>���a�u����6�~������?��ӟ�}����/?���o������[�W��>�~�{���{���y��}y�74彳��B����{A�T�{�<y/ț -y��'�yS!�U���� -y��'�yS!�u�� o*�N���M��W�w�;�*�N���M���ɓ������:y�^�7�^%�y�,?���:y�^�7�^'O��B����{A�T�{�|罳��B����{A�T�{�<y/ț -y��'�yS!�U���� -y��'�yS!�u�� o*�N���M��W�w�;�*�N���M���ɓ������:y�^�7�^#��{G�I���ɓ������:y�^�7�^'O��Bޫ�;��u�{�{彠.&�N���M���ɓ����sޫ��{gu3!�u���n*�N���M��^�^y/�� y�R�wvT�{�<y/ț:�ν�^P�^�N��Bޫ�;��u�{�{彠.&�N���M���ɓ������*��{g�A���ɓ������:y�^�7�^'O��Bޫ�;���^'O��B����{A�T�{�<y/ț +�N�a�7�!�<� o*C8y�!@�T�P�=1�*C8y�!@�T�p�C���0����ySaB��0�,?�0����ySa��3���ν�!@]L�P�=1�*C8y�!@��q©�� ~O�a'�0�� +�J��!f�A��!�{ C���0����wSa��3���ʝa�Y�L�p�C���0����yS�a�^��.&C(�����!�<� o*C8y�!@�T�p�C���0��{b�T�p�C���0����ySa��3��0���a�Y~Pa��3��0��g�M�a'�0ț +�F�fb��T�p�C���0����ySa��3��0���a�Y~Pa��3��0��g�M�a'�0ț +�J��!f�A�a'�0ț +�N�a�7�!�U;7��!ލ/���������{�X��a�/�a���럾��?��������_�����?~��G-����}#=������^9��w������!������w�T�{�<y/ț +y��'�yS!�u�� o*�J���Y~P!�u�� o*�N���M���ɓ������*��{g�A���ɓ������:y�^�7�^'O��Bޫ�;���^'O��B����{A�T�{�<y/ț y���w�T�{�<y/ț -y��'�yS!�u�� o*�J���Y~P!�u�� o*�N���M���ɓ������*��{g�A���ɓ������:y�^�7�^'O��B�k�Wy�(?���:y�^�7�^'O��B����{A�T�{�|罳��B����{A�T�{�<y/ț -y��'�yS!�U���� -y��'�yS!�u�� o*�N���M��W�w�;�*�N���M���ɓ����s���+�u1!�U���� -y��'�ySǼש��^�'B����{A�T�{�|罳���y�s���ń�ש�������:y�^�7u�{�;y�n&�N���M���ɓ����s���+�u1!�U���� -y��'�yS!�u�� o*�N���M��W�w�;�*�N���M���ɓ������:y�^�7�^%�y�,?���:y�^�7�^'O��B����{A�T�{��*��'�^'O��B����{A�T�{�<y/ț +y��'�yS!�u�� o*�J���Y~P!�u�� o*�N���M���ɓ������*��{g�A���ɓ������:y�^�7�^'O��B�k�o��Q~R!�u�� o*�N���M���ɓ������*��{g�A��^�^y/�� y�S'�wS!�u�� o��*w��Y�L�{�:y/�� +y��'�yS�W��bBޫ�;���^'O���y�s���ń�ש�������*��{g�A��^�^y/�� y�S'�wS!�u�� o*�J���Y~P!�u�� o*�N���M���ɓ������*��{g�A���ɓ������:y�^�7�^'O��Bޫ�;���^'O��B����{A�T�{�<y/ț y���w�T�{�<y/ț -y��'�yS!�u�� o*�J���Y~P!�u�� o*�N���M��wLQ]�7���w ��w��罟���<S.[y�S����������/`�����|�/�}��w����=��_�|�o������~���������߮&�A�!�{~~��n'��M�!������/Fu1o�/�̗G��߮FwSo�����<�~�n��'����Ѽ��s�����7̗O��ӳU�]��ސ_>��g��߮FySo�����|z�I��懻��/��^W���7�O��R��g��FySo�_��#��Z�'�x������'���դ>�7�����>�u5ʛzC~�\��~g��oW���7�k:��3��� ���A�Y~Pa���3��� ��g��M�A'� ț +y��'�yS!�u�� o*�J���Y~P!�u�� o*�N���M���ɓ���������w��T�{�<y/ț +y��'�yS!�u�� o*�J���Y~P!�u�� o*�N���M���ɓ������*��{g�A���ɓ������:y�^�7�^'O��Bޫ�;���^'O��B����{A��9�u�������*��{g�A���ɓ����c�����:q�^P7�^%�y�,?�s���+�u1!�u���n*�N���M��^�N�;�� y�S'�wS!�u�� o��:��{A]L�{�z罳��B����{A�T�{�<y/ț +y��'�yS!�U���� +y��'�yS!�u�� o*�N���M��W�w�;�*�N���M���ɓ������:y�^�7�^#���� +y��'�yS!�u�� o*�N���M��W�w�;�*�N���M���ɓ������:y�^�7�^%�y�,?���:y�^�7�^'O��B�;��.�Zyﻄv�{�;����Ϗw_^�)�]����������o������0_�_�����|�/�}��w����=��_�|�������~��������������}Po�_��ɯW���7�Ow�����Ũ.� ������jt7�ƻ�/����F��A~Ro�/���;��~1��y�|�d>?=[��jt7������?�g~��M�����G��E�����7�wO__�ǽ�FwSoȟ.ߥ~��|]��ސ��=�G�۵(~O��������O����I}Po�/��ӽ}��j�7����|y���ɯW���7�k:��3��� ���A�Y~Pa���3��� ��g��M�A'� ț +�J�9f�A�A'� ț +�N�A�79�<� o*r(���9�<� o*r8y9@�T�p�r���0ȡ�{�c�T�p�r���0�����ySa���3��� ���A�Y~Pa���3��� ��g��M�A'� ț +�J�9f�A�A'� ț +�N�A�79�<� o*r(���9�<� o*r8y9@�T�p�r���0�a�o9F�I�A'� ț +�N�A�79�<� o*r(���u�p�5��b� �Sg��M�A'� ț:r(w9fu3a�é3��� ��g��M�9�{ r���0ȡ�{�cvT�p�r���� �s�AP9�:��n*r(���u�p�5��b� �Sg��M�A'� ț �J�9f�A�A'� ț �N�A�79�<� o*r(���9�<� o*r8y9@�T�p�r���0ȡ�{�c�T�p�r���0�����ySa���3��� ���A�Y~Pa���3��� ��g��M�A'� ț �J�9f�A�A'� ț -�N�A�79�<� o*r(���9�<� o*r8y9@�T�p�r���0�a�W����� ��g��M�A'� ț -�N�A�79�|r��:r8���u1a�é3��� ��g��M�9�;����0�����wSa���3��ν9@]L�P�=�1�*r8y9@��y�ù� �� �N�Ap79�|r��:r8���u1a�é3��� ��g��M�A%߃���� ��g��M�A'� ț -�N�A�79�|r�� -�N�A�79�<� o*r8y9@�T�P�=�1�*r8y9@�T�p�r���0�����ySa�C�� �,?�0�����ySa���3��� ��g��M�A%߃���� ��g��M�A'� ț -�N�A�79��j�c��T�p�r���0�����ySa���3��� ���A�Y~Pa���3��� ��g��M�A'� ț +�N�A�79�<� o*r��A�Q~Ra���3��� ��g��M�A'� ț �J�9f�A�A'� ț -�N�A�79�<� o*r(���9�<� o*r8y9@��y�ù� �� �J�9f�A�A'� ț:r8�� ��a�É3��� ���A�Y~P�A�^��.&r8u9��T�p�r���� �rg�cV79�:��n*r8y9@��y�ù� �� �J�9f�A�A'� ț -�N�A�79�<� o*r(���9�<� o*r8y9@�T�p�r���0ȡ�{�c�T�p�r���0�����ySa���3��� ��_ r�� -�N�A�79�<� o*r8y9@�T�P�=�1�*r8y9@�T�p�r���0�����ySa�C�� �,?�0�����ySa���3��� Ǹ$�9��� ǻы/�9�;:9�� �������0ȱ.[��=������/���?���s���r'/W�n������;�����v D\��0���L�n*D��@�(?��@�s��P"�:�n*D8y"@��y B�31�� N��p7"�< o�8��o ~O��%�����@��g �M��'�@ț +�N�A�79�<� o*r(���9�<� o*r8y9@�T�p�r���0ȡ�{�c�T�p�r���0�����yS�A�^��.&r(���9�<� o�8����A�'� �g��M�A%߃���ν9@]L�p�r���0�����yS�A�� Ǭn&r8u9��T�p�r���� �s�AP9�zr�� +�N�A�79�<� o*r8y9@�T�P�=�1�*r8y9@�T�p�r���0�����ySa�C�� �,?�0�����ySa���3��� ��g��M�A#3�1�O*r8y9@�T�p�r���0�����ySa�C�� �,?�0�����ySa���3��� ��g��M�A%߃���� ��g��M�A'� ț +�㒄�Z��F/�������B���w��.��� Ǻl r<� ����������ӟ�E��˝���|pK�w�.�I���@�|�k �����4��@�����'u�p�5�b�@�Sg �M��'�@ț:D(w"fu3a ©3��@��g �M"��:��D�P�=1�*D8y"@�T�p�D���0����ySa B��@�,?�0����ySa ��3��@��g �M��%�����@��g �M��'�@ț N���7"�|D�� N���7"�< o*D8y"@�T�P�=1�*D8y"@�T�p�D���0����ySa B��@�,?�0����ySa ��3��@��g �M��%�����@��g �M��'�@ț N���7"�|D�� -N���7"�< o*D8y"@�T�P�=1�*D8y"@�T�p�D���0����ySa B��@�,?�0����ySa ��3��@��g �M��#���'"�< o*D8y"@�T�p�D���0��{ b��y ¹�@�� N��p7"�< o�<�����̈́���@�� -N���7u�p�5�b�@�R�}Pa ��3��ν"@]L�p�D���0��{ b��y ¹�@�� N��p7"�< o*D(����"�< o*D8y"@�T�p�D���0��{ b�T�p�D���0����ySa ��3��@��Y~Pa ��3��@��g �M��'�@ț -J�"f�A��'�@ț -N���7"�< o*D(����"�< o*D8y"@�T�p�D���0a�W����@��g �M��'�@ț +N���7"�< o*D8y"@�T�0�7����@��g �M��'�@ț +N���7"�|D��:D8���u1a ©3��@��g �M�"�;���0����wSa ��3��ν"@]L�P�=1�*D8y"@��y ¹�@�� N��p7"�|D��:D8���u1a ©3��@��g �M��%�����@��g �M��'�@ț N���7"�|D�� -N���7"�< o*D8y"@�T�P�=1�*D8y"@�T�p�D���0����ySa B��@�,?�0����ySa ��3��ν"@]L�P�=1�*D8y"@��q ©�"@��N��P7"�|D��:D8���u1a ©3��@��g �M�"�;���0����wSa ��3��ν"@]L�P�=1�*D8y"@�T�p�D���0����ySa B��@�,?�0����ySa ��3��@��g �M��%�����@��g �M��'�@ț -N���7"��j b��T�p�D���0����ySa ��3��@��Y~Pa ��3��@��g �M��'�@ț -J�"f�A��'�@ț -N���7"�U;7�"ލ0��0�:l�[D1D�5��6�O����O���^�!���������翝!��o}]~i�V�O����ˍ'���L7����M��?��!,&yS�������a������M��b)_a1ɛ:��R��b�7u��<a1��K� -�I��9,�����sX,�+,&yS�������a������M��b)_a1ɛ:��R��b�7u��<a1��K� -�I��9,�����sX,�+,&yS�������a������M��b)_a1ɛ:��R��b�7u��<a1��K� -�I��9,�����sX,�+,&yS�������a������M��b)_a1ɛ:��R��b�7u��|�ų���a������M��b)_a1ɛ:��R��b�7u��<a1��K�[XL�b�a�T����M��b)_a1ɛ:��ν�bP7s��z���n�K� -�I��1,���Ŝ�b�NX�:��R��b�7u���-,&u1�X�WXL��a��',�A�b�~�I]�9,�����sX,�+,&yS�������a������M��b)_a1ɛ:��R��b�7u��<a1��K� -�I��9,�����sX,�+,&yS�������a������M��b)_a1ɛ:��R��b�7u��<a1��K� -�I��9,�����sX,�+,&yS�������a������M��b)_a1ɛ:��R��b�7u��|�ų���a������M��b)_a1ɛ:��R��b�7u��<a1��K� -�I��9,�����sX,�+,&yS�������a������M��b)_a1ɛ:��R��b�7u��<a1��K� -�I��9,�����cX,�oa1��9��N���u��|��$o�K������sX,�+,&uS�������a�t��Ť.�K� -����9,�����cX��+,u3�X�WXL��a������M�b�~�I]�9,v���>�sX,�+,&yS�X�WXL��a������M��b'OX�:��R��b�7u��|��$o�K� -�I��9,v�� ?�sX,�+,&yS�X�WXL��a������M��b%�a�,?�sX,�+,&yS�X�WXL��a������M��b'OX�:��R��b�7u��|��$o�K� -�I��9,v�� ?�sX,�+,&yS�X�WXL��a�����n�������Ͱx���?,~�C�O����VX��nE�?��o���_�������<��������eW��Q>ݿ|�U�U����w�{�U����*r�7u|�s�W�����ȥz����M�_E.��U�$o��*r���*r�'ί"w⼊�u~���W�����ȥ|����M���'�b�ț -�J�f�A���'�b�ț -�N����7�<� o*,(�^���<� o*,8y@�TXp�,������{1`�TXp�,������Y�ySa1�ɳ���b���ŀY~Pa1�ɳ���b��g1��M���'�b�ț -�J�f�A���'�b�ț -�N����7�<� o*,(�^���<� o*,8y@�TXp�,������{1`�TXp�,������Y�ySa1�ɳ���b��_-�� +N���7"�< o*D8y"@�T�P�=1�*D8y"@�T�p�D���0����ySa B��@�,?�0����ySa ��3��@��g �M��%�����@��g �M��'�@ț +N���7"���@�(?�0����ySa ��3��@��g �M��%�����@��g �M��'�@ț +N���7"�|D�� +N���7"�< o*D8y"@�T�P�=1�*D8y"@�T�p�D����@�s��P"�zD�� +N���7u�p��@��a 3��@��Y~P��^�.&D8u"��T�p�D����@�rg bV7"�:�n*D8y"@��y ¹�@�� J�"f�A��'�@ț +N���7"�< o*D(����"�< o*D8y"@�T�p�D���0��{ b�T�p�D���0����ySa ��3��@�����'"�< o*D8y"@�T�p�D���0��{ b�T�p�D���0����ySa ��3��@��Y~Pa ��3��@��g �M���a��D� ���w#�@�pG�@�#D��Q��l D�\"��ۿ}���~���<������o������3�}����/-o��}~y�r�~/�?�M',~wӷ���g�I��9,v�� ?�sX,�+,&yS�X�WXL��a������M��b'OX�:��R��b�7u��|��$o�K� +�I��9,v�� ?�sX,�+,&yS�X�WXL��a������M��b'OX�:��R��b�7u��|��$o�K� +�I��9,v�� ?�sX,�+,&yS�X�WXL��a������M��b'OX�:��R��b�7u��|��$o�K� +�I��9,v�� ?�sX,�+,&yS�X�WXL��a������M��b%�a�,?�sX,�+,&yS�X�WXL��a������M��b'OX�:���} �I]�9,�����sX,�+,&ySǰعWX�f�a�T����M��b)_a1ɛ:���} �I]�9,v���>�sX,�+,&ySǰX��a1��9��R��br7u��<a1��K�5,&u1�X�WXL��a������M��b'OX�:��R��b�7u��|��$o�K� +�I��9,v�� ?�sX,�+,&yS�X�WXL��a������M��b'OX�:��R��b�7u��|��$o�K� +�I��9,v�� ?�sX,�+,&yS�X�WXL��a������M��b'OX�:��R��b�7u��|��$o�K� +�I��9,V���:��R��b�7u��|��$o�K� +�I��9,v�� ?�sX,�+,&yS�X�WXL��a������M��b'OX�:��R��b�7u��|��$o�K� +�I��9,v�� ?�sX,�+,&yS�X�WXL�a�t_�bRs��:a1��K� +�I��),���a1���X�WXL��a��',�A�b龆Ť.�K� +����9,�����cX��+,u3�X�WXL��a������M�b龆Ť.�;u�bp�9,�����sX,�+,&yS�X�WXL��a��',�A��b)_a1ɛ:��R��b�7u��|��$o�;y�b��9,�����sX,�+,&yS�X�WXL��a���x���9,�����sX,�+,&yS�X�WXL��a��',�A��b)_a1ɛ:��R��b�7u��|��$o�;y�b��9,�����sX,�+,&yS�x�`UXL7t��}�{;,�����_�P���#����[�Ͽ������o���?��?�7�{���_���(��_>�*��*��vsݻ۽�*�nhx9ɛ:��ܹ�A���U�R�^EN�ί"���*r�7uz�T9���W�;q^E�:��\��I���U�R�^EN��b��g1��M���%ߋ����b��g1��M���'�b�ț +�N����7�|/�� +�N����7�<� o*,8y@�TXP�0�*,8y@�TXp�,������Y�ySa1@��b�,?����Y�ySa1�ɳ���b��g1��M���%ߋ����b��g1��M���'�b�ț +�N����7�|/�� +�N����7�<� o*,8y@�TXP�0�*,8y@�TXp�,������Y�ySa1���,�� �N����7�<� o*,8y@�TXP�0����k1��ń����b��� �N����7u^P�,��f�b�Sg1��M���'�b�ț:/8�Z�u1a1@��b��>����Y�yS����^��.&,8u��TXP�0����k1��ń����b��� �N����7�|/�� �N����7�<� o*,8y@�TXP�0�*,8y@�TXp�,������Y�ySa1@��b�,?����Y�ySa1�ɳ���b��g1��M���%ߋ����b��g1��M���'�b�ț �N����7�|/�� -�N����7�<� o*,8y@�TX0�ŀQ~Ra1�ɳ���b��g1��M���'�b�ț -�J�f�A���'�b�ț -�N����7�<� o*,(�^���<� o*,8y@�TXp�,������{1`�TXp�,������Y�yS����^��.&,(�^���<� o���o� ~O���'�b��� +�N����7�<� o*,8y@�TX0�7�����b��g1��M���'�b�ț +�N����7�|/�� +�N����7�<� o*,8y@�TXP�0�*,8y@�TXp�,������Y�ySa1@��b�,?����Y�ySa1�ɳ��ν@]LXP�0�*,8y@��q1���� ~O���'�b��� �J�f�A��{-������Y�wSa1�ɳ��ʝŀY�LXp�,������Y�yS����^��.&,(�^���<� o*,8y@�TXp�,������{1`�TXp�,������Y�ySa1�ɳ���b���ŀY~Pa1�ɳ���b��g1��M���'�b�ț -�F~�0�O*,8y@�TXp�,������Y�ySa1@��b�,?����Y�ySa1�ɳ���b��g1��M���%ߋ����b��g1��M���'�b�ț -�c�����b��*X��X�B�����|����ek1��s������~���w������~����~���?��ˏ?��QT����[�W־�����˯~7��7�t��ݍ��74�����B���i=A�Th=�<�'ț -�����yS��T��z�� +�F�f1`��TXp�,������Y�ySa1�ɳ���b���ŀY~Pa1�ɳ���b��g1��M���'�b�ț +�J�f�A���'�b�ț +�N����7���-� �ŀwU��0�ѱ��._O���+-���b����;��?��������?��˟���ˏ���飨�������X����^/������p>Ѝ�w7>�����z�� �����yS��t� o*��N���M��S�w�9�*��N���M�����z����z:yZO�7ZO%߭�,?��z:yZO�7ZO'O� �B���i=A�Th=�|�����B���i=A�Th=�<�'ț �����yS��T��z�� -�����yS��t� o*��N���M���ȯZ�Q~R��t� o*��N���M�����z����z*�n=g�A�[O�^�'�� ��S��wS��t� o��z*wZ�Y�Lh=�:�'�� -�����yS��ӹW� �bB�Ի���ZO'O� �έ�s���ń�ө�z����z*�n=g�A�[O�^�'�� ��S��wS��t� o*��J�[�Y~P��t� o*��N���M�����z����z*�n=g�A�����z����z:yZO�7ZO'O� �B�����ZO'O� �B���i=A�Th=�<�'ț -�����s�Th=�<�'ț -�����yS��t� o*��J�[�Y~P��t� o*��N���M�����z����z�U�9�O*��N���M�����z����z:yZO�7ZO%߭�,?��z:yZO�7ZO'O� �B���i=A�Th=�|�����B���i=A�Th=�<�'ț +�����yS��t� o*��N���M��S�w�9�*��N���M�����z����z:yZO�7ZO#�z�� +�����yS��t� o*��N���M��S�w�9���z:�j=A]Lh=�:�'�� +�����yS��S��z��fB���i=��Th=�<�'ț:��νZOPZO�ޭ��>��z:yZO�7un=�{���.&��N���M��S�w�9���z:�j=A]Lh=�:�'�� +�����yS��T��z�� +�����yS��t� o*��N���M��S�w�9�*��N���M�����z����z:yZO�7ZO%߭�,?��z:yZO�7ZO'O� �B���i=A�Th=�|�����B���i=A�Th=�<�'ț �����yS��T��z�� -�����yS��t� o��z:�j=A]Lh=�z�����B���i=A�Ա�t�����z:qZOP7ZO%߭�,?�s��ܫ�u1��t괞�n*��N���M�[O�N�9�� ��S��wS��t� o��z:�j=A]Lh=�z�����B���i=A�Th=�<�'ț +�����yS��t� o*��N���M����ߴ����B���i=A�Th=�<�'ț �����yS��T��z�� -�����yS��t� o*��N���M��S�w�9�*��N���M�����z����z:yZO�7ZO#�j=G�I�����z����z:yZO�7ZO'O� �B�����ZO'O� �B���i=A�Th=�<�'ț +�����yS��t� o*��N���M��S�w�9�*��N���M�����z����z:yZO�7ZO%߭�,?��z:yZO�7ZO'O� �έ�s���ń�S�w�9�*��N���M[O���� ~O��Ӊ�z����z*�n=g�A�[O�^�'�� ��S��wS��t� o��z*wZ�Y�Lh=�:�'�� +�����yS��ӹW� �bB�Ի���ZO'O� �B���i=A�Th=�<�'ț �����s�Th=�<�'ț -�����yS���D�z� ���]O9�����o��������$tj=�ei=��Z��������Q������ϯ�s�<�嗾�[���������m��74U���B����@�T���<�ț +�����yS��t� o*��J�[�Y~P��t� o*��N���M�����z����z���s��Th=�<�'ț +�����yS��t� o*��J�[�Y~P��t� o*��N���M�����z����z*�n=g�A�����z����z:yZO�7Z�!K��'��j=���O�[�����C�z���{:��벴�����?��?����_T���r�����q����K�˭�sW�m����m��74U���B����@�T���<�ț ՟���yS��S�]��� ՟���yS��s�T o*TN���M��O�w�7�*TN���M����S����P�9y�?�7�?%���,?�P�9y�?�7�?'O��B����@�T���|W���B����@�T���<�ț -՟���yS��3��o��T���<�ț -՟���yS��s�T o*TJ���Y~P��ϹW��bB��ԩ���T���<�ț:Wʝ�oV7�?�N��B����@�Թ�s�U����P�)���f�A����S����s��ܫ�u1��s�T�n*TJ���Y~P��ϹW��bB��ԩ���T���<�ț -՟���o�T���<�ț -՟���yS��s�T o*TJ���Y~P��s�T o*TN���M����S����P�)���f�A����S����P�9y�?�7�?'O��B�������?'O��B����@�T���<�ț -՟���o�T���<�ț -՟���yS��s�T o*TF~U��� -՟���yS��s�T o*TN���M��O�w�7�*TN���M����S����P�9y�?�7�?%���,?�P�9y�?�7�?'O��B����@�T���|W���B����@�T���<�ț:Wν�?P�?�����>�P�9y�?�7u�������{"TN���M��O�w�7��\�9���@]L���:��� -՟���yS��O�S���fB��ԩ���T���<�ț:Wν�?P�?�����>�P�9y�?�7�?'O��B����@�T���|W���B����@�T���<�ț +՟���yS��3�7��(?�P�9y�?�7�?'O��B����@�T���|W����՟s���ń�ϩS����P�9y�?�7u���;�߬n&TN���M����S����s��ܫ�u1��S�]��� +՟���yS��ϹW��bB��ԩ���T���|W����՟s���ń�ϩS����P�9y�?�7�?%���,?�P�9y�?�7�?'O��B����@�T���|W���B����@�T���<�ț ՟���yS��S�]��� -՟���yS��s�T o*TN���M���ȯ��Q~R��s�T o*TN���M����S����P�)���f�A����S����P�9y�?�7�?'O��B�������?'O��B����@�T���D�UpC��{Wֽܮ��;����ǧ˯����[�����V��/��Ï�{�~�{=�|?��ӧ�����y�����[����v��^�?���oW���7�/w/��>Z���(o������ϟ�|]M�zC~�t�?�Ǿ�FySo�/�Χ{����(o� �����O����bT�c�����/��3_W���ސ?�=??�g��FySoȟ�>?i���Q]���'��Q?���ԏ��O�����7��<W���ސ_>������bT����|~z�귫�����Gs������(o�����G��g���v1��y��p����~��jt7�������}��j�7�����I?�߮E�{���ϗ/��?���&�A�!�|.O�����Q�������������j�7�����<~֏��j�7�c����yx��}]M�zC~�t>?�Ǿ�FySo�/����}��j�7����W���Q�TxѼ����� -/�w�h�M��;y^4��<�3 o*L�(�����&g�<�3 o*L�8y&g@�T��q�L��09��{rf�T��q�L��09�䙜ySar��39��䌒�əY~Par��39��䌓gr�M��'��ț -�3J�'gf�A��'��ț -�3N���7&g�<�3 o*L�(�����&g�<�3 o*L�8y&g@�T��q�L��09c�W�3����䌓gr�M��'��ț -�3N���7&g�|O���:O�8���u1arƩ39��䌓gr�M�'g�;�3���09�ԙ�wSar��39�Γ3ν&g@]L��Q�=93�*L�8y&g@��yrƹ���� �3N��p7&g�|O���:O�8���u1arƩ39��䌓gr�M��%ߓ3����䌓gr�M��'��ț +՟���yS��s�T o*TN���M��O�w�7�*TN���M����S����P�9y�?�7�?%���,?�P�9y�?�7�?'O��B����@�T����M�7�O*TN���M����S����P�9y�?�7�?%���,?�P�9y�?�7�?'O��B����@�T���|W���B����@�T���<�ț +՟���yS��S�]��� +՟���yS��s�T o�\�9���@]L���zW���B����@�Ա�s�k���D���8��� +՟���o�Թ�s�U����P�9u�?p7�?'O���՟r����̈́�ϩS����P�9y�?�7u���{U�.&TJ����}P��s�T o*TN���M����S����P�)���f�A����S����P�9y�?�7�?'O��B�������?'O��B����@�T���<�ț +՟����F�I����S����P�9y�?�7�?'O��B�������?'O��B����@�T���<�ț +՟���o�T���<�ț +՟���yS��5W�� ���]Y�r�������.��~���o]������_������z��p�zl� �|vO�n>�����?$��o]������y�{xxy���>�_�FySo�_�^>}����(o������ϟ�|]M�zC~�t�?�Ǿ�FySo�/�Χ{����(o� �����O����bT�c�����/��3_W���ސ?�=??�g��FySoȟ�>?i���Q]���'��Q?����n���ͧ�G����PF��A~Ro�/�� S��~1��y�|�d>?=[��jt7������?�g~��M�X~�h^��\�����7�wO__�ǽ�FwSoȟ��_��g��FySo�_��#��Z�'~��|�B���}��jR�����to���M�!�|._^��ɯW���7����~�Q�ԏ��O���>�u5�� �����`���M�!�|:������Q����^ ��ʯW����y%�/���^4��y�<ț +/�w�h�M��;y&g@�T��Q�=93�*L�8y&g@�T��q�L��09�䙜ySarF����,?�09�䙜ySar��39��䌓gr�M��%ߓ3����䌓gr�M��'��ț +�3N���7&g�|O��� +�3N���7&g�<�3 o*L�8y&g@�T��Q�=93�*L�8y&g@�T��q�L��09�䙜ySar���LΌ� +�3N���7&g�<�3 o*L�8y&g@�T��Q�=93��<9��kr�ń������ +�3N���7u��Q�L���f��Sgr�M��'��ț:O�8���u1arF�����>�09�䙜yS���^�3�.&L�8u&g��T��Q�=93��<9��kr�ń������ �3N���7&g�|O��� �3N���7&g�<�3 o*L�8y&g@�T��Q�=93�*L�8y&g@�T��q�L��09�䙜ySarF����,?�09�䙜ySar��39��䌓gr�M��%ߓ3����䌓gr�M��'��ț -�3N���7&g��jrf��T��q�L��09�䙜ySar��39��䌒�əY~Par��39��䌓gr�M��'��ț +�3N���7&g�|O��� +�3N���7&g�<�3 o*L�8y&g@�T��1�7�3����䌓gr�M��'��ț +�3N���7&g�|O��� +�3N���7&g�<�3 o*L�8y&g@�T��Q�=93�*L�8y&g@�T��q�L��09�䙜ySarF����,?�09�䙜ySar��39�Γ3ν&g@]L��Q�=93�*L�8y&g@��qrƩ��3 ~O��'���� +�3J�'gf�A�'g�{M��09�ԙ�wSar��39�Γ3ʝəY�L��q�L��09�䙜yS���^�3�.&L�(�����&g�<�3 o*L�8y&g@�T��q�L��09��{rf�T��q�L��09�䙜ySar��39��䌒�əY~Par��39��䌓gr�M��'��ț +�3F�frf��T��q�L��09�䙜ySar��39��䌒�əY~Par��39��䌓gr�M��'��ț �3J�'gf�A��'��ț -�3N���7&g�<�3 o*L�(�����&g�<�3 o*L�8y&g@��yrƹ���� �3J�'gf�A��'��ț:N�8�����arƉ39��䌒�əY~P���^�3�.&L�8u&g��T��q�L����rgrfV7&g�:�3�n*L�8y&g@��yrƹ���� �3J�'gf�A��'��ț -�3N���7&g�<�3 o*L�(�����&g�<�3 o*L�8y&g@�T��q�L��09��{rf�T��q�L��09�䙜ySar��39��䌑_MΌ� -�3N���7&g�<�3 o*L�8y&g@�T��Q�=93�*L�8y&g@�T��q�L��09�䙜ySarF����,?�09�䙜ySar��39����8��&g����̻Y���'g�;:&g�����[� �3�L�<�M�������_���������w?~���/����z������~�Wھ����˷ҷ�5�݂�Ƴ[p}��n��3�����[���-�yS����n��n&�8uv��T�-p������n�S����=v�x��� -�N���7v�<� o*�8yv@�T�-P�[0�*�8yv@�T�-p������[���-�ySa�@��n�,?��[���-�ySa��ɳ[���n��g���M��%����n��g���M��'�nț +�3N���7&g��797�&g�ͺ�3��3_hr��|��̺,�3�ə�����������o���>���o����w���_�V������O�����������w�g�`������a���ۙv��T�-p������n�rg�`V7v�:��n*�8yv@��q����� ~O��%����n��g���M��'�nț �N���7v�|��� �N���7v�<� o*�8yv@�T�-P�[0�*�8yv@�T�-p������[���-�ySa�@��n�,?��[���-�ySa��ɳ[���n��g���M��%����n��g���M��'�nț -�N���7v��j�`��T�-p������[���-�ySa��ɳ[���n���݂Y~P���^��.&�8uv��T�-p������n�rg�`V7v�:��n*�8yv@��y����n�� �J�wf�A��'�nț:�8��-�u1a����[���n���݂Y~P���^��.&�8uv��T�-p������[��{�`�T�-p������[���-�ySa��ɳ[���n���݂Y~Pa��ɳ[���n��g���M��'�nț -�J�wf�A��'�nț -�N���7v�<� o*�(��-��v�<� o*�8yv@�T�-p������[��{�`�T�-p������[���-�ySa��ɳ[���n��_��� -�N���7v�<� o*�8yv@�T�-P�[0�*�8yv@�T�-p������[���-�ySa�@��n�,?��[���-�ySa��ɳ[���n��g���M��%����n��g���M��'�nț:�8��-�u1a�@��n��>��[���-�yS���~�-��{"�8qv@�T�-P�[0��[��k���ń���n�� -�N���7u�-P����f�n�Sg���M��'�nț:�8��-�u1a�@��n��>��[���-�ySa��ɳ[���n��g���M��%����n��g���M��'�nț �N���7v�|��� -�N���7v�<� o*�8yv@�T�-0�݂Q~Ra��ɳ[���n��g���M��'�nț +�N���7v�<� o*�8yv@�T�-P�[0�*�8yv@�T�-p������[���-�ySa�@��n�,?��[���-�ySa��ɳ[���n��g���M��#�[0�O*�8yv@�T�-p������[���-�ySa�@��n�,?��n�s��Pv�:��n*�8yv@��y�@��[0�� �N��p7v�<� o�[��k���ń������n��g���M�w�{�����[���-�wSa�@��n�,?��n�s��Pv�:��n*�8yv@�T�-P�[0�*�8yv@�T�-p������[���-�ySa�@��n�,?��[���-�ySa��ɳ[���n��g���M��%����n��g���M��'�nț +�N���7v�|��� +�N���7v�<� o*�8yv@�T�-P�[0�*�8yv@�T�-p������[���-�ySa������� +�N���7v�<� o*�8yv@�T�-P�[0�*�8yv@�T�-p������[���-�ySa�@��n�,?��[���-�ySa��ɳ[���n��g���M��%����n��g���M��'�nț:�8��-�u1a�@��n��>��[���-�yS�������=v�8��n*�(��-��u�-p�[��b�n�Sg���M��'�nț:�(wvfu3a����[���n��g���M�w�{�����[��{�`vT�-p������[���-�ySa��ɳ[���n���݂Y~Pa��ɳ[���n��g���M��'�nț +�J�wf�A��'�nț +�N���7v�<� o*���݂Q~Ra��ɳ[���n��g���M��'�nț �J�wf�A��'�nț �N���7v�<� o*�(��-��v�<� o*�8yv@�T�- -{�[�7�v�m�����[�z���E5��˲[���[��������_�ӷ����O�����3ھ<���?W�������[����[N=}�C=���L�<�� -�����yS�zީ��y�'B=�Ļ����y'O=�B=���A�T��<�<ț +{�[�7�v�m|��[0�ѱ[�H���/_T�n��,���݂���o�������������嗿����a�������</_���X�z~����o�x��?����wS��w��� o�X�;����{"��J���Y}P��w��� o*��N�z�M�z��Sσ��P�+���g�A�z��Sσ��P�;y�y�7�y'O=�B=�仞���y'O=�B=���A�T��<�<ț ����z~�T��<�<ț �����yS��w��� o*��J���Y~P��w��� o*��N�z�M�z��Sσ��P�+���g�A�z��Sσ��P�;y�y�7�y'O=�B=�仞���y'O=�B=���A�T��<�<ț ����z~�T��<�<ț -�����yS��w��� o*��J���Y~P��w��� o*��N�z�M�z��Sσ��P�+���g�A�z��Sσ��P�;y�y�7�y'O=�B=o�W��(?�P�;y�y�7�y'O=�B=���A�T��|�������s�z�ńzީSσ��P�;y�y�7u��;���n&��N�z�M�z��Sσ��s=�ܫ�u1��W�]��� -�����yS�zW=�bB=�ԩ���T��|�������s�z�ńzީSσ��P�;y�y�7�y%���,?�P�;y�y�7�y'O=�B=���A�T��|����B=���A�T��<�<ț -�����yS��W�]��� -�����yS��w��� o*��N�z�M�z^�w=?�*��N�z�M�z��Sσ��P�;y�y�7�y%���,?�P�;y�y�7�y'O=�B=���A�T������'�y'O=�B=���A�T��<�<ț +�����yS��w��� o*��F����'�y'O=�B=���A�T��<�<ț +����z~�Թ�w�Uσ��P�;u�yp7�y'O=����r����̈́zީSσ��P�;y�y�7u��{��.&��J����}P��w��� o�\�;���A]L��:�<�� +����z~�Թ�w�Uσ��P�;u�yp7�y'O=�B=�仞���y'O=�B=���A�T��<�<ț ����z~�T��<�<ț -�����yS��w��� o*��J���Y~P��w��� o*��N�z�M�z��Sσ��P�+���g�A�z��Sσ��P�;y�y�7u��{��.&��J����}P��w��� o�X�;�[=��D��8�<�� -����z~�Թ�w�Uσ��P�;u�yp7�y'O=����r����̈́zީSσ��P�;y�y�7u��{��.&��J����}P��w��� o*��N�z�M�z��Sσ��P�+���g�A�z��Sσ��P�;y�y�7�y'O=�B=�仞���y'O=�B=���A�T��<�<ț -���_����B=���A�T��<�<ț +�����yS��w��� o*��J���Y~P��w��� o*��N�z�M�z��Sσ��P�+���g�A�z��Sσ��P�;y�y�7�y'O=�B=�仞���y'O=�B=���A�T��<�<ț +������G�I�z��Sσ��P�;y�y�7�y'O=�B=�仞���y'O=�B=���A�T��<�<ț +����z~�T��<�<ț +�����yS��w��� o*��J���Y~P��w��� o*��N�z�M��y�^�<�� ��R�z~vT��<�<ț:��N}��A������uS��W�]���:��ν�yP�y�N=�B=���A�Թ�W��P�;u�yp7�y'O=����s�z�ńz^�w=?�*��N�z�M�z��Sσ��P�;y�y�7�y%���,?�P�;y�y�7�y'O=�B=���A�T��|����B=���A�T��<�<ț +�����yS��7�7��(?�P�;y�y�7�y'O=�B=���A�T��|����B=���A�T��<�<ț �����yS��W�]��� -�����yS��w��� o*��N�z�M�z^�w=?�*��N�z�M�z��Sσ��PϏ�����V=��P�����z��3���//Tϯ�R�y�����?����������������};;��w __�A�2�������|~'��M����������j�7�j'OR �BR��I�A�TH��|'ճ��BR��I�A�TH��<I5ț +�����yS��w��� o*��c���y��UϿ+ԇz~�����������������_�������?����_~�?� ����_�۷��|�����7��<_������z��T���!�������M���ɓT����T;y�j�7�j%�I�,?��T;y�j�7�j'OR �BR��I�A�TH��|'ճ��BR��I�A�TH��<I5ț I��'�yS!�V�T�� I��'�yS!�v�$� o*$�N���M��Z�wR=�*$�N���M���ɓT����T;y�j�7�j%�I�,?��T;y�j�7�j'OR �BR��I�A�TH��|'ճ��BR��I�A�TH��<I5ț I��'�yS!�V�T�� -I��'�yS!�v�$� o*$�N���M��Z�wR=�*$�N���M���ɓT����T;y�j�7�j#�J�G�I���ɓT����T;y�j�7�j'OR �BR��;���uN��{%ՠ.&$�N���M���ɓT���sR��I�gu3!�v�$��n*$�N���M��j�^I5�� I�R�zvTH��<I5ț:'�ν�jP�j�NR �BR��;���uN��{%ՠ.&$�N���M���ɓT����T+�N�g�A���ɓT����T;y�j�7�j'OR �BR��;����j'OR �BR��I�A�TH��<I5ț -I���z�TH��<I5ț -I��'�yS!�v�$� o*$�J���Y~P!�v�$� o*$�N���M���ɓT����T+�N�g�A���ɓT����T;y�j�7�j'OR �BRm�WI�(?��T;y�j�7�j'OR �BR��I�A�TH��|'ճ��BR��I�A�TH��<I5ț +I��'�yS!�v�$� o*$�N���M�����$գ��BR��I�A�TH��<I5ț +I��'�yS!�V�T��:'�ν�jP�j�NR �BR��I�A��9�V�$ճ���T;u�jp7�j'OR ��I�s���ń�Z�wR=�*$�N���M��j�^I5�� I�S'�wS!�V�T��:'�ν�jP�j�NR �BR��I�A�TH��|'ճ��BR��I�A�TH��<I5ț +I��'�yS!�V�T�� +I��'�yS!�v�$� o*$�N���M��Z�wR=�*$�N���M���ɓT����T;y�j�7�j%�I�,?��T;y�j�7�j'OR �BR��I�A�TH��|'ճ��BR��I�A�TH��<I5ț +I��'�yS!�6�7I�(?��T;y�j�7�j'OR �BR��I�A�TH��|'ճ��BR��I�A�TH��<I5ț I��'�yS!�V�T�� I��'�yS!�v�$� o*$�N���M��Z�wR=�*$�N���M���ɓT���sR��+�u1!�V�T�� -I��'�ySǤکߒj�'BR��I�A�TH��|'ճ���I�s���ń�ک�T����T;y�j�7uN��;I��n&$�N���M���ɓT���sR��+�u1!�V�T�� -I��'�yS!�v�$� o*$�N���M��Z�wR=�*$�N���M���ɓT����T;y�j�7�j%�I�,?��T;y�j�7�j'OR �BR��I�A�TH���*��'�j'OR �BR��I�A�TH��<I5ț +I��'�ySǤک�I5��!�v�$ՠn*$�J���Y~P�ڹWR �bBR��I���TH��<I5ț:'�ʝ�zV7�j�NR �BR��I�A��9�v�T����T+�N�g�A���ɓT����T;y�j�7�j'OR �BR��;����j'OR �BR��I�A�TH��<I5ț +I���z�TH��<I5ț +I��'�yS!�v�$� o*$�F�&��'�j'OR �BR��I�A�TH��<I5ț I���z�TH��<I5ț -I��'�yS!�v�$� o*$�J���Y~P!�v�$� o*$�N���M��z,�]R 7����z�t;��������{��Y_^�>�|������߾�{����|�xuc���^�>��u��}���o��l ����'endstream +I��'�yS!�v�$� o*$�J���Y~P!�v�$� o*$�N���M��z,�]R 7���w��Twt�����=�끬//w_�_�~x������o_�ܽ�?}͍]�|sc���^�>��u��}���o��������,endstream endobj 1445 0 obj << /Type /Page @@ -4388,14 +4405,14 @@ endobj 1534 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [118.5554 145.4346 174.2362 154.4009] +/Rect [118.5554 145.5543 174.2362 154.4009] /Subtype /Link /A << /S /GoTo /D (param-email) >> >> endobj 1535 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.0237 145.4346 538.9788 154.4009] +/Rect [527.0237 145.5543 538.9788 154.4009] /Subtype /Link /A << /S /GoTo /D (param-email) >> >> endobj @@ -4430,14 +4447,14 @@ endobj 1540 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [118.5554 106.7 221.2895 115.5466] +/Rect [118.5554 106.5803 221.2895 115.5466] /Subtype /Link /A << /S /GoTo /D (param-shadowdatabase) >> >> endobj 1541 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.0237 106.7 538.9788 115.5466] +/Rect [527.0237 106.5803 538.9788 115.5466] /Subtype /Link /A << /S /GoTo /D (param-shadowdatabase) >> >> endobj @@ -4449,7 +4466,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 1591 0 obj << -/Length 59702 +/Length 59704 /Filter /FlateDecode >> stream @@ -4493,7 +4510,7 @@ M M�W�pO��iۉ̚��@�i��@]Ӵy��O����o��i����������uw9m}��zj�-��u�������?T4��k���w�˷����(��xz��緟��c�/����[6z��6��@fk��GҔ��t��V�LhD� �l�P�d�z�2�+ɪ ��eBQ ��z�\2�%�* ��eBE ���e˄~@$��˖ �D�݀V�̾��л��j��eB' �U �e�� �>@�Z"�"We��L�D����l�} �G �w?&B qg��=���@/[f�?�������w�#WW�{�2��"�{��������{�c"\��\���a˄�������l�p�?��]�V�L��ɺ��˖ ��#Y��{�2�$�/[&\�O�y���=n�G�.���e���H���^�L��ɺ��˖ ��y��oeτ�����l�p�?�u���-��G�����e�E�D���[�3�$�/[&\�d���e˄�������l�py?����V�L��ɺ��˖ ��#Y��{�2��~$��~/[&\�����\2�~$�~/[&\Տd���e˄{���k��l�pI?���V�L��ɺ��˖ ��#Y��{�2�n~$�j~/[&\�O�y/��=n�G�.���e�H֍�^�L��ɺ��˖ ��y��oeτ�������l�p ?�u��-����� -~�~L���;�߷�g���H���^����}�7�{�Cܻ�T]��]˄K��<�ܷ�g�7�#x\��ݏ�p�>ru۾�-��G�����e��X��[��}��}[&\��dݰ�e����G�^�r}�λ�-�p�>�u���-��G�n���e�H֕�^�L�P���>}+{&ܦ�d]��e˄�������l�p�>�u���-.�'�C�ʞ 7�#Y�{�2��|$��|/[&ܝ�d]��e˄���to��K&ܚ�d]��e˄+��l�p_>�u]��-.�'�+�ʞ 7�#Y�{�2�|$�|/[&ܑ�d]��e˄�<�Ƿ�g���H���^�L�ɺ�˖ �ⷯl������⟞�|ؾ��8�N��Ŀ[�.ŏS�V����?���y���O�/������<���'�ރ�<Ώ�{��Kaڇ�_ +~�~L���;�߷�g���H���^����}�7�{�Cܻ�T]��]˄K��<�ܷ�g�7�#x\��ݏ�p�>ru۾�-��G�����e��X��[��}��}[&\��dݰ�e����G�^�r}�λ�-�p�>�u���-��G�n���e�H֕�^�L�P���>}+{&ܦ�d]��e˄�������l�p�>�u���-.�'�C�ʞ 7�#Y�{�2��|$��|/[&ܝ�d]��e˄���to��K&ܚ�d]��e˄+��l�p_>�u]��-.�'�+�ʞ 7�#Y�{�2�|$�|/[&ܑ�d]��e˄�<�Ƿ�g���H���^�L�ɺ�˖ �ⷯl������⟞����8�N��Ŀ[�.ŏS�V����?���y���O�/������<���'�ރ�<Ώ�{��Kaڇ�_ ���͗¼x��Ka��T�R�ח����0>���K*|)L��Ka��T�R�ח����0�/��S�Ka"|~)L��T�R�ח����0�/��S�Ka2\_ ���D��R�/��0�/��S�Ka2\_ ���d��]�{*��"|�z��B�+����S���y�P��p5���T�z%�S٫�k*Խ2\}/�=_���� @@ -4507,7 +4524,7 @@ m }����/�Pi�pu���Th�e�jm�{*�2\�6�=�m �Tnk� ��W� pO��[�����B�-��r�S������%�n���� m�W� pO��[�����B�-�g��K*��2\�7�=�o���� -左������F������[�D��KaN��'�� +左������F����·��[�D��KaN��'�� p��,������O��Ԁ�����%f��߾y����������/��n���܇'������������_O#����ny��N��ӄ�� |�3\]C�=����!�� ]�W�pO��a�Ϯa��T�f����{*t 3\]C�=����!�� ]��]�/��5�pu �T�f����{*t 3\]C�=��>��=^R�k�����5�pu �T�f����{*t #|v {��B�0��5�S�k�����5�pu �T�&�Sװ�k*t 3\]C�=����!�� @@ -4546,7 +4563,7 @@ p ��B�4�U/�S�^�^��%��z)�� ��W�pO�zi��^ ��B�4�g���K*�K3\�R�=��z)�� -�Ҷ��K�F����Χ�zi�D��^�?�n�� ��Ԭ�^�z���������@ӷR���a��_gyY^��l`�=X�O�4�^<P���S����j`����p5���Th`E�l`�xI�V�����B+����S����j`��������� +�Ҷ��K�F�������zi�D��^�?�n�� ��Ԭ�^�z���������@ӷR���a��_gyY^��l`�=X�O�4�^<P���S����j`����p5���Th`E�l`�xI�V�����B+����S����j`��������� �WpO�V�����B+����S��᳁��%X��� �WpO�V�����B+��X-^S����j`����p5���Th`e�X�{*4�"|6�z��� �� ,�-X�؞ �WpO�X��VO{&4�2Z ,�=X����7�2{4���Lh`E�l`�vI�V������ �� ,�-X�؞ @@ -4558,7 +4575,7 @@ p �WpO�V��V��Th`e�X�{*4�2\ ,�=X��� �� �/����p5���Th`e�X�{j�������2��ѳ���%X����6�2zm`�1X�О �� �/�}+�Gh˄VF����B+����S�Vd���Ӟ ��VlO�V������ �� ,�-X=X�]R����j`����p5���Th`e�X�{*4�"|6�z��B+����S����j`����p5���Th`E�l`�xI�V�����B+����S����j`���J�V��Th`e�X�{*4�2\ ,�=X��� - �� �/����p5���Th`e�X�{*4�2\ ,�=X>X=^R����j`����p5���Th`5����4X��5��'���"��ۯ,��8����������G��a�m������1�zo`����~������~��_~���R�:�˯o�<+�5<,?����-�t���܇'���9����{�@/��4➺�_w������i�=u�����9��ӈ{�k���;�}���ӄ�� |yw��e��� |yw���e��� ���-?����a�-���������4�%u?�n�S���ӈ{�~����~i�ܐ�w�r�_��4ڞ����_ޚ���: xM�����tM���H[憼�3o_]��i�=u_ޚ��_O#����,3���D{�|�]������� ��;��k>N#��}w�_�g����=.�����|�&��n���r=�/�8���n���r9<R|=���n��{s>�/�zqO�� + �� �/����p5���Th`e�X�{*4�2\ ,�=X>X=^R����j`����p5���Th`5����4X�t>m7��'���"��ۯ,��8����������G��a�m������1�zo`����~������~��_~���R�:�˯o�<+�5<,?����-�t���܇'���9����{�@/��4➺�_w������i�=u�����9��ӈ{�k���;�}���ӄ�� |yw��e��� |yw���e��� ���-?����a�-���������4�%u?�n�S���ӈ{�~����~i�ܐ�w�r�_��4ڞ����_ޚ���: xM�����tM���H[憼�3o_]��i�=u_ޚ��_O#����,3���D{�|�]������� ��;��k>N#��}w�_�g����=.�����|�&��n���r=�/�8���n���r9<R|=���n��{s>�/�zqO�� ���9�җ}�&��n�˻s<�/�8���n��w�����q�=�����<N����<����q�Kj���!>�y�pO��y<��7���7�����q�=�����7�^R�o����{j���!>�y�pO��y<��7���7�g�vo�/���M����=�߽ �{C����7!>vo��~�&õ{xI�woB|�����M����=�߽ �{C����7���Kj�{�c��pO�woB|�����M����=�߽�p���^R�ݛ�7�{j�{�c��pO�woB|�����M��ݛ����M����=�߽ �{C����7!>vo��~�&õ{xImwoB{ݽ!�2�ݛ��7d{j�{�c��pOmwo2{������MH���=�߽ �{C����7����m���MFk����ބ�ؽ!�S�ݛ�^wo���~�&��� ٞ���d�vo�/���Mh��7D[f�{�c��lO�woB|�����M�k����ބ�ؽ!�S�ݛ�7�{j�{�c��pO�wo2\�7���~�&��� ���ބ�ؽ!�S�ݛ�7�{j�{��ڽ����7!>vo��~�&��� ���ބ�ؽ!�S�ݛ�� �%�߽ �{C����7!>vo��~�&��� ����d�vo�/���M����=�߽ �{C����7!>vo��~�&���M���~�&��� ���ބ�ؽ!�S�ݛ�7�{j�{��ڽ����7!>vo��~�&��� ���ބ�ؽ!�S�ݛ�� �%�߽ �{C����7!>vo��~�&��� ����d�vo�/���M����=�߽ �{C����7����m���MFk����ބ�ؽ!�S�ݛ�~߽!�cb�{�c��hO�wo2\�7���v�&����-�߽ �{C����7!>vo��v�&��� О��ބ�ؽ!�S�ݛ�7�{j�{��� і���d�vo�.���M����=�߽ �{C����7!>vo��~�&õ{xI�woB|�����M����=�߽ �{C����7���Kj�{�c��pO�woB|�����M����=�߽��{��5�߽ �{C����7!>vo��~�&��� ����d�vo�/���M����=�߽ �{C����7!>vo��~�&õ{xI�woB|�����M����=�߽�7[��z��܇jvo�'*�7gؽ�%���8��{s^wo���~��?����ݜ�'��Y�Sz}���mk��|_�~�>��}xº q9얟�/���4�%u?���=��ӈ{�~ݝ�K����� |yw���e_O#��awz�ӗ}�&��n���~9��zqO�����횾��4➺�/�z�_��4➺��4�"|�j�xI�Q�ר�� �Z�Q-�=F�2\�Z�{*�jE���� �Z�Q-�=F�2\�Z�{j?���cTh˄Q����Z�]RaT+�5�����Z�=F���L��h�j���0���O�Z-^S�Q���Z@[&�je�F���T��p�j���VdkT��=F�2Z�Z`{*�je�F����vT+��Q-�?&¨V�Q��.�0�����SaT+�5���¨V�kTpO�Q���Z=^RaT+�5���¨V�kTpO�Q�ר�� @@ -4577,7 +4594,7 @@ p �Z�Q-�=F�2\�Z�{*�je�F���TՊ�9���%F�2\�Z�{*�je�F���T��p�j�0���O�Z-^SaT+�5���¨V�kTpO�Q�ר�� �Z>G�z��¨V�kTpO�Q�ר�� �Z�Q-�=F�"|�j�xI�Q�ר�� -�Z�Q-�=F��a�lTh�j=?���=��<����}w>�}zݍj�埽�������o{_:�~j���X�:��Z���_~���������x����[��DZ��:C_<�aw>^���S��)�+|>?~S�|�@]��K*>3\�O�= +�Z�Q-�=F��a�lTh�j=?P7��<����}w>�}zݍj�埽�������o{_:�~j���X�:��Z���_~���������x����[��DZ��:C_<�aw>^���S��)�+|>?~S�|�@]��K*>3\�O�= ���'�� ��W�pO��g���g��T(|f� ��{*>3\�O�= @@ -4613,7 +4630,7 @@ p ���'�� ��W�pO��g���g��T(|f� ��{*>3\�O�= -�M-1-|������/ۅ��~�s� �������h|�����Y���x���탤'�������[O}Wr�������m�+���tߕ���w%g��+pOm�+9���J�c"|Wr��J�� +�M-1-|�������ۅ��~�s� �������h|�����Y���x���탤'�������[O}Wr�������m�+���tߕ���w%g��+pOm�+9���J�c"|Wr��J�� ߕ����d�=�+9��]ɀ{*|Wr�뻒�T����ߕ��%�+9��]ɀ{*|Wr�뻒�T���WupO��|���|��T��g���{*T�3\�y�=����<�� �����/�P��pU��T��g���{*T�3\�y�=��>��=^R�:����P��pU��T��g���{*T�#|V�{��Bu>�U��S�:����P��pU��T��G����xI��|��:��Bu>�U��S�:����P���Y��� ��WupO��|��:��Bu>�U��S�:��O����P��pU��T��g���{*T�3\�y�=��>��=^R��|f��<Ж ���VulO��|��:������Vu��=����<؞ @@ -4627,7 +4644,7 @@ p ��WupO��|���|��T��g���{*T�3\�y�=���g���m�P���Y��� ��WupOm���V�����VuhO��|���|��Ծ:�٣:�eBu>�U��S�:����}u>�U��iτ�|F�:��Bu>�U��S��|f��<Ж �������.�P��pU��T��g���{*T�3\�y�=��>��=^R�:����P��pU��T��g���{*T�#|V�{��Bu>�U��S�:����P��pU��T��'�Su��k*T�3\�y�=����<�� ��WupO��|���|��T��g���{*T�3\�y�=����<�� -�����/�P��pU��T��g���{*T�۶wV������������iy���@��qlT�Oku����5���E���������/������߿;�~���O��������/y��?}w_��o����������?����%�s����^��W�O?��ݮ��F�ӇQ��0?�z~��^<P�a�� +�����/�P��pU��T��g���{*T�۶wV�����:_��������iy���@��qlT�Oku����5���E���������/������߿;�~���O��������/y��?}w_��o����������?����%�s����^��W�O?��ݮ��F�ӇQ��0?�z~��^<P�a�� Fe�>��S�èׇQ�{*|��è/��aT���(�=>��p}��Q����T�0*��Q=^R�èׇQ�{*|���0 pO��2\F��aT���z��Q����T�0*��a�������(�->����aTo�T�0*��a���~���Q�L��2XF���aT���z���Fe��0 h˄�2ZF����aT���(�=��0*��aTO{&|���0 @@ -4680,7 +4697,7 @@ CC �E����Z!>����~Y+õ�xI헵B|,k���V��e-�=�_� �E����Z�e-�Kj���cY�pO헵B|,k���V��e-�=�_֊���5�_� �E����Z!>����~Y+�Dz��/ke����/���V��e-�=�_� -�E����Z!>����~Y+õ�xI헵B|,k���V��e-�=�_�ꆡ�e-z��܇:?6���'���Z�W����8���u[�����ϟ>���O�_m9��o�ny���8.��=>�f���R��sb������M,�xI������� +�E����Z!>����~Y+õ�xI헵B|,k���V��e-�=�_�ꆡ�e-z��܇j���'���Z�W����8���u[�����ϟ>���O�_m9��o�ny���8.��=>�f���R��sb������M,�xI������� K��%�=&�2\K�{*L,E��X�� K��%�=&�2\K�{*L,e�&���T�X��9���%&�2\K�{*L,e�&����~b)���Ж K='�z����R�kb pO�'�2{L,m�0��њX�Sab)��&�Z���K�=&���L�X�hM,���0���X�S������RO{&L,e�&���T�X�pM,���RF�K�L����K=]Rab)�5�����R�kb pO������� K>'�z����R�kb pO������� @@ -4698,7 +4715,7 @@ CC K��%�=&�2\K�{*L,e�&���T�X��9���%&�2\K�{*L,e�&���T�X�pM,�0��sb��K*L,e�&���T�X�pM,�0���X�Sab)��&�Z����R�kb pO������� K��%�=&�"|N,�xI������� K��%�=&�2\K�{*L,E��X�� -K��%�=&�2\K�{*L,5#A��<ИXz~�nb�y��=�����x]���O,�S�K�ub�_��Ǻ�t:�?�|��8����ek]�tݝ�_/]�O�s�B�����zċz���������;_�>ˉ�q���������i�=u_ޝ��g9��F�S7���9�}=�����/˻s:B|�&��n�˻s<�/�8���n�˻s8�/�8���n�cl-�5���[�� �/�0��p�Sa�-�5���[�k� pO� ��n=^Ra�-�5���[�k� pO� �ׄ�� +K��%�=&�2\K�{*L,5#A��<ИXz~��c{b�y��=�����x]���O,�S�K�ub�_��Ǻ�t:�?�|��8����ek]�tݝ�_/]�O�s�B�����zċz���������;_�>ˉ�q���������i�=u_ޝ��g9��F�S7���9�}=�����/˻s:B|�&��n�˻s<�/�8���n�˻s8�/�8���n�cl-�5���[�� �/�0��p�Sa�-�5���[�k� pO� ��n=^Ra�-�5���[�k� pO� �ׄ�� n>'�z��[�k� pO� �ׄ���O�e��p�2a�-��[o�T�p�pM����[f� 7�-&�2Zn`{*L�%�ӄ[���~�-�DŽЖ n� 7�=&�2\n�{j?�ٚp�iτ ��ք؞ n� 7�=��p��u� ���0��s�K*L�e�&���T�p�pM��0��p�Sa�-��[��T�p�pM��0��p�Sa�-�5���[�� �/�0��p�Sa�-�5���[�k� pO� ��n=^Ra�-�5���[�k� pO� �ׄ�� n>'�z��[�k� pO� �ׄ�� @@ -4719,7 +4736,7 @@ CC �����/�Щ�pu��T�Tg�:Հ{*t�3\�j�=:�>;�=^R�S���T�Щ�pu��T�Tg�:Հ{*t�#|v�{��B�:�թ�S�S���T�}�:�G�h˄NuD�Nuo�T�Tg�:Հ{j۩��S ��D�Tg�:�@{*t�#|v�{�������j�-:��N5؞ ��W�pO�;Ց�NuO{&t�3Z�j�=:��N5���w�3{t���L�TG��T�vI�Nu��S ��B�:�թ�S�S���T�Щ��٩�� ��W�pO�Nu��S ��B�:�թ�S�S�S��%:��N5�� -��W�pO�Nu��S ��B�:��:�-^S�S���T�Щ�pu��T�Tg�:Հ{*t�#|v�{��B�:�թ�S�S���T�Щ�pu��T�TG��T�xI�Nu��S ��B�:�թ�S�S�6��N5<��T??�e�ݩn��t�/ԩ>]w���J��qlt���S�����/���?�����������'�OP}O��ז�_Ƿ����$��:�}x�]}���x=�|���a�-sC��n��-���h{��7�v����i�k���5o�2��0Җ�!/���zK��4ڞ��/o�����i�=u�痷�����^��iw}�ӷ{�F�S7���۵G���ӈ{�~�]���Y�?&nL$� ���=]Ra�"õL���2E�k�pO�e��2�� +��W�pO�Nu��S ��B�:��:�-^S�S���T�Щ�pu��T�Tg�:Հ{*t�#|v�{��B�:�թ�S�S���T�Щ�pu��T�TG��T�xI�Nu��S ��B�:�թ�S�S�6��N5<��T??Pשn��t�/ԩ>]w���J��qlt���S�����/���?�����������'�OP}O��ז�_Ƿ����$��:�}x�]}���x=�|���a�-sC��n��-���h{��7�v����i�k���5o�2��0Җ�!/���zK��4ڞ��/o�����i�=u�痷�����^��iw}�ӷ{�F�S7���۵G���ӈ{�~�]���Y�?&nL$� ���=]Ra�"õL���2E�k�pO�e��2�� �>�)z���2E�k�pO�e��2�� ��e �=�)"|.S�xI�e��2�� @@ -4751,7 +4768,7 @@ CC �=�)2\��{*,SD�\��� ��e �=�)2\��{*,S�� -�2<�X�x~�n��y��O����o����r��|ڝ�~�u\��p<n���tj�R�e���p8|������������ ����t�l�Ȓ��15R����H����F +�2<�X�x~��~{��y��O����o����r��|ڝ�~�u\��p<n���tj�R�e���p8|������������ ����t�l�Ȓ��15R����H����F ��T)�p����HAdk���=F 2Z#`{*�d�F ���v� �ב�?&�HAϑ��.�0R��)��Sa� �5R����HA�k��pO����#=^Ra� �5R����HA�k��pO����H�� @@ -4805,185 +4822,254 @@ z �埽������^)�tl��֑����/?�����O?��ۧ���>��Ƿ��O��|U����[��W�>��U??yӫ~�@]�pO�^u��W ��B�:�ի�S�W�W��%z��^5�� ��W�pO�^u��W ��B�:�g���K*��3\�j�=z��^5�� ��W�pO�^u��^u��T�Ug�zՀ{*��3\�j�=z��^5�� -�����/�Ы�p���T�Ug�zՀ{*��3\�j�=z�>{�=^R�W���U�Ы�p���T�Ug�zՀ{*��#|��{��B�:�ի�S�W���U�Ы�p���T�UG��U�xI�^u��W ��B�:�ի�S�W���U�ЫN�^u��T�Ug�zՀ{*��3\�j�=z��g��$������X����{I )��v���70q5��!����o���u�T�[�O��(���B_R�����WW ��BW]ừ��X�]ug��hۄ����U����Uw��j�}5wՕ��:Ӿ ]uG���W���puՀ�j�;{u�@�&t����l�U�;\]5ྚ���^]5ж ]uG���W�����Ug|�殺�WW �mBW�����U�;\]5� -]u��:�c��WW ��BW����U�;\]5� -]u��:�c��WW ��BW����U�;\]5� -]u��:�c��WW ��BW����U�;\]5� -]u��:�c��WW ��BW����U�;\]5� -]u��:�c��WW ��BW����U�;\]5� -]u��u����Uw��j�}��WW ��BW����U�+|w���Uw��j�}��WW ��BW����U�+|w���Uw��j�}��WW ��BW����U�+|w���Uw��j�}��WW ��殺�WW �mBW]ѻ���X�����U���SW ��"t���h_����wW���^]5ж ]uG���W���puՀ�j�+[]u�}��VW ��BW������Uw�ꪁ�M�+zw����Uw��j�}��WW ��BW����U�+|w���Uw��j�}��WW ��BW����U�+|w���Uw��j�}��WW ��BW����U������\�����U��Uw��j�}��WW ��BW]ừ��X�����U��Uw��j�}��WW ��BW]ừ��X�����U��Uw��j�}��X�w]5|��U������:|��U?CW�x�W�������Z[]�ө���~|����~<�����������?��������?����\���3������o1����Ve�B��ס�]�u���}�:�9t.�:�9t�p���:�� +�����/�Ы�p���T�Ug�zՀ{*��3\�j�=z�>{�=^R�W���U�Ы�p���T�Ug�zՀ{*��#|��{��B�:�ի�S�W���U�Ы�p���T�UG��U�xI�^u��W ��B�:�ի�S�W���U�ЫN�^u��T�Ug�zՀ{*��3\�j�����I+=��W�%�`�����R +��9d�o`�jtCC�����շ��ʷ*��QR9����9�۾ +]u����W�����Ug|�殺�WW �mBW�����U�;\]5ྚ���VW�i߄����U����Uw��j�}5w՝��j�m���]u��*t���p_�]ug��hۄ����U����UW��3>VsW�٫��6���hu�`�*t���p_����wW�� +]u����W���puՀ�*t���p_����wW�� +]u����W���puՀ�*t���p_����wW�� +]u����W���puՀ�*t���p_����wW�� +]u����W���puՀ�*t���p_����wW�� +]u����W���puՀ�*t���p_����Ϻ��U�;\]5� +]u����W���puՀ�*t���ꌏU�;\]5� +]u����W���puՀ�*t���ꌏU�;\]5� +]u����W���puՀ�*t���ꌏU�;\]5� +]u����WsW�٫��6�����Ug{�BW������Uw����r��VW ��BW]ừ��X�]ug��hۄ����U����Uw��j�}5wՕ��:Ӿ ]uG���W���puՀ�j�;{u�@�&t����l�U�;\]5� +]u����W���puՀ�*t���ꌏU�;\]5� +]u����W���puՀ�*t���ꌏU�;\]5� +]u����W���puՀ�*t� ~�UG|�BW����U�;\]5� +]u����W�����Ug|�BW����U�;\]5� +]u����W�����Ug|�BW����U�;\]5� +]u,������ϿP��7]�3tՏ��y�?��]����U?�����Ƿ������������~�������_��_�˕���7�O�:�����oU�+t����_������ �3ᾚC�_�3ᾚC�W��X͡s��Йp_͡s��Йp_͡s��Йp_͡s�+t|��й�W�L���й�W�L���й�W�L���й�:>Vs�\�+t&�Ws�\�+t&�Ws�\�+t&�Ws��� +��9t.�:�9t.�:�9t.�:�9t�p���:�� +� ��:�� +� ��:�� +� ��:w�Bg��j�K|�΄�j�K|�΄�j�K|�΄�j�;\�3�c5��%�Bg�}5��%�Bg�}5��%�Bg�}5���C���:�� � ��:�� � ��:�� -� ��:w�Bg��j�K|�΄�j�K|�΄�j�K|�΄�j�;\�3�c5��%�Bg�}5��%�Bg�}5��%�Bg�}5�����C�_�3ᾚC�_�3ᾚC�_�3ᾚC�W��X͡s��Йp_͡s��Йp_͡s��Йp_͡s�+t|��й�W�L���й�W�L���й�W�L���й�:>Vs�\�+t&�Ws�\�+t&�Ws�\�+t&�Ws�\�;t��\͡s��Йp_͡s��Йp_͡s��Йp_͡s�+t|��й�O�3Ѷ�C�^�3پ�C�_�3�C��^�3о�C�^�3پ�C�_�3�C��>��D�f�;Z�3�c5��%�Bg�}5�Υ} +� ��:w�Bg��j�K�:m�9t.�:���9t.�:�1t��:�9t.�:���9t.�:�1t.�S�L�m�й�:�=Vs�\�+t&�Wc�\ڧЙh�̡sI�Йl_͡s�+t|��й�O�3Ѷ�C�^�3پ�C�_�3ᾚC�W��X͡s��Йp_͡s��Йp_͡s��Йp_͡s�+t|��й�W�L���й�W�L���й�W�L���й�:>Vs�\�+t&�Ws�\�+t&�Ws�\�+t&�Ws��� +��9t.�:�9t.�:�9t.�:�9t�p���:�� +� ��:�� +� ��:�� +� ��:W��3>Ws�\�+t&�Ws�\�+t&�Ws�\�+t&�Ws��� +��9t.�:�9t.�:�9t.�:�9t�p���:�� +� ��:�� +� ��:�� +� ��:w�Bg��j�K|�΄�j�K|�΄�j�K�:m�9t�h��`��:�� +� ��:��g�L��b�Kx��D�j�;\�3�c5�Υ} ����:�� -����:w�Bg��j�K�:m�9t.�:���9t.�:�9t�p���:�� +����:�� +� ��:w� +����:�� +����:�� +� ��:��)t&�6s��� +���9t.�:�9t.�:�9t.�:�9t�p���:�� � ��:�� � ��:�� -� ��:w�Bg��j�K|�΄�j�K|�΄�j�K|�΄�j�;\�3�c5��%�Bg�}5��%�Bg�}5��%�Bg�}5�����C�_�3ᾚC�_�3ᾚC�_�3ᾚC�W��X͡s��Йp_͡s��Йp_͡s��Йp_͡s���9�s5��%�Bg�}5��%�Bg�}5��%�Bg�}5�����C�_�3ᾚC�_�3ᾚC�_�3ᾚC�W��X͡s��Йp_͡s��Йp_͡s��Йp_͡s�+t|��й�W�L���й�W�L���й�O�3Ѷ�C�V��X͡s��Йp_M�sI��_.�й�W�L���й�:>Vc�\ڧЙh�̡sI�Йl_͡s��Йp_��sg��h�̡sI�Йl_͡s��Йp_��si�Bg�m3����챚C�_�3ᾚC�_�3ᾚC�_�3ᾚC�W��X͡s��Йp_͡s��Йp_͡s��Йp_͡s�+t|��й�W�L���й�W�L���й�W�L���й�w��C�_�3ᾚC�_�3ᾚC�_�3ᾚC�W��X͡s��Йp_͡s��Йp_͡s��Йp_͡s�+t|��й�W�L���й�W�L����97�U�L_����/B�����{�mM��O�wO������ǟ�G{�s>}L�ڙ��:���o?����/�|KA�����?�3Ϳ����5�o�;��_x�~��8�~W�P��2>V!��p�~��*�~��p_�ܯÕ��U���2>V!��p�~��*�~��p_�ܯÕ��U���2>V!��p�~��*�~��p_�ܯÕ��U���2>V!��p�~��*�~��p_�ܯÕ��U���2>V!��p�~��*�~��p_�ܯÕ��5�Y�� -�_�+��W!��p�~��*�~��p_�ܯ�w��s��^�ж �_G+��W!��p�~��j��*[�_�}r��V���B�������՜�u�����M��*z�~����u�r?�}5�~��r?�mr��V���B�W�;���X_g��hۄܯ��������u�r?�}r� -߹_��*�~��p_�ܯÕ��u�r?�}r� -߹_��*�~��p_�ܯÕ��u�r?�}r� -߹_��*�~��p_�ܯÕ��u�r?�}r� -߹_��*�~��p_�ܯÕ��u�r?�}r� -߹_��*�~��p_�ܯÕ��u�r?�}r�?��">W!��p�~��*�~��p_�ܯÕ��U���2>V!��p�~��*�~��p_�ܯÕ��U���2>V!��p�~��*�~��p_�ܯÕ��U���2>V!��p�~��*�~��p__g��hۄܯ�w��� -�_�+��Wc��ѧ���E��:X�о -�_���/�c5�~��r?�mr��V���B�������՜�U�r�L�&�~��l_�ܯÕ��9����m���U����=V!��p�~��*�~��p_�ܯÕ��U���2>V!��p�~��*�~��p_�ܯÕ��U���2>V!��p�~��*�~��p_�ܯÕ��5�Y�� -�_�+��W!��p�~��*�~��p_�ܯ�w�� -�_�+��W!��p�~��*�~��p_�ܯ�w�� -�_�+��W!��p�~��*�~!Qks?�B+�;�B)����~������g��֧v��p�������:�����|<�8s��~�O�B�������,~�ӧ.��_z�;��_�2W~q���D����ͪ��� -����k�p��V�}~_k�������Z+|���U�}���� -����k�p��V�}~_k�������Z+|���U�}���� -����k�p��V�}~_k�+��W!��pg|�B��� -��U�;\7� -w�+��W!��pg|�B��� -��U�;\7� -w�+��W!��pg|�B��� -��U�;\7� -w�+��W!��pg|�B��� -��U�;\7� -w�+��W!��pg|�B��� -��U�;\7� -w�+��W!�n�;�s�W� ��B��� -��U�;\7� +� ��:w�Bg��j�K|�΄�j�K|�΄�j�K|�΄�j�+|����9t.�:�9t.�:�9t.�:�9t�p���:�� +� ��:�� +� ��:�� +� ��:w�Bg��j�K|�΄�j�K|�΄�j�s�[���N���Bχ��s�FG����?��&��ǻ���������ǿ���9�>�O���p +���۷�����˗_�����������������ﷂ���/�s��or�+_(�~���u�r?�}r�W���B�������U��*|�~���u�r?�}r�W���B�������U��*|�~���u�r?�}r�W���B�������U��*|�~���u�r?�}r�W���B�������U��*|�~���u�r?�}r�W���B�������U���,���\�ܯÕ��u�r?�}r�W���B�W�;���X_g��hۄܯ��������u�r?�}5�~���/Ӿ �_G+��W!��p�~��j��:{�~@�&�~�s�l�U��:\�ྚs��^�ж �_G+��W!����e|��ܯ�W��mB�������U��:\�� +�_���/�cr�W���B�������U��:\�� +�_���/�cr�W���B�������U��:\�� +�_���/�cr�W���B�������U��:\�� +�_���/�cr�W���B�������U��:\�� +�_���/�cr�W���B�������U��:\�� +�_���~����u�r?�}r�W���B�������U��*|�~���u�r?�}r�W���B�������U��*|�~���u�r?�}r�W���B�������U��*|�~���u�r?�}r�W����ܯ�W��mB�W�;���X�ܯÕ��1���S���"�~��h_�ܯ�w��s��^�ж �_G+��W!��p�~��j��*[�_�}r��V���B�������՜�u�����M��*z�~����u�r?�}r�W���B�������U��*|�~���u�r?�}r�W���B�������U��*|�~���u�r?�}r�W���B�������U���,���\�ܯÕ��u�r?�}r�W���B�W�;���X�ܯÕ��u�r?�}r�W���B�W�;���X�ܯÕ��u�r?�}r�����|��������o�s�������3�~�S;�{8�~��oI�����m>e�9WB�燧[������L���S���/=�^��+�8��i��� |�f���k�W���v�~_+� +������Z�U�}��_k��*�����k�W���v�~_+� +������Z�U�}��_k��*�����k�W���v�~_+� +����p�pW��3>V!��p܀�*���p_����p�pW��3>V!��p܀�*���p_����p�pW��3>V!��p܀�*���p_����p�pW��3>V!��p܀�*���p_����p�pW��3>V!��p܀�*���p_����p�p7�Y�� +w�+��W!��p܀�*���p_����w�����^7ж wG+��W!��p܀�j�+[w�}�V� ��B��� +���pw� +���M�+z���pw�n�}5ܝ�n�m�V� ��B�]�;���X�wg��hۄ���p���pw�n�}� +�w��*���p_����p�pw�n�}� +�w��*���p_����p�pw�n�}� +�w��*���p_����p�pw�n�}� +�w��*���p_����p�pw�n�}� +�w��*���p_����p�pw�n�}�?�#>W!��p܀�*���p_����p�pW��3>V!��p܀�*���p_����p�pW��3>V!��p܀�*���p_����p�pW��3>V!��p܀�*���p_�wg��hۄ���w���� +w�+��Wc��ѧ���E�;X7о w��;�c5ܝ�n�m�V� ��B��� -���pW��L�&���l_����p�9���pm�pW���=V!��p܀�j�;{�@�&���l_����w�����^7ж wG+��W!��p܀�*��U�;\7� -w�+��W!��p܀�*��U�;\7� -w�+��W!��p܀�*��U�;\7� -w�+��W!��p܀�*��U�;\7� -w�+��W!��p܀�*��U�;\7� -w�+��W!��p܀�*� ~pG|�B��� -��U�;\7� -w�+��W!��pg|�B��� -��U�;\7� -w�+��W!��pg|�B��� -��U�;\7� -w�+��W!��pg|�B��� -��U�;\7ྚ��^7ж wE�;�c�W� ��ƀ��O7���pw�n�}� -�w��j�;{�@�&���l_����p�9�lܙ�M�;Z7ؾ -w�+��Ws���+��6!��pg{�B��� -��U�;\7� -w�+��W!��pg|�B��� -��U�;\7� -w�+��W!��pg|�B��� -��U�;\7� -w�+��W!�n�;�s�W� ��B��� -��U�;\7� -w��;�c�W� ��B��� -��U�;\7� -w��;�c�W� ��B��� -��U�Cz����V�}��R����=��?�����}�S�������~~~;��쭀{}l}j��뷵��/_����/�}�%������Og��Y�?���}��)N�w'�g�7��ۤ�8˶ 9q#�8ʾ -q%+%βmBH\�ꈳl�PW�"�,�&$č��(�&�Õ�|8˶ �p%�βmB9\� -��l�� 7��W���,�&Õ�^8˶ �p%+βmB*�Ȼ��oB'\�ʄ�l� W��,�&�@8˶ yp#�:8ʾ mp%+ βmB\�ꂳl�PW���,�&$�����(�&����8˶ 1p%�βmB \� -��l��7���W��,�&����7˶ �o%+�ͲmB�[�g�o��&t����7˶ �o%��ͲmB�[� -~�l���6�}�웹�����f�rB��U�aۄʷ��f�6s���*|�k���V����&Ľ���7˶��� -^aov/!�m�]�F�7��d%�Y���V��y�{�5o�*�ͰmB��Ȼ䍲o掷�Wƛ��E�x+W o�m -�JV��eۄ|��w�e߄v����f�6!ܭdu�Y�M�v+Y�n�m��F��n�}z�JV��eۄX����f�6�ԭd��Y�M�tyW�Q�Mht+Y�n�m�JV��eۄ:���f�6!�m�]�F�7�˭de�Y�M�r+YMn�m��JV��eۄ��w�e߄����f�6!ĭdu�Y�M�p+Yn�m�B>+p�<6���d�Y�M�o+Y�m�m��JVx�eۄ춑wue߄涒��f�6!��d��Y�M�m+Y�m�mR�Fޥm�}:�JVf�eۄȶ���f�6���d�Y�M�kyQ�Mhk+Yim�m��JVW�e��Um��6�����6�.j#���V�r�,�f�i+���f�bJ�JUH�]ۄ���wEe�� m��6����V����&Գ��x6˶���V9][�n�r��f�6!��d5�Y��\�V� -f�{��l��Z6¾ �l%+�ͲmB([��d�l�P�V�"�,�&$����(�&����<6˶ ql%��ͲmB[� -c�l���6�b����V���,�&���6˶ 5l%+�ͲmB -[�g%l��&t���6˶ l%��ͲmB[� -`�l���6�_��оV���,�&�����5˶ �k%+zͲmB��Ȼx��oB�Z��]�l��V�Z�,�&��)��B��mV�z�mR�z����_S����_S�>�+�és�ǟ�~S���]gr�p������D�^��w�/�J��^�/����o��+_(嗀�*��p_���w��� -f����W���p����*Ę�p_���w��� -If����W���pe���*���2p_�6��w��� -yf����W���p%���*D��Jp_�N��w��� -�f����W���p嚀�*��bp_�f��w��� -�f����W���p����*ě�zp_�~��w��� - g����W���pe���*����p_�����bΈ�U�9;\='� -Eg�+��W!��pU���*t���Ό�՜vv�j;��M�;;Zy'ؾ -�g����Ws�Yي<3훐yv�:O�}J�W� ���س�W� �mB�Y�;���X����|���}m�~v��O�}�� -��g��j�?;{��@�&��l_���U��ЁV�A3>V!�p����*Ԡ�p_� ��U��ЄV��B3>V!�pu���*���4p_�8��U��ЇV�D3>V!�p5���*T��Lp_�P��U��ЊV��E3>V!�p����*��dp_�h��U��ЍV�G3>V!�p����*ԣ�|p_����U��А6�YD� -i��#�W�$�p����*Ĥ��p_����wP�� -Ii��)�W�*�pe���*����p_����w\�� -yi��/�W�0�p%���*D���p_�δ�wh�� -�i��5�W�6�p妀�jN;{�@�&4����l�U�N;\�)��ӎ>���_.B|���O��U�O+|��9A��ՠm�P�v�2T�}B�W� -������f�7!G�h��`�*��$p_�Qjg�*hۄ.��w���� -ij��M�W�N�p婀�*��Bp_�F��w��� -�j��S�W�T�p����*Ī�Zp_�^��w��� -�j��Y�W�Z�pe���*���rp_�v����Ո�U�W;\�*� -k�+a�W!b�pU���*t��C�UHY;\-+� -5k�+g�W!h�p���*4����U�Z;\]+� -ek�+m�W!n Af[��Zy��z~�ݷ�o�����N�< p]�ځ��)p��o_~*��:'���ϯ7Wu��[����k����J�g��*t���p_�γ��y��yv�:O�}:� -ߝg��*t���p_�γ��y��yv�:O�}:� -ߝg��*t���p_�γ��y��yv�:O�}:� +���pW��L�&���l_����p�9���pm�pW���=V!��p܀�*���p_����p�pW��3>V!��p܀�*���p_����p�pW��3>V!��p܀�*���p_����p�p7�Y�� +w�+��W!��p܀�*���p_����w��� +w�+��W!��p܀�*���p_����w��� +w�+��W!��p܀�*�!=nn�B+�>�B)����owO�����?ξ�������{�_??��u�V��>�>�����Z����|��ۗ߾�C�����3m�,��o�����ﻓ�����mRP�eۄ���wMe߄����g�6!$�du�Y�M��+Yq�m�F�q�}��JV>�eۄx���g�6��d��Y�MȆyW�Q�Mh�+Y�p�m��JV/�eۄZ��g�6!n�] +G�7��de�Y�M��+Y�p�m +�JV �eۄ<��we߄6���g�6!�du�Y�M��+YQp�m��F�Ep�}z�JV�eۄ���g�6��d��Y�MȀyW�Q�Mh�+Y p�m�JV��eۄ����f�6!�-��7�c��JV��eۄ跒��f�6���d�Y�M�}yQ����V�J}�{��o��ͰmB�[Ɋ|�l�9�m`�ѵE�{+Wyo�m��JVۛe��eo��7�����6�z#���V���,�fz+x��ٽ\���r�f�6!�m�]�F�7s�[�+����"D����7ö o%+�ͲmB��Ȼލ�oB�[�Jw�l��V���,�&T���h7˶ �n#�b7ʾ �n%+�ͲmB�[�ju�l�P�V�B�,�&d���+�(�&4���D7˶ �n%��ͲmB�[Ɋs�l���6�.s����V���,�&D���&7˶ En%+�ͲmB��Ȼƍ�oB�[�Jq�l��V�:�,�&T���7˶ n!��I���V���,�&ķ���6˶ �m%+�ͲmBv�Ȼ���oBs[�Jn�l��V�z�,�&Զ���6˶ �m#��6ʾ �m%+�ͲmBd[�jl�l�P�V��,�&䵍���(�&�����6˶ am%��Ͳm檶�WT���EHjw��M�i+Y9m�m3ƴ�{ji�z�%m�*�ͮmBF�Ȼ���o憶�WB���Eh+W�l�m��JV<�e���l����-B7[��f3l��V���,�f.f+x�ٽ\�\�qw-a߄V����f�6!��du�Y�M�d+Y�l�m�Fޅl�}��JV�eۄ8����f�6���d��Y�M�byW�Q�Mhb+YIl�m��JV�eۄ���f�6!�-�6�c:�JV�eۄ����f�6���d�Y�M�_yׯQ�Mh_+Y�k�m��JV��eۄ굒�f�6!ym�]�F�7�w�d�Y�M�]+Y�k�mJ�gv�k�6�s=�6)s��u��)^�h�)^�ڕ��Թ���_��p�i��39|8�{؏gwg���ǻϗ[��n/��������/��K�}�W� ��B�Y�;���X����a�Pbv�RL�}b�W� ��B�Y�;���X�$���d�Pev��L�}��W� ��B�Y�;���X�<���g�Phv�M�}"�W� ��B�Y�;���X�T���j�Pkv�rM�}��W� ��B�Y�;���X�l���m�Pnv��M�}��W� ��B�Y�;���X�����p�Pqv�2N�}B�W� ��B���g1g��*���p_���Õt�uv��N�}�� +�ag��jN;;{��@�&ԝ��l_����Ux�lE���M�<;Z�'ؾ +�g�+��Ws��٫��6����|f{�B���j>��\}v��>��M?;Z�'ؾ +�g���3�c5矝��O�m +ЎV +��B��@�U�@+|�����v�ZP�}j�W +��B��*B�UhB+|G����v��P�}��W +��B��C�U�C+|����v�Q�}*�W& +��B(��*E�UhE+|Ǣ���v�zQ�}��W2 +��B4��F�U�F+|�����v��Q�}��W> +��B@��*H�UhH�,"��\����Ց�P�v�RR�}b�WM +��BOZ�;(��X����Ք�P�v��R�}��WY +��B[Z�;.��X�����P�v�S�}"�We +��BgZ�;4��X�Դ�՚�P�v�rS�}5����S�m�ӊ��i��*d���p_��iG��S�/!>�`է@�*���Ԍ�՜�v�jP��M�P;Z*ؾ +!j��D�Ws�ZيQ3훐�v�zT�}��W� +���(��W� +�mB�Z�;L��X�4��զ�P�v��T�}�W� +��B�Z�;R��X�L��թ�P�v�RU�}b�W� +��B�Z�;X��X�d��լ�P�v��U�}��W� +��B���g�j��*��~p_���Õ���v�*V�}:� +�!k��*����p_���Õ���v��V�}�� +�Qk��*d���p_���Õ���� ��[�������5|�?�>�v�������\N����SY��~��{��9y�p}|~�Y����zw��_;t�W�P�<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��y6�Y�� +�g����W���pu���*t���p_�γ�w��;��^�'ж �gG���W���pu���j�<+[�g�}:ώV� ��B����<���yv��<��M�<+zw����yv�:O�}5w���:O�m:ώV� ��B�Y����X͝gg��hۄγ��y����yv�:O�}:� ߝg��*t���p_�γ��y��yv�:O�}:� ߝg��*t���p_�γ��y��yv�:O�}:� -ߝg��*t���p_�γ��y��yv�:O�}:�?�<#>W���pu���*t���p_�γ��y��yV��<3>Vs��٫��6���hu�`�*t���p_͝ge��̴oB����<��U�<;\�'ྚ;��^�'ж �gE��3�c:�W� ���γ�W� �mB����<��U�<+|w�������ym��yv�:O�}:�W� ��B�Y����X�γ��y��yv�:O�}:�W� ��B�Y����X�γ��y��yv�:O�}:�W� ��B�Y����X�γ��y��yv�:O�}:�W� ��B�Y����X�γ��y��yv�:O�}:�W� ��B�Y����X�γ��y��yv�:O�}:�W� ��B���g�g��*t���p_�γ��y��yv�:O�}:� ߝg��*t���p_�γ��y��yv�:O�}:� ߝg��*t���p_�γ��y��yv�:O�}:� -ߝg��*t���p_�γ��y����ym��yV��<�=V���pu���j�<;��y|��g���W����yf|��γ�W� �mB����<��U�<;\�'ྚ;��V�i߄γ��y����yv�:O�}5w���:O�m:ϊޝg��*t���p_�γ��y��yv�:O�}:� -ߝg��*t���p_�γ��y��yv�:O�}:� -ߝg��*t���p_�γ��y��yv�:O�}:�?�<#>W���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_��3d�m� _hu��_(u�����:�����/߿B�>�;��S��_���v�g����-w����w�y��C�y���3�c:�W� ��B����<�U�<;\�'� -�g���3�c:�W� ��B����<�U�<;\�'� -�g���3�c:�W� ��B����<�U�<;\�'� -�g���3�c:�W� ��B����<�U�<;\�'� -�g���3�c:�W� ��B����<�U�<;\�'� -�g���3�c:�W� ��B����<�U�<;\�'� -�g��u����yv�:O�}:�W� ��B����<�U�<+|w�������ym��yv�:O�}:�W� ���γ��yf�7���hu�`�*t���p_͝gg��hۄγ�w��� -�g����Ws��٫��6���hu�`�*t��;ό���yv��<��M�<;Z�'ؾ -�g����W����yf|�B����<�U�<;\�'� -�g����W����yf|�B����<�U�<;\�'� -�g����W����yf|�B����<�U�<;\�'� -�g����W����yf|�B����<�U�<;\�'� -�g����W����yf|�B����<�U�<;\�'� -�g����W��l��3�s:�W� ��B����<�U�<;\�'� -�g���3�c:�W� ��B����<�U�<;\�'� -�g���3�c:�W� ��B����<�U�<;\�'� -�g���3�c:�W� ��B����<���yv��<��M�<+zw����yv�:O�}5v�}�<�\�γ��y���yV��<3>Vs��٫��6���hu�`�*t���p_͝ge��̴oB����<��U�<;\�'ྚ;��^�'ж �gE��3�c:�W� ��B����<�U�<;\�'� -�g���3�c:�W� ��B����<�U�<;\�'� -�g���3�c:�W� ��B����<�U�<;\�'� -�g��u����yv�:O�}:�W� ��B����<�U�<+|w���yv�:O�}:�W� ��B����<�U�<+|w���yv�:O�}:�W� ��B��Ķ�/�:��/��t�����?y|��;���<��������߿ܽ=����W[ӧ>;��S�������×�?����x�����~�ݿ��#C{��'�g��9>����5����)v����ŷ��_�������^�BW�ӧ������������i�}�:�r8����J|}��z�{{{~j�ӧ�������K�c_�F�Wo�owo//����i�}�:�z��y~m��ӄ����O�����O#�7�����?r��ӧ����O�����>���^�ߎ:��}}��z?������4�z?������4�z�{��۹���0Ҷy]~?�=�=�?��i��� ���������O#�7𗻇����0ҶyC>��<?�?�ӧ����������<7�> �\���h>^�w�燑����O��嵥O�F�Wo��?��k�3?}q_���4���B��7�ǻ�����{}m_������۟��4�z�{���?����u��pwx�o���D����������ק��������7w��ӈ�� ��g��P��O�F�W���?����Ǿ>M�X���t���4�z?������4�z_�:��i�}�LU�>3�� -g�:\g���U83��:3���י)�}�LU�>3�� -g�:\g���U83��:3���י)�}�LU�>3�� -g�:\g���U83��:3���י)�}�LU�>3�� -g�:\g���U83��:3���י)�}�LU�>3�� -g�:\g���U83��:3���י)�}�LU�>3�� -g�:\g���U83��:3���י)�}�L5�ٙ���U83��:3���י)�}�Lu��L�pf��������|f��י)�m�Lu��L���pf��uf +ߝg��*t���p_�γ��y��yv�:O�}:�?�<#>W���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_͝gg��hۄγ�w��� +�g����Wc��ѧ���E�<;X�'о +�g���3�c5w���:O�m:ώV� ��B����<���yV�:�L�&t���l_�γ��y����ym��yV��<�=V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��y6�Y�� +�g����W���pu���*t���p_�γ�w�� +�g����W���pu���*t���p_�γ�w�� +�g����W���pu���*t�!Kl;O�B��<�B��;���F���������_��\�ڝ�����/��;�3�j���;�G�ֻ�<�ڡ��R�� +�g����W���pu���*t���p_�γ�w�� +�g����W���pu���*t���p_�γ�w�� +�g����W���pu���*t���p_�γ�w�� +�g����W���pu���*t���p_�γ�w�� +�g����W���pu���*t���p_�γ�w�� +�g����W���pu���*t���p_�γ��:ψ�U�<;\�'� +�g����W���pu���*t��;ό���yv��<��M�<;Z�'ؾ +�g����Ws�Y��<3��yv�:O�}:�W� ���γ�W� �mB�Yѻ���X�γ��y����ym��yv�:O�}:� +ߝg��j�<;{u�@�&t���l_�γ��y��yV��<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��yV��<3>V���pu���*t���p_�γ��y��y6�Y�� +�g����W���pu���*t���p_�γ�w�� +�g����W���pu���*t���p_�γ�w�� +�g����W���pu���*t���p_�γ�w�� +�g����W���pu���j�<;{u�@�&t��;�l�U�<;\�'�;ώ>u��_.B����<��U�<+|w�������ym��yv�:O�}:�W� ���γ��yf�7���hu�`�*t���p_͝gg��hۄγ�w��� +�g����W���pu���*t���p_�γ�w�� +�g����W���pu���*t���p_�γ�w�� +�g����W���pu���*t���p_�γ��:ψ�U�<;\�'� +�g����W���pu���*t��;ό�U�<;\�'� +�g����W���pu���*t��;ό�U�<;\�'� +�g����W��Yb�y�Z���z~��y�o���<>}��E�}��}{y�����_�ޞ�_w�����S��������~|x��ˏ�����~<����o?�����=|��3i���n�Ϗ�����;~Y}�����/�r�t���p�|�+��ӈ�� ������O� +~�4�z9�Oo%�>M�X��?�=?���ӈ�� ���������O#�7����~�4�z=��<��?��i��� ��������ק����O���9w��ӈ�� �����^��O�F�W��o�?����Ǿ>M�X���t��}}q_���t��}}q_���ݽ~��\g~iۼ.���ڟ��4�c��x������ק������Km~iۼ!�d������h�������G����\�|����4��;���H�� ��'����ҧO���7�������>���^��?���o!և��������[�ǽ>�����_�o���|}q_���ݽ�?��E�r�:�p�;�?��i��� ����rh��ӈ�� ������ϛ;��i�}�~��yz��O#�������c�c_�&|����:��}}q_���tO�}}q_����P~�4� +g�*|����X�3S�3S��*���p���W��T���� +g�*|����X�3S�3S��*���p���W��T���� +g�*|����X�3S�3S��*���p���W��T���� +g�*|����X�3S�3S��*���p���W��T���� +g�*|����X�3S�3S��*���p���W��T���� +g�*|����X�3S�3S��*���p���W��T���� +g����T��*���p���W��T���� +g�:\g���U83U���T��j>3����ж g�:Zg���U83��:3���3S��3S��M83��:3���י)�}5����uf +hۄ3S��Le{��י)�}5����uf +hۄ3S�3S`�*����}f*�c5����uf +hۄ3S�3S`�*���p���W��T��3S�pf��uf +p_�3S�3S��*���p���W��T��3S�pf��uf +p_�3S�3S��*���p���W��T��3S�pf��uf +p_�3S�3S��*���p���W��T��3S�pf��uf +p_�3S�3S��*���p���W��T��3S�pf��uf +p_�3S�3S��*���p���W��T������\�3S�3S��*���p���W��T���� +g�*|����X�3S�3S��*���p���W��T���� +g�*|����X�3S�3S��*���p���W��T���� +g�*|����X�3S�3S��*���p���W��^g���M83U���T��*���p���W㙩�>���r�Lu��L��pf��������|f��י)�m�Lu��L���pf��uf p_�g�*[g�2�pf��uf -l_�3S�3S��j>3����ж g�*z����X�3S�3S��j>3����ж g�:Zg���U83U���T��j>3����ж g�:Zg���U83��:3��� -�g�2>V��T���� -g�:\g���U83��:3��� -�g�2>V��T���� -g�:\g���U83��:3��� -�g�2>V��T���� -g�:\g���U83��:3��� -�g�2>V��T���� -g�:\g���U83��:3��� -�g�2>V��T���� -g�:\g���U83��:3���?;3� -g�:\g���U83��:3���י)�}�LU�>3�� -g�:\g���U83��:3���י)�}�LU�>3�� -g�:\g���U83��:3���י)�}�LU�>3�� -g�:\g���U83��:3���3S���Lm�pf�����l�U83��:3���3S}:3��"���`���W��T��3S���Tg�3S@�&���h���W��T���ྚ�LU��Le�7��TG��ؾ -g�:\g����|f��י)�m�LU�>3��� -g�:\g���U83��:3���י)�}�LU�>3�� -g�:\g���U83��:3���י)�}�LU�>3�� -g�:\g���U83��:3���י)�}�L5�ٙ���U83��:3���י)�}�Lu��L�pf�������U83��:3���י)�}�Lu��L�pf�������U83��:3���י)�}�L��Hݙ)�B����Jg��7��g�>^�����6��ҧ>�L�ߋ�;S����~�����?~���+W�>����?�CW~���|�ʔ����]|��`�}�p��p_�`:\`����L��0��j>�S���������Ѷ��t���=V��_`��x���O`���|�����}5���}�&�s5�)���m3�)�u��l_�`J|�!�W���^`���|�����}5�)�u��p_M`J��������L���c5�)�u��p_�`J|�!�W��_`��|���u�����:�C���0%�����L��0��j>���:��X�`J|�!�W��_`��|�����}5��p�|��0%�����L��0��j>�S���ᾚ�t���>V��_`��|�����}5�)�u��p_�`:\`����L��0��j>�S���ᾚ���:�C���0�0���|�����}5�)�u��p_�`J|�!�W�����j>�S���ᾚ���:�C���0%�����L��0����L��0��j>�S���ᾚ���:�C���0�0���x���O`���|�����}5�)�u��p_�`:{��7���^`���|�����}5�)���m3��h�{��0%�����Li��m���LI�0d�j>���:��X�`J�t��h��`Jz�!�W��_`��|���u�����:�C���0%�����L��0��j>���:��X�`J|�!�W��_`��|�����}5��p�|��0%�����L��0��j>�S���ᾚ�t���>V��_`��|�����}5�)�u��p_�`:\`����L��0��j>�S���ᾚ���:�C���0��d|��0%�����L��0��j>�S���ᾚ�t���>V��_`��|�����}5�)�u��p_�`:\`����L��0��j>�S���ᾚ���:�C���0�0���|�����}5�)�u��p_�`J�t��h��`:Z`����L��0��j:�Sҟ`�\�`Jx�!�W�����j<�Sڧ0D�f>�S���پ����:�C���0�������LI�0d�j>�S���������Ѷ��t���=V��_`��|�����}5�)�u��p_�`:\`����L��0��j>�S���ᾚ���:�C���0�0���|�����}5�)�u��p_�`J|�!�W�� -�`2>W��_`��|�����}5�)�u��p_�`:\`����L��0��j>�S���ᾚ���:�C���0�0���|�����}5�)�u��p_�`�rIs�����s_(�I���owO�����?�~�~U��~��ﯟ?;��g���1��9������?��/�A�������|<;s����_n�Xς���wpy��Cpy���p_���\�\v��K�}�� -��e��*���p_���\�\v��K�}�� -��e��*���p_���\�\v��K�}�� -��e��*���p_���\�\v��K�}�� -��e��*���p_���\�\v��K�}�� -��e��*���p_���\�\v��K�}��?.#>W!��p���*���p_���\�\V�.3>Vsp��+��6!��h�`�*���p_��ee+�̴oBp�� -.��U.;\�%ྚ���^�%ж �eE��2�c��Wp ���ಳWp �mBp�� -.��U.+|��9���\m�\v��K�}��Wp ��BpY�;���X���\�\v��K�}��Wp ��BpY�;���X���\�\v��K�}��Wp ��BpY�;���X���\�\v��K�}��Wp ��BpY�;���X���\�\v��K�}��Wp ��BpY�;���X���\�\v��K�}��Wp ��Bp��g�e��*���p_���\�\v��K�}�� -��e��*���p_���\�\v��K�}�� -��e��*���p_���\�\v��K�}�� -��e��*���p_���\�9���\m�\V�.�=V!��p���j.;�\|��e+��W!���\f|��ಳWp �mBp�� -.��U.;\�%ྚ���Vp�i߄ಣ\���\v��K�}5����K�m�ˊ��e��*���p_���\�\v��K�}�� -��e��*���p_���\�\v��K�}�� -��e��*���p_���\�\v��K�}��?.#>W!��p���*���p_���\�\V�.3>V!��p���*���p_���\�\V�.3>V!��p���*���p_��2��mp _h��_���vp��.�(�<����g�-O�Rn�p�-�����`oyx���ܛ�����������싇�r~��Zf�6���d��Y�M�,+Y�e�m�Fމe�}�JV_�eۄ���Wf�6!��d��Y�M�*yg�Q�M�*+YMe�m��JVP�eۄ���USf�6��l�RF�7!��du�Y�M�(+Ye�m�JVA�eۄ~��w>e߄x���Nf�6���d��Y�M�&+Y�d�m��F��d�}��JV/�eۄZ��Kf�6!��d��Y�M�$�,�L�H���Hf�6���d�Y�M�#+Yud�m��F�id�}3������^.BY��"3l��DV���,�f�!X9dtmb��U�aۄ��Bf�6sY������"4�����&����1˶��� -^�cv/!}�\���M�yg�Q��=V�j�{��c�*x̰mB�Xɪ�l��:6�N��:V�:�,�&T����1˶ �c%�p̲mB���;o��oB�X�j�l�P6V���,�&d����1˶ Mc#�1ʾ Ac%�g̲mB�XɊ�l��2V�J�,�&t���3�(�&D����1˶ c%+`̲mB�Xɪ�l��.6�N��.V���,�&T���h1˶ �b%�X̲mB�X�g�b��&Ċ��V1˶ �b%+T̲mB�Xɪ�l��(6�N��(V���,�&ԉ��81˶ ib%�L̲mB���;K��oB�X�j�l�P$V���,�&䈕�1˶ -b#�1ʾ !b%�C̲mB�XɊ�l�9A��U f�r�����a�}��JV{�eی�a��ì^�AvX���k��6�N��98���f�rj��Ul�aۄ�Uf�6sg����k�V���&����0˶��� -^uav/�-lܝF�7!,�du�Y�M� -+YQa�m��JVQ�eۄ���wNe߄����f�6�$�d��Y�M�+Ya�m�F� a�}�JV?�eۄz��f�6!�d��Y�M��,L�h���f�6��d�Y�M�+Y�`�mZ�Fީ`�}B�JV'�eۄJ�� f�6!�d�Y�M�y�Q�M�+Ym`�m��JV�eۄ,�v��V��۬(��ۤ&�����I���[�?=�P�>�(���×�~�CU������ǿ�<��d�o�m��*��_~7r�_>DrW�P����U��*|�r���u�Z9�}j�W.��B0��*���Uh�*|Gs���u��9�}ʹW:��B<�����U��*|t���u�:�}*�WF��BH��*���Uh�*|�t���u�z:�}��WR��BT�����U��*|�u���u��:�}�W^��B`��*���Uh��,���\�̮����P�u�R;�}b�Wm��BoW�;���X��]g��hۄꮣ�݁���u��;�}5�w���.Ӿ �]G���W���p%x��j��:{Ux@�&tx�C�l�UH�:\-ྚk��^9ж A^G���W�ɫ��e|��,��W��mB���J���U��:\u� -}^��@/�c�W���B�������U�:\�� -�^��X/�cr�W���B���J���U��:\�� -�^��p/�cҽW���B�������U�:\� - _��/�c2�W���B���J���U��:\5� -=_��/�c��W���B�������U�:\e� -m_���}����u��>�} -�W���B������U��*|�~���u�Z?�}j�W���B���*���Uh�*|G���u��?�}ʿW���B������U��*|����v�@�}*�W�����W �mBX�;��X������S��"D��*h_�.��w�����^m ж u`G+�W!�p���jn+[�`�}2��V'��B)��J��v����M�+z����v��A�}��W6��B8��*�Uh+|ǃ��v��A�} -�WB��BD���U�+|����v�ZB�}j�WN��BP��* -�Uh -�,*��\������Pv��B�}��W]��B_X�;0��X�İ���Pv�2C�}B�Wi��BkX�;6��X�ܰ���Pv��C�}���ǵ�!|�������a�F��������Y�����o/O������������S��N�����������������O?����o_Fqxxy?��qϑ��������/"<���_��>��%��.���#>�>=}�'LW����i�}��r����O�:��i�}��v������O#������}�c_�&|����:���Ǿ>������:���Ǿ>�������^?�զ�??��m^��wo��|}��z�{}}l��ӈ�� ���??��mސ�2�O����i�}�zt��y���b �O>Wo��?��*s���0ҶyC>��<������h�� ��Gsx��O#�����<|����}�0ѾyC~�{yk��ק������������O#�7�G���_.^gw�����>M�X���\^�|}q_���\�?�qX��>������6O����i�}�:�x��y|l��ӄ����O�����O#�7�������O#�7�����C��>����8Dz~�{��_�� -�$���[��U�=��+8��*\��p]��W� +l_�3S�3S��j>3����ж g�*z����X�3S�3S��*���p���W��T���� +g�*|����X�3S�3S��*���p���W��T���� +g�*|����X�3S�3S��*���p���W��T���� +g����T��*���p���W��T���� +g�:\g���U83U���T��*���p���W��T���� +g�:\g���U83U���T��*���p���W��T���� +g��y���|�uf���3S���3S���ޏG�L�S�g�����睩?���o������~��+S�����Ρ+?��o�ueJ`�w��.���0P8�C���0�0���|�����}5�)�u��p_�`J�t��h��`:Z`����L��0��j<�Sڧ0D�f>�S���پ��T�>��������Ѷ����:�C���0%�����Lg�0@�f>�S���پ����:�C���0%�y�����|���u�豚���:�C���0%�����L��0��j>���:��X�`J|�!�W��_`��|�����}5��p�|��0%�����L��0��j>�S���ᾚ�t���>V��_`��|�����}5�)�u��p_�`:\`����L��0��j>�S���ᾚ���:�C���0�0���|�����}5�)�u��p_�`J|�!�W�����j>�S���ᾚ���:�C���0%�����L����c5�)�u��p_�`J|�!�W��_`��|��������|�����}5�)�u��p_�`J|�!�W�����j<�Sڧ0D�f>�S���پ����:�C���0�������LI�0d�j>�S���������Ѷ��t���=V��_`��x���O`���|�����}5��p�|��0�}:�C�m�0%�������L��0��j>���:��X�`J|�!�W��_`��|�����}5��p�|��0%�����L��0��j>�S���ᾚ�t���>V��_`��|�����}5�)�u��p_�`:\`����L��0��j>�S���ᾚ���:�C���0�0���|�����}5�)�u��p_�`J|�!�W�� +�`2>W��_`��|�����}5�)�u��p_�`:\`����L��0��j>�S���ᾚ���:�C���0�0���|�����}5�)�u��p_�`J|�!�W�����j>�S���ᾚ���:�C���0�}:�C�m�0�0`��|�����}5�)��0_.�0%������L����c5�)���m3�)�u��l_�`J|�!�W���^`���|�����}5�)�u��p_�`J�t��h��`:Z`����L��0��j>�S���ᾚ���:�C���0�0���|�����}5�)�u��p_�`J|�!�W�����j>�S���ᾚ���:�C���0%�����L��0����L��0��j>�S���ᾚ���:�C���0�0���|�����}5�)�u��p_�`J|�!�W�����j>�S���ᾚ���:�C���0p��9�C_����/��o�wO����Ǐ����g?_��rx?�����ϟ�Ӎ��s��N�NG`��矿��� �����oh>������wO�/7~�g�e��;�<��!���Rp ��Bp�� +.�U.;\�%� +�e���2�c��Wp ��Bp�� +.�U.;\�%� +�e���2�c��Wp ��Bp�� +.�U.;\�%� +�e���2�c��Wp ��Bp�� +.�U.;\�%� +�e���2�c��Wp ��Bp�� +.�U.;\�%� +�e���2�c��Wp ��Bp�� +.�U.;\�%� +�e�����\v��K�}��Wp ��Bp�� +.�U.+|��9���\m�\v��K�}��Wp ���ಲ\f�7!��h�`�*���p_��eg��hۄಢwp��� +�e�+��Wsp��+��6!��h�`�*���ˌ��\v� +.��M.;Z�%ؾ +�e�+��W!���\f|�Bp�� +.�U.;\�%� +�e�+��W!���\f|�Bp�� +.�U.;\�%� +�e�+��W!���\f|�Bp�� +.�U.;\�%� +�e�+��W!���\f|�Bp�� +.�U.;\�%� +�e�+��W!���\f|�Bp�� +.�U.;\�%� +�e�+��W!�l��2�s��Wp ��Bp�� +.�U.;\�%� +�e���2�c��Wp ��Bp�� +.�U.;\�%� +�e���2�c��Wp ��Bp�� +.�U.;\�%� +�e���2�c��Wp ��Bp�� +.��\v� +.��M.+z���\v��K�}5�} +.�\�ಃ\��\V�.3>Vsp��+��6!��h�`�*���p_��ee+�̴oBp�� +.��U.;\�%ྚ���^�%ж �eE��2�c��Wp ��Bp�� +.�U.;\�%� +�e���2�c��Wp ��Bp�� +.�U.;\�%� +�e���2�c��Wp ��Bp�� +.�U.;\�%� +�e�����\v��K�}��Wp ��Bp�� +.�U.+|��\v��K�}��Wp ��Bp�� +.�U.+|��\v��K�}��Wp ��Bp��6��/����/��|;��h�O\�����3���O)�|8�����o��<<|�c��������s���wmy��Cl9�Mj-�l�PZV�B�,�&d����2˶ �e#��2ʾ �e%��̲mB]YɊ+�l��VV���,�&t�����(�&D����2˶ Ee%+�̲mBNYɪ)�l��R6�N)��RV�:�,�&T����2˶ e%��̲mB?��;���oB<Y�j'�l�PNV���,�&d���j2˶ �d#�d2ʾ �d%��̲mB-YɊ%�l��JV�J�,�&t��|�I&ylB$Y�j$�l�PHV��,�&䑕�:2˶ md#�42ʾ��� +^]dv/���\E��MH"+YEd�m3�� �2��1d媅̰mB Y� +!�l�9���UAf�r��� d�}�JV��e���c��1����>V����&t�����(�f�+x5�ٽ\��r<f�6!w�dՎY�Mhy��Q�M+Y�c�m*�JV�eۄı�U8f�6�ol�7F�7!n�d��Y�M(+Yac�m��JVeۄ���w�e߄����3f�6�f�dŌY�MH+Y%c�m:�F�c�}"�JVØeۄ���0f�6!_�dՋY�Mhy��Q�M+Y�b�m��JV��eۄd��U,f�6�W,�\1�cb�JV��eۄR��*f�6!S�dU�Y�Mhy'�Q�M+Y}b�m��JV��eۄ4��U&f�6�Kl�%F�7!J�d5�Y�M(+YAb�mr�JV��eۄ��w�e߄���!f�6�B�dE�Y�͜ V�*�{��a���0¾ �a%�=̲m��rO�aV/� ;�TU�ٵMhy'�Q��V�� �{��a�*6̰mBjX�* �l��3l`e�ѵE�+W�a�m +�JV`�e��ya��0����6�N#�V���,�&T����0˶ Ia%�(̲mBO��;'��oBLX�j �l�PV�B�,�&d����0˶ a#�0ʾ a%�̲mB=XɊ�l��V���,�&t��|� &ylB4X�j�l�PV���,�&䂕�Z0˶ �`#�T0ʾ �`%�̲mB%XɊ�l��V� +�,�&��(�&ā��60˶ e`%+̲mBx;`k���mVx�mRx����$���-�_� \S�x����_���*��������R��W���㿶�����/���/"�+_(Ur��*tr�C���UH�:\�� +�\�+��W!��ps��*4s�����U��:\�� +�\�+��W!��p�s��*�s����UH�:\ � +]�+��W!��p�t��*�t�c���U��:\=� +E]�+��W!��pUu��*tu�ú��UH�:\m� +u]�+��W!��pv��*4v ~�E|�Bf������U(�:\�� +�]����W�����e|��䮳Ws�mBu������U�:\�ྚۻ�V|�i߄����߁��P�u�<�}5Gx��*<�m:���!^��*�x�p_�5^g�hۄ ��U�����U���2>Vs��٫��6���h�y`�*�y�:p_�>��w��� +�^����W���pez��*�z�Rp_�V��w��� +�^����W���p%{��*D{�jp_�n��w��� +�^����W���p�{��*|��p_����wė� +_����W���p�|��*�|��p_����wЗ� +I_����W���pe}��*�}��p_�����⾈�U��:\}� +�_�+��W!��pU~��*t~�C���UH�:\�� +�_�+��W!��p��*4�����U��:\�� +�_�+��W!��p���*�����UH�;\ � +`�+�Ws�٫�6���f{�B�����Xv�) �r��V��BX�;��X�i`g�6hۄ:������v� +A�}57���H0Ӿ �`G��W��p����j�;{Ղ@�&����l�UH;\� � +�`�+�W!�p����*�������U�;\� � +a�+!�W!"�pU���*t��C�UH ;\-!� +5a�+'�W!(�p���*4� ~F|�BV��� +�U(;\i!� +qa��.�W�/��f|�Bb��j�U�;\�!� +�a��4�W�5��f|�Bn��� �U(;\�!� +�a�������ϿP��7��E�>��"���}{y���ď�x�����N�:���p���/?��ˏ�?��������p8�w�2���������x��֮��/7���p�������F.�>w����������?a���O#�7��Ǐ"��O#�7���?}q_����t����4�c�~��9ܷ?��i�}�~�ӹ?�?��i�}��v���6���a�m��~�{x{h���d�������c�3_�F�Wo�/w/���a�m�|��y~��O����3������?kp}�z?����W�+�燑����O��嵥O�F�Wo��?��k�3?}q_�������?���Ӈ��������[�ǽ>�����_�o���|}q_���ݽ�?��E�r�:�p�;�?��i��� ����rh��ӈ�� �������:��i�}�~��yz��O#�������c�c_�&|����:��}}q_���tO�}}q_���t�Z��i�}��9����+|�����U�%��������p]��W� +N�� +� +Wp*|_���X�+8�+8��*\��p]��W� +N�� +� +Wp*|_���X�+8�+8��*\��p]��W� +N�� +� +Wp*|_���X�+8�+8��*\��p]��W� +N�� +� +Wp*|_���X�+8�+8��*\��p]��W� +N�� +� +Wp*|_���X�+8�+8��*\��p]��W� +N�� +� +Wp�� +N��*\��p]��W� +N�� +� +Wp:\Wp��U��S�� +N��j����� +ж Wp:ZWp��U���Ẃ���+8��+8��M���Ѻ�������}5_���uhۄ+8���d{�����}5_���uhۄ+8�+8`�*\���}'�c5_���uhۄ+8�+8`�*\��p]��W� N��+8�p��up_�+8�+8��*\��p]��W� N��+8�p��up_�+8�+8��*\��p]��W� N��+8�p��up_�+8�+8��*\��p]��W� @@ -4992,206 +5078,216 @@ N N��]���\�+8�+8��*\��p]��W� N�� � -Wp*|_���X�Wp:{]��6� -NG� -ؾ -Wp:\Wp���|��u'Ӿ Wp:ZWp��U���Ẃ���+8�����m�p����l�U���Ẃ���+8�����m�p��ul_�+8���d|��+8�����m�p��ul_�+8�+8��*\���}'�c��t�����p��up_�+8�+8��*\���}'�c��t�����p��up_�+8�+8��*\���}'�c��t�����p��up_�+8�+8��*\���}'�c��t�����p��up_�+8�+8��*\���}'�c��t�����p��up_�+8�+8��*\�i�+8��p��up_�+8�+8��*\��p]��W� -N��+8�p��up_�+8�+8��*\��p]��W� -N��+8�p��up_�+8�+8��*\��p]��W� -N��+8�p��up_�+8�+8��j����� -ж Wp*z_���X�+8�+8��j���ѧ+8�_.����}��T�����t����m�����}��t������ -Ne� -N�}��t������p��up_�Wp:{]��6� -NE�+8��p��up_�+8�+8��*\��p]��W� -N��+8�p��up_�+8�+8��*\��p]��W� -N��+8�p��up_�+8�+8��*\��p]��W� -N��]���\�+8�+8��*\��p]��W� +Wp*|_���X�+8�+8��*\��p]��W� N�� � Wp*|_���X�+8�+8��*\��p]��W� N�� � +Wp*|_���X�+8�+8��*\��p]��W���^Wp��M��S�� +N��*\��p]��W���>]��r��t������p�������|����m��t������p��up_�Wp*[Wp2�p��ul_�+8�+8��j����� +ж Wp*z_���X�+8�+8��*\��p]��W� +N�� +� Wp*|_���X�+8�+8��*\��p]��W� -N���^��/�����t'|��{:��==~���� -���~��ﯟޏ�Rw�z�����>�;8��?��r���/?><��o_����?�v�_?�/�:���Ϗ^�����t�Gcg_i^�yy|��?+��_�.����B�t��R p_�R��w��� -�R��T�W�T�p�J��*�J�R p_�R��w��� -�R��T�W�T�p�J��*�J�R p_�R��w��� -�R��T�W�T�p�J��*�J�R p_�R���J���U(�:\�� -�R��T�W�T�p�J��*�J�K����\*u�*���M(�:Z�ؾ -�R��T�Ws�T�*�2�P*u�J%�}J�W����R��W��mB�TѻT��X�R��U*T��U*m�P*u�J%�}J� -ߥR��j.�:{�J@�&�J�R l_�R��U*�P*U�.�2>V�T�p�J��*�J�R p_�R��U*�P*U�.�2>V�T�p�J��*�J�R p_�R��U*�P*U�.�2>V�T�p�J��*�J�R p_�R��U*�P*U�.�2>V�T�p�J��*�J�R p_�R��U*�P*U�.�2>V�T�p�J��*�J�R p_�R��U*�P*5�Y�� -�R��T�W�T�p�J��*�J�R p_�R��w��� +N�� +� +Wp*|_���X�+8�+8��*\��p]��W� +N�� +� +Wp�� +N��*\��p]��W� +N�� +� +Wp:\Wp��U��S�� +N��*\��p]��W� +N�� +� +Wp:\Wp��U��S�� +N��*\��p]��W� +N�� +� +Wp�͖� +|�u���+8����������?�NWp����}���~�����g���1��Y�p��Ǘ��~��������_�����������q&�~|�ꕜ����?;�J�J�����Y���v�t�WJ�+_(�J��*�J�K���U(�:\�� +�R��T�W�T�p�J��*�J�K���U(�:\�� +�R��T�W�T�p�J��*�J�K���U(�:\�� +�R��T�W�T�p�J��*�J ~V*E|�B���*���U(�:\�� +�R��T�W�T��]*e|��R��W��mB���*���U(�:\�ྚK��V��i߄R��U*���P*u�J%�}5�J��J%�mJ��ޥR��*�J�R p_ͥRg�R hۄR��U*���P*U�.�2>Vs��٫T�6�T�h�J`�*�J�R p_�R��w��� �R��T�W�T�p�J��*�J�R p_�R��w��� �R��T�W�T�p�J��*�J�R p_�R��w��� -�R��T�W�T�p�J��j.�:{�J@�&�J�K�l�U(�:\��K��>�J�_.B���*���U(�*|�J��T��U*m�P*u�J%�}J�W����R��U*e�7�T�h�J`�*�J�R p_ͥRg�R hۄR��w���� �R��T�W�T�p�J��*�J�R p_�R��w��� �R��T�W�T�p�J��*�J�R p_�R��w��� �R��T�W�T�p�J��*�J�R p_�R���J���U(�:\�� �R��T�W�T�p�J��*�J�K���U(�:\�� �R��T�W�T�p�J��*�J�K���U(�:\�� -�R��T�W�T -�L[*�Z���J�R�F�TZ�J��1�J�R�������4���?@�x�s�����(��/�����U�_�w���_����/��p�r>�}~9_��_Η� -���������U��|�_����/��p�r>�}~9_��_Η� -���������U��|�_����/��p�r>�}~9_��_Η� -���������U��|��p_��Õ��V�N^3>V!y�p%���*$���p_��Õ��V�N^3>V!y�p%���*$���p_��Õ��V�N^3>V!y�p%���*$���p_��Õ��6�Y�� -�k�+y�W!y�p%���*$���p_���w���^�+ж �kG+y�W!y�p%���jN^+[�k�}�V� -��B���J^�՜�v�J^��MH^+z'�����v��W�}5'����W�m�V� -��B�Z�;y��X��kg��hۄ䵣�������v��W�}�� -��k��*$���p_��Õ��v��W�}�� -��k��*$���p_��Õ��v��W�}�� -��k��*$���p_��Õ��v��W�}�� -��k��*$���p_��Õ��v��W�}�� -��k��*$���p_��Õ��v��W�}��?K^#>W!y�p%���*$���p_��Õ��V�N^3>V!y�p%���*$���p_��Õ��V�N^3>V!y�p%���*$���p_��Õ��V�N^3>V!y�p%���*$���p_��kg��hۄ䵢w��� -�k�+y�Wc��ѧ���EH^;X�+о -�k���5�c5'����W�m�V� -��B���J^�՜�V���L�&$���l_��Õ��9y�야m���V�N^�=V!y�p%���*$���p_��Õ��V�N^3>V!y�p%���*$���p_��Õ��V�N^3>V!y�p%���*$���p_��Õ��6�Y�� -�k�+y�W!y�p%���*$���p_���w�� -�k�+y�W!y�p%���*$���p_���w�� -�k�+y�W!y�p%���*$����W�B+y=�B)y ���?y|��;���������?�<�����h�~���ӧ�V�r���S��_����o������o�?���������;��3�g�����ڽ��=~��[�������/����?}����W��/w�@��B�>�������^�~��O�F�W�����[i�>L�oސ�^��^Z��i�}�~��?}q_���ݽ�?��E�r�:�p�;�?��i��� ����rh��ӈ�� �����͗��ӈ�� ��g��P��O�F�Wod��?����Ǿ>M�X���;����*\/�p]/��W�zA��z� -�*|_/��X������*\/�p]/��W�zA��z� -�*|_/��X������*\/�p]/��W�zA��z� -�*|_/��X������*\/�p]/��W�zA��z� -�*|_/��X������*\/�p]/��W�zA��z� -�*|_/��X������*\/�p]/��W�zA��z� -�*|_/��X������*\/�p]/��W�zA��z� -���zA��*\/�p]/��W�zA��z� -�:\���U�^P��zA��j�^���zж �:Z���U�^��^����������M�^�Ѻ^���������}5_/��u��hۄ���d{�������}5_/��u��hۄ���`�*\/��}� �c5_/��u��hۄ���`�*\/�p]/��W�zA����p���u��p_������*\/�p]/��W�zA����p���u��p_������*\/�p]/��W�zA����p���u��p_������*\/�p]/��W�zA����p���u��p_������*\/�p]/��W�zA����p���u��p_������*\/�p]/��W�zA��]/��\������*\/�p]/��W�zA��z� -�*|_/��X������*\/�p]/��W�zA��z� -�*|_/��X������*\/�p]/��W�zA��z� -�*|_/��X������*\/�p]/��W����^���M�^P��zA��*\/�p]/��W����>]/��r�t�����p���������|������m�t�����p���u��p_��*[�2�p���u��l_������j�^���zж �*z_/��X������*\/�p]/��W�zA��z� -�*|_/��X������*\/�p]/��W�zA��z� -�*|_/��X������*\/�p]/��W�zA��z� -���zA��*\/�p]/��W�zA��z� -�:\���U�^P��zA��*\/�p]/��W�zA��z� -�:\���U�^P��zA��*\/�p]/��W�zA��z� -�ba�]/�/����t� |�?z��p�������|�@�:]/x<]/���?����u۷=<=�=���O����`�������r�����/��]|˻����ޟ�W����i�}�:�|�;��ġ�ק �7�ǻ����?}q_���t��}}q_���t����ӈ��u��p������ק �7�ǻ���?}q_����=���?��i�}��v���R��O�F�W���?����Ǿ>M�X���t�����4�z?��<�����ӈ�� �����^��O�F�W��o�?����Ǿ>M�X���t��}}q_���t��}}q_����}�7*��#m������������O�=Vo��w�����|}q_����=���燑����O������>���0u��yz~�p}�z���Uڧ�^D�f��U��پ��z����E��ƫ^���z���WI��^d�j��U��ᾚ�z���U/�/�U��U/��j��U��ᾚ�z����E���^%��z���W���c5_�*�uՋp_�W�J|]�"�W�U�_W���|ի�u�𱚯z����E���^%��z���W���^��j������X�W�J|]�"�W�U�_W���|ի��U/�}5_��p]�|��^%��z���W���^��j��U��ᾚ�zu��z>V�U�_W���|ի��U/�}5_�*�uՋp_�W�:\W�����W���^��j��U��ᾚ�z����E���^��^���|ի��U/�}5_�*�uՋp_�W�J|]�"�W�U� -�W�2>W�U�_W���|ի��U/�}5_�*�uՋp_�W�:\W����Wi��zm���WI��^d�j��U����zu����o�^%��z�����W���^��j��Uڧ�^D�f���Ѻ��X�W�J|]�"�W�U��>]�"�6�U��^W����|ի�u���z���Ѷ��z����E���^%��z���W���c5_�*�uՋp_�W�J|]�"�W�U�_W���|ի�u�𱚯z����E���^%��z���W���^��j������X�W�J|]�"�W�U�_W���|ի��U/�}5_��p]�|��^%��z���W���^��j��U��ᾚ�zu��z>V�U�_W���|ի��U/�}5_�*�uՋp_�W�*|_���\�W�J|]�"�W�U�_W���|ի��U/�}5_��p]�|��^%��z���W���^��j��U��ᾚ�zu��z>V�U�_W���|ի��U/�}5_�*�uՋp_�W�:\W�����W���^��j��U����z���Ѷ��zu��z�=V�U�_W���tի�?�z|���z���E���^��^���xի�OW����|ի��U/�}5_�*�uՋp_�W�:{]��7�U��^W����|ի��U/�}5^�*��U/�m3_��h]�{��^%��z���W���^��j��U��ᾚ�zu��z>V�U�_W���|ի��U/�}5_�*�uՋp_�W�:\W�����W���^��j��U��ᾚ�z����E���^��ze|��^%��z���W���^��j��U��ᾚ�zu��z>V�U�_W���|ի��U/�}5_�*�uՋp_�W�:\W�����W���^��j��U��ᾚ�z��T�U/�B��]|��כW��7��W��S���G�N:��z:���?���_�dzwo����1������c^��/����憐��+���ů�m��,�&�d�˲m��F�Ģ�p>��u=,˶ ��*Y�òl�p8��u7,˶ W�y ��o�ɰJ�Ű,�&��d�˲m±�J֭�,�&\ -k�}(,ʾ g�*YW²l�p#��u",˶ �*Y���l�p���q�(�&��d]˲m�]�J�Y�,�f> -V��&Xv/�"X��`�M8Vɺ�e�̷�*x����"�\�˰m��B>;�䱙O�U�����E��U�:��aۄ�_���_Y��|���u�+��g�*WW�2l�p�u�+˶~U���WV/���W��c_��M8�Uɺ��eۄ;_��3_Y�M8�Uɺ�eۄ_��|E�7�W%�W�mn{U�N{e�6�W%�W�m�z5�>�e߄�^���^Y�M��U�:�eۄc^��[^Y�M������W�}�xU��xe�6�W%�W�mxU��we�6�zW#��]Q�M8�Uɺܕeۄ�]���]Y�M8�Uɺٕeۄ�]��vE�7�\W%�ZW�mnuU�Nue�6�PW%�NW�m�t5�>�e߄]��]Y�M��U�:ϕeۄ�\���\Y�M�����0W�}�rU��re�6�&W%�$W�mrU��qe�6�W!��J�S\��K\Y�M��U�:Õeۄ#\��\Y�M������W�}3�ߪ�u}+���p{�ruz+ö ��*Yw��l���V��VtmNnU�.ne�6��V%��V�m3۪�uk+���pi�q����&�٪d]�ʲm�[�Nle�rlU��ke�6�V#��ZQ��|Z���e��^.�]���Y��&ժd��ʲm�E�F����pN��uM+˶ ��*Y���l�pH��uG+˶ W�yъ�o� �J��,�&�Ϫd��ʲm��J���,�&\�j�}8+ʾ g�*YW��l�p3��u2+˶ �*Y���l�p-�����(�&�ʪd]�ʲm�J֙�,�&ɪd��ʲm �F����p��u+˶ ��*Y���l�p��u+˶ W� -��(V��&�Īd]�ʲm�=�J�9�,�&êd��ʲm�%�Fއ���p��u+˶ 7�*Y'��l�p���u�*˶ ׯy���o��J��,�&ܽ�d��ʲm�ѫJ�ͫ,�&\�j�}�*ʾ �*Y�l�p몒u�*˶�]U�s���E�rո��U�}N\U�.\e�6�}��=�������Tݶʮm�e�Fއ�����U��Vٽ\��V���V�M8hUɺg�e��XǬ�k�pʪru�*ö w�*Yg��l���U�Vٽ\�V��XE�7�|U%�zU�mnWU�NWe�6�pU%�nU�m�V5�>Ze߄�U���UY�M�WU�:W�eۄcU��[UY�M�T���PU�}�TU��Te�6�FU%�DU�mTU��Se�6�:U!��J��T���TY�M�KU�:K�eۄ�T���TY�M�H��� U�}�QU��Qe�6�U%�U�mQU��Pe�6� -U#�#TQ�M8AUɺ@�eۄ�S���SY�M8>u��R{{*�uz��ۤ�S���><��t������>?��Sϧ�S��_������?��������_����~����gg��qY�e_�ɾ>�������g)>=�+����ӌ�UP;\*� - j�+B�W!C�pu���*���SԌ�U�Q;\5*� -=j�+H�W!I�p5���*T���Ԍ�US;\e*� -mj�+N�W!O�p����*��Ռ�U�T;\�*� -�j�+T�W!U�p����*Ԫ�sՌ�UV;\�*� -�j�+Z�W![�pu���*����Ռ�U�W;\�*� -�j�+`�W!a�p5���*T��3�UY;\%+� --k�+f�W!g�p����*� ~��F|�B���Z�U�Z;\a+� -ik��m�W�n��f|�����W� -�mB��ъ\��U�\;\�+ྚK��V�i߄ص�U����лv��W�}5'����W�m���k��*����p_��kg��hۄ���տ���P�V�N`3>Vs�٫��6���h��`�*���p_���w�� -Al����W���pE���*d��.p_�2��w�� -ql����W���p���*$��Fp_�J��w&�� -�l����W���pŲ��*��^p_�b��w2�� -�l����W���p����*���vp_�z��w>�� -m����W���pE���*d���p_�����Rڈ�U�i;\5-� -=m�+��W!��p5���*T���ڌ�Uk;\e-� -mm�+��W!��p����*��ی�U�l;\�-� -�m�+��W!��p����*Զ�sی�Un;\�-� -�m�+��Wsv�٫��6�����f{�B|��o����v�)��r�V���B�[�;���X�!ng�hۄ�������v�z\�}5���$7Ӿ QnG���W���p����jNs;{��@�&Թ���l�Ut;\�.� -�n�+��W!��pu���*���S�U�u;\�.� -�n�+��W!��p5���*T����Uw;\�.� -�n�+��W!��p����*� ~��F|�B���x�U�x;\!/� -)o����W����f|�B���*z�Uhz;\Q/� -Yo����W����f|�B���{�U�{;\�/� -�o,Q���Њ|ϿP�|�7�����������:d��������~~>?�p�������1���S���߾����/��/~>���O���Y��oe�����_�������|�ۿ���E����iq��*�����-�W�7w�~u1� -����U��P�W�.�3>V� �p��*���p_����U��P�W�.�3>V� �p��*���p_����U��P�W�.�3>V� �p��*���p_����U��P�W�.�3>V� �p��*���p_����U��P�W�.�3>V� �p��*���p_����U��P�W�.�3>V� �p��*���p_����U��P�W�.�3>V� �p��*���p_����U��P�7�YA� -y�� �W� �p��*���p_����wA����^9ж yG� �W� �p��j.�+[y�} +�R��T�W�T�p�J��*�J�K���U(�:\�� +�R��T�Ws��٫T�6�T��]*e{�B���*����X*u��T�rJ�V���B�T�T��XͥRg�R hۄR��U*���P*u�J%�}5�J��R)Ӿ �RG�T�W�T�p�J��j.�:{�J@�&�J�K�l�U(�:\�� +�R��T�W�T�p�J��*�J�K���U(�:\�� +�R��T�W�T�p�J��*�J�K���U(�:\�� +�R��T�W�T�p�J��*�J ~V*E|�B���*���U(�:\�� +�R��T�W�T��]*e|�B���*���U(�:\�� +�R��T�W�T��]*e|�B���*���U(�:\�� +�R�f�R ��*�ο����R)|�?^*�� ����J��S��_����g�������9��G���o�I���ſ������*�/��}�/��W��u�~9� +�����/���X�_�����|��*�r��/��W��u�~9� +�����/���X�_�����|��*�r��/��W��u�~9� +�����/���X�_�����|��*�r�W� +��B���J^�UH^+|'����v��W�}��W� +��B���J^�UH^+|'����v��W�}��W� +��B���J^�UH^+|'����v��W�}��W� +��B���J^�UH^�,y��\��Õ��v��W�}��W� +��B�Z�;y��X��kg��hۄ䵣�������v��W�}5'����5Ӿ �kG+y�W!y�p%���jN^;{%�@�&$����l�UH^;\�+ྚ���^�+ж �kG+y�W!y��f|��䵳W� +�mB���J^��UH^;\�+� +�k���5�c��W� +��B���J^�UH^;\�+� +�k���5�c��W� +��B���J^�UH^;\�+� +�k���5�c��W� +��B���J^�UH^;\�+� +�k���5�c��W� +��B���J^�UH^;\�+� +�k���5�c��W� +��B���J^�UH^;\�+� +�k��%�����v��W�}��W� +��B���J^�UH^+|'����v��W�}��W� +��B���J^�UH^+|'����v��W�}��W� +��B���J^�UH^+|'����v��W�}��W� +���䵳W� +�mB�Z�;y��X��Õ��1y��S� +��"$���h_���w���^�+ж �kG+y�W!y�p%���jN^+[�k�}�V� +��B���J^�՜�v�J^��MH^+z'�����v��W�}��W� +��B���J^�UH^+|'����v��W�}��W� +��B���J^�UH^+|'����v��W�}��W� +��B���J^�UH^�,y��\��Õ��v��W�}��W� +��B�Z�;y��X��Õ��v��W�}��W� +��B�Z�;y��X��Õ��v��W�}���cv�+|��������o���<>}��EJ^���������?�^��w�W�����So+x]���۩t�/�~����?����Ƿ�~���?����~��}��dz���Pk�^����í�������PgW^��>v���������� x��\�O�F�Wo�ow���?��O#���t����O&�7oȏw/�o/-}�4ھz?�P��>�������^����"|�x�}8�^����4�c�~�sy9�?��i�}�~�s���K��i�}�~��yz��O#�72����c�c_�&|���ם����}�t����p���u��p_����d|�������}�t����p���u��p_����d|�������}�t����p���u��p_����d|�������}�t����p���u��p_����d|�������}�t����p���u��p_����d|�������}�t����p���u��p_����d|�������}�t����p���u��p_�� ~v� �s�t����p���u��p_������*\/��}� �c5_/��u��hۄ���`�*\/�p]/��W�������L�&\/�h]/��W�zA��zྚ�t��^��m�������=V�zA��zྚ�t��^��m�������}�T��^�t��^��m�������}�t����p��������U�^��^���������}�t����p��������U�^��^���������}�t����p��������U�^��^���������}�t����p��������U�^��^���������}�t����p��������U�^��^���������}�t����p���ϮD|�������}�t����p���u��p_����d|�������}�t����p���u��p_����d|�������}�t����p���u��p_����d|�������}�t�����zAg��@�&\/��}� �c�t�����zAG���|��:X���U�^P��zA��j�^���zж �:Z���U�^��^����������M�^�Ѻ^���������}5_/��u��hۄ���d{�������}�t����p���u��p_����d|�������}�t����p���u��p_����d|�������}�t����p���u��p_�� ~v� �s�t����p���u��p_������*\/��}� �c�t����p���u��p_������*\/��}� �c�t����p���u��p_������Z�οP�^���^p8�k����S�^�O��<���ӏ���~�����������s����G0�r��wxz�{z�� ���.����Bow�O��_� +~�4�z>��~�P��ӄ��������[��>������:���Ǿ>������:�O����i�}�:�r�{|j��ӄ��������S��>�����_�__���4�z�{{y��O#�������k�c_�&|����:Oo�}}q_���t�^[��i�}�~��yx��O#������}�c_�&|����:���Ǿ>������:���Ǿ>�������>���燑�����������ק��7�ǻ����g�>�����_�^j���H�� ��'��T��O�F�Wo\�:��<=?v�> �\��^�*��U/�m3_�*�uՋl_�W�J|]�"�W�U��^W����|ի��U/�}5_�*�uՋp_MW�J�������W��c5_�*�uՋp_�W�J|]�"�W�U�_W���|ի�u�𱚯z����E���^%��z���W���^��j������X�W�J|]�"�W�U�_W���|ի��U/�}5_��p]�|��^%��z���W���^��j��U��ᾚ�zu��z>V�U�_W���|ի��U/�}5_�*�uՋp_�W�:\W�����W���^��j��U��ᾚ�z����E���^��^���|ի��U/�}5_�*�uՋp_�W�J|]�"�W�U��U/��j��U��ᾚ�z����E���^%��z���W��^����W���^��j��U��ᾚ�z����E���^��^���xի�OW����|ի��U/�}5_�*�uՋp_�W�:{]��7�U��^W����|ի��U/�}5^�*��U/�m3_��h]�{��^%��z��Wi��zm���WI��^d�j������X�W�J�tՋh��W�Jz]�"�W�U�_W���|ի�u�𱚯z����E���^%��z���W���^��j������X�W�J|]�"�W�U�_W���|ի��U/�}5_��p]�|��^%��z���W���^��j��U��ᾚ�zu��z>V�U�_W���|ի��U/�}5_�*�uՋp_�W�:\W�����W���^��j��U��ᾚ�z����E���^��ze|��^%��z���W���^��j��U��ᾚ�zu��z>V�U�_W���|ի��U/�}5_�*�uՋp_�W�:\W�����W���^��j��U��ᾚ�z����E���^��^���|ի��U/�}5_�*�uՋp_�W�J�tՋh��W�:ZW�����W���^��j��UҟW��\�W�Jx]�"�W�U��U/��j��Uڧ�^D�f��U��پ��z����E��ƫ^���z���WI��^d�j��U����z���Ѷ��zu��z�=V�U�_W���|ի��U/�}5_�*�uՋp_�W�:\W�����W���^��j��U��ᾚ�z����E���^��^���|ի��U/�}5_�*�uՋp_�W�J|]�"�W�U� +�W�2>W�U�_W���|ի��U/�}5_�*�uՋp_�W�:\W�����W���^��j��U��ᾚ�z����E���^��^���|ի��U/�}5_�*�uՋp_�W��U��}���.�P�ꕾ���u�����g8�u��������������<�u�{{����<�y��n�z<~���N?}7}���]9�.~�o�Έe�6�X%�X�m.�5�> e߄�a���aY�M�V�:�eۄ�a���aY�M����hX�}N�U�.�e�6�^X%�\X�m��U�n�e�6�RX#�CaQ�M8Vɺ�eۄa��aY�M8Vɺ�eۄ�`����E�7�4X%�2X�m�U�e�6�Q� +^7��{��w��o�9�J�5�,�f�V��Xv/�X��X�m�����$��|�����^.��������&��d��ʲm��_ ��_ѵE8�U����aۄ�_���_Y��x�rO���z�u���o©�J֥�,�&���d��ʲm�J֍�,�&\�j�}�+ʾ �*Y�l�p۫�u�+˶ ��*Yw��l�pի��Q�(�&���d]�ʲm�=�J�9�,�&�d��ʲm�%�Fއ���pƫ�u�+˶ 7�*Y'��l�p���u�+˶ yo��J��,�&���d��ʲm�ѮJ�ͮ,�&\�j�}�+ʾ �*Y�l�p���u�+˶ ��*Yw��l�p������(�&��d]�ʲm�}�J�y�,�&�d��ʲm�e�Fއ���p���u�+˶ 7�*Y'��l�p���u�+˶ +��W��&��d]�ʲm��J��,�&�d��ʲm��F������V��[ٽ\��[���[�M8�Uɺ��e��W�XG��k�pr�ruq+ö ��*Y網l���V�[[ٽ\�K[��mE�7��V%��V�m3�ت�ub+���p`�ru_+ö y�o��Z�.ke�r�jU��je�6�V%�V�m.j5�>�e߄sZ��kZY�M��U�:��eۄCZ��;ZY�M������V�}NhU�.he�6�~V%�|V�m�gU�nge�6�rV#��YQ�M8�Uɺ��eۄ�Y���YY�M8�Uɺ��eۄkY���eE�7�TV%�RV�m�dU��de�6�HV%�FV�m.d5�>�e߄�X���XY�M��U�:��eۄ�X���XY�M��U�gG��<6�$V%�"V�m�aU��ae�6�V%�V�m.a5�>�e߄3X��+XY�M��U�:��eۄX���WY�M�~����U�}N_U�._e�6��U%��U�m�^U�n^e�6��U#�WQ�M8wUɺv�eۄ[W��SWY��|誂ם��^.���G�"�p⪒u�*˶�[U��UV/��U��Uvm.[5�>le��g�*x]����"ܴ�\��ʰm�A�J�=�,�f�f��:f][�SV��KV�M�cU�:c�e��G�*xݰ���"\�j�}�*¾ �*Y�l�p���u�*˶ ��*Yw��l�p����Ѫ(�&���d]�ʲm½�Jֹ�,�&��dݪʲm¥�Fއ���p���u�*˶ 7�*Y'��l�p���u�*˶ ש +��8U��&���d]�ʲm�]�J�Y�,�&��dݤʲm�E�F����p���u�*˶ ��*Y���l�p���u�*˶ W�y���o� �J��,�&ܟ�d��ʲm���G���S�۬�Sg�������_��zy�{|{|��S���������ۯ���?��~�������/_��o�}���3}����d_�n�`��ӳ���������I�i��*��p_�����v�:T�}J� +�)j��*Ĩ�p_�����v��T�}�� +�Yj��*���2p_�6����v��T�} +� +߉j��*D��Jp_�N����v�ZU�}j� +߹j��*��bp_�f����v��U�}�� +��j��*ī�zp_�~����v�V�}*� +�k��*����p_������v�zV�}��?KZ#>W!j�pU���*t���p_����ն�P�V��[3>Vs��٫p�6�q�hE�`�*d���p_ͥke+uʹoB��Ѫ]��U�];\�+ྚ���^�+ж �kE��5�c��W� +������W� +�mB����_��U(`+|'��9���U�m���v�BX�}R�W��B [�;���X� ��U����v��X�}��W��B[�;���X�8��U����v�Y�}�W#��B%[�;���X�P��U����v�bY�}r�W/��B1[�;���X�h��U����v��Y�}��W;��B=[�;���X����U����v�"Z�}2�WG��BI��g)m��*Ĵ��p_������v��Z�}�� +�Ym��*����p_������v��Z�} +� +߉m��*D���p_�ζ���v�Z[�}j� +߹m��*���p_�����9�����m�P�V�No�=V!��pշ��j�o;��|� n���W���f|����W��mB��ъq��U�q;\=.ྚ���V��i߄(��U�����v��\�}5�����\�m�܊�yn��*��Bp_�F����v�:]�}J� +ߩn��*ĺ�Zp_�^����v��]�}�� +��n��*���rp_�v����v��]�} +�?Kx#>W!��pU���*t���p_�������P�V��y3>V!��p���*4���p_�������P�V�N{3>V!��pս��*����p_��7��]�_hE��_(U�����������z2������{�_??��8��}��s��B��)���o_~�����\���?����sl�,_o��������ݿ��������W����X��"��� +�8�c~mq�����;\��p_�_^��*��U(�+|��P�w� +r�} +�WA��BA��*��U(�+|��P�w� +r�} +�WA��BA��*��U(�+|��P�w� +r�} +�WA��BA��*��U(�+|��P�w� +r�} +�WA��BA��*��U(�+|��P�w� +r�} +�WA��BA��*��U(�+|��P�w� +r�} +�WA��BA��*��U(�+|��P�w� +r�} +�WA��BA��*��U(��� ��\����U��P�w� +r�} +�WA��BA^� ��X�yg��hۄ���U����P�w� +r�}5䕭�<Ӿ yG� �W� �p��j.�;{�@�&���l�U(�;\9ྚ��^9ж yG� �W� ��]�g|�悼�WA�mBA��*���U(�;\9� +y��<�c +�WA��BA��*��U(�;\9� +y��<�c +�WA��BA��*��U(�;\9� +y��<�c +�WA��BA��*��U(�;\9� +y��<�c +�WA��BA��*��U(�;\9� +y��<�c +�WA��BA��*��U(�;\9� +y�����P�w� +r�} +�WA��BA��*��U(�+|��P�w� +r�} +�WA��BA��*��U(�+|��P�w� +r�} +�WA��BA��*��U(�+|��P�w� +r�} +�WA��悼�WA�mBA^ѻ ��X����U� ��SA��"���h_����wA����^9ж yG� �W� �p��j.�+[y�} �VA��BA��*���\�w�*ȁ�M(�+z���P�w� -r�}5䝽 -r�m -�VA��BA^� ��X�yg��hۄ���U����P�w� r�} -� -�y��*���p_����U��P�w� +�WA��BA��*��U(�+|��P�w� r�} -� -�y��*���p_����U��P�w� +�WA��BA��*��U(�+|��P�w� r�} -� -�y��*���p_����U��P�w� +�WA��BA��*��U(��� ��\����U��P�w� r�} -� -�y��*���p_����U��P�w� +�WA��BA^� ��X����U��P�w� r�} -� -�y��*���p_����U��P�w� +�WA��BA^� ��X����U��P�w� r�} -�?+�#>W� �p��*���p_����U��P�W�.�3>V� �p��*���p_����U��P�W�.�3>V� �p��*���p_����U��P�W�.�3>V� �p��*���p_�yg��hۄ���wA��� -y�� �WcA�ѧ���E(�;X9о -y��<�c5䝽 -r�m -�VA��BA��*���\�W� -�L�&���l_����U� ��U�m�P�W�.ȳ=V� �p��*���p_����U��P�W�.�3>V� �p��*���p_����U��P�W�.�3>V� �p��*���p_����U��P�7�YA� -y�� �W� �p��*���p_����wA�� -y�� �W� �p��*���p_����wA�� -y�� �W� �p��*�z� -r�B� ?�B�o�����xA�x����+��c*�N�?��u䗿9�����_~���������/_��������WI�/�!����������������3�%��]���BW�Nz*���S��S!�}� -u�� -��T���S���Ux*��z*���S��S!�}� -u�� -��T���S���Ux*��z*���S��S!�}� -u�� -��T���S���Ux*��z*���S��S!�}� -u�� -��T���S���Ux*��z*���S��S!�}� -u�� -��T��Ϟ -E|��S��S!�}� -u�� -��T���Tp_��B�� -e|��S��S!�}� -u�� -��T���Tp_��B�� -e|��S��S!�}� -u�� -��T���Tp_��B�� -e|��S��S!�}� -u�� -���Pg��B@�&<���T(�c� -u�� -��PG�� -|�O�:XO���Ux*T���P��j~*���ж O�:ZO���Ux*��z*���B���B��Mx*��z*���S��S!�}5?���Thۄ�B�� -e{��S��S!�}� -u�� -��T���Tp_��B�� -e|��S��S!�}� -u�� -��T���Tp_��B�� -e|��S��S!�}� -u�� -��T���Tp_��B ~�T(�s� -u�� -��T���Tp_��B��B��*<���T(�c� -u�� -��T���Tp_��B��B��*<���T(�c� -u�� -��T���Tp_��B�J�T��z*t����o? -��?:�8��cO����T����C������No�����߰�?�s� �[����[��b����t��_D8}�����p:��u:p_�����р�*���p���W�tt�����p:��u:p_�����р�*���p���W�tt�����p:��u:p_�����р�*���p���W�tt�����p:��u:p_�����р�*���p���W�tt������\�����р�*���p���W�tt��t4� -��+|����Xͧ�;{���6�ttG�t4ؾ -��;\����|:��u::Ӿ ��;Z����U8��: ����ѝ�NGm�p:�����l�U8��: ����ѝ�NGm�p:��u:l_����OGg|���ѝ�NGm�p:��u:l_�����р�*����}::�cz�W��B������U��:\=� -=X��,�cz�W��B������U��:\=� -=X��,�cz�W��B������U��:\=� -=X��,�cz�W��B������U��:\=� -=X��,�cz�W��B������U��:\=� -=X���`��Ѓu�z0�}z�W��B������U��*|�`�Ѓu�z0�}z�W��B������U��*|�`�Ѓu�z0�}z�W��B������U��*|�`�Ѓu�z0�}z�W�����W�mBVѻ��X���Ճ��S��"�`�h_���w��{��^=ж =XG��W��p�`��j��*[=X�}z��V��B�������܃u�����M��*z�`��Ѓu�z0�}z�W��B������U��*|�`�Ѓu�z0�}z�W��B������U��*|�`�Ѓu�z0�}z�W��B������U������\���Ճ�Ѓu�z0�}z�W��BV���X���Ճ�Ѓu�z0�}z�W��BV���X���Ճ�Ѓu�z0�}z��+�=|�Ճ�����=X�F�{�l���`�c�����0�����o������ۯ?��[���������L�}�ه�_o���^Uǿ�����/*����ҫj�}^Uw�^U�����ꌏ�����j�m^Uw�^U�������p_ͯ�+[��3�𪺣��l_�W��WՀ�j~U���U5ж ��+z����X�W��WՀ�j~U���U5ж ��;Z����UxU]��Uu��j~U���U5ж ��;Z����UxU��zU ��«� -߯�3>V�Uu��U5� -��;\���UxU��zU ��«� -߯�3>V�Uu��U5� -��;\���UxU��zU ��«� -߯�3>V�Uu��U5� -��;\���UxU��zU ��«� -߯�3>V�Uu��U5� -��;\���UxU��zU ��«� -߯�3>V�Uu��U5� -��;\���UxU��zU ��«�?{U� -��;\���UxU��zU ��«�j�}^UW�~U�� -��;\���UxU��zU ��«�j�}^UW�~U�� -��;\���UxU��zU ��«�j�}^UW�~U�� -��;\���UxU��zU ���W՝�^Um�𪺢���l�UxU��zU ���W�}zU ��"���`���W�Uu��W���Uug�W�@�&���h���W�Uu��U5ྚ_UW�^Ug�7�UuG�U5ؾ -��;\��������j�m^UW�~U��� -��;\���UxU��zU ��«�j�}^UW�~U�� -��;\���UxU��zU ��«�j�}^UW�~U�� -��;\���UxU��zU ��«�j�}^U7�٫��UxU��zU ��«�j�}^Uw�^U�����ꌏUxU��zU ��«�j�}^Uw�^U�����ꌏUxU��zU ��«�j�}^U�G���j�B�U��J���7��E�>{�ۿe���o/O�H�����5�������Ӌ��{�?��/��?����_~��/������������~�������_>�w��/߾�xx��/�}����,�Q=�����?�������zY��eǿ2}��/����+�&���6��N^�A�������kn�m3��d=�βoƇ�|z� ��b~�ݹ�7����pw�z� �m�����og�����]o����r����m�m3>���ӫmp/���Փ��f~����6ȶ_kw��6�����v算���f~�]�z��eߌ��;��F����B�s�m�m3?����:d��o�+YO����av'�w� �f~����Q6ȶ��dw�z� �m��ؕ���Y������[l�m3�����d��ϰ;y���6��J��,�f~�����5ȶ�__w�z| �m�ם�^^�l���u%��u�}3?�����d��/�;y=��6�s�N^��A���ֺ���:˾�Zw�zg �m�W֝�Y�l���u'�� �f~_���yu��f~\���m5ȶ�_Vw�zX �m�g՝�^U�l��Mu%�Iu�}3?�����d�̯�;y=��6�S�N^/�A��������:˾�Qw�zC �m�ԝ�P�l���t'��� �f~;]�z:�e���;y���6��N^��A���d��O/���\��+Wϥ3���t'��� �fz)ݹ��A���Ϥ;u���6��J��,�f| ������^.��ѝ�Gl��it'��� �f|]��Ytvm1?����&`��/�;y=��6�s�>���r1���\=�ΰo�Н��A�l��t'�G� �f~���4ȶ��?W��?g�7���N^o�A������g�m3?{����d��o�+YO�����s'��� �f~����3ȶ��:w�z��m�w��9Gyl�GΝ��8�l���s'�� �f~����u3ȶ��6W��6g�7���N^�A������ףf�m3?i����d���+Yϙ���1s'��� �f~����!3ȶ��1���+f�6������9|������m��K��K~��~��p����o*��/��Z�No������\���Z���:�Z����vendstream +�X=w9|�U�����y�F� <~���� +��1�����:���������/�\~����_~������_��ګ��������_������|��������.� +�S�+_'=�W�P��� +O�:\O���Ux*T���P��*<�p=�W�P��� +O�:\O���Ux*T���P��*<�p=�W�P��� +O�:\O���Ux*T���P��*<�p=�W�P��� +O�:\O���Ux*T���P��*<�p=�W�P��� +O�:\O���Ux*��gO�">W�P��� +O�:\O���Ux*��z*���S� +�O�2>V�P��� +O�:\O���Ux*��z*���S� +�O�2>V�P��� +O�:\O���Ux*��z*���S� +�O�2>V�P��� +O�:\O�����T���S!�m� +U�~*��� +O�:\O�����T��OO���\��B��B@�*<���T(�c5?���Thۄ�B��B`�*<�p=�W�S���S�L�&<�h=�W�P��ྚ� +u�z*�m�S���O��=V�P��� +O�:\O���Ux*��z*���S� +�O�2>V�P��� +O�:\O���Ux*��z*���S� +�O�2>V�P��� +O�:\O���Ux*��z*���S�?{*� +O�:\O���Ux*��z*���S��S!�}� +U�~*�� +O�:\O���Ux*��z*���S��S!�}� +U�~*�� +O�:\O���Ux*��z*���S��T�}*_h=:�B� +�o�ǟ +�ǿ���B�cz*�xw�!����o��B�~�����oX�9��-����˭�@�OGǿ�}:��/"������茏U8��: �������h�}NGw�NG�p:����茏U8��: �������h�}NGw�NG�p:����茏U8��: �������h�}NGw�NG�p:����茏U8��: �������h�}NGw�NG�p:���NGG|������h�}NGw�NG�p:��u:p_����OGg|���ѝ�NGm�p:��u:l_�����р�j>]�:�i߄�����`�*���p���W����^����M8]��tt��*���p���W����^����M8��: ����� +ߧ�3>V����^����M8��: �������h�}NGW�>�� +=X���W��p�`��*�`�p_���w�� +=X���W��p�`��*�`�p_���w�� +=X���W��p�`��*�`�p_���w�� +=X���W��p�`��*�`�p_���w�� +=X���W��p�`��*�`�p_����z���U��:\=� +=X���W��p�`��*�`�{���U��:\=� +=X���W��p�`��*�`�{���U��:\=� +=X���W��p�`��*�`�{���U��:\=� +=X���Ws�٫�6���݃e{�B�������u���rz�V��BV���X�=Xg�hۄ��Ճ���Ѓu�z0�}5�`��,Ӿ =XG��W��p�`��j��:{�`@�&�`�{�l�U��:\=� +=X���W��p�`��*�`�{���U��:\=� +=X���W��p�`��*�`�{���U��:\=� +=X���W��p�`��*�` ~փE|�B������U��:\=� +=X���W���݃e|�B������U��:\=� +=X���W���݃e|�B������U��:\=� +=Xȕ�����ο����,|�у=S���z��1�`Owt�Ͽ����_�ju���ן����������p��o�ξ���ϯ�~�g���_�~U}�^U_�B�U5� +��;\���UxU]��Uu��j~U���U5ж ��;Z����UxU��zU ���WՕ�Wՙ�MxU��zU ��«�j�}5������hۄW��_Ug{�«�j�}5������hۄW��W�`�*������:�c5������hۄW��W�`�*���p���W�Uu��W������p_�W��WՀ�*���p���W�Uu��W������p_�W��WՀ�*���p���W�Uu��W������p_�W��WՀ�*���p���W�Uu��W������p_�W��WՀ�*���p���W�Uu��W������p_�W��WՀ�*���p���W�Uu������\�W��WՀ�*���p���W�Uu��U5� +��+|����X�W��WՀ�*���p���W�Uu��U5� +��+|����X�W��WՀ�*���p���W�Uu��U5� +��+|����X�W��WՀ�*���p���W���^����MxU]��Uu��*���p���W��>���r^Uw�^U������ꌏ�����j�m^Uw�^U�������p_ͯ�+[��3�𪺣��l_�W��WՀ�j~U���U5ж ��+z����X�W��WՀ�*���p���W�Uu��U5� +��+|����X�W��WՀ�*���p���W�Uu��U5� +��+|����X�W��WՀ�*���p���W�Uu��U5� +����Uu��*���p���W�Uu��U5� +��;\���UxU]��Uu��*���p���W�Uu��U5� +��;\���UxU]��Uu��*���p���W�Uu��U5� +���#��U5|������W��}��"�O����߲q����$��~w�O������E���=������zN��/?���O_�v����?}������/������o_~<<��߾~��y��������{�����do��^Dz�_�>v��v�T��o�t�l��Ew'�� �f~����57ȶ��rW��rg�7�C�>���r1������`��O�;y���6��� +^Ϸ�k���v箷���f~�����6ȶ�mw���6�����v���v�}3?����^dی��;��X����T�s�Km�m3�Ӯd=�βo�G�|z� ��b~�ݹ�6����gw�z� �m�ٕ���Y���0��l�m3�����(d��O�;y���6�{�J�s�,�f~����-6ȶ�_bw�z� �m�g؝�^a�l�� v%� v�}3?�����d�̯�;y=��6���N^/�A�����:˾�]w�zs �m�ם�\�l���u'��� �f~k]�zj�e���;y���6�+�N^��A���ĺ��k�m3��n���:�c3?�����d��/�;y=��6��N^��A��������:˾�Tw�zO �m��ԝ�S�l��)u'��� �f~G]�zF�e�̏�;y���6��N^�A���|����i�m3���d=�βo�ӝ��M�l���t'�G� �f|2�����^.��ҕ������X���[i�m3����χҠ^��gҝ�^I�k���t%�t�}3>�����hp/����]�����4����h�m3�����,:���Ew�z �m�ѝ�D�l��9t�^C�{���BW��Bg�7�C�N^�A��� +���#h�m3?����d���+Yϟ����s'��� �f~�����3ȶ��=w�z��m�7ϕ�'�Y���๓�{g�m3�v����d��O�;y�t�6�;�F�Ϝ�<6�#�N^o�A���¹��g�m3?o����d��o�+YO����as'�w� �f~����Q3ȶ��4w�z��m��̕���Y�������[f�m3�d����d��Ϙ���3|���οMx����o�_��6�����%�ݿ_?�z�{}��7wo��w}���������K�O}|��y�[�m-��.W�tendstream endobj 1590 0 obj << /Type /Page @@ -5442,14 +5538,14 @@ endobj 1627 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [94.6451 486.9539 148.3831 495.9202] +/Rect [94.6451 487.0735 148.3831 495.9202] /Subtype /Link /A << /S /GoTo /D (versions) >> >> endobj 1628 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.0237 486.9539 538.9788 495.9202] +/Rect [527.0237 487.0735 538.9788 495.9202] /Subtype /Link /A << /S /GoTo /D (versions) >> >> endobj @@ -5850,14 +5946,14 @@ endobj /Border[0 0 0]/H/I/C[1 0 0] /Rect [118.5554 109.4247 303.2015 120.3287] /Subtype /Link -/A << /S /GoTo /D (2174) >> +/A << /S /GoTo /D (2164) >> >> endobj 1686 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [527.0237 109.4247 538.9788 120.3287] /Subtype /Link -/A << /S /GoTo /D (2174) >> +/A << /S /GoTo /D (2164) >> >> endobj 1687 0 obj << /Type /Annot @@ -7079,14 +7175,14 @@ endobj /Border[0 0 0]/H/I/C[1 0 0] /Rect [118.5554 182.0175 213.5384 190.8642] /Subtype /Link -/A << /S /GoTo /D (2704) >> +/A << /S /GoTo /D (2689) >> >> endobj 1825 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [527.0237 182.0175 538.9788 190.8642] /Subtype /Link -/A << /S /GoTo /D (2704) >> +/A << /S /GoTo /D (2689) >> >> endobj 1826 0 obj << /Type /Annot @@ -7891,14 +7987,14 @@ endobj /Border[0 0 0]/H/I/C[1 0 0] /Rect [142.4658 614.5306 244.6318 625.4345] /Subtype /Link -/A << /S /GoTo /D (2901) >> +/A << /S /GoTo /D (2886) >> >> endobj 1904 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [527.0237 614.5306 538.9788 625.4345] /Subtype /Link -/A << /S /GoTo /D (2901) >> +/A << /S /GoTo /D (2886) >> >> endobj 1905 0 obj << /Type /Annot @@ -7989,14 +8085,14 @@ endobj /Border[0 0 0]/H/I/C[1 0 0] /Rect [118.5554 523.8706 236.5823 534.7745] /Subtype /Link -/A << /S /GoTo /D (2961) >> +/A << /S /GoTo /D (2946) >> >> endobj 1918 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [527.0237 523.8706 538.9788 534.7745] /Subtype /Link -/A << /S /GoTo /D (2961) >> +/A << /S /GoTo /D (2946) >> >> endobj 1919 0 obj << /Type /Annot @@ -8962,24 +9058,21 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 2092 0 obj << -/Length 2484 +/Length 2509 /Filter /FlateDecode >> stream -xڭYے۸}�WL�U5�xo�'_bgv7.Wy�T*�DB����dz_���"5��٤\e�F��>���7�o���b�� -?J��<=n0��Y(*�4��$L��0�N��/�(�YO����y�7Q�I����ǥ�؏��������Vw�u��^���];Xn�Mϭ�����_�?��0�0٢��<�� K3���̫�� -�3����k��(��i1��~���Z�IRDdM�O�j���='-q����$A ��܍� X�ww��k���WQ�δ��|9~3u������lۉ�ñ�F�Z1d�?�'���t:���6��yA�z����{<�u��f��Щ�� -;�g[���ĻeQe��O�e��6m�SOme��,�Gg�r���J�:�_����t{����"z-ǫ��a�I�>1�nz ^GE�}\�a��������q�U �Gk���g_f�y�զ?�Y�*]*��R��N�Їvo��U���X�'�dჱG�д,�kV�:��*�J��˾܄7@e�t�Z\R6�`�_�j�|�d(�+P�3�jf/U���[f|���G��>g���n��d��*]�n�ٟ�G����]�$��O�<]�Qk=Uc>���SkxX/�g�T����څm������0j}Å�������v��2p_G9���n�퀍�wT�|I<t5�{�=���:��� -1V���J�8�b������d���$6~ǚkXڴ�Z��_S���v�r�I����k�j�Ui��5�O�:�_���$��I�xm���V�P�f�x�a�^ �i����>�dO����H�k8���y� $�CBmհx'�UYjȘ��b&��n�'�-̓��Jw�0tԝ6bQ���4,�L��,BIp�2&��wRĂ!��R�u��`� ���m�*��Yb��(��ȫ�I4�G����է[�j�h�Ugfn�b(���D0�v2wa��'��lf�An"�q��|nu�* ��&��Y��`墿��������n-F��L�{��ݩ�u���S�%�M�I�Y%���}זZ�l�u��D�?�zB)�ԉbw�2<�iAgjʡƅP~�� -�ՋV�Z;�*���v�+n7���{��(Q��hD�#Tboq��MZ�i0�(�{8��"b�2� -b�i�/?���0�o�������B���E|b.D�18�+QF�?��X���#%Mv�I���+���LA�ު�ء��F�r��ۥ��g݁ b\ =�Njʎ)�{�] Îi��)T���\� �K�ˌ6!�E��-���'[9<@兜Q�|� -��=Kqj�U��_܈�:�D��ʊ�iY��0ʎNO�5��"�uk�y���лe�lA��-���F���k�6I����"��<t�1��u�cj��1W����RO��K[i!�|��'�Bu���MO��-��dQ��8%���16��Š�|�O�B���T�TF�@47��9\�T����I�v��Ȣ�|�s�2b��[� -:#DZЂwU���\�F�R���4��ܻ*����}�j��no溎�k�F��3�`Ch��*s 8#1����v5s�a�4$�/pÂȾ�Z�����?��?�����¥;��TH�of�;g���C��&O���J����ĸ�z��rB�:�ǃ;4x��+/����Ͼ��W�-�=��2)�1��=3�4�Q�FO�u��Ԥ����>�G�ۉ���L�^C������������ -� -�J���;Y�K�J�QK`~���j�G=l�ꔱ�$���&����[��8��\yzjgNn�Ͻ������y���(���{�&y�\ 4���MuEG���A�l���f'�����,�9��TY�%�aI����g>� su�$oq4�g�9"�6����Po�y8�)6Ku�"� -�e��A�mv_�H�,sy$��pJCw��� �E�M�a�"��)A -e2���;�v�5�V=OR5(O��7 Ss�%E�`�WxC#�j$��9����#[@��l��^�G7O��o�� �����! ��"��BA�� -�dj{:a �Ĺa/kh�іB���oRg�hw]���әm��dS����R��i:����Ϗ"���ud�ꄑ�EQw2w �"<�*�cms�]z�e��b(P�ȝ<V����oRy�8�0>iza���N����@|VA4s1��x�?��a�/�J��|8 �g�xGJO��\�_tP���5��%t�=Ρ��~h㥆WĬj����_a������/@�`���,� ����� ��w���N����L������0 �V�}���x����b�|=8�d�a�������_�1�ɕ��9��*���N�7w�=5q5�� f4m�x�G�p�=����5�O�1�;S?���E�'r�/A��ρV?���z�C�O�x���8�� �GKT�^�6��ja�����e�endstream +xڥYY��8~ϯh̓�e֕yʱ���l �Y,v���h�Y�JT:=�~�,��I0��1YU,�_T�7�o���b�� +?J��<�n��{��6M�( S�,p�I��E�7멒�/6��& +�4ɓ����U�Q��<T������n����}�}�k�Ç��yt7�J����i 3? +�-j ����4#���Լiϫ0�:s8���f����Nʚ�u�M�)��E��$ED�d�$�N��<s��.{���A��_��(�5�W�t�Ŀ��y�e%��L;�����wS��m����������<[t�E���yr8OJޡ�et�4�:�ݝLߣ�qƇ��C��+���m��N�J�I��/6i���ڴ/=���?1����q64�qrɂ]"���r�ݽ�;K�봐ފ��*��B8g��t�_M��^��QQx�Vaz��sG�-d���!�0�VL�A�eeᝇ]m�#� +E�R�̗ +6Y۽}D���PY�'�f⣱G^дL�oV�:��*�J\�˹܂w@e��7-n)�`�<���)_-)J� +Tl���kU~^O�ϴW������5��<�LS�C�+7�ü��Øj���T�_�|�i�.�Qj=�|4 ����Y��g�T�+���ڄm�@��?6a��� ϵ� �B^Z�ۭʐ��8�I���̶��QaX�%1�j`�w�=��y��a��Ls`!�Y付�e��B��=aROb������M۬u�K�5%����oG(G~��[:��ʡS�*�����N��*G��(I�rDR9ޚ�D7�ʜ��߭�1L�«!6�ڙ��'���+y.���L����$�L��Ҫa�N����P1+�ɜL��<��tif���P���QwڈF%[�t�FV�0�3�gل���eLL-"�(�|/�Pu�q�' ��1t�4�g�=�9 $j"�R'u�L��?�V�nyR��&qV�m8ssC"�f@�����۵=!7g5�j{Q���QǣR�lQ���Z.���k��JvH�uk1�ng��;��N�,�ܝ�f(�l�N +�*I<�)���ZVK^G�j@T��')�:Q�nS��6-ȧ�j��箭�X�Hu,����Zl���q�Z �Q�a�qH���h�r�Bl-2 �$E��*1J��l"�.�'� 6��f���&���X�X�h U���H�ZZ������(�E���tc��_�`��2��!����N��6�z�v�.]��Vo��֞u:(�B��qyQٱCx��!)�`��4A +E�z4� ���6I�� zU[��.0N��<@�%9#���5u{���,dl9"@��>#�7H?tZ�pI�m�2�a����k&�E������=�n�i� �v[c�J�j�D�R���C\Q��<4�2��}��Ԓ��Z �g�K=-�_�JKR�c� {��.�.#�z��-%�ɦR/2��%��Q6���A��b�U���?�x�%���hL�s�|�(�����>��$�� �������T��#xW����mh4�.M� O@����* ]s���z���f��h�t�?C 6��Y��2��3ch|�k�3�.�NB��7l�!��W������'���=��'�V�u����}3�1��i$�B{�<���R�`<8� X�M��9�v��oyި�:��R�Jly�S�kS;�%lJ<�2� Y�6�����_;4�ֽ|8ݕ�����4ʺ�ϼ��lx;3��7bi�r1S��3� ��dz�A�(������Ԥ�������I�v"��'/S�<�t���r�y||ď��`�8H�έl��NG]��*a�b��n�ͧ��ue�D�#��f��YtK��[+�ɸ��\YzjgFn�/�������y��(+���@C�ޙ@q'����Yd�ͣ�ٶ���N���F��,f�_ܲ8M����DIye7Lp�a��En�Js%�PrdD>C�R��x4p8,�I�z9���"ŶY�����O�ibz��+PgPY6ч�; �"K RH�Q.{8A�㯱�2�y��1���}�15�$(�3� +o��V�a�rڿd�w���e�]���t�#���)� ���@l�q�AH�!´H�;h�1Ta�LuO�!�r����o���q����Ϊ��l��og��aN:������uo:��<��B��.Y��UzrF��"�����o0�ZaE�4�G�N��.��j�1w2�nKU�ߥ�B>��~��VB��$��yB +/��Y��m!r�ޟw-a�o�J��� ��]�#�g@~)¯:�J����:��PR�?��Z��bV5�������I��^�,C0O�|�^7��d��$��w���N��~h;;�$4�ş���������Ʋ�vpJ�Y��6�s��{QǘL���NW���w��z@��*��!.�~b�?ms?�L��}UD���Ǔ�ıa<j�.�z��W��yiendstream endobj 2091 0 obj << /Type /Page @@ -9045,243 +9138,243 @@ endobj /D [2091 0 R /XYZ 71.731 296.4057 null] >> endobj 2102 0 obj << -/D [2091 0 R /XYZ 71.731 276.5312 null] +/D [2091 0 R /XYZ 71.731 263.5798 null] >> endobj 2103 0 obj << -/D [2091 0 R /XYZ 345.2585 265.7366 null] +/D [2091 0 R /XYZ 345.2585 252.7851 null] >> endobj 2104 0 obj << -/D [2091 0 R /XYZ 184.7184 252.7851 null] +/D [2091 0 R /XYZ 184.7184 239.8337 null] >> endobj 2105 0 obj << -/D [2091 0 R /XYZ 71.731 239.8337 null] +/D [2091 0 R /XYZ 71.731 226.8823 null] >> endobj 2106 0 obj << -/D [2091 0 R /XYZ 71.731 219.7441 null] +/D [2091 0 R /XYZ 71.731 206.7927 null] >> endobj 2107 0 obj << -/D [2091 0 R /XYZ 510.3166 208.9495 null] +/D [2091 0 R /XYZ 510.3166 195.9981 null] >> endobj 2108 0 obj << -/D [2091 0 R /XYZ 302.6003 195.9981 null] +/D [2091 0 R /XYZ 302.6003 183.0467 null] >> endobj 2109 0 obj << -/D [2091 0 R /XYZ 71.731 183.0467 null] +/D [2091 0 R /XYZ 71.731 170.0952 null] >> endobj 2110 0 obj << -/D [2091 0 R /XYZ 71.731 175.9085 null] +/D [2091 0 R /XYZ 71.731 162.9571 null] >> endobj 2111 0 obj << -/D [2091 0 R /XYZ 269.4844 152.1625 null] +/D [2091 0 R /XYZ 269.4844 139.2111 null] >> endobj 2112 0 obj << -/D [2091 0 R /XYZ 495.373 152.1625 null] +/D [2091 0 R /XYZ 495.373 139.2111 null] >> endobj 2113 0 obj << -/D [2091 0 R /XYZ 266.5633 139.2111 null] +/D [2091 0 R /XYZ 266.5633 126.2596 null] >> endobj 2114 0 obj << -/D [2091 0 R /XYZ 501.4602 139.2111 null] +/D [2091 0 R /XYZ 501.4602 126.2596 null] >> endobj 2115 0 obj << -/D [2091 0 R /XYZ 315.9163 126.2596 null] +/D [2091 0 R /XYZ 315.9163 113.3082 null] >> endobj 2116 0 obj << -/D [2091 0 R /XYZ 71.731 113.3082 null] +/D [2091 0 R /XYZ 71.731 100.3568 null] >> endobj 2117 0 obj << -/D [2091 0 R /XYZ 312.3486 113.3082 null] +/D [2091 0 R /XYZ 312.3486 100.3568 null] >> endobj 2118 0 obj << -/D [2091 0 R /XYZ 512.5285 113.3082 null] ->> endobj -2119 0 obj << -/D [2091 0 R /XYZ 270.8269 100.3568 null] ->> endobj -2120 0 obj << -/D [2091 0 R /XYZ 509.0114 100.3568 null] +/D [2091 0 R /XYZ 512.5285 100.3568 null] >> endobj 2090 0 obj << /Font << /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F33 1398 0 R >> /ProcSet [ /PDF /Text ] >> endobj -2123 0 obj << -/Length 2037 +2121 0 obj << +/Length 2082 /Filter /FlateDecode >> stream -xڭXmo�����@?TE$EI�"�v����K{E{�@K�ō,�Dj���C)�c;�!0` ə!9�pfH�H�G9�s��i��ܾJ������s>gzs�����x��lqs�H)�y��E�h\pR,n�Eok�Y�/�)O"���ZɛZ�>����|~��f���<^0��N\O�H����&E�R����𤶶���0z�Ky��%)���[i/�^��5�%M�a�]5�8��/@��-ϋU]�(�b�w���5��B��N����&��sB�'��_�4~�xRVcq�t�3��A�����$�� -�u�:$Z��ߜz�������EkaG�Zb?���T;2��RV�V48҈v3��4g8�5R� U�֊���;�V�mI���/�UX��m�j���:[�D��v��)'[����:7�<�)��K���u^Do{ �0Af�y BI���z�g '�I {st&6VVؿ��^R(��zg��a+�@�V�[=�t��n�Y� �3����e/�ǖ��U�0����6u�TK�#y�h�&pU�:?dvU -�VAa�H`C��Z��i���q+n�ܡ��?��t� 3t�����=��&�v����ŒDMP']�J �����^o�"��#�'9��Ro�C����8J�Xq�"��@���Ӓ���F���B�O�A�/ -��;]1��3��m��e�iE3p�U,+�ȟ�ck���&.x�C����*Ɂ����DSJr83�O�����41q�Ź�巎�����}0��)��톦A_r�z#At_Ʉ�,�x=S��I���F�Ҙ�1� l�r��$%x��9�ž@�_�4�1[q̜��3��N�j���9�%D����2-��0�_˹��XN\����D�<`3�l<"�ZG`X�<���~��ݗ�H�;&^a��z��o��qvca��\O�K0�=���=ȸ�F�d�Tא}��^��P��\����'��4���蕕� -f�,`�8q��3���,f,�/�3�'�`��9�X7�n:a����!S[��-d��I��^�����ɽ���� �x�<�{G~ZY?��4�կIB���i߭7��5�{ٖ��I�V<�Uw�� -��G"w�cFr�ά����p�k<��ĵ�3Ԝ>۪Y,m���vl�!u -ϡ���a��&�ޜ�b���^�M�e@�\r�*:�U����ɞ�A4�o+U��f`Ҍ��H��\�� 8�4���e/�L� G� F�X�����qE�*p`���viS�^b�?`N�� J\��イ5R�BhD�I)���E��iB��<�f���A\�e|0���`�^��֍9�?�R�Q�g��5\KNev�:F���������9��$.R��E�\�q��v�4q7�������Ҭ���Rm<�PY���N�JW�_@����-F��M�۳(����� �*^���k<���5É�pbOp�K��ox,�T�R�5�9۩n$c�u20UxK �!�2�R퀵��c0������+��.�B�� =��s�!J���Xx����<nj�ށ��[c4R�%~v�ƺ�pECn�X��tww�X�B'$�V�:����u��{��ʠ�+\��_ܜx<\�r]ozѶ�=�����a� S�fp7�$��x,�����w����G�{U��G�n�A��֎�Qu6t��쿹���7�E�w����m�OW\h�$Eo&��:]���z�^�\��Cci��P8�c V}��f-?�̀���zʄqX���/K��Pi4��{>��p�d�B�*�!\�*��&G=q�][�]��Vg�R��S��1��Աmk./.Fr?�]�ҋo�,K�h����eh�+�xs-����Ԫ�%g�#M���҂�u2�u�3�`�1-�?u���ހ����e��r�$:��PE$Ͱل��l���-ki���^�K|�td;�4!G켭0|- ܵ��w��n�^�g<O�9cq�6ir�ң/���/��)endstream +xڭX_o��Oa���DEQ����f7��8��^�^h���ȢN�6���r(Yvl�]�!93$�7���"��YF�'^�q��Y�y��0�� �,��|�tu�f���e�L�tv{7K�8dYJg�Ü�|v[�;xW�ֈn~�( !~߮To����F�C/K1����7�܌f�2� N.p�z��8�,q�l��4��[�o�*cڋ�B��+ĝ��$�"l�Y����ы�<��~�M�5?�fr�V�|�-o���LU>>>�S�S��]pk��}VfSOU�8�,P���5l��ᒑ���� �͗Ip�k-A�k|���w�PoJ$~H]���}���v���B��ƈ٧�9`N�'�["�$ +T_��_��!p�(��jի�o��92ot�� Q �G�t}��yYJ#U�k�y���Z�3ok���*Tcxap�=�+�:'lX��*���.k�.�{mʉ��3yS����30VLXb}��(�)Cӑ0��0˃w��}h/3=& ���%q"��V� +�f�L��(�%j5������mZ� /=%�mT���Z���kQ�L��v�p�8���0,����l��T����J���@k֞���!W��m�1�x� l�;�Cp\ca�=M�nŎ�[��vg��n�!���Q�pa�g;�$P�b`�$���������*�W�o8�uv˽�Z��;�!+�f�7�<]�q�K��_��Z<���B��x�h7+4��D�,J���`�,�V�f���Zꆇ0��[�aN�܋�u?��� tG4ZJq�,�����w�Ӓ0�If�V��$a� ��\vq6|������(���m��~��r� +߶�k�%;��D���hMҡ#�C�ЕhA�5I3h�o�#�9�MČ��:I�Q�g�� ���ДZo� 0�L�2����5D��!,!ʰt��I��$O^ʉ��HL#���x]?a�� +lla�-��%0& LDK�\�}��龵g�)�dQ�q��o��9̮ L�C��)U�RǶK�C���>����������6�%���$��x�D/����05��}��]e��/���)X��N0�x����U�h��{$K1�ժ�`8���%���@���;x���ۃ�p�;��ʺ�i�9��(����O�[mX���m<v�)� ���.Y�+�K(*n��팅�d��)F_1lOGy`��M�h�$�6Z�+34�h:Ff_M��ǯ�XgK�Y �(��7�C���?�<SŜ��o���a/ iqR�8~)4e �q��]��^�Y�1yE'O�8p�02J��>F�`���P��&(�͘\v���rmo�Wb�5~�����@�VJZ�5or���k��>0�0����;���`��?��X�j}�K>�B�P���4\INeu�(�x������;�Ѭ���@q U�k�����N2r�h�a<�Cy͂!(�eY��w�2m8�PUe/d�VtR��_8���������-��(���7�Y%�+´Ux%�4�N@��@�۶Ư%���%R�:9�)l(�aѶ�3�x=��>�Rw��M�u����ո�����s�������� +b�n�^�J�{ �t���͛���{��Bj����n�XS�^��U+�</��]�t�H[B.�ٮwq�z�BjT�c���Ήg�F-�u�����Q`��� +GIp��6������#\w�����^%����-�-��l��f��}��q�0v��*��Ro�����Y�N���Q+����>o�L�����١���>iD�⽛��e@S����8,�Q��9����3�r�!��-���%�BWq n�PD410��s�ڈ�Jtڳ���Ȑ�e<���c��سU�����@�'��)���H�(�u�l~���M��0۲/X��B�*lj�9�(8O#�[+¶_�r�w��h���=���R��z�H]���3'�v��#�����g{5}�MQ �����]���%�I�� b�Q���U�!�5��w袕�9I�'��'<ϟ��a:j���G����_ct[�endstream endobj -2122 0 obj << +2120 0 obj << /Type /Page -/Contents 2123 0 R -/Resources 2121 0 R +/Contents 2121 0 R +/Resources 2119 0 R /MediaBox [0 0 609.7136 789.0411] /Parent 1979 0 R >> endobj +2122 0 obj << +/D [2120 0 R /XYZ 270.8269 708.3437 null] +>> endobj +2123 0 obj << +/D [2120 0 R /XYZ 509.0114 708.3437 null] +>> endobj 2124 0 obj << -/D [2122 0 R /XYZ 258.4498 708.3437 null] +/D [2120 0 R /XYZ 258.4498 695.3923 null] >> endobj 2125 0 obj << -/D [2122 0 R /XYZ 506.4312 708.3437 null] +/D [2120 0 R /XYZ 506.4312 695.3923 null] >> endobj 2126 0 obj << -/D [2122 0 R /XYZ 71.731 688.2541 null] +/D [2120 0 R /XYZ 71.731 675.3027 null] >> endobj 2127 0 obj << -/D [2122 0 R /XYZ 487.0986 677.4595 null] +/D [2120 0 R /XYZ 487.0986 664.5081 null] >> endobj 1403 0 obj << -/D [2122 0 R /XYZ 71.731 657.3699 null] +/D [2120 0 R /XYZ 71.731 644.4185 null] >> endobj 30 0 obj << -/D [2122 0 R /XYZ 164.538 614.2725 null] +/D [2120 0 R /XYZ 164.538 601.321 null] >> endobj 2128 0 obj << -/D [2122 0 R /XYZ 71.731 605.4496 null] +/D [2120 0 R /XYZ 71.731 592.4982 null] >> endobj 2129 0 obj << -/D [2122 0 R /XYZ 71.731 564.6536 null] +/D [2120 0 R /XYZ 71.731 551.7022 null] >> endobj 2130 0 obj << -/D [2122 0 R /XYZ 71.731 549.7096 null] +/D [2120 0 R /XYZ 71.731 536.7582 null] >> endobj 2131 0 obj << -/D [2122 0 R /XYZ 154.4998 538.915 null] +/D [2120 0 R /XYZ 154.4998 525.9636 null] >> endobj 2132 0 obj << -/D [2122 0 R /XYZ 71.731 538.7761 null] +/D [2120 0 R /XYZ 71.731 525.8247 null] >> endobj 2133 0 obj << -/D [2122 0 R /XYZ 91.6563 520.9823 null] +/D [2120 0 R /XYZ 91.6563 508.0309 null] >> endobj 2134 0 obj << -/D [2122 0 R /XYZ 71.731 508.8628 null] +/D [2120 0 R /XYZ 71.731 495.9114 null] >> endobj 2135 0 obj << -/D [2122 0 R /XYZ 138.8487 498.0682 null] +/D [2120 0 R /XYZ 138.8487 485.1168 null] >> endobj 2136 0 obj << -/D [2122 0 R /XYZ 71.731 495.9114 null] +/D [2120 0 R /XYZ 71.731 482.96 null] >> endobj 2137 0 obj << -/D [2122 0 R /XYZ 91.6563 480.1355 null] +/D [2120 0 R /XYZ 91.6563 467.184 null] >> endobj 2138 0 obj << -/D [2122 0 R /XYZ 71.731 455.0646 null] +/D [2120 0 R /XYZ 71.731 442.1131 null] >> endobj 2139 0 obj << -/D [2122 0 R /XYZ 137.3147 444.27 null] +/D [2120 0 R /XYZ 137.3147 431.3185 null] >> endobj 2140 0 obj << -/D [2122 0 R /XYZ 71.731 442.8892 null] +/D [2120 0 R /XYZ 71.731 429.9378 null] >> endobj 2141 0 obj << -/D [2122 0 R /XYZ 91.6563 426.3372 null] +/D [2120 0 R /XYZ 91.6563 413.3858 null] >> endobj 2142 0 obj << -/D [2122 0 R /XYZ 71.731 414.2177 null] +/D [2120 0 R /XYZ 71.731 401.2663 null] >> endobj 2143 0 obj << -/D [2122 0 R /XYZ 136.5079 403.4231 null] +/D [2120 0 R /XYZ 136.5079 390.4717 null] >> endobj 2144 0 obj << -/D [2122 0 R /XYZ 71.731 403.2842 null] +/D [2120 0 R /XYZ 71.731 390.3328 null] >> endobj 2145 0 obj << -/D [2122 0 R /XYZ 91.6563 385.4904 null] +/D [2120 0 R /XYZ 91.6563 372.539 null] >> endobj 2146 0 obj << -/D [2122 0 R /XYZ 71.731 373.3709 null] +/D [2120 0 R /XYZ 71.731 360.4195 null] >> endobj 2147 0 obj << -/D [2122 0 R /XYZ 128.5776 362.5763 null] +/D [2120 0 R /XYZ 128.5776 349.6249 null] >> endobj 2148 0 obj << -/D [2122 0 R /XYZ 71.731 361.1956 null] +/D [2120 0 R /XYZ 71.731 348.2441 null] >> endobj 2149 0 obj << -/D [2122 0 R /XYZ 91.6563 344.6436 null] +/D [2120 0 R /XYZ 91.6563 331.6921 null] >> endobj 2150 0 obj << -/D [2122 0 R /XYZ 71.731 319.5727 null] +/D [2120 0 R /XYZ 71.731 306.6212 null] >> endobj 2151 0 obj << -/D [2122 0 R /XYZ 145.3244 308.7781 null] +/D [2120 0 R /XYZ 145.3244 295.8266 null] >> endobj 2152 0 obj << -/D [2122 0 R /XYZ 71.731 306.6212 null] +/D [2120 0 R /XYZ 71.731 293.6698 null] >> endobj 2153 0 obj << -/D [2122 0 R /XYZ 91.6563 290.8453 null] +/D [2120 0 R /XYZ 91.6563 277.8939 null] >> endobj 2154 0 obj << -/D [2122 0 R /XYZ 71.731 278.7258 null] +/D [2120 0 R /XYZ 71.731 265.7744 null] >> endobj 2155 0 obj << -/D [2122 0 R /XYZ 122.2909 267.9312 null] +/D [2120 0 R /XYZ 122.2909 254.9798 null] >> endobj 2156 0 obj << -/D [2122 0 R /XYZ 71.731 266.5505 null] +/D [2120 0 R /XYZ 71.731 253.5991 null] >> endobj 2157 0 obj << -/D [2122 0 R /XYZ 91.6563 249.9985 null] +/D [2120 0 R /XYZ 91.6563 237.047 null] >> endobj 2158 0 obj << -/D [2122 0 R /XYZ 71.731 231.9662 null] +/D [2120 0 R /XYZ 71.731 219.0148 null] >> endobj 2159 0 obj << -/D [2122 0 R /XYZ 450.945 219.1143 null] +/D [2120 0 R /XYZ 450.945 206.1629 null] >> endobj 2160 0 obj << -/D [2122 0 R /XYZ 518.6154 219.1143 null] +/D [2120 0 R /XYZ 518.6154 206.1629 null] >> endobj 2161 0 obj << -/D [2122 0 R /XYZ 108.3457 206.1629 null] +/D [2120 0 R /XYZ 108.3457 193.2114 null] >> endobj 2162 0 obj << -/D [2122 0 R /XYZ 175.2191 206.1629 null] +/D [2120 0 R /XYZ 175.2191 193.2114 null] >> endobj 2163 0 obj << -/D [2122 0 R /XYZ 228.8127 206.1629 null] +/D [2120 0 R /XYZ 228.8127 193.2114 null] >> endobj 2164 0 obj << -/D [2122 0 R /XYZ 281.8583 206.1629 null] +/D [2120 0 R /XYZ 281.8583 193.2114 null] >> endobj 2165 0 obj << -/D [2122 0 R /XYZ 359.5411 206.1629 null] +/D [2120 0 R /XYZ 359.5411 193.2114 null] >> endobj 2166 0 obj << -/D [2122 0 R /XYZ 429.4832 206.1629 null] +/D [2120 0 R /XYZ 429.4832 193.2114 null] >> endobj 2167 0 obj << -/D [2122 0 R /XYZ 477.5574 206.1629 null] +/D [2120 0 R /XYZ 477.5574 193.2114 null] >> endobj 2168 0 obj << -/D [2122 0 R /XYZ 71.731 193.2114 null] +/D [2120 0 R /XYZ 71.731 180.26 null] >> endobj 2169 0 obj << -/D [2122 0 R /XYZ 140.4925 193.2114 null] +/D [2120 0 R /XYZ 140.4925 180.26 null] >> endobj 2170 0 obj << -/D [2122 0 R /XYZ 197.2193 193.2114 null] +/D [2120 0 R /XYZ 197.2193 180.26 null] >> endobj 2171 0 obj << -/D [2122 0 R /XYZ 71.731 186.7906 null] +/D [2120 0 R /XYZ 71.731 173.8391 null] >> endobj 2172 0 obj << -/D [2122 0 R /XYZ 419.446 175.2787 null] +/D [2120 0 R /XYZ 419.446 162.3272 null] >> endobj 1404 0 obj << -/D [2122 0 R /XYZ 71.731 129.2862 null] +/D [2120 0 R /XYZ 71.731 116.3348 null] >> endobj -2121 0 obj << +2119 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F35 1752 0 R >> /ProcSet [ /PDF /Text ] >> endobj @@ -11702,24 +11795,22 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 2749 0 obj << -/Length 2213 +/Length 2217 /Filter /FlateDecode >> stream xڕko�6��� -��@LK�{��!�n{[�i��vq��DǺȢ�G���dˏ�8��p8�ʟx��O_%:S:��$߾�&����_P�3#}�|��>&��bO��I�*K�`�Z���N�ſ��m̮��l�#o���3UU֏������*3����7���� QY -�����%�:18��*���[�Roꀋ4����I6�w0��HP���v�ܛ�t� c��o;�ٙM߹F���f�7����-߭�c -+�v�e���kT� -�#~�S^�e %��ol�<�;���D��S��� 0�n#l��y���ʭU<�(R��Hv2O�^�L�VY�D��m_n*�����+��Tc'��O�q����� ��UsW��G�z��' TF��ҭ)���B?�J�����v�)?T��臢�M�^ -fM��M��Y94�3��7݆ۗg�]��ֹe�jЬ�'Ѡو���ᡶ3M��(LgV�%ʈR<i�<������?�&�';��+vxX����rc��fQ4m���R,��d*�g*4GםI����y�13����A0{���f���doW<im�'��Q=ݙ�Δ2�5��sٸzk��xF�LS��?]U��� ����mѸ�z4��T��ϟ~�!x����98�0yM�e�Eכ���q�` -SQR?Q_���_��b-R��=I�c��J�@x���~������*V8�� L��vg�on��a�̖vu�A{*<��ּ��kd�"�}F]�Y8�}�iF'������O�A��(? -�������n�C��p/���N?�[��3[�g!���i��ǁ���C�̨��(C�]ÿ�J4&b,VC���i����`������\ H�5���\?��� �U���G+�C�Z�� ��dyG�'�Gȡ!r�˒̈bQ��n��[�J��DE��!��~�>�G�9����&�5� >yJ��QZE�}�t����ag�SDΠ��R̐;����Z���3� Ă�\ݮ�F��{prTX���~nd��F�>�0����M�� �@m�}���(P��ƹV���8����X�x��+{{-'QuKfU��"`k -�kڒ�P�4�$�����3�m��b�%;� ��(�Z0���u&���V;�����\� �t娢&C?s�Ay]j�&�Ki�؍�7۱;!�h�&��g���IߕUI�J��C���1Ɔݚ����)%U��5>�G� -(G�G�>HE/AvV;qK��w��v��)6hʡ{�����!�O�Q����Q��V�9�KH�A+d�����7�.�}��4��#��Eަ�v���B��q�u<JV\���GPT�X�}�ϻwÍ��v�j@|wr-\��QO�XK���ItxHG�x��e��U�ukq�/e]����%!O�:�$ =IQ�G��]�5O�rT�(�!��z˛���8;v#T���.N���re<�\��+�~�bQ�����k���""�B�Q��>h|~ͪ�{j��av48�c1PO����˱�Ii�W �p�y�SY���ͫ�����5��9��FR���Qg�ez\wq22l��p~�):��N�.>d��zY$���x�9�x��yg� S�C}�UL�7 -�ARb�h���^�8��Q�ϊ�<�%W�Hr����/"u_>�:(���p@ɍ�yO�Jj-%����d%Io}��ɫ��;|�>H�?Ta⥣��䟧�30�m��Q�o2�=�="����]��C��]*�0�ذf�p�<��B�9/?t�lK�@S���j�9�mWAx.8���|L=�� �ƌH���3�,��kA�7�)*k�`cSM� �Аկ2{�p�x�ʪ+g�vq�T�B1azH!��p ��kz�SZF�Gd����)��_WB�.����]T-F�R%~=�"Wvt�����<t�����E�ٷ��#d�� ����"�)��a4= - -`�=�(�-9"@=_Qgs -7�D��pd\���>��.�*0�PE�ϮT�0�p�+��$��zg��\�2�r5����5dԡ�L�]4.BScO���\i���[�W�H^>���棢�FF��DW�� b`ne+�s{� �?����0U�g��v�s��6ҩ��,;P������ʅ�N;�endstream +��@LK�{��!�n�-�4�doq���ĺȢ!JI�_�-;���!9��Y��,U����D���`v[?� e)8�)���oV?FѬPE�����,sUdA4�"��$�g�տ�?l̮��b��`��[ߛ���{^?��U7�Y����7n���(SE�*�륀:�8��*���Ļ]��܁y>���I1v0�� hК��v�қ�v�c�w�=��"L��\'��O�8���ˇn��9����u���m��:TO��@yQ��(j����8�Ԯa�#��@ea�60`��F��#t7���[�x�Q�~�@��e�*�l��*�0&���CC�)��G��n,�K0��D�d>��1ʗ'*Ȁ(��8@,]{W�+��K}�H%q� +>ݚ�y��3�c�tX����N +f���Pբ]���K���ye}��k+����+���aOu��Yg�lg�Ҳe5X6�d�lB�����څN�O��Lo��eDi+�tv �s�kB�\�^E{�Q��� ;<��^��vc�oI2�"M�(V,� +�I�3UD���ʉ&�b���l�Bb0� �(��p_h���762y�k�x���nzT�w���L-3�b�=֝k����#�d��,����|��.�1ei�����#�1x�>�\~��� 8�?�����5QP��`n�!�)LDI�D1����k�"eK�#��t�kN9f�k��ml�� �����a���(�/w��B��%t���Үw���gwޚg����@�QgbN�P�a^��o��V���P1B�%*L"�u�6�#�p( ����$��� �e�+��|ҊZ�~��<B�?���z��2���9�˦��D��z,X�|4�������`?'䷫��ߝ H�C��S���]��"���&E�ս��>u4^fG18�%�������CH��eIfD�Q��n�i�d%vw�"�J�9�o��?� e��4����d�$P:�ԏ�*�����o�7;[֘"J}��b�\����f��H�@ �� x�N������=8R����p�G՟�K#��0��e�y�v�Oh���Z���ۖP�ݍs^��q��X�xr�+�?����e���Bq�5�e�5���(W�ҝ{Aew���6��rE��l��A���Pk�T{�s�3�����xF����V��!���QE��~��y��6�^J��n,����í�6݊?��,�L��nj�+�[�1V7�#tk!���T�V���Iz*��Q�(�D�I��-qdsp�#�T(���RlДC���0U��C�1���N����B�1^���KH�Akx�����7�.�}��4�ԙK�#H�M�����J��q�u<JV\��GPTy_�}j(�w#ǿ�n�s- �;b,�I:�ቐjI�6����(o��.;d弻��R�Y��$�Plj$�)���"�zBWq�����o�����y���Cg'���~c���=�k�+,����S��GT��8��\�O� """��"�����s� +��6�G��9����8���Ͱ����qE�q�OW�W���@�Gܼ +���y��c�4���H�0�4�B�̀�.N&����"��i�N�c'K�|��3d +�?�,�D�c:�Y:���3D���!�>�Ӹ������0ގ�-��K�$�'E q�B"�`����H�@��h�B^; +�1P+W�ia�6��� ���O��W�k-��-I�'+�z��m���L^f|`ڍ���V�>�*|��$�������v����w��>���w:�D/m��T�.�j��e�p�<��b�97���t��݇9���� DW���?!&��W~�/�� �dR���� +����߉+��խ鰹��9�'�D^h��W�����Z�gc��3�_��M�RL�SH�4dbn纁z�H���w9�!��LX��ņC�<����HT�į�v�̅\��> +��tO�*xihyU��-#��Y'�?�Ai��i�:B�����eO��~K��H/�ԝ��5�3$?�ֹ0�O(�K� +��T�6���C����'1���;�v�����h��gטUǦ3?tҸ�+MQ�}۫q��*n�_!#�������.X�#���;�(��6��" �#�~��q��0-���v���Km�s�E��DY-x��������lendstream endobj 2748 0 obj << /Type /Page @@ -13337,21 +13428,24 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 3128 0 obj << -/Length 2419 +/Length 2690 /Filter /FlateDecode >> stream -xڭ]�۸�=��ȓ �\I��E�+��{h6OMq�%�"S�D�w��;�!)y#��!X`5$�3��&�"��Wy�r��dI&�Uu~�����7�C�9�����7�9_��̒l�xX�Q��(W9OX!�b�X�{��I^��7�DDk���]}nt3�|��4��x�Ҵ�����o~z��YY��W%X_˘�3˘e"�+����Vī��Q�����+ JG��g)n)�*�'�;s�=<\�Wv�:Vu��t�3�r&J @��DP������<[�-��R��4w^�%�R��� - -u�i��Cm�I���ć3�^н�_c���� ���J ��viT�4i��� +E�Z�`hk���>7j`�#� ��K$� �r����7�_f`��t�3�� -9[{���<eI�ݜ�}' -X(��S%ZY;fkI�@��4ӫV�U��&k�mW��M�3�̠zB����3[�.��vrR&�;e��d����o*�jdzc���t�����<_Z��5�IFr�d���ּc�����,�x�> ����9��xo/�m�οw"°)���l�������^�MK)��éۚH����H�E�}��z�YY��=���CM���-й0��>�%�|�) �!�z�i��/%+K}�����}oz3JG�� �Qpr�J�/����LsV_:��Q�:Q|��0�x?%,��q���˹K�x��{�/!�aa��h���ʆٺ.�|�ր�k��;8B?;.�P0s��<+*ð�[u0�[�?o�6�y.�݄��.�u�l�{�j�9�,�^�����Q|�b��8�Z9$�m�400 �����~W�)�G�T] �@�4�4�)Z�l}�) -7�I��Шф磁����G��[�XJ:��9(�\��]Kqc�)'�8]�~Tr3r�@��i�:��T�op8�G��۷�^�ß�����4��@C/��QD˘����P�n��X������N�I.��^)�s�ޤ��������wg��^v�i��q#��A�彙2�ɴ��fbK�8Lˡ��T7��"N�Pv4���C�Љإ]( %xk:U��o.�9<>#��y���+�X����kg�;B�� =,�@wD�&�����3�40�=�Z�!%� �lb(!>����.@o������)�v����TF[#`ԫ�z��(+s+/��E���X�T��j���/�����9�U�H��Ő�u�+�Z�5[���g�ZC��YT��?��ʨ>�s{'��a!�}��6�x?�,oS����6����y�]ɢh����5v�����u��u�vߔ�hƵ���v�B�=&Y硂HH(5���_����g�����a{6���~�\dn|�� -@��g�~?@��Ұ�U;�LC{��yU{��r�PS��ͭP� -�Y6�(-u����F".6�T�R�T�m"��x���Z����F�CH�V�4h����+�+y���m�3�mf���(���*�\OM�e,Y*J�jX�<�^�4�U����&2����fy�p���b�aI��+�;�t.iv�KJЯ��G�9V<�*�2e�M�f@[h&(4f�Ҹ�~A�ד��v�("�^9"��C��~���2m��z�&�6f>�ni���� cs]���OxS�|���S��)��>r`ձY�H�4� -���5��[���!¤�r��_�@j*����x��D�ֆ�����0��Ɵ��b��c7�N:*�u ���b��"w�w��8����G�e1����W�4���t�+���kZr2�d��Xm�J]���c���FW5E����Aљ�J${�� -%��F�$�T���5Y�߮:�)ޯN�&�P���<#�E#��Q�KM�2���+��E ��������B36�F�<-�N��?����,�dV@��T�M=���;s�J��=�6�G�;A9i@!��=Xo78�W��ѫalͰ�(:����<\�����$����/0H[FP�n�s�J�,91]�J�Ι�����K����+{���Ҏ�����?S�[�����Λ���0:���vkj�d/��`(��G����M�����g�GG�4#0^R&��2�_�!c==�6���6�0/�o��9�x?lV�(�2P����mq��0�]ӜC�'�d��|C�d�E�tp���6�H�LZ�zh)`CI�z8��#���g�FI�2�û�{��*��Q=��m��[I��5��_�F&Щ�y���˱��� D����C/\c����ٛ���E�G?W8q~v/p}�U�uLC/�?'�hc:���vjӐP���2��gm�ӻ�Kp,r��Y~�ȋ �;�� ���ƛ -��'��`IV��,������߶D]4��r���U�EFNendstream +xڭ]�۸�=���'Xs�E}�ڢw��z�� +4���h���Ȓ+Qq�~}g8CI�ʛ>���pf8�O�_y��_$!|�L�V��:��/�|F�2�v���㫇wa��D��q��<O$^���0����c����R���6�@z�P����X5U�9���GU�j�ǿ�z�82�a"�8�(��\� �ɘ�"�q�9E���w}e�f�ɺ��JG����n��ʀ'�+�9����ط����m���{���]�D������Ĕ��i�Ƒ��(a/�pS�� +���}�Fu� ����'�˜�;ս�*���PƑ�s�����F^�D�j�"�~d1Nj�מ���J��v�@>��A��}��PNʔ�võ�HFK��(�P����w��H����s���h�B)�=/h���x�H(�=A:]+S��l|���}�US2��� �����mk�uZ�L��2ii���v���r��� +Bx�|Z�q�UO�fv�~���&�iû�ޡ�w��FØ >�� -?���3�r���龜n�M~g�,/N3'ۥ�]��2)q�}�uA�Q��>8s��E_<�EQ��=}�N*�\M +/ԋ�@�B'�{�����0�4�@���`A��})XYrh���[�~�:3(&]��a +,W�Uq��ߠ0�}z#�4������9���`Ģp�� ��Ufn]j���&f�[�����w۔�=�}h��- �H����9�{��-���C�䷆fUCxN����kw��7��R۰��5'1[q�� ob�t9�|?Z�n�<b��p���� +��Tn�N��٩kw�>���o�Bi0.�(�(=M��v�"ZƔ?g"LB�M��b�G�n�:�JuuJ�֍��fy�;��bߵG� 8�R[�a#!/�=h��o�ڙsX�����O�c��������1�5�w�F#�z!�d�Ȣ)��]u2����m�dB��ƃXĞ� ��F�&tX��)",����GJ��hM�`�nxJ�F'�m|FGM�kFw�~�;Zj����`� �:�b����i����c�.���?�] �QkNj�xa�W�����hb�˚��Zu�X��6�S�A)�c/�42��rS�c}#�E�d�}��6#x;�9$w�a`��4���kհ���1Y���"�h�Œ��{�:�g��7�(�pU#[��^(�T�+@xQ� +�IA3�碅3��t�`�1�Ű�*�j��Un�\d 6|�� +�6H�P%F����OӪ��� LmWd� L>��pX�� ��"�1�Bq������|MN�v0 �R@��e��80�a�oE��k�kQ�P��� ��a�UG��=lm��q�NjWՕy�� �7��mo!粪�����d&���z�?��k��l^�ƘlG����~B�>�،����|�S�r��6HSd�_����LwF��2.�:4�^d34���B� �s�4��fDB�o��uK�Q���]n�L+�\��74������=0���lbl��\�j-h~��B�/���⥁8� ��j�FODq�2:�B�*,�lm�N� +qL����� HMcS�8�<[������/�R�A�OXd Z���Q'e�j����dh<eDn���$a���E�R�>���'�2��IA�b��mW���#�e`��N�DU�(�h�����!�0t�k:�R~�D*=y��TӴD�RS�F����)�NN#� 4c +�;��y��(��%�|���i�F6�����fe�~M�M{"����7�����F#L��%�>�<A��R/i�`mZ{�`��6�G�qC�MI'�0�������F���6��D�����Ĭ�`��eEӏA���7���$� +����z�T3Ue�|%#�*s�������i��f)�QC�af�+]���tԱfw�����>����t`���=�{� +FB���]��Z��+sQ�PGU��#ƣ�f%��/)�Q���d�X_�> �M���a��vF��uXc����@����~Y�:�a0,�� #�obic>̡F��D��.G��@�vI��4�|h)`AIcj8f���s�����$�6\�]֍�����kT���#�Ʊmp��4P)�������V��Z��i8:U�O *�}9z�3��#r�l��~�����'�g}��V��0Cj!|��p�����٘����k�����^�}��ď�˷B,�_cF����O�������Fr�#�Y�;����� ��go��CBq�:ۅ���;wH\F��8��9��-�F{Ԕ���/��l��3���Q��+�G�f��g?np,�?=k��1��� ܥ��|h�����0�ψ0Z�� _�������6XV��U�L�� ߔm�3�k;�Aw��;��B^.��Pb)����s����������ڃ5�� �_̞l͊[�[v��q,��V�\6u\��q|MkwŬ֩��<�SߨS_���M ݒ �!`Y�p����� +32��������#"���@ןx�!Z��Gzp���m���ܞ ����D*[�����.X:��K(s���8>��,��I�eEs��(^?�_9���n�QGK�zdJE��ً��p��,���)����/��P���endstream endobj 3127 0 obj << /Type /Page @@ -13403,3820 +13497,3762 @@ endobj /D [3127 0 R /XYZ 91.6563 587.7958 null] >> endobj 3143 0 obj << -/D [3127 0 R /XYZ 71.731 562.7248 null] +/D [3127 0 R /XYZ 397.1684 561.8929 null] >> endobj 3144 0 obj << -/D [3127 0 R /XYZ 71.731 551.8307 null] +/D [3127 0 R /XYZ 71.731 559.7361 null] >> endobj 3145 0 obj << -/D [3127 0 R /XYZ 91.6563 533.9975 null] +/D [3127 0 R /XYZ 71.731 544.7921 null] >> endobj 3146 0 obj << -/D [3127 0 R /XYZ 397.1684 508.0946 null] +/D [3127 0 R /XYZ 374.7853 535.2926 null] >> endobj 3147 0 obj << -/D [3127 0 R /XYZ 71.731 505.9378 null] +/D [3127 0 R /XYZ 71.731 484.4832 null] >> endobj 3148 0 obj << -/D [3127 0 R /XYZ 71.731 490.9938 null] +/D [3127 0 R /XYZ 71.731 471.4322 null] >> endobj 3149 0 obj << -/D [3127 0 R /XYZ 374.7853 481.4944 null] +/D [3127 0 R /XYZ 91.6563 453.599 null] >> endobj 3150 0 obj << -/D [3127 0 R /XYZ 71.731 430.6849 null] +/D [3127 0 R /XYZ 71.731 427.5966 null] >> endobj 3151 0 obj << -/D [3127 0 R /XYZ 71.731 417.6339 null] +/D [3127 0 R /XYZ 71.731 412.6526 null] >> endobj 3152 0 obj << -/D [3127 0 R /XYZ 91.6563 399.8007 null] +/D [3127 0 R /XYZ 336.3446 401.0959 null] >> endobj 3153 0 obj << -/D [3127 0 R /XYZ 71.731 373.7983 null] +/D [3127 0 R /XYZ 126.7256 377.7833 null] >> endobj 3154 0 obj << -/D [3127 0 R /XYZ 71.731 358.8544 null] +/D [3127 0 R /XYZ 71.731 315.3176 null] >> endobj 3155 0 obj << -/D [3127 0 R /XYZ 336.3446 347.2976 null] +/D [3127 0 R /XYZ 71.731 302.2666 null] >> endobj 3156 0 obj << -/D [3127 0 R /XYZ 126.7256 323.9851 null] +/D [3127 0 R /XYZ 91.6563 284.4334 null] >> endobj 3157 0 obj << -/D [3127 0 R /XYZ 71.731 261.5193 null] +/D [3127 0 R /XYZ 332.6904 271.4819 null] >> endobj 3158 0 obj << -/D [3127 0 R /XYZ 71.731 248.4683 null] +/D [3127 0 R /XYZ 379.415 258.5305 null] >> endobj 3159 0 obj << -/D [3127 0 R /XYZ 91.6563 230.6351 null] +/D [3127 0 R /XYZ 462.7813 258.5305 null] >> endobj 3160 0 obj << -/D [3127 0 R /XYZ 332.6904 217.6837 null] +/D [3127 0 R /XYZ 71.731 246.411 null] >> endobj 3161 0 obj << -/D [3127 0 R /XYZ 379.415 204.7323 null] +/D [3127 0 R /XYZ 71.731 233.4596 null] >> endobj 3162 0 obj << -/D [3127 0 R /XYZ 462.7813 204.7323 null] +/D [3127 0 R /XYZ 91.6563 217.6837 null] >> endobj 3163 0 obj << -/D [3127 0 R /XYZ 71.731 192.6128 null] +/D [3127 0 R /XYZ 318.1286 204.7323 null] >> endobj 3164 0 obj << -/D [3127 0 R /XYZ 71.731 179.6614 null] +/D [3127 0 R /XYZ 249.373 191.7808 null] >> endobj 3165 0 obj << -/D [3127 0 R /XYZ 91.6563 163.8854 null] +/D [3127 0 R /XYZ 71.731 179.6614 null] >> endobj 3166 0 obj << -/D [3127 0 R /XYZ 318.1286 150.934 null] +/D [3127 0 R /XYZ 71.731 166.7099 null] >> endobj 3167 0 obj << -/D [3127 0 R /XYZ 249.373 137.9826 null] +/D [3127 0 R /XYZ 91.6563 150.934 null] >> endobj 3126 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F35 1752 0 R /F32 1306 0 R /F23 1290 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3170 0 obj << -/Length 2204 +/Length 2106 /Filter /FlateDecode >> stream -xڭَ�6�}��藖��V�$[�y�ɉ $�� �ŀ�hK�(ͤ���biʭ`�h�X,�ź$Ǜ���! <D�}&6e�*ڜa��W1��f�}���_�$ɦ���oO�4��C��C"�<���c�K�e-/��;�EA��M�5}���gB}1��h�Vn���ݫ���,9�E�RCG�\Gq�t��Fy����h8_Σ���~��wQ$J95C���Q��Q����":����>�>MC!��f�s|�p��l�\��_���*��!t���F_��p7}O{Sʹ�Щ�<+B'�Nu� �.���^OV�a|�U����">�;��m�j����8�d�����X�4�"�O6-�">kKqk#�h/[�'�|ltc���i�m�Q8�iuH�_�à����Z�=� : �E�1�܉�k��T�f�@<~j��B�A�r�8�K��&��{�g�'r�Z`�4�|tG��'B���<2c���/��<����*so$�.�����]�ћ�@�53�@PzZڗ�F�*iJ - -�Ğ�4���ׄ�#&�!���������n�A�*�1�Ҟ ѐ6��ƪH �8��/��k�w����53���ȉ0��F-�q�H���n1�sV��eb jH��S(q{�EdCAY�٥�̸�%a��r��5��\~ܦ��m�Fi��W&����X�tߜ�IP1I�8(�~���ŏ�SP�y}�҅d`@S�K���L?�%Zo2��p1+�l���+�����Ed&g�u��0ђr�+�.���Z��#F�|F�U=����c�d��;���ĥ�_R���M�-L�h��� t�GU�J�������1���<�6ea*k�@�.ʢ�W�j�����iA���q,��T����rr�� -�A�ؕFq�"#o��r���N[��Y$¤��f�1|�["�[��� �?BP:��f.b.�����De#��Vǁ�|��.�����iIN��(% @k�;"veo���,���m�G -R{t��S3�kYR5��ȕ.��0_�����P�� ��KX��D�������pFkxޟ���}u��T7�@?�@ٽ&��OE�I&MDrT��SC��|��ԗ�Z�����v-;�q��J�}�q)�BJ6e�vi��wB$~��:e'��)�1� �z5/��.�<�CG�W��YDO����eFdi˛ j�]�ۤ&A�mh���1��QJ� �����f�xe����������5 XM~5���M�v�����8���]�04�?�F/�/3b�����X�\?7r�Y�d��Ko�D,�Na�htGKsq��J,�ư��EXU�I�',�KD���X� �Zu/[���<��J�f<AzM���Y�͏X��8R��ۼUMCZ3��uB��oP%�'f��Ov��X��n���o�Y�Ǩ~�����zե�M�DG��j�����t����\ѣ��n�l�V�a��e���f_��1�<���&~���́�~��f�m�efd� �B���.�?x�#����us�[�w����a������>+�BO�F�q�������.�Pݯ�2��<3�<I..�wn/����Ysy�]���nO�@�XD\7Bo�'�1�vb�t���A��������i6U��fPӾ"�*�)�)���4!8�GD�c���Ű�{� --��� +�dj��M��7w�ڡ��av�=��̝�o��'E*Y�IPK�H��Sr���t�Dx�%�$,�4u]���.�}���E�f�=S�$ ��M�Wx��pAw�4 ��H�n�5�∾�(^!����ĵ9�����b�+),�4����Q���r -;*����&���0��@^.��L���)<m��]!H_�̩g���"D�,]9�6U<���L��\�2��1oO+q�)x.��8�q���Zz㔝;���Z��a@ƪ�@Q�9+_$,)�)b<��'�5��@���x�*q�G0w���:��0$4U@������^��v�B��94�C�I�hE�=�o��~�qq��_;�ɓ���B��� Z�!���+�Mc�+m�M�r�$��*2z���u���$7#�n�X} h����7�x��u �K�14��(X���0XsZ���\|[��o��Q��y�/�����O���(��b�L��/�6�"�O@���endstream +xڭ]o�6�}Š/�9$:[���ۦ��-nS�C��V�Bmkꏤ�?R�d�3)�E1��(�?�d�/��(R��R�C.wU�.ޝ`��w ��2�����w��&Mw�(��eq,��X�T�c�w����]�Γ��2��T��Cݙތ�7��P_Χ�M۪����~��}�<OQa�?�0P��Q��$iv�(�W7.�1�I�T$B�d�1H6��<i�}���ȶ�2zD�g��;���X$2���ƌ��4���:i������L���4(��G;كME8��c/��i��f���&c�Qв��nD���ڹf��FO�f�e�mk��3 ���k�jdDh����r�e�dN������4��T_0����6�n�f����K��Q=���5�0�)�2���ړ-.��f0�Mٴ?�N4���y?�J9�?��7+@+��h�'Q�3��&pm?ӨiY1ؖM0��!�� �'84Ŗ�3LT[��x#u�� ~w��#����\ؕ��\��Ȩ�h +3v4t�IR4!~���9�qT�I�3���W��B�3�Ы�fF;��a����� +#����crC,�ːZOp�8P7 +���v���K���GߠHN�<g�Twn����^�u�^�G��u6S���|kO��D=d���oIG[t����<4���o����r�60�sB����U>Ȝ�g�.r +��2B�Pl���~+8�ȩ���h�����95-�'�у�I�Wx�$��2'�܆,>�-��s��C�]-Rde\����~�"� )�j͊#U�u�(q��/����)�e�G�� ������HDXg�K�ud��������׃E��Đ�B!x�'`�����4��<1G�⊯uj°M!6�}!���Dݝ�,(��J�$s��8�H�=�ѿV�(*۽� ��B�� �u�y�U̓��������2�Lբ,�<����`�R���\�z��@��=-������&��$�*�r�^�LE�dG7��8?��v��e������!i���s�2?�R�]�8n�,i!�K3�P�Go2�*�����6�d�BK?� ��Y��2�o�5ǷC8P��?�D]+;F�|�}��.N����A�=���g�q����>TV}�o�Xj�[uQ�����e'�$k?��1�'M�ts(�aŅ?4X���i�T�夆�:�`H!�HQw27����A����<cj"��Yn��r��=�!�)�D���Ƕ���W��շ}h�Ӥ*Ԣ����7 +)��B&�r�<�TC�;O��� +�Zq"�i���r#7�Y����3ԁ�B�YdG�R|}�"�n�d����:`����Z1iMg&������lM?���'�4�����j���(fF����s/9�wx���&��_�A~r��,A�_hL�a[�����0�`��B�� �\+����K*I_���6y=7��3���`�Q|�:�J���Sa�W�zs1������c�l�z>��;Ct�t�mx�#uR���s��ĹA���Qq���Ѕ���<�������qR�r)��Wt�m��4�Ў�t�W�w���4����|��n��B�c�*��pKYmnuV��):��������������x���� �X�o+�k�o��@�R~�ʀ!�3r�����G�]�/v���5�[���m�b��p��mdԳ��P�x9j�ѹ���B�n��#�߇���5��vb�>:�����%���i'����I�7�^�TYWK�?Q���8X:d(��m ���/n1ꖔ���2��#�6���-TU�3���R]����8��'Nc��_c&�`���2O��Ry�]��&3�.៱�5h5RU+����ba_�tM�M����Ȑ]*�E&��U�����ߪ����ƅ(Sy\ץ�����!����<E�h� �[e�3�h&.&�Jw���'"��T�$�GƗ Sk��z�qՎ�}��Z�g���h��n|�5���>ڞ5���It�$Wb7�Ш~�x�s��P������|.�"N�2prJ���� ���e�endstream endobj 3169 0 obj << /Type /Page /Contents 3170 0 R /Resources 3168 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3192 0 R +/Parent 3191 0 R >> endobj 3171 0 obj << /D [3169 0 R /XYZ 71.731 729.2652 null] >> endobj -3172 0 obj << +1575 0 obj << /D [3169 0 R /XYZ 71.731 718.3063 null] >> endobj -3173 0 obj << -/D [3169 0 R /XYZ 71.731 706.1869 null] +378 0 obj << +/D [3169 0 R /XYZ 268.9021 707.8408 null] >> endobj -3174 0 obj << -/D [3169 0 R /XYZ 91.6563 690.4109 null] +3172 0 obj << +/D [3169 0 R /XYZ 71.731 700.4885 null] >> endobj -1575 0 obj << -/D [3169 0 R /XYZ 71.731 632.4433 null] +1576 0 obj << +/D [3169 0 R /XYZ 71.731 667.6267 null] >> endobj -378 0 obj << -/D [3169 0 R /XYZ 268.9021 594.2515 null] +382 0 obj << +/D [3169 0 R /XYZ 247.484 630.4112 null] +>> endobj +3173 0 obj << +/D [3169 0 R /XYZ 71.731 623.0588 null] +>> endobj +3174 0 obj << +/D [3169 0 R /XYZ 71.731 569.2755 null] >> endobj 3175 0 obj << -/D [3169 0 R /XYZ 71.731 586.8992 null] +/D [3169 0 R /XYZ 71.731 554.3316 null] >> endobj 3176 0 obj << -/D [3169 0 R /XYZ 71.731 546.0673 null] +/D [3169 0 R /XYZ 71.731 541.3801 null] >> endobj 3177 0 obj << -/D [3169 0 R /XYZ 71.731 531.1234 null] +/D [3169 0 R /XYZ 91.6563 525.6042 null] >> endobj 3178 0 obj << -/D [3169 0 R /XYZ 71.731 518.1719 null] +/D [3169 0 R /XYZ 385.5711 499.7013 null] >> endobj 3179 0 obj << -/D [3169 0 R /XYZ 91.6563 502.396 null] +/D [3169 0 R /XYZ 71.731 476.6877 null] >> endobj 3180 0 obj << -/D [3169 0 R /XYZ 233.106 476.4931 null] ->> endobj -1576 0 obj << -/D [3169 0 R /XYZ 71.731 458.4608 null] ->> endobj -382 0 obj << -/D [3169 0 R /XYZ 247.484 419.188 null] +/D [3169 0 R /XYZ 71.731 463.7363 null] >> endobj 3181 0 obj << -/D [3169 0 R /XYZ 71.731 411.8357 null] +/D [3169 0 R /XYZ 91.6563 445.9031 null] >> endobj 3182 0 obj << -/D [3169 0 R /XYZ 71.731 358.0524 null] +/D [3169 0 R /XYZ 486.1475 445.9031 null] +>> endobj +1577 0 obj << +/D [3169 0 R /XYZ 71.731 412.8621 null] +>> endobj +386 0 obj << +/D [3169 0 R /XYZ 198.3489 375.6465 null] >> endobj 3183 0 obj << -/D [3169 0 R /XYZ 71.731 343.1084 null] +/D [3169 0 R /XYZ 71.731 368.2942 null] +>> endobj +1578 0 obj << +/D [3169 0 R /XYZ 71.731 335.4324 null] +>> endobj +390 0 obj << +/D [3169 0 R /XYZ 253.8823 298.2169 null] >> endobj 3184 0 obj << -/D [3169 0 R /XYZ 71.731 330.157 null] +/D [3169 0 R /XYZ 71.731 287.8519 null] >> endobj 3185 0 obj << -/D [3169 0 R /XYZ 91.6563 314.3811 null] +/D [3169 0 R /XYZ 71.731 250.0327 null] >> endobj 3186 0 obj << -/D [3169 0 R /XYZ 385.5711 288.4782 null] +/D [3169 0 R /XYZ 71.731 235.0887 null] >> endobj 3187 0 obj << -/D [3169 0 R /XYZ 71.731 265.4646 null] +/D [3169 0 R /XYZ 71.731 224.1946 null] >> endobj 3188 0 obj << -/D [3169 0 R /XYZ 71.731 252.5131 null] +/D [3169 0 R /XYZ 91.6563 206.3614 null] >> endobj 3189 0 obj << -/D [3169 0 R /XYZ 91.6563 234.6799 null] +/D [3169 0 R /XYZ 71.731 160.3689 null] >> endobj 3190 0 obj << -/D [3169 0 R /XYZ 486.1475 234.6799 null] ->> endobj -1577 0 obj << -/D [3169 0 R /XYZ 71.731 201.6389 null] ->> endobj -386 0 obj << -/D [3169 0 R /XYZ 198.3489 164.4234 null] ->> endobj -3191 0 obj << -/D [3169 0 R /XYZ 71.731 157.0711 null] ->> endobj -1578 0 obj << -/D [3169 0 R /XYZ 71.731 124.2093 null] +/D [3169 0 R /XYZ 71.731 134.466 null] >> endobj 3168 0 obj << -/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F32 1306 0 R >> +/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F32 1306 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3195 0 obj << -/Length 2071 +3194 0 obj << +/Length 2040 /Filter /FlateDecode >> stream -xڭ˒��_�̉J�h|���מ���ʓJ� �L2 �X��t� ��l.[<�ht7�~R�2�Īi�� �TV�\�O��l��`� �l�H?<��)�WM�T�Z=VE��u�mVu.�m)�����ɧ�:;=�7�̒<��c{2�n��py���:�����~z���y�6[8�F��2�|%�4/*�B��fu�-21OEZ�d�Š ȍ��,�����ۙ��# - ������Ff��E�y���z��urF��(�+�m�c�������1�N�Zf�c��d�p �(�� ��e���ލ)�pH5.�P�s� �?Z;j��z4�#�G��e����KT�z#DŽ�z�|%�71^?�!Ӧ���I ��u���D�8 -���rE)�bzp�xA^��Y�� 0P�Ϩ�,���QH���`f#-�D��<� r@��] l�^� �Zl��@q2���uJ���L�w�'���������L�\�Z��ףr��y��x��������Aӂ��e>���I��i�����#�Z=����y��"�2I�%$xJS�2���|��W�(��|�IeZ4Y ����8��"�Rԫ͜#�����Ve�O碔��\�3����u���,�����������fӛ�B�49��A���C�I�x�7g�ͻNO��q��#3� �E�� ��b#�+0b0t_*tK������>8�?Xq<���+��A5�]��$(!hm��l`�_<b�]��%�ɧO�����K�B�����a��*kr��#?��/��ϣqzg�оy����]Ge�����@�A+P3�9��\����j�t�;'N�#�,ǹ�H�22ކ}����s�zY�ȍ����R�O���Ct�ڱg�i���)Oei�a4���,���ၟ��q�I��LHA��jλ�t� 7�|E��d\��h��C�5/=/C�=k�\�0֧���n�Ҫ~.� _m!U#qIB��*�����߬��rQ̐e��U.A|��쭮�j�u馇����뮴uX�&#��iGE���3������H�]��9��,�`���E>� -l��2Zo]JO�]#�k@j&P >�&\u#8Z�r��'X����-���� J�8����V9�S�xD�x�p�(d�� �;m��@;'T,<�o3�lV���S�����ǀ�i�P�lR�ߙu��X��#�D��T�^f!�ͮ���ȸbG7��=�C�u���BM��(�3���<�����v�c�G/�uvO�9�BeP@^�7��߯"��|�qH�hΙN�P�TԴ���s卫�rr\���=}��O?�h�7f3��m����3�k5���=v)q���Å0�GK)I�ך��1Fu���������������4��� ���(gR3�<"�\�yq(�Lz���f��n��p�{-R�KZt�! -�.qCy@h.c�X���OƗ���!|��mL �]�)�ܱm�Н�q� 6�Bu���f���T�Q���}�ɠ�f{m��Jco�sp�C�'�y � �o �|��3hk6Ke�,�ZS������ag&AAy�O���0}�i~��$�����4B�hB��Ƀ�5v����ha�H����Ʋ�L�9-vT �� -t��9e)�Z�o9�ߏ�k��wm�_S��q̲x�[v����'e:�ж��LN�3"(����ށz'X�>�cܛ�����(��ފ���q��ׂ:�f�6i� )����[�9�j�}o�&�桇7=\ ��3��"�4Q�`dN��c�����,a���0�� -���~Y����"j��O�Q�7��Q4�7`�G"���a�u0�3`F����h�Z��堦v�9ſV)a<��������b��Y7K�es�[6\�7o��&�'hȒ`lu�I`��r��r�5�f̏/3�6��O���4O|n8�Mwkt�ZG���}�ߔ��k4�1���=�Գ�=� ��q����{ӥ*q�nE�|�/���OhXi&�&r�|����wR��endstream +xڭXK��6�ϯ���ڊ����N����Y`w�E�B$������ԋzx܃|P�X,V��"��b�%�2��>i��"]�w��S�%"���\���o�lUG�.ݭ���<��2��U��QU$��������x=l�i����o�ִ��91����[�uj������yܼ�ʨ�`��Z8J}ic��*�q���I�DE������<+��������<��L:-�l���J=y����o�>i~%�Zu�+O7�g�A�[� ��k;h(�4W}ڤ�Zw��l�k#{��� ��>q�@j�I����xҟ���#�xD��^��� +l�W����+vy�[45K05YcQ�+�Lt +�lH�Q^핣�0���d���Y�O-�=�-x�M4@b����_f�q����/����p��_Z�W/k����`�q�x�>� +¯<S�����x�*�El�g���<(j��Ş=�2��&���@q�M�Y�m��-�ﲨ��5n,��kk �f���/W<��$���Y�eeq/��(������w*y��I 6�4r6�m�%ԣ��|���|m/����� He�`"ʮ���t�����L�R�S��H9V�����gV{�/���FU�N63��6�k4�����j��L�:)�J��Hr�T�NӔM���8�_uD_���u��j�ͮ�,����#K�;a�a��jY5�Qln�LX�.0S���c�q��"n���o��M D��0� �U�C�ޥ����j���R�E���������c����I0)��$���`L ��~�Tk�������830D���鸅��p�|X�=_��1p'@J`>�Ca! �X`�mh�B��a��e�`���`qל�6���A^��03� �A$������Ϫ�t��9���N�ن��b���{%?���z��N;o�~�0�6��;�����˹�zoՀm�&�� ��QU0�W����ߨ�y�@����r�5�]9G��r�U�7KȐ�2A9^a�E��i��)���{�v��i =e9����4����<n��2�=to+$w>Aؓ-�JɘY���ړ�Zt���=�J��:�����qPÞ�@�^�(3M{÷5��x�\ԙYaIa�$ONt��BV�Q���_���Ʒ�0JͱP�GM�ݔz8'�(!������!G��8h�D����������w@r�NZ�=��S�G;�^�3Te8��%��a��P +�t��ҩ��t9�'>1�ƭ�˫X �1L����N�� ŗ�.�MK��>q( w��⋼���i-��M@��^�n�i5�7� q��)g"��;���^/��#���#]��j}P�����������|�3�@����Kh�'��]hO�?�� ���P�6���YIE2����p �H�m����͜Ytgrt���^���uO{9N�Q�ç�Bӽs�m噗hA�A�4�2<Z�oɄ2�1�~�/I)z���jp2 A����µ���ux���E�?Y�h��"4~��� �~�6(��nϮ$�tV�j0C�N��C�������<���M�H�#l�GS�D��|ɲY�dxs=���?��_Z��S�1�����������a�C��;yIU풝��{1{-�m[| ��Ѻ��d�.,���夐���E��F�^��fY4*)߇GFX��u9�?Z;���ځ�Y ���+���9|2H�����O�!-G�*�����1���nG-�4�M�d��0n0�QO:��Q�++�/l��ǽ:��+�c�O�t��?L�~���td�6S�� ��F[q�l��W<����!-`u/;�5P ;:Y��Q�zz�3��_p9x�+�Z�5���{�#�����w�<�EY���j��0�� ��r;z���In�F2b���ms<i�[��ӣ��Lr}�[�C�2m���1�E<�_�s��Q��z�TQ�����;����"��8��Qej���w6���cendstream endobj -3194 0 obj << +3193 0 obj << /Type /Page -/Contents 3195 0 R -/Resources 3193 0 R +/Contents 3194 0 R +/Resources 3192 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3192 0 R +/Parent 3191 0 R >> endobj -3196 0 obj << -/D [3194 0 R /XYZ 71.731 729.2652 null] +3195 0 obj << +/D [3193 0 R /XYZ 71.731 729.2652 null] >> endobj -390 0 obj << -/D [3194 0 R /XYZ 253.8823 707.8408 null] +3196 0 obj << +/D [3193 0 R /XYZ 71.731 718.3063 null] >> endobj 3197 0 obj << -/D [3194 0 R /XYZ 71.731 697.4758 null] +/D [3193 0 R /XYZ 71.731 634.2217 null] >> endobj 3198 0 obj << -/D [3194 0 R /XYZ 71.731 659.6566 null] +/D [3193 0 R /XYZ 71.731 619.1134 null] >> endobj 3199 0 obj << -/D [3194 0 R /XYZ 71.731 644.7126 null] +/D [3193 0 R /XYZ 91.6563 603.3375 null] +>> endobj +1579 0 obj << +/D [3193 0 R /XYZ 71.731 570.2965 null] +>> endobj +394 0 obj << +/D [3193 0 R /XYZ 184.9496 533.0809 null] >> endobj 3200 0 obj << -/D [3194 0 R /XYZ 71.731 633.8185 null] +/D [3193 0 R /XYZ 71.731 522.7159 null] >> endobj 3201 0 obj << -/D [3194 0 R /XYZ 91.6563 615.9853 null] +/D [3193 0 R /XYZ 71.731 486.954 null] >> endobj 3202 0 obj << -/D [3194 0 R /XYZ 71.731 569.9928 null] +/D [3193 0 R /XYZ 71.731 472.01 null] >> endobj 3203 0 obj << -/D [3194 0 R /XYZ 71.731 544.09 null] +/D [3193 0 R /XYZ 71.731 457.0013 null] >> endobj 3204 0 obj << -/D [3194 0 R /XYZ 71.731 529.146 null] +/D [3193 0 R /XYZ 91.6563 441.2254 null] >> endobj 3205 0 obj << -/D [3194 0 R /XYZ 71.731 445.5245 null] +/D [3193 0 R /XYZ 71.731 416.1545 null] >> endobj 3206 0 obj << -/D [3194 0 R /XYZ 71.731 430.4162 null] +/D [3193 0 R /XYZ 71.731 405.2603 null] >> endobj 3207 0 obj << -/D [3194 0 R /XYZ 91.6563 414.6403 null] +/D [3193 0 R /XYZ 91.6563 387.4271 null] >> endobj -1579 0 obj << -/D [3194 0 R /XYZ 71.731 381.5993 null] +1580 0 obj << +/D [3193 0 R /XYZ 71.731 354.3861 null] >> endobj -394 0 obj << -/D [3194 0 R /XYZ 184.9496 344.3838 null] +398 0 obj << +/D [3193 0 R /XYZ 193.414 317.1706 null] >> endobj 3208 0 obj << -/D [3194 0 R /XYZ 71.731 334.0188 null] +/D [3193 0 R /XYZ 71.731 306.8056 null] >> endobj 3209 0 obj << -/D [3194 0 R /XYZ 71.731 298.2568 null] ->> endobj -3210 0 obj << -/D [3194 0 R /XYZ 71.731 283.3129 null] +/D [3193 0 R /XYZ 101.0411 258.1918 null] >> endobj -3211 0 obj << -/D [3194 0 R /XYZ 71.731 268.3042 null] ->> endobj -3212 0 obj << -/D [3194 0 R /XYZ 91.6563 252.5282 null] +1581 0 obj << +/D [3193 0 R /XYZ 71.731 251.0536 null] >> endobj -3213 0 obj << -/D [3194 0 R /XYZ 71.731 227.4573 null] +402 0 obj << +/D [3193 0 R /XYZ 250.9846 213.8381 null] >> endobj -3214 0 obj << -/D [3194 0 R /XYZ 71.731 216.5632 null] +3210 0 obj << +/D [3193 0 R /XYZ 71.731 203.6954 null] >> endobj -3215 0 obj << -/D [3194 0 R /XYZ 91.6563 198.73 null] +3211 0 obj << +/D [3193 0 R /XYZ 484.3889 180.7621 null] >> endobj -1580 0 obj << -/D [3194 0 R /XYZ 71.731 165.689 null] +1582 0 obj << +/D [3193 0 R /XYZ 71.731 160.6725 null] >> endobj -3193 0 obj << -/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F44 2183 0 R >> +3192 0 obj << +/Font << /F33 1398 0 R /F23 1290 0 R /F44 2183 0 R /F27 1298 0 R /F35 1752 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3218 0 obj << -/Length 2466 +3214 0 obj << +/Length 2696 /Filter /FlateDecode >> stream -xڭYK��6�ϯ0�k��t��$�,6@�i ��=�mkW��zL���S/R����a�@�,�E��#�o������>A�Il��;�9���;_X�³�3}z|����p�{y$���&R�KU�o�0���6�忷?��u0�n�jz��X^���^5'&}OVu�w�y�统��q�zy+�����17~�Q��v�*��H���D�,�P n��������F &�mUm���� �I���aV�n��d�U��е�П�f8�)@gp�v�v�����Oh���^5���7Tm��B��If�t%�co:�-/�Ώ���(t�����& 0�����0]�k,���7w9�H�s���/���NB�e�������чڔ���x��k�/:'`k�L��N_��{��p��䐹cբ�KE�٠m�{L�Y�N4���r��hY�۶��Uq��0�����V�|��)y�F�k������-��L�rβ+;XS��5��M��R���W[=��\���a�_��kۘf� -��V�W�N�*9\n2�d�+V�>v����WTY�'��J�@v�l�מ�t��尚��-� (l)l�}uj�L$��nR�>�PO�t�����%�L��gs5Mi�O��i������;�<�܁��Xub���)ll�f�-M�'�!)G�j���������NJ������Jp�d䓌C�����ot���BpA� �u�@RZ�'��� ��iL���r:��9��=fp���:�����/܇���YQ��d�X���0��?v֓�x������!�0��\\�+a��Թ;)]tD�(L�0 ��lS������_� -j�KY� �F"b�ylw�������Q�H$�WST��n�2#k�|l��O�"Y�z*�a���+�l,a��㕻_L1v���vpM� �54�����G�BV���pdjYq���E:u� fm�<UÙ9E,u�jԐ�-;�]U�oU_M�ӲS�Fj�0U���W���r*e��u-��q�x���XjKDϽ�N�u�2 �_ȣmQA��ܗ�預��q��ش�b��n��Y46f��J&(D��TT�YZj��&���:�0H�(� ��vb��eq���%�V�����0� �3f�#>���H3.�Y�i���V���j��"_P�jn9�sRK�'�bW� ������'����z/b9�R���/+ "�c�G��R�&+;�j� jhM`M�tm��P����.f��y�{���$|���2���`��H�)gDn�<v�`s�Y^`�$�kQ�o�(��<]��8�����/��v'� -Ԙt���]��ԃ8I_��1���ܟ"L� -J�?�?<#N'>�PB&�9Ե$��t�(W)4gc��t'�<(Š�\⽾�e8 �uQ����T��N�3�1���Xл��`�&$1*��C�� -to��LQI���XJ�q��8A�J�Y��6�ׄ|;�2��(hm�4ݳ���z�1���8�� -b�ȷ����3-<��� ��*��֞I|�ږk��̘�RӀ, C�fH~[h����e�V��� XlRiL>���c�V>���inK]���ej^���N��V�m��q���������ͯ�#�l��5B�QA}X�(���.�JL��?T���q����a�EVC�}�p��g��_k]���9n8��I�;~��@����¦- -O����d ���B�t��Յ�i%�I�l!|<�ѣ��y1�cŬr���k���-�v5iv豸�< �n�T��c?ج������,�Bf����)� -�卄A��a�W�C�^�����s�/�Dž*S10jS�iC#�[s��}ɵТc���b�B���[=wZY�Ad���vq��D�9ܼǓ4}��%�/��']`�`D{�ߗe�KHG.�g)hև���- � ����v�4j7DT�Bl:��\���l+�a�i��4���i�ھ�XUMQ���r.hn�}k3��0���<M����}����~�v���V1�,���˲ z] ������ق#;H2P��nC��CF�.��a�����;���ė��q�C=�G6�C�"���a5so�����ܢE,�$��c��YWN���l�X��fc�6 rw�f����@k~wY)�փ����R�qV��;L��)b�w�8c���.o��s����F.��{NKu��X�o�c��R�N�s���`��G��oU��Ǫ}�ԏ�q��.���G3�8X;��j5��$x��Z��-�� �\�GԆ�����Ћ��Z��Jd��yp����g��G �o[0An�@C�8�*A�/�-���_K���)Ma�8�W�)����|ww{3�n�� �����RS����՟=g<��z�A -�*s��!��\Y�/���endstream +xڭˎ��>_a�%6`+���7�;� �r�� K�ͬ,y��^�ק^�h[�s��b�XU,t������K|���8\����S�>B���K��ˇ����*��$LV/�U��^�g�*U���A�z����۩������_+�����4��i���i<�i������~~���*��$���D��c�VA�( QI�]?���g�x9j�f�O�&���x��]�����J����]�{A��d���x]�u� ��k��d}h;�N�1e���� ��c+s�e��f�c��[���Ĕ�D�M�2�ed���3�pG���f&���q��g�i[8 +ܲ�SB���AD�5��S� +���K������z�u�{<��f.]_��ˡ�QY4�����Q{�ߢ�����x,��PH��< e��.���¶�����w���O��Zՠ_�����E�~ۀ�tWԌ�]q���Ӽ��}ٙ=�x����Ca��^�[m�x-����Chw\AǍ��m��DZWs�XgѦ��=-n�k�џ��/��'��=c������� ���'������+3z��Q/�R����/� "�c�K�^H�I��� '�S�d7tm̓c���+}���b�F������f �c>@����J֓��4���0b6~?�����"�����Q�w�2JR��a�JT��/�ʉj�q�t�#74h2��3~H�A�A���+1Q}G ��y~�YU8��!h�<q�;5da�����ђ��~ +�3w��k`�a�����/�5�E�?b��ǢC�A�~=i���%�AM;0��8��+%�+��hh���65�� ����r&.�ǣ��q���m��S�r6�}�B���_H�������N����0b+���6�bL�vW����/�`�;m��;�m��:��&=��6@K֠"�����oJLI��(��R}L1��b�[�O��T�]�K��|����rZ8o�-��ɿ������n*yR�MmQ���� + +UF�{e��Sib$d��غ*�"bN�B��.�A�%�}_4���Y�h]�(8������nf��B���#��t|XU�5�Ba�I�=XLdLP��1�y�9o�[��I}�}L<����a]�DZ�ېm�ZXy{RqX�x�Q�RJ�"s��a�$�aa��7��� +���8���R�[���� +�����SU���0l���k�s�-Q�xq�~\�p��,,�K�WaPԺK���!�cDZ�Y����u�ZSX����{n7aЊ��G�A�� +����]�]��cCIˇ<Y��]��\����3�=���*�<�jq4%< ��5�07]��8�&8qb�%�Q�Y�!²"8��H5�h8�]���0ż]�ԅ�������)뱚*�07�c{f؛º�͎.�B/��t)�K2��;Q�\�G|���y�J�^��̻jLT�Q��!Q&������s�O��L7��V0W��������P]��Qd�8@��� +gN�5�����ڢ�X NB�fa��*�J�S]yҖ-�$��|��DN`�@./�����X�4���߫C>��}� ��µC� �I�/���ڹd.���\�Q�/�N��?f��������:�&����zA����J�Ǫ��ת|�D���W=o���K�=����I�Ww5�b��z ��z�Z�7���-�_Ћ��R�G#<�?0� �����µ�Up�`@j���ȓSB��[rH�����R�}�ٞ���������ނ]�Գ0�� ;���ͅ0�rfsJPY����� +��ffiT=��YV��!��7n���^�,� +����T�=X�Μ�8�6�>��zz�A@�/p y�[W���r���\H"1�^�~�3<��=�hY� pN�O�M'���N �?����B����pBja)�������RLJ<ؤ������z�w��PSW=�-~h���*��x�8���rI'�$���4ZQ2�Z��c�+PqGW~���u{�Yl��cB���T1ۗ���e�����I#�!�qz��`T�9�C�M�$u�v�|���{cZ�-S[yHlۋ`��TxE-�@�-K4��c���0�[W��c!���e�����UU�e;ң���Q�Q�ܼ�PzL�W��6��=���Ă(�q~��؉0�Ţ���QoE�I�a�Pԣf��`��Jb +��W�a���� +_q�������ԇ���'��~��1P�?���y@:���r�MŽz(�}�,b''dQ-c��1� �&�؍^� c#���rh��Y�O���^�C ����3SRJzA��?/~�z���z6@)�찕���D����_�اTh�$�����_&�G��������̧}��n�ږ�������TI�����s��/č��㵘�?7v��e�k�憎����A�/s�p�<~#��2=d���}�D��?8�J�!L Q�T����+hNn99�����x"B趞�G����oi�ɥ���L�����.��D����v=�����뒃��F��I %/рv�˹x<9�`�NR�/�&�" ���YE%��u���'UZɀ��R�%� �xS4�t�퓒AOR��x �n=H�w�wh���f�l�D-|�����8Qendstream endobj -3217 0 obj << +3213 0 obj << /Type /Page -/Contents 3218 0 R -/Resources 3216 0 R +/Contents 3214 0 R +/Resources 3212 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3192 0 R -/Annots [ 3225 0 R 3237 0 R 3241 0 R ] +/Parent 3191 0 R +/Annots [ 3218 0 R 3230 0 R 3234 0 R ] >> endobj -3225 0 obj << +3218 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [466.7066 439.0439 518.512 449.9478] +/Rect [466.7066 632.7575 518.512 643.6614] /Subtype /Link /A << /S /GoTo /D (groups) >> >> endobj -3237 0 obj << +3230 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [281.6014 233.8135 340.8787 244.7174] +/Rect [281.6014 427.5271 340.8787 438.431] /Subtype /Link /A << /S /GoTo /D (edit-groups) >> >> endobj -3241 0 obj << +3234 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [205.9567 180.0152 269.8466 190.9192] +/Rect [205.9567 373.7288 269.8466 384.6327] /Subtype /Link /A << /S /GoTo /D (savedsearches) >> >> endobj -3219 0 obj << -/D [3217 0 R /XYZ 71.731 729.2652 null] +3215 0 obj << +/D [3213 0 R /XYZ 71.731 729.2652 null] >> endobj -398 0 obj << -/D [3217 0 R /XYZ 193.414 707.8408 null] +3216 0 obj << +/D [3213 0 R /XYZ 71.731 741.2204 null] >> endobj -3220 0 obj << -/D [3217 0 R /XYZ 71.731 697.4758 null] +406 0 obj << +/D [3213 0 R /XYZ 214.9614 707.8408 null] >> endobj -3221 0 obj << -/D [3217 0 R /XYZ 101.0411 648.862 null] +3217 0 obj << +/D [3213 0 R /XYZ 71.731 697.6981 null] >> endobj -1581 0 obj << -/D [3217 0 R /XYZ 71.731 641.7238 null] +3219 0 obj << +/D [3213 0 R /XYZ 71.731 633.7537 null] >> endobj -402 0 obj << -/D [3217 0 R /XYZ 250.9846 604.5083 null] +3220 0 obj << +/D [3213 0 R /XYZ 71.731 618.8098 null] +>> endobj +3221 0 obj << +/D [3213 0 R /XYZ 71.731 605.8583 null] >> endobj 3222 0 obj << -/D [3217 0 R /XYZ 71.731 594.3656 null] +/D [3213 0 R /XYZ 91.6563 590.0824 null] >> endobj 3223 0 obj << -/D [3217 0 R /XYZ 484.3889 571.4323 null] +/D [3213 0 R /XYZ 71.731 565.0115 null] >> endobj -1582 0 obj << -/D [3217 0 R /XYZ 71.731 551.3428 null] +3224 0 obj << +/D [3213 0 R /XYZ 71.731 552.0601 null] >> endobj -406 0 obj << -/D [3217 0 R /XYZ 214.9614 514.1272 null] ->> endobj -3224 0 obj << -/D [3217 0 R /XYZ 71.731 503.9846 null] +3225 0 obj << +/D [3213 0 R /XYZ 91.6563 536.2841 null] >> endobj 3226 0 obj << -/D [3217 0 R /XYZ 71.731 440.0401 null] +/D [3213 0 R /XYZ 250.8743 523.3327 null] >> endobj 3227 0 obj << -/D [3217 0 R /XYZ 71.731 425.0962 null] +/D [3213 0 R /XYZ 71.731 485.3104 null] >> endobj 3228 0 obj << -/D [3217 0 R /XYZ 71.731 412.1447 null] +/D [3213 0 R /XYZ 71.731 472.3589 null] >> endobj 3229 0 obj << -/D [3217 0 R /XYZ 91.6563 396.3688 null] ->> endobj -3230 0 obj << -/D [3217 0 R /XYZ 71.731 371.2979 null] +/D [3213 0 R /XYZ 91.6563 456.583 null] >> endobj 3231 0 obj << -/D [3217 0 R /XYZ 71.731 358.3465 null] +/D [3213 0 R /XYZ 71.731 418.5607 null] >> endobj 3232 0 obj << -/D [3217 0 R /XYZ 91.6563 342.5706 null] +/D [3213 0 R /XYZ 71.731 405.6093 null] >> endobj 3233 0 obj << -/D [3217 0 R /XYZ 250.8743 329.6191 null] +/D [3213 0 R /XYZ 91.6563 389.8333 null] >> endobj -3234 0 obj << -/D [3217 0 R /XYZ 71.731 291.5968 null] +1583 0 obj << +/D [3213 0 R /XYZ 71.731 369.7438 null] +>> endobj +410 0 obj << +/D [3213 0 R /XYZ 262.0456 332.5282 null] >> endobj 3235 0 obj << -/D [3217 0 R /XYZ 71.731 278.6454 null] +/D [3213 0 R /XYZ 71.731 325.1759 null] >> endobj 3236 0 obj << -/D [3217 0 R /XYZ 91.6563 262.8694 null] ->> endobj -3238 0 obj << -/D [3217 0 R /XYZ 71.731 224.8471 null] ->> endobj -3239 0 obj << -/D [3217 0 R /XYZ 71.731 211.8957 null] ->> endobj -3240 0 obj << -/D [3217 0 R /XYZ 91.6563 196.1198 null] ->> endobj -1583 0 obj << -/D [3217 0 R /XYZ 71.731 176.0302 null] ->> endobj -410 0 obj << -/D [3217 0 R /XYZ 262.0456 138.8147 null] +/D [3213 0 R /XYZ 71.731 292.3141 null] >> endobj -3242 0 obj << -/D [3217 0 R /XYZ 71.731 131.4623 null] +3237 0 obj << +/D [3213 0 R /XYZ 71.731 149.8484 null] >> endobj -3216 0 obj << -/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R >> +3212 0 obj << +/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3245 0 obj << -/Length 2927 +3240 0 obj << +/Length 2411 /Filter /FlateDecode >> stream -xڭko�6��� -#@�6`3�H��}t)��6��-�$�Bdɕ�f}���EY��l?���p83$�ű?����b_�>A��(f���7{����d%4�1�ۻW����*��hv���S����X* �dv��>����h� ��Z��M�-�|Y?0����eU��w߿��n�X� HxQÁ�\� ��v�%J��w�b�҉?/~8�j�R:��v�o��/3ۗM�T]�)��bݴ�Ӳ}Wt�rkˊA��m�����Iߵ�ֶ����n�/e}��;�uOߛ7�L� ��T���7�H -��Dڞ!�s�_��T�w��PQ���~S�Lp��O[��/[ao����������^����ʇ������"��{�J�� +�R��x�*�=N���x�0`q?���E-������3oւؔB�F��Ak�g�H��n<E�o=/{���r���g��yX����ɛ�`�A��<��n��w��Dɉ� �L>P�F��1�0Ĉ�"��ےl������0S���ρ�6���"ǻ�����,�\3��g`��z_-��/lk�ͷv��/��(�e;�y�t�E�;�R1��Z�5aO:�=� �l��A+6"t1D�h��</��I��_� ���Lݼ[IL�:�~ -|�h�� -��^0����S֡0a0�"���k�j}�b��m��(H# ����:/r�ҹ�x����E5�� -A�1� ��p�8A���ZVʥ]�j��^�N ᅃ��-l~��!�%z�-Y��-뮷0�谔=�J�@�cf1o��Z!Y�hs��p�H@���V�)]r�a�:mm� -��h�0��9#��� Pnb�pce�x-F���-)Eff�B��]'p�Cr�b���������� B~�5�K�|��0�g��(�7���~��phn)�kLqO�%"�f�$���͚���4�/��5�c�Sh�j��ϙd��Q��VԀ���W���p�]����pRB������� -O~@��06��U�0�ۉ�R�AE-��u4�#aϵ��~Q�����6L"�t"���I=��Z����02*�c���73Pu�8�f�J� ���l=�yI��$�P9�z5Y�8Q���z�(���I�i�E���&RA�sE�,�P���1���� ��O� -�4$�8�o�̒�-�Lr���a$ ෆ��npv�%�����jv~Ù�h1fB@�%Z�E��M���v<W;=h_�1r�* -#M���a��>BX#}�y]�n����6�"�o[�{i&�l�Z��}�_L�<ke�9b�Ϣ� ��7«�{� 3��y�����+�}����� ~]��d�4� �Q5����w��[AH_��ޔN"�Pm���1,O1�'���+�}%) -+`�h[�,ь5�j�x�$`�i��{��{���Unwݡ�T{��}x�Ƞ{�.c�%& �J���̱�C�TIj��I��b�KϿ�j5&# �H}�H*o�P�iL+'�5�#?�^�<P�K���p�LE�b�>�.���x$ojw�p.'��]Sq��y�3�RQG�6b%�� �|pd�+?��3�N4�M�ﺛ�kY��m�۴�݆���P���W��=��Y�������G���A���I����N����Hy��/uL���q�?��\1�q��m�#*7BO���7y]�wR9ܸx�`�!�:���BA� ׇ�Yq����r`\�]2�@�ԋ͝~�����r�j���DR�G��R� -������a�t�0�X�X} -��`�X�d�a��>"��'�}+�c��hV|@��+��~'�Y#.�D�ѵ9������|�<ɓq�Օ����&�/�)��]Eb�#x�ԑ0q�`�(�i����fD,�����(C�쁁�{�\p/{_ ď��'Db�G��zJ2n��= ��X��9�쩏�2 �HS� �e@����?��37|�6nm��j��$E^��D��i��I �qJ�mo��:&�Xv����r� -�ɰx�'!�C]�Iz�l@Gk��\��� $ipy��%�8�)"��A�ߤ��Ï9>���C�}��t\�f_��El{�#t��/�����U�3ov����wMۋ!�z��> -�$w8Ji_�h��ZtA��y�+��$5dh�b���-$��!�1����;�" �zs��j`�Ι�h��9>�n�V��ʚ��U~�`�1���_���A�ВZ�w�c����X;#�ݮa����˳�� ��v)����x�~�G�Xa��雬�:�����j'�#�@ �U����䑂ӓp�Hy�rGF�'�M��E�^��R��(]��{z7��X;�k����̭2�-� -A���~% Z�vz\m1�*�&{u���T�'*��(G��Z��m>��FI�c�?�0mH��~�͗�lg�X<V���+z8@�y�xJ�Q��"zb5m&���.:i�A7���X�>v���e�u!Q�4T�X��JL�N��$�I?1u�n����;�:߄ �����bEn�h�w·� -c�>m����E�id��?��G\��Z�*]�q�O�P -}����~����0����t�*�"���$o��L��M�����9��|��P� 5T'�9�U�i�D՜ƞ[�T�S4�o�m����lA��,�-��X���?rG��Ja�_}\� ^�d/<)_0!x9c}ط��MB)����z�\'$�vG��-����F�d����D�fX0j��Al$�M5�V�.���pZ��9�*y�ɹ���ut���v�&�0D�o����\|鱇5X�����������Q��*��g�P� ����E endstream +xڭYm�7��_a(j�vf4���4�=m��h�@��׃�G�t���)y�w�"�CQEQ�C���gY(2 ��Q�D�r�"����?_�,�b��T��틫wR� +Q�Q:���� Y��LF"O�|v[�6�U�Aw�U�s)�����m��n��z��_�4j����^�x�7Od&�vx��8�E��lF�H��Y��,Og�(�(�uz��˂�*OE�G�g)�=�^��I��-�S�H��X�8��2�"H9K�L�Y�'�8Ԧ�^���Y�Kc�_�y,��(���e���u��^/V����GY�*K3� Ꞿ�"�敝V��h��us��SD]��C������1s���vyA�~k�ت��Zg��" +�z�ӣ��P�IJ��w��<�#�1X��5�0�߷41������Ҋd�Ӫe��=�H�Z�f֚�`rE���(�G�}}�jM��#�_�.��de��$����H�i�����Aɰ 5�˺��װ4\OU��H{Fd�x��yC��e9Q<������r��=�B�������D� �u��j�s����~QD[f���gm�JH��"��=9����sS�}�Ж�[����"NcL/\�o�G�1�~���,y�4NE���YP�R�����$��e�}��^ +��������2�E���;{��;�@ZE�̏���N�^�� ?���U�n�rr}0ݛ� ���;.&�W��ȵFDAP~�1� + ����a��}}uū)w�����귔��YB�w�?��%���1��#d�%8"��O��YP2O�I���tg�Y�;��0�ti��"R{��x0թ��z�S���#�RE#�[�Z�F⧷���{�v#\ oi�������B��?q#(����e8t�06.I�Q|.�"A�d��{(뱈"���T�c�^ + ��@tX<�� ++�ɐ��Eԧ(��-@�ą`�KZ�S_P���~�r�� +#�|D+zͺ�=�ny g +�'7�,�{Cz��� ji�)���m���������� �������/�t�4����x`��T= �eV�y��i�DZc�"�@��&4�E�53Ժa�(na�XD�_���c�i��m� +e���A�0�͝�mh g��)h���݈T,O����DA�Hۀ��;Վ�iHDW�0�ER�<���R�A]��I�(��P$��,�ڊT��B�bZ�b'Y^8%V�C����1΅�V�$!�A: Bi��or!��J%`طK����)���[�>��][36�u)��ԅ�mn�D�v,���}n������{� �E(��1ûO����]�F."[�UE'J��^�5J]qP�ù��w����D�7�l���y;���������FF�Xz��~,i|U�}��Q�=�(�n�?�.��M�祯e��vɑ�������g$�xMo�e��y����Ñ���?7K�5�����:l�� ����wf0�iz������n�4�=�d�A|[�P��<JPyb-��G�K�; ����Eӱ�����C�\辏�&�)�����SbL'>�L_n���N��C�e���Kf��ӆ�ctVpL��z}�9��-RB��|Ut$�H��'���������c"̃��x>vPT�J�[*��ٷt�� �b��B�J��}e��d�N�M����@���r����\( �ň3�b%���I� o�8=I�8Ϧ�$Nk��j�v�����M8�S �<^��ԝ�@����N���(&iӝK�c�:��F&���7��0;�R�7%�q�1�`���ƺ^u�G�f�^��?����Ȯu�Vo��/\6~�P9�"���oW9�/WN/��0X�dOQF�b��B)���R�q=��[0�_C��3#/F�e1��W�EЌ� ��|pM/�,^Z����W�����ȁu�"|�J��a�n�\��'��A��v��&��r8�n&���t��~�B��9,��T�[�mS�����[1עE�p8͋�c����\ ��8�پ�T�%���=4�R�|)~�Q| ����K��f��H�f�O4>�N��D�,Ήɖ7�G�z��( ��.� ��/'���>p�!/�v +��e� ���<�����g %қ�H��Ū�R�����P��c]q��Cc�p1����+��ǰ�õ� +>���?3�|� �%��͡�Ř��` +�v}!�B(�E��j�}^�}�G�#��_&�SϽ_��#}��~[�H�Y�q�ߺn��a�?=��������y� +ڸp�4X��Ʀ3;D�!=5X����b�T�ou���Y���ȥ�c%N_D��a� �7K�,1���n��ه��ôx�X����J���$�^ ����:������endstream endobj -3244 0 obj << +3239 0 obj << /Type /Page -/Contents 3245 0 R -/Resources 3243 0 R +/Contents 3240 0 R +/Resources 3238 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3192 0 R -/Annots [ 3251 0 R ] +/Parent 3191 0 R +/Annots [ 3244 0 R ] >> endobj -3251 0 obj << +3244 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [269.8985 491.684 309.6129 502.2663] +/Rect [269.8985 643.2804 309.6129 653.8627] /Subtype /Link /A << /S /GoTo /D (gloss-contrib) >> >> endobj +3241 0 obj << +/D [3239 0 R /XYZ 71.731 729.2652 null] +>> endobj +3242 0 obj << +/D [3239 0 R /XYZ 118.5554 692.7176 null] +>> endobj +3243 0 obj << +/D [3239 0 R /XYZ 118.5554 646.2717 null] +>> endobj +3245 0 obj << +/D [3239 0 R /XYZ 492.6563 646.2717 null] +>> endobj 3246 0 obj << -/D [3244 0 R /XYZ 71.731 729.2652 null] +/D [3239 0 R /XYZ 71.731 603.7837 null] >> endobj 3247 0 obj << -/D [3244 0 R /XYZ 71.731 718.3063 null] +/D [3239 0 R /XYZ 71.731 588.8398 null] >> endobj 3248 0 obj << -/D [3244 0 R /XYZ 71.731 576.6725 null] +/D [3239 0 R /XYZ 71.731 575.8883 null] >> endobj 3249 0 obj << -/D [3244 0 R /XYZ 118.5554 541.1212 null] +/D [3239 0 R /XYZ 91.6563 560.1124 null] >> endobj 3250 0 obj << -/D [3244 0 R /XYZ 118.5554 494.6753 null] +/D [3239 0 R /XYZ 167.8682 560.1124 null] +>> endobj +3251 0 obj << +/D [3239 0 R /XYZ 376.6947 534.2096 null] >> endobj 3252 0 obj << -/D [3244 0 R /XYZ 492.6563 494.6753 null] +/D [3239 0 R /XYZ 101.8978 521.2581 null] >> endobj 3253 0 obj << -/D [3244 0 R /XYZ 71.731 461.0987 null] +/D [3239 0 R /XYZ 71.731 511.1959 null] >> endobj 3254 0 obj << -/D [3244 0 R /XYZ 71.731 452.1873 null] +/D [3239 0 R /XYZ 71.731 498.2445 null] >> endobj 3255 0 obj << -/D [3244 0 R /XYZ 71.731 437.2433 null] +/D [3239 0 R /XYZ 91.6563 480.4113 null] >> endobj 3256 0 obj << -/D [3244 0 R /XYZ 71.731 424.2919 null] +/D [3239 0 R /XYZ 71.731 460.3217 null] >> endobj 3257 0 obj << -/D [3244 0 R /XYZ 91.6563 408.516 null] +/D [3239 0 R /XYZ 146.6995 449.5271 null] >> endobj 3258 0 obj << -/D [3244 0 R /XYZ 167.8682 408.516 null] +/D [3239 0 R /XYZ 243.8447 449.5271 null] >> endobj 3259 0 obj << -/D [3244 0 R /XYZ 376.6947 382.6131 null] +/D [3239 0 R /XYZ 71.731 442.389 null] >> endobj 3260 0 obj << -/D [3244 0 R /XYZ 101.8978 369.6617 null] +/D [3239 0 R /XYZ 71.731 416.4861 null] >> endobj 3261 0 obj << -/D [3244 0 R /XYZ 71.731 359.5995 null] +/D [3239 0 R /XYZ 71.731 401.5421 null] >> endobj 3262 0 obj << -/D [3244 0 R /XYZ 71.731 346.6481 null] +/D [3239 0 R /XYZ 71.731 364.1473 null] >> endobj 3263 0 obj << -/D [3244 0 R /XYZ 91.6563 328.8149 null] +/D [3239 0 R /XYZ 217.4518 351.1959 null] >> endobj 3264 0 obj << -/D [3244 0 R /XYZ 71.731 308.7253 null] +/D [3239 0 R /XYZ 411.628 351.1959 null] >> endobj 3265 0 obj << -/D [3244 0 R /XYZ 146.6995 297.9307 null] +/D [3239 0 R /XYZ 234.1811 338.2444 null] >> endobj 3266 0 obj << -/D [3244 0 R /XYZ 243.8447 297.9307 null] +/D [3239 0 R /XYZ 71.731 326.125 null] >> endobj 3267 0 obj << -/D [3244 0 R /XYZ 71.731 290.7925 null] +/D [3239 0 R /XYZ 71.731 313.1735 null] >> endobj 3268 0 obj << -/D [3244 0 R /XYZ 71.731 264.8897 null] +/D [3239 0 R /XYZ 91.6563 297.3976 null] >> endobj 3269 0 obj << -/D [3244 0 R /XYZ 71.731 249.9457 null] +/D [3239 0 R /XYZ 71.731 264.3566 null] >> endobj 3270 0 obj << -/D [3244 0 R /XYZ 71.731 212.5509 null] +/D [3239 0 R /XYZ 107.7061 253.562 null] >> endobj 3271 0 obj << -/D [3244 0 R /XYZ 217.4518 199.5994 null] +/D [3239 0 R /XYZ 71.731 241.4425 null] >> endobj 3272 0 obj << -/D [3244 0 R /XYZ 411.628 199.5994 null] +/D [3239 0 R /XYZ 71.731 230.5484 null] >> endobj 3273 0 obj << -/D [3244 0 R /XYZ 234.1811 186.648 null] +/D [3239 0 R /XYZ 91.6563 212.7152 null] >> endobj 3274 0 obj << -/D [3244 0 R /XYZ 71.731 174.5285 null] +/D [3239 0 R /XYZ 71.731 192.6256 null] >> endobj 3275 0 obj << -/D [3244 0 R /XYZ 71.731 161.5771 null] +/D [3239 0 R /XYZ 107.7061 181.831 null] >> endobj 3276 0 obj << -/D [3244 0 R /XYZ 91.6563 145.8012 null] +/D [3239 0 R /XYZ 71.731 169.7115 null] >> endobj 3277 0 obj << -/D [3244 0 R /XYZ 71.731 112.7602 null] +/D [3239 0 R /XYZ 71.731 158.8174 null] >> endobj 3278 0 obj << -/D [3244 0 R /XYZ 107.7061 101.9656 null] +/D [3239 0 R /XYZ 91.6563 140.9842 null] >> endobj -3243 0 obj << -/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R /F35 1752 0 R /F54 2469 0 R >> +3279 0 obj << +/D [3239 0 R /XYZ 71.731 120.8946 null] +>> endobj +3280 0 obj << +/D [3239 0 R /XYZ 107.7061 110.1 null] +>> endobj +3238 0 obj << +/Font << /F33 1398 0 R /F23 1290 0 R /F44 2183 0 R /F35 1752 0 R /F54 2469 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3282 0 obj << -/Length 1852 +3284 0 obj << +/Length 1777 /Filter /FlateDecode >> stream -xڭXK��6��W�VX3%� �l6-R�A�lES\�^�%E�l���3�!-��>h8��ot8���P�|d.d��l�{��a�g!�,Yf9��}���(��"Od2���� i��4�"Sa6�]�3��Mo��R�` ��Z�_T�ĺ��+�R/����ٛ[���R�g��E�Ա�2��Nd"���Z���"��_��ܼ;ܟW$y �0�O�.E�)�����ޗ��2Lg˱�cC�P$*������[�J�C�-�ѭ�r5�m=�k��xYgz$伯��;�e��}QW4*��X�tC^���������[���2�|�,��jK��n����e(E�����tQ6�zݚ�3���Eh�`T ź#�h{h��������tt ��pmcVŧ ��lMk���I����l�')�zx���Mi�ꗯ�]��E��0۵�.U�h��p8>�s'X���-����9���H��)�7�x|Nj�(=o���0J�7Sw,B0¢�N���d��-,P`vUW�.��`��`�?��!��З!��δ@�ų��ܷ�Ts]:���1���w�p�i��P��;4X����9[S��f��> Z����bY��2� p[o�)X��]Gٮ�e�џ�-����Wʼn��� �;�x�^�7���ô#�r��c�ީ�@�(�d�Hs�0�b{�/R�����8ߑ�E� �Z<B�T�����G���vT�����n��#�<�~4c(��D��1SE�]�P�!�H��_�n�~�@��E�N�X�.?�t|�`�D(cR����\O�O�m@� w�z( ���X¹ᗅR��r o��<(W\QoV��u�ro�n�F��4�R���L�J-�����7Z��@���r�v��É�i��Dx�a*�L�+���I���}"� ��i�� �8 K%�#���;��+����f��5 -�㛦|��l�]����O/�;��w��ϔ%���(Y�Y(��YD��t��R˱��A�kC�|��x�lDg;f�;��f�T�]y�f=�8�%�����8x�`D'�ޣ����5_��u��"_M.���,W���� -n[l?�J�ag�KF��<�d�e��|}�Rh�[l5���8]!��� -a @a%��Djy�l^�Ӿc��d�;E[�/�q���a�-��@�D6�[#{����P����`�?V��A��M�>���~I>���[�/��`��Q��ֶ��������|E$���#vׇ��U�q�}W2e}�[��,�W_�*����A�?��cV+��K"H#v�C/(�ݸN����� l�U\(�Te�'0�B��Է������Y=�o���9���Ŝ��W��-����BŁbY]�:��A ��J�ך��e���5�\�l+�QU���g�]F���.���ǻ��~�u��Ι�'��>-�f�ZH�#����������7u�s�؆���<N�#G*��?�� -^;g��P��J���c���맽�;A�EW������a�����������,{B��4^�B��mb�RZ��}͒�p�fa��� �|Z m_1i�OP�z��� -3�n���<�2Cb��F���w�7�+*��94#�f�(4��������s�V�m�a����U\��I˜a(�n�0B5�(�����5���M���i�|��1ѿ V�k�+b@��T�gM��?�s�����璙�+@�.�H6 -��!vՌ�ĬY0ɏC��}�u~G)����o��9�_�y�M):��y$V�q��r���}��Lv"��Lda�_��z$s�ߵ���<����5;ߢo�?�&��endstream +xڭ]��6콿"oM�Fgɖ?�v]���6�u����\�:��^o�~�H;v���pȃ)�")~3r��O�")">**�j�^x�{8��d�-�l�Hon^\����D$� +W7�U�y"��d�J�Zƫ���{Sw��l��־��uv�˼������7���yQ���7?�xw32�~$�8<)�u.��&2��b�~�$���&��>L^��k���}gOE��a�@zɒ J�89;���d��N)�˜H��?�E�o�v���� ��X�kӘ�u@�v_�EF��t�0 �v'Gg����>O���Veg�����`6r��2Y�ؖq��A��"�R�D��=�omӒC<�7d�с�r\f��VEu���U�6�h�� ��W�ᄆ/~V�G��7@Dо���G�P�[ �P�_m��~��B +)�D��~���G��7>*iB���d�S��,�RDl���k3�{j��|F�C�����]�0���F�uK�uѓ6��^��s0QgӮo��ݛ���6��(-��9��@F@Nf�dN�=�hiSp��<ҒD���<u�/d�5����Qa��&FƠ�0@m�T�������� 9&�J��F�_��.~�N :��2>ȏ����M]�:a�pLF8U���a��0燍��( +A��Y� +b)<�����R����#�v��r�L+��P=�oF�\Dx���b���b�P����g��| �/��E��/o�P)|@t3w�����;��g�z=��D��c^����Q��o��@*\�/����g>_}�R�\_F,��ߦ0Q�<Δ���g}�u����()�%R����}E��|q.K�[�6�?�s|��h��̫�u�'@ ���j$�̇�VT�����*W�fO��^�b�0Y���4Q5_ Y�R��Y�������d��{��$a�y$�q}ȝ����:�x��9"��QL������L���g���P&a� ��T}'(�8���EU h�j[��D�H�:!���:M`��é�`� +'D��ů���9����3ә+��B��R��ӌkʌH�cp1(WУ�BG�˲��#1d���o�ϩ�8f�2���~L�Džx��Ha��/ާ/���E�dΉo�1�r�]G�ɏC��f�ZH�#�R9,����;ů��� B�}]wx�f'�Ԝ��O�ic�KZ���Q�Z�P|B��3j}YKc'�vQߡ3���m��0sbW���T�Es���oJ��F,��&�3���hJ��-��x2���k>�qSLD�o�i��pu�e����7a��o������ޞ��b,d�jਮʌaN�:v�?,���I^ͥ-���1�pDž�II�7Rj�C� +�T���8&�9c�M[yG[�)i:w(x�4Sb�3���U����]��P2d�B�bW���y8���A��zt��Fb�,]���6�R�L):��{Vs����9>���1��L6����I_�,��Ѣ*zj5�2���: � +/��;�����D4��n�n�;�-j�V�(0������U�����We�HQ�>,TlB_k�%{Ht�a��K7��Z�<��@MB��{t��O��<1�Ϫc #1@��8y$�mW�B�}�1iQC�<x�t셳=7�n1 �S�)��C�m����eW< G�Ԍ�-%���e� ��S�<v��A���?�)~����P�y@*>fiƉ�2����� ����Z�I2Rr��/����QZ}endstream endobj -3281 0 obj << +3283 0 obj << /Type /Page -/Contents 3282 0 R -/Resources 3280 0 R +/Contents 3284 0 R +/Resources 3282 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3192 0 R -/Annots [ 3302 0 R ] +/Parent 3191 0 R +/Annots [ 3294 0 R ] >> endobj -3302 0 obj << +3294 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [480.0297 409.1512 538.9788 419.6259] +/Rect [480.0297 552.6133 538.9788 563.0879] /Subtype /Link /A << /S /GoTo /D (bzldap) >> >> endobj -3283 0 obj << -/D [3281 0 R /XYZ 71.731 729.2652 null] ->> endobj -3284 0 obj << -/D [3281 0 R /XYZ 71.731 718.3063 null] ->> endobj 3285 0 obj << -/D [3281 0 R /XYZ 71.731 708.2442 null] +/D [3283 0 R /XYZ 71.731 729.2652 null] >> endobj 3286 0 obj << -/D [3281 0 R /XYZ 91.6563 690.4109 null] +/D [3283 0 R /XYZ 71.731 718.3063 null] >> endobj 3287 0 obj << -/D [3281 0 R /XYZ 71.731 670.3214 null] +/D [3283 0 R /XYZ 71.731 708.2442 null] >> endobj 3288 0 obj << -/D [3281 0 R /XYZ 107.7061 659.5268 null] +/D [3283 0 R /XYZ 91.6563 690.4109 null] >> endobj 3289 0 obj << -/D [3281 0 R /XYZ 71.731 647.4073 null] +/D [3283 0 R /XYZ 71.731 670.3214 null] >> endobj 3290 0 obj << -/D [3281 0 R /XYZ 71.731 636.5131 null] +/D [3283 0 R /XYZ 107.7061 659.5268 null] +>> endobj +1584 0 obj << +/D [3283 0 R /XYZ 71.731 654.4459 null] +>> endobj +414 0 obj << +/D [3283 0 R /XYZ 278.5577 615.1731 null] >> endobj 3291 0 obj << -/D [3281 0 R /XYZ 91.6563 618.6799 null] +/D [3283 0 R /XYZ 71.731 607.8208 null] >> endobj 3292 0 obj << -/D [3281 0 R /XYZ 71.731 598.5904 null] +/D [3283 0 R /XYZ 71.731 579.9403 null] >> endobj 3293 0 obj << -/D [3281 0 R /XYZ 107.7061 587.7958 null] ->> endobj -3294 0 obj << -/D [3281 0 R /XYZ 71.731 577.7336 null] +/D [3283 0 R /XYZ 71.731 564.9963 null] >> endobj 3295 0 obj << -/D [3281 0 R /XYZ 71.731 564.7821 null] +/D [3283 0 R /XYZ 71.731 515.9452 null] >> endobj 3296 0 obj << -/D [3281 0 R /XYZ 91.6563 546.9489 null] +/D [3283 0 R /XYZ 71.731 500.8369 null] >> endobj 3297 0 obj << -/D [3281 0 R /XYZ 71.731 526.8593 null] +/D [3283 0 R /XYZ 71.731 485.893 null] >> endobj 3298 0 obj << -/D [3281 0 R /XYZ 107.7061 516.0647 null] ->> endobj -1584 0 obj << -/D [3281 0 R /XYZ 71.731 510.9839 null] ->> endobj -414 0 obj << -/D [3281 0 R /XYZ 278.5577 471.7111 null] +/D [3283 0 R /XYZ 71.731 472.9415 null] >> endobj 3299 0 obj << -/D [3281 0 R /XYZ 71.731 464.3587 null] +/D [3283 0 R /XYZ 91.6563 457.1656 null] >> endobj 3300 0 obj << -/D [3281 0 R /XYZ 71.731 436.4783 null] +/D [3283 0 R /XYZ 165.0015 457.1656 null] >> endobj 3301 0 obj << -/D [3281 0 R /XYZ 71.731 421.5343 null] +/D [3283 0 R /XYZ 376.6947 431.2628 null] +>> endobj +3302 0 obj << +/D [3283 0 R /XYZ 101.8978 418.3113 null] >> endobj 3303 0 obj << -/D [3281 0 R /XYZ 71.731 372.4832 null] +/D [3283 0 R /XYZ 71.731 408.2491 null] >> endobj 3304 0 obj << -/D [3281 0 R /XYZ 71.731 357.3749 null] +/D [3283 0 R /XYZ 71.731 394.2167 null] >> endobj 3305 0 obj << -/D [3281 0 R /XYZ 71.731 342.431 null] +/D [3283 0 R /XYZ 91.6563 377.4645 null] >> endobj 3306 0 obj << -/D [3281 0 R /XYZ 71.731 329.4795 null] +/D [3283 0 R /XYZ 71.731 365.345 null] >> endobj 3307 0 obj << -/D [3281 0 R /XYZ 91.6563 313.7036 null] +/D [3283 0 R /XYZ 71.731 353.3699 null] >> endobj 3308 0 obj << -/D [3281 0 R /XYZ 165.0015 313.7036 null] +/D [3283 0 R /XYZ 91.6563 336.6177 null] >> endobj 3309 0 obj << -/D [3281 0 R /XYZ 376.6947 287.8007 null] +/D [3283 0 R /XYZ 71.731 324.4982 null] >> endobj 3310 0 obj << -/D [3281 0 R /XYZ 101.8978 274.8493 null] +/D [3283 0 R /XYZ 71.731 312.523 null] >> endobj 3311 0 obj << -/D [3281 0 R /XYZ 71.731 264.7871 null] +/D [3283 0 R /XYZ 91.6563 295.7708 null] >> endobj 3312 0 obj << -/D [3281 0 R /XYZ 71.731 250.7547 null] +/D [3283 0 R /XYZ 71.731 249.7784 null] >> endobj 3313 0 obj << -/D [3281 0 R /XYZ 91.6563 234.0025 null] ->> endobj -3314 0 obj << -/D [3281 0 R /XYZ 71.731 221.883 null] ->> endobj -3315 0 obj << -/D [3281 0 R /XYZ 71.731 209.9078 null] +/D [3283 0 R /XYZ 91.6563 226.0324 null] >> endobj -3316 0 obj << -/D [3281 0 R /XYZ 91.6563 193.1557 null] +1585 0 obj << +/D [3283 0 R /XYZ 71.731 218.8942 null] >> endobj -3317 0 obj << -/D [3281 0 R /XYZ 71.731 181.0362 null] +418 0 obj << +/D [3283 0 R /XYZ 157.864 181.6787 null] >> endobj -3318 0 obj << -/D [3281 0 R /XYZ 71.731 169.061 null] +3314 0 obj << +/D [3283 0 R /XYZ 71.731 174.3264 null] >> endobj -3319 0 obj << -/D [3281 0 R /XYZ 91.6563 152.3088 null] +3315 0 obj << +/D [3283 0 R /XYZ 71.731 146.4459 null] >> endobj -3280 0 obj << +3282 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R /F35 1752 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3322 0 obj << -/Length 2147 +3318 0 obj << +/Length 2473 /Filter /FlateDecode >> stream -xڭX[���~���K�@���&��NN -�k��8�"X�+� �Uxɉ��;���c��!@�������f��V��j��]�0��4 WE�*X��/���lEf;z�����(Z�~����鰊���Y��E��%*[=���;��`��6L/����l���_�Gf�����Z�����WO��$��y���$����n�c��4I���Gq�#��[��7��^Ⱦjεq [�Ce[i��8��B=�U���Wil'�Ŏ�+� �յ0Ν��}}qڌ)�+V�Ɩ��Q�p'����8�`�U��'*�I��ݿ���G���r����o|�� ��$*��,�@4 �:4z(NL���n��m�:Әv�}��T1LCT�UhSA����M$���|p��2��U��L$@,Nh�-B�>� -��j��z�l{��p2nD�� � -8��q�A�ɮ�����U]���jX+���� �Pu�!2 -��e�3�����uۛzr"���ӏM��7h��l�n�� �3����p�gy����_JSWh���J<�]~��l�2�$͓]�Vc!�B?�����kو�0T;�Ι��99I]Q)���cr �P�o6�5��Ć��|8,ŰaCL]���2�� �|�<�Lg����W�]Y���X:���ly��`qZ������o ����́+�uYVh�����N8d�Ue�pÁ$�� >w�=�w�g��{��a�=��c��z���:�Q� q�K��5vq��O��+_ ��v���w�լR������PK�N~��dДa�����W�2��4�d��{g[sǴ�疋�(GM����J:)��mU^g0�m�T��2����V�eq��p��Y�f�8�<��R���<�]gz��\�N�|6�E�Ew?@���%wP���vjȤ��E���;_g��}��ʳ���Y��Ӛ��N�g�l�ܸ��A�/�(Q�?�#�t]�ܜ���mD����,�����6��R�.N����M.d�u���h��P&��+�"�QO+ev�q��i���ڹ�۠���՟N1�9��C�F�� -�̊l]RA�@q��N&a�]; ��3� �k��sC�M7p�C81���l:X�F��0� ��`e�P���\�����4�E�@���p��2 J�L�=,)�)3��R $'Y��P�1������\fsѫo�5�ǥ �Nf�%M��� � �'�C�� -�L�5������X�_��#vQ�Ƚ���e� �FS>�x\W��6c?|�|*9��eE�� f��V�?��A� -v�ƪs�ģ"��W�7�-4�Y+�A��$p�i��t�JӃ�j�p�=Ú�R_�� J`ӎ�Wf -o�'�>�e��u��f�n���=�h�n@�&E^ 8[�ϲ`��a�(���M�{��X�X���?�?�{����K "�w���pa�B���smn�Vs)ͼ��Ŝ�,��p ��Lן�|�/���� �L@�k���D��bG� ��h���ݨ/7��KP7��Q�@�;lv�P�������-�jϛd�k@�7�q=\9�X�1y#��Υ���W�K��:�T�K�] gD��v~`6e˟�Ա�{8��op�����pW������\����f��8�#���\愒+!�֙�p�.ntifq�N'��O2B6O腣��]_���k7�bC��9-�ڡ!hg�� na��}Z���s�GE�≑jl��(�)�FLj���[ra�r������ D�����cg�3ZpTh���[>q�JO�/bW�@,�(�� -�y�b��,�ݛPU��m ݼx����#̍g!t~J��B�� -�_G�u���Y+ -�3���kQ:� �^�Z�(~-Z���C^f���[�|FR,����GW�e`�D� �NW� �H�J��??,K�&ܘ�S�X0�:�,Vz+�P�l��))������<�A��:�%������⃘��f�2y���V:IL���o��*�`gS7�c�����A���y����- -�S -)��RTpw�/�;'Sؒ�t���L����g2�?�'a�*�'M���w����>endstream +xڭY[�۶~ϯ0�I.֪�Ǥ��Is�����EAK��FQ����37��wۇ`�9����t��/\䡟���J?��hQ�_�-��U(,+�Y͙�<����8^�~�E��a�H��σ�\�q�iX,��y���a��r����}]�@o�-�ތۿ��U�_����aR�ƹ_��E'��6F��F�ڠ��$��½j��j�6�(��X�����o{=�L��������Ay͖�O� ��l�����ď�0_����]�~�f�Y/���k�r��羣�5��_{�U�9qggp�G�h\��t��ᖛ����|����R� <ն>Sv��2�VϜ�D�9�����kg��P�0s"A#��mF~�� y��ò������0��8��Ͱc�p\���ɪ�ԋV��d;\��ƪu��#�BXy ��y��a���� ��F[�� �����K��(�Faj:U�U8�β���1�t8 +a�. +�J� V��0�9�Z�A}�Zu�`�Z<�`a�A��$�>*h��=�`�CY�I,7���8�r�y ��5�wC����Bp}�0�X�*�u�I8E�7��0��,��3�/D��:GaK��f�[?��t���( ��2�0Z�"�{$��p� �H�5� �C*E �(R�'���:e[G����3ý��K襴�iOQ~/m���/c���3�"��e�v�Z�? �T��ܝ��݊ L,�M��Q ~'����h��T\팱��U^���nQ��+�"J�K�"�QP'y�:j�4�)a��P;��<j'.4��N#Ȃp�� b_x�p�B�^V���)#����cb�ѭǾ�� +�p%Y���ܑ@��CoO*>�6|��Je���0�+��� +^9����2�G�@T��?q�r��r��|��&���-���Jhr���xvE���|+��|�3�jv�z�m��8���̿$��z>��qe�(�I��L��<Bf���$g/P�X�D��}0v�<��-�FS9�8Ц�7���0��@�@�@E^��%H�Y� �F�?�� TU��Ov���BvC������$:�K�Iڪq�? \��ִV�:�6��`n�R>8�Z��3� �s? +���e����3�ąF�k\hR��K$o&���F7��hӑL�.��@�C�s�3�N<[���a�\���O��g���~�p���{��I5���؆:��Cm�~��NY��f�S�n0�x�&t;�w�s^��cX�e@�62��4-��L����wCk���垅<؞��gɗ n<8)"�ƫ�N�SDA�w����o�7k>(�B�v�sAp��cE��-�\��F��FNJ9^GMFJ�@�D�n~%`2��Eն5k��j���¤�L�AY�dA�#l&�s\� +1��L�Ҁ����Hb%�}�T�i��� �vz�t��9?a�=���0�Ip[ 4�(�Ô���� ���3k�&wp����=Q8���@A�ժ��,\��q<� +*���+\gre�z�$���� �����ތ ��Z�7�"F}�����:�^�܌"�kh�o)�f�:;s�Jd���W-,Tbd�IQDA���+^��'Y��9=b*���!����a��;&}lȭGF�#$��Q�5J��1���RT�^e�A-qk�D�o�~�ի��ȟ�H�E�}���%w!X&�'x�S���:I@?����p��wf�*&F~J���LO�3�ʹ��._�.�Z�ѡ6��F`j���e[����|���iu�nD�YƴN*�)��e�}�:ll�&�O��k-��I�LQu=�`p��I�J%)zڊ�O\w<����7p����M��q/�'��7jl�f���V�0G��B���F����̷�r�7��-�b��A�=Lk��Ӛ���k'�����LP��{)w�k��\-��O�k�k�=�&�Eq�<!E�<?_AGqQO����;�.�7�&����Ɗ�r0� ��]:������m���ȃK27f^!e�܀/cs���Y��`8�Urb�\͆�L�m*��;S�z!wZ�q������LSt���_�>m��מ\�L?�Z�\�ˁ1����N�t�8J`(�(��i2��,��.0 YZ&L;�|�?�T�0�Ԭ(����폦���1!������b��T lL�}~�ŹӔK"g�<�<�V�!>T�V�&��G�߯�z�9��b?b����3��ޝ�~'D>h��o� +�h��&z����-w�K:�$b�βD��}3h�iM��_�q����k��d�Q$ބ{�p��-k��t��7$��gN=8�?\W�l3J�E��4+Dq 4�\ݥk��%�a.� +2)%DʕW.<�"yN��=�������H]�9�q�ji�Q�<�� +���g��_�Y��b3�����Q�aYN�(����uE���^-Lendstream endobj -3321 0 obj << +3317 0 obj << /Type /Page -/Contents 3322 0 R -/Resources 3320 0 R +/Contents 3318 0 R +/Resources 3316 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3192 0 R +/Parent 3191 0 R >> endobj -3323 0 obj << -/D [3321 0 R /XYZ 71.731 729.2652 null] +3319 0 obj << +/D [3317 0 R /XYZ 71.731 729.2652 null] >> endobj -1588 0 obj << -/D [3321 0 R /XYZ 71.731 741.2204 null] +3320 0 obj << +/D [3317 0 R /XYZ 71.731 718.3063 null] >> endobj -3324 0 obj << -/D [3321 0 R /XYZ 71.731 718.3063 null] +3321 0 obj << +/D [3317 0 R /XYZ 71.731 706.1869 null] >> endobj -3325 0 obj << -/D [3321 0 R /XYZ 91.6563 695.3923 null] +3322 0 obj << +/D [3317 0 R /XYZ 91.6563 690.4109 null] >> endobj -1585 0 obj << -/D [3321 0 R /XYZ 71.731 688.2541 null] +3323 0 obj << +/D [3317 0 R /XYZ 109.9275 664.5081 null] >> endobj -418 0 obj << -/D [3321 0 R /XYZ 157.864 651.0386 null] +3324 0 obj << +/D [3317 0 R /XYZ 71.731 652.3886 null] +>> endobj +3325 0 obj << +/D [3317 0 R /XYZ 71.731 641.4945 null] >> endobj 3326 0 obj << -/D [3321 0 R /XYZ 71.731 643.6863 null] +/D [3317 0 R /XYZ 91.6563 623.6613 null] >> endobj 3327 0 obj << -/D [3321 0 R /XYZ 71.731 615.8058 null] +/D [3317 0 R /XYZ 71.731 587.6962 null] >> endobj 3328 0 obj << -/D [3321 0 R /XYZ 71.731 600.8618 null] +/D [3317 0 R /XYZ 71.731 574.7448 null] >> endobj 3329 0 obj << -/D [3321 0 R /XYZ 71.731 587.9104 null] +/D [3317 0 R /XYZ 91.6563 556.9116 null] >> endobj 3330 0 obj << -/D [3321 0 R /XYZ 91.6563 572.1345 null] +/D [3317 0 R /XYZ 71.731 505.9378 null] >> endobj 3331 0 obj << -/D [3321 0 R /XYZ 109.9275 546.2316 null] +/D [3317 0 R /XYZ 71.731 492.9864 null] >> endobj 3332 0 obj << -/D [3321 0 R /XYZ 71.731 534.1121 null] +/D [3317 0 R /XYZ 91.6563 477.2104 null] >> endobj 3333 0 obj << -/D [3321 0 R /XYZ 71.731 523.218 null] +/D [3317 0 R /XYZ 71.731 439.5617 null] >> endobj 3334 0 obj << -/D [3321 0 R /XYZ 91.6563 505.3848 null] +/D [3317 0 R /XYZ 71.731 426.2367 null] >> endobj 3335 0 obj << -/D [3321 0 R /XYZ 71.731 469.4197 null] ->> endobj -3336 0 obj << -/D [3321 0 R /XYZ 71.731 456.4683 null] ->> endobj -3337 0 obj << -/D [3321 0 R /XYZ 91.6563 438.6351 null] ->> endobj -3338 0 obj << -/D [3321 0 R /XYZ 71.731 387.6613 null] +/D [3317 0 R /XYZ 91.6563 410.4608 null] >> endobj -3339 0 obj << -/D [3321 0 R /XYZ 71.731 374.7099 null] +1586 0 obj << +/D [3317 0 R /XYZ 71.731 377.4197 null] >> endobj -3340 0 obj << -/D [3321 0 R /XYZ 91.6563 358.934 null] +422 0 obj << +/D [3317 0 R /XYZ 208.104 340.2042 null] >> endobj -3341 0 obj << -/D [3321 0 R /XYZ 71.731 321.2852 null] +3336 0 obj << +/D [3317 0 R /XYZ 71.731 332.8519 null] >> endobj -3342 0 obj << -/D [3321 0 R /XYZ 71.731 307.9602 null] +1587 0 obj << +/D [3317 0 R /XYZ 71.731 289.096 null] >> endobj -3343 0 obj << -/D [3321 0 R /XYZ 91.6563 292.1843 null] +426 0 obj << +/D [3317 0 R /XYZ 221.7756 249.8231 null] >> endobj -1586 0 obj << -/D [3321 0 R /XYZ 71.731 259.1433 null] +3337 0 obj << +/D [3317 0 R /XYZ 71.731 239.6805 null] >> endobj -422 0 obj << -/D [3321 0 R /XYZ 208.104 221.9278 null] +1588 0 obj << +/D [3317 0 R /XYZ 71.731 196.6576 null] >> endobj -3344 0 obj << -/D [3321 0 R /XYZ 71.731 214.5754 null] +430 0 obj << +/D [3317 0 R /XYZ 242.1475 159.4421 null] >> endobj -1587 0 obj << -/D [3321 0 R /XYZ 71.731 170.8195 null] +3338 0 obj << +/D [3317 0 R /XYZ 71.731 152.0897 null] >> endobj -3320 0 obj << +3316 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F35 1752 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3347 0 obj << -/Length 2197 +3341 0 obj << +/Length 2205 /Filter /FlateDecode >> stream -xڍˎ�F���D�7����f� Nd6>���C���� -��<���WS��k������E���~�.�<�Gt�,�ve�*؝a�_�Ba9 -��ezs�ꇟ�xw�OY���wI�yP�vy�E���?��Z�����( �����k������Lz���n�V��{��ޯ��q� -8��\/u��]��q�E��57��" X��}`=���}Ae��{b�G���v6�����1 -�0JRs_7f����Y#z����� -}�5�~��(��t����&f������g�I���;�SOM��>���}�z��AO�� ʌ���V�_`�E�t@���y�qn���s�v�4:�#��� �}�9���<\���XDԤ�兔ܻ{/[���سH���L�90v�5�Y���g��u+�TU1`-f^��F���f�Źn!s�����t���N�?1V-c۔j:���IȽ֕a� .VBP��[&V��n03�`-���[Qa��0ͺ�c �%�7��&�A5]#����VՀf]�0Ԭ���]Ad#�ma�C�0a� �)~:���< �D����#�k�m��UG�O��3%�3� �b���5�]�l5��ڿU ��T���Mp�J -���:N\�'�b?b��$Q���?����{!��V��ӨL��MY3��YF�`���4�1V���-�Lͬ���O�|^��O��sn+�z���="s�i����'$��S����>~���ϲ�c�R��r����f�;�5��3��D�R���{�L���a����i�r#��Ѝ-d�\e�������D(�nk�RPc+RU�R�Zv�7�v=�*W^Rbȝ���Q_��z�<�5��`S�6�ViӜ{j?�Qg��Y��iX�������m�53��g�iE �6�����.bfȊ�Ze��*�))�ѐ�(�'ϛ��Yxx�s�ȫ��~�6M7^���oD���X��XԸ��!�;v�M��[@��l�!��(��mf~���0�0s�8�Q��Y��'��5�zXp���gԈ{��r�`���v����Ȉ8.��i>HTT��,a�z�}��@�������77fo�m� -�F�����0��4���y���*1��J�ꐚ�e�P� 1��'�s�Un�nF3Xq�9��k��H�V�Va����a�k%�T`V.�s�}����옉Q���Fa��~�ڝ}\�'�a�͝�6����Ɗz����e}��M���H9C��̒KYd��E�2��{�g(�Ne@���0�r��v��h\l,9�!��dn[ *3�F��� CĽ9�(!�(�^f�nt��q��qPg��0���zkI�A��'���J��i�D��N;Ȋ5��[Y���-/�8�2q�nݩ���k~b���|^����G�0���:�/p���p�3�Nfmfy~��1�-����� �d<A�����TOH��)<²U�[�Ĉ�Jc���^�U�E�5�m�.S�b��эD��8Sc�s�̌�D��{�����WF�ٓF2�AѲ�@q�5�;�6($�p���&\��{�:��މ� ��;�&B&QeM�Vn��.uL�qf�r�w�Rl#p�J��_9�C�fdڼAٺ��"�~~i?�N�p^�:�q������B��Ph�a�H�ˠX�g��s�O2 �~y�O~�G�*$1oat��X�^�-8G�ߖ�A: L������� ��E��0l�K��-��#O�J��J�~Yi���������d��b�x��~�kS���: t�`�5�Uդ����X���R�R��qd�Hwf�R���;�a��떘^Lx3�нT��J���0�xK�hX�p��`¤���]8�x��:Qe�cF���F�w�����[=�t��V���A��� -�ad2���w\|��OK#����n�3���'[h���]y�{��n�vD�J�h��w�̻#�w�pF�0j�"��D��x���+�{9C�r�V���|3�AK#:�o$̵i%��ju] -����5���=@+��X�ߓ���UG(���KnK�Kr䕙�������1���`�w�"��,C=��y��Jew�$_W+�ұb��Ͽ���ڤ��0;}������t~�N�$�& ����Ɓ�"3/endstream +xڍXY��~�_a��؊D��6�n0���bd���dK۲����8�>uQ��Nc�@�X,�u|,:^E���8�5|�>TY�V��hu�����Ed+2[_��㻿���j�3����$��<��W�V�.�w���_����c9��*���}q����nO��0��[7�Y���w?=Λ�:�;��Mg��6�ܳѝ6څ:�9Y�X�`B�~WJ���Z��K��gz3�s��Hv��:�cy�(m}j˂Gc��S92a�nj^7V�,j�s=���ڐߪ�3����Z^f�Inr�l�>p�LӰ��&��C=�3� +���*ܧqB7���<�v �(_����ɡ4�e�`Z!�v��I�Nm}�˂��a�^���[97;U=�Tf���_���Ɩ!B�W;i�`Hc��J�j��0�"MG��˿�p�x�* �,J�(�N�����hQ9��G�Ն�9=i�v�m����@"#��l$�\>}�E��i������җ�8 B~n�L�q����������KU*&)H�;�6��,���@ �Zs��ۢ+\��ЬgH14H(��<�5�a 7,)��s��y�+E5��������Hgi�q0N��^P�X_*���`7K�5�-?KA�|���QQ��K��@͒:q��)L��<Y��3 �0�,d�Y��hH����|hcT�*�<TI���#Tɉ�'�����7'��z���R9U�e�f�My��rn���L����R���) +�ڌK2wP��t������)����n` J���7��v]ڒ�������g9��F�?T]g�J�w��<���.���k��DqL�md���T��#O4�̡#���+ s��#���'���(�����y�8�E粝��@�z@v��)�câ�(_�߾��^�ɷ`*���_���(R'�'d,0�[8���}c.<0�Am|v��K�� ��p���ʦ�� �X�-0�rDJ�(��H����y$C=JE@�nj +�ݕ�8{�;Y�n�&�;4��2�@!�CD���3H0�N�'�%��b7�Y�}�(Ĕ9���{m��R��Q���ظ;��{�,il�\��ng I;�*�.uu-H�^�O����C�(8�U���P��M���P��8M�2���Nx�W��ڽ��r�A�އ:W��X�|�������.�T�Ԍ�Vo@2'�7A�4�t��#@�L�π�S� �̑�? %�ĤtN��L��������A ��̱BN[x^�p~DŽ�9�)F�Y�F���ͽr�JkA&i�%�@�r� +����e!����I��]B���%:���!@��5����(�6����xO�Xx8�����C��`��bS@���̋f,�3���֒�s�f��YJ�s�_���D����{(��y�I�^��^mh^j[1���_�)�:���j�ƚ{W�c����_�8��3겨}��t>�� �B�Ջ��e]�Ep��mQ������H���W=@���M���?��l�2��ܵ�S� +�S��..��������KnK\�Kz��3M�bA�W��Nw:V���7�1ֳ4�8�� ��[I-Ѕ邻tDA,�?���fxu(�Ŵ�9��w�w�p�i�1�^:cv&y�{Jj-!���c&���|���F������n�<�2R��p\5kx�VU;��)|�ϙ�oyMX���m>ѫ ������t-{/m-/m�8 ���~t�6yf�FTU�տ][W�3K��{��=����a��x��}�^#�5��^���lQ�w3��B��ݩ�7U�G�lL�4��u��g������"����`��u30∛ �����b��ki�Z�Xɛ�rg[���isϟ�5x�hn�P��9Mw"_Mb�a2_�;���IB�� O8eL����fq���O(�M}9�!�u�@}�1�$�t��D�?Xry��i#�w�=���(=�́�:�!4�����������Z���L8B+I�,�%�"{M���Zj�h�-����֣>U��~��疎G��pa��N����}�~�d�����Oy�C�m�,[[�4k e�'�6yn���5�A;^@{�"�C�ij��;�ǨB�nܻ�P��GW�S�.ɵ��Z���%]�pq��R�*��n�ۛ�ޞ��*e�h{����Қ��]����Yٓy��r�va���&49�����w6��W�endstream endobj -3346 0 obj << +3340 0 obj << /Type /Page -/Contents 3347 0 R -/Resources 3345 0 R +/Contents 3341 0 R +/Resources 3339 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3359 0 R ->> endobj -3348 0 obj << -/D [3346 0 R /XYZ 71.731 729.2652 null] ->> endobj -426 0 obj << -/D [3346 0 R /XYZ 221.7756 707.8408 null] ->> endobj -3349 0 obj << -/D [3346 0 R /XYZ 71.731 697.6981 null] +/Parent 3357 0 R >> endobj -430 0 obj << -/D [3346 0 R /XYZ 242.1475 617.4597 null] +3342 0 obj << +/D [3340 0 R /XYZ 71.731 729.2652 null] >> endobj -3350 0 obj << -/D [3346 0 R /XYZ 71.731 610.1074 null] +3343 0 obj << +/D [3340 0 R /XYZ 71.731 741.2204 null] >> endobj -3351 0 obj << -/D [3346 0 R /XYZ 71.731 551.3428 null] +3344 0 obj << +/D [3340 0 R /XYZ 71.731 718.3063 null] >> endobj -3352 0 obj << -/D [3346 0 R /XYZ 89.7017 540.5482 null] +3345 0 obj << +/D [3340 0 R /XYZ 89.7017 708.3437 null] >> endobj -3353 0 obj << -/D [3346 0 R /XYZ 71.731 525.4399 null] +3346 0 obj << +/D [3340 0 R /XYZ 71.731 693.2354 null] >> endobj -3354 0 obj << -/D [3346 0 R /XYZ 71.731 510.4959 null] +3347 0 obj << +/D [3340 0 R /XYZ 71.731 678.2915 null] >> endobj 1689 0 obj << -/D [3346 0 R /XYZ 71.731 449.7885 null] +/D [3340 0 R /XYZ 71.731 617.5841 null] >> endobj 434 0 obj << -/D [3346 0 R /XYZ 218.2898 410.4162 null] +/D [3340 0 R /XYZ 218.2898 578.2117 null] >> endobj -3355 0 obj << -/D [3346 0 R /XYZ 71.731 400.0512 null] +3348 0 obj << +/D [3340 0 R /XYZ 71.731 567.8467 null] >> endobj 1690 0 obj << -/D [3346 0 R /XYZ 71.731 321.3851 null] +/D [3340 0 R /XYZ 71.731 489.1806 null] >> endobj 438 0 obj << -/D [3346 0 R /XYZ 269.7575 278.2876 null] +/D [3340 0 R /XYZ 269.7575 446.0832 null] >> endobj 1691 0 obj << -/D [3346 0 R /XYZ 71.731 278.0725 null] +/D [3340 0 R /XYZ 71.731 445.8681 null] >> endobj 442 0 obj << -/D [3346 0 R /XYZ 283.7934 238.9153 null] +/D [3340 0 R /XYZ 283.7934 406.7108 null] >> endobj -3356 0 obj << -/D [3346 0 R /XYZ 71.731 228.5503 null] +3349 0 obj << +/D [3340 0 R /XYZ 71.731 396.3458 null] >> endobj -3357 0 obj << -/D [3346 0 R /XYZ 71.731 190.731 null] +3350 0 obj << +/D [3340 0 R /XYZ 71.731 358.5266 null] >> endobj -3358 0 obj << -/D [3346 0 R /XYZ 71.731 175.7871 null] +3351 0 obj << +/D [3340 0 R /XYZ 71.731 343.5826 null] >> endobj 1692 0 obj << -/D [3346 0 R /XYZ 71.731 115.0797 null] +/D [3340 0 R /XYZ 71.731 282.8752 null] >> endobj -3345 0 obj << -/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F44 2183 0 R >> +446 0 obj << +/D [3340 0 R /XYZ 264.3119 243.5028 null] +>> endobj +1693 0 obj << +/D [3340 0 R /XYZ 71.731 240.3109 null] +>> endobj +450 0 obj << +/D [3340 0 R /XYZ 274.763 209.0321 null] +>> endobj +3352 0 obj << +/D [3340 0 R /XYZ 71.731 200.3946 null] +>> endobj +3353 0 obj << +/D [3340 0 R /XYZ 122.2213 190.1031 null] +>> endobj +3354 0 obj << +/D [3340 0 R /XYZ 468.4811 190.1031 null] +>> endobj +3355 0 obj << +/D [3340 0 R /XYZ 71.731 170.0135 null] +>> endobj +3356 0 obj << +/D [3340 0 R /XYZ 354.5783 120.3646 null] +>> endobj +3339 0 obj << +/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3362 0 obj << -/Length 2482 +3360 0 obj << +/Length 2591 /Filter /FlateDecode >> stream -xڍɲ۸��P��� ���v2ɤ*���3��s�DHbL�.~V�>��(�9��F���;�`��/Xe��"��� -�$\��o�����&���l�H�����(Z�H�t�|Xž�2?/VY�< ��s�/��I_�m�a�{�����\5U�92��x�oU�z��翽��c�D�*r���Q�0Z���4D!�q�L��"F*������u�7��Y0��:�H|~�a$^�B2�@IB���6�U�'D!���n��i���Z�n��7Њ[g�����]��",��/��6-^�q�4���� /}�ȔՀD{���t�&L��UM���g(�Wsʺ���[��bJ^Z^8v�^�~����l�v��OB�4��ӽ�u�|a�pT )#K iC_.�o��/Q��^����ŋ>�(�+E![�v�����îx��;cW=�,����p�3�P3�<�� dw��߷c3����?h ����Ѝ͔��v�G��J�ƭ �l7v���iI���5 D���3mb�@H�I�w���į�QgF00g]Ռ�˲3=�,����������ɨ=��,m -mF@��bM��x@�D�� ������T� -��Q��8�5��=̆���͂��,�ۦ�� L+Y.+�`:C��L�*�ƞ<�@�?ٵ��ޭ�^WOB -t�6���2��L��qn�Eb�94q��pv�o -���VMo��8�%� V?� �$�g���W�y�I�O��q�kb"�*���՜�jP�C鉳�&��D��+fRH7f!�F� -�"�{^gμ'J�����26�<�����dn�D��0� J �Z����bF~�ľ�<�"�Fg�3�S��V�����7��E�KU�_����������6`�X�m���S"�&��fl�5a�9;Y�s��]��[�R���s�-.f_���<�R$R���w�O��bEp����5V���}Ve�i�)n'��*n�,�%�V6?��g� �� RC -T�$�}Wa��/|�l �k/�*#���[̩�.p)8����_��J>+��`��\� ����W8SK�&�����a�#N�0���cKan͇��|����g?���I�0�g�0i$`T53��K�o���(�<��{����K- >��'�pK���z7�����Y����_XeH���;Tgqq�,�$��)g�7�JN��V�" �"���g<�X�dq���!�ɿ��Nq8��q��#�(S&f���8�|9Q�#��gq����ղ$?O}'eg�-2C��CמM/�Z���� �U���r`��5� ��e���7��WQ�w4oW�����[]:+��Ĥ��|�,�!DRMT���ۣ��`Ū�!׆���{�l�Y���$b�� ;�F���s�E�p��#��v;h*��_�!�.X�]+J�m�}?�Y������3��6D�!�)�d\R��/^l�F�����Ac�������[Z�(�g6����zW+Veٰ���K���+�x!R�2�ф_��\?j�C���k@��H����1$��|�Gw���ܔ9������]�,� ��ݚx�N5 ��r!B��)���ȺRr)|����KY��0�WQ�8*��w ������4��xͤ��T0�!!�1ü*������P��y�A�$��d��$�K@6��uю3�]ɓ��cr(��{9'��{-W1�O�.�<Zx�_"�mG�[j��o/mg�\��?q���+�,w}r�� �Osf����L �%Q���&H�)֣h��5g�*M�ՖXοN��"<Цv���1c�v�j�n�̚�5w-�(ӓ��ޡmu*����G�a�E358��<H�~[�w��Ƹ�[q��kŤPy�?���+Z,Ta�}+.��?����Q����B5��F��. -3ӛ�]��eH:����j�d�Z7������~s�)��>����;W���p�p�lc>�ÄIMU���u}�O�I�Y<A�&Y&�0�\2�����l��ʭ7�1\����+'�����D�7�� @�*?ȭ���R�7�KT5��}0K<iT|�|Ό�W�Եc�{�K�qW��q��)R�v����N�(��}����RV&�<�(TzN����R9�Ϯ� -� ��� �n��\��{�?���MO��Ry�Bj��W\��`�OUM?�fO�&��fmg09��!��8��[��A -��`�t��Sn?r�6 �?�;*.��6$�`Q}��7E9�Np��rS���[ܓl��S��������6�͂\��r%�7Q�p<��f�8���^���ռd�{�t����}��XS�B��Yl��[����Õ1��{"�9>@N��%&��H�/��1�I��:�s�i��e���ɒ0�p/ -G ���w��Z`�?�U1�endstream +xڍ˒۸��P�e��C|�f;qvS�7����s���Ę"�|xV�����f�t �ht7����U��p��~��~�&�j{|�����7��lg3Ez����Z~�F��a����ς�Xe*��$�W忽}L��DI�)����c�T=��fϠ���U]�����O�y�2�ȁË:�k�l"�=m��*VIh�Q�}_��g�3 +�zc��^��G��t�����y���ux<9�1o8�u ��ZA��v�L�Wm�5H�{^h��V��ہ��`��zՎq��ȀoM��x����<O�v�A�`�i��&��" c�EݶߜIv ��=�\����9o�<�"��������5��P� HTBD���V_� ��|ߵ�I�x�oiv�v��p/�3@�B^c�X���k�;%����]�O�'UH����V�3�����X�������*�{���v5���d��2B�u�[���b�"�,Hu���V�ݓR=Xx����n�m�N�������=� ��?|-pD���e������ʧ���#D'�H>��s��ax����ƣ���ߖp����y�0�_8��n�{e՟j}�y�=�fod2����^G��<���K����>VY��,�����H��%�Dv7�l��2]%'��i:-;D +E���G<�X�`q<��!�)xV;B��pr�{�y���0Q�L̠��g��|:��p�yA�,.�m�e�,��q��w�آ�l�����=2�^2�� X�,�VaK� �b�q�+BT~D?���އ�聯���OH^��L4�'�h��Wy^���gS�6�ك;:+�'�-�$ñ���;U$�x� 5�H�6l�������F���eϳG�4�������k�OF���s�<f��_$<����a@S�0;� �u�eٵTZx���㑥I9����<������f��ޞ�O�)�pz���Ѵ�6u/#]���3�a�!?��K�)�g6�9|���cm�X�e�V����&+���2~!y/8+g�\M�Ey���6�1�S(�9G��Z�$ ��C�������87e��G ���<�.�Y�� D;�����r���D�D?`QD��u'� c�_�� +����0��8R�*.r?PQ�X&:����L����}6��B��\�(���E�+2\SC��ȳ ��O�HB�'�e�q흻�8c�<yD˟yL�_��%Z�����L��j���D�jbή�����uzk���Zh9IP +��*O����'����R�r���M*ҷsf�0a���:��F?$H�)�B�1��: +�9˼��}m����D��^�6�{;אa�t�~�X�b +�U�wd�;�F���<��vm�Sޟ.�:J�uq�����J��wey�4Ƶ:l�;��! �q�◭8źmE��*�nZq���V|Y�+�(�G.�P�����f�7 \t���nHJ�ID�KBx�M�^��_�uJȤr�y|<V��sŕ� Ҙ*&JD��O!�� >����xO���O�,������!���d^�=��z�(���6XN$��?K!Â�a�an���¾a^��T5;���œJ%�����C��� S��8AŃ�h����_(1gR���B�(E�\��݈B���DRX��r���xt%T4-.�#��\]�<|�?���UO���EPk$��r�s�_��j�A7[�4Y�H4kK���%�'���=���_p���! &ء�7�r��C�i�Z� +}�6$�`Q~��WE9�N��˥U���[܃l�P��������6�͂\��������8�ܚ!��9���v{5/� ��u�:���5��K��މ,֡W�-O�����Bƽ�� Ю����>��'����+x6E�R�O*%u����t ݗ��0D�g�Q +m�l�kd +��M_��c�8��g۟�i�gQ���dw)ٚ�N��0O�0H��m�H6�@�Ym�$ꐤO�8�Pc�"˛ �n�����8�*��-Z�ޱT�x��a�M�0��\b�[��,����B7���`vל��|�|��5�� @ >>/��6�>���Ꮁ������u�9��@T.#�~�'J��(JP�ǽ蛞�,�XIf����A��@��+q=LՀ�����!@1aۍZH���6���=F�su�9p�C��P���D�J�`897��T�W�;��u%�Q��������(��/��1E�}�,ҫ�h���Gs���T�-��q�b�E�>_����נ�uK�zRn�lK��ё�����e��=ӷ����Bn�1R�RY�'H��h�^5���aƹ�f� +��u�-q���ʼr��*�� I&��ݿ�!&Pz�*�0�<1g�M a�9��_F�d�6W�H�U=��ͭ�Z��� D�s-ܜ�=�Q�KD)�ٓ]\��Ўu���7���T�s�j��m�o��2���mJľ�-���M���>��@^��G��x�8��<L��x�s�AI�CS��+o������� +�endstream endobj -3361 0 obj << +3359 0 obj << /Type /Page -/Contents 3362 0 R -/Resources 3360 0 R +/Contents 3360 0 R +/Resources 3358 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3359 0 R -/Annots [ 3375 0 R ] +/Parent 3357 0 R +/Annots [ 3367 0 R ] >> endobj -3375 0 obj << +3367 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [176.4275 358.2867 223.2515 369.1906] +/Rect [176.4275 494.8793 223.2515 505.7832] /Subtype /Link /A << /S /GoTo /D (parameters) >> >> endobj -3363 0 obj << -/D [3361 0 R /XYZ 71.731 729.2652 null] +3361 0 obj << +/D [3359 0 R /XYZ 71.731 729.2652 null] >> endobj -446 0 obj << -/D [3361 0 R /XYZ 264.3119 707.8408 null] +1694 0 obj << +/D [3359 0 R /XYZ 71.731 618.5156 null] >> endobj -1693 0 obj << -/D [3361 0 R /XYZ 71.731 704.6489 null] +454 0 obj << +/D [3359 0 R /XYZ 224.8627 585.2055 null] >> endobj -450 0 obj << -/D [3361 0 R /XYZ 274.763 673.3701 null] +3362 0 obj << +/D [3359 0 R /XYZ 71.731 582.5455 null] +>> endobj +458 0 obj << +/D [3359 0 R /XYZ 185.7017 554.8194 null] +>> endobj +3363 0 obj << +/D [3359 0 R /XYZ 71.731 547.6214 null] >> endobj 3364 0 obj << -/D [3361 0 R /XYZ 71.731 664.7326 null] +/D [3359 0 R /XYZ 359.6067 536.8867 null] >> endobj 3365 0 obj << -/D [3361 0 R /XYZ 122.2213 654.441 null] +/D [3359 0 R /XYZ 388.1827 510.9838 null] >> endobj 3366 0 obj << -/D [3361 0 R /XYZ 468.4811 654.441 null] ->> endobj -3367 0 obj << -/D [3361 0 R /XYZ 71.731 634.3515 null] +/D [3359 0 R /XYZ 71.731 498.0324 null] >> endobj 3368 0 obj << -/D [3361 0 R /XYZ 354.5783 584.7026 null] ->> endobj -3369 0 obj << -/D [3361 0 R /XYZ 71.731 551.6616 null] +/D [3359 0 R /XYZ 71.731 490.8942 null] >> endobj -1694 0 obj << -/D [3361 0 R /XYZ 71.731 481.9231 null] +462 0 obj << +/D [3359 0 R /XYZ 280.1962 460.1743 null] >> endobj -454 0 obj << -/D [3361 0 R /XYZ 224.8627 448.6129 null] +3369 0 obj << +/D [3359 0 R /XYZ 71.731 453.0959 null] >> endobj 3370 0 obj << -/D [3361 0 R /XYZ 71.731 445.953 null] ->> endobj -458 0 obj << -/D [3361 0 R /XYZ 185.7017 418.2268 null] +/D [3359 0 R /XYZ 117.1103 442.2416 null] >> endobj 3371 0 obj << -/D [3361 0 R /XYZ 71.731 411.0289 null] +/D [3359 0 R /XYZ 71.731 440.0847 null] >> endobj 3372 0 obj << -/D [3361 0 R /XYZ 359.6067 400.2941 null] +/D [3359 0 R /XYZ 71.731 435.1034 null] >> endobj 3373 0 obj << -/D [3361 0 R /XYZ 388.1827 374.3912 null] +/D [3359 0 R /XYZ 89.6638 414.3462 null] >> endobj 3374 0 obj << -/D [3361 0 R /XYZ 71.731 361.4398 null] +/D [3359 0 R /XYZ 71.731 412.1894 null] >> endobj -3376 0 obj << -/D [3361 0 R /XYZ 71.731 354.3016 null] +3375 0 obj << +/D [3359 0 R /XYZ 89.6638 396.4134 null] >> endobj -462 0 obj << -/D [3361 0 R /XYZ 280.1962 323.5818 null] +3376 0 obj << +/D [3359 0 R /XYZ 71.731 394.2566 null] >> endobj 3377 0 obj << -/D [3361 0 R /XYZ 71.731 316.5034 null] +/D [3359 0 R /XYZ 71.731 379.3126 null] >> endobj 3378 0 obj << -/D [3361 0 R /XYZ 117.1103 305.649 null] +/D [3359 0 R /XYZ 244.0118 369.8132 null] >> endobj 3379 0 obj << -/D [3361 0 R /XYZ 71.731 303.4922 null] +/D [3359 0 R /XYZ 441.8906 346.5006 null] +>> endobj +1695 0 obj << +/D [3359 0 R /XYZ 71.731 267.3973 null] +>> endobj +466 0 obj << +/D [3359 0 R /XYZ 207.7551 231.9302 null] >> endobj 3380 0 obj << -/D [3361 0 R /XYZ 71.731 298.5109 null] +/D [3359 0 R /XYZ 71.731 223.2927 null] >> endobj 3381 0 obj << -/D [3361 0 R /XYZ 89.6638 277.7536 null] +/D [3359 0 R /XYZ 71.731 210.8444 null] >> endobj 3382 0 obj << -/D [3361 0 R /XYZ 71.731 275.5968 null] +/D [3359 0 R /XYZ 71.731 205.8631 null] >> endobj 3383 0 obj << -/D [3361 0 R /XYZ 89.6638 259.8209 null] +/D [3359 0 R /XYZ 81.6937 185.1058 null] >> endobj 3384 0 obj << -/D [3361 0 R /XYZ 71.731 257.664 null] +/D [3359 0 R /XYZ 81.6937 185.1058 null] >> endobj 3385 0 obj << -/D [3361 0 R /XYZ 71.731 242.7201 null] +/D [3359 0 R /XYZ 484.5537 185.1058 null] >> endobj 3386 0 obj << -/D [3361 0 R /XYZ 244.0118 233.2206 null] +/D [3359 0 R /XYZ 71.731 157.0461 null] >> endobj 3387 0 obj << -/D [3361 0 R /XYZ 441.8906 209.9081 null] +/D [3359 0 R /XYZ 81.6937 141.2702 null] >> endobj -1695 0 obj << -/D [3361 0 R /XYZ 71.731 130.8047 null] +3388 0 obj << +/D [3359 0 R /XYZ 81.6937 141.2702 null] >> endobj -3360 0 obj << -/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F48 2196 0 R /F44 2183 0 R >> -/ProcSet [ /PDF /Text ] +3389 0 obj << +/D [3359 0 R /XYZ 71.731 139.1134 null] >> endobj 3390 0 obj << -/Length 3242 -/Filter /FlateDecode ->> -stream -xڝZ���~�{_�v=�WZH�k�"I�b�����֢m5��H��m���p����kz8���<8������$�HB�2�Q�ٟ�y�#t���,����2}���?��&Yě��Fz�H�4�$a ��O7Oſ�ߝ�K���cy�P��7Ź���e}$ҷ��˪�w�~�˻�OVx&"KA�M -�\� ����" ��f�^*B&Z�P�uK��MQ^I/��s��ѶC�`��Y��y�S�����^�Z^�+5N�.�q<w�k]X.ޖ+ʐ��a2|���8���g�Ov��jvA�}�����U���]�eDZ/"?o���D;�l`w�w6�2��?A4�(Ex������0BZ�8��)�C�����-�h�S~VGy"��ᘯ���Tvؒ[���GU�6��W"�=G:�ԇ]�p��kUQ�:�eEļ(Z�u�:��3R���`�Z<�>sl�!��k�p}�#�`�C-��P"�%�삗��`�ԫ��-lN?`N�0!.=������?'ҳ2L�p��F�;v�0� �OMo�<��H��!�C�`�N��vQBgΝ�h�X�O^���^�g��u�<�{%S��2�dc���&��5;�����v�0�ۑa�kG"�`GS���U��*�X1!�,��`B��d����d�̄��42������ �73�z-[;��~8k� ��j�f�߃��1�2�D^v�]��c�L��qI��c��x�#%��Ka�]�Ҵ�0��BzQ��B�w����F�7J2�Q$�D"9 ��!|��<��M[�I�x�!�n2k~�sޗ{v�@�SV�x�1'Z��AL�<[�P:Q����Fn�;5ת�?��tː��*�(*�)��C�j������~2I����29�w�����>�pE襾�ϊc�.���8�S���mw�2���0����7�x��2�]%�-�k��l���@@>8^ ���_�e�$��/���7�9|y����u���SY���oΗ -"i�!�дSq��oOc5 �F�\IE��.U�7�ЦE��_���0� ���G6 'L��%�� -��s^ҕMmQ?�ʫ�3��M�9L��3Lw�� � Л�=W k����4�������W�i&_ -c�]�'%w��_/<�"���E'��C�(���o_]�J����>�����g�VA�y�K�d���ms�dYGG!�@m�I��QRu���$�C���1:��f�lYL�\��K�N1M~�F ��]�:k��'���ӏ?P�1Πw�F�H25�- ������9Z��i}N���d��:�y߫�e.�Ӟ��v&�{4��*):�&VoL�崳¬`���n -aUT�]�M�Ae�#6#��3[.}��}S�e}UDDž��?�U9��X�6��TB��K~˰�����ܴ��4�ձ\��:���,��>�v"��lᢐ��>{�Ȥ�q���nMt@�R���0�ҹAO�7���<��,N 8YB&)!�)��o-�! �i [��.�J��k�`8[�C1�G ���T M����!�yJ���0���$-{�p����%zH�eA�b{]��"�51K�0����ԗ5��z� -�]4ڬ���,v�[t@���c��m�n����Y����\[����y���9���4�#o�r�{H�m|�z_�tՆ/x��Ϧ6c�#t��hi8SMQL�E2]+�K�t����= -/�L���y͏��D�v�l����5VQ��_[�,뮇�>�9���N*�s5���PDa�n��0�u��6�-#�>�=A�Vmv�����u��h��+IE S9�J�X� -CT"J�M�`�����VM�F�����@�#�aDS�i����W|��9ۜ������[���+�x!O������ }O������e�#_�^���:n�}a�"�P�L�,ӽ�ϝ��i�L�Ŵo����NFp�`���K�^*����]�O���1{} L���E%�������c�tB�d%����5��+�*]����۟�OÙ�/6� z)~b+�\T�'��ytC�ܔ�9��ō�����&/���c+1\���\�NP��s"Lf�m��u#H3��g -�iw���D���L�E܍��( �� k\(�I��q9���}2�L��D���1>�)��;����<9�8b����A?U�'"�����nd�&�aj���c��[24r��-EǒJ��f�#(rr�>��`�3Û�m2���?OW㢛y��q�zͅ;��\���'*S�8oU�0��ux֡�<w�<�� OXƱ��^�u-V�9�/]z?�0��ٴ�l+o��~C��ƺ+��T,׃�[ -�~(zu�0r��HO$Yp��eZ?9�t��D���:,���*�ޚ�B�R�8t��8��Ju�u^��1 -r�?��)���t9Tw��4��|<1��T�A=��8���'�V`�)~M�M�%͐��u�V��L`�[uiZ|(�l^nv`T��%��aVCv�lh�M������Y0�� �$�$���Y�e�A�َU�Bڟy���ĭô�[�t�"߀۩˸u�@|`5.U�/s��$��}���y��x����HT�a�/'�����)�� mx���K��}o���[����E���rֿB��w���Y��l ���Z8KF��n�g0"��A4���T��%"J6ς������ë%��Z����6\qɪ�x[�k �v9�c��;��Z�E�i.P,�w�b<4]���v-n묅��QK���Qj�z���YD�݂��q,�$�7-�eZ�\�t�r�Dܙ��;R-���.]��ʕ|n�n��\bn(:����oY�������G�\�����h6����O� �;s�I���9Ibr�xnռ���?0���7}�vP��U{��w�]��zt�Ć})�'��-�c?�������#SQG�KٝO���7��Nƌ]�j�ةd[���X�lժ���Zt���u�3LwMoA�Lo�ò�J��铁�_��"�&r��e&?������@�� ��y`F[ ���?B�:&���A�Ͷ<���$�Jp:|C �Ξ�TK��#kdɌ��y��qM��Y��@�K�[�㪞�7\������j8N��c;��`cƯ�����{^�N7�U��H����d�9�� ��ev&�K���sA���?z�endstream -endobj -3389 0 obj << -/Type /Page -/Contents 3390 0 R -/Resources 3388 0 R -/MediaBox [0 0 609.7136 789.0411] -/Parent 3359 0 R +/D [3359 0 R /XYZ 81.6937 123.3375 null] >> endobj 3391 0 obj << -/D [3389 0 R /XYZ 71.731 729.2652 null] ->> endobj -466 0 obj << -/D [3389 0 R /XYZ 207.7551 708.3437 null] +/D [3359 0 R /XYZ 81.6937 123.3375 null] >> endobj 3392 0 obj << -/D [3389 0 R /XYZ 71.731 699.7062 null] ->> endobj -3393 0 obj << -/D [3389 0 R /XYZ 71.731 687.2579 null] +/D [3359 0 R /XYZ 71.731 108.2292 null] >> endobj -3394 0 obj << -/D [3389 0 R /XYZ 71.731 682.2765 null] +3358 0 obj << +/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F48 2196 0 R /F44 2183 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 3395 0 obj << -/D [3389 0 R /XYZ 81.6937 661.5193 null] +/Length 3165 +/Filter /FlateDecode +>> +stream +xڝZY��~�_��˺����,�1�M�]H�̓Z�met�<�ίO�HQ��F���E�H~u�ݍ�&vE���K���&��9�#t���e�=��m���}�g�ߤ"��h�|��#b'I7��$t��s�폧�<��i�������˦�^6G"�p9��������}���,��HXᮄA /t���sD���}8��?6��� �;.�C��f�]��y�\�8��D{6���;����2L�2qE�B�D8�:++8� ��T��K%�Jm`{�x� ��@��f�gj ���V~����+�[�43�xyn�Ը��F����ϕd���������ey�^�AЯ�{�B�d�HC7P[ $�<WY.{�5�$5�lȾmZ�;�Wq'ș��)��p�qW�l��V����]_� /�� `�8A�އ��tz���֖|���Л�Ƅ���ԃ�`|V�:"J�`���ˁ����뙧�<�W� ���(lv�/�.�a�ϥx��g��N��%.=^���;�@ȷ�(@ �е5���x��� +�z����g2gI�7�?"�x�j�G�|Y����̈�@ ��|�F �u�'�����5�/Ͽ��Z�d��di$/I���*M&M�s�y��p�trJ��l���k���VAI�a��y`m�{�ۮ6Z۳jf��j��_ kej/Ua�,h�V����,f�[�PG���ƬFt�6�#�� 6�x�A�p�+�#��3��"��m���H��F}e�rY��"V2K���l�v����m���[�S��۴�^x�Q-A���(�pi@`H}���eE�ԧ. +��L;ɲ#r�[�6D�d'2��K�=�Оy-e�� N �娫Jљ������:�% ��4�`�.�S��+�ńx)����ňR�h.0���z��]/t�0㥲�$)[H������.K"���\��v��9,f/�f��9���!��|GigO��Uj�f�㔡��aDy�z�:f즣J�qW?�v�mſ./u9���p�/2\�>/h�=�r��(�x������X�}�F�E��= ��� �p�����WA0N�堽���`�B���W�� b}��^�+pCG^�</z��>; pA�U\Q旎9˦2���� + ���7� +��E�G�&��.���&�d!�lW���M'73 +��� @nfg.M�p��"� �E����Ğ��'�;����q���b�>���A�Z��Z��G��8�@�m�h����U|���ی�NY�A����ɂۍa��v�B�:"�8f{�I�CW$N����>�0���}��Q�g����o!�j�7�c����rn�Z�i-�$qR+�pc��n�V��SĮ��E�ݷ5���� KqD~���^!V�K� �g��lάm��o�K�[��,��8��J�H���<��ġҦ��&+8V��X��si;��ԖS0�c"v����V�@>�$�{w�m�i���[Y� ��˰�;[�B`aQ�tA �.t��'�PeR�@&"���� +iu߁(t�@��(h���G!�%�������=���^�R�(����<Z*ʒ���:4�;��l (�-O���y��6��[K�Y����z�i����ゃ����Au��ܿ���:��x���4�s��d�܄��y���y.�*�m ���3�AI��̶�_���_#ێ¹1�ь�1v����ލ1W�U���wH�v�e�j����67��ȣ��G�E郋��nߜfzxu+K����2�_�-�,������ ԀX4�n��SSɾ����#}>zA�a������ӝ&������~!� +=h��'���� +�ůټ \'G2Q��<6�� Lw'�m�������&6�#�TGm��i`MU�X��n�L�qÜ��9ݼ�kIɎ�x}7q�����l�m�2�C�.�{fg�C֒���uXH��D���<���.��le��3o�ώD5���2"�J%�H��i�ds��-.���7�w��S�UR�c��mQ^g�m��`�75�!���F�D�5C��i�gT��*�yI�)������ ��h"3��n��ڃD�W"+� {���rѶD�@���&i^�U5����< +(V=;1^����`�;���B��������i�w��ʅ/�Rݚ�:��4����m��L�ve�7��\�uŵ�@�%����VEōH�N;P ,za�s�t������=u�B�T9�� +b>�!F�U�j=A8��*v�ҙ�^@?��S�ȶ����H��(c4�h$Zj5os��1���h�}O߬��2�*�p�kP���0oDT�w�B=�c�7+���=�еt$]��$yBeG�� (vRf�5Y�jR����ձ�U�R�R=/�������L7U�0=R��%��B�U՛���nN~5�E�8/Ց9�����D|�$�& �S:j���*ׄ-�\PQ�h�7hv���\ M�Bp +��z@D7���[F�H��)�"J��x�-�����o�N�kUS��z��7\�����"E���z��˴[Z���{��G���� +4��*�;����}��n��fz�+K�A�2���-�p���s֩�y��t��'���%��L�(+ՏM��ݔ����C�L��қZ�NI�D�P3�j�ȏ�ڿH��*�F-�Sҍ{�')d�w��b�}��Ὧ,��{�˰~�ߝ�$��ޭoQJ�Z[ljm3����δ<b���,s�+"��b+[�_��%&�(���Z�^��<ǘ���T��Q.v�xH�p���[�h�\��Wg��Y>*��?w�P&��\��x�?#?5��5l�E�ndetǁЏI����{����ΰ� ��_��_�V�#�� >�/2�D)�N�(��P�ܢ��Ggn���L�U;��M��X"p^�p���:&K�Y͓7�B������r�pP�=���V|1v87��L���Ȑ�ㄭ�D6Q"�]�*R� +��X�H��d� =k�玉''o�N��f��$�>&�e'����r�t�W�6�rn��<�*�̊��'p�6�|/\���s��(>���C�����D$�;l�,M`�%�q��̄Gx7��pe����E�endstream +endobj +3394 0 obj << +/Type /Page +/Contents 3395 0 R +/Resources 3393 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 3357 0 R >> endobj 3396 0 obj << -/D [3389 0 R /XYZ 81.6937 661.5193 null] +/D [3394 0 R /XYZ 71.731 729.2652 null] >> endobj 3397 0 obj << -/D [3389 0 R /XYZ 484.5537 661.5193 null] +/D [3394 0 R /XYZ 81.6937 708.3437 null] >> endobj 3398 0 obj << -/D [3389 0 R /XYZ 71.731 633.4596 null] +/D [3394 0 R /XYZ 81.6937 708.3437 null] >> endobj 3399 0 obj << -/D [3389 0 R /XYZ 81.6937 617.6837 null] +/D [3394 0 R /XYZ 71.731 693.2354 null] >> endobj 3400 0 obj << -/D [3389 0 R /XYZ 81.6937 617.6837 null] +/D [3394 0 R /XYZ 81.6937 677.4595 null] >> endobj 3401 0 obj << -/D [3389 0 R /XYZ 71.731 615.5268 null] +/D [3394 0 R /XYZ 81.6937 677.4595 null] >> endobj 3402 0 obj << -/D [3389 0 R /XYZ 81.6937 599.7509 null] +/D [3394 0 R /XYZ 71.731 644.4185 null] >> endobj 3403 0 obj << -/D [3389 0 R /XYZ 81.6937 599.7509 null] +/D [3394 0 R /XYZ 213.707 607.721 null] >> endobj 3404 0 obj << -/D [3389 0 R /XYZ 71.731 584.6427 null] +/D [3394 0 R /XYZ 71.731 605.5642 null] >> endobj 3405 0 obj << -/D [3389 0 R /XYZ 81.6937 568.8667 null] +/D [3394 0 R /XYZ 71.731 590.6202 null] >> endobj 3406 0 obj << -/D [3389 0 R /XYZ 81.6937 568.8667 null] +/D [3394 0 R /XYZ 210.6668 569.4645 null] >> endobj 3407 0 obj << -/D [3389 0 R /XYZ 71.731 553.7585 null] +/D [3394 0 R /XYZ 76.7123 552.8269 null] >> endobj 3408 0 obj << -/D [3389 0 R /XYZ 81.6937 537.9826 null] +/D [3394 0 R /XYZ 128.5181 509.2815 null] >> endobj 3409 0 obj << -/D [3389 0 R /XYZ 81.6937 537.9826 null] +/D [3394 0 R /XYZ 76.7123 477.9031 null] >> endobj 3410 0 obj << -/D [3389 0 R /XYZ 71.731 504.9415 null] +/D [3394 0 R /XYZ 81.6937 459.9703 null] >> endobj 3411 0 obj << -/D [3389 0 R /XYZ 213.707 468.2441 null] +/D [3394 0 R /XYZ 81.6937 459.9703 null] >> endobj 3412 0 obj << -/D [3389 0 R /XYZ 71.731 466.0872 null] +/D [3394 0 R /XYZ 71.731 444.8621 null] >> endobj 3413 0 obj << -/D [3389 0 R /XYZ 71.731 451.1433 null] +/D [3394 0 R /XYZ 81.6937 429.0861 null] >> endobj 3414 0 obj << -/D [3389 0 R /XYZ 210.6668 429.9875 null] +/D [3394 0 R /XYZ 81.6937 429.0861 null] >> endobj 3415 0 obj << -/D [3389 0 R /XYZ 76.7123 413.3499 null] +/D [3394 0 R /XYZ 71.731 413.9779 null] >> endobj 3416 0 obj << -/D [3389 0 R /XYZ 128.5181 369.8046 null] +/D [3394 0 R /XYZ 81.6937 398.202 null] >> endobj 3417 0 obj << -/D [3389 0 R /XYZ 76.7123 338.4261 null] +/D [3394 0 R /XYZ 81.6937 398.202 null] >> endobj 3418 0 obj << -/D [3389 0 R /XYZ 81.6937 320.4934 null] +/D [3394 0 R /XYZ 71.731 396.0451 null] >> endobj 3419 0 obj << -/D [3389 0 R /XYZ 81.6937 320.4934 null] +/D [3394 0 R /XYZ 81.6937 380.2692 null] >> endobj 3420 0 obj << -/D [3389 0 R /XYZ 71.731 305.3851 null] +/D [3394 0 R /XYZ 81.6937 380.2692 null] >> endobj 3421 0 obj << -/D [3389 0 R /XYZ 81.6937 289.6092 null] +/D [3394 0 R /XYZ 71.731 365.161 null] >> endobj 3422 0 obj << -/D [3389 0 R /XYZ 81.6937 289.6092 null] +/D [3394 0 R /XYZ 81.6937 349.385 null] >> endobj 3423 0 obj << -/D [3389 0 R /XYZ 71.731 274.5009 null] +/D [3394 0 R /XYZ 81.6937 349.385 null] >> endobj 3424 0 obj << -/D [3389 0 R /XYZ 81.6937 258.725 null] +/D [3394 0 R /XYZ 71.731 321.3253 null] >> endobj 3425 0 obj << -/D [3389 0 R /XYZ 81.6937 258.725 null] +/D [3394 0 R /XYZ 81.6937 305.5494 null] >> endobj 3426 0 obj << -/D [3389 0 R /XYZ 71.731 256.5682 null] +/D [3394 0 R /XYZ 81.6937 305.5494 null] >> endobj 3427 0 obj << -/D [3389 0 R /XYZ 81.6937 240.7923 null] +/D [3394 0 R /XYZ 71.731 277.4897 null] >> endobj 3428 0 obj << -/D [3389 0 R /XYZ 81.6937 240.7923 null] +/D [3394 0 R /XYZ 81.6937 261.7138 null] >> endobj 3429 0 obj << -/D [3389 0 R /XYZ 71.731 225.684 null] +/D [3394 0 R /XYZ 81.6937 261.7138 null] >> endobj 3430 0 obj << -/D [3389 0 R /XYZ 81.6937 209.9081 null] +/D [3394 0 R /XYZ 71.731 246.6055 null] >> endobj 3431 0 obj << -/D [3389 0 R /XYZ 81.6937 209.9081 null] +/D [3394 0 R /XYZ 81.6937 230.8296 null] >> endobj 3432 0 obj << -/D [3389 0 R /XYZ 71.731 181.8484 null] +/D [3394 0 R /XYZ 81.6937 230.8296 null] >> endobj 3433 0 obj << -/D [3389 0 R /XYZ 81.6937 166.0724 null] +/D [3394 0 R /XYZ 374.7417 230.8296 null] >> endobj 3434 0 obj << -/D [3389 0 R /XYZ 81.6937 166.0724 null] +/D [3394 0 R /XYZ 71.731 228.6728 null] >> endobj 3435 0 obj << -/D [3389 0 R /XYZ 71.731 138.0128 null] +/D [3394 0 R /XYZ 81.6937 212.8969 null] >> endobj 3436 0 obj << -/D [3389 0 R /XYZ 81.6937 122.2368 null] +/D [3394 0 R /XYZ 81.6937 212.8969 null] >> endobj 3437 0 obj << -/D [3389 0 R /XYZ 81.6937 122.2368 null] +/D [3394 0 R /XYZ 96.3701 199.9454 null] >> endobj 3438 0 obj << -/D [3389 0 R /XYZ 71.731 107.1286 null] +/D [3394 0 R /XYZ 239.3308 161.0911 null] >> endobj -3388 0 obj << -/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F44 2183 0 R /F48 2196 0 R >> +1696 0 obj << +/D [3394 0 R /XYZ 71.731 153.953 null] +>> endobj +3393 0 obj << +/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R /F48 2196 0 R /F35 1752 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3441 0 obj << -/Length 2592 +/Length 2428 /Filter /FlateDecode >> stream -xڝY[�۸~ϯp��6p+��.��v��>l�)��) -ڢm!�dHrN���s�$�JR~5g8�ofd���W�V���)�I�ڝ�D�L��F˳�<ϙ���_�]�HM�zٯ�(RY����':_���Z�pt��w�g�Dk����<UM��jLzw9�Vյ�����7?���'6SE;|U�8M�It�z6�*�N�nG�+�l��d+�%�4�N$0��I�5�b��(]ͥ�- -��Q���̵J��Qbx����u��ݩG}H�iYbଢ�B���d_�UϣQd�����vc����9~\�ૡ���蚃�u��7I���#u:TH6I�K�~%�l��A�4F�L�(͌(��j8�R�;T�d��:��]�h���VZD*�Q�U�ϙ�����[~_���~�a��7J���m�dݖ��и����I��J2X8y>͂�at�m|o�)�sC�1�����w��*ģ���#5DLEb����E"?$�`�{�^dl7��+~}��絽�f�N�� � -�&�=k�D�|H�D����}��h�E�C�^�=L��BQ��4띘I�O���_���UÕ�8�_��i!��`�^������?���h�8z�u� �痶�ditk�ղ:_�Qw��L���� ��8T'ё�o&��7J�[��S�)F2�T8���� ��n�ޝDx�a����'dp5���c`����U6`���ў�&g�81���`jye2+ -��s�� -��"f@��dA_2�m��xuvm����6%�/��c��W�1�vX��VД�R�����O�F��Baxtx}>�e�`+�" ���?�Ӫ���j:����q��R~�p�z$�+!��L��(�L��p>�sK�Ze���Y�������oG[5�GH�S��a %F�l�kxf%In��Ћ�E�^D�;��ye�¬�J�-'���y���dΣ44�ufe�zHo�&p�:��#�7tx��:<�'+z0á0vX-�-������v����0qws �MjU��'��̚�v}j1������Sl@u;���H��a˓e���^D� AL9&�b�p]3.�П�_}5~߶�y>�_V��vW_>���QѬC���.�`��1�9�cΨ�z�!�)�aB|�Q���; 蘞��OL�ǒ)p�?��Z���M��Cw�Ea� �`;%$P- ��p�Ny�I �"Nv~�;��� _!?mk�4ZA"�d���np[�s>��Z� �Ր2$["^�P tn��^���$#�K��D�[�X���ٻ�㩚���kE/H]�>oP���!��>��g;P��<�&kI4��h�$��b:�z/�BΗ�[B�(�|<��Dp���,��6��|ȇjd���]y@��B���z~��n����e-�� mx�+�����ʖ�������]R�'|�6��� ��n+�g�.�/�ã���B۶�����iے��J�$�T � �����Ӱ�I,�J�/�ň��3s��6讋4�a/ !�� -����\���D�o,1[>b�� -Sx9�����[�E�+2Y�|�znT�p^����[b���yf���F��%����,=��.����8�'�É��T/��Fߌ�g�t�1:Z�$�K�?F����Yy��S�����K�����1�@�xIHQ�Mb8�`��D�P@�%��C+��|Q�G.!s��oh�`�+\Y@��q!�������ېh����𱇫:���j��(g���h�C��dU�|��֏9~I2����j�97��w�w�uaV>�2�;ś��6<0)�����c;�L�*�`�&I�Jr���-9@V -�Ι'i|&Ӻ����:Ki -�v/��8��jJT ܒ���1{�M��Ń�{.�a�]�|4���4�pR���~�k_��܁�5� � ��P��4�Q)9� 6I�l�_�A[�Y��7ر����E*��*�ۉ�Ƕxɪ'_��\ZԮ�zw?n �/� �����}L�eO�B(CM�P0o �����",�2�0oь�##}`D]� ǃ;�#q(�;�A8��� �S�I�]CIn�$��<9q�և��ϕ�\��Y��6��^Bbknugo������h��aW�5��}7��UICk���s��X���Q��TG�߫ί��*�z�i`�@��~7y6:Q�Γ���� -�8���FZ��0i���0X�KS���3&�<�]C�Y�-��̬��4�9�`ps>�((RHW�*V -�� tQ�����|���݊9��7��T�`��%q(� -3~'��'=$�^��*�Y2>���X�z O���Zn��ĉ3��b^� r�2t�)ȸ���)�Ke��&!��kHa��b�<t���뒍;�`����Χ�<`��U�c���Il!�"����7�9���)6��/W��X�����@�@�x��J�Y�I#b� ��vP�|�"�s����U����zX�@���{;}�+o���]y�'J�<���Cg��ڍ}���&7�"�`Q�<�����!��-�9�������x��HL�"]�$<��~ ��VNwendstream +xڝY[�۸~ϯp���U�Ե}J��"}�>�)ES�E�Bdɐ�=���~�J��fE���ι�D���U�Ə*�&j�?�WGl��]$([��Α>����Z���HU�z=��0�0/V�VA�D�������\�m�* �:����j��92����kU�f�����ud��,(rp���#ֳ�J��((� �W7��̉��1ɖ����,���C�(Y�$�e3���6ʃB�ʧN�z8Y^|VJ��n7*Y�]A�t��1�D���ٲyp��ĵkl��ya���G�`?Pa�Vi^qg����s4��\�gj��OvO2�0:�e�: �8ʾ-È�2<S#^Fˊ���F����oy�,. �3����k3�o��z��d� vJu�E!d��%���D^ѡZ�^��~`H{�_�r���eP�{;ۏ ^n��f��$$ۦ��a��&��]3���������+�{�˪���f˗Q0� "���Q_�K��8{��`Ɉq�g$}�IHp����2���@���da��+v96�S{���������7��&�<7 L��$��p�u/� +!1�h�{[plt�`;���9�U �![�j�1�ҵ�ڞ�I��6Ѻ�%�HV,�`v��/��v��'^rxcQ[S�1� ��q�z��tvlgOf���/Uۑa�`�#��g��U�}�X3�d�gAi9+r!�� +yn��3�d���qط] �i�����M�Hr^���DĭWӊY|������=$�C�<���D����ER{ۘ�'῞�|���ln��9�� ~F.��덣���J�����EB�u�����y�ʖ��e�ӈ#�{�-]�HOت�����V�Ɓγ���}�g�Wd� �A�ZVݱ-9��< �<I�p)��`��{0o���3{�h��A�����'F��2pT�%���2�Z��+�kZp��2Vҁ �6��Cop~�q&/\]��XI���+4Y�|.z��4��^�_�C,m�/HC�"ւz$n]{�l�s��p���:q͵^XC����pr�!����7�j��.�:&�DA��z��s$lG��f�q�O�O�4�6w���=�]Я������đg.,��t��q_����[�w<D���J(��sd���'\Yd��i$qpWsb)���M���u��"ɍJ8�B���e��&��<˩��%��9��SU�W;;��%ʼl�Y��PsmP��\�s�����"ž��G��I�I�`�)xeR�k&� +3&0|IQ�R�5�|� '%�Α'jl��\i�}W]�5�=�� NY�N5%/����ZZ����ŵ��XC���nα�P� a��Y"X�k������ŵqX�M J�ѵw�\+9�) 6Z9k�bV!�s��`�4+�fIJ��ф�`�T�`��ҵ�%�U�|��֢6������Ay_R��K�K7���OQ��;���D� +?-QQwm�0��a����2��`2'V�A�y���HZJ�4��"I���.g���[rM�\��/!�Y��ع����ð�����G��������Dvޞ�'u�]����X� �b�e��t<���39 +A�Bw������0��>:-R�.Xz���@�4CT�����"N]���(�Ii��,���L��� ��pK�3�a(�:K}�Etc�&0�w�aD�"�Le�p�JAݴK�D`�^e�F�o�p�0O��ӵ64trK��B���pP�{z�g��l��cag%<qe�Y8��'L��4�g��#��kϞ�C�T�]*�wn%,�P} ��K�ס�g[ߖt܃��Zs�ɧ����8���v�)��X#�B����o�s�C��)6���+sw � ���� T�ij'� O�D&-S��ڠ���jo�(-�* +����E��gR�ӫ�w�Z]G�':��J�$瑏���yq��h��ڌ�&�I�"ڏS�qyQ=��^�J���r;��4F����H���Ɨ ���q{�/�b��䈛�?��������2���X+{�0A9� �����E�M��ӓ��$B3��L?L������?lbhk�r)&�$��"�c��HGN8<�V˝/��'�C�Y����$��o۳�C%�-��)��g҇e˾��5�m��е5�/�l,䟭�2HEﺬ1��w'��He��n�`������O.���6V�$�� ,p��|d�5��M��E�>b���u]���=�@�X��M��)"�Ʈ�I�ŋ�<������{�L�E/��WĂ˖�W�4����]�m�IT�ZJ[1S��0 K����>�]�7�s��o�kz2���`'T^�)�UJƧ��=�>���l�f�Z�ƿч��"�<<J�o��d�����D�E1R"5c�?�����'���endstream endobj 3440 0 obj << /Type /Page /Contents 3441 0 R /Resources 3439 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3359 0 R -/Annots [ 3454 0 R ] +/Parent 3357 0 R +/Annots [ 3445 0 R ] >> endobj -3454 0 obj << +3445 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [289.2129 576.0748 336.4379 586.9787] +/Rect [289.2129 686.2616 336.4379 697.1655] /Subtype /Link /A << /S /GoTo /D (parameters) >> >> endobj 3442 0 obj << /D [3440 0 R /XYZ 71.731 729.2652 null] >> endobj +470 0 obj << +/D [3440 0 R /XYZ 198.4659 708.3437 null] +>> endobj 3443 0 obj << -/D [3440 0 R /XYZ 71.731 741.2204 null] +/D [3440 0 R /XYZ 71.731 699.7062 null] >> endobj 3444 0 obj << -/D [3440 0 R /XYZ 81.6937 708.3437 null] +/D [3440 0 R /XYZ 96.3235 689.4147 null] >> endobj -3445 0 obj << -/D [3440 0 R /XYZ 81.6937 708.3437 null] +1697 0 obj << +/D [3440 0 R /XYZ 71.731 630.4708 null] +>> endobj +474 0 obj << +/D [3440 0 R /XYZ 233.4943 597.1606 null] >> endobj 3446 0 obj << -/D [3440 0 R /XYZ 374.7417 708.3437 null] +/D [3440 0 R /XYZ 71.731 588.5231 null] >> endobj 3447 0 obj << -/D [3440 0 R /XYZ 71.731 706.1869 null] +/D [3440 0 R /XYZ 436.1187 578.2316 null] >> endobj 3448 0 obj << -/D [3440 0 R /XYZ 81.6937 690.4109 null] +/D [3440 0 R /XYZ 71.731 565.1806 null] >> endobj 3449 0 obj << -/D [3440 0 R /XYZ 81.6937 690.4109 null] +/D [3440 0 R /XYZ 71.731 550.2367 null] >> endobj 3450 0 obj << -/D [3440 0 R /XYZ 96.3701 677.4595 null] +/D [3440 0 R /XYZ 300.5965 538.6799 null] >> endobj 3451 0 obj << -/D [3440 0 R /XYZ 239.3308 638.6052 null] ->> endobj -1696 0 obj << -/D [3440 0 R /XYZ 71.731 631.4671 null] ->> endobj -470 0 obj << -/D [3440 0 R /XYZ 198.4659 598.1569 null] +/D [3440 0 R /XYZ 71.731 499.1283 null] >> endobj 3452 0 obj << -/D [3440 0 R /XYZ 71.731 589.5194 null] +/D [3440 0 R /XYZ 71.731 427.2329 null] >> endobj 3453 0 obj << -/D [3440 0 R /XYZ 96.3235 579.2279 null] +/D [3440 0 R /XYZ 71.731 401.3301 null] >> endobj -1697 0 obj << -/D [3440 0 R /XYZ 71.731 520.284 null] +3454 0 obj << +/D [3440 0 R /XYZ 118.5554 362.766 null] >> endobj -474 0 obj << -/D [3440 0 R /XYZ 233.4943 486.9738 null] +1698 0 obj << +/D [3440 0 R /XYZ 71.731 289.1435 null] +>> endobj +478 0 obj << +/D [3440 0 R /XYZ 226.7368 250.8655 null] >> endobj 3455 0 obj << -/D [3440 0 R /XYZ 71.731 478.3363 null] +/D [3440 0 R /XYZ 71.731 242.0427 null] >> endobj 3456 0 obj << -/D [3440 0 R /XYZ 436.1187 468.0448 null] +/D [3440 0 R /XYZ 71.731 222.1682 null] >> endobj 3457 0 obj << -/D [3440 0 R /XYZ 71.731 454.9938 null] +/D [3440 0 R /XYZ 71.731 198.4222 null] >> endobj 3458 0 obj << -/D [3440 0 R /XYZ 71.731 440.0499 null] +/D [3440 0 R /XYZ 71.731 191.2841 null] >> endobj 3459 0 obj << -/D [3440 0 R /XYZ 300.5965 428.4931 null] +/D [3440 0 R /XYZ 349.6963 180.4895 null] >> endobj 3460 0 obj << -/D [3440 0 R /XYZ 71.731 388.9414 null] ->> endobj -3461 0 obj << -/D [3440 0 R /XYZ 71.731 317.0461 null] ->> endobj -3462 0 obj << -/D [3440 0 R /XYZ 71.731 291.1433 null] ->> endobj -3463 0 obj << -/D [3440 0 R /XYZ 118.5554 252.5792 null] ->> endobj -1698 0 obj << -/D [3440 0 R /XYZ 71.731 178.9567 null] ->> endobj -478 0 obj << -/D [3440 0 R /XYZ 226.7368 140.6787 null] +/D [3440 0 R /XYZ 71.731 160.3999 null] >> endobj -3464 0 obj << -/D [3440 0 R /XYZ 71.731 131.8559 null] +1699 0 obj << +/D [3440 0 R /XYZ 71.731 129.5157 null] >> endobj 3439 0 obj << -/Font << /F33 1398 0 R /F27 1298 0 R /F35 1752 0 R /F23 1290 0 R /F32 1306 0 R /F44 2183 0 R /F48 2196 0 R >> +/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F32 1306 0 R /F44 2183 0 R /F48 2196 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3467 0 obj << -/Length 1894 +3463 0 obj << +/Length 1687 /Filter /FlateDecode >> stream -x��YY��D~ϯ�i���}�S ��`Q��_��l�_OUW����J(R�puu�Wg�+��$`���g��_m��j��{X����̉��{��!V�b��v���Y��*��Q����߽W���[ox�{���2���а_�{��f��]��\�q�Ë�w��HX�� W%�Ne��LF���2��HxwP Bz�Rj]|�}��}���#�\�|4*���D�Zޗ*���#}��n����k�R����-�"�~�jw���{I�[����� $��N�A���t�����ޭ��N����M�Y�A�@y�A[U��F,L3�π0V8��h$Ya�r��F�4���S�f��q,7�Rp�ۭ�H��� ��2� i��s��Gs{rޖ�M�wMI�K&�-�S�xR�[�ƨ���8%!x2��._э���[���Pl��+dX+M���3?���F����&�R����[�w��6@�����@ՠ{>N���'+��x���?6���BԳ̓`# -�'{�#�,=k �@�Y�fȇ�"z���(MSKK��D�0މ\˒D�����ް�D����Tڢ0D`��3q�*�v3j9i�]��P��U J��Y�*imQԋ��9�Uo�e��ظٰb֟� -@�A�h�|�E�1�&��s�� ��^�P���8`)�����D�9>��i4�B!�jH���qt�nGtz�Q0A�/n�[0sY�!D̽N��Ҫ��R��t��+s�Ӈ�m����HrF˟�V&k�X���{��`ypą�!�'ix]ۑ� uO��zz.� �,�2���)!N���7f\�h�$��T��S�l����iq��jd�$ܨ�h.e,���i ��~ !S)}K�)��@&N���h 3w�I��.V o�C�7�� u3!Za�mZ��Ů�* !|�E"���Kh9���X}ب����)e��Ku� 8�����yH{�`� �`2�Eo�4��ث��n�fo���"�f+���>�����|�9�/[�AˇyXpS�`�)��\O�j[��.��U�=�fa����Fx�S�U7���@��WS�/o�@P�K�ŝ��kP_�k�����uo^u!7X*�V˷��� -�>F��~��"ϖG�z,�vEZb1�:����a�iٸ�I`���]�TF��n8�^&�Pݛ�v&:�GSEz�ɟ���=,VE9]M�4E�鬨Ť�ϘKg�S����E��xGD�x�ݩ���s]�����v�b7�D%����fX;�÷ ��k����{�ӻ7������D�{�z~��[/U~���-��̵6jְ�F�;әͼx�M젗mL�M�[�qa�ѹ�ci̯�H<ai�������#B����ٹ�_2?����r�z��q$P�fOkP�8��t��j�jHI^��@yE��}�� -ٷ -� �Aꂲ�^�>���ˊZ��"M�B��6~���m���ˏs^���T��}S+�xJ��`-��C��0 -��x�8^A�Q�z�O�8�w�wj{��n��Z&i�;a߬��5�/ ē��i>Bs���P�_��/�&���������l�{��D�� ހ����E?#Z3�W�rT�h9��Ov�q`������c�3�킋J �1��^�t\E�������TT��a^7��A&�b�����7�x���)5�� ��t��!�l4������#d��K;������1��T��ظ`�(a"�����9^�����mr�c�u�.%$j��JN%�?�c�Д�%ԃ�=���L�g���L/���Y�_�_+�/����� -.Zd������dZ����wζ�TÔ����r�qjFs��T�S�Y6rB�����\��ZN�endstream +x��XY��6~�_a�Ke fE��[�9ТI�t�<4}�e��Õ�l���CuX�Ӆ��$��9�r��+~tP80��0�c�8��W��� 5,ó�3������"��_��W�m���U�0z4\������$E��0϶���]��I�$? �E}�'IS������W��r� H��E[����Yр0����]�'��6�!��+����V��cY 1;��%��@���@q���D)#@��ͨ��&��-�n���Y�SN�K܀ ���S�4}\o�Y�8���l�<�<�)@S�;�U��t��S�S��\�7K\�<W�� +$�5�k�Y":�~��\�K�I��J>�6��L�|���$�"� �%#FҔ�� +��ąP�o<;��R���m�q���~�(#�G]-�+����� ��G$d�� +�����>����ڳx&�g��G��5�8��\��i� �Cj�����~k���H�(�'^r)�h���(x|�^����p!��I��s���%���)O�B��;�?>3��YV�0s��4&u�H�S{��1/��`Tו��,�QoV�2��"��2�9��Ӟ�D �&�bSf�a/ԩyPǪN"Nx�����V��%�z�X-)��c�R )/�e�W�Zu�|�ɱ>۞��Q�����~Z��b[��[C���6���t�)i�jwV��m�Y����?�=Ϫ�V )�l�B/#ur������T1�a��W��iS@��J�����G�1���.m=[T2}�UD� +� e�܃��$�T�͂�)��I��T���kq���p3��6&��0�&���5�!��I��V�,�)+��i�:pت���x-�b�jǚ��u_������~{���o_�D�JrYW}��=��W��G�=����(rd��Zɶ�(L�!vIG�e1��F��4-�붟�<�&����ScHy���?�}��<B=����7�����]���h�=PO�E����tz�����9\I�����S�@�E�A|�K������D#5�uϱ��z��%�;�r)3��?�2��]��:��ï}a�6u�$�,rQ5�U6j$} +4S�EW�'q��K��s�H������-� �xֺ��d��8jKy�WM�z9�p!���W����aR&�.R�A������ d���Эř��2Vw\.���F?b�ê/q��k�V����fHE���v?�����r��=~�Q� ^\w]I^�'���K��h��N��y�¤���f�\�^�����KnpTr~�yS$���p�s�=[~�,�vn&�17v~�\A�Sq~6�c�B�w�ˣ/q>&-���]��]H�J�� +�<�X��9ԝ� +���%.��p�~��{�~.�no��}lJ�MVl�ex?_����Y[Qλg� O�R��kJ�g�%�QH�z��/q>-�.��7X=x��h(<����l�<�S�)��`�ڪW��yi4����0{jKG��x�G�zO�� ר +��n�]px�����'���Ox����:� i�9wJ��ٛ��O��s��ȀL�EZ����F� �[Q�@|�9��[�M�m��4�G�]��[�;����f��X���`�X~��{����������k��Bb�(j%)m�;��B�;��endstream endobj -3466 0 obj << +3462 0 obj << /Type /Page -/Contents 3467 0 R -/Resources 3465 0 R +/Contents 3463 0 R +/Resources 3461 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3359 0 R -/Annots [ 3474 0 R 3475 0 R ] +/Parent 3357 0 R +/Annots [ 3466 0 R 3467 0 R 3504 0 R ] >> endobj -3474 0 obj << +3466 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.7348 558.676 111.8612 569.58] +/Rect [70.7348 681.4057 111.8612 692.3096] /Subtype /Link /A << /S /GoTo /D (gloss-product) >> >> endobj -3475 0 obj << +3467 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [409.6821 558.676 469.7956 569.58] +/Rect [409.6821 681.4057 469.7956 692.3096] /Subtype /Link /A << /S /GoTo /D (classifications) >> >> endobj +3504 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [382.851 136.4492 437.147 147.3532] +/Subtype /Link +/A << /S /GoTo /D (product-group-controls) >> +>> endobj +3464 0 obj << +/D [3462 0 R /XYZ 71.731 729.2652 null] +>> endobj +482 0 obj << +/D [3462 0 R /XYZ 179.4984 706.1179 null] +>> endobj +3465 0 obj << +/D [3462 0 R /XYZ 71.731 697.2951 null] +>> endobj 3468 0 obj << -/D [3466 0 R /XYZ 71.731 729.2652 null] +/D [3462 0 R /XYZ 238.5875 658.6559 null] >> endobj 3469 0 obj << -/D [3466 0 R /XYZ 71.731 741.2204 null] +/D [3462 0 R /XYZ 71.731 625.9885 null] >> endobj 3470 0 obj << -/D [3466 0 R /XYZ 71.731 718.3063 null] +/D [3462 0 R /XYZ 411.9612 614.8203 null] >> endobj 3471 0 obj << -/D [3466 0 R /XYZ 71.731 695.3923 null] +/D [3462 0 R /XYZ 71.731 583.8365 null] >> endobj 3472 0 obj << -/D [3466 0 R /XYZ 71.731 657.3699 null] +/D [3462 0 R /XYZ 71.731 568.8278 null] >> endobj -1699 0 obj << -/D [3466 0 R /XYZ 71.731 626.4857 null] +3473 0 obj << +/D [3462 0 R /XYZ 71.731 553.8839 null] >> endobj -482 0 obj << -/D [3466 0 R /XYZ 179.4984 583.3883 null] +3474 0 obj << +/D [3462 0 R /XYZ 71.731 542.9897 null] >> endobj -3473 0 obj << -/D [3466 0 R /XYZ 71.731 574.5655 null] +3475 0 obj << +/D [3462 0 R /XYZ 91.6563 525.1565 null] >> endobj 3476 0 obj << -/D [3466 0 R /XYZ 238.5875 535.9263 null] +/D [3462 0 R /XYZ 71.731 513.037 null] >> endobj 3477 0 obj << -/D [3466 0 R /XYZ 71.731 503.2588 null] +/D [3462 0 R /XYZ 71.731 500.0856 null] >> endobj 3478 0 obj << -/D [3466 0 R /XYZ 411.9612 492.0906 null] +/D [3462 0 R /XYZ 91.6563 484.3097 null] >> endobj 3479 0 obj << -/D [3466 0 R /XYZ 71.731 461.1069 null] +/D [3462 0 R /XYZ 71.731 472.1902 null] >> endobj 3480 0 obj << -/D [3466 0 R /XYZ 71.731 446.0982 null] +/D [3462 0 R /XYZ 71.731 459.2388 null] >> endobj 3481 0 obj << -/D [3466 0 R /XYZ 71.731 431.1542 null] +/D [3462 0 R /XYZ 91.6563 443.4629 null] >> endobj 3482 0 obj << -/D [3466 0 R /XYZ 71.731 420.2601 null] +/D [3462 0 R /XYZ 71.731 431.3434 null] >> endobj 3483 0 obj << -/D [3466 0 R /XYZ 91.6563 402.4269 null] +/D [3462 0 R /XYZ 71.731 420.4492 null] >> endobj 3484 0 obj << -/D [3466 0 R /XYZ 71.731 390.3074 null] +/D [3462 0 R /XYZ 91.6563 402.616 null] >> endobj 3485 0 obj << -/D [3466 0 R /XYZ 71.731 377.356 null] +/D [3462 0 R /XYZ 71.731 390.4966 null] >> endobj 3486 0 obj << -/D [3466 0 R /XYZ 91.6563 361.58 null] +/D [3462 0 R /XYZ 71.731 377.5451 null] >> endobj 3487 0 obj << -/D [3466 0 R /XYZ 71.731 349.4606 null] +/D [3462 0 R /XYZ 91.6563 361.7692 null] >> endobj 3488 0 obj << -/D [3466 0 R /XYZ 71.731 336.5091 null] +/D [3462 0 R /XYZ 71.731 349.6497 null] >> endobj 3489 0 obj << -/D [3466 0 R /XYZ 91.6563 320.7332 null] +/D [3462 0 R /XYZ 71.731 336.6983 null] >> endobj 3490 0 obj << -/D [3466 0 R /XYZ 71.731 308.6138 null] +/D [3462 0 R /XYZ 91.6563 320.9224 null] >> endobj 3491 0 obj << -/D [3466 0 R /XYZ 71.731 297.7196 null] +/D [3462 0 R /XYZ 71.731 308.8029 null] >> endobj 3492 0 obj << -/D [3466 0 R /XYZ 91.6563 279.8864 null] +/D [3462 0 R /XYZ 71.731 295.8515 null] >> endobj 3493 0 obj << -/D [3466 0 R /XYZ 71.731 267.7669 null] +/D [3462 0 R /XYZ 91.6563 280.0756 null] >> endobj 3494 0 obj << -/D [3466 0 R /XYZ 71.731 254.8155 null] +/D [3462 0 R /XYZ 71.731 267.9561 null] >> endobj 3495 0 obj << -/D [3466 0 R /XYZ 91.6563 239.0396 null] +/D [3462 0 R /XYZ 71.731 257.0619 null] >> endobj 3496 0 obj << -/D [3466 0 R /XYZ 71.731 226.9201 null] +/D [3462 0 R /XYZ 91.6563 239.2287 null] >> endobj 3497 0 obj << -/D [3466 0 R /XYZ 71.731 213.9687 null] +/D [3462 0 R /XYZ 71.731 227.1093 null] >> endobj 3498 0 obj << -/D [3466 0 R /XYZ 91.6563 198.1928 null] +/D [3462 0 R /XYZ 71.731 216.2151 null] >> endobj 3499 0 obj << -/D [3466 0 R /XYZ 71.731 186.0733 null] +/D [3462 0 R /XYZ 91.6563 198.3819 null] >> endobj 3500 0 obj << -/D [3466 0 R /XYZ 71.731 173.1219 null] +/D [3462 0 R /XYZ 71.731 186.2624 null] >> endobj 3501 0 obj << -/D [3466 0 R /XYZ 91.6563 157.3459 null] +/D [3462 0 R /XYZ 71.731 173.311 null] >> endobj 3502 0 obj << -/D [3466 0 R /XYZ 71.731 145.2265 null] +/D [3462 0 R /XYZ 91.6563 157.5351 null] >> endobj 3503 0 obj << -/D [3466 0 R /XYZ 71.731 134.3323 null] +/D [3462 0 R /XYZ 71.731 150.3969 null] >> endobj -3504 0 obj << -/D [3466 0 R /XYZ 91.6563 116.4991 null] +1700 0 obj << +/D [3462 0 R /XYZ 71.731 137.4455 null] >> endobj -3465 0 obj << -/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> +3461 0 obj << +/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj 3508 0 obj << -/Length 2088 +/Length 2403 /Filter /FlateDecode >> stream -xڭYK�� �ϯp�e�6#�z�63��$�MM�zwIj��V�,uI�Nf}����g��������H�M�?�I�H4<T&T����&`��7�!{��Ǡ��7�N�M&�Xś��&�i�I�i$�͡����K�ڛv�WQ�Ղ��sY����D����oeU�������t"�$��У�:�d���� :ԉ��睔rkڮl�t��Y Bdk��� ��hn�, -�d�ُ9.�̤��XrQ�_ͱ|�J���R_h��NFN}Kh��ٿ��Mq9���S��r��65�����v�6/�h��^��*қ�R"�!��5yϫ�/y˂���;ӳ��uZ��T�+63š�?�|������T��o�y�?�$����h�_w -�W�O��g���%��V���v�)��o�|ſ���e9y�5�UY�~����msy�mz<��y|h�m��^;c�~өi��M����cm�z�~[�cɍ�q�}�k�p�E�c!#��Zx�-��P�)@�!�� -�{�:2�::Q�E%%��$��B��ܸ_��S��b��1��l�@HF��a��p��ؽ����2 �?.�Y�ZB� a�L�g~�Ǩ��:�JJ1�f"�u�*���u��=߾�TJ����E@ yS��y�3��Ɨ��.�l��}�tf�������y�L�'����W��b�HO��4B��C���u/���/�Ta�{�d_��]�`�!g9#z�S����myz鯛��;f�n�ѡh�_5��o0�M�Q���Xo�:?�oi -|�s)Lwl�WNn�nݟ�)�T(S.ĹA9B����������0Ho�d����B��W}�&�On���=�ۙb��`�;�� -�i��wrۛ���0��`t*1�S�G���RC���wu�J���5�צ�>�W^:=�r*)�#B��d�(��mT�$I�#��C[�r$b� ��D��UҤ� N� T�٩�PrSU���Qn����h�i�<l h��e?�c��a��0ͮt��V:�7�:;5�ŹGih[ux[�Gݑn�m��D:�����6' �c�����F��9�t���P��{����Q��|�m���h�q��5f,�`\�J����Gz;V��3-�pڃ�����#*�S�i�%T���/ϳo/�9Vyו��v�[�l��yZH�6y� �9����펁qS��H���(��3=g��ӧ:tS�EٽV�W�r�uY+�A��H�1 ~�^�x`���@�i���h+�lŠ��kɡe]�������a��S��bWv4�c8"� ->M�g`��� �v> ^C^��| ��`Z`C<�Ծ�j%`�ϜW|{%���{�+S1�r��L����BUH�H���2�eB� ��l�����pp��r���h�]��-3�L���W#��Z�Oͥ���^� -�&����헛���؝w�%���f�COErC�� M�ɗVt��W������J�vI't|�g�'e�H�M��t��rzm첾oK���`yw�A�ЧZ.6d��ow��H������n��=YY���#x�O�����|t�?��5�˔�9�+�_�����c^ ->��G��;��h�+:�YH����v8�5L��OEt�����9L����`�Ni�nn28��ql+�L? ���n��J�=�:��bz�+��O��!��禌� �&g���㚓4�S5���07� �1�c���#�%�+Y�z�ꉘw��3�I%f g�֝���^ٰ�j���P��<C�G4��pEo�4����L��3��`H ����~`�R���N��t<(���ax��p���woF�˛\��a�ϑ�l���F�PK���f���;����/��B�F�J�:Z?:�~�Z6�^�;n�I%arG�C����o���D��?L.y�=g���E���2�E�PD�^������Yn+ײ�B�$Y���n#��,JJ����d^3��D��_a����<j?��|Ԃۊa��i���;:8�=ܼaW�� S��8�������0R��_��������"�?-�endstream +xڥM�������.k�جH}����ٶӴ;'9�=�Y��&���n_~}�>mo��� � -W��*�"�aP�PQ�V��;ou��w�IvL�}ܿ��w��JE�h�?�������W" e����\?�f��h7;zk_��!?�u�^�'}��~-�*��{��w��Nx��"M@�] �\G�d � R��ݮ�$�HE_B�fq�~n��#�����F�����(o���C�QK`��v�R�a��$@L{; ӂ� u�Q�>.�������*�* +S�(/]v�T��z3^�$�z"2IE�ɢ���T���0�*�PTš#;�K)߆Fnhj��;�͙f�+���4.��:wؚ���4��9!+�<�Y�˳�"��T��^ +�H�D>�Ҁꎗ,�H��҂�o��]f��^r�"w�=����fֈ����:k�<�v�ͨ|��a����;f�Tt�o�qA�7�� +3ި§���L��y�'(�����ЖNΪ{��O=�=�y��r�o|@��s�������/�����ɀ�O,$�������*�x� +?S�H�&����8�&�o�+�-\�2d_aJ�S���?X9����!�Ї�l�1��n@ +�����/���[�i����Y�$I�')�^�~]O�H@ �ȰD@���,��6���"���p!� %�Jn��P�u��a�*q0�zB�P�` b�4��a�/��́�� ���1�f����&p�!��;��C ?�.e$k\��Ώ +�.=��M��sF逺�Q㳓�!� +�H�@�\룸����}����_�����nj����B)5��q���CU~�%.�{�����9|`FE{L<nx k3��q���U�*Ӻ��x0���e����B�6���R�p�mmN̛�#M~6��*u�qb�>�A��祾TٛI9Ⱥ��kN$�(�~�{^E�����SӾm�p-l +E��h��в�K\�z���� ���)Ơؕ�p�#����Xd�WBM�*���� �!/�d��Ȩ` ��R;=�J��?s^��hP>d��9^���Mǀ���aK�"���@X>留)��p����z ��Q_�������|����BO$�\��w1�϶��j��\;*9��//�$5U��n��cR�j��/v4R5c�X$7D�oM)�W�^�h���ۥ6�{$0f��_�K�M���떦N���ڒ*'X��&�cڪ�bB�_�~�����rj Z��}K4�*tT��?�����F��ɵM�3�7O�>��9�+wY�iJ��P���`,���P�Oab�Af�����?Q�ѕ�{���r���EE�(�n i6�c��Dc; +8VL2�����RZ�ٸ�$�S�Rz�����ŕ6jwoJ9ځ��ma���v�ɖ4�c5�摞����1 �:���3�%��+Y�'���4x g���J�M +b�֝���^8�#�B�.yt5Pз�#05yħ��3�8��t�q䨱=�N��� �z�,�c�����{�Y�t���)ll.�ݙqK|hE�,�=ҙM8>��!jət�Ydn��d�>��y� ^�V*M�'��K�%� ��M����[�R�q?�m� �qC�dǝ��Hșl��w�s��oYZ)=P$��}�j7$[���z�|�t�=�J=��R=�a�m`Z��BI���_�:*���"���H ��9G��-lj�m���L�@��,�#fܜag7>�%"���\�#W�[���=ծ��K�\���0��k��d��vH��� l� |8�uǷu�����T�����ȤW38����-��Og�?���~��̟�[B����j�谘1e�4��/�b�K���KcQѵ�x�3��q]s��p�`5Â����S�{��"m;�n����M �YM��n�e��`}��%e�v��b5P�Gsj��n*��%�7�Ծ_��cۖ���r�, ���������x܇fb�Pe:�菨�%P� q�`<J0��Q��ě��vnp!�+D`���?�\�w�V�%LF}>RUx�\�-�(�R +��v��A$ ?��I-�p�� ��yf�i!��p&>�� +!�+`��0�6�!pt!�%���p���T�yS�I�{�n^٧��� ���D(N40����A���$%,��N���7@`��{{�^�w�T�gO�6Eh�. _x2��-���3j��r �7M�4����1 +J���?QA�`RsR>��)Kw���}6� AZ��_Ƀk��_ʃ�=��|���8'��a~5�V�|��K�?S�۹�j=���f������>������i�:N�O�����R�endstream endobj 3507 0 obj << /Type /Page /Contents 3508 0 R /Resources 3506 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3359 0 R -/Annots [ 3516 0 R 3530 0 R 3534 0 R 3536 0 R 3538 0 R ] +/Parent 3357 0 R +/Annots [ 3523 0 R 3527 0 R 3529 0 R 3531 0 R 3536 0 R ] >> endobj -3516 0 obj << +3523 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.851 628.4783 437.147 639.3822] +/Rect [471.8565 589.9181 524.2196 600.822] /Subtype /Link -/A << /S /GoTo /D (product-group-controls) >> +/A << /S /GoTo /D (components) >> >> endobj -3530 0 obj << +3527 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [471.8565 474.3363 524.2196 485.2402] +/Rect [240.2078 294.8645 292.5709 305.7685] /Subtype /Link /A << /S /GoTo /D (components) >> >> endobj -3534 0 obj << +3529 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [240.2078 179.2828 292.5709 190.1867] +/Rect [225.1145 277.6491 271.9385 287.8357] /Subtype /Link -/A << /S /GoTo /D (components) >> +/A << /S /GoTo /D (versions) >> >> endobj -3536 0 obj << +3531 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [225.1145 162.0673 271.9385 172.2539] +/Rect [234.6782 259.7163 281.5022 269.903] /Subtype /Link -/A << /S /GoTo /D (versions) >> +/A << /S /GoTo /D (milestones) >> >> endobj -3538 0 obj << +3536 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [234.6782 144.1345 281.5022 154.3212] +/Rect [145.4437 137.7338 197.249 148.6377] /Subtype /Link -/A << /S /GoTo /D (milestones) >> +/A << /S /GoTo /D (groups) >> >> endobj 3509 0 obj << /D [3507 0 R /XYZ 71.731 729.2652 null] >> endobj +486 0 obj << +/D [3507 0 R /XYZ 268.9457 707.8408 null] +>> endobj 3510 0 obj << -/D [3507 0 R /XYZ 71.731 718.3063 null] +/D [3507 0 R /XYZ 71.731 697.4758 null] >> endobj 3511 0 obj << -/D [3507 0 R /XYZ 71.731 708.2442 null] +/D [3507 0 R /XYZ 71.731 685.5594 null] >> endobj 3512 0 obj << -/D [3507 0 R /XYZ 91.6563 690.4109 null] +/D [3507 0 R /XYZ 71.731 680.5781 null] >> endobj 3513 0 obj << -/D [3507 0 R /XYZ 71.731 665.34 null] +/D [3507 0 R /XYZ 89.6638 659.8209 null] >> endobj 3514 0 obj << -/D [3507 0 R /XYZ 91.6563 649.5641 null] +/D [3507 0 R /XYZ 116.5027 659.8209 null] >> endobj 3515 0 obj << -/D [3507 0 R /XYZ 71.731 642.426 null] ->> endobj -1700 0 obj << -/D [3507 0 R /XYZ 71.731 629.4745 null] +/D [3507 0 R /XYZ 317.6563 659.8209 null] >> endobj -486 0 obj << -/D [3507 0 R /XYZ 268.9457 592.259 null] +3516 0 obj << +/D [3507 0 R /XYZ 71.731 657.6641 null] >> endobj 3517 0 obj << -/D [3507 0 R /XYZ 71.731 581.894 null] +/D [3507 0 R /XYZ 89.6638 641.8881 null] >> endobj 3518 0 obj << -/D [3507 0 R /XYZ 71.731 569.9777 null] +/D [3507 0 R /XYZ 131.1675 641.8881 null] >> endobj 3519 0 obj << -/D [3507 0 R /XYZ 71.731 564.9963 null] +/D [3507 0 R /XYZ 71.731 639.7313 null] >> endobj 3520 0 obj << -/D [3507 0 R /XYZ 89.6638 544.2391 null] +/D [3507 0 R /XYZ 89.6638 623.9554 null] >> endobj 3521 0 obj << -/D [3507 0 R /XYZ 116.5027 544.2391 null] +/D [3507 0 R /XYZ 71.731 621.7986 null] >> endobj 3522 0 obj << -/D [3507 0 R /XYZ 317.6563 544.2391 null] +/D [3507 0 R /XYZ 89.6638 606.0226 null] >> endobj -3523 0 obj << -/D [3507 0 R /XYZ 71.731 542.0823 null] +1701 0 obj << +/D [3507 0 R /XYZ 71.731 575.0389 null] +>> endobj +490 0 obj << +/D [3507 0 R /XYZ 226.1083 535.7661 null] >> endobj 3524 0 obj << -/D [3507 0 R /XYZ 89.6638 526.3063 null] +/D [3507 0 R /XYZ 71.731 525.4011 null] +>> endobj +1702 0 obj << +/D [3507 0 R /XYZ 71.731 432.8521 null] +>> endobj +494 0 obj << +/D [3507 0 R /XYZ 145.8713 374.9292 null] >> endobj 3525 0 obj << -/D [3507 0 R /XYZ 131.1675 526.3063 null] +/D [3507 0 R /XYZ 71.731 367.5769 null] >> endobj 3526 0 obj << -/D [3507 0 R /XYZ 71.731 524.1495 null] ->> endobj -3527 0 obj << -/D [3507 0 R /XYZ 89.6638 508.3736 null] +/D [3507 0 R /XYZ 71.731 308.8122 null] >> endobj 3528 0 obj << -/D [3507 0 R /XYZ 71.731 506.2168 null] ->> endobj -3529 0 obj << -/D [3507 0 R /XYZ 89.6638 490.4408 null] ->> endobj -1701 0 obj << -/D [3507 0 R /XYZ 71.731 459.4571 null] ->> endobj -490 0 obj << -/D [3507 0 R /XYZ 226.1083 420.1843 null] +/D [3507 0 R /XYZ 71.731 290.8795 null] >> endobj -3531 0 obj << -/D [3507 0 R /XYZ 71.731 409.8193 null] +3530 0 obj << +/D [3507 0 R /XYZ 71.731 273.664 null] >> endobj -1702 0 obj << -/D [3507 0 R /XYZ 71.731 317.2703 null] +1703 0 obj << +/D [3507 0 R /XYZ 71.731 255.7313 null] >> endobj -494 0 obj << -/D [3507 0 R /XYZ 145.8713 259.3474 null] +498 0 obj << +/D [3507 0 R /XYZ 373.7867 217.7985 null] >> endobj 3532 0 obj << -/D [3507 0 R /XYZ 71.731 251.9951 null] +/D [3507 0 R /XYZ 71.731 207.4335 null] >> endobj 3533 0 obj << -/D [3507 0 R /XYZ 71.731 193.2304 null] +/D [3507 0 R /XYZ 100.9239 197.6739 null] +>> endobj +3534 0 obj << +/D [3507 0 R /XYZ 268.3242 197.6739 null] >> endobj 3535 0 obj << -/D [3507 0 R /XYZ 71.731 175.2977 null] +/D [3507 0 R /XYZ 71.731 177.5843 null] >> endobj 3537 0 obj << -/D [3507 0 R /XYZ 71.731 158.0822 null] ->> endobj -1703 0 obj << -/D [3507 0 R /XYZ 71.731 140.1495 null] +/D [3507 0 R /XYZ 71.731 133.7487 null] >> endobj 3506 0 obj << -/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> +/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3541 0 obj << -/Length 3059 +3540 0 obj << +/Length 2915 /Filter /FlateDecode >> stream -xڽˎ��>_a�� ��"E�1���� 6;�6�C&�R���aH���~}�XE����|Y|T��X/Zn"��M*E�G�B%Fm��hs��/�$O��]8���~��M.�D%�ǧ��"�FY�Ic%2#��c����Sq���n�L��}ʶ���uw$����i��=����G��ĩ�3��*�~�-�*�H-b�($�7JE�#"1~@F�mƱ>vDt�w*���3u?��D�f$����+���a��7 xmv*Ric1���*o�SE�oJş�z����n@M�sq�q���ꑾ}����Z��i�rm�/���C5��\p&�(ϣ#m�� ��3{O�Î�1Z�e>�O.�ȍ���C�S�w�>���'�/�qDG�W�gb u��W� -�X�£u��ם9�x�;��cC�{Ѷ�|p��n��0����\Y�9 ��H���~��b��4G:�®$�P��P&�W�d���ۣ�]��W�E���5,>ޙmQw�}��ԏ 9��F~��f���X����o��h����xO��;4�Ғ�c��N��wC��{�b��iFe��RX����0�%<�r��j�n,NK��\ m ���ՠ{j�Uum>�N�֛$�D��u��sv�$2��� )�in��P�uܬ�H�� � �iaX]V��><�� -��TNǤ�=���A����<��<��!64�z����،�*g�$,�Lž�Uh:@e=q`�h�5WV��(��F���2�{*w& -@��؟�g�ye=����� � �3����!��TL4���H�K�|?U�⊄�)h�ʫ}�~Z������f\` ��й:�A�I���Ǫq��5�*��0��)�Q��N�C�ZN7�zd"P2US�nmUt�˖�ɷm���8!�[d�Ji�?;Tw% #ĻЀ/���P�X���N��e� -8%M�'hY=�I0E�fZP%�$kEv3���M�$�R�#E�'����&t ����5��h�UL��L݀HX��trIV{�e��HB��tf�-Ŗy+Ǧ�eN��ܡwj�#Vv,��g\TL�dТ���Gf�e�<ʈsko��Q�C�W1&��9B����S.�ů(��罊��u�^M=^{�D����r�w���K�й`��*�Y%h:D�l�j+�R�=��� -剠�V��=�EV��(!�#�#5FT�wϤV��ߋ��TbM����,I�&v!6F��C7iκu�7{��d���mP��8�_'�Mz�i"��q���t��̢qi?�, ����ͅ�'�&ԉF�;��L!rQ p"�p�o�T}���̳���L��p�W��qv�d��H�\4rp�m�v����F���vSz̋�~l���?��� O:�N(�r���ϕ�F���dž;�8;)Eb���U{H�Ƣ�Vp�S>(6B��'����Ǚf����6�;�U��:��B�A��Ҡ2:!���I e�)��qZ��S���"�N@�)xU�gp��+�G2J��)���{�x�ZԘU2��,ϼš=�T3��ӗ-Y������}O<��-`h���0\���Ɖ����I0dZ�6�{uek��J�G�ls��Ey��Z$ -�ݒ��g9��,�p+c2�����%�Bg:e4���&P�����X�H��N��E�-0<��2����7tG�eK���;y�V�x��w���`a��`U&tb�������W��i>���10 Y�/lm^��E*3�g�+ץ}}�TD - �x�U�"�Kɓ�J�G�02�:����Hw�+d�]���<�Ӛ%� -�H����V\QJ��-�:��w��Dj��-r�9T1�+�iΌb���L�F���A�C\ -�-B:y=%��:H-)��6��a$�{�j� Zia�7����� �-�M�� �� 3ص�-�ɀ�>m�%.�!?��(5���8�M�x�/4~8�dvx(��-w`U�@�V4�n���iƙ�x�P�r�rc�V����rA�Y���j�Hё�����h�k]��_;�]AQB��4�ZJc�[� ގEs�6����^h�~�g�_8~;Ȥ�|9ҥ�WS���X��Z[L+� x��nˑ��p�X<Ⴇ�G�M�$zU���S���tA��F����:��W�зgy��Zw�����`�©�Hx]���Cŝ)gƩtyf:g�)�E��UŔ9`��B-/A�n"爐�f}�ʗ7���yY�-j��4^��lI�8������%���@�¥A�6�+�א�Hu�}���+�g/��� -���LP��{�� -�3X�!����8�⫊��� Ԉ�X~���&��?1�exA��2��������ܺ��� ���?٘�ޱО7�8�>SD�^�4�f����>��M l�e���D_b19�@H&2g.bnNj�U\T|la���s4�o�Mq���L墟����'�IE��W�h�YI����(AO����u��D__T�DV���b�4u"K\���FKj[�q�����ߞ���/s�ȗ��-��� �m�s���\w��DSԍw�|W�*�bʹM�²�J��՚IY��(P�5��Ťr��]�/z'f;�Q$��u6F/�x�½��m�i�ը��ӌ({�x�9ne^g��r{z����M����H=�E�%�p�ns�����k�ҿ)^U��e�Bgܻi ��P� a�~���y4�jK��[S�$���$�2�[���)����T��a�����t�����mB黱ntc��i���:�}�I��F<e�&e��|r��V�"���u�,F���f��~��{{��SǪB�^š�q��oJ8�|R:?���$��_�4 -��4b���9J7م^�8��P1Oܑ��7p�Z66�+?!�ٶ�m[>�yۖͶ-l[��m9�6۴�$,����G�џ��vq W?BV���5�c�L�۟�[+W�k#��Su����-|���@S�V�C���� �*n�?\t&2����'�s�w�R�Td~'�J'/�?g��騋endstream +xڽ]��8"������ܷ����.���{pM�[��ݹ_�Hɲ����CLS�H�IщV!������#.�8��աy�N0��M�$[���D�wo�~H�Uy��vϫ4�b%�8�Y$W��?֏��2�~���p��|86U[i�W�PﯧWu]n���ۛ��c�%"($pxUBGu+c,<�nC$i"����zћm��| �{E��r��C��� �P'�o�p}=i�Z��1��;^�e;[Z��P��:�[5�'+�tBـgD$��=��M��k=L� +�T,P.(l�A�E���($�*{.�h X��(�_�ȓe��5�# @���/�� s=!���]4��j��< g��Jl�7�vf��ܡOJ�V��PaY��n�#�v�,k�t�ڡ�j/�5 �� "��)���M���D�Z������x�a|�jܪϠ)7���M�VL�*C�����k���u���k�5]_ۚvC�Y�]����W���Z�2.�T�2���N�+�#���a�fG��Q�z0�5��U]&��*~�YT����l.� +����R��"e��"_�Yd�\-�f����J���ņ�~�\�(�H$�W%�4�Kea �4_�`�)G�{��;h�B���iGp�z�Y���$p�S�� �F"]�@abX�����ԣ�3L1l �~"���J:��g����L(�u�T|��82zt��x0O��$�: �'�Yեf�z�ǒbu,9��b5�M�A���l�(�������eÐw�o�3�S�|�����j��i���e������eg�O)xL������P�d�)/�b���s�i�I����"�l�'�/AGQ�[�kU��P�{Zt�:���%�p]dc �q��e8�*=9���:�+C�5�{fB +X�4�ٻa8��M�(H�����~�,�*#�EY�;{��Z?��b��h�'jM�<�c7U+ž�,@����x�h�,�l/߳�R� +f�X��X �$i��EV.le���xke�����OD�ʑ,� +o�+{��z^��F���e��2H�,}հQ��s��y�x�&��|jug�4����"�L��~�ek�7#�0Q~A.8OH8�Ld��R=�9�0����l���W����d���bZ��]Y���˲0.��2�0��i5c^�x�#W��$��I�ao���B%N�P1EE�Rq��B�#p�4R����=4b�@C�E9y��a�p�ᶧ��Zǁ�G�ߨ���������^\j4KPt�x�X�2�������?�j��u�*�Х+Ak=�L&`�Ո +7�Ϻ��]�@�Z ���k5��]i�p�(���S�[զ9���Q:ӂ� w,���+��o�9r�s����� f�����u�-k�DIC[�W�O� ]��.��m�̠*A�A��xj �5�\ǒm�<7<�P�ޏ)��r�v.QI��[��s�Tb9����no��pZ�29W斄 j���\(��8�Y� +���B/:փ ≈��RL��!Щ Yx�]s��� �X$��I,K�Κ���q��?�Q�)�.O�Y��.�Ȏ���<Ԁa�/�J[A嶿H4V��C�s~\L�S���љs�/�C�PzV�s$�X��, ��U��[�*���R�C��o����J�[���8�ϼ��xh�8��a+}#���Q��%��������� �'�B�ˡ�H����8Q�����:�_��j^��m�X( d�������D1�^>�I�n������ +K�s����8�Ҫ����+�і���)D�El� �o��'��8���V)��j�X_��pÁ��m�����'�L"/f��f��IL���(�L�쫶t��LO�N��DQ�𗲇k�@.����[�G���8�k���-O��9��Nу-=��H�3}g8�[6� �N�&��-s?[�iʪv)��*+�f<��\���Y��2��ȝ�Şɱ��S�@s��`�>���꽲�ʱ a�(�,F߄�'�B:F�2 +�F��5M����J[I� l��#���$<���b�[d���+�^�h�»�\�{y@E�%�p�n�����k+�a�M'��l�k�5�P� �O�����67ìX�eFk�%��Y�u�"$���[|7MSD[��/�P��n)A��ddC�G +>��;Z���)�p���wOt����pu���D>�U��lm��̏eG�} +�"$0�V�W5��A0E��9�w�b\A����[nw�I�lN�9���u��Y�;�"�og"d����*$&'ٖ^��W����hР�l�s�~B��m�c[1���&��Vx�MNc[��̀����-6@vώ�f����c�~"���=a+F6��3PV�>u����F@Sgu� �������p�:)�j�~ˋ��5xa���˅.�I�r����I�x� ����%��{_�w�d}�$p6���8E�k5{����� ��������U�y=�ZXnϋ�"�Z�%Ȼ�|��w�����G/q����qj�M��d���V��od�>�ץ�I�\]��x('(���4>T �U@~��hLl@�/m���^�( �A��=�qE +껇���(�;!��f������qe��=�6�ֆ��A{D1�z�X��Ԟ@�w7_U����e{R�����ù�IJ%+Uly��]l�ɼ�)�n/y$�s�f��!������:��u������/�z�������_�:�G>?���n�~��%!��'՟��A}5�1B�k�˛�q�D:����3f���~� �v�X���(]�� +���m�>.��w��ͭ��������@He ��x�����-�X`W��P�4���'����endstream endobj -3540 0 obj << +3539 0 obj << /Type /Page -/Contents 3541 0 R -/Resources 3539 0 R +/Contents 3540 0 R +/Resources 3538 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3577 0 R -/Annots [ 3547 0 R 3550 0 R ] ->> endobj -3547 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [145.4437 627.7761 197.249 638.6801] -/Subtype /Link -/A << /S /GoTo /D (groups) >> +/Parent 3573 0 R +/Annots [ 3543 0 R ] >> endobj -3550 0 obj << +3543 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [87.6113 514.202 149.3793 525.106] +/Rect [87.6113 653.3849 149.3793 664.2888] /Subtype /Link /A << /S /GoTo /D (group-control-examples) >> >> endobj -3542 0 obj << -/D [3540 0 R /XYZ 71.731 729.2652 null] ->> endobj -498 0 obj << -/D [3540 0 R /XYZ 373.7867 707.8408 null] +3541 0 obj << +/D [3539 0 R /XYZ 71.731 729.2652 null] >> endobj -3543 0 obj << -/D [3540 0 R /XYZ 71.731 697.4758 null] +3542 0 obj << +/D [3539 0 R /XYZ 71.731 718.3063 null] >> endobj 3544 0 obj << -/D [3540 0 R /XYZ 100.9239 687.7163 null] +/D [3539 0 R /XYZ 71.731 654.3811 null] >> endobj 3545 0 obj << -/D [3540 0 R /XYZ 268.3242 687.7163 null] +/D [3539 0 R /XYZ 71.731 639.4372 null] >> endobj 3546 0 obj << -/D [3540 0 R /XYZ 71.731 667.6267 null] +/D [3539 0 R /XYZ 71.731 590.386 null] +>> endobj +3547 0 obj << +/D [3539 0 R /XYZ 141.0038 577.4346 null] >> endobj 3548 0 obj << -/D [3540 0 R /XYZ 71.731 623.7911 null] +/D [3539 0 R /XYZ 527.4622 577.4346 null] >> endobj 3549 0 obj << -/D [3540 0 R /XYZ 71.731 579.9555 null] +/D [3539 0 R /XYZ 136.2087 564.4832 null] +>> endobj +3550 0 obj << +/D [3539 0 R /XYZ 71.731 557.345 null] >> endobj 3551 0 obj << -/D [3540 0 R /XYZ 71.731 515.1983 null] +/D [3539 0 R /XYZ 139.2157 546.5504 null] >> endobj 3552 0 obj << -/D [3540 0 R /XYZ 71.731 500.2543 null] +/D [3539 0 R /XYZ 501.9343 546.5504 null] >> endobj 3553 0 obj << -/D [3540 0 R /XYZ 71.731 451.2032 null] +/D [3539 0 R /XYZ 121.4494 533.599 null] >> endobj 3554 0 obj << -/D [3540 0 R /XYZ 141.0038 438.2518 null] +/D [3539 0 R /XYZ 192.6467 533.599 null] >> endobj 3555 0 obj << -/D [3540 0 R /XYZ 527.4622 438.2518 null] +/D [3539 0 R /XYZ 348.3123 533.599 null] >> endobj 3556 0 obj << -/D [3540 0 R /XYZ 136.2087 425.3003 null] +/D [3539 0 R /XYZ 71.731 502.6153 null] >> endobj 3557 0 obj << -/D [3540 0 R /XYZ 71.731 418.1622 null] +/D [3539 0 R /XYZ 284.0181 489.7634 null] >> endobj 3558 0 obj << -/D [3540 0 R /XYZ 139.2157 407.3676 null] +/D [3539 0 R /XYZ 71.731 469.6738 null] >> endobj 3559 0 obj << -/D [3540 0 R /XYZ 501.9343 407.3676 null] +/D [3539 0 R /XYZ 149.9766 458.8792 null] >> endobj 3560 0 obj << -/D [3540 0 R /XYZ 121.4494 394.4162 null] +/D [3539 0 R /XYZ 71.731 438.7896 null] >> endobj 3561 0 obj << -/D [3540 0 R /XYZ 192.6467 394.4162 null] +/D [3539 0 R /XYZ 146.371 427.995 null] >> endobj 3562 0 obj << -/D [3540 0 R /XYZ 348.3123 394.4162 null] +/D [3539 0 R /XYZ 71.731 420.8569 null] >> endobj 3563 0 obj << -/D [3540 0 R /XYZ 71.731 363.4324 null] +/D [3539 0 R /XYZ 146.371 410.0623 null] >> endobj 3564 0 obj << -/D [3540 0 R /XYZ 284.0181 350.5805 null] +/D [3539 0 R /XYZ 71.731 402.9241 null] >> endobj 3565 0 obj << -/D [3540 0 R /XYZ 71.731 330.491 null] +/D [3539 0 R /XYZ 89.804 392.1295 null] >> endobj 3566 0 obj << -/D [3540 0 R /XYZ 149.9766 319.6964 null] +/D [3539 0 R /XYZ 173.1124 392.1295 null] +>> endobj +1704 0 obj << +/D [3539 0 R /XYZ 71.731 364.0698 null] +>> endobj +502 0 obj << +/D [3539 0 R /XYZ 347.5933 331.7559 null] >> endobj 3567 0 obj << -/D [3540 0 R /XYZ 71.731 299.6068 null] +/D [3539 0 R /XYZ 71.731 323.3037 null] >> endobj 3568 0 obj << -/D [3540 0 R /XYZ 146.371 288.8122 null] +/D [3539 0 R /XYZ 218.9123 299.8755 null] >> endobj 3569 0 obj << -/D [3540 0 R /XYZ 71.731 281.674 null] +/D [3539 0 R /XYZ 71.731 255.9403 null] >> endobj 3570 0 obj << -/D [3540 0 R /XYZ 146.371 270.8794 null] +/D [3539 0 R /XYZ 71.731 235.9503 null] >> endobj 3571 0 obj << -/D [3540 0 R /XYZ 71.731 263.7413 null] +/D [3539 0 R /XYZ 71.731 174.1819 null] >> endobj 3572 0 obj << -/D [3540 0 R /XYZ 89.804 252.9467 null] ->> endobj -3573 0 obj << -/D [3540 0 R /XYZ 173.1124 252.9467 null] ->> endobj -1704 0 obj << -/D [3540 0 R /XYZ 71.731 224.887 null] ->> endobj -502 0 obj << -/D [3540 0 R /XYZ 347.5933 192.5731 null] ->> endobj -3574 0 obj << -/D [3540 0 R /XYZ 71.731 184.1208 null] ->> endobj -3575 0 obj << -/D [3540 0 R /XYZ 218.9123 160.6926 null] ->> endobj -3576 0 obj << -/D [3540 0 R /XYZ 71.731 116.7575 null] +/D [3539 0 R /XYZ 71.731 131.4072 null] >> endobj -3539 0 obj << -/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F44 2183 0 R >> +3538 0 obj << +/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R /F35 1752 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3580 0 obj << -/Length 1752 +3576 0 obj << +/Length 1718 /Filter /FlateDecode >> stream -xڵXYo�8~ϯ0�$��ú�f�I��MR4.�b��M���0D�A���3�([�S,"r8�~sphw���;�\;���%��hU\8�-,�_��rE<W&�|q����G���^8ZlFSDZ#'NF���q�ƣ��O�f��VO����|��u��zVn�4o��dy�N�Z�~q���?��4��Ps��E���Nl�S?�>��}���{V�c5 3��T||k_W�v� m��9[�x<O뱍�ŎDl,Q\U�Hڥϱ~N����KAh������R�n'��f%'yY��$�嬦}Y����m]�{�/`v�zv�S���N(�*y�0���&�J8��$�KA�L����x�,�̂��̰���z�*ޤ��\3��٪AY��THWG1H�P$�$���&+�Cܵ�pfQ���@�;�U�b)U�NhU$"Xrhh҅���}A�t�����V���,��$i/�((�5#S*q&Ҍ��Ig�ՆA6�;����u��[V@�a�L\�B�b��v�aQe��� -�*�+���|-AeF1d]8Yj=�]� B�gA�@ާ��� ��ЗL���F���ŗ�8~�=~�-��|��G�r3{���i��{9���D�3��$���-ޮv4�1�c��ėʢ&VYO��#6[kawu�3��`�Q��a�vL��b=��"����r,�l+�CΥ�2����K�������o���G�<=|~z��7O�w��<\����]�U7�tY���Z -��\g��a��6��V��[`�v���c]�D����N���T�a k6Um�q:+ŎW�^�d�K���(Y�z8�� $�b3�ð�i-8�Uc�<������E��Cy���)���8�W/�iӉ���,GNN�֤��Pػ�< �vdة� ���%T� �1�{�j8�KW�;�bj�C��(�"H�����q�W�S�ĉ$7��kx �k���k�3^(3]�9��Ŋi̍�pT1S����=l��Y��t~�՛�V���o��cQ�C=`���2��:)��$��)1)�%q`�Z��X��E��5����c]���L"-寑�Cyh*�K��착<�#+{��V@��r(�l�7����^}�Q�� �jN⮏���z��.� y^9S����f�����X;�;'�,1bXu3�8�eR"��&c{|�Ď�0���m� +����ϖJ=T�� -A�j��iB�h�#h��o�����8�Ӗ9�%�Tˋ°�i�gE�kV.Gyp�6jY�QWCeJ4W`��������DP���`0���ۻ��?]���&Ѭ}�x�� �ȇ����* -�0P��ډ��vB���t������ mNU� �t��{�{ ��T�s��=y�9�c�����)�aOg�t�D�{+� --�x��6�7����ˮ"���FO�]k�12~6�IWP��(AF�Z���RI�ɐ��b�}��D�ؑ�#7r� ��P�����u�P��˵UƉ�~<���MP�Θp$[�B҃�ZE}و���{�~���C�O��ip��Sq��xo�9��x�4�H�0/��9<U�h�z��Ai�{����6�~`��띁��:��g�߆y@�;`>i����y��0wml��}*WL��}Eg�DOS����S^M]�$�ޣ���c�*�Ǖ��v���� ��߁/����$q�i��� -��UɃendstream +xڥXKo�8��W�� Ċޒs��$�E������A�h[X=�n6��w�J�-;)brf8����P���?g9V���;��0p���l�u�Ȅd&��|qqu�y��5 �p�X|۶";�"ϵ��������6� V�'n`�<gi��zVn�4�o���<�����v��Ț�`ᬇ�T��� C_����c��Hy�����J�'� n$��t�N� +��SB몺F���ŗ�8~������O�����O��A7�Ǜ�ǻ�/�����gi�����[Ad���b�$>�(YVc'������i�J�r��6;#��uU��NG''Cox��KVs�Tk����~��w�TU ��JJ����-Ǯ=�o���Y)W���$/_2�%WX]d�giiL3�`�Z����`���$�q0J������])�'�PH��HL.���/q�ƮƝ��u��"�Y�Y���ܭ�hY���Ɗ�sa;r�s������"%yN�c+�������\Y;0[ +��¤� Sre�öݺ��N����9uI�vB�{"��PA��VY�r�a�ڠ��?��e�1}��q(l��j�A!�\���duB6�r]�f��d��طG��P�j_g�\��l�ҋ5q1��k�C<ғ80���Y���:gH3�N'>���&�3��ҟ"5���44�[Q�_6�b[�^?�R�'H�� +(+�=��f��mx��S�eA�,7��~T�g������"�v���-����v�'�����o�7�?���{o�=gS#�A�@W�f��l3���{��ocX�wx]k�*����gƳ�VN��s��EP���g)M��M���q��¬F/k>D�;��e��a���k�KY��M���ƅ�Q\�B����դ�L�L�����l~n��LR����0���ۻ���O����ӗ�og�g��=�*O�ȇ����MUZ������imc�HV�$�8u6D��ʼn>i��� �F{ ��t�rc3$����!R�fh،�Ͱc3�6 �{2|���M�|��U5��E���Ě�^���.FO�^k葼��Mmj+�$�ejY����P3ҡ2��-KYz}�zGS��g�A��[O��$41�T��I�#]/�:4O�0��^����z�.�.Cz������gc�w�:��;��x���4�N��H�`ܓx��|��.�.�E9{O}D 4;=���5Pw�K%�i��|��yfC��ZJ�蝆���;`>������y��0�ml��}*W�Q����N�dOS����v���Aj�׆�����{T�!t��������u��������=����� +��ؘ��Ʃ��,�z�H���x^��$�{C�_d�����,��!���p�/�'���OR�rv���P|�P��y��% c� XJJ*$ �d}����pు���1]���iC��1ކHi��C��!��}�h�\=�An�e�%�0M�L{Fb�6+�K� ��mP�Cd��2��VN#VɪYN�!\��H�ջX.��%M~?P<�fu�B���t�D�L�6������� �h�'I�~p(;\�;!V�qA͒tR��끟����=����0a���PjYiWR0�_ߡ9z��L�t#����:߶���3F~,_i5�O�n����b]��p���N\EB�T�;���S�[�s�7�ﶆ��g����9^�Iz�G'�����D��endstream endobj -3579 0 obj << +3575 0 obj << /Type /Page -/Contents 3580 0 R -/Resources 3578 0 R +/Contents 3576 0 R +/Resources 3574 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3577 0 R +/Parent 3573 0 R +>> endobj +3577 0 obj << +/D [3575 0 R /XYZ 71.731 729.2652 null] +>> endobj +3578 0 obj << +/D [3575 0 R /XYZ 71.731 718.3063 null] +>> endobj +3579 0 obj << +/D [3575 0 R /XYZ 71.731 675.0685 null] +>> endobj +3580 0 obj << +/D [3575 0 R /XYZ 71.731 616.1246 null] >> endobj 3581 0 obj << -/D [3579 0 R /XYZ 71.731 729.2652 null] +/D [3575 0 R /XYZ 71.731 598.1919 null] >> endobj 3582 0 obj << -/D [3579 0 R /XYZ 71.731 718.3063 null] +/D [3575 0 R /XYZ 71.731 562.3264 null] >> endobj 3583 0 obj << -/D [3579 0 R /XYZ 71.731 657.3699 null] +/D [3575 0 R /XYZ 71.731 507.8954 null] >> endobj 3584 0 obj << -/D [3579 0 R /XYZ 71.731 614.5953 null] +/D [3575 0 R /XYZ 71.731 487.8058 null] >> endobj 3585 0 obj << -/D [3579 0 R /XYZ 71.731 576.5729 null] +/D [3575 0 R /XYZ 71.731 439.3625 null] >> endobj 3586 0 obj << -/D [3579 0 R /XYZ 71.731 533.7983 null] +/D [3575 0 R /XYZ 71.731 384.5579 null] >> endobj 3587 0 obj << -/D [3579 0 R /XYZ 71.731 474.8544 null] +/D [3575 0 R /XYZ 71.731 364.4683 null] >> endobj 3588 0 obj << -/D [3579 0 R /XYZ 71.731 456.9216 null] +/D [3575 0 R /XYZ 71.731 338.5655 null] >> endobj 3589 0 obj << -/D [3579 0 R /XYZ 71.731 421.0561 null] +/D [3575 0 R /XYZ 71.731 333.5842 null] >> endobj 3590 0 obj << -/D [3579 0 R /XYZ 71.731 366.6252 null] +/D [3575 0 R /XYZ 89.6638 312.8269 null] >> endobj 3591 0 obj << -/D [3579 0 R /XYZ 71.731 346.5356 null] +/D [3575 0 R /XYZ 71.731 310.6701 null] >> endobj 3592 0 obj << -/D [3579 0 R /XYZ 71.731 298.0923 null] +/D [3575 0 R /XYZ 89.6638 294.8942 null] >> endobj 3593 0 obj << -/D [3579 0 R /XYZ 71.731 243.2877 null] +/D [3575 0 R /XYZ 71.731 292.7373 null] >> endobj 3594 0 obj << -/D [3579 0 R /XYZ 71.731 223.1981 null] +/D [3575 0 R /XYZ 89.6638 276.9614 null] >> endobj 3595 0 obj << -/D [3579 0 R /XYZ 71.731 197.2953 null] +/D [3575 0 R /XYZ 71.731 269.8233 null] >> endobj 3596 0 obj << -/D [3579 0 R /XYZ 71.731 192.3139 null] +/D [3575 0 R /XYZ 71.731 246.9092 null] >> endobj 3597 0 obj << -/D [3579 0 R /XYZ 89.6638 171.5567 null] ->> endobj -3598 0 obj << -/D [3579 0 R /XYZ 71.731 169.3999 null] ->> endobj -3599 0 obj << -/D [3579 0 R /XYZ 89.6638 153.6239 null] ->> endobj -3600 0 obj << -/D [3579 0 R /XYZ 71.731 151.4671 null] ->> endobj -3601 0 obj << -/D [3579 0 R /XYZ 89.6638 135.6912 null] ->> endobj -3602 0 obj << -/D [3579 0 R /XYZ 71.731 128.553 null] +/D [3575 0 R /XYZ 71.731 180.8219 null] >> endobj -3578 0 obj << -/Font << /F33 1398 0 R /F27 1298 0 R /F35 1752 0 R >> +3574 0 obj << +/Font << /F33 1398 0 R /F35 1752 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3605 0 obj << -/Length 1866 +3600 0 obj << +/Length 1928 /Filter /FlateDecode >> stream -xڽ]o�6����d fDI����I��Úf���X� [�-L�$7�~��xGYN��E �}�xw<Z�\���H�ȇ�7^��Ѫx�6@z�J2˔y�}��ū�k���,���b= -\WDn<E�'b%��"�۹�&�Vד��\����EVf �rC����,ϓ�?��_]-:�ʏ�, �Z�q بF1�h��֍���������LC,{��Щ�"T�oX櫕n�������g�~?�y3_|����[ 8�q��q~�E���8?*rҨk�|3��*vڭ�E����]U��~[W�ݘ���:I�6�XT�&ª*ۺ�A����&@#�-)v�>�m�(~RQ��yJ�%3�t]dm�SR�H�E�t-O̔$���u�������^��5b\#)�F��T�����-a6hVC�1��HI�҂�cA|��.ψd�5<���a�E -;��%[vtv�-�:x��/��" {�"��ࣧ�����vc�紉G\V2�Y�Y��Φ%⿸��u��D)�w�X�hi�����*���Nie'L��P�$�Ve~x`g��s����L�}�d),8́��fA�w��E���|>|��ؓ4g<�{�f%-��qÒ�7Z���\�:� �&�������I�U%!�'���~M���@��DB��Y=�C��~�������gu�d e��%�Mzsu=����h�/�7Wo�-^n��mg3'�Ч���P6����c̓[���ں� -�f�6�)���W�dL����)3��8f�tʊ�yUn�e �m����T3�i<��C:��y�b3�֔�����L�]W,��� ��[婵��� C�Mܸ;PHM�n�������?��h���܆uCǮS�j����V�\�.YW����^�3����&�1}�J�)���1�t��:i�MPl]C�����,��p�Z�:�1�Su�\n�P��%��TJ�O��i��)��Z���)��p]O|�%^�䂫�\w��-(����������V���`(!��=���n� ������i6���~0�X�aN�״�f�ٓ(<�f�^=��T���a���%#IC#Dw�г<��ԟ��U -d�"�d��d,4�L8��PHI�f��G^h�|�C�.��S�e��!}�˂�Wb#�3��p��ӓЦ�L:T{�U3&�M�)�_���=j���sƟލ �����P���f���n�8�����S?�9wxTO����6��� t�'�u�����m�4��ִ��i���a�k]���r��I1��M�`g�;�T��Z#Pv�o����D1��F3S���iJ�=+ �=- ^ -U�]��O$D�I�WNX���t�I'�ֺm����=�}h9�.dN=p�W����ēP9��§�������ܚ~�����ks �sfHLR�2i����5�)�aΗ�̽ M3A��+X�8^ ���eyֳB9��{ �tB�Ђ�>g���nG��u+��&��ˊ�>0��sa}��h���7�� �8�.Ɠ �6��A���V��K��/�7pȦ��V����׃n���'o@���xd%�ٴ5<��4��Kg��=#���s����s3��������"�w�55���gL�)H��l���+�$O/Ӄc�Z��1F'O5,�mC� �7�m�+���G|��wڦp\O�ic�����[�Z� �Hh�:��̏��7 M.PFa��N���x�Vb���k7�5<�є�8+a���}br�����xg�MʾRm�2�AL�UY�,Yy�a����/[k�p2����X��g���<�)R�(��٬��� �'[P�?G��1endstream +xڽXK��6��W{� �Q�HO��M�lҬ�"hz�Z�-DC��q}���,۲7��������d>���G1gq���2?�hQ��F+���'�)�L�L��/^� �Q��ȏF��(�<{I:��%�'�y���f-7�j&S_x��8�ʼ�5��j����տyQ��?�?^��;�"�Y����v\6�Q6F�����KX���cSg�E;�FX���B���HD�e�-Jkس<w��O_�q�~v;����e7��l�%������l������y��[sS�e]�z^bߤۻ7����{��~3���};7�^����� d"�B+���6��X��H:��ⓒ�>TŮ3<"���R�y�4��� +�a� �EN{ 06*#Ɗ&z]o�W5�E]��c�|-'�7�>��j����'\<���T|�<��T�&b,�J;;Z�$�eM��C��B];�p���ـ���no�� �Y*8ª�e�d����8�zp�]����kú�6�5>���Zΐo6 ma��#�*e�p��Ǜ��ݐaG'��br���a��ۍ�X �@�22���Ë +{Q|C�:Y�e�N㪭i\��9E��TJe*{��z�S@���!��d:1k\u \�g��!�Tr�_�i0@�"�°��z��g��Lol�*N�emfy��6<O�^;n��`���mu��Q�f0�k�O�0P���pըB��n������Jg���, �pB�N/��״�f3� +��lbP��M�ʼnQ��$��1�q=gĉ4c�^r�υe�i�<!@�������d��+U��)\R����煄�Sȇ��FhSF�2p��p��1P����[,�@�����]�%Y Q2��U�1�R�~�<I�?���� + w�k�A5�Ӯf��������b>H�;h@�s��+��� +��v%k�� p�X� +�6�����KՀ$A8�YN��U�B�m�M�omR5q�Z�@*�Fj�Ѫ� +wl�F�Q��6H]�� +�]f�r��ʚ�����l��,��Thr'ط�c�4h��c^��ٟ�v�WC<�(�5 �����n ������t/�˵��017�C�ɥ-�ۂ�6N����Ĕ�|�s�l���+E�n�@�L̚F� +& ϫ V�)��=+����7u�J�7X���%#� +�kU��-��6n�^^�fG�Ś�u�Ӝ���Iƾw�ОL���)���c�p=w�콸�����3p�m���$X���-Xa������>��4cH!��xF�^����Q�78�s�5�"ca�R-�S�̉���1���&�.H��|0�Ai�<=O���T�{�āB�����!�����z!ѓ{0������ȴ�D_@�X��P�`cu�A$��;��ˀ0�����(�T�0���ȉ����4u}إ +�JC��P�X�MDP@�\��w}��$%-����4A����X���ӆ��b2>��E�T��Mw�l����I��f�2��&����:nu�Ds>�=�ű��� + �i��6:P��2frv�2IYɠ��3�zƄ����Փ������]�����{��ΖM]^<Nm���F��9�y�$���P���C�q�{�g�R�<ԗM8�}�Y� !� �}��ց��u���E,�����gaP�0^4�D��^��$��GN,Bfb���1�dL��8@�m���[�M�1��9x= � �����|778��u�*[7��5[I��Ur�(ٷaQ��|,�=�.���$]ERȁ�#0Y��#��,�2�J4��Drm������+�3h�W9A��'�C�����V��Չ�{Q�\�T��e� +��������$�zm?�2��G��i��ߧP���+���U,��y<M;I�09������<��dendstream endobj -3604 0 obj << +3599 0 obj << /Type /Page -/Contents 3605 0 R -/Resources 3603 0 R +/Contents 3600 0 R +/Resources 3598 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3577 0 R -/Annots [ 3615 0 R ] +/Parent 3573 0 R +/Annots [ 3608 0 R ] >> endobj -3615 0 obj << +3608 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [413.9471 325.9832 465.783 336.4578] +/Rect [413.9471 468.947 465.783 479.4217] /Subtype /Link /A << /S /GoTo /D (groups) >> >> endobj +3601 0 obj << +/D [3599 0 R /XYZ 71.731 729.2652 null] +>> endobj +3602 0 obj << +/D [3599 0 R /XYZ 71.731 718.3063 null] +>> endobj +3603 0 obj << +/D [3599 0 R /XYZ 71.731 605.1308 null] +>> endobj +3604 0 obj << +/D [3599 0 R /XYZ 71.731 585.0412 null] +>> endobj +3605 0 obj << +/D [3599 0 R /XYZ 71.731 536.2243 null] +>> endobj 3606 0 obj << -/D [3604 0 R /XYZ 71.731 729.2652 null] +/D [3599 0 R /XYZ 71.731 503.4122 null] >> endobj 3607 0 obj << -/D [3604 0 R /XYZ 71.731 718.3063 null] +/D [3599 0 R /XYZ 71.731 483.4869 null] >> endobj -3608 0 obj << -/D [3604 0 R /XYZ 71.731 651.7559 null] +1705 0 obj << +/D [3599 0 R /XYZ 71.731 424.01 null] +>> endobj +506 0 obj << +/D [3599 0 R /XYZ 210.4345 378.7557 null] >> endobj 3609 0 obj << -/D [3604 0 R /XYZ 71.731 574.8793 null] +/D [3599 0 R /XYZ 71.731 366.5845 null] >> endobj 3610 0 obj << -/D [3604 0 R /XYZ 71.731 462.1669 null] +/D [3599 0 R /XYZ 71.731 311.2041 null] >> endobj 3611 0 obj << -/D [3604 0 R /XYZ 71.731 442.0773 null] +/D [3599 0 R /XYZ 510.3067 261.5552 null] >> endobj 3612 0 obj << -/D [3604 0 R /XYZ 71.731 393.2604 null] +/D [3599 0 R /XYZ 71.731 241.4656 null] >> endobj 3613 0 obj << -/D [3604 0 R /XYZ 71.731 360.4484 null] +/D [3599 0 R /XYZ 71.731 228.5142 null] >> endobj 3614 0 obj << -/D [3604 0 R /XYZ 71.731 340.5231 null] +/D [3599 0 R /XYZ 71.731 223.5328 null] >> endobj -1705 0 obj << -/D [3604 0 R /XYZ 71.731 281.0461 null] ->> endobj -506 0 obj << -/D [3604 0 R /XYZ 210.4345 235.7918 null] +3615 0 obj << +/D [3599 0 R /XYZ 89.6638 202.7756 null] >> endobj 3616 0 obj << -/D [3604 0 R /XYZ 71.731 223.6206 null] +/D [3599 0 R /XYZ 131.1675 202.7756 null] >> endobj 3617 0 obj << -/D [3604 0 R /XYZ 71.731 168.2402 null] +/D [3599 0 R /XYZ 264.267 202.7756 null] >> endobj 3618 0 obj << -/D [3604 0 R /XYZ 510.3067 118.5913 null] +/D [3599 0 R /XYZ 71.731 200.6188 null] >> endobj -3603 0 obj << -/Font << /F33 1398 0 R /F35 1752 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R >> -/ProcSet [ /PDF /Text ] +3619 0 obj << +/D [3599 0 R /XYZ 89.6638 184.8429 null] >> endobj -3621 0 obj << -/Length 1974 -/Filter /FlateDecode ->> -stream -xڕYɎ�6��W:�@���=9u:� �� � Hr�-�F�-����Y%���|�GV�k������e��0|�?�sVG����K� a6&������=o��$��j{X���"'NV��Y��j��e?�ĥ��z���>�sVd5�g���m��fy.��l|�~���%1HXG�u䑡cwZ'f��EZ��:v���WR4��\��~��Sy���,���zF �uWa�0ߏ�i" �1QZ�Rj�l(2NXz���W�[tG���J��d.� 2ќ���9�ާ �;�j�q,ϊO�:T�yq��*�v�\�^�Q�Rr�Ax�j�@u�R���TO�|Ջ*��^��1M��͊vW6MGv�O ����Y���j�������8!� 4.�0�[��!e���.��!�Pl�����a��2O�'�Q�ʪ�.�N��*�4YY��;'k�H�ӺǺΎ��ƂI��>?@|�j%�tz 04m\Β����y���SY4�w�P-p��jG�,�.�)�g���bphp`܂�B�Y�bc����j�2��Y# Y��ZҾ��?l?~@h#������}�k:�쒳��A�����F��<v�S�s7�CH_�#�n`c��j�k}�ҽT4b'j�o?\Ro�F����n�ډ�s8�{��ՙ���c�DVJf d״�yс� H�^���u]X�p���$6PChT:�}�����P�}�^��O��^���3����\����$�&���@p�q,�mS�U� m3u��`�lSq�,���:m݊�K/�ٞ&����_O�\)�<������� -��R���V'��z��L{d���B,�"�c�g���V#~3�"M�|l�Q��Ȕ���}Y���:��� kTIXdZ`Sc;+n�f��F����Z`�C-S"��� -��� -p�Z�#���;U�&���hpY�Q��k��I�����M���[����@�\������)���R-��,lR-�MyTMď����5"��9��Z0s�Z.��D��̋*��V*�/���s��O�s��z۞��y�e�IWvqS'�WY��0��-$��=�Ƒɸ}�+�+�F�P?f9Do(eސJ ,��(��m5RrleS[8G~��W�0��䢠�G��0�qRQ�E���f������)+�A"���ˇ��a�!Y�)�M�z���<t�^My��z��` -���.���u �.F_ta���}�x��� �j��j��`?P L�T���T6�k���s����7&A��U���.�u7U����?���=���#���G>u��*�e8c�W���u�����P � -�JO�E��}U��xy�*=��Kh�u�,B|e��C����~��M8Ŧ'�wX��bir�y��@}�%rF���8����~���l������b�6Q��G-�9S"��eF{?�J[jk���l=�>���>�A �I�i���P�%Δ�7����h���$s��I�y�* w}�s��������@-p١��)�o�rQ���f�ěuu�(#43t5���ь0@�C�Q���^�r��"�!&0z�*YuY5X�([��S���2���t�*�{)���3�Չ�2��*��lq�&�h�;I@��e��(�qNe]5��"���u�V]\c��$+�VQ�����Y�tCY�cQA����IVu1��O- -��e��b��N��)E7"��C�k9h�%>��]���:B3#��/'��*��J%��ete�X�-dT� JtLh�H7qh���_�4��˸Ŧ9��q*N'�X�e5��=J�����������ho�e:q�o�A�#��__����$4��!)(\w�*s㈎ ����u��E� /�q6+�=�������K���M�?4s_^�P)��^ʧRc���E~�b7L�30���3�M�~'m�d�Ϯ ��TA��endstream -endobj 3620 0 obj << -/Type /Page -/Contents 3621 0 R -/Resources 3619 0 R -/MediaBox [0 0 609.7136 789.0411] -/Parent 3577 0 R +/D [3599 0 R /XYZ 131.1675 184.8429 null] +>> endobj +3621 0 obj << +/D [3599 0 R /XYZ 71.731 182.686 null] >> endobj 3622 0 obj << -/D [3620 0 R /XYZ 71.731 729.2652 null] +/D [3599 0 R /XYZ 89.6638 166.9101 null] >> endobj 3623 0 obj << -/D [3620 0 R /XYZ 71.731 718.3063 null] +/D [3599 0 R /XYZ 137.6244 166.9101 null] >> endobj 3624 0 obj << -/D [3620 0 R /XYZ 71.731 706.1869 null] +/D [3599 0 R /XYZ 249.7943 166.9101 null] >> endobj 3625 0 obj << -/D [3620 0 R /XYZ 71.731 701.2055 null] +/D [3599 0 R /XYZ 325.9286 166.9101 null] >> endobj 3626 0 obj << -/D [3620 0 R /XYZ 89.6638 680.4483 null] +/D [3599 0 R /XYZ 409.7042 166.9101 null] >> endobj 3627 0 obj << -/D [3620 0 R /XYZ 131.1675 680.4483 null] +/D [3599 0 R /XYZ 503.7813 166.9101 null] >> endobj 3628 0 obj << -/D [3620 0 R /XYZ 264.267 680.4483 null] +/D [3599 0 R /XYZ 214.4934 153.9587 null] >> endobj 3629 0 obj << -/D [3620 0 R /XYZ 71.731 678.2915 null] +/D [3599 0 R /XYZ 89.6638 141.0072 null] >> endobj -3630 0 obj << -/D [3620 0 R /XYZ 89.6638 662.5156 null] +1706 0 obj << +/D [3599 0 R /XYZ 71.731 133.8691 null] >> endobj -3631 0 obj << -/D [3620 0 R /XYZ 131.1675 662.5156 null] +3598 0 obj << +/Font << /F33 1398 0 R /F35 1752 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 3632 0 obj << -/D [3620 0 R /XYZ 71.731 660.3587 null] +/Length 1986 +/Filter /FlateDecode +>> +stream +xڕk������ +C�ld=��#�P$�m��)�� P��a,�m�d���6�/9��,k78�<CrHߣuV6�sV�#"~�D�a���{u��&�2��$�v�����V�HB7\�+߶Ed��*�\N��e���;�K���� �'���윗y�<������(��ݏ>���$ �T�:��ʉ��>*�_�D�G�V�!���_6� (��&����qK{�u�����q�90�ײV�hO������Qu��\�*����vM����>ଭ�"/3D`O8�N0I�#d��R��m[�֦�ə��Zf�V�{;�H���>wE�oU��%~�mW�_hG��E�t��奖i����r���_��pZɺ�U��/�AW�|.+��k9fu����0�#�;��N7�K������Kk%[>CvDm��5���i�F $��B7�����l "�W3ڦ�PMGL�ʼnC/��7���g��O9����:O�j},�ql�S���|���qbdK�-�H�Q�aL�j��=^�}l���� +w�Q��� �:�G�_�� +R��%v�ֲ%(Ylj��"6��椫�>Ŵ�:l@���%�8��`uP"0�K����ǿ+���D��M�Y����ؼ���Wma2S9��xj�#7Q(��.z� z�䞈*�#��{�ŋ�Q��rh�CΔ��+�L���1w��^r��#�3�U��T�W��Ī�� ���Bq�L٭�f�5�W +n��:��m`�B6q�M�����]���Ӡ����_[��6���m,�q��S�.�,Y��p�'$���co���/��j!��R����iwaY�)�]�z��Fz�@^��'lrO eT6��j_E_7����{W���Reo�{��#d�\��B�q����B��Z�T����}� �N����̂.-�@~��>R5L^.�� z�x6;��6�?���w?���'+�;}b=\Z8���z�(/��s��8��J�=./M� u.tж���qD������yA�P�$�v0�o����q����+mn 44Y6��F�t�k�3o���?�m��U#g�R�T�K�@�<�̉|�X/�p�U����2DKÅ��'&��<��]�C�8���1 �c�T��͜�wsQ�;�wƼ5�q^aŢ��J��U]B��66��G����N��- �[�T�CĜ�w�rQ�;���l7/����*F��t��6���~2��x�Dg���K%�.]�A��T�j����}u�R x=��Y��4D*i{�����+���L�N�1�? 9n��d�.��^1�';����1��"A �N��~�mh�zR5�E�!H_E=(ov�5��]!Y��dqK��D��c1�bt�@�v�R } +�����աճ,��~鹎�4��9���r�`U�)ՙb������륃�J��Pb�rϺ�C۳�~�фv�p-1�Ȼ��.��+���s٤z����?��9�o�� +w��gt�p���{G�O;��Ѱ�i���P\n�\���5~%�`�U��@|4��!l^�<z�-������AwM�S7��+��T� p?U�Ͻ0b~a���� =b�9!�-</i�'fy%�� HԶ�b�5��XR7�l;�9#��@��W�F�<����r�#?������ x�`A�;�@��o�H���Z�T�wk��}U��#SUf���P���˘�t4�poO ���*O��G"aҪ��w��X��F~��������Լ`�2Mե}��}:��u��(J��L���������q9�Hͱ����������@�pM�2!\��56���������R4[k����"�?��~gye�4p��F7+��6u��"CS6�,~|DB8��&��E�s-f��EU�7��4}E��b8s����,�0��C�|������~�ſK4���X�N��t�O��aF��ѹ0Mendstream +endobj +3631 0 obj << +/Type /Page +/Contents 3632 0 R +/Resources 3630 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 3573 0 R >> endobj 3633 0 obj << -/D [3620 0 R /XYZ 89.6638 644.5828 null] +/D [3631 0 R /XYZ 71.731 729.2652 null] >> endobj 3634 0 obj << -/D [3620 0 R /XYZ 137.6244 644.5828 null] +/D [3631 0 R /XYZ 71.731 741.2204 null] +>> endobj +510 0 obj << +/D [3631 0 R /XYZ 176.8299 705.7477 null] >> endobj 3635 0 obj << -/D [3620 0 R /XYZ 249.7943 644.5828 null] +/D [3631 0 R /XYZ 71.731 696.9249 null] >> endobj 3636 0 obj << -/D [3620 0 R /XYZ 325.9286 644.5828 null] +/D [3631 0 R /XYZ 71.731 664.099 null] >> endobj 3637 0 obj << -/D [3620 0 R /XYZ 409.7042 644.5828 null] +/D [3631 0 R /XYZ 71.731 653.2048 null] >> endobj 3638 0 obj << -/D [3620 0 R /XYZ 503.7813 644.5828 null] +/D [3631 0 R /XYZ 71.731 648.2235 null] >> endobj 3639 0 obj << -/D [3620 0 R /XYZ 214.4934 631.6314 null] +/D [3631 0 R /XYZ 89.6638 625.409 null] >> endobj 3640 0 obj << -/D [3620 0 R /XYZ 89.6638 618.6799 null] ->> endobj -1706 0 obj << -/D [3620 0 R /XYZ 71.731 611.5418 null] ->> endobj -510 0 obj << -/D [3620 0 R /XYZ 176.8299 568.4443 null] +/D [3631 0 R /XYZ 71.731 623.2521 null] >> endobj 3641 0 obj << -/D [3620 0 R /XYZ 71.731 559.6215 null] +/D [3631 0 R /XYZ 89.6638 607.4762 null] >> endobj 3642 0 obj << -/D [3620 0 R /XYZ 71.731 526.7956 null] +/D [3631 0 R /XYZ 71.731 592.368 null] >> endobj 3643 0 obj << -/D [3620 0 R /XYZ 71.731 515.9014 null] +/D [3631 0 R /XYZ 89.6638 576.592 null] +>> endobj +1707 0 obj << +/D [3631 0 R /XYZ 71.731 569.4539 null] +>> endobj +514 0 obj << +/D [3631 0 R /XYZ 194.2 526.3564 null] >> endobj 3644 0 obj << -/D [3620 0 R /XYZ 71.731 510.9201 null] +/D [3631 0 R /XYZ 71.731 517.5336 null] >> endobj 3645 0 obj << -/D [3620 0 R /XYZ 89.6638 488.1056 null] +/D [3631 0 R /XYZ 71.731 489.689 null] >> endobj 3646 0 obj << -/D [3620 0 R /XYZ 71.731 485.9487 null] +/D [3631 0 R /XYZ 71.731 474.745 null] >> endobj 3647 0 obj << -/D [3620 0 R /XYZ 89.6638 470.1728 null] +/D [3631 0 R /XYZ 71.731 425.6939 null] >> endobj 3648 0 obj << -/D [3620 0 R /XYZ 71.731 455.0646 null] +/D [3631 0 R /XYZ 71.731 411.3029 null] >> endobj 3649 0 obj << -/D [3620 0 R /XYZ 89.6638 439.2886 null] ->> endobj -1707 0 obj << -/D [3620 0 R /XYZ 71.731 432.1505 null] ->> endobj -514 0 obj << -/D [3620 0 R /XYZ 194.2 389.053 null] +/D [3631 0 R /XYZ 71.731 406.3216 null] >> endobj 3650 0 obj << -/D [3620 0 R /XYZ 71.731 380.2302 null] +/D [3631 0 R /XYZ 89.6638 384.8471 null] >> endobj 3651 0 obj << -/D [3620 0 R /XYZ 71.731 352.3856 null] +/D [3631 0 R /XYZ 71.731 382.6902 null] >> endobj 3652 0 obj << -/D [3620 0 R /XYZ 71.731 337.4416 null] +/D [3631 0 R /XYZ 89.6638 366.9143 null] >> endobj 3653 0 obj << -/D [3620 0 R /XYZ 71.731 288.3905 null] +/D [3631 0 R /XYZ 71.731 364.7575 null] >> endobj 3654 0 obj << -/D [3620 0 R /XYZ 71.731 273.9995 null] +/D [3631 0 R /XYZ 89.6638 348.9816 null] >> endobj 3655 0 obj << -/D [3620 0 R /XYZ 71.731 269.0182 null] +/D [3631 0 R /XYZ 71.731 310.0277 null] >> endobj 3656 0 obj << -/D [3620 0 R /XYZ 89.6638 247.5437 null] +/D [3631 0 R /XYZ 89.6638 292.1945 null] +>> endobj +1708 0 obj << +/D [3631 0 R /XYZ 71.731 272.1049 null] +>> endobj +518 0 obj << +/D [3631 0 R /XYZ 150.0257 229.0075 null] >> endobj 3657 0 obj << -/D [3620 0 R /XYZ 71.731 245.3869 null] +/D [3631 0 R /XYZ 71.731 216.5695 null] >> endobj 3658 0 obj << -/D [3620 0 R /XYZ 89.6638 229.6109 null] +/D [3631 0 R /XYZ 366.7665 207.4483 null] >> endobj 3659 0 obj << -/D [3620 0 R /XYZ 71.731 227.4541 null] +/D [3631 0 R /XYZ 395.8187 207.4483 null] >> endobj 3660 0 obj << -/D [3620 0 R /XYZ 89.6638 211.6782 null] ->> endobj -3661 0 obj << -/D [3620 0 R /XYZ 71.731 172.7243 null] ->> endobj -3662 0 obj << -/D [3620 0 R /XYZ 89.6638 154.8911 null] +/D [3631 0 R /XYZ 396.1912 181.5454 null] >> endobj -1708 0 obj << -/D [3620 0 R /XYZ 71.731 134.8015 null] +1709 0 obj << +/D [3631 0 R /XYZ 71.731 166.4372 null] >> endobj -3619 0 obj << -/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R >> +3630 0 obj << +/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3665 0 obj << -/Length 2003 +3663 0 obj << +/Length 1893 /Filter /FlateDecode >> stream -xڵ˒��_��j�C �}�Z������%� ��Pʳ�קݠ@�Ҏ]NM���~���(Z��-�H�1�2K�>|;�����@?�>��NjR�����" C��E��c)�4*�Ϳ��W�A�O�L�e,h��94]c`��v���i�ߦm���������<�sQ�ᡄ#ԭ�2^D��Q����a&�(/���(P��X���p�3(�����E #����H� -`Ae˪W8I��ߐFu��A3�0T�~g��n~ CYӶ���4G4��~���=�3K��>�f�+�����w�/���v�ۂ�W{E���:k��[�b��͜k�ZŠ*")�4J�*6�A;K��#*m� пW�p���f3�n����k�9�Sնg&��{gsj7�A��ʘ��5D�2媮�qx�կ�� �:{��~�j�Q]�6��{�RO�Ats������Y��NZ|��>�t`@8�F�o�ֽ��I�+�%Ҕy�����ɨސ|���d��T}\�Լ.��<�B� ���T�&�r|�,�0UGj���'\�Z�Ҭhd'�[�L<�Bv���<�ˑB�/D�I���˸�> ��'����"�a�E��c�g~v����_+�� -��dB��w%�q�V�J��C��4���.{�x卽jR�U;����g�A���'���d��x"�W���y�j�{�vX�jUexA"���[�R��\�m� �^�3c���|m�3d���jNiv�M -)�,L�6�l�0��(QJ��ۉSv%3��V:2��ݪkj5���mө+��Q+c������B��L��(͗n�מJA���ZE�J��Ίy �6��(s��b>k3L�QF�uxM e��5��Ys��Ǒ��y���2�_9M�E� W }58ϩ�D�2n��Ȥj�����7h���x���!42����NG5[�M���˟]����9Ճ�u:���^���`�����./�����a�(C1Ne�p�,̔n�ޠ�` -4lz}6ēi��W�tMI�v�A�d�xOi̤O�h�w7TM7�����j!1}����p8͘cU�狁m��ց���X%�{7,������y@�o��˻7l�߷o�C�ה'7l&Uq�5�Ȼ���/E��7��A=P����}W�3,ߡ"�О(��hV��TG�-]@*�HQ�u'-��$�,�Eΰ���zQϯ�s�2�y��߰���2 -�L�[f��;,�P��6�b)��n#�=%�>4ݫ���B"9��0\^�|� ��(�y8�i�+�O�(DF��/��\�F��l�K"]��s͏�z.�z��:�?�hk���_/��n/t��BG�(2`��m<�n�P����̰|��<�6��wέY����2���1���&��ffo{M�w��j"�؆0�q\�v���o{�MVF�:��x��y�R��θW�5�Q;`�ZFt -@c�oym����o���RcMdR�"KƖJ��j�mC?���"���]Y"�<�=�/��SR 0߇Ebe��P����+�ʅg��n�ۈ�M^!�2"�>�\ zS�q&ⲜMuR$e�q�=.�'BJ`�o]���f�/w��^5.�N�����R�V~�<m� P���p�q����4~T����/�9�Hvd��.���|@:��z�Qe��+�� -����#ۄ���S�O��G�IA��r_��W�գUл'��W��1M4���:C��̛��F��6��.-wO�i�;��D-{h�A�!-�i�o�=+3ѯ��8�����0)��a��W��tih�z�¶=X����<�r��8ܜ8� 1O��_r�O䜦fV^�K�B-˩p��`��4_у�~=��!��c�qG�~(�$��ޜ��M]�W�8E� ��M7�-7� �p��|J�w՚����,}kK���k�(s����$�0ŝ˓@����/,��,)d�0*ˑ�-�»���0���N'endstream +xڵYK��6���m�ɚ�w.���t�C{��Kۃlsmue��l�__��eʖ�;�t|�����r�ONR)����j���� ,�p'�d�4s�����Oa8�E��d�x�DA � �'i�D�l�X�>�~[�;���*�����zW֥�����ԇ�柲��ٟ���>.z�q��< 75�.uT�DF"��J���Ȣ�TE&$j�f���|.w�JS����@1��z'&s����k=S���L�S]5{<;N��Ͷ���LӢ�Q�P[�'����m*�b�`�@3(~�6�j��h��y>�W��4�[�T0=lx����ݮVW�0< �[S65M(�y�[�G�8� � ��cYN��k��a��t�(C����R�D��F�UӍ�/C!�@1M�H���恆�喬�ՎгԚں\�¦ku�����o��o��6FaO?�c�X��ԏ�ЪnjA���"�����'�M�I�2���N�Ds��<�G��/Ź�,If�"��^��.x� +�w�X8r�E��g�i��6� a���;�ժ�*͘�-�f��̜�/��̶AO~fև=� �-0��1/�C�[����D�-����(Ȃ�����l}Q���g���#�C�����~�N�.����2j�m���I&�^6_�S{<9̖������ �/������(�P��{���[Ɵ�ֻ}w��+�p�`�����g opA\�8�(/�춟�T�����C��~6&�e?����<[Rݙ�8p���� &J��X�݀������ॼW�xK�9�|�fд=o��[�D�S&b�J~�</y� RA��س�zQ�]�\��(*��.ţ�q+� +Ռ�_ˈ�W��M.x�Ȋ A���z7e���O���C��I�7 �*k�p��4p)��n��++�,9����hH�3�z����q��QJB�hf����>�ƅEg�'�.�KW��veH�B�`6� �qT�||�lFD��ln�p�U����$ƌ[%�ԋ�-�3���$@p0֪���m�S5��.���L�B�O�q�T��} ~�j�/Zk����V�Y�Z� �h�p�tT��k�������z{��6�6,8F ʪ>��TO�,���J��j�:�~� �����$Af��� +#A��p��o�$�`��bUn7����\��-7:�ϐ/]��K�Ld�$��]�Օ!֡�h��D��_c�)2���K��i�����E�MV�{�\1���l]_p����U<�̰.�(!ܣ��?�G��Y>�rfS�l{�X������r�8��$�"�W�Wy*�D�o����:�=� ����uݣ�e�͞73���~1���c���.j�[�ȩ�_ 2�7�P��d}C�=�7PvT� �}c�� ޣ6|=D�X@$�oC����ߕ0�1���~�SC6�-y0�é>(yy� � n89n83�39�y����/e�ޔ+�U�8� +Ԋ*�� +v[�������#ҝ.j�Z�~+��e�>��M���8�]�o�P������!�h���t���ʜ}��$��wI�j >˜^_��4�b���} �aE(���B~�~5�k/־�4�mn}{LN�n�X&��0E�ڬ��1L�5f5e���1��D�������w��x�u�6[�ܷ�leE���B0��@�%�x�Fk�iEƈ7�Jp���c~�a +]}ļh�J�kJ��ء8k�9����d���e�.W��I������!/8N!�D���7��:��"�7X)Y�3 +?�M�1���N8̩�����8(9��?��F@oA�L�x4��ĐP2�{N���0"�_?>�endstream endobj -3664 0 obj << +3662 0 obj << /Type /Page -/Contents 3665 0 R -/Resources 3663 0 R +/Contents 3663 0 R +/Resources 3661 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3577 0 R +/Parent 3573 0 R >> endobj -3666 0 obj << -/D [3664 0 R /XYZ 71.731 729.2652 null] +3664 0 obj << +/D [3662 0 R /XYZ 71.731 729.2652 null] >> endobj -518 0 obj << -/D [3664 0 R /XYZ 150.0257 706.1179 null] +522 0 obj << +/D [3662 0 R /XYZ 235.9924 707.8408 null] >> endobj -3667 0 obj << -/D [3664 0 R /XYZ 71.731 693.6799 null] +3665 0 obj << +/D [3662 0 R /XYZ 71.731 697.6981 null] +>> endobj +3666 0 obj << +/D [3662 0 R /XYZ 260.9652 687.7163 null] +>> endobj +3667 0 obj << +/D [3662 0 R /XYZ 154.0914 674.7648 null] >> endobj 3668 0 obj << -/D [3664 0 R /XYZ 366.7665 684.5587 null] +/D [3662 0 R /XYZ 287.74 611.0039 null] >> endobj 3669 0 obj << -/D [3664 0 R /XYZ 395.8187 684.5587 null] +/D [3662 0 R /XYZ 258.7481 598.0525 null] >> endobj 3670 0 obj << -/D [3664 0 R /XYZ 396.1912 658.6559 null] ->> endobj -1709 0 obj << -/D [3664 0 R /XYZ 71.731 643.5476 null] ->> endobj -522 0 obj << -/D [3664 0 R /XYZ 235.9924 606.3321 null] +/D [3662 0 R /XYZ 276.9995 598.0525 null] >> endobj 3671 0 obj << -/D [3664 0 R /XYZ 71.731 596.1894 null] +/D [3662 0 R /XYZ 311.0217 598.0525 null] >> endobj 3672 0 obj << -/D [3664 0 R /XYZ 260.9652 586.2076 null] +/D [3662 0 R /XYZ 71.731 595.8957 null] >> endobj 3673 0 obj << -/D [3664 0 R /XYZ 154.0914 573.2561 null] +/D [3662 0 R /XYZ 89.6638 580.1198 null] >> endobj 3674 0 obj << -/D [3664 0 R /XYZ 71.731 566.118 null] +/D [3662 0 R /XYZ 208.7959 580.1198 null] >> endobj 3675 0 obj << -/D [3664 0 R /XYZ 220.5913 555.3234 null] +/D [3662 0 R /XYZ 71.731 577.9629 null] >> endobj 3676 0 obj << -/D [3664 0 R /XYZ 71.731 548.1852 null] +/D [3662 0 R /XYZ 89.6638 562.187 null] >> endobj 3677 0 obj << -/D [3664 0 R /XYZ 89.6638 527.428 null] +/D [3662 0 R /XYZ 178.1909 562.187 null] >> endobj 3678 0 obj << -/D [3664 0 R /XYZ 299.9426 527.428 null] +/D [3662 0 R /XYZ 284.4121 562.187 null] >> endobj 3679 0 obj << -/D [3664 0 R /XYZ 71.731 520.2898 null] +/D [3662 0 R /XYZ 71.731 560.0302 null] >> endobj 3680 0 obj << -/D [3664 0 R /XYZ 164.6079 509.4952 null] +/D [3662 0 R /XYZ 89.6638 544.2543 null] >> endobj 3681 0 obj << -/D [3664 0 R /XYZ 287.74 509.4952 null] +/D [3662 0 R /XYZ 89.6638 531.3028 null] >> endobj 3682 0 obj << -/D [3664 0 R /XYZ 258.7481 496.5438 null] +/D [3662 0 R /XYZ 202.6386 531.3028 null] >> endobj 3683 0 obj << -/D [3664 0 R /XYZ 276.9995 496.5438 null] +/D [3662 0 R /XYZ 71.731 529.8633 null] >> endobj 3684 0 obj << -/D [3664 0 R /XYZ 311.0217 496.5438 null] +/D [3662 0 R /XYZ 89.6638 513.3701 null] +>> endobj +1710 0 obj << +/D [3662 0 R /XYZ 71.731 477.5046 null] +>> endobj +526 0 obj << +/D [3662 0 R /XYZ 194.3607 438.1322 null] +>> endobj +1711 0 obj << +/D [3662 0 R /XYZ 71.731 434.9403 null] +>> endobj +530 0 obj << +/D [3662 0 R /XYZ 152.7618 403.6615 null] >> endobj 3685 0 obj << -/D [3664 0 R /XYZ 71.731 494.387 null] +/D [3662 0 R /XYZ 71.731 397.5345 null] >> endobj 3686 0 obj << -/D [3664 0 R /XYZ 89.6638 478.611 null] +/D [3662 0 R /XYZ 188.4422 384.7325 null] >> endobj 3687 0 obj << -/D [3664 0 R /XYZ 208.7959 478.611 null] +/D [3662 0 R /XYZ 71.731 366.6354 null] >> endobj 3688 0 obj << -/D [3664 0 R /XYZ 71.731 476.4542 null] +/D [3662 0 R /XYZ 71.731 366.6354 null] >> endobj 3689 0 obj << -/D [3664 0 R /XYZ 89.6638 460.6783 null] +/D [3662 0 R /XYZ 71.731 355.7019 null] >> endobj 3690 0 obj << -/D [3664 0 R /XYZ 178.1909 460.6783 null] +/D [3662 0 R /XYZ 91.6563 337.908 null] >> endobj 3691 0 obj << -/D [3664 0 R /XYZ 284.4121 460.6783 null] +/D [3662 0 R /XYZ 71.731 325.7886 null] >> endobj 3692 0 obj << -/D [3664 0 R /XYZ 71.731 458.5215 null] +/D [3662 0 R /XYZ 71.731 325.7886 null] >> endobj 3693 0 obj << -/D [3664 0 R /XYZ 89.6638 442.7455 null] +/D [3662 0 R /XYZ 71.731 314.994 null] >> endobj 3694 0 obj << -/D [3664 0 R /XYZ 89.6638 429.7941 null] +/D [3662 0 R /XYZ 91.6563 297.0612 null] >> endobj 3695 0 obj << -/D [3664 0 R /XYZ 202.6386 429.7941 null] +/D [3662 0 R /XYZ 365.4273 297.0612 null] >> endobj 3696 0 obj << -/D [3664 0 R /XYZ 71.731 428.3546 null] +/D [3662 0 R /XYZ 71.731 284.9418 null] >> endobj 3697 0 obj << -/D [3664 0 R /XYZ 89.6638 411.8614 null] ->> endobj -1710 0 obj << -/D [3664 0 R /XYZ 71.731 375.9959 null] ->> endobj -526 0 obj << -/D [3664 0 R /XYZ 194.3607 336.6235 null] ->> endobj -1711 0 obj << -/D [3664 0 R /XYZ 71.731 333.4316 null] ->> endobj -530 0 obj << -/D [3664 0 R /XYZ 152.7618 302.1528 null] +/D [3662 0 R /XYZ 71.731 284.9418 null] >> endobj 3698 0 obj << -/D [3664 0 R /XYZ 71.731 296.0258 null] +/D [3662 0 R /XYZ 71.731 274.1471 null] >> endobj 3699 0 obj << -/D [3664 0 R /XYZ 188.4422 283.2237 null] +/D [3662 0 R /XYZ 91.6563 256.2144 null] >> endobj 3700 0 obj << -/D [3664 0 R /XYZ 71.731 265.1267 null] +/D [3662 0 R /XYZ 363.4245 256.2144 null] >> endobj 3701 0 obj << -/D [3664 0 R /XYZ 71.731 265.1267 null] +/D [3662 0 R /XYZ 71.731 233.3003 null] >> endobj 3702 0 obj << -/D [3664 0 R /XYZ 71.731 254.1931 null] +/D [3662 0 R /XYZ 273.6017 220.3489 null] +>> endobj +1712 0 obj << +/D [3662 0 R /XYZ 71.731 190.2967 null] +>> endobj +534 0 obj << +/D [3662 0 R /XYZ 244.6004 153.0811 null] >> endobj 3703 0 obj << -/D [3664 0 R /XYZ 91.6563 236.3993 null] +/D [3662 0 R /XYZ 71.731 142.7161 null] >> endobj 3704 0 obj << -/D [3664 0 R /XYZ 71.731 224.2799 null] +/D [3662 0 R /XYZ 144.9646 120.0052 null] >> endobj 3705 0 obj << -/D [3664 0 R /XYZ 71.731 224.2799 null] +/D [3662 0 R /XYZ 327.322 120.0052 null] >> endobj 3706 0 obj << -/D [3664 0 R /XYZ 71.731 213.4853 null] +/D [3662 0 R /XYZ 107.1477 107.0537 null] >> endobj 3707 0 obj << -/D [3664 0 R /XYZ 91.6563 195.5525 null] +/D [3662 0 R /XYZ 134.8934 107.0537 null] >> endobj -3708 0 obj << -/D [3664 0 R /XYZ 365.4273 195.5525 null] ->> endobj -3709 0 obj << -/D [3664 0 R /XYZ 71.731 183.433 null] +3661 0 obj << +/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 3710 0 obj << -/D [3664 0 R /XYZ 71.731 183.433 null] +/Length 2327 +/Filter /FlateDecode +>> +stream +xڕYK�����m��D|�{��M�*�eg�R�� I�P��ǎ'����_���5��F�������OlR�!��$q�)�������N0ˁyS�������˓ �<�6��{���4�,��������u����߆�>��JW-�+}&҇����������}�8l���g�Û\�:�DGg��ya�Vÿ�@�Dl%�|��P�i|�-��Q)M�RC�UɋZ�}���m{SE�Ӆ���h��z�v�X����F�ډx�[G_G�m�^`��MɆ�z�����{�+M� �R�'�'��D�屈�+���l��=���Q[��c��V5Z^�G�����%-���5�ȟ�ؗޓ'y�� �J�H*��# +&"`4C���*T���g�"�d��*��Vh�U��*��=�42����5���c���K�7�0J���w����_ɮ��� +�#z���J���-��a0A`�Z`D�x�@Be�����r��xfP��q�<`�80lf�u����@�5�ֆ(mo��s�x�h6��@�p"�#\�v���!��X�����C�A@��d>`�TD1'��/4=�L��. gU��zOLt�,�ڷ�-d���ֺ�܆���Z�n��D��D˗QJ�L,C2�ͻ�9+��l��͞)��k%Ѳ�S��`~������c��AMDl�W��4�2Ϛ�Bb�a�=̄�rS-}�#�ߏ�X���v� >�=Dd��[R��]g3����1�V�B�_Ӈ�.��w�W}�,g�=�_��cgyQ�O�����qI��֊���(�a�N�@�|��aA6.�y��3������f�(����������iو�� |�*-1��4Ga�$4)CZ�D[bpd4��� +BmnD8����Te�)fp���pq�w�)gaJElGu2 o�\b���ao��*�hXa5�"��#�㌓�Kc���KZ�a6�ag�G�n�A��[�X���͚��. �ю[vSE蘭 p8�|�knd �(��j�D����(X���Ѵ���� +���\� +�=�]1� B�]."���I6FX���s�6�!}�g-LR��PWg�M��� �����l�q�Π0tP��g����yr)�P���j }D�B.�d��.�����%��b�!���"a^���rч�94�Bl"�^�@�_��0�Z���\�-��r/I�lu��[��d� +?Yo�� +ۺ��H�Pe�qK���� m��s�����6L�xZ��������Z�+���# ��>;��h�R8=�!�<*�"C��Hխv�\I�ap�eQ|���N`���upz�LJ�k��5hh:�� +��ݹj�j��ч*��Q ��b�U� +�z��=�R/��m�O�^����^��ږ_���*��F��yTC߷����:����K��wJ��k:���v>B�����3�3_m覆�qw�[,F@#���bh�(Y�*B7o�NjC���_&+]���s�=C�8zq��2�.��J@�zX����'�v�6 '\o��qQ��* W���|S�;٨�/��r���T�4lC��Nl5 )�S�-�2�!a�Ͻ��S�CH�$Y@�k+�K���2&b ?��iƨ�ٺ�O�=d��DT�oXJm�gP~�����) +&��#y/�`v�)�����E�n��r�Ί>N�Ot��K{i�~@�U�z���CQ&������6���CK�`FQ�6�/;0�������~BE�oil/.�+��3t�H��V�'�>&����Y��F\�G����G���r�[�3�e3M�_C�l]�\�qRG�ns���I�kn]״4�t�#�M��᷏�^WΊ�u��8�e���<�^!(��E�i�����p1�����0�J�Z�~'�G�0@eS9�+]�}�J��a !��Z�U��mi�$�}���"��b#��K�$���bq�W���#�(��ǯ~�g���}|�� ~�*�p���=,����KI2>+�.O�`��.�B�0�k����T�h�~!��$��Oh��A��]6<���`�M�i���� m$�R�x<~WW����K8�� 64]<�.oN!�:Ͼ�!�1�9fsY��-���2�S6(ÿAg���A�I�Q��6���Lj�.�)�� � �����_�cӁ�aL��qږ,��5��/M� ���\�%te�U�iY*.ƴj�(6�k�d�,Լ�xZyu�Z��Y��5�*��a'o�4�,nݺP���'(ʼL$���������+2�y>HB� ��o�� ��{endstream +endobj +3709 0 obj << +/Type /Page +/Contents 3710 0 R +/Resources 3708 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 3573 0 R >> endobj 3711 0 obj << -/D [3664 0 R /XYZ 71.731 172.6384 null] +/D [3709 0 R /XYZ 71.731 729.2652 null] >> endobj 3712 0 obj << -/D [3664 0 R /XYZ 91.6563 154.7057 null] +/D [3709 0 R /XYZ 71.731 718.3063 null] >> endobj 3713 0 obj << -/D [3664 0 R /XYZ 363.4245 154.7057 null] +/D [3709 0 R /XYZ 311.2942 695.3923 null] >> endobj 3714 0 obj << -/D [3664 0 R /XYZ 71.731 131.7916 null] +/D [3709 0 R /XYZ 71.731 675.3027 null] >> endobj 3715 0 obj << -/D [3664 0 R /XYZ 273.6017 118.8402 null] +/D [3709 0 R /XYZ 120.8687 664.5081 null] >> endobj -3663 0 obj << -/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R >> -/ProcSet [ /PDF /Text ] +3716 0 obj << +/D [3709 0 R /XYZ 319.5499 651.5566 null] >> endobj -3718 0 obj << -/Length 2255 -/Filter /FlateDecode ->> -stream -xڕYY��6~�_᷑�6#Rw^&=Af��f{;y�-�Z�:����[�*�ܓ��c�X�*?�����M"E��ʄ�#�9\���L��d���L��}�)6��bo�����E��& �H#�n���x?��k���NE��},.e]�@/��>��?˪ʷ�?��ݏO��(HD���7-�nmT�F�"c�F����HC�LD*�eI���%�`����|+}����^�]���d�u�S��*����aEz9�D$�D�s�q�uM�B��u�������:�}��?�|]̤����T��M:�ڔ[y_�Joe�tK��/k bɿ���o�v�VE��U��Y��i��C��iu�.B�H%�H��)�D���^�-*�`�]�Ҭ�h�� ->�� �ӹ\�.�<���w4њ�6�fY��\<��e�l6'q�mH�q�4S���}&P��Qn��e!dul�Ζ�v;w�Į�3�%0�A˾A+��L�;r�x��#�$BN�&$�nr7�p���UJ�>�U�J7uQt��7�����w�꼡q=c&�I����eM� �\���V|z����O� -ؠ�Z��!��/�m�_���'!���Wݴ�&�B��Aɤ-zD���.h�A�MD?h"�,]_������������#�}Q���Հ7� K�������ӷy����G���_+�4����0����0���s�+2!�$9���Te$�$ -����e�@^p���8����յ!J�[��uG�4�� ��c�!���B����.E$U6?N�茝J�B�ɤ>`��D1G���4=n�&1$R�/��z &:]|�ۅ -�p��KSI�64&��x����c�?u��$:E�T��2� ��S�v�� -�$��r�g�h��J縳/S��`~�����g�@��4�/("�z �z�i�au� ��j3N�ґ�流J��P��%�(g��d淭{AiL�V�A��qJ�� ���>�s��8�ߓ�Kps���"L&�P(${��5.(|}�2 e=.� (o?o�� �D��wᇉ{�w���-����X�����iڈT���Д�z�p��9�pH%��#[?�<��!!T抗���44Uj����%9���c�Y�*�<�B�^ Ȼ�=h�A -�Y�i��`�BAX"<�8ɻ4�,��В��;�>}5 b��4�Bj٨9Y�"����q���:f�8������BJJ��ǡC��9��u/��m�/d�Z�e-Qރ�%3[ ��r#[Q�$oF���TsD6�!}�b�[��z#���N�p'${1��&N����;����r\c�]�b�R7.�R��]�K?!�[�/�<w�m�{�v,�3u!����F�y�\4�Iݩ��"��F�yv&j"�罔�{�b�/�D难��߭y[�R2����!p�OyUi�<�l���ݖ&�wʭ ����� -��u#�����}���X8����y��i�0�m��¢D�����ϙ����U�(�N��9���Ef��+�o[�I�_�����<IF�<�g��ܘ*�+,�rݸ�yZ�J�^��B�P�B�]�+%�8L�� �Xw\�`u�+*���4�F6��+GPI@|j�,ʎ��/���� Yy��Cǁ=t^�y�G(t�o�):���hXw��r4�h,�&Q��^E�f�b ���;�G�a��]�9�^�~`�:�S���ˋ��s��zX��]@�L�4���9�ȁ�*�{�\S�u@�ml4��:��lið��0.�ҫiH79�>闡{����uo��=�$|�@��������닉XB�O�Dt�1*`�*�gVQ�<�����R�� �_yg)k~&[<R-tE�.�`V�xC��Hbߍ⿔n��tτ�1��a�mױ�O�]�x��A-����Gq��?���- �����������{#��D�o�0�-K��)�u4Rˮ��Q��$�e2+�v��3��?�W��N�?ZX#��Q��4��Z��[W5W���ѱ�\m�~�mßY�5- )��hx���;w�&O��1{�FR�]�R�G�,��ȦǗ�9�br+��0� -����VB�G�Z�͛�Y_և�/�r8r�ħZ�U�Q�4+��p˾�\�q7ⶥ�~(� VܛhH�~�a$�kt��K^J0���f�����"�q��ߋ&<�.��T�2�I�N���V���mendstream -endobj 3717 0 obj << -/Type /Page -/Contents 3718 0 R -/Resources 3716 0 R -/MediaBox [0 0 609.7136 789.0411] -/Parent 3577 0 R +/D [3709 0 R /XYZ 448.3736 651.5566 null] >> endobj -3719 0 obj << -/D [3717 0 R /XYZ 71.731 729.2652 null] +1713 0 obj << +/D [3709 0 R /XYZ 71.731 631.4671 null] >> endobj -1712 0 obj << -/D [3717 0 R /XYZ 71.731 718.3063 null] +538 0 obj << +/D [3709 0 R /XYZ 242.592 594.2515 null] >> endobj -534 0 obj << -/D [3717 0 R /XYZ 244.6004 707.8408 null] +3718 0 obj << +/D [3709 0 R /XYZ 71.731 583.8865 null] +>> endobj +1714 0 obj << +/D [3709 0 R /XYZ 71.731 571.9702 null] +>> endobj +542 0 obj << +/D [3709 0 R /XYZ 214.9999 539.6563 null] +>> endobj +3719 0 obj << +/D [3709 0 R /XYZ 71.731 531.0188 null] >> endobj 3720 0 obj << -/D [3717 0 R /XYZ 71.731 697.4758 null] +/D [3709 0 R /XYZ 71.731 513.5891 null] >> endobj 3721 0 obj << -/D [3717 0 R /XYZ 144.9646 674.7648 null] +/D [3709 0 R /XYZ 361.8061 502.7945 null] >> endobj 3722 0 obj << -/D [3717 0 R /XYZ 327.322 674.7648 null] +/D [3709 0 R /XYZ 490.9416 489.8431 null] >> endobj 3723 0 obj << -/D [3717 0 R /XYZ 107.1477 661.8134 null] +/D [3709 0 R /XYZ 71.731 476.8916 null] >> endobj 3724 0 obj << -/D [3717 0 R /XYZ 134.8934 661.8134 null] +/D [3709 0 R /XYZ 71.731 456.8021 null] >> endobj 3725 0 obj << -/D [3717 0 R /XYZ 71.731 656.7326 null] +/D [3709 0 R /XYZ 320.7944 446.0074 null] >> endobj 3726 0 obj << -/D [3717 0 R /XYZ 311.2942 630.9292 null] +/D [3709 0 R /XYZ 71.731 438.8693 null] >> endobj 3727 0 obj << -/D [3717 0 R /XYZ 71.731 610.8396 null] +/D [3709 0 R /XYZ 89.6638 418.1121 null] >> endobj 3728 0 obj << -/D [3717 0 R /XYZ 120.8687 600.045 null] +/D [3709 0 R /XYZ 219.6243 418.1121 null] >> endobj 3729 0 obj << -/D [3717 0 R /XYZ 319.5499 587.0936 null] +/D [3709 0 R /XYZ 71.731 403.0038 null] >> endobj 3730 0 obj << -/D [3717 0 R /XYZ 448.3736 587.0936 null] ->> endobj -1713 0 obj << -/D [3717 0 R /XYZ 71.731 567.004 null] ->> endobj -538 0 obj << -/D [3717 0 R /XYZ 242.592 529.7885 null] +/D [3709 0 R /XYZ 89.6638 387.2279 null] >> endobj 3731 0 obj << -/D [3717 0 R /XYZ 71.731 519.4235 null] ->> endobj -1714 0 obj << -/D [3717 0 R /XYZ 71.731 507.5071 null] ->> endobj -542 0 obj << -/D [3717 0 R /XYZ 214.9999 475.1932 null] +/D [3709 0 R /XYZ 134.39 387.2279 null] >> endobj 3732 0 obj << -/D [3717 0 R /XYZ 71.731 466.5557 null] +/D [3709 0 R /XYZ 109.8678 374.2764 null] >> endobj 3733 0 obj << -/D [3717 0 R /XYZ 71.731 449.1261 null] +/D [3709 0 R /XYZ 71.731 372.1196 null] >> endobj 3734 0 obj << -/D [3717 0 R /XYZ 361.8061 438.3315 null] +/D [3709 0 R /XYZ 89.6638 356.3437 null] >> endobj 3735 0 obj << -/D [3717 0 R /XYZ 490.9416 425.38 null] +/D [3709 0 R /XYZ 192.792 356.3437 null] >> endobj 3736 0 obj << -/D [3717 0 R /XYZ 71.731 412.4286 null] +/D [3709 0 R /XYZ 384.0197 356.3437 null] >> endobj 3737 0 obj << -/D [3717 0 R /XYZ 71.731 392.339 null] +/D [3709 0 R /XYZ 114.0123 343.3923 null] +>> endobj +1715 0 obj << +/D [3709 0 R /XYZ 71.731 320.4782 null] +>> endobj +546 0 obj << +/D [3709 0 R /XYZ 172.6073 285.0112 null] >> endobj 3738 0 obj << -/D [3717 0 R /XYZ 320.7944 381.5444 null] +/D [3709 0 R /XYZ 71.731 276.3737 null] >> endobj 3739 0 obj << -/D [3717 0 R /XYZ 71.731 374.4063 null] +/D [3709 0 R /XYZ 389.4099 266.0822 null] >> endobj 3740 0 obj << -/D [3717 0 R /XYZ 89.6638 353.649 null] +/D [3709 0 R /XYZ 458.9373 266.0822 null] >> endobj 3741 0 obj << -/D [3717 0 R /XYZ 219.6243 353.649 null] +/D [3709 0 R /XYZ 71.731 248.0499 null] >> endobj 3742 0 obj << -/D [3717 0 R /XYZ 71.731 338.5408 null] +/D [3709 0 R /XYZ 176.4672 222.2465 null] +>> endobj +1716 0 obj << +/D [3709 0 R /XYZ 71.731 205.1458 null] +>> endobj +550 0 obj << +/D [3709 0 R /XYZ 249.3775 167.9302 null] >> endobj 3743 0 obj << -/D [3717 0 R /XYZ 89.6638 322.7648 null] +/D [3709 0 R /XYZ 71.731 157.5652 null] >> endobj 3744 0 obj << -/D [3717 0 R /XYZ 134.39 322.7648 null] +/D [3709 0 R /XYZ 135.5078 147.8057 null] >> endobj 3745 0 obj << -/D [3717 0 R /XYZ 109.8678 309.8134 null] +/D [3709 0 R /XYZ 86.3732 134.8543 null] >> endobj 3746 0 obj << -/D [3717 0 R /XYZ 71.731 307.6566 null] +/D [3709 0 R /XYZ 220.9876 134.8543 null] >> endobj 3747 0 obj << -/D [3717 0 R /XYZ 89.6638 291.8807 null] +/D [3709 0 R /XYZ 71.731 114.7647 null] >> endobj -3748 0 obj << -/D [3717 0 R /XYZ 192.792 291.8807 null] +1717 0 obj << +/D [3709 0 R /XYZ 71.731 101.8133 null] >> endobj -3749 0 obj << -/D [3717 0 R /XYZ 384.0197 291.8807 null] +3708 0 obj << +/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F35 1752 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 3750 0 obj << -/D [3717 0 R /XYZ 114.0123 278.9292 null] ->> endobj -1715 0 obj << -/D [3717 0 R /XYZ 71.731 256.0151 null] +/Length 2541 +/Filter /FlateDecode +>> +stream +xڝYm�۸��_�o������].��M���C�+YҮ�Ȓ!��u}��7��+r8g�i�r�O�b�b>^��(�V��z��?��²������ͻ�}��4���a����$]ž��P'�]�o��!; e��z�����?Ǫ�z�W�#�~<?����l���/o>���C?Vi+�����RG�_i��H��ٮ�(?�cR�W� +�F����XTk��??�^�uQ9�[�vW[���KI�n��N���)A�b���\��߮���r��S� U�o���~ࡼ���l��<Մo���j�2SS�u�<��At���E��]u��QL�2Q� <"��hQ�ҞE�����c�V"�x`v�a��Ȏ�z�����۵:O��� �k(�8��`�(�T��P��6C�v�Ki��}��%\���K�������Ki����p�x�#0k���UA���=������8�=�h�8?Cà����ˡ�h��?-�� +��I� �>���h��Ւ�=h�e�+��1�0�I�Qq�/e'����ybP�w]���^�%�23`a�̚�l� ��w��Dz��W>Id,�r��q.�H�0v�W4H��}� ��VܙD� a�^��?�م�N��c�/���=�#�DBݶ_%iu�:��� �����j�"S�d�cva;�m3d��b�`Z��o�(�����Ϧ��B���.��f,L�yy���Ѥ�� �)��^�pj�Y2�0����'�����QO/��.�1�<��:[�����n6���aߪ�v�j_����؇����Ĵ'z ��aC��9�a�&2_��~%��6�M��I�� ���i�b0G�� Ð�#$���=��m����g�9d�gPݚ��P8��P��� +*����!x%� f���q�|��M���:�`�ȏ`߇l�A�T��c�ajd���S_�9�����]dA����<��L� ��Mq��$�Q6 �NmĊx:T�a.��y��A4|���˗�V���8ׄ�&��ᦈ��/AYQ�]���±�D��gŭ��,�,y�x�B�E�r5.6�}�:a��� 4�sĺoa�&�Bp'$Wl@D�x�zLn�7Ӱr"�bgrND'!Ul�M'�m�v�!k�`�{d(�p��1�`�0��F�˻�VW�D�����b:��V��|��'��>_EnQbRh��X�݄Hs�y��9��2�f9+�Сf�`��r ��ɥ0�6f���n�ߗ5T��ßϬwx�آ�R�=q��Ķ�*�����Z�;�ܣ��֨������e�<K��|)���o�����k�h���S�齩�0�<{��(o� +��eM_�q{鷛I�I���$W���bJ \V-��=�J�C����yr�is�y·т<q<�`k�~Hjcg�%��9��,������1�.�t�ф��oeX�'D�>�8�aK|������t�7�'���ܝO�5���Kyx�����z<WQ�̣0M�(�6E!|?>[Q���x�hs�u��j/������� ���&&:���и��BcsS��^�-'�ک�~{�.��l�=��p�� +���Q��<"@1��Vh,��~����m�C���c�f{�����C(�����E���� +��\�@����@f�����n/�H%�p`�� ���ZT�9d�]L�[���ۗ�X�NKTy�:�FTicO�R�Y\jlr�!�9禀JM�M�j/\�)G)���*yp�R%?o�x(vo{H�PkW�.��X{����+���R�7*�'�t�ߤ`<F����t��rOl+����䷈ß��rA�/K�+������Fw�����x9��Ç��<���jљ�ʮ��M�!���5��J����\-WuW� ��L�|�iσ��F2�ެ�@�_6��c mD\��4S�����Sך�U�,�*=B��]���9�0~��0��ā���Z,l�+'�;�H>��������^>�K��5 +� �<Иp��B*�{����@�v�O/p�mzc^N<S�K��s%s�]Xq�=��p��S���Z�_L"τ�6X�U���9;����p�\�-��;��i\1 A@�R5�1r�F� �Tl%|Y���6p}�����M"���3⭇�#��]b_��Y��։��3>�썊���#�Y̮g��z�Q@��CiJ�G��}�r4�������Z��ed�$�g��EY����@�pSl����.��TL���-n���9#�^h|^J� !��O��)QR��rE�rf�/�4)%34F����r0���0�1H�1d�\�����;���?�&8N��D�R���9Hb&fL�W��p���o�ƶ��u�q?�3����=Z�w���p��w�n��*�XL�>[oh�廾}��=�*��2���_o�� Q���W�x^��z�ru���Ѐ�w��˅���endstream +endobj +3749 0 obj << +/Type /Page +/Contents 3750 0 R +/Resources 3748 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 3796 0 R +/Annots [ 3754 0 R ] >> endobj -546 0 obj << -/D [3717 0 R /XYZ 172.6073 220.5481 null] +3754 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [173.9566 673.6838 235.7246 684.2141] +/Subtype /Link +/A << /S /GoTo /D (flags-create) >> >> endobj 3751 0 obj << -/D [3717 0 R /XYZ 71.731 211.9106 null] +/D [3749 0 R /XYZ 71.731 729.2652 null] +>> endobj +554 0 obj << +/D [3749 0 R /XYZ 193.2056 708.3437 null] >> endobj 3752 0 obj << -/D [3717 0 R /XYZ 389.4099 201.6191 null] +/D [3749 0 R /XYZ 71.731 699.7062 null] >> endobj 3753 0 obj << -/D [3717 0 R /XYZ 458.9373 201.6191 null] +/D [3749 0 R /XYZ 247.7597 689.4147 null] >> endobj -3754 0 obj << -/D [3717 0 R /XYZ 71.731 183.5868 null] +1718 0 obj << +/D [3749 0 R /XYZ 71.731 669.6987 null] >> endobj -3755 0 obj << -/D [3717 0 R /XYZ 176.4672 157.7835 null] +558 0 obj << +/D [3749 0 R /XYZ 201.1796 636.0149 null] >> endobj -1716 0 obj << -/D [3717 0 R /XYZ 71.731 140.6827 null] +3755 0 obj << +/D [3749 0 R /XYZ 71.731 627.3774 null] >> endobj -3716 0 obj << -/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R >> -/ProcSet [ /PDF /Text ] +3756 0 obj << +/D [3749 0 R /XYZ 165.864 617.0859 null] >> endobj -3758 0 obj << -/Length 2264 -/Filter /FlateDecode ->> -stream -xڝYm�� ���"���%�o?����[ඇn��[,G���X�����ח)�ř��4EQ������O�)��**�Ԫ8��WG���"[�َ�~ڽy�K�2��*^�W���O�U(�F2]���N����z�"�=<�˺l�_�Gb�t=����|���_���GA"�Vx��^��F�d(�0Vh�ۮ��4���@�"B˒��2`�FI�;�h�KF{�W[����j��S2�{1W"N�Z���<M��d �}V*Ї�+��bj]w-pB���\�mi��La��D�T���#Q�u -��� -��9O��s^���7��,���G-�|���+������Jd��.I[��-����0��J�OM���K i �bLt �'!���;s+���@�E7zCSx��D�+]t4�tҰ`3�,���u��-�wz���g?� #������D|�� ?n��M��at]^���.��~E@t�`�?9�]�KO��8I;�8�j^�\DYäG��±ڙL��ݼ�{�?�Ex���eC�,`քm��d SZp�@�I�]�8_�P��$�$��{�e�u�4��sO�"S�Ue��eq���r��(�Z�\I֕�ݐ$o� -�>���˟آ�t�;��P��Ϭ�c[xj�`�A�ES^0�qv�� ��A�W���� ��m����4g������ue�*�4`F���$���(I<��"�Km�bT�ǁ�Նv~�,�Jd -��ۡ�<�J��������8��"v�2�f � }�i0°b?`��n�q��$�8����1 -9��*S�}X�HW6� ���B0|����̖d��癗F�P�,b�@w�h5��X���5�y"PO�}��C˂�R��K�����w��0�:1�E�Ɠ����c���R)ڝ�&&�{��W��2�������eP���{<����_(�8{��w=���ꦥyO'���P�%�vlPC�Vw��(�ks�;�✿�)b��:�����7�yUr���.s���ɛ��xX����9�糫@y��I��S�ѢtS�f?c [oa���O|�N��.2���4N�>y��%˞MӫU��:c�ʵ��r_���Ц�w�T]y!��<�O��� �S�rۧK�k`�-6l�}:q�_<��¨Kq'ݼW$�k��w��]js�]����#�2��w����J:�63����ó��L�k�^ř��-p���}���PF��Ϛ��k���6�W��\ba�DN�02�˖Z���>�(���'� ;�r�9kA�:�õ�XҺ�X���Z�ȱ���:�m�1�p���G���/�F4!"��r�>� 9�ύ7e%jzZl�(��P�/;��jo�Qx�B��D��2P�LGC/ַȂ\.�Ŧ�}o��P8<�����[8~\FEN��H@J< "�W7��x�9������AB.�I�N;�m(�,��F��:��p��ylX6Ġť����,���|W��aLw���a�y���AcU�Y�y��Hw�D�@���n�Q���'��K@����fi,��M�л�Zz�F���)�[K��AlTUY=���%��Jo�d�kT����}ހs�bWO��T!�7]g����qv�d��\�`��S�q�z� ^���n+pn��f3��f�+g��� ��q=.+������D�l�R�>�>�=�����c�K��Bk6�L@���"g9`��lG����SJ�b���gv�n�ů -�B�����G5)������q\_�\ -Iu_��I`��Kux��f>�)��n�kE��Y6d!�6���y���CJ��S�w�K��F��'&]�d� -���Y�c<���yjd656w��r��(��J� $�ݥ���R�ǀ�PW�$<X�m��{�R� -�R�QAw\��nrwx�qO͉C�x�!���.p�������14^1~���k�m�:�.�$�~�U$c�f,�}ₖ�5���u)w��q7)�S -6O�/�0g��R�;�NVI�O5��(�zң&�RXy�����x��"�*Z�)���nJ� �/�J��a�9B�?B2�fX�r";{�[/�PA�]���QƼEO��*c1���Оy.� �.�F�I�� -o��D��-������0�ۖg�~W�Ă7�b���ï����5ގ>����;���y��7�4�� �$���>�"�q��1#��c"� -_fY� -���_W�/�V��endstream -endobj 3757 0 obj << -/Type /Page -/Contents 3758 0 R -/Resources 3756 0 R -/MediaBox [0 0 609.7136 789.0411] -/Parent 3800 0 R -/Annots [ 3768 0 R ] +/D [3749 0 R /XYZ 71.731 604.0349 null] >> endobj -3768 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [173.9566 574.75 235.7246 585.2803] -/Subtype /Link -/A << /S /GoTo /D (flags-create) >> +562 0 obj << +/D [3749 0 R /XYZ 142.614 573.7484 null] +>> endobj +3758 0 obj << +/D [3749 0 R /XYZ 71.731 568.5629 null] >> endobj 3759 0 obj << -/D [3757 0 R /XYZ 71.731 729.2652 null] +/D [3749 0 R /XYZ 71.731 535.7261 null] >> endobj -3760 0 obj << -/D [3757 0 R /XYZ 71.731 741.2204 null] +566 0 obj << +/D [3749 0 R /XYZ 166.0159 505.0062 null] >> endobj -550 0 obj << -/D [3757 0 R /XYZ 249.3775 707.8408 null] +3760 0 obj << +/D [3749 0 R /XYZ 71.731 497.9278 null] >> endobj 3761 0 obj << -/D [3757 0 R /XYZ 71.731 697.4758 null] +/D [3749 0 R /XYZ 511.1135 487.0735 null] >> endobj 3762 0 obj << -/D [3757 0 R /XYZ 135.5078 687.7163 null] +/D [3749 0 R /XYZ 106.0422 474.122 null] >> endobj 3763 0 obj << -/D [3757 0 R /XYZ 86.3732 674.7648 null] +/D [3749 0 R /XYZ 71.731 466.9839 null] +>> endobj +570 0 obj << +/D [3749 0 R /XYZ 156.7607 436.264 null] >> endobj 3764 0 obj << -/D [3757 0 R /XYZ 220.9876 674.7648 null] +/D [3749 0 R /XYZ 71.731 429.066 null] >> endobj 3765 0 obj << -/D [3757 0 R /XYZ 71.731 654.6753 null] ->> endobj -1717 0 obj << -/D [3757 0 R /XYZ 71.731 641.7238 null] ->> endobj -554 0 obj << -/D [3757 0 R /XYZ 193.2056 609.4099 null] +/D [3749 0 R /XYZ 71.731 405.3798 null] >> endobj 3766 0 obj << -/D [3757 0 R /XYZ 71.731 600.7724 null] +/D [3749 0 R /XYZ 266.7311 405.3798 null] >> endobj 3767 0 obj << -/D [3757 0 R /XYZ 247.7597 590.4809 null] ->> endobj -1718 0 obj << -/D [3757 0 R /XYZ 71.731 570.7649 null] +/D [3749 0 R /XYZ 71.731 379.4769 null] >> endobj -558 0 obj << -/D [3757 0 R /XYZ 201.1796 537.0811 null] +3768 0 obj << +/D [3749 0 R /XYZ 71.731 372.3388 null] >> endobj 3769 0 obj << -/D [3757 0 R /XYZ 71.731 528.4436 null] +/D [3749 0 R /XYZ 244.2357 348.5928 null] >> endobj 3770 0 obj << -/D [3757 0 R /XYZ 165.864 518.1521 null] +/D [3749 0 R /XYZ 397.3909 348.5928 null] >> endobj 3771 0 obj << -/D [3757 0 R /XYZ 71.731 505.1012 null] ->> endobj -562 0 obj << -/D [3757 0 R /XYZ 142.614 474.8146 null] +/D [3749 0 R /XYZ 111.0175 335.6413 null] >> endobj 3772 0 obj << -/D [3757 0 R /XYZ 71.731 469.6291 null] +/D [3749 0 R /XYZ 279.6199 335.6413 null] >> endobj 3773 0 obj << -/D [3757 0 R /XYZ 71.731 436.7923 null] ->> endobj -566 0 obj << -/D [3757 0 R /XYZ 166.0159 406.0724 null] +/D [3749 0 R /XYZ 71.731 322.6899 null] >> endobj 3774 0 obj << -/D [3757 0 R /XYZ 71.731 398.9941 null] +/D [3749 0 R /XYZ 345.1534 322.6899 null] >> endobj 3775 0 obj << -/D [3757 0 R /XYZ 511.1135 388.1397 null] +/D [3749 0 R /XYZ 71.731 315.5517 null] >> endobj 3776 0 obj << -/D [3757 0 R /XYZ 106.0422 375.1882 null] +/D [3749 0 R /XYZ 226.9571 291.8057 null] >> endobj 3777 0 obj << -/D [3757 0 R /XYZ 71.731 368.0501 null] ->> endobj -570 0 obj << -/D [3757 0 R /XYZ 156.7607 337.3302 null] +/D [3749 0 R /XYZ 485.4103 291.8057 null] >> endobj 3778 0 obj << -/D [3757 0 R /XYZ 71.731 330.1322 null] +/D [3749 0 R /XYZ 71.731 271.7161 null] >> endobj 3779 0 obj << -/D [3757 0 R /XYZ 71.731 306.446 null] +/D [3749 0 R /XYZ 109.3962 260.9215 null] >> endobj 3780 0 obj << -/D [3757 0 R /XYZ 266.7311 306.446 null] +/D [3749 0 R /XYZ 143.7536 260.9215 null] >> endobj 3781 0 obj << -/D [3757 0 R /XYZ 71.731 280.5432 null] +/D [3749 0 R /XYZ 388.8861 260.9215 null] >> endobj 3782 0 obj << -/D [3757 0 R /XYZ 71.731 273.405 null] +/D [3749 0 R /XYZ 134.6438 247.9701 null] >> endobj 3783 0 obj << -/D [3757 0 R /XYZ 244.2357 249.659 null] +/D [3749 0 R /XYZ 226.9412 247.9701 null] >> endobj 3784 0 obj << -/D [3757 0 R /XYZ 397.3909 249.659 null] +/D [3749 0 R /XYZ 71.731 235.0187 null] >> endobj 3785 0 obj << -/D [3757 0 R /XYZ 111.0175 236.7075 null] +/D [3749 0 R /XYZ 146.7192 235.0187 null] >> endobj 3786 0 obj << -/D [3757 0 R /XYZ 279.6199 236.7075 null] +/D [3749 0 R /XYZ 71.731 229.9179 null] >> endobj 3787 0 obj << -/D [3757 0 R /XYZ 71.731 223.7561 null] +/D [3749 0 R /XYZ 71.731 184.0449 null] >> endobj 3788 0 obj << -/D [3757 0 R /XYZ 345.1534 223.7561 null] +/D [3749 0 R /XYZ 71.731 184.0449 null] >> endobj 3789 0 obj << -/D [3757 0 R /XYZ 71.731 216.618 null] +/D [3749 0 R /XYZ 257.935 173.2503 null] >> endobj 3790 0 obj << -/D [3757 0 R /XYZ 226.9571 192.8719 null] +/D [3749 0 R /XYZ 439.3913 160.2989 null] >> endobj 3791 0 obj << -/D [3757 0 R /XYZ 485.4103 192.8719 null] +/D [3749 0 R /XYZ 146.1379 147.3474 null] >> endobj 3792 0 obj << -/D [3757 0 R /XYZ 71.731 172.7823 null] +/D [3749 0 R /XYZ 222.4669 147.3474 null] >> endobj 3793 0 obj << -/D [3757 0 R /XYZ 109.3962 161.9877 null] +/D [3749 0 R /XYZ 281.2438 134.396 null] >> endobj 3794 0 obj << -/D [3757 0 R /XYZ 143.7536 161.9877 null] +/D [3749 0 R /XYZ 435.614 134.396 null] >> endobj 3795 0 obj << -/D [3757 0 R /XYZ 388.8861 161.9877 null] ->> endobj -3796 0 obj << -/D [3757 0 R /XYZ 134.6438 149.0363 null] ->> endobj -3797 0 obj << -/D [3757 0 R /XYZ 226.9412 149.0363 null] +/D [3749 0 R /XYZ 71.731 127.2578 null] >> endobj -3798 0 obj << -/D [3757 0 R /XYZ 71.731 136.0849 null] ->> endobj -3799 0 obj << -/D [3757 0 R /XYZ 146.7192 136.0849 null] ->> endobj -3756 0 obj << +3748 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F48 2196 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3803 0 obj << -/Length 2355 +3799 0 obj << +/Length 2203 /Filter /FlateDecode >> stream -xڝko�6��� -��:�^�c�a�l�Cڻޢ��(��mѶ���Zr�鯿ΐ�% ��̐3��t���/^qX��I�0�E��to��H�x3�5�\�L��o��>MUX�I���.�( -���E������}����^Fu\^'" -Ґ�7u������������i[����o��w�EZ�U ^��q=�1)<�n�2L��0����(�'�#��N>0�VmF�%}>u}���f����3�f,�i~��dC���;�^����ev�G��F�W˸�g�p��hr�� -� &����qf6���H�Q��J@X�Ǔ��,���VA�f�Z�7�/9�s�N��J!���5�F��F�paF�� -�ph�KFߞ��x�m�mV��vj�N�(��2���X�'L�������8Z��@��Do�\�B��� ��K6Cm�n ��Bئ ��w_dwh�[�<�,���0�S�WK!T�̃�Dl)8��s�*`$q\�n[F� �{��?���>��W�Ɉ�1�ā�6Ⱦf ��W��B��R�KȞ�PA��Uq�*GAG^�]��>WŎ++���8�7�~mMZ� -0�,�,�=WA���UD� --�e$t�k���e�ad[W��G*$����� -7��� E�/TI厐hy��]��G��z�'S+`L>*v�L�k�X^�Ec^�&=9���+�0α��4d�дz'����j:����<�~`-�s��!�$\o���p����pd[�j�I+���D��L�#�C:�b��������L]gM>�>ꕫvΦ=�V��2���~�tӣn��>�A�r���2����2n��0%"+ϋ ����S7 �P�Ih�(Ao�iYd, �������L�qu�����;L�k���X�zSd��f�_cD�����k56]į�54�!q��_20x.��1���̞ -$t�,�`�|[�Z�ʆ]��d�x��r&L�܆����ޛ������$I18͉��fϙe�/��5*p��MHI��viW������TS[p��䑰k��G�8�X�K�}��+�5/&'o�k���b� /�rH881�+''��Nd�Lk; ��2Eg��VD��(a���q����rK�iyf�5������&}(�Q1�Q9 3q��¹EDV����兎�|EG�E��4Qq|�7 ���`�G�~D�XK#"�"��W4����y��<o���iO�%�ӌ����bqzH��^ ʵ�,�y�7�Wl��o 6��Qq���=�����\p)��{Ɵ���-�u�-0�L3�zita#ἢ�r�,�:�H�f -��d�o�8S�R.�i��*1���_�Q/��Z�r mk5�/,2���BA>��uGH��|͂��m��m+f�+�)5syf�<`�ǃ������MC���+O�f�6���'�gLW -۸�j"�?�U,�u�\yJ]y��N��O�������f�/wL�N[��4t���;V��������s�#�b�����-�֊�h��L�4��K��&��Ӗ�n6������� _I4�+"�,ٞTH��^B��3:�Da�0z݈%�W�e��Gf2l[5��owp uG.9@�Nf�}-�����~�gMa�����eA��}yȹ<���8��h_Q#~r&b�N�yV��[����vd -&�ъlM��>�)�7�. ���� -F�6j4䔷|N�;j�͌�.��A���Pr~5͢��ծ9Oq� ?�G��e,�n��ֿ�o�1�+ܾ_����,l��ޏl����M]T���QF\����_e�<j"l͛QQy Y��iE��B!��9L �toD��N���x�j��i�o��Ҽ�O��9��B��"���]D��+�:;����8������r~����6������3��~x��r�{��� ��2�uب�,���c0�$�W >��5�������0�� �q����'���P/�qH3�������K��|=(K&)��=���$�Eg -7���Ͷ!�y@D����^��Rl/%hK_|�����B��>������3�_��͡��Ϋ���5Cp�u}Z���EAE�[���|E�'��)��R�K��G��v��]���Yp��+�3�(XX������fT��e��k8��m���ff*��ej8W���3!o:`H��a��%6����K] A�q� �wa����j��X7��E�uk�2&�sG�%3N� ��E~6��×�IM�O��LJ@���4}ۦk曹���O��F��GpsW8�c���Gc��fדF_��}�k��˟}�����8�^�U��y���H�0��ʭ��鳿2�� O �endstream +xڝ˒�6잯���V$������&��9�8�C�-Ѷ=\I�f����le���̒@ċ��/<����&b�8��z�-�����$k�Y��n��^� �����"^l������K7�$n��b�����W�r-"� \o�E} ����(K��s�ó�[�< +w��G%�T�2��HFs[/u�0H������+��KR�}҆�����%��Rx����HFz���A�}S�C���n�J���B�;6K9��;�h,jey:ʝ�L�Dߴ9(-��(��i|h�Dp��=G�=����x��8f^3$p^,}g�t{�*:���[�&<'�5�)÷��~Dy�ҏHMZ1��D~��)<<NPR���EÚ�@JfG���y�<��0J���g +I��niNꚖ����e�[O'%[��ԾiiG�)%N�s,GŻ���d����Q2�Q����jNE���d��hc�x����u�hg���i>v�RK�"�e8��9^��'�W��=1L5ި�#5y�|��<�f��!`��0QR����"��5K�f�wm��te#����O�:���L���+�s �]�ߟZSCn��8p��{��Aď��i����V�f�?�'������o�b'�۴�q�����v��ۣ��{�F-�8��A�uځ�\&:�_�\��W`4�͵nي��V�ԟF�?����/���<����7L�:���������z���n����m�D��� MnL����{�:���A*��-�b`�;��0�O��粗;�)�j`8��f +���o����t{z`a��chjEV���Q���84y ��I�4�.S�$� ��pE�s�U���H0���H�}����Ƃ�,��O��O�䙋���Y�ZE�o�&�j��W,��!���k��!{����J�IO[ɠ��1+��Q9-0��5��Fhl"4��n����Ɏ�>���8J��ji�<+�ֿ�! ��)�d"��9Z]�%�We��Eft�5�J{�����Kv�!��Z/d�CPA!�aO�L�*45�*)�����?䇘��;��Yu`(A��$��q ��ϊf�s����\���(h �R��ƄN�d�Cɨf���*X5�T�%Ǽ��^Ṽ���K&�W=������<�O[s��#~�䭪���q��_q�7���fX���?31��Ie�Dd����E]'�����z��k>���&���c�@���-�V�,���1*R�$�Jr=��6>�J� ���YE��s +�"?˲s����=qd3~L�E�I�ѵ��������~� lw�#pLOgQ�h"�[ZP��u���F��cg�,+˾6���J+�P&�")��gq�F�Z���\��]��3 +� +!�ke�N,D#{����N�-���3R;b�5�Х���)�&.ߚ;h��%F���i�|�B�f +Yx������x����%HKc���ũ���t}*5��)����ũ�v�Ɂ~c�!hhm����H(-�N��������ț� +<B�?bm�L�_��9t�i�o�Ҵ"o�Ɏl˧��(�Z̴� ���}���3���x�2Д+�����"����\���Mo� (i�&�"W`���4T3�֮��E�y�Q���2��k���8��~��Ye�7����l@L��б4~�蘠��,���ˇW�Y���qc�Db�0)e&�b"���x��i.��|��� �I�l8B��h������ҟ�b�=T�����j{IE���G� �(� +LX:��z^ ��@$�B��#�9N����0����\p�p�.ȣ�c���@�.M���1�$_��*����u�-�)��P��P�,8�Vu�q� ������6�m�Y��WR�0�ӻ����?|ߎ> ⲁ��~���b�j���\�k���&���rg[�wz�X��j��j}����Q��DZ߈q��$�JLjݩWL.�7���=������b���Є��6Zhw%l�J����bti�5F����;�.��Uލ�h���X�P��4��[�^m1�R�����G�G�Wƚ���$�qb���&P�n�A�����2E,���̑�7ǚp��6���8ѥ\���W��p�_d�h���˟-���0uS?�<��ʈ��G�H���o6�$Te|�W���5Ү)endstream endobj -3802 0 obj << +3798 0 obj << /Type /Page -/Contents 3803 0 R -/Resources 3801 0 R +/Contents 3799 0 R +/Resources 3797 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3800 0 R +/Parent 3796 0 R +>> endobj +3800 0 obj << +/D [3798 0 R /XYZ 71.731 729.2652 null] +>> endobj +574 0 obj << +/D [3798 0 R /XYZ 154.0508 708.3437 null] +>> endobj +3801 0 obj << +/D [3798 0 R /XYZ 71.731 701.2653 null] +>> endobj +3802 0 obj << +/D [3798 0 R /XYZ 71.731 644.4185 null] +>> endobj +3803 0 obj << +/D [3798 0 R /XYZ 71.731 644.4185 null] >> endobj 3804 0 obj << -/D [3802 0 R /XYZ 71.731 729.2652 null] +/D [3798 0 R /XYZ 71.731 613.5343 null] +>> endobj +578 0 obj << +/D [3798 0 R /XYZ 142.9228 582.8144 null] >> endobj 3805 0 obj << -/D [3802 0 R /XYZ 71.731 741.2204 null] +/D [3798 0 R /XYZ 71.731 577.6289 null] >> endobj 3806 0 obj << -/D [3802 0 R /XYZ 71.731 718.3063 null] +/D [3798 0 R /XYZ 224.1952 551.9302 null] >> endobj 3807 0 obj << -/D [3802 0 R /XYZ 257.935 664.5081 null] +/D [3798 0 R /XYZ 71.731 518.8892 null] +>> endobj +582 0 obj << +/D [3798 0 R /XYZ 171.7743 488.1693 null] >> endobj 3808 0 obj << -/D [3802 0 R /XYZ 439.3913 651.5566 null] +/D [3798 0 R /XYZ 71.731 481.091 null] >> endobj 3809 0 obj << -/D [3802 0 R /XYZ 146.1379 638.6052 null] +/D [3798 0 R /XYZ 181.4647 470.2366 null] >> endobj 3810 0 obj << -/D [3802 0 R /XYZ 222.4669 638.6052 null] +/D [3798 0 R /XYZ 380.9392 470.2366 null] >> endobj 3811 0 obj << -/D [3802 0 R /XYZ 281.2438 625.6538 null] +/D [3798 0 R /XYZ 473.5968 470.2366 null] >> endobj 3812 0 obj << -/D [3802 0 R /XYZ 435.614 625.6538 null] +/D [3798 0 R /XYZ 509.5202 470.2366 null] >> endobj 3813 0 obj << -/D [3802 0 R /XYZ 71.731 618.5156 null] ->> endobj -574 0 obj << -/D [3802 0 R /XYZ 154.0508 587.7958 null] +/D [3798 0 R /XYZ 191.5112 457.2852 null] >> endobj 3814 0 obj << -/D [3802 0 R /XYZ 71.731 580.7174 null] +/D [3798 0 R /XYZ 71.731 450.147 null] +>> endobj +586 0 obj << +/D [3798 0 R /XYZ 224.3666 419.4271 null] >> endobj 3815 0 obj << -/D [3802 0 R /XYZ 71.731 523.8706 null] +/D [3798 0 R /XYZ 71.731 412.3488 null] >> endobj 3816 0 obj << -/D [3802 0 R /XYZ 71.731 523.8706 null] +/D [3798 0 R /XYZ 71.731 375.5915 null] >> endobj 3817 0 obj << -/D [3802 0 R /XYZ 71.731 492.9864 null] +/D [3798 0 R /XYZ 71.731 355.5019 null] >> endobj -578 0 obj << -/D [3802 0 R /XYZ 142.9228 462.2665 null] +590 0 obj << +/D [3798 0 R /XYZ 170.6486 324.7821 null] >> endobj 3818 0 obj << -/D [3802 0 R /XYZ 71.731 457.081 null] +/D [3798 0 R /XYZ 71.731 317.7037 null] >> endobj 3819 0 obj << -/D [3802 0 R /XYZ 224.1952 431.3823 null] +/D [3798 0 R /XYZ 129.5759 306.8493 null] >> endobj 3820 0 obj << -/D [3802 0 R /XYZ 71.731 398.3413 null] ->> endobj -582 0 obj << -/D [3802 0 R /XYZ 171.7743 367.6214 null] +/D [3798 0 R /XYZ 279.8553 293.8979 null] >> endobj 3821 0 obj << -/D [3802 0 R /XYZ 71.731 360.543 null] +/D [3798 0 R /XYZ 349.9283 293.8979 null] >> endobj 3822 0 obj << -/D [3802 0 R /XYZ 181.4647 349.6887 null] +/D [3798 0 R /XYZ 71.731 273.8083 null] +>> endobj +594 0 obj << +/D [3798 0 R /XYZ 148.7011 243.0884 null] >> endobj 3823 0 obj << -/D [3802 0 R /XYZ 380.9392 349.6887 null] +/D [3798 0 R /XYZ 71.731 237.9029 null] >> endobj 3824 0 obj << -/D [3802 0 R /XYZ 473.5968 349.6887 null] +/D [3798 0 R /XYZ 71.731 205.0661 null] +>> endobj +598 0 obj << +/D [3798 0 R /XYZ 176.855 174.3462 null] >> endobj 3825 0 obj << -/D [3802 0 R /XYZ 509.5202 349.6887 null] +/D [3798 0 R /XYZ 71.731 167.2678 null] >> endobj 3826 0 obj << -/D [3802 0 R /XYZ 191.5112 336.7372 null] +/D [3798 0 R /XYZ 412.3745 156.4134 null] >> endobj 3827 0 obj << -/D [3802 0 R /XYZ 71.731 329.5991 null] ->> endobj -586 0 obj << -/D [3802 0 R /XYZ 224.3666 298.8792 null] +/D [3798 0 R /XYZ 446.4532 156.4134 null] >> endobj 3828 0 obj << -/D [3802 0 R /XYZ 71.731 291.8008 null] +/D [3798 0 R /XYZ 306.7655 143.462 null] >> endobj 3829 0 obj << -/D [3802 0 R /XYZ 71.731 255.0436 null] ->> endobj -3830 0 obj << -/D [3802 0 R /XYZ 71.731 234.954 null] +/D [3798 0 R /XYZ 71.731 123.3724 null] >> endobj -590 0 obj << -/D [3802 0 R /XYZ 170.6486 204.2341 null] ->> endobj -3831 0 obj << -/D [3802 0 R /XYZ 71.731 197.1557 null] ->> endobj -3832 0 obj << -/D [3802 0 R /XYZ 129.5759 186.3014 null] ->> endobj -3833 0 obj << -/D [3802 0 R /XYZ 279.8553 173.3499 null] ->> endobj -3834 0 obj << -/D [3802 0 R /XYZ 349.9283 173.3499 null] ->> endobj -3835 0 obj << -/D [3802 0 R /XYZ 71.731 153.2603 null] ->> endobj -3801 0 obj << -/Font << /F33 1398 0 R /F27 1298 0 R /F48 2196 0 R >> +3797 0 obj << +/Font << /F33 1398 0 R /F48 2196 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3838 0 obj << -/Length 2326 +3832 0 obj << +/Length 2440 /Filter /FlateDecode >> stream -xڕYY���~�_!̋)X�I6��S�^���pA���ؒ��H��<�����<$��L_�]�U_M�����U���&��(���py�N���PH�B��}�{��'�V��'Q��Wq�i��TE~��l�+��}8�ko��6ҁ�|n���.;�/�O};���*����/�>��Z�~���J8P=�g�m��W�JIB�g��#?G������ۿ��(�w��trD�چ�LE|�?�:����彬��3u������yp�l�1U����r[7}�[D��u�����:Ԟm_��//Bܟˎ{�E�oqs���Cy��x+���oZ��-�f -�?�O�mk}������5���lQ[�P�c�Og��5=��\�R����SV���:��?����z�)Z�з�a`@���F���\l�Eg���>��fp�Ï�hQ6��q����sk)�\<}g�]��|*G�LtB�b���^�U\�!$/�L}�R E� �E����Lb�b����*f,� �^��9������d��rn��rfh���l'�W^=؊�,?tX~��PcL�6<�Y{� ��˔ YW���ʅ2�\ՠ�/�D{ܟN$�oq��= -�}e�g��TՒ^�5�ӄ�bZ��ma+�[�(�Џj��n:-2i��}�x�;�c�; q��\Σ��e�Au3J�2���l\=����=0-�5����/^��X�/v����_������������_�<+�/���3�>BOj��A���p4*����q0�)�p�*M -9�]�ȭ����#�,�f�8��`�4q N0 -���˵u���C���a$� ��h�م�g�T76�8���^na�)J�Mkg�n$[�#��,��<;�[�³�=SX���R���nA����ԯ�e_t;�9�$��8F���a����é�(q�0D�#��p� R"���e~�RZsi�t���[� -� TƢ��Ӊ{�5��=8�Zk� �Y!cso/_! �E1�3��D�u�'p�-$~��ܦ��Ӹo��s[�����|<t_�����<�e3 ʂ�CU�%L��#�Y�fX0�ϮBx�q��q���$跼�eS��u*_�q�Ry�prA�b(�U�%+@W�UkW�a�8Q�J�đ���Qo&[� H�P�#~c��¯ -B_a�Wt��U��:��5���E�d&I�{�������0��&��g��`�(�^љS0p���f0J����2�� - r@,N �Q�H�A�Btl��L��G�"�y���v"���"�q�8��`�G��/����^���?R8%_�{�"��� � �F݅~�E2�\2�Q�Op���! ��2��3E�A!`M�� ��+�`4 H�{'+lGX��7�������� "��g$���4cm˧������k�o�"u�� �5_�M���Z�#�-��C<��hgS���o�d� 5��z��" -E�X��S�R����,�pi:�v_�� ;�V��Wy|�_e �>�}MT�� -��gq"��PǓ�{��~%����?q�Dſ:Z�_t�I. -}��C79_ -��^-�'�K�ń��bޮ�8|A -u���i���\F�a�^vA�X��gz��T�V���sOM[v"s �� �sN0�ke7r��m!���S��� �� SbJ�� =���Y����y֯�q�R��=�͋\4�pm {R�� �)D�%@���y.�NN�˙h�?�G!r�'ɘ8n�B�4����}�������b��w���<<��s�Nv&�M7���%�h��Ba���=,�R;��ٛjÃ���[�CD�Wt�]-��^j� �HZ�k������F����Xr��$��Eo"$�^���ʀ&qr��0pJ�,�����C���Lh���Lk�����ֱ]r��]̋��CU+*-�@/~e��S2�V��x���P×T�@�����Q�!�/���Y΅��g!>L,*Z�jH�p�'�A���m�7���5�p�ApO�ʛ�j���Z��㭿��}p0'�9��ƕ�,!N�??nxd! 2(��'PJ�ē�Wنu:C&S�Ib�i��I���G��}�$�p�Jw�2�N|*>�>�%<���h�eWIb -l�v�$�$�P�u�:�&�ާ�/<�������*�A�\co��ef��C�����ʧ�D;�I(�K4K_7ʺ��5eq3�R�-���ʲ� �_!z�����Ȣ��?,����3?�����Lh2�Q�a�'�Ut��o ����endstream +xڍَ��}��藕�+�:�63;�H��IA��-�61��Ց��Se��Y4�*�UE�I:Z����H�>q��,�W��]�:����"!� +�vI���ݏ��^����l��_%a��(W��U�F���w��hΣ���8 ����>�� �w�Q���\Ә�������,<չ*��M g��:&�BG�۰P:�9i�U�R�(B��"���}��ȃ��n:�R?~���p��@��y��<�dI0݀�~��65�����c��;Y��:N����4��(}�p�6^2 �vn�j+��Q`d�����z!0me���NPmm��F�%��)���$Ve%t G�4i��w����c��/k�[�CoZ����.���0q���xYgi�x��u�A7���g���DX\��f�a7���He�?�����F� oe���`��]7o8��װ� �f2�]\'���wh~�rו���Q�+)qz���(S�(��4TI-"GK��d;r<����3D4���F���E��4 .h?�&��-c���K��3�*� ��������=����vëE@�@�ah'�Ͻ����h:R��7�.�/���%:Q�B�u)�[������8��x +i?��)���'�����?�"�U�/v���E��Ѭ�m����_�|�x%�|�yt]���wi�� $rp�(�J���*�*��"[�w�q���j?��gZ��<�Py� �v�M�L!8�O�� $���W���i�e+A���� �^ߢ�&� +<3�\^#��Le:�h�� w�=�2�`0�O��aß� 8p�:�Ƣ��(�G���!�8t`�� +�Z�E�Ѿ�N7z�<�U��=�:�D��E���ԁ�q���Ͱ� +@;��h-�?Q:�X��{9Bb$��F:Sy�g�,���d�F ��FF�nÐe�T@L�s>[ӯ��� +�L����T��+b� +�)���T���?���*��K��/Hb�i�- wQpQ����q����,`mqx�u��$�\�<�o/<���.��:��`�z�^j`�a���B0Q�jtlcI����:�%�?�d�<���>�Ji����x���F|�C��c���HV�� +��<��8J�E���i2`�ծ�J�N<������"G*MK���|��T��v��,u,��vK�1��P/������#�kw� +�Ě1�5�)�Q:�'Z4�CATcG��C��8� +Ƭ�Ws:7v#��o+���=�, +���� KbN �N���N'�s�;P<�10�]�'w8�<w����sEp^��h�O!n��V/��4 �}'<�._IF-�U���Z8ov�>�C�4����}��������d��W���2ߠ�c�9{ʢ�:Jwg9:ņ������/��~9�b�ng� z�����:Yp��s����4O鴐c"�s��#���ɟ�g�Ĝ��N���s�l�*P�D�a�e��-Y��-y%�K�΄����`z��]32�4�]J��]S�"HU+�!�E�~x����K2�V������;��@ ��СVI�G���;J�0��i�F �+�qa18��Y ����=�s�����n�Ɠ��u��nM���~-}�~�^�f��>�� +��q�����-��z�#E��RsJi����2���e +�$ �I~b"i�r��,������D�3ueD)���+�u?�%\���l��P�JlY��$�$L��l��E���ϮwvϠ�_@��+!��Fhq䏅 �s���� ��z���M%����i����WO�y�t�|�2����~���';אE�_�w����o�1TiF�P������ +@�m����~� ߅���3��nr.um��&�k�xY>i%b�g퀘�S��W����zd�2�qs�#_�y��"t��}+����_�����o,�p~�j�")B��qQ�#��)2��}�ུ����I�N8 �nj��d�ڮ�yq!�_ג#�i�pQ��zc������>�h~WD(%F���T2y�z�� �t%���N"p4}�,��DV�T1f���W�<����X��(���Y�� +�4�_٘Ձx��n�z��$P+h��in�mq ���� +!�}��pȸ�\ƣB�]����+��F���c�k���E��a<�$f���0yb}�-�2���\$QXC7E�ϲqa�әvg�[v]���zu��<���Fo��=�`�g�^K�F�m PC�2 hta����Lt-���K#zt'+"�P"��p�t[�#�*�fU��� +=5�m0���M�l�Я�����:�c����0�Q��A�����*����.���q�¨,gN�]�������)��endstream endobj -3837 0 obj << +3831 0 obj << /Type /Page -/Contents 3838 0 R -/Resources 3836 0 R +/Contents 3832 0 R +/Resources 3830 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3800 0 R -/Annots [ 3858 0 R ] +/Parent 3796 0 R +/Annots [ 3846 0 R ] >> endobj -3858 0 obj << +3846 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [252.1469 179.7274 304.4235 190.6313] +/Rect [252.1469 330.1633 304.4235 341.0672] /Subtype /Link /A << /S /GoTo /D (sanitycheck) >> >> endobj -3839 0 obj << -/D [3837 0 R /XYZ 71.731 729.2652 null] +3833 0 obj << +/D [3831 0 R /XYZ 71.731 729.2652 null] >> endobj -594 0 obj << -/D [3837 0 R /XYZ 148.7011 708.3437 null] +602 0 obj << +/D [3831 0 R /XYZ 189.1389 708.3437 null] >> endobj -3840 0 obj << -/D [3837 0 R /XYZ 71.731 703.1582 null] +3834 0 obj << +/D [3831 0 R /XYZ 71.731 701.2653 null] >> endobj -598 0 obj << -/D [3837 0 R /XYZ 176.855 639.6015 null] +3835 0 obj << +/D [3831 0 R /XYZ 148.1582 677.4595 null] +>> endobj +1719 0 obj << +/D [3831 0 R /XYZ 71.731 647.4073 null] +>> endobj +606 0 obj << +/D [3831 0 R /XYZ 199.8526 614.0971 null] +>> endobj +3836 0 obj << +/D [3831 0 R /XYZ 71.731 605.4596 null] +>> endobj +3837 0 obj << +/D [3831 0 R /XYZ 159.6658 595.1681 null] +>> endobj +3838 0 obj << +/D [3831 0 R /XYZ 71.731 575.0785 null] +>> endobj +3839 0 obj << +/D [3831 0 R /XYZ 186.5893 564.2839 null] +>> endobj +3840 0 obj << +/D [3831 0 R /XYZ 71.731 562.1271 null] >> endobj 3841 0 obj << -/D [3837 0 R /XYZ 71.731 632.5231 null] +/D [3831 0 R /XYZ 118.5554 523.5631 null] >> endobj 3842 0 obj << -/D [3837 0 R /XYZ 412.3745 621.6687 null] +/D [3831 0 R /XYZ 232.2278 515.0987 null] >> endobj 3843 0 obj << -/D [3837 0 R /XYZ 446.4532 621.6687 null] +/D [3831 0 R /XYZ 378.4963 491.7861 null] >> endobj -3844 0 obj << -/D [3837 0 R /XYZ 306.7655 608.7173 null] +1720 0 obj << +/D [3831 0 R /XYZ 71.731 449.9405 null] >> endobj -3845 0 obj << -/D [3837 0 R /XYZ 71.731 588.6277 null] +610 0 obj << +/D [3831 0 R /XYZ 186.2988 411.6625 null] >> endobj -602 0 obj << -/D [3837 0 R /XYZ 189.1389 557.9078 null] +3844 0 obj << +/D [3831 0 R /XYZ 71.731 399.4913 null] >> endobj -3846 0 obj << -/D [3837 0 R /XYZ 71.731 550.8295 null] +3845 0 obj << +/D [3831 0 R /XYZ 71.731 357.0624 null] >> endobj 3847 0 obj << -/D [3837 0 R /XYZ 148.1582 527.0236 null] +/D [3831 0 R /XYZ 71.731 313.2268 null] >> endobj -1719 0 obj << -/D [3837 0 R /XYZ 71.731 496.9714 null] +1721 0 obj << +/D [3831 0 R /XYZ 71.731 269.3912 null] >> endobj -606 0 obj << -/D [3837 0 R /XYZ 199.8526 463.6612 null] +614 0 obj << +/D [3831 0 R /XYZ 233.4164 226.2937 null] >> endobj 3848 0 obj << -/D [3837 0 R /XYZ 71.731 455.0237 null] +/D [3831 0 R /XYZ 71.731 217.4709 null] >> endobj 3849 0 obj << -/D [3837 0 R /XYZ 159.6658 444.7322 null] +/D [3831 0 R /XYZ 71.731 165.7807 null] >> endobj 3850 0 obj << -/D [3837 0 R /XYZ 71.731 424.6427 null] ->> endobj -3851 0 obj << -/D [3837 0 R /XYZ 186.5893 413.848 null] +/D [3831 0 R /XYZ 71.731 150.8367 null] >> endobj -3852 0 obj << -/D [3837 0 R /XYZ 71.731 411.6912 null] +3830 0 obj << +/Font << /F33 1398 0 R /F48 2196 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 3853 0 obj << -/D [3837 0 R /XYZ 118.5554 373.1272 null] ->> endobj -3854 0 obj << -/D [3837 0 R /XYZ 232.2278 364.6628 null] ->> endobj -3855 0 obj << -/D [3837 0 R /XYZ 378.4963 341.3502 null] ->> endobj -1720 0 obj << -/D [3837 0 R /XYZ 71.731 299.5047 null] ->> endobj -610 0 obj << -/D [3837 0 R /XYZ 186.2988 261.2267 null] ->> endobj -3856 0 obj << -/D [3837 0 R /XYZ 71.731 249.0555 null] ->> endobj -3857 0 obj << -/D [3837 0 R /XYZ 71.731 206.6265 null] ->> endobj -3859 0 obj << -/D [3837 0 R /XYZ 71.731 162.7909 null] ->> endobj -1721 0 obj << -/D [3837 0 R /XYZ 71.731 118.9553 null] ->> endobj -3836 0 obj << -/Font << /F33 1398 0 R /F48 2196 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -3862 0 obj << -/Length 2782 +/Length 2455 /Filter /FlateDecode >> stream -x��ZMs��ϯP퉪��$�Ϲy�;)�2���S6��H�b E*$5�O��A�����K���F���~��|�VI�?<c<���8~�W���/Rِ��U�����!V�b���U��,��l���(HW����C~d���������X5U�yFѧ���U]��m��ᗭ< �R�M�֥�\���� -��f�~Ē0I����r,I���~h���Rɺ�?`$q&�6<`Q�q�}{��!�N�2��ݫ_1�KK�,�9`�廪��W���[t2Ȧ���;6�q��L� - XW�ց�ѼY�G���L�]~�}�P�Qˠ&p�EA�'���i�`H7v�p�{�PP�k�{����D�s�Ѿ���˼+���P"�L�9]>�Y���&83yrG�=�C�CN^� ���mIq\ ��K��� -]�j�n&4`Vj2������zyl;j��TWmpY�qȻM��%vDžw�v-���1֠�6�+�z9H�@#��y�:�f����@|�T�[�j��m� -�̇�m�X�,����GB&f1�'�Lu���a��,~>(�Or���K�Ÿa�{9��*�H���՞p�xӟ� �}�9a r�L7�@��1�+>�-���U�W�^S���!W�}����$u��Pr�Sk�1���X���'��������'葒�&�T�q�@?��V�k����4%�!��Cu�4� % M'�A���1p�T����4�uE�z[(���7�*�ęM�f��)���V�������?�GE%��-d�EX�4���\��d�H-I�����:An �瞲CD���`_G}�jA�{X�o�j�YWǟʼ<�-m��_H8�9�X>��N Ze՟�����O�-]�����h�*R�X��ڝ;���s��NV���}9Ui�G�%gtʳ?��#�cN�VdL$<�u@���Tإ��G�7��!f���r9�T���9>�O�gc��vQWk(�� w4�+� -ǘ�>>����m��\�9��^����rp�*6����ѱ����1��\�U;I���u�=��c�;/�S� �꾭I��|��f��$h��;ꈜA[ �(���>�|�SG�z! -Lɛ��UBژ�`f�8��*��<�1d���!翣��҇ �N!of"�:���(?.`H��B��^�%( ��t��7E�̀�̇|���Dٴ&��&��4hT�ׄ�ɀ_}ڢl�S�3�*b�s��a���)�FD����s��������tcf<�so��H_�Rp� vz:�<R�hJ}<�Y{� l&]f����9?F!Ez}(s�&�L�LԘ���%�v�"��c�&�]����J��4�mD_����:������CA�����o�qY:n�_��� pA��Wu e�|@F0��M�U��-2Jgk�ue�j�\@��*!�4���&0��ֲ{7e�n��d,��`Q WA�6I�� r����(�����܇e�Nl�I轞�Sc�; ���ԧ��Ɉc��q��t�L�w���+2�tL�N^�j�Q �(M4?8����o9���3��e��v�S��#]���Zթ���Qk����ƽ~�w�, �����Us}�������W���Iֲ���B�|�2n�t�F¤��͜���di���:K���`�Se��%ۑe5̫AnH�-�t��,y��6��8 Y���h�~�.F��ڸj&��p�������(9��e�s�Y�V�I±1K�nX,U 4��i(ߵ�a\e�I5��5��&�b}VWL:�(aa'S�=t� ;< �m����E�&�����X,|H�p��(^Ɯ�ڸj����N���$� �n�a�n��E,�SN��s0�����n��R��v-"�R4߅[�����ے4�v:ɼ��\87����u�|q+m�;����OS��y�`�JW �U�E0���M0.|X$'��sѵ���%��Yl��c�e���^DC���G(�=>��(��U�]�t�� �+����\`���h���ޘzt/�)q��$�ʜW�&�5�0��)��U?so�����Ƙ�1�Ʉ�]��r��A�}6r����(�D��@�܇eԹN|�e"�0��/^���m�\w|(��H<�_;K�-�cs��4#<��� t�P(�;�֬H<f��\�&���h�W�̥?!�w��x�{cA�c�u}�A�Y��ZXدbZ�o ��,�P���5Q1��É#dA���ZW��]Z���P4/|P�"?Hn�`�n��e\L}xWAT�X�,a�^ b3î�Ď�� 6J7�xa�w�܇� v�xә�#����%9©_�eU�F�|0+��a�p�y<�~�!rˍzc��$6l6�N:x�����_�QbsA���9�,1n�������snfLc�nt���L.�Qt��]C�W���@ӯv�y�c.Z��6x��8f�e��.E�����U�[�[_�6�/|X��ĉG� ��w=`pX�����*N=�->����[y��<�Lj��� Jm� :x4��0l��<�'C�Tې5��$xMG�O`|��R6��6zސ`c�x;��8}��Ş���X��?�R�o5]q -��$���b�"-*�w$HL���LC=�L�1Q흑��c��:���5F�3>yY�9[�蜍OGٜ�MVW>��, ���o?��%�#�?�2kI�u]�7����"Zendstream +x��ZK��6�ϯ0r��6#��(�mf: z��=�s�,Y���Ȓ!�3��뷨*R���$�%�I�X�H~� ��ƅ?o#<&8�� ���d�w��>���#���l���w����&aI�G��q�.n�l�Yz�f����tJ/�l�;?t���C~.�����z���ח�e�n���ǻ�f���0�M�Fj��F=[7f<�G��4iW7-��C'K+,��*}��8��mW����B�9 _[����¯�����5��eQ}�R]M�Zx +�� j�k9R�k��|��^��Ȁ�uM�ڠ�S�R^��2}ղ�S�8��#���@�?`� X./t^�"U�(y���~�P�j���C>�����Xɬ�u]����y����VF��]X�0.|\�<�yj�D����|������i�P�MP� +?{��mk��$��9vN�> )OP�����zN�k��P��(�,ez�XSI�۟�is���\ho{�_���&-Q��(V�ınF�b�c�c���8�m�I�x�e�=��a�;�(��- �A�X�$k\A�u�k�ε�D��Us�@[�i �]d���F��S/C~!�y^��003�z��1B�Z�~81`��F�CN�i�a�c�E x���g�~���/��ǵ�%p*W%NN V@-"�6v�c�v�!m��_[i$��WiY�"+����р?��ǶC�J^p��(ҁ����<lv��\��Wc�Kc1���cVW��g�N�x���xG�h�v��&q���D���(�!���\t��fRtz���9�G�Eg����ε=i?�i�ы��F�l��A�|�E�m �3Z�e�o`��2�m����=��Cθp"�X�D8���j�x�.h�z*z����AZRj�Շ�2�m�|��h�M��'Y��Oi7�(��tF4$I�Q�,����߈�&ֶ��Z��y��n�1X_�"+�Uy!�X�&�%�N"-t�DC��DS�$�A�"p^/ˮ1`���k+�q~dy��X�F��$o�mꍉ`ӈL�M:!���I�\�a�c��X@���VU��g�l��щLK�-�����{ʾuH-��RJ��Q�P����ԏ��A��cj�l,c*q����L��=�RfC�;[�!�5#�k�LC¤v8��9�I���s4'��fC��Q:>̳��4�:i6a�ϔ��gX���Eq��86�F"D�h�Fjg��Wsmj�mD���͍�g^�x�a�;0D�(L�1å����: ���� �l6���c�G���X^e���E�`A�1����1��~��J'�u5"�߅s<dw�&.��@,sNK�l��ʹ��sQQ��;0��=I�r����sn)������P��~�C�Pi�M7H��h�MH���].2m�i.�j��R���s�2;�e��n-���Z��ķ�]��j�a��%KC�O0f��gȹ>�����g���$ҙ�S�a����!�r �}�@�bF�I_��5��7��x֕��O_���h�<�V�R����E�Ir��Ȭ��BVHQ=�Qf����c>y������ۥ)��@;��&&�hB��]Mk��n��l�u�i���[� ��bXf� �S&D��~�r�Z�u�J�l�pd�v���-[EDяu]J=�J��p@7�& Щђ5G��VL��KX +ku��[�ߪ�to�tL2�Gl�Yh�1�7�)pvr%����n=&�E��7<nE|���H�l�y0�k��D�3��B�w0h�{"Β��co +�jK�%h_�5#��\��>��B�Fl���Ґ��x�aшG w�ݰ��܍����T��eU��_��Wnў��qߍ�����=���p��cF1�㍱So���6��?Q���B�1�0�D��Gv;�;e��$���m����>��fl:�����W��`@�W3����-]Vk��0m��A��������9���r|a�7p|�a��6�'� ��-p�[�� !э�Y��&�p +>��v��&�p���A +���蠪�C�ð�oB�5�d��N^�8*'�k:O4Ɨ�S��Z|�����̏#�)˧��̉��c}P����=9]qr|�RNJ�X��j���.����z�U�꣭��vJ��I�=A�p�n'=�`Y���2�s�*�9kgY]��F���iJ���a��O^�lS�]�ʼn?�3!��C����b�:��ƃ���� ���c�M��w�U���o�1o���M���B��voK� Njc� �c�!=�����t!7�s����@P\�&r.u��(ta"`�+zY�9��p<ֱGPtѯP��K����7N�=Ʀ��Xh/@��&���êyӆr#��"c�t�a�t��gZ�g�_'a4���X��8����͓��˳z^�Y�E���� 3@�3�K�I���9Y��bԭ�endstream endobj -3861 0 obj << +3852 0 obj << /Type /Page -/Contents 3862 0 R -/Resources 3860 0 R +/Contents 3853 0 R +/Resources 3851 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3800 0 R -/Annots [ 3884 0 R 3885 0 R 3892 0 R ] +/Parent 3796 0 R +/Annots [ 3872 0 R 3873 0 R 3880 0 R 3888 0 R ] >> endobj -3884 0 obj << +3872 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [683.8881 325.0557 743.1654 338.1714] +/Rect [683.8881 478.8248 743.1654 491.9405] /Subtype /Link /A << /S /GoTo /D (edit-values-list) >> >> endobj -3885 0 obj << +3873 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [634.6345 313.9326 693.9118 327.0483] +/Rect [634.6345 467.7016 693.9118 480.8173] /Subtype /Link /A << /S /GoTo /D (edit-values-list) >> >> endobj -3892 0 obj << +3880 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [315.6739 241.041 362.4979 251.9449] +/Rect [315.6739 394.8101 362.4979 405.714] /Subtype /Link /A << /S /GoTo /D (bugreports) >> >> endobj -3863 0 obj << -/D [3861 0 R /XYZ 71.731 729.2652 null] +3888 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [201.9014 239.7366 261.1787 248.5833] +/Subtype /Link +/A << /S /GoTo /D (edit-values-list) >> >> endobj -1724 0 obj << -/D [3861 0 R /XYZ 71.731 741.2204 null] +3854 0 obj << +/D [3852 0 R /XYZ 71.731 729.2652 null] >> endobj -614 0 obj << -/D [3861 0 R /XYZ 233.4164 705.7477 null] +3855 0 obj << +/D [3852 0 R /XYZ 71.731 718.3063 null] +>> endobj +3856 0 obj << +/D [3852 0 R /XYZ 285.3061 708.3437 null] +>> endobj +1722 0 obj << +/D [3852 0 R /XYZ 71.731 693.2354 null] +>> endobj +618 0 obj << +/D [3852 0 R /XYZ 271.6858 656.0199 null] +>> endobj +3857 0 obj << +/D [3852 0 R /XYZ 71.731 645.6549 null] +>> endobj +3858 0 obj << +/D [3852 0 R /XYZ 71.731 616.5231 null] +>> endobj +3859 0 obj << +/D [3852 0 R /XYZ 327.8178 605.0112 null] +>> endobj +3860 0 obj << +/D [3852 0 R /XYZ 71.731 597.873 null] +>> endobj +3861 0 obj << +/D [3852 0 R /XYZ 81.6937 577.1158 null] +>> endobj +3862 0 obj << +/D [3852 0 R /XYZ 81.6937 577.1158 null] +>> endobj +3863 0 obj << +/D [3852 0 R /XYZ 445.6032 577.1158 null] >> endobj 3864 0 obj << -/D [3861 0 R /XYZ 71.731 696.9249 null] +/D [3852 0 R /XYZ 71.731 562.0075 null] >> endobj 3865 0 obj << -/D [3861 0 R /XYZ 71.731 645.2347 null] +/D [3852 0 R /XYZ 81.6937 546.2316 null] >> endobj 3866 0 obj << -/D [3861 0 R /XYZ 71.731 630.2908 null] +/D [3852 0 R /XYZ 81.6937 546.2316 null] >> endobj 3867 0 obj << -/D [3861 0 R /XYZ 71.731 567.526 null] +/D [3852 0 R /XYZ 71.731 531.1234 null] >> endobj 3868 0 obj << -/D [3861 0 R /XYZ 285.3061 554.5746 null] ->> endobj -1722 0 obj << -/D [3861 0 R /XYZ 71.731 539.4664 null] ->> endobj -618 0 obj << -/D [3861 0 R /XYZ 271.6858 502.2508 null] +/D [3852 0 R /XYZ 81.6937 515.3474 null] >> endobj 3869 0 obj << -/D [3861 0 R /XYZ 71.731 491.8858 null] +/D [3852 0 R /XYZ 81.6937 515.3474 null] >> endobj 3870 0 obj << -/D [3861 0 R /XYZ 71.731 462.754 null] +/D [3852 0 R /XYZ 348.7394 515.3474 null] >> endobj 3871 0 obj << -/D [3861 0 R /XYZ 327.8178 451.2421 null] ->> endobj -3872 0 obj << -/D [3861 0 R /XYZ 71.731 444.104 null] ->> endobj -3873 0 obj << -/D [3861 0 R /XYZ 81.6937 423.3467 null] +/D [3852 0 R /XYZ 71.731 513.1906 null] >> endobj 3874 0 obj << -/D [3861 0 R /XYZ 81.6937 423.3467 null] +/D [3852 0 R /XYZ 71.731 457.5747 null] >> endobj 3875 0 obj << -/D [3861 0 R /XYZ 445.6032 423.3467 null] +/D [3852 0 R /XYZ 81.6937 441.7988 null] >> endobj 3876 0 obj << -/D [3861 0 R /XYZ 71.731 408.2385 null] +/D [3852 0 R /XYZ 81.6937 441.7988 null] >> endobj 3877 0 obj << -/D [3861 0 R /XYZ 81.6937 392.4625 null] +/D [3852 0 R /XYZ 71.731 426.6905 null] >> endobj 3878 0 obj << -/D [3861 0 R /XYZ 81.6937 392.4625 null] +/D [3852 0 R /XYZ 81.6937 410.9146 null] >> endobj 3879 0 obj << -/D [3861 0 R /XYZ 71.731 377.3543 null] ->> endobj -3880 0 obj << -/D [3861 0 R /XYZ 81.6937 361.5783 null] +/D [3852 0 R /XYZ 81.6937 410.9146 null] >> endobj 3881 0 obj << -/D [3861 0 R /XYZ 81.6937 361.5783 null] +/D [3852 0 R /XYZ 71.731 395.8064 null] >> endobj 3882 0 obj << -/D [3861 0 R /XYZ 348.7394 361.5783 null] +/D [3852 0 R /XYZ 81.6937 380.0304 null] >> endobj 3883 0 obj << -/D [3861 0 R /XYZ 71.731 359.4215 null] +/D [3852 0 R /XYZ 81.6937 380.0304 null] +>> endobj +3884 0 obj << +/D [3852 0 R /XYZ 71.731 364.9222 null] +>> endobj +3885 0 obj << +/D [3852 0 R /XYZ 81.6937 349.1463 null] >> endobj 3886 0 obj << -/D [3861 0 R /XYZ 71.731 303.8056 null] +/D [3852 0 R /XYZ 81.6937 349.1463 null] +>> endobj +1723 0 obj << +/D [3852 0 R /XYZ 71.731 313.2807 null] +>> endobj +622 0 obj << +/D [3852 0 R /XYZ 271.04 273.9084 null] >> endobj 3887 0 obj << -/D [3861 0 R /XYZ 81.6937 288.0297 null] +/D [3852 0 R /XYZ 71.731 263.5434 null] >> endobj -3888 0 obj << -/D [3861 0 R /XYZ 81.6937 288.0297 null] +1724 0 obj << +/D [3852 0 R /XYZ 71.731 235.7516 null] +>> endobj +626 0 obj << +/D [3852 0 R /XYZ 279.0164 196.4788 null] >> endobj 3889 0 obj << -/D [3861 0 R /XYZ 71.731 272.9215 null] +/D [3852 0 R /XYZ 71.731 186.1137 null] >> endobj -3890 0 obj << -/D [3861 0 R /XYZ 81.6937 257.1455 null] +1725 0 obj << +/D [3852 0 R /XYZ 71.731 146.302 null] +>> endobj +3851 0 obj << +/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> +/ProcSet [ /PDF /Text ] >> endobj +3892 0 obj << +/Length 2232 +/Filter /FlateDecode +>> +stream +xڥ]��6�=��ؗ��*R�-���&�r �u��K�m+K�>�l��p��,�ۢ�+rf8�7i1�O�V�_��/���m����P�~%��i�D�ׯ~x���O�r9[�fQ�� Ig�P�I,��:���pP�FW�{^�����h +S�{�n��<W����y�f�m�+?M`�%쨮e��L�|)��t� ���Ԋ�[%�{�W9 ?͗���V�(�Y �����8��ã)�z~��?��I_8 +�_Ă`������c�Bȷ��y+;ߕ >�t��#�>>�ʎ��8�r��%�#o3���2�2ee�X�"�A�q�o(�lUAl7|��Fgxv<��~�ȞvW�G� C�9h�Z��q������tgUF^f*���ɟ���� �>����*j�P542�˘��o^{�+�*�{�3^�GU�*����A�Y\Z?���`��)/�*ߖ���'���X%L���FU�2���H&~��KE�Ms@�^!c��.eu���@� �&#p��2oS��om�� �ضuS��W��.v��Q�-���Zd�_��.�"&���\������QM[�f|���2�Y������0ZJ�0��@��vA��؈;��~x�@9y��P���=�����0��hϸ�f�`/��)C��-�X�1i���}�}Թ�64�{�ѧ��v�#"���L�j1��!Oj�y��8������/DД����y�9G���)����W��DPGD�z�`�J㷦�"(�!�|0[�w�WD��sr �N��Xv�N'���'���l�A�`��0� �e�q�3 ;�H���[��[ E)�T�]Y�Ĝ�"Ni1(�H�.�y��� 7{�٥{Ex w� %s�Я)�/Ga��i��Fʎ-���L��,��w�mXr��#��O��� �j�0����J�������|3SC�{f�A�z�n���#ᅺ��`SR�Aш��L'�f�D��Cr��b�g��/x�]��(�1Eɍ��d:[����E�3��Zve��su�WsF���bz�'�x!d�d#��8n�VPJ!f4aA�L�{H&�RQ�6T�/T���[&��\����o'�[�'"\������j*JV=5W��ȶy�LP���E�-� +�@D$�D��4��X�f'���}Q�+�(r�=pjݶU���ys[�N{p4�E(�vY�"��òC��Ri,���ҥ �Q6W��],��D1L���N�� +�8b}���J�V�@T,�M��*�9I/��PRX6�]+����]ח�V��wU�9�q������[!0���Y��MӤk�\v~�rb~��$�?�ͭ���eX�����w"n��.��$W��Hc�������m�ٌ��nG�<����Jk��ɨ��8[�0�GoX�qȏT�t.Md�`M]wL��-��$�ċvH�t�������ㇷ�~���;��0A����wPQ-�o撮�]���h�XB̢��[��"{ܩ@�~�:��]�����.��@���V/h�;Wt�Ae3���\��/^�{��ݖG}��.�z����D�P��0��ц ���˴O(L��e�m��iS~'0y?Cm�g���p )j�6�F7g}Mյ#H҇�j+ y��P:����4��Ώ�AI�e��D �"�' ���H�̊�{.ۊ ��5$a���}pu�@�V��3@�����e�uh����+��c1TAIOk��v�;3��;�=Q��I ��;r�21D�?)@��F�M�dH��,�5?���)��e�DW��K���q�ˤ+O&W�\�~����эg���g{�0XrK��)ņ_�5t1Zrg��P?PD��nU��C���~��x��F����N��=2��&��ӝ ,1�ͮ肕����jJ}����]�z]vٰ��.aE>|�KW�C�~3OA�����Os!S&����uO�e� e,.�8ߛ�i� �"��vr w���S�f�Nm\���]�Y�m��}��C2b�dxC>���������8NY��w{0�}B����h��H@]�Ր�'RW�ꂯʹ�^Ӭ��_XWh�qwgY�3�ٶ�bJ]T���+H��YVZ���3�Q��Û+�>I鹕�_���?J�Dܺ�����8b�l�t�P������h��endstream +endobj 3891 0 obj << -/D [3861 0 R /XYZ 81.6937 257.1455 null] +/Type /Page +/Contents 3892 0 R +/Resources 3890 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 3796 0 R >> endobj 3893 0 obj << -/D [3861 0 R /XYZ 71.731 242.0373 null] +/D [3891 0 R /XYZ 71.731 729.2652 null] >> endobj 3894 0 obj << -/D [3861 0 R /XYZ 81.6937 226.2614 null] +/D [3891 0 R /XYZ 71.731 741.2204 null] +>> endobj +630 0 obj << +/D [3891 0 R /XYZ 219.0243 706.1179 null] >> endobj 3895 0 obj << -/D [3861 0 R /XYZ 81.6937 226.2614 null] +/D [3891 0 R /XYZ 71.731 693.6799 null] >> endobj 3896 0 obj << -/D [3861 0 R /XYZ 71.731 211.1531 null] +/D [3891 0 R /XYZ 441.4437 671.6073 null] +>> endobj +1726 0 obj << +/D [3891 0 R /XYZ 71.731 643.5476 null] +>> endobj +634 0 obj << +/D [3891 0 R /XYZ 311.2372 606.3321 null] >> endobj 3897 0 obj << -/D [3861 0 R /XYZ 81.6937 195.3772 null] +/D [3891 0 R /XYZ 71.731 595.9671 null] >> endobj 3898 0 obj << -/D [3861 0 R /XYZ 81.6937 195.3772 null] +/D [3891 0 R /XYZ 190.7774 586.2076 null] >> endobj -1723 0 obj << -/D [3861 0 R /XYZ 71.731 159.5117 null] +3899 0 obj << +/D [3891 0 R /XYZ 71.731 553.1665 null] >> endobj -622 0 obj << -/D [3861 0 R /XYZ 271.04 120.1393 null] +1727 0 obj << +/D [3891 0 R /XYZ 71.731 522.2824 null] >> endobj -3899 0 obj << -/D [3861 0 R /XYZ 71.731 109.7743 null] +638 0 obj << +/D [3891 0 R /XYZ 261.227 485.0668 null] >> endobj -3860 0 obj << -/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F44 2183 0 R >> -/ProcSet [ /PDF /Text ] +3900 0 obj << +/D [3891 0 R /XYZ 71.731 474.7018 null] >> endobj -3902 0 obj << -/Length 2066 -/Filter /FlateDecode ->> -stream -xڝXݏ�6�_a��l�ˊ�d���l�Cit���=�E��ʒ���ۿ�f8CY���@���������r���%R$!|�Z�U�f�ӛ`v������r�<w}�w�7?|��Z�Wj5��gQ�$H׳$T"�e:�d����ܘjq��` -����lak���@�w��o��z���t��a"�)���*���o�"���i�}���[S�&;]�`k�[���92S�*�5Mm1VZ`�u�\�R����*}+ �~0�Ɩ�7��Bި� -�LU���55n��ޣyN��9zo�+-T0o�g�k2�xC>c_�-2?�?#�Y8�h�R�ڝLS��5f��*�p1���Ln -7�ݷuS�h���<�Yn���HH�N�G����-�� G����k�� ћ���ȴr[�~���+|:I�#o�#,Ӯ�f��`Ȓ=*"m�)h�ֆ�m1���FoumM7��E�ʜzF��z��-"�X���"����Iyet�D����,S4K��t��)3�(o��w�d�0��i�*٧��A�4��X��ӎ�"�R�;�c(�+츙*�Q8��^.�^��D���eE�/gSi�1�><�%I<�N�GsJf=W��lc�H]d4����1�<B�[��ф���Z�8��Ƹ��G�O�_H��3I�3[����{c�#usİ�-'���� ����JQ�7/��A��ق��2�I��1�p�� ��,�\���H$�4pW�˝�!���0��x-d�2� ����g�@w�JQ�dͶq���B�.*B.i�� ����=Q8.lF��@L���5�3���}@p0`�6��<58��'C$����U�[�!G�t�QA`��X�`�~p�OW���<�Ë\��b�|�A�p-�D�R�'�W�2����=�C���5ۿ�r/e{�;a����1�f��(��J��D�r��eY����x�kh����A_RJ:�-1��T�����w\<��#~�r�C:��AS^f�F�Q��oKቜ����h�A��%Rq�Z��;�z��Ю�8h�`NA�.h��U~�����q���#/�Z�VPN��UZX��1�>�p �ԻF{���;�����b�Kb���!-��bưh~,Qڅ��hx�͆�ᅐ�]'�(Gc\�/i��'���F�N,���̲eo��_mXsב?^}sdƺ��G��� ��O��tf]0�P������q�Q]�����ٳt=�IUE#��3 �.O -5���C���B���#u�k�^+7��� f�>�z�F2��g�}��\�K����ʮ�Bx�7�x# ���d�� -(����0�bE�������\况,4��#ӵX��t���S�ozE�ٜ�#DZ}�LEɦ��2x�����l�7���)]�<cY��حȗ-��z^K=k٩#_���*��F>��7뮭*h�}4��5h�����n�����e-��4�T�b�aI���%��@w�EB��n/q�4vՉ�P�Bg�����lE�KD��9��v1�k:,�}Ma���[ -^��b`�z��轵GqNE��|� �]�?J���k�ߵ�����o�r+�G�7����w*{a��.�$�T���cy�9~���ve������y��|��1.��Q���\IH��P�e�}<,~��bpb������Ц�f -�!e�P8��W�����/�?|����?-yww[�i��I3��(��Z��)�=�rMs4� �Ƌ����9����U�q�����L�\7p�/�;���<W �.vg�4Ɠ+z�����Gun���/_�{1�ݕ'3l|}{&�yp�s�Ot���T�G?դ������_�;������_D��g�k�\@Іb�!Em�G��5���ru��\�Q����|����%���b�a���`���2SL��Ef��q�Q�����S�VD�|�!d��@�&W���|�|>�m֞ᙢ�=��}#QoY ]AR�/ᰝvw:�榡����T�r�~����O�J`5H;Ih�x��o���v0�endstream -endobj 3901 0 obj << -/Type /Page -/Contents 3902 0 R -/Resources 3900 0 R -/MediaBox [0 0 609.7136 789.0411] -/Parent 3800 0 R -/Annots [ 3905 0 R ] +/D [3891 0 R /XYZ 71.731 462.7855 null] >> endobj -3905 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [201.9014 707.2479 261.1787 716.0945] -/Subtype /Link -/A << /S /GoTo /D (edit-values-list) >> +3902 0 obj << +/D [3891 0 R /XYZ 71.731 457.8042 null] >> endobj 3903 0 obj << -/D [3901 0 R /XYZ 71.731 729.2652 null] +/D [3891 0 R /XYZ 89.6638 437.0469 null] >> endobj 3904 0 obj << -/D [3901 0 R /XYZ 71.731 741.2204 null] +/D [3891 0 R /XYZ 71.731 434.8901 null] >> endobj -626 0 obj << -/D [3901 0 R /XYZ 279.0164 663.99 null] +3905 0 obj << +/D [3891 0 R /XYZ 89.6638 419.1142 null] >> endobj 3906 0 obj << -/D [3901 0 R /XYZ 71.731 653.625 null] +/D [3891 0 R /XYZ 71.731 411.976 null] >> endobj -1725 0 obj << -/D [3901 0 R /XYZ 71.731 613.8133 null] +1728 0 obj << +/D [3891 0 R /XYZ 71.731 371.1292 null] >> endobj -630 0 obj << -/D [3901 0 R /XYZ 219.0243 570.7158 null] +642 0 obj << +/D [3891 0 R /XYZ 286.6291 328.0317 null] >> endobj 3907 0 obj << -/D [3901 0 R /XYZ 71.731 558.2778 null] +/D [3891 0 R /XYZ 71.731 315.5937 null] >> endobj 3908 0 obj << -/D [3901 0 R /XYZ 441.4437 536.2052 null] +/D [3891 0 R /XYZ 71.731 221.6258 null] >> endobj -1726 0 obj << -/D [3901 0 R /XYZ 71.731 508.1455 null] +1729 0 obj << +/D [3891 0 R /XYZ 71.731 192.7989 null] >> endobj -634 0 obj << -/D [3901 0 R /XYZ 311.2372 470.93 null] +646 0 obj << +/D [3891 0 R /XYZ 166.8108 147.6441 null] >> endobj 3909 0 obj << -/D [3901 0 R /XYZ 71.731 460.565 null] +/D [3891 0 R /XYZ 71.731 135.2062 null] >> endobj -3910 0 obj << -/D [3901 0 R /XYZ 190.7774 450.8055 null] ->> endobj -3911 0 obj << -/D [3901 0 R /XYZ 71.731 417.7644 null] ->> endobj -1727 0 obj << -/D [3901 0 R /XYZ 71.731 386.8803 null] ->> endobj -638 0 obj << -/D [3901 0 R /XYZ 261.227 349.6647 null] +3890 0 obj << +/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 3912 0 obj << -/D [3901 0 R /XYZ 71.731 339.2997 null] +/Length 2779 +/Filter /FlateDecode +>> +stream +xڕ]s�6�=�£�J36O$ůܓ�&�εu��{�HH $T������/P�Lٹ�$X,����b?��Wk��_%���0��QpU�o�W{X������}��o���*�8���wW���K�iv����F~zu_�{��!?v�]��zz<ޖ�n��n������U���s��7��ͣ0�vxQ까A2�ѝv�z�&LH�B�]�#��M_oIZ�͎LJU�^�NY�v�Ǽ�L�w�ȫ�Q�Y�H�(��ZS3��t��ǻ�?��˻SN��w,��,{�Z;ݿ;�- +��yb�@»�E�����A�ʍxY�o��?�[mZ�=� ���~jg���T�i���Q8�p(M���O��iv�q�2�ȝ��[>�+ � Nе:�+o85؏�W)��jS��d`���UN��sOJ2pO߿�7���Յ�fL5�G�PD�;�2ͼ8��-��A��+"<�"��h�M��D���z,ޕ�V�֔}�-DwE�Tsf��2-O�L������>b�K�}�n^Q����;*<{pY�3[~���E�D�g�Q�_�/����3}�� T��\�x���h>�&�f� Ƿ������ ZX��^�*��_�Ś����r�K.�E���gi��iFT/��Q�)�˦���Ls.¼i�"�L� ���y���00�%��B�1`���Y)�]p�1iy~� G&����=��L���f&{����ٚZ�!;\�U�!�M����+�:��_±1���Lr�8����i!��Xx��q�a +Q���ur�TR ��;^X��W��Oe�1��W՚���s�4�N����hHń�JZ���٭j��x�8��8|�:��.�G�{n.^���^����^���wΉ��K���k'���UG0��:�� T(���(U��9� \��� +�rnXܓ��c�wSy؇M����,�/��htɀ�7��t��E���O���7��CGzVoI]��(\e��w���%i��{��^�OG�z�.;�̖��/���7��)�Y�q��f�ټ�o5pyf���y��2'��[�S��=�QT��,��t,����XxUh�G�u�Ho�����n���[�k��v�;!��EY@_0T� �TܧK[C�����//��Z���^���O8O �4����%� ���xTy˸f)�y[�*�W��x喑CFH��=���ci&v�iEtg9,s�j$�U�Q���B y�qP t�U�_�'B�\e��d����*R�d^n�k(�*U�q`�rN���Cnl��1LW�Tr�nyժ�|�;7��ޡ��3�4;���?�hݮ5UŶ����G��n��5�t�U���� μ�$���6���Q��x*VB��"�$�y4��-D0;�÷��i��LG(tNq�4h�+u�S�R�.;'ưZ�x\��(��9m����nF� ˡ��$����r��7�&�h���kB�8?�P�@�#ׁ w�O�8Z^3���(e+��+�na�mM-��\س^^B�74��K�E��;���\b�=B��]%}���,Ym�@5�j�;t^t�<���]��R�A�9��-�%�F�ǐn�.;Ro!���f���Tw-t2Z���� ]�ȤȸN=ȇ�Ôcp�B��^�$"ӣ�'�f��"t��Fg[q?)#��GKM=B�n!ʡ����>胖�2i�B���<�L�9�{��O������h I�����CNX����G�j;W�W�py&J��J\��$&��H�{L�����X���� +�s��N�v���I"I�0��H�Ń����S�;�=�y�I/��`0��~(2��fY�]]0��(� �BQp��k�n���9����F˷< ���b�%V'�� kxh�s>S]q�E +-<m�U�������Ξ|��l`�;2k����R�T� �컦I1pd�5�#8-���5_�y�7b��-nσ9����c"���b�Y��<��'��z$uD��$~��8O3�c�-�X��ʿxR��1vO���'u`��w$��Z4j�����ѲC�Lφ�n�n���A�I~$��<3��$�i�=�ԘnH^�����;9�rr����.>Y���x�>\�mT��u���Ne��ǚ����ʚ끇ˣ�1P^�K(d��o�ikFf�DrYD~a�x�[��`�NYڝI�'iy����:oT3� +c���~�-��YoIo���Ǣ��D�<�]=���j��u�(����"�UX�G�p��'�"!K�� ����cH���R�M6s�]�t~?��oRx� +PmM��g2��bU�k�j6hPM�Ǯ&���~��Q�c�Y!Y�G�1-��#�5,_3&g���[�_�6K�Y�����:5���\�c/.T�����wL�K�G�/Q3IܡX55�δ>[�%�h�"q�A�km�\�V�&ci"�Dz����A�}�$^��ɍ�|����퐰���,v�Z^���j7쪴�?4�(���7WFA��YS���)nD�F��k�\:��d=�9ϷZZ+��DJ�S�����ۚPx���B��ǕX����ϓ��JU��Է�j����5U7A�ga�|Fwv���T0��[k +�~:!jW��of�8��Tõ1q4�Y�b�"@TD_��D,G)�E��d� +�VϿ1�:;��r�8���i�ڳvl�0 +��;}���3?�����K�8{���h�?[GA�ő��Y2��f6���endstream +endobj +3911 0 obj << +/Type /Page +/Contents 3912 0 R +/Resources 3910 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 3796 0 R >> endobj 3913 0 obj << -/D [3901 0 R /XYZ 71.731 327.3834 null] +/D [3911 0 R /XYZ 71.731 729.2652 null] >> endobj 3914 0 obj << -/D [3901 0 R /XYZ 71.731 322.402 null] +/D [3911 0 R /XYZ 71.731 675.3027 null] >> endobj 3915 0 obj << -/D [3901 0 R /XYZ 89.6638 301.6448 null] +/D [3911 0 R /XYZ 71.731 670.3214 null] >> endobj 3916 0 obj << -/D [3901 0 R /XYZ 71.731 299.488 null] +/D [3911 0 R /XYZ 89.6638 649.5641 null] >> endobj 3917 0 obj << -/D [3901 0 R /XYZ 89.6638 283.7121 null] +/D [3911 0 R /XYZ 71.731 647.4073 null] >> endobj 3918 0 obj << -/D [3901 0 R /XYZ 71.731 276.5739 null] ->> endobj -1728 0 obj << -/D [3901 0 R /XYZ 71.731 235.7271 null] ->> endobj -642 0 obj << -/D [3901 0 R /XYZ 286.6291 192.6296 null] +/D [3911 0 R /XYZ 89.6638 631.6314 null] >> endobj 3919 0 obj << -/D [3901 0 R /XYZ 71.731 180.1916 null] +/D [3911 0 R /XYZ 89.6638 631.6314 null] >> endobj -3900 0 obj << -/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F35 1752 0 R >> -/ProcSet [ /PDF /Text ] +3920 0 obj << +/D [3911 0 R /XYZ 71.731 629.4745 null] >> endobj -3922 0 obj << -/Length 2720 -/Filter /FlateDecode ->> -stream -xڍM�۸�_1ϗ�ߛQ�m)=%�l��u'�v�=t{�-��F����� @}x�I�"A_��B�EW�(�&��� γ�j -����W��0����ݫ���$WeP�q~uw��a� ��j��A�E��]�����8Y�mn�,\'}�T�j��jz��������������,�e'������x;���6,�$M��C}���%���& -��g&zg�p�к= -K5@$v�8\��+loh���G&�dl>�7��h�%X՟j��K���Fo�l�0����kMPŌ6���'�6��� U�]-Q� ̛(�,J�h�;ݐz�p��h�"L�����Ĥ�?�U�0'��`I�I�91⺑��l���&�JN���]'[K�w�$[w�p��Y�V�g�d����I��]��5D�I�#�1����Dk�U�e�N~�U�DĒ���i�(�Q�d-0��w�,[;���&W �8�R4U���A�d����{=�b�iS��eо��ö8 -���ݶO�(.�&)µ�kޢ����&�� -�ܜ*aI��I[���A�����z�tY �D{юl�uK�Ƀm��9X��� ��7����Y�j�>����Y�X`��]��&i��;:+L�$�F�J�b���ĕ���{����fN�n_+�U#�^wL�>'�Y��k���=�v/�V��<����'�#д�QR.����Q٣?w�:eg�BwO�훝��0v1ɦJ�)�����ǴA=�}�A��a��x����/������WsJ�����c%������N`0���'�Lۙ��>�;��xs��}��/C3����JXJ�7��M�/��g�n�DŚ�Q��kO�>���ͪF��(#?(����8�37J��nf�l4�R����a;6�ʼny}A�%��")�0 ���H7S���yNY���#�2��X<��;��7}��g���[ -gʩӲ��>����թ�U��+�ݾ��=��ퟄK#p��q~����2²�^���,�{|Q�KG~_��X�ey�h#������2��� �\8��Q�q+u�i�3H�5m�7�W�b��e]�ſ -Y��2���P .�fQa�e�L�^P�Ǣ�}Q5G��j�YXV͔�Q5���T�s�x��s�v=珺�m0 ��,�]Pi�i2Q)���$�Q�5���w��':ާ�F7<��9��)d�,��+wg�=�����Yl���"g3-2�$V��8��3C�bc�h��6��1�@���jT@�s6o��V�7�d���O�L���q��� "����odk���Cy��' ���c�����p���s��Ô�[oJے �>�&`((�3�� ��r��M -y -G�`��k���O�6.m�d �'Z<85�f��9?d�0��N�zK.<���I�d��أ��ܻ�0 ?K�ԧ�q�$G�Yw�gY�X�o89R�M�/�(^"M�8z�F�X�mt�B9dmt������,<��,|�b�,�8r�>JVT���^Vg����U遒Ý��PA��5���f}<U`a�Ŋt(�0���4���_�:��jR� ��-��.�/֦�+0�r���i�ƌϾ���o)Z @�h�s2AdM+�t��#X;#N[p��s� �u���5��!�Нr@��;� -SnfzZ(H�5�)��UNr���=-~A 4�>ʤ�h�i�=�$�8��=��IV�h�m�!���垯SdC�iD�4���*à�u�w�'�N�j1��ؕ�9��B�h����G�ڵ��k�-�O�En���<¸L��e�����cN�m��P��FZߘq���%�G�l��BDM��6F����w��6����t�tg���A��\ cW�$�{�{�ưZ{����|t��)�|o'$nOp<�\ �o�{<Jz`�#`�b��F�]\c����\&�}�:�:�i�g�k��.�r�1��P�͏0��q���^X�-���*5��������ԏ���wL���L����\}��q���vx�K���bo{n�P'�Z|Nhe�:wC'�'��w�B�'��r�Ļ�E�k�xDw��� ���h�V����@'J�J�����]&g��y� �0OԪ��-&�䡡��xh�}��,}���Ƅ���!���ˡ���rO6t���Lrǘ�p�f�OlP4���?h�g��d'=F�s?nJ�7=�?�*wKwmR�ނө�����i`.���}>Q��Xcn��T����b8���#�8��wH&&L��>N!��~�ܑ)�+���Q�F}�0�I��kx�+:-��\c���� �w�D��'�ys�o�Zc��N�N�#���q���Kq�Z2��� 3�4w�&?H�1�L�Y^��i����|���BW��t���;����}K.��l��ܙ�^�}����u��M��|i�����WU̠�����<�`l�ٶ`���!hH��Y����7��I����|}�QtK�h>���e������ ���av`�8��E�1?�m0�Ŷ�<�`�j;/�g���oc�9W�|�߶�o�Q��xqV��n�T&6�p*�E�S}=��qԷ��^A"����G�����II4����3i�G-2�Ӄ��]�����<�z�]#Z��%1��������"(��|�� ��Go�<�����j��X_8��П5�endstream -endobj 3921 0 obj << -/Type /Page -/Contents 3922 0 R -/Resources 3920 0 R -/MediaBox [0 0 609.7136 789.0411] -/Parent 3800 0 R +/D [3911 0 R /XYZ 89.6638 613.6986 null] >> endobj -3923 0 obj << -/D [3921 0 R /XYZ 71.731 729.2652 null] ->> endobj -1729 0 obj << -/D [3921 0 R /XYZ 71.731 659.4272 null] +3922 0 obj << +/D [3911 0 R /XYZ 89.6638 613.6986 null] >> endobj -646 0 obj << -/D [3921 0 R /XYZ 166.8108 614.2725 null] +3923 0 obj << +/D [3911 0 R /XYZ 71.731 587.6962 null] >> endobj 3924 0 obj << -/D [3921 0 R /XYZ 71.731 601.8345 null] +/D [3911 0 R /XYZ 89.6638 569.863 null] >> endobj 3925 0 obj << -/D [3921 0 R /XYZ 71.731 546.7209 null] +/D [3911 0 R /XYZ 89.6638 569.863 null] >> endobj 3926 0 obj << -/D [3921 0 R /XYZ 71.731 533.7694 null] +/D [3911 0 R /XYZ 71.731 554.7547 null] >> endobj 3927 0 obj << -/D [3921 0 R /XYZ 71.731 528.7881 null] +/D [3911 0 R /XYZ 89.6638 538.9788 null] +>> endobj +1730 0 obj << +/D [3911 0 R /XYZ 71.731 531.8407 null] +>> endobj +650 0 obj << +/D [3911 0 R /XYZ 163.5913 488.7432 null] >> endobj 3928 0 obj << -/D [3921 0 R /XYZ 89.6638 508.0309 null] +/D [3911 0 R /XYZ 71.731 476.572 null] >> endobj 3929 0 obj << -/D [3921 0 R /XYZ 71.731 505.874 null] +/D [3911 0 R /XYZ 71.731 434.143 null] >> endobj 3930 0 obj << -/D [3921 0 R /XYZ 89.6638 490.0981 null] +/D [3911 0 R /XYZ 181.7247 423.3484 null] >> endobj 3931 0 obj << -/D [3921 0 R /XYZ 89.6638 490.0981 null] +/D [3911 0 R /XYZ 71.731 390.3074 null] >> endobj 3932 0 obj << -/D [3921 0 R /XYZ 71.731 487.9413 null] +/D [3911 0 R /XYZ 71.731 320.5689 null] >> endobj 3933 0 obj << -/D [3921 0 R /XYZ 89.6638 472.1654 null] +/D [3911 0 R /XYZ 71.731 276.7333 null] +>> endobj +1731 0 obj << +/D [3911 0 R /XYZ 71.731 258.8006 null] +>> endobj +654 0 obj << +/D [3911 0 R /XYZ 339.8756 215.7031 null] >> endobj 3934 0 obj << -/D [3921 0 R /XYZ 89.6638 472.1654 null] +/D [3911 0 R /XYZ 71.731 203.5319 null] >> endobj 3935 0 obj << -/D [3921 0 R /XYZ 71.731 446.1629 null] +/D [3911 0 R /XYZ 71.731 124.3059 null] >> endobj 3936 0 obj << -/D [3921 0 R /XYZ 89.6638 428.3297 null] +/D [3911 0 R /XYZ 71.731 109.2972 null] >> endobj 3937 0 obj << -/D [3921 0 R /XYZ 89.6638 428.3297 null] ->> endobj -3938 0 obj << -/D [3921 0 R /XYZ 71.731 413.2215 null] ->> endobj -3939 0 obj << -/D [3921 0 R /XYZ 89.6638 397.4456 null] ->> endobj -1730 0 obj << -/D [3921 0 R /XYZ 71.731 390.3074 null] ->> endobj -650 0 obj << -/D [3921 0 R /XYZ 163.5913 347.2099 null] ->> endobj -3940 0 obj << -/D [3921 0 R /XYZ 71.731 335.0387 null] +/D [3911 0 R /XYZ 71.731 104.3159 null] >> endobj -3941 0 obj << -/D [3921 0 R /XYZ 71.731 292.6098 null] ->> endobj -3942 0 obj << -/D [3921 0 R /XYZ 181.7247 281.8152 null] ->> endobj -3943 0 obj << -/D [3921 0 R /XYZ 71.731 248.7741 null] ->> endobj -3944 0 obj << -/D [3921 0 R /XYZ 71.731 179.0357 null] ->> endobj -3945 0 obj << -/D [3921 0 R /XYZ 71.731 135.2 null] ->> endobj -1731 0 obj << -/D [3921 0 R /XYZ 71.731 117.2673 null] ->> endobj -3920 0 obj << +3910 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3948 0 obj << -/Length 3121 +3940 0 obj << +/Length 2972 /Filter /FlateDecode >> stream -xڍK�۸�_��e�ϬH����ݝv���k/��ٴ�YY�Hr��__�(Q�lg|0��H J�B��U�U��)�I�ڞޅ�t��N�Fh6>���w�)�V�*R��^��8U��*�����^w� >��`���$a)���;UM��j��x9�^�u����_���u�D�*r��PÑ�VG�t��NbT�M7LTg�)��bY�ܭM��s����]up��^�j��ڂ��[�p�1Z%Ia��ϝ�e]�k�_���c|o�eW��~CY�C�dU3����C�-kn�*d��꫶��΄u����G�ߘ��t��?�ۺ�@r,&���mS� -���QE�c����t -� BY���1[� e�p�l�smS���I��=��'�~aL�T������l�:��:a�Y��7bW�q�����P:�G�,1l�=2�m�A��j���ړ�� C�;94@�;�f�#�t�S��vq�VV�p���A��fˠ�}�$^,��dF�c��5,K�x���X��~�%��vk��{�Q����F4�P��'4�t�8^Уe��k��=B4M����D&��!�e�]U�Ֆ�F%��m����9�����P�Z� �B���h��Y�?��ypX�����mShZX�ōS<�h�&ǹ0@6�n�W�������m�v�H�*�йkw��пp���bsEg����e��L����"�F�,�q�W�>C������C$�2߬Y�v�����TmeoF�O�̲� �s]�t~�>�N �C�4��ZB���H��� /��V�"�B�i�/���Up���p�Ux=҂�i]5��/ah�N�����*_�yHa�/�ug �d1��U�@c��#X�/���������e<'5A��=��{F�U�뒵�;��(�x �]���}�X�/��Gr����8��}F����I!��e���:A����M�<`ٟ�1�p\��gSZ�/���V�| �ɴi���,��'��Q=0lG�Z���� �;�� -7�)x��'1K���ޕ';�!��)7��c�3p1f�y��\� ��ƙ�!�=5��=��奖���c��S<��`����ɳ����in@5�=Hqj)J�j�T;��`��E�<�O�:h�y�M4�g�偶�?M��"��nR�0W!�o��T�:���;��Ovk��p�>���nb��8��|a!MWŵn:,T��d��4�u�6>٭n��P�]/�����N���QG����{�C�לQ�?%#�DE<&+[��I���������$`8���4��e��͘&�$�`���W���E-��@�g4r�$.e�n>�DsT��I3C�{n����<�x���Z����6a� �]�Cz��4)�1�;L�����Ep�1����,\��|�u�<K�U��*4`��>"T�l�G����+��X�7Z$�����W��hl ܤ�'��x��B��}7]�~�P��c.���x��>ⵄ�P�?�څ !��`7�h�z��-��Љ�n�H�b�FO�pT��H�ʒ���1. ;N?OʎcU�-�՝�`uh��E����H]�A&��] �6����]��N����x�� o/D�'oiغm R��{aXn�����'&�Թ�ä單ņS!�3���@�J$U�RH�@�a�&i�Q��QBr�*��G��o����rS�0���z�:�#e�<���HT4/��2������̀�k���)�ˢ����T)���MeF�����w��F������N�6�kP��꾾��r�v��eNT�^�t�D�hIn�(rp�p9�6>٭��r������I�DG�L�n�!C�(S*(o"H�) 0�n�aD�o�#�DZGnb�+S�����:��F����x�W�\����B�� I�X�!-����r��/{Fk�a�m�NBG�r�Ѣ�T��c�x,�7���pA�>}⾿� ^Xw�Pv�m���-�Fk�&)�F�X��ף��4"�D6���bF�D�W��>����o2�j#!'AI�k+2e|�'����z�8�%��H�ZR-#��: ׁ1��������wRZk`�j��Rz��_�$l�Z^���m�U@<U�PKS&E�0l\J��m�r'�/�'04�N�G��+���p������!7������;��J.�Ӷ_Z��� ��[~�B_�i(��m|�\si6ۣ��<~�gg�ȠEc�� Y�o�д�o+6=��m��l]'Yy�V.}�E��7q3��c�x��c֠ -�DX#TPMORZ�>��߫'��ǧPi�e`��^/���:^8��Az/UT����`]ݗvI�VgM�U��O�X>���{�z\�]�<�~�� o>�j.jW-��{^�d��>*{�{Rs5+���-�~C�.�3���I�*�D)���j.?d=�O�0Tqn�'[�Q=�ZG��>�$�;��� -7�Q�`�ؼ<=��ˀ��`��z���E8e��W��|���ov���N62�Ku�Kab�mW�]E�V�m��E� -/ -��0vQ`����gw�x�/ %�ch��ѕ�ٹ/�Ƒn��`�% �z���+�i��"�[�Ou� -G��%�%�ϭ� -7����H>S:��u*_M8�kl�S�âY �^������`�n/�XJ�5z���>z7? �OǶu\K�kʓ���Eﰓ�.=��;|&�FQ&U7��?�m���Ia����]�@����(~lFH$�8 �l -���#��WL'm]�wNAyr�(�%*�q�B~�R�TsO!��%��xFu��K]v�`�8w����d��K��}�(�T^�/���D��k���" D�#�\�����9䴩WZH�h�_| -�c�jK.MD��Y�u�>$�C���xT����./���ZN�3� -��:�|��f�s)���( -��n�$=�ea��PE�K{�:`�T�-��q��c���36dFiГ*v���nA�|�U�F�]�pd���d�O�Pq�L)I��� -��$Er�K��2��,D�wVq�O<�ï�<�ۏ���P�� '�ݯ�� -%��endstream +xڍM�ۺ�_��%ڙ5K��|�$}/�N_�i���� ۴��,y$9���_�%[�3{� @ �o���.�P�>&W&��b}x�;���&���,�D^���7k���,^��Hk��,_�֨,����?��}q�]��4�����͡���e�cԇ��eUO�}��__��c��<��Jř2Y/�F���0�G��L�Ȧ�"&)��*�#T��e�J�-������A��W�Q���ó2��mNG�`��_�6�S[�eS����9���S����o�{2q��+���nS�=�q��E.E6ꞧza�n]ыD���h� ���u��d���'"y�説���� -C��8�H�m���6Jy!o�尺o+�"��/;���sk>D7�F��>�WT�pj�Cі�����ba��1o��} �ѷ ����>|n�ϗ��s�1�j\X�7�$�T���a��n�@�R���=��cþ/�o�Sլ�2L:gЀ<mqp.:4�Ԝ�M����ڱk=��b^��~�/�l��4�|�Q��>�:(N���>���'����Ef츨�ʳ,hn)fi�4�F�V�P��Cr6�84�ctYo��P��7��t�(M��Y:R�^r�'�厮�?��g&ꜻ +��4�H�P�q��Z�@��]��57<���x��(�TdC;=X�B�_��\�Y�l�}����c�kٮ��Ʒ���$5��1�/�T��M/���'���W�Q����D�/� vͺk�y�C%Lq�W<���z&�` ���lO5�pQ���) ����{p�GY�Al?��* +(��Xy�6��?�8��^c���>7���($~���#���і��M�E+�7e�>ɣ�ò�< +��3�����<8�<xK�@v�/�j.�xq�#��I���H�I����Z���<��؋%��Tt%E�*����4�$��t�S�4Q�M���:�������Թ-{�}�x�{��C=J�����N^R�?_ۅ�V1��{F� ����E+{%F� b����@'�T��H�q�ij�o��VM�� ��+w���v�Ǯ�� +s�4� �2֤�K2Ypt��VM�1B������!y�*�Bğ>ঢ়\��;�B�����{f��1�E��+V����vg)�E-B9���Dţ������z.HI K1f�n�5��� I�v$?�����. �Blfr،���b�i���Y&4��"�����Ϫ���W_{ �����y����"�#U�(EM��TjT���I��l����p~��t�v-X���5���r-f�=Q��/ �95�N�e��{^ld u2X�[�u8�� T�1ٵ�^s�����eq�@ +O�H�+n�#�v�e!��j0)�C`2 d��I����&����I���}�3�:,Wό��x�&����uB��R��C�@��s䢒��b�_���U�� V�B.8:��Il�X�-Nfl� N�e����#�� �xaݺ]�n*�12o�0TI�O�SF��ޡ����� �nzF�����X�5�j�s��c��:�fW��:$�㠠�� +Q���A1�Gٕ��XڼH1=K��c�9<D�90��d?g���ʔ�����l�m_t����{����*���P���°�Q��S��Ie<Пv�~Cm�PTz�x!,e��u}!�1B*X�R���e}�/�Ӯ�;��U���)?~xB�O��R�6��\�N�r�wk��+w�Ro�ȠAc��,�{/4 ]ɦ����cd�'��S�r��+Gh�v�/�>�H�(1?B�:&��FY��oE/��� �A�O-9>W�ϛ��hh"~'�]A=j�iz��3����KdU�s"i�����(����r+��I�B�>he��n�����ܖ�S��"\�����`�{���}O�l�8G�O����˰�P��`��(��L,˺[;s�unGi��LŜ���v)���у\��Վ��\���ߥ���'���W�Q��`�9�|���)�9]w s�0s�J��9���/� �U��m�>��� ���Յ0qݺ-��/xO*�خ�t���Q�2a��� �c���I<`����P�1�����7���a�W̭���K��t� +5�Q���pDu� +=��.�ܖ?a�wE��-?a�dㄫD�^���3�G1=_�f�ps�C���Y6��f}:���Z�X���>���E�~�7��Z�.����;�>�6���l*]7��?�u�qI!q�Ѿi`��� V��D�7�d';ʰ�O6f�!�BdU~�t�U%���v�������_*��#�Bϝ��{9B��� &�xǻS��"�9�����(نtAŸג�@ũo�����P䪸K��D�=��|��(J|┌Z�<M#��~C9s�k�8�i"�D�˅�(t������QƯ�e�x����g�����/9=A��:A�\�`+Y�B]����/-PD?��*T���]�N�Gj�汏��p��n1O���Qt�A��݇���`��y�X�/@�� �Ȏ�n�y>�G%��%��6�K +kF�O��@M����k�NS�s�;$�\��u1<�q��2�YJ�P0�(�k��w���,钄�:�,��g�K�d/fw��9��h N��xF,>Ă����x���R*[QhR�x��VB|����� �;@�`Xv��XQbd��kH�g q��Y@��'�OJ��O�t��Tw5W��EZ{Q"zQ+�0~�/��d� +e�� #P;'H0O��]b��=3�J)$|K���`Zw��"�%�3��'E��q@�`z7(m]�2*Lx��$���S�<��͎��Jjp�ڋ� sS��l�%�0i�aG��ґ���i�9-��c��Ǿ�(��Y�˜��w(�T&��/�\�wQl2��<8�dqv�߅f6�?@bBYendstream endobj -3947 0 obj << +3939 0 obj << /Type /Page -/Contents 3948 0 R -/Resources 3946 0 R +/Contents 3940 0 R +/Resources 3938 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3984 0 R -/Annots [ 3958 0 R 3959 0 R 3962 0 R 3965 0 R 3968 0 R ] +/Parent 3974 0 R +/Annots [ 3945 0 R 3946 0 R 3949 0 R 3952 0 R 3955 0 R ] >> endobj -3958 0 obj << +3945 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [507.0988 513.6631 538.9788 524.567] +/Rect [507.0988 648.4036 538.9788 659.3075] /Subtype /Link /A << /S /GoTo /D (param-group-security) >> >> endobj -3959 0 obj << +3946 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.7348 502.6494 110.5853 511.6156] +/Rect [70.7348 637.3898 110.5853 646.3561] /Subtype /Link /A << /S /GoTo /D (param-group-security) >> >> endobj -3962 0 obj << +3949 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [103.8802 458.9333 158.1762 467.78] +/Rect [103.8802 593.6738 158.1762 602.5204] /Subtype /Link /A << /S /GoTo /D (product-group-controls) >> >> endobj -3965 0 obj << +3952 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [200.9852 438.9433 260.2625 449.8472] +/Rect [200.9852 573.6838 260.2625 584.5877] /Subtype /Link /A << /S /GoTo /D (users-and-groups) >> >> endobj -3968 0 obj << +3955 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [341.5858 395.1077 395.8818 406.0116] +/Rect [341.5858 529.8481 395.8818 540.7521] /Subtype /Link /A << /S /GoTo /D (product-group-controls) >> >> endobj -3949 0 obj << -/D [3947 0 R /XYZ 71.731 729.2652 null] +3941 0 obj << +/D [3939 0 R /XYZ 71.731 729.2652 null] >> endobj -3950 0 obj << -/D [3947 0 R /XYZ 71.731 741.2204 null] +3942 0 obj << +/D [3939 0 R /XYZ 89.6638 708.3437 null] >> endobj -654 0 obj << -/D [3947 0 R /XYZ 339.8756 705.7477 null] +3943 0 obj << +/D [3939 0 R /XYZ 71.731 680.284 null] >> endobj -3951 0 obj << -/D [3947 0 R /XYZ 71.731 693.5765 null] +3944 0 obj << +/D [3939 0 R /XYZ 89.6638 664.5081 null] >> endobj -3952 0 obj << -/D [3947 0 R /XYZ 71.731 614.3505 null] +3947 0 obj << +/D [3939 0 R /XYZ 71.731 638.3861 null] +>> endobj +3948 0 obj << +/D [3939 0 R /XYZ 89.6638 620.6725 null] +>> endobj +3950 0 obj << +/D [3939 0 R /XYZ 71.731 594.6701 null] +>> endobj +3951 0 obj << +/D [3939 0 R /XYZ 89.6638 576.8368 null] >> endobj 3953 0 obj << -/D [3947 0 R /XYZ 71.731 599.3418 null] +/D [3939 0 R /XYZ 71.731 569.6987 null] >> endobj 3954 0 obj << -/D [3947 0 R /XYZ 71.731 594.3605 null] ->> endobj -3955 0 obj << -/D [3947 0 R /XYZ 89.6638 573.6032 null] +/D [3939 0 R /XYZ 231.1139 545.9527 null] >> endobj 3956 0 obj << -/D [3947 0 R /XYZ 71.731 545.5436 null] +/D [3939 0 R /XYZ 71.731 530.8444 null] >> endobj 3957 0 obj << -/D [3947 0 R /XYZ 89.6638 529.7676 null] +/D [3939 0 R /XYZ 71.731 515.9004 null] +>> endobj +3958 0 obj << +/D [3939 0 R /XYZ 462.4737 483.0884 null] +>> endobj +1732 0 obj << +/D [3939 0 R /XYZ 76.7123 453.4994 null] +>> endobj +658 0 obj << +/D [3939 0 R /XYZ 232.4924 414.127 null] +>> endobj +3959 0 obj << +/D [3939 0 R /XYZ 71.731 403.762 null] >> endobj 3960 0 obj << -/D [3947 0 R /XYZ 71.731 503.6456 null] +/D [3939 0 R /XYZ 71.731 391.8457 null] >> endobj 3961 0 obj << -/D [3947 0 R /XYZ 89.6638 485.932 null] +/D [3939 0 R /XYZ 71.731 386.8643 null] +>> endobj +3962 0 obj << +/D [3939 0 R /XYZ 89.6638 366.1071 null] >> endobj 3963 0 obj << -/D [3947 0 R /XYZ 71.731 459.9296 null] +/D [3939 0 R /XYZ 132.5044 366.1071 null] >> endobj 3964 0 obj << -/D [3947 0 R /XYZ 89.6638 442.0964 null] +/D [3939 0 R /XYZ 379.7938 366.1071 null] +>> endobj +3965 0 obj << +/D [3939 0 R /XYZ 71.731 350.9988 null] >> endobj 3966 0 obj << -/D [3947 0 R /XYZ 71.731 434.9582 null] +/D [3939 0 R /XYZ 89.6638 335.2229 null] >> endobj 3967 0 obj << -/D [3947 0 R /XYZ 231.1139 411.2122 null] +/D [3939 0 R /XYZ 157.7278 322.2715 null] +>> endobj +3968 0 obj << +/D [3939 0 R /XYZ 71.731 320.1146 null] >> endobj 3969 0 obj << -/D [3947 0 R /XYZ 71.731 396.104 null] +/D [3939 0 R /XYZ 89.6638 304.3387 null] >> endobj 3970 0 obj << -/D [3947 0 R /XYZ 71.731 381.16 null] +/D [3939 0 R /XYZ 71.731 237.4247 null] >> endobj 3971 0 obj << -/D [3947 0 R /XYZ 462.4737 348.348 null] ->> endobj -1732 0 obj << -/D [3947 0 R /XYZ 76.7123 318.7589 null] ->> endobj -658 0 obj << -/D [3947 0 R /XYZ 232.4924 279.3866 null] +/D [3939 0 R /XYZ 71.731 222.4808 null] >> endobj 3972 0 obj << -/D [3947 0 R /XYZ 71.731 269.0216 null] +/D [3939 0 R /XYZ 142.175 212.9813 null] >> endobj 3973 0 obj << -/D [3947 0 R /XYZ 71.731 257.1052 null] ->> endobj -3974 0 obj << -/D [3947 0 R /XYZ 71.731 252.1239 null] ->> endobj -3975 0 obj << -/D [3947 0 R /XYZ 89.6638 231.3666 null] +/D [3939 0 R /XYZ 76.7123 149.7186 null] >> endobj -3976 0 obj << -/D [3947 0 R /XYZ 132.5044 231.3666 null] ->> endobj -3977 0 obj << -/D [3947 0 R /XYZ 379.7938 231.3666 null] ->> endobj -3978 0 obj << -/D [3947 0 R /XYZ 71.731 216.2584 null] ->> endobj -3979 0 obj << -/D [3947 0 R /XYZ 89.6638 200.4825 null] ->> endobj -3980 0 obj << -/D [3947 0 R /XYZ 157.7278 187.531 null] ->> endobj -3981 0 obj << -/D [3947 0 R /XYZ 71.731 185.3742 null] ->> endobj -3982 0 obj << -/D [3947 0 R /XYZ 89.6638 169.5983 null] ->> endobj -3983 0 obj << -/D [3947 0 R /XYZ 71.731 102.6843 null] ->> endobj -3946 0 obj << -/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F44 2183 0 R >> +3938 0 obj << +/Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -3987 0 obj << -/Length 2720 +3977 0 obj << +/Length 2574 /Filter /FlateDecode >> stream -xڭ]�۸�=��X�2�扤��>59$��%��Md����%W�ow��;����&�P,��3Cr>i� -�O�) � �ڝބ�L}|#�d�4�)ѻ�7?~�z��,V��q���P$a���Djd�z,��t�Ͻm�e�@��-Ne]v�/���]�-�*_���oo�?ND���oj8P���*�u�a&L��~�T�H'N�_�����!�&��e�D ��{�4V�W��o��R,�_����p͖ῆ��*[���]`%�<��֞�"0/��v�e�S��4�-�Z{�Ty�K�:�ϸ�lj�=�Ii~�`��ݭ6~C)Elb��U��zYo�V����dO[�'�=}�|kms9�0g���˜b`E�"����C/kdya�}�Z��g����`�w�6�w����U�B�UA,�B��1��㙺 l�wg��S�S:�;��عjD��*^��n �[K�֞��4�ke� -��洴32�,�\�6zX���SСE�Q)!c�s[CTSΌ�����[�LY7=�%{�6�ss���[9L��߯��y�-yM,��Xڥ?v��|� h����ޯ���R�0�V��B*�R�W:���ٕY�̪���� -4H2�fY�ə�cgԛA��-��4���� ��P -mR��! -A�����u��� oC�FƑH�,CH�:���# -��ݕ�Eq�ӧ�;�r����B`0Sܘ�C��\�aJ?��q&��;A�gX�>���&����hA')I�_�A���`���JG���w=!ϗ]s:��J �=LV�e��5��[�W����g�Ѳ����yq�n�[=�C�"bG�v���?0^�~Q��NH�,� �>���^�>~�������H�xM{��_���r�dU,B�D����u �B����8��H�����E���T� �Q'���]*���l�½F7�K3�:]M�y���A��;*��F�������b||����'��`�﮵9� r�e�ؼ&`�llQ:CEx߰��e�W4n�8��� -w���#*pG�9?X� -A�qZvW&q�[�����n�.��o�K������ͥ*�6���U��2�� �}�(�\LSI��\�Ȟ� p੧���B� �CEqų���Y'J[;t9�թ��a ����n�p�{jZKPa{�v��:k�-SE�#��S֒3x�͔��ox������BW~K(�ot�\Ŝ~G O�=-n���R�<n�J��X�F�5\�����;Z,�0��b@�{�1�!�o!��[:~�����Q9D�L���V!��#OX��c*ҡ/BɎ�8�H��ѓ߁Y�zB�u�O�C�»������� t��D�QD�� �!���_N}i�$.X9�WF���j�{4(�J�4��ۊ�����E��\i����o�f�-�[�ݹ�3�_l�B~��k�U�i�`���r^�P�Y�f�q�pKqф�cS�6��yb<�q�p��xA����9ڦc�MG#�]%B(괎F�_����&��x`�9��s):B`V�5K���1�|B��>�$���w�#��%g�y˺�OX�4���qvt\�K���#_�_ƣ|�#y1�}����u�)p�XZ"��6M�AIH�w���Z��1s ��7-�������*{���>�꣩cG��|�nB��I��8�=[6r��� �ɹ��l2���ϥl�7�K�yX�s�+�MG��a4�ԡ����H�����A1��h]fb��7����;�pO �f�q� ��L�g�����7K��X�c���!���"#���Ϻ: -�����r��,ƹgٕ۲*���'�sނ'��I���1�G&��Є�A�C��4T� -�Ӗ��@������[nW���{�C�L�Q~[O�=n���}�;�8����B�/������_��+���`������sz]J�`\�+��^D˹�m�L��9~�y��EVv�N����vzBU�s0J-e�y*U��d)���-�h���=E*'?^#�s!����9�&xwi[\.��J���m���A%����^��~��.0�Z��}��]�Ł=�{�y��SHa�0A -�@�4!,O�,9�t4"Z4��4�����).�fD^�`��W���+Cg/�:��7c~p.kXZ�y��5kd�N2Ŵ�=2i���>�Yz}����Wj���۵��ݬ��ʟHl|Y?��҉H3C������]v˹�zۮ������O�ݙK��_�Ux]�)���J�2ɖ��Q&�����R2�e�x�2~a�pß�ӹ -9�@z��Dn0XL�f�-���^����1��f, -#�^Oy��y.ԓbY�ڱm�"\[�� ���K�>�˸'W��0�:*}���̵�Ta7�J{}k` 0����H~�Ζ�� �^����WLL�i�2K�&6���� Ts��&r899�Br8}9=}yu��_G��J�l&�#�RA���!}��C��M0��.�3��%}M,�)㭽yR;2'/��"��0�N����v�Y�~dq^��ce�s��]�\1�|!��U5f�� -e������Ǽc�={ -�Su�| -�pE3��^��TI;�f�8�xz,f;���x�\�U�1j�m�A�? 9tPZ���l���;���w�-;X�����7�����m �2�N(�d���� ��jKendstream +xڽY[�ۺ~ϯ0� �<�E��&A��A�v�>4}���Z8��Jr7{~}g8C]l9��A��j8��o.��"�?�H�H5<T.T����*Z<«��$�lXf3z{���Z/r�'*Y��&�De�"�Jd����,��s�j��h�=��EU��/�Gb�=?�Q��]���ϯ����c��<���D�0i�.6R�<������Kp^�<W�q�}?-�%�"��$��T�N�7�F�Q�/6�s���B�M�p't$��3�Hr؉<�����DK�T�dX��Yd�{��9��%y��Ht��I���M'������o�-=v������{<����[�h��Ը�-�j��jw=�%i�Tt��Ż_�Q�aR�T�n%����*����;�tp����Z>�d�l�:� +`��n�!��j&��tD����x��'�Jm��֣�+���-K�n�6hzp�zb���3n�~���kں��4DKtDlI�v�����@8��^�i�/�{� ��H��Ug��i���2yM"{<����v���1��hR��Tjc�|��(S$�#����Ȣ8��Z�iv#��3$ dct<�T:�-A��µ���e�H�-�ʂ��g�B��W�х7{�m� +:HTn��� ��|"�h�m�"��|Yt�x�ո]၊��f#v\8X[Ҹ>�4�.ܽ��с;�O�ёU[�����00�3]�Pq�5�<&�0��HX����s�#�_��j[�w������ +��(��d��C�=\��>"�Xt�U��&6�ԅΝ+]�>�[����H����\0Lk.gǺqD�\g��]Өu���@�@E�S%����6c�k$^�B����Pge,ԕ����N����҆n*m�z�Q*�6���J��%/qc�l���f�L�|�0�3� ����Z��_0�!|�kٕ��p�*R +��U�!�FC)ґ�LL$��@j��&~��v���}UJ�&��P��l�i�uYT���0�H1��}]cr��a��.���q卓����ɾ���X����+��Y�>�<����b����7�շy}4�ۂ���=��G����Ȼ�ز��KÐ-�S�#�y��D@;r`�������8�cx[W]S��x<�b��.hF�"�r�͆l� �%Rh���F]�����E +��q�</�<���k��U�Ul�z+�� m0�,=FE(�og���e��a_�'llj�gG-%���ty���/�V��EQ�r�Y�4$��5����%rik��;�Ĥ�Gt[O�3��D�5>����I�?Px*3����Ps��0�:����p#��:1�A��0�C���7�G�v��(�7�_�q��+�`����ۘՑ�M�(�0�o{�8�g���'Eӧ�x�w���s�v-I`��s��dP�#��l�q������ۨ9'����� �(6���> +����,_b|xm�P�E�L�I�d��.�"��Z�d����Lo`t$�8�����l���6c��|���=�Xx�|�"�+����^��J��˗��}��]�H1���#s�j<ttJЁ�:�� _P������pE +��j�.]���"Y��@?��(����O8�����5�1?�t�I�����R3�����tYE)j0���!m�<B9�2˱Jʐ�n��禁��S+�$-�݆�tqPi45>�0�,`����>Ծ�7��O�7�"��r&�A�����g�������KK��BD���㜚��y:7���ṴUH&0(x���F�6t�Lg��&Q��UL-:[m�L�jb��\�,/� �]�s�@�'j����-���q�5g��mS<����~v$�C[?Y�ҩ��,A/n�г��f��zӬ��n��E����!.��8#���LS�%RK�m!�KRJ�.#���!O)%��f��:��������|o���S�L�=�@`6�����[��箆@�<�˃�����呌R������:�Q���b������|��X��m��eX��F�u�Ѥ;*B��p�^i�y�z} ����E.�|gs���O�M�}�߀��3Ei�� 6�xb��b��D�;'����w_�w_^��#r|�S5�Ӆ�T9|���Ӵ�n�%U��ө��U��XFc���'��3�Q�7�� +����٣hߞ��DQ,�������w�m�Z��|!��Yf��exWXN��6l�>��,���4t�7�hG;ZS'�X_�����v衙n�ML_���_5���x56!� �&���C�0�p��́�B(�@�{d��Uذ6[u�HF�^%��&2̈́�����X��P牢� ��2�|*G����?�Wq<�������"�)!v<#܄��dqzI9/���NT�����}�1y��{7:����Vs�����Q��[�QF�Q�"pF�� 5��a���@j���!5���p�|'N� �t�iԿ���D�ad� 2�2L@���;3ϝڝL�͟��D&����h�d�Ў�b��&��7��1�kFendstream endobj -3986 0 obj << +3976 0 obj << /Type /Page -/Contents 3987 0 R -/Resources 3985 0 R +/Contents 3977 0 R +/Resources 3975 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3984 0 R -/Annots [ 3993 0 R 3999 0 R ] +/Parent 3974 0 R +/Annots [ 3982 0 R 3988 0 R ] >> endobj -3993 0 obj << +3982 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [240.9848 488.1996 300.2621 499.1035] +/Rect [240.9848 571.3876 300.2621 582.2915] /Subtype /Link /A << /S /GoTo /D (edit-groups) >> >> endobj -3999 0 obj << +3988 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [429.0596 323.0987 475.9177 334.0026] +/Rect [429.0596 406.2867 475.9177 417.1907] /Subtype /Link /A << /S /GoTo /D (parameters) >> >> endobj -3988 0 obj << -/D [3986 0 R /XYZ 71.731 729.2652 null] +3978 0 obj << +/D [3976 0 R /XYZ 71.731 729.2652 null] +>> endobj +3979 0 obj << +/D [3976 0 R /XYZ 136.4882 684.7236 null] +>> endobj +3980 0 obj << +/D [3976 0 R /XYZ 76.7123 618.3763 null] +>> endobj +3981 0 obj << +/D [3976 0 R /XYZ 89.6638 600.4436 null] +>> endobj +1733 0 obj << +/D [3976 0 R /XYZ 71.731 567.4025 null] +>> endobj +662 0 obj << +/D [3976 0 R /XYZ 461.369 530.187 null] +>> endobj +3983 0 obj << +/D [3976 0 R /XYZ 71.731 519.822 null] +>> endobj +3984 0 obj << +/D [3976 0 R /XYZ 253.9624 510.0625 null] +>> endobj +3985 0 obj << +/D [3976 0 R /XYZ 499.806 510.0625 null] +>> endobj +3986 0 obj << +/D [3976 0 R /XYZ 71.731 477.0215 null] +>> endobj +3987 0 obj << +/D [3976 0 R /XYZ 71.731 433.1859 null] >> endobj 3989 0 obj << -/D [3986 0 R /XYZ 76.7123 645.0809 null] +/D [3976 0 R /XYZ 456.9916 370.5855 null] >> endobj 3990 0 obj << -/D [3986 0 R /XYZ 136.4882 601.5356 null] +/D [3976 0 R /XYZ 71.731 355.4773 null] >> endobj 3991 0 obj << -/D [3986 0 R /XYZ 76.7123 535.1883 null] +/D [3976 0 R /XYZ 71.731 340.5333 null] >> endobj 3992 0 obj << -/D [3986 0 R /XYZ 89.6638 517.2555 null] ->> endobj -1733 0 obj << -/D [3986 0 R /XYZ 71.731 484.2145 null] +/D [3976 0 R /XYZ 71.731 340.5333 null] >> endobj -662 0 obj << -/D [3986 0 R /XYZ 461.369 446.999 null] +3993 0 obj << +/D [3976 0 R /XYZ 71.731 327.7014 null] >> endobj 3994 0 obj << -/D [3986 0 R /XYZ 71.731 436.634 null] +/D [3976 0 R /XYZ 91.6563 311.8059 null] >> endobj 3995 0 obj << -/D [3986 0 R /XYZ 253.9624 426.8745 null] +/D [3976 0 R /XYZ 71.731 286.735 null] >> endobj 3996 0 obj << -/D [3986 0 R /XYZ 499.806 426.8745 null] +/D [3976 0 R /XYZ 71.731 286.735 null] >> endobj 3997 0 obj << -/D [3986 0 R /XYZ 71.731 393.8334 null] +/D [3976 0 R /XYZ 71.731 273.9031 null] >> endobj 3998 0 obj << -/D [3986 0 R /XYZ 71.731 349.9978 null] +/D [3976 0 R /XYZ 91.6563 258.0077 null] +>> endobj +3999 0 obj << +/D [3976 0 R /XYZ 71.731 207.0339 null] >> endobj 4000 0 obj << -/D [3986 0 R /XYZ 456.9916 287.3975 null] +/D [3976 0 R /XYZ 71.731 207.0339 null] >> endobj 4001 0 obj << -/D [3986 0 R /XYZ 71.731 272.2892 null] +/D [3976 0 R /XYZ 71.731 194.202 null] >> endobj 4002 0 obj << -/D [3986 0 R /XYZ 71.731 257.3453 null] +/D [3976 0 R /XYZ 91.6563 178.3066 null] >> endobj 4003 0 obj << -/D [3986 0 R /XYZ 71.731 257.3453 null] +/D [3976 0 R /XYZ 71.731 153.2357 null] >> endobj 4004 0 obj << -/D [3986 0 R /XYZ 71.731 244.5133 null] +/D [3976 0 R /XYZ 71.731 153.2357 null] >> endobj 4005 0 obj << -/D [3986 0 R /XYZ 91.6563 228.6179 null] +/D [3976 0 R /XYZ 71.731 140.4037 null] >> endobj 4006 0 obj << -/D [3986 0 R /XYZ 71.731 203.547 null] +/D [3976 0 R /XYZ 91.6563 124.5083 null] >> endobj -4007 0 obj << -/D [3986 0 R /XYZ 71.731 203.547 null] ->> endobj -4008 0 obj << -/D [3986 0 R /XYZ 71.731 190.7151 null] ->> endobj -4009 0 obj << -/D [3986 0 R /XYZ 91.6563 174.8197 null] ->> endobj -3985 0 obj << +3975 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F44 2183 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4012 0 obj << -/Length 2269 +4009 0 obj << +/Length 2636 /Filter /FlateDecode >> stream -xڽY͎���S}w�fD����f�E`;�$Yf��ʒ#���y�T�H��$;D��"�����&�ߤ��1<�f"QbS�?E�#L��;���مL?�~��q��L'"ټ�md�4��&���6��l���Ko��P�6f��r8�u����D��z�OYU��^���ϯ��*N��`��\t���2�8���>K�m���4y=�=���5 ���m^;�7s�Ñx��N�he�W�ݰ����)��I� &u��0��}��L�nv�D{v�gל%*��}��'ڦ|{�gB�S�mވ�s���Y,�3�)zs���i �����w�|_=�9��nتo��ӽ����B��Y������i�|s�@q��6gP�8���kU7�[[�)��v\0���W��;3�q���P�f'`!����,9������k�',�`���8��;�����F��_�`D9:����0p�G�Kg~z�dq�i�z� o=C:ϐϐ�!�g��3$����0V��{���?�{Ç� �r)���`��z���Z�ԓP���@���5w����a�������=� {bSWD����}��)LG�ZwB��*��ݺ�?Ú�o/y�� e��m dSCij�bS�6�,�kS�3�����}I�� �yt��ljfJA�V0��K�p`�\s��d�c�^��[$�����������'LE2�l�ִ�uY��܋ש. ͍V��B�LfSc������Sy��1�D~�`J�S�5��RSx��7�[ *a@���X('� - >h�+�<�}��/�*U�X��u#�* ^,b��@�U��:� ^)Hdb��z<]h:�.��еta���+�e$7*\�x ;�k�-��V����z(��t�\�tHb&�P�0^��t��W�F"��ɦ����"�@d�e"� �@T��E�mF�m�t]y�I���3����J�1-"�=m��JD����/���dG���{S4g��szrhL�č�CT4m^�K�����,�h��D�NY�eˆ�L��knǙ,<)g�[f�%I�-n����*�d�I,����n�ݔ-�~�TeQ�:�v�������^��y+��CI�h�~~V�]b �m�?+�8�S$[T���f�E^�1�d!j=�_uO`���h�#�}k�3�(��w��%�@�͒��mq""��@���G;��t�H�h�D"��mK�o�(ޱ�Q��f�f���M`�����]S}��.����-X:/0缬�z�nv����� lתw���7���%K;qÄ{��X�IΡ^l2�N��eClb��Բ>�E���6�٭ʼ%���gNC���1Yv��L T�w([�6����Y�DmM~kZ��h���i/e�\1~/�|ܬ|�~W����n\�<� -0:����5�m(�'�x�Qu!',ձ��R�G#����.d[.c�Ҧ��~��De������3i�[�"c���~����υ;��������3�0�=~�R�����hDYQ]�!�5Sn�����T�p�<a�`�Q -�:*���P�z��z�����W���6����nQzՇ��������警���g�3>=s��:�劯@�0��{W��8���y�����t&�;Sϵ�Zә�P��W��L�D>P�s=R���|�ƛ�L��hRف�}^f���а��bȵ�Ł� -�5,.m���U���HMK�H�����/�H�<c�v�Z>��ֳ��*o�*�p�� -d�mώ���#�ޘ�H��%:�-������7�� -H�4ulm����:FN��j�Lh�Q�����p����3�j�<���D���H�t�HxVN���C��nM����C������]�;�⹖�=�_�L��Yr_���\j&c-�j܇�#'[w��.��Oƍ������N�&ߴ�i��� ��&c�+�[ܡ��ׯM���iz�F�õ�ﶽ!�a٥-�y�I��۵���S�c��):�l��ñ�=�$�68"�_k*[��&aE��.��s�!�M���w{��ю����ə&U�k�1]��������e5ѝ�2�P�}��^C1��~�bcȈ>���2z *C�@9G�ϗʸ�� �~�KY��[�6ɳ�eO���2-�I@�L�p,$��X�����@�����T��x��9��������Z�p�$Z��za��B��endstream +xڭZO�ۺ ��Sx�og͊�?��m�ޤ3�v&�SۃV�ښȒ�$7�~�HS�l��كI@?��V�"���L�,���q��Uu��v0���,�لL��|��I�*D�����m��HdQ^��$����e����<����:Z'�~?mu[@���~9��[7M��~�ˋW��L9h�i��c�[m��D%����Q�uw:d�˾��\���j����Ϻ4�U�E$���%sc��(�f0v�{�|%�Xf�M(Ѯ,�R�:M�zqi_����hq!����kX���w"�1�h�4��qAv��k�`��qo�r�̚�F��X��/�:�q���#vm�N���C�ڰ����d�GP�k⪛z|����ld, +-�]��<|�9�\˾<r��Uٴ%���k�H���}В���_Q�N}9���ܝ4�Nqq�IZ�a��,Jz�Y=�&d��\.�+�W�LO���AI%d��6�1ݱ@�T�H%S���-4��8�*�ux�xV�$V"W���܆乀�FB;��j����.As��+`���2�?�5�x��k +V� ������c��Mh6�q8�UJ ��>h�+@>� <�:n+u�[��l#�j�:���t����1�ϸ-� n�K�"p�e���7��@��* �Cs���B�H�R�����ڄlK�60ذ�"��� �� i"T�A$�� �<�0m.����t +�)�'��1'+�-�J�)�5g\X������a�w-���? ����;�L��Ԅk��#!cE~����l�r��T݁SyI?�jF��G\Đ����h��ˆ��%�y�4�.�8��`���+fڄ\�s��Jq�2/ �$��ʫQ�M�c�L6����Kb� +�e��<dp�~���GH;6e���v�����;oe0����&���㣶�Đ����A��8E�E��]k�*ʪ2�����2��jx��O��&؊�o}w E# =�2��O0EH��2����DD`Ղ�(��v˴=ϥ}G�{w"9d;Ng��96��c3f�}�g��BE�'ަvK�]��~#Zw>����ʺ!�r��ag��[3r۩� wG!~�Y��=!���I��i����4�8>a'��"�n�uU�f ��w@�Y�; �跤c�dcL�_�"����|ۺ�<a-��Yg��^���� ���K�tRfa��{�6� .n6��N+�~EPw9d��f�s�y]{�� $�\T]HĩȊD��N�� +y%3�&d[�c�Ҧ��^M�y"�2-V��=f��q-g�DH���r]��5�Wsƒ��9� 3�>g�������(����2����!1�L����k.��!4��a�R��0���s��[꾾����Sٳ���<�� F\ (X��M����A��"���g�u� �ҕ+��\a��~��v�$���J��*-T�|=u\��m�z:���*(�f�J +%�"Uw�p\��(�j�grjƛ�L��hRف�c�V�:#�p,�`1ກE�E��U,.�� ,�4a&�\�EzZJE��o:�o�S!T�36mG|�CZo={wjʞ�P�ӭW �h��8�/"��i8��FG��!rw4P��S[����v�-rpt^Ǩig_& +�4�c�08������6���������H'���`�T/5�V݄+�"&����'Y.r],g�.!�uw�\���_�JE������RB%E<5�6�}���#.���:�W�}o�U���%�=�,]q����+�Z����,u��v$Jsq��;���j��k/!���P���,[��Z{b%>��8&O�E�^����`x��ni��6�"�_o[��%�T�]����E"{K���qd����@������&�|k�6m�ܷ��R��;��Dg;��A�ю���w�k(Ɛ�~;��P�\�B��h�͎V��ᡎ����c]=u��6 u�PY~��Lȴ�{.$-�Y 5�q�D��sݴ�sݱa.͗���L�R+�(�$ª>��:q�JO�c�yH���/e��y����r,_ˁC��v4���')����o�ʃ;7�� +1���h͟���*]`rWz=������d����.�o�}:�/��%��,# +T�����[��� +:5[7�x��������K0k��ZYɇ�6�Om� $��'���D�*\�L/yD�N�Po/$r�K�M�a����i�7��Q�K�S��(m�����{Ɖk�{�X��@�h�!R���@=&>|-[K������C�����[M�q��Г���;XW�6e���f�lo�e�/dez���{\��]�Qm�o�me�lj�D����������ݩ�-��>@���i��D��nGԚ��r?x$��J.�B�_�~NmS��[?�����'���r�D������<�E�Bԩ�+0�4 �lʀ�m=��>Y��<2�ј<ۂz�߈�?d�T�g��X�GR��D,�U�P�aӟX�xi$�?�u�YZ<�ep;�3k(�/*,��o���.�*�7x��S/f�嬒�p[��~��K��?Xa5�ǟ��{�x�=~G[N� +*N�73o�3�w�"�E�%�ަ���qXP�?,X|�endstream endobj -4011 0 obj << +4008 0 obj << /Type /Page -/Contents 4012 0 R -/Resources 4010 0 R +/Contents 4009 0 R +/Resources 4007 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3984 0 R -/Annots [ 4026 0 R 4031 0 R 4036 0 R 4039 0 R 4042 0 R 4044 0 R ] +/Parent 3974 0 R +/Annots [ 4016 0 R 4021 0 R 4026 0 R 4029 0 R 4032 0 R 4034 0 R ] >> endobj -4026 0 obj << +4016 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [368.5546 566.7099 415.1942 577.6138] +/Rect [368.5546 674.3064 415.1942 685.2104] /Subtype /Link /A << /S /GoTo /D (parameters) >> >> endobj -4031 0 obj << +4021 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [414.1442 499.9602 461.4474 510.8642] +/Rect [414.1442 607.5567 461.4474 618.4607] /Subtype /Link /A << /S /GoTo /D (parameters) >> >> endobj -4036 0 obj << +4026 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [415.7972 342.8295 462.6212 353.7334] +/Rect [415.7972 450.426 462.6212 461.3299] /Subtype /Link /A << /S /GoTo /D (useradmin) >> >> endobj -4039 0 obj << +4029 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [336.7154 311.9453 395.9927 322.8492] +/Rect [336.7154 419.5418 395.9927 430.4457] /Subtype /Link /A << /S /GoTo /D (edit-groups) >> >> endobj -4042 0 obj << +4032 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [88.6675 268.1097 147.9448 279.0136] +/Rect [88.6675 375.7062 147.9448 386.6101] /Subtype /Link /A << /S /GoTo /D (create-groups) >> >> endobj -4044 0 obj << +4034 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.7348 179.7859 125.0308 188.6325] +/Rect [70.7348 287.3824 125.0308 296.229] /Subtype /Link /A << /S /GoTo /D (product-group-controls) >> >> endobj +4010 0 obj << +/D [4008 0 R /XYZ 71.731 729.2652 null] +>> endobj +4011 0 obj << +/D [4008 0 R /XYZ 71.731 741.2204 null] +>> endobj +4012 0 obj << +/D [4008 0 R /XYZ 71.731 718.3063 null] +>> endobj 4013 0 obj << -/D [4011 0 R /XYZ 71.731 729.2652 null] +/D [4008 0 R /XYZ 71.731 718.3063 null] >> endobj 4014 0 obj << -/D [4011 0 R /XYZ 71.731 718.3063 null] +/D [4008 0 R /XYZ 71.731 706.3064 null] >> endobj 4015 0 obj << -/D [4011 0 R /XYZ 71.731 718.3063 null] ->> endobj -4016 0 obj << -/D [4011 0 R /XYZ 71.731 706.3064 null] +/D [4008 0 R /XYZ 91.6563 690.4109 null] >> endobj 4017 0 obj << -/D [4011 0 R /XYZ 91.6563 690.4109 null] +/D [4008 0 R /XYZ 71.731 652.3886 null] >> endobj 4018 0 obj << -/D [4011 0 R /XYZ 71.731 665.34 null] +/D [4008 0 R /XYZ 71.731 652.3886 null] >> endobj 4019 0 obj << -/D [4011 0 R /XYZ 71.731 665.34 null] +/D [4008 0 R /XYZ 71.731 639.5567 null] >> endobj 4020 0 obj << -/D [4011 0 R /XYZ 71.731 652.5081 null] +/D [4008 0 R /XYZ 91.6563 623.6613 null] >> endobj -4021 0 obj << -/D [4011 0 R /XYZ 91.6563 636.6127 null] +1734 0 obj << +/D [4008 0 R /XYZ 71.731 590.6202 null] +>> endobj +666 0 obj << +/D [4008 0 R /XYZ 304.8252 553.4047 null] >> endobj 4022 0 obj << -/D [4011 0 R /XYZ 71.731 611.5418 null] +/D [4008 0 R /XYZ 71.731 543.0397 null] >> endobj 4023 0 obj << -/D [4011 0 R /XYZ 71.731 611.5418 null] +/D [4008 0 R /XYZ 71.731 531.1234 null] >> endobj 4024 0 obj << -/D [4011 0 R /XYZ 71.731 598.7098 null] +/D [4008 0 R /XYZ 71.731 526.142 null] >> endobj 4025 0 obj << -/D [4011 0 R /XYZ 91.6563 582.8144 null] +/D [4008 0 R /XYZ 89.6638 505.3848 null] >> endobj 4027 0 obj << -/D [4011 0 R /XYZ 71.731 544.7921 null] +/D [4008 0 R /XYZ 71.731 451.4222 null] >> endobj 4028 0 obj << -/D [4011 0 R /XYZ 71.731 544.7921 null] ->> endobj -4029 0 obj << -/D [4011 0 R /XYZ 71.731 531.9602 null] +/D [4008 0 R /XYZ 89.6638 435.6463 null] >> endobj 4030 0 obj << -/D [4011 0 R /XYZ 91.6563 516.0647 null] +/D [4008 0 R /XYZ 71.731 420.538 null] >> endobj -1734 0 obj << -/D [4011 0 R /XYZ 71.731 483.0237 null] +4031 0 obj << +/D [4008 0 R /XYZ 89.6638 404.7621 null] >> endobj -666 0 obj << -/D [4011 0 R /XYZ 304.8252 445.8082 null] +1735 0 obj << +/D [4008 0 R /XYZ 71.731 371.7211 null] >> endobj -4032 0 obj << -/D [4011 0 R /XYZ 71.731 435.4432 null] +670 0 obj << +/D [4008 0 R /XYZ 381.7631 334.5056 null] >> endobj 4033 0 obj << -/D [4011 0 R /XYZ 71.731 423.5268 null] ->> endobj -4034 0 obj << -/D [4011 0 R /XYZ 71.731 418.5455 null] ->> endobj -4035 0 obj << -/D [4011 0 R /XYZ 89.6638 397.7883 null] ->> endobj -4037 0 obj << -/D [4011 0 R /XYZ 71.731 343.8257 null] ->> endobj -4038 0 obj << -/D [4011 0 R /XYZ 89.6638 328.0498 null] +/D [4008 0 R /XYZ 71.731 324.1406 null] >> endobj -4040 0 obj << -/D [4011 0 R /XYZ 71.731 312.9415 null] ->> endobj -4041 0 obj << -/D [4011 0 R /XYZ 89.6638 297.1656 null] ->> endobj -1735 0 obj << -/D [4011 0 R /XYZ 71.731 264.1246 null] +1736 0 obj << +/D [4008 0 R /XYZ 71.731 273.4347 null] >> endobj -670 0 obj << -/D [4011 0 R /XYZ 381.7631 226.9091 null] +674 0 obj << +/D [4008 0 R /XYZ 481.7981 228.2799 null] >> endobj -4043 0 obj << -/D [4011 0 R /XYZ 71.731 216.5441 null] +4035 0 obj << +/D [4008 0 R /XYZ 71.731 215.8419 null] >> endobj -1736 0 obj << -/D [4011 0 R /XYZ 71.731 165.8382 null] +4036 0 obj << +/D [4008 0 R /XYZ 71.731 160.7283 null] >> endobj -4010 0 obj << +4007 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4047 0 obj << -/Length 1338 +4039 0 obj << +/Length 758 /Filter /FlateDecode >> stream -xڍWK��6�ϯ0���U�$?��}a -��=�=(����خ-ow��K���ɤ��``����G� �?��>YŲ\gI}y�� ��Qde�k������2�X�gy�;&�sV�J -��R�2�~K�>���a��4O%����ŵn�kO��0��qMc6�~x�v�(ײ`U >k�"���L&�`�� -�����(���� +J��֛���dpL{ �G�Z���7ƛ�-��ZoO��/��h-V���6L�*�~��:���Ի�%�y�f�i�w���M�=v�%�%d�}���B}������n�>*Yn��g�~�e�1mw1��#���lX�M�a>���� ��t����"c�*��v܅���4�S�J�#�fOiy1�D�j����x��&?��͍��մ=�!���d��<5��zCL@�8t�<܃�{�M�Š}�m�-FE(�`�c,[ψ�2V����`GZE�_L� -���;��zp!q@���TmZ"z�eWʇE`B]M�*�xj�m���q7���mm,��~�����V],rp�kG��虯����nS���:����8�b���V���N�u��7��_�l["����_��qm�u��Z0Id�fQy�x���Uت%�@�o�4����������7��y P����,�h�d����ӑ���j%�]4�6��>�����;��'jv!>��Ǩ���v��g��(�pB���3�F�9A|/�������h;�:zs"ZUF�h8P��krC�]��������h���Xz/�\����6Iί���8�g���I��;b���P9HP�B��wCۿ�������Ah�+����:)���ã)�b�T%8������9X��y� -ͤ(tgt���UM�UgB�����%����P����uL�7[�/9˲RE���e -�zk(��yQ�Q��n�Q<���َS��[�̆l�V�6Tn���^�k(�[��xq(y�:� -�[����ɽ��f�!�t������Z�_f��8_?��dL�]m��L&�d�P8��L�UA3OL~ -W�N��SP���"�f�+���d��2�^Mt�I�g�]�K0�$�����4C�BڕZ�y+J�Py�)�Y.�|U��X�eɯ#�;ڄ�l�`*P``lQ��������?n$5 �4����E�M&��M&L'�v�J�{�'H���7/D��ݩE("���| �:�T �;7�m|�=O@^ ��D�px�Dlo��u%!�<KV9��L+ə,s�9�} ��J�R�p<�����tQ%+E^��墳�qQU�,�����Y]6+���s endstream +xڍU˒�0��W�\���7a�L��K�*��4��Q^�X��{���"�����9@������� +̔d�lw�`��FH1�t�߽��9*p��B�#�����a-�F��{r{6�l�4c�$��]��]=���N�us9���Ƥ?��w��kp�s\h��j�+�i�,��TK4��>��٦'$y��t�|^n϶��&�S9����tΠ�i�>���x�q�6X�rwٷ�����]t��&ܶ;6WQ��h�4��+��5Jw�O>��勇&ோ���\F8��U?�A�`S�8�(Å��%�����Jv�/�oMq���M|M0cZ���R���3�2�U�U��� I��;]�9F� L�N��M�2�ܥT&v�Uܾ�mM��P$%$8Ù~ �C�$p/ ��������T/��_Z�֥t�4&��`�zz�5��f^����tM9ץŏ%B)�2)Ł�0i/����B��h�踞"��7�����{��� �� "�^�X1�Nh/��������(��9����atF5|2sCQX�\m���F�:%e$��ML�A��D���]��4��e��L9�w�&,���ζ��2��9��&~���P�G����O��������'S}��c�=�k&VR�r���p�hS��v�)����{F nl;9�=��L�N���`��{���2A��?!q���L�ƚ����dZhA�N)���as��/���endstream endobj -4046 0 obj << +4038 0 obj << /Type /Page -/Contents 4047 0 R -/Resources 4045 0 R +/Contents 4039 0 R +/Resources 4037 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3984 0 R ->> endobj -4048 0 obj << -/D [4046 0 R /XYZ 71.731 729.2652 null] ->> endobj -674 0 obj << -/D [4046 0 R /XYZ 481.7981 705.7477 null] ->> endobj -4049 0 obj << -/D [4046 0 R /XYZ 71.731 693.3097 null] +/Parent 3974 0 R >> endobj -4050 0 obj << -/D [4046 0 R /XYZ 71.731 638.1961 null] ->> endobj -4051 0 obj << -/D [4046 0 R /XYZ 71.731 594.3605 null] ->> endobj -4052 0 obj << -/D [4046 0 R /XYZ 416.5658 583.5659 null] +4040 0 obj << +/D [4038 0 R /XYZ 71.731 729.2652 null] >> endobj -4053 0 obj << -/D [4046 0 R /XYZ 151.9594 570.6145 null] +4041 0 obj << +/D [4038 0 R /XYZ 71.731 718.3063 null] >> endobj -4054 0 obj << -/D [4046 0 R /XYZ 71.731 563.4763 null] +4042 0 obj << +/D [4038 0 R /XYZ 416.5658 708.3437 null] >> endobj -4055 0 obj << -/D [4046 0 R /XYZ 71.731 550.5249 null] +4043 0 obj << +/D [4038 0 R /XYZ 151.9594 695.3923 null] >> endobj -4056 0 obj << -/D [4046 0 R /XYZ 118.5554 511.9608 null] +4044 0 obj << +/D [4038 0 R /XYZ 71.731 675.3027 null] >> endobj 4045 0 obj << -/Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F32 1306 0 R /F44 2183 0 R >> +/D [4038 0 R /XYZ 118.5554 636.7386 null] +>> endobj +4037 0 obj << +/Font << /F33 1398 0 R /F27 1298 0 R /F35 1752 0 R /F32 1306 0 R /F23 1290 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4059 0 obj << +4048 0 obj << /Length 2492 /Filter /FlateDecode >> @@ -17234,135 +17270,135 @@ M �.2�:A�, M���(���[4�Ƞ����{����'��D�j��BRx�X+%T!c� ��k�;���o/���l�?���X�"Mɳ-��ۘZ�~�,����oHT�2pI�CQ�c��&��ya�̵x�eI�Ld2���諏`��,��)I���7��`����~��3��k�=Ǐ�z��T�5������#8��j��b�d�i�y�z�B�f(wh��fF?#eZ��V�;Ug��1 ��r�.�b�������{��*�.r���lڅiU�<������].C�U��*�8|u�i�������K�t�� �8�3�k)���=�\=�,M�0�% ��G�9n�2%�\+&��!�)�S���1�X��Ԇc;� �R�5z����ƯD��(�r�y�o�JB����R*�YГ��O�Ŧ�: ���Y��&PPO�#%�������A���~�&O�+�������w��z ����v��m5�7�I�($)����"�~������#��-��Z���d;�y9����� m���uӿ_.��.��endstream endobj -4058 0 obj << +4047 0 obj << /Type /Page -/Contents 4059 0 R -/Resources 4057 0 R +/Contents 4048 0 R +/Resources 4046 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3984 0 R -/Annots [ 4066 0 R 4071 0 R ] +/Parent 3974 0 R +/Annots [ 4055 0 R 4060 0 R ] >> endobj -4066 0 obj << +4055 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [96.5016 366.6214 133.9111 377.5253] /Subtype /Link /A << /S /GoTo /D (gloss-daemon) >> >> endobj -4071 0 obj << +4060 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [257.7381 353.6699 291.8196 364.5739] /Subtype /Link /A << /S /GoTo /D (gloss-service) >> >> endobj -4060 0 obj << -/D [4058 0 R /XYZ 71.731 729.2652 null] +4049 0 obj << +/D [4047 0 R /XYZ 71.731 729.2652 null] >> endobj 1838 0 obj << -/D [4058 0 R /XYZ 71.731 718.3063 null] +/D [4047 0 R /XYZ 71.731 718.3063 null] >> endobj 678 0 obj << -/D [4058 0 R /XYZ 344.9571 703.236 null] +/D [4047 0 R /XYZ 344.9571 703.236 null] >> endobj -4061 0 obj << -/D [4058 0 R /XYZ 71.731 681.8546 null] +4050 0 obj << +/D [4047 0 R /XYZ 71.731 681.8546 null] >> endobj -4062 0 obj << -/D [4058 0 R /XYZ 522.288 634.6452 null] +4051 0 obj << +/D [4047 0 R /XYZ 522.288 634.6452 null] >> endobj -4063 0 obj << -/D [4058 0 R /XYZ 71.731 616.593 null] +4052 0 obj << +/D [4047 0 R /XYZ 71.731 616.593 null] >> endobj 1839 0 obj << -/D [4058 0 R /XYZ 71.731 575.7013 null] +/D [4047 0 R /XYZ 71.731 575.7013 null] >> endobj 682 0 obj << -/D [4058 0 R /XYZ 252.5595 532.6038 null] +/D [4047 0 R /XYZ 252.5595 532.6038 null] >> endobj 1840 0 obj << -/D [4058 0 R /XYZ 71.731 528.7736 null] +/D [4047 0 R /XYZ 71.731 528.7736 null] >> endobj 686 0 obj << -/D [4058 0 R /XYZ 198.2194 493.2315 null] +/D [4047 0 R /XYZ 198.2194 493.2315 null] >> endobj -4064 0 obj << -/D [4058 0 R /XYZ 71.731 485.8792 null] +4053 0 obj << +/D [4047 0 R /XYZ 71.731 485.8792 null] >> endobj 1841 0 obj << -/D [4058 0 R /XYZ 71.731 427.1145 null] +/D [4047 0 R /XYZ 71.731 427.1145 null] >> endobj 690 0 obj << -/D [4058 0 R /XYZ 267.8696 389.899 null] +/D [4047 0 R /XYZ 267.8696 389.899 null] >> endobj -4065 0 obj << -/D [4058 0 R /XYZ 71.731 379.7563 null] +4054 0 obj << +/D [4047 0 R /XYZ 71.731 379.7563 null] >> endobj -4067 0 obj << -/D [4058 0 R /XYZ 209.7301 369.7744 null] +4056 0 obj << +/D [4047 0 R /XYZ 209.7301 369.7744 null] >> endobj -4068 0 obj << -/D [4058 0 R /XYZ 291.3343 369.7744 null] +4057 0 obj << +/D [4047 0 R /XYZ 291.3343 369.7744 null] >> endobj -4069 0 obj << -/D [4058 0 R /XYZ 381.0612 369.7744 null] +4058 0 obj << +/D [4047 0 R /XYZ 381.0612 369.7744 null] >> endobj -4070 0 obj << -/D [4058 0 R /XYZ 419.6033 369.7744 null] +4059 0 obj << +/D [4047 0 R /XYZ 419.6033 369.7744 null] >> endobj -4072 0 obj << -/D [4058 0 R /XYZ 322.3875 356.823 null] +4061 0 obj << +/D [4047 0 R /XYZ 322.3875 356.823 null] >> endobj -4073 0 obj << -/D [4058 0 R /XYZ 449.9815 356.823 null] +4062 0 obj << +/D [4047 0 R /XYZ 449.9815 356.823 null] >> endobj -4074 0 obj << -/D [4058 0 R /XYZ 489.8335 356.823 null] +4063 0 obj << +/D [4047 0 R /XYZ 489.8335 356.823 null] >> endobj -4075 0 obj << -/D [4058 0 R /XYZ 436.781 343.8716 null] +4064 0 obj << +/D [4047 0 R /XYZ 436.781 343.8716 null] >> endobj -4076 0 obj << -/D [4058 0 R /XYZ 258.7334 330.9202 null] +4065 0 obj << +/D [4047 0 R /XYZ 258.7334 330.9202 null] >> endobj -4077 0 obj << -/D [4058 0 R /XYZ 171.6422 317.9687 null] +4066 0 obj << +/D [4047 0 R /XYZ 171.6422 317.9687 null] >> endobj -4078 0 obj << -/D [4058 0 R /XYZ 71.731 304.9177 null] +4067 0 obj << +/D [4047 0 R /XYZ 71.731 304.9177 null] >> endobj -4079 0 obj << -/D [4058 0 R /XYZ 71.731 289.9738 null] +4068 0 obj << +/D [4047 0 R /XYZ 71.731 289.9738 null] >> endobj -4080 0 obj << -/D [4058 0 R /XYZ 209.8716 278.417 null] +4069 0 obj << +/D [4047 0 R /XYZ 209.8716 278.417 null] >> endobj -4081 0 obj << -/D [4058 0 R /XYZ 316.0526 278.417 null] +4070 0 obj << +/D [4047 0 R /XYZ 316.0526 278.417 null] >> endobj -4082 0 obj << -/D [4058 0 R /XYZ 129.3774 266.7608 null] +4071 0 obj << +/D [4047 0 R /XYZ 129.3774 266.7608 null] >> endobj 1842 0 obj << -/D [4058 0 R /XYZ 71.731 238.8654 null] +/D [4047 0 R /XYZ 71.731 238.8654 null] >> endobj 694 0 obj << -/D [4058 0 R /XYZ 215.5068 199.493 null] +/D [4047 0 R /XYZ 215.5068 199.493 null] >> endobj -4083 0 obj << -/D [4058 0 R /XYZ 71.731 192.0618 null] +4072 0 obj << +/D [4047 0 R /XYZ 71.731 192.0618 null] >> endobj -4084 0 obj << -/D [4058 0 R /XYZ 401.9114 179.3685 null] +4073 0 obj << +/D [4047 0 R /XYZ 401.9114 179.3685 null] >> endobj 1843 0 obj << -/D [4058 0 R /XYZ 71.731 136.3648 null] +/D [4047 0 R /XYZ 71.731 136.3648 null] >> endobj -4057 0 obj << +4046 0 obj << /Font << /F23 1290 0 R /F27 1298 0 R /F33 1398 0 R /F35 1752 0 R /F44 2183 0 R /F61 2701 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4089 0 obj << +4078 0 obj << /Length 1612 /Filter /FlateDecode >> @@ -17374,400 +17410,392 @@ xڭXmo �cTq�{J�s���h��j:'�M�B�f�jnR�_�;���/��(ͱ���iɥqT/qIwT��]n��T�C釃|k��Z�o}k{WC��W���P1�\��F���5s5D��$M)�8]�]��BzMu�&?}_*r#EԸ����u��E���I�4�V�uJ��oW�p'�nG�vl��;b�+=-U~Lq�����(�y����o���s<����{W�g�-�e�Tȸ�4|����� �&�1O�t�}��t��݈�R����E���TzC�K��Q�-���r�+?'k���ȇk�08cã�����'L h!�]n-�oO>��րÿ{��fendstream endobj -4088 0 obj << +4077 0 obj << /Type /Page -/Contents 4089 0 R -/Resources 4087 0 R +/Contents 4078 0 R +/Resources 4076 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 3984 0 R -/Annots [ 4092 0 R 4112 0 R 4114 0 R ] +/Parent 3974 0 R +/Annots [ 4081 0 R 4101 0 R 4103 0 R ] >> endobj -4092 0 obj << +4081 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [140.5347 643.0977 195.313 654.0017] /Subtype /Link /A << /S /GoTo /D (security-os-accounts) >> >> endobj -4112 0 obj << +4101 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [317.9754 336.2285 371.1556 347.4314] /Subtype /Link /A << /S /GoTo /D (security-mysql-account-root) >> >> endobj -4114 0 obj << +4103 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [441.1054 235.8848 496.5509 246.7887] /Subtype /Link /A << /S /GoTo /D (security-os-ports) >> >> endobj -4090 0 obj << -/D [4088 0 R /XYZ 71.731 729.2652 null] +4079 0 obj << +/D [4077 0 R /XYZ 71.731 729.2652 null] >> endobj 698 0 obj << -/D [4088 0 R /XYZ 164.5382 705.7477 null] +/D [4077 0 R /XYZ 164.5382 705.7477 null] >> endobj 1844 0 obj << -/D [4088 0 R /XYZ 71.731 702.1842 null] +/D [4077 0 R /XYZ 71.731 702.1842 null] >> endobj 702 0 obj << -/D [4088 0 R /XYZ 306.9197 666.3753 null] +/D [4077 0 R /XYZ 306.9197 666.3753 null] >> endobj -4091 0 obj << -/D [4088 0 R /XYZ 71.731 656.2327 null] +4080 0 obj << +/D [4077 0 R /XYZ 71.731 656.2327 null] >> endobj 1845 0 obj << -/D [4088 0 R /XYZ 71.731 626.1612 null] +/D [4077 0 R /XYZ 71.731 626.1612 null] >> endobj 706 0 obj << -/D [4088 0 R /XYZ 408.1603 588.9457 null] +/D [4077 0 R /XYZ 408.1603 588.9457 null] >> endobj -4093 0 obj << -/D [4088 0 R /XYZ 71.731 578.803 null] +4082 0 obj << +/D [4077 0 R /XYZ 71.731 578.803 null] >> endobj -4094 0 obj << -/D [4088 0 R /XYZ 213.7415 568.8212 null] +4083 0 obj << +/D [4077 0 R /XYZ 213.7415 568.8212 null] >> endobj -4095 0 obj << -/D [4088 0 R /XYZ 387.6017 568.8212 null] +4084 0 obj << +/D [4077 0 R /XYZ 387.6017 568.8212 null] >> endobj -4096 0 obj << -/D [4088 0 R /XYZ 249.2936 555.8697 null] +4085 0 obj << +/D [4077 0 R /XYZ 249.2936 555.8697 null] >> endobj -4097 0 obj << -/D [4088 0 R /XYZ 71.731 542.8188 null] +4086 0 obj << +/D [4077 0 R /XYZ 71.731 542.8188 null] >> endobj -4098 0 obj << -/D [4088 0 R /XYZ 71.731 503.0379 null] +4087 0 obj << +/D [4077 0 R /XYZ 71.731 503.0379 null] >> endobj -4099 0 obj << -/D [4088 0 R /XYZ 71.731 503.0379 null] +4088 0 obj << +/D [4077 0 R /XYZ 71.731 503.0379 null] >> endobj -4100 0 obj << -/D [4088 0 R /XYZ 71.731 492.0232 null] +4089 0 obj << +/D [4077 0 R /XYZ 71.731 492.0232 null] >> endobj -4101 0 obj << -/D [4088 0 R /XYZ 305.2152 481.7477 null] +4090 0 obj << +/D [4077 0 R /XYZ 305.2152 481.7477 null] >> endobj -4102 0 obj << -/D [4088 0 R /XYZ 71.731 480.367 null] +4091 0 obj << +/D [4077 0 R /XYZ 71.731 480.367 null] >> endobj -4103 0 obj << -/D [4088 0 R /XYZ 71.731 458.4351 null] +4092 0 obj << +/D [4077 0 R /XYZ 71.731 458.4351 null] >> endobj -4104 0 obj << -/D [4088 0 R /XYZ 71.731 413.5734 null] +4093 0 obj << +/D [4077 0 R /XYZ 71.731 413.5734 null] >> endobj -4105 0 obj << -/D [4088 0 R /XYZ 71.731 413.5734 null] +4094 0 obj << +/D [4077 0 R /XYZ 71.731 413.5734 null] >> endobj -4106 0 obj << -/D [4088 0 R /XYZ 71.731 402.5587 null] +4095 0 obj << +/D [4077 0 R /XYZ 71.731 402.5587 null] >> endobj -4107 0 obj << -/D [4088 0 R /XYZ 149.7385 392.2832 null] +4096 0 obj << +/D [4077 0 R /XYZ 149.7385 392.2832 null] >> endobj -4108 0 obj << -/D [4088 0 R /XYZ 71.731 391.0405 null] +4097 0 obj << +/D [4077 0 R /XYZ 71.731 391.0405 null] >> endobj -4109 0 obj << -/D [4088 0 R /XYZ 71.731 379.3843 null] +4098 0 obj << +/D [4077 0 R /XYZ 71.731 379.3843 null] >> endobj -4110 0 obj << -/D [4088 0 R /XYZ 71.731 357.3144 null] +4099 0 obj << +/D [4077 0 R /XYZ 71.731 357.3144 null] >> endobj -4111 0 obj << -/D [4088 0 R /XYZ 71.731 357.3144 null] +4100 0 obj << +/D [4077 0 R /XYZ 71.731 357.3144 null] >> endobj 1846 0 obj << -/D [4088 0 R /XYZ 71.731 311.4862 null] +/D [4077 0 R /XYZ 71.731 311.4862 null] >> endobj 710 0 obj << -/D [4088 0 R /XYZ 222.1488 272.1139 null] +/D [4077 0 R /XYZ 222.1488 272.1139 null] >> endobj -4113 0 obj << -/D [4088 0 R /XYZ 71.731 264.7615 null] +4102 0 obj << +/D [4077 0 R /XYZ 71.731 264.7615 null] >> endobj -4115 0 obj << -/D [4088 0 R /XYZ 71.731 223.9296 null] +4104 0 obj << +/D [4077 0 R /XYZ 71.731 223.9296 null] >> endobj -4116 0 obj << -/D [4088 0 R /XYZ 71.731 186.206 null] +4105 0 obj << +/D [4077 0 R /XYZ 71.731 186.206 null] >> endobj -4117 0 obj << -/D [4088 0 R /XYZ 191.3113 175.277 null] +4106 0 obj << +/D [4077 0 R /XYZ 191.3113 175.277 null] >> endobj -4118 0 obj << -/D [4088 0 R /XYZ 71.731 168.1388 null] +4107 0 obj << +/D [4077 0 R /XYZ 71.731 168.1388 null] >> endobj -4087 0 obj << +4076 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F32 1306 0 R /F35 1752 0 R /F54 2469 0 R /F64 2842 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4121 0 obj << -/Length 2138 +4110 0 obj << +/Length 2099 /Filter /FlateDecode >> stream -xڵZA��6�ϯ��+HH�֝ͤz/�J�v�0�mv0xO����=I`x�6�������{O�����z%Q�&�ӻ�{����Q���=>���cz I$�����A�E!#����������l�|N�����(�T���g����6�y�统��"�HC��Ԕ=FG~�HI(�Ŏ�)E���M(�|�_Z$L�3<��� �\2�)�aB�j��GѦ� |ZՋ��5?�]��Y���.w�~Zb�ۏu�G��K�vE]�ʏE���IdIDX@(�By>�2���/��jC���߰k�J�tǴ��e��{].�fm���M�uu�6t���m���4�U�����Ů4>�����8�q0B����SFA�$<�Yzi��PH�>�� �8%�~��#�_��|�ɫ�4�2}C!To������h�[S�j�X�G����~\)�Xؙ�l)�.p�x���>��"K�|�B����K�}��a���]�S9<�K��)^�$U�P� ��sh�����r.�1�y�{��:;�=�⠟o��1�ԔB����wC�N��[xI�3G��g��A���Rk� Z#���E@��:��]8i}#V��7=��?�eYo��f]�<r����s�����K�*wX -�zL��P ��q[�?h,�#,������l�&�-����� �tW��PU;+3�P�C�$�`iĞ�)�R -g�P[���@ʁL"�<� ��c�]|l<��DAė�����B�����:Z!��J^6a��M�ⵦ��_����4����3 ffӣ��tCA� 3�_�"���)�B�:Z�9��:���qr�8&�?���hpYj*w�B۾T����J�JO�������� ��;� �[�]*H�:�gF���p����,}�2 Q���fD1bz]�#vQ@��~�)O`L��E�ga����z��畂�����eF�$��Q*9�E��]�WH%㼥�����yCw �6� E�,�jNC�q�4:+a����U��D� �Dz�>}p,_��d�#�M��� -B��$��z��Fao&¤��6�4���Lˬ���"q��7����K�0�6h6�Z�L�G���4nH<9w�� �>�R��@�3�y��翂|߀V]j�ϟ2p8��@�����0����h��!��$k��B-�ѣV�p�C �"6�Njٱ��F͕8'A��.f�ܒf�@����h����������@�ĝ����pT�ơId+ayva|��,м���5�sX\�:�������X;��G���\�5ԋ�p�h6؉aEg�~�ڨ�j���dK8���Y����$��4�4NnY|U�!�gJW4�P���UMF���A¥��b��\��<�og�ZI������?�6�����<d�0�#�B-�|�Z�y��;��A��6�_�ע��^�XKj���?7����������>�3��j��{Ԫ�;����.?�Y|[�S8OF|-�-Ԃ&=jU��;4q�pib�����}�-�s���5�8��6�{���qJ�s��AA��J.�Q�l@��2���\�"1�e7$�OF�$����64��qNn���bL�D�1_�X5�j-b]F�#�E��7,�*���� �]>�۠ٳ��Z;K�L��%\�g�w�%������C�l�X;I�9���h���G������ �F�ķ���9�,�� �u���R.��.��0u�w�T��Υ���6��q\,����w���R.��.�"1u��.��Q� ���h��E,��Ҩ�P�GX�W����P�M�JwSw���vuω�;ӭ��M�>h�A�����>獮�N ��0���9\�tEv)�F#���$�-ž����/���bsM��_�Ev�E�uiQ��=&�p컴����m� b� O<�m�^w��gA_46�C-6^���-�]����7�AݤxϓX�6ca�f�.g,'��/l��|*%�`XR���p�Z��K�T��6��~��Kj� ��o����'O|9�M>�+\Lb*������O�`1�za�ӣP5�g���a�/-hAendstream +xڵZM����ϯ���Wc�>��u'oR�M���d�d�1n�����~�_�{%�p���B:�]�{%YM6��MH�����>��n��`�M߾#�3�� z|~��G�6�K*7�� ��$曐Q?$�<~�>%�6��;*����x}�3/�D�����:o߶�=��Ͻ]�B?���Er=jJ�� }JG~�H�Ɗ�R +#��-^��/ &���@J�X.)�lv,�YHy� 1�|�7�~�y���~��U���C�fM��m���3����5�˵Nڼ*u�Ǽ��$�\Dh�ʅ"�|�je�{IW8'��M�a�ؕziOI;B_�$�����4�D�w��,m����"wۜ�kaz++S��*W��¼��<2����||�Q�t��� ;�~,����,M� |Ȅ���~�����S����8���ѵ��:+��� �z���G�y�M��Qc�5v���q�Ԯ����f��;J ��V�m�z���|)�4i�� +)�=���<�������ħ<�k����&=I"�S� )�Zi��E�g�)���y�;��:=e����oյ6�ԔB����!j�j�^���������QykG!ZC��@"���:��]8k��Ye���P�XE���u�R&6dVm�f�F�Y��F�*wX�Q����%J�m~������ �^K�1�<�h���{�ۓ���B��L����)D(�Q��0���FD�'R +g��Q;���@ʁ�C�<� ���VK|l��Aȗ�����8���x/�!����<nY�Uu���kL�����iT<�MkR�̦G�K�門����E�B(1_ +�t�hs��u&�?�p2�8�&�?\��dpib*��B۾������J���F��������� ��w���,�-T�>|��<S�� +kY����CJ7#"����jn`'�Z�{�R�b�,�= ���39~�(���n�T(cI<��TrN�ҵ+����J�yK/'ƣ�,�"&�<�r`�٨� ��bߣ�\q�:N�Fg]�}�$qsal"f@ⱨ�O����ȈB���� +B��8�X����ސ�¤��6���eh&EZ��\g�s��=j�r v*#��F@Z�����pq�F��ēs���?$m��"p��4�~Ap�_� ��}Z����ʟ2p�b�t��_m?���=���%$�Y e�,$4/��*$��;�����M�N!}{�l��z2�&'H�ϐ�z�P��P��r�CRM�$����E��`֡�;��.Y{R/A�~��dR؇��avh�qOsn�9n�b��Y�u߸X+B�H(��H��������;,Ԃ?:ԪCF������%6�ǫFҟ��'��%��[��AK��UY�u'�z��Z��\�3ȹ�F+o���G����z��HL~@�{�M�5o2���������ur9����՟�Q�"�K�Ѳ�-Ԃ�;Ԫ�F�й��K�6�/�}*|N�Z�[��t�U�8��� �Ol��wm�9D.�����v�s��������u�_��q���\.�0��CG���F�����\F�s���4� H<��>\I�P��ْ�k�9��5\���,Fa�"�W��������.���"���/9KPF�g�x�,a�f�=h�,�2�~�pq��%$�8K�?�LÙ3�l�X;IP�%b%-�B0v��`t�#$�h��I���B�()4+��&)��uI�8L%5 q����|)̏�_&) +X(D�,)5/��&)��uI�HL%5 �*)赻Pad��l/"�5�Z������2%u�m�צA�����}V�M��2#3����lË6|^��պVx{5���*l��hpI���Hj���6������"�g,t�0�c���u�n~=��I�&yi:��qX±�&�_��Q7aU�<�P4�{]ܛn�}aV����vߌo�!o��X�]@��31�:��dG���$�t�`9���`�d�O� ,֟ԭ;��A���.UM���l+$X�Լ+v���u�G*�<��\��ܯp���pZ���V�����^�|�?&�endstream endobj -4120 0 obj << +4109 0 obj << /Type /Page -/Contents 4121 0 R -/Resources 4119 0 R +/Contents 4110 0 R +/Resources 4108 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4195 0 R -/Annots [ 4127 0 R 4128 0 R ] +/Parent 4180 0 R +/Annots [ 4116 0 R 4117 0 R ] >> endobj -4127 0 obj << +4116 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [271.1346 578.1752 316.7037 588.7575] /Subtype /Link /A << /S /GoTo /D (gloss-htaccess) >> >> endobj -4128 0 obj << +4117 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.1174 566.6266 322.9236 577.1012] /Subtype /Link /A << /S /GoTo /D (http-apache) >> >> endobj -4122 0 obj << -/D [4120 0 R /XYZ 71.731 729.2652 null] +4111 0 obj << +/D [4109 0 R /XYZ 71.731 729.2652 null] >> endobj 1847 0 obj << -/D [4120 0 R /XYZ 71.731 718.3063 null] +/D [4109 0 R /XYZ 71.731 718.3063 null] >> endobj 714 0 obj << -/D [4120 0 R /XYZ 197.6084 706.1179 null] +/D [4109 0 R /XYZ 197.6084 706.1179 null] >> endobj 1848 0 obj << -/D [4120 0 R /XYZ 71.731 705.9028 null] +/D [4109 0 R /XYZ 71.731 705.9028 null] >> endobj 718 0 obj << -/D [4120 0 R /XYZ 498.0946 666.7455 null] +/D [4109 0 R /XYZ 498.0946 666.7455 null] +>> endobj +4112 0 obj << +/D [4109 0 R /XYZ 71.731 656.3805 null] +>> endobj +4113 0 obj << +/D [4109 0 R /XYZ 213.9976 620.7181 null] +>> endobj +4114 0 obj << +/D [4109 0 R /XYZ 71.731 605.6099 null] +>> endobj +4115 0 obj << +/D [4109 0 R /XYZ 71.731 590.6659 null] +>> endobj +4118 0 obj << +/D [4109 0 R /XYZ 76.7123 551.5774 null] +>> endobj +4119 0 obj << +/D [4109 0 R /XYZ 71.731 541.6148 null] +>> endobj +4120 0 obj << +/D [4109 0 R /XYZ 81.6937 508.7381 null] +>> endobj +4121 0 obj << +/D [4109 0 R /XYZ 71.731 506.5812 null] +>> endobj +4122 0 obj << +/D [4109 0 R /XYZ 71.731 506.5812 null] >> endobj 4123 0 obj << -/D [4120 0 R /XYZ 71.731 656.3805 null] +/D [4109 0 R /XYZ 91.6563 495.7866 null] >> endobj 4124 0 obj << -/D [4120 0 R /XYZ 213.9976 620.7181 null] +/D [4109 0 R /XYZ 120.717 495.7866 null] >> endobj 4125 0 obj << -/D [4120 0 R /XYZ 71.731 605.6099 null] +/D [4109 0 R /XYZ 120.717 495.7866 null] >> endobj 4126 0 obj << -/D [4120 0 R /XYZ 71.731 590.6659 null] +/D [4109 0 R /XYZ 147.2176 495.7866 null] +>> endobj +4127 0 obj << +/D [4109 0 R /XYZ 147.2176 495.7866 null] +>> endobj +4128 0 obj << +/D [4109 0 R /XYZ 76.7123 477.8539 null] >> endobj 4129 0 obj << -/D [4120 0 R /XYZ 76.7123 551.5774 null] +/D [4109 0 R /XYZ 81.6937 464.9025 null] >> endobj 4130 0 obj << -/D [4120 0 R /XYZ 71.731 541.6148 null] +/D [4109 0 R /XYZ 92.4832 464.9025 null] >> endobj 4131 0 obj << -/D [4120 0 R /XYZ 81.6937 508.7381 null] +/D [4109 0 R /XYZ 71.731 464.7635 null] >> endobj 4132 0 obj << -/D [4120 0 R /XYZ 71.731 506.5812 null] +/D [4109 0 R /XYZ 71.731 464.7635 null] >> endobj 4133 0 obj << -/D [4120 0 R /XYZ 71.731 506.5812 null] +/D [4109 0 R /XYZ 91.6563 451.951 null] >> endobj 4134 0 obj << -/D [4120 0 R /XYZ 91.6563 495.7866 null] +/D [4109 0 R /XYZ 76.7123 434.0183 null] >> endobj 4135 0 obj << -/D [4120 0 R /XYZ 120.717 495.7866 null] +/D [4109 0 R /XYZ 81.6937 421.0668 null] >> endobj 4136 0 obj << -/D [4120 0 R /XYZ 120.717 495.7866 null] +/D [4109 0 R /XYZ 92.4832 421.0668 null] >> endobj 4137 0 obj << -/D [4120 0 R /XYZ 147.2176 495.7866 null] +/D [4109 0 R /XYZ 71.731 420.3586 null] >> endobj 4138 0 obj << -/D [4120 0 R /XYZ 147.2176 495.7866 null] +/D [4109 0 R /XYZ 71.731 420.3586 null] >> endobj 4139 0 obj << -/D [4120 0 R /XYZ 76.7123 477.8539 null] +/D [4109 0 R /XYZ 91.6563 408.1154 null] >> endobj 4140 0 obj << -/D [4120 0 R /XYZ 81.6937 464.9025 null] +/D [4109 0 R /XYZ 71.731 405.9586 null] >> endobj 4141 0 obj << -/D [4120 0 R /XYZ 92.4832 464.9025 null] +/D [4109 0 R /XYZ 71.731 405.9586 null] >> endobj 4142 0 obj << -/D [4120 0 R /XYZ 71.731 464.7635 null] +/D [4109 0 R /XYZ 101.6189 395.164 null] >> endobj 4143 0 obj << -/D [4120 0 R /XYZ 71.731 464.7635 null] +/D [4109 0 R /XYZ 71.731 393.0071 null] >> endobj 4144 0 obj << -/D [4120 0 R /XYZ 91.6563 451.951 null] +/D [4109 0 R /XYZ 101.6189 382.2125 null] >> endobj 4145 0 obj << -/D [4120 0 R /XYZ 71.731 449.7942 null] +/D [4109 0 R /XYZ 142.8837 382.2125 null] >> endobj 4146 0 obj << -/D [4120 0 R /XYZ 91.6563 438.9996 null] +/D [4109 0 R /XYZ 142.8837 382.2125 null] >> endobj 4147 0 obj << -/D [4120 0 R /XYZ 135.6906 438.9996 null] +/D [4109 0 R /XYZ 76.7123 364.2798 null] >> endobj 4148 0 obj << -/D [4120 0 R /XYZ 135.6906 438.9996 null] +/D [4109 0 R /XYZ 91.6563 351.3284 null] >> endobj 4149 0 obj << -/D [4120 0 R /XYZ 76.7123 421.0668 null] +/D [4109 0 R /XYZ 71.731 349.1715 null] >> endobj 4150 0 obj << -/D [4120 0 R /XYZ 81.6937 408.1154 null] +/D [4109 0 R /XYZ 71.731 349.1715 null] >> endobj 4151 0 obj << -/D [4120 0 R /XYZ 92.4832 408.1154 null] +/D [4109 0 R /XYZ 101.6189 338.3769 null] >> endobj 4152 0 obj << -/D [4120 0 R /XYZ 71.731 407.4071 null] +/D [4109 0 R /XYZ 71.731 336.2201 null] >> endobj 4153 0 obj << -/D [4120 0 R /XYZ 71.731 407.4071 null] +/D [4109 0 R /XYZ 101.6189 325.4255 null] >> endobj 4154 0 obj << -/D [4120 0 R /XYZ 91.6563 395.164 null] +/D [4109 0 R /XYZ 145.6532 325.4255 null] >> endobj 4155 0 obj << -/D [4120 0 R /XYZ 71.731 393.0071 null] +/D [4109 0 R /XYZ 145.6532 325.4255 null] >> endobj 4156 0 obj << -/D [4120 0 R /XYZ 71.731 393.0071 null] +/D [4109 0 R /XYZ 177.5336 325.4255 null] >> endobj 4157 0 obj << -/D [4120 0 R /XYZ 101.6189 382.2125 null] +/D [4109 0 R /XYZ 177.5336 325.4255 null] >> endobj 4158 0 obj << -/D [4120 0 R /XYZ 71.731 380.0557 null] +/D [4109 0 R /XYZ 209.4141 325.4255 null] >> endobj 4159 0 obj << -/D [4120 0 R /XYZ 101.6189 369.2611 null] +/D [4109 0 R /XYZ 209.4141 325.4255 null] >> endobj 4160 0 obj << -/D [4120 0 R /XYZ 142.8837 369.2611 null] +/D [4109 0 R /XYZ 241.2945 325.4255 null] >> endobj 4161 0 obj << -/D [4120 0 R /XYZ 142.8837 369.2611 null] +/D [4109 0 R /XYZ 241.2945 325.4255 null] >> endobj 4162 0 obj << -/D [4120 0 R /XYZ 76.7123 351.3284 null] +/D [4109 0 R /XYZ 76.7123 307.4927 null] >> endobj 4163 0 obj << -/D [4120 0 R /XYZ 91.6563 338.3769 null] +/D [4109 0 R /XYZ 91.6563 294.5413 null] >> endobj 4164 0 obj << -/D [4120 0 R /XYZ 71.731 336.2201 null] +/D [4109 0 R /XYZ 71.731 292.3845 null] >> endobj 4165 0 obj << -/D [4120 0 R /XYZ 71.731 336.2201 null] +/D [4109 0 R /XYZ 71.731 292.3845 null] >> endobj 4166 0 obj << -/D [4120 0 R /XYZ 101.6189 325.4255 null] +/D [4109 0 R /XYZ 101.6189 281.5899 null] >> endobj 4167 0 obj << -/D [4120 0 R /XYZ 71.731 323.2687 null] +/D [4109 0 R /XYZ 76.7123 245.7244 null] >> endobj 4168 0 obj << -/D [4120 0 R /XYZ 101.6189 312.4741 null] +/D [4109 0 R /XYZ 81.6937 232.7729 null] >> endobj 4169 0 obj << -/D [4120 0 R /XYZ 145.6532 312.4741 null] +/D [4109 0 R /XYZ 92.4832 232.7729 null] >> endobj 4170 0 obj << -/D [4120 0 R /XYZ 145.6532 312.4741 null] +/D [4109 0 R /XYZ 71.731 231.3922 null] >> endobj 4171 0 obj << -/D [4120 0 R /XYZ 177.5336 312.4741 null] +/D [4109 0 R /XYZ 71.731 231.3922 null] >> endobj 4172 0 obj << -/D [4120 0 R /XYZ 177.5336 312.4741 null] +/D [4109 0 R /XYZ 91.6563 219.8215 null] >> endobj 4173 0 obj << -/D [4120 0 R /XYZ 209.4141 312.4741 null] ->> endobj -4174 0 obj << -/D [4120 0 R /XYZ 209.4141 312.4741 null] ->> endobj -4175 0 obj << -/D [4120 0 R /XYZ 241.2945 312.4741 null] ->> endobj -4176 0 obj << -/D [4120 0 R /XYZ 241.2945 312.4741 null] ->> endobj -4177 0 obj << -/D [4120 0 R /XYZ 76.7123 294.5413 null] ->> endobj -4178 0 obj << -/D [4120 0 R /XYZ 91.6563 281.5899 null] ->> endobj -4179 0 obj << -/D [4120 0 R /XYZ 71.731 279.4331 null] ->> endobj -4180 0 obj << -/D [4120 0 R /XYZ 71.731 279.4331 null] ->> endobj -4181 0 obj << -/D [4120 0 R /XYZ 101.6189 268.6384 null] ->> endobj -4182 0 obj << -/D [4120 0 R /XYZ 76.7123 232.7729 null] ->> endobj -4183 0 obj << -/D [4120 0 R /XYZ 81.6937 219.8215 null] ->> endobj -4184 0 obj << -/D [4120 0 R /XYZ 92.4832 219.8215 null] ->> endobj -4185 0 obj << -/D [4120 0 R /XYZ 71.731 218.4408 null] ->> endobj -4186 0 obj << -/D [4120 0 R /XYZ 71.731 218.4408 null] ->> endobj -4187 0 obj << -/D [4120 0 R /XYZ 91.6563 206.8701 null] ->> endobj -4188 0 obj << -/D [4120 0 R /XYZ 76.7123 188.9373 null] +/D [4109 0 R /XYZ 76.7123 201.8888 null] >> endobj -4189 0 obj << -/D [4120 0 R /XYZ 81.6937 175.9859 null] +4174 0 obj << +/D [4109 0 R /XYZ 81.6937 188.9373 null] >> endobj -4190 0 obj << -/D [4120 0 R /XYZ 92.4832 175.9859 null] +4175 0 obj << +/D [4109 0 R /XYZ 92.4832 188.9373 null] >> endobj -4191 0 obj << -/D [4120 0 R /XYZ 71.731 174.6051 null] +4176 0 obj << +/D [4109 0 R /XYZ 71.731 187.5566 null] >> endobj -4192 0 obj << -/D [4120 0 R /XYZ 71.731 174.6051 null] +4177 0 obj << +/D [4109 0 R /XYZ 71.731 187.5566 null] >> endobj -4193 0 obj << -/D [4120 0 R /XYZ 91.6563 163.0345 null] +4178 0 obj << +/D [4109 0 R /XYZ 91.6563 175.9859 null] >> endobj -4194 0 obj << -/D [4120 0 R /XYZ 71.731 140.1204 null] +4179 0 obj << +/D [4109 0 R /XYZ 71.731 153.0718 null] >> endobj -4119 0 obj << +4108 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F44 2183 0 R /F54 2469 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4199 0 obj << +4184 0 obj << /Length 1344 /Filter /FlateDecode >> @@ -17776,378 +17804,377 @@ xڅVێ ��X�߆ۅg�`r`�v�&t`�@#,yj_@�D<�_t`fz�C7FJ^����]��� ���c��Wo��C��:k���x �f繱�A�#b�x�g�n7�f ��kyy��T_�KS)W�,f��o�ܠ��yP�� t�(-�,NE2q/���l>���Nx2^B���h�mt]U7����P)��P�������t����u���F���ڔ�]�. ������AV�Z����~���h[��*�Δo��@�a&�C 1�}v#�Z �z=��̦����T��K0��~)X̓�z6�`�d2J�G�詶O�`{D}x��OE#]|�^��}�&�>�h,]:�IqW�j���������k����ȡ����?B����t�X��p����=�N�f�8>ت73�� ��T�:�2p;ڦ���,��``:7�-ɳD��!-XH#r����n� ����{fh����������<�����q=���7 �U�d�!��Ь�������� ��L2���F�Xds ��6���:��àK�v�H�֮.��Ѳ���ZET!,��>��Λ�q�v���;�NӲ�hAwƋ5�J\=��P�F�n�>���G�@.n�7�y40)�o����U�dU]Fѿl��rJ���k8'�Yn�!��覺���T�,G�r�!��x\֝)4��������Z�#`���c�^��h�xOۓ�� 9���4k�����0 �L��Y���P��sp��~1����.P���G��Neq&�뉳 x���� P�K����vU��OPX�zH��|I�^�Ry�u k���M�d,�*������_��I�|ք�(���7��\D=endstream endobj -4198 0 obj << +4183 0 obj << /Type /Page -/Contents 4199 0 R -/Resources 4197 0 R +/Contents 4184 0 R +/Resources 4182 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4195 0 R -/Annots [ 4206 0 R ] +/Parent 4180 0 R +/Annots [ 4191 0 R ] >> endobj -4206 0 obj << +4191 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [178.6818 665.9084 233.0102 676.383] /Subtype /Link /A << /S /GoTo /D (http) >> >> endobj -4200 0 obj << -/D [4198 0 R /XYZ 71.731 729.2652 null] +4185 0 obj << +/D [4183 0 R /XYZ 71.731 729.2652 null] >> endobj -4201 0 obj << -/D [4198 0 R /XYZ 152.1362 708.3437 null] +4186 0 obj << +/D [4183 0 R /XYZ 152.1362 708.3437 null] >> endobj -4202 0 obj << -/D [4198 0 R /XYZ 457.3046 708.3437 null] +4187 0 obj << +/D [4183 0 R /XYZ 457.3046 708.3437 null] >> endobj -4203 0 obj << -/D [4198 0 R /XYZ 322.4878 695.3923 null] +4188 0 obj << +/D [4183 0 R /XYZ 322.4878 695.3923 null] >> endobj -4204 0 obj << -/D [4198 0 R /XYZ 71.731 693.2354 null] +4189 0 obj << +/D [4183 0 R /XYZ 71.731 693.2354 null] >> endobj -4205 0 obj << -/D [4198 0 R /XYZ 71.731 678.2915 null] +4190 0 obj << +/D [4183 0 R /XYZ 71.731 678.2915 null] >> endobj 1849 0 obj << -/D [4198 0 R /XYZ 71.731 630.934 null] +/D [4183 0 R /XYZ 71.731 630.934 null] >> endobj 722 0 obj << -/D [4198 0 R /XYZ 171.2348 585.6797 null] +/D [4183 0 R /XYZ 171.2348 585.6797 null] >> endobj 1850 0 obj << -/D [4198 0 R /XYZ 71.731 581.8494 null] +/D [4183 0 R /XYZ 71.731 581.8494 null] >> endobj 726 0 obj << -/D [4198 0 R /XYZ 413.6679 546.3073 null] ->> endobj -4207 0 obj << -/D [4198 0 R /XYZ 71.731 535.9423 null] +/D [4183 0 R /XYZ 413.6679 546.3073 null] >> endobj -4208 0 obj << -/D [4198 0 R /XYZ 401.1834 526.1828 null] +4192 0 obj << +/D [4183 0 R /XYZ 71.731 535.9423 null] >> endobj -4209 0 obj << -/D [4198 0 R /XYZ 457.301 513.2314 null] +4193 0 obj << +/D [4183 0 R /XYZ 401.1834 526.1828 null] >> endobj -4210 0 obj << -/D [4198 0 R /XYZ 239.3111 487.3285 null] +4194 0 obj << +/D [4183 0 R /XYZ 457.301 513.2314 null] >> endobj -4211 0 obj << -/D [4198 0 R /XYZ 71.731 480.1903 null] +4195 0 obj << +/D [4183 0 R /XYZ 239.3111 487.3285 null] >> endobj -4212 0 obj << -/D [4198 0 R /XYZ 319.2438 443.4929 null] +4196 0 obj << +/D [4183 0 R /XYZ 71.731 480.1903 null] >> endobj 4197 0 obj << +/D [4183 0 R /XYZ 319.2438 443.4929 null] +>> endobj +4182 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F35 1752 0 R /F23 1290 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4215 0 obj << -/Length 2395 +4200 0 obj << +/Length 2389 /Filter /FlateDecode >> stream -xڍ]�۸�=��o'�VԷ�M�����PM�m+K�$w����/ʲ,�X �Ù�p�H�E�j�)?��n�0M�Eqx,v0��wJH�4��D�0��]'Q�o�0]��L>>�{�F�0��$O��AT�a�.�{���؛v���K|����z���������?�'v*�C���.�ѡdiF�_��/u�.��k�S�ۦ���b�oRГ׆�O�MHk��[�cy��%4(���)[o���/�0D �L]�O�i�����)���qoZ#��R_�7]�$vK���P�J���)�Y��� � -7��R��ITL��$�������B�8�`*�v@������{�� ���Qs�4U�d�7�=V�,Ӷ��(�ny��Z&������|��Y� p���]��g�OT����2�j�"z/:\l�#[��� 6�<��#_,�F�6��:��ꌈ��k4��$��^��hktj�07�~�Zɒ�dn%�v��u�sp�S��S����C���>�'H���#B��C,u� �"��d{!|Y*����G��T6������tEk�L�j@�B�ϭ�qZ��ʒ���=#{�Z�r�=�8!g��̀���� ��h���D� - ,kɾLQw/`-7�0%��>[��\9���F�2��������>����<1v� ����x~\�C�7&����QI�� -�2[9�S�6��K�$�$�TJ��Ԃ���$���CQ4'8�7S�Jz��8ذC�g4� -�B�d��b<榶�'<jÉ�cb�8�:����<U�(A��`� ��`k����9D�VYr*���>�F@/X�(p!A��!�r|G))�*�hNY���ן��0ݾ9U%#�B��� -��%�Y�%"�l�[q��i]���)�ѱF+&�����~n��|��k(��V�������_�n!��Y����bh�t��pD�17c�� -����O�(�9�*�Eo�p�U��<����s��w�c)J9�I)>���6y�q��K�_��L�Ź�<�s-*[<�(�{��0�v45�5#k��/�z� �e1#*[?��=�jC���W�҄[�ja<��\����\ -�+_㤎��֮�b�4�˞f�E[v�{�6N@�q���<�xɟe ߭"͙q,w��w�3����}S_R��$U�D�S? ��6����q<"!�A(��!M���d�w�v��v�K�P���*�ʭv�)Sy2����:��)w���Y���\㾅1{-\K�9J��L��sw^+����Ӛ�E�E�B� �'3Ejw��jj��2.H6�<L<��h�_��v��o�7d*������7:������ݣ썣'3d���ڹ;�,��12s� ����5��5� TR�_�4 -�xه -�D鰱�HasR-���+Q+��,FUE�̋��ƕ�Y�V�C�����R�pl��LW�4���e˸"������yey�V$N�GS�Cl:���cP����M�NHb�A٘��I$õ��TA����1��b��kp�#R�<!��9 -�gsn����s</��5rĆ��p/�V����eNB'Zf[2`J+���������X��&z�!��#����{�xU��3��'ƚ�[�b���%�j�ؖ��k�W�@-���UNH��B��ɽ�d���{���_W$O����87�8�|��%��i� %R��ɦ����ZSO^�v�6-�șQ� -��@��ɔ�α��A2,���� -���5|C�/:�4�es�Uh���8���{:3���q���(q�l�H��V<� >D]N�����V�\�#���[|Fs ER�b -�_���Z��3���Wd) a�y���ǿ����� ���t �4�aHC�Z���L��`��-�Xj�I����緉���ȝ�8��ڑ�����]6���'S5�F·Siw�ʔ%q�z�S�Oq*��qs"�Nr��p�U����^i��Yp_1��Q2y���H��s�9"|�pX��c�́�T�������#df�B -Y�� юl=�صҕ-%���Ӊ�0�63�:�d _}�|7.$���_k`�y�Z*�M�L��=��M.�#�k��h���s���4��ҏ���.1������*5<X���㇙��|�㏨^q|G����F�p�WU���.mQ�q/����n�����a��`�Xm�1�u�<�<a�+�qEV�戌u%�/�/�h�{@����Bد����u���p��ɉ�S7$C��_��OGrݦZ�J垽.z�$�� y��y��"���*��:L��ЩE���8�\�� ���SqÏX3�%�yendstream +xڍ]�۸�=��o'�VԷ�M�����PM�m+K�(w����/ʲ,�X �Ù�p�H�E�j�)?��n�0M�Eyx,v0��wJH�4��D�0��]'Q�o�0]��L>>�{�F�0��$O��AT�a�.�{��ű��rf�����ݚf����������N�T�*��]��C?�ҌX%���_��[���V��7m#����ߤ�'� ��$���>�]�cyV��m���)�l��P\�a�@��Z�����)���q�;-����&�Q�m�$ڥ���P�J������h��A�5n��B�����=H�}��?<�����q��T���T�(ν��)����@�iR�e{�A���Xg�6�,E�f˫M��2I<�3�# +�y�v&���w��!<Q�i{`�̪݊��p��L��3�l:�y��qG��P�Kmmљ�����h*V�I +G{���.�S���n�'8��,i*�V�9`�[���<<լ;5̐��,R�����>�@�$�/B�b�2|�SB�̊�����e� b�gvX.PՖ�k�#m��<i�j@�B�ϝ�qZ��ʒ��`��=z-�9���a���|^f@�~��̈́�x�F�LR� ,kɾL����b��b��h�~�z�p�[�����DU�m��s��l�|{r<?.��!����ᨤ��W뭜ǩq������n�J�%U~��s5��$���CY�'8�7S�Jz��8ذCM�hL��4�'f�x�M��'<͉�cbθ�u�� �y�{Q��1��A���4��]�s�<��#�2�TH��}&��^�" +�Q�B�FGC$�&��RR Uќ�����?3��+`�=�#�B��� +��%��%"�l�[q��i]u��)�ѱF+&�����~n��|����� ���qh��� +��(�!Og[ G�Sq'1v�^����o�4��Y��[� +7�Q�o��S9�0��=:���NsE�"6)f���&�@4�7M���˝� �8�c��B�b�em�g%2c�{Fߎ�at�Ȇ +��F��.z`Ÿ�4�+�D�2�z����VG�Z�6�ep-0������8�c3��;�ضm��&�~іV����)(9��C��/��� ��j�!Ҝǂq��Ac';�x߷�%�^NR�Q�II1�� �hc_A��L�#�2p�r��tHmCfNx�lw+(��e,�d@M*"�j*A+��Q4�J�ɨ��չ&��HI�w��z$�7,��µ2��P���V��mx�\R�N�w�� +%'�f<��m):�6Ԟe���lNy�.y>jѲ� +��2 +<G�bS�T�̃%E�ot0��¶"�GiGOzH��-:�swY>�!bd��A��3�5kp�k �A�����ei(�5t��Zc%���"�}=��N�7�X����ȍK��0�h��E�!]�j���љ�l'&<x4N3=�+��#ǃs.���%Z�8q�;M���XbAyGl�k6�K,8!��U�m�H��"]����=ch!���ߊG��yB<6��s 3��ܨhW��0S���[��½�[)>���9 �|�=�mŀ��,��?8�k�~�#c�����`Dt�pDh��n;0#��n�U�S�(��k�_`� �W��'�=0b[���_�W�u�;�P9E ����1�'��]�Jm.j'���H��߽�qn,1p��c*;�#��I�F/&8�MT�;2�MA=@x���Fw�"gF�*����)��c���0dX$�-��.|! J�k�j�\t��x���焎[k�1o�c8���3�9~���k��'̖����a�c������ja!Y�z���"B���g4�P$�/�����|�ű���eoz7�������*���p��sLI��9�H��J#�� +(�R�W·�)2얗�EK�� �4��?`��(�^\��chǛY;��#�ܶ�v�h���H�Z*m��n�S��$N^�pc��)n�B���9nN��I�unx� +ѕ�ث��<n�+���6J&o8ɚ�l"G����y̹9���>vz��Ao;H!+7���!ڑ�����V�6��ss:qf�f&Y'���[���KIp��0�gf�Jq�#����<Gϰ{�K-t3~y.8���R��3�$f6ws]����]��w�0��o�p��+��P����ψ���� +7�ݥ-�6�<��ݍ��8�9��^����B#ya�ǜ'���q\E��="�֗�� ��=�zK�A!���{�쏅��$\�nr��d�d���v��H��T�P�ܳ�EW�=W|��<z�<�+\pr��q&Y�h�Ԣhtj �V��|���Jө������endstream endobj -4214 0 obj << +4199 0 obj << /Type /Page -/Contents 4215 0 R -/Resources 4213 0 R +/Contents 4200 0 R +/Resources 4198 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4195 0 R +/Parent 4180 0 R >> endobj -4216 0 obj << -/D [4214 0 R /XYZ 71.731 729.2652 null] +4201 0 obj << +/D [4199 0 R /XYZ 71.731 729.2652 null] >> endobj 1851 0 obj << -/D [4214 0 R /XYZ 71.731 718.3063 null] +/D [4199 0 R /XYZ 71.731 718.3063 null] >> endobj 730 0 obj << -/D [4214 0 R /XYZ 320.8286 703.236 null] +/D [4199 0 R /XYZ 320.8286 703.236 null] >> endobj 1852 0 obj << -/D [4214 0 R /XYZ 71.731 692.1839 null] +/D [4199 0 R /XYZ 71.731 692.1839 null] >> endobj 734 0 obj << -/D [4214 0 R /XYZ 205.3041 651.1593 null] +/D [4199 0 R /XYZ 205.3041 651.1593 null] >> endobj -4217 0 obj << -/D [4214 0 R /XYZ 71.731 642.3364 null] +4202 0 obj << +/D [4199 0 R /XYZ 71.731 642.3364 null] >> endobj -4218 0 obj << -/D [4214 0 R /XYZ 506.4313 629.6001 null] +4203 0 obj << +/D [4199 0 R /XYZ 506.4313 629.6001 null] >> endobj -4219 0 obj << -/D [4214 0 R /XYZ 71.731 583.6077 null] +4204 0 obj << +/D [4199 0 R /XYZ 71.731 583.6077 null] >> endobj -4220 0 obj << -/D [4214 0 R /XYZ 472.2997 572.8131 null] +4205 0 obj << +/D [4199 0 R /XYZ 472.2997 572.8131 null] >> endobj 1853 0 obj << -/D [4214 0 R /XYZ 71.731 552.7235 null] +/D [4199 0 R /XYZ 71.731 552.7235 null] >> endobj 738 0 obj << -/D [4214 0 R /XYZ 317.5989 509.626 null] +/D [4199 0 R /XYZ 317.5989 509.626 null] +>> endobj +4206 0 obj << +/D [4199 0 R /XYZ 71.731 497.188 null] +>> endobj +4207 0 obj << +/D [4199 0 R /XYZ 71.731 462.164 null] +>> endobj +4208 0 obj << +/D [4199 0 R /XYZ 71.731 460.0072 null] +>> endobj +4209 0 obj << +/D [4199 0 R /XYZ 71.731 455.0258 null] +>> endobj +4210 0 obj << +/D [4199 0 R /XYZ 89.6638 434.2686 null] +>> endobj +4211 0 obj << +/D [4199 0 R /XYZ 165.4621 434.2686 null] +>> endobj +4212 0 obj << +/D [4199 0 R /XYZ 255.7901 434.2686 null] +>> endobj +4213 0 obj << +/D [4199 0 R /XYZ 431.2068 434.2686 null] +>> endobj +4214 0 obj << +/D [4199 0 R /XYZ 378.8166 421.3172 null] +>> endobj +4215 0 obj << +/D [4199 0 R /XYZ 71.731 419.1603 null] +>> endobj +4216 0 obj << +/D [4199 0 R /XYZ 71.731 404.2164 null] +>> endobj +4217 0 obj << +/D [4199 0 R /XYZ 76.7123 354.7667 null] +>> endobj +4218 0 obj << +/D [4199 0 R /XYZ 71.731 334.8415 null] +>> endobj +4219 0 obj << +/D [4199 0 R /XYZ 76.7123 259.0258 null] +>> endobj +4220 0 obj << +/D [4199 0 R /XYZ 89.6638 241.093 null] >> endobj 4221 0 obj << -/D [4214 0 R /XYZ 71.731 497.188 null] +/D [4199 0 R /XYZ 71.731 187.1305 null] >> endobj 4222 0 obj << -/D [4214 0 R /XYZ 71.731 462.164 null] +/D [4199 0 R /XYZ 89.6638 171.3545 null] >> endobj 4223 0 obj << -/D [4214 0 R /XYZ 71.731 460.0072 null] +/D [4199 0 R /XYZ 71.731 143.2948 null] >> endobj 4224 0 obj << -/D [4214 0 R /XYZ 71.731 455.0258 null] +/D [4199 0 R /XYZ 89.6638 127.5189 null] >> endobj 4225 0 obj << -/D [4214 0 R /XYZ 89.6638 434.2686 null] ->> endobj -4226 0 obj << -/D [4214 0 R /XYZ 165.4621 434.2686 null] +/D [4199 0 R /XYZ 71.731 112.4107 null] >> endobj -4227 0 obj << -/D [4214 0 R /XYZ 255.7901 434.2686 null] +4198 0 obj << +/Font << /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F44 2183 0 R /F33 1398 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 4228 0 obj << -/D [4214 0 R /XYZ 431.2068 434.2686 null] +/Length 3260 +/Filter /FlateDecode +>> +stream +xڝk�۶���_ByN<>EҝN�q�:�N���(�Ě"����뻋@����>���b_�����,��>Q�G�4Z���jS�^� +d�`66��w/n���U��h��{X%q��۴Xeq��i���v���ة��z������IT͞�_�ߪ�f������7w�hg~�拜%i�Gy��6Q�4��~��r?N��l ʬ h0���3����n�|e#�$�_Â^t��3�����:J�G�W䱺�F�=��4��շ4�k�_��xYW�g5t�4�s��=��o��P����R5�5��жJ������}���&ۇ����)l�S;ڧ��I��o���� #�H�DJE/<~dUMM��u\�iv�81!�a൝Q��� ��Vyh�fՐ��x���8`���fF�H�ZbIQj���: +���Hۂm���Q>6p�Z�ȱ�3�X'��^3C�\�I�)P�i�x�� �(��sE�D�D�u�ȏ���D�%rk=�G"��Z��F�oj%�T�N��~Y�)�Hlک����5���v�t��<�f���L����RI�*�ι <��zԎ��_��uo7t&L���<E�T��@ixt_�D�Q�nU�Q'Y�i:E�h@z|}@g +� �]�iZDݝ��0iv�%ф��9�L���@��㼡��*�]�j��������j��0�ާ����5���$��m���+9�r�!���&*ŀh��-�X�ƚ��zA~�a�'S�@Am"`'���6�����sD2:B�� }z}{[�)_m)����l�л�5��ߠ�|m��tf%��Z��S��cTB�'� _Fl)q���O5�i�{��d�tЀF��y-(,���g����;����{��NPO +8:���Ӊw��hR�)i���Gj=�@h�}�@ɩ'��&%�±�Q��U_�d�s!ȁ�'j�n�S�چ�h�>�~[�mL�A*w}d��|�}��i�����O*��N�����vO��E'*�+ DG֘���:KH�5�^�8l���@�f�Ō�E�z�q��$k;Í,|�8���P��:l�m���Aў��"�� �G�i�Q(�2�b�TD�� +�p���}?v�t� }C�Ǫ?(�i-�u�'c�>�T����D��i�'�f���Q�*�� ��)���7�!�l���W�?�6���7����q��m��D�m�Le@#߯IEm�~��-o��(B��7�c�T������naivL�8<���3G��m4�M�aG:�K�w���_�b.K�<�S�\��O����*���r�|�ZP����M�B��4 Ū��5/N�QZ:5�5��p�W�<���n�q Rj��o1DZ�$��z@��j�{���+M�&]�RI�y4ؕ��Y�$&���-�#�n�` -��X1v�e:5����F�����ama��ےa�.�7X#��r��e�i5����3+;Ƴ���q|�9�4'}oy��������<�O�Sז&Qvgs~4� ??pJ�º�ܩ`Xd��+G��K� +�Y�qP��9t���q�������Ɇk{y�'a�c�;���~'(6:�v��X��X�OBǗ7e�cО +:�Dp�D�};�:#j�3��� +#*sƍ<�>� }'^�I�:�>YE�R�/`0���J�&��,.����NP����ҭf%���G��;�(K�ҍ�m�znƳ�b�bRE>ú'�4 +��n�j#y<�#�dX�c( L�04%�3���I��Qc�yUr���w3r֛-AWF�\�Iq9����3Z�B�3Z���Όv��'8bLD���(��h�a)��&�A���!\��4�|2��-+�����܁)�̽Z#���D�Jq���7�%�Ė4 �b<�Q�8嶁,����(jܡ� 6�y��]��I���vأ��6| l"�_���J�X���� C�}�M�7`���ߧ�;�iW=�vxG�*A�+��Z|�iV�sB�N@�Ռ�ȡ�fiT��:oxΏT�^I��:u���,{�R+ˠ"k���[א�b�[���"���o�P(�x�[$��s��j���Q�-ٻuy�3'��<��yN�ǖV]����vlIK{]�)���a�l���6��k(d?Y����3�>g�-w��W?��U$��3�Ks?����/��1)��?uD�l��T�G!l�*l�eU�ˏ>.��UqƂS^����z����=��F�mY1�Y�9(�袝���6��Ž��m�q[Pĭ�p�eq;H>C�s��Y�4��{rI<��$��$�=����aZv�CQ�p\�m�q�_��6��j(�7[����3d;g�-[��W�TA�����}��M�n���C}o�y1�?�̟-ߍy�]�p���9���٫�ʑY,b�1�����]2�W�=�E�N��3#TAٗ^9,l�j�P(�|Y���P��Zm^�mc&��Z�-��Y��-�i49��,��;Dy'�%^���Rl�' P�N��%���F2�^�^d���W�e������ۮ"�ĺ�@� }���_8���<Zok�R�]k�Q}�����<C*r�F��~|� +����;ⶳ� �f�~C�{��,�f��p{Ų�9H>���,���f�#$棗�����b8��8I�5e�J*��O�xm�V�E�6Gs��x�w� +@��z��ݹ�?�|江�B|P@ʡ�9.��,j�E��xpjj��?(zxov�Ȏ�~:>+PlHR�^��^Ҙz,�����;�(e�l��մz&5�#�F�����>'�hN�9���b����8��3�u�053�W� ��P�w9)D�&����`Ƴ�ie|�[���I;��1 �d�t�9}�7��F�F�H�+FlA]0b %�x�)�E�F<��m�6� +Άޙƙo�ٴ +mq�BOV�jV�!'4�N8���b��+I��M-4�:�9��`��7�k�A `����ՎR�P?��&����̹��,��a��Nٴ��ĦO�=�ܾB��,9�' +�<�+�cA]� %�g���E��3��m=6��y��/ZP��u�!#H��� ��w��¹ɳ/'��^�I��8Z��QsC��f�붤l��)̴_�өF�����f��zI�6R6�N���u9�J�ӵ�B��&⸵��U~o��-�TN�Z��R}~M���,���-�9���t��"�o&�S��\8� �76��<��>k���Oe�6��GC��8[�[�����-�Pendstream +endobj +4227 0 obj << +/Type /Page +/Contents 4228 0 R +/Resources 4226 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 4180 0 R >> endobj 4229 0 obj << -/D [4214 0 R /XYZ 378.8166 421.3172 null] +/D [4227 0 R /XYZ 71.731 729.2652 null] >> endobj 4230 0 obj << -/D [4214 0 R /XYZ 71.731 419.1603 null] +/D [4227 0 R /XYZ 89.6638 708.3437 null] >> endobj 4231 0 obj << -/D [4214 0 R /XYZ 71.731 404.2164 null] +/D [4227 0 R /XYZ 241.2196 708.3437 null] >> endobj 4232 0 obj << -/D [4214 0 R /XYZ 76.7123 354.7667 null] +/D [4227 0 R /XYZ 417.1824 695.3923 null] >> endobj 4233 0 obj << -/D [4214 0 R /XYZ 71.731 334.8415 null] +/D [4227 0 R /XYZ 71.731 688.2541 null] +>> endobj +1854 0 obj << +/D [4227 0 R /XYZ 71.731 657.3699 null] +>> endobj +742 0 obj << +/D [4227 0 R /XYZ 252.0091 614.2725 null] >> endobj 4234 0 obj << -/D [4214 0 R /XYZ 76.7123 259.0258 null] +/D [4227 0 R /XYZ 71.731 601.8345 null] >> endobj 4235 0 obj << -/D [4214 0 R /XYZ 89.6638 241.093 null] +/D [4227 0 R /XYZ 71.731 579.7619 null] >> endobj 4236 0 obj << -/D [4214 0 R /XYZ 71.731 187.1305 null] +/D [4227 0 R /XYZ 71.731 551.7022 null] >> endobj 4237 0 obj << -/D [4214 0 R /XYZ 89.6638 171.3545 null] +/D [4227 0 R /XYZ 71.731 546.7209 null] >> endobj 4238 0 obj << -/D [4214 0 R /XYZ 71.731 143.2948 null] +/D [4227 0 R /XYZ 89.6638 525.9636 null] >> endobj 4239 0 obj << -/D [4214 0 R /XYZ 89.6638 127.5189 null] +/D [4227 0 R /XYZ 89.6638 525.9636 null] >> endobj 4240 0 obj << -/D [4214 0 R /XYZ 71.731 112.4107 null] +/D [4227 0 R /XYZ 89.6638 495.0794 null] >> endobj -4213 0 obj << -/Font << /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F44 2183 0 R /F33 1398 0 R >> -/ProcSet [ /PDF /Text ] +4241 0 obj << +/D [4227 0 R /XYZ 71.731 495.0794 null] >> endobj -4243 0 obj << -/Length 3242 -/Filter /FlateDecode ->> -stream -xڝk�۶�ō���x$����t7q�:�_��4�E�$���/�_�],��(�d�x,v��.��&�_x��~��m�(M����"���Ի�Y+�� �����o����4Jo�nb�|�&���E~���������Cq�y�ZGI�%>}U���������������{C4a����E��$��<Ln�Q�o"h8���Yb#�}��l ʬ h0���3�,���i��aA/���nd��v%�#�+��F�=��4��շ4�k�_��xYW�g5t�4�s��F�7Ѝ�]W�g��ɚ�{h[���+������H���l�T��)l�S;ڧ��q��o����#�����^x�XT55�ݮ�B�N��Ʃ�q^۩%���� zj��VpjV I,Ќ^����v�og�d�%�d��l�mWQ� �F�lL�E�����k"ǒ��+:�5��b�jO�O��O�ƣdo\@ٶ�+���$��G~ܒ2c-�ȭ@����Jk�'�[������:����*LGl�N�]%�m�Q�W����C��h�\�δ)�P+�4�R윛��ڭG�(��]�vCg����STJu����'F��M$��$U���N��{��р����)|v4�tQ�'�&���e�H�S-�&̕�AgR�0 ]�z�F�� �Uy�&��TO -Z->]_�C]t4L������j�&`-ɼ}���JNx��a�����J1 ڣb�2V����^�_�)����.PP�(ϼ? dž���HFG�9H�Cߟ^���f�W�}0<�qg����]є�;0&�j���/�՟��C�U)圴�!����8�j����2i�?@̔~�� ),e��-��!�P���p-��w -��4`�O'�a��1�Ȓ� i���҂V_|��p�;�p���������� -%c\ -���D-�\|(�sY��~���[�M�����R�J?�<|�����ʋ��j���]�p�}������C_�I��{��r�aC-� -7.�.���3&��nd�#�����D�BF�6�S۠hσ�&���#�״��(�L�i�"�WH�}�O���ұ��-����0����X/���R5:�>b�Χ��x��&�Cի��[4�V'����G���c; 4&j�Kmh/�o6!��C����� -۠���|�&M���q��9���&�;}�;VM%�IOx�Pn -Kc��`���9�,�?s4���Z�_��F,�1���;�p�v1��~��D3� �S0g��@x��\4_�����~�b�����, H�*�j͋S��(5�}0_�ܯfy�߷݊�! Rj�wo1���#��z@n�h�{���[+9�&I�RI�y4ؕ��Y�$&���-�#�n�` bS��k�N�bgc��j(�agX[X�n���$EX�KF� V.6��L�<]6�VsJ_�:�bc<k�O��cΡ�9�{�C\�&Pz'P���y~����4��8��QO��a�S�����Nê �~��/�r|о���U�C��j';����N��l����~F:���}o�w�b����5��U�$t|yS��0���c?�/�h�m�^gDM1��*��R�9�F�iN�>�/�$O�~��RJ��0��Tb��D�b�r ����th�}�V���Dͣp����#N�2?e���f<K+!.&��3�{"Ms����"�ǃ8rH��>���d�CS�?u�?��<0j6�JN���b�CNR�fFKЕ�28�7a�����P���B�F��������gF;a�1&�A�2� �@ �zX -���g� ����qLd>蒶(����e��S�{�F6T�"�Jq�����%�Ė4 �b<�Q�8嶁,����(jܡ��bB�V��j_�b�k���*Ti��U$���5ޞ+!J`i�D6'ILO��a�6M(ހ�b���{�iW=�vxG�*A�+�m����tQ�sB�N@�Ռ�ȡ�>iT��:�uΏT�6I��:u���,{�V+cP�Z�>{���W,{k�A�aW�Ղ�� -Ė��A��:g���6`վђ�_m"�u�D�ϳ,��Dxli�u\@�mǖ���ŜbY�6qz�.�]C!���$�!�9n��,��፮"!'/�i_��a��O��Ǥ@���!��Sx���������Ua�.?��H^W�NULXx�ӏ��S��W�?��eU����J�a@1F�U���[w*���+ⶠ.�[C�.�eq;H>C�s��Y�4�E��x����3�Ce�A���|a��]F�P��7�e�>��+�܆� [ ��f˲u�|�l�,�ek��ʜ� ��X۶����-^,����g��g�wc^�F�3���INg�t�*��rd��ݘK����.��+о�E�N��gF(Aٗ\9,l�j�P(�|Y���P��Zm^�m�0����ǖ��_��$���,c s�(�d��+���z�I��i�z�B �V1A2���3�FEZV��(2�}�U[���������G�mM^-�k�;��]�?^��GeB��Ȣ�2�/��.�af�q�Y/�N�B?a��^6;��i(��f��$�avs�fg����ˍd���y1�|��xZ�Q������9��4��Pk�X�wms4W|��q����d����ڡٝ+*��p�߄9�M��چr(j�K>"��rѼ��3������$���C�](�Y�'�ņ8�^굸�%���B�������RV�q���e�džzA4j��-�s2�F������ - ��|5ǹ��Z� -S3cJp��z��Btj��%> f<;�V�G���5���~pӐK�K����'yøl�I�8�b��#�P҈��B]4�a�s�Fl���l蝙!�|��ٴ -mq�BOV�jV� '4�N8���b��+I��M-4�:�9�^��7�k�- `����ՎR�P?��&��?�̹��,��a��Nٴ��ĦO�=�ܾB��,9�' -���뱠.X���ֳ|��������O���-h��u�!#H��� ����s�g_N�t����q�Bӣ暦��"l붤l��)̴_�S����� � �����m�l -��z���r�� �k����M,�qk-q�����[@��@�hͥ�����=�Yt��[n�z&����4��O���2p����8��0�\�Ӭsn>I��iu����q��gX��\���endstream -endobj 4242 0 obj << -/Type /Page -/Contents 4243 0 R -/Resources 4241 0 R -/MediaBox [0 0 609.7136 789.0411] -/Parent 4195 0 R +/D [4227 0 R /XYZ 71.731 383.8477 null] +>> endobj +4243 0 obj << +/D [4227 0 R /XYZ 89.6638 365.9149 null] >> endobj 4244 0 obj << -/D [4242 0 R /XYZ 71.731 729.2652 null] +/D [4227 0 R /XYZ 89.6638 365.9149 null] >> endobj 4245 0 obj << -/D [4242 0 R /XYZ 89.6638 708.3437 null] +/D [4227 0 R /XYZ 71.731 337.8552 null] >> endobj 4246 0 obj << -/D [4242 0 R /XYZ 241.2196 708.3437 null] +/D [4227 0 R /XYZ 89.6638 322.0793 null] >> endobj 4247 0 obj << -/D [4242 0 R /XYZ 417.1824 695.3923 null] +/D [4227 0 R /XYZ 89.6638 322.0793 null] >> endobj 4248 0 obj << -/D [4242 0 R /XYZ 71.731 688.2541 null] ->> endobj -1854 0 obj << -/D [4242 0 R /XYZ 71.731 657.3699 null] ->> endobj -742 0 obj << -/D [4242 0 R /XYZ 252.0091 614.2725 null] +/D [4227 0 R /XYZ 71.731 319.9225 null] >> endobj 4249 0 obj << -/D [4242 0 R /XYZ 71.731 601.8345 null] +/D [4227 0 R /XYZ 89.6638 304.1466 null] >> endobj 4250 0 obj << -/D [4242 0 R /XYZ 71.731 579.7619 null] +/D [4227 0 R /XYZ 89.6638 304.1466 null] >> endobj 4251 0 obj << -/D [4242 0 R /XYZ 71.731 551.7022 null] +/D [4227 0 R /XYZ 71.731 301.9897 null] >> endobj 4252 0 obj << -/D [4242 0 R /XYZ 71.731 546.7209 null] +/D [4227 0 R /XYZ 89.6638 286.2138 null] >> endobj 4253 0 obj << -/D [4242 0 R /XYZ 89.6638 525.9636 null] +/D [4227 0 R /XYZ 89.6638 286.2138 null] >> endobj 4254 0 obj << -/D [4242 0 R /XYZ 89.6638 525.9636 null] +/D [4227 0 R /XYZ 71.731 284.057 null] >> endobj 4255 0 obj << -/D [4242 0 R /XYZ 89.6638 495.0794 null] +/D [4227 0 R /XYZ 89.6638 268.2811 null] >> endobj 4256 0 obj << -/D [4242 0 R /XYZ 71.731 495.0794 null] +/D [4227 0 R /XYZ 89.6638 268.2811 null] >> endobj 4257 0 obj << -/D [4242 0 R /XYZ 71.731 383.8477 null] +/D [4227 0 R /XYZ 71.731 266.1242 null] >> endobj 4258 0 obj << -/D [4242 0 R /XYZ 89.6638 365.9149 null] +/D [4227 0 R /XYZ 89.6638 250.3483 null] >> endobj 4259 0 obj << -/D [4242 0 R /XYZ 89.6638 365.9149 null] +/D [4227 0 R /XYZ 89.6638 250.3483 null] >> endobj 4260 0 obj << -/D [4242 0 R /XYZ 71.731 337.8552 null] +/D [4227 0 R /XYZ 71.731 248.1915 null] >> endobj 4261 0 obj << -/D [4242 0 R /XYZ 89.6638 322.0793 null] +/D [4227 0 R /XYZ 89.6638 232.4156 null] >> endobj 4262 0 obj << -/D [4242 0 R /XYZ 89.6638 322.0793 null] +/D [4227 0 R /XYZ 89.6638 232.4156 null] >> endobj 4263 0 obj << -/D [4242 0 R /XYZ 71.731 319.9225 null] +/D [4227 0 R /XYZ 71.731 217.3073 null] >> endobj 4264 0 obj << -/D [4242 0 R /XYZ 89.6638 304.1466 null] +/D [4227 0 R /XYZ 89.6638 201.5314 null] >> endobj 4265 0 obj << -/D [4242 0 R /XYZ 89.6638 304.1466 null] +/D [4227 0 R /XYZ 89.6638 201.5314 null] >> endobj 4266 0 obj << -/D [4242 0 R /XYZ 71.731 301.9897 null] +/D [4227 0 R /XYZ 71.731 199.3745 null] >> endobj 4267 0 obj << -/D [4242 0 R /XYZ 89.6638 286.2138 null] +/D [4227 0 R /XYZ 89.6638 183.5986 null] >> endobj 4268 0 obj << -/D [4242 0 R /XYZ 89.6638 286.2138 null] +/D [4227 0 R /XYZ 89.6638 183.5986 null] >> endobj 4269 0 obj << -/D [4242 0 R /XYZ 71.731 284.057 null] +/D [4227 0 R /XYZ 71.731 168.4904 null] >> endobj 4270 0 obj << -/D [4242 0 R /XYZ 89.6638 268.2811 null] +/D [4227 0 R /XYZ 89.6638 152.7144 null] >> endobj 4271 0 obj << -/D [4242 0 R /XYZ 89.6638 268.2811 null] +/D [4227 0 R /XYZ 89.6638 152.7144 null] >> endobj 4272 0 obj << -/D [4242 0 R /XYZ 71.731 266.1242 null] +/D [4227 0 R /XYZ 71.731 137.6062 null] >> endobj 4273 0 obj << -/D [4242 0 R /XYZ 89.6638 250.3483 null] +/D [4227 0 R /XYZ 89.6638 121.8302 null] >> endobj 4274 0 obj << -/D [4242 0 R /XYZ 89.6638 250.3483 null] +/D [4227 0 R /XYZ 89.6638 121.8302 null] >> endobj 4275 0 obj << -/D [4242 0 R /XYZ 71.731 248.1915 null] ->> endobj -4276 0 obj << -/D [4242 0 R /XYZ 89.6638 232.4156 null] ->> endobj -4277 0 obj << -/D [4242 0 R /XYZ 89.6638 232.4156 null] ->> endobj -4278 0 obj << -/D [4242 0 R /XYZ 71.731 217.3073 null] ->> endobj -4279 0 obj << -/D [4242 0 R /XYZ 89.6638 201.5314 null] ->> endobj -4280 0 obj << -/D [4242 0 R /XYZ 89.6638 201.5314 null] ->> endobj -4281 0 obj << -/D [4242 0 R /XYZ 71.731 199.3745 null] ->> endobj -4282 0 obj << -/D [4242 0 R /XYZ 89.6638 183.5986 null] ->> endobj -4283 0 obj << -/D [4242 0 R /XYZ 89.6638 183.5986 null] ->> endobj -4284 0 obj << -/D [4242 0 R /XYZ 71.731 168.4904 null] ->> endobj -4285 0 obj << -/D [4242 0 R /XYZ 89.6638 152.7144 null] ->> endobj -4286 0 obj << -/D [4242 0 R /XYZ 89.6638 152.7144 null] ->> endobj -4287 0 obj << -/D [4242 0 R /XYZ 71.731 137.6062 null] ->> endobj -4288 0 obj << -/D [4242 0 R /XYZ 89.6638 121.8302 null] ->> endobj -4289 0 obj << -/D [4242 0 R /XYZ 89.6638 121.8302 null] ->> endobj -4290 0 obj << -/D [4242 0 R /XYZ 71.731 106.722 null] +/D [4227 0 R /XYZ 71.731 106.722 null] >> endobj -4241 0 obj << +4226 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4294 0 obj << +4279 0 obj << /Length 2280 /Filter /FlateDecode >> @@ -18164,147 +18191,146 @@ ZT �P��<�>>���w��_N*��Y%|%}�Vth�0`� ��4���Ѵt>�WZ%ЗU�P멦�6��T����pʼn�4{hh��>�i@G;�Eߕ)>�������TuoP����ȣ��% ��Q��,p?� T�)٩k����Pn���Up!,�c~���!�MD�B�@U��L��V�_"�Y���2�}���`ߪk�^�@F��p�b�� pn0F3?Z�#H�\v�Y��ܫov�7�øk�� 6u-����8ԕ=Z1k7��v4J��m����r�r�Yl���7p5����L�<�����6/+��E��ޗ���3\�E����}~�&ζ5D��_[�{�����#�t�,�@c���q��v�?�(�oO(�� �.�3:�9 �"L�dٰ�'N����`�?�97�endstream endobj -4293 0 obj << +4278 0 obj << /Type /Page -/Contents 4294 0 R -/Resources 4292 0 R +/Contents 4279 0 R +/Resources 4277 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4195 0 R -/Annots [ 4323 0 R ] +/Parent 4180 0 R +/Annots [ 4308 0 R ] >> endobj -4323 0 obj << +4308 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [422.6692 343.5385 466.8026 354.4424] /Subtype /Link /A << /S /GoTo /D (lifecycle-image) >> >> endobj -4295 0 obj << -/D [4293 0 R /XYZ 71.731 729.2652 null] +4280 0 obj << +/D [4278 0 R /XYZ 71.731 729.2652 null] >> endobj 1856 0 obj << -/D [4293 0 R /XYZ 71.731 741.2204 null] +/D [4278 0 R /XYZ 71.731 741.2204 null] >> endobj -4296 0 obj << -/D [4293 0 R /XYZ 89.6638 708.3437 null] +4281 0 obj << +/D [4278 0 R /XYZ 89.6638 708.3437 null] >> endobj -4297 0 obj << -/D [4293 0 R /XYZ 89.6638 708.3437 null] +4282 0 obj << +/D [4278 0 R /XYZ 89.6638 708.3437 null] >> endobj -4298 0 obj << -/D [4293 0 R /XYZ 71.731 680.284 null] +4283 0 obj << +/D [4278 0 R /XYZ 71.731 680.284 null] >> endobj -4299 0 obj << -/D [4293 0 R /XYZ 89.6638 664.5081 null] +4284 0 obj << +/D [4278 0 R /XYZ 89.6638 664.5081 null] >> endobj -4300 0 obj << -/D [4293 0 R /XYZ 89.6638 664.5081 null] +4285 0 obj << +/D [4278 0 R /XYZ 89.6638 664.5081 null] >> endobj -4301 0 obj << -/D [4293 0 R /XYZ 71.731 662.3513 null] +4286 0 obj << +/D [4278 0 R /XYZ 71.731 662.3513 null] >> endobj -4302 0 obj << -/D [4293 0 R /XYZ 89.6638 646.5753 null] +4287 0 obj << +/D [4278 0 R /XYZ 89.6638 646.5753 null] >> endobj -4303 0 obj << -/D [4293 0 R /XYZ 89.6638 646.5753 null] +4288 0 obj << +/D [4278 0 R /XYZ 89.6638 646.5753 null] >> endobj -4304 0 obj << -/D [4293 0 R /XYZ 71.731 644.4185 null] +4289 0 obj << +/D [4278 0 R /XYZ 71.731 644.4185 null] >> endobj -4305 0 obj << -/D [4293 0 R /XYZ 89.6638 628.6426 null] +4290 0 obj << +/D [4278 0 R /XYZ 89.6638 628.6426 null] >> endobj -4306 0 obj << -/D [4293 0 R /XYZ 89.6638 628.6426 null] +4291 0 obj << +/D [4278 0 R /XYZ 89.6638 628.6426 null] >> endobj -4307 0 obj << -/D [4293 0 R /XYZ 206.4347 615.6911 null] +4292 0 obj << +/D [4278 0 R /XYZ 206.4347 615.6911 null] >> endobj -4308 0 obj << -/D [4293 0 R /XYZ 335.6388 615.6911 null] +4293 0 obj << +/D [4278 0 R /XYZ 335.6388 615.6911 null] >> endobj -4309 0 obj << -/D [4293 0 R /XYZ 71.731 613.5343 null] +4294 0 obj << +/D [4278 0 R /XYZ 71.731 613.5343 null] >> endobj -4310 0 obj << -/D [4293 0 R /XYZ 71.731 539.8663 null] +4295 0 obj << +/D [4278 0 R /XYZ 71.731 539.8663 null] >> endobj -4311 0 obj << -/D [4293 0 R /XYZ 89.6638 524.0903 null] +4296 0 obj << +/D [4278 0 R /XYZ 89.6638 524.0903 null] >> endobj -4312 0 obj << -/D [4293 0 R /XYZ 89.6638 524.0903 null] +4297 0 obj << +/D [4278 0 R /XYZ 89.6638 524.0903 null] >> endobj -4313 0 obj << -/D [4293 0 R /XYZ 71.731 496.0306 null] +4298 0 obj << +/D [4278 0 R /XYZ 71.731 496.0306 null] >> endobj -4314 0 obj << -/D [4293 0 R /XYZ 89.6638 480.2547 null] +4299 0 obj << +/D [4278 0 R /XYZ 89.6638 480.2547 null] >> endobj -4315 0 obj << -/D [4293 0 R /XYZ 89.6638 480.2547 null] +4300 0 obj << +/D [4278 0 R /XYZ 89.6638 480.2547 null] >> endobj -4316 0 obj << -/D [4293 0 R /XYZ 71.731 465.1465 null] +4301 0 obj << +/D [4278 0 R /XYZ 71.731 465.1465 null] >> endobj -4317 0 obj << -/D [4293 0 R /XYZ 89.6638 449.3705 null] +4302 0 obj << +/D [4278 0 R /XYZ 89.6638 449.3705 null] >> endobj -4318 0 obj << -/D [4293 0 R /XYZ 89.6638 449.3705 null] +4303 0 obj << +/D [4278 0 R /XYZ 89.6638 449.3705 null] >> endobj -4319 0 obj << -/D [4293 0 R /XYZ 71.731 447.2137 null] +4304 0 obj << +/D [4278 0 R /XYZ 71.731 447.2137 null] >> endobj -4320 0 obj << -/D [4293 0 R /XYZ 89.6638 431.4378 null] +4305 0 obj << +/D [4278 0 R /XYZ 89.6638 431.4378 null] >> endobj -4321 0 obj << -/D [4293 0 R /XYZ 89.6638 431.4378 null] +4306 0 obj << +/D [4278 0 R /XYZ 89.6638 431.4378 null] >> endobj 1855 0 obj << -/D [4293 0 R /XYZ 71.731 411.3482 null] +/D [4278 0 R /XYZ 71.731 411.3482 null] >> endobj 746 0 obj << -/D [4293 0 R /XYZ 259.6867 368.2507 null] +/D [4278 0 R /XYZ 259.6867 368.2507 null] >> endobj -4322 0 obj << -/D [4293 0 R /XYZ 71.731 355.8127 null] +4307 0 obj << +/D [4278 0 R /XYZ 71.731 355.8127 null] >> endobj -4324 0 obj << -/D [4293 0 R /XYZ 459.2619 333.7401 null] +4309 0 obj << +/D [4278 0 R /XYZ 459.2619 333.7401 null] >> endobj -4325 0 obj << -/D [4293 0 R /XYZ 220.2621 320.7887 null] +4310 0 obj << +/D [4278 0 R /XYZ 220.2621 320.7887 null] >> endobj 2089 0 obj << -/D [4293 0 R /XYZ 71.731 318.6319 null] +/D [4278 0 R /XYZ 71.731 318.6319 null] >> endobj -4292 0 obj << +4277 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4328 0 obj << -/Length 1040 +4313 0 obj << +/Length 1034 /Filter /FlateDecode >> stream -xڅVM��6��W{r�D�$[���m����=m���F�5�����We���L1�����G��E���� �$�v`9a"aA�n��b�~�Po��6��ѧ���� '�`"8���s�E�)g$Kh�?�+9�Jo�,�������O��ߺi���㯛���ӄ�$�,����؊�e���1�\_&��Y�<�=��~�Ϫ��_��8�;��잺w�#ˈ�(x -""�3X�ϻ��i縜���<|ii�S��}�̬߫}��hJM�U�,�IDs��O��F��_��[�ŖFa����3�z���8-r�:�(�3J�$��X�#ギ�fࠨ@��A^�Mmp�Mug�$d�Uϕ� -7^� u��P�+�XW�lu4 �89s��O��������Vu���q�#ҳ��֠���{�h��x)#yB�m)��U�k�-���g�9� ����\�J��#��ы�8|<ٕe��sGzW���Z���OZvEux���nE��R����+��/�b�Xr2��J��u����A�F5�}����m�$�Y��y�ޘ��x��,�I9��H6 -��q��Aܪ)�gH������JoT*S���J�>�P��"�����������[���z��vj�zp�dw��UL�N~7��* N���ꍚ���b]BvE�qҝG�A��� -5����g�>�G��BŻ���w�5���!���g/���������n�-���������h��������_�{��-���=-;�ۡ�Z��k�1�+��=�AS�ӯ+�ҫ���=W�����Z���-q;4�u-�0����8{�Q���"_��� ����Q�K��&�圅�+�9 ?��a*��A9�h3H-[��(ܡ��ZyE��:/j����z� v>���[o1��5J�Sc�/w�4�I�Y��s`�گ�����l�F����%0�\*��u�8�D��Og��: ��d��7t�GB���ln�67������e���;$�HFE���ne��a��� ���E�������!��endstream +xڅVM��6��W{r�D�d[���m����=m���F�5�����Wi���L1�����G��Ž��q/�, � 2&d,�����.���d�'�����qs��^�2)�w<{Q�Pƙ����1O�c���c���۽�?f8~3uwA��t��n�|��������i&,K-����Ċ�e��0 +��s}�����"r{N�~�Ϫ� -�g�;���:9�(�����LJg���w��ie�'٬<|i��S��}�̬߫}��E�� G��E��g 3��$���\oE�[�fƪϠ�5Nl�����\o/8��;�ce�,�|uF0Er���lj��8o�;[(g ��z��V���O�+����@t%�V�c���0�yq��z=�ho߶��g�C>"=k0im �+n���6z����<v�ޖ���Q�TCl� 8��qah�+J��X�T�8B�I������] Q6 ���;ֻ�����X��I��V�>+.5[(�K��%E"�KR@Ƥ�T����F�74;cHߨF#Ո���VI�a��ԧ���r�L�%/@yӠ�n�Ǚ���<C�=�dT*S���JR�z����O���Ex�a�QI���Biv��i;5�P](�](vsj��ƳQ%��Z�ިy�Q.cW�'�2I3�5�����t��U +�QŶP�.hh�q]��kwuMq����ҿ�}� ��v�n��g���d���.��\�?,����I�Y��R���h�QO�%�S�][����rh�H�Ms�~]��r�vh�\ճ��k�b�Z��А�>X.a`/Iq������E����(�Oã̗��K ��?]q��r����h����6C��V�(�w��vl�6�"�n�5J�ZC��[���-YLFiC�F���i$��NS�GKR+<z,V��~ �߫�hp4w�&�Ke^=KD�d��Y���N,�}2��� 葐�}d��2�o������nF�Ƽn{��,�2{�I��y���E +�lA�2{�����њ�endstream endobj -4327 0 obj << +4312 0 obj << /Type /Page -/Contents 4328 0 R -/Resources 4326 0 R +/Contents 4313 0 R +/Resources 4311 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4195 0 R -/Annots [ 4336 0 R ] +/Parent 4180 0 R +/Annots [ 4321 0 R ] >> endobj -4291 0 obj << +4276 0 obj << /Type /XObject /Subtype /Image /Width 496 @@ -18499,46 +18525,46 @@ m �Z��ͩb�7'�������e˖ <�y���I�������������o�ᐁA�`�5������Ŋcƌ�С�����C�>}��'N�P؟����˫T������������;u��[�j��Jx��͛���?�������{s�(%�̴i�&(((::�ԩS���`�С�螌���� F}}�gϞ{sggg_�vm�����Ǐ���oK�T�O����²X�x1 ���ƺ��*�����L﵌ϕ���������5�����t߾}111,�������۹sg�������y!^��֭����}Μ9�6mB:/_�d��AX���A���99d|�*>���211�r~�ҥ������Y<�x���ݻW�^E�����w�y�ʕ+�!�iCCCG�5h� �� jww�� V�ZUbcIA��;88xyy�1b���[�no?}���q 55�����G����\>_�zu�2e��:y5����F�P�������r}�ڵP�A����S_dR�ABB���18�E���Q���9�Ű�09uf~$+++;;����7i����������oȐ!cƌA����K�.�믿�Z��>|� ��4������CJJ��� )���y�����;v���|�<((�v��������� 7��Č��A3������N�x�Ố�+(����gB�P�������endstream endobj -4336 0 obj << +4321 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [459.3526 141.6358 524.0572 152.5397] /Subtype /Link /A << /S /GoTo /D (savedsearches) >> >> endobj -4329 0 obj << -/D [4327 0 R /XYZ 71.731 729.2652 null] +4314 0 obj << +/D [4312 0 R /XYZ 71.731 729.2652 null] >> endobj -4330 0 obj << -/D [4327 0 R /XYZ 71.731 741.2204 null] +4315 0 obj << +/D [4312 0 R /XYZ 71.731 741.2204 null] >> endobj -4331 0 obj << -/D [4327 0 R /XYZ 71.731 696.3587 null] +4316 0 obj << +/D [4312 0 R /XYZ 71.731 696.3587 null] >> endobj 750 0 obj << -/D [4327 0 R /XYZ 263.1645 254.0192 null] +/D [4312 0 R /XYZ 263.1645 254.0192 null] >> endobj -4332 0 obj << -/D [4327 0 R /XYZ 71.731 241.5812 null] +4317 0 obj << +/D [4312 0 R /XYZ 71.731 241.5812 null] >> endobj -4333 0 obj << -/D [4327 0 R /XYZ 245.7962 219.5086 null] +4318 0 obj << +/D [4312 0 R /XYZ 245.7962 219.5086 null] >> endobj -4334 0 obj << -/D [4327 0 R /XYZ 71.731 212.3705 null] +4319 0 obj << +/D [4312 0 R /XYZ 71.731 212.3705 null] >> endobj -4335 0 obj << -/D [4327 0 R /XYZ 71.731 168.5349 null] +4320 0 obj << +/D [4312 0 R /XYZ 71.731 168.5349 null] >> endobj 1857 0 obj << -/D [4327 0 R /XYZ 71.731 131.7379 null] +/D [4312 0 R /XYZ 71.731 131.7379 null] >> endobj -4326 0 obj << +4311 0 obj << /Font << /F33 1398 0 R /F32 1306 0 R /F23 1290 0 R /F27 1298 0 R >> -/XObject << /Im1 4291 0 R >> +/XObject << /Im1 4276 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -4339 0 obj << +4324 0 obj << /Length 2275 /Filter /FlateDecode >> @@ -18549,126 +18575,126 @@ A Z��}G_r7X(잵��rBk�k/fΙ�ٸxdl3���CK���$�Q��!2 �=j�8\p��x3��3U(�"��,��"�����$>���ھl_����߯�X��k\A~14e�������t��a�/9��F�9�$�f���)�" �?�`�\c$,��x,�3[wi�ceS�; |lj� ���q�O��$��G[�ڗ�w��j��ɭȥV,.��ec�x��J�L��?=������d#}���GU~{��U�HGF����� �bqǂNk�˱��ɵf�����E�;h}-����KEY�o�z���,�Տ�e��#����o&��Ť0�6)�.&��5�4E�� M1�Fotɴ�̄Kcf���͎�do�̌����4�Z��hk�5�1t<0�9(�U:�����%?��.9�O5W�f��'(�:~�ۂEsu��bU�ؾw"&?���˯V�e4��^q4*sio�|��*-��Ӏ9R���JusW>�a�}g:9�qZ(P�a�[���;8N%���^ /_l)Z���C�;���j�2{�7n��q��>8�-�_=6�x���IW��ڜI�Q�c./FiG:��e"���7����If����VI��?w�0�o�!kendstream endobj -4338 0 obj << +4323 0 obj << /Type /Page -/Contents 4339 0 R -/Resources 4337 0 R +/Contents 4324 0 R +/Resources 4322 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4371 0 R +/Parent 4356 0 R >> endobj -4340 0 obj << -/D [4338 0 R /XYZ 71.731 729.2652 null] +4325 0 obj << +/D [4323 0 R /XYZ 71.731 729.2652 null] >> endobj 754 0 obj << -/D [4338 0 R /XYZ 217.9167 707.8408 null] +/D [4323 0 R /XYZ 217.9167 707.8408 null] >> endobj -4341 0 obj << -/D [4338 0 R /XYZ 71.731 700.4885 null] +4326 0 obj << +/D [4323 0 R /XYZ 71.731 700.4885 null] >> endobj -4342 0 obj << -/D [4338 0 R /XYZ 71.731 651.7512 null] +4327 0 obj << +/D [4323 0 R /XYZ 71.731 651.7512 null] >> endobj -4343 0 obj << -/D [4338 0 R /XYZ 427.5857 638.8993 null] +4328 0 obj << +/D [4323 0 R /XYZ 427.5857 638.8993 null] >> endobj -4344 0 obj << -/D [4338 0 R /XYZ 113.3184 625.9479 null] +4329 0 obj << +/D [4323 0 R /XYZ 113.3184 625.9479 null] >> endobj -4345 0 obj << -/D [4338 0 R /XYZ 205.0794 625.9479 null] +4330 0 obj << +/D [4323 0 R /XYZ 205.0794 625.9479 null] >> endobj -4346 0 obj << -/D [4338 0 R /XYZ 71.731 605.8583 null] +4331 0 obj << +/D [4323 0 R /XYZ 71.731 605.8583 null] >> endobj -4347 0 obj << -/D [4338 0 R /XYZ 71.731 594.9642 null] +4332 0 obj << +/D [4323 0 R /XYZ 71.731 594.9642 null] >> endobj -4348 0 obj << -/D [4338 0 R /XYZ 71.731 589.9829 null] +4333 0 obj << +/D [4323 0 R /XYZ 71.731 589.9829 null] >> endobj -4349 0 obj << -/D [4338 0 R /XYZ 81.6937 567.1683 null] +4334 0 obj << +/D [4323 0 R /XYZ 81.6937 567.1683 null] >> endobj -4350 0 obj << -/D [4338 0 R /XYZ 81.6937 567.1683 null] +4335 0 obj << +/D [4323 0 R /XYZ 81.6937 567.1683 null] >> endobj -4351 0 obj << -/D [4338 0 R /XYZ 71.731 565.0115 null] +4336 0 obj << +/D [4323 0 R /XYZ 71.731 565.0115 null] >> endobj -4352 0 obj << -/D [4338 0 R /XYZ 81.6937 549.2356 null] +4337 0 obj << +/D [4323 0 R /XYZ 81.6937 549.2356 null] >> endobj -4353 0 obj << -/D [4338 0 R /XYZ 81.6937 549.2356 null] +4338 0 obj << +/D [4323 0 R /XYZ 81.6937 549.2356 null] >> endobj -4354 0 obj << -/D [4338 0 R /XYZ 71.731 547.0787 null] +4339 0 obj << +/D [4323 0 R /XYZ 71.731 547.0787 null] >> endobj -4355 0 obj << -/D [4338 0 R /XYZ 81.6937 531.3028 null] +4340 0 obj << +/D [4323 0 R /XYZ 81.6937 531.3028 null] >> endobj -4356 0 obj << -/D [4338 0 R /XYZ 81.6937 531.3028 null] +4341 0 obj << +/D [4323 0 R /XYZ 81.6937 531.3028 null] >> endobj 1858 0 obj << -/D [4338 0 R /XYZ 71.731 529.146 null] +/D [4323 0 R /XYZ 71.731 529.146 null] >> endobj 758 0 obj << -/D [4338 0 R /XYZ 236.9017 496.8321 null] +/D [4323 0 R /XYZ 236.9017 496.8321 null] >> endobj -4357 0 obj << -/D [4338 0 R /XYZ 71.731 490.7051 null] +4342 0 obj << +/D [4323 0 R /XYZ 71.731 490.7051 null] >> endobj -4358 0 obj << -/D [4338 0 R /XYZ 71.731 418.9592 null] +4343 0 obj << +/D [4323 0 R /XYZ 71.731 418.9592 null] >> endobj 1859 0 obj << -/D [4338 0 R /XYZ 71.731 362.1721 null] +/D [4323 0 R /XYZ 71.731 362.1721 null] >> endobj 762 0 obj << -/D [4338 0 R /XYZ 166.0799 328.862 null] +/D [4323 0 R /XYZ 166.0799 328.862 null] >> endobj -4359 0 obj << -/D [4338 0 R /XYZ 71.731 320.2245 null] +4344 0 obj << +/D [4323 0 R /XYZ 71.731 320.2245 null] >> endobj -4360 0 obj << -/D [4338 0 R /XYZ 344.894 309.933 null] +4345 0 obj << +/D [4323 0 R /XYZ 344.894 309.933 null] >> endobj -4361 0 obj << -/D [4338 0 R /XYZ 71.731 295.821 null] +4346 0 obj << +/D [4323 0 R /XYZ 71.731 295.821 null] >> endobj -4362 0 obj << -/D [4338 0 R /XYZ 155.2771 273.3701 null] +4347 0 obj << +/D [4323 0 R /XYZ 155.2771 273.3701 null] >> endobj -4363 0 obj << -/D [4338 0 R /XYZ 71.731 263.3079 null] +4348 0 obj << +/D [4323 0 R /XYZ 71.731 263.3079 null] >> endobj -4364 0 obj << -/D [4338 0 R /XYZ 154.7791 238.7997 null] +4349 0 obj << +/D [4323 0 R /XYZ 154.7791 238.7997 null] >> endobj -4365 0 obj << -/D [4338 0 R /XYZ 71.731 227.3975 null] +4350 0 obj << +/D [4323 0 R /XYZ 71.731 227.3975 null] >> endobj -4366 0 obj << -/D [4338 0 R /XYZ 426.1592 204.2293 null] +4351 0 obj << +/D [4323 0 R /XYZ 426.1592 204.2293 null] >> endobj -4367 0 obj << -/D [4338 0 R /XYZ 71.731 192.1099 null] +4352 0 obj << +/D [4323 0 R /XYZ 71.731 192.1099 null] >> endobj -4368 0 obj << -/D [4338 0 R /XYZ 103.2724 143.7561 null] +4353 0 obj << +/D [4323 0 R /XYZ 103.2724 143.7561 null] >> endobj -4369 0 obj << -/D [4338 0 R /XYZ 71.731 133.6939 null] +4354 0 obj << +/D [4323 0 R /XYZ 71.731 133.6939 null] >> endobj -4370 0 obj << -/D [4338 0 R /XYZ 425.1626 109.1858 null] +4355 0 obj << +/D [4323 0 R /XYZ 425.1626 109.1858 null] >> endobj -4337 0 obj << +4322 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4374 0 obj << +4359 0 obj << /Length 2553 /Filter /FlateDecode >> @@ -18683,220 +18709,215 @@ Y ����Vh>l��+!/Ę�M�E�/q�x��4?ȏ׳�}�`���(+��y��l�&䁮�wR��{k�! ��}z�(��h����^7p��v��/ *Q��_{R=��i��Np��,g� _7.��.�P1��+�[����2|-'�)^��7%k��%^�'.>��|�����T@|�n����ѨxӇ�ZnK��1�1+E�ۢp��=���x���71z��?��j�`i�wFwu.p!_��+��ԣ��� ��;�]��.�)��!����>&�%���-��/�����;JmOd��s���nDB!����G�n�@pT�������V��qjЧ,6���~"�*�F^�+�п �Sq=�5��xH$�އ ��.=VO�`[t<���:7命�qV���"��g'����pk��a���b��~��q��yx$=���+��yř�?�&��h ��I��~�@�BC��g������P�[��x�S�_t�W�(�2?ɟ��<�s��92o��y� ���� ��O��endstream endobj -4373 0 obj << +4358 0 obj << /Type /Page -/Contents 4374 0 R -/Resources 4372 0 R +/Contents 4359 0 R +/Resources 4357 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4371 0 R +/Parent 4356 0 R >> endobj -4375 0 obj << -/D [4373 0 R /XYZ 71.731 729.2652 null] +4360 0 obj << +/D [4358 0 R /XYZ 71.731 729.2652 null] >> endobj -4376 0 obj << -/D [4373 0 R /XYZ 71.731 718.3063 null] +4361 0 obj << +/D [4358 0 R /XYZ 71.731 718.3063 null] >> endobj 1860 0 obj << -/D [4373 0 R /XYZ 71.731 688.2541 null] +/D [4358 0 R /XYZ 71.731 688.2541 null] >> endobj 766 0 obj << -/D [4373 0 R /XYZ 201.5262 654.9439 null] +/D [4358 0 R /XYZ 201.5262 654.9439 null] >> endobj -4377 0 obj << -/D [4373 0 R /XYZ 71.731 646.4917 null] +4362 0 obj << +/D [4358 0 R /XYZ 71.731 646.4917 null] >> endobj -4378 0 obj << -/D [4373 0 R /XYZ 463.4687 623.0635 null] +4363 0 obj << +/D [4358 0 R /XYZ 463.4687 623.0635 null] >> endobj -4379 0 obj << -/D [4373 0 R /XYZ 71.731 608.9515 null] +4364 0 obj << +/D [4358 0 R /XYZ 71.731 608.9515 null] >> endobj -4380 0 obj << -/D [4373 0 R /XYZ 514.935 573.5492 null] +4365 0 obj << +/D [4358 0 R /XYZ 514.935 573.5492 null] >> endobj -4381 0 obj << -/D [4373 0 R /XYZ 71.731 561.4297 null] +4366 0 obj << +/D [4358 0 R /XYZ 71.731 561.4297 null] >> endobj -4382 0 obj << -/D [4373 0 R /XYZ 71.731 545.0078 null] +4367 0 obj << +/D [4358 0 R /XYZ 71.731 545.0078 null] >> endobj 1861 0 obj << -/D [4373 0 R /XYZ 71.731 505.2404 null] +/D [4358 0 R /XYZ 71.731 505.2404 null] >> endobj 770 0 obj << -/D [4373 0 R /XYZ 197.0146 468.0249 null] +/D [4358 0 R /XYZ 197.0146 468.0249 null] >> endobj -4383 0 obj << -/D [4373 0 R /XYZ 71.731 460.1059 null] +4368 0 obj << +/D [4358 0 R /XYZ 71.731 460.1059 null] >> endobj -4384 0 obj << -/D [4373 0 R /XYZ 103.9341 434.9489 null] +4369 0 obj << +/D [4358 0 R /XYZ 103.9341 434.9489 null] >> endobj -4385 0 obj << -/D [4373 0 R /XYZ 105.3508 421.9975 null] +4370 0 obj << +/D [4358 0 R /XYZ 105.3508 421.9975 null] >> endobj -4386 0 obj << -/D [4373 0 R /XYZ 71.731 414.8593 null] +4371 0 obj << +/D [4358 0 R /XYZ 71.731 414.8593 null] >> endobj -4387 0 obj << -/D [4373 0 R /XYZ 518.6154 404.0647 null] +4372 0 obj << +/D [4358 0 R /XYZ 518.6154 404.0647 null] >> endobj 1862 0 obj << -/D [4373 0 R /XYZ 71.731 383.9752 null] +/D [4358 0 R /XYZ 71.731 383.9752 null] >> endobj 774 0 obj << -/D [4373 0 R /XYZ 305.7426 346.7596 null] +/D [4358 0 R /XYZ 305.7426 346.7596 null] >> endobj -4388 0 obj << -/D [4373 0 R /XYZ 71.731 336.617 null] +4373 0 obj << +/D [4358 0 R /XYZ 71.731 336.617 null] >> endobj 1863 0 obj << -/D [4373 0 R /XYZ 71.731 293.5941 null] +/D [4358 0 R /XYZ 71.731 293.5941 null] >> endobj 778 0 obj << -/D [4373 0 R /XYZ 176.9732 256.3786 null] +/D [4358 0 R /XYZ 176.9732 256.3786 null] >> endobj -4389 0 obj << -/D [4373 0 R /XYZ 71.731 246.0136 null] +4374 0 obj << +/D [4358 0 R /XYZ 71.731 246.0136 null] >> endobj -4390 0 obj << -/D [4373 0 R /XYZ 71.731 229.1159 null] +4375 0 obj << +/D [4358 0 R /XYZ 71.731 229.1159 null] >> endobj -4391 0 obj << -/D [4373 0 R /XYZ 71.731 187.4371 null] +4376 0 obj << +/D [4358 0 R /XYZ 71.731 187.4371 null] >> endobj -4392 0 obj << -/D [4373 0 R /XYZ 71.731 187.4371 null] +4377 0 obj << +/D [4358 0 R /XYZ 71.731 187.4371 null] >> endobj -4372 0 obj << +4357 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F35 1752 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4395 0 obj << -/Length 2876 +4380 0 obj << +/Length 2871 /Filter /FlateDecode >> stream -xڍk�۶���U��x|?��t식8��Ծ4�4��#!�9�d2���w��H�����i,v�}��ʅ?o�xN���9~�����]`���g7Fz}���m�2'��xu�_�A�q����w��KWwſG�������]G�����@����߲���?w?�xsg�FA�d)P~R2���lI����7u�0H�ho��'!>K�m�d�o�h}|��ܼ����w�(�+�|��}��@@Q�_6^�f�ɀD�_D�W�4�%�TCի���x�j���}�mBw��a�6���c�of��>Ȏ��� �j����,HU��� �$6�D��IT�a�����*�Z}���V���҅!�̐�O�ш���T]��w�v��x~��K�$O�toLqz�4�J-]}�:���6h�J��R+)Q�T�$?N�jq�3w����� �9�F�mQ|¯���%���iM�j��������]e7�F0F:l��0l+��h�/b��"'K2P��:n��I|���F�*h�*���Hs$+ �y�~���@U�- ��]s"H� w��v͡�R2��uXl���ijPr?TS�G��쭎�0|v<��(��jN| -T�:q�}'��P+���� !��݇����W��,B���c+��4nO��`Y���Va8 ����{��h�F�ʼܳJ^l��V�Z�"!:�������*�����,�]y�UCq� /b��l�Q�� 2�Hg�d=�����Y�J���жM���%���~x�x��v��P���l -�$h����>�on��������3?�$�hξ��>w�C𤉷x���v��}�ӷoo���= .,�b�<8����!��>F,�+�Q��E��e��WGú����c�"a��xP<jn�"�g�ƒ�B�t��{~��d�dX�E3Pk���4�nZ�J�95Be]p�*4B�3�lix>�j�0w �G#�o���S�!d�ZGJ��(����P%���&!�i����V�&�d�5_"�,�� ��+-sH��4u���|��~�(�<e��;�9% �Pɔ8N����l� -f �� �d��p��h�X^���w\RxW��Q^�lV��.i�(U[�GB�8��(����ӹ`s�b2�LF�ќT [����gB�i.��RJ������`7$J�ǻ�C�V�_/Ą{ٟ��2q���j�]�sp�E�Qɿ�6�g�l�ل��IIZS�5�2�rN�NLj�Y��`�!K��m<KL�-�k�G -D0I�K�%t��J� -����8e� -���%m��n� �K@4���Rh�V=`��-�n�ޕP��X������Z' �LL9�<Ҥ�� v%Xg`��`�l�ih��o:���WL��5���;�C(w�b33�ŽV�D�=�8(&=J�0a�2���!S������v��~�ư�:�$�&GF`@ i�3S�v��mkjl9���u��!�b,B����b��h�w��kjx������ܹ��:� �i!,�3B\SC!������k�LB<Eusr���(<r���E�-�<�?r/����<��x��Q;��f`Y�3��iZ��R�/[���A�]�L]�89���aO�|`v��+dmN���]�z)�)?�_${�d�_�k}�Ф#�no��*�i���&��� ���:�p*�������ϰ��� -/�p�Jt�~�s���.������DE:�f�kD�xe�iA�<A��n��H����˥�9�'�������6A�������O���%S��uO�� ݉�d��=���뾱,Ӥ� R3�$�'�Q\�P,vx� ��֏�1C�hj�V�W�2LpSb -��VX�Ζ&�F��"h� +,��p�_5�?�(<��L��;�U������M��l���&�[��M���(�B����)17)o���$�/ Ǽ� 2'H��n�x�'����b������Ζ�S�LdZ��@c!&�X����'Ϡ� -W�ɯ��P#��m��)��=��x/�����;N��L5Z����8�>�MC}+i���_��|7@ -�j醰�<�}��概P��RU9|:�2�d^�>܌'w����;Q������P��,�a�k�9����T]�ʕ�FB�v[]�HS��Y��\�|h��R��(y���F�g���p(�5*Z�\�CkaC�!O�C����>[�Di��`�TM%.,�5��G`3��03��\�@����bd�SҢ �0����msj!�ԜM,�,�#"�B1��� -��&����~KC�T��kkΖ���#�����Oـ=(�)���}y�_=��وm��C3}%m̻�%��#�yP���| ~d�Aͣ�־*��Lp�/.��E�y�je�t -zV�;�y0�\Zd]Y�\YIS�6�,��,�I��OX�*~���qA�dN�zP���B�]���H�1�u9zE�C�Qc�i��q�.���Z̦gD����6U����k���&� E�Wu�FO{e�m�-�,����`���^�7ݤ.���=��>����P��28�D���K9~ u�5=�Yv�˷�+��_��3�����\�u -�u��@�~`���`���GP 2 ��9A��?�%�D�āgt)j -�����N_@RƆ�R*F���vv866�G�/W_ <(D�.HDl.�4}.I��WB��.#Éc��]�N�T�d��mƥ���JƋ��z,H��Qx��3p� L������ �)��������I�s��_�Pi���8{�}ւ�N���%Z��G�L�3�7�y՟��k�ӷ�0uR/Ξ��>¹�����zYf)�������R�endstream +xڍks�8�{���=c+z?z�s�f���ݽ4{���F�mmdI+J��~�HK���d&A�A�Ey+��U�9I�?~��q���+wu��^yL�c�ݘ������A�ʜ,����~��Q�J�I#/]��Z_E��n��#w9���*��o��˪�����ݭ�����Y�,��%��{n�J�� � Ѫ�+ʞ��"E� �u����5�r��OF"�q�0���Þ�=6EY��x�$9~y_=�?J:���W3F����i�M� ��vF���0뇎ᾙI�� ;�ފ�4�]3�fP�"UY�$ꂀ���x�=R'QUF�Ə��)U��� ��e[�ToX�m3#�<5�""χN�S�9tX��ޙ��y������F����\���Z:��u">�n<�ą��6r2��@H~��jq�3w���ϓ�y(��Eۢ�D_[�u�C�7��=V�^)k�?�2���jv��PŘ谉��J���>��.��,�����i��%�Yf�6ڎUA���WFZ2Ymw�ɻ�ﮇQT��I��w͉ Q7@�A�5�N�Lɴ���d��eM�A��PM����:V�� ��$�dv�9I�)05�ą{�;Y�����e��B?�~�����~EQ��"BI@�?��;�G�V��do�5j?Ya �R��n>��D�6��V�垵P�|�;Q�jH��+���I�+�w�V���h�����`2��;mB��e���dY�����Uz����Z<��X��tLH m�t�,^�����7_@f�o��5�y����W���n5�[��F.��� +`o;����Gs�������'!��Ij��9:�ɛ��_���G�Et�ep��Bf�}�X�W�( ��Û����/���Fo� ���Ƀ�Qs�<+57I-�HW����,NQH���@�9���&{� DN�PY��/!�:[>K�V�;���Q����Tx٧֑R=JE�!)T���q��4��N�^L�Z��5"�,�� ���[Z�> u���|���~�(��2i��<% �Pɜ8N����l�*f�F �d��h��h�XY����\Rx��Q^�lV��. S����#{��L��9���/�a�S����=^gU0�)���L(�*͵�XK�ޒ|� ������P����1�N�Rg�8ᛍ��j�]�s�*Ш�_H��K�,��L�lBFլ$���AF9'çcBՃ�,pY��� K���x���9���ȏ�`�� �bK�p7+I3�/��#��*Xb|������t�i[���F�B��4}`��] �m�U}AY��y�uҀ�Ĕ��#!%���+�<���;CU�MC[ ���׆O�1��"Bn����nR��,�wڴE�㠘�(��eV�@���*W/9����~�Έ�:�4�&GFa ��)n;��55����~�:a�f1��b�h�vc2�;Nr�%7�����z�\��s0�����%.���N����N�-k�O��\��q;6 +�\��A�DtK;���OƁ܋G�=p}��@[<��Q;�����.gD�Z����_����A�\��. +OD�r�y��B�>�Ge� +Y[��:4�P�^�b*����)Y��Zo 4���k���Izh��I5D�x�(�"�N���o�@�-.�=liD����\��_�\�B%����d�-q���!,z����l��5/�'���m�)qهb�T=G�d�����1��&��� "�����d.��z��ݵ�;1�,3w���u�o��4)p��̌)I�m�:�^Gmü��co,(����0 nJLAs� +����m�*)��ܰ�t�M�i�eQ����Ӥ��\9�s_u�˹jܿ�T�&Y/Y¼��|��Bn �zYp�s��lO���p�{� s���b����V����F��g��`Y?��D��q!P�,���;�<@��@��z�k�$�(�G�x�.Q����'t�B<�� +�`�Ѻ�����#��!�44Ч�ƙސ��}��4�`P��N;�c߷���*E�(U�û�/�h�������� +�n'?�)��xrǦp����l q ���q��ԔĦ)�Ч˜ɨ��֟�_%P�|�t}�F�;���j���K���)-/�l��\3Ex_��r��-Q|��(廊[S�3���|z�r�s��������o�+��u�� �"5���j�m��.��usj!z`�ái��<�/���G�";�� +�²��S��/-�������#d���d�Hi��R�~&�/O5����Fm[����hc�2�Q��-� +�_�kp��iޑ��!g�~dq�o:f�S�۹9�X�O�w�lr�u1�r1%M�䲰[����5]�f�:a���A�^��5h�9��AA�f��u����T��/��?�E���A�(r�kU0�^PႷ��T��u�K2,#>�3�a`���w"��l��C�-�zh��t�R0�ކ����0�Ba0:�0�@4Rq�����$�m�t�G��t~�o��kk?���C�)��9'�������(�Nɉ�^j��$��$G�~�q:�>�@ߨ�<�KQ�a�^��e�2CHIZJ��h�����i���d��F�\}<@p��l���t��`�� $[��I����2�1�X�Sw�;� ~������G�d�����B�K���a�������vC���O:����}�Y�sΗ_��R���8{�}��6N���Z��G�L�=�6�o�z?�ŗ��o�a�^�=�}Ds��:�S����r'�����]MVendstream endobj -4394 0 obj << +4379 0 obj << /Type /Page -/Contents 4395 0 R -/Resources 4393 0 R +/Contents 4380 0 R +/Resources 4378 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4371 0 R -/Annots [ 4400 0 R ] +/Parent 4356 0 R +/Annots [ 4385 0 R ] >> endobj -4400 0 obj << +4385 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [259.4752 492.9368 311.2805 503.8407] /Subtype /Link /A << /S /GoTo /D (userpreferences) >> >> endobj -4396 0 obj << -/D [4394 0 R /XYZ 71.731 729.2652 null] +4381 0 obj << +/D [4379 0 R /XYZ 71.731 729.2652 null] >> endobj -4397 0 obj << -/D [4394 0 R /XYZ 71.731 690.0824 null] +4382 0 obj << +/D [4379 0 R /XYZ 71.731 690.0824 null] >> endobj 1864 0 obj << -/D [4394 0 R /XYZ 71.731 631.1385 null] +/D [4379 0 R /XYZ 71.731 631.1385 null] >> endobj 782 0 obj << -/D [4394 0 R /XYZ 353.5731 593.923 null] +/D [4379 0 R /XYZ 353.5731 593.923 null] >> endobj -4398 0 obj << -/D [4394 0 R /XYZ 71.731 583.558 null] +4383 0 obj << +/D [4379 0 R /XYZ 71.731 583.558 null] >> endobj -4399 0 obj << -/D [4394 0 R /XYZ 86.3959 496.0898 null] +4384 0 obj << +/D [4379 0 R /XYZ 86.3959 496.0898 null] >> endobj -4401 0 obj << -/D [4394 0 R /XYZ 71.731 488.9517 null] +4386 0 obj << +/D [4379 0 R /XYZ 71.731 488.9517 null] >> endobj -4402 0 obj << -/D [4394 0 R /XYZ 512.7873 465.2057 null] +4387 0 obj << +/D [4379 0 R /XYZ 512.7873 465.2057 null] >> endobj -4403 0 obj << -/D [4394 0 R /XYZ 112.803 452.2542 null] +4388 0 obj << +/D [4379 0 R /XYZ 112.803 452.2542 null] >> endobj -4404 0 obj << -/D [4394 0 R /XYZ 202.5552 452.2542 null] +4389 0 obj << +/D [4379 0 R /XYZ 202.5552 452.2542 null] >> endobj 1865 0 obj << -/D [4394 0 R /XYZ 71.731 409.2506 null] +/D [4379 0 R /XYZ 71.731 409.2506 null] >> endobj 786 0 obj << -/D [4394 0 R /XYZ 198.9687 366.1531 null] +/D [4379 0 R /XYZ 198.9687 366.1531 null] >> endobj 1866 0 obj << -/D [4394 0 R /XYZ 71.731 362.3228 null] +/D [4379 0 R /XYZ 71.731 362.3228 null] >> endobj 790 0 obj << -/D [4394 0 R /XYZ 256.7516 326.7807 null] +/D [4379 0 R /XYZ 256.7516 326.7807 null] >> endobj -4405 0 obj << -/D [4394 0 R /XYZ 71.731 316.4157 null] +4390 0 obj << +/D [4379 0 R /XYZ 71.731 316.4157 null] >> endobj -4406 0 obj << -/D [4394 0 R /XYZ 434.2261 306.6562 null] +4391 0 obj << +/D [4379 0 R /XYZ 434.2261 306.6562 null] >> endobj -4407 0 obj << -/D [4394 0 R /XYZ 71.731 247.7123 null] +4392 0 obj << +/D [4379 0 R /XYZ 71.731 247.7123 null] >> endobj -4408 0 obj << -/D [4394 0 R /XYZ 71.731 234.7609 null] +4393 0 obj << +/D [4379 0 R /XYZ 71.731 234.7609 null] >> endobj -4409 0 obj << -/D [4394 0 R /XYZ 71.731 229.7796 null] +4394 0 obj << +/D [4379 0 R /XYZ 71.731 229.7796 null] >> endobj -4410 0 obj << -/D [4394 0 R /XYZ 89.6638 209.0223 null] +4395 0 obj << +/D [4379 0 R /XYZ 89.6638 209.0223 null] >> endobj -4411 0 obj << -/D [4394 0 R /XYZ 128.2622 209.0223 null] +4396 0 obj << +/D [4379 0 R /XYZ 128.2622 209.0223 null] >> endobj -4412 0 obj << -/D [4394 0 R /XYZ 328.5279 209.0223 null] +4397 0 obj << +/D [4379 0 R /XYZ 328.5279 209.0223 null] >> endobj -4413 0 obj << -/D [4394 0 R /XYZ 71.731 193.9141 null] +4398 0 obj << +/D [4379 0 R /XYZ 71.731 193.9141 null] >> endobj -4414 0 obj << -/D [4394 0 R /XYZ 71.731 178.9701 null] +4399 0 obj << +/D [4379 0 R /XYZ 71.731 178.9701 null] >> endobj -4415 0 obj << -/D [4394 0 R /XYZ 109.5891 157.8144 null] +4400 0 obj << +/D [4379 0 R /XYZ 109.5891 157.8144 null] >> endobj -4416 0 obj << -/D [4394 0 R /XYZ 76.7123 116.9675 null] +4401 0 obj << +/D [4379 0 R /XYZ 76.7123 116.9675 null] >> endobj -4417 0 obj << -/D [4394 0 R /XYZ 89.6638 99.0348 null] +4402 0 obj << +/D [4379 0 R /XYZ 89.6638 99.0348 null] >> endobj -4418 0 obj << -/D [4394 0 R /XYZ 71.731 96.878 null] +4403 0 obj << +/D [4379 0 R /XYZ 71.731 96.878 null] >> endobj -4393 0 obj << +4378 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4421 0 obj << +4406 0 obj << /Length 2912 /Filter /FlateDecode >> @@ -18916,87 +18937,87 @@ wg ����m#��2��� !�ݔc���V�����ǀ�=��f��N���{��������ڜ�뿉�,�_�$�Ox���g�.Ch4�0� ��?HOK�U�)&B�iޖ��Ό�V�8��E�E��Hˠ���͟L�p^�b"�� ��j��j���O!V�E� endstream endobj -4420 0 obj << +4405 0 obj << /Type /Page -/Contents 4421 0 R -/Resources 4419 0 R +/Contents 4406 0 R +/Resources 4404 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4371 0 R +/Parent 4356 0 R >> endobj -4422 0 obj << -/D [4420 0 R /XYZ 71.731 729.2652 null] +4407 0 obj << +/D [4405 0 R /XYZ 71.731 729.2652 null] >> endobj -4423 0 obj << -/D [4420 0 R /XYZ 89.6638 708.3437 null] +4408 0 obj << +/D [4405 0 R /XYZ 89.6638 708.3437 null] >> endobj -4424 0 obj << -/D [4420 0 R /XYZ 259.764 695.3923 null] +4409 0 obj << +/D [4405 0 R /XYZ 259.764 695.3923 null] >> endobj -4425 0 obj << -/D [4420 0 R /XYZ 71.731 654.3811 null] +4410 0 obj << +/D [4405 0 R /XYZ 71.731 654.3811 null] >> endobj -4426 0 obj << -/D [4420 0 R /XYZ 89.6638 638.6052 null] +4411 0 obj << +/D [4405 0 R /XYZ 89.6638 638.6052 null] >> endobj -4427 0 obj << -/D [4420 0 R /XYZ 407.2684 638.6052 null] +4412 0 obj << +/D [4405 0 R /XYZ 407.2684 638.6052 null] >> endobj -4428 0 obj << -/D [4420 0 R /XYZ 71.731 571.6912 null] +4413 0 obj << +/D [4405 0 R /XYZ 71.731 571.6912 null] >> endobj -4429 0 obj << -/D [4420 0 R /XYZ 71.731 556.7473 null] +4414 0 obj << +/D [4405 0 R /XYZ 71.731 556.7473 null] >> endobj -4430 0 obj << -/D [4420 0 R /XYZ 76.7123 494.7447 null] +4415 0 obj << +/D [4405 0 R /XYZ 76.7123 494.7447 null] >> endobj -4431 0 obj << -/D [4420 0 R /XYZ 89.6638 476.8119 null] +4416 0 obj << +/D [4405 0 R /XYZ 89.6638 476.8119 null] >> endobj -4432 0 obj << -/D [4420 0 R /XYZ 71.731 474.6551 null] +4417 0 obj << +/D [4405 0 R /XYZ 71.731 474.6551 null] >> endobj -4433 0 obj << -/D [4420 0 R /XYZ 89.6638 458.8792 null] +4418 0 obj << +/D [4405 0 R /XYZ 89.6638 458.8792 null] >> endobj -4434 0 obj << -/D [4420 0 R /XYZ 71.731 430.8195 null] +4419 0 obj << +/D [4405 0 R /XYZ 71.731 430.8195 null] >> endobj -4435 0 obj << -/D [4420 0 R /XYZ 89.6638 415.0436 null] +4420 0 obj << +/D [4405 0 R /XYZ 89.6638 415.0436 null] >> endobj -4436 0 obj << -/D [4420 0 R /XYZ 220.2822 363.2378 null] +4421 0 obj << +/D [4405 0 R /XYZ 220.2822 363.2378 null] >> endobj -4437 0 obj << -/D [4420 0 R /XYZ 71.731 356.0997 null] +4422 0 obj << +/D [4405 0 R /XYZ 71.731 356.0997 null] >> endobj -4438 0 obj << -/D [4420 0 R /XYZ 71.731 327.2728 null] +4423 0 obj << +/D [4405 0 R /XYZ 71.731 327.2728 null] >> endobj 1867 0 obj << -/D [4420 0 R /XYZ 71.731 294.3313 null] +/D [4405 0 R /XYZ 71.731 294.3313 null] >> endobj 794 0 obj << -/D [4420 0 R /XYZ 263.867 257.1158 null] +/D [4405 0 R /XYZ 263.867 257.1158 null] >> endobj -4439 0 obj << -/D [4420 0 R /XYZ 71.731 246.7508 null] +4424 0 obj << +/D [4405 0 R /XYZ 71.731 246.7508 null] >> endobj -4440 0 obj << -/D [4420 0 R /XYZ 300.7046 211.0884 null] +4425 0 obj << +/D [4405 0 R /XYZ 300.7046 211.0884 null] >> endobj -4441 0 obj << -/D [4420 0 R /XYZ 96.7348 198.137 null] +4426 0 obj << +/D [4405 0 R /XYZ 96.7348 198.137 null] >> endobj 1868 0 obj << -/D [4420 0 R /XYZ 71.731 170.142 null] +/D [4405 0 R /XYZ 71.731 170.142 null] >> endobj -4419 0 obj << +4404 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4444 0 obj << +4429 0 obj << /Length 2459 /Filter /FlateDecode >> @@ -19013,84 +19034,84 @@ xڝ] �gR7Z;S!��DeN�U H�b��������O���W(���+�]^`O�f���e���v`�Y�+���s�;�����G�]F��K��z]�Ԧyr�c��J���/��J���̘Oo"Kd��߶�N������I�;\��-�����ӆ=}��Y�?81��6s�<�}���Ͻ��bv���n�s����_0��6�ޝN&�,��%F��Q%�����xh(ʡ�'�� �G�Y��[��an��~39��Ɠ���k���ݵ�t߯;�v����3��|� ��N81j���!̬ ��JR8ϱq�֦�Va�sqj��q��Ý�Sg��e5��} 4��˘���%�w;�LI:�x��$�v�&��,�3/U�d�23ɹ�ޮ�P���ڣ]X��Ԋ&QP��@��� �m��)t!T��!���Qآ�B,!]Cu�D [�G���w��'��6j뉸ӎ�>��-�������N ��l�jK��5�,q��Cz�3��{e\�dhVi��O���@�k��(+k2v���/��g����b�#��./���R �|����"Ƹ�)�u|�2�T�7�1������/?�S�v��R��ߣ�xn��9���h�9��hD�endstream endobj -4443 0 obj << +4428 0 obj << /Type /Page -/Contents 4444 0 R -/Resources 4442 0 R +/Contents 4429 0 R +/Resources 4427 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4371 0 R +/Parent 4356 0 R >> endobj -4445 0 obj << -/D [4443 0 R /XYZ 71.731 729.2652 null] +4430 0 obj << +/D [4428 0 R /XYZ 71.731 729.2652 null] >> endobj 798 0 obj << -/D [4443 0 R /XYZ 209.3152 706.1179 null] +/D [4428 0 R /XYZ 209.3152 706.1179 null] >> endobj -4446 0 obj << -/D [4443 0 R /XYZ 71.731 697.2951 null] +4431 0 obj << +/D [4428 0 R /XYZ 71.731 697.2951 null] >> endobj -4447 0 obj << -/D [4443 0 R /XYZ 71.731 653.575 null] +4432 0 obj << +/D [4428 0 R /XYZ 71.731 653.575 null] >> endobj -4448 0 obj << -/D [4443 0 R /XYZ 71.731 620.6335 null] +4433 0 obj << +/D [4428 0 R /XYZ 71.731 620.6335 null] >> endobj -4449 0 obj << -/D [4443 0 R /XYZ 71.731 583.9361 null] +4434 0 obj << +/D [4428 0 R /XYZ 71.731 583.9361 null] >> endobj -4450 0 obj << -/D [4443 0 R /XYZ 71.731 577.574 null] +4435 0 obj << +/D [4428 0 R /XYZ 71.731 577.574 null] >> endobj -4451 0 obj << -/D [4443 0 R /XYZ 436.4724 553.0519 null] +4436 0 obj << +/D [4428 0 R /XYZ 436.4724 553.0519 null] >> endobj -4452 0 obj << -/D [4443 0 R /XYZ 169.3177 527.149 null] +4437 0 obj << +/D [4428 0 R /XYZ 169.3177 527.149 null] >> endobj -4453 0 obj << -/D [4443 0 R /XYZ 176.5876 501.2462 null] +4438 0 obj << +/D [4428 0 R /XYZ 176.5876 501.2462 null] >> endobj -4454 0 obj << -/D [4443 0 R /XYZ 71.731 483.2139 null] +4439 0 obj << +/D [4428 0 R /XYZ 71.731 483.2139 null] >> endobj -4455 0 obj << -/D [4443 0 R /XYZ 238.3949 470.362 null] +4440 0 obj << +/D [4428 0 R /XYZ 238.3949 470.362 null] >> endobj 1869 0 obj << -/D [4443 0 R /XYZ 71.731 429.3509 null] +/D [4428 0 R /XYZ 71.731 429.3509 null] >> endobj 802 0 obj << -/D [4443 0 R /XYZ 200.1276 392.1353 null] +/D [4428 0 R /XYZ 200.1276 392.1353 null] >> endobj -4456 0 obj << -/D [4443 0 R /XYZ 71.731 384.783 null] +4441 0 obj << +/D [4428 0 R /XYZ 71.731 384.783 null] >> endobj -4457 0 obj << -/D [4443 0 R /XYZ 71.731 338.9698 null] +4442 0 obj << +/D [4428 0 R /XYZ 71.731 338.9698 null] >> endobj -4458 0 obj << -/D [4443 0 R /XYZ 71.731 310.2424 null] +4443 0 obj << +/D [4428 0 R /XYZ 71.731 310.2424 null] >> endobj -4459 0 obj << -/D [4443 0 R /XYZ 71.731 310.2424 null] +4444 0 obj << +/D [4428 0 R /XYZ 71.731 310.2424 null] >> endobj 1870 0 obj << -/D [4443 0 R /XYZ 71.731 232.3802 null] +/D [4428 0 R /XYZ 71.731 232.3802 null] >> endobj 806 0 obj << -/D [4443 0 R /XYZ 299.6652 197.9095 null] +/D [4428 0 R /XYZ 299.6652 197.9095 null] >> endobj -4460 0 obj << -/D [4443 0 R /XYZ 71.731 189.272 null] +4445 0 obj << +/D [4428 0 R /XYZ 71.731 189.272 null] >> endobj 1871 0 obj << -/D [4443 0 R /XYZ 71.731 147.9967 null] +/D [4428 0 R /XYZ 71.731 147.9967 null] >> endobj -4442 0 obj << +4427 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4463 0 obj << +4448 0 obj << /Length 1906 /Filter /FlateDecode >> @@ -19110,90 +19131,90 @@ y rrcF.��M ��<=�!/�ц�!&��N3t6�0~Q���(&>i�>u�qm#:z��paa���Gځ��Evx�L��uJ`՜�֟~b�o�I�g�*��_���_e~湽IY#e�~ѽ �_ӧ�Rendstream endobj -4462 0 obj << +4447 0 obj << /Type /Page -/Contents 4463 0 R -/Resources 4461 0 R +/Contents 4448 0 R +/Resources 4446 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4371 0 R +/Parent 4356 0 R >> endobj -4464 0 obj << -/D [4462 0 R /XYZ 71.731 729.2652 null] +4449 0 obj << +/D [4447 0 R /XYZ 71.731 729.2652 null] >> endobj -4465 0 obj << -/D [4462 0 R /XYZ 71.731 741.2204 null] +4450 0 obj << +/D [4447 0 R /XYZ 71.731 741.2204 null] >> endobj 810 0 obj << -/D [4462 0 R /XYZ 364.5094 708.3437 null] +/D [4447 0 R /XYZ 364.5094 708.3437 null] >> endobj -4466 0 obj << -/D [4462 0 R /XYZ 71.731 699.7062 null] +4451 0 obj << +/D [4447 0 R /XYZ 71.731 699.7062 null] >> endobj 1872 0 obj << -/D [4462 0 R /XYZ 71.731 656.3737 null] +/D [4447 0 R /XYZ 71.731 656.3737 null] >> endobj 814 0 obj << -/D [4462 0 R /XYZ 295.6245 623.0635 null] +/D [4447 0 R /XYZ 295.6245 623.0635 null] >> endobj -4467 0 obj << -/D [4462 0 R /XYZ 71.731 614.426 null] +4452 0 obj << +/D [4447 0 R /XYZ 71.731 614.426 null] >> endobj 1873 0 obj << -/D [4462 0 R /XYZ 71.731 558.142 null] +/D [4447 0 R /XYZ 71.731 558.142 null] >> endobj 818 0 obj << -/D [4462 0 R /XYZ 378.198 524.8319 null] +/D [4447 0 R /XYZ 378.198 524.8319 null] >> endobj -4468 0 obj << -/D [4462 0 R /XYZ 71.731 516.1944 null] +4453 0 obj << +/D [4447 0 R /XYZ 71.731 516.1944 null] >> endobj 1874 0 obj << -/D [4462 0 R /XYZ 71.731 472.8618 null] +/D [4447 0 R /XYZ 71.731 472.8618 null] >> endobj 822 0 obj << -/D [4462 0 R /XYZ 288.5111 439.5516 null] +/D [4447 0 R /XYZ 288.5111 439.5516 null] >> endobj -4469 0 obj << -/D [4462 0 R /XYZ 71.731 430.9141 null] +4454 0 obj << +/D [4447 0 R /XYZ 71.731 430.9141 null] >> endobj 1875 0 obj << -/D [4462 0 R /XYZ 71.731 389.6389 null] +/D [4447 0 R /XYZ 71.731 389.6389 null] >> endobj 826 0 obj << -/D [4462 0 R /XYZ 259.0781 354.2714 null] +/D [4447 0 R /XYZ 259.0781 354.2714 null] >> endobj -4470 0 obj << -/D [4462 0 R /XYZ 71.731 345.6339 null] +4455 0 obj << +/D [4447 0 R /XYZ 71.731 345.6339 null] >> endobj -4471 0 obj << -/D [4462 0 R /XYZ 71.731 304.3587 null] +4456 0 obj << +/D [4447 0 R /XYZ 71.731 304.3587 null] >> endobj 1876 0 obj << -/D [4462 0 R /XYZ 71.731 271.4172 null] +/D [4447 0 R /XYZ 71.731 271.4172 null] >> endobj 830 0 obj << -/D [4462 0 R /XYZ 240.4757 238.1071 null] +/D [4447 0 R /XYZ 240.4757 238.1071 null] >> endobj -4472 0 obj << -/D [4462 0 R /XYZ 71.731 229.4696 null] +4457 0 obj << +/D [4447 0 R /XYZ 71.731 229.4696 null] >> endobj 1877 0 obj << -/D [4462 0 R /XYZ 71.731 179.1632 null] +/D [4447 0 R /XYZ 71.731 179.1632 null] >> endobj 834 0 obj << -/D [4462 0 R /XYZ 223.8447 136.0657 null] +/D [4447 0 R /XYZ 223.8447 136.0657 null] >> endobj -4473 0 obj << -/D [4462 0 R /XYZ 71.731 123.8945 null] +4458 0 obj << +/D [4447 0 R /XYZ 71.731 123.8945 null] >> endobj 1878 0 obj << -/D [4462 0 R /XYZ 71.731 112.3497 null] +/D [4447 0 R /XYZ 71.731 112.3497 null] >> endobj -4461 0 obj << +4446 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4476 0 obj << +4461 0 obj << /Length 1931 /Filter /FlateDecode >> @@ -19205,78 +19226,78 @@ xڕk ��(�',�N�����V��p �=����W ���-�)�pó7�7%&>��{�Iy�OqA�^֔4e՝KN~�^�b�d���}��!�w��X��X��Vb!p-�$�%�-��� ��a�FGh�X"� Q��O�2J�e� #�^��jZ�%Pe@hr����AԚ��q���5 )�t�r�W*̤8iF���\ة2pCg��JNM���~љ������0�m���D��!�"�ʸy��0)�*�D >f�ALH�;V���TCg.>Ɣu�0��+`�9Ⱦ�Z��w�(X�� �*sC�r<���tӋ-y;�����3�#��_����d���l���&4O�K���Zf�}����\Ypendstream endobj -4475 0 obj << +4460 0 obj << /Type /Page -/Contents 4476 0 R -/Resources 4474 0 R +/Contents 4461 0 R +/Resources 4459 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4489 0 R +/Parent 4474 0 R >> endobj -4477 0 obj << -/D [4475 0 R /XYZ 71.731 729.2652 null] +4462 0 obj << +/D [4460 0 R /XYZ 71.731 729.2652 null] >> endobj -4478 0 obj << -/D [4475 0 R /XYZ 71.731 741.2204 null] +4463 0 obj << +/D [4460 0 R /XYZ 71.731 741.2204 null] >> endobj 838 0 obj << -/D [4475 0 R /XYZ 223.5692 707.8408 null] +/D [4460 0 R /XYZ 223.5692 707.8408 null] >> endobj -4479 0 obj << -/D [4475 0 R /XYZ 71.731 700.4885 null] +4464 0 obj << +/D [4460 0 R /XYZ 71.731 700.4885 null] >> endobj -4480 0 obj << -/D [4475 0 R /XYZ 282.4959 661.8134 null] +4465 0 obj << +/D [4460 0 R /XYZ 282.4959 661.8134 null] >> endobj -4481 0 obj << -/D [4475 0 R /XYZ 71.731 641.5893 null] +4466 0 obj << +/D [4460 0 R /XYZ 71.731 641.5893 null] >> endobj -4482 0 obj << -/D [4475 0 R /XYZ 71.731 553.7945 null] +4467 0 obj << +/D [4460 0 R /XYZ 71.731 553.7945 null] >> endobj 1879 0 obj << -/D [4475 0 R /XYZ 71.731 522.9103 null] +/D [4460 0 R /XYZ 71.731 522.9103 null] >> endobj 842 0 obj << -/D [4475 0 R /XYZ 185.7387 483.6375 null] +/D [4460 0 R /XYZ 185.7387 483.6375 null] >> endobj -4483 0 obj << -/D [4475 0 R /XYZ 71.731 476.2852 null] +4468 0 obj << +/D [4460 0 R /XYZ 71.731 476.2852 null] >> endobj -4484 0 obj << -/D [4475 0 R /XYZ 71.731 404.5691 null] +4469 0 obj << +/D [4460 0 R /XYZ 71.731 404.5691 null] >> endobj 1880 0 obj << -/D [4475 0 R /XYZ 71.731 375.7422 null] +/D [4460 0 R /XYZ 71.731 375.7422 null] >> endobj 846 0 obj << -/D [4475 0 R /XYZ 331.4799 336.4694 null] +/D [4460 0 R /XYZ 331.4799 336.4694 null] >> endobj -4485 0 obj << -/D [4475 0 R /XYZ 71.731 326.1044 null] +4470 0 obj << +/D [4460 0 R /XYZ 71.731 326.1044 null] >> endobj 1881 0 obj << -/D [4475 0 R /XYZ 71.731 296.2553 null] +/D [4460 0 R /XYZ 71.731 296.2553 null] >> endobj 850 0 obj << -/D [4475 0 R /XYZ 229.9103 259.0397 null] +/D [4460 0 R /XYZ 229.9103 259.0397 null] >> endobj -4486 0 obj << -/D [4475 0 R /XYZ 71.731 248.897 null] +4471 0 obj << +/D [4460 0 R /XYZ 71.731 248.897 null] >> endobj -4487 0 obj << -/D [4475 0 R /XYZ 101.1818 238.9152 null] +4472 0 obj << +/D [4460 0 R /XYZ 101.1818 238.9152 null] >> endobj -4488 0 obj << -/D [4475 0 R /XYZ 71.731 220.8829 null] +4473 0 obj << +/D [4460 0 R /XYZ 71.731 220.8829 null] >> endobj 1882 0 obj << -/D [4475 0 R /XYZ 71.731 165.0274 null] +/D [4460 0 R /XYZ 71.731 165.0274 null] >> endobj -4474 0 obj << +4459 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4492 0 obj << +4477 0 obj << /Length 2743 /Filter /FlateDecode >> @@ -19296,141 +19317,141 @@ p/ ����g�nc2����@bQ�9���YK-�$���I7�����d[�`T���l4��$[�u���'J6{22!��4�4���T�t�&4������� �S���w�-J�;��Y) C��W��Rj���R tUJ-[�AJ-4X��$�Ե�t���<f)��3��]=,?��C���5C!j�\��L��W���^�e�7\����D�^� ��iYnA�T CyV/�����u@��]�S�X��" ȇ�U+冹 ���e�RԈ���hl�p���)��F�A��r�)g�̖,�Sa�q^�Ne�F";R\��lD/6� ��Ms'��tNt�u��n.�� tVtz�k�c����hx-:#"��"�i��V���:����^a?<�:���+� lD�,4_�!`�&��F��r[���r���W���,�"�Y��������:�< t�y�-��< �D�j=��Kui��6B�`�D)+N|�@cAK�X�5L1���`���J�q��K�'�a�O ��m���Ԑ&����3���B���ol����:�|Z�?9�/%ǐ��j��ī'����hʼn����7>�hi���e�� �e��"Z&�qޙ��s.��T�M��7q�8/k�'S��S�� !ap�W�Ѩ���)3p�����vb)R��C�M�K��=����04���|*e��oLk�T?ե��*+�f��-��rz���e�4��˥�*��-� �,ri�8��3]V���{'�"�Y�+2�d�@r�\�Zv����Q�����.�V�]�+Ig���0��k�8��ߪ���]�FH��u�MJ�����k� Ҭ����V;�ޠ����^-�ta�z�B��Poj�#8ѩ�{��~T�h�L��LS��M�Q �9��D'R�2<����BT��"�Q�4�:Ȏɥ�S5���7�,Z[Ы�j�Ҭ����N�Wy�N�w*;��ylO}M"U%=�k[_h4��Xgt8q����`�L�/}�t�g��W113.�ü������^ަG��p�O#��J�Ҵ� �l���#��c~4%�Vk�pNò�s�yqX�+?Y_~p`^� (R7���DŽ�Nӳ��l�_��Pendstream endobj -4491 0 obj << +4476 0 obj << /Type /Page -/Contents 4492 0 R -/Resources 4490 0 R +/Contents 4477 0 R +/Resources 4475 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4489 0 R +/Parent 4474 0 R >> endobj -4493 0 obj << -/D [4491 0 R /XYZ 71.731 729.2652 null] +4478 0 obj << +/D [4476 0 R /XYZ 71.731 729.2652 null] >> endobj 854 0 obj << -/D [4491 0 R /XYZ 319.3549 705.7477 null] +/D [4476 0 R /XYZ 319.3549 705.7477 null] >> endobj -4494 0 obj << -/D [4491 0 R /XYZ 71.731 693.3097 null] +4479 0 obj << +/D [4476 0 R /XYZ 71.731 693.3097 null] >> endobj -4495 0 obj << -/D [4491 0 R /XYZ 270.8616 684.1886 null] +4480 0 obj << +/D [4476 0 R /XYZ 270.8616 684.1886 null] >> endobj -4496 0 obj << -/D [4491 0 R /XYZ 341.5855 640.3529 null] +4481 0 obj << +/D [4476 0 R /XYZ 341.5855 640.3529 null] >> endobj -4497 0 obj << -/D [4491 0 R /XYZ 89.9163 627.4015 null] +4482 0 obj << +/D [4476 0 R /XYZ 89.9163 627.4015 null] >> endobj -4498 0 obj << -/D [4491 0 R /XYZ 71.731 607.3119 null] +4483 0 obj << +/D [4476 0 R /XYZ 71.731 607.3119 null] >> endobj 1883 0 obj << -/D [4491 0 R /XYZ 71.731 576.4277 null] +/D [4476 0 R /XYZ 71.731 576.4277 null] >> endobj 858 0 obj << -/D [4491 0 R /XYZ 256.2435 533.3303 null] +/D [4476 0 R /XYZ 256.2435 533.3303 null] >> endobj -4499 0 obj << -/D [4491 0 R /XYZ 71.731 524.5074 null] +4484 0 obj << +/D [4476 0 R /XYZ 71.731 524.5074 null] >> endobj 1884 0 obj << -/D [4491 0 R /XYZ 71.731 496.6628 null] +/D [4476 0 R /XYZ 71.731 496.6628 null] >> endobj 862 0 obj << -/D [4491 0 R /XYZ 258.989 459.4473 null] +/D [4476 0 R /XYZ 258.989 459.4473 null] >> endobj -4500 0 obj << -/D [4491 0 R /XYZ 71.731 452.095 null] +4485 0 obj << +/D [4476 0 R /XYZ 71.731 452.095 null] >> endobj -4501 0 obj << -/D [4491 0 R /XYZ 71.731 437.166 null] +4486 0 obj << +/D [4476 0 R /XYZ 71.731 437.166 null] >> endobj -4502 0 obj << -/D [4491 0 R /XYZ 71.731 432.1846 null] +4487 0 obj << +/D [4476 0 R /XYZ 71.731 432.1846 null] >> endobj -4503 0 obj << -/D [4491 0 R /XYZ 81.6937 411.4274 null] +4488 0 obj << +/D [4476 0 R /XYZ 81.6937 411.4274 null] >> endobj -4504 0 obj << -/D [4491 0 R /XYZ 71.731 409.2706 null] +4489 0 obj << +/D [4476 0 R /XYZ 71.731 409.2706 null] >> endobj -4505 0 obj << -/D [4491 0 R /XYZ 81.6937 398.476 null] +4490 0 obj << +/D [4476 0 R /XYZ 81.6937 398.476 null] >> endobj -4506 0 obj << -/D [4491 0 R /XYZ 71.731 383.3677 null] +4491 0 obj << +/D [4476 0 R /XYZ 71.731 383.3677 null] >> endobj -4507 0 obj << -/D [4491 0 R /XYZ 81.6937 372.5731 null] +4492 0 obj << +/D [4476 0 R /XYZ 81.6937 372.5731 null] >> endobj -4508 0 obj << -/D [4491 0 R /XYZ 71.731 370.4163 null] +4493 0 obj << +/D [4476 0 R /XYZ 71.731 370.4163 null] >> endobj -4509 0 obj << -/D [4491 0 R /XYZ 81.6937 359.6217 null] +4494 0 obj << +/D [4476 0 R /XYZ 81.6937 359.6217 null] >> endobj -4510 0 obj << -/D [4491 0 R /XYZ 71.731 344.5134 null] +4495 0 obj << +/D [4476 0 R /XYZ 71.731 344.5134 null] >> endobj -4511 0 obj << -/D [4491 0 R /XYZ 81.6937 333.7188 null] +4496 0 obj << +/D [4476 0 R /XYZ 81.6937 333.7188 null] >> endobj -4512 0 obj << -/D [4491 0 R /XYZ 71.731 331.562 null] +4497 0 obj << +/D [4476 0 R /XYZ 71.731 331.562 null] >> endobj -4513 0 obj << -/D [4491 0 R /XYZ 81.6937 320.7674 null] +4498 0 obj << +/D [4476 0 R /XYZ 81.6937 320.7674 null] >> endobj -4514 0 obj << -/D [4491 0 R /XYZ 71.731 305.6591 null] +4499 0 obj << +/D [4476 0 R /XYZ 71.731 305.6591 null] >> endobj -4515 0 obj << -/D [4491 0 R /XYZ 81.6937 294.8645 null] +4500 0 obj << +/D [4476 0 R /XYZ 81.6937 294.8645 null] >> endobj -4516 0 obj << -/D [4491 0 R /XYZ 71.731 292.7077 null] +4501 0 obj << +/D [4476 0 R /XYZ 71.731 292.7077 null] >> endobj -4517 0 obj << -/D [4491 0 R /XYZ 81.6937 281.9131 null] +4502 0 obj << +/D [4476 0 R /XYZ 81.6937 281.9131 null] >> endobj -4518 0 obj << -/D [4491 0 R /XYZ 71.731 266.8048 null] +4503 0 obj << +/D [4476 0 R /XYZ 71.731 266.8048 null] >> endobj -4519 0 obj << -/D [4491 0 R /XYZ 81.6937 256.0102 null] +4504 0 obj << +/D [4476 0 R /XYZ 81.6937 256.0102 null] >> endobj -4520 0 obj << -/D [4491 0 R /XYZ 71.731 240.9019 null] +4505 0 obj << +/D [4476 0 R /XYZ 71.731 240.9019 null] >> endobj -4521 0 obj << -/D [4491 0 R /XYZ 81.6937 230.1073 null] +4506 0 obj << +/D [4476 0 R /XYZ 81.6937 230.1073 null] >> endobj 1980 0 obj << -/D [4491 0 R /XYZ 71.731 222.9692 null] +/D [4476 0 R /XYZ 71.731 222.9692 null] >> endobj 866 0 obj << -/D [4491 0 R /XYZ 243.8395 185.7537 null] +/D [4476 0 R /XYZ 243.8395 185.7537 null] >> endobj -4522 0 obj << -/D [4491 0 R /XYZ 71.731 178.4013 null] +4507 0 obj << +/D [4476 0 R /XYZ 71.731 178.4013 null] >> endobj -4523 0 obj << -/D [4491 0 R /XYZ 71.731 158.491 null] +4508 0 obj << +/D [4476 0 R /XYZ 71.731 158.491 null] >> endobj -4524 0 obj << -/D [4491 0 R /XYZ 317.3926 134.745 null] +4509 0 obj << +/D [4476 0 R /XYZ 317.3926 134.745 null] >> endobj -4525 0 obj << -/D [4491 0 R /XYZ 232.3467 121.7935 null] +4510 0 obj << +/D [4476 0 R /XYZ 232.3467 121.7935 null] >> endobj -4526 0 obj << -/D [4491 0 R /XYZ 71.731 119.6367 null] +4511 0 obj << +/D [4476 0 R /XYZ 71.731 119.6367 null] >> endobj -4490 0 obj << +4475 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4529 0 obj << +4514 0 obj << /Length 2969 /Filter /FlateDecode >> @@ -19452,129 +19473,129 @@ qXy FG� ��[ہm��`����Q3FVy8�'!˦����S3�B��:���o.Q7kl5�}9Bo*��E W����p��w�� �w*o;�e���;��4�E�(L����v��X���;�rP����S�7�/^�� �y�ׅ)�g��gA�~�ca�:�QOn&XJ������Q���m���&���@b,��-9���YS���˪�϶>a�{�>�p��1��סط��:V7Qmf�M�O:0j�Qz�S�j[j��}�z5l��|�u�9�fו����71/�� H\y���dl�5ye�|H��[�SmPPY��`���J�7�#��|#���3����(}�K]�/��o>:<?M$�r�!k?hQC�E1��Px,yW�p(�}������4�χ� �P��:�������\��ÄE�`]),��F8%��m ���מⷍ���IԑoZ�RJ>V�g��m$�1�]��2�}�M��s��� ���[�N��o�'��0���q�,�)�!�����0�E9�endstream endobj -4528 0 obj << +4513 0 obj << /Type /Page -/Contents 4529 0 R -/Resources 4527 0 R +/Contents 4514 0 R +/Resources 4512 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4489 0 R +/Parent 4474 0 R +>> endobj +4515 0 obj << +/D [4513 0 R /XYZ 71.731 729.2652 null] +>> endobj +4516 0 obj << +/D [4513 0 R /XYZ 71.731 718.3063 null] +>> endobj +4517 0 obj << +/D [4513 0 R /XYZ 423.2461 708.3437 null] +>> endobj +4518 0 obj << +/D [4513 0 R /XYZ 71.731 657.1357 null] +>> endobj +4519 0 obj << +/D [4513 0 R /XYZ 205.0582 644.1843 null] +>> endobj +4520 0 obj << +/D [4513 0 R /XYZ 429.4863 644.1843 null] +>> endobj +4521 0 obj << +/D [4513 0 R /XYZ 71.731 611.1433 null] +>> endobj +4522 0 obj << +/D [4513 0 R /XYZ 475.4481 600.3487 null] +>> endobj +4523 0 obj << +/D [4513 0 R /XYZ 71.731 559.3376 null] +>> endobj +4524 0 obj << +/D [4513 0 R /XYZ 71.731 554.3562 null] +>> endobj +4525 0 obj << +/D [4513 0 R /XYZ 81.6937 533.599 null] +>> endobj +4526 0 obj << +/D [4513 0 R /XYZ 491.5075 533.599 null] +>> endobj +4527 0 obj << +/D [4513 0 R /XYZ 71.731 520.548 null] +>> endobj +4528 0 obj << +/D [4513 0 R /XYZ 81.6937 507.6961 null] +>> endobj +4529 0 obj << +/D [4513 0 R /XYZ 139.5162 494.7447 null] >> endobj 4530 0 obj << -/D [4528 0 R /XYZ 71.731 729.2652 null] +/D [4513 0 R /XYZ 71.731 492.5879 null] >> endobj 4531 0 obj << -/D [4528 0 R /XYZ 71.731 718.3063 null] +/D [4513 0 R /XYZ 81.6937 481.7933 null] >> endobj 4532 0 obj << -/D [4528 0 R /XYZ 423.2461 708.3437 null] +/D [4513 0 R /XYZ 478.2916 481.7933 null] >> endobj 4533 0 obj << -/D [4528 0 R /XYZ 71.731 657.1357 null] +/D [4513 0 R /XYZ 71.731 466.685 null] >> endobj 4534 0 obj << -/D [4528 0 R /XYZ 205.0582 644.1843 null] +/D [4513 0 R /XYZ 81.6937 455.8904 null] >> endobj 4535 0 obj << -/D [4528 0 R /XYZ 429.4863 644.1843 null] +/D [4513 0 R /XYZ 373.716 455.8904 null] >> endobj 4536 0 obj << -/D [4528 0 R /XYZ 71.731 611.1433 null] +/D [4513 0 R /XYZ 71.731 453.7336 null] >> endobj 4537 0 obj << -/D [4528 0 R /XYZ 475.4481 600.3487 null] +/D [4513 0 R /XYZ 81.6937 442.939 null] >> endobj 4538 0 obj << -/D [4528 0 R /XYZ 71.731 559.3376 null] +/D [4513 0 R /XYZ 511.1135 442.939 null] >> endobj 4539 0 obj << -/D [4528 0 R /XYZ 71.731 554.3562 null] +/D [4513 0 R /XYZ 71.731 427.8307 null] >> endobj 4540 0 obj << -/D [4528 0 R /XYZ 81.6937 533.599 null] +/D [4513 0 R /XYZ 71.731 412.8867 null] >> endobj 4541 0 obj << -/D [4528 0 R /XYZ 491.5075 533.599 null] +/D [4513 0 R /XYZ 71.731 375.4919 null] >> endobj 4542 0 obj << -/D [4528 0 R /XYZ 71.731 520.548 null] +/D [4513 0 R /XYZ 339.0302 323.6862 null] >> endobj 4543 0 obj << -/D [4528 0 R /XYZ 81.6937 507.6961 null] +/D [4513 0 R /XYZ 96.6374 297.7833 null] >> endobj 4544 0 obj << -/D [4528 0 R /XYZ 139.5162 494.7447 null] +/D [4513 0 R /XYZ 276.3221 297.7833 null] >> endobj 4545 0 obj << -/D [4528 0 R /XYZ 71.731 492.5879 null] +/D [4513 0 R /XYZ 71.731 295.6265 null] >> endobj 4546 0 obj << -/D [4528 0 R /XYZ 81.6937 481.7933 null] +/D [4513 0 R /XYZ 71.731 280.6825 null] >> endobj 4547 0 obj << -/D [4528 0 R /XYZ 478.2916 481.7933 null] +/D [4513 0 R /XYZ 187.6784 271.1831 null] >> endobj 4548 0 obj << -/D [4528 0 R /XYZ 71.731 466.685 null] +/D [4513 0 R /XYZ 71.731 219.9751 null] >> endobj 4549 0 obj << -/D [4528 0 R /XYZ 81.6937 455.8904 null] +/D [4513 0 R /XYZ 184.7759 207.0237 null] >> endobj 4550 0 obj << -/D [4528 0 R /XYZ 373.716 455.8904 null] +/D [4513 0 R /XYZ 71.731 166.0125 null] >> endobj 4551 0 obj << -/D [4528 0 R /XYZ 71.731 453.7336 null] ->> endobj -4552 0 obj << -/D [4528 0 R /XYZ 81.6937 442.939 null] ->> endobj -4553 0 obj << -/D [4528 0 R /XYZ 511.1135 442.939 null] ->> endobj -4554 0 obj << -/D [4528 0 R /XYZ 71.731 427.8307 null] ->> endobj -4555 0 obj << -/D [4528 0 R /XYZ 71.731 412.8867 null] ->> endobj -4556 0 obj << -/D [4528 0 R /XYZ 71.731 375.4919 null] ->> endobj -4557 0 obj << -/D [4528 0 R /XYZ 339.0302 323.6862 null] ->> endobj -4558 0 obj << -/D [4528 0 R /XYZ 96.6374 297.7833 null] ->> endobj -4559 0 obj << -/D [4528 0 R /XYZ 276.3221 297.7833 null] ->> endobj -4560 0 obj << -/D [4528 0 R /XYZ 71.731 295.6265 null] ->> endobj -4561 0 obj << -/D [4528 0 R /XYZ 71.731 280.6825 null] ->> endobj -4562 0 obj << -/D [4528 0 R /XYZ 187.6784 271.1831 null] ->> endobj -4563 0 obj << -/D [4528 0 R /XYZ 71.731 219.9751 null] ->> endobj -4564 0 obj << -/D [4528 0 R /XYZ 184.7759 207.0237 null] ->> endobj -4565 0 obj << -/D [4528 0 R /XYZ 71.731 166.0125 null] ->> endobj -4566 0 obj << -/D [4528 0 R /XYZ 71.731 151.0686 null] +/D [4513 0 R /XYZ 71.731 151.0686 null] >> endobj -4527 0 obj << +4512 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F44 2183 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4569 0 obj << +4554 0 obj << /Length 1783 /Filter /FlateDecode >> @@ -19592,149 +19613,149 @@ Z �(7� uO���0_�/���endstream endobj -4568 0 obj << +4553 0 obj << /Type /Page -/Contents 4569 0 R -/Resources 4567 0 R +/Contents 4554 0 R +/Resources 4552 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4489 0 R -/Annots [ 4577 0 R ] +/Parent 4474 0 R +/Annots [ 4562 0 R ] >> endobj -4577 0 obj << +4562 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [461.7553 601.8581 521.8353 612.762] /Subtype /Link /A << /S /GoTo /D (groups) >> >> endobj -4570 0 obj << -/D [4568 0 R /XYZ 71.731 729.2652 null] +4555 0 obj << +/D [4553 0 R /XYZ 71.731 729.2652 null] >> endobj -4571 0 obj << -/D [4568 0 R /XYZ 71.731 741.2204 null] +4556 0 obj << +/D [4553 0 R /XYZ 71.731 741.2204 null] >> endobj -4572 0 obj << -/D [4568 0 R /XYZ 71.731 718.3063 null] +4557 0 obj << +/D [4553 0 R /XYZ 71.731 718.3063 null] >> endobj -4573 0 obj << -/D [4568 0 R /XYZ 164.9444 708.3437 null] +4558 0 obj << +/D [4553 0 R /XYZ 164.9444 708.3437 null] >> endobj -4574 0 obj << -/D [4568 0 R /XYZ 368.7175 708.3437 null] +4559 0 obj << +/D [4553 0 R /XYZ 368.7175 708.3437 null] >> endobj -4575 0 obj << -/D [4568 0 R /XYZ 273.8015 695.3923 null] +4560 0 obj << +/D [4553 0 R /XYZ 273.8015 695.3923 null] >> endobj 1981 0 obj << -/D [4568 0 R /XYZ 71.731 688.2541 null] +/D [4553 0 R /XYZ 71.731 688.2541 null] >> endobj 870 0 obj << -/D [4568 0 R /XYZ 228.9919 651.0386 null] +/D [4553 0 R /XYZ 228.9919 651.0386 null] >> endobj -4576 0 obj << -/D [4568 0 R /XYZ 71.731 643.6863 null] +4561 0 obj << +/D [4553 0 R /XYZ 71.731 643.6863 null] >> endobj 1982 0 obj << -/D [4568 0 R /XYZ 71.731 584.9216 null] +/D [4553 0 R /XYZ 71.731 584.9216 null] >> endobj 874 0 obj << -/D [4568 0 R /XYZ 258.6885 547.7061 null] +/D [4553 0 R /XYZ 258.6885 547.7061 null] >> endobj -4578 0 obj << -/D [4568 0 R /XYZ 71.731 540.3538 null] +4563 0 obj << +/D [4553 0 R /XYZ 71.731 540.3538 null] >> endobj -4579 0 obj << -/D [4568 0 R /XYZ 406.4083 514.6301 null] +4564 0 obj << +/D [4553 0 R /XYZ 406.4083 514.6301 null] >> endobj -4580 0 obj << -/D [4568 0 R /XYZ 512.6778 514.6301 null] +4565 0 obj << +/D [4553 0 R /XYZ 512.6778 514.6301 null] >> endobj 1983 0 obj << -/D [4568 0 R /XYZ 71.731 481.5891 null] +/D [4553 0 R /XYZ 71.731 481.5891 null] >> endobj 878 0 obj << -/D [4568 0 R /XYZ 204.4744 444.3736 null] +/D [4553 0 R /XYZ 204.4744 444.3736 null] >> endobj -4581 0 obj << -/D [4568 0 R /XYZ 71.731 437.0213 null] +4566 0 obj << +/D [4553 0 R /XYZ 71.731 437.0213 null] >> endobj -4582 0 obj << -/D [4568 0 R /XYZ 71.731 417.1109 null] +4567 0 obj << +/D [4553 0 R /XYZ 71.731 417.1109 null] >> endobj -4583 0 obj << -/D [4568 0 R /XYZ 308.5793 406.3163 null] +4568 0 obj << +/D [4553 0 R /XYZ 308.5793 406.3163 null] >> endobj -4584 0 obj << -/D [4568 0 R /XYZ 71.731 393.2653 null] +4569 0 obj << +/D [4553 0 R /XYZ 71.731 393.2653 null] >> endobj -4585 0 obj << -/D [4568 0 R /XYZ 71.731 378.3214 null] +4570 0 obj << +/D [4553 0 R /XYZ 71.731 378.3214 null] >> endobj -4586 0 obj << -/D [4568 0 R /XYZ 71.731 365.3699 null] +4571 0 obj << +/D [4553 0 R /XYZ 71.731 365.3699 null] >> endobj -4587 0 obj << -/D [4568 0 R /XYZ 91.6563 347.5367 null] +4572 0 obj << +/D [4553 0 R /XYZ 91.6563 347.5367 null] >> endobj -4588 0 obj << -/D [4568 0 R /XYZ 71.731 337.4745 null] +4573 0 obj << +/D [4553 0 R /XYZ 71.731 337.4745 null] >> endobj -4589 0 obj << -/D [4568 0 R /XYZ 71.731 323.4421 null] +4574 0 obj << +/D [4553 0 R /XYZ 71.731 323.4421 null] >> endobj -4590 0 obj << -/D [4568 0 R /XYZ 91.6563 306.6899 null] +4575 0 obj << +/D [4553 0 R /XYZ 91.6563 306.6899 null] >> endobj -4591 0 obj << -/D [4568 0 R /XYZ 71.731 294.5704 null] +4576 0 obj << +/D [4553 0 R /XYZ 71.731 294.5704 null] >> endobj -4592 0 obj << -/D [4568 0 R /XYZ 71.731 282.5953 null] +4577 0 obj << +/D [4553 0 R /XYZ 71.731 282.5953 null] >> endobj -4593 0 obj << -/D [4568 0 R /XYZ 91.6563 265.8431 null] +4578 0 obj << +/D [4553 0 R /XYZ 91.6563 265.8431 null] >> endobj -4594 0 obj << -/D [4568 0 R /XYZ 71.731 253.7236 null] +4579 0 obj << +/D [4553 0 R /XYZ 71.731 253.7236 null] >> endobj -4595 0 obj << -/D [4568 0 R /XYZ 71.731 241.7484 null] +4580 0 obj << +/D [4553 0 R /XYZ 71.731 241.7484 null] >> endobj -4596 0 obj << -/D [4568 0 R /XYZ 91.6563 224.9962 null] +4581 0 obj << +/D [4553 0 R /XYZ 91.6563 224.9962 null] >> endobj -4597 0 obj << -/D [4568 0 R /XYZ 71.731 212.8768 null] +4582 0 obj << +/D [4553 0 R /XYZ 71.731 212.8768 null] >> endobj -4598 0 obj << -/D [4568 0 R /XYZ 71.731 199.9253 null] +4583 0 obj << +/D [4553 0 R /XYZ 71.731 199.9253 null] >> endobj -4599 0 obj << -/D [4568 0 R /XYZ 91.6563 184.1494 null] +4584 0 obj << +/D [4553 0 R /XYZ 91.6563 184.1494 null] >> endobj -4600 0 obj << -/D [4568 0 R /XYZ 71.731 172.03 null] +4585 0 obj << +/D [4553 0 R /XYZ 71.731 172.03 null] >> endobj -4601 0 obj << -/D [4568 0 R /XYZ 71.731 161.1358 null] +4586 0 obj << +/D [4553 0 R /XYZ 71.731 161.1358 null] >> endobj -4602 0 obj << -/D [4568 0 R /XYZ 91.6563 143.3026 null] +4587 0 obj << +/D [4553 0 R /XYZ 91.6563 143.3026 null] >> endobj -4603 0 obj << -/D [4568 0 R /XYZ 71.731 131.1831 null] +4588 0 obj << +/D [4553 0 R /XYZ 71.731 131.1831 null] >> endobj -4604 0 obj << -/D [4568 0 R /XYZ 71.731 118.2317 null] +4589 0 obj << +/D [4553 0 R /XYZ 71.731 118.2317 null] >> endobj -4605 0 obj << -/D [4568 0 R /XYZ 91.6563 102.4558 null] +4590 0 obj << +/D [4553 0 R /XYZ 91.6563 102.4558 null] >> endobj -4567 0 obj << +4552 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4608 0 obj << +4593 0 obj << /Length 1808 /Filter /FlateDecode >> @@ -19744,119 +19765,119 @@ S !Eu}���y{|؝RDsM>ݨ������mX������Ƚ[6B�������t���e�(9϶�<ʶ$���&$H����>�x�VW��� ���E.G.G�L�31�P^����0�X�-`�n����`���3�f���s�a��HdX5K��TQha�k ���(��"Y: �)��xw���#E��Ԃ�M{�$o�3�G�塺�H�I�gT�S�\�G6�@.)f.?�E$����d���!>��ׄ�g��o'6�XI��endstream endobj -4607 0 obj << +4592 0 obj << /Type /Page -/Contents 4608 0 R -/Resources 4606 0 R +/Contents 4593 0 R +/Resources 4591 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4489 0 R -/Annots [ 4629 0 R ] +/Parent 4474 0 R +/Annots [ 4614 0 R ] >> endobj -4629 0 obj << +4614 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [477.0161 456.5853 523.8667 467.1676] /Subtype /Link /A << /S /GoTo /D (cust-change-permissions) >> >> endobj -4609 0 obj << -/D [4607 0 R /XYZ 71.731 729.2652 null] +4594 0 obj << +/D [4592 0 R /XYZ 71.731 729.2652 null] >> endobj 1986 0 obj << -/D [4607 0 R /XYZ 71.731 741.2204 null] +/D [4592 0 R /XYZ 71.731 741.2204 null] >> endobj -4610 0 obj << -/D [4607 0 R /XYZ 71.731 718.3063 null] +4595 0 obj << +/D [4592 0 R /XYZ 71.731 718.3063 null] >> endobj -4611 0 obj << -/D [4607 0 R /XYZ 71.731 706.1869 null] +4596 0 obj << +/D [4592 0 R /XYZ 71.731 706.1869 null] >> endobj -4612 0 obj << -/D [4607 0 R /XYZ 91.6563 690.4109 null] +4597 0 obj << +/D [4592 0 R /XYZ 91.6563 690.4109 null] >> endobj -4613 0 obj << -/D [4607 0 R /XYZ 71.731 667.3973 null] +4598 0 obj << +/D [4592 0 R /XYZ 71.731 667.3973 null] >> endobj -4614 0 obj << -/D [4607 0 R /XYZ 91.6563 649.5641 null] +4599 0 obj << +/D [4592 0 R /XYZ 91.6563 649.5641 null] >> endobj -4615 0 obj << -/D [4607 0 R /XYZ 71.731 637.4447 null] +4600 0 obj << +/D [4592 0 R /XYZ 71.731 637.4447 null] >> endobj -4616 0 obj << -/D [4607 0 R /XYZ 71.731 624.4932 null] +4601 0 obj << +/D [4592 0 R /XYZ 71.731 624.4932 null] >> endobj -4617 0 obj << -/D [4607 0 R /XYZ 91.6563 608.7173 null] +4602 0 obj << +/D [4592 0 R /XYZ 91.6563 608.7173 null] >> endobj -4618 0 obj << -/D [4607 0 R /XYZ 71.731 596.5978 null] +4603 0 obj << +/D [4592 0 R /XYZ 71.731 596.5978 null] >> endobj -4619 0 obj << -/D [4607 0 R /XYZ 71.731 583.6464 null] +4604 0 obj << +/D [4592 0 R /XYZ 71.731 583.6464 null] >> endobj -4620 0 obj << -/D [4607 0 R /XYZ 91.6563 567.8705 null] +4605 0 obj << +/D [4592 0 R /XYZ 91.6563 567.8705 null] >> endobj -4621 0 obj << -/D [4607 0 R /XYZ 71.731 555.751 null] +4606 0 obj << +/D [4592 0 R /XYZ 71.731 555.751 null] >> endobj -4622 0 obj << -/D [4607 0 R /XYZ 71.731 544.8569 null] +4607 0 obj << +/D [4592 0 R /XYZ 71.731 544.8569 null] >> endobj -4623 0 obj << -/D [4607 0 R /XYZ 91.6563 527.0236 null] +4608 0 obj << +/D [4592 0 R /XYZ 91.6563 527.0236 null] >> endobj -4624 0 obj << -/D [4607 0 R /XYZ 71.731 516.9615 null] +4609 0 obj << +/D [4592 0 R /XYZ 71.731 516.9615 null] >> endobj -4625 0 obj << -/D [4607 0 R /XYZ 71.731 501.9527 null] +4610 0 obj << +/D [4592 0 R /XYZ 71.731 501.9527 null] >> endobj -4626 0 obj << -/D [4607 0 R /XYZ 91.6563 486.1768 null] +4611 0 obj << +/D [4592 0 R /XYZ 91.6563 486.1768 null] >> endobj -4627 0 obj << -/D [4607 0 R /XYZ 71.731 484.02 null] +4612 0 obj << +/D [4592 0 R /XYZ 71.731 484.02 null] >> endobj -4628 0 obj << -/D [4607 0 R /XYZ 71.731 469.076 null] +4613 0 obj << +/D [4592 0 R /XYZ 71.731 469.076 null] >> endobj 1984 0 obj << -/D [4607 0 R /XYZ 71.731 421.7185 null] +/D [4592 0 R /XYZ 71.731 421.7185 null] >> endobj 882 0 obj << -/D [4607 0 R /XYZ 275.2321 376.4642 null] +/D [4592 0 R /XYZ 275.2321 376.4642 null] >> endobj -4630 0 obj << -/D [4607 0 R /XYZ 71.731 364.293 null] +4615 0 obj << +/D [4592 0 R /XYZ 71.731 364.293 null] >> endobj 1985 0 obj << -/D [4607 0 R /XYZ 71.731 327.219 null] +/D [4592 0 R /XYZ 71.731 327.219 null] >> endobj 886 0 obj << -/D [4607 0 R /XYZ 174.0752 289.6299 null] +/D [4592 0 R /XYZ 174.0752 289.6299 null] >> endobj -4631 0 obj << -/D [4607 0 R /XYZ 71.731 279.4872 null] +4616 0 obj << +/D [4592 0 R /XYZ 71.731 279.4872 null] >> endobj -4632 0 obj << -/D [4607 0 R /XYZ 71.731 262.3672 null] +4617 0 obj << +/D [4592 0 R /XYZ 71.731 262.3672 null] >> endobj -4633 0 obj << -/D [4607 0 R /XYZ 71.731 220.5889 null] +4618 0 obj << +/D [4592 0 R /XYZ 71.731 220.5889 null] >> endobj -4634 0 obj << -/D [4607 0 R /XYZ 71.731 174.6959 null] +4619 0 obj << +/D [4592 0 R /XYZ 71.731 174.6959 null] >> endobj -4635 0 obj << -/D [4607 0 R /XYZ 71.731 143.8118 null] +4620 0 obj << +/D [4592 0 R /XYZ 71.731 143.8118 null] >> endobj -4606 0 obj << +4591 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4638 0 obj << +4623 0 obj << /Length 2612 /Filter /FlateDecode >> @@ -19870,72 +19891,72 @@ Z3 [��Ꮵ+��{�rBw�U�����,xk���Z���-�"����n�j������]]3T�{�90�l�Xl)��Zt�m���6_�>Ctr7��}�e�ow_�?��}\4v>?<20b�Q�e�2*��z��H���T�j�YM�ٛ�x�-��m2�e��b�8�d[/s�p�4����*�8@��L�%�!A�����H�(�\2���|�ѕ�L��xd싷3���:�;OwA���7�FV�!G}��W}�� 8��P����r�k��h��rK= ө��)��-����Vr�q�^Uoy.�6"KIi�I].ZQbN�B=��0�7}O�,����"���Ὤ����I=�I=E�N����Z�ۙ Œ��v��;� Y�˽c4?0D鬾�LGKa 8&���j<�.��<�2�oEH�?�n{�n�r�V����W<< ����ux`C ̡�(��3Ql\F,qK(�p*�'ij�(1�Z�6.�5V���<ю�|4C!�Jhi�o.�&$0�c��x+��:y�{�fQ��������+u;�}{�aj�i�vM$�i�Z�bObr���"P,��X���pN��@b��0F������[(Όhm�pr|�x��r:)>�5��� �I���W��E��eqv�Z�Q-�y�nE��6��8�c���G�>�t0��ʙڬ�Y��rN��4�/�;�Pm;kJ���u]�S:A�Ęc+zdF��?���O'��Jy6_/U>��ǡ�aL�c�>���i�&m�JU��S/��ׄ�ĝ���ʛ=����G�D�4�=yb{r�[�]���k�C2�41"���)���G[�=6M�}��c�����1��Z!i_;{G!�ř�o��6� =7�SZ��,O&q6����f�e��6@ �ɬ)��1_n�_P�T�R��]�q��D�gּ��R���odJz~�Y�"3����sf��Y� (?ᅩ�zq���)'8/����q�,��P&����+��ͦ�endstream endobj -4637 0 obj << +4622 0 obj << /Type /Page -/Contents 4638 0 R -/Resources 4636 0 R +/Contents 4623 0 R +/Resources 4621 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4489 0 R +/Parent 4474 0 R >> endobj -4639 0 obj << -/D [4637 0 R /XYZ 71.731 729.2652 null] +4624 0 obj << +/D [4622 0 R /XYZ 71.731 729.2652 null] >> endobj 890 0 obj << -/D [4637 0 R /XYZ 165.3097 651.0386 null] +/D [4622 0 R /XYZ 165.3097 651.0386 null] >> endobj -4640 0 obj << -/D [4637 0 R /XYZ 71.731 643.6863 null] +4625 0 obj << +/D [4622 0 R /XYZ 71.731 643.6863 null] >> endobj -4641 0 obj << -/D [4637 0 R /XYZ 71.731 623.7759 null] +4626 0 obj << +/D [4622 0 R /XYZ 71.731 623.7759 null] >> endobj -4642 0 obj << -/D [4637 0 R /XYZ 71.731 574.0275 null] +4627 0 obj << +/D [4622 0 R /XYZ 71.731 574.0275 null] >> endobj -4643 0 obj << -/D [4637 0 R /XYZ 71.731 559.0835 null] +4628 0 obj << +/D [4622 0 R /XYZ 71.731 559.0835 null] >> endobj -4644 0 obj << -/D [4637 0 R /XYZ 71.731 507.9751 null] +4629 0 obj << +/D [4622 0 R /XYZ 71.731 507.9751 null] >> endobj -4645 0 obj << -/D [4637 0 R /XYZ 71.731 461.9826 null] +4630 0 obj << +/D [4622 0 R /XYZ 71.731 461.9826 null] >> endobj 1987 0 obj << -/D [4637 0 R /XYZ 71.731 412.2342 null] +/D [4622 0 R /XYZ 71.731 412.2342 null] >> endobj 894 0 obj << -/D [4637 0 R /XYZ 211.4968 377.863 null] +/D [4622 0 R /XYZ 211.4968 377.863 null] >> endobj -4646 0 obj << -/D [4637 0 R /XYZ 71.731 369.2255 null] +4631 0 obj << +/D [4622 0 R /XYZ 71.731 369.2255 null] >> endobj -4647 0 obj << -/D [4637 0 R /XYZ 71.731 312.9415 null] +4632 0 obj << +/D [4622 0 R /XYZ 71.731 312.9415 null] >> endobj -4648 0 obj << -/D [4637 0 R /XYZ 71.731 269.1059 null] +4633 0 obj << +/D [4622 0 R /XYZ 71.731 269.1059 null] >> endobj -4649 0 obj << -/D [4637 0 R /XYZ 71.731 238.2217 null] +4634 0 obj << +/D [4622 0 R /XYZ 71.731 238.2217 null] >> endobj -4650 0 obj << -/D [4637 0 R /XYZ 71.731 207.3376 null] +4635 0 obj << +/D [4622 0 R /XYZ 71.731 207.3376 null] >> endobj 1988 0 obj << -/D [4637 0 R /XYZ 71.731 189.4048 null] +/D [4622 0 R /XYZ 71.731 189.4048 null] >> endobj 898 0 obj << -/D [4637 0 R /XYZ 255.5989 156.0946 null] ->> endobj -4651 0 obj << -/D [4637 0 R /XYZ 71.731 147.4571 null] +/D [4622 0 R /XYZ 255.5989 156.0946 null] >> endobj 4636 0 obj << +/D [4622 0 R /XYZ 71.731 147.4571 null] +>> endobj +4621 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4654 0 obj << +4639 0 obj << /Length 2072 /Filter /FlateDecode >> @@ -19947,69 +19968,69 @@ xڝM S?Bg�`��� 8[[����9�o�Cq��&��cȈt��<X��Tm������J���y9�f96M�d�3a8��{ʎ��p�!�Z�×o4�o�Bx*-8�^�ET�M���Eg�l�:���h�j�� �G�"M�T ރ�93��H���ٛ��<!$!2.]�����n:��s3�v�^�Y�e!��Z�Vf�h��9/R��>��F�D/ۗIc�şTL�'�o3q�BȬ�/>�~����$��&�w�B�����W�خq��c��_��,�0��N�R�ϳ#V6�� z����m��d�a<�,g��[��Q6�"c��̂�{Mt���2�r�}�*�iKJ�����Gl�E_^m������5�V<1c���N� άY��N5�us���V]��^�?Rj%����YQ����r۵���X�&([�<���Gy�b^�cAQ�XS�ħ+����m�H��PFUo���C��`�;6���U��K�0���3M�Xr#ț�Z�?������?�⭽�]�� n4}��w��1:�y�����{��]\��xL>|T�����\=endstream endobj -4653 0 obj << +4638 0 obj << /Type /Page -/Contents 4654 0 R -/Resources 4652 0 R +/Contents 4639 0 R +/Resources 4637 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4668 0 R +/Parent 4653 0 R >> endobj -4655 0 obj << -/D [4653 0 R /XYZ 71.731 729.2652 null] +4640 0 obj << +/D [4638 0 R /XYZ 71.731 729.2652 null] >> endobj -4656 0 obj << -/D [4653 0 R /XYZ 71.731 741.2204 null] +4641 0 obj << +/D [4638 0 R /XYZ 71.731 741.2204 null] >> endobj -4657 0 obj << -/D [4653 0 R /XYZ 71.731 718.3063 null] +4642 0 obj << +/D [4638 0 R /XYZ 71.731 718.3063 null] >> endobj 1989 0 obj << -/D [4653 0 R /XYZ 71.731 668.3288 null] +/D [4638 0 R /XYZ 71.731 668.3288 null] >> endobj 902 0 obj << -/D [4653 0 R /XYZ 159.5974 625.2314 null] +/D [4638 0 R /XYZ 159.5974 625.2314 null] >> endobj -4658 0 obj << -/D [4653 0 R /XYZ 71.731 612.7934 null] +4643 0 obj << +/D [4638 0 R /XYZ 71.731 612.7934 null] >> endobj -4659 0 obj << -/D [4653 0 R /XYZ 71.731 583.5826 null] +4644 0 obj << +/D [4638 0 R /XYZ 71.731 583.5826 null] >> endobj -4660 0 obj << -/D [4653 0 R /XYZ 71.731 552.6984 null] +4645 0 obj << +/D [4638 0 R /XYZ 71.731 552.6984 null] >> endobj -4661 0 obj << -/D [4653 0 R /XYZ 71.731 495.9114 null] +4646 0 obj << +/D [4638 0 R /XYZ 71.731 495.9114 null] >> endobj -4662 0 obj << -/D [4653 0 R /XYZ 71.731 465.0272 null] +4647 0 obj << +/D [4638 0 R /XYZ 71.731 465.0272 null] >> endobj -4663 0 obj << -/D [4653 0 R /XYZ 71.731 434.143 null] +4648 0 obj << +/D [4638 0 R /XYZ 71.731 434.143 null] >> endobj -4664 0 obj << -/D [4653 0 R /XYZ 71.731 403.2588 null] +4649 0 obj << +/D [4638 0 R /XYZ 71.731 403.2588 null] >> endobj -4665 0 obj << -/D [4653 0 R /XYZ 71.731 359.4232 null] +4650 0 obj << +/D [4638 0 R /XYZ 71.731 359.4232 null] >> endobj 1990 0 obj << -/D [4653 0 R /XYZ 71.731 315.5876 null] +/D [4638 0 R /XYZ 71.731 315.5876 null] >> endobj 906 0 obj << -/D [4653 0 R /XYZ 182.7004 272.4901 null] ->> endobj -4666 0 obj << -/D [4653 0 R /XYZ 71.731 260.0521 null] +/D [4638 0 R /XYZ 182.7004 272.4901 null] >> endobj -4667 0 obj << -/D [4653 0 R /XYZ 71.731 209.9198 null] +4651 0 obj << +/D [4638 0 R /XYZ 71.731 260.0521 null] >> endobj 4652 0 obj << +/D [4638 0 R /XYZ 71.731 209.9198 null] +>> endobj +4637 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4671 0 obj << +4656 0 obj << /Length 2521 /Filter /FlateDecode >> @@ -20028,84 +20049,84 @@ qW .��%q�����pF>{pB�!Z��B���h*��Q������ ����g���x�|�*���߯^��W���^-�Ƈ"|����>�����e*�I~����d*�y>\h�̾���DX���)iendstream endobj -4670 0 obj << +4655 0 obj << /Type /Page -/Contents 4671 0 R -/Resources 4669 0 R +/Contents 4656 0 R +/Resources 4654 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4668 0 R -/Annots [ 4676 0 R 4679 0 R ] +/Parent 4653 0 R +/Annots [ 4661 0 R 4664 0 R ] >> endobj -4676 0 obj << +4661 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [137.4191 566.6638 191.7475 575.4349] /Subtype /Link /A << /S /GoTo /D (installation-whining) >> >> endobj -4679 0 obj << +4664 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [363.9329 516.7411 419.5802 527.2157] /Subtype /Link /A << /S /GoTo /D (installation-whining-cron) >> >> endobj -4672 0 obj << -/D [4670 0 R /XYZ 71.731 729.2652 null] +4657 0 obj << +/D [4655 0 R /XYZ 71.731 729.2652 null] >> endobj -4673 0 obj << -/D [4670 0 R /XYZ 118.5554 689.7049 null] +4658 0 obj << +/D [4655 0 R /XYZ 118.5554 689.7049 null] >> endobj -4674 0 obj << -/D [4670 0 R /XYZ 118.5554 650.9517 null] +4659 0 obj << +/D [4655 0 R /XYZ 118.5554 650.9517 null] >> endobj -4675 0 obj << -/D [4670 0 R /XYZ 71.731 586.0949 null] +4660 0 obj << +/D [4655 0 R /XYZ 71.731 586.0949 null] >> endobj -4677 0 obj << -/D [4670 0 R /XYZ 76.7123 551.2063 null] +4662 0 obj << +/D [4655 0 R /XYZ 76.7123 551.2063 null] >> endobj -4678 0 obj << -/D [4670 0 R /XYZ 71.731 531.281 null] +4663 0 obj << +/D [4655 0 R /XYZ 71.731 531.281 null] >> endobj 1991 0 obj << -/D [4670 0 R /XYZ 76.7123 490.0357 null] +/D [4655 0 R /XYZ 76.7123 490.0357 null] >> endobj 910 0 obj << -/D [4670 0 R /XYZ 188.1488 450.6633 null] +/D [4655 0 R /XYZ 188.1488 450.6633 null] >> endobj -4680 0 obj << -/D [4670 0 R /XYZ 71.731 443.311 null] +4665 0 obj << +/D [4655 0 R /XYZ 71.731 443.311 null] >> endobj -4681 0 obj << -/D [4670 0 R /XYZ 71.731 410.4492 null] +4666 0 obj << +/D [4655 0 R /XYZ 71.731 410.4492 null] >> endobj -4682 0 obj << -/D [4670 0 R /XYZ 71.731 353.6621 null] +4667 0 obj << +/D [4655 0 R /XYZ 71.731 353.6621 null] >> endobj 1992 0 obj << -/D [4670 0 R /XYZ 71.731 323.1516 null] +/D [4655 0 R /XYZ 71.731 323.1516 null] >> endobj 914 0 obj << -/D [4670 0 R /XYZ 243.7971 285.5624 null] +/D [4655 0 R /XYZ 243.7971 285.5624 null] >> endobj -4683 0 obj << -/D [4670 0 R /XYZ 71.731 275.1974 null] +4668 0 obj << +/D [4655 0 R /XYZ 71.731 275.1974 null] >> endobj -4684 0 obj << -/D [4670 0 R /XYZ 71.731 232.3969 null] +4669 0 obj << +/D [4655 0 R /XYZ 71.731 232.3969 null] >> endobj -4685 0 obj << -/D [4670 0 R /XYZ 71.731 193.5426 null] +4670 0 obj << +/D [4655 0 R /XYZ 71.731 193.5426 null] >> endobj -4686 0 obj << -/D [4670 0 R /XYZ 118.5554 154.9786 null] +4671 0 obj << +/D [4655 0 R /XYZ 118.5554 154.9786 null] >> endobj -4669 0 obj << +4654 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F44 2183 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4689 0 obj << +4674 0 obj << /Length 2750 /Filter /FlateDecode >> @@ -20120,77 +20141,77 @@ XC T�'����V�J�Qp@nD�čdTSj�x���_oi/�?���G���[���1`���u�{�Sk�i;h�Y�g��?d�i�RE�?���˿,~� 5\���W�M���i�����eu�PA��_��̋��?V����Q4��: R�W��R�����G��C��endstream endobj -4688 0 obj << +4673 0 obj << /Type /Page -/Contents 4689 0 R -/Resources 4687 0 R +/Contents 4674 0 R +/Resources 4672 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4668 0 R -/Annots [ 4698 0 R ] +/Parent 4653 0 R +/Annots [ 4683 0 R ] >> endobj -4698 0 obj << +4683 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [191.6402 347.0138 245.9362 357.9177] /Subtype /Link /A << /S /GoTo /D (list) >> >> endobj -4690 0 obj << -/D [4688 0 R /XYZ 71.731 729.2652 null] +4675 0 obj << +/D [4673 0 R /XYZ 71.731 729.2652 null] >> endobj -4691 0 obj << -/D [4688 0 R /XYZ 71.731 718.3063 null] +4676 0 obj << +/D [4673 0 R /XYZ 71.731 718.3063 null] >> endobj -4692 0 obj << -/D [4688 0 R /XYZ 71.731 675.3027 null] +4677 0 obj << +/D [4673 0 R /XYZ 71.731 675.3027 null] >> endobj -4693 0 obj << -/D [4688 0 R /XYZ 71.731 623.497 null] +4678 0 obj << +/D [4673 0 R /XYZ 71.731 623.497 null] >> endobj -4694 0 obj << -/D [4688 0 R /XYZ 71.731 608.553 null] +4679 0 obj << +/D [4673 0 R /XYZ 71.731 608.553 null] >> endobj 1993 0 obj << -/D [4688 0 R /XYZ 71.731 536.1893 null] +/D [4673 0 R /XYZ 71.731 536.1893 null] >> endobj 918 0 obj << -/D [4688 0 R /XYZ 243.5245 496.8169 null] +/D [4673 0 R /XYZ 243.5245 496.8169 null] >> endobj -4695 0 obj << -/D [4688 0 R /XYZ 71.731 486.4519 null] +4680 0 obj << +/D [4673 0 R /XYZ 71.731 486.4519 null] >> endobj -4696 0 obj << -/D [4688 0 R /XYZ 71.731 443.6514 null] +4681 0 obj << +/D [4673 0 R /XYZ 71.731 443.6514 null] >> endobj -4697 0 obj << -/D [4688 0 R /XYZ 71.731 412.7672 null] +4682 0 obj << +/D [4673 0 R /XYZ 71.731 412.7672 null] >> endobj -4699 0 obj << -/D [4688 0 R /XYZ 71.731 348.01 null] +4684 0 obj << +/D [4673 0 R /XYZ 71.731 348.01 null] >> endobj -4700 0 obj << -/D [4688 0 R /XYZ 71.731 333.0661 null] +4685 0 obj << +/D [4673 0 R /XYZ 71.731 333.0661 null] >> endobj -4701 0 obj << -/D [4688 0 R /XYZ 71.731 284.0149 null] +4686 0 obj << +/D [4673 0 R /XYZ 71.731 284.0149 null] >> endobj -4702 0 obj << -/D [4688 0 R /XYZ 71.731 238.0225 null] +4687 0 obj << +/D [4673 0 R /XYZ 71.731 238.0225 null] >> endobj -4703 0 obj << -/D [4688 0 R /XYZ 71.731 214.1769 null] +4688 0 obj << +/D [4673 0 R /XYZ 71.731 214.1769 null] >> endobj -4704 0 obj << -/D [4688 0 R /XYZ 118.5554 175.6129 null] +4689 0 obj << +/D [4673 0 R /XYZ 118.5554 175.6129 null] >> endobj 1994 0 obj << -/D [4688 0 R /XYZ 71.731 133.572 null] +/D [4673 0 R /XYZ 71.731 133.572 null] >> endobj -4687 0 obj << +4672 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4707 0 obj << +4692 0 obj << /Length 676 /Filter /FlateDecode >> @@ -20198,33 +20219,33 @@ stream x�}TMo�0��@{2R��7�c��j��nUۃfA�] ����f%�8�3���͌1���h�P�p��3%Y��\�݆�.`vk��~s���(Ùb*ڗ��s%�(����Ѿ���+}�)�1I�İ��uw���x�]7���?ln�KR��������Km�GT`.���2I�SA@�Ĕc�%%)��c*��r�ט��xӕ�#� �{��?Y�N�#�2!'�O]n�9��َ��t�z�I�C��N�L�=��݇����+S����.��OFO �+���+���VWF�H���±^^۶��-ᆰc�z0~���.��)Ù�b��Z��:�v7��0!�۴�>�m���@�$�u��.m`����� ��S�|j��0$�nHJ�!Q7/&��>I�h��B��Lb��L���˓)t����:��<h��w���{�i ���n�*Lc�^�¹S7\����qLN��_h�*d�~6��n�� n�[����0��{��x4����C5L3�ͭ�Q��T��&�:�.�%�F���l�� (��r݁[7�0�kmQ��� ѩU�u�\<��y�����{H���;�]��,���ܶ�0����J^�н^���s��_�{��?j�)N����֮0/�Z�RLh�-L^N*�������z�endstream endobj -4706 0 obj << +4691 0 obj << /Type /Page -/Contents 4707 0 R -/Resources 4705 0 R +/Contents 4692 0 R +/Resources 4690 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4668 0 R +/Parent 4653 0 R >> endobj -4708 0 obj << -/D [4706 0 R /XYZ 71.731 729.2652 null] +4693 0 obj << +/D [4691 0 R /XYZ 71.731 729.2652 null] >> endobj 922 0 obj << -/D [4706 0 R /XYZ 266.3635 707.8408 null] +/D [4691 0 R /XYZ 266.3635 707.8408 null] >> endobj -4709 0 obj << -/D [4706 0 R /XYZ 71.731 697.4758 null] +4694 0 obj << +/D [4691 0 R /XYZ 71.731 697.4758 null] >> endobj -4710 0 obj << -/D [4706 0 R /XYZ 71.731 672.608 null] +4695 0 obj << +/D [4691 0 R /XYZ 71.731 672.608 null] >> endobj -4711 0 obj << -/D [4706 0 R /XYZ 71.731 657.6641 null] +4696 0 obj << +/D [4691 0 R /XYZ 71.731 657.6641 null] >> endobj -4705 0 obj << +4690 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4714 0 obj << +4699 0 obj << /Length 2191 /Filter /FlateDecode >> @@ -20239,125 +20260,125 @@ FX ߞDӡ��/G/�hG�c�3]:�J*��U��1f# Յ�M�cKۛvX0�����Ã(zU=��Rt��8�ٯV���>x���6]��\�f ��~m��I�������O;PAD�1�����D\ DCA������*.S1pt'��7R/��|)�ŹN�j�y�M�,��l��Mƙͤ7�]��o�͖Yf��I9+�J@��Ԯ"��ޡ�����x����)�endstream endobj -4713 0 obj << +4698 0 obj << /Type /Page -/Contents 4714 0 R -/Resources 4712 0 R +/Contents 4699 0 R +/Resources 4697 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4668 0 R -/Annots [ 4729 0 R ] +/Parent 4653 0 R +/Annots [ 4714 0 R ] >> endobj -4729 0 obj << +4714 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [389.6158 335.5539 443.9118 346.4578] /Subtype /Link /A << /S /GoTo /D (template-http-accept) >> >> endobj -4715 0 obj << -/D [4713 0 R /XYZ 71.731 729.2652 null] +4700 0 obj << +/D [4698 0 R /XYZ 71.731 729.2652 null] >> endobj 1995 0 obj << -/D [4713 0 R /XYZ 71.731 718.3063 null] +/D [4698 0 R /XYZ 71.731 718.3063 null] >> endobj 926 0 obj << -/D [4713 0 R /XYZ 387.3898 703.236 null] +/D [4698 0 R /XYZ 387.3898 703.236 null] >> endobj 1996 0 obj << -/D [4713 0 R /XYZ 71.731 692.1839 null] +/D [4698 0 R /XYZ 71.731 692.1839 null] >> endobj 930 0 obj << -/D [4713 0 R /XYZ 220.0229 651.1593 null] +/D [4698 0 R /XYZ 220.0229 651.1593 null] >> endobj -4716 0 obj << -/D [4713 0 R /XYZ 71.731 642.3364 null] +4701 0 obj << +/D [4698 0 R /XYZ 71.731 642.3364 null] >> endobj -4717 0 obj << -/D [4713 0 R /XYZ 269.9659 616.6487 null] +4702 0 obj << +/D [4698 0 R /XYZ 269.9659 616.6487 null] >> endobj -4718 0 obj << -/D [4713 0 R /XYZ 71.731 605.8841 null] +4703 0 obj << +/D [4698 0 R /XYZ 71.731 605.8841 null] >> endobj -4719 0 obj << -/D [4713 0 R /XYZ 81.6937 577.8741 null] +4704 0 obj << +/D [4698 0 R /XYZ 81.6937 577.8741 null] >> endobj -4720 0 obj << -/D [4713 0 R /XYZ 242.9373 577.8741 null] +4705 0 obj << +/D [4698 0 R /XYZ 242.9373 577.8741 null] >> endobj -4721 0 obj << -/D [4713 0 R /XYZ 71.731 575.7173 null] +4706 0 obj << +/D [4698 0 R /XYZ 71.731 575.7173 null] >> endobj -4722 0 obj << -/D [4713 0 R /XYZ 81.6937 559.9413 null] +4707 0 obj << +/D [4698 0 R /XYZ 81.6937 559.9413 null] >> endobj -4723 0 obj << -/D [4713 0 R /XYZ 346.2678 559.9413 null] +4708 0 obj << +/D [4698 0 R /XYZ 346.2678 559.9413 null] >> endobj -4724 0 obj << -/D [4713 0 R /XYZ 81.6937 546.9899 null] +4709 0 obj << +/D [4698 0 R /XYZ 81.6937 546.9899 null] >> endobj -4725 0 obj << -/D [4713 0 R /XYZ 71.731 524.0758 null] +4710 0 obj << +/D [4698 0 R /XYZ 71.731 524.0758 null] >> endobj -4726 0 obj << -/D [4713 0 R /XYZ 71.731 491.0348 null] +4711 0 obj << +/D [4698 0 R /XYZ 71.731 491.0348 null] >> endobj 1997 0 obj << -/D [4713 0 R /XYZ 71.731 447.1992 null] +/D [4698 0 R /XYZ 71.731 447.1992 null] >> endobj 934 0 obj << -/D [4713 0 R /XYZ 303.1555 404.1017 null] +/D [4698 0 R /XYZ 303.1555 404.1017 null] >> endobj -4727 0 obj << -/D [4713 0 R /XYZ 71.731 391.9305 null] +4712 0 obj << +/D [4698 0 R /XYZ 71.731 391.9305 null] >> endobj -4728 0 obj << -/D [4713 0 R /XYZ 71.731 362.453 null] +4713 0 obj << +/D [4698 0 R /XYZ 71.731 362.453 null] >> endobj 1998 0 obj << -/D [4713 0 R /XYZ 71.731 336.5501 null] +/D [4698 0 R /XYZ 71.731 336.5501 null] >> endobj 938 0 obj << -/D [4713 0 R /XYZ 308.5976 299.3346 null] +/D [4698 0 R /XYZ 308.5976 299.3346 null] >> endobj -4730 0 obj << -/D [4713 0 R /XYZ 71.731 289.1919 null] +4715 0 obj << +/D [4698 0 R /XYZ 71.731 289.1919 null] >> endobj -4731 0 obj << -/D [4713 0 R /XYZ 363.7058 279.2101 null] +4716 0 obj << +/D [4698 0 R /XYZ 363.7058 279.2101 null] >> endobj -4732 0 obj << -/D [4713 0 R /XYZ 219.3353 253.3072 null] +4717 0 obj << +/D [4698 0 R /XYZ 219.3353 253.3072 null] >> endobj -4733 0 obj << -/D [4713 0 R /XYZ 320.9613 253.3072 null] +4718 0 obj << +/D [4698 0 R /XYZ 320.9613 253.3072 null] >> endobj -4734 0 obj << -/D [4713 0 R /XYZ 71.731 240.3558 null] +4719 0 obj << +/D [4698 0 R /XYZ 71.731 240.3558 null] >> endobj -4735 0 obj << -/D [4713 0 R /XYZ 157.2001 240.3558 null] +4720 0 obj << +/D [4698 0 R /XYZ 157.2001 240.3558 null] >> endobj -4736 0 obj << -/D [4713 0 R /XYZ 71.731 238.1989 null] +4721 0 obj << +/D [4698 0 R /XYZ 71.731 238.1989 null] >> endobj -4737 0 obj << -/D [4713 0 R /XYZ 118.5554 199.6349 null] +4722 0 obj << +/D [4698 0 R /XYZ 118.5554 199.6349 null] >> endobj -4738 0 obj << -/D [4713 0 R /XYZ 165.5238 191.1705 null] +4723 0 obj << +/D [4698 0 R /XYZ 165.5238 191.1705 null] >> endobj -4739 0 obj << -/D [4713 0 R /XYZ 341.2842 179.5142 null] +4724 0 obj << +/D [4698 0 R /XYZ 341.2842 179.5142 null] >> endobj 1999 0 obj << -/D [4713 0 R /XYZ 71.731 145.9377 null] +/D [4698 0 R /XYZ 71.731 145.9377 null] >> endobj -4712 0 obj << +4697 0 obj << /Font << /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F44 2183 0 R /F48 2196 0 R /F33 1398 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4742 0 obj << +4727 0 obj << /Length 2652 /Filter /FlateDecode >> @@ -20376,114 +20397,114 @@ yZ �U��4*�� O������h/r�����L�z�ړ����uo�;5���z =��B�{�x�=0y�{�8R������8�oX�+8������S�Mf95�������(K��tPp{���wX�5�k�[�^��H�U.͓���>����h|Tv��+��@��f���bJ˳��o��@8��~�z��k�cB��ټ�����OD Ċ"�v����?�b�&�]����zevP={�x/;�QVH�;O�b��'�y�����3����B�{y�K�6�aA�=:a��M���ڌl��X���� {rgwn{�N��Mi�JP_t=�<w86C�.��<���-���mj�À{a�;��~aӟ�[LkoP�C?MԼd��x�۷��///x��3�P4B�ݟ��� e=�C��.����7F���Q.t��/�3��?D��Du*T���˳�������H��endstream endobj -4741 0 obj << +4726 0 obj << /Type /Page -/Contents 4742 0 R -/Resources 4740 0 R +/Contents 4727 0 R +/Resources 4725 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4668 0 R +/Parent 4653 0 R >> endobj -4743 0 obj << -/D [4741 0 R /XYZ 71.731 729.2652 null] +4728 0 obj << +/D [4726 0 R /XYZ 71.731 729.2652 null] >> endobj -4744 0 obj << -/D [4741 0 R /XYZ 71.731 741.2204 null] +4729 0 obj << +/D [4726 0 R /XYZ 71.731 741.2204 null] >> endobj 942 0 obj << -/D [4741 0 R /XYZ 347.5336 707.8408 null] +/D [4726 0 R /XYZ 347.5336 707.8408 null] >> endobj -4745 0 obj << -/D [4741 0 R /XYZ 71.731 697.4758 null] +4730 0 obj << +/D [4726 0 R /XYZ 71.731 697.4758 null] >> endobj -4746 0 obj << -/D [4741 0 R /XYZ 71.731 654.6753 null] +4731 0 obj << +/D [4726 0 R /XYZ 71.731 654.6753 null] >> endobj -4747 0 obj << -/D [4741 0 R /XYZ 412.638 643.8807 null] +4732 0 obj << +/D [4726 0 R /XYZ 412.638 643.8807 null] >> endobj -4748 0 obj << -/D [4741 0 R /XYZ 111.2626 617.9778 null] +4733 0 obj << +/D [4726 0 R /XYZ 111.2626 617.9778 null] >> endobj -4749 0 obj << -/D [4741 0 R /XYZ 71.731 615.821 null] +4734 0 obj << +/D [4726 0 R /XYZ 71.731 615.821 null] >> endobj -4750 0 obj << -/D [4741 0 R /XYZ 71.731 600.877 null] +4735 0 obj << +/D [4726 0 R /XYZ 71.731 600.877 null] >> endobj -4751 0 obj << -/D [4741 0 R /XYZ 71.731 551.8259 null] +4736 0 obj << +/D [4726 0 R /XYZ 71.731 551.8259 null] >> endobj -4752 0 obj << -/D [4741 0 R /XYZ 71.731 525.923 null] +4737 0 obj << +/D [4726 0 R /XYZ 71.731 525.923 null] >> endobj -4753 0 obj << -/D [4741 0 R /XYZ 213.9555 512.9716 null] +4738 0 obj << +/D [4726 0 R /XYZ 213.9555 512.9716 null] >> endobj -4754 0 obj << -/D [4741 0 R /XYZ 71.731 510.8147 null] +4739 0 obj << +/D [4726 0 R /XYZ 71.731 510.8147 null] >> endobj -4755 0 obj << -/D [4741 0 R /XYZ 71.731 495.8708 null] +4740 0 obj << +/D [4726 0 R /XYZ 71.731 495.8708 null] >> endobj -4756 0 obj << -/D [4741 0 R /XYZ 134.9992 486.3713 null] +4741 0 obj << +/D [4726 0 R /XYZ 134.9992 486.3713 null] >> endobj -4757 0 obj << -/D [4741 0 R /XYZ 71.731 458.4759 null] +4742 0 obj << +/D [4726 0 R /XYZ 71.731 458.4759 null] >> endobj -4758 0 obj << -/D [4741 0 R /XYZ 71.731 386.5806 null] +4743 0 obj << +/D [4726 0 R /XYZ 71.731 386.5806 null] >> endobj -4759 0 obj << -/D [4741 0 R /XYZ 71.731 334.7749 null] +4744 0 obj << +/D [4726 0 R /XYZ 71.731 334.7749 null] >> endobj -4760 0 obj << -/D [4741 0 R /XYZ 71.731 319.8309 null] +4745 0 obj << +/D [4726 0 R /XYZ 71.731 319.8309 null] >> endobj -4761 0 obj << -/D [4741 0 R /XYZ 417.3281 310.3315 null] +4746 0 obj << +/D [4726 0 R /XYZ 417.3281 310.3315 null] >> endobj -4762 0 obj << -/D [4741 0 R /XYZ 218.7038 298.6752 null] +4747 0 obj << +/D [4726 0 R /XYZ 218.7038 298.6752 null] >> endobj -4763 0 obj << -/D [4741 0 R /XYZ 508.9315 298.6752 null] +4748 0 obj << +/D [4726 0 R /XYZ 508.9315 298.6752 null] >> endobj -4764 0 obj << -/D [4741 0 R /XYZ 76.7123 270.3813 null] +4749 0 obj << +/D [4726 0 R /XYZ 76.7123 270.3813 null] >> endobj -4765 0 obj << -/D [4741 0 R /XYZ 118.5554 226.8359 null] +4750 0 obj << +/D [4726 0 R /XYZ 118.5554 226.8359 null] >> endobj -4766 0 obj << -/D [4741 0 R /XYZ 135.3953 218.3716 null] +4751 0 obj << +/D [4726 0 R /XYZ 135.3953 218.3716 null] >> endobj -4767 0 obj << -/D [4741 0 R /XYZ 222.2315 218.3716 null] +4752 0 obj << +/D [4726 0 R /XYZ 222.2315 218.3716 null] >> endobj -4768 0 obj << -/D [4741 0 R /XYZ 433.1768 218.3716 null] +4753 0 obj << +/D [4726 0 R /XYZ 433.1768 218.3716 null] >> endobj 2000 0 obj << -/D [4741 0 R /XYZ 71.731 184.795 null] +/D [4726 0 R /XYZ 71.731 184.795 null] >> endobj 946 0 obj << -/D [4741 0 R /XYZ 267.2242 152.399 null] +/D [4726 0 R /XYZ 267.2242 152.399 null] >> endobj -4769 0 obj << -/D [4741 0 R /XYZ 71.731 149.4294 null] +4754 0 obj << +/D [4726 0 R /XYZ 71.731 149.4294 null] >> endobj -4770 0 obj << -/D [4741 0 R /XYZ 71.731 132.2936 null] +4755 0 obj << +/D [4726 0 R /XYZ 71.731 132.2936 null] >> endobj -4771 0 obj << -/D [4741 0 R /XYZ 266.9195 111.9507 null] +4756 0 obj << +/D [4726 0 R /XYZ 266.9195 111.9507 null] >> endobj -4740 0 obj << +4725 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F32 1306 0 R /F44 2183 0 R /F48 2196 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4774 0 obj << +4759 0 obj << /Length 3012 /Filter /FlateDecode >> @@ -20502,99 +20523,99 @@ E �~��e��7�}A|}Ѷo������e��yܵ�U{g_a�a��`e�P]���*5�U��V�3��4��Mq��p�e�y,V#ɦ�J�G���I�#�VP���AE��ʝ� lO��{:�l�%��ZN�BQ��-�������j�W.�4�����Q y��d*�c�^?q_�Y�e��+��j?I]��'�D���S�HckEi4J���Џu����c�dV�e�����-�����f���L�����H��_EQ�W��+��uw5���.C5mmy8��Q�l��� �g�a!6vq��|P4�}�&�ϿA�����h���n�VIo�26t�<����Pş��2֛ϝ+l�\�9�#v}i5����$@�R�>����)Fn�{����y�x����0�mlҙ-��{s� �P�-�� ����4���$N��{@���[���+��Afk�|�(��N��w(}1�x�_�P9�� x���@� �����xT��=�l]�1��C� ��!J���#���q+����^w'��4:�L=~3��(���i��B_�:�FO�n!�d���Ѐt��Q��"�ۑi7��5p��A�^��r��oWa��[��yr�Jzp&��1�A��!&�>6����e.Cύ��_j��:oJn{@n��ؤq8�y�G��5en�'�w����<�>�Y�<N�۲����.�?���endstream endobj -4773 0 obj << +4758 0 obj << /Type /Page -/Contents 4774 0 R -/Resources 4772 0 R +/Contents 4759 0 R +/Resources 4757 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4799 0 R +/Parent 4784 0 R >> endobj -4775 0 obj << -/D [4773 0 R /XYZ 71.731 729.2652 null] +4760 0 obj << +/D [4758 0 R /XYZ 71.731 729.2652 null] >> endobj -4776 0 obj << -/D [4773 0 R /XYZ 71.731 741.2204 null] +4761 0 obj << +/D [4758 0 R /XYZ 71.731 741.2204 null] >> endobj -4777 0 obj << -/D [4773 0 R /XYZ 71.731 652.3886 null] +4762 0 obj << +/D [4758 0 R /XYZ 71.731 652.3886 null] >> endobj -4778 0 obj << -/D [4773 0 R /XYZ 71.731 595.6016 null] +4763 0 obj << +/D [4758 0 R /XYZ 71.731 595.6016 null] >> endobj -4779 0 obj << -/D [4773 0 R /XYZ 71.731 538.8145 null] +4764 0 obj << +/D [4758 0 R /XYZ 71.731 538.8145 null] >> endobj -4780 0 obj << -/D [4773 0 R /XYZ 253.9215 528.0199 null] +4765 0 obj << +/D [4758 0 R /XYZ 253.9215 528.0199 null] >> endobj -4781 0 obj << -/D [4773 0 R /XYZ 311.6869 515.0685 null] +4766 0 obj << +/D [4758 0 R /XYZ 311.6869 515.0685 null] >> endobj 2001 0 obj << -/D [4773 0 R /XYZ 71.731 494.9789 null] +/D [4758 0 R /XYZ 71.731 494.9789 null] >> endobj 950 0 obj << -/D [4773 0 R /XYZ 308.3972 457.7634 null] +/D [4758 0 R /XYZ 308.3972 457.7634 null] >> endobj -4782 0 obj << -/D [4773 0 R /XYZ 71.731 447.6207 null] +4767 0 obj << +/D [4758 0 R /XYZ 71.731 447.6207 null] >> endobj -4783 0 obj << -/D [4773 0 R /XYZ 366.7725 437.6388 null] +4768 0 obj << +/D [4758 0 R /XYZ 366.7725 437.6388 null] >> endobj -4784 0 obj << -/D [4773 0 R /XYZ 71.731 417.5493 null] +4769 0 obj << +/D [4758 0 R /XYZ 71.731 417.5493 null] >> endobj -4785 0 obj << -/D [4773 0 R /XYZ 386.4974 393.8032 null] +4770 0 obj << +/D [4758 0 R /XYZ 386.4974 393.8032 null] >> endobj -4786 0 obj << -/D [4773 0 R /XYZ 71.731 373.7136 null] +4771 0 obj << +/D [4758 0 R /XYZ 71.731 373.7136 null] >> endobj -4787 0 obj << -/D [4773 0 R /XYZ 380.2047 362.919 null] +4772 0 obj << +/D [4758 0 R /XYZ 380.2047 362.919 null] >> endobj -4788 0 obj << -/D [4773 0 R /XYZ 71.731 342.8295 null] +4773 0 obj << +/D [4758 0 R /XYZ 71.731 342.8295 null] >> endobj -4789 0 obj << -/D [4773 0 R /XYZ 71.731 298.9938 null] +4774 0 obj << +/D [4758 0 R /XYZ 71.731 298.9938 null] >> endobj -4790 0 obj << -/D [4773 0 R /XYZ 71.731 281.0611 null] +4775 0 obj << +/D [4758 0 R /XYZ 71.731 281.0611 null] >> endobj -4791 0 obj << -/D [4773 0 R /XYZ 71.731 257.3151 null] +4776 0 obj << +/D [4758 0 R /XYZ 71.731 257.3151 null] >> endobj -4792 0 obj << -/D [4773 0 R /XYZ 228.316 257.3151 null] +4777 0 obj << +/D [4758 0 R /XYZ 228.316 257.3151 null] >> endobj -4793 0 obj << -/D [4773 0 R /XYZ 71.731 242.2068 null] +4778 0 obj << +/D [4758 0 R /XYZ 71.731 242.2068 null] >> endobj -4794 0 obj << -/D [4773 0 R /XYZ 71.731 227.2628 null] +4779 0 obj << +/D [4758 0 R /XYZ 71.731 227.2628 null] >> endobj -4795 0 obj << -/D [4773 0 R /XYZ 351.5704 217.7634 null] +4780 0 obj << +/D [4758 0 R /XYZ 351.5704 217.7634 null] >> endobj -4796 0 obj << -/D [4773 0 R /XYZ 71.731 166.5554 null] +4781 0 obj << +/D [4758 0 R /XYZ 71.731 166.5554 null] >> endobj -4797 0 obj << -/D [4773 0 R /XYZ 154.7543 153.604 null] +4782 0 obj << +/D [4758 0 R /XYZ 154.7543 153.604 null] >> endobj -4798 0 obj << -/D [4773 0 R /XYZ 102.1666 140.6525 null] +4783 0 obj << +/D [4758 0 R /XYZ 102.1666 140.6525 null] >> endobj 2002 0 obj << -/D [4773 0 R /XYZ 71.731 134.2905 null] +/D [4758 0 R /XYZ 71.731 134.2905 null] >> endobj -4772 0 obj << +4757 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F35 1752 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4802 0 obj << +4787 0 obj << /Length 3321 /Filter /FlateDecode >> @@ -20619,126 +20640,126 @@ n ?�Аe��P.���!���~E�CP��ϳ�e� ~#k�]?��'Y�¦"��,��+G��e���ܵŨ`�?1!KcN���H\����@7L��呂��Ѵ��!1���~�yj�A��u����#����G�����Kp�]����R#Dq�����3��8�x",� !hB�2�����idu���nK �$��N�3tqa6�W����BP�am]���_,D�g�FG���K� ��Q6���;.혷N���C��(s3 ����4�y�o�8�@�<9�@Y���V�?�C�endstream endobj -4801 0 obj << +4786 0 obj << /Type /Page -/Contents 4802 0 R -/Resources 4800 0 R +/Contents 4787 0 R +/Resources 4785 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4799 0 R +/Parent 4784 0 R >> endobj -4803 0 obj << -/D [4801 0 R /XYZ 71.731 729.2652 null] +4788 0 obj << +/D [4786 0 R /XYZ 71.731 729.2652 null] >> endobj -4804 0 obj << -/D [4801 0 R /XYZ 71.731 741.2204 null] +4789 0 obj << +/D [4786 0 R /XYZ 71.731 741.2204 null] >> endobj 954 0 obj << -/D [4801 0 R /XYZ 251.7299 707.8408 null] +/D [4786 0 R /XYZ 251.7299 707.8408 null] +>> endobj +4790 0 obj << +/D [4786 0 R /XYZ 71.731 697.6981 null] +>> endobj +4791 0 obj << +/D [4786 0 R /XYZ 71.731 662.6454 null] +>> endobj +4792 0 obj << +/D [4786 0 R /XYZ 71.731 662.6454 null] +>> endobj +4793 0 obj << +/D [4786 0 R /XYZ 71.731 618.8098 null] +>> endobj +4794 0 obj << +/D [4786 0 R /XYZ 71.731 618.8098 null] +>> endobj +4795 0 obj << +/D [4786 0 R /XYZ 253.5336 608.0152 null] +>> endobj +4796 0 obj << +/D [4786 0 R /XYZ 71.731 562.0227 null] +>> endobj +4797 0 obj << +/D [4786 0 R /XYZ 71.731 562.0227 null] +>> endobj +4798 0 obj << +/D [4786 0 R /XYZ 71.731 531.1385 null] +>> endobj +4799 0 obj << +/D [4786 0 R /XYZ 71.731 531.1385 null] +>> endobj +4800 0 obj << +/D [4786 0 R /XYZ 439.2249 520.3439 null] +>> endobj +4801 0 obj << +/D [4786 0 R /XYZ 191.1469 507.3925 null] +>> endobj +4802 0 obj << +/D [4786 0 R /XYZ 307.0556 507.3925 null] +>> endobj +4803 0 obj << +/D [4786 0 R /XYZ 71.731 494.4411 null] +>> endobj +4804 0 obj << +/D [4786 0 R /XYZ 71.731 487.3029 null] >> endobj 4805 0 obj << -/D [4801 0 R /XYZ 71.731 697.6981 null] +/D [4786 0 R /XYZ 71.731 487.3029 null] >> endobj 4806 0 obj << -/D [4801 0 R /XYZ 71.731 662.6454 null] +/D [4786 0 R /XYZ 71.731 430.5159 null] >> endobj 4807 0 obj << -/D [4801 0 R /XYZ 71.731 662.6454 null] +/D [4786 0 R /XYZ 71.731 430.5159 null] >> endobj 4808 0 obj << -/D [4801 0 R /XYZ 71.731 618.8098 null] +/D [4786 0 R /XYZ 71.731 399.6317 null] >> endobj 4809 0 obj << -/D [4801 0 R /XYZ 71.731 618.8098 null] +/D [4786 0 R /XYZ 71.731 399.6317 null] >> endobj 4810 0 obj << -/D [4801 0 R /XYZ 253.5336 608.0152 null] +/D [4786 0 R /XYZ 71.731 329.8932 null] >> endobj 4811 0 obj << -/D [4801 0 R /XYZ 71.731 562.0227 null] +/D [4786 0 R /XYZ 71.731 329.8932 null] >> endobj 4812 0 obj << -/D [4801 0 R /XYZ 71.731 562.0227 null] +/D [4786 0 R /XYZ 210.674 319.0986 null] >> endobj 4813 0 obj << -/D [4801 0 R /XYZ 71.731 531.1385 null] +/D [4786 0 R /XYZ 137.0351 241.39 null] >> endobj 4814 0 obj << -/D [4801 0 R /XYZ 71.731 531.1385 null] +/D [4786 0 R /XYZ 71.731 229.9878 null] >> endobj 4815 0 obj << -/D [4801 0 R /XYZ 439.2249 520.3439 null] +/D [4786 0 R /XYZ 71.731 191.7761 null] >> endobj 4816 0 obj << -/D [4801 0 R /XYZ 191.1469 507.3925 null] +/D [4786 0 R /XYZ 258.0065 178.9242 null] >> endobj 4817 0 obj << -/D [4801 0 R /XYZ 307.0556 507.3925 null] +/D [4786 0 R /XYZ 394.4509 153.0214 null] >> endobj 4818 0 obj << -/D [4801 0 R /XYZ 71.731 494.4411 null] +/D [4786 0 R /XYZ 71.731 140.07 null] >> endobj 4819 0 obj << -/D [4801 0 R /XYZ 71.731 487.3029 null] +/D [4786 0 R /XYZ 71.731 133.7079 null] >> endobj 4820 0 obj << -/D [4801 0 R /XYZ 71.731 487.3029 null] +/D [4786 0 R /XYZ 288.1288 122.1372 null] >> endobj 4821 0 obj << -/D [4801 0 R /XYZ 71.731 430.5159 null] +/D [4786 0 R /XYZ 111.0884 109.1858 null] >> endobj 4822 0 obj << -/D [4801 0 R /XYZ 71.731 430.5159 null] ->> endobj -4823 0 obj << -/D [4801 0 R /XYZ 71.731 399.6317 null] ->> endobj -4824 0 obj << -/D [4801 0 R /XYZ 71.731 399.6317 null] ->> endobj -4825 0 obj << -/D [4801 0 R /XYZ 71.731 329.8932 null] ->> endobj -4826 0 obj << -/D [4801 0 R /XYZ 71.731 329.8932 null] ->> endobj -4827 0 obj << -/D [4801 0 R /XYZ 210.674 319.0986 null] ->> endobj -4828 0 obj << -/D [4801 0 R /XYZ 137.0351 241.39 null] ->> endobj -4829 0 obj << -/D [4801 0 R /XYZ 71.731 229.9878 null] ->> endobj -4830 0 obj << -/D [4801 0 R /XYZ 71.731 191.7761 null] ->> endobj -4831 0 obj << -/D [4801 0 R /XYZ 258.0065 178.9242 null] ->> endobj -4832 0 obj << -/D [4801 0 R /XYZ 394.4509 153.0214 null] ->> endobj -4833 0 obj << -/D [4801 0 R /XYZ 71.731 140.07 null] ->> endobj -4834 0 obj << -/D [4801 0 R /XYZ 71.731 133.7079 null] ->> endobj -4835 0 obj << -/D [4801 0 R /XYZ 288.1288 122.1372 null] ->> endobj -4836 0 obj << -/D [4801 0 R /XYZ 111.0884 109.1858 null] ->> endobj -4837 0 obj << -/D [4801 0 R /XYZ 325.6187 109.1858 null] +/D [4786 0 R /XYZ 325.6187 109.1858 null] >> endobj -4800 0 obj << +4785 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F27 1298 0 R /F32 1306 0 R /F35 1752 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4840 0 obj << +4825 0 obj << /Length 2319 /Filter /FlateDecode >> @@ -20754,75 +20775,75 @@ xڍk l|+\�� ћNh$�]2ϙ�P��Z�� �I���O����������-����6��a�X���i)�>�D�i n�ư�Ռi,���[ W��w4rX[�� ��)*��*9��A��[�`��=qL} *����c�͆�x�d�mU��֦-B7��M�$H��F���;�&ى��z�CQ��i�bL���«f"��;��_����^}�姟v�j�����]x�zn�$�g9p�p��c{�{��hn$��L�.��mR��� �WI\h�'S����'՟����z��4$�S�o�_8��5��endstream endobj -4839 0 obj << +4824 0 obj << /Type /Page -/Contents 4840 0 R -/Resources 4838 0 R +/Contents 4825 0 R +/Resources 4823 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4799 0 R +/Parent 4784 0 R >> endobj -4841 0 obj << -/D [4839 0 R /XYZ 71.731 729.2652 null] +4826 0 obj << +/D [4824 0 R /XYZ 71.731 729.2652 null] >> endobj -4842 0 obj << -/D [4839 0 R /XYZ 71.731 677.4595 null] +4827 0 obj << +/D [4824 0 R /XYZ 71.731 677.4595 null] >> endobj -4843 0 obj << -/D [4839 0 R /XYZ 100.4128 664.5081 null] +4828 0 obj << +/D [4824 0 R /XYZ 100.4128 664.5081 null] >> endobj -4844 0 obj << -/D [4839 0 R /XYZ 71.731 644.4185 null] +4829 0 obj << +/D [4824 0 R /XYZ 71.731 644.4185 null] >> endobj -4845 0 obj << -/D [4839 0 R /XYZ 71.731 621.5044 null] +4830 0 obj << +/D [4824 0 R /XYZ 71.731 621.5044 null] >> endobj -4846 0 obj << -/D [4839 0 R /XYZ 71.731 576.9714 null] +4831 0 obj << +/D [4824 0 R /XYZ 71.731 576.9714 null] >> endobj -4847 0 obj << -/D [4839 0 R /XYZ 71.731 532.4384 null] +4832 0 obj << +/D [4824 0 R /XYZ 71.731 532.4384 null] >> endobj 2003 0 obj << -/D [4839 0 R /XYZ 71.731 492.8868 null] +/D [4824 0 R /XYZ 71.731 492.8868 null] >> endobj 958 0 obj << -/D [4839 0 R /XYZ 461.4838 455.6712 null] +/D [4824 0 R /XYZ 461.4838 455.6712 null] >> endobj -4848 0 obj << -/D [4839 0 R /XYZ 71.731 445.3062 null] +4833 0 obj << +/D [4824 0 R /XYZ 71.731 445.3062 null] >> endobj -4849 0 obj << -/D [4839 0 R /XYZ 71.731 409.6438 null] +4834 0 obj << +/D [4824 0 R /XYZ 71.731 409.6438 null] >> endobj 2004 0 obj << -/D [4839 0 R /XYZ 71.731 381.6489 null] +/D [4824 0 R /XYZ 71.731 381.6489 null] >> endobj 962 0 obj << -/D [4839 0 R /XYZ 392.055 336.4941 null] +/D [4824 0 R /XYZ 392.055 336.4941 null] >> endobj -4850 0 obj << -/D [4839 0 R /XYZ 71.731 332.6639 null] +4835 0 obj << +/D [4824 0 R /XYZ 71.731 332.6639 null] >> endobj -4851 0 obj << -/D [4839 0 R /XYZ 118.5554 290.4734 null] +4836 0 obj << +/D [4824 0 R /XYZ 118.5554 290.4734 null] >> endobj -4852 0 obj << -/D [4839 0 R /XYZ 71.731 260.0888 null] +4837 0 obj << +/D [4824 0 R /XYZ 71.731 260.0888 null] >> endobj -4853 0 obj << -/D [4839 0 R /XYZ 71.731 181.4389 null] +4838 0 obj << +/D [4824 0 R /XYZ 71.731 181.4389 null] >> endobj -4854 0 obj << -/D [4839 0 R /XYZ 71.731 139.6606 null] +4839 0 obj << +/D [4824 0 R /XYZ 71.731 139.6606 null] >> endobj -4855 0 obj << -/D [4839 0 R /XYZ 75.0485 100.9058 null] +4840 0 obj << +/D [4824 0 R /XYZ 75.0485 100.9058 null] >> endobj -4838 0 obj << +4823 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F35 1752 0 R /F23 1290 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4858 0 obj << +4843 0 obj << /Length 3062 /Filter /FlateDecode >> @@ -20837,231 +20858,232 @@ C C�YlĜ7����d{ǭ������!�����C:������q�/>@�?�fz�u������C�4������ �Ю�RS�(��ܑ���� ��X�_�u�� F�Y!��|��*p�P���R��/������sl��C�Cs��"EaWB~�x�/"+� ��\yendstream endobj +4842 0 obj << +/Type /Page +/Contents 4843 0 R +/Resources 4841 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 4784 0 R +>> endobj +4844 0 obj << +/D [4842 0 R /XYZ 71.731 729.2652 null] +>> endobj +4845 0 obj << +/D [4842 0 R /XYZ 71.731 675.3027 null] +>> endobj +4846 0 obj << +/D [4842 0 R /XYZ 71.731 633.5244 null] +>> endobj +4847 0 obj << +/D [4842 0 R /XYZ 126.6874 607.721 null] +>> endobj +4848 0 obj << +/D [4842 0 R /XYZ 261.1829 607.721 null] +>> endobj +4849 0 obj << +/D [4842 0 R /XYZ 468.0449 607.721 null] +>> endobj +4850 0 obj << +/D [4842 0 R /XYZ 225.8334 594.7696 null] +>> endobj +4851 0 obj << +/D [4842 0 R /XYZ 71.731 581.8182 null] +>> endobj +4852 0 obj << +/D [4842 0 R /XYZ 71.731 561.7286 null] +>> endobj +4853 0 obj << +/D [4842 0 R /XYZ 527.2229 550.934 null] +>> endobj +4854 0 obj << +/D [4842 0 R /XYZ 147.0485 537.9826 null] +>> endobj +4855 0 obj << +/D [4842 0 R /XYZ 225.1255 537.9826 null] +>> endobj +4856 0 obj << +/D [4842 0 R /XYZ 71.731 530.8444 null] +>> endobj 4857 0 obj << -/Type /Page -/Contents 4858 0 R -/Resources 4856 0 R -/MediaBox [0 0 609.7136 789.0411] -/Parent 4799 0 R +/D [4842 0 R /XYZ 153.8487 507.0984 null] +>> endobj +4858 0 obj << +/D [4842 0 R /XYZ 385.3055 507.0984 null] >> endobj 4859 0 obj << -/D [4857 0 R /XYZ 71.731 729.2652 null] +/D [4842 0 R /XYZ 132.5823 494.1469 null] >> endobj 4860 0 obj << -/D [4857 0 R /XYZ 71.731 675.3027 null] +/D [4842 0 R /XYZ 71.731 487.7849 null] >> endobj 4861 0 obj << -/D [4857 0 R /XYZ 71.731 633.5244 null] +/D [4842 0 R /XYZ 488.3922 476.2142 null] >> endobj 4862 0 obj << -/D [4857 0 R /XYZ 126.6874 607.721 null] +/D [4842 0 R /XYZ 71.731 432.3786 null] >> endobj 4863 0 obj << -/D [4857 0 R /XYZ 261.1829 607.721 null] +/D [4842 0 R /XYZ 71.731 432.3786 null] >> endobj 4864 0 obj << -/D [4857 0 R /XYZ 468.0449 607.721 null] +/D [4842 0 R /XYZ 71.731 382.9045 null] >> endobj 4865 0 obj << -/D [4857 0 R /XYZ 225.8334 594.7696 null] +/D [4842 0 R /XYZ 71.731 349.8635 null] >> endobj 4866 0 obj << -/D [4857 0 R /XYZ 71.731 581.8182 null] +/D [4842 0 R /XYZ 71.731 280.1251 null] >> endobj 4867 0 obj << -/D [4857 0 R /XYZ 71.731 561.7286 null] +/D [4842 0 R /XYZ 71.731 249.2409 null] >> endobj 4868 0 obj << -/D [4857 0 R /XYZ 527.2229 550.934 null] +/D [4842 0 R /XYZ 71.731 218.3567 null] >> endobj 4869 0 obj << -/D [4857 0 R /XYZ 147.0485 537.9826 null] +/D [4842 0 R /XYZ 235.2282 194.6106 null] >> endobj 4870 0 obj << -/D [4857 0 R /XYZ 225.1255 537.9826 null] +/D [4842 0 R /XYZ 71.731 174.5211 null] >> endobj 4871 0 obj << -/D [4857 0 R /XYZ 71.731 530.8444 null] +/D [4842 0 R /XYZ 282.3949 163.7265 null] >> endobj 4872 0 obj << -/D [4857 0 R /XYZ 153.8487 507.0984 null] +/D [4842 0 R /XYZ 500.3238 163.7265 null] >> endobj 4873 0 obj << -/D [4857 0 R /XYZ 385.3055 507.0984 null] +/D [4842 0 R /XYZ 300.3059 150.775 null] >> endobj 4874 0 obj << -/D [4857 0 R /XYZ 132.5823 494.1469 null] +/D [4842 0 R /XYZ 71.731 137.8236 null] >> endobj 4875 0 obj << -/D [4857 0 R /XYZ 71.731 487.7849 null] ->> endobj -4876 0 obj << -/D [4857 0 R /XYZ 488.3922 476.2142 null] +/D [4842 0 R /XYZ 71.731 114.81 null] >> endobj -4877 0 obj << -/D [4857 0 R /XYZ 71.731 432.3786 null] +4841 0 obj << +/Font << /F33 1398 0 R /F27 1298 0 R /F35 1752 0 R /F32 1306 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 4878 0 obj << -/D [4857 0 R /XYZ 71.731 432.3786 null] +/Length 2537 +/Filter /FlateDecode +>> +stream +xڍY�o�6���/h��z���.�{[,���w�]�d��u�%W�ͥ���7�ʒ�$�|09�3?�C���"�"��G%B��Zd�W�bK�^IfY1�j��z�����-��*\��ߍ��{�"�/���Λ}z�t�\��uBA�o����E�#��~�GQ����ϯ~ZG^$��?���5�a��A��G O�a�"rc�42 +���r��s}C�ߥ��o���+�ݽ~|���ٮ���ξ�M�F}2�K��JJ�gľKb�V7���vM�?��{=y I�_�f��f�Y%�V����ԙn[f�����d�M�!p����Fns�[�D��0��z����du���XW����R�;]�E]�몒wl�ݾhi�}is��!����@ <��?�����?��������'��p����Ӈc�v�VW���ޤ�-�wۗ�����ZC�C):`�����A� +�V(P#$I�D }������S���n�+e�,5�xĪ�̚�i�� �Y4��eY/U�</!��vi�}3c.�86�qb��2xWh;�u�^;#�ާ��f�K�CQ]b�y �s)U��E����Ȓ��H]�&��ӆ��nM�@��"��#�hT�]�vE˻����V�R���b��іMڜA����Xȥ/<���KF��T3�Y & 3�&��$�1OQ���m87r=��(I�6}��c�7�t�Dq`��)�d&��qʧ;�\�˜�������mВ��$�~z(8{XJ�|7�w��P��u�"�Q��Λw��fMq�x���Vwg�ޚ���W�&4��+ �� oμϺ*=�f��Vh�G4��� ���Y���~&�B��b@���P3xa�Es�����0��D���`b�̚Ǒ>#V��A^��(�҈���Mݑ�a�ޞ-ڸ�� �BS��!lFQb��i��O�C���ni%mx8T�hmŜe$��$����w�ҙ4��#������� F�K7cǞ~1%eu�鈝=8�8"fӐ�����6 ����#�Q��`H8Dń�#��q� o��/L<ϥ�4_���>�����=�|�/K\�z��t�헔�"/�4(�P��$چ)�}1f�Gȡ+�����>�0��z�X +�D�2�P!h�Ƕ����7#�@�$|?���[�1F5�4ڹ0�6��n.'�\-v�f,��5�p\Ɖ�l&�c+��D���6�+fs�����ѿ�Ec%�CjIփn�R%/c��_��j��P��݀���"�}���\'�S�x��ҍ��,�,�& Cz"�v�����Nj%�>�lc4�1] �G�D����?)\�@���y翧�yϜ��k!䚉��2���S�=.UV�9�n����#���%����#�d� �,Q����8kVK�<m�3�7�Ut̵��2�;l�:]��[�?Ɩ/Ǻ��j~����E���K ʸ1� vʕ�c[,�`��������d�����V�]hL�qS;)�BeA�g��k�D��Ո����>�F�2b��1t�*��֬,W�����pR�T��1m:"!2�-ad �P�d{Z9�����5����� +E�<���ږ72E��p� ]��R�C�:��͐K{�h7�gQm�r��J8����B* +�av�h�%�cn-m|9�bm0M��`<��@����E���Ļ�1���bVNN8�0go�uV���U�a�<Z��S B��I�6�$�m�ad���'��@�LN%����� +x涉7�-?�n+�Ƽ��T�%T�Vp�G�QT���\����˯w�K��˟Zq|�<�:1wH>Ec$����pg�o\�{�MIpr�j�b<`d/��8\�5E�� ��=�O��-W���zVsps2D��3l�I^���0y6ˏ��L��Ky~�ȗ����~���P��\���,RJ�p �m ���^_J'�! +�N�I`���.����s���zb�Y�S|CFS_ +ZY/c����ض���+�1���m���q�3�K�?�����DΑ��M�J�ؤN��p�c["�iQ�`S��|����db?�ڷ��>� ��Q��5�;b$R=���V��8�;�(*+�k%�%eA�o��,�^\�}� m(���s>���0"�\��|hcԭ�ڕ��+"�;0� +���3_�����ޕC�����.iL&�-�N�*w�K���R@&S�}Ixg��~�F�%�ã��By�7��VA�Q��� B�e���1����|F�ִ��T4��oMn�#�=����D5��f�� �8��[e�@��b��D:PHMi$$���&�h����k����EU�1<�o��m����aUw<ާ<SG�ڶ�h�5l����/���0M��O�$�<R�s��.�|<�G����W�k}V.�6:�3=�g,�Y���%r��R����_c����Cz?���]��Ô��b�N~�/A3�D�i[�S%=���X��>���f�b��X.4I���'�́�Х�endstream +endobj +4877 0 obj << +/Type /Page +/Contents 4878 0 R +/Resources 4876 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 4784 0 R >> endobj 4879 0 obj << -/D [4857 0 R /XYZ 71.731 382.9045 null] +/D [4877 0 R /XYZ 71.731 729.2652 null] >> endobj 4880 0 obj << -/D [4857 0 R /XYZ 71.731 349.8635 null] +/D [4877 0 R /XYZ 71.731 741.2204 null] >> endobj 4881 0 obj << -/D [4857 0 R /XYZ 71.731 280.1251 null] +/D [4877 0 R /XYZ 71.731 663.2733 null] >> endobj 4882 0 obj << -/D [4857 0 R /XYZ 71.731 249.2409 null] +/D [4877 0 R /XYZ 262.7133 650.4608 null] >> endobj 4883 0 obj << -/D [4857 0 R /XYZ 71.731 218.3567 null] +/D [4877 0 R /XYZ 71.731 625.3899 null] >> endobj 4884 0 obj << -/D [4857 0 R /XYZ 235.2282 194.6106 null] +/D [4877 0 R /XYZ 71.731 604.547 null] >> endobj 4885 0 obj << -/D [4857 0 R /XYZ 71.731 174.5211 null] +/D [4877 0 R /XYZ 462.6651 592.9763 null] >> endobj 4886 0 obj << -/D [4857 0 R /XYZ 282.3949 163.7265 null] +/D [4877 0 R /XYZ 71.731 572.8868 null] >> endobj 4887 0 obj << -/D [4857 0 R /XYZ 500.3238 163.7265 null] +/D [4877 0 R /XYZ 86.8712 536.1893 null] >> endobj 4888 0 obj << -/D [4857 0 R /XYZ 300.3059 150.775 null] +/D [4877 0 R /XYZ 71.731 510.2864 null] >> endobj 4889 0 obj << -/D [4857 0 R /XYZ 71.731 137.8236 null] +/D [4877 0 R /XYZ 71.731 485.2155 null] >> endobj 4890 0 obj << -/D [4857 0 R /XYZ 71.731 114.81 null] +/D [4877 0 R /XYZ 71.731 464.3727 null] >> endobj -4856 0 obj << -/Font << /F33 1398 0 R /F27 1298 0 R /F35 1752 0 R /F32 1306 0 R >> -/ProcSet [ /PDF /Text ] +4891 0 obj << +/D [4877 0 R /XYZ 71.731 419.761 null] >> endobj -4893 0 obj << -/Length 2530 -/Filter /FlateDecode ->> -stream -xڍk��8�{En��q��ƒ���m�m��br�m�c+������s����G��c{<3E>��(�")>�r�'W���j��^��L�y!�d�4�1����מ�JD�p�ݯ|7��%��S"d���:�����z�� }_�mW��?��@���Ꮲ,��o۟_����H$1�R��jA�`����&��ͼU��(id����&t]����ߥ�=6z�������١������M�FyWJ" ���H)� �߷��O��F��?�b̍f��Ͱ�,����?�sSg�m?��kĺHθH�ě2B���k����"��4Dۣ^od�:Y�4�=�Un��(�����NWmQW��ສ���!�;-AG�� ���'v� ��B��/����o߽����߿��j�S{'��)�n;}:�i�ouu{(�]ZނV�}�)��S�Am�cw*E���A��ļ� m�t��@4H�L�k-���=9fw�AY�A�M;�X4Y� �V9y>�"`_�e�V�s7\��ۥU�͂�\c�PƉ���>�A��c��#rZC�䟬��i~*���>�=�\K�8uQ�!��;I D��NL��|�i�ޒ�M�@�κa ���h�&����-�.*�}��J��u>�u�����f�x�&�L�C�|��3��C�l��2J&��I�Y�� ��&�h�zN�;I�6�'�����K�_c��h2i u�^��O��"4:�.s��jB� -l�q����C��ہ���DG�l�S��أ�^D6���y��-aڬ)���4��nF��٩/y�OB>�����R�����ғ�kV��i�Z�GU�~���p�"X ��*vV)j�B��(bj�p��hM:.��o`�4�}�\��P�|*�>a��;�>L��٤ V8��p+4��be%V��V�����������uK3i�k�����e3K3���3pl��3^1�K{@)!�@�QNYg�s��[�cK?���:���c����]���O�{6^���(�xQ0d�b�A��n�3�z�f�������D^�����(!|O���f�k�W�x�����ZM�%�� -Ee+K��!�wѧ@M���ДHp��x���0x�� `1މ��,�z� -A�?�m2�D�p�ऌ��3�ʸ��cD3W�] -#�#��q�`��AЈy�C�&��8����ll�`��p����,�����{_4�#^��x��I U�4fJ���7��ul,RofI滻�L�8 704���H)ݘ��B�"4 H���#����7�>�;/���MЈ�t���>r%z��n�J���"Pn����{ٟ�, p�j0B��H�=W&\9x�AE��E��}��G�E��=���)�M�]G4��E7p3n�|��DY�8X��i����U�1ձ��ܮ�Ij�tݱn�1��o�r,+Ρ���-v%�/"����J���B�S����b1=f 7U��OՏ��I^��h�B*�f�0zR�ʂ�#��G��@��b+��%�}l��%�H��&��Ub��E^�]��p�T(�9m:B�g�S�H3�n��Ɏ4sN�� �kF�]G��Y�-od�З�ԃt��J����PM�ݐK{�hw���6m�[�B%��Hdj!��0�,4Ò�1�{��ALS80>E�x����E����{�ļa�B�Ei89!�c�Ξ�=�@q3+,�� -pk��F�Q�&��,�x�#�5Q�5���\J���]*����io|Z�~�Xj8-��~�F�S��P)[���GQ '[2�{n����ލ/��?���8\y�qb�}�ƈ����pf</�{s�MIp1�fbb�`�/��Q9\�5E����#�O��-W���:�9�9�����$��H�I�<���D�����<����~I���~"��P��\���,bJ�p �"m � �V_K'�!�J蛉a���.����s���z"�Y�K|CBS_ -�ٮc��3۶�Y�+�1���6�3r�8��-%uȟ��K�8�s$D��:�'6�S��2\�ؖ�Z��\,D�Ɣr9_�)9u^R�B�����@�}C=���#F$�s�Z��r�,S���f��M��KV3W�q)�-7���;/��>aD� -�yhcđ��q�JW�!� B������'_~1ۻr��7���KS��x�dY�;r��ҁM��L��zIx��L��`I��^�ިR��G�?�7��,���f�~��ϨњV�����Jy�3ѽ����8����9i�Ѓo6���y�*�:gfcL�(z�@&5���d�#�ԢIR��$����YUL1\�o���l�� ê�>�<���vm�S�T�2R���������4M��%5+ǖj�t�ۓ�2��[�X��WX���KY��y����АWd�n�䤛����������S�i��χ&͇!�+���|����� ��-���^H�~,b�LN�<��2P1 -�k,�$Q��!�������endstream -endobj 4892 0 obj << -/Type /Page -/Contents 4893 0 R -/Resources 4891 0 R -/MediaBox [0 0 609.7136 789.0411] -/Parent 4799 0 R +/D [4877 0 R /XYZ 71.731 408.8668 null] +>> endobj +4893 0 obj << +/D [4877 0 R /XYZ 71.731 403.8855 null] >> endobj 4894 0 obj << -/D [4892 0 R /XYZ 71.731 729.2652 null] +/D [4877 0 R /XYZ 81.6937 381.071 null] >> endobj 4895 0 obj << -/D [4892 0 R /XYZ 71.731 741.2204 null] +/D [4877 0 R /XYZ 186.3981 368.1196 null] >> endobj 4896 0 obj << -/D [4892 0 R /XYZ 71.731 663.2733 null] +/D [4877 0 R /XYZ 134.4201 355.1681 null] >> endobj 4897 0 obj << -/D [4892 0 R /XYZ 262.7133 650.4608 null] +/D [4877 0 R /XYZ 197.7326 355.1681 null] >> endobj 4898 0 obj << -/D [4892 0 R /XYZ 71.731 625.3899 null] +/D [4877 0 R /XYZ 71.731 335.0785 null] >> endobj 4899 0 obj << -/D [4892 0 R /XYZ 71.731 604.547 null] +/D [4877 0 R /XYZ 301.2456 324.2839 null] >> endobj 4900 0 obj << -/D [4892 0 R /XYZ 462.6651 592.9763 null] +/D [4877 0 R /XYZ 172.7839 311.3325 null] >> endobj 4901 0 obj << -/D [4892 0 R /XYZ 71.731 572.8868 null] +/D [4877 0 R /XYZ 494.944 311.3325 null] >> endobj 4902 0 obj << -/D [4892 0 R /XYZ 86.8712 536.1893 null] +/D [4877 0 R /XYZ 71.731 283.2728 null] >> endobj 4903 0 obj << -/D [4892 0 R /XYZ 71.731 510.2864 null] +/D [4877 0 R /XYZ 81.6937 267.4969 null] >> endobj 4904 0 obj << -/D [4892 0 R /XYZ 71.731 485.2155 null] +/D [4877 0 R /XYZ 187.8367 254.5455 null] >> endobj 4905 0 obj << -/D [4892 0 R /XYZ 71.731 464.3727 null] +/D [4877 0 R /XYZ 236.9551 228.6426 null] >> endobj 4906 0 obj << -/D [4892 0 R /XYZ 71.731 419.761 null] +/D [4877 0 R /XYZ 81.6937 215.6912 null] >> endobj 4907 0 obj << -/D [4892 0 R /XYZ 71.731 408.8668 null] ->> endobj -4908 0 obj << -/D [4892 0 R /XYZ 71.731 403.8855 null] ->> endobj -4909 0 obj << -/D [4892 0 R /XYZ 81.6937 381.071 null] ->> endobj -4910 0 obj << -/D [4892 0 R /XYZ 186.3981 368.1196 null] ->> endobj -4911 0 obj << -/D [4892 0 R /XYZ 134.4201 355.1681 null] ->> endobj -4912 0 obj << -/D [4892 0 R /XYZ 197.7326 355.1681 null] ->> endobj -4913 0 obj << -/D [4892 0 R /XYZ 71.731 335.0785 null] ->> endobj -4914 0 obj << -/D [4892 0 R /XYZ 301.2456 324.2839 null] ->> endobj -4915 0 obj << -/D [4892 0 R /XYZ 172.7839 311.3325 null] ->> endobj -4916 0 obj << -/D [4892 0 R /XYZ 494.944 311.3325 null] ->> endobj -4917 0 obj << -/D [4892 0 R /XYZ 71.731 283.2728 null] ->> endobj -4918 0 obj << -/D [4892 0 R /XYZ 81.6937 267.4969 null] ->> endobj -4919 0 obj << -/D [4892 0 R /XYZ 187.8367 254.5455 null] ->> endobj -4920 0 obj << -/D [4892 0 R /XYZ 236.9551 228.6426 null] ->> endobj -4921 0 obj << -/D [4892 0 R /XYZ 81.6937 215.6912 null] ->> endobj -4922 0 obj << -/D [4892 0 R /XYZ 71.731 195.6016 null] +/D [4877 0 R /XYZ 71.731 195.6016 null] >> endobj 2005 0 obj << -/D [4892 0 R /XYZ 71.731 151.766 null] +/D [4877 0 R /XYZ 71.731 151.766 null] >> endobj -4891 0 obj << +4876 0 obj << /Font << /F33 1398 0 R /F35 1752 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4925 0 obj << -/Length 2757 +4910 0 obj << +/Length 2760 /Filter /FlateDecode >> stream @@ -21076,78 +21098,77 @@ r]prGq$Iw �Sۋ.���\��7���ܾq��u�'�K�C�}�Ll8���~�/�B[��QZ�ճ-$�]y�EM-�Es�H��* �z*�[�W�<�M��; u�5�PP�,?�EJ� � ��2�: pZ˱�-�24 �h�9 aX�~bv��V�MA��b�y�y'hl��<hi��bw�5�f�}c�G3H�pb�' >��o8{��X�!T=������&���+���H�bQ�-]sC͉Z�VO��/ah{�bqiKƘ��}ږ�h�b�Rsf�Ʈa2���n���6��� ��,��G���ȷP�[�/��@��xJ���)�SQ���A���5g��se!�3���P�������'D�;��O�_e��Z�lo1����A�y~ƯJ��u)����;1�3�4�O�VFa|��.�5H�K;9@^�%D&R �ؙs�� ���H�����R��e)��5X����s��ݯ)�N���.^&��aߛz�͂X�i��ED?��z������qCC�hSEJVW�UKa"�w�x�OJ��?J� 薉��O��B�0菦���Ag� -8�(6��J�i���kޱ��r��e�<��g�)��>l7���cB����b�:Гby�����r�pE(�� �T���I�L�T�#g�4ЕS���;�ۂ�����c.�@�6��a5� �JW2@w���J� 2d+��v�N#u�uvΙ\�vVo+�Z)"O6Ǔ�!}t�+�(��q�cGA�̬8]Vm�I��%/�� +����Z'��Y��f۷[,;Ly�w���a���������f�?��rO�+�+��������ǖ����_���]3��rz�y���ys*9I"�*��j)�Miݫ���Q�n4�]�d�������\hJj"4�AyP��B��w�J�FB �,8N���V%�ځ�y����.������!|�q������qg�56���;���� -��Z�T�����{��MM�z�S���G���$�ꏡ4�����U�O�p�<|����9[��endstream +8�(6��J�i���kޱ��r��e�<��g�)��>l7���cB����b�:Гby�����r�pE(�� �T���I�L�T�#g�4ЕS���;�ۂ�����c.�@�6��a5� �JW2@w���J� 2d+��v�N#u�uvΙ\�vVo+�Z)"O6Ǔ�!}t�+�(��q�cGA�̬8]Vm�I��%/�� +����Z'��Y��f۷[,;Ly�w���a���������f�?��rO�+�+��������ǖ����_���]3��rz�y���ys*9I"�*��j)�Miݫ���Q�n4�]�d�������\hJj"4�AyP��B��w�J�FB �,8N���V%�ځ�y����.������!|�q�����l��gp���Qc��j���Ma����D���L՛�i������ů�?��{�y�J��zA����8�<_��� w��'༱��Nendstream endobj -4924 0 obj << +4909 0 obj << /Type /Page -/Contents 4925 0 R -/Resources 4923 0 R +/Contents 4910 0 R +/Resources 4908 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4799 0 R +/Parent 4784 0 R >> endobj -4926 0 obj << -/D [4924 0 R /XYZ 71.731 729.2652 null] +4911 0 obj << +/D [4909 0 R /XYZ 71.731 729.2652 null] >> endobj -4927 0 obj << -/D [4924 0 R /XYZ 71.731 741.2204 null] +4912 0 obj << +/D [4909 0 R /XYZ 71.731 741.2204 null] >> endobj 966 0 obj << -/D [4924 0 R /XYZ 402.8496 705.7477 null] +/D [4909 0 R /XYZ 402.8496 705.7477 null] >> endobj -4928 0 obj << -/D [4924 0 R /XYZ 71.731 701.9174 null] +4913 0 obj << +/D [4909 0 R /XYZ 71.731 701.9174 null] >> endobj -4929 0 obj << -/D [4924 0 R /XYZ 118.5554 659.727 null] +4914 0 obj << +/D [4909 0 R /XYZ 118.5554 659.727 null] >> endobj -4930 0 obj << -/D [4924 0 R /XYZ 71.731 555.34 null] +4915 0 obj << +/D [4909 0 R /XYZ 71.731 555.34 null] >> endobj -4931 0 obj << -/D [4924 0 R /XYZ 271.0004 542.4881 null] +4916 0 obj << +/D [4909 0 R /XYZ 271.0004 542.4881 null] >> endobj -4932 0 obj << -/D [4924 0 R /XYZ 344.4787 516.5853 null] +4917 0 obj << +/D [4909 0 R /XYZ 344.4787 516.5853 null] >> endobj -4933 0 obj << -/D [4924 0 R /XYZ 71.731 498.553 null] +4918 0 obj << +/D [4909 0 R /XYZ 71.731 498.553 null] >> endobj -4934 0 obj << -/D [4924 0 R /XYZ 389.061 472.7497 null] +4919 0 obj << +/D [4909 0 R /XYZ 389.061 472.7497 null] >> endobj -4935 0 obj << -/D [4924 0 R /XYZ 118.6881 459.7982 null] +4920 0 obj << +/D [4909 0 R /XYZ 118.6881 459.7982 null] >> endobj -4936 0 obj << -/D [4924 0 R /XYZ 411.7689 459.7982 null] +4921 0 obj << +/D [4909 0 R /XYZ 411.7689 459.7982 null] >> endobj -4937 0 obj << -/D [4924 0 R /XYZ 71.731 439.7087 null] +4922 0 obj << +/D [4909 0 R /XYZ 71.731 439.7087 null] >> endobj -4938 0 obj << -/D [4924 0 R /XYZ 403.6536 415.9626 null] +4923 0 obj << +/D [4909 0 R /XYZ 403.6536 415.9626 null] >> endobj -4939 0 obj << -/D [4924 0 R /XYZ 71.731 390.8917 null] +4924 0 obj << +/D [4909 0 R /XYZ 71.731 390.8917 null] >> endobj -4940 0 obj << -/D [4924 0 R /XYZ 71.731 316.3712 null] +4925 0 obj << +/D [4909 0 R /XYZ 71.731 316.3712 null] >> endobj -4941 0 obj << -/D [4924 0 R /XYZ 477.6839 292.6251 null] +4926 0 obj << +/D [4909 0 R /XYZ 477.6839 292.6251 null] >> endobj -4942 0 obj << -/D [4924 0 R /XYZ 71.731 259.5841 null] +4927 0 obj << +/D [4909 0 R /XYZ 71.731 259.5841 null] >> endobj -4943 0 obj << -/D [4924 0 R /XYZ 71.731 197.8158 null] +4928 0 obj << +/D [4909 0 R /XYZ 71.731 197.8158 null] >> endobj -4923 0 obj << +4908 0 obj << /Font << /F33 1398 0 R /F23 1290 0 R /F44 2183 0 R /F27 1298 0 R /F35 1752 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4946 0 obj << +4931 0 obj << /Length 2249 /Filter /FlateDecode >> @@ -21164,94 +21185,94 @@ W^ ��!���)���i�v��YG��s+�H:�����GRd�u�`]�*�DeeIk�8i�Ե��V\~a���[�����f�n�s!rG>���� HG �����N =U��!׆�z��:%8H4��"�������u�hIs�I�D�����{Ў"�3%�:Kl�AÈ7ձֳ*4Z�UW�t[�d7�kK�d$[%}��KJ�A�ϭ��Ç��3���`�u��77����W��uv�܇�\ܨ��K�"֏~8��\~7�V��֣$ܝ?�)����w�ˬendstream endobj -4945 0 obj << +4930 0 obj << /Type /Page -/Contents 4946 0 R -/Resources 4944 0 R +/Contents 4931 0 R +/Resources 4929 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4962 0 R -/Annots [ 4953 0 R 4954 0 R 4955 0 R ] +/Parent 4947 0 R +/Annots [ 4938 0 R 4939 0 R 4940 0 R ] >> endobj -4953 0 obj << +4938 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [243.5321 301.1179 411.2056 312.0218] /Subtype /Link /A << /S /GoTo /D (cvs) >> >> endobj -4954 0 obj << +4939 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [493.3402 275.215 538.9788 286.1189] /Subtype /Link /A << /S /GoTo /D (tinderbox) >> >> endobj -4955 0 obj << +4940 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [70.7348 262.2636 268.7199 273.1675] /Subtype /Link /A << /S /GoTo /D (tinderbox) >> >> endobj -4947 0 obj << -/D [4945 0 R /XYZ 71.731 729.2652 null] +4932 0 obj << +/D [4930 0 R /XYZ 71.731 729.2652 null] >> endobj -4948 0 obj << -/D [4945 0 R /XYZ 71.731 525.8631 null] +4933 0 obj << +/D [4930 0 R /XYZ 71.731 525.8631 null] >> endobj -4949 0 obj << -/D [4945 0 R /XYZ 118.5554 487.2991 null] +4934 0 obj << +/D [4930 0 R /XYZ 118.5554 487.2991 null] >> endobj -4950 0 obj << -/D [4945 0 R /XYZ 211.9919 478.8347 null] +4935 0 obj << +/D [4930 0 R /XYZ 211.9919 478.8347 null] >> endobj -4951 0 obj << -/D [4945 0 R /XYZ 71.731 433.7095 null] +4936 0 obj << +/D [4930 0 R /XYZ 71.731 433.7095 null] >> endobj 2006 0 obj << -/D [4945 0 R /XYZ 71.731 406.8653 null] +/D [4930 0 R /XYZ 71.731 406.8653 null] >> endobj 970 0 obj << -/D [4945 0 R /XYZ 449.6052 363.7679 null] +/D [4930 0 R /XYZ 449.6052 363.7679 null] >> endobj 2007 0 obj << -/D [4945 0 R /XYZ 71.731 359.9376 null] +/D [4930 0 R /XYZ 71.731 359.9376 null] >> endobj 974 0 obj << -/D [4945 0 R /XYZ 159.4424 324.3955 null] +/D [4930 0 R /XYZ 159.4424 324.3955 null] >> endobj -4952 0 obj << -/D [4945 0 R /XYZ 71.731 317.0432 null] +4937 0 obj << +/D [4930 0 R /XYZ 71.731 317.0432 null] >> endobj 2008 0 obj << -/D [4945 0 R /XYZ 71.731 258.2785 null] +/D [4930 0 R /XYZ 71.731 258.2785 null] >> endobj 978 0 obj << -/D [4945 0 R /XYZ 141.1081 221.063 null] +/D [4930 0 R /XYZ 141.1081 221.063 null] >> endobj -4956 0 obj << -/D [4945 0 R /XYZ 71.731 213.7107 null] +4941 0 obj << +/D [4930 0 R /XYZ 71.731 213.7107 null] >> endobj -4957 0 obj << -/D [4945 0 R /XYZ 71.731 193.8003 null] +4942 0 obj << +/D [4930 0 R /XYZ 71.731 193.8003 null] >> endobj -4958 0 obj << -/D [4945 0 R /XYZ 331.4802 170.0543 null] +4943 0 obj << +/D [4930 0 R /XYZ 331.4802 170.0543 null] >> endobj -4959 0 obj << -/D [4945 0 R /XYZ 86.3959 144.1514 null] +4944 0 obj << +/D [4930 0 R /XYZ 86.3959 144.1514 null] >> endobj -4960 0 obj << -/D [4945 0 R /XYZ 71.731 137.0133 null] +4945 0 obj << +/D [4930 0 R /XYZ 71.731 137.0133 null] >> endobj -4961 0 obj << -/D [4945 0 R /XYZ 225.8809 113.2672 null] +4946 0 obj << +/D [4930 0 R /XYZ 225.8809 113.2672 null] >> endobj -4944 0 obj << +4929 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F35 1752 0 R /F23 1290 0 R /F44 2183 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4965 0 obj << +4950 0 obj << /Length 1344 /Filter /FlateDecode >> @@ -21261,75 +21282,75 @@ xڭW >��Γ�y�{Y ��G�:l$��xa�JQ�^ol�(��dg�j�����$�I$HPc8������1Z�t�����sɢ��w��!���� �E=�9��XH|��s������:5X ���6�"!f�WV������6��Y��U�ӂ(a��9�t���E� -X����~��0��e��響��1D���E_�bO�ր��H$���Y�h���{���c��L�)�ov|��_���b����Tr�[�,��l�J�b;]т��-&����IL:(��,`%:�{�D�jE`y�Kd���������-�|��z_9�}�j2�p��A���(~��WfH�'�1)���'�˨v�_𐫮����|�X����r�����|��>�}�AdTE�ߍ����hR��;|Q:�(���*�vz��1�N� �,�9B�/f�jzH�%y��� ع�k��K����9�H�8F���B���$���p���1����2���sh��vq�SS��5���Ђ���2�ѐB�h��LSR�dXqR����wJw����HQ� n����I�lͳͻ��&{�n�њ�|�-�S��_A�8�����endstream endobj -4964 0 obj << +4949 0 obj << /Type /Page -/Contents 4965 0 R -/Resources 4963 0 R +/Contents 4950 0 R +/Resources 4948 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4962 0 R +/Parent 4947 0 R >> endobj -4966 0 obj << -/D [4964 0 R /XYZ 71.731 729.2652 null] +4951 0 obj << +/D [4949 0 R /XYZ 71.731 729.2652 null] >> endobj -4967 0 obj << -/D [4964 0 R /XYZ 71.731 718.3063 null] +4952 0 obj << +/D [4949 0 R /XYZ 71.731 718.3063 null] >> endobj -4968 0 obj << -/D [4964 0 R /XYZ 373.6261 695.3923 null] +4953 0 obj << +/D [4949 0 R /XYZ 373.6261 695.3923 null] >> endobj 2009 0 obj << -/D [4964 0 R /XYZ 71.731 688.2541 null] +/D [4949 0 R /XYZ 71.731 688.2541 null] >> endobj 982 0 obj << -/D [4964 0 R /XYZ 204.6754 651.0386 null] +/D [4949 0 R /XYZ 204.6754 651.0386 null] >> endobj -4969 0 obj << -/D [4964 0 R /XYZ 71.731 643.6863 null] +4954 0 obj << +/D [4949 0 R /XYZ 71.731 643.6863 null] >> endobj -4970 0 obj << -/D [4964 0 R /XYZ 71.731 617.9626 null] +4955 0 obj << +/D [4949 0 R /XYZ 71.731 617.9626 null] >> endobj -4971 0 obj << -/D [4964 0 R /XYZ 249.701 617.9626 null] +4956 0 obj << +/D [4949 0 R /XYZ 249.701 617.9626 null] >> endobj -4972 0 obj << -/D [4964 0 R /XYZ 273.8213 605.0112 null] +4957 0 obj << +/D [4949 0 R /XYZ 273.8213 605.0112 null] >> endobj -4973 0 obj << -/D [4964 0 R /XYZ 71.731 597.873 null] +4958 0 obj << +/D [4949 0 R /XYZ 71.731 597.873 null] >> endobj 2010 0 obj << -/D [4964 0 R /XYZ 71.731 541.086 null] +/D [4949 0 R /XYZ 71.731 541.086 null] >> endobj 986 0 obj << -/D [4964 0 R /XYZ 189.2393 503.8705 null] +/D [4949 0 R /XYZ 189.2393 503.8705 null] >> endobj -4974 0 obj << -/D [4964 0 R /XYZ 71.731 496.5181 null] +4959 0 obj << +/D [4949 0 R /XYZ 71.731 496.5181 null] >> endobj -4975 0 obj << -/D [4964 0 R /XYZ 350.2936 457.8431 null] +4960 0 obj << +/D [4949 0 R /XYZ 350.2936 457.8431 null] >> endobj 2011 0 obj << -/D [4964 0 R /XYZ 71.731 450.7049 null] +/D [4949 0 R /XYZ 71.731 450.7049 null] >> endobj 990 0 obj << -/D [4964 0 R /XYZ 261.4143 413.4894 null] ->> endobj -4976 0 obj << -/D [4964 0 R /XYZ 71.731 406.1371 null] +/D [4949 0 R /XYZ 261.4143 413.4894 null] >> endobj -4977 0 obj << -/D [4964 0 R /XYZ 71.731 380.4134 null] +4961 0 obj << +/D [4949 0 R /XYZ 71.731 406.1371 null] >> endobj -4978 0 obj << -/D [4964 0 R /XYZ 365.6409 380.4134 null] +4962 0 obj << +/D [4949 0 R /XYZ 71.731 380.4134 null] >> endobj 4963 0 obj << +/D [4949 0 R /XYZ 365.6409 380.4134 null] +>> endobj +4948 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -4981 0 obj << +4966 0 obj << /Length 2440 /Filter /FlateDecode >> @@ -21345,123 +21366,123 @@ x řC=�,�u���+�[坘��1#������4���E��?TЯ�M3���*Դ�#�.Gq�!�YK��1�®��j�v7�UΛ�\�z�d ���e(��ƿ殼��ByW=�2,|�x�He`�a"O�w��>q��"��+�UU0���G�mB���{�(���GL�~g/�s@��5e��c8�l<�.��Hp�f�G��&����*��(���M��$�:g@.�������쩮'�D$)T��7�Ɓб��mx�A��%�h�4�����A:��5��FQ�3�I0|=a@��Cv~Q�3�����-���n���%�5������V�o���6z�~�o�Lt~n���6����5N�J��W.�Yr��XR����Â�LD��'�c[��9��`G6�x�d���i���/�C�r�$�[ ���>����~�ן���͞$�όO���91.Ʀ����aҒ� =x��f���D°A oh�b�+���w�6�L�M.?|�����<@Ҟ�~s &���.v8c��G����_0e*g��4g�Ϝih�u�˜_6�?��m9b>�To��@'0�+���3�h ��:z!%�((U$b�\L���:�X�����[ ���� �e�$9���'=���p����T�c�#rϱH_=#�#W`hP��?u�8֓L$���_�=��������C���41�sI��9��_zE�g�Q�l$� G��Y�ns���4bМH�Ź��4��i1g�������v��|�.�p�������ܱ��'�.��#�i{�K-�ܭ!`�pr��Ÿ/�74�l2�~�\)7|�������D�0�G��0~֭|Ӊ��.�0�L��É7-=٤ ����������a�\��jaP'������4����+�\ǎ!n<�Nj/�y�_N���}B�}���9�p��[M�B/=c��������v�t�'��7���^"�endstream endobj -4980 0 obj << +4965 0 obj << /Type /Page -/Contents 4981 0 R -/Resources 4979 0 R +/Contents 4966 0 R +/Resources 4964 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4962 0 R -/Annots [ 4988 0 R 4989 0 R ] +/Parent 4947 0 R +/Annots [ 4973 0 R 4974 0 R ] >> endobj -4988 0 obj << +4973 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [234.5514 546.7459 281.8882 557.6498] /Subtype /Link /A << /S /GoTo /D (installation) >> >> endobj -4989 0 obj << +4974 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [354.758 546.7459 402.0948 557.6498] /Subtype /Link /A << /S /GoTo /D (configuration) >> >> endobj -4982 0 obj << -/D [4980 0 R /XYZ 71.731 729.2652 null] +4967 0 obj << +/D [4965 0 R /XYZ 71.731 729.2652 null] >> endobj 2012 0 obj << -/D [4980 0 R /XYZ 71.731 718.3063 null] +/D [4965 0 R /XYZ 71.731 718.3063 null] >> endobj 994 0 obj << -/D [4980 0 R /XYZ 358.6963 703.236 null] +/D [4965 0 R /XYZ 358.6963 703.236 null] >> endobj -4983 0 obj << -/D [4980 0 R /XYZ 71.731 681.8546 null] +4968 0 obj << +/D [4965 0 R /XYZ 71.731 681.8546 null] >> endobj 2013 0 obj << -/D [4980 0 R /XYZ 71.731 658.3912 null] +/D [4965 0 R /XYZ 71.731 658.3912 null] >> endobj 998 0 obj << -/D [4980 0 R /XYZ 233.1753 615.2938 null] +/D [4965 0 R /XYZ 233.1753 615.2938 null] >> endobj -4984 0 obj << -/D [4980 0 R /XYZ 71.731 606.4709 null] +4969 0 obj << +/D [4965 0 R /XYZ 71.731 606.4709 null] >> endobj -4985 0 obj << -/D [4980 0 R /XYZ 146.6603 593.7346 null] +4970 0 obj << +/D [4965 0 R /XYZ 146.6603 593.7346 null] >> endobj -4986 0 obj << -/D [4980 0 R /XYZ 441.3262 580.7832 null] +4971 0 obj << +/D [4965 0 R /XYZ 441.3262 580.7832 null] >> endobj -4987 0 obj << -/D [4980 0 R /XYZ 71.731 560.6936 null] +4972 0 obj << +/D [4965 0 R /XYZ 71.731 560.6936 null] >> endobj -4990 0 obj << -/D [4980 0 R /XYZ 82.1385 523.9961 null] +4975 0 obj << +/D [4965 0 R /XYZ 82.1385 523.9961 null] >> endobj -4991 0 obj << -/D [4980 0 R /XYZ 71.731 490.9551 null] +4976 0 obj << +/D [4965 0 R /XYZ 71.731 490.9551 null] >> endobj -4992 0 obj << -/D [4980 0 R /XYZ 430.9687 467.2091 null] +4977 0 obj << +/D [4965 0 R /XYZ 430.9687 467.2091 null] >> endobj -4993 0 obj << -/D [4980 0 R /XYZ 71.731 454.2576 null] +4978 0 obj << +/D [4965 0 R /XYZ 71.731 454.2576 null] >> endobj -4994 0 obj << -/D [4980 0 R /XYZ 468.5487 428.3548 null] +4979 0 obj << +/D [4965 0 R /XYZ 468.5487 428.3548 null] >> endobj 2014 0 obj << -/D [4980 0 R /XYZ 71.731 421.2166 null] +/D [4965 0 R /XYZ 71.731 421.2166 null] >> endobj 1002 0 obj << -/D [4980 0 R /XYZ 121.4833 355.7391 null] +/D [4965 0 R /XYZ 121.4833 355.7391 null] >> endobj -4995 0 obj << -/D [4980 0 R /XYZ 71.731 343.3011 null] +4980 0 obj << +/D [4965 0 R /XYZ 71.731 343.3011 null] >> endobj -4996 0 obj << -/D [4980 0 R /XYZ 149.514 334.1799 null] +4981 0 obj << +/D [4965 0 R /XYZ 149.514 334.1799 null] >> endobj -4997 0 obj << -/D [4980 0 R /XYZ 252.2636 334.1799 null] +4982 0 obj << +/D [4965 0 R /XYZ 252.2636 334.1799 null] >> endobj -4998 0 obj << -/D [4980 0 R /XYZ 71.731 309.109 null] +4983 0 obj << +/D [4965 0 R /XYZ 71.731 309.109 null] >> endobj -4999 0 obj << -/D [4980 0 R /XYZ 71.731 309.109 null] +4984 0 obj << +/D [4965 0 R /XYZ 71.731 309.109 null] >> endobj 2015 0 obj << -/D [4980 0 R /XYZ 71.731 241.641 null] +/D [4965 0 R /XYZ 71.731 241.641 null] >> endobj 1006 0 obj << -/D [4980 0 R /XYZ 207.49 175.3874 null] +/D [4965 0 R /XYZ 207.49 175.3874 null] >> endobj -5000 0 obj << -/D [4980 0 R /XYZ 71.731 166.5646 null] +4985 0 obj << +/D [4965 0 R /XYZ 71.731 166.5646 null] >> endobj -5001 0 obj << -/D [4980 0 R /XYZ 71.731 151.6714 null] +4986 0 obj << +/D [4965 0 R /XYZ 71.731 151.6714 null] >> endobj -5002 0 obj << -/D [4980 0 R /XYZ 71.731 146.6901 null] +4987 0 obj << +/D [4965 0 R /XYZ 71.731 146.6901 null] >> endobj -5003 0 obj << -/D [4980 0 R /XYZ 89.6638 125.9328 null] +4988 0 obj << +/D [4965 0 R /XYZ 89.6638 125.9328 null] >> endobj -5004 0 obj << -/D [4980 0 R /XYZ 89.6638 100.03 null] +4989 0 obj << +/D [4965 0 R /XYZ 89.6638 100.03 null] >> endobj -5005 0 obj << -/D [4980 0 R /XYZ 71.731 97.8731 null] +4990 0 obj << +/D [4965 0 R /XYZ 71.731 97.8731 null] >> endobj -4979 0 obj << +4964 0 obj << /Font << /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F32 1306 0 R /F61 2701 0 R /F33 1398 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5008 0 obj << +4993 0 obj << /Length 1743 /Filter /FlateDecode >> @@ -21479,102 +21500,102 @@ X ���@�0���gG�3��~��l����y �|=װ:�1~L�U:/�m�u7�`=�����L揭�a�E��Ј}5)� �������wD��C�fm�sB��N��R�н�M�p�k�z�"��L�iw�]����������`�K��ˮ�V#U�x;�z^�z��cY:[�r)6]r�:3O�~ۻ>���W\��'SqaR���`[`Rw���d����FC��ij��"�I��?۲�a-�����' n�_��h��G"��04(i%��?�a��ؚendstream endobj -5007 0 obj << +4992 0 obj << /Type /Page -/Contents 5008 0 R -/Resources 5006 0 R +/Contents 4993 0 R +/Resources 4991 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4962 0 R +/Parent 4947 0 R >> endobj -5009 0 obj << -/D [5007 0 R /XYZ 71.731 729.2652 null] +4994 0 obj << +/D [4992 0 R /XYZ 71.731 729.2652 null] >> endobj -5010 0 obj << -/D [5007 0 R /XYZ 89.6638 708.3437 null] +4995 0 obj << +/D [4992 0 R /XYZ 89.6638 708.3437 null] >> endobj 2016 0 obj << -/D [5007 0 R /XYZ 71.731 688.2541 null] +/D [4992 0 R /XYZ 71.731 688.2541 null] >> endobj 1010 0 obj << -/D [5007 0 R /XYZ 370.3296 645.1566 null] +/D [4992 0 R /XYZ 370.3296 645.1566 null] >> endobj -5011 0 obj << -/D [5007 0 R /XYZ 71.731 632.7186 null] +4996 0 obj << +/D [4992 0 R /XYZ 71.731 632.7186 null] >> endobj -5012 0 obj << -/D [5007 0 R /XYZ 71.731 611.478 null] +4997 0 obj << +/D [4992 0 R /XYZ 71.731 611.478 null] >> endobj -5013 0 obj << -/D [5007 0 R /XYZ 71.731 556.0608 null] +4998 0 obj << +/D [4992 0 R /XYZ 71.731 556.0608 null] >> endobj -5014 0 obj << -/D [5007 0 R /XYZ 139.5762 544.0956 null] +4999 0 obj << +/D [4992 0 R /XYZ 139.5762 544.0956 null] >> endobj -5015 0 obj << -/D [5007 0 R /XYZ 71.731 531.9762 null] +5000 0 obj << +/D [4992 0 R /XYZ 71.731 531.9762 null] >> endobj -5016 0 obj << -/D [5007 0 R /XYZ 71.731 464.7099 null] +5001 0 obj << +/D [4992 0 R /XYZ 71.731 464.7099 null] >> endobj -5017 0 obj << -/D [5007 0 R /XYZ 71.731 442.8753 null] +5002 0 obj << +/D [4992 0 R /XYZ 71.731 442.8753 null] >> endobj -5018 0 obj << -/D [5007 0 R /XYZ 71.731 373.5518 null] +5003 0 obj << +/D [4992 0 R /XYZ 71.731 373.5518 null] >> endobj 2017 0 obj << -/D [5007 0 R /XYZ 71.731 355.0148 null] +/D [4992 0 R /XYZ 71.731 355.0148 null] >> endobj 1014 0 obj << -/D [5007 0 R /XYZ 374.4611 311.5437 null] +/D [4992 0 R /XYZ 374.4611 311.5437 null] >> endobj -5019 0 obj << -/D [5007 0 R /XYZ 71.731 299.3725 null] +5004 0 obj << +/D [4992 0 R /XYZ 71.731 299.3725 null] >> endobj -5020 0 obj << -/D [5007 0 R /XYZ 402.9907 289.9846 null] +5005 0 obj << +/D [4992 0 R /XYZ 402.9907 289.9846 null] >> endobj -5021 0 obj << -/D [5007 0 R /XYZ 71.731 264.9137 null] +5006 0 obj << +/D [4992 0 R /XYZ 71.731 264.9137 null] >> endobj -5022 0 obj << -/D [5007 0 R /XYZ 71.731 227.5188 null] +5007 0 obj << +/D [4992 0 R /XYZ 71.731 227.5188 null] >> endobj -5023 0 obj << -/D [5007 0 R /XYZ 175.6818 214.5674 null] +5008 0 obj << +/D [4992 0 R /XYZ 175.6818 214.5674 null] >> endobj -5024 0 obj << -/D [5007 0 R /XYZ 395.942 214.5674 null] +5009 0 obj << +/D [4992 0 R /XYZ 395.942 214.5674 null] >> endobj -5025 0 obj << -/D [5007 0 R /XYZ 486.8069 214.5674 null] +5010 0 obj << +/D [4992 0 R /XYZ 486.8069 214.5674 null] >> endobj -5026 0 obj << -/D [5007 0 R /XYZ 71.731 201.6159 null] +5011 0 obj << +/D [4992 0 R /XYZ 71.731 201.6159 null] >> endobj -5027 0 obj << -/D [5007 0 R /XYZ 71.731 188.6645 null] +5012 0 obj << +/D [4992 0 R /XYZ 71.731 188.6645 null] >> endobj -5028 0 obj << -/D [5007 0 R /XYZ 107.0481 188.6645 null] +5013 0 obj << +/D [4992 0 R /XYZ 107.0481 188.6645 null] >> endobj 2018 0 obj << -/D [5007 0 R /XYZ 71.731 181.5264 null] +/D [4992 0 R /XYZ 71.731 181.5264 null] >> endobj 1018 0 obj << -/D [5007 0 R /XYZ 496.414 138.4289 null] +/D [4992 0 R /XYZ 496.414 138.4289 null] >> endobj -5029 0 obj << -/D [5007 0 R /XYZ 71.731 125.9909 null] +5014 0 obj << +/D [4992 0 R /XYZ 71.731 125.9909 null] >> endobj -5030 0 obj << -/D [5007 0 R /XYZ 206.804 116.8697 null] +5015 0 obj << +/D [4992 0 R /XYZ 206.804 116.8697 null] >> endobj -5006 0 obj << +4991 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F35 1752 0 R /F32 1306 0 R /F61 2701 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5033 0 obj << +5018 0 obj << /Length 2086 /Filter /FlateDecode >> @@ -21585,87 +21606,87 @@ xڭX[ ���������W��?�.�ĻɍM���XVy�Z�nbt�@�z������p���x�Q��hw#�Ċ�/3��\�>*�!mX��|g�A�\��j��_������9���{HE�!�ɶ�Ov�sU�o@:��'E�+r��Z_��r��e4�I[?�K"�p��x(wv.k:z����U�o��Wg0�{3,�������N�#ט��t�eP����m_d^F����:/���s-�F����̉�X��3^��GO%?�q����ؒ��3��4PS1C�Mǰ@�q/�r�'�(wNj�����g�c�!5<]0}���U8�~r��V�tz ^(d艜���<)�Ʊ��\:��k�+:V��k��Q_P,��ģ*�+��(�AdeU).9+��:���5y��n�j�o;�߅���G��;�w����qIU_؆�^�� ��q$RF&� �D���m�C0�e��4�B?��ԥB�O��G�5����ɓ+�,���w����G����B�#g�w�q�#����X/��[o�=^��'ǡ������o��Y�W�a�d��I�T�/ 0�h��K)j�9�x�T���,\������Ny��g�xSTp͵ԗ�X�IZ��1�����#J�Vj__�N|*�kgY�������# AK�~ugd(�D0��XL��7��j�,+*t�^�gXhMť�|U� �2�m���į1�Y�t���̩m��>�`M�w]�oe���W��Sr�����7�z>�����U��ֻ�E��M��W�!Q�������uοr�w�4�h�������xg�&��M��>{�����Lx�endstream endobj -5032 0 obj << +5017 0 obj << /Type /Page -/Contents 5033 0 R -/Resources 5031 0 R +/Contents 5018 0 R +/Resources 5016 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4962 0 R +/Parent 4947 0 R >> endobj -5034 0 obj << -/D [5032 0 R /XYZ 71.731 729.2652 null] +5019 0 obj << +/D [5017 0 R /XYZ 71.731 729.2652 null] >> endobj -5035 0 obj << -/D [5032 0 R /XYZ 71.731 718.3063 null] +5020 0 obj << +/D [5017 0 R /XYZ 71.731 718.3063 null] >> endobj -5036 0 obj << -/D [5032 0 R /XYZ 508.2921 708.3437 null] +5021 0 obj << +/D [5017 0 R /XYZ 508.2921 708.3437 null] >> endobj -5037 0 obj << -/D [5032 0 R /XYZ 71.731 649.3998 null] +5022 0 obj << +/D [5017 0 R /XYZ 71.731 649.3998 null] >> endobj -5038 0 obj << -/D [5032 0 R /XYZ 71.731 631.4671 null] +5023 0 obj << +/D [5017 0 R /XYZ 71.731 631.4671 null] >> endobj -5039 0 obj << -/D [5032 0 R /XYZ 71.731 579.6613 null] +5024 0 obj << +/D [5017 0 R /XYZ 71.731 579.6613 null] >> endobj -5040 0 obj << -/D [5032 0 R /XYZ 71.731 546.9191 null] +5025 0 obj << +/D [5017 0 R /XYZ 71.731 546.9191 null] >> endobj -5041 0 obj << -/D [5032 0 R /XYZ 71.731 536.9564 null] +5026 0 obj << +/D [5017 0 R /XYZ 71.731 536.9564 null] >> endobj -5042 0 obj << -/D [5032 0 R /XYZ 135.9845 527.3225 null] +5027 0 obj << +/D [5017 0 R /XYZ 135.9845 527.3225 null] >> endobj -5043 0 obj << -/D [5032 0 R /XYZ 135.9845 492.3537 null] +5028 0 obj << +/D [5017 0 R /XYZ 135.9845 492.3537 null] >> endobj -5044 0 obj << -/D [5032 0 R /XYZ 71.731 435.7659 null] +5029 0 obj << +/D [5017 0 R /XYZ 71.731 435.7659 null] >> endobj -5045 0 obj << -/D [5032 0 R /XYZ 71.731 396.812 null] +5030 0 obj << +/D [5017 0 R /XYZ 71.731 396.812 null] >> endobj -5046 0 obj << -/D [5032 0 R /XYZ 71.731 362.0125 null] +5031 0 obj << +/D [5017 0 R /XYZ 71.731 362.0125 null] >> endobj -5047 0 obj << -/D [5032 0 R /XYZ 71.731 352.0499 null] +5032 0 obj << +/D [5017 0 R /XYZ 71.731 352.0499 null] >> endobj -5048 0 obj << -/D [5032 0 R /XYZ 135.9845 342.416 null] +5033 0 obj << +/D [5017 0 R /XYZ 135.9845 342.416 null] >> endobj -5049 0 obj << -/D [5032 0 R /XYZ 135.9845 307.4471 null] +5034 0 obj << +/D [5017 0 R /XYZ 135.9845 307.4471 null] >> endobj -5050 0 obj << -/D [5032 0 R /XYZ 71.731 274.1719 null] +5035 0 obj << +/D [5017 0 R /XYZ 71.731 274.1719 null] >> endobj -5051 0 obj << -/D [5032 0 R /XYZ 181.6909 261.2205 null] +5036 0 obj << +/D [5017 0 R /XYZ 181.6909 261.2205 null] >> endobj -5052 0 obj << -/D [5032 0 R /XYZ 485.8887 261.2205 null] +5037 0 obj << +/D [5017 0 R /XYZ 485.8887 261.2205 null] >> endobj 2019 0 obj << -/D [5032 0 R /XYZ 71.731 228.1794 null] +/D [5017 0 R /XYZ 71.731 228.1794 null] >> endobj 1022 0 obj << -/D [5032 0 R /XYZ 517.2959 185.082 null] +/D [5017 0 R /XYZ 517.2959 185.082 null] >> endobj -5053 0 obj << -/D [5032 0 R /XYZ 71.731 172.644 null] +5038 0 obj << +/D [5017 0 R /XYZ 71.731 172.644 null] >> endobj -5054 0 obj << -/D [5032 0 R /XYZ 71.731 157.1019 null] +5039 0 obj << +/D [5017 0 R /XYZ 71.731 157.1019 null] >> endobj -5031 0 obj << +5016 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F32 1306 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5057 0 obj << +5042 0 obj << /Length 1796 /Filter /FlateDecode >> @@ -21683,77 +21704,77 @@ wN ?4�sߩ� k�T��tx�+��y��Z�Qɰ`������8� �Vw���g������jcIa#������tf?q�d�Y�W��oh���f��~?�`r9���+�[��J5�����u���y���3�F�$����m�Ƞ���������sA࿃���endstream endobj -5056 0 obj << +5041 0 obj << /Type /Page -/Contents 5057 0 R -/Resources 5055 0 R +/Contents 5042 0 R +/Resources 5040 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 4962 0 R -/Annots [ 5066 0 R ] +/Parent 4947 0 R +/Annots [ 5051 0 R ] >> endobj -5066 0 obj << +5051 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [80.9762 517.4317 142.7442 526.2783] /Subtype /Link /A << /S /GoTo /D (http-apache) >> >> endobj -5058 0 obj << -/D [5056 0 R /XYZ 71.731 729.2652 null] +5043 0 obj << +/D [5041 0 R /XYZ 71.731 729.2652 null] >> endobj -5059 0 obj << -/D [5056 0 R /XYZ 71.731 718.3063 null] +5044 0 obj << +/D [5041 0 R /XYZ 71.731 718.3063 null] >> endobj -5060 0 obj << -/D [5056 0 R /XYZ 310.0005 708.3437 null] +5045 0 obj << +/D [5041 0 R /XYZ 310.0005 708.3437 null] >> endobj -5061 0 obj << -/D [5056 0 R /XYZ 278.636 682.4408 null] +5046 0 obj << +/D [5041 0 R /XYZ 278.636 682.4408 null] >> endobj 2020 0 obj << -/D [5056 0 R /XYZ 71.731 636.4484 null] +/D [5041 0 R /XYZ 71.731 636.4484 null] >> endobj 1026 0 obj << -/D [5056 0 R /XYZ 107.1086 570.9708 null] +/D [5041 0 R /XYZ 107.1086 570.9708 null] >> endobj -5062 0 obj << -/D [5056 0 R /XYZ 71.731 562.148 null] +5047 0 obj << +/D [5041 0 R /XYZ 71.731 562.148 null] >> endobj -5063 0 obj << -/D [5056 0 R /XYZ 71.731 542.2735 null] +5048 0 obj << +/D [5041 0 R /XYZ 71.731 542.2735 null] >> endobj -5064 0 obj << -/D [5056 0 R /XYZ 274.3729 531.4789 null] +5049 0 obj << +/D [5041 0 R /XYZ 274.3729 531.4789 null] >> endobj -5065 0 obj << -/D [5056 0 R /XYZ 390.7657 531.4789 null] +5050 0 obj << +/D [5041 0 R /XYZ 390.7657 531.4789 null] >> endobj 2021 0 obj << -/D [5056 0 R /XYZ 71.731 513.4466 null] +/D [5041 0 R /XYZ 71.731 513.4466 null] >> endobj 1030 0 obj << -/D [5056 0 R /XYZ 452.3944 445.9118 null] +/D [5041 0 R /XYZ 452.3944 445.9118 null] >> endobj -5067 0 obj << -/D [5056 0 R /XYZ 71.731 433.7406 null] +5052 0 obj << +/D [5041 0 R /XYZ 71.731 433.7406 null] >> endobj -5068 0 obj << -/D [5056 0 R /XYZ 71.731 411.4012 null] +5053 0 obj << +/D [5041 0 R /XYZ 71.731 411.4012 null] >> endobj -5069 0 obj << -/D [5056 0 R /XYZ 437.9897 411.4012 null] +5054 0 obj << +/D [5041 0 R /XYZ 437.9897 411.4012 null] >> endobj -5070 0 obj << -/D [5056 0 R /XYZ 71.731 391.3116 null] +5055 0 obj << +/D [5041 0 R /XYZ 71.731 391.3116 null] >> endobj -5071 0 obj << -/D [5056 0 R /XYZ 130.4005 354.6142 null] +5056 0 obj << +/D [5041 0 R /XYZ 130.4005 354.6142 null] >> endobj -5055 0 obj << +5040 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R /F61 2701 0 R /F35 1752 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5074 0 obj << +5059 0 obj << /Length 2959 /Filter /FlateDecode >> @@ -21771,159 +21792,159 @@ Z M5��g��D/�"��G�P�Ԥ�.iP���Q0L�62�8r���FI�۱k���؊"۹D�9�VSM�]ar#L�� �?ry�9/ES^�R��:(�@v[ɫ�V��+<�7m80�a�]²~&mʌ�6k����6�my�t����֣S��֣���$���C����!��^ $����'�BW��ix�:��� ����R�z�7�*v���%�Q.H��1��SV@N�{nA�$p\/����<�����{N����L���O���E��@w�r�{i��D�u=����4��a0��̔��V��@Y��-�t��Մ�]���8X6��l�Z��es�F��Ӌ�ˍ�ˇ/$��� 6�_!z�246z`0�B�dz�<���6t�؆@Ʊ����S��v�>x]m���r&�co6�M!�|I�8����8W��Ut���_0���Պ2olx�>�����3��BC����`���;�9@v#u��jF�:י$�5/3]À|�m�<g�r�_�x[�)���x�grC����j��-T~!��>ή ���jYu ���A��,߂s(0=��~B#cO��C�J��-�ȢU u<���1W�D Cs�ށ~̱t>�_����c~�3;[F�r()l�p�\�m)O�%���������7̓@������͠0��u��+EImF9ں�}��<!�g���32$d��H���^��#=�-4|��Wh��w�S5���}j��f� 9��s�j|�/�*s&=t�sφ����%q13+�s9��,�j1��n� !�)+�@�Q�罰�}F�Y��+�)Ϡ��K���;���u�����[��A�ĭ��-!���~�G� q��?-3�vFC��s7=|�O���S�����;���!�endstream endobj -5073 0 obj << +5058 0 obj << /Type /Page -/Contents 5074 0 R -/Resources 5072 0 R +/Contents 5059 0 R +/Resources 5057 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5116 0 R +/Parent 5101 0 R >> endobj -5075 0 obj << -/D [5073 0 R /XYZ 71.731 729.2652 null] +5060 0 obj << +/D [5058 0 R /XYZ 71.731 729.2652 null] >> endobj 2022 0 obj << -/D [5073 0 R /XYZ 71.731 718.3063 null] +/D [5058 0 R /XYZ 71.731 718.3063 null] >> endobj 1034 0 obj << -/D [5073 0 R /XYZ 271.435 703.236 null] +/D [5058 0 R /XYZ 271.435 703.236 null] >> endobj -5076 0 obj << -/D [5073 0 R /XYZ 71.731 682.1747 null] +5061 0 obj << +/D [5058 0 R /XYZ 71.731 682.1747 null] >> endobj -5077 0 obj << -/D [5073 0 R /XYZ 297.9985 673.4995 null] +5062 0 obj << +/D [5058 0 R /XYZ 297.9985 673.4995 null] >> endobj 2023 0 obj << -/D [5073 0 R /XYZ 71.731 660.4485 null] +/D [5058 0 R /XYZ 71.731 660.4485 null] >> endobj 1038 0 obj << -/D [5073 0 R /XYZ 365.8704 615.2938 null] +/D [5058 0 R /XYZ 365.8704 615.2938 null] +>> endobj +5063 0 obj << +/D [5058 0 R /XYZ 71.731 606.4709 null] +>> endobj +5064 0 obj << +/D [5058 0 R /XYZ 457.2853 593.7346 null] +>> endobj +5065 0 obj << +/D [5058 0 R /XYZ 199.7198 580.7832 null] +>> endobj +5066 0 obj << +/D [5058 0 R /XYZ 258.4993 580.7832 null] +>> endobj +5067 0 obj << +/D [5058 0 R /XYZ 315.5253 580.7832 null] +>> endobj +5068 0 obj << +/D [5058 0 R /XYZ 71.731 578.6263 null] +>> endobj +5069 0 obj << +/D [5058 0 R /XYZ 118.5554 540.0623 null] +>> endobj +5070 0 obj << +/D [5058 0 R /XYZ 71.731 509.7853 null] +>> endobj +5071 0 obj << +/D [5058 0 R /XYZ 71.731 509.7853 null] +>> endobj +5072 0 obj << +/D [5058 0 R /XYZ 71.731 490.0793 null] +>> endobj +5073 0 obj << +/D [5058 0 R /XYZ 165.1103 477.1279 null] +>> endobj +5074 0 obj << +/D [5058 0 R /XYZ 71.731 469.9897 null] +>> endobj +5075 0 obj << +/D [5058 0 R /XYZ 71.731 469.9897 null] +>> endobj +5076 0 obj << +/D [5058 0 R /XYZ 164.0649 446.2437 null] +>> endobj +5077 0 obj << +/D [5058 0 R /XYZ 210.3517 446.2437 null] >> endobj 5078 0 obj << -/D [5073 0 R /XYZ 71.731 606.4709 null] +/D [5058 0 R /XYZ 352.5688 446.2437 null] >> endobj 5079 0 obj << -/D [5073 0 R /XYZ 457.2853 593.7346 null] +/D [5058 0 R /XYZ 442.6605 446.2437 null] >> endobj 5080 0 obj << -/D [5073 0 R /XYZ 199.7198 580.7832 null] +/D [5058 0 R /XYZ 203.7146 433.2922 null] >> endobj 5081 0 obj << -/D [5073 0 R /XYZ 258.4993 580.7832 null] +/D [5058 0 R /XYZ 372.0612 433.2922 null] >> endobj 5082 0 obj << -/D [5073 0 R /XYZ 315.5253 580.7832 null] +/D [5058 0 R /XYZ 71.731 426.1541 null] >> endobj 5083 0 obj << -/D [5073 0 R /XYZ 71.731 578.6263 null] +/D [5058 0 R /XYZ 460.2171 415.3595 null] >> endobj 5084 0 obj << -/D [5073 0 R /XYZ 118.5554 540.0623 null] +/D [5058 0 R /XYZ 71.731 382.3185 null] >> endobj 5085 0 obj << -/D [5073 0 R /XYZ 71.731 509.7853 null] +/D [5058 0 R /XYZ 71.731 382.3185 null] >> endobj 5086 0 obj << -/D [5073 0 R /XYZ 71.731 509.7853 null] +/D [5058 0 R /XYZ 237.4512 371.5239 null] >> endobj 5087 0 obj << -/D [5073 0 R /XYZ 71.731 490.0793 null] +/D [5058 0 R /XYZ 71.731 358.5724 null] >> endobj 5088 0 obj << -/D [5073 0 R /XYZ 165.1103 477.1279 null] +/D [5058 0 R /XYZ 220.8703 345.621 null] >> endobj 5089 0 obj << -/D [5073 0 R /XYZ 71.731 469.9897 null] +/D [5058 0 R /XYZ 71.731 338.4829 null] >> endobj 5090 0 obj << -/D [5073 0 R /XYZ 71.731 469.9897 null] +/D [5058 0 R /XYZ 257.1241 327.6883 null] >> endobj 5091 0 obj << -/D [5073 0 R /XYZ 164.0649 446.2437 null] +/D [5058 0 R /XYZ 358.7127 327.6883 null] +>> endobj +2024 0 obj << +/D [5058 0 R /XYZ 71.731 320.5501 null] +>> endobj +1042 0 obj << +/D [5058 0 R /XYZ 462.0005 277.4526 null] >> endobj 5092 0 obj << -/D [5073 0 R /XYZ 210.3517 446.2437 null] +/D [5058 0 R /XYZ 71.731 265.0146 null] >> endobj 5093 0 obj << -/D [5073 0 R /XYZ 352.5688 446.2437 null] +/D [5058 0 R /XYZ 117.2903 255.8935 null] >> endobj 5094 0 obj << -/D [5073 0 R /XYZ 442.6605 446.2437 null] +/D [5058 0 R /XYZ 427.8955 255.8935 null] >> endobj 5095 0 obj << -/D [5073 0 R /XYZ 203.7146 433.2922 null] +/D [5058 0 R /XYZ 71.731 224.9097 null] >> endobj 5096 0 obj << -/D [5073 0 R /XYZ 372.0612 433.2922 null] +/D [5058 0 R /XYZ 173.632 212.0579 null] >> endobj 5097 0 obj << -/D [5073 0 R /XYZ 71.731 426.1541 null] +/D [5058 0 R /XYZ 420.183 212.0579 null] >> endobj 5098 0 obj << -/D [5073 0 R /XYZ 460.2171 415.3595 null] +/D [5058 0 R /XYZ 71.731 166.0654 null] >> endobj 5099 0 obj << -/D [5073 0 R /XYZ 71.731 382.3185 null] +/D [5058 0 R /XYZ 71.731 122.2298 null] >> endobj 5100 0 obj << -/D [5073 0 R /XYZ 71.731 382.3185 null] ->> endobj -5101 0 obj << -/D [5073 0 R /XYZ 237.4512 371.5239 null] ->> endobj -5102 0 obj << -/D [5073 0 R /XYZ 71.731 358.5724 null] ->> endobj -5103 0 obj << -/D [5073 0 R /XYZ 220.8703 345.621 null] ->> endobj -5104 0 obj << -/D [5073 0 R /XYZ 71.731 338.4829 null] ->> endobj -5105 0 obj << -/D [5073 0 R /XYZ 257.1241 327.6883 null] ->> endobj -5106 0 obj << -/D [5073 0 R /XYZ 358.7127 327.6883 null] ->> endobj -2024 0 obj << -/D [5073 0 R /XYZ 71.731 320.5501 null] ->> endobj -1042 0 obj << -/D [5073 0 R /XYZ 462.0005 277.4526 null] ->> endobj -5107 0 obj << -/D [5073 0 R /XYZ 71.731 265.0146 null] ->> endobj -5108 0 obj << -/D [5073 0 R /XYZ 117.2903 255.8935 null] ->> endobj -5109 0 obj << -/D [5073 0 R /XYZ 427.8955 255.8935 null] ->> endobj -5110 0 obj << -/D [5073 0 R /XYZ 71.731 224.9097 null] ->> endobj -5111 0 obj << -/D [5073 0 R /XYZ 173.632 212.0579 null] ->> endobj -5112 0 obj << -/D [5073 0 R /XYZ 420.183 212.0579 null] ->> endobj -5113 0 obj << -/D [5073 0 R /XYZ 71.731 166.0654 null] ->> endobj -5114 0 obj << -/D [5073 0 R /XYZ 71.731 122.2298 null] ->> endobj -5115 0 obj << -/D [5073 0 R /XYZ 71.731 122.2298 null] +/D [5058 0 R /XYZ 71.731 122.2298 null] >> endobj -5072 0 obj << +5057 0 obj << /Font << /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F44 2183 0 R /F32 1306 0 R /F33 1398 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5119 0 obj << +5104 0 obj << /Length 1588 /Filter /FlateDecode >> @@ -21936,331 +21957,331 @@ B]?͕ ���e�<�ȭ[/��$�۱�f����TB��ݵ-������a���� �`���IbB�2D���.���&+� Ά'�j�%��cl�Y��F����&}���w{^g�Q�*������y�8M�̮t���~r�_��������p����ş�����LJ� LԨ ��?�7��p��?:gM`endstream endobj -5118 0 obj << +5103 0 obj << /Type /Page -/Contents 5119 0 R -/Resources 5117 0 R +/Contents 5104 0 R +/Resources 5102 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5116 0 R -/Annots [ 5135 0 R ] +/Parent 5101 0 R +/Annots [ 5120 0 R ] >> endobj -5135 0 obj << +5120 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [157.2677 413.7501 206.2336 424.3324] /Subtype /Link /A << /S /GoTo /D (modules-manual-download) >> >> endobj -5120 0 obj << -/D [5118 0 R /XYZ 71.731 729.2652 null] +5105 0 obj << +/D [5103 0 R /XYZ 71.731 729.2652 null] >> endobj 2065 0 obj << -/D [5118 0 R /XYZ 71.731 718.3063 null] +/D [5103 0 R /XYZ 71.731 718.3063 null] >> endobj 1046 0 obj << -/D [5118 0 R /XYZ 155.5214 676.3797 null] +/D [5103 0 R /XYZ 155.5214 676.3797 null] >> endobj 2066 0 obj << -/D [5118 0 R /XYZ 71.731 669.6658 null] +/D [5103 0 R /XYZ 71.731 669.6658 null] >> endobj 1050 0 obj << -/D [5118 0 R /XYZ 206.6123 624.303 null] +/D [5103 0 R /XYZ 206.6123 624.303 null] +>> endobj +5106 0 obj << +/D [5103 0 R /XYZ 71.731 615.4802 null] +>> endobj +5107 0 obj << +/D [5103 0 R /XYZ 71.731 582.6542 null] +>> endobj +5108 0 obj << +/D [5103 0 R /XYZ 71.731 572.6916 null] +>> endobj +5109 0 obj << +/D [5103 0 R /XYZ 71.731 572.6916 null] +>> endobj +5110 0 obj << +/D [5103 0 R /XYZ 71.731 561.8114 null] +>> endobj +5111 0 obj << +/D [5103 0 R /XYZ 71.731 551.2777 null] +>> endobj +5112 0 obj << +/D [5103 0 R /XYZ 71.731 538.4988 null] +>> endobj +5113 0 obj << +/D [5103 0 R /XYZ 71.731 527.9651 null] +>> endobj +5114 0 obj << +/D [5103 0 R /XYZ 71.731 516.3088 null] +>> endobj +5115 0 obj << +/D [5103 0 R /XYZ 76.7123 483.2918 null] +>> endobj +5116 0 obj << +/D [5103 0 R /XYZ 71.731 468.3478 null] +>> endobj +5117 0 obj << +/D [5103 0 R /XYZ 486.2278 456.6915 null] +>> endobj +5118 0 obj << +/D [5103 0 R /XYZ 451.4238 445.0352 null] +>> endobj +5119 0 obj << +/D [5103 0 R /XYZ 71.731 426.5103 null] +>> endobj +2067 0 obj << +/D [5103 0 R /XYZ 71.731 365.5334 null] +>> endobj +1054 0 obj << +/D [5103 0 R /XYZ 276.1797 320.2791 null] >> endobj 5121 0 obj << -/D [5118 0 R /XYZ 71.731 615.4802 null] +/D [5103 0 R /XYZ 71.731 320.064 null] >> endobj 5122 0 obj << -/D [5118 0 R /XYZ 71.731 582.6542 null] +/D [5103 0 R /XYZ 71.731 301.4936 null] >> endobj 5123 0 obj << -/D [5118 0 R /XYZ 71.731 572.6916 null] +/D [5103 0 R /XYZ 91.6563 266.7399 null] >> endobj 5124 0 obj << -/D [5118 0 R /XYZ 71.731 572.6916 null] +/D [5103 0 R /XYZ 349.077 266.7399 null] >> endobj 5125 0 obj << -/D [5118 0 R /XYZ 71.731 561.8114 null] +/D [5103 0 R /XYZ 71.731 227.1882 null] >> endobj 5126 0 obj << -/D [5118 0 R /XYZ 71.731 551.2777 null] +/D [5103 0 R /XYZ 71.731 204.1746 null] >> endobj 5127 0 obj << -/D [5118 0 R /XYZ 71.731 538.4988 null] +/D [5103 0 R /XYZ 188.0244 191.3227 null] >> endobj 5128 0 obj << -/D [5118 0 R /XYZ 71.731 527.9651 null] +/D [5103 0 R /XYZ 158.3455 178.3713 null] >> endobj 5129 0 obj << -/D [5118 0 R /XYZ 71.731 516.3088 null] +/D [5103 0 R /XYZ 71.731 137.5244 null] >> endobj 5130 0 obj << -/D [5118 0 R /XYZ 76.7123 483.2918 null] +/D [5103 0 R /XYZ 71.731 112.4535 null] >> endobj 5131 0 obj << -/D [5118 0 R /XYZ 71.731 468.3478 null] ->> endobj -5132 0 obj << -/D [5118 0 R /XYZ 486.2278 456.6915 null] +/D [5103 0 R /XYZ 188.0244 101.6589 null] >> endobj -5133 0 obj << -/D [5118 0 R /XYZ 451.4238 445.0352 null] +5102 0 obj << +/Font << /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F44 2183 0 R /F33 1398 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 5134 0 obj << -/D [5118 0 R /XYZ 71.731 426.5103 null] ->> endobj -2067 0 obj << -/D [5118 0 R /XYZ 71.731 365.5334 null] +/Length 546 +/Filter /FlateDecode +>> +stream +xڽU�r�0��+��B�k�:�Τ㙲K�P@�LQ����WB�c'�wZ �:�������È�$������!P�_73�5�6�<��JA��� 4@0�4�%0f8yy�\���������kh�;ޭyc��ݨx�pU��~��v]�1rİ������=�<���c4�I�]8)ag�Z��D$�,� B1��& �,֭���bj�Y)է�? +>+X���rpq�T~Y��ϸ�^�n{1�vqs`����5%a�8�$���+��3G-W��b��:�M�R�ԭ0g�N'�,!:��z�t�\}��2��l�F��)ʚ�W������i9��a���:�m��<G�X܈e�߾)������=��C u4�@��S�0�Ҵ�=�l.�+�&�s�}�q��<�wz�H_V�ս���h ��N�\ԍn���(.ָ��3��v�)]]��%l�|�W�mN4g�F�o{}�/77��͏Z].��<87��� ������9h��ᰉ��җl;^��8LNN�=��� +����È��o0���,�endstream +endobj +5133 0 obj << +/Type /Page +/Contents 5134 0 R +/Resources 5132 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 5101 0 R >> endobj -1054 0 obj << -/D [5118 0 R /XYZ 276.1797 320.2791 null] +5135 0 obj << +/D [5133 0 R /XYZ 71.731 729.2652 null] >> endobj 5136 0 obj << -/D [5118 0 R /XYZ 71.731 320.064 null] +/D [5133 0 R /XYZ 158.3455 708.3437 null] >> endobj 5137 0 obj << -/D [5118 0 R /XYZ 71.731 301.4936 null] +/D [5133 0 R /XYZ 71.731 667.4969 null] >> endobj 5138 0 obj << -/D [5118 0 R /XYZ 91.6563 266.7399 null] +/D [5133 0 R /XYZ 71.731 642.426 null] >> endobj 5139 0 obj << -/D [5118 0 R /XYZ 349.077 266.7399 null] +/D [5133 0 R /XYZ 188.0244 631.6314 null] >> endobj 5140 0 obj << -/D [5118 0 R /XYZ 71.731 227.1882 null] +/D [5133 0 R /XYZ 158.3455 618.6799 null] >> endobj 5141 0 obj << -/D [5118 0 R /XYZ 71.731 204.1746 null] +/D [5133 0 R /XYZ 71.731 577.8331 null] >> endobj 5142 0 obj << -/D [5118 0 R /XYZ 188.0244 191.3227 null] +/D [5133 0 R /XYZ 71.731 554.8195 null] >> endobj 5143 0 obj << -/D [5118 0 R /XYZ 158.3455 178.3713 null] +/D [5133 0 R /XYZ 188.0244 541.9676 null] >> endobj 5144 0 obj << -/D [5118 0 R /XYZ 71.731 137.5244 null] +/D [5133 0 R /XYZ 158.3455 529.0162 null] >> endobj 5145 0 obj << -/D [5118 0 R /XYZ 71.731 112.4535 null] +/D [5133 0 R /XYZ 71.731 488.1693 null] >> endobj 5146 0 obj << -/D [5118 0 R /XYZ 188.0244 101.6589 null] +/D [5133 0 R /XYZ 71.731 463.0984 null] >> endobj -5117 0 obj << -/Font << /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F44 2183 0 R /F33 1398 0 R >> -/ProcSet [ /PDF /Text ] +5147 0 obj << +/D [5133 0 R /XYZ 188.0244 452.3038 null] >> endobj -5149 0 obj << -/Length 546 -/Filter /FlateDecode ->> -stream -xڽU�r�0��+��B�k�:�Τ㙲K�P@�LQ����WB�c'�wZ �:�������È�$������!P�_73�5�6�<��JA��� 4@0�4�%0f8yy�\���������kh�;ޭyc��ݨx�pU��~��v]�1rİ������=�<���c4�I�]8)ag�Z��D$�,� B1��& �,֭���bj�Y)է�? ->+X���rpq�T~Y��ϸ�^�n{1�vqs`����5%a�8�$���+��3G-W��b��:�M�R�ԭ0g�N'�,!:��z�t�\}��2��l�F��)ʚ�W������i9��a���:�m��<G�X܈e�߾)������=��C u4�@��S�0�Ҵ�=�l.�+�&�s�}�q��<�wz�H_V�ս���h ��N�\ԍn���(.ָ��3��v�)]]��%l�|�W�mN4g�F�o{}�/77��͏Z].��<87��� ������9h��ᰉ��җl;^��8LNN�=��� -����È��o0���,�endstream -endobj 5148 0 obj << -/Type /Page -/Contents 5149 0 R -/Resources 5147 0 R -/MediaBox [0 0 609.7136 789.0411] -/Parent 5116 0 R +/D [5133 0 R /XYZ 158.3455 439.3524 null] +>> endobj +5149 0 obj << +/D [5133 0 R /XYZ 71.731 398.5056 null] >> endobj 5150 0 obj << -/D [5148 0 R /XYZ 71.731 729.2652 null] +/D [5133 0 R /XYZ 71.731 373.4347 null] >> endobj 5151 0 obj << -/D [5148 0 R /XYZ 158.3455 708.3437 null] +/D [5133 0 R /XYZ 188.0244 362.6401 null] >> endobj 5152 0 obj << -/D [5148 0 R /XYZ 71.731 667.4969 null] +/D [5133 0 R /XYZ 158.3455 349.6887 null] >> endobj 5153 0 obj << -/D [5148 0 R /XYZ 71.731 642.426 null] +/D [5133 0 R /XYZ 71.731 308.8418 null] >> endobj 5154 0 obj << -/D [5148 0 R /XYZ 188.0244 631.6314 null] +/D [5133 0 R /XYZ 71.731 283.7709 null] >> endobj 5155 0 obj << -/D [5148 0 R /XYZ 158.3455 618.6799 null] +/D [5133 0 R /XYZ 188.0244 272.9763 null] >> endobj 5156 0 obj << -/D [5148 0 R /XYZ 71.731 577.8331 null] +/D [5133 0 R /XYZ 158.3455 260.0249 null] >> endobj 5157 0 obj << -/D [5148 0 R /XYZ 71.731 554.8195 null] +/D [5133 0 R /XYZ 71.731 219.1781 null] >> endobj 5158 0 obj << -/D [5148 0 R /XYZ 188.0244 541.9676 null] +/D [5133 0 R /XYZ 71.731 194.1072 null] >> endobj 5159 0 obj << -/D [5148 0 R /XYZ 158.3455 529.0162 null] +/D [5133 0 R /XYZ 188.0244 183.3126 null] >> endobj 5160 0 obj << -/D [5148 0 R /XYZ 71.731 488.1693 null] +/D [5133 0 R /XYZ 158.3455 170.3611 null] >> endobj 5161 0 obj << -/D [5148 0 R /XYZ 71.731 463.0984 null] ->> endobj -5162 0 obj << -/D [5148 0 R /XYZ 188.0244 452.3038 null] +/D [5133 0 R /XYZ 71.731 129.5143 null] >> endobj -5163 0 obj << -/D [5148 0 R /XYZ 158.3455 439.3524 null] +5132 0 obj << +/Font << /F33 1398 0 R /F27 1298 0 R >> +/ProcSet [ /PDF /Text ] >> endobj 5164 0 obj << -/D [5148 0 R /XYZ 71.731 398.5056 null] +/Length 656 +/Filter /FlateDecode +>> +stream +xڽV�n�0}�W�lc0��M�:-[�4i�&7� �����lCִѪ%Q$����{N|.���~Њ ������ k����J�J'pq�wt�M�w[1�CZ٣��V��R+˿�Ӧ�U^<9."�}��U+���JHV�Lu�?���¡���!n^�]Ʌ�={?�������NR�G�@шDAHBlE>8���p�pbdO?�u�j{[�5�wuBb�O��Z�&�<�Y�\�e�*P�����!�t�i�0"�,�z�mx%����@�1x.T<��-�b� l�DJ�M��I�(�UQ%I:K���J�*���q���o�['$6�;Y���B��K�_�-�U�u�O`-7� Ύ�X����N�b����}�o>��ʿw��5��z�v�_P�Cm�dY<��7�(��=�܁�A���-FC�}8X�:���FWa��f#�>��� $F=�Z��$7L���j��M�͌����T�KҖ5��^��|ϸ���:=�_�>hO�������e��N��x�gY���\:W��eA�xF��-�����H}���z����.�听�Y�Pp���-u�.U� ������z��=�|���_��HP@a�<��b�-a�c�4��WO/d�h���endstream +endobj +5163 0 obj << +/Type /Page +/Contents 5164 0 R +/Resources 5162 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 5101 0 R >> endobj 5165 0 obj << -/D [5148 0 R /XYZ 71.731 373.4347 null] +/D [5163 0 R /XYZ 71.731 729.2652 null] >> endobj 5166 0 obj << -/D [5148 0 R /XYZ 188.0244 362.6401 null] +/D [5163 0 R /XYZ 71.731 718.3063 null] >> endobj 5167 0 obj << -/D [5148 0 R /XYZ 158.3455 349.6887 null] +/D [5163 0 R /XYZ 188.0244 708.3437 null] >> endobj 5168 0 obj << -/D [5148 0 R /XYZ 71.731 308.8418 null] +/D [5163 0 R /XYZ 158.3455 695.3923 null] >> endobj 5169 0 obj << -/D [5148 0 R /XYZ 71.731 283.7709 null] +/D [5163 0 R /XYZ 71.731 654.5454 null] >> endobj 5170 0 obj << -/D [5148 0 R /XYZ 188.0244 272.9763 null] +/D [5163 0 R /XYZ 71.731 629.4745 null] >> endobj 5171 0 obj << -/D [5148 0 R /XYZ 158.3455 260.0249 null] +/D [5163 0 R /XYZ 185.5337 618.6799 null] >> endobj 5172 0 obj << -/D [5148 0 R /XYZ 71.731 219.1781 null] +/D [5163 0 R /XYZ 155.8548 605.7285 null] >> endobj 5173 0 obj << -/D [5148 0 R /XYZ 71.731 194.1072 null] +/D [5163 0 R /XYZ 71.731 564.8817 null] >> endobj 5174 0 obj << -/D [5148 0 R /XYZ 188.0244 183.3126 null] +/D [5163 0 R /XYZ 71.731 539.8108 null] >> endobj 5175 0 obj << -/D [5148 0 R /XYZ 158.3455 170.3611 null] +/D [5163 0 R /XYZ 188.0244 529.0162 null] >> endobj 5176 0 obj << -/D [5148 0 R /XYZ 71.731 129.5143 null] +/D [5163 0 R /XYZ 158.3455 516.0647 null] >> endobj -5147 0 obj << -/Font << /F33 1398 0 R /F27 1298 0 R >> -/ProcSet [ /PDF /Text ] +2068 0 obj << +/D [5163 0 R /XYZ 71.731 475.2179 null] +>> endobj +1058 0 obj << +/D [5163 0 R /XYZ 252.5255 429.9636 null] +>> endobj +5177 0 obj << +/D [5163 0 R /XYZ 71.731 417.7924 null] >> endobj -5179 0 obj << -/Length 656 -/Filter /FlateDecode ->> -stream -xڽV�n�0}�W�lc0��M�:-[�4i�&7� �����lCִѪ%Q$����{N|.���~Њ ������ k����J�J'pq�wt�M�w[1�CZ٣��V��R+˿�Ӧ�U^<9."�}��U+���JHV�Lu�?���¡���!n^�]Ʌ�={?�������NR�G�@шDAHBlE>8���p�pbdO?�u�j{[�5�wuBb�O��Z�&�<�Y�\�e�*P�����!�t�i�0"�,�z�mx%����@�1x.T<��-�b� l�DJ�M��I�(�UQ%I:K���J�*���q���o�['$6�;Y���B��K�_�-�U�u�O`-7� Ύ�X����N�b����}�o>��ʿw��5��z�v�_P�Cm�dY<��7�(��=�܁�A���-FC�}8X�:���FWa��f#�>��� $F=�Z��$7L���j��M�͌����T�KҖ5��^��|ϸ���:=�_�>hO�������e��N��x�gY���\:W��eA�xF��-�����H}���z����.�听�Y�Pp���-u�.U� ������z��=�|���_��HP@a�<��b�-a�c�4��WO/d�h���endstream -endobj 5178 0 obj << -/Type /Page -/Contents 5179 0 R -/Resources 5177 0 R -/MediaBox [0 0 609.7136 789.0411] -/Parent 5116 0 R +/D [5163 0 R /XYZ 71.731 398.3423 null] +>> endobj +5179 0 obj << +/D [5163 0 R /XYZ 188.0244 385.4904 null] >> endobj 5180 0 obj << -/D [5178 0 R /XYZ 71.731 729.2652 null] +/D [5163 0 R /XYZ 158.3455 372.539 null] >> endobj 5181 0 obj << -/D [5178 0 R /XYZ 71.731 718.3063 null] +/D [5163 0 R /XYZ 71.731 331.6921 null] >> endobj 5182 0 obj << -/D [5178 0 R /XYZ 188.0244 708.3437 null] +/D [5163 0 R /XYZ 71.731 306.6212 null] >> endobj 5183 0 obj << -/D [5178 0 R /XYZ 158.3455 695.3923 null] +/D [5163 0 R /XYZ 188.0244 295.8266 null] >> endobj 5184 0 obj << -/D [5178 0 R /XYZ 71.731 654.5454 null] +/D [5163 0 R /XYZ 158.3455 282.8752 null] >> endobj 5185 0 obj << -/D [5178 0 R /XYZ 71.731 629.4745 null] +/D [5163 0 R /XYZ 71.731 242.0284 null] >> endobj 5186 0 obj << -/D [5178 0 R /XYZ 185.5337 618.6799 null] +/D [5163 0 R /XYZ 71.731 216.9575 null] >> endobj 5187 0 obj << -/D [5178 0 R /XYZ 155.8548 605.7285 null] +/D [5163 0 R /XYZ 188.0244 206.1629 null] >> endobj 5188 0 obj << -/D [5178 0 R /XYZ 71.731 564.8817 null] +/D [5163 0 R /XYZ 158.3455 193.2114 null] >> endobj 5189 0 obj << -/D [5178 0 R /XYZ 71.731 539.8108 null] +/D [5163 0 R /XYZ 71.731 152.3646 null] >> endobj 5190 0 obj << -/D [5178 0 R /XYZ 188.0244 529.0162 null] +/D [5163 0 R /XYZ 71.731 127.2937 null] >> endobj 5191 0 obj << -/D [5178 0 R /XYZ 158.3455 516.0647 null] ->> endobj -2068 0 obj << -/D [5178 0 R /XYZ 71.731 475.2179 null] ->> endobj -1058 0 obj << -/D [5178 0 R /XYZ 252.5255 429.9636 null] +/D [5163 0 R /XYZ 188.0244 116.4991 null] >> endobj 5192 0 obj << -/D [5178 0 R /XYZ 71.731 417.7924 null] ->> endobj -5193 0 obj << -/D [5178 0 R /XYZ 71.731 398.3423 null] ->> endobj -5194 0 obj << -/D [5178 0 R /XYZ 188.0244 385.4904 null] ->> endobj -5195 0 obj << -/D [5178 0 R /XYZ 158.3455 372.539 null] ->> endobj -5196 0 obj << -/D [5178 0 R /XYZ 71.731 331.6921 null] ->> endobj -5197 0 obj << -/D [5178 0 R /XYZ 71.731 306.6212 null] ->> endobj -5198 0 obj << -/D [5178 0 R /XYZ 188.0244 295.8266 null] ->> endobj -5199 0 obj << -/D [5178 0 R /XYZ 158.3455 282.8752 null] ->> endobj -5200 0 obj << -/D [5178 0 R /XYZ 71.731 242.0284 null] ->> endobj -5201 0 obj << -/D [5178 0 R /XYZ 71.731 216.9575 null] ->> endobj -5202 0 obj << -/D [5178 0 R /XYZ 188.0244 206.1629 null] ->> endobj -5203 0 obj << -/D [5178 0 R /XYZ 158.3455 193.2114 null] ->> endobj -5204 0 obj << -/D [5178 0 R /XYZ 71.731 152.3646 null] ->> endobj -5205 0 obj << -/D [5178 0 R /XYZ 71.731 127.2937 null] ->> endobj -5206 0 obj << -/D [5178 0 R /XYZ 188.0244 116.4991 null] ->> endobj -5207 0 obj << -/D [5178 0 R /XYZ 158.3455 103.5477 null] +/D [5163 0 R /XYZ 158.3455 103.5477 null] >> endobj -5177 0 obj << +5162 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5210 0 obj << +5195 0 obj << /Length 435 /Filter /FlateDecode >> @@ -22268,45 +22289,45 @@ stream xڽSMo�0����>�Oxoi��6�V��U��B��V��5�ۤɡ���{x3�<f������X���� �7��և [ �� .A�� y/PXE<�!Ŋ�Ă�D���=�j[���pI�5��A7����}�;]Uڕ��W��\�(��t�`�2=���nv�N���Kx�zi��&�Q�PEj�pDLB������t�Q`�.8��C6!��Hqx�i|c���TV�O��N'��?��-!��]V�� �b <=��v���n�ywG�I � ��%'�� �i�4�?��3�$��m�<"�Z��C�/e�&��Y������(,ͤ��&�`�.�U"&�}=������ˈ�w���1s��L�Qx=�X[�YW��t��C���E�<wKR�'��{s�yym$��$Z;�� _��_0�iendstream endobj -5209 0 obj << +5194 0 obj << /Type /Page -/Contents 5210 0 R -/Resources 5208 0 R +/Contents 5195 0 R +/Resources 5193 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5116 0 R +/Parent 5101 0 R >> endobj -5211 0 obj << -/D [5209 0 R /XYZ 71.731 729.2652 null] +5196 0 obj << +/D [5194 0 R /XYZ 71.731 729.2652 null] >> endobj -5212 0 obj << -/D [5209 0 R /XYZ 71.731 680.4483 null] +5197 0 obj << +/D [5194 0 R /XYZ 71.731 680.4483 null] >> endobj -5213 0 obj << -/D [5209 0 R /XYZ 71.731 657.4347 null] +5198 0 obj << +/D [5194 0 R /XYZ 71.731 657.4347 null] >> endobj -5214 0 obj << -/D [5209 0 R /XYZ 188.0244 644.5828 null] +5199 0 obj << +/D [5194 0 R /XYZ 188.0244 644.5828 null] >> endobj -5215 0 obj << -/D [5209 0 R /XYZ 158.3455 631.6314 null] +5200 0 obj << +/D [5194 0 R /XYZ 158.3455 631.6314 null] >> endobj -5216 0 obj << -/D [5209 0 R /XYZ 71.731 590.7845 null] +5201 0 obj << +/D [5194 0 R /XYZ 71.731 590.7845 null] >> endobj -5217 0 obj << -/D [5209 0 R /XYZ 71.731 565.7136 null] +5202 0 obj << +/D [5194 0 R /XYZ 71.731 565.7136 null] >> endobj -5218 0 obj << -/D [5209 0 R /XYZ 188.0244 554.919 null] +5203 0 obj << +/D [5194 0 R /XYZ 188.0244 554.919 null] >> endobj -5219 0 obj << -/D [5209 0 R /XYZ 158.3455 541.9676 null] +5204 0 obj << +/D [5194 0 R /XYZ 158.3455 541.9676 null] >> endobj -5208 0 obj << +5193 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5222 0 obj << +5207 0 obj << /Length 2587 /Filter /FlateDecode >> @@ -22319,75 +22340,75 @@ x ����]2�ӊCe=��lJ���~��������\U֓���c�(�G�� z-��dX#�R�E��扠������w�'�l�����=a�y<���4�Z�<I�(��$jţ��z�� V��d�endstream endobj -5221 0 obj << +5206 0 obj << /Type /Page -/Contents 5222 0 R -/Resources 5220 0 R +/Contents 5207 0 R +/Resources 5205 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5116 0 R +/Parent 5101 0 R >> endobj -5223 0 obj << -/D [5221 0 R /XYZ 71.731 729.2652 null] +5208 0 obj << +/D [5206 0 R /XYZ 71.731 729.2652 null] >> endobj 2069 0 obj << -/D [5221 0 R /XYZ 71.731 718.3063 null] +/D [5206 0 R /XYZ 71.731 718.3063 null] >> endobj 1062 0 obj << -/D [5221 0 R /XYZ 531.42 703.236 null] +/D [5206 0 R /XYZ 531.42 703.236 null] >> endobj -5224 0 obj << -/D [5221 0 R /XYZ 71.731 682.1747 null] +5209 0 obj << +/D [5206 0 R /XYZ 71.731 682.1747 null] >> endobj -5225 0 obj << -/D [5221 0 R /XYZ 71.731 672.0599 null] +5210 0 obj << +/D [5206 0 R /XYZ 71.731 672.0599 null] >> endobj -5226 0 obj << -/D [5221 0 R /XYZ 71.731 662.0973 null] +5211 0 obj << +/D [5206 0 R /XYZ 71.731 662.0973 null] >> endobj 2070 0 obj << -/D [5221 0 R /XYZ 71.731 638.2831 null] +/D [5206 0 R /XYZ 71.731 638.2831 null] >> endobj 1066 0 obj << -/D [5221 0 R /XYZ 168.2049 594.97 null] +/D [5206 0 R /XYZ 168.2049 594.97 null] >> endobj -5227 0 obj << -/D [5221 0 R /XYZ 71.731 586.1472 null] +5212 0 obj << +/D [5206 0 R /XYZ 71.731 586.1472 null] >> endobj -5228 0 obj << -/D [5221 0 R /XYZ 71.731 527.4184 null] +5213 0 obj << +/D [5206 0 R /XYZ 71.731 527.4184 null] >> endobj -5229 0 obj << -/D [5221 0 R /XYZ 71.731 485.64 null] +5214 0 obj << +/D [5206 0 R /XYZ 71.731 485.64 null] >> endobj 2071 0 obj << -/D [5221 0 R /XYZ 71.731 415.9016 null] +/D [5206 0 R /XYZ 71.731 415.9016 null] >> endobj 1070 0 obj << -/D [5221 0 R /XYZ 312.7959 370.7468 null] ->> endobj -5230 0 obj << -/D [5221 0 R /XYZ 71.731 358.5756 null] +/D [5206 0 R /XYZ 312.7959 370.7468 null] >> endobj -5231 0 obj << -/D [5221 0 R /XYZ 71.731 316.1466 null] +5215 0 obj << +/D [5206 0 R /XYZ 71.731 358.5756 null] >> endobj -5232 0 obj << -/D [5221 0 R /XYZ 71.731 285.2624 null] +5216 0 obj << +/D [5206 0 R /XYZ 71.731 316.1466 null] >> endobj -5233 0 obj << -/D [5221 0 R /XYZ 71.731 202.5725 null] +5217 0 obj << +/D [5206 0 R /XYZ 71.731 285.2624 null] >> endobj -5234 0 obj << -/D [5221 0 R /XYZ 71.731 171.6884 null] +5218 0 obj << +/D [5206 0 R /XYZ 71.731 202.5725 null] >> endobj -5235 0 obj << -/D [5221 0 R /XYZ 71.731 140.8042 null] +5219 0 obj << +/D [5206 0 R /XYZ 71.731 171.6884 null] >> endobj 5220 0 obj << +/D [5206 0 R /XYZ 71.731 140.8042 null] +>> endobj +5205 0 obj << /Font << /F23 1290 0 R /F27 1298 0 R /F33 1398 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5238 0 obj << +5223 0 obj << /Length 2983 /Filter /FlateDecode >> @@ -22406,54 +22427,54 @@ _ �A�|��U"'{Z��@��֛,���X �]�3 Xgeb�;� ���Ar_�#���&�0�Za����؝,w���N��#��X���(�#��v<GiE�����R%�Hsf#`s��^��?��������������CE~����o���ʉ��$�endstream endobj -5237 0 obj << +5222 0 obj << /Type /Page -/Contents 5238 0 R -/Resources 5236 0 R +/Contents 5223 0 R +/Resources 5221 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5247 0 R +/Parent 5232 0 R >> endobj -5239 0 obj << -/D [5237 0 R /XYZ 71.731 729.2652 null] +5224 0 obj << +/D [5222 0 R /XYZ 71.731 729.2652 null] >> endobj -5240 0 obj << -/D [5237 0 R /XYZ 71.731 662.3513 null] +5225 0 obj << +/D [5222 0 R /XYZ 71.731 662.3513 null] >> endobj -5241 0 obj << -/D [5237 0 R /XYZ 71.731 592.6128 null] +5226 0 obj << +/D [5222 0 R /XYZ 71.731 592.6128 null] >> endobj 2072 0 obj << -/D [5237 0 R /XYZ 71.731 535.8257 null] +/D [5222 0 R /XYZ 71.731 535.8257 null] >> endobj 1074 0 obj << -/D [5237 0 R /XYZ 237.0663 492.7282 null] +/D [5222 0 R /XYZ 237.0663 492.7282 null] >> endobj -5242 0 obj << -/D [5237 0 R /XYZ 71.731 480.2903 null] +5227 0 obj << +/D [5222 0 R /XYZ 71.731 480.2903 null] >> endobj -5243 0 obj << -/D [5237 0 R /XYZ 71.731 401.3311 null] +5228 0 obj << +/D [5222 0 R /XYZ 71.731 401.3311 null] >> endobj 2073 0 obj << -/D [5237 0 R /XYZ 71.731 381.341 null] +/D [5222 0 R /XYZ 71.731 381.341 null] >> endobj 1078 0 obj << -/D [5237 0 R /XYZ 254.1783 338.2435 null] +/D [5222 0 R /XYZ 254.1783 338.2435 null] >> endobj -5244 0 obj << -/D [5237 0 R /XYZ 71.731 325.8056 null] +5229 0 obj << +/D [5222 0 R /XYZ 71.731 325.8056 null] >> endobj -5245 0 obj << -/D [5237 0 R /XYZ 71.731 231.8377 null] +5230 0 obj << +/D [5222 0 R /XYZ 71.731 231.8377 null] >> endobj -5246 0 obj << -/D [5237 0 R /XYZ 71.731 200.9535 null] +5231 0 obj << +/D [5222 0 R /XYZ 71.731 200.9535 null] >> endobj -5236 0 obj << +5221 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5250 0 obj << +5235 0 obj << /Length 3094 /Filter /FlateDecode >> @@ -22466,126 +22487,126 @@ zV9> f֨�2��`��F�7zݜ;A� _�Q��X�yh��*��r�r��#d�aF��P��PX��`8�qf8��������s�{V���{zM��|��3-���CchBc����$G$���(��QiH3�m����[���)�Y�&=I��O�/�� 6��ܡ���7�0hi�%f8iUT��5� /iv��fc-7�z,� d�4],�6��"�h�Z����h���*{a�*{�_E������.�\HL ���q)Ll)30�~h=�?���9��d���o���P9�����f�#�[0Ց;9�vyi�Fľ'e��튑v6�î��p�?/ە��vuS�m���RuC�Mao� �,�������N��Մ��A��pk���I�u��?.T,�Q"<��<�,��� ��~Yޭ9�;6��)e�+'*l�����<�P}��ٱ��o���>n��O��e��&;4�]u�p�#���&w"�2��@�Ø`'��ֽ6,O�\0KRcI-=�}|86p2�6�Jv���@�<�����$�B��q�����h����y�J�#��M_���0R��Q2Z*͍�K���9��K�b��On ��Ť;|x1��g��y�D�����L���GZ������M��ښCF����iՠ����p-��-���8��,^�u���V�endstream endobj -5249 0 obj << +5234 0 obj << /Type /Page -/Contents 5250 0 R -/Resources 5248 0 R +/Contents 5235 0 R +/Resources 5233 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5247 0 R +/Parent 5232 0 R >> endobj -5251 0 obj << -/D [5249 0 R /XYZ 71.731 729.2652 null] +5236 0 obj << +/D [5234 0 R /XYZ 71.731 729.2652 null] >> endobj -5252 0 obj << -/D [5249 0 R /XYZ 71.731 741.2204 null] +5237 0 obj << +/D [5234 0 R /XYZ 71.731 741.2204 null] >> endobj -5253 0 obj << -/D [5249 0 R /XYZ 71.731 718.3063 null] +5238 0 obj << +/D [5234 0 R /XYZ 71.731 718.3063 null] >> endobj 2074 0 obj << -/D [5249 0 R /XYZ 71.731 688.2541 null] +/D [5234 0 R /XYZ 71.731 688.2541 null] >> endobj 1082 0 obj << -/D [5249 0 R /XYZ 201.8268 645.1566 null] +/D [5234 0 R /XYZ 201.8268 645.1566 null] +>> endobj +5239 0 obj << +/D [5234 0 R /XYZ 71.731 636.3338 null] +>> endobj +5240 0 obj << +/D [5234 0 R /XYZ 71.731 582.5864 null] +>> endobj +5241 0 obj << +/D [5234 0 R /XYZ 71.731 577.605 null] +>> endobj +5242 0 obj << +/D [5234 0 R /XYZ 89.6638 556.8478 null] +>> endobj +5243 0 obj << +/D [5234 0 R /XYZ 71.731 528.7881 null] +>> endobj +5244 0 obj << +/D [5234 0 R /XYZ 89.6638 513.0122 null] +>> endobj +5245 0 obj << +/D [5234 0 R /XYZ 71.731 485.3261 null] +>> endobj +5246 0 obj << +/D [5234 0 R /XYZ 89.6638 469.1766 null] +>> endobj +5247 0 obj << +/D [5234 0 R /XYZ 71.731 467.0197 null] +>> endobj +5248 0 obj << +/D [5234 0 R /XYZ 89.6638 451.2438 null] +>> endobj +5249 0 obj << +/D [5234 0 R /XYZ 71.731 449.087 null] +>> endobj +5250 0 obj << +/D [5234 0 R /XYZ 89.6638 433.3111 null] +>> endobj +5251 0 obj << +/D [5234 0 R /XYZ 71.731 431.1542 null] +>> endobj +5252 0 obj << +/D [5234 0 R /XYZ 89.6638 415.3783 null] +>> endobj +5253 0 obj << +/D [5234 0 R /XYZ 71.731 400.9873 null] >> endobj 5254 0 obj << -/D [5249 0 R /XYZ 71.731 636.3338 null] +/D [5234 0 R /XYZ 89.6638 384.4941 null] >> endobj 5255 0 obj << -/D [5249 0 R /XYZ 71.731 582.5864 null] +/D [5234 0 R /XYZ 71.731 371.4431 null] >> endobj 5256 0 obj << -/D [5249 0 R /XYZ 71.731 577.605 null] +/D [5234 0 R /XYZ 89.6638 353.6099 null] >> endobj 5257 0 obj << -/D [5249 0 R /XYZ 89.6638 556.8478 null] +/D [5234 0 R /XYZ 71.731 351.4531 null] >> endobj 5258 0 obj << -/D [5249 0 R /XYZ 71.731 528.7881 null] +/D [5234 0 R /XYZ 89.6638 335.6772 null] >> endobj 5259 0 obj << -/D [5249 0 R /XYZ 89.6638 513.0122 null] +/D [5234 0 R /XYZ 71.731 294.6661 null] >> endobj 5260 0 obj << -/D [5249 0 R /XYZ 71.731 485.3261 null] +/D [5234 0 R /XYZ 89.6638 278.8901 null] >> endobj 5261 0 obj << -/D [5249 0 R /XYZ 89.6638 469.1766 null] +/D [5234 0 R /XYZ 71.731 237.879 null] >> endobj 5262 0 obj << -/D [5249 0 R /XYZ 71.731 467.0197 null] +/D [5234 0 R /XYZ 89.6638 222.1031 null] >> endobj 5263 0 obj << -/D [5249 0 R /XYZ 89.6638 451.2438 null] +/D [5234 0 R /XYZ 71.731 206.9948 null] >> endobj 5264 0 obj << -/D [5249 0 R /XYZ 71.731 449.087 null] +/D [5234 0 R /XYZ 89.6638 191.2189 null] >> endobj 5265 0 obj << -/D [5249 0 R /XYZ 89.6638 433.3111 null] +/D [5234 0 R /XYZ 71.731 176.1106 null] >> endobj 5266 0 obj << -/D [5249 0 R /XYZ 71.731 431.1542 null] +/D [5234 0 R /XYZ 89.6638 160.3347 null] >> endobj 5267 0 obj << -/D [5249 0 R /XYZ 89.6638 415.3783 null] +/D [5234 0 R /XYZ 71.731 158.1779 null] >> endobj 5268 0 obj << -/D [5249 0 R /XYZ 71.731 400.9873 null] +/D [5234 0 R /XYZ 89.6638 142.402 null] >> endobj 5269 0 obj << -/D [5249 0 R /XYZ 89.6638 384.4941 null] ->> endobj -5270 0 obj << -/D [5249 0 R /XYZ 71.731 371.4431 null] ->> endobj -5271 0 obj << -/D [5249 0 R /XYZ 89.6638 353.6099 null] ->> endobj -5272 0 obj << -/D [5249 0 R /XYZ 71.731 351.4531 null] ->> endobj -5273 0 obj << -/D [5249 0 R /XYZ 89.6638 335.6772 null] ->> endobj -5274 0 obj << -/D [5249 0 R /XYZ 71.731 294.6661 null] ->> endobj -5275 0 obj << -/D [5249 0 R /XYZ 89.6638 278.8901 null] ->> endobj -5276 0 obj << -/D [5249 0 R /XYZ 71.731 237.879 null] ->> endobj -5277 0 obj << -/D [5249 0 R /XYZ 89.6638 222.1031 null] ->> endobj -5278 0 obj << -/D [5249 0 R /XYZ 71.731 206.9948 null] ->> endobj -5279 0 obj << -/D [5249 0 R /XYZ 89.6638 191.2189 null] ->> endobj -5280 0 obj << -/D [5249 0 R /XYZ 71.731 176.1106 null] ->> endobj -5281 0 obj << -/D [5249 0 R /XYZ 89.6638 160.3347 null] ->> endobj -5282 0 obj << -/D [5249 0 R /XYZ 71.731 158.1779 null] ->> endobj -5283 0 obj << -/D [5249 0 R /XYZ 89.6638 142.402 null] ->> endobj -5284 0 obj << -/D [5249 0 R /XYZ 71.731 135.2638 null] +/D [5234 0 R /XYZ 71.731 135.2638 null] >> endobj -5248 0 obj << +5233 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5287 0 obj << +5272 0 obj << /Length 2570 /Filter /FlateDecode >> @@ -22603,63 +22624,63 @@ xڝYK -� ��ҭ/���ߢS� �����R/���- �l��P�K�?� VͽnSB�M�!��+rBw[��\�~���"�I�@�#-߀`bI�?0E���s��(Zl�#��lZP��[s����ϳ6J��|��8��O�z��,�PS|c�G���L�8��0���1d�����A�Pvfz8"��L�kSɞ�f�ט��36���I�E�z=�I�����e��y�>�����/�I��(OGIh�`��ו���5�endstream endobj -5286 0 obj << +5271 0 obj << /Type /Page -/Contents 5287 0 R -/Resources 5285 0 R +/Contents 5272 0 R +/Resources 5270 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5247 0 R +/Parent 5232 0 R >> endobj -5288 0 obj << -/D [5286 0 R /XYZ 71.731 729.2652 null] +5273 0 obj << +/D [5271 0 R /XYZ 71.731 729.2652 null] >> endobj -5289 0 obj << -/D [5286 0 R /XYZ 71.731 646.4758 null] +5274 0 obj << +/D [5271 0 R /XYZ 71.731 646.4758 null] >> endobj -5290 0 obj << -/D [5286 0 R /XYZ 71.731 561.7286 null] +5275 0 obj << +/D [5271 0 R /XYZ 71.731 561.7286 null] >> endobj 2075 0 obj << -/D [5286 0 R /XYZ 71.731 530.8444 null] +/D [5271 0 R /XYZ 71.731 530.8444 null] >> endobj 1086 0 obj << -/D [5286 0 R /XYZ 279.2956 487.7469 null] +/D [5271 0 R /XYZ 279.2956 487.7469 null] >> endobj -5291 0 obj << -/D [5286 0 R /XYZ 71.731 475.3089 null] +5276 0 obj << +/D [5271 0 R /XYZ 71.731 475.3089 null] >> endobj -5292 0 obj << -/D [5286 0 R /XYZ 71.731 433.1468 null] +5277 0 obj << +/D [5271 0 R /XYZ 71.731 433.1468 null] >> endobj -5293 0 obj << -/D [5286 0 R /XYZ 71.731 365.4656 null] +5278 0 obj << +/D [5271 0 R /XYZ 71.731 365.4656 null] >> endobj 2076 0 obj << -/D [5286 0 R /XYZ 71.731 321.6299 null] +/D [5271 0 R /XYZ 71.731 321.6299 null] >> endobj 1090 0 obj << -/D [5286 0 R /XYZ 303.2245 276.4752 null] +/D [5271 0 R /XYZ 303.2245 276.4752 null] >> endobj -5294 0 obj << -/D [5286 0 R /XYZ 71.731 267.6524 null] +5279 0 obj << +/D [5271 0 R /XYZ 71.731 267.6524 null] >> endobj -5295 0 obj << -/D [5286 0 R /XYZ 71.731 221.875 null] +5280 0 obj << +/D [5271 0 R /XYZ 71.731 221.875 null] >> endobj 2077 0 obj << -/D [5286 0 R /XYZ 71.731 178.0394 null] +/D [5271 0 R /XYZ 71.731 178.0394 null] >> endobj 1094 0 obj << -/D [5286 0 R /XYZ 394.7926 134.9419 null] +/D [5271 0 R /XYZ 394.7926 134.9419 null] >> endobj -5296 0 obj << -/D [5286 0 R /XYZ 71.731 122.5039 null] +5281 0 obj << +/D [5271 0 R /XYZ 71.731 122.5039 null] >> endobj -5285 0 obj << +5270 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5299 0 obj << +5284 0 obj << /Length 2426 /Filter /FlateDecode >> @@ -22674,72 +22695,72 @@ Ng Y�n^,�V8���|^j{ *�S�r��S��"�\��uYr<��c��K!#b�b'��4��}I�9�:J��F��e�5| j�[0è Z�@s6q�lrV"ˁRI��T�I0>����<�5��!�5����V-X�N�)���L����`�MR��}����Hm�R�iS 7{� ��gM{'�uʳ�X���nE�Q���h�ؓ�ä�k莺v���w7G��=�g���ڥ�g7X����{�3ob��>}�_qS����%�xXN��w�kk����{�w���4���@L��c�n��<ur�A@�4�t7{�R���aن-v���vt*�N�W��ݸ̂}��%y��N�`�ʱ��7[���o|�*:kk��t���VWu��W������rR��]�'ᾝ�pDd���$ĈOO�>���ux?�"����?�|f���=%�+���r��lrы2LBܤ�J��}dËl]B��P#�J�ghii��C<���CT4rr. �9h��I�B{��z3tb^�~� +�ܢ1�E�hMP���L�Q��� ��Dz���$?m3?w�W,sx^�V�D���nX�����Z����O�#endstream endobj -5298 0 obj << +5283 0 obj << /Type /Page -/Contents 5299 0 R -/Resources 5297 0 R +/Contents 5284 0 R +/Resources 5282 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5247 0 R +/Parent 5232 0 R >> endobj -5300 0 obj << -/D [5298 0 R /XYZ 71.731 729.2652 null] +5285 0 obj << +/D [5283 0 R /XYZ 71.731 729.2652 null] >> endobj -5301 0 obj << -/D [5298 0 R /XYZ 71.731 675.3027 null] +5286 0 obj << +/D [5283 0 R /XYZ 71.731 675.3027 null] >> endobj 2078 0 obj << -/D [5298 0 R /XYZ 71.731 631.4671 null] +/D [5283 0 R /XYZ 71.731 631.4671 null] >> endobj 1098 0 obj << -/D [5298 0 R /XYZ 182.2872 588.3696 null] +/D [5283 0 R /XYZ 182.2872 588.3696 null] >> endobj -5302 0 obj << -/D [5298 0 R /XYZ 71.731 579.5468 null] +5287 0 obj << +/D [5283 0 R /XYZ 71.731 579.5468 null] >> endobj 2079 0 obj << -/D [5298 0 R /XYZ 71.731 494.9151 null] +/D [5283 0 R /XYZ 71.731 494.9151 null] >> endobj 1102 0 obj << -/D [5298 0 R /XYZ 188.3641 451.8176 null] +/D [5283 0 R /XYZ 188.3641 451.8176 null] >> endobj -5303 0 obj << -/D [5298 0 R /XYZ 71.731 442.9948 null] +5288 0 obj << +/D [5283 0 R /XYZ 71.731 442.9948 null] >> endobj 2080 0 obj << -/D [5298 0 R /XYZ 71.731 384.266 null] +/D [5283 0 R /XYZ 71.731 384.266 null] >> endobj 1106 0 obj << -/D [5298 0 R /XYZ 365.182 341.1686 null] +/D [5283 0 R /XYZ 365.182 341.1686 null] >> endobj -5304 0 obj << -/D [5298 0 R /XYZ 71.731 332.3458 null] +5289 0 obj << +/D [5283 0 R /XYZ 71.731 332.3458 null] >> endobj -5305 0 obj << -/D [5298 0 R /XYZ 179.3565 293.7066 null] +5290 0 obj << +/D [5283 0 R /XYZ 179.3565 293.7066 null] >> endobj -5306 0 obj << -/D [5298 0 R /XYZ 71.731 286.5684 null] +5291 0 obj << +/D [5283 0 R /XYZ 71.731 286.5684 null] >> endobj 2081 0 obj << -/D [5298 0 R /XYZ 71.731 216.8299 null] +/D [5283 0 R /XYZ 71.731 216.8299 null] >> endobj 1110 0 obj << -/D [5298 0 R /XYZ 433.2515 173.7324 null] +/D [5283 0 R /XYZ 433.2515 173.7324 null] >> endobj -5307 0 obj << -/D [5298 0 R /XYZ 71.731 161.5612 null] +5292 0 obj << +/D [5283 0 R /XYZ 71.731 161.5612 null] >> endobj -5308 0 obj << -/D [5298 0 R /XYZ 71.731 137.065 null] +5293 0 obj << +/D [5283 0 R /XYZ 71.731 137.065 null] >> endobj -5309 0 obj << -/D [5298 0 R /XYZ 71.731 127.1024 null] +5294 0 obj << +/D [5283 0 R /XYZ 71.731 127.1024 null] >> endobj -5297 0 obj << +5282 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R /F23 1290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5312 0 obj << +5297 0 obj << /Length 764 /Filter /FlateDecode >> @@ -22751,27 +22772,27 @@ FI (+�'| ,#mKw�w�az��t�G�1�ڍ�7��lt+f��J#��R����q��*���6��pûNtdž�U��+c�;VTa��p�udl�.�Ez�vv�HO��/�����ɀ��9�����J;���^Ct\>�Ϡ���ØL�>��o��tl��.��L� �4�%)��z��|����(#1+�1���$�oޑ������endstream endobj -5311 0 obj << +5296 0 obj << /Type /Page -/Contents 5312 0 R -/Resources 5310 0 R +/Contents 5297 0 R +/Resources 5295 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5247 0 R +/Parent 5232 0 R >> endobj -5313 0 obj << -/D [5311 0 R /XYZ 71.731 729.2652 null] +5298 0 obj << +/D [5296 0 R /XYZ 71.731 729.2652 null] >> endobj -5314 0 obj << -/D [5311 0 R /XYZ 71.731 689.7649 null] +5299 0 obj << +/D [5296 0 R /XYZ 71.731 689.7649 null] >> endobj -5315 0 obj << -/D [5311 0 R /XYZ 71.731 647.7709 null] +5300 0 obj << +/D [5296 0 R /XYZ 71.731 647.7709 null] >> endobj -5310 0 obj << +5295 0 obj << /Font << /F33 1398 0 R /F27 1298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5318 0 obj << +5303 0 obj << /Length 1841 /Filter /FlateDecode >> @@ -22783,188 +22804,188 @@ _c ����:Wx#�����A���J}�3+&���cH��rd�r��CRH��QÁ�\ ��ƕ���'�fx��/�e߷�aD|���&�IHZ���H���7VQ���öS�X���5T!���D�E��S�Ʃ�a�_�L8��E\��v0f�j�K4���t9GD�3c�1O�o�?�F��?�@@�Sd4j� �$aE����3����|ᇈ�Z7:x"����,����W%��x�K��A�ÎF���p�6�(�| i���D�u�d�^/� �-���a㭶ޒ���(��n��sG��~��k��C<5�U��$Ϯ%��Bp����t��a��d,m@/�!E�.i��C�������M\�%i2���!���p�S����f��*��g�9x��QѶ�Ҷ��^��_|���B�_.�AQ�Y23��LO�0ī��-(�%Kyv�X>��T\W����=��`�������ʩ?���ک/���w��px>�)T��UL� o�I�RL��z��u0u���x�3D�.Kkh��=��*Z�yvc�� Y� ��h�l���6J7����:�}أ�P��۽��5�j�_��j�:.����ILw-B�hy��rG9���bG�0�:C�_�m�����.\!R�1���8��r�H�<�M������п��R���p0��r�V��0H|q{��G��R۔�s���?Hm���s �"�LƙK�!dP���'Mh ��G����t�c�endstream endobj -5317 0 obj << +5302 0 obj << /Type /Page -/Contents 5318 0 R -/Resources 5316 0 R +/Contents 5303 0 R +/Resources 5301 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5247 0 R -/Annots [ 5364 0 R ] +/Parent 5232 0 R +/Annots [ 5349 0 R ] >> endobj -5364 0 obj << +5349 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [374.7025 133.0074 436.4705 143.9114] /Subtype /Link /A << /S /GoTo /D (http-apache) >> >> endobj -5319 0 obj << -/D [5317 0 R /XYZ 71.731 729.2652 null] +5304 0 obj << +/D [5302 0 R /XYZ 71.731 729.2652 null] >> endobj 2082 0 obj << -/D [5317 0 R /XYZ 71.731 718.3063 null] +/D [5302 0 R /XYZ 71.731 718.3063 null] >> endobj 1114 0 obj << -/D [5317 0 R /XYZ 160.3549 703.236 null] +/D [5302 0 R /XYZ 160.3549 703.236 null] >> endobj -5320 0 obj << -/D [5317 0 R /XYZ 71.731 692.504 null] +5305 0 obj << +/D [5302 0 R /XYZ 71.731 692.504 null] >> endobj 1118 0 obj << -/D [5317 0 R /XYZ 208.3645 644.1007 null] +/D [5302 0 R /XYZ 208.3645 644.1007 null] >> endobj -4196 0 obj << -/D [5317 0 R /XYZ 71.731 629.1751 null] +4181 0 obj << +/D [5302 0 R /XYZ 71.731 629.1751 null] >> endobj 1122 0 obj << -/D [5317 0 R /XYZ 117.1402 620.82 null] +/D [5302 0 R /XYZ 117.1402 620.82 null] +>> endobj +5306 0 obj << +/D [5302 0 R /XYZ 71.731 615.7142 null] +>> endobj +5307 0 obj << +/D [5302 0 R /XYZ 71.731 610.7329 null] +>> endobj +5308 0 obj << +/D [5302 0 R /XYZ 118.3278 584.9545 null] +>> endobj +5309 0 obj << +/D [5302 0 R /XYZ 296.214 572.0031 null] +>> endobj +5310 0 obj << +/D [5302 0 R /XYZ 71.731 536.1376 null] +>> endobj +1126 0 obj << +/D [5302 0 R /XYZ 86.6464 483.8248 null] +>> endobj +5311 0 obj << +/D [5302 0 R /XYZ 71.731 473.4955 null] +>> endobj +1130 0 obj << +/D [5302 0 R /XYZ 107.6162 460.5441 null] +>> endobj +5312 0 obj << +/D [5302 0 R /XYZ 71.731 453.5005 null] +>> endobj +5313 0 obj << +/D [5302 0 R /XYZ 71.731 448.5192 null] +>> endobj +5314 0 obj << +/D [5302 0 R /XYZ 256.795 411.7271 null] +>> endobj +5315 0 obj << +/D [5302 0 R /XYZ 392.1662 411.7271 null] +>> endobj +5316 0 obj << +/D [5302 0 R /XYZ 71.731 409.5703 null] +>> endobj +5317 0 obj << +/D [5302 0 R /XYZ 71.731 395.6226 null] +>> endobj +1134 0 obj << +/D [5302 0 R /XYZ 320.8499 382.2377 null] +>> endobj +5318 0 obj << +/D [5302 0 R /XYZ 71.731 369.6152 null] +>> endobj +5319 0 obj << +/D [5302 0 R /XYZ 71.731 369.6152 null] +>> endobj +5320 0 obj << +/D [5302 0 R /XYZ 71.731 369.6152 null] >> endobj 5321 0 obj << -/D [5317 0 R /XYZ 71.731 615.7142 null] +/D [5302 0 R /XYZ 71.731 357.9429 null] >> endobj 5322 0 obj << -/D [5317 0 R /XYZ 71.731 610.7329 null] +/D [5302 0 R /XYZ 111.5816 341.3909 null] >> endobj 5323 0 obj << -/D [5317 0 R /XYZ 118.3278 584.9545 null] +/D [5302 0 R /XYZ 71.731 329.2714 null] >> endobj 5324 0 obj << -/D [5317 0 R /XYZ 296.214 572.0031 null] +/D [5302 0 R /XYZ 71.731 329.2714 null] >> endobj 5325 0 obj << -/D [5317 0 R /XYZ 71.731 536.1376 null] ->> endobj -1126 0 obj << -/D [5317 0 R /XYZ 86.6464 483.8248 null] +/D [5302 0 R /XYZ 71.731 329.2714 null] >> endobj 5326 0 obj << -/D [5317 0 R /XYZ 71.731 473.4955 null] ->> endobj -1130 0 obj << -/D [5317 0 R /XYZ 107.6162 460.5441 null] +/D [5302 0 R /XYZ 71.731 317.0961 null] >> endobj 5327 0 obj << -/D [5317 0 R /XYZ 71.731 453.5005 null] +/D [5302 0 R /XYZ 71.731 317.0961 null] >> endobj 5328 0 obj << -/D [5317 0 R /XYZ 71.731 448.5192 null] +/D [5302 0 R /XYZ 71.731 317.0961 null] >> endobj 5329 0 obj << -/D [5317 0 R /XYZ 256.795 411.7271 null] +/D [5302 0 R /XYZ 71.731 304.1446 null] >> endobj 5330 0 obj << -/D [5317 0 R /XYZ 392.1662 411.7271 null] +/D [5302 0 R /XYZ 111.5816 287.5926 null] >> endobj 5331 0 obj << -/D [5317 0 R /XYZ 71.731 409.5703 null] +/D [5302 0 R /XYZ 326.8524 274.6412 null] >> endobj 5332 0 obj << -/D [5317 0 R /XYZ 71.731 395.6226 null] ->> endobj -1134 0 obj << -/D [5317 0 R /XYZ 320.8499 382.2377 null] +/D [5302 0 R /XYZ 71.731 262.5217 null] >> endobj 5333 0 obj << -/D [5317 0 R /XYZ 71.731 369.6152 null] +/D [5302 0 R /XYZ 71.731 262.5217 null] >> endobj 5334 0 obj << -/D [5317 0 R /XYZ 71.731 369.6152 null] +/D [5302 0 R /XYZ 71.731 262.5217 null] >> endobj 5335 0 obj << -/D [5317 0 R /XYZ 71.731 369.6152 null] +/D [5302 0 R /XYZ 71.731 250.3464 null] >> endobj 5336 0 obj << -/D [5317 0 R /XYZ 71.731 357.9429 null] +/D [5302 0 R /XYZ 111.5816 233.7944 null] >> endobj 5337 0 obj << -/D [5317 0 R /XYZ 111.5816 341.3909 null] +/D [5302 0 R /XYZ 352.0179 233.7944 null] >> endobj 5338 0 obj << -/D [5317 0 R /XYZ 71.731 329.2714 null] +/D [5302 0 R /XYZ 135.3745 220.843 null] >> endobj 5339 0 obj << -/D [5317 0 R /XYZ 71.731 329.2714 null] +/D [5302 0 R /XYZ 224.9831 220.843 null] >> endobj 5340 0 obj << -/D [5317 0 R /XYZ 71.731 329.2714 null] +/D [5302 0 R /XYZ 297.9916 220.843 null] >> endobj 5341 0 obj << -/D [5317 0 R /XYZ 71.731 317.0961 null] +/D [5302 0 R /XYZ 419.7283 220.843 null] >> endobj 5342 0 obj << -/D [5317 0 R /XYZ 71.731 317.0961 null] +/D [5302 0 R /XYZ 111.5816 207.8915 null] >> endobj 5343 0 obj << -/D [5317 0 R /XYZ 71.731 317.0961 null] +/D [5302 0 R /XYZ 71.731 196.5481 null] >> endobj 5344 0 obj << -/D [5317 0 R /XYZ 71.731 304.1446 null] +/D [5302 0 R /XYZ 71.731 196.5481 null] >> endobj 5345 0 obj << -/D [5317 0 R /XYZ 111.5816 287.5926 null] +/D [5302 0 R /XYZ 71.731 196.5481 null] >> endobj 5346 0 obj << -/D [5317 0 R /XYZ 326.8524 274.6412 null] +/D [5302 0 R /XYZ 71.731 183.5967 null] >> endobj 5347 0 obj << -/D [5317 0 R /XYZ 71.731 262.5217 null] +/D [5302 0 R /XYZ 111.5816 167.0447 null] >> endobj 5348 0 obj << -/D [5317 0 R /XYZ 71.731 262.5217 null] ->> endobj -5349 0 obj << -/D [5317 0 R /XYZ 71.731 262.5217 null] +/D [5302 0 R /XYZ 71.731 146.9551 null] >> endobj 5350 0 obj << -/D [5317 0 R /XYZ 71.731 250.3464 null] ->> endobj -5351 0 obj << -/D [5317 0 R /XYZ 111.5816 233.7944 null] ->> endobj -5352 0 obj << -/D [5317 0 R /XYZ 352.0179 233.7944 null] ->> endobj -5353 0 obj << -/D [5317 0 R /XYZ 135.3745 220.843 null] ->> endobj -5354 0 obj << -/D [5317 0 R /XYZ 224.9831 220.843 null] ->> endobj -5355 0 obj << -/D [5317 0 R /XYZ 297.9916 220.843 null] ->> endobj -5356 0 obj << -/D [5317 0 R /XYZ 419.7283 220.843 null] ->> endobj -5357 0 obj << -/D [5317 0 R /XYZ 111.5816 207.8915 null] ->> endobj -5358 0 obj << -/D [5317 0 R /XYZ 71.731 196.5481 null] ->> endobj -5359 0 obj << -/D [5317 0 R /XYZ 71.731 196.5481 null] ->> endobj -5360 0 obj << -/D [5317 0 R /XYZ 71.731 196.5481 null] ->> endobj -5361 0 obj << -/D [5317 0 R /XYZ 71.731 183.5967 null] ->> endobj -5362 0 obj << -/D [5317 0 R /XYZ 111.5816 167.0447 null] ->> endobj -5363 0 obj << -/D [5317 0 R /XYZ 71.731 146.9551 null] ->> endobj -5365 0 obj << -/D [5317 0 R /XYZ 71.731 113.2464 null] +/D [5302 0 R /XYZ 71.731 113.2464 null] >> endobj -5316 0 obj << +5301 0 obj << /Font << /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F32 1306 0 R /F33 1398 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5368 0 obj << +5353 0 obj << /Length 1454 /Filter /FlateDecode >> @@ -22975,144 +22996,144 @@ xڕWM ���,ĸ��$�I�XhЙ+ܽC��{\}Q���x�&��|��$��4�j�9�UQ�xSܠ�ѓ��R�� �YA �'_^�c�õ�>Cd�����z�{��" �Jf�!��~����'[�?L{�|�GMD���[� r��P��DEV4�+��wd�u�j�%p'n�S��!��s��"*�5�=�Ò||�{eT�#�5�sϒc�U��f|;@t�{q�y�2;��~d�����T��X�-�<<U0�^�@E�(��"�*�� ���Y��_$Q��T��1D��g���H���5fq���7;m!���R�Д��i�T 8�`{�Ff"p��Ǟ��� z���#�P�U�u�va�'��Ϫ."dYUg�+��d�ZF�ȩeY�k��./R`@��� G�rp��E���f��{9)����j�kI�і����`�zR�qU��V2r��5khdw����F�[���6�:�h�����~3�p�od�!��ѽ_R�,g�?zu�rx9�iYL�БI"n���o���/����endstream endobj -5367 0 obj << +5352 0 obj << /Type /Page -/Contents 5368 0 R -/Resources 5366 0 R +/Contents 5353 0 R +/Resources 5351 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5398 0 R +/Parent 5383 0 R >> endobj -5369 0 obj << -/D [5367 0 R /XYZ 71.731 729.2652 null] +5354 0 obj << +/D [5352 0 R /XYZ 71.731 729.2652 null] >> endobj 1138 0 obj << -/D [5367 0 R /XYZ 86.6464 703.6802 null] +/D [5352 0 R /XYZ 86.6464 703.6802 null] >> endobj -5370 0 obj << -/D [5367 0 R /XYZ 71.731 693.3509 null] +5355 0 obj << +/D [5352 0 R /XYZ 71.731 693.3509 null] >> endobj 1142 0 obj << -/D [5367 0 R /XYZ 91.0983 680.3995 null] +/D [5352 0 R /XYZ 91.0983 680.3995 null] >> endobj -5371 0 obj << -/D [5367 0 R /XYZ 71.731 673.2016 null] +5356 0 obj << +/D [5352 0 R /XYZ 71.731 673.2016 null] >> endobj -5372 0 obj << -/D [5367 0 R /XYZ 71.731 668.2203 null] +5357 0 obj << +/D [5352 0 R /XYZ 71.731 668.2203 null] >> endobj -5373 0 obj << -/D [5367 0 R /XYZ 101.8648 657.4854 null] +5358 0 obj << +/D [5352 0 R /XYZ 101.8648 657.4854 null] >> endobj -5374 0 obj << -/D [5367 0 R /XYZ 236.362 644.534 null] +5359 0 obj << +/D [5352 0 R /XYZ 236.362 644.534 null] >> endobj -5375 0 obj << -/D [5367 0 R /XYZ 284.4011 644.534 null] +5360 0 obj << +/D [5352 0 R /XYZ 284.4011 644.534 null] >> endobj -5376 0 obj << -/D [5367 0 R /XYZ 71.731 619.1293 null] +5361 0 obj << +/D [5352 0 R /XYZ 71.731 619.1293 null] >> endobj 1146 0 obj << -/D [5367 0 R /XYZ 131.5064 606.1778 null] +/D [5352 0 R /XYZ 131.5064 606.1778 null] >> endobj -5377 0 obj << -/D [5367 0 R /XYZ 71.731 598.9799 null] +5362 0 obj << +/D [5352 0 R /XYZ 71.731 598.9799 null] >> endobj -5378 0 obj << -/D [5367 0 R /XYZ 71.731 593.9986 null] +5363 0 obj << +/D [5352 0 R /XYZ 71.731 593.9986 null] >> endobj 2187 0 obj << -/D [5367 0 R /XYZ 71.731 544.9076 null] +/D [5352 0 R /XYZ 71.731 544.9076 null] >> endobj 1150 0 obj << -/D [5367 0 R /XYZ 109.9273 531.9562 null] +/D [5352 0 R /XYZ 109.9273 531.9562 null] >> endobj -5379 0 obj << -/D [5367 0 R /XYZ 71.731 524.7583 null] +5364 0 obj << +/D [5352 0 R /XYZ 71.731 524.7583 null] >> endobj -5380 0 obj << -/D [5367 0 R /XYZ 71.731 519.7769 null] +5365 0 obj << +/D [5352 0 R /XYZ 71.731 519.7769 null] >> endobj -5381 0 obj << -/D [5367 0 R /XYZ 71.731 486.128 null] +5366 0 obj << +/D [5352 0 R /XYZ 71.731 486.128 null] >> endobj 1154 0 obj << -/D [5367 0 R /XYZ 86.6464 433.8152 null] +/D [5352 0 R /XYZ 86.6464 433.8152 null] >> endobj 2277 0 obj << -/D [5367 0 R /XYZ 71.731 423.2278 null] +/D [5352 0 R /XYZ 71.731 423.2278 null] >> endobj 1158 0 obj << -/D [5367 0 R /XYZ 202.5889 410.5345 null] +/D [5352 0 R /XYZ 202.5889 410.5345 null] >> endobj -5382 0 obj << -/D [5367 0 R /XYZ 71.731 403.491 null] +5367 0 obj << +/D [5352 0 R /XYZ 71.731 403.491 null] >> endobj -5383 0 obj << -/D [5367 0 R /XYZ 71.731 398.5096 null] +5368 0 obj << +/D [5352 0 R /XYZ 71.731 398.5096 null] >> endobj -5384 0 obj << -/D [5367 0 R /XYZ 71.731 398.5096 null] +5369 0 obj << +/D [5352 0 R /XYZ 71.731 398.5096 null] >> endobj -5385 0 obj << -/D [5367 0 R /XYZ 257.3634 374.669 null] +5370 0 obj << +/D [5352 0 R /XYZ 257.3634 374.669 null] >> endobj -5386 0 obj << -/D [5367 0 R /XYZ 71.731 349.2643 null] +5371 0 obj << +/D [5352 0 R /XYZ 71.731 349.2643 null] >> endobj 1162 0 obj << -/D [5367 0 R /XYZ 127.0732 336.3128 null] +/D [5352 0 R /XYZ 127.0732 336.3128 null] >> endobj -5387 0 obj << -/D [5367 0 R /XYZ 71.731 329.2693 null] +5372 0 obj << +/D [5352 0 R /XYZ 71.731 329.2693 null] >> endobj -5388 0 obj << -/D [5367 0 R /XYZ 71.731 324.288 null] +5373 0 obj << +/D [5352 0 R /XYZ 71.731 324.288 null] >> endobj 2834 0 obj << -/D [5367 0 R /XYZ 71.731 262.0912 null] +/D [5352 0 R /XYZ 71.731 262.0912 null] >> endobj 1166 0 obj << -/D [5367 0 R /XYZ 248.6554 249.1397 null] +/D [5352 0 R /XYZ 248.6554 249.1397 null] >> endobj -5389 0 obj << -/D [5367 0 R /XYZ 71.731 242.0962 null] +5374 0 obj << +/D [5352 0 R /XYZ 71.731 242.0962 null] >> endobj -5390 0 obj << -/D [5367 0 R /XYZ 71.731 237.1149 null] +5375 0 obj << +/D [5352 0 R /XYZ 71.731 237.1149 null] >> endobj -5391 0 obj << -/D [5367 0 R /XYZ 71.731 237.1149 null] +5376 0 obj << +/D [5352 0 R /XYZ 71.731 237.1149 null] >> endobj -5392 0 obj << -/D [5367 0 R /XYZ 180.012 226.2257 null] +5377 0 obj << +/D [5352 0 R /XYZ 180.012 226.2257 null] >> endobj -5393 0 obj << -/D [5367 0 R /XYZ 118.4953 213.2742 null] +5378 0 obj << +/D [5352 0 R /XYZ 118.4953 213.2742 null] >> endobj -3279 0 obj << -/D [5367 0 R /XYZ 71.731 187.8695 null] +3281 0 obj << +/D [5352 0 R /XYZ 71.731 187.8695 null] >> endobj -5394 0 obj << -/D [5367 0 R /XYZ 71.731 187.8695 null] +5379 0 obj << +/D [5352 0 R /XYZ 71.731 187.8695 null] >> endobj 1170 0 obj << -/D [5367 0 R /XYZ 109.3898 174.9181 null] +/D [5352 0 R /XYZ 109.3898 174.9181 null] >> endobj -5395 0 obj << -/D [5367 0 R /XYZ 71.731 169.7575 null] +5380 0 obj << +/D [5352 0 R /XYZ 71.731 169.7575 null] >> endobj -5396 0 obj << -/D [5367 0 R /XYZ 71.731 164.7761 null] +5381 0 obj << +/D [5352 0 R /XYZ 71.731 164.7761 null] >> endobj -5397 0 obj << -/D [5367 0 R /XYZ 109.5683 153.2991 null] +5382 0 obj << +/D [5352 0 R /XYZ 109.5683 153.2991 null] >> endobj -5366 0 obj << +5351 0 obj << /Font << /F23 1290 0 R /F27 1298 0 R /F33 1398 0 R /F61 2701 0 R /F35 1752 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5401 0 obj << +5386 0 obj << /Length 1391 /Filter /FlateDecode >> @@ -23122,114 +23143,114 @@ xڕWKs ,> 8RP���1��7��)��F�$�S�ڱ�VO�V��ƝU��U`q�I�c���i�H@ ���"B�E����߬����Ҿ����u��W؋|���v�n�}��_phբ����= FGO��r>��ē�HU�.�MC��������iO�@�������v<�`�;tL�y���������'Ӻ��W5|>���)�!ز;-b�d��g�9��(2�ꃥ��=M��Jȸ�p>7���$��8I�2�-F���7*�|�a|i��r�0�1�4��H��nJ�yY���+hH�f��R��Ȳ��x���w[��9�,�m�9G-h���4�Il���<YR�2�×�A�_�Qr�;�e2��C��l>I_��K�Z�_����٣����Nv�!9wz��R~�}�t�'��@_+Sx�����\a���sxu��� ߐ�����|n��iwendstream endobj -5400 0 obj << +5385 0 obj << /Type /Page -/Contents 5401 0 R -/Resources 5399 0 R +/Contents 5386 0 R +/Resources 5384 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5398 0 R +/Parent 5383 0 R >> endobj -5402 0 obj << -/D [5400 0 R /XYZ 71.731 729.2652 null] +5387 0 obj << +/D [5385 0 R /XYZ 71.731 729.2652 null] >> endobj -5403 0 obj << -/D [5400 0 R /XYZ 71.731 741.2204 null] +5388 0 obj << +/D [5385 0 R /XYZ 71.731 741.2204 null] >> endobj -5404 0 obj << -/D [5400 0 R /XYZ 527.5668 708.3437 null] +5389 0 obj << +/D [5385 0 R /XYZ 527.5668 708.3437 null] >> endobj -5405 0 obj << -/D [5400 0 R /XYZ 71.731 691.2429 null] +5390 0 obj << +/D [5385 0 R /XYZ 71.731 691.2429 null] >> endobj -5406 0 obj << -/D [5400 0 R /XYZ 194.7222 681.7434 null] +5391 0 obj << +/D [5385 0 R /XYZ 194.7222 681.7434 null] >> endobj -5407 0 obj << -/D [5400 0 R /XYZ 71.731 606.3263 null] +5392 0 obj << +/D [5385 0 R /XYZ 71.731 606.3263 null] >> endobj 1174 0 obj << -/D [5400 0 R /XYZ 86.6464 554.0134 null] +/D [5385 0 R /XYZ 86.6464 554.0134 null] >> endobj -4085 0 obj << -/D [5400 0 R /XYZ 71.731 543.6842 null] +4074 0 obj << +/D [5385 0 R /XYZ 71.731 543.6842 null] >> endobj 1178 0 obj << -/D [5400 0 R /XYZ 109.9275 530.7327 null] +/D [5385 0 R /XYZ 109.9275 530.7327 null] >> endobj -5408 0 obj << -/D [5400 0 R /XYZ 71.731 525.627 null] +5393 0 obj << +/D [5385 0 R /XYZ 71.731 525.627 null] >> endobj -5409 0 obj << -/D [5400 0 R /XYZ 71.731 520.6456 null] +5394 0 obj << +/D [5385 0 R /XYZ 71.731 520.6456 null] >> endobj -5410 0 obj << -/D [5400 0 R /XYZ 408.8762 494.8672 null] +5395 0 obj << +/D [5385 0 R /XYZ 408.8762 494.8672 null] >> endobj -5411 0 obj << -/D [5400 0 R /XYZ 91.6563 481.9158 null] +5396 0 obj << +/D [5385 0 R /XYZ 91.6563 481.9158 null] >> endobj -5412 0 obj << -/D [5400 0 R /XYZ 71.731 456.5111 null] +5397 0 obj << +/D [5385 0 R /XYZ 71.731 456.5111 null] >> endobj 1182 0 obj << -/D [5400 0 R /XYZ 126.3357 443.5596 null] +/D [5385 0 R /XYZ 126.3357 443.5596 null] >> endobj -5413 0 obj << -/D [5400 0 R /XYZ 71.731 438.4539 null] +5398 0 obj << +/D [5385 0 R /XYZ 71.731 438.4539 null] >> endobj -5414 0 obj << -/D [5400 0 R /XYZ 71.731 433.4725 null] +5399 0 obj << +/D [5385 0 R /XYZ 71.731 433.4725 null] >> endobj -5415 0 obj << -/D [5400 0 R /XYZ 71.731 358.8772 null] +5400 0 obj << +/D [5385 0 R /XYZ 71.731 358.8772 null] >> endobj 1186 0 obj << -/D [5400 0 R /XYZ 87.8032 306.5644 null] +/D [5385 0 R /XYZ 87.8032 306.5644 null] >> endobj -5416 0 obj << -/D [5400 0 R /XYZ 71.731 295.977 null] +5401 0 obj << +/D [5385 0 R /XYZ 71.731 295.977 null] >> endobj 1190 0 obj << -/D [5400 0 R /XYZ 106.9586 283.2837 null] +/D [5385 0 R /XYZ 106.9586 283.2837 null] >> endobj -5417 0 obj << -/D [5400 0 R /XYZ 71.731 276.2401 null] +5402 0 obj << +/D [5385 0 R /XYZ 71.731 276.2401 null] >> endobj -5418 0 obj << -/D [5400 0 R /XYZ 71.731 271.2588 null] +5403 0 obj << +/D [5385 0 R /XYZ 71.731 271.2588 null] >> endobj -5419 0 obj << -/D [5400 0 R /XYZ 135.3051 260.3696 null] +5404 0 obj << +/D [5385 0 R /XYZ 135.3051 260.3696 null] >> endobj -5420 0 obj << -/D [5400 0 R /XYZ 477.1051 247.4182 null] +5405 0 obj << +/D [5385 0 R /XYZ 477.1051 247.4182 null] >> endobj -5421 0 obj << -/D [5400 0 R /XYZ 91.6563 234.4667 null] +5406 0 obj << +/D [5385 0 R /XYZ 91.6563 234.4667 null] >> endobj -5422 0 obj << -/D [5400 0 R /XYZ 71.731 211.5527 null] +5407 0 obj << +/D [5385 0 R /XYZ 71.731 211.5527 null] >> endobj 1194 0 obj << -/D [5400 0 R /XYZ 83.217 159.2398 null] +/D [5385 0 R /XYZ 83.217 159.2398 null] >> endobj -5423 0 obj << -/D [5400 0 R /XYZ 71.731 148.6525 null] +5408 0 obj << +/D [5385 0 R /XYZ 71.731 148.6525 null] >> endobj 1198 0 obj << -/D [5400 0 R /XYZ 121.7728 135.9591 null] +/D [5385 0 R /XYZ 121.7728 135.9591 null] >> endobj -5424 0 obj << -/D [5400 0 R /XYZ 71.731 128.9156 null] +5409 0 obj << +/D [5385 0 R /XYZ 71.731 128.9156 null] >> endobj -5425 0 obj << -/D [5400 0 R /XYZ 71.731 123.9343 null] +5410 0 obj << +/D [5385 0 R /XYZ 71.731 123.9343 null] >> endobj -5399 0 obj << +5384 0 obj << /Font << /F27 1298 0 R /F23 1290 0 R /F44 2183 0 R /F35 1752 0 R /F33 1398 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5428 0 obj << +5413 0 obj << /Length 1541 /Filter /FlateDecode >> @@ -23246,156 +23267,156 @@ xڭ ��t|��]�a��h?I�r��]�S=f@^w{���KC+����{Z��O7����#�o���(��%!��]]ij�x���h��c���%>9q�:�i�Օ>;�ij�'�I�Q�QO5Z�8 �����1��{���9���u���r2��������]2{�-�;��N���'��� ���ॼ��3��+Iendstream endobj -5427 0 obj << +5412 0 obj << /Type /Page -/Contents 5428 0 R -/Resources 5426 0 R +/Contents 5413 0 R +/Resources 5411 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5398 0 R -/Annots [ 5441 0 R 5457 0 R ] +/Parent 5383 0 R +/Annots [ 5426 0 R 5442 0 R ] >> endobj -5441 0 obj << +5426 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [221.9349 488.6257 256.6546 499.5297] /Subtype /Link /A << /S /GoTo /D (gloss-rdbms) >> >> endobj -5457 0 obj << +5442 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [341.3674 348.1525 388.1914 359.0564] /Subtype /Link /A << /S /GoTo /D (security-mysql) >> >> endobj -5429 0 obj << -/D [5427 0 R /XYZ 71.731 729.2652 null] +5414 0 obj << +/D [5412 0 R /XYZ 71.731 729.2652 null] >> endobj 1202 0 obj << -/D [5427 0 R /XYZ 88.9395 651.0495 null] +/D [5412 0 R /XYZ 88.9395 651.0495 null] >> endobj -5430 0 obj << -/D [5427 0 R /XYZ 71.731 640.7203 null] +5415 0 obj << +/D [5412 0 R /XYZ 71.731 640.7203 null] >> endobj 1206 0 obj << -/D [5427 0 R /XYZ 193.5729 627.7689 null] +/D [5412 0 R /XYZ 193.5729 627.7689 null] >> endobj -5431 0 obj << -/D [5427 0 R /XYZ 71.731 620.5709 null] +5416 0 obj << +/D [5412 0 R /XYZ 71.731 620.5709 null] >> endobj -5432 0 obj << -/D [5427 0 R /XYZ 71.731 615.5896 null] +5417 0 obj << +/D [5412 0 R /XYZ 71.731 615.5896 null] >> endobj -5433 0 obj << -/D [5427 0 R /XYZ 488.7181 604.8548 null] +5418 0 obj << +/D [5412 0 R /XYZ 488.7181 604.8548 null] >> endobj -5434 0 obj << -/D [5427 0 R /XYZ 91.6563 566.0005 null] +5419 0 obj << +/D [5412 0 R /XYZ 91.6563 566.0005 null] >> endobj -5435 0 obj << -/D [5427 0 R /XYZ 364.9621 566.0005 null] +5420 0 obj << +/D [5412 0 R /XYZ 364.9621 566.0005 null] >> endobj -5436 0 obj << -/D [5427 0 R /XYZ 478.8046 566.0005 null] +5421 0 obj << +/D [5412 0 R /XYZ 478.8046 566.0005 null] >> endobj -5437 0 obj << -/D [5427 0 R /XYZ 154.739 553.0491 null] +5422 0 obj << +/D [5412 0 R /XYZ 154.739 553.0491 null] >> endobj -5438 0 obj << -/D [5427 0 R /XYZ 71.731 527.6443 null] +5423 0 obj << +/D [5412 0 R /XYZ 71.731 527.6443 null] >> endobj 1210 0 obj << -/D [5427 0 R /XYZ 106.052 514.6929 null] +/D [5412 0 R /XYZ 106.052 514.6929 null] >> endobj -5439 0 obj << -/D [5427 0 R /XYZ 71.731 507.6494 null] +5424 0 obj << +/D [5412 0 R /XYZ 71.731 507.6494 null] >> endobj -5440 0 obj << -/D [5427 0 R /XYZ 71.731 502.668 null] +5425 0 obj << +/D [5412 0 R /XYZ 71.731 502.668 null] >> endobj -5442 0 obj << -/D [5427 0 R /XYZ 444.2551 491.7788 null] +5427 0 obj << +/D [5412 0 R /XYZ 444.2551 491.7788 null] >> endobj -5443 0 obj << -/D [5427 0 R /XYZ 71.731 476.6706 null] +5428 0 obj << +/D [5412 0 R /XYZ 71.731 476.6706 null] >> endobj -5444 0 obj << -/D [5427 0 R /XYZ 71.731 461.7266 null] +5429 0 obj << +/D [5412 0 R /XYZ 71.731 461.7266 null] >> endobj -5445 0 obj << -/D [5427 0 R /XYZ 71.731 461.7266 null] +5430 0 obj << +/D [5412 0 R /XYZ 71.731 461.7266 null] >> endobj -5446 0 obj << -/D [5427 0 R /XYZ 71.731 448.7752 null] +5431 0 obj << +/D [5412 0 R /XYZ 71.731 448.7752 null] >> endobj -5447 0 obj << -/D [5427 0 R /XYZ 111.5816 432.9992 null] +5432 0 obj << +/D [5412 0 R /XYZ 111.5816 432.9992 null] >> endobj -5448 0 obj << -/D [5427 0 R /XYZ 71.731 420.8798 null] +5433 0 obj << +/D [5412 0 R /XYZ 71.731 420.8798 null] >> endobj -5449 0 obj << -/D [5427 0 R /XYZ 71.731 420.8798 null] +5434 0 obj << +/D [5412 0 R /XYZ 71.731 420.8798 null] >> endobj -5450 0 obj << -/D [5427 0 R /XYZ 71.731 407.9283 null] +5435 0 obj << +/D [5412 0 R /XYZ 71.731 407.9283 null] >> endobj -5451 0 obj << -/D [5427 0 R /XYZ 111.5816 392.1524 null] +5436 0 obj << +/D [5412 0 R /XYZ 111.5816 392.1524 null] >> endobj -5452 0 obj << -/D [5427 0 R /XYZ 315.2763 392.1524 null] +5437 0 obj << +/D [5412 0 R /XYZ 315.2763 392.1524 null] >> endobj -5453 0 obj << -/D [5427 0 R /XYZ 71.731 380.0329 null] +5438 0 obj << +/D [5412 0 R /XYZ 71.731 380.0329 null] >> endobj -5454 0 obj << -/D [5427 0 R /XYZ 71.731 380.0329 null] +5439 0 obj << +/D [5412 0 R /XYZ 71.731 380.0329 null] >> endobj -5455 0 obj << -/D [5427 0 R /XYZ 71.731 367.0815 null] +5440 0 obj << +/D [5412 0 R /XYZ 71.731 367.0815 null] >> endobj -5456 0 obj << -/D [5427 0 R /XYZ 111.5816 351.3056 null] +5441 0 obj << +/D [5412 0 R /XYZ 111.5816 351.3056 null] >> endobj -5458 0 obj << -/D [5427 0 R /XYZ 71.731 328.3915 null] +5443 0 obj << +/D [5412 0 R /XYZ 71.731 328.3915 null] >> endobj 1214 0 obj << -/D [5427 0 R /XYZ 85.5101 276.0787 null] +/D [5412 0 R /XYZ 85.5101 276.0787 null] >> endobj 2794 0 obj << -/D [5427 0 R /XYZ 71.731 265.7494 null] +/D [5412 0 R /XYZ 71.731 265.7494 null] >> endobj 1218 0 obj << -/D [5427 0 R /XYZ 176.6962 252.798 null] +/D [5412 0 R /XYZ 176.6962 252.798 null] >> endobj -5459 0 obj << -/D [5427 0 R /XYZ 71.731 245.6001 null] +5444 0 obj << +/D [5412 0 R /XYZ 71.731 245.6001 null] >> endobj -5460 0 obj << -/D [5427 0 R /XYZ 71.731 240.6188 null] +5445 0 obj << +/D [5412 0 R /XYZ 71.731 240.6188 null] >> endobj -5461 0 obj << -/D [5427 0 R /XYZ 71.731 240.6188 null] +5446 0 obj << +/D [5412 0 R /XYZ 71.731 240.6188 null] >> endobj 3505 0 obj << -/D [5427 0 R /XYZ 71.731 204.4792 null] +/D [5412 0 R /XYZ 71.731 204.4792 null] >> endobj 1222 0 obj << -/D [5427 0 R /XYZ 109.1703 191.5278 null] +/D [5412 0 R /XYZ 109.1703 191.5278 null] >> endobj -5462 0 obj << -/D [5427 0 R /XYZ 71.731 186.422 null] +5447 0 obj << +/D [5412 0 R /XYZ 71.731 186.422 null] >> endobj -5463 0 obj << -/D [5427 0 R /XYZ 71.731 181.4406 null] +5448 0 obj << +/D [5412 0 R /XYZ 71.731 181.4406 null] >> endobj -5426 0 obj << +5411 0 obj << /Font << /F23 1290 0 R /F27 1298 0 R /F35 1752 0 R /F33 1398 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5467 0 obj << +5452 0 obj << /Length 1305 /Filter /FlateDecode >> @@ -23404,123 +23425,123 @@ xڍW L��ŪS���\�m���U��5�$���&�"�@ ;�L�}�.i�FC��.��0�dw �E�K7N��]��8��?�ϲ��xE�N�+�� �5p�� ��G�d�����Ko�Y,�kO���!V3�(@J.{"=|@M,�Z:�V��u�Ḟ#8�$tÃ̢`���}�Zu>=\�Rj~ṚWc[��,bW�tY�,O�M4�_�w�F�/���5N2����ap��O����rz��Om�k/����Q�'�����uK��鷺�������un���j���kϛ�g,����d��_>�%�m�Jc��}}7����p�ҿ�Z���~����������kG+�a�+������z���.IEв��m��e a�5FO��B�q�T=��/x�~��Ƞ�����s+ �ƈڵ�7�?^�M܅���<͡E�XM;�65�7�;"F1Ȱ}hUT:ݜ�`����p�麆�]�UP("�0�>�+da�C��(����p1 �a��eĺE9`y)?z�������%q 1;u��G=�������0�!�� (�k��w���p�nw��_�ے� �u�APٜ��_Ͼ�2@s���� �J��e�ӯ���?��S^�endstream endobj -5466 0 obj << +5451 0 obj << /Type /Page -/Contents 5467 0 R -/Resources 5465 0 R +/Contents 5452 0 R +/Resources 5450 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5398 0 R +/Parent 5383 0 R >> endobj -5468 0 obj << -/D [5466 0 R /XYZ 71.731 729.2652 null] +5453 0 obj << +/D [5451 0 R /XYZ 71.731 729.2652 null] >> endobj -5469 0 obj << -/D [5466 0 R /XYZ 71.731 718.3063 null] +5454 0 obj << +/D [5451 0 R /XYZ 71.731 718.3063 null] >> endobj 1226 0 obj << -/D [5466 0 R /XYZ 90.2612 708.3437 null] +/D [5451 0 R /XYZ 90.2612 708.3437 null] >> endobj -5470 0 obj << -/D [5466 0 R /XYZ 71.731 703.2379 null] +5455 0 obj << +/D [5451 0 R /XYZ 71.731 703.2379 null] >> endobj -5471 0 obj << -/D [5466 0 R /XYZ 71.731 698.2566 null] +5456 0 obj << +/D [5451 0 R /XYZ 71.731 698.2566 null] >> endobj -5472 0 obj << -/D [5466 0 R /XYZ 134.824 659.5268 null] +5457 0 obj << +/D [5451 0 R /XYZ 134.824 659.5268 null] >> endobj -5473 0 obj << -/D [5466 0 R /XYZ 71.731 636.6127 null] +5458 0 obj << +/D [5451 0 R /XYZ 71.731 636.6127 null] >> endobj 1230 0 obj << -/D [5466 0 R /XYZ 87.8032 584.2999 null] +/D [5451 0 R /XYZ 87.8032 584.2999 null] >> endobj -5474 0 obj << -/D [5466 0 R /XYZ 71.731 572.8966 null] +5459 0 obj << +/D [5451 0 R /XYZ 71.731 572.8966 null] >> endobj 1234 0 obj << -/D [5466 0 R /XYZ 86.6748 561.0192 null] +/D [5451 0 R /XYZ 86.6748 561.0192 null] >> endobj -5475 0 obj << -/D [5466 0 R /XYZ 71.731 555.5199 null] +5460 0 obj << +/D [5451 0 R /XYZ 71.731 555.5199 null] >> endobj -5476 0 obj << -/D [5466 0 R /XYZ 71.731 550.5386 null] +5461 0 obj << +/D [5451 0 R /XYZ 71.731 550.5386 null] >> endobj -5477 0 obj << -/D [5466 0 R /XYZ 71.731 550.5386 null] +5462 0 obj << +/D [5451 0 R /XYZ 71.731 550.5386 null] >> endobj -5478 0 obj << -/D [5466 0 R /XYZ 119.8414 538.1051 null] +5463 0 obj << +/D [5451 0 R /XYZ 119.8414 538.1051 null] >> endobj -5479 0 obj << -/D [5466 0 R /XYZ 167.6439 538.1051 null] +5464 0 obj << +/D [5451 0 R /XYZ 167.6439 538.1051 null] >> endobj -5480 0 obj << -/D [5466 0 R /XYZ 249.4106 538.1051 null] +5465 0 obj << +/D [5451 0 R /XYZ 249.4106 538.1051 null] >> endobj -5481 0 obj << -/D [5466 0 R /XYZ 442.1221 512.2022 null] +5466 0 obj << +/D [5451 0 R /XYZ 442.1221 512.2022 null] >> endobj -5482 0 obj << -/D [5466 0 R /XYZ 71.731 476.3367 null] +5467 0 obj << +/D [5451 0 R /XYZ 71.731 476.3367 null] >> endobj 1238 0 obj << -/D [5466 0 R /XYZ 86.6464 424.0239 null] +/D [5451 0 R /XYZ 86.6464 424.0239 null] >> endobj -5464 0 obj << -/D [5466 0 R /XYZ 71.731 413.6946 null] +5449 0 obj << +/D [5451 0 R /XYZ 71.731 413.6946 null] >> endobj 1242 0 obj << -/D [5466 0 R /XYZ 269.3776 400.7432 null] +/D [5451 0 R /XYZ 269.3776 400.7432 null] >> endobj -5483 0 obj << -/D [5466 0 R /XYZ 71.731 393.5453 null] +5468 0 obj << +/D [5451 0 R /XYZ 71.731 393.5453 null] >> endobj -5484 0 obj << -/D [5466 0 R /XYZ 71.731 388.564 null] +5469 0 obj << +/D [5451 0 R /XYZ 71.731 388.564 null] >> endobj -5485 0 obj << -/D [5466 0 R /XYZ 71.731 339.473 null] +5470 0 obj << +/D [5451 0 R /XYZ 71.731 339.473 null] >> endobj 1246 0 obj << -/D [5466 0 R /XYZ 165.299 326.5215 null] +/D [5451 0 R /XYZ 165.299 326.5215 null] >> endobj -5486 0 obj << -/D [5466 0 R /XYZ 71.731 319.3236 null] +5471 0 obj << +/D [5451 0 R /XYZ 71.731 319.3236 null] >> endobj -5487 0 obj << -/D [5466 0 R /XYZ 71.731 314.3423 null] +5472 0 obj << +/D [5451 0 R /XYZ 71.731 314.3423 null] >> endobj -5488 0 obj << -/D [5466 0 R /XYZ 476.5536 303.6075 null] +5473 0 obj << +/D [5451 0 R /XYZ 476.5536 303.6075 null] >> endobj -5489 0 obj << -/D [5466 0 R /XYZ 71.731 267.742 null] +5474 0 obj << +/D [5451 0 R /XYZ 71.731 267.742 null] >> endobj 1250 0 obj << -/D [5466 0 R /XYZ 85.5101 215.4291 null] +/D [5451 0 R /XYZ 85.5101 215.4291 null] >> endobj -4086 0 obj << -/D [5466 0 R /XYZ 71.731 204.8418 null] +4075 0 obj << +/D [5451 0 R /XYZ 71.731 204.8418 null] >> endobj 1254 0 obj << -/D [5466 0 R /XYZ 107.2772 192.1484 null] +/D [5451 0 R /XYZ 107.2772 192.1484 null] >> endobj -5490 0 obj << -/D [5466 0 R /XYZ 71.731 187.0426 null] +5475 0 obj << +/D [5451 0 R /XYZ 71.731 187.0426 null] >> endobj -5491 0 obj << -/D [5466 0 R /XYZ 71.731 182.0613 null] +5476 0 obj << +/D [5451 0 R /XYZ 71.731 182.0613 null] >> endobj -5492 0 obj << -/D [5466 0 R /XYZ 382.967 156.2829 null] +5477 0 obj << +/D [5451 0 R /XYZ 382.967 156.2829 null] >> endobj -5465 0 obj << +5450 0 obj << /Font << /F23 1290 0 R /F27 1298 0 R /F33 1398 0 R >> /ProcSet [ /PDF /Text ] >> endobj -5495 0 obj << +5480 0 obj << /Length 1975 /Filter /FlateDecode >> @@ -23530,125 +23551,125 @@ xڕM �|�?�t�~o��D����6ڞs��s�/A�AX�#r�3�bk��Vףؗ��]�p��! �:>9�����&�.�P��[�>B����v;��нz��P�����gh�'~�[��N��0B�T����R��p>�Iv��b�Ѧ_%�HF�)�%�{>��-�c"����։r�RF["�c�J��5�\~��3�v'��(~���~����}=5��kc���� Ԥ���V�E��O�H% q4�!����z��j-�>$�<�JGXG��o���y�S�%��<h��en��H��Mj<o�,��w�W�>�R4z�eb���I u-eHT�Bm�^��q�����f 8�����4���X�^��a���v�sQ��#��7���"L��[Ͻ�/�̦���W�U�,�Le��h�����r��k0��欳~��㔲�;&�ڱl�\��@�B}��0[2aA���9;��剷� G�89M�賈y��<nK�9�Ҕ8#�l��d�>0L��{�.9t�'��6u�� �=�����Ͻ��BeU�^���� >G���8��{搵��U�խ�'p�+A�,ڳ��`^{��i�5��Aŕ�Kj��i����1-�Xy�YPN��Z!����FЍ=��y0�t����*�n����L h�}ͱϦ�oh1/��ր�%ޘz���`g[=bh#�+@0S4���l���,�J͇֜����l��'�l����ܳ��럄Ta���۫�6���l�����s[ź���H���];��$|�&EN���)Vε ��+�r{�搲�/�A?7iXg�̎��J꺥�p�y�K��9�P]�֒�@W<_᪉������<s>�������H�g54&�>��0.P~"��K��g�q������V��O-ؽ_|l�A�l��Y���X�r�"P�$�¸��k�ዧ�i~�p�U�Zt����_��K3˽?��d�����]����,R�U�p��o�-��ݑ�;��O�endstream endobj -5494 0 obj << +5479 0 obj << /Type /Page -/Contents 5495 0 R -/Resources 5493 0 R +/Contents 5480 0 R +/Resources 5478 0 R /MediaBox [0 0 609.7136 789.0411] -/Parent 5398 0 R +/Parent 5383 0 R >> endobj -5496 0 obj << -/D [5494 0 R /XYZ 71.731 729.2652 null] +5481 0 obj << +/D [5479 0 R /XYZ 71.731 729.2652 null] >> endobj -5497 0 obj << -/D [5494 0 R /XYZ 71.731 718.3063 null] +5482 0 obj << +/D [5479 0 R /XYZ 71.731 718.3063 null] >> endobj -5498 0 obj << -/D [5494 0 R /XYZ 71.731 718.3063 null] +5483 0 obj << +/D [5479 0 R /XYZ 71.731 718.3063 null] >> endobj 1258 0 obj << -/D [5494 0 R /XYZ 103.2824 708.3437 null] +/D [5479 0 R /XYZ 103.2824 708.3437 null] >> endobj -5499 0 obj << -/D [5494 0 R /XYZ 71.731 703.2379 null] +5484 0 obj << +/D [5479 0 R /XYZ 71.731 703.2379 null] >> endobj -5500 0 obj << -/D [5494 0 R /XYZ 71.731 698.2566 null] +5485 0 obj << +/D [5479 0 R /XYZ 71.731 698.2566 null] >> endobj -5501 0 obj << -/D [5494 0 R /XYZ 71.731 698.2566 null] +5486 0 obj << +/D [5479 0 R /XYZ 71.731 698.2566 null] >> endobj -5502 0 obj << -/D [5494 0 R /XYZ 166.8364 685.4296 null] +5487 0 obj << +/D [5479 0 R /XYZ 166.8364 685.4296 null] >> endobj -5503 0 obj << -/D [5494 0 R /XYZ 408.4751 672.4782 null] +5488 0 obj << +/D [5479 0 R /XYZ 408.4751 672.4782 null] >> endobj -5504 0 obj << -/D [5494 0 R /XYZ 243.4665 659.5268 null] +5489 0 obj << +/D [5479 0 R /XYZ 243.4665 659.5268 null] >> endobj -5505 0 obj << -/D [5494 0 R /XYZ 246.8008 659.5268 null] +5490 0 obj << +/D [5479 0 R /XYZ 246.8008 659.5268 null] >> endobj -5506 0 obj << -/D [5494 0 R /XYZ 298.9104 659.5268 null] +5491 0 obj << +/D [5479 0 R /XYZ 298.9104 659.5268 null] >> endobj -5507 0 obj << -/D [5494 0 R /XYZ 448.559 659.5268 null] +5492 0 obj << +/D [5479 0 R /XYZ 448.559 659.5268 null] >> endobj -5508 0 obj << -/D [5494 0 R /XYZ 164.884 646.5753 null] +5493 0 obj << +/D [5479 0 R /XYZ 164.884 646.5753 null] >> endobj -5509 0 obj << -/D [5494 0 R /XYZ 481.1574 646.5753 null] +5494 0 obj << +/D [5479 0 R /XYZ 481.1574 646.5753 null] >> endobj -5510 0 obj << -/D [5494 0 R /XYZ 132.3631 633.6239 null] +5495 0 obj << +/D [5479 0 R /XYZ 132.3631 633.6239 null] >> endobj -5511 0 obj << -/D [5494 0 R /XYZ 71.731 610.7098 null] +5496 0 obj << +/D [5479 0 R /XYZ 71.731 610.7098 null] >> endobj 1262 0 obj << -/D [5494 0 R /XYZ 84.3534 558.397 null] +/D [5479 0 R /XYZ 84.3534 558.397 null] >> endobj -5512 0 obj << -/D [5494 0 R /XYZ 71.731 548.0677 null] +5497 0 obj << +/D [5479 0 R /XYZ 71.731 548.0677 null] >> endobj 1266 0 obj << -/D [5494 0 R /XYZ 150.0465 535.1163 null] +/D [5479 0 R /XYZ 150.0465 535.1163 null] >> endobj -5513 0 obj << -/D [5494 0 R /XYZ 71.731 527.9184 null] +5498 0 obj << +/D [5479 0 R /XYZ 71.731 527.9184 null] >> endobj -5514 0 obj << -/D [5494 0 R /XYZ 71.731 522.9371 null] +5499 0 obj << +/D [5479 0 R /XYZ 71.731 522.9371 null] >> endobj -5515 0 obj << -/D [5494 0 R /XYZ 192.9628 499.2508 null] +5500 0 obj << +/D [5479 0 R /XYZ 192.9628 499.2508 null] >> endobj -5516 0 obj << -/D [5494 0 R /XYZ 71.731 447.9432 null] +5501 0 obj << +/D [5479 0 R /XYZ 71.731 447.9432 null] >> endobj 1270 0 obj << -/D [5494 0 R /XYZ 193.2643 434.9918 null] +/D [5479 0 R /XYZ 193.2643 434.9918 null] >> endobj -5517 0 obj << -/D [5494 0 R /XYZ 71.731 427.7939 null] +5502 0 obj << +/D [5479 0 R /XYZ 71.731 427.7939 null] >> endobj -5518 0 obj << -/D [5494 0 R /XYZ 71.731 422.8125 null] +5503 0 obj << +/D [5479 0 R /XYZ 71.731 422.8125 null] >> endobj -5519 0 obj << -/D [5494 0 R /XYZ 71.731 363.2608 null] +5504 0 obj << +/D [5479 0 R /XYZ 71.731 363.2608 null] >> endobj 1274 0 obj << -/D [5494 0 R /XYZ 84.3534 310.9479 null] +/D [5479 0 R /XYZ 84.3534 310.9479 null] >> endobj -5520 0 obj << -/D [5494 0 R /XYZ 71.731 300.6187 null] +5505 0 obj << +/D [5479 0 R /XYZ 71.731 300.6187 null] >> endobj 1278 0 obj << -/D [5494 0 R /XYZ 163.9645 287.6672 null] +/D [5479 0 R /XYZ 163.9645 287.6672 null] >> endobj -5521 0 obj << -/D [5494 0 R /XYZ 71.731 280.4693 null] +5506 0 obj << +/D [5479 0 R /XYZ 71.731 280.4693 null] >> endobj -5522 0 obj << -/D [5494 0 R /XYZ 71.731 275.488 null] +5507 0 obj << +/D [5479 0 R /XYZ 71.731 275.488 null] >> endobj -5523 0 obj << -/D [5494 0 R /XYZ 71.731 249.6449 null] +5508 0 obj << +/D [5479 0 R /XYZ 71.731 249.6449 null] >> endobj -5524 0 obj << -/D [5494 0 R /XYZ 71.731 239.6823 null] +5509 0 obj << +/D [5479 0 R /XYZ 71.731 239.6823 null] >> endobj -5525 0 obj << -/D [5494 0 R /XYZ 71.731 176.6352 null] +5510 0 obj << +/D [5479 0 R /XYZ 71.731 176.6352 null] >> endobj -5526 0 obj << -/D [5494 0 R /XYZ 469.8557 143.6075 null] +5511 0 obj << +/D [5479 0 R /XYZ 469.8557 143.6075 null] >> endobj -5493 0 obj << +5478 0 obj << /Font << /F23 1290 0 R /F27 1298 0 R /F33 1398 0 R >> /ProcSet [ /PDF /Text ] >> endobj @@ -23656,7 +23677,7 @@ endobj /Length1 1605 /Length2 1380 /Length3 532 -/Length 2204 +/Length 2205 /Filter /FlateDecode >> stream @@ -23664,26 +23685,28 @@ x Qڈ)[6IZ*�ح7�Y�Rz�%)՞��j���^�_���k�u�s߿��}��s��y��t�c��r%-Yt�pEPA(D�ɤ�Lk��1�!�PW�����<�쩟�=�p0Q4��I������(�}�S�� 4Z�S�-j 2a�O�u+�n�ԍ��`�!!�� �@x0J�f Á���0��ȋ&蔖3 @�`Bm�%<X$��G"A�8��0�@P�P̗@�a�p(�Q�G�yaI�pDD*����u��)�M �0*���đ0J*8J�bIA @�R�+|� �h*7%&�Eb���C�� �/� ��������'��{H$F+vc���5 $��4��I� �Ɛۿ �����Ep�a\1 �w��c�0��0���TV`�\�:S?�����Ob��3s�!Fo�_���:��B!���}�M��(F�9h|�?���հ@,���� -�uF�t�[!�#��p �)(p_��B�)�����q�O8@�S��QP0�_65E�������}� -ڋ��Q�ka���ovq�$ ƒ,Y����ر�c�C� -��zD�R�2Y�~߽VA�d�@y_n?��@8EӘ�$��İ��ˇ%��t#�-@$&c���&��l&0 �5S�C��#d�a+�?��q�:k��5�?֊���Gki�xK�7fd"��κZ��C5K��Q^��,GZ�Um����������F�����^u��w�UkM��}����7��3�ma��EW#8oʡ^�Ę����6L���z���'�&4�[���#f���s��<in奟M֪�V�4�L��ޅ)=#�Lj�_�z�j@�r�������K6�NY�G������|b˨���J�h��er��+�Jm�]��\��ku'q2Z�rV�G[�t�?:ʶpr��V�l��*�n��y�~m̏�Y��n�����fϾ>ߦ"����o�UM�_'JZ����v��:���SUa�gvi�f�t}_�7�q�tK��������ht��Sv3�o]���~͐��������5s5 ��ۂln��t�1��d��TN�Sc|���7!�O�2/1�-}��WӫV�����ӨӞ�u����Kkj�K���f��%3�7�(h�y�����{��e)���u�J���h)닭<��ؘ�8��X�ڤ�V�J�C�>�>M�������xj8ﻟ5�o�$�<�潎�cPKJX�tv�s���osB����H�|Y\}p�7ߣ���Y�fnݩW���G�/���6*٥�)Io�Ǣ�H���w�)�IJ���5a��-�����!�Vc��\C}e��hN�N�Z�s�S�� �SSU�jm�_��V�aI���ћ�yz� ��0��O��.����'��-}+�Ein}.p+Tζ�ܟ¿�g�����*�c_�Uj�v��I�t�ʼ<&x�����;lT���=��9�QɆ���?�>�,�w�S��&$��AVem�L%�=أ�3�mq%�?�3U�w��V��%�~H�X�V�G����2�����_Y�4��ȁ�v'�����I�t�{W;6���Ƞ��E8�_""5����I�+�<�6��2�l��e�>T�M{�}�6�X<R[ ��_����B�V� ��hL�͌ҽ�$\�����4�x4 ��ߟz������� -I�{ss��vËS{���c�SWg���|A�����\#�,��Y�]1������֡eL-ƐK����5�-���jV-$&,�f����K���0AE����jf.�y�k�Ԑܘ���gI��l�<Amr�C�y�a�^��>���bi�a,9r�L�*���1��ӛ�t�t������XW�>�U�\Ow�����\B8u�C������0����No)��E��Q�l��B�:�0s������-�32�;�/�a;=IF��g���9�t'Pg�Y;O���PQ�>/J9<��@p�0{��t�E5�'�6������Z�&�M�/Wm��k�N�h��xgh�2�tn��ZLk�x��4�c��Z�B�Ҩ�#��zkr$}IR��Z�6��os�W�ɖ|��h�H�Qi�X�g�{�y�maS�R�M��[��L&���Y,V�k.=��`�͇��� ��p�����{`$�endstream +�uF�t�[!�#��p �)(p_��B�)�����q�O8@�S��QP0�_65E�/�*�������'�-� +z��*��~!���I@�%X�[{;�c����, +և�*�� �:e���{?����|��0��~�� �p��1)I��5�aQg�K��?0�(FR[�HL��� M~��L6`@,k�~�X)�G�b�V J��8u�j��w�%0��Ҍ��o��<D���u��5��j�����bY����ږ��/��!c�;�%��/D7=��t7磌��T���͉�ov9gz��r[��8FpޔC���1��=�Ul�~]�ޫ�O�M4h,����G̤�7�Hg-x&���K?��U1�Diƙ�ǽSzF���^�v�JՀ��N}��ɓ��lV��p�t�Q����ĖQeO'���l%����W��4� +��[+�>���N�<d����w���3�t7~t�m��X1���B�U��>����ژų:�ݾ��SU͞}}�ME����v����N<������'�u�Gͧ��j�����l����o�!�-�zo]�����G��f't����!Y3e�-���mk�jh����k�c8��$�ͩ��;7���R_/oB����e^b[�D��W� +n/;���Q�=�뜟�������<��͈�Kf�o�Q�Z�ꕽ&=�f��R+��D�x��#�R�[3xbU�1+qN�q���I�g���Z��}�}�2'��Iۡ/*��p�w?k��,I>y2�{wǠ���6��H�]g���������"���o�Gw�����ܺS�L��;^��mT�K�S��ES����SN��x��k�V[[nK�ӛC�7��B�����vQМ4�%���2�����#�����ڶ�TW�����g�7���@��a�����]����O��[�V�����\�V��m�?�k�z���U�Ǿ0���p;��邕yyL�@Y)-Iwب$]�{,Gs��� �!�H}V;X��b�kMH\ǃ����J<{�GSg���J��g����K�C���N���*l ��e�ћ���ji~Ց��N�5]�듲�\��vl@CՑAO�'�(pJ�D<Dj��-Tޓ�V�y�m�1�er�N��)}������dm$�<x���I��œх��&7ј���{ I�TI=��Cvi��hw�?�\%K�1������LY������� +R���~Y���.[+���F�!X�A�D�b�=$d��᭭C˘Z�!���)�{k�[���UլZ&HL(X:�*���� >|/a������/��\���ȩ!�1�W�ϒLC��y���r��$�(�~�}������Xr伙$U��c�m�7����>|�������9|������:g�W ��p�,�\�A�{�a^����R���=�|٤ׅVu�Ma�v�m=��[�gd�w>^�vz����/�d]is�}�N�΄�v�~ӭ��}^�rxJY���a$0�p/�4�jHOHm����e�ߵ Mƛ�_��X��ڝd�:����6�e|�ܢ����6���iN��ԵN�D�QG���0��H���j��m4/���$J�-�j�Ѭ�|�Ҡ��:�f��¦�.����7�L�=��X��\z�k������<!�$ ����$�endstream endobj 2842 0 obj << /Type /Font /Subtype /Type1 -/Encoding 5527 0 R +/Encoding 5512 0 R /FirstChar 202 /LastChar 204 -/Widths 5528 0 R -/BaseFont /NUJBCO+Dingbats +/Widths 5513 0 R +/BaseFont /PCMNLT+Dingbats /FontDescriptor 2840 0 R >> endobj 2840 0 obj << /Ascent 708 /CapHeight 708 /Descent 0 -/FontName /NUJBCO+Dingbats +/FontName /PCMNLT+Dingbats /ItalicAngle 0 /StemV 0 /XHeight 400 @@ -23692,14 +23715,14 @@ endobj /CharSet (/a150/a151/a152) /FontFile 2841 0 R >> endobj -5528 0 obj +5513 0 obj [788 788 788 ] endobj -5527 0 obj << +5512 0 obj << /Type /Encoding /Differences [ 0 /.notdef 202/a150/a151/a152 205/.notdef] >> endobj -5529 0 obj << +5514 0 obj << /Type /Encoding /Differences [ 0 /.notdef 1/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash/ogonek/ring 10/.notdef 11/breve/minus 13/.notdef 14/Zcaron/zcaron/caron/dotlessi/dotlessj/ff/ffi/ffl/notequal/infinity/lessequal/greaterequal/partialdiff/summation/product/pi/grave/quotesingle/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 127/.notdef 128/Euro/integral/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/Omega/radical/approxequal 144/.notdef 147/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe/Delta/lozenge/Ydieresis 160/.notdef 161/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis] >> endobj @@ -23707,76 +23730,77 @@ endobj /Length1 1606 /Length2 14569 /Length3 532 -/Length 15414 +/Length 15415 /Filter /FlateDecode >> stream -x��wUp]˒��e1�33333눙�-�,fffYL33Xl����ݯ�Mu��Ĝ��+3k��\Y{�+���9��%�]��x� -Vv&n.��r�"�f�?Fv8rrQg��������+�� 4�M,,�fnnn8r���������+�J]E�����B�&^��������@���h��h�w���ި -\-��s+[ @TQI[ZA@%������mJn&�V��9+S���`�����`�`of�Wi.��]���G��՟m@OS��_.:�#�������3��`�ll�����+{S[7�����;�M����O���0%WSg+GW���Jb���ji��Wn�?n����H3S��J���������� -�t�+� `f��hk��'�0Gg��i��X�[���ha�lftq�������N����������G�+W��93˟���r[X��1�5(����f�������t��AT���f��^�3�9���럔������{"�/H��"�����3q�U��t�����_�%�lm����?.��� ����b���l���� ����"�j�� ���`b`����E��h�d�jj 07��ӣ����f@g[+{�-�n#�����_|j�V�6�5��.��ٿ2�#���545uh��6�;J��j^���[�f���CD���C�� -�g��pp1�8����l�0�s-o��l� ��S2�߅����+���7u0�kJT]������r��9;�������_�=�@�'�nu���7�:=+õ+odRLw��|�ci�ZQA`�Co@z�w��[�W��i��v��3����}���������~���(����������1>�?�!t8�4w'�UJޠ�;Y�a���I�������5�ct!7�����S$�<=R�������?��͍�%�u�@��t���Q��Y<����:g������X�`��ݬ��º=Q$P�uP!v��q��O���J��j2��&���|G�L�v�93�_cE>���O�D0_���v����Ϗu�<~���)݅E��c���Tx�N�8uT��E�x�7QF�U�N���ӟ�]���_�ƞ�Q��xGlq��1�_���'D�o��룤KR�c�14D��0�AT%H�樑W�ȿ�����J��T�֨�.���1� -\Ac�k�b�`�S[��|��E���')��>�k��^�a��~�G��f7�c������]��Ǹu����W��#�pKS#ч���ϗ�9i��br��^Uu�<�Q�k]��)�Fix e�yL�:?�u��hE�U���w��o�j����^5#�e -kWfs�j����A��0�\�"�3��?vP��o��Ӫ����&�n��Nӏ�MDqp�N�Xg-B��Z �g�/�~�g��i�TS��g3섽QI�RӾu%�i�e~t/Ȉ R� -r��N��]Jђ�9��o6�u�d@+|��c���Y�"]p��w���<^�.%�C#��y�y�ډw�Cb׀�F �;t��Svt�(�6z��?���O�t�g����e}cGǾ3�dGt��6�6�?��?���D�����s<]z�ݰ��iZ� 48&-]�i1����rZ���^<G|;���\�`H�X��"|��Ӈ��ҽz���C����R*��M|P��y'VAD����#�n�~���VO| 5ڽ�r8�֣�p�+ED���C����P��*9 -gx�q ����Oe�>������q��%?�E!��}�Y�����3��0V���t���������neF�=���rN�T���R���0Df\IĂ��wr���m�߉˷D5ܞOֿQK�p �*��Cնv���I������f�R@ޔ%"S���`�.��c*E��cͤ����j����m��gE�$���b�8���;���"���������ͧº� ��������ƍ������ �{hn8�������>��kv�5��T�2����`��() 0Q�[�%�hL�=#��g��so���S|?^W��;0�<Օ�I���P�Ρ*�;�)Q��X2�)�E�D�H2 j�V�F=n��,���jUf��\���1Bk�;���g�?F:#�2_�V.3�$`�?����#��Rh"�D`�1N_*,��R.k -���]m1���w!�Dž1ܛ��`Lu -���@�v�n��<��v�`*zVvR��=lF� - G)���Z}T���S�Ys�@-*a�].��W���� ��:d�h�E�a�G=;ڛ]K�)�s� x���b��d8��_®%&�/@���� �����^,�0���~Պ:�*��WS��>yǀ��]͋�|x{�t�xLl4���F1�%��.0~�#ۯ�,�2�G��ؙ���;�n�S[{�@(%��12�^�B�����4Ŀ�(�4��� -��8�H�Fk���1y�4n��61��S���ƘO��$��p1�T�MD�&�l���~�EU�e<^A_����XL\��o��#�A(�.o���6�p/�<�`��_��=�0#��U�h��֨�纏�g ���Ǫ6 15J_�@�ro#?R��d�鈚��蠠%TI�B�Rǘ�.��5���Ҽ�Xϙ���B�AP��,28eA^9g�~�3l������mW�f"����"P4*�U�S�kG���i� ^�ћ�qCj�+��Z��f�����Db��os$ �i �d+���b� ��F7���6�g�R�8嫕�a��ϭ2���&:�y��9?Ȝ�+l2����8�#{�1~�y���Ѫ0jӮ��`���:ݬ��i!ta]T_xNG��k��2!����K�A��6V�.�g �6�طWgl�/�\�,�������z ���'L�`�>�g������-�������]1A�h���ȵ���' ޱJ� k^���� Z�7���R㒡�d�$/GZ&Q�C�����u�2Z�>���v�04:�;�^o�+]�D��xv��ׂ� �~�x00���E=T%`��G���Bt�)����N�D�{G4'�k%����I�W=�A pY�sܘ%�N���Z�g虡�Ϝ|6I��a[�c���'FO�!�A~|�Bw &�đ�ܳ�6@vة�)G��>��D�k*M7z_��\w(,Z�B�����k�7��0e���9� ����w��.�_}4�,J�6��&��9��XBw�*�O(�)D� ��T^kʎ�W����A�OIǡ[�̨�<f����uf�KE4;�h�_ӳ�/U�_�8��W��K���`��l ��^#�ƵX��я���\e$�'u8W?�B&�h��f��<@K���$��X>�@�l�Hu4/b�l�Q� ��6q�(?�r���:'���x}M��n�R�C���)��Nu�} -�"���Q��"�oJ=�77��1�W�6��<*� �q�����;<=ۋ����r�f�j�)��ѼN�E�X(�E�;��������b��*azl28���`h/�L��Z�8�O佰y�w��u�+[p�s����NC.�;�[��}@���υ�oI�r�6��UK%>��9k>?���>�./�)yliw#� ��U`��ifejɝ6-�_!俱�<�ƳWk�R���<����e�<.$���4���%��[�M�:���䈾�pǐ��E&�~±������} ����g�pGV�O2[�s? )�h��k� �x3��xT ��k -�l=�m2ܽ�����?���DW -jup~����!¤����3yt�XO�=�~�}���>�ެ9mTFjm�8��-�m)��7[��(6��!T�z�x��5��FCB�����َՑ�Q���h������$Eq$��5� �_Y��eo�Q�ߙZ��{����~o""�O%����]#K�˅�"����="ݿ> -)���_rF�E��n_���F�ZZ��ٵt-rj�ڌ��u���,��C�%&�)s���`�~x����WL��y��Ĥ0lmh� -��6o�3�ɷ9-��X�k���$p^.��@��U�D�W���_=1�E!�W<�'�A��bk%7-N��`O���p�[���C�jn���rA���ZE���{k�u5�Jэ ��2T"�Ԧ�[�c����Z�W�Č,��p"C<��ŷ�����?�F�V�>�>���_�y�e�k��Dx�Y���A�g����`0q�ɠ�٢�H�g��X�� _�j0�V�:��Nni�d�z���Λ��;�`��V��N��Ce��D�5a��p���N >&�˘{��H&�r^�-�51�V�X=��`L>��¸�H�D����C���O�P��A�07���yۻ��p��"��t��5�L��L�ȁ6��l�.��Is��:S������c8�)����9?�G1&�:�~�!P%K�y=+e������8�W��D�g���rupo�֝�a}ziE!��Y�s�^�{�^JCu��'����L�l�]k}� ^D�N4ҭ�*/��4iVŨ6�����K��?fD�pr@���e|���K:.��� ��-�a4Z��<:0x@�t�#FM�k�l�;Q�� �{�����*�2�F��!���'�4���1GK���G�_��:e�C}B�E�Il��L7 Ѩ�]EzK� i�v�ce�3�Iޘ�@���T/��{�p�����YIxV� �,z���^BOu�JnZ�� �g;{Y�'���c�EG�U~��&�P��x���k��� -� c5&�u�q�=�3jf Сv�+�!�7����"4���Q�bDQcs�:uO�tY,Q��Ls9��;%"�ݡBJ�ZSQD(%�Â_�nb<~o����ez����@{n�P'���_��P���s.�i�[���b� 1I~0q�����&!��P^�p�����>k➫�� �oi�B>�Y�j\��*^��C8�X�r����#����d%���D�샄ǎ�M��A��pG��\sϘ)�[Bܫ�V��I��q�p�x��c9m��p6)J��&қڀ[2s���Xt�>���|�n֥E�Z�]5-�@"�� Qu�D���Y'|r����<�7EHi(�|��Ϋ���;q�cn��K/�Tu�%;Հ�s���F�� ���b�U��1G8�҄a����i�L��-�f�u�]�E�ρ�G�\c�l��0)��S���vX�J�E�6*��Y��!^��L�A�R -���f������K�C���y6_�"}��&�� 'Cf4� ����mN��ɴ\�� ���u��P�avL(���O�H,D�uy/��Z���/X#�Z�U�'��`�HJj�ށ�S��ƿ��Y��CSR��B�76�?&B2��_��u�L��/Z�y�'�̢r�c�fG�4��kBL��i�C�W9�\6eU�6��çK ��u>M=�-,a:�!�����F@�l�d��k;y��5 5P<���]n�$�A_�(���8(�D�\#����� �9a�d�;_Ҋ�uV��Ȏ��-�[�4v�L.?G�q}��#��C���KW��:��\�(�-*���8. -}o<���6W�D5���ݸ ?I�5t �n'"��)�HrxF�ビu��#�`:�'�.FZlo��n ϲ��;��b�5� -$7�ůa�8!N%�kY�6 Vi_�����^xɗ�C+�{�릁Bsp��q^G�і�u.����ǡ�_aJ�����d����'�O;9�Atu��I��Kw��l/�lif�պZ�;����ӒO6{���R��tnjz�䂬 6ᤇ���&��G�8E`ҮvR�9�ʼ�'OC?p���c��� -�́x I*D �V<�A�|��{f7��DWT_7}yZXH�q��t��p��^�.�ە��h�Iz�p�e5����EW��>+I��n����+؉m.�^�0S���>����u\��QS'A��wM����o���n�ݭ��'C��89�k�y0�!<�=5��_68GgN�W����ȁa��:���ų:��2�F�� A+/!2P��Cк2Ze��yx|��0wg^��cOdWeE��E��������:&qb� �M�^N�(shL��+^'[��]�7�|$5���D/ߒ�\>�4�~u~4>+5fh��R3�� d�Q]G�5��K+��Q�'��|>����R���ʝ'\}4�G~t�x�l����:5Q%އ�(+�B�/�ڬ_�p4��s[)D�j����+m��($�~.��b �eL�14^5�P��g�Ωb�DP�����L�'��æG���Nc7�~�w���W���~��Q����s��J&��T��;��*8�X��k�5�q�7��0��^�,�mBC��KiS��Z��#6�����v��7�� ��܀� �Ƈ�uWFO��A�G1>�9X�T$F�&��h���������U�����b_�8��}#���蘦[<�v�&��.�j�J�k�tiF��!�\9�Ws�����I�a�ds�����Q��c����u�W,{��d� @fN��}'\���.��r9"0Ɣ?�>�Ʒ]��L�h��4�`r͞�9�N����z8'iP�n��j�r.��X^���eh{� ���U`Kys�j]��n?r�Lĺ���N��*��}ZR�D�p��O۷趫��m�p�U氃7_��&+��' ��� �(~�Nܸ���&�-p�:�x }���f��;�!���)%�a��.m8݆�8͂�*�3�&�0��*^��(�l�3�o]��}�����M���Υ��A�(��������]��$���*��ϙ|���M,�T������ݭ}�2�����lx5ڴج�C��Q����M$ �i��s�Q�N��f�g\�SC,����QeX{~yQf�Ilݯq�'���ƶM��B�d��Dx��y�oI�0,4�>��D���l^�-�9�4껊wB�q� z(���ZN���m;CN�!���9"ǧ�wS�Z8?ǭ�����ϻ���N��(?��^��e7�`|���x60�,��u��M�~�Ld�s���/,x�#~��v�[j�d������=� ���'Q�5s�!gP&&��Np�p�⍍���Pi�8�*-�3nm9������G֥ ^�GO�U0"��sRäj�|0�6�hu����#>`S�Zw�!��m1����u���o_\��UF3����1�fh�$��'�Bd< ��)���XLmUj���"���-� ��3B��hi���{���|��+�^���Q?��ޟK�|0�Z�i�[]�{V�3߉*��A�IK�i������?�(7>\�&��~��/��b�{���q�����G�2;�w�&<X���[��F�\��jd���.�A\_�����q��+U�I3�l�$�;�p��o�n�$ղQ��~�y�&�2���:�oҦ<�|1�eR4�o��+��dMn��ln�t2���uB3GAU ��x�0�i[���n$E�F�]�H��9�F� ���;o�y��\l�Ł7�,�Y��봇u���_=��V�nXk������Vn���~1xq�7��}&2:��a�����]�DŽS�@Kx!X�dG���7~����v2Q�8O����"���g��2EY -ʬNf� -����D�Y6��yd�pf*�!�x���H�5g��֗+Y�G��R��!�<_�i�{��9I����pX�'�IҨu��h�EUV�Z"�bi�tuv�@�JW`ƞ���E)��b0������{G=�ueЄ��v��m�1���c�tف٥dTx@={�{��4m� -�U�F ���5��"�Sw��1�9|9�S iJ�4�l&����U6�$Ah��(9�/��A���g�%={�盂+{��y��կ���:].�`������<��+�+?���_�n'�ƀ�Wz3�����4۫*|3>�����I�f��tҴ�ɀ��p�vKv�ٖ������YRov�e���2~AR��jm��,z���}��~H��t�E���;���� -c��*��C�c��-Nv��ѵ%�\n�}�5�0�����j'{ؗ�bYXh�h��A7,v���ȾS� --�"����;]rE��̊�|����(k�ư<Ev�#����|%KӜ���ǐ�� -Wͩ#~�O<���1)*Z��g���1;�&��Mʁ`C.7��3��L��I�3�%�D �<�1¢���1�<pD��ۓ[���|}}�{���� -jO.-����m��P�_�[��GX ����^[��_�U��]Z��q���O=@F��~X�G�O��0���\]T(Bے��[�z8m�3�rǥ�.\�gt���;ּݺ�6�Ϣ0&������n:M�#���^�8i�z:+B`�c���FFA�.��blQ���,�`�+�a�5�z�p�25Wu��%��P��<�7'�A"03t� -o���.q�z�E����1�,�/�SitK�0����m������_2��7>�˖�3���}�Z�A����L l��j墢]����Ԏ1�t�l��f���@�?�q�bm[�,L\@���ڔ4Դ9�PkI��K��X��+�a�zEKB���%��~B�ql�F���z�c�G|�2X���x�F��ZM��c�0��TR�ܭ�5��r9�{�2�b��ք�����_��G�|K7|���1��r�a{�ih\���;����a�V��\�sW#���=�8 �p�Ho��1��P�j��C7���h��!��K]@�{�_2�-�n{~*�������y�<ߜ�o�WZ�IN_�{+��_f�S���IP;�y$��m궠j��c�ٶ� /!w��W������At�4b�f��[}7i_�>LD����n��`�%�����=2S�뼜��J��e�Z�u�'�S��X -���I�K(�����r"q�MӔ�0��S��2�����θ�ô�FiTMkm���� ��(0�nP��n�P�;/�H�����p�<�[Db�d#"�a1��kx_M�6�g����bg���A�,W���`%�S<b�]\m����W��4. k$�z��F-k����W�̸ȷЪ�⥍�RB<��+X���cy�I[0#!�s�Z�[�@�%�O���լ� -J�F���A1�`'�B@k�eP�"���R4~�+ l2��/�7��ڣ{ͺ{��i�T|y���7HA��X#����c%R�.���x�?���k���Ü�V�]�8Y��� {�!��Z��y�Y3�/�L��u� ������k��εs��,�%�O�d\f����X>���aX;Ũ/�`�6�NSf���=�0t7*�T�_q�:ù'��� -M��)����_e����'���tb\��'�l��沤�}l�=o��"*?�!c8���~-qkb�'�>p� �l��� -�|ο%�TAEr7%�Kͫ���(� ����v��+�Ai�o�!W��x�L�e��4��Ny��:\��&��\�7�(�!�}g�}S5�U�yiwԅ��L2�$�42P�j�т9d�T���F��&E�밲����JDw�ܥdSP�E��g��a����69E|����qk�2�ҹLHPo�|�8�q|RϏ�@�7�5�8���~�5$�uq��Ż�_q4���d\w� -3cm)�k�-* IFM�J�7�^�"+��b1|��=�G]�_K�%9ړ���Z�2���*����/��,����n1���EJ��Y.L���:1�a�x���j6�Q?�8@a�0A �:�q:�B�� �醌e��{�J�wi���6�,e�EV;����Ǿ��$>#[��rs�#�����Th�M� pd3�$�}�����M"8�J�ܩc����}2~BWT3zC�y11��BF�ޥi������`x?)��2���NAM������|���`TI�7��W�6-݃* ���G�͚�鎁#i�l$_>�6a�O�\Ӟ=��}�����p�S0� ��6��U��f#Dd��w�+:���qR���b���"��e��*Y*���+|Qت�����[�w��d[I��|y+�>+*���y{C��J�i��L��W{=�DS1#fF�V= �X�@����[��D���qaE}�*4���DV��7�; ��k�-(��}tl�7��yP#�YC�0��T����Q���o���44it�:Y?�����LY�.c~6��6 �!�u�Q��W]]�!1�z )#�Qخ�0]�jd�˼�Z#�;텭T^��Lb�qcb��/ȄV���{�y�_��M��i���]8d�9�~3B}.̥�ϟ�L�߽�Z�uE:����Fǰ ��Kǵ��|(*!}q���m�ܛH��⹖��sk�C�Pר-��^�l�����U�z�H�2r2Z&ʒ���M�\�* ��LD�_0�%�u#�W�r���W���i&�tČ"�lL 2���y��ƺB`���N� -Itb���^ި�Ƃ8�R.gH�JX�3�����*���K�`$�ϼ��7HbȂ��g���h�;�` ��x���j�:�����L�pFAE���c�<����{D�ߘ�_`gw ixg�b�bxM�p"s�51�e��@�;����C�n�� �g=��(�J��S���+�-r�S@�x��X�ߴIO) -��1ό��n�Hs�¨$�Ƕ�S��k��˗�Z�lY�H{��)���L*>�+�m+O�����8����OC�8Ӧ�-��v�#��Q�U)���#��/A�������X�����GӴ��M�'�M�p���Oz����$3��^�r�ZA�A��;P�p�-�=,�\K\�$S���M���:�WΝ*D����(�U���j�����b"��W+��.���&�IF���Cvr;���Խџ,��Ab�t�L�٧�8ű:�!�Zg��t�4�ob�%M/I�N�6ؕ3)Ǽ��-V�����;{�F�y������ؖI�t�\�ζ(Qi�WǗ�v|7}T �<�H�(��f�kA2 -�%I���F)�Ow����̆I"3]6�@?+��s�����o��|r�TbU��OǁT��*���e$,��V���'5n ���G?�]0�P%��DV�ЯJT�F?XX���ٰ���Q�Qj��>&�b��-5^%yw+�1�(� ��q`��5q���G{.�;s�hz�}�@���_L���ȯZ���q�y��Z�d�}3�a�P��-J�����H�Q{��v;�� -=L�r��Z��TE����m�j�,�j��K��?)��@�ޖ�X�GǦ�<�C7��(>��ƃ��p����:4&���鉲 n4��Y懵��ӯXY�R��w4�g��)V�4e1��q�U[IV�n���l��"�#ḧNc�4������q��,J -W{��d�i�U)H���7�e{ g����瞀��.�5��6 �V�4T��1��b�C�c��[�a�f�~X����G4ս���Q/z�v����[G�U~Y>�J�'�U� �����^3��J����/�*�E5� a�Z�EϠt:⯜��\�JX�sb�X*(Х��-�5 -��X�w){��#��Ig-3��T<� 9R���H�4��4�ܾ�_�<�h��' ���͢uq��O�y�1��^@��+�X��?�ljY���{Z���v#����46����j��̹��^�`ϙ0$zcL ��vW,�G�Y(LZ�Ѽf�V�m�湣�>q;�6��j��h�����|��0w-Q�M(0�u�wb��ɹ�(�������&�,�{�j[h�<l"؉�DL��GQ��a�m�n��h���v��i�\]�=~'p&O\�?45^Wb"]'!�w -ZV߄ba>Y�*�9k��J��j��eI�Jی�F^��+��+E�pmƋ�}ʟ����~\���'뀇-��V���E��Ġ�y73XWW}msN������_�Y�������+�jU��&*}>���Ő��:)�!��B�����y�A�A@�t='��� @S�u)U�L13�P�v�!F�Uk��ܒ��<R�x����B_�q��i����#")�&vΘ�r�?+����*�)�W����$F��T�ϯ�ʒ�3[ɮs�r��1Es\�.�"w��u��M��wO~ۏ���U���y_p���|�1�QD�g�!Rho��Y��N��[XC���r�Ia?6�[s�q�r.S��dz�n�.sצXK���Q���K9V��F`��OJ����lDQݏQw︼h� {%�g�Ș�YW+�_��s�`� -2Jh`>%g����[���`/�)�|�2:Z�t��!��6s�Tg��GdXC�����ݽs]�?c:���鬯�|�nfK*�c}�p���l��a#!�>|������}UU�]Bv;X�z�2~%r?m%�������mIwn�QW��lo����W��6���2���.��8��C� )�n��ҨDí�G]��*�����-�����9\�"6b��5��X��;�<?r/JNW����A�{V���D ���CԐ����~��C¸j�v��n_�}YI�N�[���T��(�� <?��I�0��\.�LŒ���%~��LK� ����}(?��a�l쌾K�QM�9O=�5SG��SV������GR��Թ#����@�7w�*s���Q;�B���y�f�-��8��&#cŞ1*�T5yqi��s� �Y��{���� *L�F��6Bk�(뚲&�~�6z\k��(�=r���5ra��I��BB{��{�&TE6����{�� C����9��#g�g!x� -�i�����ϯe���L����D_`K�����/F��]����w�<R�@�a����w6�̈�--t��ɸ�'Dzq��8N����>T�,�ł\\�.a���65��AK�9X[��*�ݐ�㳊kzu��@����x*E�Og[]%���I&��*�w�b�1���֨P���V�4�Q �$��Uj��zy��j6ș���|�\�W�=p;�oE�dlFA�(��vVE?�i��'L -�ѥ[�O�$��ES{^�j�1xy��9ٜ��P �0�d��eٲ|�6sȸ��G�̟������u�tE#��龓�h�1�^U��6�!Ɣ��NZo�Y�D����j�,��*�:����[L=�s�ş�'e/�*�g�B�2R�����'�i)z��?��YWx䌞Hl�cG�1eŶa�����/��{��eq����8}+�]��jnT�"^?Iwi�%u ��AX�x����o(��M�چ�hLU2��s髬���畲��?���w��wKq�F �ޮ�@��?A������P@��Q_�Ip4)g��(��&�q��+� B�S}8A2.-�tNh^x�c����N��a��6�6�����Eg���U�B]�e�`�5��y�^��a�,�J�H�Z�-�DE��D�E�����w�^��(�׆�A�R^��J��f��i�am��' ��A��Ӧ\�Op�P4�.���o�*����og5�Z�{�q���̗*k I��U��Vd8?����I#��^�6$shͣ��lC9}�v�bt-�����G{O�?�5o}f�Xu0x���S�Ǒ��2U �ѭf��� o�GL1ގ����`2D�Z``_��ϵ��x���b�"�a%��%�p�c��k�KOa��[, �S����`�b�&���!�}!��2#0Ulrτ�d��z9��ۄ�hM�w^kq�q�Jqr�?�k��W���+%�,�b�{�\a�f3*W:W��[��N��aG~�~�vq�}�$�kB�Mp0-�I�v<��_$>�Ղs ��ڻ�!�>!8"�hb�D��n[��g�R�"/a��>�)1M'��q?W+2 -��x��P"YX��A�lt��a��U�A��K�-���v/E;���R^ 3����yTr���Z�3�'�QV�Iq"c�˪����ծND3|��*��!�ګ�ZO��>T+(³��_�/�j}���}wĽ�(���-% -����@�lՙ(����T-����oN�M�$���������G�i�;g���&�y��&��%P�:�]�*�Y o�X9F����d�����W�������~�/Դ�Ն.����NW?�<��x�P��:��ܗ��s6GB�:���,����]pg��8�Qr�I���8{�Cv��s -�O�V��M:���� U���o6gpvj��ץ��1���C�.e��۴G"���0ү�|v ������� �{��{Ux�����)��[�^ޠۖ��#>LN���w4B�S�@�H�� -IV�����k�4��{}[~)z�~Tm��4Y��Oa� �0�n�)G#���45��L`�Mw$��}�"~����3�2�9u$ �y�D��!ÚF�rNF*�y�~Iڵ�R����Ƴ�9X� !�>���[� ?I�Z�����w;,*=�ԭ������nl9(�ک��� �a#���b+��U�.�(�&2g�v`~��ю����eW�Ȇe+;����Q�͈¤G|�(��'�Q�Lu����xϙ����Em��ؕ��綀4��-o�����D�p��r~�D�"��ߐb�{U���������L3��JDo3�lp�Tw��YI⁷��U>Yg/�9�u���|��_db�X���E॒�Ұ�y�p ��>IJs��C� ���Vf��MWph��̀�Sf��pɠV�fF4� �VvY [��h�X�0���]�Im"��( 3O)����:��E� 1(��C��p����*/�L�s��Q�㿌��.���iԐm���<��&�&��]GŌYKJ��bFi�m0�hX������I�ܪ-h^�@�_��o�4�`3A�ve~��Y<��#}>����X!����J]���/G��ΧB������^v�l�JXw"�?GI�r��5/M.�j�=Lg�3�;��b�V�D�%�L=�|��V��h]H��eJ$NT-����U��2$u��3���t��F��%yt=M���vSN��&1�����Z�L�Ɔ����NyKP���vW�V�w�L!J��d�-�«-�z��뀩�d0�Κ�� ,n��v �x�UO�!K�W*��o��/���y��ޥ���CE�����wz�<��^:Q��)��@�s�稬�,���D��0��b��|��[���%�>6��o}��u�����.�����D�����흿��ϙې���g����O��̝<��S�突A,�H�DZ3R!���?�ߒ�jl�|E��JZ.����W{k]RgP'�8U������?`j4vvu�3v���?��endstream +x��wUp]˒��e1�3333X��333Z�`133�b����b����~o����&�D��]�Y+W�ʪ؛�XI�^���(ao�B����P��5vu�������1�1�Ñ��:�\,��Č\�<� �)@h`a0sssÑD�<�,�-\�T_U4�ii��i�+`���?;�-���܀6��@;�?�퍪@ ��0��D���$T� +_�@;��� @����� gi�sR���6�X�L��L-�*͙���3����4��� �at��Ep�:�Z:;�yX:̝��\����`igb�j��?v3�� 98��������d���l�d����UIL�<],�\���l�� �7�ijo��WI�����Y�9\�.�2L-�l�<�����d�7 WgK;�2�8͍�Lm���`�`�՝� �O�98�x�������`���1c�cf�����OnsK;8ƿE���������ÿ�܀N7�ꯙ��C������` +4�cT�w��@��S��O����W�_��&�j�����<�+�����������s�����1�W����������0��@�]���A����LL�0Z:KXz�M�,]L,�fF6z�����)�����G˿��gfb��������_Mg��hg������7oFQe1eI��M��R�������b�V����,�����xӳ��Y8��\��.Nf��"��0��\��8Yz�t�����w�����J�_`��L�M��U#;�?�����&�NN�����)����8�4�[]�7� �J��p������c u(mT+*����O���4|� eh���h�\<sx?��9�чiCٛ +����KJ�_��I��I{Ĩ_��q��}�SnB��I�pwRYE�� �`��� ���:�ԭ ����ዟIZC<Frj]��9E���#�����p�/��<��xXr^7D����\<A���ޑ4�G��6�B�L�#�\�������#�WX�'�����#Į�N^A�Is}�C��{�Mf�ķ՝��I2g�k��'���fKu#��n��9����.p�Ǐ�|;����"Ra�! �Aב +����_�l���捕�ո�!{��gpW�2����gc���,������d���l�� ֠�[`��(���>�,�u� ��As�ȫj��s�l�sT��d�w^s�MMS�x�����9I1T +0��-�HC���[QܓDc���� �Z�aη~�G��f7�c������]��Ǩu����G��#�pKC=ћ���χ�9i��br��^Uu�<�Q�K�?� �Fix�e�yL�W~X�d�ъ<Kv�������>�'-&22<jFj�֮0L�<���M�=0aRE4f"���Z�x��U�ҝ\�ɮk:M?:6��}:�b�5��j��a���a�Q���RMIs�Ͱ�F%�KM�֕�����ѽ #&H�+\�y�3�f w)EK�ko0���m�P�A��*x���Q���9D�������i��MJ�y�F��;1�Ŀ��,��6���@bw����w�ѥ�P���O2��t+?��яu��f�������Ё�[�t��N�\\�O �/+?� +��t�]�v��ܻi�:@���tɺňn��i�;�sz�D�팆s!�!abA�� +��C�7}�s����0�_�4T���.�R��N�����38G�6>�|[Q��(�j�{��p�5�G���<�W���>�FE'{���er������=�� ��l}�iٽ�.YK~�#�BN �ۨ����]8��/a�2qk�r������������� �Wd�9aR��BH +Pp4~��`��q%sZ����1sԶu~'.��p{<Y�F-��_��Q�� WH>S$a���w#��KyS��L�ﲄ�#�\������5�rTV��3��O�%��U�#�Y�4?8���C�����&����.4� +�&`&7o�����n�x�\��6�Ρ�5�"W��r�'�`��^Ӌ�QU�� ��_�Cv�I�h�����rPO�F#����H�E�{���5V������� �Q䩮�L +�d�B�vU)8(�1 �juƒ�OA�-�&�D�iPW�2W�q�\f!d�V�2K��:�D�Z}�����S~�0�)��6r��|� ����7���4�B%�qzRa�}rYS� ��rh�QT���8.��Tc�S�m����w�ހ(��)�6C�Sѳ�ېʇ��`3�WH(8J T��_G���=Ě5�Ԣ�>��"~��7䟔H�U�!c�@�-�#>�����Zh�Hy�k���`��3�x#����v)1�}�}�����]>o�b��������VԉT�pBM������v5."��A����b���1��,[wP�Ȗ���x��A�lB��we��^I�3�o�w�n�S[y�@(%�{�64�Z�B������ſ�(�4�� �Q�MyR��uF�5��嘼\�7~D���[�)��Gç_U�sn8��E��&�RC�^�F�Ѣ��2��/��g�/&���7Z�x#Q�����Zo����U0Ɏb��@���K��y�"y4YPk� �s���*tt@���M]L��Gx ����З��8�f:�&4���*�RhY��y|֫���4� �sf4��Pg o$��NY�gΙ���=e�@�K"|m����H@��K����fU�T����ijZw��Ci�&�zܐ���/{��>���l)�-!��=�� �aZ�"� +=��Xe�E�� �7� 9�ٰ�+N�j��Er�s��1���w<@�2'� +��o��?�l��v�^Aq�q;�n4+۴*�d0(%�N7+��@�sc�_X�.<�#mrϵ�}��@���%� Yr+�J��3q����}el�+�\�,�������| ���'L�`�:�g������-������]1A�����ȵ���' ޱJ� k\���� Z�5���P㒡Yg�$/GZ$Q�A�����u�2Z�<���r�04:�;�\o�+]�D��xt��ׂ� ��30��Ň��0��#��t����E� M�T"�?��#��е�hf��Y'�w���;��:l̒|'�Py��5����Ϝ|6I��aS�c���'FO�!�A~|�Bw &�đ�ܳ��_vر�)G���ߠD�k*M'z_��\w,Z�B�����k�7��0e���9� ����w��.�_}4�,J�6��&��9��XBvC��'��"~��U*�5eGȫT�[� ������-dfT�?�Oi��:��"���l�Ư�sؕ�ȯO]�+�O�&�Ę��y�t�z�R㚯���G]�C��2���:��O!w�\Q���� ���F�s�d,Y�t��{�:���7])���P� �sE��C�G�}��]c�=C�5�Z,����u�x +c�R�p���ȃ|>y=, ��ROG�͌ev�v�� �0�JqBf�i��`���O��"�1��\���Jz�:B4�Sv�-�uQ�Lhbe-2��,��{�J��N�)$��2S�V?��y/��?|����}�(D"�ӐK���/kP�|�ra��[�������zz�R���kΚ���o2��ɋ�k�@[��4H�hw��v�ZE�Xp�MK�W�m�9ʹ��՚�Tc��B:�g=�t�0��d3rťdc ����|ҸNk�*;9�o!�0��v�I��p��f���o_Bv0��'ܐ{��U��LW��N��$��چdC�6��|#s��Z��5[Mjwo��?�v����?��B�Z��_Ƽ�'b�0�(���L�#֕xϽ_i���-½��7kF���Z['Ncov[������6���_բ;^xc r��р�4��{�cGu�tԹ�!Z|��bo�;IQ�w<l�o��WV@��[|��w��>���/��ߛ�H��SI���~�r�Ȓ�r���9<��l�H���B�v������Dži�u�ەoh�Q��8av�^�܄��4#�~,�3 .��>E�I~�\���;��5�����~��?1)[R�����[�s�mN�q:�Ŋ�>2 ���5�!��q)Q��w~��GWkQH�O��q�x�� +G�U���<���y3��V��������>�\��+��V��A�^����i�@��Rt#Hz�ņ��9�I���X�g����81#u9���Sq0;���Q�U���q�2���o^�p�ڭ"��׆�cP��@22�>��Al2hp�h����@32V�3���ϼU��!��[X4�"��}������"X{�ծ*��Pٟ#!��`M�8\��'������4�^h"�����c�yML���&VO�.���Z� �h��]����C�����2� �B���?o{Wg< N�\�6��ƃ�Ԝ 9��#�����=iN+Y{j2�Q�{g5E�:��(��\<ï0�di_�g�l����k������L��[��M��S�7�OO�(Ğ0�"7�#�3O�Ki�.��D�i S�wך����t+��K�1M�U1�M$v�/;�҂���8����{yߨ��������sA�~�V6�+ς�*]�Q��"[�Ljd����t�?������s�mp� M%@�A���h���W���Nٹ�P�P3B�F�p�7�MC4*rW��R?H�F���X��L�}�7":�=�M�|��6X'�+��DV�rE9�� &���U�!�R��V�s����^�hh�XGF�JF�Qz�_4� 5T� ��4���ڳ�bO��o̘E� s�jTf������]�ʰ��b�l��)~nT�R�XߡNݓ.]VI��5�\Nt�N��}���ҳ�PJ �0��W����~�/��a+�ך[$�N&f�S~9�+�܂�kZ��:�F�X|CL��L�i��I�k)�/��3����������}��]Z��O�y�A���3į�Wh�e4���F���.�~,Y�t0;?� ᱥh�x�8��<��3bJ�����c��u�-�"os_N�+�M�R@������\=�*]��+37� ��unD�cWMKAӗ�G�FvEFT�/Q�B�s��0h'&O�MR +1b���-��N�}���7Q�|�Gէ�\"w�Q(r���Xj�cgF����0f���xZ4��u˩�~�p�D��}���%��-[%,L�a�T3��ָRsQ��J��Dgu��&'�x�w��B���Q-f/)�D��c�m�͇wo���]D���I�9�рMpB��|&hs��7p2-��*!P��|j�x:Dr�Jhb��8��w]ޓ(�����ֈ��I���4�"��Zx�W@���������m�E-�ǐ�����`��M_����L9A��b��v�*����o�|�I)��\�X��)M�)�S�k��P�U�(�MX��c���R��{�N�DoKD�r�%j&�����,�����N��sMB�O�/y�[D; q��.J)�A'�� �,ֈ��������r��2��Η4�l�T�7�#(d��V; ��ޓ�ϑ�o\߿�����;���U�|���5'�a�J�=�Y��������@��F���7�'I�F�6d#���D��I�Hr|P��?DlA{Q8P���e�H��r�͢�YVU;G�`@L��X��C��5,'ĩ�[-k�&�� �k�r��/�rvH�]��c�4Phn~75cA2n���3ڂ��ÝԨ¦�87��� �(L6���|b���c| �@W�h�tp�t�Ya�����F&X��y�=OO:-�d�{�Y*���~w̨�J.Ț`Nz�X8kb +~T�c&�j'����K~�4��:��&[���w����"A��h�S��wl�gv�o�te��uӗ�����7s �� Ljў�%�b�]���f���� GV3itEP���ļ��ؽ�������esC0�*��[Y9�Q��a���$h���.�T�zm{a�� ���zd�r''��?&��9���&���������3�80lu[GC�X<���.cod{�4�"TO�0���!�U�������{ sw�e�:�DvUV4 +XțoQJ���X�c'��p��D��T�2����5~!qߵ}�GR�HMM��))��cM����ʏƇa����\j�����:���Qtiy:����p@�=��[��شCJ��L�&��O����s���R�&����eIV��K�k(��n1zn+�hSM�6<y�Mހ�d��E3V, W�ƫ&m +3�l�9U,��}��&����D�y��Ȕ"��i����N������0���a�R��J�yG�YK�}m��fq##N�F�rF��+���i(}!x)�+cX[kX~��=RݮT�����2����Z{s���ʈ��ң=(;�h �g@8ɟ��HքÓ��4���qw��0��S� +�<�o�r��t�ڮ֤#�\�e_MV�am�.���Q��ع�+�� +cN���Z[:*0̞�b.���^7J�rL�O�.��e/Q������I|���K�:�ezX�#GƘ�����t���M�� ��A�FL��18���|���^�$ ����T]mRG�����`V�i/>��� +h)oNY�k��BN҆�X��qةxZez�OK����i��v]p�Mβ�v���Y�d�>���A�����Ҏ7t��D�NSv��52�L=Sy�2d1�<��1�֥ ���Y\�v�]�F�Z�k�R��v�mtf��듽OW�Z߹)�3t�3H����{���s4���ڜ[�v�9��۞t��Ł�j]=�w��>���]b��ܹ ���曵��`H?�>մ�$a0m��x�7�c��@�nx�?5�r +�x�Q���e����~�[}ml�$K.�I��N����g��D�B��M�L�"I��Yܲa��O�uW�N�*�9A���U��_���mg��:����6G�����n�Q�G���U�RԼ�yw\������Kփ"���Po���g}�"�\'��D�WND�<g��z�;��o�>��pJ�[��(�3P�"�- ��z�Y3�lreb��G�1(��X�X�����r;�֖CJ�J`~d]�e}�4^!2p�{c:%5L�v�!k1�V�_���=��6��dq���i�c����^�<���ŵ�]d4�PJ�\Sn�&�������E6���8��=���V�X[ +!����2bߛ;#Į����P*�W�9˗[X��� +k�ҁ�_�sI�F�R+7�y��qϪ{�;Q��)7i�3Mu�8���&�Ƈ����n������Y�}�p���!�پ���#Qfg�nڄ+r��ZT���Y���ޥ3��#���� +�R�ɐ4C�@��Y����MR-EIl���o�c�ή��Mڔg�/��L��|v��yE5���� �w��͍������Hbf(������1�o�r��(Ԩ��)�4�؈6��y�9�\����8������q\w�v�n�����PתZ km�^���^� W�/�/��߿�DF'�6�~���+��p�h /�������/��P�N&���a�[Yd����C�(KA�����U�=���?��0��;���L�5� O����L���p%���t_�[�Ǜ��!��`Ϛ=&i�!B���վq��!��Q�m��F^TE`E�%B(��IWg' D�4qd�Y���P����,Q�����uԃ\WNسhE��ßΪ>fH��^JFŁ�׳��M�F�0_Em�PNЍ^3,�>u7�����c9֠���Jc�f�����9�^eN��M���I��텚Jz�[ҳG��)���*�U�\�Z*�����Rx�i��S��$�����]���v��\p�7�N�AI����7�c(�h)��`ƾO'M���k���a��n�z8��%�fW]f],-�$Ū���hϢW� +�W��tO�O�St-K��hO��0"X���?�:����!�$ag�m][����wZ� �n<��v��}�+�ŀ��F� �t�b��;կ��."�n��!WdXȬ����<�ee���Ȯq�6�p��da�����\��Ya�9u���ɝ���&EE˲"�,q7fg|��p>�q90l���~y�t��8)�aF�č(�G4FX�7}U]&�g�h�|;r�9ٛ����z����Ҳ�O>��V� %=��e9�����Q�赵���^�ߥ5��WM���d�h��}��� ���C����E�"�-��������F8c.7\��r��}F�y�c�ۭ�h���, +#2��߭�L�Z�&�tޢMNl������"v?���o�a���݁)F�!˾ ̒ +v���[��w� +�-RsU�KY��?��ys�$2c@ר�:����ͪG^D������#���9�F��cj��F,�_����%��i�S1�l�:�J�[�e����+���f@*�V.*����jL�C~K�!�F�l/?��3�ֶ9����4 .I�uICM��5��tj�Tޏ�ʽ���W�$�!��Q�)n'4�džh�J�9.��V}�'*�e� ދWmT ��d`�;� +���%5��j[�n/��h�w)ә�v�]`M�=����>�)]�ɷt��IjP�� 706�FU���>��!Z9�����%_75r��ܣ�B������Cz ��Ƹ8t�,�&[m��(��D���%3Q�Ѳ��r��ٝ]����!������~��+���u�����2���P$A����"��ۂ����f�悼��m:ͮ":J^�04��i�u<�o�ݤ�|��z0I�f��Uʂq_������L1��r��+o�Mj�ݟ�O�μ_ba(p�"'9.���*2��ˉ0��7MR0��ZNɖˀ?��n#;�N�1�G�Q5����o�'�HV��ԺBux�Cm8 ;�����<o�)�����������m�Ϝ7�30���no���Y������JP����9�XK��W�Z��_.�H�X��Z�B%i�j�r#�o�U��K ��x��%W������ꑶ`FB@7氵D����K̟<%��Y!����b��:NZ��V�sˠ�EA��h4�TW��d$�_0o�ϵF��u�Σ�x���v!v�o�e߱F1���$J��͝s�����k���Ü�V�Y�8Y��� {�!��Z��y�^3�/�H�麵�������k��ε��u,�%�O�d\f����X>��aX;Ũ/Tg�6�NSf���9t7p3,�T�_�����v_�����ٌ��始�؎��\�^�}:1�E҃u6vssYR�.��ڎ7ۯB���ـ1]tSe���51�~�Q�����6��}�j6�גb������������Y +�i� �Lw`;�ҕҠ���'߀+Be<�I& ���~�n��Sq.�Jj� ����SԐ�>���̪�B�k&OB� +_��hA�2A�iC�#\J�"L��UXY^gso%��F�R� ��"��3[�0Ij��L��">]_���^I�\�$�}>Z�8>��GG��ʚrY�??�z�Wq��Ż�_q4�!�d\w~ +3�cm)�k�-* I�MnJ�7䞳"+��b1|�~=fG]z��Ԓ�I� A�-D��X���RI�z�d�Apbט^��"%I�,g� �p�w���H��M5�뉏������@���Mm�8m���F�tƲ_�=e��4�`�W2�"���K^[�c�?�,,����8���\���co"���{�b��L#If�'e�$g�|��9wj����Gj��^�����j^��0����wiX$<��+u86�O�nƷL���SDPS�l}t�0�c`E'UR��t��MKw�JC�c��Qz�b|�c�HZ/ɗ��MA��Ó)װc�s�x}���"���i�(��ni�h�YY�sg�]�e�w���ٳب~U̿�4�E��,�WD +��(lU��sc���;�P����M���E�� ���!�U`%�$oz& +Yɳ� r���3��t+���V,W �QGLV�~\���"�>\��Uj��o�ݝ��5��Z�>:���i�<�! ̬�Icw�g��y��77f�u�4�|����� }lB�&�g�1? �D�����:_Q��W]\�!1�z )#�Q�ٮ�0] +�jd��<C������V*/qAr&�L�11��d�+�[�C=�<߯g��&i�4HW�.�\�B�����R���f� ��� t-º ��y����F��h�c�������l>� +�������6�G�M�vT�XK�ṵѦ��kԒCp+|6O��K≪O=o +��F9-eIZۃ�&x�t��&���/��荺�)N9ԈS�ܫn�[�4�J:`Fy4&��cü|Ic]!0E�B'Y�$:1��QF/oTgcA�V)�3 I%��͙�?�xEX� +�%�]0�k�b�$1x������G4Ո-T���S~�{�`�F[� �gx�N8����e�1Q��Dt�ف"�o��/��;��4��e�O1�ƾ8�9��n�No ^�p�!K���г��h�^%����qJ��9�) t�kU��oڤ�Ęg��^ׯHs�¨$~�6VS��k�˗Ś>lY^�H{��)v��L*��+�mK�����8����O?�8���-��V���Q�U)��o�#��7A��������H����Gä��M�'�M�p���wz���1�If>K���ε�B�zA7���[�[X�����q�嗛�utϜ;U�����Q2���j�����b"g��K��.���&�IF���Cvr[��Խџ,���b�t�L&٧�8ű����g��t4Fob�%M/Iێ��ؕ3�)Ǽ��-����!;{���y�v����ؖI�t�\�ζ(Qi�gǗ�v|W=T �<�H�(��f�KA2 +�I�Ơ�F)�O7����̆I"S6��_K��sߩ���o��|r�TbU��O�T��*���e$,������'5� ����G?��1\P%�\EV�ЯJT��?XX���ٰ���Q�Qj�M?&�b��-�_%yw+�1�(� ��p`���ql��G{.�;s�hzӽ=A���_L���ȯZ���qZy~>��d�}3�a�P���K�����H�Q{��v;�� +ݍ�r��Z��TE���n�h�,ܪ��K��?)��@-ߖ�X�GǦ�<�C7�X+>��ƃ��p����<4"���遲 n8��Y拵��ӯXY�R��{4�g��)V�4e>��q�Y[IV����f�!6�`���1C:�$���Gγ�W���c�(e(\� +^�9̧UV�@in~�D��5���/6�{����8�G�$��Z]��MK��1�@�n݆U�5J�a�F��HT�~~�G�����V/m]�e�T�+I;�4�6T�7.��fzÀ�+B83������oլ�pp�]X�k��=��鈿r�Ns�+a�2̈�bͩ��@�F������(b�ܥ�]���X�'��̼�R�\�6�H�fS#���n���,r�H�"�k��wO\��F��2&�c½��<KWt�6��Џ�P�7F��WA�F�-�� ��o¹�<�A�qw��+4��3aH�Ƙ�!쮘;�~3W��"ƣy�ޭ��sCo}�v�m�)8��wa��[A;��da�Z�țP`P�4��>��scQ�ɉ#>���q�MzY��Zն�y�D���|я�&�ͬ��~-�Ѥ�1��|w�6�(��s�N�D�(�4{hj���D�NB����� ��|2�U|s���E�QU?k˒ *�-�������WTW�F�Ҍ���?i��)��|i7O�[�㭂)��|��A��nf����������@����5�f=�� ->V>ժ`9MT�|6��w!�!oNuR�UC6�7���ӑ+����:�rNޝ���ֹT�39�T0C�?��y�W�I�sK[�H�/�c���� +}���&�݃b����\��)c��e�����Gh��w��_m��~��R�/�>?0KV�taP$��ML����a �H�܁kF�Q��6�k�=�Yl7��Vd�}� c+���,F��%�TH��9�"g��;��Wna ��M'��n�Ǒ�ʹL���M�ɺ�]�"`-�"�C���+�|X�4�y;?)=��kr�Eu;F @ܽ���&� �A�#c�b]��~af���1+�(�������#n����������h-өʆl���S�Q>�A �"_w��u5��Ɉ{���� ۙ-����µ�;l�eZ���<��iл&c�j_�UU�_tQ��`M_+g��+��i�(��,6�FGhK¸��p� �bg{3U��=st��$��]�u0H ��n��IYvc~�F%l<�P�V���p���h ��w����5�A�Ě>�A���{Qr��rŇ�d�ܳD&j�����tY�w��V��P3_�%��p ��a% ���-��4Q/2p~�ۓġ?�\��%a7K��ř�5�t��A��P~ +��T�$�}���rs����Lmy�OY��;o-Ha������i��LS8���_G�m����0�ɛX�,'�j��{ƨhNP��ť��Ϲ�fe���R�'�0�vi������~�W��k�b�� +[�r�!������� �ȅq�&1F � F�SY�s;K���N���Fh�2V���Y��r( ����#<��1�,3��7�}� h,�kc��6cRtI��{^��H ��I؆�Th�ؔ3Cv״�5O�v$��_���f�8�NJ#pzP���rq���Y��Z� �-�/�f`m���~uC��*.�yԽ;g��#�{��5_���*i�l�2Ѷ�������$%4�F��7O5c��ֈj�%9 ,Sk,Q���O�f��9�>��e�:��*x)�'c3 +�DY���*�rL�8�?aR��.�:|&�Ø���V����%���t�Ȅ�����'�,�����CF��g~N�f^.C�+��O��dG�������ްq1&Dg�Һ�͒�8\�fP�d�?�PA ���ڎ�����:wY�){R�B��Bx���!$(#u����r���gP��S�u�G���d�>v�SVl� L���B����w[7� �o�����I���Ưw���g ��mB>�.W7+��Uz �w�6�Y����JFAu��}�u4���R�q��:���B�Nc)���g�$�ەH^�'���28p� +(^9��4 ��&�,��T�$[n��~%oD��r�}GH&����� �wp�y����Ü0�1҆�&z�]�Q��l����]���L���</��8:�Q�iSk���ȳ�����Y>��n� ���E��08(W@���P)t��2�;��u����pܔ�� n��ׅ7����S�V������R3o=5�w3���Re�!�/ӾJ�Ғ����;i��ЫPÆ�p�Y�-�M����P��9}�<����h���ƭ�LB +�6����wj��8r~\��#!<��l�X?��� ��Q�}YL�H_�k���&}Y�?/=�^LSd��]��dNPlu�Q�)��t���cjB���#l[L�D�@�7��/�p]�F��Mn�p��#�[/G0"y����k͏�OR)N���g�����w8`���e�/w��+����lF�J�S|K���4�h�����*N��rMȸ +�8�ݎ'����羚s.!xXy�٧�'eB$M�+v��m�\��]JR�%��G6!� ��4��jEF�4/>J$��k?���� ,q���o��c���嚕��h��U�+a/c*��;V~;�J���]�p���?�j�8)�Bd$qY��q��ՉhJ���[9>��l^{�W�rهj Ex6�`����X�����W�!D���d@���`���:ŀ����ISЀW�ͱ�I������p�aASb�Sy��;M�u��|�?o1٘@�*D��K^�2�M+�� �OԵ�l���t��q������ �s��V����W����������!�S�R������H�Q��������'?J��3��7gy��}.B!�)ۊ3�I������9|����V ��qẴ�7f�w~H�%��}��HD��?F����.�a��<�e��AxOwt� +�c��T1ŝx���t�r�qć��TW@��z�r���_T!ɪ2���^-�F�{�O�/EO�O��mՒ&˴�)���&֍5�(`D5����>�� ̮鎤1OR�����rfRFz"����8��h�~�;dX��P��H��f�/Iۖ]���Uc�xv4'�!��ݼz_�'i�S��5�0�n�E�g㺕S����ݍ-{�X[՟3�d0l�?�Pl�`Ce鲊0n"s&j���m9��-XV1pu�Y���zI�%�)��p�W�bP�5a�T'ϯ��W� +��QԶ��]��xl�Cm}����YA�7GK��}!�I-�� )&�W���լ}�_CՇi�`#[)��mF� ���.s3+I<�Ь�;��%Z g���"�/���L�)뗜��T�T]w�.Ac���')BintzD(�~e��Dq��N����:e�[�jmfD��pke�9�eډf���wnj��&"}�2�b�3��S\4���t�8 W0i\��/��'I�+5:��ؘ�2k��z ��I�����lmR�!�uT̘��TYP+f�@�����U�*+K靴εڜ�{�D�e_��H��6�wW��ؘ��W��g�K�P�� C�k��娾�yWHc�u5����N�T �L���(iVt���%V���i�t�rg��O�j����A�~ ��_��~�2�C��#r�I�U��Gl��G�E�N��E!�L�m;e��i?GI]O�a��Ք#�IL�>x���*ӷ���e�S��1�ݕ���8S�R�$�~K��j˸�a���"�E���|m������]E���$^m�Ca�B����im��c�Kn��p��ƧWi#��Q*�>���@_��N�-MFJ=2�\"�9*�4s���/�(/����z/��q+�s:������Q�����A�ե� �9hA��ۍ1�^��� 9�Y��}&J�}~�����S�?��;C���Od�5"Ro��oa�-ȩ���W�������@���Y�:�:*ǩ2�p��� ���������5��*�Tendstream endobj 2701 0 obj << /Type /Font /Subtype /Type1 -/Encoding 5529 0 R +/Encoding 5514 0 R /FirstChar 38 /LastChar 122 -/Widths 5530 0 R -/BaseFont /XUVWWZ+NimbusMonL-Bold +/Widths 5515 0 R +/BaseFont /CQJDQG+NimbusMonL-Bold /FontDescriptor 2699 0 R >> endobj 2699 0 obj << /Ascent 623 /CapHeight 552 /Descent -126 -/FontName /XUVWWZ+NimbusMonL-Bold +/FontName /CQJDQG+NimbusMonL-Bold /ItalicAngle 0 /StemV 101 /XHeight 439 @@ -23785,7 +23809,7 @@ endobj /CharSet (/ampersand/asterisk/hyphen/period/slash/zero/one/two/five/eight/colon/less/equal/greater/A/B/C/D/G/I/L/M/N/P/S/U/Z/underscore/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) /FontFile 2700 0 R >> endobj -5530 0 obj +5515 0 obj [600 0 0 0 600 0 0 600 600 600 600 600 600 0 0 600 0 0 600 0 600 0 600 600 600 0 0 600 600 600 600 0 0 600 0 600 0 0 600 600 600 0 600 0 0 600 0 600 0 0 0 0 600 0 0 0 0 600 0 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] endobj 2468 0 obj << @@ -23801,7 +23825,7 @@ x �w��zؽb�d�'g'3G��3�5�����u:[�8���z��WOs��˟���^i^Qg� �tw���09�ۚx��~%�w�U��l�� �@KGs[���+�+����g���ҽ�����_ѐ�������ւ���5���knK��ϰȀ- �6ֿ��.���\��mퟙ�{-������-�X!ί)��3���}"�$���o��'�j�_���<�+�����������}��^o@�瞱5q��k\��W����� �WG-����߿�2�&��" �|������o3�I -�4W9�Y,Ll_��/���h_��k[_�XY�S��ـ����7��k��r�U<������"�w����: ���@���R������������`b����px��|���Ѱ�s�`��r�2���^������_h$�f�?���l6��4���\_5����6���_c�͐� f��S�S�kJ��v���l_\�^��_����Wn�T��0����1{h��-K�3ԍkK�5 x�K�CAד��B��ð�bX��z��u�C~ F��UsgcTEհ� �x�����Ο�5���=��Yr���(����#����[����o_/`{� �� R � RG�;d +�4W9�Y,Ll_��/���h_��k[_�XY�S��ـ����7��k��r�U<������,�w����: ���@���R������������`b����px��|���Ѱ�s�`��r�2���^������_h$�f�?���l6��4���\_5����6���_c�͐� f��S�S�kJ��v���l_\�^��_����Wn�T��0����1{h��-K�3ԍkK�5 x�K�CAד��B��ð�bX��z��u�C~ F��UsgcTEհ� �x�����Ο�5���=��Yr���(����#����[����o_/`{� �� R � RG�;d �j�{�3lA��F��es�`Y�J=$~�H�Q��b��~��ۑ�!��(�Su���&��=_��s�g�&U�����&[�}���R��ga��>ɿ�6�n2�o�ӟ-˜ڷ"b�$J����T\�y����[9y� .6��fi���u���}���Z���=�'���jy�"d!���bM|겏���k�C�x�O~*J� ���/J�L4�_U��S��D\Ʃ�Z�^����H��zJP���f�3�˛g xa8n��T'fo/9�MQ�~⥻�/���E6���Ѡ�w=W l_ "����!LG��#��R�EvK�m��vd7��Y�F�n I�]�jq�Q/M<a�n��WC��c��P5MHlm���R?2���U^����4"�U"�� * �����{}8� ���wc�����L�h0��a�u�.ݭ�')�:B�e�EzN?�:5�oׇMf�{|-0ds���~�}�3<�=�2����QBT�k�}��D�mj��I;��:�V4Mگ�Q:))�p�*R� a�����h�o��ҟn��P�{Ɇ�0�v�q�Z�ĪK���ȳ�e�l.��ɒ����r���a�ş�yI�H��*"D���Q��|����L�t�|���އ���p%������~��n���TD:&[{0.���9���1�]@T�"�<�p�z�}A�/ ���V�_�4C�Y�';VAG(r@�������6A�m:t����m�Ѳؗ�cF�6.��ղ�o�W��t��#*W��I v�u�o� ˌ�R @@ -23828,23 +23852,23 @@ T ��|߭���A�Цba�aq'�i���:jgǔ��ۑɍzb�,����.���P���F���v��,�މ(��@5W|[�Q�p���y��aA8d��# ug¿n���gF��9�{+��DW�$<��J_�PL`��K~�+Cyu��;Ds�;S|��K�O� Tf�6)8蔯}�� ����MƕA�E:P'#Y���@�3�,���?�t.d���t�>�����F�d�lK�t���������)�We�a�yZH-��w)��*�M��i.윳���l�ml�%m��?�� �?Qn�o���S9G�I{���v����������c��;Z����)�l�`E䴡"/��b��C�X��Nz(g�����e�e�����!g�nz���x��BHͮׄ� ���<|ܐ>�S'�`uw>��P�>#v�ѩ���T6�<��r(֠_2`>����a\c�O8��mgQ������v�B���X"���ݱ�@��g����H�Ch$<��"���/&}.�H?֟U�c_���<�9D$(A- �ZS�Ӫ��v��֡4�u�=����)16t����M܊+^�a�ro^��N7�r�"��zV�$|&�� ���q�z\� �,���q�%�!u�2�=���k0��me!��3F�^���0a��`��97e N� \�H����N��q�� E7L<a���w�c0����)�Y�3����[���H&�J��j�$��8kom�E9k^���0��g9w�.}^s�`�y�!Zy�l֑��븭Cկ���R;�T�\�٦�빟��(��.Cз�{�Te�������S>�{���Y�"� -*�o*&�����A���O��M�!v&�6H����endstream +*�o*&�����A���O��M�!v&�6H�xﵚendstream endobj 2469 0 obj << /Type /Font /Subtype /Type1 -/Encoding 5529 0 R +/Encoding 5514 0 R /FirstChar 36 /LastChar 121 -/Widths 5531 0 R -/BaseFont /EVJMWN+NimbusMonL-ReguObli +/Widths 5516 0 R +/BaseFont /QLUGPJ+NimbusMonL-ReguObli /FontDescriptor 2467 0 R >> endobj 2467 0 obj << /Ascent 625 /CapHeight 557 /Descent -147 -/FontName /EVJMWN+NimbusMonL-ReguObli +/FontName /QLUGPJ+NimbusMonL-ReguObli /ItalicAngle -12 /StemV 43 /XHeight 426 @@ -23853,7 +23877,7 @@ endobj /CharSet (/dollar/quoteright/parenleft/parenright/comma/period/O/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/r/s/t/u/v/w/y) /FontFile 2468 0 R >> endobj -5531 0 obj +5516 0 obj [600 0 0 600 600 600 0 0 600 0 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 0 600 ] endobj 2195 0 obj << @@ -23868,7 +23892,7 @@ x ������ �>3@�� ���v0���cfee���KPP`��/ v����n`{��lO�`(�T��_ �����˟�L�..�B���s����p2?+���9�!p����� zj̓��4���ܡ�Al���g����j�� V��g�� �?6+��� -��N��Ț�OjOG�_ ��9��������;�}m ������w�z�����apq,m@.���ӑ������c�j����9�@.����߫�O�k ��{��]����TSS�{��w���SJ +��N��Ț�OjOG�_ ��9��������;�}m ������w�z�����apq,m@.���ӑ������c�j����9�@.����߫�O�k ��{��]���|#+/�/��w���SJ �D���/�`��pq=�)���߬���_Z�e�0��g���P*B!0��?Zz��_m����O� `�k����_ �b��3F�@>��==��v����C��9�\���R�����4q����b�tq�(c�?��l�=�&��������o��P+{0����Fg9��������/�-���` ��͟+����_��� � vv~:�� 0���BA0K�@��iD���6��A�p��N��S�����`0cq��i�U)I�ξ9�����գ+5/F�=�:R��]o��@�g�ak�r#dUdİX @@ -23897,23 +23921,23 @@ w_,vl 1���Q���Qў8�M~u�WG��k��_���dZ�4>�:?��B�%D^���������K�D;�T֝+�p�s�Z�q��Y_a{�53�h�yhc��A4�<玐j9�����?�E-�b� � e�<nvk��(�h_����A�P�����о��a[�W�KC��� �J;�/��?u��]�O>#q�y^�o�n�~���j%V#s��a 4�{��/���&ⳛd�e@"�Y�h��⩸\��\�z�[g�F��.s>7ϟE?v�]p�}b"a�/�kDz���7�v�}��QT(��?={�<f�2�� e��iH���i��T��j<��G\R�(��(^���E�3�q҇"&� �Y_1���q�23�>����ٹ�/I�>E舺KC\��7���1��3�� ��ڥD�U~�x�mL�_���0�f��-:4�^�l2�{s$t(�c��z�� \�8�M;�֪K[�!��7�U6�X���2Mp2p�*��TQ�$B@M*ê�kN�.��� �g�_������P9?Sq�r����s���-dfj�)ڵ&����H����^� �����B��c.�8 ���g��u����4�����H�x?�L���z���[ԙ��l�gʋ������8QE��`�$�d�J�~�$̙��U��S��'���B�C�p��w��,��������D�4�F(�D���~�[���u�@Dn�/fV���YJ:ig��s�c�ҧ� ���I�1������sYZ����w�N���C8�5*���\�)�4��ʍtbޱ�� �n���,�'xV�ɤ6��n�*����{���s�Ѧ���ث�8twس�{wf<��K������?�]��8���hoi�[��sU7�� g)l >H�����Nޠ�PD��D��\U I6=H`�a�n��)W�c���U�Iy�%����[?��#f�c-?��əsF�ɕm�?�<Ѧ������}�u�E�o�Ϋ%�I�H�s�����I̩Ԣ�B���C�l�a����ק|V�K��F��Q�A�]~b��ּi)6٥��biݰ2O�5L��˵`lN�Y� �im�cYz��Qz|J�*��p� �r.�!<Ը��ke�U��ݢzA�lL<l# -1t��g5$I�)��)=��¢p�מ.�2/�:F'hĸ7�b���䠔C��W�s9s���n�##�Wc��lev�?y���d��;�n�n�L��x�R�ܮ��J�}đP�W[��� ���}�u�É�����9����`���'@�`s���n�� ;����y���&�3�endstream +1t��g5$I�)��)=��¢p�מ.�2/�:F'hĸ7�b���䠔C��W�s9s���n�##�Wc��lev�?y���d��;�n�n�L��x�R�ܮ��J�}đP�W[��� ���}�u�É�����9����`���'@�`s���n�� ;����y�����3�endstream endobj 2196 0 obj << /Type /Font /Subtype /Type1 -/Encoding 5529 0 R +/Encoding 5514 0 R /FirstChar 2 /LastChar 122 -/Widths 5532 0 R -/BaseFont /ANNNFU+NimbusSanL-ReguItal +/Widths 5517 0 R +/BaseFont /UEGGXE+NimbusSanL-ReguItal /FontDescriptor 2194 0 R >> endobj 2194 0 obj << /Ascent 712 /CapHeight 712 /Descent -213 -/FontName /ANNNFU+NimbusSanL-ReguItal +/FontName /UEGGXE+NimbusSanL-ReguItal /ItalicAngle -12 /StemV 88 /XHeight 523 @@ -23922,7 +23946,7 @@ endobj /CharSet (/fi/quoteright/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/A/B/C/D/G/K/L/M/N/O/P/Q/R/S/T/U/W/underscore/a/b/c/d/e/f/g/h/i/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) /FontFile 2195 0 R >> endobj -5532 0 obj +5517 0 obj [500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 0 0 0 0 0 333 278 0 556 556 556 556 556 556 556 556 556 556 0 0 0 0 0 0 0 667 667 722 722 0 0 778 0 0 0 667 556 833 722 778 667 778 722 667 611 722 0 944 0 0 0 0 0 0 0 556 0 556 556 500 556 556 278 556 556 222 0 0 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 ] endobj 2182 0 obj << @@ -23933,80 +23957,67 @@ endobj /Filter /FlateDecode >> stream -x��{U\�_�%�Npwww���N�Vx�`�]�Cpww ���2�w���}�i��7U�9k�o���٧ފ�BM�E��� ��p�����-��4�AJ,�w�? �9 �����!� -0�@���?���;���+9';9� ;� ǟ5;�?�\��\��N>�j�0���CI;Y�;@`Mwgg �J����j p$��S�f%�rr�v���5t�����p�[x��!��m@��'�2���������+V��\� -��]rz[0�Y������cu�f�l -�YI99�%����g�@W�埦����7{��'��?`k ��o-Y�;�i��.���� -�!����y�9��9�.��/K[��Rjy;�Fr�����|���ɭ���~@k������������߉��C�� �Z��-�6��_�`������`W��!;+;;9�_���������_�*��r6U)ee}}����Q��N$Y8���Y8�y�L�E�W�����o��9��d����ډ\������-y�\���&9��Ƙ����8����r���;�������G����`�{Yw���B�w;����F�D��#��n�t��^��@]�ߧ�����6w�ZJ�l�i�M��R�-m�>.�p��o������&��p�p��e��������(����Rʀ,��� rM�4w��'�m����Ǟ�Пw����)��X"�,:Y -}�����X+A�ɲ��k�W���;7R��+T� -�}w�J��ڸ�h�!�24dX<�L����d+<v(�|$�)k��� �%����aB4~Z���EŽ>���$�f�N�ɣ����*iEa���"���s��� ��X�4�]px�Ǟ�'���ͧ�U]Xf����<�arH��K"�2>����g�����1�B��\��k�C��Q�K�M�+�L���pIC�1�Ȯ�kX�;-���T\{���%�5��/w�(um���I>z|�J�lP�j�5%��٨niq�<hw]�J$��Ԉ6���u {y=��0z/�t���9gh��� dB7�4d=�j���=Īw�]dz��m� {�����v&�,�E�dh���9���YWQuչc}�5�#ؚ�������ɩ�O�*; -��̓�B0 -���Ǯ�X�謉��L���3Ϥ��nR��3Q*���ٓ�.��ûp��#�kL�8����3R)�\�>P�õ��<o��������5˂:�F>��� �r�"����w]�S��4[�<P�D v͏9Tq�Jav/>�D��r$��dK��Y��r4�#Ђ(z̥lu��7�:�0���+,T�72�d�S�X��*�S��4Yk$�UIm�e���(����m9���o9w*�}�˄����t�!�a�%wC#�`����o���{����)������w��'1=Q6Ђ�|T-���b.�7Ʉ��ے��?Pr�R$�8XW�5YD&��u~o -��ieKB��z2��1��sb�njh�L��y��}�d���cO[ -��� -E���'���u�O�8�����ା����y1�_'揰l���r�}5s�K����fp��V�ZZ���dV٨e3�B�j�`f��@��XҸ�冷���OĞ��:��S��]8T|Ʈ�a��ѐ�[��ŌQ� *96 -�����0����p�r�~�Q���29Ȇ7�;VU�7��Wk��8�� -ͭc����ʱXps���P���D<�����B�:�eU��b�K�{���,�������V�TT��0kP���k,r��/�Y��%�Q=fqK�#M��aG_���sʪ`�Pv�x -�N���F�[l�|"����^���\ɸ+��,��ö����� �R�ʖL���5Q~Rh���*ϑ�)��Κ�IEIE�����T��tлAxU��\�B4��g��뎑��e� �q����]�R?*p��N�|{�,�r����J4���,�����"(��� -��` -Km��c����P�A2���%�a��*��f-�0���d�mb|����$̣�p4��Q��&/F�^��� ���ןWi���ۤ`H�;�% ���7g_R+���=pR�C[��t4MR���:�s�xf�������+@_K���\j�<@6�V��!��x9Pd�z�b�P�h"d����א�g�B{�1�gW��PJ��K6��}9n�5�P>��52�e�y����}��Ҽ�@�\��g.SW�-��%�3[**&y��+цS��`��4��^��<H�fN��IL�P�z���g��!�cIn��{�4�M;J�j7#�w�o�S>���hP5��8��w+�*k�q?��2Z�yV�2fS� �KS��Ȩfb�w��ı�e�B�E��9����v��3�;ɿѲ��$��=k�3��Q��]Q~� �;z���-" f ����3��F��}�ki��-%��U<��PR��%�Q�N ��z�@E4�_?%A 6�a ���Acq�<�a����O�#����ۘ@�{9oQ���T♤�{�B���ةB�U�<�dž��� -S����ߊ�/˟�*q�)<�P�>2���o�Va�Ō��f>��"n~CE���p���h�ʎg�D���>~ª��0��Ԩp�H�O��̼�E�<,!�H� -�2~ܲ�K�s��ƀ�۪'T�PuمF�wPq�߃UOW���x�n4��h�����G�2��3W4���U������A|<�T�<6�����鹛Omaw�-���!���r�v/Kt�F���T�˧�-d�8㜀H���B -�Y����ދ���,������&f���Se2��mz�1���;�Q,$09-�K�iy�J{F����j:�:y2+����r@�;� �ǝo,����2�]H���G �IS�����ٸ`�О�7$q�;a�,��Ͻ3o�8ھ���#���?ᢳ���_L�$5�u/vN�(=eI8h:~�β�v��B̨�-����� ���n�U��)�O��c�V}���eg����%JO������&\�\�kWf�.��7~�X�yb4�b�˗p���<�$Ʌ�Q��x����� -(F��]�/��5Z592���-��� c�1�F��t��Ͱ�=�6<���*� -��H%�#�tx��������EMd�6����Y���s�|Ae�|kŪ� ��G��\F�-�����-4��`��/.�x ����h����G<Yi!����;Ri�֤������g{FB.��1�Z^�@V2���Z����?��;��K�����7 ���`�}Lj�W.tß�t���+���{ә�i�Ȉ�|Mk��\F<o���4���d8�nK�Q?"��ū�|�F^8��Im뜇�}�arf��Z����L�`�O �EJ����b��#tqejW��sKk��9��2-zp�ڶ,��y�f�!�>7�d���*?�^�F.�:q�XF���D�l�w��I�⁺���,����"�)V���%�r�,<e�淧T��[�h9Ȳ�س%[�d�<B�DrRf��/8'O��������t@B�1 +*���Ϙ4��|���>b*�ްr=v��'�k[&I���&[-�?1 *�ζ��]�7�ؑ�]B�9�cC�=�1�}}s�r�D�ܹA��BD�H����U�"��cLh��m�wS�T�����!�ͅ�K��2�N�����)���oK����a�`��_�V�P"G�f-��[ۘ��G�ͼ�H�&|t�=��-��Dx�H�J�%�U��qI��Hӈo�}�L���U0����m��Q�<)�W���&�p������(�����o��� 4�j!��~>�s %z��?f�j�0[��.]Z?r��E�^�*��1�ɐ$���G�y�ذ#z�q.�M��-����t�e�I�т�_�b�����*M�7�|��?8����B!��)qI��`�,]4P��c^��J.�x$��)'�Ȁ5u!b��3 -P���Q5�2�0k)��{�1��ߌ���}o }��bҭ��/��؉�ܟ��/wĞ�;�D�X�!��䆎ٸ�+�ٯ0���� -l�-���C*ӯ˲Ӏ���S�Z��;�4�� EZld8����a�DY$͘��G���f.ϊ5�u�,�\)�܌&\���9Q�K1):s �Sd� 0��=\�4����M� -�2��Z�Ŝ�MD��zˮP+ -��Ԃ& !Ù5��Y��o����nD��U��� -#��c�Z�vŧ�F3C�`\.� �]�H��{NZhM����`:hv����T�k����C��1e*�#9���2EW�H[�5�i �/�h��' -E��JW�{R[���jv��`Y$������u%���t�\�����w����>RlM�𐔚F:��$WQ-/oْu����L�0ƺɈ��遷��p��|�f���ǣ���g�{{�ઽ�����<[�����em�tx%J�9���Ec�$u.=趀��̟�5��EOu��C:j�x�c1� -�&�^zL��BG\L�_V�\�=I���%��V]��{�?���XS�1�A���W�4<� (b:N�+u �+:�X�BZ�:z���u/�d8>o*�u�::��rx�����~^0fx�ȬQ`>���O9�;�Z��1GJ� � �f~���E^'�dK�v��oeo���Y��r���C,AA_�x��(� ���O��1ą��{�E��n���B�B��{�����N./�>{e��J���qG٣iTl�R��� ��z�x��%�������sP8I�3_�(���J����Ee�K�(�#N�[�͙E�5E���|��7�WŪ�5|RUpL�������Q3��`�ӓ��%z���z��lƺ��rm\a��XM����[���;T���S�R���v�n���qf(Y�3���.?�Q`t$���Ֆ?7��:�A�7�!�R2q�"�/%��Tر's{��*i�~�X��i"~n;9Z -���Q�s�>N|5�#H�H1I�4F���n�[%�Z�����7���=��w��IN_��W��ʐ"C�!^(�$?�M�(��:r����#Q��f9g"�LE��qt"Z��s{��)\�$huW҈���l������pI7�e�;����=���'�nB��-*ITFhQy-��;��]�vF&�u��G�6�K�&�'�Gu�:.{���'��-8wcS�[��# �i_�d��Z`p�*Լ�����Ww�=,� >�|�J�)a^Q6v� U��J{�͌�VP��=Ⱥ+� ��B��U5 �T~y��G`��@�aK�U��~�0Ip��b�R����L�}v�t�H^*��9���&;|����C+�� L*�{�����(a�2^�^�2��Fh�w�2��R6e�Ixبo<i��<�ԕYN�d~�p`G�: o� w���sI��MZ -�\�meZ]�Ӄ=W"P40Ἄ�%�[�I���Md�%��ƅk+��1&W`�����o�����)PQ����5���Ҙ=G�ؙP�^�1�gz֛d��a~�x�E(OX����6��4��W�Y�������>�%IX�]j_Y�}�UܧNƶ|P���T�n��^�K���zY�k1M���}��+��%}>m�Sƻv���G��*� b}E��wD���eqYK����B�<�8?����HNp�sy�0����'8����nGe���1�����ɩ`I˛S�)��P�ѴƧ��������L��Y��Gb�.���X�e�=gK�����LW ���7#ba��M�cCߪ�Ms,o��B4�Ye ��MG�_op�L *e�2 -��x\2���y���k��"W��1�7Y�^{ܨKt���=�.�E��(���5 -���4�C����7d�j�[hi�xH�ĝ~��o�4��I�r+��C�^]ȍ����d�ݺ)���P\� -Yk9���=</�z���!o�X1K<.`�U��C"��.=َ"�V�n��r����<��T �ׁ�����bZߛ+�ۿ�s{5n���<�k��qy�2����#�*mD��"�4[ؼ�`�߇�|1pՒ�p�ϣ�)[_�9F&}����υ��E��iH�����d� �"(O�2}�#�aޗ���/��L=����\;�ia:�1�+Cq�AY�S���M��|V�|�ic?EZ���T'��2Ñ>X���ǭ�~ -h�^�Z�дs�Q�˩H�{��Q��o;S�lM�)��&UJ��hD@�ru������w�t�Q9����j�Oa���CX���-�����Uw���ͼ�FK�x o��@�^�|�O������b�&�ˌ��})�]� �]��»��m��Ռ�7h��,_�`i��u�<Џ8�a�ʤa+j����d�:y&��el|i���D�A�0Pw��4��Lj!��Rª^o��ۇ���ޢM����P�F5�ʔH���:��V�д -EĒ���9l,��I����E>3���a���"�s����&z1�1���{/��gˌ>�AJN���,}�������,ƣX��G�<�a�a��eF�q�b��q��x�/� mڞ�)O�^%-�?��cV�_�v�gTi}^�j�cb5܀�J(�=�j���k���!�:�be������GW��(����/S�'t*6�}`1GEX����7�3���"�?����>[��e����z� -&|�:?��יH��8+�zҡ�OV��dUH�JE�)��F�w/��3�3_?�:h��;;��pDʷ -L�qe��ӭ��c�g|@-��k4Go*�!÷|��߿�F�>���ٖ&�}���@hA뷙�Ko�S�"�H���'C���ʫp[�*��d�[:6�w�֩�S�U��HP��F�M�D�t�����Ubv���R -����S�|nJ��)�H����X��ᒌ�=�*��V^��������J�2���{'6�v��W$)��5�C��^ԛ����%|B���6�����$�m<&��O[M����_յm�2���>�n��MkC�S$` ?{[�vY Q$�U0w��˓��U���B�Ǻ8 �g�F@�[�ȷړ�_!G� -|_W:���Q���� �.�Գ/���ͺ�'{�"���j��/YQw��P�&�5��s�Pm�]tTz����#���y����'�ϻk%��V�*��f� -�'��i��/���(�Ç�}O�����A��X��$���7 -�&�f�5��6��/e�m��}�4�>�[u@����˓m�5�[ɔN��|�0�A4��7����9�a�#[%�����]���j��;A��h ߀���U��@PX��h>����z���z^@U�MZ����S��p�9|�P���4��{!#rJ�>߃ٲP;n"��0Bt�����uRO72X|�4m�'�cQ���G��t�ܝ`� ������i�_>�O+��+E"��.��h�-%�1�0�D*����6?.��=h��;�N�ĵ���и6+�oQ��F6GQ�!j��.�V ev(���^g -�D��M%�ݛ#�T-@4�� �{h�ք_���rF� �����F�9D��$G�p�Sl� -�,w:���c&jX"�-����b�;/�}�퐶RF�ܝS�ƍ;T[j��p��k93�#ݱ���TX]1f,��H�<�[�!�+����ZTp�(x�����,����tڻ!�톒��c+ޯ?�{զ�:X%�����o�?����,/0#b���k�Y-�u�wv�j��B犯<ybY�D�ʚAFNÏa�����@�{M���7�Ĉ@S�Rd�=9��s"����V�.��]���O�j�O�6�x#��+�2�qo�_-�%�<��O �!Zζ��MZs���<���0�S?Б�y��]�ֿ�E[��@^u�h�� �g�Q�8�"˸���z�����~���k[���������f������t9d��%�,�x����7|��B9]���,�'�*8���3������'O �����Ѯ���4n�H�O�秂H -����m��p�V�(ߠ��m���s������S6����IТ�^��|*)5)ś�v�o�͛3=l�� ��ϴ�N�n��E�hȷ�\ -Z�������"�D���ž�G�EM�)-S����L�$�X�� -,��[���<�2�֚�i�����|��Y"e}j��2�������h ��E��rk��H"w�$܊�FV��Zb�W��1A�9�!:r�Y�� w*�k�q�A/�3��ފ]A!r��M#m/�_��/��iw)i1�y~)�d}Ce�JT��́����L�0j��շ�th�S�JهM�f�x�ڳ���.���M��\Ͷ���4��g�]�E5L��Wc��w2��_~��f�@y\�'z2U��!��XR���Xݕ�_8:�M([c����2�w1�m-�mU��V�k�t1铍H ���]fR�Ҟ^����l�/�ʸ��0ؤ�M�N\�%BF�}� ��ܴ曆�X����pQ�Y�s�G�t[��������[�D�#K��v�� ����~�܄9��1�o����p"V}�@�,hK ��;���b���H+�ZKC��,�"+m't.�����e��W�8������Ś�ţkzj�G:t��-� -�\�&8̸�v�mՓ�a�+�ǒ(� �n��_���_��V\�爰?����$ 1���Ky���~�� cMH���b'��M7�/�{�`�����d�B!���v�ӞKF�HWe�f��jʛs��dA�.2�8j���133�{���Y6�H�lN|������~�Qk`�7Ƅ3�Υ:\iϮS5�v��;�"��:��^�4�H=�X/Rmڗ�D>�5^ㆣa&`j��a��ĘB������g٧���TC�qʉ��䨯�\{t`�h����T��g(����ݧ~R�iH/�������4qj�i�d�˳ /���n+`���S���dZ�y҉���� -S���.��OI�>o��<JH�~\���q�'M' ���'9F�{����92B����k��{.~��w�F�8h��b�p�Ng�� ��w���%����Y�[�KA��q&2<kȚ�Ќ�2��D;�fg�h����1�[��XQ��Ik��7�"�|-��4�+� �m�a�.c@�j ��LB�⢛���&\�[�7��uB���LX�2ATbxUR�,8�H�i���W��a�N���^��"= -v��v��N=�0������]@�����.i����.M����)�P)q }E`�A��������p���z(����l�yH�z�� J�G���,8��YV��o����.��@�#�e��E��4�v�5��C!�K��6poC��kL�ô,����.�䏉u��Xk�C�u�s?����Ķ:�l���T�d�J �X���C��&��'���HGqy0����֠�֖��X��.����xc(�b��6�D�~�%gY -⣊�3��Ր�%�Q�������R��M��!җm����7W�4F������R���ܖ�w��/���^P�ʪ��+TO�f��x��,-��q(��Y96>41���;���M=ƻ�ON��T��v|22��0l<p[�v�����=k8���R���q��ѭ�rW.xx����� -����9G��2��~�®�3B��G��f�.�ʼA:������"V���e/93��$^yZ�"<�VF���� rvm��+�0�P\\��U�6K��j�^����=����Y�D��Rxb}PS� -���l�{m$-nE6��u(ħ=fe��!|^�E���/�7���^O�Ԅ�X!�~1�ڨ[��8U���e���Uܪ��(9�:���~�=:��Eh��cu�I�U�(3}t -z�̵Wj0������b��Y�P�3���Y�> ���+5]�iWB��I䲟�7�L��4-�/��=�Dٍ�ܽ���\�aT�s0Ɠs���a1�q�.��*� O�� -[�����#��[ǧ��T/.j;�G�f������x��� -����U�6$hhN�N7�Ў�XE�u�E*3d���D#*���ľ[[~t03Dz�����b��ҫ[r G?9uU�~P═�v����6��iƔ��P�x�k��7,3d�:������, 0<<s���?%��G�d룓<�ʗ�8XycP��K[>x'bZ,ѐ�[X�;u�ǰ�1h4WZw0ָ��qG4�QQU���Ʀ�4�oz'z��W27Z͆)"�eo%]2H�����s���$N�����l�������>><�m����^/e�K\1h'M6 ��3��UҔ��} �k/����Cс�|�>{�V�Ԣԁ�C%���s.��\O�2��|��Aw _C� ��ꅜ�z�ѵ���G��&����� ��r�64�����|���<��JI}Q���E���=�MF������+��5�n�����_�cIN�5Q��ۚhk�~V��G�X�VRN�C��4���,Mٸ�U_b�>٩�%���&TM&A��H�pZ6���l�7��Z\�Y^C�ڭ0���/V�6O�6�|�yl��$��}�t/�&�+Q M�W��[s�2��ߴ"���ҋ/�'��_k*`�7��2����K�7V�8kL�A����b�)��^�˶.�CA#��g]&6>�j�$n�UT*" 1���������D,�e ���oJ0,LzqNɆVb9��\�@'���M4�������b�2gG*�f�,J&Ɏ�),6��}(nT[F�K�Yڃ�Iԭ����,,<bp��/-�OFq�/*�[��w��ͨ.��%���Sn�+���2�}�:��u�^����/7�|��GQW3��o�~��N�\�XZb�>j(?��|�2��p�/ -w�P$�,h�'-���o�t�?���PtϮ�/GP�,��4���[����B�C�ao�{�Z��6�<�|��JB�8Vm�iª��i�=�m��Cm̳��6�h����Ă��wǕ"�Gϊox������+�0�.��/k�����J����="v3Q���7Sq���(��X7WB��К��5P%�Ew$}�H�\�ճ�4�}I_�*��r�-��Q<��]t�L�vk[�h�y�����S��}.�&>7X�����V�י�ޑk�[�����{��S�Cwv.��8(}���P�dlit�7N���DHo��=��rq������E�*=vgx��N{�C�M7����O�g3#�S�EgZ��G�ec�IZ+�@ �i��n�Z��^� �T-���.�u.x��]��EK��������t+��ϙg�뺴��0�sp�UY!������}�1���]����� x�4���U/E��1���J.���.��%�1pƏa��&�͜b�8)� c��6l�"� �����V��;t������������ER�O�+�Kx���n���l� Y�IQ-l -k;:COh�RӶ����E���%��0#W�ǧ`�*j���fe0z�sV*B1�ŖFǢ����P�(Ӻ�փ.@�H�!�MSā�!�gIm��ORpp�W�3����-k1���-̌�t�$���Έ�x�'���� ����A���OX:��]�N���H���7���_@�_�@�endstream +x��{U\�_�%�Npwww� �ݡ�B ++<x���Npww ���2�w���}�i��7U�9k�o���٧ފ�BU�E��� ��p�������\5�@J,��k7�? � �&l��!�0A�f�?������9';9� ;� ǟ5;�?]�U]�����0���CI;Z�9�@` 7''{ �R����bp$��S�f%�rt�rZۀ���u�����p��{��!���A���{G��2�����.���+V��L���]rz0�I������cu�b�l +�YJ9:�%����g�@�ş�����7;����?`+ ��o-Y�9�i���n��� +�!����y�9��9����O��Rjz9�Fr���,}}��ȭ��]�@+������;������߉��C�� �Z������_�`�����f`�'�;+;;9�_������#���_�*f�r6Yuy)e����Q���$Y8���Y8�y�L�E�W�����o����d����ʑ\������-�\\��&9��Ƙ����8���r���!;�������G����`�{Y7{���B�w;����J�D��#�f.�n�����^��@�ߧ�����6�ZH����i�U� �T�-l�>.�p��o���� +��&��p�p��i��\]����(����Rʀ,-� kr �4s��'�m����Ǟ�Пw����)��X �,:Z}�����X+A�����k�W���7R�=�+T� +�]w�r��긍h��24dh�L4����d+<v�|�)k��� �%����a|~jװ�EŽ���$�F�#�?ɣ����'8"Ҋ�*�O����A�������Ǻ��m��R�?�4�<�}�Gn>}����2]X�D���C�_��� vO�p>۔wX=9�|�2rZc*$�l^�9h�Z�d��ÄK*��Av�[�"H�i�����س<�,���~��D��h]���zO:���W�f��Vo�ec� ���Z�pK���A��ZG"~g�z$���w�K���Xu��Y�{ɦ�X�9C�8�h ����.�.W���.V���2�ůesnУ���y�3!gh�}(:�%C�dž���κ������1�֜(�U~�'HN�|JV�QBd�t��Q��>v���hEgM�I�`���y&��"p��<���R��=Ϟdz�Zօp[]c������J�J���W��y�ie��~臐�Y�N0��Ok4wj�����ջ�Z((��b��ҩ�*�*D �{k|̡�MsP +�}��F&���#i�$[:,�T����D�%`.e�cE�A|Ў��%\a����� �����mWP�RL��Z+� 1�J,h�,��C �E��!nˉ {5���S1��Y&4�t�� �-�"W��o~+��avgO��fGnn��ф?�銪��d��ڠj��s��I��ݖ |7���+�,)���*��"2�6��{S�w�W3[zطԃ�͕g�ڈ�?zDkg�����&c�.�x�R�<�Vz=���̭#>��������zƧ�c���P�Ͼ��?B��zP����~��� ,�c�c�(ۛA�B���Yk�O���Ye��!��Ń�k�qjc��>�:"��?{��g�*N�w�P��0����F�oY��G��%���(�c;��~"ôg��j����Y��G�j,ʤ@k� _�OJ��T����X��Uh�[�%Uł�#w��߄�m&��dVr��.�R>;\����d1��$o���� +>�Z��$t]b�~}�Ȣ�,9��1�]��i�u;:����K�SV눲C��S��p�p7��b��Y.������J�]��b����@�p?oG�ד:W�`*nF�����Bc�yUy�h�L�?�rҠ}H,J,ʽ/�إ�>��� īғ������<�sYw���.s�����O�����2��Q���f��ؓ�e)=���n.�U����d����A��N�V��SXj��S~p_%��� ��ml�-�!ѩr�l:��r���3|r�0�&�J���<Zuc�%[lB�b����:�М3i�~�y�:>��u2�ĸ��X���x�Q�%��J���U�H[�89��;���g���k��=�I1����Q��Qݽ�ͥ��d�Oՙ)L��=E�+�U���@V��7h ���p��*�S~v�N�$��dc�ۇ��N�+壬\#�[����{�h�k.�[s���z�25E�r��Xӥ�b�w.��q-�O��TfY�8����)�;ɀI{��R����L~2$~,� �{O�� �nG�]��`�A�����|�[2 ����{�n%He�?�Ӱ@zK;��Z�l�B��zi���L��NC֔8���C`���;�.xp��2cf�'�7ZV���аG�}�`z����e�N��ѫ9mm�h�܄���Y�5�h��]Kە�h�9���A��"{uH.���4j�\�C8*����) j�)�.�s������v~���5��F���y�Z��T��$u�[��.��L�B�)<6�~��W��$$��V�zY��P�MH所������pS� +S,fT(\60��������q�*��M�=�9>�x�@�gvc(w%������Ve'�Q&{`��M#e>�+3�^$1�L�+T4��q�Z/�yn*6n��P ��e��A�5~V=<]�w����ػ���a�N�D�\ѐ�Wm�q�q#��x:)�ylr�����s7��B�[}����Y�l_�� �)fM} ++�f7�%�u�#-��m +.f�Î|/�nH����?X��)�cO�ɸ,���F�� �0D1����*����/(��^��nl��ɨ�����q�`��w���XQ��t�u!M&l�\'M�ʯ�gc�\K@{�ߐ���ų�G��μ��h��f�`PӋ����"F�z1&��` �9M���%����:�Vڝw�1��s��Rӣ�m`'(���y�VM��h6Y�W��Z�y�WpD㗭a��(=}_�[���p�r�m�9�Ԯ���b���Њ�._��k�y�I�3�B�т_�wP�n��_��kԧ��кG��dd�������x�{�9L$W���۰�zL�X*��#�h�`��= Ol�:�o84�۔HGȦz�N���������dJIFr�e�L۷������P�z�:���+��QB�Ѵ��x��B2;�w��|���^q����v��\�Oc�����d��#ܵLK�M/�<�wH���+g{o�j��yA0��'�\�?�$�1��W>=;�Mg�����"#��1���Ju�A�3�h~.��l\\@�.�D��ptT���y�PT%'��s��ٚɉ�{Jy��3Q�Y?��')|�u}���+���h�[Z����Q�CV6�`1���P��p�%#�V��ivJ�0r�� �hF2:�g}'��Ƚ�o�H��E$��Y|U7�AL�:\6O��#� � ([U�=��J��h��F�A�Ş-ق&�(��`G���2�}�9y���7��|�蔦2R�IhQ���/|F�����ό��S�v��1������b0�H�fW5w��ݪ�~ ���w6]�nZ��Ď��l����z�츌����ۖ�~( ��� ��"ڿ@��%��ZATcBs�_h ���8�,���%�m.�]���avZ��g�M�f�-}���� �[Х��ʴ�t�q?�7�hA�g��Ɯ=bo�ŨE"H�0�s����l�h��&£�hHɀP�-�r���K*�G@�J|�h��d�[4��Aߧ�l���*�A��:�8�:�;�@ąnJ1`���%h�n6H�AW!���Y�}p�k���1�0�W��ڠ|w�����l��Uam��u�$�Ť��[ņU(�ˌSY0n�\La�_ܦS-C�L��&�p�J�e�X^Giʮ�\�˼ݩ���� +�5 ��K���g����!� +�0&�җVr��=�LN9�F���Ԟ^�"�_��������Y+H�����f�t ��sK��?�f5mw�l�N������Co��#��A;B�J�ɹ'7d��9Ny��n���9��P@�ly�OmR��~��Ս����^�٬��~N(�bC�y%�ts$�"i��>�Oyof�q��PÙ�we��J!f�4a��`��2�^�q���K��"�;�q��B�!��zoU���,��,�|nZ�]�[v��XQg��&4i0ά1�����|[?_uw#BD��r�y&��d��j�����a�Q� �L��ZJv="�G6�9i��Ovޏx�Ё�#�ߏ��Y��%���G�(Sx�G����+�JG�ڭ`�MaG��&;R(چWj��ޓB�X��T�+��"9���?�Į�(I�g���~��������-��T�I�a���Ob����-Y��._9��ʹ c���Ȟ^�p���Nψ�t[�x�r��qoo\���a�U�b�g+}�: +"��� ��Di5��"z�h��ۖ���;�p�C����n]~H[��UF_!�d�K�Ih�\Ȉ�1�� +����!I¡����D�m����3x��Gf�����9p�M�=H�"��$��R�โ���e-�e��G~��\�I&��˦�\Q!����-�����{�P4��#�G���3�~��#�ӡ���s��0ߐk�w�OZ�p�H��Dl�,��V�֞��e-��m���5�w:�2��A.>�z�� C\�9���A�7���V<�0-�-�J����/�_0�m����W&ɩĚPw���F��)Eοr�ά'��g.�~n��u��R���G��2���W�d-%�*c�]�D������b���KM�),��+����*VŬ�~7���n�|5%���B8>��Z��o]}����'h�f���*���&n�ѰM�I�eA���A�)�h�tB��P�N� ��6�%���z}��k� +���@�عڒ����X'C ��=dTJ"N\��$�� +;�dn�V@%-@�̉�o�&�'ᶓ������?'�b�W�0e�EM���ּTb���hk�x���~gX���U���J�)2$m��%��O�ޤ��L�#�*9d���7�s&"�T�G'�T�=��GM�4NWw% � !�L���n?��tS_湁K�߳*�)qb�&d�\#E�`����r����ߕ^kgd��]�9q$`{`S=�j`R@y��pTG��a��h�{�)قs'�ֵQ�u<bv����� +���@�W�����@�ꮚ��E�����B���aec�P��8�ԱG���lA���R�ͥ{]�P��M�ǐ7��~�} �`h�r& ��[�_jq�� ��.���K�7�S��d�:���gE>��)@�x��?��%��K�+ڋ_�� �j]&�^��lV�4 Y��'�R����2ˉ������\g����e����v.�ҸI�B�~��L��q|��J��ğ�q�d}?" �~z㰎����U�pi�C�0���FԦ�y��m���iޑ��/��_�U-��s����U�I-y�k�I����q��W�[���5���js�(=ř��;�Z�=1�iP����֕��Y�}��$l�z�K� �v��*�$u�ȗս�xh����W��R���W���<e�k��|�L����(�8���E.��Z�d^�j�AH�����Oՙ#9AN��ܫ���(� +���aw�vǘ_���N&��x$-nN��ԷO@Ɇ��k��7 ��03��Cd1�� �;���b��a��-��d�-3]q4�V���n�a�7�� ~|��3ɱ�m�kV�f����F7�|�� 4!��ML/�ג�qNB��U@��� +0�X):�t۸/�fa{�q�.�>(����\�2���Q��ޫrͅj܇,�Ug��o� +����T?q���=�8G�ri ~���V��+�T#��� y�38�@�uU�C���$��r�1D�{x^l�x7�C�&x�b�x\�³x��D^�Mz�E���x�����!&>y���_OZ�S4㧳IML\o�,o�"8X��ըI�2�h����s0��I��:��̫�!}��d?�ta����_ +����UK:�M>����qL]�~������&~|?��W���!��CҚp +��7���<�b�����g�Y_�2����3�����/�p�8��l�i���.d���e]�%��7��Y�C������c7S�lw,�GzL`�Fco�j�(�erX!ky|���G���"5��JG #R�mM��58����>Q"�GA :��ӧ���d�J�����$>ɮx6�m8��%~O۲��!X]_u������n�p�S��n����7�Y8hb�+zm���G�<�e��ӥ�,��*�Fa�\�(z�VI��r�)(K7o�S�~�� �[& [Q;0ܨ;��^e@%��#�F8Z(}�k;� 'j����{$��Ĥ9-<�����2x3P|^ޔ]�v�mz���w�5�B�L�t�͐��xn�� L�PD,(k�BǢ���D*���_�3��kV`�ͰQ+B^;u���8�b��}?+��BQ������hq�����0<��`ס�b<�QМ|���C�֏v \f4w)�ʌM�g�hw�p�o`��\LyB�:(i^��/�B�j�{�=�J��"VC�/�i��Hd|I�yV��^�7TF09+K���5��H�J�z�|g~�� <�S����9�H�Z�@���I� %�d)��9x=�N��٢x(S�,M��s�P����)-��D2͐�Yy�I��cxY)��e!q�A�$�*߽<:���|�����6��j�)�*0m��~z�M��ҏa�����̮]i���C�o�"A�=�� +|2$��)M���ӁЂ�o='&�����EH�.��O�����W��Wly�̷t�o�έS�'ǩ���B5<��yW���55��z�b�K.�f�?G��},0!*�J ~<{�c�ևK2,���82y%�'���+g���&n���1?_�����`j�Aw���o�ʂ��_�0� U�R�ۜwr�N����?o5� +&�g�iY��+}�7ٶF�ւƧ��~�����H��`�hE5�'-�g�h1����qv�J �*Ʒ*ʑo�#y�B��1���t������YA�?L�g_����u}1V�(YvKc��� ^��:�����M�kU� ����,��>��wGҳ������a-O�W�J|��BU���3�O� ��y:9fQ���z2)�=^�胰#/�JI5 +0H +0K9�*M���kIm�_� +��z����S}Ʒ쀸ߕ ��'��k!��)�6����a�`��o�5��(�s>��sJ�J���#��^g����]g��ӣ�|�n:HG-�Aay�����xt{��\�yi�U�7i�.#KOy��p�L�Q@�UG�T.����)]zb�B@�� ��9�y>���N 8�Hg�Vհ9���A�3E&� us�ɿ&�C"��-�y�}|x>:��ի<x�����W�F�}������P����5�?�ҳ������@�����;�3��?C�ڬ��y��C*m�ixM������Z5h�پ2�{� �v mG7e��vo��s�����7pH�E[~�k�]_����/��ad�^�Q�EN�E+����\��n@���A���@�c^�������}�J�swN�+7�Pm��/��5��rf,H�c����>�b�,I�by��C�W�;�)�Ƞ�Q��[��};i�WC�� %u��V�o���M{5�J���)�n~D��#X^`F�*�Q����Z4s�wv�j� +�B犯<ibY�D�ʊAFNݗa�����@�{M���7�Đ@C�Bd�=9��c"����V�6����W��R��/���FfWe��ި�Z�I� �OU��C��m5~}�����y���o�v�-}�>7�ʭw���.�?�/���B�>x� .���k��q�E�qg��@�?(Gf~���k[������� �f ������x9d��%�,�x���7x��B9]���,�'�*8���3������%M �����Ѯ���4��H�O�秂H +i���m�pz��1(ߠ������s���I���S֛I���Т����|*�5��ś���o�͛3=l���i�ϴN����V�E�hȷ\ +����j���"����ž��E �)M�����D��� +,��k���<�2���i�����|��ie}J��2�����у��h ��E��rk��Hw�$܊�FV ��jBC&�����ì����5Ӹ +ʠ'�rXoŮ�9}֦��'ѯ�s����Ի��h�<�dT����F%*t;��b��l&\U��wPb���G:4r��E���&bS�o��?w�s�j�&_U�f�k�I����Ǯc���M̪1��;�H�/�|t��\�<��=��� �����()N�k���+�&��1[a�UP`�V�9˶��*OC+۶�P����F$��B�.3�OiO����W��o6�Je\Ig���z'.� #��\trnZ�MC@,Q]�\}a��(c��ݣB����V�K�a�-j,��%bf3��oux�r?�n�\��7���t��A�� +���x�\ j@1��w���J��Fͥ���yu�n���:�C�CvI��r�Q̫�??р7�b ���5]U�#m:�ʖFQ�G� f�Z���I��_����c���T���/TD탿/Jc��/�sD�r�y��R[��<��\�GΆ�&����f��H�ޗ��Y� +�N@C��c�?!��XK;J�h�%�j����k3�q5��8}q� rQ���]���н^�U-V�{6'�MÚ�ʌi=���7�c��K��4TiǮ]5�z��;�,��:��V�4�H=�X/Rmҗ�D>�5^㊣n*`b��n�ĈB�����g���`��qʉ5���u�=:�o��DX�N�{�3Oc ���S?���;��xs_��mn�XU��z2��نi`�%0B���)EV�C-�<�DR�@q��G�B����ąf�7y�J%$/_��U�Xѓ�������C��=�8��!LV V�}�=g���;^���n1�J�I�3=��;�Q���Y�,����@� ��Xc�5d�KuhF�B��a�3D��=?�h���y����ĵN���r��� p�����&̠|���n��m&�pq�U��@.Ԕ���:���[,�� *1�'R�,w8��i���W��a�N������"= +���w��N=~�0������]@�����.�����.M����)�P)q e"0�E��NA�` +��k�Ds�J�Bde��<$t={V%�WZ]� +�,��P�6MQY��ƪ�ޑ�2�Ǣ��X�E;Iv�!��wI�v�����5�&ӡZ��_c��g��G�8�|�����{ĺϹ��uybSS6��]V*J�V%�s,�p��lx�������{RX���<��st\�ek�Ks�jD,md��cP�]1�� �aRf�钓,�Q�� ށ�jp��(bRn��~f��bnS�x��eۼ���1��=:0�%����<�%�bB�k)��'���A��'p3�r���f�&^�8�������l�-G���.���gǠ0� +�I[>VQ6�-vN�SHр��5w��/v{�Ex�8o��d�+<�N�Sʆbm��Nj���#�o�E�s?qaW���Z���z�Q�Ye� �Y���yp���Ȳ����{�<-J��+��P�����9�6T�S�L(��g] *� ��k5�b���_}_�lc���U](<�>�*xyKr�u��6��"c������T�>/� U@�ϛ��|��Yj�],�e��bmԩYV�*��Ͳ���*n��y��V�E�h�b�N��$4�x�����ߤÂ�X��>:=A��)5��o [z�j�� ��x��Rr�,w���wە�͉���t{�$r��ۂ�^��E�����Ds��FX������0���9��)d|͠���8c��Wc4�'�~���e�X�����J��'�-ѣ]3K�^��l�k��ᕿ���'�6$hhN�NW����E�u�E*Sd���C*�/�>[[�t03Dz����Zb� ҫ[r G?9uT�~P═�v����6��iD��S�x�k��7,3��:���tNJ( 08<s��ğ��ޣz���N �s�Ks]���/e�!�)�1)�h��),����� �c�v4�-��;k�~��#����I���ں�4�wz'j�+|&�+�F��ӎ�����M�t��9�Z�c��p��td6xl|T�����ooζ�_�r��2�%.��ƛ����c�*��o~>�^��KW����!�@+�W�=�MjQ��!��n9}m.'}�K Y>�Š;�/� r�su��L����|�ƍ�PtPOσ�O|�H9������G�يI[�KC��>���Ϣ{u�����#\�r�V��{ix��`|D��/���'����mM��x�+���{,�q+��桌�\�_�&o\ߪ-1{��Tu��CT^~J"A�PO5w\6���h�7��Z\�^^C�ڭз��+V�2K���x�yl�� ��y�t+�&�-Q I�W��[��:��ߴ"���ҋ/�+��_k"`�7��2����K�;V�8kD�A����b�)��^�˦.�]A���g]&6>�r�8v�UT*<1���������D,�e �+��Or,LZqNɆfB9��\�@'���M�Œ�����b�2gG +�F�,JɎ�),6��}nd[z�K�i��I䭭���,,<bP��/M�φ��/*�[��w����.�����Sn�+���2�}���u�n����7�|��GQ{S��o�����\�X�b�ު(?�ּ�҃Tq�/ +w�P$���i�'ͷ��o�t��PtϮ�/�S�,�97���[����B�A�bo�y�Z��6�<�|��JD ?�� ӄU������{4�V�ژg%}m +^��2>1F�g�wǖ"�G͊ox������+�0�.��/k����LK������w3P���5Sq���(��X7WL��ߚ��5P)�Ug$m�P�\�գ�4�}A_�*��|�-��^<��]t�L�vkS�`�y�����S��}.�&.7H�����f�癁�K�k�����{��S�}wv.��8(m���P�dlax�7N���H@o��5��rq������E�2=fgx��Nk�C�M'����O�g3#�S�EgZ��G�e#�IgZK�� �i��N�j��^� �Mg���.�u.x��]��E����W�/�cu*��ϙg� +�4�1�rp�UY"������~�ѿ� �]��{����4���Q+E� +�1 +���L*���*��%��wf��&�ɘb�8)� c��6l�"� ����lW��;t���������m���D��O�+UJxC��n��~�l� Y�IQ-�k3:C�o�Rղ����E���%��0-W�˧`�*j���f�?z�uR*B1�ŖFǢ���h_�(Ӻ�ڃ.@�H�.�ESā�!�gIu��ORpp�W�#����-k1���-Ԕ�t�8���ΐ�x�'���������A���OX��\��f.vH>.�W���_@�_���endstream endobj 2183 0 obj << /Type /Font /Subtype /Type1 -/Encoding 5529 0 R +/Encoding 5514 0 R /FirstChar 2 /LastChar 149 -/Widths 5533 0 R -/BaseFont /OCMMYY+NimbusSanL-Regu +/Widths 5518 0 R +/BaseFont /FRHCWM+NimbusSanL-Regu /FontDescriptor 2181 0 R >> endobj 2181 0 obj << /Ascent 712 /CapHeight 712 /Descent -213 -/FontName /OCMMYY+NimbusSanL-Regu +/FontName /FRHCWM+NimbusSanL-Regu /ItalicAngle 0 /StemV 85 /XHeight 523 @@ -24015,7 +24026,7 @@ endobj /CharSet (/fi/fl/exclam/quotedbl/numbersign/dollar/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/backslash/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/quotedblleft/quotedblright/bullet) /FontFile 2182 0 R >> endobj -5533 0 obj +5518 0 obj [500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 355 556 556 0 0 222 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556 1015 667 667 722 722 667 611 778 722 278 500 0 556 833 722 778 667 778 722 667 611 722 667 944 667 667 0 0 278 0 0 556 0 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 333 350 ] endobj 1751 0 obj << @@ -24029,7 +24040,7 @@ stream xڬ�ctf��&W��m۶m�z�Ķ��8�ضm�vŶ�ʩw���z���O���c���5��"'VR�6�7H�۹�330�)Xښ�:����ѫ���D����N�cK{;1c��&��H`J��B���� KN$j���d �p!�RWѤ����/�?&D&��S����hGD��� `c�`�s���� ��X���-m�D��J�� �DT� -�D��;��� ������)���)��@Mdn�Dd��������?�93��v&2&rv��Z�ux��Q�9��l-����Y:���\���Ş�����������������_ۿ��`J��.ΦN�.D�*�I�;Oc�b;[�Uٛ��4�7u�������պ[�9��<\��e 2�tv�1���/�����pu���WtDN����� ���/�_���_u�o�;8�x����_V�+Kg��9,3�ߘ�.c-�`�i;s{"f���\��� ���Q�33��06����$2��2*ػ� ID��2��� ����B��?r���������� -�jc�`l�w���`��n{"9�v��������������🆚�'���#�b���v���010�[h�,a�0S�t1� 27��۩�����N6�v������D��LL��S��4�������V���3��$�+uFueq 5I��ܩ��R�˽�������G)��f��������7��H���I��7 3���!ڿ`���,o��d�A���d&��?��:��������?���blg�w���������_V�u���?��t��` +�D��;��� ������)���)��@Mdn�Dd��������?�93��v&2&rv��Z�ux��Q�9��l-����Y:���\���Ş�����������������_ۿ��`J��.ΦN�.D�*�I�;Oc�b;[�Uٛ��4�7u�������պ[�9��<\��e 2�tv�1���/�����pu���WtDN����� ���/�_���_u�o�;8�x����_V�+Kg��9,3�ߘ�.c-�`�i;s{"f���\��� ���Q�33��06����$2��2*ػ� ID��2��� ����B��?r���������� -�jc�`l�w���`��n{"9�v��������������🆚�'���#�b���v���010�[h�,a�0S�t1� 27��۩�����N6�v������D��LL��S��4�������V���3��$�+uF-u-Q ��ܩ��R�˽�������G)��f��������7��H���I��7 3���!ڿ`���,o��d�A���d&��?��:��������?���blg�w���������_V�u���?��t��` ��lo�b�+#ͥ3gxRL���|8ԡ�A�0?�ھ��W�.w��GM(C�4ϟ6ϥ3�����^ʞ�U�/)u_>�E'�a�A |ڹf���������ޤ��A��t���3u��[~�ٓ��ij},z'R#Jm��9E��������P�-d�.mv,9�<Et�c6���z�w$5TZ�m��B�no�\r2�([�7%`]��GdZ� _���T�A����t4�p�4�\�׆+��3&_�Tp�ݬ5Y�LƷz��G��~��Z�j��>�����Βz��r&��H�J�Vgr/�Y�GiV�]l��Ӣ� G�u�Y��Sm��Ys�)�iG�q�����ppӍ�iѹ�g��U�[?.Y|��s�����_��%�-rj�I��Em�m�K!Y�d~܉pdq�&���_g���v(�*N�N�\1H`g �W�4��yd6¶Z�C�����Z�5?y�R��9����!LgF���b��u�!��5ر���,��; AZ��[�#�{!�a�u�c�{��h��H��jI�3'q5_cR�O=ۅ��r�<|�p^pwL�������$�����ag�$�f̮ъ�F���f���F���&t{{3&dRӂ�� 5�)���toΐ�再d�f�L.a�g��� gH���Eꀳ *b������H'a��@M���"2架�k�K[P��f����Ħ��U|��m���+:��av*� ��١�j(_��hF��TϏ�c+�O���??p�' @@ -24085,23 +24096,23 @@ S /�����NJ��A]*Ei=�Q�+��:�[W��R�%�t�|�E0��e#�MR ���D]��M���6t�$� �����t�O: D/�)Sڈ#�f��@����zp��,`HÉ�b�%Y� ֤hEB��FB-u�R!]{I�\mYX��$מ�Q�ןfB�����S��fj�;6s]3cC�u���G�yqp���g�D��s;�t~cҰ�3pZ��|ו�zpT���(ܫN��V*Cm�P�搈{��ld�����t���{B�_�>�<�P�9����xD:�B��(��4����F+�M��� �NJ�{�ῴ��M`\�b��W��� >i��N�Ĭ@��v�`�?ouS���;Z���j+*7n�ُ מ2V�L�>�L�T$c"E<�f߾��Ʒ�����0�}�s��h��g��r�"�&�p����^f���N1��(a�̄�����熅�E���j|���/=�h@�nwc�<��GȽ��2O9�rۚY�CZƖ�k��u2�[��m��[����7�"��eN c���Q�s4Gr�l}��زג;[�Yո9�@Һ2����l��ٶ''Yfz���K���w�ِʝ���?���G�z�\��c!���@� ��j�Қ����j�d�\D�K����ʆ�x%?���0k��#�P�hR�S�$o}�E|�B��nɶ�MˎMs>�Gj@-�2φ]]֦p�����ʳ2���ݷ75����| �8�K/R�X�KF���͎����X��E{-� ��c�~�o�Y$?Pw2��1{�`ձA�5�� ���di�pr�3����H����+5������0��XiOkk��oq���:��nb���5�A�W���b�gS�|b�f��oZ؈�\j{3y�4�if �@���8�t�9]"ύU�}�2H���R�_�ǽ���⎕z�c�!�͛� l4ٚ�D.@e��n%�9���Do��W����a���8o�������TA]��i�&\�B*�;{���/�6&��p �v������VM�2��q��u�G�?��}��ϸ��"����K4�#�1R���,KK�!7����N"��7��&ft�"�CI�GY���?[���C0�\34h0�Y��Uۙu�eϝ��*�:�*-�K)�G�} �� �A03Ī�ŧq;6M7vuR� �*�S��2RC{[�j����-�E����2�\t=�䭂l=h���j�_���[����Nξ�,c��w��Izn��o�˟)��J�!��/\�`͝�KhB.��\���_S��\��Fy��;��&�� -,�y��Q��ؕJ�8�0��S&Ѓ]-���Y���!m���*7���3'�I��L�#0���*��)���������W��7f�x4�}��&�r�e�ܱ���P���VI��T��w�f�o�r�CA�ղ�W����=�#*��.])��~��CX4l�̓�fh���X���g%���6�i��fy�͆���_yhi�B,����U�آ�(Y.�}�c�����q�4��lB�m!�����r�o���x/[�y���Z��"��E�I��7I�KĈ��'FC��nU���!�V��]����K����O��΄bb�/�V'��0M>bV�",�a>�5������k;.n���o~)�"EmU\�ʿ��p�h�kY+ݺ���`�*��8�A�*�<n�!@������"�u��q��l����ګ��endstream +,�y��Q��ؕJ�8�0��S&Ѓ]-���Y���!m���*7���3'�I��L�#0���*��)���������W��7f�x4�}��&�r�e�ܱ���P���VI��T��w�f�o�r�CA�ղ�W����=�#*��.])��~��CX4l�̓�fh���X���g%���6�i��fy�͆���_yhi�B,����U�آ�(Y.�}�c�����q�4��lB�m!�����r�o���x/[�y���Z��"��E�I��7I�KĈ��'FC��nU���!�V��]����K����O��΄bb�/�V'��0M>bV�",�a>�5������k;.n���o~)�"EmU\�ʿ��p�h�kY+ݺ���`�*��8�A�*�<n�!@������"�u��q��l�����e��endstream endobj 1752 0 obj << /Type /Font /Subtype /Type1 -/Encoding 5529 0 R +/Encoding 5514 0 R /FirstChar 34 /LastChar 148 -/Widths 5534 0 R -/BaseFont /UQEFTG+NimbusMonL-Regu +/Widths 5519 0 R +/BaseFont /XUXCRF+NimbusMonL-Regu /FontDescriptor 1750 0 R >> endobj 1750 0 obj << /Ascent 625 /CapHeight 557 /Descent -147 -/FontName /UQEFTG+NimbusMonL-Regu +/FontName /XUXCRF+NimbusMonL-Regu /ItalicAngle 0 /StemV 41 /XHeight 426 @@ -24110,7 +24121,7 @@ endobj /CharSet (/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/seven/eight/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/quotedblright) /FontFile 1751 0 R >> endobj -5534 0 obj +5519 0 obj [600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 ] endobj 1397 0 obj << @@ -24122,7 +24133,7 @@ endobj >> stream xڬ�UT�Ͳ%��K�pwwwww�����E�N���P��K����ݧO�so�t���Ɨ13fD䌌1��XI�^���(�`�J����P��3qsQq�Sp���WZ�I���b�p���@cW+{1cW @h�XX�����p��QG/g+KW����&5--�Z��0��䯧���=���;����h������Q�Z�V�@�������$�JRA �:�-B����� ge -�wR����^�L�ͬ�)ͅ�/�����4����4:����vV..�V.�gc{g�����7�u3�'��vs�%����w��_�/����������+�oT%1���ji��Ol��0����N3S�J����/�jle�pz���0�rq�5���/���տ�ps��������@cg3[���_������� �ߪ7vt�����ÿv���\]���p�,c����mae��O�Hۛ;����m7ss��������g��&al�`o�0��1*8�� ���S��O����[�o���M�����v��_����p��U0������3������w�����[cg�?�����jlge��r���5����r�W��!��-�*D�����o�����'�L����`nl����eW�7:�Z�����������_05K+S��`�7�7��5���_0�)��J������6+�� +�wR����^�L�ͬ�)ͅ�/�����4����4:����vV..�V.�gc{g�����7�u3�'��vs�%����w��_�/����������+�oT%1���ji��Ol��0����N3S�J����/�jle�pz���0�rq�5���/���տ�ps��������@cg3[���_������� �ߪ7vt�����ÿv���\]���p�,c����mae��O�Hۛ;����m7ss��������g��&al�`o�0��1*8�� ���S��O����[�o���M�����v��_����p��U0������3������w�����[cg�?�����jlge��r���5����r�W��!��-�*D�����o�����'�L����`nl����eW�7:�Z�����������_05K+S��`�7�7��5���_0�*�ʫ������6+�� W5/G �FҔw0�_��DD<>����zN�����u�fa��� �/"��\��:[yt���������+��B#no�`�O��ۛ�m��e�6usv���������c��K�zM��WLyC�3s�\� F��t���G�+��J�kz2#w���ׅ14��|vx-�9~����}���M^���R��nStq�3T f�k��\/�����`�8ܝRV1(�"��bu��~�$u/� ���o�ј�������"��������p�-d�m~,9�;"EL�S>����w�xty���3��#� �Yl��/� T��;Ŀ��J�xe��)�>�ذ�� W�5�>Ώ:R��W|�D�5<����Gh��v��ש~����$ݓ�\�1u�bY��y�;Ec����+2y(��o>�{��>�i�z?]_����ڤ H(�xў�D��eZA��Ĥ�v�1��Ya"dV�~��8��D8�T)ѱi^��#������k�E4������Q�T~ ���\s�Ka�G�o��&�yѰ�xDL`du�A��-W r��Ц$y��ʑ/I�Q�.N���7^Z\Nν���Г<W��ʰ)�N�G�K���pY>��H*vNF8�q�=�0ܷg�o�q/hӸ��D�l^���r�����I&(�r��2yx�o����������.?�W�zS��.���jR�%�z�H�,Q�.|����Pc�o2�Y"I�4H��o��xdsh���vF�]�۟i�um�Q""F���1�������f���i �l�{ %���ngs��w���WS�%�7$�?-����YM���!$���ěz{�ݍ�����|�v�.5�&� �b���9��gӣ.82�Rm��\#�W����Y ����}R�"T� @@ -24178,23 +24189,23 @@ P �w�Ya��� ���E�9�*��W�� ��&�����WTcc����@��X��D�),� �g���:��c�=_@/1h�&_��������d���ij�A 8�ľWfC��ș�&塓�8�J|����HKF�E�}J���z���oc��� c�,ܣ�-���s���pFeC�����*<�S*O�\�g�/0��%Jw�K١�� �k�%w��=>Ic����&�Mu{ͯ���#�4口*��"�pЇ�n�9y -��h֥n��9x�+����بq�MӮC�,�AV��Z�%�]�V�4_�"����L��z^1��D��H(r�J��(ۦ�D�9��Oe;m�I�ֹ�"�n����^�T�.t����R;9��������nx$Sˋz7(S����,ҭ)� ��������B�K'������X"�+}3��DJ�;A�z�������-�l��E�V�������n�%����'"(Z��tUzCjH�����;&�U������bJ{mj��r�����������27S��$����Ɔ�S�/���P�]u_Y����~/�V�,��� �X ʾvy�^����Nff�%���j�����HzD��)1 ��bk;յ��!ïGފ��e�s��/v��X��*lCWN���Hϼj�K��-��i$�&?������ΨC���0~�]$�T0 �.mn�WG�K����> m��X/*o�b��3f">�.Y�A����_ܬ�����SB������M�4Nړ��S=���uK"Q`�sRse����i�g�lb7�+��W��ys��76tW~ �}�W_�,�8��!V����8FL�_t+foǜ�����v�ɌŸ.itxۆ��7W�u��N�%��ϱs�z@k���5F��!��D��n�褩��UE�����~�GJ��b���;���ui'��ʓ�ϣ��ڵ'�7�#�.�RǸU����7�!0����ų��KG� �B���S*b��b9��Ѫ��}\u��$� �W�����a����?\�]���|%!�Z<�U�endstream +��h֥n��9x�+����بq�MӮC�,�AV��Z�%�]�V�4_�"����L��z^1��D��H(r�J��(ۦ�D�9��Oe;m�I�ֹ�"�n����^�T�.t����R;9��������nx$Sˋz7(S����,ҭ)� ��������B�K'������X"�+}3��DJ�;A�z�������-�l��E�V�������n�%����'"(Z��tUzCjH�����;&�U������bJ{mj��r�����������27S��$����Ɔ�S�/���P�]u_Y����~/�V�,��� �X ʾvy�^����Nff�%���j�����HzD��)1 ��bk;յ��!ïGފ��e�s��/v��X��*lCWN���Hϼj�K��-��i$�&?������ΨC���0~�]$�T0 �.mn�WG�K����> m��X/*o�b��3f">�.Y�A����_ܬ�����SB������M�4Nړ��S=���uK"Q`�sRse����i�g�lb7�+��W��ys��76tW~ �}�W_�,�8��!V����8FL�_t+foǜ�����v�ɌŸ.itxۆ��7W�u��N�%��ϱs�z@k���5F��!��D��n�褩��UE�����~�GJ��b���;���ui'��ʓ�ϣ��ڵ'�7�#�.�RǸU����7�!0����ų��KG� �B���S*b��b9��Ѫ��}\u��$� �W�����a����?\�]���|%!�Z<�@Eendstream endobj 1398 0 obj << /Type /Font /Subtype /Type1 -/Encoding 5529 0 R +/Encoding 5514 0 R /FirstChar 2 /LastChar 122 -/Widths 5535 0 R -/BaseFont /LOKKFM+NimbusRomNo9L-ReguItal +/Widths 5520 0 R +/BaseFont /CNCMTK+NimbusRomNo9L-ReguItal /FontDescriptor 1396 0 R >> endobj 1396 0 obj << /Ascent 669 /CapHeight 669 /Descent -193 -/FontName /LOKKFM+NimbusRomNo9L-ReguItal +/FontName /CNCMTK+NimbusRomNo9L-ReguItal /ItalicAngle -15.5 /StemV 78 /XHeight 441 @@ -24203,7 +24214,7 @@ endobj /CharSet (/fi/percent/quoteright/asterisk/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/less/greater/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) /FontFile 1397 0 R >> endobj -5535 0 obj +5520 0 obj [500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 833 0 333 0 0 500 0 250 333 250 278 500 500 500 500 500 500 500 500 500 500 333 0 675 0 675 0 0 611 611 667 722 611 611 722 722 333 0 667 556 833 667 722 611 722 611 500 556 722 611 833 611 556 0 0 0 0 0 0 0 500 500 444 500 444 278 500 500 278 0 444 278 722 500 500 500 500 389 389 278 500 444 667 444 444 389 ] endobj 1305 0 obj << @@ -24217,7 +24228,7 @@ stream x���sp�o�&�vv̎m۶wl�Fw�I:��vұm۶�I&����o�;s����:u�����u-�kצ QR�&l�`�p�w�����P��3qsQq�Sp���&4�|���((D��ƮV�bƮ@�&� 4��������(���^�V���juM::����c0���/O+{��ׇ;����h���� \-��s+[ @TQI[ZA@-������mJn&�V��9+S���`�����`�`of�Oj._X�.�c��#���� �i t�GEp:�Y��|}�\�����_5pu�Xٛں��C�Kn��/B��_v_�/0%WSg+GW�WT%1��t�4v�'���`�ei�`��OJ��}�|i]���]��@O�b��fV.���^_������E������?�����f�@�/�/���y���m�����/������hk��������+���=�?�"mo��`f�������܁��*�?3C�E������`4�cTpp� - ��?�2�]��Z�_�������5�?��������?CK���*�} ��w�k����@�Ϣq����Y�z��9�gkM�ي8ؚ�g����WI��-������o�����'�L����`nl�U����̀ζV��������o�LL�I�fiejc�O���ڛ�g�_��yFaaq-���r�������y9~q���;����?0""���o�\�o�l�_w�7���&俀���,o��l� ��ʛ��_����?N�� F����쟱Qu5�7����)�Gm������]������_3zM�VLyC��~���`�����v3��9�V9t�Ens���ch���h�Z8u|ߗ�=�Ʋ��J^�&�#���Cݠl�;f4(FL?ӌ����ۂ��`�8�WV1(�E8���s�DH��A���o���fJZM��e���#U����@� d�>>]�X + ��?�2�]��Z�_�������5�?��������?CK���*�} ��w�k����@�Ϣq����Y�z��9�gkM�ي8ؚ�g����WI��-������o�����'�L����`nl�U����̀ζV��������o�LL�I�fiejc�O���ڛ�g�_��yFE5-Qm���r�������y9~q���;����?0""���o�\�o�l�_w�7���&俀���,o��l� ��ʛ��_����?N�� F����쟱Qu5�7����)�Gm������]������_3zM�VLyC��~���`�����v3��9�V9t�Ens���ch���h�Z8u|ߗ�=�Ʋ��J^�&�#���Cݠl�;f4(FL?ӌ����ۂ��`�8�WV1(�E8���s�DH��A���o���fJZM��e���#U����@� d�>>]�X ^wDʘ@�l|A�r���,�H�����ͧ��s�`;���G5�nU' �?h�e�Ç��F,<���N}*~��|C��0� B��p���`��Npl0~��6e���R-�D��mf�*�C���gII�UXNz3�KN� BU�b���2��pI)j��C���"6~ �s�&�8�!��L4��.mS�A梵4#O�;�����j叽�O��;y>*C�x$D��_$7�Z�"'���������ۅVz�&D��2�l��,�����a�0��v��?����C��d�(h�=���SjCT���:3��B����mp`�����}�*0j!?�/�O2r�f {����P'�(�j@\���>c��Ȅ���h�V��ЄAIi� ��j2�<8�}3�*5^ݮ��ؽ.ILm�N��Ɠ�ӫ_7B��̕OyerA �P�ɷ��?���8B���,Bʯm�KS�X�<I43��0C��{������~Ss�6DmZ�>'j���X[���� �5f�8�]ΓR�,�1R�G��.k{�i���g�@-`7��6Qޭ:@�4)���"�;�k[�3�g��L?K7<����PK]ٻ]ݨWۡ�fwN���{.���aPT�^�5'��(��<�qӘ @@ -24273,23 +24284,23 @@ tN;y s�R٤vKK��l���A��M )�ط����}4� 1Ƙذ���_"�vjc����?��%餿?�jqL�����yu<�c����8����m���-��`jx��S�Fq���q�����F�Y<�!���?�����1M���ӟ����l��X �O� �8'%���c�;q+���\:����`���ԃ�{��7&,�C�� #cVt�E����|���Iҷ|���Vr_�Ȣ�&�>^!?�Qi��J`�1����� }�F��%��.����EKYW�/�g,�����DL��h xF���}��w�S/�ㅥ��'�]���0SNo��D�(�k�D�B>��9���:O�#�����p1�DGn��+Y�yh���Z1џ�s,���k �N�O�Ynmt����&�����u@���~�"K�+OU��EE�H��ܭ�����:�m6ެ"TQ�T?�*O��XIf��@��=�`_{�k�k,dVc��<S5��s %�� ��˂��*oqp)f�NYc`e�9H��xQ(��vP�>0���*]W5�P*��̺_<C[�W�8�m����.;�N�w.y��xC@�O��/�~���"x��Z��\kۄ���4�A���p"�"��_p�ga�9A}>���nچK���ͬ)�F��I�������w6�5N�&2I%q�ṃ�a����=~Z� ��COx���v����C����8u�s�Xՙ���\������Z[^�4���W -���dd,�z{�]�V��oH��76�X��`2�_>p�?��'�Lm��ήv��6p� "�endstream +���dd,�z{�]�V��oH��76�X��`2�_>p�?��'�Lm��ήv��6p� �i�endstream endobj 1306 0 obj << /Type /Font /Subtype /Type1 -/Encoding 5529 0 R +/Encoding 5514 0 R /FirstChar 2 /LastChar 148 -/Widths 5536 0 R -/BaseFont /AZNAEX+NimbusRomNo9L-Medi +/Widths 5521 0 R +/BaseFont /OTJXCY+NimbusRomNo9L-Medi /FontDescriptor 1304 0 R >> endobj 1304 0 obj << /Ascent 690 /CapHeight 690 /Descent -209 -/FontName /AZNAEX+NimbusRomNo9L-Medi +/FontName /OTJXCY+NimbusRomNo9L-Medi /ItalicAngle 0 /StemV 140 /XHeight 461 @@ -24298,7 +24309,7 @@ endobj /CharSet (/fi/quotedbl/dollar/quoteright/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/greater/A/B/C/D/E/F/G/I/L/M/N/P/Q/R/S/T/U/V/backslash/underscore/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/quotedblleft/quotedblright) /FontFile 1305 0 R >> endobj -5536 0 obj +5521 0 obj [556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 555 0 500 0 0 333 0 0 0 0 250 333 250 278 500 500 500 500 500 500 500 500 500 500 333 0 0 0 570 0 0 722 667 722 722 667 611 778 0 389 0 0 667 944 722 0 611 778 722 556 667 722 722 0 0 0 0 0 278 0 0 500 0 500 556 444 556 444 333 500 556 278 0 556 278 833 556 500 556 556 444 389 333 556 500 722 500 500 444 394 220 394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 ] endobj 1297 0 obj << @@ -24311,7 +24322,7 @@ endobj stream xڬ�ctf]�&��b۸c۶m���b۶�m���Q����zO�����}~�1���&���؛�XI�^����\��H����P��7qsUq�Wp䖣W1�t���Ò�����Č��<�Ms3���)������ Kut�r�����U4�ii��S� ���?4=]�-�_�������!��U��@+s����9@TQI[ZA@%���4w0w1�(���Y��M�\ͩ�.�����f������K�`pu27���f�ij���d�bo����`� �t1v����`�`j�f�O���J�����_�_0%GW������7���Ŀ�Z���j�W p��ki�h��OI������[;����b��̬]�쌽�����b��4�\�,�3:�����������_����t�?��/�;9�y����_V�3k����,3�ߘ����-�`��iG�3ӿ�fnN��s7w�W�����I�9:�y��-`�C���Xf��#�������[��#��r��\�����_�%��������w��1v���3�9�?�������clom�����֚��N���& 4��a˿�010�[h�*a�in�d 4�X���ٿ��f�.v����W[��LL�E�femj�� ��V�;��� -�����5t�Ĕ$h�7�_�J����7��Q�����<�#"�� �g��гp1���fa��� �/ ��<�]�=��fb�W����ϓ��w0u4�gtT��f�� +������ed��i�7�_�J����7��Q�����<�#"�� �g��гp1���fa��� �/ ��<�]�=��fb�W����ϓ��w0u4�gtT��f�� �Q�����%�_�o��q��ܛ�{��®�8���ddg��G��t�����:�7���9��gD�rW�ׇ2���|vx-�9}����c�Q���_�'�(B٢��=b4(G�<�^����`�8ܛVV1({�$��bu��~� u/ @'{rB�3Mo���FnAm(>;�H>y~��黅8��͋�!�uG��p���Q���à:LN��;2��s(�Jf��ڼ8L������D�y�$kg�P�q��Xi�G�I� =X�Ը6�����O���,P7�."�?]up5�a2u���}�̍.؈�/�u�x��Ӿ�7��G��< ��G7KR*� ��J�+J�k �{���ש!y���h}�Wu���r�pI� @@ -24387,23 +24398,23 @@ Y K�rt�zU�?��M����s�k����,Sp �*���Mf�Ol.�� ��I�:���x�$���:����*����E5��B�+�ctCg�&]����� $ת�s��% ޛ���c{�Q�,�jc����3'�E� מ�U_d�2hi����z�c�}:6�L�-Z�XC$�~���?iD�ȣ���P���¥�� ����᳂��x��H�8i�����Oy�@e�}�%U��,$�䱚'�;�NK����}�驑�Bs�j�Wgzi/�pq�Q �]�NN��L\w,�`[qs��k쥫B6�BF�P`2�<������`.�zߴ �������6ԅԲ+�OQׅCd3�F��Nf�0C�Q�>��6�8Qρ%5���,�Ϗ��b?YVNR�u/�sfY'�}*P����?�=d�I���0;Ջ��K�D\ZXL"<^�J^s Jיw!!7%�]�zk����EV&�W�������<N��9e��@�fPt��L֛�yC4�5��6/��?X�R�WT�ٝ�!^8�0n��9���bf�-��Wkx���gbW��3Yu���x� Ζ/j���H��Fe�G������G������������{�,����mYݰ���߷͈��:��Y.CD��9r��m�L�+�>R5��ʧ���Z�q�+�~��������@g���_]�"GqA�/���?4�n}�k�'��|�oH�Gs��F�������GƇC)Qa4ߏ����<,��],�eu��:�_�t�(���^u�ʯ$WM�ʒ�М���,�(D5U P����g���4�l�5�L��7��t�0��[��(����t'��5��G�k�!NB��Z��L��i�] >�~ݏ'�[ ���X��Kv�4�&��(���h��}����B�=��8H8f�����A��o���4/�:�`_���@s�x��o6WAc�۫����~����7i�, ����3��>_�q�.%�DG�cH���lczѶjVP_1�y��aj��Pl��2�$�#H��Epo)�(�8[����,�g�2Q��6�>�Gt="t32*7�x2�n�:V�F��f��+ds���.���?&�V>"�Ա(�^�4��`'va�*�[\���=���˞�@w��,Lآ�A���v�V>��f�g2,q� jj-��diƜϿL���$8��`&���y�� �6ן���=f1b��u>�O��O-��`��RJ�������B�=/G��ʲ+.^�hs�ă����Z-/��np�4�� �����e�65������C� Y��a��!����ԌG�� �� -"��i�v������1�Oǩ&��D��Rw��X�ϸ;�����\%�e�A����T�<�ETe-�zq:L ��v^@��sl����>�wx7Au�"�lfҨ�S��/ [��Hi]������X���Pt'�}u �C��ߒ�xN�<��&-�B�*81Me܂����k�Q����i�$���R���e����M9�RBL���ݰ��P��"������X������5����H5D�Tlň����4�SN;R�r��sa9�()~18^��k�'����>Ǖ������Y��.�N���L���þc����H%����{�[<��P<���t�����ך�{3��B�/�_�st���n*����6>�h��笚i(���8J�5��S|�G$�:�!�D��=i8���$d+3�#F#�U[�FS��T��-]�3\2�C���5P�d�J����hj��#1�h)ppK �|/��/]�L��<[����s���˭�F�R�>�ƩK�I����k`����d�M�<"�m�F���p��5S��X�q�Њ(��+��<�c�����}�RH�,��M�ϷF�'��P�6Lp�-X�6��w��V�qk�u;�M�Џ�<�^����ҚHb>��,�E�%]�n�8ʻb!��A�z������+� �P�`k)�ח��@L8fn������t~��F;���k3���;ru�ݛ����2\���O���&�t|"��h�~�Lխ���>`��72I�[P���w��1$��^�BG��!��� ���O,��\ݝ�\����.�endstream +"��i�v������1�Oǩ&��D��Rw��X�ϸ;�����\%�e�A����T�<�ETe-�zq:L ��v^@��sl����>�wx7Au�"�lfҨ�S��/ [��Hi]������X���Pt'�}u �C��ߒ�xN�<��&-�B�*81Me܂����k�Q����i�$���R���e����M9�RBL���ݰ��P��"������X������5����H5D�Tlň����4�SN;R�r��sa9�()~18^��k�'����>Ǖ������Y��.�N���L���þc����H%����{�[<��P<���t�����ך�{3��B�/�_�st���n*����6>�h��笚i(���8J�5��S|�G$�:�!�D��=i8���$d+3�#F#�U[�FS��T��-]�3\2�C���5P�d�J����hj��#1�h)ppK �|/��/]�L��<[����s���˭�F�R�>�ƩK�I����k`����d�M�<"�m�F���p��5S��X�q�Њ(��+��<�c�����}�RH�,��M�ϷF�'��P�6Lp�-X�6��w��V�qk�u;�M�Џ�<�^����ҚHb>��,�E�%]�n�8ʻb!��A�z������+� �P�`k)�ח��@L8fn������t~��F;���k3���;ru�ݛ����2\���O���&�t|"��h�~�Lխ���>`��72I�[P���w��1$��^�BG��!��� ���O,��\ݝ�\��� ���endstream endobj 1298 0 obj << /Type /Font /Subtype /Type1 -/Encoding 5529 0 R +/Encoding 5514 0 R /FirstChar 2 /LastChar 151 -/Widths 5537 0 R -/BaseFont /VZXDPF+NimbusRomNo9L-Regu +/Widths 5522 0 R +/BaseFont /AJJOPA+NimbusRomNo9L-Regu /FontDescriptor 1296 0 R >> endobj 1296 0 obj << /Ascent 678 /CapHeight 651 /Descent -216 -/FontName /VZXDPF+NimbusRomNo9L-Regu +/FontName /AJJOPA+NimbusRomNo9L-Regu /ItalicAngle 0 /StemV 85 /XHeight 450 @@ -24412,7 +24423,7 @@ endobj /CharSet (/fi/fl/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/bracketright/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/quotedblleft/quotedblright/bullet/emdash) /FontFile 1297 0 R >> endobj -5537 0 obj +5522 0 obj [556 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 408 500 500 833 778 333 333 333 500 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444 921 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 333 0 333 0 500 0 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 444 444 350 0 1000 ] endobj 1289 0 obj << @@ -24424,7 +24435,7 @@ endobj >> stream x��yUp]˒��,��d133Z�̬#f�-����bfffff�X�����x�_��51;bG���Z�2WV�lR"y%ZAc[C1['ZF:.�,����Q��F�V����id�#%v01p�ڈ8�p�L�"&F�&&�#''')@����hf��PQT����������?=�;�f6���+[;k�O���J&&�'s�)�� ,'�!!+��U��ؘ8X� ��F�i����� %���`�������Wi�t�X��������s������_.����5�����t�9�8}�����1�r6�������oBv��֟�O0y[G'G#���3����?x:�8�����ؚ~F�9�U�߾O�O�����d���W.C�1������3�'���oΎ@�1�8��8[�8:~�|b�՝� �ߪ7���r�{���Q����hbeJ�������3�����A��1�02��n�l�O����� ��kf(?I��X��ML��em�>S(��T����@����G������o���{��Z���J���s��q��>oG�4�;���5�Z�����f�������gm�>�`�c���(t31�:�L �>{��]����� -hc���m�2����O�hdi�W��8�v���;�Oy��M�"##�&D����Q�;)��}��:dl��s����������@����y���,�^�E������1pr���>�f`����x����7Q#[��D�����s���������SѿO�g��\�=�&&n&Fp��F܁�i)NU�Yc"Z=]��AvE�������>ɡ[�e���Atu\����'vo{�T�C]V䝉&9x^�(�sQ��Z٩���u�RN�"</�7!4�T���u_��'Z�`.(}��������C�6J���ކ\�Z�wrJw����oxp����{�:�,)�Y��}&.��J�g�a!c\_E|Wp� +hc���m�2����O�hdi�W��8�v���;�Oy��M//�&!)G����Q�;)��}��:dl��s����������@����y���,�^�E������1pr���>�f`����x����7Q#[��D�����s���������SѿO�g��\�=�&&n&Fp��F܁�i)NU�Yc"Z=]��AvE�������>ɡ[�e���Atu\����'vo{�T�C]V䝉&9x^�(�sQ��Z٩���u�RN�"</�7!4�T���u_��'Z�`.(}��������C�6J���ކ\�Z�wrJw����oxp����{�:�,)�Y��}&.��J�g�a!c\_E|Wp� ���5F�&3@����h��ڤ���������9XNA��\�K�JA�ew�%)�4�� o��t<��;�GB��wg��{a0�}��X�$�NK��ȸe:�@��n&Tk��$]�o��Tct�T�o%l�8�j�����?y�qأe�L\�O��������t�K�CDE=1�=B��S����ˈzN�O�0vˌ�B�������[� ]��!V�M_�Q�s�(˜SOD$�a����t�B����E�'}��љb8�̼���?Ӈ{�hT1ڱ= �qM"V��0[e�d}����0�w�T��EH��Ap�c�v!�"�V��1y�Q���w���<=�}�<�=��K�WWc[�_� .Mz��Y�'����@��kRC�pym�(����I����ОX�bLFG����߭�N�&(�2� i�Р;ˎB$�IB�1�� �K��eʱ�0�0 -f7*���|� ��싂a��]�]�y����OB&e9�̪[a(w��K6j1�FWC��n<�pl�dg?�H�\�[��V��������7���l�����Ю����� ���l���D{C�#��l��52�Ό'���Z*8z?=ON[O0Rwv�K{}<Ҝ�^O���s4��1��4���&�3�,�jЋ`�zh5Zf��U�-l�NKn��� F����K&�v��}g� �|I�G���P������$���G�c~��V^`��zt�_����,\pkc����q}��T\�x�#7�pq˞l� �� ?82=��N�d[����dp=��o.�u���i,:��ܞ��M�[���}�W>v�b3w���L8��YT��1�ޱ�+�p@�ܣԎ�V��ms�ߒY��lC���/�m��I��ִ� @@ -24464,23 +24475,23 @@ Wrט kf�����:\���컚�qC��lN+ע���ׁ��w�\p��q��(}\�?_�ۖp�B8�d=H�.�$��G�})�L���w������dj�5�_99h<jT�q���bۇ❇ĹByjh��߃U}v����"���&��>2N��?���iUf�Kw-'ߜ)]%NTGk�G5U�M�2�b�V��Iy}���e��a� �/��-�ĊO_�D��KR������%i�{>�P̳���/",��tKL���m�$c���_;�ru��= ��#��q$}X���;@^��a�K�=�����Է���||��p���U�8��#�ؗ�$���V���K�ga���.�{�a_�1��6R]�*��%*XY����0�����D���S�K��Eej��`-�v�fi��L��k�e�c���".�)�D:�F���My��������W������-]U)-�8.v��뼨�8����;��L�'���ۖ�ml E�u�Ȳ���}�8�=�f1 �$��{�M��|$�35��SC�}�����HXP z4z��R�TϺT��>���u��&����`M���7.`Z�694Q�*��:���7���8�A�T�����!���N�0-s���by1��O�n�vσp��a��U"L��k�X����k.��wb�r��/o)|����d���t��dN�Ĕ�z�#ʖ�Ͳ�1�к]���,�N��b��,��>~�c�/�pO�ۓ�<�vG���?�vJ��9���4#6�+����>�� Hk�j��3�a5��vѠ�.�w�y۰�ȶ�X[b�|��@a���D�"�Y^r�]��=֪"�r`*�,$q���9���y��P�}a�3 ?��0���L8@8�{�_n?��Vcb,&�\̀aCD�ݮ<5j����>L5:��J-�H�K�><�a�*x�<ev�p�`؞B:��qp)̢mS�P.�����\�틛��G��_��q��T�e����=�hi�Cf?��VN���?_�q�i���S$�6k��!��pi���8I�H��a1�Q���T���aOU� c�_h���>✾�I�襁��+���j��Qw�����4 �'�/�oS�D#:���־s������L�c.{�"�h��>�"��D��m]H����mؓ�V�eP_����L(܁��5-�-�F�0��p���#��/���ݜCOfg�K/�u!�n�cZ!��T�e+� b��D�( -� (_�>qǽ6��os�������?`deb��dkm�` ���/��endstream +� (_�>qǽ6��os�������?`deb��dkm�` ���F�endstream endobj 1290 0 obj << /Type /Font /Subtype /Type1 -/Encoding 5529 0 R +/Encoding 5514 0 R /FirstChar 2 /LastChar 148 -/Widths 5538 0 R -/BaseFont /UMMOWB+NimbusSanL-Bold +/Widths 5523 0 R +/BaseFont /PDWIJO+NimbusSanL-Bold /FontDescriptor 1288 0 R >> endobj 1288 0 obj << /Ascent 722 /CapHeight 722 /Descent -217 -/FontName /UMMOWB+NimbusSanL-Bold +/FontName /PDWIJO+NimbusSanL-Bold /ItalicAngle 0 /StemV 141 /XHeight 532 @@ -24489,165 +24500,165 @@ endobj /CharSet (/fi/fl/exclam/quotedbl/ampersand/quoteright/parenleft/parenright/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/backslash/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/quotedblleft/quotedblright) /FontFile 1289 0 R >> endobj -5538 0 obj +5523 0 obj [611 611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 474 0 0 0 722 278 333 333 0 0 278 333 278 278 556 556 556 556 556 556 556 556 556 556 333 0 0 0 0 0 0 722 722 722 722 667 611 778 722 278 556 722 611 833 722 778 667 778 722 667 611 722 667 944 667 667 611 0 278 0 0 556 0 556 611 556 611 556 333 611 611 278 278 556 278 889 611 611 611 611 389 556 333 611 556 778 556 556 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 ] endobj 1291 0 obj << /Type /Pages /Count 6 -/Parent 5539 0 R +/Parent 5524 0 R /Kids [1282 0 R 1293 0 R 1300 0 R 1445 0 R 1590 0 R 1738 0 R] >> endobj 1979 0 obj << /Type /Pages /Count 6 -/Parent 5539 0 R -/Kids [1886 0 R 2026 0 R 2084 0 R 2091 0 R 2122 0 R 2174 0 R] +/Parent 5524 0 R +/Kids [1886 0 R 2026 0 R 2084 0 R 2091 0 R 2120 0 R 2174 0 R] >> endobj 2223 0 obj << /Type /Pages /Count 6 -/Parent 5539 0 R +/Parent 5524 0 R /Kids [2189 0 R 2225 0 R 2247 0 R 2279 0 R 2328 0 R 2375 0 R] >> endobj 2421 0 obj << /Type /Pages /Count 6 -/Parent 5539 0 R +/Parent 5524 0 R /Kids [2394 0 R 2423 0 R 2456 0 R 2498 0 R 2534 0 R 2559 0 R] >> endobj 2640 0 obj << /Type /Pages /Count 6 -/Parent 5539 0 R +/Parent 5524 0 R /Kids [2598 0 R 2642 0 R 2679 0 R 2716 0 R 2748 0 R 2770 0 R] >> endobj 2833 0 obj << /Type /Pages /Count 6 -/Parent 5539 0 R +/Parent 5524 0 R /Kids [2796 0 R 2836 0 R 2855 0 R 2876 0 R 2907 0 R 2932 0 R] >> endobj 2994 0 obj << /Type /Pages /Count 6 -/Parent 5540 0 R +/Parent 5525 0 R /Kids [2961 0 R 2996 0 R 3030 0 R 3066 0 R 3088 0 R 3127 0 R] >> endobj -3192 0 obj << +3191 0 obj << /Type /Pages /Count 6 -/Parent 5540 0 R -/Kids [3169 0 R 3194 0 R 3217 0 R 3244 0 R 3281 0 R 3321 0 R] +/Parent 5525 0 R +/Kids [3169 0 R 3193 0 R 3213 0 R 3239 0 R 3283 0 R 3317 0 R] >> endobj -3359 0 obj << +3357 0 obj << /Type /Pages /Count 6 -/Parent 5540 0 R -/Kids [3346 0 R 3361 0 R 3389 0 R 3440 0 R 3466 0 R 3507 0 R] +/Parent 5525 0 R +/Kids [3340 0 R 3359 0 R 3394 0 R 3440 0 R 3462 0 R 3507 0 R] >> endobj -3577 0 obj << +3573 0 obj << /Type /Pages /Count 6 -/Parent 5540 0 R -/Kids [3540 0 R 3579 0 R 3604 0 R 3620 0 R 3664 0 R 3717 0 R] +/Parent 5525 0 R +/Kids [3539 0 R 3575 0 R 3599 0 R 3631 0 R 3662 0 R 3709 0 R] >> endobj -3800 0 obj << +3796 0 obj << /Type /Pages /Count 6 -/Parent 5540 0 R -/Kids [3757 0 R 3802 0 R 3837 0 R 3861 0 R 3901 0 R 3921 0 R] +/Parent 5525 0 R +/Kids [3749 0 R 3798 0 R 3831 0 R 3852 0 R 3891 0 R 3911 0 R] >> endobj -3984 0 obj << +3974 0 obj << /Type /Pages /Count 6 -/Parent 5540 0 R -/Kids [3947 0 R 3986 0 R 4011 0 R 4046 0 R 4058 0 R 4088 0 R] +/Parent 5525 0 R +/Kids [3939 0 R 3976 0 R 4008 0 R 4038 0 R 4047 0 R 4077 0 R] >> endobj -4195 0 obj << +4180 0 obj << /Type /Pages /Count 6 -/Parent 5541 0 R -/Kids [4120 0 R 4198 0 R 4214 0 R 4242 0 R 4293 0 R 4327 0 R] +/Parent 5526 0 R +/Kids [4109 0 R 4183 0 R 4199 0 R 4227 0 R 4278 0 R 4312 0 R] >> endobj -4371 0 obj << +4356 0 obj << /Type /Pages /Count 6 -/Parent 5541 0 R -/Kids [4338 0 R 4373 0 R 4394 0 R 4420 0 R 4443 0 R 4462 0 R] +/Parent 5526 0 R +/Kids [4323 0 R 4358 0 R 4379 0 R 4405 0 R 4428 0 R 4447 0 R] >> endobj -4489 0 obj << +4474 0 obj << /Type /Pages /Count 6 -/Parent 5541 0 R -/Kids [4475 0 R 4491 0 R 4528 0 R 4568 0 R 4607 0 R 4637 0 R] +/Parent 5526 0 R +/Kids [4460 0 R 4476 0 R 4513 0 R 4553 0 R 4592 0 R 4622 0 R] >> endobj -4668 0 obj << +4653 0 obj << /Type /Pages /Count 6 -/Parent 5541 0 R -/Kids [4653 0 R 4670 0 R 4688 0 R 4706 0 R 4713 0 R 4741 0 R] +/Parent 5526 0 R +/Kids [4638 0 R 4655 0 R 4673 0 R 4691 0 R 4698 0 R 4726 0 R] >> endobj -4799 0 obj << +4784 0 obj << /Type /Pages /Count 6 -/Parent 5541 0 R -/Kids [4773 0 R 4801 0 R 4839 0 R 4857 0 R 4892 0 R 4924 0 R] +/Parent 5526 0 R +/Kids [4758 0 R 4786 0 R 4824 0 R 4842 0 R 4877 0 R 4909 0 R] >> endobj -4962 0 obj << +4947 0 obj << /Type /Pages /Count 6 -/Parent 5541 0 R -/Kids [4945 0 R 4964 0 R 4980 0 R 5007 0 R 5032 0 R 5056 0 R] +/Parent 5526 0 R +/Kids [4930 0 R 4949 0 R 4965 0 R 4992 0 R 5017 0 R 5041 0 R] >> endobj -5116 0 obj << +5101 0 obj << /Type /Pages /Count 6 -/Parent 5542 0 R -/Kids [5073 0 R 5118 0 R 5148 0 R 5178 0 R 5209 0 R 5221 0 R] +/Parent 5527 0 R +/Kids [5058 0 R 5103 0 R 5133 0 R 5163 0 R 5194 0 R 5206 0 R] >> endobj -5247 0 obj << +5232 0 obj << /Type /Pages /Count 6 -/Parent 5542 0 R -/Kids [5237 0 R 5249 0 R 5286 0 R 5298 0 R 5311 0 R 5317 0 R] +/Parent 5527 0 R +/Kids [5222 0 R 5234 0 R 5271 0 R 5283 0 R 5296 0 R 5302 0 R] >> endobj -5398 0 obj << +5383 0 obj << /Type /Pages /Count 5 -/Parent 5542 0 R -/Kids [5367 0 R 5400 0 R 5427 0 R 5466 0 R 5494 0 R] +/Parent 5527 0 R +/Kids [5352 0 R 5385 0 R 5412 0 R 5451 0 R 5479 0 R] >> endobj -5539 0 obj << +5524 0 obj << /Type /Pages /Count 36 -/Parent 5543 0 R +/Parent 5528 0 R /Kids [1291 0 R 1979 0 R 2223 0 R 2421 0 R 2640 0 R 2833 0 R] >> endobj -5540 0 obj << +5525 0 obj << /Type /Pages /Count 36 -/Parent 5543 0 R -/Kids [2994 0 R 3192 0 R 3359 0 R 3577 0 R 3800 0 R 3984 0 R] +/Parent 5528 0 R +/Kids [2994 0 R 3191 0 R 3357 0 R 3573 0 R 3796 0 R 3974 0 R] >> endobj -5541 0 obj << +5526 0 obj << /Type /Pages /Count 36 -/Parent 5543 0 R -/Kids [4195 0 R 4371 0 R 4489 0 R 4668 0 R 4799 0 R 4962 0 R] +/Parent 5528 0 R +/Kids [4180 0 R 4356 0 R 4474 0 R 4653 0 R 4784 0 R 4947 0 R] >> endobj -5542 0 obj << +5527 0 obj << /Type /Pages /Count 17 -/Parent 5543 0 R -/Kids [5116 0 R 5247 0 R 5398 0 R] +/Parent 5528 0 R +/Kids [5101 0 R 5232 0 R 5383 0 R] >> endobj -5543 0 obj << +5528 0 obj << /Type /Pages /Count 125 -/Kids [5539 0 R 5540 0 R 5541 0 R 5542 0 R] +/Kids [5524 0 R 5525 0 R 5526 0 R 5527 0 R] >> endobj -5544 0 obj << +5529 0 obj << /Type /Outlines /First 3 0 R /Last 1275 0 R @@ -24661,7 +24672,7 @@ endobj 1275 0 obj << /Title 1276 0 R /A 1273 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1263 0 R /First 1279 0 R /Last 1279 0 R @@ -24683,7 +24694,7 @@ endobj 1263 0 obj << /Title 1264 0 R /A 1261 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1251 0 R /Next 1275 0 R /First 1267 0 R @@ -24706,7 +24717,7 @@ endobj 1251 0 obj << /Title 1252 0 R /A 1249 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1239 0 R /Next 1263 0 R /First 1255 0 R @@ -24729,7 +24740,7 @@ endobj 1239 0 obj << /Title 1240 0 R /A 1237 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1231 0 R /Next 1251 0 R /First 1243 0 R @@ -24744,7 +24755,7 @@ endobj 1231 0 obj << /Title 1232 0 R /A 1229 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1215 0 R /Next 1239 0 R /First 1235 0 R @@ -24774,7 +24785,7 @@ endobj 1215 0 obj << /Title 1216 0 R /A 1213 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1203 0 R /Next 1231 0 R /First 1219 0 R @@ -24797,7 +24808,7 @@ endobj 1203 0 obj << /Title 1204 0 R /A 1201 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1195 0 R /Next 1215 0 R /First 1207 0 R @@ -24812,7 +24823,7 @@ endobj 1195 0 obj << /Title 1196 0 R /A 1193 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1187 0 R /Next 1203 0 R /First 1199 0 R @@ -24827,7 +24838,7 @@ endobj 1187 0 obj << /Title 1188 0 R /A 1185 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1175 0 R /Next 1195 0 R /First 1191 0 R @@ -24850,7 +24861,7 @@ endobj 1175 0 obj << /Title 1176 0 R /A 1173 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1155 0 R /Next 1187 0 R /First 1179 0 R @@ -24887,7 +24898,7 @@ endobj 1155 0 obj << /Title 1156 0 R /A 1153 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1139 0 R /Next 1175 0 R /First 1159 0 R @@ -24917,7 +24928,7 @@ endobj 1139 0 obj << /Title 1140 0 R /A 1137 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1127 0 R /Next 1155 0 R /First 1143 0 R @@ -24940,7 +24951,7 @@ endobj 1127 0 obj << /Title 1128 0 R /A 1125 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1119 0 R /Next 1139 0 R /First 1131 0 R @@ -24955,7 +24966,7 @@ endobj 1119 0 obj << /Title 1120 0 R /A 1117 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1115 0 R /Next 1127 0 R /First 1123 0 R @@ -24965,7 +24976,7 @@ endobj 1115 0 obj << /Title 1116 0 R /A 1113 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1063 0 R /Next 1119 0 R >> endobj @@ -25054,7 +25065,7 @@ endobj 1063 0 obj << /Title 1064 0 R /A 1061 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1047 0 R /Next 1115 0 R /First 1067 0 R @@ -25083,7 +25094,7 @@ endobj 1047 0 obj << /Title 1048 0 R /A 1045 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 1035 0 R /Next 1063 0 R /First 1051 0 R @@ -25105,7 +25116,7 @@ endobj 1035 0 obj << /Title 1036 0 R /A 1033 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 995 0 R /Next 1047 0 R /First 1039 0 R @@ -25176,7 +25187,7 @@ endobj 995 0 obj << /Title 996 0 R /A 993 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 927 0 R /Next 1035 0 R /First 999 0 R @@ -25298,7 +25309,7 @@ endobj 927 0 obj << /Title 928 0 R /A 925 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 731 0 R /Next 995 0 R /First 931 0 R @@ -25652,7 +25663,7 @@ endobj 731 0 obj << /Title 732 0 R /A 729 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 679 0 R /Next 927 0 R /First 735 0 R @@ -25748,7 +25759,7 @@ endobj 679 0 obj << /Title 680 0 R /A 677 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 367 0 R /Next 731 0 R /First 683 0 R @@ -26309,7 +26320,7 @@ endobj 367 0 obj << /Title 368 0 R /A 365 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 39 0 R /Next 679 0 R /First 371 0 R @@ -26905,7 +26916,7 @@ endobj 39 0 obj << /Title 40 0 R /A 37 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 15 0 R /Next 367 0 R /First 43 0 R @@ -26948,7 +26959,7 @@ endobj 15 0 obj << /Title 16 0 R /A 13 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 11 0 R /Next 39 0 R /First 19 0 R @@ -26958,5605 +26969,5590 @@ endobj 11 0 obj << /Title 12 0 R /A 9 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 7 0 R /Next 15 0 R >> endobj 7 0 obj << /Title 8 0 R /A 5 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Prev 3 0 R /Next 11 0 R >> endobj 3 0 obj << /Title 4 0 R /A 1 0 R -/Parent 5544 0 R +/Parent 5529 0 R /Next 7 0 R >> endobj -5545 0 obj << -/Names [(1.0) 2 0 R (10.0) 994 0 R (10.51.1) 998 0 R (10.52.1) 1002 0 R (10.53.1) 1006 0 R (10.54.1) 1010 0 R (10.55.1) 1014 0 R (10.56.1) 1018 0 R (10.57.1) 1022 0 R (10.58.1) 1026 0 R (10.59.1) 1030 0 R (1000) 2952 0 R (1002) 2955 0 R (1003) 2956 0 R (1004) 2957 0 R (1005) 2958 0 R (1006) 2959 0 R (1007) 2964 0 R (1008) 2965 0 R (101) 2159 0 R (1010) 2966 0 R (1011) 2967 0 R (1012) 2968 0 R (1013) 2969 0 R (1015) 2970 0 R (1016) 2971 0 R (1017) 2972 0 R (1018) 2973 0 R (102) 2160 0 R (1021) 2974 0 R (1022) 2975 0 R (1024) 2976 0 R (1026) 2978 0 R (1027) 2979 0 R (1028) 2980 0 R (103) 2161 0 R (1030) 2981 0 R (1032) 2983 0 R (1033) 2984 0 R (1035) 2985 0 R (1037) 2987 0 R (1038) 2988 0 R (1039) 2989 0 R (104) 2162 0 R (1042) 2990 0 R (1044) 2992 0 R (1047) 2993 0 R (1048) 2999 0 R (1049) 3000 0 R (105) 2163 0 R (1050) 3001 0 R (1051) 3002 0 R (1052) 3003 0 R (1053) 3004 0 R (1054) 3005 0 R (1055) 3006 0 R (1056) 3007 0 R (1057) 3008 0 R (1058) 3009 0 R (106) 2164 0 R (1061) 3010 0 R (1062) 3011 0 R (1063) 3012 0 R (1064) 3013 0 R (1065) 3014 0 R (1066) 3015 0 R (1067) 3016 0 R (1068) 3017 0 R (1069) 3018 0 R (107) 2165 0 R (1070) 3019 0 R (1071) 3020 0 R (1072) 3021 0 R (1073) 3022 0 R (1074) 3023 0 R (1075) 3024 0 R (1076) 3025 0 R (1077) 3026 0 R (1078) 3027 0 R (1079) 3028 0 R (108) 2166 0 R (1080) 3033 0 R (1083) 3034 0 R (1084) 3035 0 R (1085) 3036 0 R (1086) 3037 0 R (1087) 3038 0 R (1088) 3039 0 R (1089) 3040 0 R (109) 2167 0 R (1090) 3041 0 R (1091) 3042 0 R (1092) 3043 0 R (1093) 3044 0 R (1094) 3045 0 R (1095) 3046 0 R (1096) 3047 0 R (11.0) 1034 0 R (11.60.1) 1038 0 R (11.61.1) 1042 0 R (110) 2168 0 R (1100) 3049 0 R (1101) 3050 0 R (1102) 3051 0 R (1103) 3052 0 R (1104) 3053 0 R (1105) 3054 0 R (1106) 3055 0 R (1107) 3056 0 R (1109) 3058 0 R (111) 2169 0 R (1110) 3059 0 R (1111) 3060 0 R (1112) 3061 0 R (1113) 3062 0 R (1114) 3063 0 R (1115) 3064 0 R (1116) 3069 0 R (1117) 3070 0 R (1118) 3071 0 R (1119) 3072 0 R (112) 2170 0 R (1120) 3073 0 R (1121) 3074 0 R (1122) 3075 0 R (1123) 3076 0 R (1124) 3077 0 R (1126) 3079 0 R (1129) 3080 0 R (113) 2171 0 R (1130) 3081 0 R (1132) 3083 0 R (1133) 3084 0 R (1134) 3085 0 R (1135) 3086 0 R (114) 2172 0 R (1140) 3091 0 R (1143) 3092 0 R (1144) 3093 0 R (1146) 3094 0 R (1148) 3095 0 R (1149) 3096 0 R (1150) 3097 0 R (1152) 3098 0 R (1153) 3099 0 R (1154) 3100 0 R (1155) 3101 0 R (1156) 3102 0 R (1157) 3103 0 R (1158) 3104 0 R (1160) 3105 0 R (1161) 3106 0 R (1162) 3107 0 R (1163) 3108 0 R (1164) 3109 0 R (1165) 3110 0 R (1166) 3111 0 R (1168) 3112 0 R (1169) 3113 0 R (117) 2176 0 R (1170) 3114 0 R (1171) 3115 0 R (1172) 3116 0 R (1173) 3117 0 R (1174) 3118 0 R (1176) 3119 0 R (1177) 3120 0 R (1178) 3121 0 R (1179) 3122 0 R (1181) 3123 0 R (1182) 3124 0 R (1183) 3125 0 R (1184) 3130 0 R (1185) 3131 0 R (1186) 3132 0 R (1188) 3133 0 R (1189) 3134 0 R (119) 2177 0 R (1190) 3135 0 R (1191) 3136 0 R (1192) 3137 0 R (1193) 3138 0 R (1194) 3139 0 R (1196) 3140 0 R (1197) 3141 0 R (1198) 3142 0 R (12.0) 1046 0 R (12.62.1) 1050 0 R (12.63.1) 1054 0 R (12.64.1) 1058 0 R (120) 2178 0 R (1200) 3143 0 R (1201) 3144 0 R (1202) 3145 0 R (1203) 3146 0 R (1204) 3147 0 R (1205) 3148 0 R (1206) 3149 0 R (1208) 3150 0 R (1209) 3151 0 R (121) 2179 0 R (1210) 3152 0 R (1211) 3153 0 R (1212) 3154 0 R (1213) 3155 0 R (1214) 3156 0 R (1216) 3157 0 R (1217) 3158 0 R (1218) 3159 0 R (1219) 3160 0 R (1220) 3161 0 R (1221) 3162 0 R (1223) 3163 0 R (1224) 3164 0 R (1225) 3165 0 R (1226) 3166 0 R (1227) 3167 0 R (1229) 3172 0 R (1230) 3173 0 R (1231) 3174 0 R (1234) 3175 0 R (1235) 3176 0 R (1237) 3177 0 R (1238) 3178 0 R (1239) 3179 0 R (1240) 3180 0 R (1243) 3181 0 R (1244) 3182 0 R (1246) 3183 0 R (1247) 3184 0 R (1248) 3185 0 R (1249) 3186 0 R (1251) 3187 0 R (1252) 3188 0 R (1253) 3189 0 R (1254) 3190 0 R (1257) 3191 0 R (1260) 3197 0 R (1261) 3198 0 R (1263) 3199 0 R (1264) 3200 0 R (1265) 3201 0 R (1266) 3202 0 R (1267) 3203 0 R (1268) 3204 0 R (1270) 3205 0 R (1271) 3206 0 R (1272) 3207 0 R (1275) 3208 0 R (1276) 3209 0 R (1278) 3210 0 R (1279) 3211 0 R (1280) 3212 0 R (1282) 3213 0 R (1283) 3214 0 R (1284) 3215 0 R (1287) 3220 0 R (1288) 3221 0 R (1291) 3222 0 R (1292) 3223 0 R (1295) 3224 0 R (1297) 3226 0 R (1299) 3227 0 R (13.0) 1062 0 R (13.65.1) 1066 0 R (13.66.1) 1070 0 R (13.67.1) 1074 0 R (13.68.1) 1078 0 R (13.69.1) 1082 0 R (13.70.1) 1086 0 R (13.71.1) 1090 0 R (13.72.1) 1094 0 R (13.73.1) 1098 0 R (13.74.1) 1102 0 R (13.75.1) 1106 0 R (13.76.1) 1110 0 R (1300) 3228 0 R (1301) 3229 0 R (1303) 3230 0 R (1304) 3231 0 R (1305) 3232 0 R (1306) 3233 0 R (1308) 3234 0 R (1309) 3235 0 R (1310) 3236 0 R (1313) 3238 0 R (1314) 3239 0 R (1315) 3240 0 R (1319) 3242 0 R (1320) 3247 0 R (1321) 3248 0 R (1322) 3249 0 R (1323) 3250 0 R (1326) 3252 0 R (1327) 3253 0 R (1328) 3254 0 R (1331) 3256 0 R (1332) 3257 0 R (1333) 3258 0 R (1334) 3259 0 R (1335) 3260 0 R (1338) 3262 0 R (1339) 3263 0 R (1340) 3264 0 R (1341) 3265 0 R (1342) 3266 0 R (1343) 3267 0 R (1344) 3268 0 R (1345) 3269 0 R (1346) 3270 0 R (1347) 3271 0 R (1348) 3272 0 R (1349) 3273 0 R (1352) 3275 0 R (1353) 3276 0 R (1354) 3277 0 R (1355) 3278 0 R (1358) 3285 0 R (1359) 3286 0 R (1360) 3287 0 R (1361) 3288 0 R (1364) 3290 0 R (1365) 3291 0 R (1366) 3292 0 R (1367) 3293 0 R (1370) 3295 0 R (1371) 3296 0 R (1372) 3297 0 R (1373) 3298 0 R (1376) 3299 0 R (1377) 3300 0 R (1378) 3301 0 R (1380) 3303 0 R (1381) 3304 0 R (1384) 3306 0 R (1385) 3307 0 R (1386) 3308 0 R (1387) 3309 0 R (1388) 3310 0 R (1391) 3312 0 R (1392) 3313 0 R (1395) 3315 0 R (1396) 3316 0 R (1399) 3318 0 R (14.0) 1114 0 R (1400) 3319 0 R (1401) 3324 0 R (1402) 3325 0 R (1405) 3326 0 R (1406) 3327 0 R (1408) 3328 0 R (1409) 3329 0 R (1410) 3330 0 R (1411) 3331 0 R (1413) 3332 0 R (1414) 3333 0 R (1415) 3334 0 R (1417) 3335 0 R (1418) 3336 0 R (1419) 3337 0 R (1421) 3338 0 R (1422) 3339 0 R (1423) 3340 0 R (1425) 3341 0 R (1426) 3342 0 R (1427) 3343 0 R (1430) 3344 0 R (1433) 3349 0 R (1436) 3350 0 R (1437) 3351 0 R (1438) 3352 0 R (1439) 3353 0 R (1440) 3354 0 R (1443) 3355 0 R (1448) 3356 0 R (1449) 3357 0 R (1450) 3358 0 R (1455) 3364 0 R (1456) 3365 0 R (1457) 3366 0 R (1458) 3367 0 R (1459) 3368 0 R (1460) 3369 0 R (1465) 3371 0 R (1466) 3372 0 R (1467) 3373 0 R (1468) 3374 0 R (1472) 3377 0 R (1473) 3378 0 R (1474) 3379 0 R (1475) 3380 0 R (1476) 3381 0 R (1477) 3382 0 R (1478) 3383 0 R (1479) 3384 0 R (1480) 3385 0 R (1481) 3386 0 R (1482) 3387 0 R (1485) 3392 0 R (1486) 3393 0 R (1487) 3394 0 R (1488) 3395 0 R (1489) 3396 0 R (1490) 3397 0 R (1491) 3398 0 R (1492) 3399 0 R (1493) 3400 0 R (1494) 3401 0 R (1495) 3402 0 R (1496) 3403 0 R (1497) 3404 0 R (1498) 3405 0 R (1499) 3406 0 R (15.0) 1118 0 R (15.76.108.2) 1122 0 R (1500) 3407 0 R (1501) 3408 0 R (1502) 3409 0 R (1503) 3410 0 R (1504) 3411 0 R (1505) 3412 0 R (1506) 3413 0 R (1507) 3414 0 R (1508) 3415 0 R (1509) 3416 0 R (1510) 3417 0 R (1511) 3418 0 R (1512) 3419 0 R (1513) 3420 0 R (1514) 3421 0 R (1515) 3422 0 R (1516) 3423 0 R (1517) 3424 0 R (1518) 3425 0 R (1519) 3426 0 R (1520) 3427 0 R (1521) 3428 0 R (1522) 3429 0 R (1523) 3430 0 R (1524) 3431 0 R (1525) 3432 0 R (1526) 3433 0 R (1527) 3434 0 R (1528) 3435 0 R (1529) 3436 0 R (1530) 3437 0 R (1531) 3438 0 R (1532) 3444 0 R (1533) 3445 0 R (1534) 3446 0 R (1535) 3447 0 R (1536) 3448 0 R (1537) 3449 0 R (1538) 3450 0 R (1539) 3451 0 R (1542) 3452 0 R (1543) 3453 0 R (1547) 3455 0 R (1548) 3456 0 R (1549) 3457 0 R (1550) 3458 0 R (1551) 3459 0 R (1552) 3460 0 R (1553) 3461 0 R (1554) 3462 0 R (1555) 3463 0 R (1558) 3464 0 R (1559) 3470 0 R (1560) 3471 0 R (1561) 3443 0 R (1563) 3472 0 R (1566) 3473 0 R (1569) 3476 0 R (1570) 3477 0 R (1571) 3478 0 R (1572) 3479 0 R (1573) 3480 0 R (1575) 3481 0 R (1576) 3482 0 R (1577) 3483 0 R (1579) 3484 0 R (1580) 3485 0 R (1581) 3486 0 R (1583) 3487 0 R (1584) 3488 0 R (1585) 3489 0 R (1587) 3490 0 R (1588) 3491 0 R (1589) 3492 0 R (1591) 3493 0 R (1592) 3494 0 R (1593) 3495 0 R (1595) 3496 0 R (1596) 3497 0 R (1597) 3498 0 R (1599) 3499 0 R (16.0) 1126 0 R (16.76.109.2) 1130 0 R (16.76.109.57.3) 1134 0 R (1600) 3500 0 R (1601) 3501 0 R (1603) 3502 0 R (1604) 3503 0 R (1605) 3504 0 R (1607) 3510 0 R (1608) 3511 0 R (1609) 3512 0 R (1611) 3469 0 R (1612) 3513 0 R (1613) 3514 0 R (1614) 3515 0 R (1618) 3517 0 R (1619) 3518 0 R (1620) 3519 0 R (1621) 3520 0 R (1622) 3521 0 R (1623) 3522 0 R (1624) 3523 0 R (1625) 3524 0 R (1626) 3525 0 R (1627) 3526 0 R (1628) 3527 0 R (1629) 3528 0 R (1630) 3529 0 R (1634) 3531 0 R (1637) 3532 0 R (1638) 3533 0 R (1640) 3535 0 R (1642) 3537 0 R (1646) 3543 0 R (1647) 3544 0 R (1648) 3545 0 R (1649) 3546 0 R (1651) 3548 0 R (1652) 3549 0 R (1654) 3551 0 R (1655) 3552 0 R (1656) 3553 0 R (1657) 3554 0 R (1658) 3555 0 R (1659) 3556 0 R (1660) 3557 0 R (1661) 3558 0 R (1662) 3559 0 R (1663) 3560 0 R (1664) 3561 0 R (1665) 3562 0 R (1666) 3563 0 R (1667) 3564 0 R (1668) 3565 0 R (1669) 3566 0 R (1670) 3567 0 R (1671) 3568 0 R (1672) 3569 0 R (1673) 3570 0 R (1674) 3571 0 R (1675) 3572 0 R (1676) 3573 0 R (1679) 3574 0 R (1680) 3575 0 R (1681) 3576 0 R (1682) 3582 0 R (1683) 3583 0 R (1684) 3584 0 R (1685) 3585 0 R (1686) 3586 0 R (1687) 3587 0 R (1688) 3588 0 R (1689) 3589 0 R (1690) 3590 0 R (1691) 3591 0 R (1692) 3592 0 R (1693) 3593 0 R (1694) 3594 0 R (1695) 3595 0 R (1696) 3596 0 R (1697) 3597 0 R (1698) 3598 0 R (1699) 3599 0 R (17.0) 1138 0 R (17.76.110.2) 1142 0 R (17.76.111.2) 1146 0 R (17.76.112.2) 1150 0 R (1700) 3600 0 R (1701) 3601 0 R (1702) 3602 0 R (1703) 3607 0 R (1704) 3608 0 R (1705) 3609 0 R (1706) 3610 0 R (1707) 3611 0 R (1708) 3612 0 R (1709) 3613 0 R (1710) 3614 0 R (1714) 3616 0 R (1715) 3617 0 R (1716) 3618 0 R (1717) 3623 0 R (1718) 3624 0 R (1719) 3625 0 R (1720) 3626 0 R (1721) 3627 0 R (1722) 3628 0 R (1723) 3629 0 R (1724) 3630 0 R (1725) 3631 0 R (1726) 3632 0 R (1727) 3633 0 R (1728) 3634 0 R (1729) 3635 0 R (1730) 3636 0 R (1731) 3637 0 R (1732) 3638 0 R (1733) 3639 0 R (1734) 3640 0 R (1737) 3641 0 R (1738) 3642 0 R (1739) 3643 0 R (1740) 3644 0 R (1741) 3645 0 R (1742) 3646 0 R (1743) 3647 0 R (1744) 3648 0 R (1745) 3649 0 R (1748) 3650 0 R (1749) 3651 0 R (1750) 3652 0 R (1751) 3653 0 R (1752) 3654 0 R (1753) 3655 0 R (1754) 3656 0 R (1755) 3657 0 R (1756) 3658 0 R (1757) 3659 0 R (1758) 3660 0 R (1759) 3661 0 R (1760) 3662 0 R (1763) 3667 0 R (1764) 3668 0 R (1765) 3669 0 R (1766) 3670 0 R (1769) 3671 0 R (1770) 3672 0 R (1771) 3673 0 R (1772) 3674 0 R (1773) 3675 0 R (1774) 3676 0 R (1775) 3677 0 R (1776) 3678 0 R (1777) 3679 0 R (1778) 3680 0 R (1779) 3681 0 R (1780) 3682 0 R (1781) 3683 0 R (1782) 3684 0 R (1783) 3685 0 R (1784) 3686 0 R (1785) 3687 0 R (1786) 3688 0 R (1787) 3689 0 R (1788) 3690 0 R (1789) 3691 0 R (1790) 3692 0 R (1791) 3693 0 R (1792) 3694 0 R (1793) 3695 0 R (1794) 3696 0 R (1795) 3697 0 R (18.0) 1154 0 R (18.76.113.2) 1158 0 R (18.76.114.2) 1162 0 R (18.76.115.2) 1166 0 R (18.76.116.2) 1170 0 R (1800) 3698 0 R (1801) 3699 0 R (1803) 3700 0 R (1804) 3701 0 R (1805) 3702 0 R (1806) 3703 0 R (1808) 3704 0 R (1809) 3705 0 R (1810) 3706 0 R (1811) 3707 0 R (1812) 3708 0 R (1814) 3709 0 R (1815) 3710 0 R (1816) 3711 0 R (1817) 3712 0 R (1818) 3713 0 R (1819) 3714 0 R (182) 2185 0 R (1820) 3715 0 R (1823) 3720 0 R (1824) 3721 0 R (1825) 3722 0 R (1826) 3723 0 R (1827) 3724 0 R (1828) 3725 0 R (1829) 3726 0 R (183) 2186 0 R (1830) 3727 0 R (1831) 3728 0 R (1832) 3729 0 R (1833) 3730 0 R (1836) 3731 0 R (1839) 3732 0 R (1840) 3733 0 R (1841) 3734 0 R (1842) 3735 0 R (1843) 3736 0 R (1844) 3737 0 R (1845) 3738 0 R (1846) 3739 0 R (1847) 3740 0 R (1848) 3741 0 R (1849) 3742 0 R (1850) 3743 0 R (1851) 3744 0 R (1852) 3745 0 R (1853) 3746 0 R (1854) 3747 0 R (1855) 3748 0 R (1856) 3749 0 R (1857) 3750 0 R (1860) 3751 0 R (1861) 3752 0 R (1862) 3753 0 R (1863) 3754 0 R (1864) 3755 0 R (1867) 3761 0 R (1868) 3762 0 R (1869) 3763 0 R (1870) 3764 0 R (1871) 3765 0 R (1874) 3766 0 R (1875) 3767 0 R (1879) 3769 0 R (188) 2191 0 R (1880) 3770 0 R (1883) 3772 0 R (1886) 3774 0 R (1887) 3775 0 R (1888) 3776 0 R (189) 2192 0 R (1891) 3778 0 R (1892) 3779 0 R (1893) 3780 0 R (1894) 3781 0 R (1895) 3782 0 R (1896) 3783 0 R (1897) 3784 0 R (1898) 3785 0 R (1899) 3786 0 R (19.0) 1174 0 R (19.76.117.2) 1178 0 R (19.76.118.2) 1182 0 R (190) 2193 0 R (1900) 3787 0 R (1901) 3788 0 R (1902) 3789 0 R (1903) 3790 0 R (1904) 3791 0 R (1905) 3792 0 R (1906) 3793 0 R (1907) 3794 0 R (1908) 3795 0 R (1909) 3796 0 R (191) 2197 0 R (1910) 3797 0 R (1911) 3798 0 R (1912) 3799 0 R (1913) 3806 0 R (1914) 3760 0 R (1916) 3807 0 R (1917) 3808 0 R (1918) 3809 0 R (1919) 3810 0 R (1920) 3811 0 R (1921) 3812 0 R (1924) 3814 0 R (1925) 3815 0 R (1926) 3816 0 R (1929) 3818 0 R (193) 2200 0 R (1930) 3819 0 R (1933) 3821 0 R (1934) 3822 0 R (1935) 3823 0 R (1936) 3824 0 R (1937) 3825 0 R (1938) 3826 0 R (194) 2201 0 R (1941) 3828 0 R (1942) 3829 0 R (1945) 3831 0 R (1946) 3832 0 R (1947) 3833 0 R (1948) 3834 0 R (195) 2202 0 R (1951) 3840 0 R (1954) 3841 0 R (1955) 3842 0 R (1956) 3843 0 R (1957) 3844 0 R (196) 2203 0 R (1960) 3846 0 R (1961) 3847 0 R (1964) 3848 0 R (1965) 3849 0 R (1966) 3850 0 R (1967) 3851 0 R (1968) 3852 0 R (1969) 3853 0 R (197) 2204 0 R (1970) 3854 0 R (1971) 3855 0 R (1974) 3856 0 R (1975) 3857 0 R (1977) 3859 0 R (198) 2205 0 R (1980) 3864 0 R (1981) 3865 0 R (1982) 3866 0 R (1983) 3867 0 R (1984) 3868 0 R (1987) 3869 0 R (1988) 3870 0 R (1989) 3871 0 R (199) 2206 0 R (1990) 3872 0 R (1991) 3873 0 R (1992) 3874 0 R (1993) 3875 0 R (1994) 3876 0 R (1995) 3877 0 R (1996) 3878 0 R (1997) 3879 0 R (1998) 3880 0 R (1999) 3881 0 R (2.0) 6 0 R (20.0) 1186 0 R (20.76.119.2) 1190 0 R (2000) 3882 0 R (2008) 3886 0 R (2009) 3887 0 R (2010) 3888 0 R (2011) 3889 0 R (2012) 3890 0 R (2013) 3891 0 R (2015) 3893 0 R (2016) 3894 0 R (2017) 3895 0 R (2018) 3896 0 R (2019) 3897 0 R (202) 2208 0 R (2020) 3898 0 R (2023) 3899 0 R (2027) 3906 0 R (2030) 3907 0 R (2031) 3908 0 R (2034) 3909 0 R (2035) 3910 0 R (2036) 3911 0 R (2039) 3912 0 R (2040) 3913 0 R (2041) 3914 0 R (2042) 3915 0 R (2043) 3916 0 R (2044) 3917 0 R (2045) 3918 0 R (2048) 3919 0 R (2049) 3904 0 R (205) 2210 0 R (2052) 3924 0 R (2053) 3925 0 R (2054) 3926 0 R (2055) 3927 0 R (2056) 3928 0 R (2057) 3929 0 R (2058) 3930 0 R (2059) 3931 0 R (2060) 3932 0 R (2061) 3933 0 R (2062) 3934 0 R (2063) 3935 0 R (2064) 3936 0 R (2065) 3937 0 R (2066) 3938 0 R (2067) 3939 0 R (2070) 3940 0 R (2071) 3941 0 R (2072) 3942 0 R (2073) 3943 0 R (2074) 3944 0 R (2075) 3945 0 R (2078) 3951 0 R (2079) 3952 0 R (208) 2212 0 R (2080) 3953 0 R (2081) 3954 0 R (2082) 3955 0 R (2083) 3956 0 R (2084) 3957 0 R (2086) 3960 0 R (2087) 3961 0 R (2089) 3963 0 R (2090) 3964 0 R (2092) 3966 0 R (2093) 3967 0 R (2095) 3969 0 R (2096) 3970 0 R (2097) 3971 0 R (21.0) 1194 0 R (21.76.120.2) 1198 0 R (2100) 3972 0 R (2101) 3973 0 R (2102) 3974 0 R (2103) 3975 0 R (2104) 3976 0 R (2105) 3977 0 R (2106) 3978 0 R (2107) 3979 0 R (2108) 3980 0 R (2109) 3981 0 R (211) 2214 0 R (2110) 3982 0 R (2111) 3983 0 R (2112) 3950 0 R (2114) 3989 0 R (2115) 3990 0 R (2116) 3991 0 R (2117) 3992 0 R (2121) 3994 0 R (2122) 3995 0 R (2123) 3996 0 R (2124) 3997 0 R (2125) 3998 0 R (2127) 4000 0 R (2128) 4001 0 R (2130) 4002 0 R (2131) 4003 0 R (2132) 4004 0 R (2133) 4005 0 R (2135) 4006 0 R (2136) 4007 0 R (2137) 4008 0 R (2138) 4009 0 R (214) 2216 0 R (2140) 4014 0 R (2141) 4015 0 R (2142) 4016 0 R (2143) 4017 0 R (2145) 4018 0 R (2146) 4019 0 R (2147) 4020 0 R (2148) 4021 0 R (2150) 4022 0 R (2151) 4023 0 R (2152) 4024 0 R (2153) 4025 0 R (2156) 4027 0 R (2157) 4028 0 R (2158) 4029 0 R (2159) 4030 0 R (2163) 4032 0 R (2164) 4033 0 R (2165) 4034 0 R (2166) 4035 0 R (2168) 4037 0 R (2169) 4038 0 R (217) 2218 0 R (2171) 4040 0 R (2172) 4041 0 R (2174) 1735 0 R (2176) 4043 0 R (2180) 4049 0 R (2181) 4050 0 R (2182) 4051 0 R (2183) 4052 0 R (2184) 4053 0 R (2185) 4054 0 R (2186) 4055 0 R (2187) 4056 0 R (2190) 4061 0 R (2191) 4062 0 R (2192) 4063 0 R (2197) 4064 0 R (22.0) 1202 0 R (22.76.121.2) 1206 0 R (22.76.122.2) 1210 0 R (2200) 4065 0 R (2202) 4067 0 R (2203) 4068 0 R (2204) 4069 0 R (2205) 4070 0 R (2207) 4072 0 R (2208) 4073 0 R (2209) 4074 0 R (221) 2219 0 R (2210) 4075 0 R (2211) 4076 0 R (2212) 4077 0 R (2213) 4078 0 R (2214) 4079 0 R (2215) 4080 0 R (2216) 4081 0 R (2217) 4082 0 R (222) 2220 0 R (2221) 4083 0 R (2222) 4084 0 R (2227) 4091 0 R (223) 2221 0 R (2233) 4093 0 R (2234) 4094 0 R (2235) 4095 0 R (2236) 4096 0 R (224) 2222 0 R (2240) 4098 0 R (2241) 4099 0 R (2242) 4100 0 R (2243) 4101 0 R (2244) 4102 0 R (2248) 4104 0 R (2249) 4105 0 R (2251) 4106 0 R (2252) 4107 0 R (2253) 4108 0 R (2254) 4109 0 R (2255) 4110 0 R (2256) 4111 0 R (2261) 4113 0 R (2265) 4116 0 R (2266) 4117 0 R (2267) 4118 0 R (227) 2227 0 R (2272) 4123 0 R (2273) 4124 0 R (2274) 4125 0 R (2275) 4126 0 R (2279) 4129 0 R (2280) 4130 0 R (2281) 4131 0 R (2282) 4132 0 R (2283) 4133 0 R (2284) 4134 0 R (2286) 4135 0 R (2287) 4136 0 R (2288) 4137 0 R (2289) 4138 0 R (2290) 4139 0 R (2291) 4140 0 R (2292) 4141 0 R (2293) 4142 0 R (2294) 4143 0 R (2295) 4144 0 R (2296) 4145 0 R (2297) 4146 0 R (2299) 4147 0 R (23.0) 1214 0 R (23.76.123.2) 1218 0 R (23.76.124.2) 1222 0 R (23.76.125.2) 1226 0 R (230) 2228 0 R (2300) 4148 0 R (2301) 4149 0 R (2302) 4150 0 R (2303) 4151 0 R (2304) 4152 0 R (2305) 4153 0 R (2306) 4154 0 R (2307) 4155 0 R (2308) 4156 0 R (2309) 4157 0 R (231) 2229 0 R (2310) 4158 0 R (2311) 4159 0 R (2313) 4160 0 R (2314) 4161 0 R (2315) 4162 0 R (2316) 4163 0 R (2317) 4164 0 R (2318) 4165 0 R (2319) 4166 0 R (232) 2230 0 R (2320) 4167 0 R (2321) 4168 0 R (2323) 4169 0 R (2324) 4170 0 R (2325) 4171 0 R (2326) 4172 0 R (2327) 4173 0 R (2328) 4174 0 R (2329) 4175 0 R (233) 2231 0 R (2330) 4176 0 R (2331) 4177 0 R (2332) 4178 0 R (2333) 4179 0 R (2334) 4180 0 R (2335) 4181 0 R (2336) 4182 0 R (2337) 4183 0 R (2338) 4184 0 R (2339) 4185 0 R (234) 2232 0 R (2340) 4186 0 R (2341) 4187 0 R (2342) 4188 0 R (2343) 4189 0 R (2344) 4190 0 R (2345) 4191 0 R (2346) 4192 0 R (2347) 4193 0 R (2348) 4194 0 R (2349) 4201 0 R (235) 2233 0 R (2350) 4202 0 R (2351) 4203 0 R (2352) 4204 0 R (2353) 4205 0 R (2359) 4207 0 R (236) 2234 0 R (2360) 4208 0 R (2361) 4209 0 R (2362) 4210 0 R (2363) 4211 0 R (2364) 4212 0 R (2369) 4217 0 R (237) 2235 0 R (2370) 4218 0 R (2371) 4219 0 R (2372) 4220 0 R (2375) 4221 0 R (2376) 4222 0 R (2377) 4223 0 R (2378) 4224 0 R (2379) 4225 0 R (238) 2236 0 R (2380) 4226 0 R (2381) 4227 0 R (2382) 4228 0 R (2383) 4229 0 R (2384) 4230 0 R (2385) 4231 0 R (2386) 4232 0 R (2387) 4233 0 R (2388) 4234 0 R (2389) 4235 0 R (2390) 4236 0 R (2391) 4237 0 R (2392) 4238 0 R (2393) 4239 0 R (2394) 4240 0 R (2395) 4245 0 R (2396) 4246 0 R (2397) 4247 0 R (2398) 4248 0 R (24) 2093 0 R (24.0) 1230 0 R (24.76.126.2) 1234 0 R (2401) 4249 0 R (2402) 4250 0 R (2403) 4251 0 R (2404) 4252 0 R (2405) 4253 0 R (2406) 4254 0 R (2407) 4255 0 R (241) 2237 0 R (242) 2238 0 R (2428) 4257 0 R (2429) 4258 0 R (243) 2239 0 R (2430) 4259 0 R (2431) 4260 0 R (2432) 4261 0 R (2433) 4262 0 R (2434) 4263 0 R (2435) 4264 0 R (2436) 4265 0 R (2437) 4266 0 R (2438) 4267 0 R (2439) 4268 0 R (244) 2240 0 R (2440) 4269 0 R (2441) 4270 0 R (2442) 4271 0 R (2443) 4272 0 R (2444) 4273 0 R (2445) 4274 0 R (2446) 4275 0 R (2447) 4276 0 R (2448) 4277 0 R (2449) 4278 0 R (245) 2241 0 R (2450) 4279 0 R (2451) 4280 0 R (2452) 4281 0 R (2453) 4282 0 R (2454) 4283 0 R (2455) 4284 0 R (2456) 4285 0 R (2457) 4286 0 R (2458) 4287 0 R (2459) 4288 0 R (2460) 4289 0 R (2461) 4290 0 R (2462) 4296 0 R (2463) 4297 0 R (2464) 4298 0 R (2465) 4299 0 R (2466) 4300 0 R (2467) 4301 0 R (2468) 4302 0 R (2469) 4303 0 R (2470) 4304 0 R (2471) 4305 0 R (2472) 4306 0 R (2473) 4307 0 R (2474) 4308 0 R (248) 2242 0 R (249) 2243 0 R (2495) 4310 0 R (2496) 4311 0 R (2497) 4312 0 R (2498) 4313 0 R (2499) 4314 0 R (25) 2094 0 R (25.0) 1238 0 R (25.76.127.2) 1242 0 R (25.76.128.2) 1246 0 R (250) 2244 0 R (2500) 4315 0 R (2501) 4316 0 R (2502) 4317 0 R (2503) 4318 0 R (2504) 4319 0 R (2505) 4320 0 R (2506) 4321 0 R (2509) 4322 0 R (251) 2245 0 R (2511) 4324 0 R (2512) 4325 0 R (2515) 4331 0 R (252) 2250 0 R (2520) 4332 0 R (2521) 4333 0 R (2522) 4334 0 R (2523) 4335 0 R (2527) 4341 0 R (2528) 4330 0 R (2529) 4342 0 R (2530) 4343 0 R (2531) 4344 0 R (2532) 4345 0 R (2533) 4346 0 R (2534) 4347 0 R (2535) 4348 0 R (2536) 4349 0 R (2537) 4350 0 R (2538) 4351 0 R (2539) 4352 0 R (2540) 4353 0 R (2541) 4354 0 R (2542) 4355 0 R (2543) 4356 0 R (2546) 4357 0 R (2547) 4358 0 R (255) 2251 0 R (2550) 4359 0 R (2551) 4360 0 R (2552) 4361 0 R (2553) 4362 0 R (2554) 4363 0 R (2555) 4364 0 R (2556) 4365 0 R (2557) 4366 0 R (2558) 4367 0 R (2559) 4368 0 R (256) 2252 0 R (2560) 4369 0 R (2561) 4370 0 R (2562) 4376 0 R (2565) 4377 0 R (2566) 4378 0 R (2567) 4379 0 R (2568) 4380 0 R (2569) 4381 0 R (2570) 4382 0 R (2573) 4383 0 R (2574) 4384 0 R (2575) 4385 0 R (2576) 4386 0 R (2577) 4387 0 R (258) 2254 0 R (2580) 4388 0 R (2583) 4389 0 R (2584) 4390 0 R (2585) 4391 0 R (259) 2255 0 R (26) 2095 0 R (26.0) 1250 0 R (26.76.129.2) 1254 0 R (26.76.130.2) 1258 0 R (260) 2256 0 R (2606) 4397 0 R (2609) 4398 0 R (2610) 4399 0 R (2612) 4401 0 R (2613) 4402 0 R (2614) 4403 0 R (2615) 4404 0 R (2620) 4405 0 R (2621) 4406 0 R (2622) 4407 0 R (2623) 4408 0 R (2624) 4409 0 R (2625) 4410 0 R (2626) 4411 0 R (2627) 4412 0 R (2628) 4413 0 R (2629) 4414 0 R (263) 2257 0 R (2630) 4415 0 R (2631) 4416 0 R (2632) 4417 0 R (2633) 4418 0 R (2634) 4423 0 R (2635) 4424 0 R (2636) 4425 0 R (2637) 4426 0 R (2638) 4427 0 R (2639) 4428 0 R (264) 2258 0 R (2640) 4429 0 R (2641) 4430 0 R (2642) 4431 0 R (2643) 4432 0 R (2644) 4433 0 R (2645) 4434 0 R (2646) 4435 0 R (2647) 4436 0 R (2648) 4437 0 R (2649) 4438 0 R (265) 2259 0 R (2652) 4439 0 R (2653) 4440 0 R (2654) 4441 0 R (2657) 4446 0 R (2658) 4447 0 R (2659) 4448 0 R (266) 2260 0 R (2660) 4449 0 R (2661) 4450 0 R (2662) 4451 0 R (2663) 4452 0 R (2664) 4453 0 R (2665) 4454 0 R (2666) 4455 0 R (2669) 4456 0 R (267) 2261 0 R (2670) 4457 0 R (2671) 4458 0 R (268) 2262 0 R (2681) 4460 0 R (2684) 4466 0 R (2687) 4467 0 R (269) 2263 0 R (2690) 4468 0 R (2693) 4469 0 R (2696) 4470 0 R (2697) 4471 0 R (27.0) 1262 0 R (27.76.131.2) 1266 0 R (27.76.132.2) 1270 0 R (270) 2264 0 R (2700) 4472 0 R (2703) 4473 0 R (2704) 1878 0 R (2706) 4479 0 R (2707) 4480 0 R (2708) 4465 0 R (271) 2265 0 R (2717) 4482 0 R (272) 2266 0 R (2720) 4483 0 R (2721) 4484 0 R (2724) 4485 0 R (2727) 4486 0 R (2728) 4487 0 R (2729) 4488 0 R (273) 2267 0 R (2732) 4494 0 R (2733) 4495 0 R (2734) 4478 0 R (2736) 4496 0 R (2737) 4497 0 R (2738) 4498 0 R (2741) 4499 0 R (2744) 4500 0 R (2745) 4501 0 R (2746) 4502 0 R (2747) 4503 0 R (2748) 4504 0 R (2749) 4505 0 R (2750) 4506 0 R (2751) 4507 0 R (2752) 4508 0 R (2753) 4509 0 R (2754) 4510 0 R (2755) 4511 0 R (2756) 4512 0 R (2757) 4513 0 R (2758) 4514 0 R (2759) 4515 0 R (276) 2268 0 R (2760) 4516 0 R (2761) 4517 0 R (2762) 4518 0 R (2763) 4519 0 R (2764) 4520 0 R (2765) 4521 0 R (2768) 4522 0 R (2769) 4523 0 R (277) 2269 0 R (2770) 4524 0 R (2771) 4525 0 R (2772) 4526 0 R (2773) 4531 0 R (2774) 4532 0 R (2775) 4533 0 R (2776) 4534 0 R (2777) 4535 0 R (2778) 4536 0 R (2779) 4537 0 R (2780) 4538 0 R (2781) 4539 0 R (2782) 4540 0 R (2783) 4541 0 R (2784) 4542 0 R (2785) 4543 0 R (2786) 4544 0 R (2787) 4545 0 R (2788) 4546 0 R (2789) 4547 0 R (279) 2271 0 R (2790) 4548 0 R (2791) 4549 0 R (2792) 4550 0 R (2793) 4551 0 R (2794) 4552 0 R (2795) 4553 0 R (2796) 4554 0 R (2797) 4555 0 R (2798) 4556 0 R (2799) 4557 0 R (28) 2097 0 R (28.0) 1274 0 R (28.76.133.2) 1278 0 R (280) 2272 0 R (2800) 4558 0 R (2801) 4559 0 R (2802) 4560 0 R (2803) 4561 0 R (2804) 4562 0 R (2805) 4563 0 R (2806) 4564 0 R (2807) 4565 0 R (2808) 4566 0 R (2809) 4572 0 R (281) 2273 0 R (2810) 4573 0 R (2811) 4574 0 R (2812) 4575 0 R (2815) 4576 0 R (2819) 4578 0 R (282) 2274 0 R (2820) 4579 0 R (2821) 4580 0 R (2824) 4581 0 R (2825) 4582 0 R (2826) 4583 0 R (2827) 4584 0 R (2829) 4585 0 R (283) 2275 0 R (2830) 4586 0 R (2831) 4587 0 R (2833) 4588 0 R (2834) 4589 0 R (2835) 4590 0 R (2837) 4591 0 R (2838) 4592 0 R (2839) 4593 0 R (284) 2276 0 R (2841) 4594 0 R (2842) 4595 0 R (2843) 4596 0 R (2845) 4597 0 R (2846) 4598 0 R (2847) 4599 0 R (2849) 4600 0 R (285) 2281 0 R (2850) 4601 0 R (2851) 4602 0 R (2853) 4603 0 R (2854) 4604 0 R (2855) 4605 0 R (2857) 4610 0 R (2858) 4611 0 R (2859) 4612 0 R (286) 2249 0 R (2861) 4571 0 R (2862) 4613 0 R (2863) 4614 0 R (2865) 4615 0 R (2866) 4616 0 R (2867) 4617 0 R (2869) 4618 0 R (2870) 4619 0 R (2871) 4620 0 R (2873) 4621 0 R (2874) 4622 0 R (2875) 4623 0 R (2877) 4624 0 R (2878) 4625 0 R (2879) 4626 0 R (2880) 4627 0 R (2881) 4628 0 R (2885) 4630 0 R (2888) 4631 0 R (2889) 4632 0 R (289) 2284 0 R (2890) 4633 0 R (2891) 4634 0 R (2892) 4635 0 R (2895) 4640 0 R (2896) 4641 0 R (2897) 4642 0 R (2898) 4643 0 R (2899) 4644 0 R (290) 2285 0 R (2900) 4645 0 R (2901) 1987 0 R (2903) 4646 0 R (2904) 4647 0 R (2905) 4648 0 R (2906) 4649 0 R (2907) 4650 0 R (291) 2286 0 R (2910) 4651 0 R (2911) 4657 0 R (2914) 4658 0 R (2915) 4659 0 R (2916) 4660 0 R (2917) 4661 0 R (2918) 4662 0 R (2919) 4663 0 R (292) 2287 0 R (2920) 4664 0 R (2921) 4665 0 R (2924) 4666 0 R (2925) 4667 0 R (2926) 4673 0 R (2927) 4674 0 R (2928) 4656 0 R (2929) 4675 0 R (293) 2288 0 R (2931) 4677 0 R (2932) 4678 0 R (2936) 4680 0 R (2937) 4681 0 R (2938) 4682 0 R (294) 2289 0 R (2941) 4683 0 R (2942) 4684 0 R (2943) 4685 0 R (2944) 4686 0 R (2945) 4691 0 R (2946) 4692 0 R (2947) 4693 0 R (2948) 4694 0 R (295) 2290 0 R (2951) 4695 0 R (2952) 4696 0 R (2953) 4697 0 R (2955) 4699 0 R (2956) 4700 0 R (2957) 4701 0 R (2958) 4702 0 R (2959) 4703 0 R (296) 2291 0 R (2960) 4704 0 R (2961) 1994 0 R (2963) 4709 0 R (2964) 4710 0 R (2965) 4711 0 R (297) 2292 0 R (2970) 4716 0 R (2971) 4717 0 R (2972) 4718 0 R (2973) 4719 0 R (2974) 4720 0 R (2975) 4721 0 R (2976) 4722 0 R (2977) 4723 0 R (2978) 4724 0 R (2979) 4725 0 R (298) 2293 0 R (2980) 4726 0 R (2983) 4727 0 R (2984) 4728 0 R (2988) 4730 0 R (2989) 4731 0 R (299) 2294 0 R (2990) 4732 0 R (2991) 4733 0 R (2992) 4734 0 R (2993) 4735 0 R (2994) 4736 0 R (2995) 4737 0 R (2996) 4738 0 R (2997) 4739 0 R (3.0) 10 0 R (300) 2295 0 R (3000) 4745 0 R (3001) 4746 0 R (3002) 4747 0 R (3003) 4748 0 R (3004) 4749 0 R (3005) 4750 0 R (3006) 4751 0 R (3007) 4752 0 R (3008) 4753 0 R (3009) 4754 0 R (301) 2296 0 R (3010) 4755 0 R (3011) 4756 0 R (3012) 4757 0 R (3013) 4758 0 R (3014) 4759 0 R (3015) 4760 0 R (3016) 4761 0 R (3017) 4762 0 R (3018) 4763 0 R (3019) 4764 0 R (302) 2297 0 R (3020) 4765 0 R (3021) 4766 0 R (3022) 4767 0 R (3023) 4768 0 R (3026) 4769 0 R (3027) 4770 0 R (3028) 4771 0 R (3029) 4744 0 R (303) 2298 0 R (3031) 4777 0 R (3032) 4778 0 R (3033) 4779 0 R (3034) 4780 0 R (3035) 4781 0 R (3038) 4782 0 R (3039) 4783 0 R (304) 2299 0 R (3040) 4784 0 R (3041) 4785 0 R (3042) 4786 0 R (3043) 4787 0 R (3044) 4788 0 R (3045) 4789 0 R (3046) 4790 0 R (3047) 4791 0 R (3048) 4792 0 R (3049) 4793 0 R (305) 2300 0 R (3050) 4794 0 R (3051) 4795 0 R (3052) 4796 0 R (3053) 4797 0 R (3054) 4798 0 R (3057) 4805 0 R (3058) 4776 0 R (306) 2301 0 R (3060) 4806 0 R (3061) 4807 0 R (3062) 4808 0 R (3063) 4809 0 R (3064) 4810 0 R (3065) 4811 0 R (3066) 4812 0 R (3067) 4813 0 R (3068) 4814 0 R (3069) 4815 0 R (307) 2302 0 R (3070) 4816 0 R (3071) 4817 0 R (3072) 4818 0 R (3073) 4819 0 R (3074) 4820 0 R (3075) 4821 0 R (3076) 4822 0 R (3077) 4823 0 R (3078) 4824 0 R (3079) 4825 0 R (308) 2303 0 R (3080) 4826 0 R (3081) 4827 0 R (3082) 4828 0 R (3083) 4829 0 R (3084) 4830 0 R (3085) 4831 0 R (3086) 4832 0 R (3087) 4833 0 R (3088) 4834 0 R (3089) 4835 0 R (309) 2304 0 R (3090) 4836 0 R (3091) 4837 0 R (3092) 4804 0 R (3094) 4842 0 R (3095) 4843 0 R (3096) 4844 0 R (3097) 4845 0 R (3098) 4846 0 R (3099) 4847 0 R (31) 2098 0 R (310) 2305 0 R (3102) 4848 0 R (3103) 4849 0 R (3106) 4850 0 R (3107) 4851 0 R (3108) 4852 0 R (3109) 4853 0 R (3110) 4854 0 R (3111) 4855 0 R (3112) 4860 0 R (3113) 4861 0 R (3114) 4862 0 R (3115) 4863 0 R (3116) 4864 0 R (3117) 4865 0 R (3118) 4866 0 R (3119) 4867 0 R (312) 2307 0 R (3120) 4868 0 R (3121) 4869 0 R (3122) 4870 0 R (3123) 4871 0 R (3124) 4872 0 R (3125) 4873 0 R (3126) 4874 0 R (3127) 4875 0 R (3128) 4876 0 R (3129) 4877 0 R (313) 2308 0 R (3134) 4879 0 R (3135) 4880 0 R (3136) 4881 0 R (3137) 4882 0 R (3138) 4883 0 R (3139) 4884 0 R (314) 2309 0 R (3140) 4885 0 R (3141) 4886 0 R (3142) 4887 0 R (3143) 4888 0 R (3144) 4889 0 R (3145) 4890 0 R (3146) 4896 0 R (3147) 4897 0 R (3148) 4898 0 R (3149) 4899 0 R (315) 2310 0 R (3150) 4900 0 R (3151) 4901 0 R (3152) 4902 0 R (3153) 4903 0 R (3154) 4904 0 R (3155) 4905 0 R (3156) 4906 0 R (3157) 4907 0 R (3158) 4908 0 R (3159) 4909 0 R (316) 2311 0 R (3160) 4910 0 R (3161) 4911 0 R (3162) 4912 0 R (3163) 4913 0 R (3164) 4914 0 R (3165) 4915 0 R (3166) 4916 0 R (3167) 4917 0 R (3168) 4918 0 R (3169) 4919 0 R (317) 2312 0 R (3170) 4920 0 R (3171) 4921 0 R (3172) 4922 0 R (3175) 4928 0 R (3176) 4929 0 R (3177) 4895 0 R (3178) 4930 0 R (3179) 4931 0 R (318) 2313 0 R (3180) 4932 0 R (3181) 4933 0 R (3182) 4934 0 R (3183) 4935 0 R (3184) 4936 0 R (3185) 4937 0 R (3186) 4938 0 R (3187) 4939 0 R (3188) 4940 0 R (3189) 4941 0 R (319) 2314 0 R (3190) 4942 0 R (3191) 4943 0 R (3192) 4927 0 R (3194) 4948 0 R (3195) 4949 0 R (3196) 4950 0 R (3197) 4951 0 R (32) 2099 0 R (3202) 4952 0 R (3207) 4956 0 R (3208) 4957 0 R (3209) 4958 0 R (321) 2316 0 R (3210) 4959 0 R (3211) 4960 0 R (3212) 4961 0 R (3213) 4967 0 R (3214) 4968 0 R (3217) 4969 0 R (3218) 4970 0 R (3219) 4971 0 R (322) 2317 0 R (3220) 4972 0 R (3221) 4973 0 R (3224) 4974 0 R (3225) 4975 0 R (3228) 4976 0 R (3229) 4977 0 R (323) 2318 0 R (3230) 4978 0 R (3233) 4983 0 R (3236) 4984 0 R (3237) 4985 0 R (3238) 4986 0 R (3239) 4987 0 R (324) 2319 0 R (3242) 4990 0 R (3243) 4991 0 R (3244) 4992 0 R (3245) 4993 0 R (3246) 4994 0 R (3249) 4995 0 R (325) 2320 0 R (3250) 4996 0 R (3251) 4997 0 R (3252) 4998 0 R (3253) 4999 0 R (3257) 5000 0 R (3258) 5001 0 R (3259) 5002 0 R (326) 2321 0 R (3260) 5003 0 R (3261) 5004 0 R (3262) 5005 0 R (3263) 5010 0 R (3266) 5011 0 R (3267) 5012 0 R (3268) 5013 0 R (3269) 5014 0 R (327) 2322 0 R (3270) 5015 0 R (3271) 5016 0 R (3272) 5017 0 R (3273) 5018 0 R (3276) 5019 0 R (3277) 5020 0 R (3278) 5021 0 R (3279) 5022 0 R (3280) 5023 0 R (3281) 5024 0 R (3282) 5025 0 R (3283) 5026 0 R (3284) 5027 0 R (3285) 5028 0 R (3288) 5029 0 R (3289) 5030 0 R (329) 2324 0 R (3290) 5035 0 R (3291) 5036 0 R (3292) 5037 0 R (3293) 5038 0 R (3296) 5040 0 R (3297) 5041 0 R (3298) 5042 0 R (3299) 5043 0 R (33) 2100 0 R (330) 2325 0 R (3300) 5044 0 R (3303) 5046 0 R (3304) 5047 0 R (3305) 5048 0 R (3306) 5049 0 R (3307) 5050 0 R (3308) 5051 0 R (3309) 5052 0 R (331) 2326 0 R (3312) 5053 0 R (3313) 5054 0 R (3314) 5059 0 R (3315) 5060 0 R (3316) 5061 0 R (332) 2330 0 R (3320) 5062 0 R (3321) 5063 0 R (3322) 5064 0 R (3323) 5065 0 R (3327) 5067 0 R (3328) 5068 0 R (3329) 5069 0 R (3330) 5070 0 R (3331) 5071 0 R (3334) 5076 0 R (3335) 5077 0 R (3338) 5078 0 R (3339) 5079 0 R (334) 2332 0 R (3340) 5080 0 R (3341) 5081 0 R (3342) 5082 0 R (3343) 5083 0 R (3344) 5084 0 R (3345) 5085 0 R (3346) 5086 0 R (3347) 5087 0 R (3348) 5088 0 R (3349) 5089 0 R (335) 2333 0 R (3350) 5090 0 R (3351) 5091 0 R (3352) 5092 0 R (3353) 5093 0 R (3354) 5094 0 R (3355) 5095 0 R (3356) 5096 0 R (3357) 5097 0 R (3358) 5098 0 R (3359) 5099 0 R (3360) 5100 0 R (3361) 5101 0 R (3362) 5102 0 R (3363) 5103 0 R (3364) 5104 0 R (3365) 5105 0 R (3366) 5106 0 R (3369) 5107 0 R (337) 2335 0 R (3370) 5108 0 R (3371) 5109 0 R (3372) 5110 0 R (3373) 5111 0 R (3374) 5112 0 R (3375) 5113 0 R (3376) 5114 0 R (3377) 5115 0 R (338) 2336 0 R (3382) 5121 0 R (3383) 5122 0 R (3384) 5123 0 R (3385) 5124 0 R (3386) 5125 0 R (3387) 5126 0 R (3388) 5127 0 R (3389) 5128 0 R (3390) 5129 0 R (3391) 5130 0 R (3392) 5131 0 R (3393) 5132 0 R (3394) 5133 0 R (3395) 5134 0 R (3399) 5136 0 R (340) 2338 0 R (3400) 5137 0 R (3401) 5138 0 R (3402) 5139 0 R (3403) 5140 0 R (3404) 5141 0 R (3405) 5142 0 R (3406) 5143 0 R (3407) 5144 0 R (3408) 5145 0 R (3409) 5146 0 R (341) 2339 0 R (3410) 5151 0 R (3411) 5152 0 R (3412) 5153 0 R (3413) 5154 0 R (3414) 5155 0 R (3415) 5156 0 R (3416) 5157 0 R (3417) 5158 0 R (3418) 5159 0 R (3419) 5160 0 R (3420) 5161 0 R (3421) 5162 0 R (3422) 5163 0 R (3423) 5164 0 R (3424) 5165 0 R (3425) 5166 0 R (3426) 5167 0 R (3427) 5168 0 R (3428) 5169 0 R (3429) 5170 0 R (343) 2341 0 R (3430) 5171 0 R (3431) 5172 0 R (3432) 5173 0 R (3433) 5174 0 R (3434) 5175 0 R (3435) 5176 0 R (3436) 5181 0 R (3437) 5182 0 R (3438) 5183 0 R (3439) 5184 0 R (344) 2342 0 R (3440) 5185 0 R (3441) 5186 0 R (3442) 5187 0 R (3443) 5188 0 R (3444) 5189 0 R (3445) 5190 0 R (3446) 5191 0 R (3449) 5192 0 R (345) 2343 0 R (3450) 5193 0 R (3451) 5194 0 R (3452) 5195 0 R (3453) 5196 0 R (3454) 5197 0 R (3455) 5198 0 R (3456) 5199 0 R (3457) 5200 0 R (3458) 5201 0 R (3459) 5202 0 R (346) 2344 0 R (3460) 5203 0 R (3461) 5204 0 R (3462) 5205 0 R (3463) 5206 0 R (3464) 5207 0 R (3465) 5212 0 R (3466) 5213 0 R (3467) 5214 0 R (3468) 5215 0 R (3469) 5216 0 R (347) 2345 0 R (3470) 5217 0 R (3471) 5218 0 R (3472) 5219 0 R (3475) 5224 0 R (3476) 5225 0 R (3477) 5226 0 R (348) 2346 0 R (3480) 5227 0 R (3481) 5228 0 R (3482) 5229 0 R (3485) 5230 0 R (3486) 5231 0 R (3487) 5232 0 R (3488) 5233 0 R (3489) 5234 0 R (3490) 5235 0 R (3491) 5240 0 R (3492) 5241 0 R (3495) 5242 0 R (3496) 5243 0 R (3499) 5244 0 R (350) 2348 0 R (3500) 5245 0 R (3501) 5246 0 R (3502) 5253 0 R (3505) 5254 0 R (3506) 5255 0 R (3507) 5256 0 R (3508) 5257 0 R (3509) 5258 0 R (351) 2349 0 R (3510) 5259 0 R (3511) 5260 0 R (3512) 5261 0 R (3513) 5262 0 R (3514) 5263 0 R (3515) 5264 0 R (3516) 5265 0 R (3517) 5266 0 R (3518) 5267 0 R (3519) 5268 0 R (352) 2350 0 R (3520) 5269 0 R (3521) 5270 0 R (3522) 5271 0 R (3523) 5272 0 R (3524) 5273 0 R (3525) 5274 0 R (3526) 5275 0 R (3527) 5276 0 R (3528) 5277 0 R (3529) 5278 0 R (353) 2351 0 R (3530) 5279 0 R (3531) 5280 0 R (3532) 5281 0 R (3533) 5282 0 R (3534) 5283 0 R (3535) 5284 0 R (3536) 5252 0 R (3537) 5289 0 R (3538) 5290 0 R (354) 2352 0 R (3541) 5291 0 R (3542) 5292 0 R (3543) 5293 0 R (3546) 5294 0 R (3547) 5295 0 R (355) 2353 0 R (3550) 5296 0 R (3551) 5301 0 R (3554) 5302 0 R (3557) 5303 0 R (356) 2354 0 R (3560) 5304 0 R (3561) 5305 0 R (3562) 5306 0 R (3565) 5307 0 R (3566) 5308 0 R (3567) 5309 0 R (3568) 5314 0 R (3569) 5315 0 R (357) 2355 0 R (3571) 5320 0 R (3575) 5321 0 R (3576) 5322 0 R (3577) 5323 0 R (3578) 5324 0 R (3583) 5327 0 R (3584) 5328 0 R (3585) 5329 0 R (3586) 5330 0 R (3587) 5331 0 R (3588) 5332 0 R (359) 2357 0 R (3590) 5333 0 R (3591) 5334 0 R (3592) 5335 0 R (3593) 5336 0 R (3594) 5337 0 R (3596) 5338 0 R (3597) 5339 0 R (3598) 5340 0 R (3599) 5341 0 R (36) 2101 0 R (360) 2358 0 R (3600) 5342 0 R (3601) 5343 0 R (3602) 5344 0 R (3603) 5345 0 R (3604) 5346 0 R (3606) 5347 0 R (3607) 5348 0 R (3608) 5349 0 R (3609) 5350 0 R (361) 2359 0 R (3610) 5351 0 R (3611) 5352 0 R (3612) 5353 0 R (3613) 5354 0 R (3614) 5355 0 R (3615) 5356 0 R (3616) 5357 0 R (3618) 5358 0 R (3619) 5359 0 R (362) 2360 0 R (3620) 5360 0 R (3621) 5361 0 R (3622) 5362 0 R (3623) 5363 0 R (3628) 5370 0 R (3629) 5371 0 R (363) 2361 0 R (3630) 5372 0 R (3631) 5373 0 R (3632) 5374 0 R (3633) 5375 0 R (3635) 5376 0 R (3636) 5377 0 R (3637) 5378 0 R (364) 2362 0 R (3640) 5379 0 R (3641) 5380 0 R (3647) 5382 0 R (3648) 5383 0 R (3649) 5384 0 R (365) 2363 0 R (3650) 5385 0 R (3653) 5387 0 R (3654) 5388 0 R (3658) 5389 0 R (3659) 5390 0 R (366) 2364 0 R (3660) 5391 0 R (3661) 5392 0 R (3662) 5393 0 R (3665) 5394 0 R (3666) 5395 0 R (3667) 5396 0 R (3668) 5397 0 R (3669) 5404 0 R (367) 2365 0 R (3670) 5405 0 R (3671) 5406 0 R (3676) 5408 0 R (3677) 5409 0 R (3678) 5410 0 R (3679) 5411 0 R (368) 2366 0 R (3682) 5413 0 R (3683) 5414 0 R (3688) 5417 0 R (3689) 5418 0 R (369) 2367 0 R (3690) 5419 0 R (3691) 5420 0 R (3692) 5421 0 R (3697) 5424 0 R (3698) 5425 0 R (37) 2102 0 R (370) 2368 0 R (3704) 5431 0 R (3705) 5432 0 R (3706) 5433 0 R (3707) 5434 0 R (3708) 5435 0 R (3709) 5436 0 R (3710) 5437 0 R (3713) 5439 0 R (3714) 5440 0 R (3716) 5442 0 R (3717) 5443 0 R (3719) 5444 0 R (3720) 5445 0 R (3721) 5446 0 R (3722) 5447 0 R (3724) 5448 0 R (3725) 5449 0 R (3726) 5450 0 R (3727) 5451 0 R (3728) 5452 0 R (373) 2369 0 R (3730) 5453 0 R (3731) 5454 0 R (3732) 5455 0 R (3733) 5456 0 R (374) 2370 0 R (3740) 5459 0 R (3741) 5460 0 R (3742) 5461 0 R (3745) 5462 0 R (3746) 5463 0 R (3748) 5469 0 R (3749) 5470 0 R (3750) 5471 0 R (3751) 5472 0 R (3755) 5474 0 R (3756) 5475 0 R (3757) 5476 0 R (3758) 5477 0 R (3759) 5478 0 R (3760) 5479 0 R (3761) 5480 0 R (3762) 5481 0 R (3768) 5483 0 R (3769) 5484 0 R (377) 2371 0 R (3773) 5486 0 R (3774) 5487 0 R (3775) 5488 0 R (3780) 5490 0 R (3781) 5491 0 R (3782) 5492 0 R (3784) 5497 0 R (3785) 5498 0 R (3786) 5499 0 R (3787) 5500 0 R (3788) 5501 0 R (3789) 5502 0 R (3790) 5503 0 R (3791) 5504 0 R (3792) 5505 0 R (3793) 5506 0 R (3794) 5507 0 R (3795) 5508 0 R (3796) 5509 0 R (3797) 5510 0 R (38) 2103 0 R (380) 2372 0 R (3802) 5513 0 R (3803) 5514 0 R (3804) 5515 0 R (3808) 5517 0 R (3809) 5518 0 R (381) 2373 0 R (3814) 5521 0 R (3815) 5522 0 R (3816) 5523 0 R (3817) 5526 0 R (3818) 5524 0 R (3819) 5525 0 R (382) 2377 0 R (383) 2378 0 R (384) 2379 0 R (385) 2380 0 R (386) 2381 0 R (387) 2382 0 R (388) 2383 0 R (39) 2104 0 R (391) 2384 0 R (394) 2385 0 R (397) 2386 0 R (4.0) 14 0 R (4.1.1) 18 0 R (4.2.1) 22 0 R (4.3.1) 26 0 R (4.4.1) 30 0 R (4.5.1) 34 0 R (40) 2105 0 R (400) 2387 0 R (401) 2388 0 R (404) 2389 0 R (407) 2390 0 R (41) 2106 0 R (410) 2391 0 R (411) 2392 0 R (412) 2397 0 R (413) 2398 0 R (414) 2399 0 R (416) 2401 0 R (417) 2402 0 R (418) 2403 0 R (419) 2404 0 R (42) 2107 0 R (422) 2405 0 R (423) 2406 0 R (424) 2407 0 R (425) 2408 0 R (426) 2409 0 R (427) 2410 0 R (428) 2411 0 R (429) 2412 0 R (43) 2108 0 R (432) 2413 0 R (433) 2414 0 R (437) 2416 0 R (438) 2417 0 R (439) 2418 0 R (44) 2109 0 R (440) 2419 0 R (441) 2420 0 R (442) 2427 0 R (443) 2428 0 R (444) 2429 0 R (445) 2430 0 R (446) 2431 0 R (447) 2432 0 R (448) 2433 0 R (449) 2434 0 R (45) 2110 0 R (450) 2435 0 R (451) 2436 0 R (452) 2437 0 R (453) 2438 0 R (454) 2439 0 R (455) 2440 0 R (456) 2441 0 R (458) 2443 0 R (459) 2444 0 R (46) 2111 0 R (462) 2445 0 R (468) 2449 0 R (469) 2450 0 R (47) 2112 0 R (472) 2451 0 R (473) 2452 0 R (475) 2454 0 R (477) 2459 0 R (478) 2426 0 R (48) 2113 0 R (480) 2460 0 R (481) 2461 0 R (482) 2462 0 R (485) 2464 0 R (486) 2465 0 R (487) 2466 0 R (488) 2470 0 R (49) 2114 0 R (490) 2472 0 R (491) 2473 0 R (492) 2474 0 R (493) 2475 0 R (494) 2476 0 R (495) 2477 0 R (496) 2478 0 R (497) 2479 0 R (498) 2480 0 R (499) 2481 0 R (5.0) 38 0 R (5.10.1) 234 0 R (5.10.17.19.3) 242 0 R (5.10.17.2) 238 0 R (5.10.17.20.3) 246 0 R (5.10.17.21.3) 250 0 R (5.10.17.22.3) 254 0 R (5.10.17.23.3) 258 0 R (5.10.18.2) 262 0 R (5.10.18.24.3) 266 0 R (5.10.18.25.3) 270 0 R (5.10.19.2) 274 0 R (5.11.1) 278 0 R (5.11.20.2) 282 0 R (5.11.21.2) 286 0 R (5.11.21.26.11.4) 294 0 R (5.11.21.26.12.4) 298 0 R (5.11.21.26.13.4) 302 0 R (5.11.21.26.3) 290 0 R (5.11.22.2) 306 0 R (5.11.23.2) 310 0 R (5.11.24.2) 314 0 R (5.11.24.27.3) 318 0 R (5.11.25.2) 322 0 R (5.11.25.28.3) 326 0 R (5.12.1) 330 0 R (5.12.26.2) 334 0 R (5.12.27.2) 338 0 R (5.12.27.29.3) 342 0 R (5.12.27.30.3) 346 0 R (5.12.27.31.3) 350 0 R (5.12.27.32.3) 354 0 R (5.12.28.2) 358 0 R (5.12.29.2) 362 0 R (5.6.1) 42 0 R (5.6.1.2) 46 0 R (5.6.2.1.3) 54 0 R (5.6.2.2) 50 0 R (5.6.2.2.3) 58 0 R (5.6.2.3.3) 62 0 R (5.6.3.2) 66 0 R (5.6.4.2) 70 0 R (5.6.5.10.3) 102 0 R (5.6.5.11.3) 106 0 R (5.6.5.12.3) 110 0 R (5.6.5.2) 74 0 R (5.6.5.4.3) 78 0 R (5.6.5.5.3) 82 0 R (5.6.5.6.3) 86 0 R (5.6.5.7.3) 90 0 R (5.6.5.8.3) 94 0 R (5.6.5.9.3) 98 0 R (5.6.6.2) 114 0 R (5.6.7.2) 118 0 R (5.7.1) 122 0 R (5.7.10.2) 182 0 R (5.7.11.17.10.4) 198 0 R (5.7.11.17.3) 190 0 R (5.7.11.17.9.4) 194 0 R (5.7.11.18.3) 202 0 R (5.7.11.2) 186 0 R (5.7.12.2) 206 0 R (5.7.8.2) 126 0 R (5.7.9.13.3) 134 0 R (5.7.9.14.1.4) 142 0 R (5.7.9.14.2.4) 146 0 R (5.7.9.14.3) 138 0 R (5.7.9.14.3.4) 150 0 R (5.7.9.15.3) 154 0 R (5.7.9.15.4.4) 158 0 R (5.7.9.15.5.4) 162 0 R (5.7.9.16.3) 166 0 R (5.7.9.16.6.4) 170 0 R (5.7.9.16.7.4) 174 0 R (5.7.9.16.8.4) 178 0 R (5.7.9.2) 130 0 R (5.8.1) 210 0 R (5.8.13.2) 214 0 R (5.8.14.2) 218 0 R (5.8.15.2) 222 0 R (5.8.16.2) 226 0 R (5.9.1) 230 0 R (50) 2115 0 R (500) 2482 0 R (501) 2483 0 R (502) 2484 0 R (504) 2485 0 R (505) 2486 0 R (506) 2487 0 R (507) 2488 0 R (508) 2489 0 R (509) 2490 0 R (51) 2116 0 R (510) 2491 0 R (511) 2492 0 R (512) 2493 0 R (513) 2494 0 R (514) 2495 0 R (515) 2496 0 R (518) 2501 0 R (52) 2117 0 R (520) 2502 0 R (521) 2503 0 R (522) 2504 0 R (523) 2505 0 R (525) 2507 0 R (526) 2508 0 R (527) 2509 0 R (528) 2510 0 R (529) 2511 0 R (53) 2118 0 R (530) 2512 0 R (531) 2513 0 R (532) 2514 0 R (533) 2515 0 R (534) 2516 0 R (536) 2517 0 R (537) 2518 0 R (538) 2519 0 R (539) 2520 0 R (54) 2119 0 R (540) 2521 0 R (541) 2522 0 R (542) 2523 0 R (543) 2524 0 R (544) 2525 0 R (545) 2526 0 R (546) 2527 0 R (547) 2528 0 R (55) 2120 0 R (550) 2529 0 R (552) 2530 0 R (553) 2531 0 R (554) 2532 0 R (555) 2537 0 R (556) 2538 0 R (557) 2539 0 R (558) 2540 0 R (56) 2124 0 R (560) 2541 0 R (561) 2542 0 R (562) 2543 0 R (563) 2544 0 R (564) 2545 0 R (565) 2546 0 R (566) 2547 0 R (568) 2548 0 R (569) 2549 0 R (57) 2125 0 R (570) 2550 0 R (571) 2551 0 R (572) 1433 0 R (574) 2552 0 R (575) 2553 0 R (576) 2554 0 R (577) 2555 0 R (578) 2556 0 R (579) 2557 0 R (58) 2126 0 R (582) 2563 0 R (583) 2564 0 R (585) 2566 0 R (588) 2567 0 R (59) 2127 0 R (594) 2571 0 R (595) 2572 0 R (596) 2573 0 R (598) 2574 0 R (599) 2575 0 R (6.0) 366 0 R (6.13.1) 370 0 R (6.13.30.2) 374 0 R (6.13.31.2) 378 0 R (6.13.32.2) 382 0 R (6.13.33.2) 386 0 R (6.13.34.2) 390 0 R (6.13.35.2) 394 0 R (6.13.36.2) 398 0 R (6.13.37.2) 402 0 R (6.13.38.2) 406 0 R (6.13.39.2) 410 0 R (6.13.40.2) 414 0 R (6.13.41.2) 418 0 R (6.13.42.2) 422 0 R (6.13.43.2) 426 0 R (6.13.44.2) 430 0 R (6.13.45.2) 434 0 R (6.14.1) 438 0 R (6.14.46.2) 442 0 R (6.14.47.2) 446 0 R (6.14.47.33.3) 450 0 R (6.14.47.34.14.4) 458 0 R (6.14.47.34.15.4) 462 0 R (6.14.47.34.3) 454 0 R (6.14.47.35.3) 466 0 R (6.14.47.36.3) 470 0 R (6.14.47.37.3) 474 0 R (6.15.1) 478 0 R (6.16.1) 482 0 R (6.16.48.2) 486 0 R (6.16.49.2) 490 0 R (6.16.50.2) 494 0 R (6.16.51.2) 498 0 R (6.16.51.38.3) 502 0 R (6.17.1) 506 0 R (6.18.1) 510 0 R (6.19.1) 514 0 R (6.20.1) 518 0 R (6.20.52.2) 522 0 R (6.20.53.2) 526 0 R (6.20.53.39.3) 530 0 R (6.20.54.2) 534 0 R (6.20.55.2) 538 0 R (6.20.55.40.3) 542 0 R (6.20.55.41.3) 546 0 R (6.20.56.2) 550 0 R (6.20.56.42.3) 554 0 R (6.20.56.43.16.4) 562 0 R (6.20.56.43.17.4) 566 0 R (6.20.56.43.18.4) 570 0 R (6.20.56.43.19.4) 574 0 R (6.20.56.43.20.4) 578 0 R (6.20.56.43.21.4) 582 0 R (6.20.56.43.22.4) 586 0 R (6.20.56.43.23.4) 590 0 R (6.20.56.43.24.4) 594 0 R (6.20.56.43.25.4) 598 0 R (6.20.56.43.26.4) 602 0 R (6.20.56.43.3) 558 0 R (6.20.56.44.3) 606 0 R (6.21.1) 610 0 R (6.22.1) 614 0 R (6.22.57.2) 618 0 R (6.22.58.2) 622 0 R (6.22.59.2) 626 0 R (6.23.1) 630 0 R (6.23.60.2) 634 0 R (6.23.61.2) 638 0 R (6.24.1) 642 0 R (6.25.1) 646 0 R (6.26.1) 650 0 R (6.27.1) 654 0 R (6.27.62.2) 658 0 R (6.27.63.2) 662 0 R (6.27.64.2) 666 0 R (6.27.65.2) 670 0 R (6.28.1) 674 0 R (600) 2576 0 R (602) 2577 0 R (603) 2578 0 R (604) 2579 0 R (605) 2580 0 R (606) 2581 0 R (607) 2582 0 R (608) 2583 0 R (609) 2584 0 R (610) 2585 0 R (611) 2586 0 R (613) 2587 0 R (614) 2588 0 R (615) 2589 0 R (616) 2590 0 R (617) 2591 0 R (618) 2592 0 R (619) 2593 0 R (62) 2128 0 R (621) 2594 0 R (622) 2595 0 R (623) 2596 0 R (624) 2601 0 R (628) 2602 0 R (629) 2603 0 R (63) 2129 0 R (630) 2604 0 R (632) 2605 0 R (633) 2606 0 R (634) 2607 0 R (636) 2608 0 R (637) 2609 0 R (638) 2610 0 R (639) 2611 0 R (640) 2612 0 R (641) 2613 0 R (642) 2614 0 R (643) 2615 0 R (644) 2616 0 R (646) 2617 0 R (647) 2618 0 R (648) 2619 0 R (649) 2620 0 R (65) 2130 0 R (650) 2621 0 R (651) 2622 0 R (652) 2623 0 R (653) 2624 0 R (654) 2625 0 R (655) 2626 0 R (656) 2627 0 R (657) 2628 0 R (658) 2629 0 R (659) 2630 0 R (66) 2131 0 R (660) 2631 0 R (661) 2632 0 R (662) 2633 0 R (663) 2634 0 R (664) 2635 0 R (665) 2636 0 R (666) 2637 0 R (667) 2638 0 R (668) 2639 0 R (67) 2132 0 R (672) 2645 0 R (673) 2646 0 R (674) 2647 0 R (675) 2648 0 R (676) 2649 0 R (677) 2650 0 R (678) 2651 0 R (679) 2652 0 R (68) 2133 0 R (680) 2653 0 R (681) 2654 0 R (682) 2655 0 R (683) 2656 0 R (684) 2657 0 R (685) 2658 0 R (686) 2659 0 R (687) 2660 0 R (688) 2661 0 R (689) 2662 0 R (690) 2663 0 R (691) 2664 0 R (692) 2665 0 R (693) 2666 0 R (694) 2667 0 R (695) 2668 0 R (696) 2669 0 R (697) 2670 0 R (698) 2671 0 R (7.0) 678 0 R (7.29.1) 682 0 R (7.29.66.2) 686 0 R (7.29.67.2) 690 0 R (7.29.68.2) 694 0 R (7.30.1) 698 0 R (7.30.69.2) 702 0 R (7.30.70.2) 706 0 R (7.30.71.2) 710 0 R (7.31.1) 714 0 R (7.31.72.2) 718 0 R (7.32.1) 722 0 R (7.32.73.2) 726 0 R (70) 2134 0 R (702) 2673 0 R (703) 2674 0 R (705) 2676 0 R (706) 2677 0 R (707) 2682 0 R (708) 2683 0 R (71) 2135 0 R (710) 2685 0 R (711) 2686 0 R (712) 2687 0 R (713) 2688 0 R (714) 2689 0 R (715) 2690 0 R (716) 2691 0 R (717) 2692 0 R (72) 2136 0 R (721) 2694 0 R (722) 1439 0 R (724) 2695 0 R (725) 2696 0 R (726) 2697 0 R (727) 2698 0 R (728) 2702 0 R (729) 2703 0 R (73) 2137 0 R (730) 2704 0 R (731) 2705 0 R (732) 2706 0 R (733) 2707 0 R (734) 2708 0 R (737) 2709 0 R (738) 2710 0 R (739) 2711 0 R (740) 2712 0 R (741) 2713 0 R (742) 2714 0 R (745) 2719 0 R (747) 2721 0 R (748) 2722 0 R (749) 2723 0 R (75) 2138 0 R (750) 2724 0 R (751) 2725 0 R (752) 2726 0 R (753) 2727 0 R (756) 2728 0 R (757) 2729 0 R (758) 2730 0 R (759) 2731 0 R (76) 2139 0 R (760) 2732 0 R (761) 2733 0 R (762) 2734 0 R (763) 2735 0 R (764) 2736 0 R (765) 2737 0 R (766) 2738 0 R (767) 2739 0 R (77) 2140 0 R (770) 2740 0 R (771) 2741 0 R (772) 2742 0 R (773) 2743 0 R (774) 2744 0 R (775) 2745 0 R (776) 2746 0 R (777) 2751 0 R (778) 2752 0 R (779) 2753 0 R (78) 2141 0 R (780) 2754 0 R (781) 2755 0 R (782) 2756 0 R (783) 2757 0 R (784) 2758 0 R (787) 2759 0 R (788) 2760 0 R (789) 2761 0 R (792) 2762 0 R (793) 2763 0 R (796) 2764 0 R (797) 2765 0 R (798) 2766 0 R (799) 2767 0 R (8.0) 730 0 R (8.33.1) 734 0 R (8.34.1) 738 0 R (8.35.1) 742 0 R (8.36.1) 746 0 R (8.37.1) 750 0 R (8.37.74.2) 754 0 R (8.37.74.45.3) 758 0 R (8.37.74.46.3) 762 0 R (8.37.74.47.3) 766 0 R (8.37.75.2) 770 0 R (8.37.76.2) 774 0 R (8.37.77.2) 778 0 R (8.37.78.2) 782 0 R (8.38.1) 786 0 R (8.38.79.2) 790 0 R (8.38.80.2) 794 0 R (8.39.1) 798 0 R (8.39.81.2) 802 0 R (8.39.81.48.3) 806 0 R (8.39.81.49.3) 810 0 R (8.39.81.50.3) 814 0 R (8.39.81.51.3) 818 0 R (8.39.81.52.3) 822 0 R (8.39.81.53.3) 826 0 R (8.39.81.54.3) 830 0 R (8.40.1) 834 0 R (8.40.82.2) 838 0 R (8.40.83.2) 842 0 R (8.40.84.2) 846 0 R (8.40.85.2) 850 0 R (8.41.1) 854 0 R (8.42.1) 858 0 R (8.42.86.2) 862 0 R (8.42.87.2) 866 0 R (8.42.88.2) 870 0 R (8.42.89.2) 874 0 R (8.42.90.2) 878 0 R (8.43.1) 882 0 R (8.43.91.2) 886 0 R (8.43.92.2) 890 0 R (8.43.92.55.3) 894 0 R (8.43.92.56.3) 898 0 R (8.44.1) 902 0 R (8.45.1) 906 0 R (8.45.93.2) 910 0 R (8.45.94.2) 914 0 R (8.45.95.2) 918 0 R (8.45.96.2) 922 0 R (80) 2142 0 R (800) 2768 0 R (803) 2773 0 R (806) 2776 0 R (807) 2777 0 R (808) 2778 0 R (809) 2779 0 R (81) 2143 0 R (810) 2780 0 R (811) 2781 0 R (812) 2782 0 R (813) 2783 0 R (814) 2784 0 R (815) 2785 0 R (816) 2786 0 R (817) 2787 0 R (818) 2788 0 R (819) 2789 0 R (82) 2144 0 R (820) 2790 0 R (821) 2791 0 R (822) 2792 0 R (825) 2793 0 R (828) 2800 0 R (83) 2145 0 R (831) 2803 0 R (832) 2804 0 R (833) 2805 0 R (834) 2806 0 R (835) 2807 0 R (836) 2808 0 R (837) 2809 0 R (840) 2810 0 R (844) 2811 0 R (847) 2812 0 R (848) 2813 0 R (849) 2814 0 R (85) 2146 0 R (853) 2816 0 R (854) 2817 0 R (855) 2818 0 R (856) 2819 0 R (857) 2820 0 R (858) 2821 0 R (859) 2822 0 R (86) 2147 0 R (861) 2824 0 R (862) 2825 0 R (863) 2826 0 R (864) 2827 0 R (865) 2828 0 R (866) 2829 0 R (867) 2830 0 R (868) 2831 0 R (869) 2832 0 R (87) 2148 0 R (870) 2799 0 R (872) 2839 0 R (876) 2843 0 R (877) 2844 0 R (879) 2845 0 R (88) 2149 0 R (881) 2846 0 R (884) 2847 0 R (885) 2848 0 R (886) 2849 0 R (889) 1554 0 R (891) 2850 0 R (893) 1555 0 R (895) 2852 0 R (896) 2853 0 R (897) 2858 0 R (898) 2859 0 R (899) 2860 0 R (9.0) 926 0 R (9.46.1) 930 0 R (9.47.1) 934 0 R (9.47.100.2) 950 0 R (9.47.101.2) 954 0 R (9.47.102.2) 958 0 R (9.47.97.2) 938 0 R (9.47.98.2) 942 0 R (9.47.99.2) 946 0 R (9.48.1) 962 0 R (9.49.1) 966 0 R (9.50.1) 970 0 R (9.50.103.2) 974 0 R (9.50.104.2) 978 0 R (9.50.105.2) 982 0 R (9.50.106.2) 986 0 R (9.50.107.2) 990 0 R (90) 2150 0 R (900) 2861 0 R (901) 1556 0 R (903) 2862 0 R (905) 2863 0 R (906) 2864 0 R (907) 2865 0 R (909) 2866 0 R (91) 2151 0 R (910) 2867 0 R (911) 2868 0 R (912) 2869 0 R (914) 2870 0 R (915) 2871 0 R (916) 2872 0 R (917) 2873 0 R (918) 2874 0 R (919) 2879 0 R (92) 2152 0 R (920) 2880 0 R (921) 2881 0 R (922) 2882 0 R (923) 2883 0 R (924) 2884 0 R (925) 2885 0 R (926) 2886 0 R (927) 2887 0 R (928) 1557 0 R (93) 2153 0 R (930) 2888 0 R (931) 2889 0 R (932) 2890 0 R (933) 2891 0 R (934) 2892 0 R (935) 2893 0 R (936) 2894 0 R (937) 2895 0 R (938) 2896 0 R (939) 2897 0 R (940) 2898 0 R (941) 2899 0 R (942) 2900 0 R (943) 2901 0 R (946) 2902 0 R (947) 2903 0 R (948) 2904 0 R (949) 2905 0 R (95) 2154 0 R (950) 1559 0 R (952) 2910 0 R (953) 1560 0 R (955) 2911 0 R (956) 2912 0 R (957) 2913 0 R (958) 2914 0 R (959) 2915 0 R (96) 2155 0 R (960) 2916 0 R (961) 2917 0 R (962) 1561 0 R (964) 2918 0 R (965) 2919 0 R (966) 2920 0 R (968) 2922 0 R (969) 2923 0 R (97) 2156 0 R (970) 2924 0 R (971) 2925 0 R (972) 2926 0 R (975) 2927 0 R (976) 2928 0 R (977) 2929 0 R (978) 2930 0 R (979) 2935 0 R (98) 2157 0 R (980) 2936 0 R (981) 2937 0 R (984) 2938 0 R (985) 2939 0 R (986) 2940 0 R (987) 2941 0 R (988) 2942 0 R (99) 2158 0 R (991) 2943 0 R (992) 2944 0 R (993) 2945 0 R (994) 2946 0 R (995) 2947 0 R (996) 2948 0 R (997) 2949 0 R (999) 2951 0 R (Doc-Start) 1286 0 R (about) 1399 0 R (accountpreferences) 1982 0 R (add-custom-fields) 1722 0 R (admin-usermatching) 1689 0 R (administration) 1572 0 R (apache-addtype) 1442 0 R (attachments) 1868 0 R (bonsai) 2007 0 R (boolean) 1857 0 R (bug_page) 1854 0 R (bug_status_workflow) 1728 0 R (bugreports) 1865 0 R (bzldap) 1583 0 R (bzradius) 1584 0 R (casesensitivity) 1862 0 R (charts) 1986 0 R (charts-new-series) 1988 0 R (classifications) 1698 0 R (cloningbugs) 1867 0 R (cmdline) 2023 0 R (cmdline-bugmail) 2024 0 R (comment-wrapping) 1880 0 R (commenting) 1879 0 R (components) 1705 0 R (comps-vers-miles-products) 1702 0 R (configuration) 1426 0 R (conventions) 1404 0 R (copyright) 1400 0 R (create-groups) 1732 0 R (create-product) 1700 0 R (createnewusers) 1694 0 R (credits) 1403 0 R (cust-change-permissions) 2005 0 R (cust-hooks) 2004 0 R (cust-skins) 1996 0 R (cust-templates) 1997 0 R (custom-fields) 1721 0 R (customization) 1995 0 R (cvs) 2008 0 R (database-engine) 1428 0 R (database-schema) 1429 0 R (defaultuser) 1691 0 R (delete-custom-fields) 1724 0 R (dependencytree) 1881 0 R (disclaimer) 1401 0 R (edit-custom-fields) 1723 0 R (edit-groups) 1733 0 R (edit-products) 1701 0 R (edit-values) 1725 0 R (edit-values-delete) 1727 0 R (edit-values-list) 1726 0 R (emailpreferences) 1980 0 R (extraconfig) 1438 0 R (fillingbugs) 1866 0 R (flag-askto) 1712 0 R (flag-type-attachment) 1714 0 R (flag-type-bug) 1715 0 R (flag-types) 1713 0 R (flag-values) 1711 0 R (flags) 1989 0 R (flags-about) 1710 0 R (flags-admin) 1716 0 R (flags-create) 1718 0 R (flags-create-field-active) 3817 0 R (flags-create-field-category) 3777 0 R (flags-create-field-cclist) 3835 0 R (flags-create-field-description) 3773 0 R (flags-create-field-multiplicable) 3830 0 R (flags-create-field-name) 3771 0 R (flags-create-field-requestable) 3820 0 R (flags-create-field-sortkey) 3813 0 R (flags-create-field-specific) 3827 0 R (flags-create-grant-group) 3805 0 R (flags-create-request-group) 3845 0 R (flags-delete) 1719 0 R (flags-edit) 1717 0 R (flags-overview) 1708 0 R (flags-simpleexample) 1709 0 R (general-advice) 2013 0 R (generalpreferences) 1884 0 R (gfdl) 2069 0 R (gfdl-0) 2070 0 R (gfdl-1) 2071 0 R (gfdl-10) 2080 0 R (gfdl-2) 2072 0 R (gfdl-3) 2073 0 R (gfdl-4) 2074 0 R (gfdl-5) 2075 0 R (gfdl-6) 2076 0 R (gfdl-7) 2077 0 R (gfdl-8) 2078 0 R (gfdl-9) 2079 0 R (gfdl-howto) 2081 0 R (gloss-a) 5325 0 R (gloss-apache) 5326 0 R (gloss-b) 5365 0 R (gloss-bugzilla) 2187 0 R (gloss-c) 5381 0 R (gloss-cgi) 2277 0 R (gloss-component) 5386 0 R (gloss-contrib) 3279 0 R (gloss-cpan) 2834 0 R (gloss-d) 5407 0 R (gloss-daemon) 4085 0 R (gloss-dos) 5412 0 R (gloss-g) 5415 0 R (gloss-groups) 5416 0 R (gloss-htaccess) 4196 0 R (gloss-j) 5422 0 R (gloss-javascript) 5423 0 R (gloss-m) 5403 0 R (gloss-mta) 5430 0 R (gloss-mysql) 5438 0 R (gloss-p) 5458 0 R (gloss-ppm) 2794 0 R (gloss-product) 3505 0 R (gloss-q) 5473 0 R (gloss-r) 5482 0 R (gloss-rdbms) 5464 0 R (gloss-regexp) 5485 0 R (gloss-s) 5489 0 R (gloss-service) 4086 0 R (gloss-t) 5511 0 R (gloss-target-milestone) 5512 0 R (gloss-tcl) 5516 0 R (gloss-z) 5519 0 R (gloss-zarro) 5520 0 R (glossary) 2082 0 R (group-control-examples) 1704 0 R (groups) 1731 0 R (hintsandtips) 1877 0 R (http) 1434 0 R (http-apache) 1435 0 R (http-apache-mod_cgi) 2570 0 R (http-apache-mod_perl) 2562 0 R (http-iis) 1436 0 R (impersonatingusers) 1697 0 R (index) 1287 0 R (individual-buglists) 1864 0 R (install-MTA) 1424 0 R (install-bzfiles) 1413 0 R (install-config-bugzilla) 1437 0 R (install-database) 1408 0 R (install-modules-chart-base) 1418 0 R (install-modules-dbd-mysql) 1415 0 R (install-modules-gd) 1417 0 R (install-modules-gd-graph) 1419 0 R (install-modules-gd-text) 1420 0 R (install-modules-patchreader) 1423 0 R (install-modules-soap-lite) 1422 0 R (install-modules-template) 1416 0 R (install-modules-xml-twig) 1421 0 R (install-mysql) 1409 0 R (install-oracle) 1411 0 R (install-perl) 1407 0 R (install-perlmodules) 1414 0 R (install-perlmodules-manual) 2065 0 R (install-perlmodules-nonroot) 1558 0 R (install-pg) 1410 0 R (install-setupdatabase-adduser) 2463 0 R (install-webserver) 1412 0 R (installation) 1406 0 R (installation-whining) 1441 0 R (installation-whining-cron) 1440 0 R (installing-bugzilla) 1405 0 R (integration) 2006 0 R (keywords) 1720 0 R (lifecycle) 1855 0 R (lifecycle-image) 2089 0 R (list) 1863 0 R (localconfig) 1427 0 R (macosx-libraries) 1551 0 R (macosx-sendmail) 1550 0 R (manageusers) 1692 0 R (milestones) 1707 0 R (modifyusers) 1695 0 R (modules-manual-download) 2067 0 R (modules-manual-instructions) 2066 0 R (modules-manual-optional) 2068 0 R (multiple-bz-dbs) 1443 0 R (multiplecharts) 1860 0 R (myaccount) 1853 0 R (mysql) 1430 0 R (negation) 1859 0 R (newversions) 1402 0 R (nonroot) 1553 0 R (oracle) 1432 0 R (os-linux) 1552 0 R (os-macosx) 1549 0 R (os-specific) 1542 0 R (os-win32) 1543 0 R (page.1) 1285 0 R (page.10) 2396 0 R (page.100) 5075 0 R (page.101) 5120 0 R (page.102) 5150 0 R (page.103) 5180 0 R (page.104) 5211 0 R (page.105) 5223 0 R (page.106) 5239 0 R (page.107) 5251 0 R (page.108) 5288 0 R (page.109) 5300 0 R (page.11) 2425 0 R (page.110) 5313 0 R (page.111) 5319 0 R (page.112) 5369 0 R (page.113) 5402 0 R (page.114) 5429 0 R (page.115) 5468 0 R (page.116) 5496 0 R (page.12) 2458 0 R (page.13) 2500 0 R (page.14) 2536 0 R (page.15) 2561 0 R (page.16) 2600 0 R (page.17) 2644 0 R (page.18) 2681 0 R (page.19) 2718 0 R (page.2) 1295 0 R (page.20) 2750 0 R (page.21) 2772 0 R (page.22) 2798 0 R (page.23) 2838 0 R (page.24) 2857 0 R (page.25) 2878 0 R (page.26) 2909 0 R (page.27) 2934 0 R (page.28) 2963 0 R (page.29) 2998 0 R (page.3) 1302 0 R (page.30) 3032 0 R (page.31) 3068 0 R (page.32) 3090 0 R (page.33) 3129 0 R (page.34) 3171 0 R (page.35) 3196 0 R (page.36) 3219 0 R (page.37) 3246 0 R (page.38) 3283 0 R (page.39) 3323 0 R (page.4) 1447 0 R (page.40) 3348 0 R (page.41) 3363 0 R (page.42) 3391 0 R (page.43) 3442 0 R (page.44) 3468 0 R (page.45) 3509 0 R (page.46) 3542 0 R (page.47) 3581 0 R (page.48) 3606 0 R (page.49) 3622 0 R (page.5) 1592 0 R (page.50) 3666 0 R (page.51) 3719 0 R (page.52) 3759 0 R (page.53) 3804 0 R (page.54) 3839 0 R (page.55) 3863 0 R (page.56) 3903 0 R (page.57) 3923 0 R (page.58) 3949 0 R (page.59) 3988 0 R (page.6) 1740 0 R (page.60) 4013 0 R (page.61) 4048 0 R (page.62) 4060 0 R (page.63) 4090 0 R (page.64) 4122 0 R (page.65) 4200 0 R (page.66) 4216 0 R (page.67) 4244 0 R (page.68) 4295 0 R (page.69) 4329 0 R (page.7) 1888 0 R (page.70) 4340 0 R (page.71) 4375 0 R (page.72) 4396 0 R (page.73) 4422 0 R (page.74) 4445 0 R (page.75) 4464 0 R (page.76) 4477 0 R (page.77) 4493 0 R (page.78) 4530 0 R (page.79) 4570 0 R (page.8) 2028 0 R (page.80) 4609 0 R (page.81) 4639 0 R (page.82) 4655 0 R (page.83) 4672 0 R (page.84) 4690 0 R (page.85) 4708 0 R (page.86) 4715 0 R (page.87) 4743 0 R (page.88) 4775 0 R (page.89) 4803 0 R (page.9) 2086 0 R (page.90) 4841 0 R (page.91) 4859 0 R (page.92) 4894 0 R (page.93) 4926 0 R (page.94) 4947 0 R (page.95) 4966 0 R (page.96) 4982 0 R (page.97) 5009 0 R (page.98) 5034 0 R (page.99) 5058 0 R (param-LDAPBaseDN) 3284 0 R (param-LDAPbinddn) 3274 0 R (param-LDAPmailattribute) 3294 0 R (param-LDAPserver) 3261 0 R (param-LDAPuidattribute) 3289 0 R (param-RADIUS_email_suffix) 3317 0 R (param-RADIUS_secret) 3314 0 R (param-RADIUS_server) 3311 0 R (param-admin-policies) 1575 0 R (param-attachments) 1577 0 R (param-bug-change-policies) 1578 0 R (param-bugfields) 1579 0 R (param-bugmoving) 1580 0 R (param-dependency-graphs) 1581 0 R (param-email) 1585 0 R (param-group-security) 1582 0 R (param-patchviewer) 1586 0 R (param-querydefaults) 1587 0 R (param-requiredsettings) 1574 0 R (param-shadowdatabase) 1588 0 R (param-user-authentication) 1576 0 R (param-user_verify_class_for_ldap) 3255 0 R (param-user_verify_class_for_radius) 3305 0 R (parameters) 1573 0 R (paranoid-security) 2017 0 R (patches) 2022 0 R (patchviewer) 1869 0 R (patchviewer_bonsai_lxr) 1875 0 R (patchviewer_collapse) 1873 0 R (patchviewer_context) 1872 0 R (patchviewer_diff) 1871 0 R (patchviewer_link) 1874 0 R (patchviewer_unified_diff) 1876 0 R (patchviewer_view) 1870 0 R (permissionsettings) 1983 0 R (postgresql) 1431 0 R (product-group-controls) 1703 0 R (products) 1699 0 R (pronouns) 1858 0 R (query) 1856 0 R (quicksearch) 1861 0 R (quips) 1730 0 R (reporting) 1984 0 R (reports) 1985 0 R (sanitycheck) 1736 0 R (savedsearches) 1981 0 R (scm) 2009 0 R (security) 1838 0 R (security-bugzilla) 1849 0 R (security-bugzilla-charset) 1850 0 R (security-mysql) 1843 0 R (security-mysql-account) 1844 0 R (security-mysql-account-anonymous) 4103 0 R (security-mysql-account-root) 4097 0 R (security-mysql-network) 1846 0 R (security-mysql-network-ex) 4115 0 R (security-mysql-root) 1845 0 R (security-os) 1839 0 R (security-os-accounts) 1841 0 R (security-os-chroot) 1842 0 R (security-os-ports) 1840 0 R (security-webserver) 1847 0 R (security-webserver-access) 1848 0 R (self-registration) 3370 0 R (suexec) 1562 0 R (svn) 2010 0 R (table.1) 2180 0 R (table.2) 3883 0 R (table.3) 4256 0 R (table.4) 4309 0 R (table.5) 4392 0 R (table.6) 4459 0 R (table.7) 4481 0 R (table.8) 4878 0 R (template-directory) 1998 0 R (template-edit) 2000 0 R (template-formats) 2001 0 R (template-http-accept) 2003 0 R (template-method) 1999 0 R (template-specific) 2002 0 R (timetracking) 1882 0 R (tinderbox) 2011 0 R (trbl-dbdSponge) 2016 0 R (trbl-index) 2020 0 R (trbl-passwd-encryption) 2021 0 R (trbl-perlmodule) 2015 0 R (trbl-relogin-everyone) 2018 0 R (trbl-relogin-everyone-restrict) 5045 0 R (trbl-relogin-everyone-share) 5039 0 R (trbl-relogin-some) 2019 0 R (trbl-testserver) 2014 0 R (troubleshooting) 2012 0 R (upgrade) 1563 0 R (upgrade-before) 1564 0 R (upgrade-completion) 1570 0 R (upgrade-cvs) 1567 0 R (upgrade-files) 1565 0 R (upgrade-modified) 1566 0 R (upgrade-notifications) 1571 0 R (upgrade-patches) 1569 0 R (upgrade-tarball) 1568 0 R (user-account-creation) 3376 0 R (user-account-deletion) 1696 0 R (user-account-search) 1693 0 R (useradmin) 1690 0 R (userpreferences) 1883 0 R (users-and-groups) 1734 0 R (using) 1851 0 R (using-intro) 1852 0 R (using-mod_perl-with-bugzilla) 1425 0 R (versions) 1706 0 R (voting) 1729 0 R (whining) 1990 0 R (whining-overview) 1991 0 R (whining-query) 1993 0 R (whining-schedule) 1992 0 R (win32-code-changes) 1546 0 R (win32-email) 1548 0 R (win32-http) 1547 0 R (win32-perl) 1544 0 R (win32-perl-modules) 1545 0 R] +5530 0 obj << +/Names [(1.0) 2 0 R (10.0) 994 0 R (10.51.1) 998 0 R (10.52.1) 1002 0 R (10.53.1) 1006 0 R (10.54.1) 1010 0 R (10.55.1) 1014 0 R (10.56.1) 1018 0 R (10.57.1) 1022 0 R (10.58.1) 1026 0 R (10.59.1) 1030 0 R (1000) 2952 0 R (1002) 2955 0 R (1003) 2956 0 R (1004) 2957 0 R (1005) 2958 0 R (1006) 2959 0 R (1007) 2964 0 R (1008) 2965 0 R (101) 2159 0 R (1010) 2966 0 R (1011) 2967 0 R (1012) 2968 0 R (1013) 2969 0 R (1015) 2970 0 R (1016) 2971 0 R (1017) 2972 0 R (1018) 2973 0 R (102) 2160 0 R (1021) 2974 0 R (1022) 2975 0 R (1024) 2976 0 R (1026) 2978 0 R (1027) 2979 0 R (1028) 2980 0 R (103) 2161 0 R (1030) 2981 0 R (1032) 2983 0 R (1033) 2984 0 R (1035) 2985 0 R (1037) 2987 0 R (1038) 2988 0 R (1039) 2989 0 R (104) 2162 0 R (1042) 2990 0 R (1044) 2992 0 R (1047) 2993 0 R (1048) 2999 0 R (1049) 3000 0 R (105) 2163 0 R (1050) 3001 0 R (1051) 3002 0 R (1052) 3003 0 R (1053) 3004 0 R (1054) 3005 0 R (1055) 3006 0 R (1056) 3007 0 R (1057) 3008 0 R (1058) 3009 0 R (106) 2164 0 R (1061) 3010 0 R (1062) 3011 0 R (1063) 3012 0 R (1064) 3013 0 R (1065) 3014 0 R (1066) 3015 0 R (1067) 3016 0 R (1068) 3017 0 R (1069) 3018 0 R (107) 2165 0 R (1070) 3019 0 R (1071) 3020 0 R (1072) 3021 0 R (1073) 3022 0 R (1074) 3023 0 R (1075) 3024 0 R (1076) 3025 0 R (1077) 3026 0 R (1078) 3027 0 R (1079) 3028 0 R (108) 2166 0 R (1080) 3033 0 R (1083) 3034 0 R (1084) 3035 0 R (1085) 3036 0 R (1086) 3037 0 R (1087) 3038 0 R (1088) 3039 0 R (1089) 3040 0 R (109) 2167 0 R (1090) 3041 0 R (1091) 3042 0 R (1092) 3043 0 R (1093) 3044 0 R (1094) 3045 0 R (1095) 3046 0 R (1096) 3047 0 R (11.0) 1034 0 R (11.60.1) 1038 0 R (11.61.1) 1042 0 R (110) 2168 0 R (1100) 3049 0 R (1101) 3050 0 R (1102) 3051 0 R (1103) 3052 0 R (1104) 3053 0 R (1105) 3054 0 R (1106) 3055 0 R (1107) 3056 0 R (1109) 3058 0 R (111) 2169 0 R (1110) 3059 0 R (1111) 3060 0 R (1112) 3061 0 R (1113) 3062 0 R (1114) 3063 0 R (1115) 3064 0 R (1116) 3069 0 R (1117) 3070 0 R (1118) 3071 0 R (1119) 3072 0 R (112) 2170 0 R (1120) 3073 0 R (1121) 3074 0 R (1122) 3075 0 R (1123) 3076 0 R (1124) 3077 0 R (1126) 3079 0 R (1129) 3080 0 R (113) 2171 0 R (1130) 3081 0 R (1132) 3083 0 R (1133) 3084 0 R (1134) 3085 0 R (1135) 3086 0 R (114) 2172 0 R (1140) 3091 0 R (1143) 3092 0 R (1144) 3093 0 R (1146) 3094 0 R (1148) 3095 0 R (1149) 3096 0 R (1150) 3097 0 R (1152) 3098 0 R (1153) 3099 0 R (1154) 3100 0 R (1155) 3101 0 R (1156) 3102 0 R (1157) 3103 0 R (1158) 3104 0 R (1160) 3105 0 R (1161) 3106 0 R (1162) 3107 0 R (1163) 3108 0 R (1164) 3109 0 R (1165) 3110 0 R (1166) 3111 0 R (1168) 3112 0 R (1169) 3113 0 R (117) 2176 0 R (1170) 3114 0 R (1171) 3115 0 R (1172) 3116 0 R (1173) 3117 0 R (1174) 3118 0 R (1176) 3119 0 R (1177) 3120 0 R (1178) 3121 0 R (1179) 3122 0 R (1181) 3123 0 R (1182) 3124 0 R (1183) 3125 0 R (1184) 3130 0 R (1185) 3131 0 R (1186) 3132 0 R (1188) 3133 0 R (1189) 3134 0 R (119) 2177 0 R (1190) 3135 0 R (1191) 3136 0 R (1192) 3137 0 R (1193) 3138 0 R (1194) 3139 0 R (1196) 3140 0 R (1197) 3141 0 R (1198) 3142 0 R (1199) 3143 0 R (12.0) 1046 0 R (12.62.1) 1050 0 R (12.63.1) 1054 0 R (12.64.1) 1058 0 R (120) 2178 0 R (1200) 3144 0 R (1201) 3145 0 R (1202) 3146 0 R (1204) 3147 0 R (1205) 3148 0 R (1206) 3149 0 R (1207) 3150 0 R (1208) 3151 0 R (1209) 3152 0 R (121) 2179 0 R (1210) 3153 0 R (1212) 3154 0 R (1213) 3155 0 R (1214) 3156 0 R (1215) 3157 0 R (1216) 3158 0 R (1217) 3159 0 R (1219) 3160 0 R (1220) 3161 0 R (1221) 3162 0 R (1222) 3163 0 R (1223) 3164 0 R (1225) 3165 0 R (1226) 3166 0 R (1227) 3167 0 R (1230) 3172 0 R (1233) 3173 0 R (1234) 3174 0 R (1236) 3175 0 R (1237) 3176 0 R (1238) 3177 0 R (1239) 3178 0 R (1241) 3179 0 R (1242) 3180 0 R (1243) 3181 0 R (1244) 3182 0 R (1247) 3183 0 R (1250) 3184 0 R (1251) 3185 0 R (1253) 3186 0 R (1254) 3187 0 R (1255) 3188 0 R (1256) 3189 0 R (1257) 3190 0 R (1258) 3196 0 R (1260) 3197 0 R (1261) 3198 0 R (1262) 3199 0 R (1265) 3200 0 R (1266) 3201 0 R (1268) 3202 0 R (1269) 3203 0 R (1270) 3204 0 R (1272) 3205 0 R (1273) 3206 0 R (1274) 3207 0 R (1277) 3208 0 R (1278) 3209 0 R (1281) 3210 0 R (1282) 3211 0 R (1285) 3217 0 R (1287) 3219 0 R (1289) 3220 0 R (1290) 3221 0 R (1291) 3222 0 R (1293) 3223 0 R (1294) 3224 0 R (1295) 3225 0 R (1296) 3226 0 R (1298) 3227 0 R (1299) 3228 0 R (13.0) 1062 0 R (13.65.1) 1066 0 R (13.66.1) 1070 0 R (13.67.1) 1074 0 R (13.68.1) 1078 0 R (13.69.1) 1082 0 R (13.70.1) 1086 0 R (13.71.1) 1090 0 R (13.72.1) 1094 0 R (13.73.1) 1098 0 R (13.74.1) 1102 0 R (13.75.1) 1106 0 R (13.76.1) 1110 0 R (1300) 3229 0 R (1303) 3231 0 R (1304) 3232 0 R (1305) 3233 0 R (1309) 3235 0 R (1310) 3236 0 R (1311) 3237 0 R (1312) 3242 0 R (1313) 3243 0 R (1316) 3245 0 R (1317) 3216 0 R (1318) 3246 0 R (1321) 3248 0 R (1322) 3249 0 R (1323) 3250 0 R (1324) 3251 0 R (1325) 3252 0 R (1328) 3254 0 R (1329) 3255 0 R (1330) 3256 0 R (1331) 3257 0 R (1332) 3258 0 R (1333) 3259 0 R (1334) 3260 0 R (1335) 3261 0 R (1336) 3262 0 R (1337) 3263 0 R (1338) 3264 0 R (1339) 3265 0 R (1342) 3267 0 R (1343) 3268 0 R (1344) 3269 0 R (1345) 3270 0 R (1348) 3272 0 R (1349) 3273 0 R (1350) 3274 0 R (1351) 3275 0 R (1354) 3277 0 R (1355) 3278 0 R (1356) 3279 0 R (1357) 3280 0 R (1360) 3287 0 R (1361) 3288 0 R (1362) 3289 0 R (1363) 3290 0 R (1366) 3291 0 R (1367) 3292 0 R (1368) 3293 0 R (1370) 3295 0 R (1371) 3296 0 R (1374) 3298 0 R (1375) 3299 0 R (1376) 3300 0 R (1377) 3301 0 R (1378) 3302 0 R (1381) 3304 0 R (1382) 3305 0 R (1385) 3307 0 R (1386) 3308 0 R (1389) 3310 0 R (1390) 3311 0 R (1391) 3312 0 R (1392) 3313 0 R (1395) 3314 0 R (1396) 3315 0 R (1398) 3320 0 R (1399) 3321 0 R (14.0) 1114 0 R (1400) 3322 0 R (1401) 3323 0 R (1403) 3324 0 R (1404) 3325 0 R (1405) 3326 0 R (1407) 3327 0 R (1408) 3328 0 R (1409) 3329 0 R (1411) 3330 0 R (1412) 3331 0 R (1413) 3332 0 R (1415) 3333 0 R (1416) 3334 0 R (1417) 3335 0 R (1420) 3336 0 R (1423) 3337 0 R (1426) 3338 0 R (1427) 3344 0 R (1428) 3345 0 R (1429) 3346 0 R (1430) 3347 0 R (1433) 3348 0 R (1438) 3349 0 R (1439) 3350 0 R (1440) 3351 0 R (1445) 3352 0 R (1446) 3353 0 R (1447) 3354 0 R (1448) 3355 0 R (1449) 3356 0 R (1450) 3343 0 R (1455) 3363 0 R (1456) 3364 0 R (1457) 3365 0 R (1458) 3366 0 R (1462) 3369 0 R (1463) 3370 0 R (1464) 3371 0 R (1465) 3372 0 R (1466) 3373 0 R (1467) 3374 0 R (1468) 3375 0 R (1469) 3376 0 R (1470) 3377 0 R (1471) 3378 0 R (1472) 3379 0 R (1475) 3380 0 R (1476) 3381 0 R (1477) 3382 0 R (1478) 3383 0 R (1479) 3384 0 R (1480) 3385 0 R (1481) 3386 0 R (1482) 3387 0 R (1483) 3388 0 R (1484) 3389 0 R (1485) 3390 0 R (1486) 3391 0 R (1487) 3392 0 R (1488) 3397 0 R (1489) 3398 0 R (1490) 3399 0 R (1491) 3400 0 R (1492) 3401 0 R (1493) 3402 0 R (1494) 3403 0 R (1495) 3404 0 R (1496) 3405 0 R (1497) 3406 0 R (1498) 3407 0 R (1499) 3408 0 R (15.0) 1118 0 R (15.76.108.2) 1122 0 R (1500) 3409 0 R (1501) 3410 0 R (1502) 3411 0 R (1503) 3412 0 R (1504) 3413 0 R (1505) 3414 0 R (1506) 3415 0 R (1507) 3416 0 R (1508) 3417 0 R (1509) 3418 0 R (1510) 3419 0 R (1511) 3420 0 R (1512) 3421 0 R (1513) 3422 0 R (1514) 3423 0 R (1515) 3424 0 R (1516) 3425 0 R (1517) 3426 0 R (1518) 3427 0 R (1519) 3428 0 R (1520) 3429 0 R (1521) 3430 0 R (1522) 3431 0 R (1523) 3432 0 R (1524) 3433 0 R (1525) 3434 0 R (1526) 3435 0 R (1527) 3436 0 R (1528) 3437 0 R (1529) 3438 0 R (1532) 3443 0 R (1533) 3444 0 R (1537) 3446 0 R (1538) 3447 0 R (1539) 3448 0 R (1540) 3449 0 R (1541) 3450 0 R (1542) 3451 0 R (1543) 3452 0 R (1544) 3453 0 R (1545) 3454 0 R (1548) 3455 0 R (1549) 3456 0 R (1550) 3457 0 R (1551) 3458 0 R (1552) 3459 0 R (1553) 3460 0 R (1556) 3465 0 R (1559) 3468 0 R (1560) 3469 0 R (1561) 3470 0 R (1562) 3471 0 R (1563) 3472 0 R (1565) 3473 0 R (1566) 3474 0 R (1567) 3475 0 R (1569) 3476 0 R (1570) 3477 0 R (1571) 3478 0 R (1573) 3479 0 R (1574) 3480 0 R (1575) 3481 0 R (1577) 3482 0 R (1578) 3483 0 R (1579) 3484 0 R (1581) 3485 0 R (1582) 3486 0 R (1583) 3487 0 R (1585) 3488 0 R (1586) 3489 0 R (1587) 3490 0 R (1589) 3491 0 R (1590) 3492 0 R (1591) 3493 0 R (1593) 3494 0 R (1594) 3495 0 R (1595) 3496 0 R (1597) 3497 0 R (1598) 3498 0 R (1599) 3499 0 R (16.0) 1126 0 R (16.76.109.2) 1130 0 R (16.76.109.57.3) 1134 0 R (1601) 3500 0 R (1602) 3501 0 R (1603) 3502 0 R (1604) 3503 0 R (1608) 3510 0 R (1609) 3511 0 R (1610) 3512 0 R (1611) 3513 0 R (1612) 3514 0 R (1613) 3515 0 R (1614) 3516 0 R (1615) 3517 0 R (1616) 3518 0 R (1617) 3519 0 R (1618) 3520 0 R (1619) 3521 0 R (1620) 3522 0 R (1624) 3524 0 R (1627) 3525 0 R (1628) 3526 0 R (1630) 3528 0 R (1632) 3530 0 R (1636) 3532 0 R (1637) 3533 0 R (1638) 3534 0 R (1639) 3535 0 R (1641) 3537 0 R (1642) 3542 0 R (1644) 3544 0 R (1645) 3545 0 R (1646) 3546 0 R (1647) 3547 0 R (1648) 3548 0 R (1649) 3549 0 R (1650) 3550 0 R (1651) 3551 0 R (1652) 3552 0 R (1653) 3553 0 R (1654) 3554 0 R (1655) 3555 0 R (1656) 3556 0 R (1657) 3557 0 R (1658) 3558 0 R (1659) 3559 0 R (1660) 3560 0 R (1661) 3561 0 R (1662) 3562 0 R (1663) 3563 0 R (1664) 3564 0 R (1665) 3565 0 R (1666) 3566 0 R (1669) 3567 0 R (1670) 3568 0 R (1671) 3569 0 R (1672) 3570 0 R (1673) 3571 0 R (1674) 3572 0 R (1675) 3578 0 R (1676) 3579 0 R (1677) 3580 0 R (1678) 3581 0 R (1679) 3582 0 R (1680) 3583 0 R (1681) 3584 0 R (1682) 3585 0 R (1683) 3586 0 R (1684) 3587 0 R (1685) 3588 0 R (1686) 3589 0 R (1687) 3590 0 R (1688) 3591 0 R (1689) 3592 0 R (1690) 3593 0 R (1691) 3594 0 R (1692) 3595 0 R (1693) 3596 0 R (1694) 3597 0 R (1695) 3602 0 R (1696) 3603 0 R (1697) 3604 0 R (1698) 3605 0 R (1699) 3606 0 R (17.0) 1138 0 R (17.76.110.2) 1142 0 R (17.76.111.2) 1146 0 R (17.76.112.2) 1150 0 R (1700) 3607 0 R (1704) 3609 0 R (1705) 3610 0 R (1706) 3611 0 R (1707) 3612 0 R (1708) 3613 0 R (1709) 3614 0 R (1710) 3615 0 R (1711) 3616 0 R (1712) 3617 0 R (1713) 3618 0 R (1714) 3619 0 R (1715) 3620 0 R (1716) 3621 0 R (1717) 3622 0 R (1718) 3623 0 R (1719) 3624 0 R (1720) 3625 0 R (1721) 3626 0 R (1722) 3627 0 R (1723) 3628 0 R (1724) 3629 0 R (1727) 3635 0 R (1728) 3636 0 R (1729) 3637 0 R (1730) 3638 0 R (1731) 3639 0 R (1732) 3640 0 R (1733) 3641 0 R (1734) 3642 0 R (1735) 3643 0 R (1738) 3644 0 R (1739) 3645 0 R (1740) 3646 0 R (1741) 3647 0 R (1742) 3648 0 R (1743) 3649 0 R (1744) 3650 0 R (1745) 3651 0 R (1746) 3652 0 R (1747) 3653 0 R (1748) 3654 0 R (1749) 3655 0 R (1750) 3656 0 R (1753) 3657 0 R (1754) 3658 0 R (1755) 3659 0 R (1756) 3660 0 R (1759) 3665 0 R (1760) 3666 0 R (1761) 3667 0 R (1762) 3634 0 R (1769) 3668 0 R (1770) 3669 0 R (1771) 3670 0 R (1772) 3671 0 R (1773) 3672 0 R (1774) 3673 0 R (1775) 3674 0 R (1776) 3675 0 R (1777) 3676 0 R (1778) 3677 0 R (1779) 3678 0 R (1780) 3679 0 R (1781) 3680 0 R (1782) 3681 0 R (1783) 3682 0 R (1784) 3683 0 R (1785) 3684 0 R (1790) 3685 0 R (1791) 3686 0 R (1793) 3687 0 R (1794) 3688 0 R (1795) 3689 0 R (1796) 3690 0 R (1798) 3691 0 R (1799) 3692 0 R (18.0) 1154 0 R (18.76.113.2) 1158 0 R (18.76.114.2) 1162 0 R (18.76.115.2) 1166 0 R (18.76.116.2) 1170 0 R (1800) 3693 0 R (1801) 3694 0 R (1802) 3695 0 R (1804) 3696 0 R (1805) 3697 0 R (1806) 3698 0 R (1807) 3699 0 R (1808) 3700 0 R (1809) 3701 0 R (1810) 3702 0 R (1813) 3703 0 R (1814) 3704 0 R (1815) 3705 0 R (1816) 3706 0 R (1817) 3707 0 R (1818) 3712 0 R (1819) 3713 0 R (182) 2185 0 R (1820) 3714 0 R (1821) 3715 0 R (1822) 3716 0 R (1823) 3717 0 R (1826) 3718 0 R (1829) 3719 0 R (183) 2186 0 R (1830) 3720 0 R (1831) 3721 0 R (1832) 3722 0 R (1833) 3723 0 R (1834) 3724 0 R (1835) 3725 0 R (1836) 3726 0 R (1837) 3727 0 R (1838) 3728 0 R (1839) 3729 0 R (1840) 3730 0 R (1841) 3731 0 R (1842) 3732 0 R (1843) 3733 0 R (1844) 3734 0 R (1845) 3735 0 R (1846) 3736 0 R (1847) 3737 0 R (1850) 3738 0 R (1851) 3739 0 R (1852) 3740 0 R (1853) 3741 0 R (1854) 3742 0 R (1857) 3743 0 R (1858) 3744 0 R (1859) 3745 0 R (1860) 3746 0 R (1861) 3747 0 R (1864) 3752 0 R (1865) 3753 0 R (1869) 3755 0 R (1870) 3756 0 R (1873) 3758 0 R (1876) 3760 0 R (1877) 3761 0 R (1878) 3762 0 R (188) 2191 0 R (1881) 3764 0 R (1882) 3765 0 R (1883) 3766 0 R (1884) 3767 0 R (1885) 3768 0 R (1886) 3769 0 R (1887) 3770 0 R (1888) 3771 0 R (1889) 3772 0 R (189) 2192 0 R (1890) 3773 0 R (1891) 3774 0 R (1892) 3775 0 R (1893) 3776 0 R (1894) 3777 0 R (1895) 3778 0 R (1896) 3779 0 R (1897) 3780 0 R (1898) 3781 0 R (1899) 3782 0 R (19.0) 1174 0 R (19.76.117.2) 1178 0 R (19.76.118.2) 1182 0 R (190) 2193 0 R (1900) 3783 0 R (1901) 3784 0 R (1902) 3785 0 R (1903) 3786 0 R (1904) 3787 0 R (1905) 3788 0 R (1906) 3789 0 R (1907) 3790 0 R (1908) 3791 0 R (1909) 3792 0 R (191) 2197 0 R (1910) 3793 0 R (1911) 3794 0 R (1914) 3801 0 R (1915) 3802 0 R (1916) 3803 0 R (1919) 3805 0 R (1920) 3806 0 R (1923) 3808 0 R (1924) 3809 0 R (1925) 3810 0 R (1926) 3811 0 R (1927) 3812 0 R (1928) 3813 0 R (193) 2200 0 R (1931) 3815 0 R (1932) 3816 0 R (1935) 3818 0 R (1936) 3819 0 R (1937) 3820 0 R (1938) 3821 0 R (194) 2201 0 R (1941) 3823 0 R (1944) 3825 0 R (1945) 3826 0 R (1946) 3827 0 R (1947) 3828 0 R (195) 2202 0 R (1950) 3834 0 R (1951) 3835 0 R (1954) 3836 0 R (1955) 3837 0 R (1956) 3838 0 R (1957) 3839 0 R (1958) 3840 0 R (1959) 3841 0 R (196) 2203 0 R (1960) 3842 0 R (1961) 3843 0 R (1964) 3844 0 R (1965) 3845 0 R (1967) 3847 0 R (197) 2204 0 R (1970) 3848 0 R (1971) 3849 0 R (1972) 3850 0 R (1973) 3855 0 R (1974) 3856 0 R (1977) 3857 0 R (1978) 3858 0 R (1979) 3859 0 R (198) 2205 0 R (1980) 3860 0 R (1981) 3861 0 R (1982) 3862 0 R (1983) 3863 0 R (1984) 3864 0 R (1985) 3865 0 R (1986) 3866 0 R (1987) 3867 0 R (1988) 3868 0 R (1989) 3869 0 R (199) 2206 0 R (1990) 3870 0 R (1998) 3874 0 R (1999) 3875 0 R (2.0) 6 0 R (20.0) 1186 0 R (20.76.119.2) 1190 0 R (2000) 3876 0 R (2001) 3877 0 R (2002) 3878 0 R (2003) 3879 0 R (2005) 3881 0 R (2006) 3882 0 R (2007) 3883 0 R (2008) 3884 0 R (2009) 3885 0 R (2010) 3886 0 R (2013) 3887 0 R (2017) 3889 0 R (202) 2208 0 R (2020) 3895 0 R (2021) 3896 0 R (2024) 3897 0 R (2025) 3898 0 R (2026) 3899 0 R (2029) 3900 0 R (2030) 3901 0 R (2031) 3902 0 R (2032) 3903 0 R (2033) 3904 0 R (2034) 3905 0 R (2035) 3906 0 R (2038) 3907 0 R (2039) 3908 0 R (2042) 3909 0 R (2043) 3894 0 R (2044) 3914 0 R (2045) 3915 0 R (2046) 3916 0 R (2047) 3917 0 R (2048) 3918 0 R (2049) 3919 0 R (205) 2210 0 R (2050) 3920 0 R (2051) 3921 0 R (2052) 3922 0 R (2053) 3923 0 R (2054) 3924 0 R (2055) 3925 0 R (2056) 3926 0 R (2057) 3927 0 R (2060) 3928 0 R (2061) 3929 0 R (2062) 3930 0 R (2063) 3931 0 R (2064) 3932 0 R (2065) 3933 0 R (2068) 3934 0 R (2069) 3935 0 R (2070) 3936 0 R (2071) 3937 0 R (2072) 3942 0 R (2073) 3943 0 R (2074) 3944 0 R (2076) 3947 0 R (2077) 3948 0 R (2079) 3950 0 R (208) 2212 0 R (2080) 3951 0 R (2082) 3953 0 R (2083) 3954 0 R (2085) 3956 0 R (2086) 3957 0 R (2087) 3958 0 R (2090) 3959 0 R (2091) 3960 0 R (2092) 3961 0 R (2093) 3962 0 R (2094) 3963 0 R (2095) 3964 0 R (2096) 3965 0 R (2097) 3966 0 R (2098) 3967 0 R (2099) 3968 0 R (21.0) 1194 0 R (21.76.120.2) 1198 0 R (2100) 3969 0 R (2101) 3970 0 R (2102) 3971 0 R (2103) 3972 0 R (2104) 3973 0 R (2105) 3979 0 R (2106) 3980 0 R (2107) 3981 0 R (211) 2214 0 R (2111) 3983 0 R (2112) 3984 0 R (2113) 3985 0 R (2114) 3986 0 R (2115) 3987 0 R (2117) 3989 0 R (2118) 3990 0 R (2120) 3991 0 R (2121) 3992 0 R (2122) 3993 0 R (2123) 3994 0 R (2125) 3995 0 R (2126) 3996 0 R (2127) 3997 0 R (2128) 3998 0 R (2130) 3999 0 R (2131) 4000 0 R (2132) 4001 0 R (2133) 4002 0 R (2135) 4003 0 R (2136) 4004 0 R (2137) 4005 0 R (2138) 4006 0 R (214) 2216 0 R (2140) 4012 0 R (2141) 4013 0 R (2142) 4014 0 R (2143) 4015 0 R (2146) 4017 0 R (2147) 4018 0 R (2148) 4019 0 R (2149) 4020 0 R (2153) 4022 0 R (2154) 4023 0 R (2155) 4024 0 R (2156) 4025 0 R (2158) 4027 0 R (2159) 4028 0 R (2161) 4030 0 R (2162) 4031 0 R (2164) 1735 0 R (2166) 4033 0 R (217) 2218 0 R (2170) 4035 0 R (2171) 4036 0 R (2172) 4041 0 R (2173) 4042 0 R (2174) 4043 0 R (2175) 4011 0 R (2176) 4044 0 R (2177) 4045 0 R (2180) 4050 0 R (2181) 4051 0 R (2182) 4052 0 R (2187) 4053 0 R (2190) 4054 0 R (2192) 4056 0 R (2193) 4057 0 R (2194) 4058 0 R (2195) 4059 0 R (2197) 4061 0 R (2198) 4062 0 R (2199) 4063 0 R (22.0) 1202 0 R (22.76.121.2) 1206 0 R (22.76.122.2) 1210 0 R (2200) 4064 0 R (2201) 4065 0 R (2202) 4066 0 R (2203) 4067 0 R (2204) 4068 0 R (2205) 4069 0 R (2206) 4070 0 R (2207) 4071 0 R (221) 2219 0 R (2211) 4072 0 R (2212) 4073 0 R (2217) 4080 0 R (222) 2220 0 R (2223) 4082 0 R (2224) 4083 0 R (2225) 4084 0 R (2226) 4085 0 R (223) 2221 0 R (2230) 4087 0 R (2231) 4088 0 R (2232) 4089 0 R (2233) 4090 0 R (2234) 4091 0 R (2238) 4093 0 R (2239) 4094 0 R (224) 2222 0 R (2241) 4095 0 R (2242) 4096 0 R (2243) 4097 0 R (2244) 4098 0 R (2245) 4099 0 R (2246) 4100 0 R (2251) 4102 0 R (2255) 4105 0 R (2256) 4106 0 R (2257) 4107 0 R (2262) 4112 0 R (2263) 4113 0 R (2264) 4114 0 R (2265) 4115 0 R (2269) 4118 0 R (227) 2227 0 R (2270) 4119 0 R (2271) 4120 0 R (2272) 4121 0 R (2273) 4122 0 R (2274) 4123 0 R (2276) 4124 0 R (2277) 4125 0 R (2278) 4126 0 R (2279) 4127 0 R (2280) 4128 0 R (2281) 4129 0 R (2282) 4130 0 R (2283) 4131 0 R (2284) 4132 0 R (2285) 4133 0 R (2286) 4134 0 R (2287) 4135 0 R (2288) 4136 0 R (2289) 4137 0 R (2290) 4138 0 R (2291) 4139 0 R (2292) 4140 0 R (2293) 4141 0 R (2294) 4142 0 R (2295) 4143 0 R (2296) 4144 0 R (2298) 4145 0 R (2299) 4146 0 R (23.0) 1214 0 R (23.76.123.2) 1218 0 R (23.76.124.2) 1222 0 R (23.76.125.2) 1226 0 R (230) 2228 0 R (2300) 4147 0 R (2301) 4148 0 R (2302) 4149 0 R (2303) 4150 0 R (2304) 4151 0 R (2305) 4152 0 R (2306) 4153 0 R (2308) 4154 0 R (2309) 4155 0 R (231) 2229 0 R (2310) 4156 0 R (2311) 4157 0 R (2312) 4158 0 R (2313) 4159 0 R (2314) 4160 0 R (2315) 4161 0 R (2316) 4162 0 R (2317) 4163 0 R (2318) 4164 0 R (2319) 4165 0 R (232) 2230 0 R (2320) 4166 0 R (2321) 4167 0 R (2322) 4168 0 R (2323) 4169 0 R (2324) 4170 0 R (2325) 4171 0 R (2326) 4172 0 R (2327) 4173 0 R (2328) 4174 0 R (2329) 4175 0 R (233) 2231 0 R (2330) 4176 0 R (2331) 4177 0 R (2332) 4178 0 R (2333) 4179 0 R (2334) 4186 0 R (2335) 4187 0 R (2336) 4188 0 R (2337) 4189 0 R (2338) 4190 0 R (234) 2232 0 R (2344) 4192 0 R (2345) 4193 0 R (2346) 4194 0 R (2347) 4195 0 R (2348) 4196 0 R (2349) 4197 0 R (235) 2233 0 R (2354) 4202 0 R (2355) 4203 0 R (2356) 4204 0 R (2357) 4205 0 R (236) 2234 0 R (2360) 4206 0 R (2361) 4207 0 R (2362) 4208 0 R (2363) 4209 0 R (2364) 4210 0 R (2365) 4211 0 R (2366) 4212 0 R (2367) 4213 0 R (2368) 4214 0 R (2369) 4215 0 R (237) 2235 0 R (2370) 4216 0 R (2371) 4217 0 R (2372) 4218 0 R (2373) 4219 0 R (2374) 4220 0 R (2375) 4221 0 R (2376) 4222 0 R (2377) 4223 0 R (2378) 4224 0 R (2379) 4225 0 R (238) 2236 0 R (2380) 4230 0 R (2381) 4231 0 R (2382) 4232 0 R (2383) 4233 0 R (2386) 4234 0 R (2387) 4235 0 R (2388) 4236 0 R (2389) 4237 0 R (2390) 4238 0 R (2391) 4239 0 R (2392) 4240 0 R (24) 2093 0 R (24.0) 1230 0 R (24.76.126.2) 1234 0 R (241) 2237 0 R (2413) 4242 0 R (2414) 4243 0 R (2415) 4244 0 R (2416) 4245 0 R (2417) 4246 0 R (2418) 4247 0 R (2419) 4248 0 R (242) 2238 0 R (2420) 4249 0 R (2421) 4250 0 R (2422) 4251 0 R (2423) 4252 0 R (2424) 4253 0 R (2425) 4254 0 R (2426) 4255 0 R (2427) 4256 0 R (2428) 4257 0 R (2429) 4258 0 R (243) 2239 0 R (2430) 4259 0 R (2431) 4260 0 R (2432) 4261 0 R (2433) 4262 0 R (2434) 4263 0 R (2435) 4264 0 R (2436) 4265 0 R (2437) 4266 0 R (2438) 4267 0 R (2439) 4268 0 R (244) 2240 0 R (2440) 4269 0 R (2441) 4270 0 R (2442) 4271 0 R (2443) 4272 0 R (2444) 4273 0 R (2445) 4274 0 R (2446) 4275 0 R (2447) 4281 0 R (2448) 4282 0 R (2449) 4283 0 R (245) 2241 0 R (2450) 4284 0 R (2451) 4285 0 R (2452) 4286 0 R (2453) 4287 0 R (2454) 4288 0 R (2455) 4289 0 R (2456) 4290 0 R (2457) 4291 0 R (2458) 4292 0 R (2459) 4293 0 R (248) 2242 0 R (2480) 4295 0 R (2481) 4296 0 R (2482) 4297 0 R (2483) 4298 0 R (2484) 4299 0 R (2485) 4300 0 R (2486) 4301 0 R (2487) 4302 0 R (2488) 4303 0 R (2489) 4304 0 R (249) 2243 0 R (2490) 4305 0 R (2491) 4306 0 R (2494) 4307 0 R (2496) 4309 0 R (2497) 4310 0 R (25) 2094 0 R (25.0) 1238 0 R (25.76.127.2) 1242 0 R (25.76.128.2) 1246 0 R (250) 2244 0 R (2500) 4316 0 R (2505) 4317 0 R (2506) 4318 0 R (2507) 4319 0 R (2508) 4320 0 R (251) 2245 0 R (2512) 4326 0 R (2513) 4315 0 R (2514) 4327 0 R (2515) 4328 0 R (2516) 4329 0 R (2517) 4330 0 R (2518) 4331 0 R (2519) 4332 0 R (252) 2250 0 R (2520) 4333 0 R (2521) 4334 0 R (2522) 4335 0 R (2523) 4336 0 R (2524) 4337 0 R (2525) 4338 0 R (2526) 4339 0 R (2527) 4340 0 R (2528) 4341 0 R (2531) 4342 0 R (2532) 4343 0 R (2535) 4344 0 R (2536) 4345 0 R (2537) 4346 0 R (2538) 4347 0 R (2539) 4348 0 R (2540) 4349 0 R (2541) 4350 0 R (2542) 4351 0 R (2543) 4352 0 R (2544) 4353 0 R (2545) 4354 0 R (2546) 4355 0 R (2547) 4361 0 R (255) 2251 0 R (2550) 4362 0 R (2551) 4363 0 R (2552) 4364 0 R (2553) 4365 0 R (2554) 4366 0 R (2555) 4367 0 R (2558) 4368 0 R (2559) 4369 0 R (256) 2252 0 R (2560) 4370 0 R (2561) 4371 0 R (2562) 4372 0 R (2565) 4373 0 R (2568) 4374 0 R (2569) 4375 0 R (2570) 4376 0 R (258) 2254 0 R (259) 2255 0 R (2591) 4382 0 R (2594) 4383 0 R (2595) 4384 0 R (2597) 4386 0 R (2598) 4387 0 R (2599) 4388 0 R (26) 2095 0 R (26.0) 1250 0 R (26.76.129.2) 1254 0 R (26.76.130.2) 1258 0 R (260) 2256 0 R (2600) 4389 0 R (2605) 4390 0 R (2606) 4391 0 R (2607) 4392 0 R (2608) 4393 0 R (2609) 4394 0 R (2610) 4395 0 R (2611) 4396 0 R (2612) 4397 0 R (2613) 4398 0 R (2614) 4399 0 R (2615) 4400 0 R (2616) 4401 0 R (2617) 4402 0 R (2618) 4403 0 R (2619) 4408 0 R (2620) 4409 0 R (2621) 4410 0 R (2622) 4411 0 R (2623) 4412 0 R (2624) 4413 0 R (2625) 4414 0 R (2626) 4415 0 R (2627) 4416 0 R (2628) 4417 0 R (2629) 4418 0 R (263) 2257 0 R (2630) 4419 0 R (2631) 4420 0 R (2632) 4421 0 R (2633) 4422 0 R (2634) 4423 0 R (2637) 4424 0 R (2638) 4425 0 R (2639) 4426 0 R (264) 2258 0 R (2642) 4431 0 R (2643) 4432 0 R (2644) 4433 0 R (2645) 4434 0 R (2646) 4435 0 R (2647) 4436 0 R (2648) 4437 0 R (2649) 4438 0 R (265) 2259 0 R (2650) 4439 0 R (2651) 4440 0 R (2654) 4441 0 R (2655) 4442 0 R (2656) 4443 0 R (266) 2260 0 R (2666) 4445 0 R (2669) 4451 0 R (267) 2261 0 R (2672) 4452 0 R (2675) 4453 0 R (2678) 4454 0 R (268) 2262 0 R (2681) 4455 0 R (2682) 4456 0 R (2685) 4457 0 R (2688) 4458 0 R (2689) 1878 0 R (269) 2263 0 R (2691) 4464 0 R (2692) 4465 0 R (2693) 4450 0 R (27.0) 1262 0 R (27.76.131.2) 1266 0 R (27.76.132.2) 1270 0 R (270) 2264 0 R (2702) 4467 0 R (2705) 4468 0 R (2706) 4469 0 R (2709) 4470 0 R (271) 2265 0 R (2712) 4471 0 R (2713) 4472 0 R (2714) 4473 0 R (2717) 4479 0 R (2718) 4480 0 R (2719) 4463 0 R (272) 2266 0 R (2721) 4481 0 R (2722) 4482 0 R (2723) 4483 0 R (2726) 4484 0 R (2729) 4485 0 R (273) 2267 0 R (2730) 4486 0 R (2731) 4487 0 R (2732) 4488 0 R (2733) 4489 0 R (2734) 4490 0 R (2735) 4491 0 R (2736) 4492 0 R (2737) 4493 0 R (2738) 4494 0 R (2739) 4495 0 R (2740) 4496 0 R (2741) 4497 0 R (2742) 4498 0 R (2743) 4499 0 R (2744) 4500 0 R (2745) 4501 0 R (2746) 4502 0 R (2747) 4503 0 R (2748) 4504 0 R (2749) 4505 0 R (2750) 4506 0 R (2753) 4507 0 R (2754) 4508 0 R (2755) 4509 0 R (2756) 4510 0 R (2757) 4511 0 R (2758) 4516 0 R (2759) 4517 0 R (276) 2268 0 R (2760) 4518 0 R (2761) 4519 0 R (2762) 4520 0 R (2763) 4521 0 R (2764) 4522 0 R (2765) 4523 0 R (2766) 4524 0 R (2767) 4525 0 R (2768) 4526 0 R (2769) 4527 0 R (277) 2269 0 R (2770) 4528 0 R (2771) 4529 0 R (2772) 4530 0 R (2773) 4531 0 R (2774) 4532 0 R (2775) 4533 0 R (2776) 4534 0 R (2777) 4535 0 R (2778) 4536 0 R (2779) 4537 0 R (2780) 4538 0 R (2781) 4539 0 R (2782) 4540 0 R (2783) 4541 0 R (2784) 4542 0 R (2785) 4543 0 R (2786) 4544 0 R (2787) 4545 0 R (2788) 4546 0 R (2789) 4547 0 R (279) 2271 0 R (2790) 4548 0 R (2791) 4549 0 R (2792) 4550 0 R (2793) 4551 0 R (2794) 4557 0 R (2795) 4558 0 R (2796) 4559 0 R (2797) 4560 0 R (28) 2097 0 R (28.0) 1274 0 R (28.76.133.2) 1278 0 R (280) 2272 0 R (2800) 4561 0 R (2804) 4563 0 R (2805) 4564 0 R (2806) 4565 0 R (2809) 4566 0 R (281) 2273 0 R (2810) 4567 0 R (2811) 4568 0 R (2812) 4569 0 R (2814) 4570 0 R (2815) 4571 0 R (2816) 4572 0 R (2818) 4573 0 R (2819) 4574 0 R (282) 2274 0 R (2820) 4575 0 R (2822) 4576 0 R (2823) 4577 0 R (2824) 4578 0 R (2826) 4579 0 R (2827) 4580 0 R (2828) 4581 0 R (283) 2275 0 R (2830) 4582 0 R (2831) 4583 0 R (2832) 4584 0 R (2834) 4585 0 R (2835) 4586 0 R (2836) 4587 0 R (2838) 4588 0 R (2839) 4589 0 R (284) 2276 0 R (2840) 4590 0 R (2842) 4595 0 R (2843) 4596 0 R (2844) 4597 0 R (2846) 4556 0 R (2847) 4598 0 R (2848) 4599 0 R (285) 2281 0 R (2850) 4600 0 R (2851) 4601 0 R (2852) 4602 0 R (2854) 4603 0 R (2855) 4604 0 R (2856) 4605 0 R (2858) 4606 0 R (2859) 4607 0 R (286) 2249 0 R (2860) 4608 0 R (2862) 4609 0 R (2863) 4610 0 R (2864) 4611 0 R (2865) 4612 0 R (2866) 4613 0 R (2870) 4615 0 R (2873) 4616 0 R (2874) 4617 0 R (2875) 4618 0 R (2876) 4619 0 R (2877) 4620 0 R (2880) 4625 0 R (2881) 4626 0 R (2882) 4627 0 R (2883) 4628 0 R (2884) 4629 0 R (2885) 4630 0 R (2886) 1987 0 R (2888) 4631 0 R (2889) 4632 0 R (289) 2284 0 R (2890) 4633 0 R (2891) 4634 0 R (2892) 4635 0 R (2895) 4636 0 R (2896) 4642 0 R (2899) 4643 0 R (290) 2285 0 R (2900) 4644 0 R (2901) 4645 0 R (2902) 4646 0 R (2903) 4647 0 R (2904) 4648 0 R (2905) 4649 0 R (2906) 4650 0 R (2909) 4651 0 R (291) 2286 0 R (2910) 4652 0 R (2911) 4658 0 R (2912) 4659 0 R (2913) 4641 0 R (2914) 4660 0 R (2916) 4662 0 R (2917) 4663 0 R (292) 2287 0 R (2921) 4665 0 R (2922) 4666 0 R (2923) 4667 0 R (2926) 4668 0 R (2927) 4669 0 R (2928) 4670 0 R (2929) 4671 0 R (293) 2288 0 R (2930) 4676 0 R (2931) 4677 0 R (2932) 4678 0 R (2933) 4679 0 R (2936) 4680 0 R (2937) 4681 0 R (2938) 4682 0 R (294) 2289 0 R (2940) 4684 0 R (2941) 4685 0 R (2942) 4686 0 R (2943) 4687 0 R (2944) 4688 0 R (2945) 4689 0 R (2946) 1994 0 R (2948) 4694 0 R (2949) 4695 0 R (295) 2290 0 R (2950) 4696 0 R (2955) 4701 0 R (2956) 4702 0 R (2957) 4703 0 R (2958) 4704 0 R (2959) 4705 0 R (296) 2291 0 R (2960) 4706 0 R (2961) 4707 0 R (2962) 4708 0 R (2963) 4709 0 R (2964) 4710 0 R (2965) 4711 0 R (2968) 4712 0 R (2969) 4713 0 R (297) 2292 0 R (2973) 4715 0 R (2974) 4716 0 R (2975) 4717 0 R (2976) 4718 0 R (2977) 4719 0 R (2978) 4720 0 R (2979) 4721 0 R (298) 2293 0 R (2980) 4722 0 R (2981) 4723 0 R (2982) 4724 0 R (2985) 4730 0 R (2986) 4731 0 R (2987) 4732 0 R (2988) 4733 0 R (2989) 4734 0 R (299) 2294 0 R (2990) 4735 0 R (2991) 4736 0 R (2992) 4737 0 R (2993) 4738 0 R (2994) 4739 0 R (2995) 4740 0 R (2996) 4741 0 R (2997) 4742 0 R (2998) 4743 0 R (2999) 4744 0 R (3.0) 10 0 R (300) 2295 0 R (3000) 4745 0 R (3001) 4746 0 R (3002) 4747 0 R (3003) 4748 0 R (3004) 4749 0 R (3005) 4750 0 R (3006) 4751 0 R (3007) 4752 0 R (3008) 4753 0 R (301) 2296 0 R (3011) 4754 0 R (3012) 4755 0 R (3013) 4756 0 R (3014) 4729 0 R (3016) 4762 0 R (3017) 4763 0 R (3018) 4764 0 R (3019) 4765 0 R (302) 2297 0 R (3020) 4766 0 R (3023) 4767 0 R (3024) 4768 0 R (3025) 4769 0 R (3026) 4770 0 R (3027) 4771 0 R (3028) 4772 0 R (3029) 4773 0 R (303) 2298 0 R (3030) 4774 0 R (3031) 4775 0 R (3032) 4776 0 R (3033) 4777 0 R (3034) 4778 0 R (3035) 4779 0 R (3036) 4780 0 R (3037) 4781 0 R (3038) 4782 0 R (3039) 4783 0 R (304) 2299 0 R (3042) 4790 0 R (3043) 4761 0 R (3045) 4791 0 R (3046) 4792 0 R (3047) 4793 0 R (3048) 4794 0 R (3049) 4795 0 R (305) 2300 0 R (3050) 4796 0 R (3051) 4797 0 R (3052) 4798 0 R (3053) 4799 0 R (3054) 4800 0 R (3055) 4801 0 R (3056) 4802 0 R (3057) 4803 0 R (3058) 4804 0 R (3059) 4805 0 R (306) 2301 0 R (3060) 4806 0 R (3061) 4807 0 R (3062) 4808 0 R (3063) 4809 0 R (3064) 4810 0 R (3065) 4811 0 R (3066) 4812 0 R (3067) 4813 0 R (3068) 4814 0 R (3069) 4815 0 R (307) 2302 0 R (3070) 4816 0 R (3071) 4817 0 R (3072) 4818 0 R (3073) 4819 0 R (3074) 4820 0 R (3075) 4821 0 R (3076) 4822 0 R (3077) 4789 0 R (3079) 4827 0 R (308) 2303 0 R (3080) 4828 0 R (3081) 4829 0 R (3082) 4830 0 R (3083) 4831 0 R (3084) 4832 0 R (3087) 4833 0 R (3088) 4834 0 R (309) 2304 0 R (3091) 4835 0 R (3092) 4836 0 R (3093) 4837 0 R (3094) 4838 0 R (3095) 4839 0 R (3096) 4840 0 R (3097) 4845 0 R (3098) 4846 0 R (3099) 4847 0 R (31) 2098 0 R (310) 2305 0 R (3100) 4848 0 R (3101) 4849 0 R (3102) 4850 0 R (3103) 4851 0 R (3104) 4852 0 R (3105) 4853 0 R (3106) 4854 0 R (3107) 4855 0 R (3108) 4856 0 R (3109) 4857 0 R (3110) 4858 0 R (3111) 4859 0 R (3112) 4860 0 R (3113) 4861 0 R (3114) 4862 0 R (3119) 4864 0 R (312) 2307 0 R (3120) 4865 0 R (3121) 4866 0 R (3122) 4867 0 R (3123) 4868 0 R (3124) 4869 0 R (3125) 4870 0 R (3126) 4871 0 R (3127) 4872 0 R (3128) 4873 0 R (3129) 4874 0 R (313) 2308 0 R (3130) 4875 0 R (3131) 4881 0 R (3132) 4882 0 R (3133) 4883 0 R (3134) 4884 0 R (3135) 4885 0 R (3136) 4886 0 R (3137) 4887 0 R (3138) 4888 0 R (3139) 4889 0 R (314) 2309 0 R (3140) 4890 0 R (3141) 4891 0 R (3142) 4892 0 R (3143) 4893 0 R (3144) 4894 0 R (3145) 4895 0 R (3146) 4896 0 R (3147) 4897 0 R (3148) 4898 0 R (3149) 4899 0 R (315) 2310 0 R (3150) 4900 0 R (3151) 4901 0 R (3152) 4902 0 R (3153) 4903 0 R (3154) 4904 0 R (3155) 4905 0 R (3156) 4906 0 R (3157) 4907 0 R (316) 2311 0 R (3160) 4913 0 R (3161) 4914 0 R (3162) 4880 0 R (3163) 4915 0 R (3164) 4916 0 R (3165) 4917 0 R (3166) 4918 0 R (3167) 4919 0 R (3168) 4920 0 R (3169) 4921 0 R (317) 2312 0 R (3170) 4922 0 R (3171) 4923 0 R (3172) 4924 0 R (3173) 4925 0 R (3174) 4926 0 R (3175) 4927 0 R (3176) 4928 0 R (3177) 4912 0 R (3179) 4933 0 R (318) 2313 0 R (3180) 4934 0 R (3181) 4935 0 R (3182) 4936 0 R (3187) 4937 0 R (319) 2314 0 R (3192) 4941 0 R (3193) 4942 0 R (3194) 4943 0 R (3195) 4944 0 R (3196) 4945 0 R (3197) 4946 0 R (3198) 4952 0 R (3199) 4953 0 R (32) 2099 0 R (3202) 4954 0 R (3203) 4955 0 R (3204) 4956 0 R (3205) 4957 0 R (3206) 4958 0 R (3209) 4959 0 R (321) 2316 0 R (3210) 4960 0 R (3213) 4961 0 R (3214) 4962 0 R (3215) 4963 0 R (3218) 4968 0 R (322) 2317 0 R (3221) 4969 0 R (3222) 4970 0 R (3223) 4971 0 R (3224) 4972 0 R (3227) 4975 0 R (3228) 4976 0 R (3229) 4977 0 R (323) 2318 0 R (3230) 4978 0 R (3231) 4979 0 R (3234) 4980 0 R (3235) 4981 0 R (3236) 4982 0 R (3237) 4983 0 R (3238) 4984 0 R (324) 2319 0 R (3242) 4985 0 R (3243) 4986 0 R (3244) 4987 0 R (3245) 4988 0 R (3246) 4989 0 R (3247) 4990 0 R (3248) 4995 0 R (325) 2320 0 R (3251) 4996 0 R (3252) 4997 0 R (3253) 4998 0 R (3254) 4999 0 R (3255) 5000 0 R (3256) 5001 0 R (3257) 5002 0 R (3258) 5003 0 R (326) 2321 0 R (3261) 5004 0 R (3262) 5005 0 R (3263) 5006 0 R (3264) 5007 0 R (3265) 5008 0 R (3266) 5009 0 R (3267) 5010 0 R (3268) 5011 0 R (3269) 5012 0 R (327) 2322 0 R (3270) 5013 0 R (3273) 5014 0 R (3274) 5015 0 R (3275) 5020 0 R (3276) 5021 0 R (3277) 5022 0 R (3278) 5023 0 R (3281) 5025 0 R (3282) 5026 0 R (3283) 5027 0 R (3284) 5028 0 R (3285) 5029 0 R (3288) 5031 0 R (3289) 5032 0 R (329) 2324 0 R (3290) 5033 0 R (3291) 5034 0 R (3292) 5035 0 R (3293) 5036 0 R (3294) 5037 0 R (3297) 5038 0 R (3298) 5039 0 R (3299) 5044 0 R (33) 2100 0 R (330) 2325 0 R (3300) 5045 0 R (3301) 5046 0 R (3305) 5047 0 R (3306) 5048 0 R (3307) 5049 0 R (3308) 5050 0 R (331) 2326 0 R (3312) 5052 0 R (3313) 5053 0 R (3314) 5054 0 R (3315) 5055 0 R (3316) 5056 0 R (3319) 5061 0 R (332) 2330 0 R (3320) 5062 0 R (3323) 5063 0 R (3324) 5064 0 R (3325) 5065 0 R (3326) 5066 0 R (3327) 5067 0 R (3328) 5068 0 R (3329) 5069 0 R (3330) 5070 0 R (3331) 5071 0 R (3332) 5072 0 R (3333) 5073 0 R (3334) 5074 0 R (3335) 5075 0 R (3336) 5076 0 R (3337) 5077 0 R (3338) 5078 0 R (3339) 5079 0 R (334) 2332 0 R (3340) 5080 0 R (3341) 5081 0 R (3342) 5082 0 R (3343) 5083 0 R (3344) 5084 0 R (3345) 5085 0 R (3346) 5086 0 R (3347) 5087 0 R (3348) 5088 0 R (3349) 5089 0 R (335) 2333 0 R (3350) 5090 0 R (3351) 5091 0 R (3354) 5092 0 R (3355) 5093 0 R (3356) 5094 0 R (3357) 5095 0 R (3358) 5096 0 R (3359) 5097 0 R (3360) 5098 0 R (3361) 5099 0 R (3362) 5100 0 R (3367) 5106 0 R (3368) 5107 0 R (3369) 5108 0 R (337) 2335 0 R (3370) 5109 0 R (3371) 5110 0 R (3372) 5111 0 R (3373) 5112 0 R (3374) 5113 0 R (3375) 5114 0 R (3376) 5115 0 R (3377) 5116 0 R (3378) 5117 0 R (3379) 5118 0 R (338) 2336 0 R (3380) 5119 0 R (3384) 5121 0 R (3385) 5122 0 R (3386) 5123 0 R (3387) 5124 0 R (3388) 5125 0 R (3389) 5126 0 R (3390) 5127 0 R (3391) 5128 0 R (3392) 5129 0 R (3393) 5130 0 R (3394) 5131 0 R (3395) 5136 0 R (3396) 5137 0 R (3397) 5138 0 R (3398) 5139 0 R (3399) 5140 0 R (340) 2338 0 R (3400) 5141 0 R (3401) 5142 0 R (3402) 5143 0 R (3403) 5144 0 R (3404) 5145 0 R (3405) 5146 0 R (3406) 5147 0 R (3407) 5148 0 R (3408) 5149 0 R (3409) 5150 0 R (341) 2339 0 R (3410) 5151 0 R (3411) 5152 0 R (3412) 5153 0 R (3413) 5154 0 R (3414) 5155 0 R (3415) 5156 0 R (3416) 5157 0 R (3417) 5158 0 R (3418) 5159 0 R (3419) 5160 0 R (3420) 5161 0 R (3421) 5166 0 R (3422) 5167 0 R (3423) 5168 0 R (3424) 5169 0 R (3425) 5170 0 R (3426) 5171 0 R (3427) 5172 0 R (3428) 5173 0 R (3429) 5174 0 R (343) 2341 0 R (3430) 5175 0 R (3431) 5176 0 R (3434) 5177 0 R (3435) 5178 0 R (3436) 5179 0 R (3437) 5180 0 R (3438) 5181 0 R (3439) 5182 0 R (344) 2342 0 R (3440) 5183 0 R (3441) 5184 0 R (3442) 5185 0 R (3443) 5186 0 R (3444) 5187 0 R (3445) 5188 0 R (3446) 5189 0 R (3447) 5190 0 R (3448) 5191 0 R (3449) 5192 0 R (345) 2343 0 R (3450) 5197 0 R (3451) 5198 0 R (3452) 5199 0 R (3453) 5200 0 R (3454) 5201 0 R (3455) 5202 0 R (3456) 5203 0 R (3457) 5204 0 R (346) 2344 0 R (3460) 5209 0 R (3461) 5210 0 R (3462) 5211 0 R (3465) 5212 0 R (3466) 5213 0 R (3467) 5214 0 R (347) 2345 0 R (3470) 5215 0 R (3471) 5216 0 R (3472) 5217 0 R (3473) 5218 0 R (3474) 5219 0 R (3475) 5220 0 R (3476) 5225 0 R (3477) 5226 0 R (348) 2346 0 R (3480) 5227 0 R (3481) 5228 0 R (3484) 5229 0 R (3485) 5230 0 R (3486) 5231 0 R (3487) 5238 0 R (3490) 5239 0 R (3491) 5240 0 R (3492) 5241 0 R (3493) 5242 0 R (3494) 5243 0 R (3495) 5244 0 R (3496) 5245 0 R (3497) 5246 0 R (3498) 5247 0 R (3499) 5248 0 R (350) 2348 0 R (3500) 5249 0 R (3501) 5250 0 R (3502) 5251 0 R (3503) 5252 0 R (3504) 5253 0 R (3505) 5254 0 R (3506) 5255 0 R (3507) 5256 0 R (3508) 5257 0 R (3509) 5258 0 R (351) 2349 0 R (3510) 5259 0 R (3511) 5260 0 R (3512) 5261 0 R (3513) 5262 0 R (3514) 5263 0 R (3515) 5264 0 R (3516) 5265 0 R (3517) 5266 0 R (3518) 5267 0 R (3519) 5268 0 R (352) 2350 0 R (3520) 5269 0 R (3521) 5237 0 R (3522) 5274 0 R (3523) 5275 0 R (3526) 5276 0 R (3527) 5277 0 R (3528) 5278 0 R (353) 2351 0 R (3531) 5279 0 R (3532) 5280 0 R (3535) 5281 0 R (3536) 5286 0 R (3539) 5287 0 R (354) 2352 0 R (3542) 5288 0 R (3545) 5289 0 R (3546) 5290 0 R (3547) 5291 0 R (355) 2353 0 R (3550) 5292 0 R (3551) 5293 0 R (3552) 5294 0 R (3553) 5299 0 R (3554) 5300 0 R (3556) 5305 0 R (356) 2354 0 R (3560) 5306 0 R (3561) 5307 0 R (3562) 5308 0 R (3563) 5309 0 R (3568) 5312 0 R (3569) 5313 0 R (357) 2355 0 R (3570) 5314 0 R (3571) 5315 0 R (3572) 5316 0 R (3573) 5317 0 R (3575) 5318 0 R (3576) 5319 0 R (3577) 5320 0 R (3578) 5321 0 R (3579) 5322 0 R (3581) 5323 0 R (3582) 5324 0 R (3583) 5325 0 R (3584) 5326 0 R (3585) 5327 0 R (3586) 5328 0 R (3587) 5329 0 R (3588) 5330 0 R (3589) 5331 0 R (359) 2357 0 R (3591) 5332 0 R (3592) 5333 0 R (3593) 5334 0 R (3594) 5335 0 R (3595) 5336 0 R (3596) 5337 0 R (3597) 5338 0 R (3598) 5339 0 R (3599) 5340 0 R (36) 2101 0 R (360) 2358 0 R (3600) 5341 0 R (3601) 5342 0 R (3603) 5343 0 R (3604) 5344 0 R (3605) 5345 0 R (3606) 5346 0 R (3607) 5347 0 R (3608) 5348 0 R (361) 2359 0 R (3613) 5355 0 R (3614) 5356 0 R (3615) 5357 0 R (3616) 5358 0 R (3617) 5359 0 R (3618) 5360 0 R (362) 2360 0 R (3620) 5361 0 R (3621) 5362 0 R (3622) 5363 0 R (3625) 5364 0 R (3626) 5365 0 R (363) 2361 0 R (3632) 5367 0 R (3633) 5368 0 R (3634) 5369 0 R (3635) 5370 0 R (3638) 5372 0 R (3639) 5373 0 R (364) 2362 0 R (3643) 5374 0 R (3644) 5375 0 R (3645) 5376 0 R (3646) 5377 0 R (3647) 5378 0 R (365) 2363 0 R (3650) 5379 0 R (3651) 5380 0 R (3652) 5381 0 R (3653) 5382 0 R (3654) 5389 0 R (3655) 5390 0 R (3656) 5391 0 R (366) 2364 0 R (3661) 5393 0 R (3662) 5394 0 R (3663) 5395 0 R (3664) 5396 0 R (3667) 5398 0 R (3668) 5399 0 R (367) 2365 0 R (3673) 5402 0 R (3674) 5403 0 R (3675) 5404 0 R (3676) 5405 0 R (3677) 5406 0 R (368) 2366 0 R (3682) 5409 0 R (3683) 5410 0 R (3689) 5416 0 R (369) 2367 0 R (3690) 5417 0 R (3691) 5418 0 R (3692) 5419 0 R (3693) 5420 0 R (3694) 5421 0 R (3695) 5422 0 R (3698) 5424 0 R (3699) 5425 0 R (37) 2102 0 R (370) 2368 0 R (3701) 5427 0 R (3702) 5428 0 R (3704) 5429 0 R (3705) 5430 0 R (3706) 5431 0 R (3707) 5432 0 R (3709) 5433 0 R (3710) 5434 0 R (3711) 5435 0 R (3712) 5436 0 R (3713) 5437 0 R (3715) 5438 0 R (3716) 5439 0 R (3717) 5440 0 R (3718) 5441 0 R (3725) 5444 0 R (3726) 5445 0 R (3727) 5446 0 R (373) 2369 0 R (3730) 5447 0 R (3731) 5448 0 R (3733) 5454 0 R (3734) 5455 0 R (3735) 5456 0 R (3736) 5457 0 R (374) 2370 0 R (3740) 5459 0 R (3741) 5460 0 R (3742) 5461 0 R (3743) 5462 0 R (3744) 5463 0 R (3745) 5464 0 R (3746) 5465 0 R (3747) 5466 0 R (3753) 5468 0 R (3754) 5469 0 R (3758) 5471 0 R (3759) 5472 0 R (3760) 5473 0 R (3765) 5475 0 R (3766) 5476 0 R (3767) 5477 0 R (3769) 5482 0 R (377) 2371 0 R (3770) 5483 0 R (3771) 5484 0 R (3772) 5485 0 R (3773) 5486 0 R (3774) 5487 0 R (3775) 5488 0 R (3776) 5489 0 R (3777) 5490 0 R (3778) 5491 0 R (3779) 5492 0 R (3780) 5493 0 R (3781) 5494 0 R (3782) 5495 0 R (3787) 5498 0 R (3788) 5499 0 R (3789) 5500 0 R (3793) 5502 0 R (3794) 5503 0 R (3799) 5506 0 R (38) 2103 0 R (380) 2372 0 R (3800) 5507 0 R (3801) 5508 0 R (3802) 5511 0 R (3803) 5509 0 R (3804) 5510 0 R (381) 2373 0 R (382) 2377 0 R (383) 2378 0 R (384) 2379 0 R (385) 2380 0 R (386) 2381 0 R (387) 2382 0 R (388) 2383 0 R (39) 2104 0 R (391) 2384 0 R (394) 2385 0 R (397) 2386 0 R (4.0) 14 0 R (4.1.1) 18 0 R (4.2.1) 22 0 R (4.3.1) 26 0 R (4.4.1) 30 0 R (4.5.1) 34 0 R (40) 2105 0 R (400) 2387 0 R (401) 2388 0 R (404) 2389 0 R (407) 2390 0 R (41) 2106 0 R (410) 2391 0 R (411) 2392 0 R (412) 2397 0 R (413) 2398 0 R (414) 2399 0 R (416) 2401 0 R (417) 2402 0 R (418) 2403 0 R (419) 2404 0 R (42) 2107 0 R (422) 2405 0 R (423) 2406 0 R (424) 2407 0 R (425) 2408 0 R (426) 2409 0 R (427) 2410 0 R (428) 2411 0 R (429) 2412 0 R (43) 2108 0 R (432) 2413 0 R (433) 2414 0 R (437) 2416 0 R (438) 2417 0 R (439) 2418 0 R (44) 2109 0 R (440) 2419 0 R (441) 2420 0 R (442) 2427 0 R (443) 2428 0 R (444) 2429 0 R (445) 2430 0 R (446) 2431 0 R (447) 2432 0 R (448) 2433 0 R (449) 2434 0 R (45) 2110 0 R (450) 2435 0 R (451) 2436 0 R (452) 2437 0 R (453) 2438 0 R (454) 2439 0 R (455) 2440 0 R (456) 2441 0 R (458) 2443 0 R (459) 2444 0 R (46) 2111 0 R (462) 2445 0 R (468) 2449 0 R (469) 2450 0 R (47) 2112 0 R (472) 2451 0 R (473) 2452 0 R (475) 2454 0 R (477) 2459 0 R (478) 2426 0 R (48) 2113 0 R (480) 2460 0 R (481) 2461 0 R (482) 2462 0 R (485) 2464 0 R (486) 2465 0 R (487) 2466 0 R (488) 2470 0 R (49) 2114 0 R (490) 2472 0 R (491) 2473 0 R (492) 2474 0 R (493) 2475 0 R (494) 2476 0 R (495) 2477 0 R (496) 2478 0 R (497) 2479 0 R (498) 2480 0 R (499) 2481 0 R (5.0) 38 0 R (5.10.1) 234 0 R (5.10.17.19.3) 242 0 R (5.10.17.2) 238 0 R (5.10.17.20.3) 246 0 R (5.10.17.21.3) 250 0 R (5.10.17.22.3) 254 0 R (5.10.17.23.3) 258 0 R (5.10.18.2) 262 0 R (5.10.18.24.3) 266 0 R (5.10.18.25.3) 270 0 R (5.10.19.2) 274 0 R (5.11.1) 278 0 R (5.11.20.2) 282 0 R (5.11.21.2) 286 0 R (5.11.21.26.11.4) 294 0 R (5.11.21.26.12.4) 298 0 R (5.11.21.26.13.4) 302 0 R (5.11.21.26.3) 290 0 R (5.11.22.2) 306 0 R (5.11.23.2) 310 0 R (5.11.24.2) 314 0 R (5.11.24.27.3) 318 0 R (5.11.25.2) 322 0 R (5.11.25.28.3) 326 0 R (5.12.1) 330 0 R (5.12.26.2) 334 0 R (5.12.27.2) 338 0 R (5.12.27.29.3) 342 0 R (5.12.27.30.3) 346 0 R (5.12.27.31.3) 350 0 R (5.12.27.32.3) 354 0 R (5.12.28.2) 358 0 R (5.12.29.2) 362 0 R (5.6.1) 42 0 R (5.6.1.2) 46 0 R (5.6.2.1.3) 54 0 R (5.6.2.2) 50 0 R (5.6.2.2.3) 58 0 R (5.6.2.3.3) 62 0 R (5.6.3.2) 66 0 R (5.6.4.2) 70 0 R (5.6.5.10.3) 102 0 R (5.6.5.11.3) 106 0 R (5.6.5.12.3) 110 0 R (5.6.5.2) 74 0 R (5.6.5.4.3) 78 0 R (5.6.5.5.3) 82 0 R (5.6.5.6.3) 86 0 R (5.6.5.7.3) 90 0 R (5.6.5.8.3) 94 0 R (5.6.5.9.3) 98 0 R (5.6.6.2) 114 0 R (5.6.7.2) 118 0 R (5.7.1) 122 0 R (5.7.10.2) 182 0 R (5.7.11.17.10.4) 198 0 R (5.7.11.17.3) 190 0 R (5.7.11.17.9.4) 194 0 R (5.7.11.18.3) 202 0 R (5.7.11.2) 186 0 R (5.7.12.2) 206 0 R (5.7.8.2) 126 0 R (5.7.9.13.3) 134 0 R (5.7.9.14.1.4) 142 0 R (5.7.9.14.2.4) 146 0 R (5.7.9.14.3) 138 0 R (5.7.9.14.3.4) 150 0 R (5.7.9.15.3) 154 0 R (5.7.9.15.4.4) 158 0 R (5.7.9.15.5.4) 162 0 R (5.7.9.16.3) 166 0 R (5.7.9.16.6.4) 170 0 R (5.7.9.16.7.4) 174 0 R (5.7.9.16.8.4) 178 0 R (5.7.9.2) 130 0 R (5.8.1) 210 0 R (5.8.13.2) 214 0 R (5.8.14.2) 218 0 R (5.8.15.2) 222 0 R (5.8.16.2) 226 0 R (5.9.1) 230 0 R (50) 2115 0 R (500) 2482 0 R (501) 2483 0 R (502) 2484 0 R (504) 2485 0 R (505) 2486 0 R (506) 2487 0 R (507) 2488 0 R (508) 2489 0 R (509) 2490 0 R (51) 2116 0 R (510) 2491 0 R (511) 2492 0 R (512) 2493 0 R (513) 2494 0 R (514) 2495 0 R (515) 2496 0 R (518) 2501 0 R (52) 2117 0 R (520) 2502 0 R (521) 2503 0 R (522) 2504 0 R (523) 2505 0 R (525) 2507 0 R (526) 2508 0 R (527) 2509 0 R (528) 2510 0 R (529) 2511 0 R (53) 2118 0 R (530) 2512 0 R (531) 2513 0 R (532) 2514 0 R (533) 2515 0 R (534) 2516 0 R (536) 2517 0 R (537) 2518 0 R (538) 2519 0 R (539) 2520 0 R (54) 2122 0 R (540) 2521 0 R (541) 2522 0 R (542) 2523 0 R (543) 2524 0 R (544) 2525 0 R (545) 2526 0 R (546) 2527 0 R (547) 2528 0 R (55) 2123 0 R (550) 2529 0 R (552) 2530 0 R (553) 2531 0 R (554) 2532 0 R (555) 2537 0 R (556) 2538 0 R (557) 2539 0 R (558) 2540 0 R (56) 2124 0 R (560) 2541 0 R (561) 2542 0 R (562) 2543 0 R (563) 2544 0 R (564) 2545 0 R (565) 2546 0 R (566) 2547 0 R (568) 2548 0 R (569) 2549 0 R (57) 2125 0 R (570) 2550 0 R (571) 2551 0 R (572) 1433 0 R (574) 2552 0 R (575) 2553 0 R (576) 2554 0 R (577) 2555 0 R (578) 2556 0 R (579) 2557 0 R (58) 2126 0 R (582) 2563 0 R (583) 2564 0 R (585) 2566 0 R (588) 2567 0 R (59) 2127 0 R (594) 2571 0 R (595) 2572 0 R (596) 2573 0 R (598) 2574 0 R (599) 2575 0 R (6.0) 366 0 R (6.13.1) 370 0 R (6.13.30.2) 374 0 R (6.13.31.2) 378 0 R (6.13.32.2) 382 0 R (6.13.33.2) 386 0 R (6.13.34.2) 390 0 R (6.13.35.2) 394 0 R (6.13.36.2) 398 0 R (6.13.37.2) 402 0 R (6.13.38.2) 406 0 R (6.13.39.2) 410 0 R (6.13.40.2) 414 0 R (6.13.41.2) 418 0 R (6.13.42.2) 422 0 R (6.13.43.2) 426 0 R (6.13.44.2) 430 0 R (6.13.45.2) 434 0 R (6.14.1) 438 0 R (6.14.46.2) 442 0 R (6.14.47.2) 446 0 R (6.14.47.33.3) 450 0 R (6.14.47.34.14.4) 458 0 R (6.14.47.34.15.4) 462 0 R (6.14.47.34.3) 454 0 R (6.14.47.35.3) 466 0 R (6.14.47.36.3) 470 0 R (6.14.47.37.3) 474 0 R (6.15.1) 478 0 R (6.16.1) 482 0 R (6.16.48.2) 486 0 R (6.16.49.2) 490 0 R (6.16.50.2) 494 0 R (6.16.51.2) 498 0 R (6.16.51.38.3) 502 0 R (6.17.1) 506 0 R (6.18.1) 510 0 R (6.19.1) 514 0 R (6.20.1) 518 0 R (6.20.52.2) 522 0 R (6.20.53.2) 526 0 R (6.20.53.39.3) 530 0 R (6.20.54.2) 534 0 R (6.20.55.2) 538 0 R (6.20.55.40.3) 542 0 R (6.20.55.41.3) 546 0 R (6.20.56.2) 550 0 R (6.20.56.42.3) 554 0 R (6.20.56.43.16.4) 562 0 R (6.20.56.43.17.4) 566 0 R (6.20.56.43.18.4) 570 0 R (6.20.56.43.19.4) 574 0 R (6.20.56.43.20.4) 578 0 R (6.20.56.43.21.4) 582 0 R (6.20.56.43.22.4) 586 0 R (6.20.56.43.23.4) 590 0 R (6.20.56.43.24.4) 594 0 R (6.20.56.43.25.4) 598 0 R (6.20.56.43.26.4) 602 0 R (6.20.56.43.3) 558 0 R (6.20.56.44.3) 606 0 R (6.21.1) 610 0 R (6.22.1) 614 0 R (6.22.57.2) 618 0 R (6.22.58.2) 622 0 R (6.22.59.2) 626 0 R (6.23.1) 630 0 R (6.23.60.2) 634 0 R (6.23.61.2) 638 0 R (6.24.1) 642 0 R (6.25.1) 646 0 R (6.26.1) 650 0 R (6.27.1) 654 0 R (6.27.62.2) 658 0 R (6.27.63.2) 662 0 R (6.27.64.2) 666 0 R (6.27.65.2) 670 0 R (6.28.1) 674 0 R (600) 2576 0 R (602) 2577 0 R (603) 2578 0 R (604) 2579 0 R (605) 2580 0 R (606) 2581 0 R (607) 2582 0 R (608) 2583 0 R (609) 2584 0 R (610) 2585 0 R (611) 2586 0 R (613) 2587 0 R (614) 2588 0 R (615) 2589 0 R (616) 2590 0 R (617) 2591 0 R (618) 2592 0 R (619) 2593 0 R (62) 2128 0 R (621) 2594 0 R (622) 2595 0 R (623) 2596 0 R (624) 2601 0 R (628) 2602 0 R (629) 2603 0 R (63) 2129 0 R (630) 2604 0 R (632) 2605 0 R (633) 2606 0 R (634) 2607 0 R (636) 2608 0 R (637) 2609 0 R (638) 2610 0 R (639) 2611 0 R (640) 2612 0 R (641) 2613 0 R (642) 2614 0 R (643) 2615 0 R (644) 2616 0 R (646) 2617 0 R (647) 2618 0 R (648) 2619 0 R (649) 2620 0 R (65) 2130 0 R (650) 2621 0 R (651) 2622 0 R (652) 2623 0 R (653) 2624 0 R (654) 2625 0 R (655) 2626 0 R (656) 2627 0 R (657) 2628 0 R (658) 2629 0 R (659) 2630 0 R (66) 2131 0 R (660) 2631 0 R (661) 2632 0 R (662) 2633 0 R (663) 2634 0 R (664) 2635 0 R (665) 2636 0 R (666) 2637 0 R (667) 2638 0 R (668) 2639 0 R (67) 2132 0 R (672) 2645 0 R (673) 2646 0 R (674) 2647 0 R (675) 2648 0 R (676) 2649 0 R (677) 2650 0 R (678) 2651 0 R (679) 2652 0 R (68) 2133 0 R (680) 2653 0 R (681) 2654 0 R (682) 2655 0 R (683) 2656 0 R (684) 2657 0 R (685) 2658 0 R (686) 2659 0 R (687) 2660 0 R (688) 2661 0 R (689) 2662 0 R (690) 2663 0 R (691) 2664 0 R (692) 2665 0 R (693) 2666 0 R (694) 2667 0 R (695) 2668 0 R (696) 2669 0 R (697) 2670 0 R (698) 2671 0 R (7.0) 678 0 R (7.29.1) 682 0 R (7.29.66.2) 686 0 R (7.29.67.2) 690 0 R (7.29.68.2) 694 0 R (7.30.1) 698 0 R (7.30.69.2) 702 0 R (7.30.70.2) 706 0 R (7.30.71.2) 710 0 R (7.31.1) 714 0 R (7.31.72.2) 718 0 R (7.32.1) 722 0 R (7.32.73.2) 726 0 R (70) 2134 0 R (702) 2673 0 R (703) 2674 0 R (705) 2676 0 R (706) 2677 0 R (707) 2682 0 R (708) 2683 0 R (71) 2135 0 R (710) 2685 0 R (711) 2686 0 R (712) 2687 0 R (713) 2688 0 R (714) 2689 0 R (715) 2690 0 R (716) 2691 0 R (717) 2692 0 R (72) 2136 0 R (721) 2694 0 R (722) 1439 0 R (724) 2695 0 R (725) 2696 0 R (726) 2697 0 R (727) 2698 0 R (728) 2702 0 R (729) 2703 0 R (73) 2137 0 R (730) 2704 0 R (731) 2705 0 R (732) 2706 0 R (733) 2707 0 R (734) 2708 0 R (737) 2709 0 R (738) 2710 0 R (739) 2711 0 R (740) 2712 0 R (741) 2713 0 R (742) 2714 0 R (745) 2719 0 R (747) 2721 0 R (748) 2722 0 R (749) 2723 0 R (75) 2138 0 R (750) 2724 0 R (751) 2725 0 R (752) 2726 0 R (753) 2727 0 R (756) 2728 0 R (757) 2729 0 R (758) 2730 0 R (759) 2731 0 R (76) 2139 0 R (760) 2732 0 R (761) 2733 0 R (762) 2734 0 R (763) 2735 0 R (764) 2736 0 R (765) 2737 0 R (766) 2738 0 R (767) 2739 0 R (77) 2140 0 R (770) 2740 0 R (771) 2741 0 R (772) 2742 0 R (773) 2743 0 R (774) 2744 0 R (775) 2745 0 R (776) 2746 0 R (777) 2751 0 R (778) 2752 0 R (779) 2753 0 R (78) 2141 0 R (780) 2754 0 R (781) 2755 0 R (782) 2756 0 R (783) 2757 0 R (784) 2758 0 R (787) 2759 0 R (788) 2760 0 R (789) 2761 0 R (792) 2762 0 R (793) 2763 0 R (796) 2764 0 R (797) 2765 0 R (798) 2766 0 R (799) 2767 0 R (8.0) 730 0 R (8.33.1) 734 0 R (8.34.1) 738 0 R (8.35.1) 742 0 R (8.36.1) 746 0 R (8.37.1) 750 0 R (8.37.74.2) 754 0 R (8.37.74.45.3) 758 0 R (8.37.74.46.3) 762 0 R (8.37.74.47.3) 766 0 R (8.37.75.2) 770 0 R (8.37.76.2) 774 0 R (8.37.77.2) 778 0 R (8.37.78.2) 782 0 R (8.38.1) 786 0 R (8.38.79.2) 790 0 R (8.38.80.2) 794 0 R (8.39.1) 798 0 R (8.39.81.2) 802 0 R (8.39.81.48.3) 806 0 R (8.39.81.49.3) 810 0 R (8.39.81.50.3) 814 0 R (8.39.81.51.3) 818 0 R (8.39.81.52.3) 822 0 R (8.39.81.53.3) 826 0 R (8.39.81.54.3) 830 0 R (8.40.1) 834 0 R (8.40.82.2) 838 0 R (8.40.83.2) 842 0 R (8.40.84.2) 846 0 R (8.40.85.2) 850 0 R (8.41.1) 854 0 R (8.42.1) 858 0 R (8.42.86.2) 862 0 R (8.42.87.2) 866 0 R (8.42.88.2) 870 0 R (8.42.89.2) 874 0 R (8.42.90.2) 878 0 R (8.43.1) 882 0 R (8.43.91.2) 886 0 R (8.43.92.2) 890 0 R (8.43.92.55.3) 894 0 R (8.43.92.56.3) 898 0 R (8.44.1) 902 0 R (8.45.1) 906 0 R (8.45.93.2) 910 0 R (8.45.94.2) 914 0 R (8.45.95.2) 918 0 R (8.45.96.2) 922 0 R (80) 2142 0 R (800) 2768 0 R (803) 2773 0 R (806) 2776 0 R (807) 2777 0 R (808) 2778 0 R (809) 2779 0 R (81) 2143 0 R (810) 2780 0 R (811) 2781 0 R (812) 2782 0 R (813) 2783 0 R (814) 2784 0 R (815) 2785 0 R (816) 2786 0 R (817) 2787 0 R (818) 2788 0 R (819) 2789 0 R (82) 2144 0 R (820) 2790 0 R (821) 2791 0 R (822) 2792 0 R (825) 2793 0 R (828) 2800 0 R (83) 2145 0 R (831) 2803 0 R (832) 2804 0 R (833) 2805 0 R (834) 2806 0 R (835) 2807 0 R (836) 2808 0 R (837) 2809 0 R (840) 2810 0 R (844) 2811 0 R (847) 2812 0 R (848) 2813 0 R (849) 2814 0 R (85) 2146 0 R (853) 2816 0 R (854) 2817 0 R (855) 2818 0 R (856) 2819 0 R (857) 2820 0 R (858) 2821 0 R (859) 2822 0 R (86) 2147 0 R (861) 2824 0 R (862) 2825 0 R (863) 2826 0 R (864) 2827 0 R (865) 2828 0 R (866) 2829 0 R (867) 2830 0 R (868) 2831 0 R (869) 2832 0 R (87) 2148 0 R (870) 2799 0 R (872) 2839 0 R (876) 2843 0 R (877) 2844 0 R (879) 2845 0 R (88) 2149 0 R (881) 2846 0 R (884) 2847 0 R (885) 2848 0 R (886) 2849 0 R (889) 1554 0 R (891) 2850 0 R (893) 1555 0 R (895) 2852 0 R (896) 2853 0 R (897) 2858 0 R (898) 2859 0 R (899) 2860 0 R (9.0) 926 0 R (9.46.1) 930 0 R (9.47.1) 934 0 R (9.47.100.2) 950 0 R (9.47.101.2) 954 0 R (9.47.102.2) 958 0 R (9.47.97.2) 938 0 R (9.47.98.2) 942 0 R (9.47.99.2) 946 0 R (9.48.1) 962 0 R (9.49.1) 966 0 R (9.50.1) 970 0 R (9.50.103.2) 974 0 R (9.50.104.2) 978 0 R (9.50.105.2) 982 0 R (9.50.106.2) 986 0 R (9.50.107.2) 990 0 R (90) 2150 0 R (900) 2861 0 R (901) 1556 0 R (903) 2862 0 R (905) 2863 0 R (906) 2864 0 R (907) 2865 0 R (909) 2866 0 R (91) 2151 0 R (910) 2867 0 R (911) 2868 0 R (912) 2869 0 R (914) 2870 0 R (915) 2871 0 R (916) 2872 0 R (917) 2873 0 R (918) 2874 0 R (919) 2879 0 R (92) 2152 0 R (920) 2880 0 R (921) 2881 0 R (922) 2882 0 R (923) 2883 0 R (924) 2884 0 R (925) 2885 0 R (926) 2886 0 R (927) 2887 0 R (928) 1557 0 R (93) 2153 0 R (930) 2888 0 R (931) 2889 0 R (932) 2890 0 R (933) 2891 0 R (934) 2892 0 R (935) 2893 0 R (936) 2894 0 R (937) 2895 0 R (938) 2896 0 R (939) 2897 0 R (940) 2898 0 R (941) 2899 0 R (942) 2900 0 R (943) 2901 0 R (946) 2902 0 R (947) 2903 0 R (948) 2904 0 R (949) 2905 0 R (95) 2154 0 R (950) 1559 0 R (952) 2910 0 R (953) 1560 0 R (955) 2911 0 R (956) 2912 0 R (957) 2913 0 R (958) 2914 0 R (959) 2915 0 R (96) 2155 0 R (960) 2916 0 R (961) 2917 0 R (962) 1561 0 R (964) 2918 0 R (965) 2919 0 R (966) 2920 0 R (968) 2922 0 R (969) 2923 0 R (97) 2156 0 R (970) 2924 0 R (971) 2925 0 R (972) 2926 0 R (975) 2927 0 R (976) 2928 0 R (977) 2929 0 R (978) 2930 0 R (979) 2935 0 R (98) 2157 0 R (980) 2936 0 R (981) 2937 0 R (984) 2938 0 R (985) 2939 0 R (986) 2940 0 R (987) 2941 0 R (988) 2942 0 R (99) 2158 0 R (991) 2943 0 R (992) 2944 0 R (993) 2945 0 R (994) 2946 0 R (995) 2947 0 R (996) 2948 0 R (997) 2949 0 R (999) 2951 0 R (Doc-Start) 1286 0 R (about) 1399 0 R (accountpreferences) 1982 0 R (add-custom-fields) 1722 0 R (admin-usermatching) 1689 0 R (administration) 1572 0 R (apache-addtype) 1442 0 R (attachments) 1868 0 R (bonsai) 2007 0 R (boolean) 1857 0 R (bug_page) 1854 0 R (bug_status_workflow) 1728 0 R (bugreports) 1865 0 R (bzldap) 1583 0 R (bzradius) 1584 0 R (casesensitivity) 1862 0 R (charts) 1986 0 R (charts-new-series) 1988 0 R (classifications) 1698 0 R (cloningbugs) 1867 0 R (cmdline) 2023 0 R (cmdline-bugmail) 2024 0 R (comment-wrapping) 1880 0 R (commenting) 1879 0 R (components) 1705 0 R (comps-vers-miles-products) 1702 0 R (configuration) 1426 0 R (conventions) 1404 0 R (copyright) 1400 0 R (create-groups) 1732 0 R (create-product) 1700 0 R (createnewusers) 1694 0 R (credits) 1403 0 R (cust-change-permissions) 2005 0 R (cust-hooks) 2004 0 R (cust-skins) 1996 0 R (cust-templates) 1997 0 R (custom-fields) 1721 0 R (customization) 1995 0 R (cvs) 2008 0 R (database-engine) 1428 0 R (database-schema) 1429 0 R (defaultuser) 1691 0 R (delete-custom-fields) 1724 0 R (dependencytree) 1881 0 R (disclaimer) 1401 0 R (edit-custom-fields) 1723 0 R (edit-groups) 1733 0 R (edit-products) 1701 0 R (edit-values) 1725 0 R (edit-values-delete) 1727 0 R (edit-values-list) 1726 0 R (emailpreferences) 1980 0 R (extraconfig) 1438 0 R (fillingbugs) 1866 0 R (flag-askto) 1712 0 R (flag-type-attachment) 1714 0 R (flag-type-bug) 1715 0 R (flag-types) 1713 0 R (flag-values) 1711 0 R (flags) 1989 0 R (flags-about) 1710 0 R (flags-admin) 1716 0 R (flags-create) 1718 0 R (flags-create-field-active) 3804 0 R (flags-create-field-category) 3763 0 R (flags-create-field-cclist) 3822 0 R (flags-create-field-description) 3759 0 R (flags-create-field-multiplicable) 3817 0 R (flags-create-field-name) 3757 0 R (flags-create-field-requestable) 3807 0 R (flags-create-field-sortkey) 3795 0 R (flags-create-field-specific) 3814 0 R (flags-create-grant-group) 3824 0 R (flags-create-request-group) 3829 0 R (flags-delete) 1719 0 R (flags-edit) 1717 0 R (flags-overview) 1708 0 R (flags-simpleexample) 1709 0 R (general-advice) 2013 0 R (generalpreferences) 1884 0 R (gfdl) 2069 0 R (gfdl-0) 2070 0 R (gfdl-1) 2071 0 R (gfdl-10) 2080 0 R (gfdl-2) 2072 0 R (gfdl-3) 2073 0 R (gfdl-4) 2074 0 R (gfdl-5) 2075 0 R (gfdl-6) 2076 0 R (gfdl-7) 2077 0 R (gfdl-8) 2078 0 R (gfdl-9) 2079 0 R (gfdl-howto) 2081 0 R (gloss-a) 5310 0 R (gloss-apache) 5311 0 R (gloss-b) 5350 0 R (gloss-bugzilla) 2187 0 R (gloss-c) 5366 0 R (gloss-cgi) 2277 0 R (gloss-component) 5371 0 R (gloss-contrib) 3281 0 R (gloss-cpan) 2834 0 R (gloss-d) 5392 0 R (gloss-daemon) 4074 0 R (gloss-dos) 5397 0 R (gloss-g) 5400 0 R (gloss-groups) 5401 0 R (gloss-htaccess) 4181 0 R (gloss-j) 5407 0 R (gloss-javascript) 5408 0 R (gloss-m) 5388 0 R (gloss-mta) 5415 0 R (gloss-mysql) 5423 0 R (gloss-p) 5443 0 R (gloss-ppm) 2794 0 R (gloss-product) 3505 0 R (gloss-q) 5458 0 R (gloss-r) 5467 0 R (gloss-rdbms) 5449 0 R (gloss-regexp) 5470 0 R (gloss-s) 5474 0 R (gloss-service) 4075 0 R (gloss-t) 5496 0 R (gloss-target-milestone) 5497 0 R (gloss-tcl) 5501 0 R (gloss-z) 5504 0 R (gloss-zarro) 5505 0 R (glossary) 2082 0 R (group-control-examples) 1704 0 R (groups) 1731 0 R (hintsandtips) 1877 0 R (http) 1434 0 R (http-apache) 1435 0 R (http-apache-mod_cgi) 2570 0 R (http-apache-mod_perl) 2562 0 R (http-iis) 1436 0 R (impersonatingusers) 1697 0 R (index) 1287 0 R (individual-buglists) 1864 0 R (install-MTA) 1424 0 R (install-bzfiles) 1413 0 R (install-config-bugzilla) 1437 0 R (install-database) 1408 0 R (install-modules-chart-base) 1418 0 R (install-modules-dbd-mysql) 1415 0 R (install-modules-gd) 1417 0 R (install-modules-gd-graph) 1419 0 R (install-modules-gd-text) 1420 0 R (install-modules-patchreader) 1423 0 R (install-modules-soap-lite) 1422 0 R (install-modules-template) 1416 0 R (install-modules-xml-twig) 1421 0 R (install-mysql) 1409 0 R (install-oracle) 1411 0 R (install-perl) 1407 0 R (install-perlmodules) 1414 0 R (install-perlmodules-manual) 2065 0 R (install-perlmodules-nonroot) 1558 0 R (install-pg) 1410 0 R (install-setupdatabase-adduser) 2463 0 R (install-webserver) 1412 0 R (installation) 1406 0 R (installation-whining) 1441 0 R (installation-whining-cron) 1440 0 R (installing-bugzilla) 1405 0 R (integration) 2006 0 R (keywords) 1720 0 R (lifecycle) 1855 0 R (lifecycle-image) 2089 0 R (list) 1863 0 R (localconfig) 1427 0 R (macosx-libraries) 1551 0 R (macosx-sendmail) 1550 0 R (manageusers) 1692 0 R (milestones) 1707 0 R (modifyusers) 1695 0 R (modules-manual-download) 2067 0 R (modules-manual-instructions) 2066 0 R (modules-manual-optional) 2068 0 R (multiple-bz-dbs) 1443 0 R (multiplecharts) 1860 0 R (myaccount) 1853 0 R (mysql) 1430 0 R (negation) 1859 0 R (newversions) 1402 0 R (nonroot) 1553 0 R (oracle) 1432 0 R (os-linux) 1552 0 R (os-macosx) 1549 0 R (os-specific) 1542 0 R (os-win32) 1543 0 R (page.1) 1285 0 R (page.10) 2396 0 R (page.100) 5060 0 R (page.101) 5105 0 R (page.102) 5135 0 R (page.103) 5165 0 R (page.104) 5196 0 R (page.105) 5208 0 R (page.106) 5224 0 R (page.107) 5236 0 R (page.108) 5273 0 R (page.109) 5285 0 R (page.11) 2425 0 R (page.110) 5298 0 R (page.111) 5304 0 R (page.112) 5354 0 R (page.113) 5387 0 R (page.114) 5414 0 R (page.115) 5453 0 R (page.116) 5481 0 R (page.12) 2458 0 R (page.13) 2500 0 R (page.14) 2536 0 R (page.15) 2561 0 R (page.16) 2600 0 R (page.17) 2644 0 R (page.18) 2681 0 R (page.19) 2718 0 R (page.2) 1295 0 R (page.20) 2750 0 R (page.21) 2772 0 R (page.22) 2798 0 R (page.23) 2838 0 R (page.24) 2857 0 R (page.25) 2878 0 R (page.26) 2909 0 R (page.27) 2934 0 R (page.28) 2963 0 R (page.29) 2998 0 R (page.3) 1302 0 R (page.30) 3032 0 R (page.31) 3068 0 R (page.32) 3090 0 R (page.33) 3129 0 R (page.34) 3171 0 R (page.35) 3195 0 R (page.36) 3215 0 R (page.37) 3241 0 R (page.38) 3285 0 R (page.39) 3319 0 R (page.4) 1447 0 R (page.40) 3342 0 R (page.41) 3361 0 R (page.42) 3396 0 R (page.43) 3442 0 R (page.44) 3464 0 R (page.45) 3509 0 R (page.46) 3541 0 R (page.47) 3577 0 R (page.48) 3601 0 R (page.49) 3633 0 R (page.5) 1592 0 R (page.50) 3664 0 R (page.51) 3711 0 R (page.52) 3751 0 R (page.53) 3800 0 R (page.54) 3833 0 R (page.55) 3854 0 R (page.56) 3893 0 R (page.57) 3913 0 R (page.58) 3941 0 R (page.59) 3978 0 R (page.6) 1740 0 R (page.60) 4010 0 R (page.61) 4040 0 R (page.62) 4049 0 R (page.63) 4079 0 R (page.64) 4111 0 R (page.65) 4185 0 R (page.66) 4201 0 R (page.67) 4229 0 R (page.68) 4280 0 R (page.69) 4314 0 R (page.7) 1888 0 R (page.70) 4325 0 R (page.71) 4360 0 R (page.72) 4381 0 R (page.73) 4407 0 R (page.74) 4430 0 R (page.75) 4449 0 R (page.76) 4462 0 R (page.77) 4478 0 R (page.78) 4515 0 R (page.79) 4555 0 R (page.8) 2028 0 R (page.80) 4594 0 R (page.81) 4624 0 R (page.82) 4640 0 R (page.83) 4657 0 R (page.84) 4675 0 R (page.85) 4693 0 R (page.86) 4700 0 R (page.87) 4728 0 R (page.88) 4760 0 R (page.89) 4788 0 R (page.9) 2086 0 R (page.90) 4826 0 R (page.91) 4844 0 R (page.92) 4879 0 R (page.93) 4911 0 R (page.94) 4932 0 R (page.95) 4951 0 R (page.96) 4967 0 R (page.97) 4994 0 R (page.98) 5019 0 R (page.99) 5043 0 R (param-LDAPBaseDN) 3271 0 R (param-LDAPbinddn) 3266 0 R (param-LDAPmailattribute) 3286 0 R (param-LDAPserver) 3253 0 R (param-LDAPuidattribute) 3276 0 R (param-RADIUS_email_suffix) 3309 0 R (param-RADIUS_secret) 3306 0 R (param-RADIUS_server) 3303 0 R (param-admin-policies) 1575 0 R (param-attachments) 1577 0 R (param-bug-change-policies) 1578 0 R (param-bugfields) 1579 0 R (param-bugmoving) 1580 0 R (param-dependency-graphs) 1581 0 R (param-email) 1585 0 R (param-group-security) 1582 0 R (param-patchviewer) 1586 0 R (param-querydefaults) 1587 0 R (param-requiredsettings) 1574 0 R (param-shadowdatabase) 1588 0 R (param-user-authentication) 1576 0 R (param-user_verify_class_for_ldap) 3247 0 R (param-user_verify_class_for_radius) 3297 0 R (parameters) 1573 0 R (paranoid-security) 2017 0 R (patches) 2022 0 R (patchviewer) 1869 0 R (patchviewer_bonsai_lxr) 1875 0 R (patchviewer_collapse) 1873 0 R (patchviewer_context) 1872 0 R (patchviewer_diff) 1871 0 R (patchviewer_link) 1874 0 R (patchviewer_unified_diff) 1876 0 R (patchviewer_view) 1870 0 R (permissionsettings) 1983 0 R (postgresql) 1431 0 R (product-group-controls) 1703 0 R (products) 1699 0 R (pronouns) 1858 0 R (query) 1856 0 R (quicksearch) 1861 0 R (quips) 1730 0 R (reporting) 1984 0 R (reports) 1985 0 R (sanitycheck) 1736 0 R (savedsearches) 1981 0 R (scm) 2009 0 R (security) 1838 0 R (security-bugzilla) 1849 0 R (security-bugzilla-charset) 1850 0 R (security-mysql) 1843 0 R (security-mysql-account) 1844 0 R (security-mysql-account-anonymous) 4092 0 R (security-mysql-account-root) 4086 0 R (security-mysql-network) 1846 0 R (security-mysql-network-ex) 4104 0 R (security-mysql-root) 1845 0 R (security-os) 1839 0 R (security-os-accounts) 1841 0 R (security-os-chroot) 1842 0 R (security-os-ports) 1840 0 R (security-webserver) 1847 0 R (security-webserver-access) 1848 0 R (self-registration) 3362 0 R (suexec) 1562 0 R (svn) 2010 0 R (table.1) 2180 0 R (table.2) 3871 0 R (table.3) 4241 0 R (table.4) 4294 0 R (table.5) 4377 0 R (table.6) 4444 0 R (table.7) 4466 0 R (table.8) 4863 0 R (template-directory) 1998 0 R (template-edit) 2000 0 R (template-formats) 2001 0 R (template-http-accept) 2003 0 R (template-method) 1999 0 R (template-specific) 2002 0 R (timetracking) 1882 0 R (tinderbox) 2011 0 R (trbl-dbdSponge) 2016 0 R (trbl-index) 2020 0 R (trbl-passwd-encryption) 2021 0 R (trbl-perlmodule) 2015 0 R (trbl-relogin-everyone) 2018 0 R (trbl-relogin-everyone-restrict) 5030 0 R (trbl-relogin-everyone-share) 5024 0 R (trbl-relogin-some) 2019 0 R (trbl-testserver) 2014 0 R (troubleshooting) 2012 0 R (upgrade) 1563 0 R (upgrade-before) 1564 0 R (upgrade-completion) 1570 0 R (upgrade-cvs) 1567 0 R (upgrade-files) 1565 0 R (upgrade-modified) 1566 0 R (upgrade-notifications) 1571 0 R (upgrade-patches) 1569 0 R (upgrade-tarball) 1568 0 R (user-account-creation) 3368 0 R (user-account-deletion) 1696 0 R (user-account-search) 1693 0 R (useradmin) 1690 0 R (userpreferences) 1883 0 R (users-and-groups) 1734 0 R (using) 1851 0 R (using-intro) 1852 0 R (using-mod_perl-with-bugzilla) 1425 0 R (versions) 1706 0 R (voting) 1729 0 R (whining) 1990 0 R (whining-overview) 1991 0 R (whining-query) 1993 0 R (whining-schedule) 1992 0 R (win32-code-changes) 1546 0 R (win32-email) 1548 0 R (win32-http) 1547 0 R (win32-perl) 1544 0 R (win32-perl-modules) 1545 0 R] /Limits [(1.0) (win32-perl-modules)] >> endobj -5546 0 obj << -/Kids [5545 0 R] +5531 0 obj << +/Kids [5530 0 R] >> endobj -5547 0 obj << -/Dests 5546 0 R +5532 0 obj << +/Dests 5531 0 R >> endobj -5548 0 obj << +5533 0 obj << /Type /Catalog -/Pages 5543 0 R -/Outlines 5544 0 R -/Names 5547 0 R +/Pages 5528 0 R +/Outlines 5529 0 R +/Names 5532 0 R /PageMode /UseOutlines /OpenAction 1281 0 R >> endobj -5549 0 obj << +5534 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords() -/CreationDate (D:20090202155505-08'00') +/CreationDate (D:20090105235147-08'00') /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) >> endobj xref -0 5550 +0 5535 0000000000 65535 f 0000000009 00000 n -0000030108 00000 n -0001213181 00000 n +0000030152 00000 n +0001211904 00000 n 0000000048 00000 n -0000000098 00000 n -0000104761 00000 n -0001213096 00000 n -0000000137 00000 n -0000000172 00000 n -0000435405 00000 n -0001213009 00000 n -0000000211 00000 n -0000000245 00000 n -0000438497 00000 n -0001212883 00000 n -0000000285 00000 n -0000000331 00000 n -0000438623 00000 n -0001212809 00000 n -0000000373 00000 n -0000000418 00000 n -0000439007 00000 n -0001212722 00000 n -0000000460 00000 n -0000000494 00000 n -0000439324 00000 n -0001212635 00000 n -0000000536 00000 n -0000000572 00000 n -0000443379 00000 n -0001212548 00000 n -0000000614 00000 n -0000000645 00000 n -0000448274 00000 n -0001212474 00000 n -0000000687 00000 n -0000000731 00000 n -0000452737 00000 n -0001212346 00000 n -0000000771 00000 n -0000000820 00000 n -0000452864 00000 n -0001212233 00000 n -0000000862 00000 n -0000000898 00000 n -0000454080 00000 n -0001212159 00000 n -0000000942 00000 n -0000000972 00000 n -0000456336 00000 n -0001212035 00000 n -0000001016 00000 n -0000001057 00000 n -0000456526 00000 n -0001211961 00000 n -0000001103 00000 n -0000001136 00000 n -0000457236 00000 n -0001211874 00000 n -0000001182 00000 n -0000001220 00000 n -0000457686 00000 n -0001211800 00000 n -0000001266 00000 n -0000001300 00000 n -0000461476 00000 n -0001211713 00000 n -0000001344 00000 n -0000001380 00000 n -0000461928 00000 n -0001211626 00000 n -0000001424 00000 n -0000001458 00000 n -0000462770 00000 n -0001211500 00000 n -0000001502 00000 n -0000001540 00000 n -0000475681 00000 n -0001211426 00000 n -0000001586 00000 n -0000001624 00000 n -0000475937 00000 n -0001211339 00000 n -0000001670 00000 n -0000001723 00000 n -0000476128 00000 n -0001211252 00000 n -0000001769 00000 n -0000001808 00000 n -0000478804 00000 n -0001211165 00000 n -0000001854 00000 n -0000001901 00000 n -0000478995 00000 n -0001211078 00000 n -0000001947 00000 n -0000001992 00000 n -0000479187 00000 n -0001210989 00000 n -0000002038 00000 n -0000002083 00000 n -0000479377 00000 n -0001210898 00000 n -0000002131 00000 n -0000002177 00000 n -0000479636 00000 n -0001210806 00000 n -0000002225 00000 n -0000002272 00000 n -0000479827 00000 n -0001210728 00000 n -0000002320 00000 n -0000002370 00000 n -0000480016 00000 n -0001210637 00000 n -0000002415 00000 n -0000002469 00000 n -0000484000 00000 n -0001210559 00000 n -0000002514 00000 n -0000002571 00000 n -0000484649 00000 n -0001210429 00000 n -0000002614 00000 n -0000002652 00000 n -0000484907 00000 n -0001210350 00000 n -0000002697 00000 n -0000002735 00000 n -0000490448 00000 n -0001210218 00000 n -0000002780 00000 n -0000002822 00000 n -0000490641 00000 n -0001210139 00000 n -0000002870 00000 n -0000002923 00000 n -0000490897 00000 n -0001210007 00000 n -0000002971 00000 n -0000003005 00000 n -0000494270 00000 n -0001209928 00000 n -0000003055 00000 n -0000003123 00000 n -0000494657 00000 n -0001209835 00000 n -0000003173 00000 n -0000003223 00000 n -0000495832 00000 n -0001209756 00000 n -0000003273 00000 n -0000003347 00000 n -0000499306 00000 n -0001209624 00000 n -0000003395 00000 n -0000003434 00000 n -0000499435 00000 n -0001209545 00000 n -0000003484 00000 n -0000003539 00000 n -0000500406 00000 n -0001209466 00000 n -0000003589 00000 n -0000003640 00000 n -0000501315 00000 n -0001209348 00000 n -0000003688 00000 n -0000003723 00000 n -0000501443 00000 n -0001209269 00000 n -0000003773 00000 n -0000003827 00000 n -0000504274 00000 n -0001209176 00000 n -0000003877 00000 n -0000003928 00000 n -0000504789 00000 n -0001209097 00000 n -0000003978 00000 n -0000004033 00000 n -0000505175 00000 n -0001209004 00000 n -0000004079 00000 n -0000004119 00000 n -0000509674 00000 n -0001208872 00000 n -0000004165 00000 n -0000004202 00000 n -0000509996 00000 n -0001208754 00000 n -0000004251 00000 n -0000004301 00000 n -0000510188 00000 n -0001208675 00000 n -0000004352 00000 n -0000004407 00000 n -0000515478 00000 n -0001208596 00000 n -0000004459 00000 n -0000004515 00000 n -0000521552 00000 n -0001208517 00000 n -0000004564 00000 n -0000004632 00000 n -0000523438 00000 n -0001208438 00000 n -0000004678 00000 n -0000004713 00000 n -0000527447 00000 n -0001208307 00000 n -0000004756 00000 n -0000004814 00000 n -0000527640 00000 n -0001208228 00000 n -0000004860 00000 n -0000004897 00000 n -0000528476 00000 n -0001208135 00000 n -0000004943 00000 n -0000004986 00000 n -0000532169 00000 n -0001208042 00000 n -0000005032 00000 n -0000005066 00000 n -0000532813 00000 n -0001207963 00000 n -0000005112 00000 n -0000005189 00000 n -0000533722 00000 n -0001207871 00000 n -0000005232 00000 n -0000005311 00000 n -0000537445 00000 n -0001207740 00000 n -0000005355 00000 n -0000005409 00000 n -0000537768 00000 n -0001207622 00000 n -0000005456 00000 n -0000005500 00000 n -0000538027 00000 n -0001207543 00000 n -0000005550 00000 n -0000005589 00000 n -0000541024 00000 n -0001207450 00000 n -0000005639 00000 n -0000005689 00000 n -0000542308 00000 n -0001207357 00000 n -0000005739 00000 n -0000005805 00000 n -0000546476 00000 n -0001207264 00000 n -0000005855 00000 n -0000005905 00000 n -0000547122 00000 n -0001207185 00000 n -0000005955 00000 n -0000005997 00000 n -0000547315 00000 n -0001207053 00000 n -0000006044 00000 n -0000006079 00000 n -0000547508 00000 n -0001206974 00000 n -0000006129 00000 n -0000006166 00000 n -0000547831 00000 n -0001206895 00000 n -0000006216 00000 n -0000006284 00000 n -0000552157 00000 n -0001206816 00000 n -0000006331 00000 n -0000006377 00000 n -0000552480 00000 n -0001206685 00000 n -0000006421 00000 n -0000006481 00000 n -0000552609 00000 n -0001206606 00000 n -0000006528 00000 n -0000006567 00000 n -0000552801 00000 n -0001206474 00000 n -0000006614 00000 n -0000006646 00000 n -0000555352 00000 n -0001206370 00000 n -0000006696 00000 n -0000006749 00000 n -0000555481 00000 n -0001206291 00000 n -0000006802 00000 n -0000006864 00000 n -0000555737 00000 n -0001206198 00000 n -0000006917 00000 n -0000006971 00000 n -0000556062 00000 n -0001206119 00000 n -0000007024 00000 n -0000007074 00000 n -0000559265 00000 n -0001206026 00000 n -0000007121 00000 n -0000007152 00000 n -0000560310 00000 n -0001205933 00000 n -0000007199 00000 n -0000007238 00000 n -0000563924 00000 n -0001205801 00000 n -0000007285 00000 n -0000007323 00000 n -0000564117 00000 n -0001205736 00000 n -0000007373 00000 n -0000007427 00000 n -0000564699 00000 n +0000000110 00000 n +0000104817 00000 n +0001211819 00000 n +0000000149 00000 n +0000000184 00000 n +0000435467 00000 n +0001211732 00000 n +0000000223 00000 n +0000000257 00000 n +0000438584 00000 n +0001211606 00000 n +0000000297 00000 n +0000000343 00000 n +0000438710 00000 n +0001211532 00000 n +0000000385 00000 n +0000000430 00000 n +0000439094 00000 n +0001211445 00000 n +0000000472 00000 n +0000000506 00000 n +0000439411 00000 n +0001211358 00000 n +0000000548 00000 n +0000000584 00000 n +0000443511 00000 n +0001211271 00000 n +0000000626 00000 n +0000000657 00000 n +0000448397 00000 n +0001211197 00000 n +0000000699 00000 n +0000000743 00000 n +0000452860 00000 n +0001211069 00000 n +0000000783 00000 n +0000000832 00000 n +0000452987 00000 n +0001210956 00000 n +0000000874 00000 n +0000000910 00000 n +0000454203 00000 n +0001210882 00000 n +0000000954 00000 n +0000000984 00000 n +0000456459 00000 n +0001210758 00000 n +0000001028 00000 n +0000001069 00000 n +0000456649 00000 n +0001210684 00000 n +0000001115 00000 n +0000001148 00000 n +0000457359 00000 n +0001210597 00000 n +0000001194 00000 n +0000001232 00000 n +0000457809 00000 n +0001210523 00000 n +0000001278 00000 n +0000001312 00000 n +0000461599 00000 n +0001210436 00000 n +0000001356 00000 n +0000001392 00000 n +0000462051 00000 n +0001210349 00000 n +0000001436 00000 n +0000001470 00000 n +0000462893 00000 n +0001210223 00000 n +0000001514 00000 n +0000001552 00000 n +0000475804 00000 n +0001210149 00000 n +0000001598 00000 n +0000001636 00000 n +0000476060 00000 n +0001210062 00000 n +0000001682 00000 n +0000001735 00000 n +0000476251 00000 n +0001209975 00000 n +0000001781 00000 n +0000001820 00000 n +0000478927 00000 n +0001209888 00000 n +0000001866 00000 n +0000001913 00000 n +0000479118 00000 n +0001209801 00000 n +0000001959 00000 n +0000002004 00000 n +0000479310 00000 n +0001209712 00000 n +0000002050 00000 n +0000002095 00000 n +0000479500 00000 n +0001209621 00000 n +0000002143 00000 n +0000002189 00000 n +0000479759 00000 n +0001209529 00000 n +0000002237 00000 n +0000002284 00000 n +0000479950 00000 n +0001209451 00000 n +0000002332 00000 n +0000002382 00000 n +0000480139 00000 n +0001209360 00000 n +0000002427 00000 n +0000002481 00000 n +0000484123 00000 n +0001209282 00000 n +0000002526 00000 n +0000002583 00000 n +0000484772 00000 n +0001209152 00000 n +0000002626 00000 n +0000002664 00000 n +0000485030 00000 n +0001209073 00000 n +0000002709 00000 n +0000002747 00000 n +0000490571 00000 n +0001208941 00000 n +0000002792 00000 n +0000002834 00000 n +0000490764 00000 n +0001208862 00000 n +0000002882 00000 n +0000002935 00000 n +0000491020 00000 n +0001208730 00000 n +0000002983 00000 n +0000003017 00000 n +0000494393 00000 n +0001208651 00000 n +0000003067 00000 n +0000003135 00000 n +0000494780 00000 n +0001208558 00000 n +0000003185 00000 n +0000003235 00000 n +0000495955 00000 n +0001208479 00000 n +0000003285 00000 n +0000003359 00000 n +0000499429 00000 n +0001208347 00000 n +0000003407 00000 n +0000003446 00000 n +0000499558 00000 n +0001208268 00000 n +0000003496 00000 n +0000003551 00000 n +0000500529 00000 n +0001208189 00000 n +0000003601 00000 n +0000003652 00000 n +0000501438 00000 n +0001208071 00000 n +0000003700 00000 n +0000003735 00000 n +0000501566 00000 n +0001207992 00000 n +0000003785 00000 n +0000003839 00000 n +0000504397 00000 n +0001207899 00000 n +0000003889 00000 n +0000003940 00000 n +0000504912 00000 n +0001207820 00000 n +0000003990 00000 n +0000004045 00000 n +0000505298 00000 n +0001207727 00000 n +0000004091 00000 n +0000004131 00000 n +0000509797 00000 n +0001207595 00000 n +0000004177 00000 n +0000004214 00000 n +0000510119 00000 n +0001207477 00000 n +0000004263 00000 n +0000004313 00000 n +0000510311 00000 n +0001207398 00000 n +0000004364 00000 n +0000004419 00000 n +0000515601 00000 n +0001207319 00000 n +0000004471 00000 n +0000004527 00000 n +0000521675 00000 n +0001207240 00000 n +0000004576 00000 n +0000004644 00000 n +0000523561 00000 n +0001207161 00000 n +0000004690 00000 n +0000004725 00000 n +0000527570 00000 n +0001207030 00000 n +0000004768 00000 n +0000004826 00000 n +0000527763 00000 n +0001206951 00000 n +0000004872 00000 n +0000004909 00000 n +0000528599 00000 n +0001206858 00000 n +0000004955 00000 n +0000004998 00000 n +0000532292 00000 n +0001206765 00000 n +0000005044 00000 n +0000005078 00000 n +0000532936 00000 n +0001206686 00000 n +0000005124 00000 n +0000005201 00000 n +0000533845 00000 n +0001206594 00000 n +0000005244 00000 n +0000005323 00000 n +0000537572 00000 n +0001206463 00000 n +0000005367 00000 n +0000005421 00000 n +0000537895 00000 n +0001206345 00000 n +0000005468 00000 n +0000005512 00000 n +0000538154 00000 n +0001206266 00000 n +0000005562 00000 n +0000005601 00000 n +0000541151 00000 n +0001206173 00000 n +0000005651 00000 n +0000005701 00000 n +0000542435 00000 n +0001206080 00000 n +0000005751 00000 n +0000005817 00000 n +0000546603 00000 n +0001205987 00000 n +0000005867 00000 n +0000005917 00000 n +0000547249 00000 n +0001205908 00000 n +0000005967 00000 n +0000006009 00000 n +0000547442 00000 n +0001205776 00000 n +0000006056 00000 n +0000006091 00000 n +0000547635 00000 n +0001205697 00000 n +0000006141 00000 n +0000006178 00000 n +0000547958 00000 n 0001205618 00000 n -0000007474 00000 n -0000007509 00000 n -0000565348 00000 n -0001205553 00000 n -0000007559 00000 n -0000007612 00000 n -0000569550 00000 n -0001205436 00000 n -0000007656 00000 n -0000007706 00000 n -0000569998 00000 n -0001205357 00000 n -0000007753 00000 n -0000007798 00000 n -0000575125 00000 n -0001205225 00000 n -0000007845 00000 n -0000007896 00000 n -0000576090 00000 n -0001205146 00000 n -0000007946 00000 n -0000008009 00000 n -0000576346 00000 n -0001205053 00000 n -0000008059 00000 n -0000008107 00000 n -0000579629 00000 n -0001204960 00000 n -0000008157 00000 n -0000008213 00000 n -0000584127 00000 n -0001204881 00000 n -0000008263 00000 n -0000008315 00000 n -0000585165 00000 n -0001204788 00000 n -0000008362 00000 n -0000008412 00000 n -0000589626 00000 n -0001204709 00000 n -0000008459 00000 n -0000008525 00000 n -0000592451 00000 n -0001204576 00000 n -0000008566 00000 n -0000008619 00000 n -0000592579 00000 n -0001204457 00000 n -0000008663 00000 n -0000008710 00000 n -0000592770 00000 n -0001204378 00000 n -0000008757 00000 n -0000008801 00000 n -0000603187 00000 n -0001204285 00000 n -0000008848 00000 n -0000008898 00000 n -0000603701 00000 n -0001204192 00000 n -0000008945 00000 n -0000008991 00000 n -0000604473 00000 n -0001204099 00000 n -0000009038 00000 n -0000009076 00000 n -0000607124 00000 n -0001204006 00000 n -0000009123 00000 n -0000009169 00000 n -0000607956 00000 n -0001203913 00000 n -0000009216 00000 n -0000009253 00000 n -0000611961 00000 n -0001203820 00000 n -0000009300 00000 n -0000009337 00000 n -0000612218 00000 n -0001203727 00000 n -0000009384 00000 n -0000009428 00000 n -0000612477 00000 n -0001203634 00000 n -0000009475 00000 n -0000009516 00000 n +0000006228 00000 n +0000006296 00000 n +0000552284 00000 n +0001205539 00000 n +0000006343 00000 n +0000006389 00000 n +0000552607 00000 n +0001205408 00000 n +0000006433 00000 n +0000006493 00000 n +0000552736 00000 n +0001205329 00000 n +0000006540 00000 n +0000006579 00000 n +0000552928 00000 n +0001205197 00000 n +0000006626 00000 n +0000006658 00000 n +0000555479 00000 n +0001205093 00000 n +0000006708 00000 n +0000006761 00000 n +0000555608 00000 n +0001205014 00000 n +0000006814 00000 n +0000006876 00000 n +0000555864 00000 n +0001204921 00000 n +0000006929 00000 n +0000006983 00000 n +0000556189 00000 n +0001204842 00000 n +0000007036 00000 n +0000007086 00000 n +0000559392 00000 n +0001204749 00000 n +0000007133 00000 n +0000007164 00000 n +0000560437 00000 n +0001204656 00000 n +0000007211 00000 n +0000007250 00000 n +0000564051 00000 n +0001204524 00000 n +0000007297 00000 n +0000007335 00000 n +0000564244 00000 n +0001204459 00000 n +0000007385 00000 n +0000007439 00000 n +0000564826 00000 n +0001204341 00000 n +0000007486 00000 n +0000007521 00000 n +0000565475 00000 n +0001204276 00000 n +0000007571 00000 n +0000007624 00000 n +0000569677 00000 n +0001204159 00000 n +0000007668 00000 n +0000007718 00000 n +0000570125 00000 n +0001204080 00000 n +0000007765 00000 n +0000007810 00000 n +0000575252 00000 n +0001203948 00000 n +0000007857 00000 n +0000007908 00000 n +0000576217 00000 n +0001203869 00000 n +0000007958 00000 n +0000008021 00000 n +0000576473 00000 n +0001203776 00000 n +0000008071 00000 n +0000008119 00000 n +0000579756 00000 n +0001203683 00000 n +0000008169 00000 n +0000008225 00000 n +0000584254 00000 n +0001203604 00000 n +0000008275 00000 n +0000008327 00000 n +0000585292 00000 n +0001203511 00000 n +0000008374 00000 n +0000008424 00000 n +0000589753 00000 n +0001203432 00000 n +0000008471 00000 n +0000008537 00000 n +0000592578 00000 n +0001203299 00000 n +0000008578 00000 n +0000008631 00000 n +0000592706 00000 n +0001203180 00000 n +0000008675 00000 n +0000008722 00000 n +0000592897 00000 n +0001203101 00000 n +0000008769 00000 n +0000008813 00000 n +0000603292 00000 n +0001203008 00000 n +0000008860 00000 n +0000008910 00000 n +0000603485 00000 n +0001202915 00000 n +0000008957 00000 n +0000009003 00000 n +0000604259 00000 n +0001202822 00000 n +0000009050 00000 n +0000009088 00000 n +0000604452 00000 n +0001202729 00000 n +0000009135 00000 n +0000009181 00000 n +0000607713 00000 n +0001202636 00000 n +0000009228 00000 n +0000009265 00000 n +0000608353 00000 n +0001202543 00000 n +0000009312 00000 n +0000009349 00000 n +0000608611 00000 n +0001202450 00000 n +0000009396 00000 n +0000009440 00000 n +0000612542 00000 n +0001202357 00000 n +0000009487 00000 n +0000009528 00000 n +0000613636 00000 n +0001202264 00000 n +0000009575 00000 n +0000009622 00000 n +0000622070 00000 n +0001202171 00000 n +0000009669 00000 n +0000009718 00000 n +0000623615 00000 n +0001202078 00000 n +0000009765 00000 n +0000009798 00000 n +0000627776 00000 n +0001201985 00000 n +0000009845 00000 n +0000009885 00000 n +0000627967 00000 n +0001201892 00000 n +0000009932 00000 n +0000009974 00000 n +0000628160 00000 n +0001201799 00000 n +0000010021 00000 n +0000010064 00000 n +0000631266 00000 n +0001201720 00000 n +0000010111 00000 n +0000010152 00000 n +0000631459 00000 n +0001201588 00000 n +0000010196 00000 n +0000010240 00000 n +0000631588 00000 n +0001201509 00000 n +0000010287 00000 n +0000010339 00000 n +0000631909 00000 n +0001201391 00000 n +0000010386 00000 n +0000010433 00000 n +0000632038 00000 n +0001201312 00000 n +0000010483 00000 n +0000010540 00000 n +0000635649 00000 n +0001201180 00000 n +0000010590 00000 n +0000010637 00000 n +0000635778 00000 n +0001201101 00000 n +0000010690 00000 n +0000010737 00000 n +0000636167 00000 n +0001201022 00000 n +0000010790 00000 n +0000010857 00000 n +0000637008 00000 n +0001200929 00000 n +0000010907 00000 n +0000010951 00000 n +0000647280 00000 n +0001200836 00000 n +0000011001 00000 n +0000011044 00000 n +0000647538 00000 n +0001200757 00000 n +0000011094 00000 n +0000011142 00000 n +0000648248 00000 n +0001200664 00000 n +0000011186 00000 n +0000011226 00000 n +0000651395 00000 n +0001200532 00000 n +0000011270 00000 n +0000011303 00000 n +0000657517 00000 n +0001200453 00000 n +0000011350 00000 n +0000011398 00000 n +0000658488 00000 n +0001200360 00000 n +0000011445 00000 n +0000011488 00000 n +0000658681 00000 n +0001200267 00000 n +0000011535 00000 n +0000011622 00000 n +0000659065 00000 n +0001200149 00000 n +0000011669 00000 n +0000011732 00000 n +0000664550 00000 n +0001200084 00000 n +0000011782 00000 n +0000011848 00000 n +0000671323 00000 n +0001199991 00000 n +0000011892 00000 n +0000011927 00000 n +0000675269 00000 n +0001199898 00000 n +0000011971 00000 n +0000012004 00000 n +0000675973 00000 n +0001199805 00000 n +0000012048 00000 n +0000012083 00000 n +0000676933 00000 n +0001199673 00000 n +0000012127 00000 n +0000012157 00000 n +0000679604 00000 n +0001199594 00000 n +0000012204 00000 n +0000012247 00000 n +0000681033 00000 n +0001199462 00000 n +0000012294 00000 n +0000012332 00000 n +0000681162 00000 n +0001199397 00000 n +0000012382 00000 n +0000012417 00000 n +0000682452 00000 n +0001199304 00000 n +0000012464 00000 n +0000012510 00000 n +0000686014 00000 n +0001199172 00000 n +0000012557 00000 n +0000012602 00000 n +0000686206 00000 n +0001199093 00000 n +0000012652 00000 n +0000012697 00000 n +0000687569 00000 n +0001199014 00000 n +0000012747 00000 n +0000012785 00000 n +0000688024 00000 n +0001198896 00000 n +0000012832 00000 n +0000012878 00000 n +0000691587 00000 n +0001198817 00000 n +0000012928 00000 n +0000012971 00000 n +0000691846 00000 n +0001198684 00000 n +0000013021 00000 n +0000013065 00000 n +0000692104 00000 n +0001198605 00000 n +0000013118 00000 n +0000013153 00000 n +0000692296 00000 n +0001198512 00000 n +0000013206 00000 n +0000013248 00000 n +0000692620 00000 n +0001198419 00000 n +0000013301 00000 n +0000013340 00000 n +0000697357 00000 n +0001198326 00000 n +0000013393 00000 n +0000013432 00000 n +0000697678 00000 n +0001198233 00000 n +0000013485 00000 n +0000013522 00000 n +0000697937 00000 n +0001198140 00000 n +0000013575 00000 n +0000013617 00000 n +0000698458 00000 n +0001198047 00000 n +0000013670 00000 n +0000013725 00000 n +0000698715 00000 n +0001197954 00000 n +0000013778 00000 n +0000013822 00000 n +0000699106 00000 n +0001197861 00000 n +0000013875 00000 n +0000013913 00000 n +0000699299 00000 n +0001197768 00000 n +0000013966 00000 n +0000014009 00000 n +0000702681 00000 n +0001197689 00000 n +0000014062 00000 n +0000014107 00000 n +0000702940 00000 n +0001197610 00000 n +0000014157 00000 n +0000014201 00000 n +0000703591 00000 n +0001197517 00000 n +0000014245 00000 n +0000014278 00000 n +0000703912 00000 n +0001197385 00000 n +0000014322 00000 n +0000014361 00000 n +0000707916 00000 n +0001197306 00000 n +0000014408 00000 n +0000014456 00000 n +0000709792 00000 n +0001197213 00000 n +0000014503 00000 n +0000014552 00000 n +0000709983 00000 n +0001197134 00000 n +0000014599 00000 n +0000014649 00000 n +0000712844 00000 n +0001197002 00000 n +0000014693 00000 n +0000014731 00000 n +0000713103 00000 n +0001196923 00000 n +0000014778 00000 n +0000014834 00000 n +0000713426 00000 n +0001196844 00000 n +0000014881 00000 n +0000014930 00000 n +0000714003 00000 n +0001196751 00000 n +0000014974 00000 n +0000015019 00000 n +0000714260 00000 n +0001196658 00000 n +0000015063 00000 n +0000015095 00000 n +0000718521 00000 n +0001196565 00000 n +0000015139 00000 n +0000015170 00000 n +0000719034 00000 n +0001196433 00000 n +0000015214 00000 n +0000015265 00000 n +0000724436 00000 n +0001196354 00000 n +0000015312 00000 n +0000015355 00000 n +0000729038 00000 n +0001196261 00000 n +0000015402 00000 n +0000015476 00000 n +0000735268 00000 n +0001196168 00000 n +0000015523 00000 n +0000015576 00000 n +0000735910 00000 n +0001196089 00000 n +0000015623 00000 n +0000015687 00000 n +0000736103 00000 n +0001196010 00000 n +0000015731 00000 n +0000015800 00000 n +0000741074 00000 n +0001195877 00000 n +0000015841 00000 n +0000015889 00000 n +0000741394 00000 n +0001195759 00000 n +0000015933 00000 n +0000015974 00000 n +0000741523 00000 n +0001195680 00000 n +0000016021 00000 n +0000016060 00000 n +0000741716 00000 n +0001195587 00000 n +0000016107 00000 n +0000016154 00000 n +0000742888 00000 n +0001195508 00000 n +0000016201 00000 n +0000016243 00000 n +0000745719 00000 n +0001195376 00000 n +0000016287 00000 n +0000016317 00000 n +0000745848 00000 n +0001195297 00000 n +0000016364 00000 n +0000016415 00000 n +0000746041 00000 n +0001195204 00000 n +0000016462 00000 n +0000016523 00000 n +0000747394 00000 n +0001195125 00000 n +0000016570 00000 n +0000016611 00000 n +0000750722 00000 n +0001194993 00000 n +0000016655 00000 n +0000016690 00000 n +0000750851 00000 n +0001194928 00000 n +0000016737 00000 n +0000016819 00000 n +0000757519 00000 n +0001194810 00000 n +0000016863 00000 n +0000016896 00000 n +0000757648 00000 n +0001194745 00000 n +0000016943 00000 n +0000017014 00000 n +0000760958 00000 n +0001194611 00000 n +0000017055 00000 n +0000017100 00000 n +0000761086 00000 n +0001194532 00000 n +0000017144 00000 n +0000017181 00000 n +0000761475 00000 n +0001194439 00000 n +0000017225 00000 n +0000017275 00000 n +0000766816 00000 n +0001194346 00000 n +0000017319 00000 n +0000017360 00000 n +0000774240 00000 n +0001194253 00000 n +0000017404 00000 n +0000017448 00000 n +0000825717 00000 n +0001194121 00000 n +0000017492 00000 n +0000017535 00000 n +0000828803 00000 n +0001194003 00000 n +0000017582 00000 n +0000017623 00000 n +0000829967 00000 n +0001193924 00000 n +0000017673 00000 n +0000017722 00000 n +0000830224 00000 n +0001193831 00000 n +0000017772 00000 n +0000017809 00000 n +0000834119 00000 n +0001193752 00000 n +0000017859 00000 n +0000017903 00000 n +0000834635 00000 n +0001193659 00000 n +0000017950 00000 n +0000017988 00000 n +0000835090 00000 n +0001193566 00000 n +0000018035 00000 n +0000018090 00000 n +0000835282 00000 n +0001193473 00000 n +0000018137 00000 n +0000018173 00000 n +0000839173 00000 n +0001193394 00000 n +0000018220 00000 n +0000018280 00000 n +0000839690 00000 n +0001193262 00000 n +0000018324 00000 n +0000018360 00000 n +0000839819 00000 n +0001193183 00000 n +0000018407 00000 n +0000018453 00000 n +0000845186 00000 n +0001193104 00000 n +0000018500 00000 n +0000018548 00000 n +0000848353 00000 n +0001192972 00000 n +0000018592 00000 n +0000018628 00000 n +0000849126 00000 n +0001192868 00000 n +0000018675 00000 n +0000018714 00000 n +0000849510 00000 n +0001192789 00000 n +0000018764 00000 n +0000018824 00000 n +0000852059 00000 n +0001192696 00000 n +0000018874 00000 n +0000018944 00000 n +0000852252 00000 n +0001192603 00000 n +0000018994 00000 n +0000019054 00000 n +0000852443 00000 n +0001192510 00000 n +0000019104 00000 n +0000019177 00000 n +0000852635 00000 n +0001192417 00000 n +0000019227 00000 n +0000019287 00000 n +0000852828 00000 n +0001192324 00000 n +0000019337 00000 n +0000019389 00000 n +0000853085 00000 n +0001192245 00000 n +0000019439 00000 n +0000019491 00000 n +0000853278 00000 n +0001192113 00000 n +0000019535 00000 n +0000019574 00000 n +0000855839 00000 n +0001192034 00000 n +0000019621 00000 n +0000019665 00000 n +0000856226 00000 n +0001191941 00000 n +0000019712 00000 n +0000019747 00000 n +0000856483 00000 n +0001191848 00000 n +0000019794 00000 n +0000019848 00000 n +0000856676 00000 n +0001191769 00000 n +0000019895 00000 n +0000019937 00000 n +0000860114 00000 n +0001191676 00000 n +0000019981 00000 n +0000020031 00000 n +0000860568 00000 n +0001191544 00000 n +0000020075 00000 n +0000020117 00000 n +0000860761 00000 n +0001191465 00000 n +0000020164 00000 n +0000020211 00000 n +0000862303 00000 n +0001191372 00000 n +0000020258 00000 n +0000020303 00000 n +0000871109 00000 n +0001191279 00000 n +0000020350 00000 n +0000020392 00000 n +0000871302 00000 n +0001191186 00000 n +0000020439 00000 n +0000020484 00000 n +0000871627 00000 n +0001191107 00000 n +0000020531 00000 n +0000020570 00000 n +0000877018 00000 n +0001190975 00000 n +0000020614 00000 n +0000020658 00000 n +0000877209 00000 n +0001190896 00000 n +0000020705 00000 n +0000020740 00000 n +0000880593 00000 n +0001190778 00000 n +0000020787 00000 n +0000020821 00000 n +0000881106 00000 n +0001190699 00000 n +0000020871 00000 n +0000020916 00000 n +0000881554 00000 n +0001190620 00000 n +0000020966 00000 n +0000021018 00000 n +0000884334 00000 n +0001190527 00000 n +0000021062 00000 n +0000021093 00000 n +0000884974 00000 n +0001190409 00000 n +0000021137 00000 n +0000021170 00000 n +0000888821 00000 n +0001190330 00000 n +0000021217 00000 n +0000021254 00000 n +0000889141 00000 n +0001190237 00000 n +0000021301 00000 n +0000021345 00000 n +0000893092 00000 n +0001190144 00000 n +0000021392 00000 n +0000021436 00000 n +0000894859 00000 n +0001190065 00000 n +0000021483 00000 n +0000021530 00000 n +0000897946 00000 n +0001189932 00000 n +0000021571 00000 n +0000021622 00000 n +0000898074 00000 n +0001189853 00000 n +0000021666 00000 n +0000021703 00000 n +0000898916 00000 n +0001189721 00000 n +0000021747 00000 n +0000021794 00000 n +0000899172 00000 n +0001189642 00000 n +0000021841 00000 n +0000021896 00000 n +0000903086 00000 n +0001189549 00000 n +0000021943 00000 n +0000022001 00000 n +0000904769 00000 n +0001189456 00000 n +0000022048 00000 n +0000022096 00000 n +0000908920 00000 n +0001189363 00000 n +0000022144 00000 n +0000022197 00000 n +0000913934 00000 n +0001189270 00000 n +0000022245 00000 n +0000022292 00000 n +0000919298 00000 n +0001189191 00000 n +0000022340 00000 n +0000022417 00000 n +0000919555 00000 n +0001189098 00000 n +0000022461 00000 n +0000022518 00000 n +0000933472 00000 n +0001189005 00000 n +0000022562 00000 n +0000022618 00000 n +0000938048 00000 n +0001188887 00000 n +0000022662 00000 n +0000022729 00000 n +0000938177 00000 n +0001188808 00000 n +0000022777 00000 n +0000022810 00000 n +0000938370 00000 n +0001188715 00000 n +0000022858 00000 n +0000022888 00000 n +0000940762 00000 n +0001188622 00000 n +0000022936 00000 n +0000022975 00000 n +0000941212 00000 n +0001188529 00000 n +0000023023 00000 n +0000023060 00000 n +0000941471 00000 n +0001188450 00000 n +0000023108 00000 n +0000023155 00000 n +0000944957 00000 n +0001188315 00000 n +0000023197 00000 n +0000023244 00000 n +0000945149 00000 n +0001188234 00000 n +0000023289 00000 n +0000023329 00000 n +0000945863 00000 n +0001188137 00000 n +0000023375 00000 n +0000023452 00000 n +0000946313 00000 n +0001188039 00000 n +0000023498 00000 n +0000023595 00000 n +0000949047 00000 n +0001187941 00000 n +0000023641 00000 n +0000023697 00000 n +0000949690 00000 n +0001187843 00000 n +0000023743 00000 n +0000023802 00000 n +0000950469 00000 n +0001187745 00000 n +0000023848 00000 n +0000023921 00000 n +0000954392 00000 n +0001187647 00000 n +0000023967 00000 n +0000024042 00000 n +0000957205 00000 n +0001187549 00000 n +0000024088 00000 n +0000024167 00000 n +0000957594 00000 n +0001187466 00000 n +0000024213 00000 n +0000024333 00000 n +0000961408 00000 n +0001187327 00000 n +0000024376 00000 n +0000024416 00000 n +0000961666 00000 n +0001187243 00000 n +0000024462 00000 n +0000024516 00000 n +0000963685 00000 n +0001187159 00000 n +0000024562 00000 n +0000024626 00000 n +0000966592 00000 n +0001187019 00000 n +0000024669 00000 n +0000024737 00000 n +0000966722 00000 n +0001186935 00000 n +0000024783 00000 n +0000024821 00000 n +0000967752 00000 n +0001186836 00000 n +0000024867 00000 n +0000024911 00000 n +0000972960 00000 n +0001186752 00000 n +0000024957 00000 n +0000024999 00000 n +0000978402 00000 n +0001186611 00000 n +0000025042 00000 n +0000025105 00000 n +0000978721 00000 n +0001186527 00000 n +0000025151 00000 n +0000025183 00000 n +0000979039 00000 n +0001186428 00000 n +0000025229 00000 n +0000025281 00000 n +0000983037 00000 n +0001186329 00000 n +0000025327 00000 n +0000025367 00000 n +0000983294 00000 n +0001186230 00000 n +0000025413 00000 n +0000025456 00000 n +0000987211 00000 n +0001186131 00000 n +0000025502 00000 n +0000025539 00000 n +0000992406 00000 n +0001186032 00000 n +0000025585 00000 n +0000025628 00000 n +0000992728 00000 n +0001185933 00000 n +0000025674 00000 n +0000025722 00000 n +0000992985 00000 n +0001185834 00000 n +0000025768 00000 n +0000025826 00000 n +0000996042 00000 n +0001185735 00000 n +0000025872 00000 n +0000025907 00000 n +0000996236 00000 n +0001185636 00000 n +0000025953 00000 n +0000025988 00000 n +0000996429 00000 n +0001185537 00000 n +0000026034 00000 n +0000026091 00000 n +0000996752 00000 n +0001185453 00000 n +0000026137 00000 n +0000026200 00000 n +0001000718 00000 n +0001185354 00000 n +0000026243 00000 n +0000026272 00000 n +0001000846 00000 n +0001185214 00000 n +0000026315 00000 n +0000026350 00000 n +0001000976 00000 n +0001185145 00000 n +0000026400 00000 n +0000026430 00000 n +0001001363 00000 n +0001185005 00000 n +0000026473 00000 n +0000026495 00000 n +0001001492 00000 n +0001184895 00000 n +0000026545 00000 n +0000026572 00000 n +0001001945 00000 n +0001184826 00000 n +0000026625 00000 n +0000026689 00000 n +0001005932 00000 n +0001184686 00000 n +0000026732 00000 n +0000026754 00000 n +0001006061 00000 n +0001184576 00000 n +0000026804 00000 n +0000026828 00000 n +0001006513 00000 n +0001184492 00000 n +0000026878 00000 n +0000026909 00000 n +0001006771 00000 n +0001184408 00000 n +0000026959 00000 n +0000026988 00000 n +0001007028 00000 n +0001184268 00000 n +0000027031 00000 n +0000027053 00000 n +0001007157 00000 n +0001184158 00000 n +0000027103 00000 n +0000027148 00000 n +0001007543 00000 n +0001184074 00000 n +0000027198 00000 n +0000027228 00000 n +0001007800 00000 n +0001183975 00000 n +0000027278 00000 n +0000027333 00000 n +0001008317 00000 n +0001183891 00000 n +0000027383 00000 n +0000027411 00000 n +0001010693 00000 n +0001183751 00000 n +0000027454 00000 n +0000027476 00000 n +0001010822 00000 n +0001183641 00000 n +0000027526 00000 n +0000027553 00000 n +0001011210 00000 n +0001183572 00000 n +0000027603 00000 n +0000027634 00000 n +0001011468 00000 n +0001183432 00000 n +0000027677 00000 n +0000027699 00000 n +0001011596 00000 n +0001183363 00000 n +0000027749 00000 n +0000027776 00000 n +0001012051 00000 n +0001183223 00000 n +0000027819 00000 n +0000027841 00000 n +0001012179 00000 n +0001183154 00000 n +0000027891 00000 n +0000027922 00000 n +0001014666 00000 n +0001183014 00000 n +0000027965 00000 n +0000027987 00000 n +0001014795 00000 n +0001182904 00000 n +0000028037 00000 n +0000028081 00000 n +0001015381 00000 n +0001182835 00000 n +0000028131 00000 n +0000028157 00000 n +0001016607 00000 n +0001182695 00000 n +0000028200 00000 n +0000028222 00000 n +0001016736 00000 n +0001182585 00000 n +0000028272 00000 n +0000028313 00000 n +0001017057 00000 n +0001182501 00000 n +0000028363 00000 n +0000028391 00000 n +0001019006 00000 n +0001182417 00000 n +0000028441 00000 n +0000028466 00000 n +0001019328 00000 n +0001182277 00000 n +0000028509 00000 n +0000028531 00000 n +0001019457 00000 n +0001182208 00000 n +0000028581 00000 n +0000028604 00000 n +0001020042 00000 n +0001182068 00000 n +0000028647 00000 n +0000028669 00000 n +0001020171 00000 n +0001181958 00000 n +0000028719 00000 n +0000028777 00000 n +0001020427 00000 n +0001181889 00000 n +0000028827 00000 n +0000028866 00000 n +0001020749 00000 n +0001181749 00000 n +0000028909 00000 n +0000028931 00000 n +0001020878 00000 n +0001181639 00000 n +0000028981 00000 n +0000029009 00000 n +0001023613 00000 n +0001181570 00000 n +0000029059 00000 n +0000029085 00000 n +0001024527 00000 n +0001181430 00000 n +0000029128 00000 n +0000029150 00000 n +0001024655 00000 n +0001181320 00000 n +0000029200 00000 n +0000029237 00000 n +0001024979 00000 n +0001181251 00000 n +0000029287 00000 n +0000029329 00000 n +0001025237 00000 n +0001181126 00000 n +0000029372 00000 n +0000029394 00000 n +0001025366 00000 n +0001181057 00000 n +0000029444 00000 n +0000029482 00000 n +0000029834 00000 n +0000030215 00000 n +0000029536 00000 n +0000029960 00000 n +0000030024 00000 n +0000030088 00000 n +0001176814 00000 n +0001162753 00000 n +0001176640 00000 n +0001177794 00000 n +0000031085 00000 n +0000030895 00000 n +0000030289 00000 n +0000031021 00000 n +0001161626 00000 n +0001139780 00000 n +0001161449 00000 n +0000104879 00000 n +0000089218 00000 n +0000031173 00000 n +0000104753 00000 n +0000090166 00000 n +0001138834 00000 n +0001122043 00000 n +0001138657 00000 n +0000090318 00000 n +0000090470 00000 n +0000090626 00000 n +0000090782 00000 n +0000090939 00000 n +0000091096 00000 n +0000091254 00000 n +0000091412 00000 n +0000091566 00000 n +0000091720 00000 n +0000091878 00000 n +0000092036 00000 n +0000092200 00000 n +0000092365 00000 n +0000092523 00000 n +0000092681 00000 n +0000092841 00000 n +0000093000 00000 n +0000093164 00000 n +0000093327 00000 n +0000093488 00000 n +0000093648 00000 n +0000093806 00000 n +0000093963 00000 n +0000094124 00000 n +0000094285 00000 n +0000094450 00000 n +0000094614 00000 n +0000094776 00000 n +0000094937 00000 n +0000095104 00000 n +0000095270 00000 n +0000095443 00000 n +0000095615 00000 n +0000095787 00000 n +0000095958 00000 n +0000096124 00000 n +0000096289 00000 n +0000096463 00000 n +0000096636 00000 n +0000096808 00000 n +0000096979 00000 n +0000097148 00000 n +0000097316 00000 n +0000097488 00000 n +0000097659 00000 n +0000097832 00000 n +0000098004 00000 n +0000098179 00000 n +0000098353 00000 n +0000098512 00000 n +0000098670 00000 n +0000098846 00000 n +0000099022 00000 n +0000099182 00000 n +0000099343 00000 n +0000099501 00000 n +0000099659 00000 n +0000099822 00000 n +0000099985 00000 n +0000100147 00000 n +0000100310 00000 n +0000100463 00000 n +0000100616 00000 n +0000100774 00000 n +0000100932 00000 n +0000101085 00000 n +0000101239 00000 n +0000101390 00000 n +0000101541 00000 n +0000101693 00000 n +0000101845 00000 n +0000102004 00000 n +0000102163 00000 n +0000102317 00000 n +0000102471 00000 n +0000102642 00000 n +0000102813 00000 n +0000102970 00000 n +0000103129 00000 n +0000103280 00000 n +0000103431 00000 n +0000103604 00000 n +0000103777 00000 n +0000103944 00000 n +0000104111 00000 n +0000104272 00000 n +0000104434 00000 n +0000104593 00000 n +0001121197 00000 n +0001102972 00000 n +0001121016 00000 n +0000438520 00000 n +0000438647 00000 n +0000439030 00000 n +0000439348 00000 n +0000443447 00000 n +0000446485 00000 n +0000452796 00000 n +0000452923 00000 n +0000454139 00000 n +0000456395 00000 n +0000456586 00000 n +0000457295 00000 n +0000457745 00000 n +0000461535 00000 n +0000461987 00000 n +0000462829 00000 n +0000475739 00000 n +0000475996 00000 n +0000476187 00000 n +0000478863 00000 n +0000479054 00000 n +0000479246 00000 n +0000479438 00000 n +0000479695 00000 n +0000479886 00000 n +0000480076 00000 n +0000484060 00000 n +0000484708 00000 n +0000484966 00000 n +0000490507 00000 n +0000490700 00000 n +0000490957 00000 n +0000499365 00000 n +0000501374 00000 n +0000505235 00000 n +0000505750 00000 n +0000510055 00000 n +0000521611 00000 n +0000523497 00000 n +0000527506 00000 n +0000527699 00000 n +0000528535 00000 n +0000529047 00000 n +0000532872 00000 n +0000533781 00000 n +0000178561 00000 n +0000162407 00000 n +0000104995 00000 n +0000178497 00000 n +0000163391 00000 n +0000163549 00000 n +0000163708 00000 n +0000163864 00000 n +0000164020 00000 n +0000164177 00000 n +0000164334 00000 n +0000164500 00000 n +0000164666 00000 n +0000164832 00000 n +0000164998 00000 n +0000165156 00000 n +0000165314 00000 n +0000165472 00000 n +0000165630 00000 n +0000165787 00000 n +0000165944 00000 n +0000166107 00000 n +0000166270 00000 n +0000166433 00000 n +0000166596 00000 n +0000166752 00000 n +0000166908 00000 n +0000167062 00000 n +0000167217 00000 n +0000167368 00000 n +0000167519 00000 n +0000167669 00000 n +0000167819 00000 n +0000167970 00000 n +0000168121 00000 n +0000168272 00000 n +0000168423 00000 n +0000168597 00000 n +0000168771 00000 n +0000168922 00000 n +0000169073 00000 n +0000169224 00000 n +0000169375 00000 n +0000169526 00000 n +0000169677 00000 n +0000169830 00000 n +0000169983 00000 n +0000170137 00000 n +0000170292 00000 n +0000170453 00000 n +0000170614 00000 n +0000170774 00000 n +0000170935 00000 n +0000171099 00000 n +0000171263 00000 n +0000171422 00000 n +0000171581 00000 n +0000171744 00000 n +0000171907 00000 n +0000172070 00000 n +0000172233 00000 n +0000172399 00000 n +0000172565 00000 n +0000172733 00000 n +0000172901 00000 n +0000173061 00000 n +0000173223 00000 n +0000173380 00000 n +0000173538 00000 n +0000173707 00000 n +0000173877 00000 n +0000174045 00000 n +0000174213 00000 n +0000174386 00000 n +0000174559 00000 n +0000174723 00000 n +0000174888 00000 n +0000175060 00000 n +0000175232 00000 n +0000175395 00000 n +0000175558 00000 n +0000175720 00000 n +0000175883 00000 n +0000176054 00000 n +0000176225 00000 n +0000176393 00000 n +0000176561 00000 n +0000176715 00000 n +0000176869 00000 n +0000177025 00000 n +0000177181 00000 n +0000177340 00000 n +0000177499 00000 n +0000177664 00000 n +0000177829 00000 n +0000177995 00000 n +0000178161 00000 n +0000178329 00000 n +0000537508 00000 n +0000537831 00000 n +0000538090 00000 n +0000538543 00000 n +0000542371 00000 n +0000542564 00000 n +0000547185 00000 n +0000547378 00000 n +0000547571 00000 n +0000547894 00000 n +0000552220 00000 n +0000552543 00000 n +0000552672 00000 n +0000552865 00000 n +0000551834 00000 n +0000559329 00000 n +0000560373 00000 n +0000560762 00000 n +0000564180 00000 n +0000564762 00000 n +0000565411 00000 n +0000569613 00000 n +0000570062 00000 n +0000575188 00000 n +0000576153 00000 n +0000576409 00000 n +0000579692 00000 n +0000584192 00000 n +0000585228 00000 n +0000589689 00000 n +0000592514 00000 n +0000592642 00000 n +0000592834 00000 n +0000603228 00000 n +0000603421 00000 n +0000604195 00000 n +0000604388 00000 n +0000607649 00000 n +0000608289 00000 n +0000608547 00000 n +0000608806 00000 n 0000613572 00000 n -0001203541 00000 n -0000009563 00000 n -0000009610 00000 n -0000622678 00000 n -0001203448 00000 n -0000009657 00000 n -0000009706 00000 n -0000626835 00000 n -0001203355 00000 n -0000009753 00000 n -0000009786 00000 n -0000628120 00000 n -0001203262 00000 n -0000009833 00000 n -0000009873 00000 n -0000630896 00000 n -0001203169 00000 n -0000009920 00000 n -0000009962 00000 n -0000631025 00000 n -0001203076 00000 n -0000010009 00000 n -0000010052 00000 n -0000631475 00000 n -0001202997 00000 n -0000010099 00000 n -0000010140 00000 n -0000631668 00000 n -0001202865 00000 n -0000010184 00000 n -0000010228 00000 n -0000631797 00000 n -0001202786 00000 n -0000010275 00000 n -0000010327 00000 n -0000635165 00000 n -0001202668 00000 n -0000010374 00000 n -0000010421 00000 n -0000635294 00000 n -0001202589 00000 n -0000010471 00000 n -0000010528 00000 n -0000635810 00000 n -0001202457 00000 n -0000010578 00000 n -0000010625 00000 n -0000635938 00000 n -0001202378 00000 n -0000010678 00000 n -0000010725 00000 n -0000636327 00000 n -0001202299 00000 n -0000010778 00000 n -0000010845 00000 n -0000640809 00000 n -0001202206 00000 n -0000010895 00000 n -0000010939 00000 n -0000647733 00000 n -0001202113 00000 n -0000010989 00000 n -0000011032 00000 n -0000647990 00000 n -0001202034 00000 n -0000011082 00000 n -0000011130 00000 n -0000648701 00000 n -0001201941 00000 n -0000011174 00000 n -0000011214 00000 n -0000651820 00000 n -0001201809 00000 n -0000011258 00000 n -0000011291 00000 n -0000657577 00000 n -0001201730 00000 n -0000011338 00000 n -0000011386 00000 n -0000658546 00000 n -0001201637 00000 n -0000011433 00000 n -0000011476 00000 n -0000658739 00000 n -0001201544 00000 n -0000011523 00000 n -0000011610 00000 n -0000662906 00000 n -0001201426 00000 n -0000011657 00000 n -0000011720 00000 n -0000664916 00000 n -0001201361 00000 n -0000011770 00000 n -0000011836 00000 n -0000671649 00000 n -0001201268 00000 n -0000011880 00000 n -0000011915 00000 n -0000675520 00000 n -0001201175 00000 n -0000011959 00000 n -0000011992 00000 n -0000676228 00000 n -0001201082 00000 n -0000012036 00000 n -0000012071 00000 n -0000679579 00000 n -0001200950 00000 n -0000012115 00000 n -0000012145 00000 n -0000679970 00000 n -0001200871 00000 n -0000012192 00000 n -0000012235 00000 n -0000681851 00000 n -0001200739 00000 n -0000012282 00000 n -0000012320 00000 n -0000681980 00000 n -0001200674 00000 n -0000012370 00000 n -0000012405 00000 n -0000685912 00000 n -0001200581 00000 n -0000012452 00000 n -0000012498 00000 n -0000686758 00000 n -0001200449 00000 n -0000012545 00000 n -0000012590 00000 n -0000686950 00000 n -0001200370 00000 n -0000012640 00000 n -0000012685 00000 n -0000688308 00000 n -0001200291 00000 n -0000012735 00000 n -0000012773 00000 n -0000691657 00000 n -0001200173 00000 n -0000012820 00000 n -0000012866 00000 n -0000692111 00000 n -0001200094 00000 n -0000012916 00000 n -0000012959 00000 n -0000692370 00000 n -0001199961 00000 n -0000013009 00000 n -0000013053 00000 n -0000692628 00000 n -0001199882 00000 n -0000013106 00000 n -0000013141 00000 n -0000692820 00000 n -0001199789 00000 n -0000013194 00000 n -0000013236 00000 n -0000693145 00000 n -0001199696 00000 n -0000013289 00000 n -0000013328 00000 n -0000697968 00000 n -0001199603 00000 n -0000013381 00000 n -0000013420 00000 n -0000698289 00000 n -0001199510 00000 n -0000013473 00000 n -0000013510 00000 n -0000698547 00000 n -0001199417 00000 n -0000013563 00000 n -0000013605 00000 n -0000699069 00000 n -0001199324 00000 n -0000013658 00000 n -0000013713 00000 n -0000699325 00000 n -0001199231 00000 n -0000013766 00000 n -0000013810 00000 n -0000702595 00000 n -0001199138 00000 n -0000013863 00000 n -0000013901 00000 n -0000702724 00000 n -0001199045 00000 n -0000013954 00000 n -0000013997 00000 n -0000703114 00000 n -0001198966 00000 n -0000014050 00000 n -0000014095 00000 n -0000703373 00000 n -0001198887 00000 n -0000014145 00000 n -0000014189 00000 n -0000704023 00000 n -0001198794 00000 n -0000014233 00000 n -0000014266 00000 n -0000708115 00000 n -0001198662 00000 n -0000014310 00000 n -0000014349 00000 n -0000708565 00000 n -0001198583 00000 n -0000014396 00000 n -0000014444 00000 n -0000710440 00000 n -0001198490 00000 n -0000014491 00000 n -0000014540 00000 n -0000713269 00000 n -0001198411 00000 n -0000014587 00000 n -0000014637 00000 n -0000713459 00000 n -0001198279 00000 n -0000014681 00000 n -0000014719 00000 n -0000713718 00000 n -0001198200 00000 n -0000014766 00000 n -0000014822 00000 n -0000714038 00000 n -0001198121 00000 n -0000014869 00000 n -0000014918 00000 n -0000714614 00000 n -0001198028 00000 n -0000014962 00000 n -0000015007 00000 n -0000717914 00000 n -0001197935 00000 n -0000015051 00000 n -0000015083 00000 n -0000719074 00000 n -0001197842 00000 n -0000015127 00000 n -0000015158 00000 n -0000724037 00000 n -0001197710 00000 n -0000015202 00000 n -0000015253 00000 n -0000725194 00000 n -0001197631 00000 n -0000015300 00000 n -0000015343 00000 n -0000729814 00000 n -0001197538 00000 n -0000015390 00000 n -0000015464 00000 n -0000735612 00000 n -0001197445 00000 n -0000015511 00000 n -0000015564 00000 n -0000736256 00000 n -0001197366 00000 n -0000015611 00000 n -0000015675 00000 n -0000738160 00000 n -0001197287 00000 n -0000015719 00000 n -0000015788 00000 n -0000742064 00000 n -0001197154 00000 n -0000015829 00000 n -0000015877 00000 n -0000742384 00000 n -0001197036 00000 n -0000015921 00000 n -0000015962 00000 n -0000742513 00000 n -0001196957 00000 n -0000016009 00000 n -0000016048 00000 n -0000742706 00000 n -0001196864 00000 n -0000016095 00000 n -0000016142 00000 n -0000743878 00000 n -0001196785 00000 n -0000016189 00000 n -0000016231 00000 n -0000746709 00000 n -0001196653 00000 n -0000016275 00000 n -0000016305 00000 n -0000746838 00000 n -0001196574 00000 n -0000016352 00000 n -0000016403 00000 n -0000747031 00000 n -0001196481 00000 n -0000016450 00000 n -0000016511 00000 n -0000748384 00000 n -0001196402 00000 n -0000016558 00000 n -0000016599 00000 n -0000751751 00000 n -0001196270 00000 n -0000016643 00000 n -0000016678 00000 n -0000751880 00000 n -0001196205 00000 n -0000016725 00000 n -0000016807 00000 n -0000758809 00000 n -0001196087 00000 n -0000016851 00000 n -0000016884 00000 n -0000758938 00000 n -0001196022 00000 n -0000016931 00000 n -0000017002 00000 n -0000762254 00000 n -0001195888 00000 n -0000017043 00000 n -0000017088 00000 n -0000762382 00000 n -0001195809 00000 n -0000017132 00000 n -0000017169 00000 n -0000762771 00000 n -0001195716 00000 n -0000017213 00000 n -0000017263 00000 n -0000768094 00000 n -0001195623 00000 n -0000017307 00000 n -0000017348 00000 n -0000775518 00000 n -0001195530 00000 n -0000017392 00000 n -0000017436 00000 n -0000827001 00000 n -0001195398 00000 n -0000017480 00000 n -0000017523 00000 n -0000830087 00000 n -0001195280 00000 n -0000017570 00000 n -0000017611 00000 n -0000831251 00000 n -0001195201 00000 n -0000017661 00000 n -0000017710 00000 n -0000831508 00000 n -0001195108 00000 n -0000017760 00000 n -0000017797 00000 n -0000835403 00000 n -0001195029 00000 n -0000017847 00000 n -0000017891 00000 n -0000835919 00000 n -0001194936 00000 n -0000017938 00000 n -0000017976 00000 n -0000836374 00000 n -0001194843 00000 n -0000018023 00000 n -0000018078 00000 n -0000836566 00000 n -0001194750 00000 n -0000018125 00000 n -0000018161 00000 n -0000840462 00000 n -0001194671 00000 n -0000018208 00000 n -0000018268 00000 n -0000840979 00000 n -0001194539 00000 n -0000018312 00000 n -0000018348 00000 n -0000841108 00000 n -0001194460 00000 n -0000018395 00000 n -0000018441 00000 n -0000846475 00000 n -0001194381 00000 n -0000018488 00000 n -0000018536 00000 n -0000849642 00000 n -0001194249 00000 n -0000018580 00000 n -0000018616 00000 n -0000850415 00000 n -0001194145 00000 n -0000018663 00000 n -0000018702 00000 n -0000850799 00000 n -0001194066 00000 n -0000018752 00000 n -0000018812 00000 n -0000853348 00000 n -0001193973 00000 n -0000018862 00000 n -0000018932 00000 n -0000853541 00000 n -0001193880 00000 n -0000018982 00000 n -0000019042 00000 n -0000853732 00000 n -0001193787 00000 n -0000019092 00000 n -0000019165 00000 n -0000853924 00000 n -0001193694 00000 n -0000019215 00000 n -0000019275 00000 n -0000854117 00000 n -0001193601 00000 n -0000019325 00000 n -0000019377 00000 n -0000854374 00000 n -0001193522 00000 n -0000019427 00000 n -0000019479 00000 n -0000854567 00000 n -0001193390 00000 n -0000019523 00000 n -0000019562 00000 n -0000857128 00000 n -0001193311 00000 n -0000019609 00000 n -0000019653 00000 n -0000857515 00000 n -0001193218 00000 n -0000019700 00000 n -0000019735 00000 n -0000857772 00000 n -0001193125 00000 n -0000019782 00000 n -0000019836 00000 n -0000857965 00000 n -0001193046 00000 n -0000019883 00000 n -0000019925 00000 n -0000861403 00000 n -0001192953 00000 n -0000019969 00000 n -0000020019 00000 n -0000861857 00000 n -0001192821 00000 n -0000020063 00000 n -0000020105 00000 n -0000862050 00000 n -0001192742 00000 n -0000020152 00000 n -0000020199 00000 n -0000863592 00000 n -0001192649 00000 n -0000020246 00000 n -0000020291 00000 n -0000872398 00000 n -0001192556 00000 n -0000020338 00000 n -0000020380 00000 n -0000872591 00000 n -0001192463 00000 n -0000020427 00000 n -0000020472 00000 n -0000872916 00000 n -0001192384 00000 n -0000020519 00000 n -0000020558 00000 n -0000878307 00000 n -0001192252 00000 n -0000020602 00000 n -0000020646 00000 n -0000878498 00000 n -0001192173 00000 n -0000020693 00000 n -0000020728 00000 n -0000881882 00000 n -0001192055 00000 n -0000020775 00000 n -0000020809 00000 n -0000882395 00000 n -0001191976 00000 n -0000020859 00000 n -0000020904 00000 n -0000882843 00000 n -0001191897 00000 n -0000020954 00000 n -0000021006 00000 n -0000885623 00000 n -0001191804 00000 n -0000021050 00000 n -0000021081 00000 n -0000886263 00000 n -0001191686 00000 n -0000021125 00000 n -0000021158 00000 n -0000890110 00000 n -0001191607 00000 n -0000021205 00000 n -0000021242 00000 n -0000890430 00000 n -0001191514 00000 n -0000021289 00000 n -0000021333 00000 n -0000894381 00000 n -0001191421 00000 n -0000021380 00000 n -0000021424 00000 n -0000896148 00000 n -0001191342 00000 n -0000021471 00000 n -0000021518 00000 n -0000899235 00000 n -0001191209 00000 n -0000021559 00000 n -0000021610 00000 n -0000899363 00000 n -0001191130 00000 n -0000021654 00000 n -0000021691 00000 n -0000900205 00000 n -0001190998 00000 n -0000021735 00000 n -0000021782 00000 n -0000900461 00000 n -0001190919 00000 n -0000021829 00000 n -0000021884 00000 n -0000904375 00000 n -0001190826 00000 n -0000021931 00000 n -0000021989 00000 n -0000906058 00000 n -0001190733 00000 n -0000022036 00000 n -0000022084 00000 n -0000910209 00000 n -0001190640 00000 n -0000022132 00000 n -0000022185 00000 n -0000915223 00000 n -0001190547 00000 n -0000022233 00000 n -0000022280 00000 n -0000920587 00000 n -0001190468 00000 n -0000022328 00000 n -0000022405 00000 n -0000920844 00000 n -0001190375 00000 n -0000022449 00000 n -0000022506 00000 n -0000934751 00000 n -0001190282 00000 n -0000022550 00000 n -0000022606 00000 n -0000939327 00000 n -0001190164 00000 n -0000022650 00000 n -0000022717 00000 n -0000939456 00000 n -0001190085 00000 n -0000022765 00000 n -0000022798 00000 n -0000939649 00000 n -0001189992 00000 n -0000022846 00000 n -0000022876 00000 n -0000942041 00000 n -0001189899 00000 n -0000022924 00000 n -0000022963 00000 n -0000942491 00000 n -0001189806 00000 n -0000023011 00000 n -0000023048 00000 n -0000942750 00000 n -0001189727 00000 n -0000023096 00000 n -0000023143 00000 n -0000946236 00000 n -0001189592 00000 n -0000023185 00000 n -0000023232 00000 n -0000946428 00000 n -0001189511 00000 n -0000023277 00000 n -0000023317 00000 n -0000947142 00000 n -0001189414 00000 n -0000023363 00000 n -0000023440 00000 n -0000947592 00000 n -0001189316 00000 n -0000023486 00000 n -0000023583 00000 n -0000950326 00000 n -0001189218 00000 n -0000023629 00000 n -0000023685 00000 n -0000950969 00000 n -0001189120 00000 n -0000023731 00000 n -0000023790 00000 n -0000951748 00000 n -0001189022 00000 n -0000023836 00000 n -0000023909 00000 n -0000955671 00000 n -0001188924 00000 n -0000023955 00000 n -0000024030 00000 n -0000958484 00000 n -0001188826 00000 n -0000024076 00000 n -0000024155 00000 n -0000958873 00000 n -0001188743 00000 n -0000024201 00000 n -0000024321 00000 n -0000962687 00000 n -0001188604 00000 n -0000024364 00000 n -0000024404 00000 n -0000962945 00000 n -0001188520 00000 n -0000024450 00000 n -0000024504 00000 n -0000964964 00000 n -0001188436 00000 n -0000024550 00000 n -0000024614 00000 n -0000967871 00000 n -0001188296 00000 n -0000024657 00000 n -0000024725 00000 n -0000968001 00000 n -0001188212 00000 n -0000024771 00000 n -0000024809 00000 n -0000969031 00000 n -0001188113 00000 n -0000024855 00000 n -0000024899 00000 n -0000974239 00000 n -0001188029 00000 n -0000024945 00000 n -0000024987 00000 n -0000979681 00000 n -0001187888 00000 n -0000025030 00000 n -0000025093 00000 n -0000980000 00000 n -0001187804 00000 n -0000025139 00000 n -0000025171 00000 n -0000980318 00000 n -0001187705 00000 n -0000025217 00000 n -0000025269 00000 n -0000984316 00000 n -0001187606 00000 n -0000025315 00000 n -0000025355 00000 n -0000984573 00000 n -0001187507 00000 n -0000025401 00000 n -0000025444 00000 n -0000988490 00000 n -0001187408 00000 n -0000025490 00000 n -0000025527 00000 n -0000993685 00000 n -0001187309 00000 n -0000025573 00000 n -0000025616 00000 n -0000994007 00000 n -0001187210 00000 n -0000025662 00000 n -0000025710 00000 n -0000994264 00000 n -0001187111 00000 n -0000025756 00000 n -0000025814 00000 n -0000997321 00000 n -0001187012 00000 n -0000025860 00000 n -0000025895 00000 n -0000997515 00000 n -0001186913 00000 n -0000025941 00000 n -0000025976 00000 n -0000997708 00000 n -0001186814 00000 n -0000026022 00000 n -0000026079 00000 n -0000998031 00000 n -0001186730 00000 n -0000026125 00000 n -0000026188 00000 n -0001001997 00000 n -0001186631 00000 n -0000026231 00000 n -0000026260 00000 n -0001002125 00000 n -0001186491 00000 n -0000026303 00000 n -0000026338 00000 n -0001002255 00000 n -0001186422 00000 n -0000026388 00000 n -0000026418 00000 n -0001002642 00000 n -0001186282 00000 n -0000026461 00000 n -0000026483 00000 n -0001002771 00000 n -0001186172 00000 n -0000026533 00000 n -0000026560 00000 n -0001003224 00000 n -0001186103 00000 n -0000026613 00000 n -0000026677 00000 n -0001007211 00000 n -0001185963 00000 n -0000026720 00000 n -0000026742 00000 n -0001007340 00000 n -0001185853 00000 n -0000026792 00000 n -0000026816 00000 n -0001007792 00000 n -0001185769 00000 n -0000026866 00000 n -0000026897 00000 n -0001008050 00000 n -0001185685 00000 n -0000026947 00000 n -0000026976 00000 n -0001008307 00000 n -0001185545 00000 n -0000027019 00000 n -0000027041 00000 n -0001008436 00000 n -0001185435 00000 n -0000027091 00000 n -0000027136 00000 n -0001008822 00000 n -0001185351 00000 n -0000027186 00000 n -0000027216 00000 n -0001009079 00000 n -0001185252 00000 n -0000027266 00000 n -0000027321 00000 n -0001009596 00000 n -0001185168 00000 n -0000027371 00000 n -0000027399 00000 n -0001011972 00000 n -0001185028 00000 n -0000027442 00000 n -0000027464 00000 n -0001012101 00000 n -0001184918 00000 n -0000027514 00000 n -0000027541 00000 n -0001012489 00000 n -0001184849 00000 n -0000027591 00000 n -0000027622 00000 n -0001012747 00000 n -0001184709 00000 n -0000027665 00000 n -0000027687 00000 n -0001012875 00000 n -0001184640 00000 n -0000027737 00000 n -0000027764 00000 n -0001013330 00000 n -0001184500 00000 n -0000027807 00000 n -0000027829 00000 n -0001013458 00000 n -0001184431 00000 n -0000027879 00000 n -0000027910 00000 n -0001015945 00000 n -0001184291 00000 n -0000027953 00000 n -0000027975 00000 n -0001016074 00000 n -0001184181 00000 n -0000028025 00000 n -0000028069 00000 n -0001016660 00000 n -0001184112 00000 n -0000028119 00000 n -0000028145 00000 n -0001017886 00000 n -0001183972 00000 n -0000028188 00000 n -0000028210 00000 n -0001018015 00000 n -0001183862 00000 n -0000028260 00000 n -0000028301 00000 n -0001018336 00000 n -0001183778 00000 n -0000028351 00000 n -0000028379 00000 n -0001020285 00000 n -0001183694 00000 n -0000028429 00000 n -0000028454 00000 n -0001020607 00000 n -0001183554 00000 n -0000028497 00000 n -0000028519 00000 n -0001020736 00000 n -0001183485 00000 n -0000028569 00000 n -0000028592 00000 n -0001021321 00000 n -0001183345 00000 n -0000028635 00000 n -0000028657 00000 n -0001021450 00000 n -0001183235 00000 n -0000028707 00000 n -0000028765 00000 n -0001021706 00000 n -0001183166 00000 n -0000028815 00000 n -0000028854 00000 n -0001022028 00000 n -0001183026 00000 n -0000028897 00000 n -0000028919 00000 n -0001022157 00000 n -0001182916 00000 n -0000028969 00000 n -0000028997 00000 n -0001024892 00000 n -0001182847 00000 n -0000029047 00000 n -0000029073 00000 n -0001025806 00000 n -0001182707 00000 n -0000029116 00000 n -0000029138 00000 n -0001025934 00000 n -0001182597 00000 n -0000029188 00000 n -0000029225 00000 n -0001026258 00000 n -0001182528 00000 n -0000029275 00000 n -0000029317 00000 n -0001026516 00000 n -0001182403 00000 n -0000029360 00000 n -0000029382 00000 n -0001026645 00000 n -0001182334 00000 n -0000029432 00000 n -0000029470 00000 n -0000029790 00000 n -0000030170 00000 n -0000029524 00000 n -0000029916 00000 n -0000029980 00000 n -0000030044 00000 n -0001178091 00000 n -0001164030 00000 n -0001177917 00000 n -0001179071 00000 n -0000031029 00000 n -0000030839 00000 n -0000030244 00000 n -0000030965 00000 n -0001162903 00000 n -0001141057 00000 n -0001162726 00000 n -0000104823 00000 n -0000089162 00000 n -0000031117 00000 n -0000104697 00000 n -0000090110 00000 n -0001140111 00000 n -0001123320 00000 n -0001139934 00000 n -0000090262 00000 n -0000090414 00000 n -0000090570 00000 n -0000090726 00000 n -0000090883 00000 n -0000091040 00000 n -0000091198 00000 n -0000091356 00000 n -0000091510 00000 n -0000091664 00000 n -0000091822 00000 n -0000091980 00000 n -0000092144 00000 n -0000092309 00000 n -0000092467 00000 n -0000092625 00000 n -0000092785 00000 n -0000092944 00000 n -0000093108 00000 n -0000093271 00000 n -0000093432 00000 n -0000093592 00000 n -0000093750 00000 n -0000093907 00000 n -0000094068 00000 n -0000094229 00000 n -0000094394 00000 n -0000094558 00000 n -0000094720 00000 n -0000094881 00000 n -0000095048 00000 n -0000095214 00000 n -0000095387 00000 n -0000095559 00000 n -0000095731 00000 n -0000095902 00000 n -0000096068 00000 n -0000096233 00000 n -0000096407 00000 n -0000096580 00000 n -0000096752 00000 n -0000096923 00000 n -0000097092 00000 n -0000097260 00000 n -0000097432 00000 n -0000097603 00000 n -0000097776 00000 n -0000097948 00000 n -0000098123 00000 n -0000098297 00000 n -0000098456 00000 n -0000098614 00000 n -0000098790 00000 n -0000098966 00000 n -0000099126 00000 n -0000099287 00000 n -0000099445 00000 n -0000099603 00000 n -0000099766 00000 n -0000099929 00000 n -0000100091 00000 n -0000100254 00000 n -0000100407 00000 n -0000100560 00000 n -0000100718 00000 n -0000100876 00000 n -0000101029 00000 n -0000101183 00000 n -0000101334 00000 n -0000101485 00000 n -0000101637 00000 n -0000101789 00000 n -0000101948 00000 n -0000102107 00000 n -0000102261 00000 n -0000102415 00000 n -0000102586 00000 n -0000102757 00000 n -0000102914 00000 n -0000103073 00000 n -0000103224 00000 n -0000103375 00000 n -0000103548 00000 n -0000103721 00000 n -0000103888 00000 n -0000104055 00000 n -0000104216 00000 n -0000104378 00000 n -0000104537 00000 n -0001122474 00000 n -0001104249 00000 n -0001122293 00000 n -0000438433 00000 n -0000438560 00000 n -0000438943 00000 n -0000439261 00000 n -0000443315 00000 n -0000446362 00000 n -0000452673 00000 n -0000452800 00000 n -0000454016 00000 n -0000456272 00000 n -0000456463 00000 n -0000457172 00000 n -0000457622 00000 n -0000461412 00000 n -0000461864 00000 n -0000462706 00000 n -0000475616 00000 n -0000475873 00000 n -0000476064 00000 n -0000478740 00000 n -0000478931 00000 n -0000479123 00000 n -0000479315 00000 n -0000479572 00000 n -0000479763 00000 n -0000479953 00000 n -0000483937 00000 n -0000484585 00000 n -0000484843 00000 n -0000490384 00000 n -0000490577 00000 n -0000490834 00000 n -0000499242 00000 n -0000501251 00000 n -0000505112 00000 n -0000505627 00000 n -0000509932 00000 n -0000521488 00000 n -0000523374 00000 n -0000527383 00000 n -0000527576 00000 n -0000528412 00000 n -0000528924 00000 n -0000532749 00000 n -0000533658 00000 n -0000178501 00000 n -0000162353 00000 n -0000104939 00000 n -0000178437 00000 n -0000163337 00000 n -0000163495 00000 n -0000163654 00000 n -0000163810 00000 n -0000163966 00000 n -0000164123 00000 n -0000164280 00000 n -0000164446 00000 n -0000164612 00000 n -0000164778 00000 n -0000164944 00000 n -0000165102 00000 n -0000165260 00000 n -0000165418 00000 n -0000165576 00000 n -0000165733 00000 n -0000165890 00000 n -0000166053 00000 n -0000166216 00000 n -0000166379 00000 n -0000166542 00000 n -0000166698 00000 n -0000166854 00000 n -0000167008 00000 n -0000167163 00000 n -0000167314 00000 n -0000167465 00000 n -0000167615 00000 n -0000167765 00000 n -0000167916 00000 n -0000168067 00000 n -0000168218 00000 n -0000168369 00000 n -0000168543 00000 n -0000168717 00000 n -0000168868 00000 n -0000169019 00000 n -0000169170 00000 n -0000169321 00000 n -0000169472 00000 n -0000169623 00000 n -0000169776 00000 n -0000169929 00000 n -0000170083 00000 n -0000170238 00000 n -0000170399 00000 n -0000170560 00000 n -0000170720 00000 n -0000170881 00000 n -0000171045 00000 n -0000171209 00000 n -0000171368 00000 n -0000171527 00000 n -0000171690 00000 n -0000171853 00000 n -0000172016 00000 n -0000172179 00000 n -0000172345 00000 n -0000172511 00000 n -0000172679 00000 n -0000172847 00000 n -0000173007 00000 n -0000173169 00000 n -0000173326 00000 n -0000173484 00000 n -0000173653 00000 n -0000173823 00000 n -0000173991 00000 n -0000174159 00000 n -0000174332 00000 n -0000174505 00000 n -0000174669 00000 n -0000174834 00000 n -0000175006 00000 n -0000175178 00000 n -0000175341 00000 n -0000175504 00000 n -0000175666 00000 n -0000175829 00000 n -0000176000 00000 n -0000176171 00000 n -0000176339 00000 n -0000176507 00000 n -0000176661 00000 n -0000176815 00000 n -0000176971 00000 n -0000177127 00000 n -0000177286 00000 n -0000177445 00000 n -0000177610 00000 n -0000177775 00000 n -0000177941 00000 n -0000178107 00000 n -0000178272 00000 n -0000537381 00000 n -0000537704 00000 n -0000537963 00000 n -0000538416 00000 n -0000542244 00000 n -0000542437 00000 n -0000547058 00000 n -0000547251 00000 n -0000547444 00000 n -0000547767 00000 n -0000552093 00000 n -0000552416 00000 n -0000552545 00000 n -0000552738 00000 n -0000551707 00000 n -0000559202 00000 n -0000560246 00000 n -0000560635 00000 n -0000564053 00000 n -0000564635 00000 n -0000565284 00000 n -0000569486 00000 n -0000569935 00000 n -0000575061 00000 n -0000576026 00000 n -0000576282 00000 n -0000579565 00000 n -0000584065 00000 n -0000585101 00000 n -0000589562 00000 n -0000592387 00000 n -0000592515 00000 n -0000592707 00000 n -0000603123 00000 n -0000603637 00000 n -0000604409 00000 n -0000604602 00000 n -0000607892 00000 n -0000608533 00000 n -0000612154 00000 n -0000612413 00000 n -0000613508 00000 n -0000622614 00000 n -0000626771 00000 n -0000628056 00000 n -0000628248 00000 n -0000626578 00000 n -0000254908 00000 n -0000238386 00000 n -0000178603 00000 n -0000254844 00000 n -0000239388 00000 n -0000239554 00000 n -0000239720 00000 n -0000239875 00000 n -0000240032 00000 n -0000240191 00000 n -0000240350 00000 n -0000240509 00000 n -0000240668 00000 n -0000240835 00000 n -0000241002 00000 n -0000241164 00000 n -0000241326 00000 n -0000241484 00000 n -0000241642 00000 n -0000241810 00000 n -0000241979 00000 n -0000242145 00000 n -0000242311 00000 n -0000242472 00000 n -0000242634 00000 n -0000242789 00000 n -0000242945 00000 n -0000243107 00000 n -0000243269 00000 n -0000243430 00000 n -0000243591 00000 n -0000243763 00000 n -0000243935 00000 n -0000244105 00000 n -0000244275 00000 n -0000244445 00000 n -0000244615 00000 n -0000244772 00000 n -0000244930 00000 n -0000245085 00000 n -0000245241 00000 n -0000245398 00000 n -0000245556 00000 n -0000245717 00000 n -0000245879 00000 n -0000246045 00000 n -0000246211 00000 n -0000246370 00000 n -0000246529 00000 n -0000246687 00000 n -0000246845 00000 n -0000247003 00000 n -0000247161 00000 n -0000247319 00000 n -0000247477 00000 n -0000247645 00000 n -0000247813 00000 n -0000247974 00000 n -0000248135 00000 n -0000248294 00000 n -0000248453 00000 n -0000248611 00000 n -0000248769 00000 n -0000248928 00000 n -0000249087 00000 n -0000249247 00000 n -0000249407 00000 n -0000249562 00000 n -0000249718 00000 n -0000249878 00000 n -0000250039 00000 n -0000250204 00000 n -0000250369 00000 n -0000250535 00000 n -0000250701 00000 n -0000250869 00000 n -0000251037 00000 n -0000251193 00000 n -0000251350 00000 n -0000251514 00000 n -0000251678 00000 n -0000251844 00000 n -0000252010 00000 n -0000252175 00000 n -0000252342 00000 n -0000252495 00000 n -0000252649 00000 n -0000252801 00000 n -0000252954 00000 n -0000253107 00000 n -0000253261 00000 n -0000253420 00000 n -0000253579 00000 n -0000253738 00000 n -0000253897 00000 n -0000254061 00000 n -0000254225 00000 n -0000254377 00000 n -0000254529 00000 n -0000254686 00000 n -0000631411 00000 n -0000631604 00000 n -0000631733 00000 n -0000632053 00000 n -0000635230 00000 n -0000635746 00000 n -0000637102 00000 n -0000647669 00000 n -0000647927 00000 n -0000648637 00000 n -0000651756 00000 n -0000657513 00000 n -0000658482 00000 n -0000658675 00000 n -0000659060 00000 n -0000664853 00000 n -0000671585 00000 n -0000675456 00000 n -0000676164 00000 n -0000677125 00000 n -0000679906 00000 n -0000681787 00000 n -0000681916 00000 n -0000685848 00000 n -0000686695 00000 n -0000686886 00000 n -0000688244 00000 n -0000688699 00000 n -0000692047 00000 n -0000692306 00000 n -0000703309 00000 n -0000703959 00000 n -0000704280 00000 n -0000708501 00000 n -0000710376 00000 n -0000708051 00000 n -0000713395 00000 n -0000713654 00000 n -0000713974 00000 n -0000714550 00000 n -0000717850 00000 n -0000719010 00000 n -0000719522 00000 n -0000725129 00000 n -0000729750 00000 n -0000735548 00000 n -0000736192 00000 n -0000736385 00000 n -0000330470 00000 n -0000314241 00000 n -0000254996 00000 n -0000330406 00000 n -0000315225 00000 n -0000315378 00000 n -0000315533 00000 n -0000315691 00000 n -0000315850 00000 n -0000316014 00000 n -0000316178 00000 n -0000316346 00000 n -0000316514 00000 n -0001103207 00000 n -0001082930 00000 n -0001103032 00000 n -0000316680 00000 n -0000316846 00000 n -0000317007 00000 n -0000317169 00000 n -0000317338 00000 n -0000317507 00000 n -0000317674 00000 n -0000317841 00000 n -0000318011 00000 n -0000318181 00000 n -0000318345 00000 n -0000318510 00000 n -0000318683 00000 n -0000318856 00000 n -0000319020 00000 n -0000319185 00000 n -0000319358 00000 n -0000319531 00000 n -0000319683 00000 n -0000319836 00000 n -0000319994 00000 n -0000320153 00000 n -0000320306 00000 n -0000320460 00000 n -0000320615 00000 n -0000320771 00000 n -0000320927 00000 n -0000321084 00000 n -0000321236 00000 n -0000321389 00000 n -0000321543 00000 n -0000321697 00000 n -0000321853 00000 n -0000322009 00000 n -0000322165 00000 n -0000322321 00000 n -0000322482 00000 n -0000322643 00000 n -0000322802 00000 n -0000322961 00000 n -0000323124 00000 n -0000323287 00000 n -0000323439 00000 n -0000323591 00000 n -0000323758 00000 n -0000323925 00000 n -0000324082 00000 n -0000324240 00000 n -0000324398 00000 n -0000324557 00000 n -0000324715 00000 n -0000324873 00000 n -0000325031 00000 n -0000325190 00000 n -0000325349 00000 n -0000325508 00000 n -0000325672 00000 n -0000325836 00000 n -0000325999 00000 n -0000326163 00000 n -0000326330 00000 n -0000326497 00000 n -0000326665 00000 n -0000326833 00000 n -0000326996 00000 n -0000327159 00000 n -0000327329 00000 n -0000327499 00000 n -0000327670 00000 n -0000327841 00000 n -0000328000 00000 n -0000328160 00000 n -0000328312 00000 n -0000328464 00000 n -0000328622 00000 n -0000328780 00000 n -0000328944 00000 n -0000329108 00000 n -0000329270 00000 n -0000329432 00000 n -0000329591 00000 n -0000329751 00000 n -0000329912 00000 n -0000330074 00000 n -0000330240 00000 n -0000742000 00000 n -0000742320 00000 n -0000742449 00000 n -0000742642 00000 n -0000743814 00000 n -0000744072 00000 n -0000746774 00000 n -0000746967 00000 n -0000748320 00000 n -0000751687 00000 n -0000751816 00000 n -0000758746 00000 n -0000758874 00000 n -0000762190 00000 n -0000762318 00000 n -0000762707 00000 n -0000768030 00000 n -0000775454 00000 n -0000773707 00000 n -0000827324 00000 n -0000831188 00000 n -0000831444 00000 n -0000835339 00000 n -0000835855 00000 n -0000836310 00000 n -0000836502 00000 n -0000840398 00000 n -0000840915 00000 n -0000841044 00000 n -0000846411 00000 n -0000846733 00000 n -0000850351 00000 n -0000850735 00000 n -0000850927 00000 n -0000853477 00000 n -0000853669 00000 n -0000853860 00000 n -0000854053 00000 n -0000854310 00000 n -0000854503 00000 n -0000854696 00000 n -0000857451 00000 n -0000857708 00000 n -0000857901 00000 n -0000858223 00000 n -0000861793 00000 n -0000861986 00000 n -0000401210 00000 n -0000385788 00000 n -0000330586 00000 n -0000401146 00000 n -0000386736 00000 n -0000386900 00000 n -0000387064 00000 n -0000387225 00000 n -0000387386 00000 n -0000387552 00000 n -0000387718 00000 n -0000387883 00000 n -0000388048 00000 n -0000388204 00000 n -0000388361 00000 n -0000388516 00000 n -0000388671 00000 n -0000388825 00000 n -0000388979 00000 n -0000389131 00000 n -0000389283 00000 n -0000389448 00000 n -0000389613 00000 n -0000389765 00000 n -0000389918 00000 n -0000390072 00000 n -0000390227 00000 n -0000390391 00000 n -0000390555 00000 n -0000390719 00000 n -0000390883 00000 n -0000391043 00000 n -0000391203 00000 n -0000391355 00000 n -0000391507 00000 n -0000391667 00000 n -0000391828 00000 n -0000391985 00000 n -0000392143 00000 n -0000392304 00000 n -0000392466 00000 n -0000392632 00000 n -0000392798 00000 n -0000392961 00000 n -0000393124 00000 n -0000393285 00000 n -0000393446 00000 n -0000393610 00000 n -0000393774 00000 n -0000393937 00000 n -0000394100 00000 n -0000394268 00000 n -0000394436 00000 n -0000394593 00000 n -0000394751 00000 n -0000394921 00000 n -0000395092 00000 n -0000395250 00000 n -0000395409 00000 n -0000395563 00000 n -0000395717 00000 n -0000395868 00000 n -0000396019 00000 n -0000396169 00000 n -0000396319 00000 n -0000396470 00000 n -0000396621 00000 n -0000396778 00000 n -0000396935 00000 n -0000397097 00000 n -0000397260 00000 n -0000397421 00000 n -0000397583 00000 n -0000397745 00000 n -0000397908 00000 n -0000398070 00000 n -0000398233 00000 n -0000398394 00000 n -0000398556 00000 n -0000398720 00000 n -0000398885 00000 n -0000399052 00000 n -0000399220 00000 n -0000399384 00000 n -0000399549 00000 n -0000399706 00000 n -0000399864 00000 n -0000400033 00000 n -0000400203 00000 n -0000400357 00000 n -0000400512 00000 n -0000400666 00000 n -0000400821 00000 n -0000400983 00000 n -0001179196 00000 n -0000863528 00000 n -0000872334 00000 n -0000872527 00000 n -0000872852 00000 n -0000878243 00000 n -0000878435 00000 n -0000876961 00000 n -0000882331 00000 n -0000882779 00000 n -0000885559 00000 n -0000886199 00000 n -0000890045 00000 n -0000890366 00000 n -0000894317 00000 n -0000895022 00000 n -0000899171 00000 n -0000899299 00000 n -0000900141 00000 n -0000900397 00000 n -0000901180 00000 n -0000905995 00000 n -0000910145 00000 n -0000911373 00000 n -0000920523 00000 n -0000920780 00000 n -0000931494 00000 n -0000939263 00000 n -0000939392 00000 n -0000939585 00000 n -0000941977 00000 n -0000942428 00000 n -0000942686 00000 n -0000946172 00000 n -0000946364 00000 n -0000947078 00000 n -0000947529 00000 n -0000950262 00000 n -0000950905 00000 n -0000951684 00000 n -0000955607 00000 n -0000958420 00000 n -0000958809 00000 n -0000962623 00000 n -0000962881 00000 n -0000964900 00000 n -0000432819 00000 n -0000426620 00000 n -0000401326 00000 n -0000432755 00000 n -0000427082 00000 n -0000427255 00000 n -0000427429 00000 n -0000427603 00000 n -0000427778 00000 n -0000427947 00000 n -0000428117 00000 n -0000428287 00000 n -0000428458 00000 n -0000428608 00000 n -0000428760 00000 n -0000428913 00000 n -0000429067 00000 n -0000429220 00000 n -0000429374 00000 n -0000429527 00000 n -0000429681 00000 n -0000429832 00000 n -0000429984 00000 n -0000430136 00000 n -0000430290 00000 n -0000430443 00000 n -0000430597 00000 n -0000430750 00000 n -0000430904 00000 n -0000431057 00000 n -0000431211 00000 n -0000431364 00000 n -0000431518 00000 n -0000431671 00000 n -0000431825 00000 n -0000431977 00000 n -0000432130 00000 n -0000432286 00000 n -0000432444 00000 n -0000432599 00000 n -0000967807 00000 n -0000967937 00000 n -0000968967 00000 n -0000974175 00000 n -0000979617 00000 n -0000979936 00000 n -0000980254 00000 n -0000984252 00000 n -0000984510 00000 n -0000988426 00000 n -0000993621 00000 n -0000993943 00000 n -0000994200 00000 n -0000997257 00000 n -0000997451 00000 n -0000997645 00000 n -0000997967 00000 n -0001001933 00000 n -0000435468 00000 n -0000434860 00000 n -0000432921 00000 n -0000435341 00000 n -0000435016 00000 n -0000435178 00000 n -0000775779 00000 n -0000440693 00000 n -0000438135 00000 n -0000435570 00000 n -0000438687 00000 n -0000438751 00000 n -0000438815 00000 n -0000438282 00000 n -0000438879 00000 n -0000439071 00000 n -0000439134 00000 n -0000439198 00000 n -0000439388 00000 n -0000439452 00000 n -0000439516 00000 n -0000439582 00000 n -0000439648 00000 n -0000439712 00000 n -0000439776 00000 n -0000439842 00000 n -0000439908 00000 n -0000439972 00000 n -0000440036 00000 n -0000440102 00000 n -0000440167 00000 n -0000440233 00000 n -0000440299 00000 n -0000440365 00000 n -0000440429 00000 n -0000440495 00000 n -0000440561 00000 n -0000440627 00000 n -0000446426 00000 n +0000622006 00000 n +0000623551 00000 n +0000627712 00000 n +0000627904 00000 n +0000628096 00000 n +0000254970 00000 n +0000238448 00000 n +0000178663 00000 n +0000254906 00000 n +0000239450 00000 n +0000239616 00000 n +0000239782 00000 n +0000239937 00000 n +0000240094 00000 n +0000240253 00000 n +0000240412 00000 n +0000240571 00000 n +0000240730 00000 n +0000240897 00000 n +0000241064 00000 n +0000241226 00000 n +0000241388 00000 n +0000241546 00000 n +0000241704 00000 n +0000241872 00000 n +0000242041 00000 n +0000242207 00000 n +0000242373 00000 n +0000242534 00000 n +0000242696 00000 n +0000242851 00000 n +0000243007 00000 n +0000243169 00000 n +0000243331 00000 n +0000243492 00000 n +0000243653 00000 n +0000243825 00000 n +0000243997 00000 n +0000244167 00000 n +0000244337 00000 n +0000244507 00000 n +0000244677 00000 n +0000244834 00000 n +0000244992 00000 n +0000245147 00000 n +0000245303 00000 n +0000245460 00000 n +0000245618 00000 n +0000245779 00000 n +0000245941 00000 n +0000246107 00000 n +0000246273 00000 n +0000246432 00000 n +0000246591 00000 n +0000246749 00000 n +0000246907 00000 n +0000247065 00000 n +0000247223 00000 n +0000247381 00000 n +0000247539 00000 n +0000247707 00000 n +0000247875 00000 n +0000248036 00000 n +0000248197 00000 n +0000248356 00000 n +0000248515 00000 n +0000248673 00000 n +0000248831 00000 n +0000248990 00000 n +0000249149 00000 n +0000249309 00000 n +0000249469 00000 n +0000249624 00000 n +0000249780 00000 n +0000249940 00000 n +0000250101 00000 n +0000250266 00000 n +0000250431 00000 n +0000250597 00000 n +0000250763 00000 n +0000250931 00000 n +0000251099 00000 n +0000251255 00000 n +0000251412 00000 n +0000251576 00000 n +0000251740 00000 n +0000251906 00000 n +0000252072 00000 n +0000252237 00000 n +0000252404 00000 n +0000252557 00000 n +0000252711 00000 n +0000252863 00000 n +0000253016 00000 n +0000253169 00000 n +0000253323 00000 n +0000253482 00000 n +0000253641 00000 n +0000253800 00000 n +0000253959 00000 n +0000254123 00000 n +0000254287 00000 n +0000254439 00000 n +0000254591 00000 n +0000254748 00000 n +0000631202 00000 n +0000631395 00000 n +0000631524 00000 n +0000631845 00000 n +0000631974 00000 n +0000635585 00000 n +0000636944 00000 n +0000644195 00000 n +0000647474 00000 n +0000648184 00000 n +0000648699 00000 n +0000653839 00000 n +0000658424 00000 n +0000658617 00000 n +0000659001 00000 n +0000664486 00000 n +0000671261 00000 n +0000672754 00000 n +0000675909 00000 n +0000676869 00000 n +0000677260 00000 n +0000680969 00000 n +0000681098 00000 n +0000682388 00000 n +0000685950 00000 n +0000686142 00000 n +0000687505 00000 n +0000687960 00000 n +0000688414 00000 n +0000691782 00000 n +0000702876 00000 n +0000703527 00000 n +0000703848 00000 n +0000707852 00000 n +0000709728 00000 n +0000709919 00000 n +0000710112 00000 n +0000713039 00000 n +0000713362 00000 n +0000713939 00000 n +0000714196 00000 n +0000718457 00000 n +0000718970 00000 n +0000724371 00000 n +0000728974 00000 n +0000735204 00000 n +0000735846 00000 n +0000736039 00000 n +0000330532 00000 n +0000314303 00000 n +0000255058 00000 n +0000330468 00000 n +0000315287 00000 n +0000315440 00000 n +0000315595 00000 n +0000315753 00000 n +0000315912 00000 n +0000316076 00000 n +0000316240 00000 n +0000316408 00000 n +0000316576 00000 n +0001101930 00000 n +0001081653 00000 n +0001101755 00000 n +0000316742 00000 n +0000316908 00000 n +0000317069 00000 n +0000317231 00000 n +0000317400 00000 n +0000317569 00000 n +0000317736 00000 n +0000317903 00000 n +0000318073 00000 n +0000318243 00000 n +0000318407 00000 n +0000318572 00000 n +0000318745 00000 n +0000318918 00000 n +0000319082 00000 n +0000319247 00000 n +0000319420 00000 n +0000319593 00000 n +0000319745 00000 n +0000319898 00000 n +0000320056 00000 n +0000320215 00000 n +0000320368 00000 n +0000320522 00000 n +0000320677 00000 n +0000320833 00000 n +0000320989 00000 n +0000321146 00000 n +0000321298 00000 n +0000321451 00000 n +0000321605 00000 n +0000321759 00000 n +0000321915 00000 n +0000322071 00000 n +0000322227 00000 n +0000322383 00000 n +0000322544 00000 n +0000322705 00000 n +0000322864 00000 n +0000323023 00000 n +0000323186 00000 n +0000323349 00000 n +0000323501 00000 n +0000323653 00000 n +0000323820 00000 n +0000323987 00000 n +0000324144 00000 n +0000324302 00000 n +0000324460 00000 n +0000324619 00000 n +0000324777 00000 n +0000324935 00000 n +0000325093 00000 n +0000325252 00000 n +0000325411 00000 n +0000325570 00000 n +0000325734 00000 n +0000325898 00000 n +0000326061 00000 n +0000326225 00000 n +0000326392 00000 n +0000326559 00000 n +0000326727 00000 n +0000326895 00000 n +0000327058 00000 n +0000327221 00000 n +0000327391 00000 n +0000327561 00000 n +0000327732 00000 n +0000327903 00000 n +0000328062 00000 n +0000328222 00000 n +0000328374 00000 n +0000328526 00000 n +0000328684 00000 n +0000328842 00000 n +0000329006 00000 n +0000329170 00000 n +0000329332 00000 n +0000329494 00000 n +0000329653 00000 n +0000329813 00000 n +0000329974 00000 n +0000330136 00000 n +0000330302 00000 n +0000741010 00000 n +0000741330 00000 n +0000741459 00000 n +0000741652 00000 n +0000742824 00000 n +0000743082 00000 n +0000745784 00000 n +0000745977 00000 n +0000747330 00000 n +0000750658 00000 n +0000750787 00000 n +0000757456 00000 n +0000757584 00000 n +0000760894 00000 n +0000761022 00000 n +0000761411 00000 n +0000766752 00000 n +0000774176 00000 n +0000772429 00000 n +0000826040 00000 n +0000829904 00000 n +0000830160 00000 n +0000834055 00000 n +0000834571 00000 n +0000835026 00000 n +0000835218 00000 n +0000839109 00000 n +0000839626 00000 n +0000839755 00000 n +0000845122 00000 n +0000845444 00000 n +0000849062 00000 n +0000849446 00000 n +0000849638 00000 n +0000852188 00000 n +0000852380 00000 n +0000852571 00000 n +0000852764 00000 n +0000853021 00000 n +0000853214 00000 n +0000853407 00000 n +0000856162 00000 n +0000856419 00000 n +0000856612 00000 n +0000856934 00000 n +0000860504 00000 n +0000860697 00000 n +0000401272 00000 n +0000385850 00000 n +0000330648 00000 n +0000401208 00000 n +0000386798 00000 n +0000386962 00000 n +0000387126 00000 n +0000387287 00000 n +0000387448 00000 n +0000387614 00000 n +0000387780 00000 n +0000387945 00000 n +0000388110 00000 n +0000388266 00000 n +0000388423 00000 n +0000388578 00000 n +0000388733 00000 n +0000388887 00000 n +0000389041 00000 n +0000389193 00000 n +0000389345 00000 n +0000389510 00000 n +0000389675 00000 n +0000389827 00000 n +0000389980 00000 n +0000390134 00000 n +0000390289 00000 n +0000390453 00000 n +0000390617 00000 n +0000390781 00000 n +0000390945 00000 n +0000391105 00000 n +0000391265 00000 n +0000391417 00000 n +0000391569 00000 n +0000391729 00000 n +0000391890 00000 n +0000392047 00000 n +0000392205 00000 n +0000392366 00000 n +0000392528 00000 n +0000392694 00000 n +0000392860 00000 n +0000393023 00000 n +0000393186 00000 n +0000393347 00000 n +0000393508 00000 n +0000393672 00000 n +0000393836 00000 n +0000393999 00000 n +0000394162 00000 n +0000394330 00000 n +0000394498 00000 n +0000394655 00000 n +0000394813 00000 n +0000394983 00000 n +0000395154 00000 n +0000395312 00000 n +0000395471 00000 n +0000395625 00000 n +0000395779 00000 n +0000395930 00000 n +0000396081 00000 n +0000396231 00000 n +0000396381 00000 n +0000396532 00000 n +0000396683 00000 n +0000396840 00000 n +0000396997 00000 n +0000397159 00000 n +0000397322 00000 n +0000397483 00000 n +0000397645 00000 n +0000397807 00000 n +0000397970 00000 n +0000398132 00000 n +0000398295 00000 n +0000398456 00000 n +0000398618 00000 n +0000398782 00000 n +0000398947 00000 n +0000399114 00000 n +0000399282 00000 n +0000399446 00000 n +0000399611 00000 n +0000399768 00000 n +0000399926 00000 n +0000400095 00000 n +0000400265 00000 n +0000400419 00000 n +0000400574 00000 n +0000400728 00000 n +0000400883 00000 n +0000401045 00000 n +0001177919 00000 n +0000862239 00000 n +0000871045 00000 n +0000871238 00000 n +0000871563 00000 n +0000876954 00000 n +0000877146 00000 n +0000875672 00000 n +0000881042 00000 n +0000881490 00000 n +0000884270 00000 n +0000884910 00000 n +0000888756 00000 n +0000889077 00000 n +0000893028 00000 n +0000893733 00000 n +0000897882 00000 n +0000898010 00000 n +0000898852 00000 n +0000899108 00000 n +0000899891 00000 n +0000904706 00000 n +0000908856 00000 n +0000910084 00000 n +0000919234 00000 n +0000919491 00000 n +0000930212 00000 n +0000937984 00000 n +0000938113 00000 n +0000938306 00000 n +0000940698 00000 n +0000941149 00000 n +0000941407 00000 n +0000944893 00000 n +0000945085 00000 n +0000945799 00000 n +0000946250 00000 n +0000948983 00000 n +0000949626 00000 n +0000950405 00000 n +0000954328 00000 n +0000957141 00000 n +0000957530 00000 n +0000961344 00000 n +0000961602 00000 n +0000963621 00000 n +0000432881 00000 n +0000426682 00000 n +0000401388 00000 n +0000432817 00000 n +0000427144 00000 n +0000427317 00000 n +0000427491 00000 n +0000427665 00000 n +0000427840 00000 n +0000428009 00000 n +0000428179 00000 n +0000428349 00000 n +0000428520 00000 n +0000428670 00000 n +0000428822 00000 n +0000428975 00000 n +0000429129 00000 n +0000429282 00000 n +0000429436 00000 n +0000429589 00000 n +0000429743 00000 n +0000429894 00000 n +0000430046 00000 n +0000430198 00000 n +0000430352 00000 n +0000430505 00000 n +0000430659 00000 n +0000430812 00000 n +0000430966 00000 n +0000431119 00000 n +0000431273 00000 n +0000431426 00000 n +0000431580 00000 n +0000431733 00000 n +0000431887 00000 n +0000432039 00000 n +0000432192 00000 n +0000432348 00000 n +0000432506 00000 n +0000432661 00000 n +0000966528 00000 n +0000966658 00000 n +0000967688 00000 n +0000972896 00000 n +0000978338 00000 n +0000978657 00000 n +0000978975 00000 n +0000982973 00000 n +0000983231 00000 n +0000987147 00000 n +0000992342 00000 n +0000992664 00000 n +0000992921 00000 n +0000995978 00000 n +0000996172 00000 n +0000996366 00000 n +0000996688 00000 n +0001000654 00000 n +0000435530 00000 n +0000434922 00000 n +0000432983 00000 n +0000435403 00000 n +0000435078 00000 n +0000435240 00000 n +0000774501 00000 n +0000440648 00000 n +0000438222 00000 n +0000435632 00000 n +0000438774 00000 n +0000438838 00000 n +0000438902 00000 n +0000438369 00000 n +0000438966 00000 n +0000439158 00000 n +0000439221 00000 n +0000439285 00000 n +0000439475 00000 n +0000439539 00000 n +0000439603 00000 n +0000439669 00000 n +0000439735 00000 n +0000439799 00000 n +0000439863 00000 n +0000439929 00000 n +0000439995 00000 n +0000440059 00000 n +0000440123 00000 n +0000440189 00000 n +0000440254 00000 n +0000440320 00000 n +0000440386 00000 n +0000440452 00000 n +0000440516 00000 n +0000440582 00000 n +0000446549 00000 n 0000442927 00000 n -0000440809 00000 n +0000440764 00000 n 0000443053 00000 n 0000443119 00000 n 0000443185 00000 n -0000443249 00000 n -0000443442 00000 n -0000443506 00000 n -0000443570 00000 n -0000443634 00000 n -0000443699 00000 n -0000443763 00000 n -0000443828 00000 n -0000443892 00000 n -0000443958 00000 n -0000444022 00000 n -0000444087 00000 n -0000444151 00000 n -0000444215 00000 n -0000444279 00000 n -0000444344 00000 n -0000444408 00000 n -0000444474 00000 n -0000444538 00000 n -0000444603 00000 n -0000444667 00000 n +0000443251 00000 n +0000443317 00000 n +0000443381 00000 n +0000443573 00000 n +0000443637 00000 n +0000443701 00000 n +0000443765 00000 n +0000443831 00000 n +0000443895 00000 n +0000443960 00000 n +0000444024 00000 n +0000444090 00000 n +0000444152 00000 n +0000444216 00000 n +0000444280 00000 n +0000444346 00000 n +0000444410 00000 n +0000444475 00000 n +0000444539 00000 n +0000444605 00000 n +0000444669 00000 n 0000444733 00000 n 0000444797 00000 n -0000444862 00000 n -0000444926 00000 n +0000444863 00000 n +0000444927 00000 n 0000444992 00000 n 0000445056 00000 n -0000445121 00000 n -0000445185 00000 n +0000445122 00000 n +0000445186 00000 n 0000445251 00000 n 0000445315 00000 n -0000445380 00000 n -0000445444 00000 n +0000445381 00000 n +0000445445 00000 n 0000445509 00000 n -0000445575 00000 n -0000445641 00000 n -0000445707 00000 n -0000445773 00000 n -0000445839 00000 n -0000445905 00000 n -0000445971 00000 n -0000446037 00000 n -0000446101 00000 n -0000446167 00000 n -0000446233 00000 n -0000446297 00000 n -0000448788 00000 n -0000447967 00000 n -0000446542 00000 n -0000448338 00000 n -0000448402 00000 n -0000448466 00000 n -0000448530 00000 n -0000448594 00000 n -0001081866 00000 n -0001069653 00000 n -0001081692 00000 n -0000448114 00000 n -0000448658 00000 n -0000448722 00000 n -0001007986 00000 n -0000454402 00000 n -0000451181 00000 n -0000448932 00000 n -0000452928 00000 n -0000452992 00000 n -0000453056 00000 n -0001068893 00000 n -0001058873 00000 n -0001068715 00000 n -0000453122 00000 n -0000451391 00000 n -0000451550 00000 n -0000453186 00000 n -0000453250 00000 n -0000453314 00000 n -0000453380 00000 n -0000453444 00000 n -0000453507 00000 n -0000453569 00000 n -0000451706 00000 n -0000453633 00000 n -0000451865 00000 n -0000453697 00000 n -0000452027 00000 n -0000453761 00000 n -0000452191 00000 n -0000453825 00000 n -0000452352 00000 n -0000453889 00000 n -0000452516 00000 n -0000453953 00000 n -0000454144 00000 n -0000454208 00000 n -0000454272 00000 n -0000454336 00000 n -0001179321 00000 n -0000458006 00000 n -0000456146 00000 n -0000454546 00000 n -0000456399 00000 n -0000456590 00000 n -0000456654 00000 n -0000456718 00000 n -0000456782 00000 n -0000456848 00000 n -0000456912 00000 n -0000456976 00000 n -0000457042 00000 n -0000457108 00000 n -0000457300 00000 n -0000457364 00000 n -0000457428 00000 n -0000457492 00000 n -0000457558 00000 n -0000457750 00000 n -0000457812 00000 n -0000457876 00000 n -0000457940 00000 n -0000463350 00000 n -0000460810 00000 n -0000458136 00000 n -0000461284 00000 n -0000461348 00000 n -0000461540 00000 n -0000461604 00000 n -0000460966 00000 n -0000461668 00000 n -0000461734 00000 n -0000461798 00000 n -0000461992 00000 n -0000462056 00000 n -0000462120 00000 n -0000462186 00000 n -0000462252 00000 n -0000462318 00000 n -0000462382 00000 n -0000462448 00000 n -0000462513 00000 n -0000462578 00000 n -0000462642 00000 n -0000462834 00000 n -0000462898 00000 n -0000461123 00000 n -0000462964 00000 n -0000463028 00000 n -0000463094 00000 n -0000463158 00000 n -0000463222 00000 n -0000463286 00000 n -0001008372 00000 n -0000469821 00000 n -0000466149 00000 n -0000463480 00000 n -0000467173 00000 n -0000466332 00000 n -0000466498 00000 n -0000467237 00000 n -0000467301 00000 n -0000467365 00000 n -0000467429 00000 n -0000467494 00000 n -0000467558 00000 n -0000467622 00000 n -0000467688 00000 n -0000467754 00000 n -0000467819 00000 n -0000467883 00000 n -0000467949 00000 n -0000468013 00000 n -0000468077 00000 n -0000468143 00000 n -0000468207 00000 n -0000468272 00000 n -0000468336 00000 n -0000468401 00000 n -0000468465 00000 n -0000468530 00000 n -0000468594 00000 n -0000466671 00000 n -0000468659 00000 n -0000468723 00000 n -0000468788 00000 n -0000468852 00000 n -0000468917 00000 n -0000468981 00000 n -0000469046 00000 n -0000469110 00000 n -0000466841 00000 n -0000469175 00000 n -0000469239 00000 n -0000469304 00000 n -0000469368 00000 n -0000469433 00000 n -0000469499 00000 n -0000469563 00000 n -0000467009 00000 n -0000469628 00000 n -0000469692 00000 n -0000469757 00000 n -0000476320 00000 n -0000472267 00000 n -0000469965 00000 n -0000473487 00000 n -0000472459 00000 n -0000473552 00000 n -0000473616 00000 n -0000472632 00000 n -0000473681 00000 n -0000473745 00000 n -0000472803 00000 n -0000473810 00000 n -0000473874 00000 n -0000472972 00000 n -0000473939 00000 n -0000474003 00000 n -0000474068 00000 n -0000474132 00000 n -0000474197 00000 n -0000474261 00000 n -0000473143 00000 n -0000474326 00000 n -0000474390 00000 n -0000474455 00000 n -0000474519 00000 n -0000474584 00000 n -0000474648 00000 n -0000474713 00000 n -0000474777 00000 n -0000473316 00000 n -0000474842 00000 n -0000474906 00000 n -0000474971 00000 n -0000475035 00000 n -0000475100 00000 n -0000475164 00000 n -0000475229 00000 n -0000475293 00000 n -0000475358 00000 n -0000475422 00000 n -0000475487 00000 n -0000475551 00000 n -0000475745 00000 n -0000475809 00000 n -0000476000 00000 n -0000476192 00000 n -0000476256 00000 n -0000480209 00000 n -0000478160 00000 n -0000476422 00000 n -0000478286 00000 n -0000478350 00000 n -0000478415 00000 n -0000478480 00000 n -0000478545 00000 n -0000478609 00000 n -0000478674 00000 n -0000478868 00000 n -0000479059 00000 n -0000479251 00000 n -0000479442 00000 n -0000479506 00000 n -0000479699 00000 n -0000479892 00000 n -0000480081 00000 n -0000480145 00000 n -0000485292 00000 n -0000482955 00000 n -0000480339 00000 n -0000483424 00000 n -0000483488 00000 n -0000483552 00000 n -0000483616 00000 n -0000483111 00000 n -0000483682 00000 n -0000483746 00000 n -0000483810 00000 n -0000483874 00000 n -0000484064 00000 n -0000484128 00000 n -0000484193 00000 n -0000484259 00000 n -0000484325 00000 n -0000484389 00000 n -0000484455 00000 n -0000484521 00000 n -0000484713 00000 n -0000484777 00000 n -0000483269 00000 n -0000484972 00000 n -0000485036 00000 n -0000485100 00000 n -0000485164 00000 n -0000485228 00000 n -0001179446 00000 n -0000491156 00000 n -0000488190 00000 n -0000485422 00000 n -0000489151 00000 n -0000489215 00000 n -0000489279 00000 n -0000489343 00000 n -0000489409 00000 n -0000489475 00000 n -0000489539 00000 n -0000489605 00000 n -0000489669 00000 n -0000489733 00000 n -0000489798 00000 n -0000489862 00000 n -0000489928 00000 n -0000489993 00000 n -0000490059 00000 n -0000490123 00000 n -0000490189 00000 n -0000488373 00000 n -0000490254 00000 n -0000490318 00000 n -0000490513 00000 n -0000488526 00000 n -0000488677 00000 n -0000488835 00000 n -0000490705 00000 n -0000490769 00000 n -0000490962 00000 n -0000491026 00000 n -0000488989 00000 n -0000491092 00000 n -0000496675 00000 n -0000493900 00000 n -0000491300 00000 n -0000494206 00000 n -0000494335 00000 n -0000494399 00000 n -0000494463 00000 n -0000494527 00000 n -0000494593 00000 n -0000494722 00000 n -0000494786 00000 n -0000494852 00000 n -0001058295 00000 n -0001048313 00000 n -0001058116 00000 n -0000494918 00000 n -0000494047 00000 n -0000494984 00000 n -0000495048 00000 n -0000495114 00000 n -0000495180 00000 n -0000495246 00000 n -0000495312 00000 n -0000495378 00000 n -0000495442 00000 n -0000495508 00000 n -0000495572 00000 n -0000495637 00000 n -0000495703 00000 n -0000495768 00000 n -0000495897 00000 n -0000495961 00000 n -0000496025 00000 n -0000496091 00000 n -0000496157 00000 n -0000496223 00000 n -0000496287 00000 n -0000496352 00000 n -0000496418 00000 n -0000496483 00000 n -0000496547 00000 n -0000496611 00000 n -0000501699 00000 n -0000498872 00000 n -0000496847 00000 n -0000499178 00000 n -0000499371 00000 n -0000499500 00000 n -0000499564 00000 n -0000499630 00000 n -0000499696 00000 n -0000499019 00000 n -0000499762 00000 n -0000499826 00000 n -0000499890 00000 n -0000499955 00000 n -0000500019 00000 n -0000500083 00000 n -0000500148 00000 n -0000500212 00000 n -0000500277 00000 n -0000500342 00000 n -0000500471 00000 n -0000500535 00000 n -0000500601 00000 n -0000500667 00000 n -0000500731 00000 n -0000500795 00000 n -0000500859 00000 n -0000500923 00000 n -0000500989 00000 n -0000501053 00000 n -0000501119 00000 n -0000501185 00000 n -0000501380 00000 n -0000501508 00000 n -0000501571 00000 n -0000501633 00000 n -0000505691 00000 n -0000503824 00000 n -0000501843 00000 n -0000503950 00000 n -0000504014 00000 n -0000504078 00000 n -0000504144 00000 n -0000504210 00000 n -0000504339 00000 n -0000504403 00000 n -0000504467 00000 n -0000504531 00000 n -0000504595 00000 n -0000504659 00000 n -0000504725 00000 n -0000504854 00000 n -0000504918 00000 n -0000504984 00000 n -0000505048 00000 n -0000505239 00000 n -0000505303 00000 n -0000505369 00000 n -0000505433 00000 n -0000505497 00000 n -0000505561 00000 n -0000511945 00000 n -0000508874 00000 n -0000505835 00000 n -0000509546 00000 n -0000509610 00000 n -0000509739 00000 n -0000509802 00000 n -0000509039 00000 n -0000509867 00000 n -0000510061 00000 n -0000509211 00000 n -0000509378 00000 n -0000510125 00000 n -0000510253 00000 n -0000510317 00000 n -0000510381 00000 n -0000510445 00000 n -0000510511 00000 n -0000510577 00000 n -0000510641 00000 n -0000510707 00000 n -0000510772 00000 n -0000510836 00000 n -0000510900 00000 n -0000510966 00000 n -0000511031 00000 n -0000511095 00000 n -0000511159 00000 n -0000511225 00000 n -0000511290 00000 n -0000511355 00000 n -0000511421 00000 n -0000511487 00000 n -0000511553 00000 n -0000511619 00000 n -0000511685 00000 n -0000511749 00000 n -0000511815 00000 n -0000511881 00000 n -0000518015 00000 n -0000515224 00000 n -0000512103 00000 n -0000515350 00000 n -0000515414 00000 n -0000515543 00000 n -0000515607 00000 n -0000515671 00000 n -0000515735 00000 n -0000515801 00000 n -0000515867 00000 n -0000515931 00000 n -0000515995 00000 n -0000516059 00000 n -0000516125 00000 n -0000516191 00000 n -0000516256 00000 n -0000516322 00000 n -0000516388 00000 n -0000516452 00000 n -0000516516 00000 n -0000516581 00000 n -0000516647 00000 n -0000516713 00000 n -0000516779 00000 n -0000516845 00000 n -0000516911 00000 n -0000516975 00000 n -0000517039 00000 n -0000517103 00000 n -0000517168 00000 n -0000517232 00000 n -0000517298 00000 n -0000517362 00000 n -0000517428 00000 n -0000517494 00000 n -0000517560 00000 n -0000517623 00000 n -0000517689 00000 n -0000517755 00000 n -0000517819 00000 n -0000517885 00000 n -0000517949 00000 n -0001179571 00000 n -0000523761 00000 n -0000520935 00000 n -0000518173 00000 n -0000521424 00000 n -0000521617 00000 n -0000521681 00000 n -0000521747 00000 n -0000521813 00000 n -0000521879 00000 n -0000521945 00000 n -0000522011 00000 n -0000522076 00000 n -0000522141 00000 n -0000522207 00000 n -0000522270 00000 n -0000522336 00000 n -0000522402 00000 n -0000522468 00000 n -0000522532 00000 n -0000522598 00000 n -0000522662 00000 n -0000522726 00000 n -0000522790 00000 n -0000522854 00000 n -0000522918 00000 n -0000522982 00000 n -0000523048 00000 n -0000523114 00000 n -0000523178 00000 n -0000523242 00000 n -0000523308 00000 n -0000521091 00000 n -0000523503 00000 n -0000523567 00000 n -0000521261 00000 n -0000523633 00000 n -0000523697 00000 n -0000528988 00000 n -0000526194 00000 n -0000523905 00000 n -0000526667 00000 n -0000526731 00000 n -0000526795 00000 n -0000526350 00000 n -0000526861 00000 n -0000526927 00000 n -0000526993 00000 n -0000527058 00000 n -0000527124 00000 n -0000527188 00000 n -0000527254 00000 n -0000527319 00000 n -0000526508 00000 n -0000527512 00000 n -0000527705 00000 n -0000527769 00000 n -0000527833 00000 n -0000527897 00000 n -0001047634 00000 n -0001031922 00000 n -0001047459 00000 n -0000527963 00000 n -0000528026 00000 n -0000528092 00000 n -0000528156 00000 n -0000528218 00000 n -0000528282 00000 n -0000528346 00000 n -0000528540 00000 n -0000528602 00000 n -0000528666 00000 n -0000528730 00000 n -0000528794 00000 n -0000528858 00000 n -0000534247 00000 n -0000531804 00000 n -0000529146 00000 n -0000532105 00000 n -0000532234 00000 n -0000531951 00000 n -0000532298 00000 n -0000532362 00000 n -0000532426 00000 n -0000532490 00000 n -0000532554 00000 n -0000532619 00000 n -0000532683 00000 n -0000532878 00000 n -0000532942 00000 n -0000533007 00000 n -0000533073 00000 n -0000533139 00000 n -0000533205 00000 n -0000533271 00000 n -0000533334 00000 n -0000533400 00000 n -0000533466 00000 n -0000533530 00000 n -0000533594 00000 n -0000533787 00000 n -0000533851 00000 n -0000533917 00000 n -0000533983 00000 n -0000534049 00000 n -0000534115 00000 n -0000534181 00000 n -0000538480 00000 n -0000536671 00000 n -0000534377 00000 n -0000536797 00000 n -0000536861 00000 n -0000536925 00000 n -0000536991 00000 n -0000537057 00000 n -0000537123 00000 n -0000537189 00000 n -0000537253 00000 n -0000537317 00000 n -0000537510 00000 n -0000537574 00000 n -0000537638 00000 n -0000537833 00000 n -0000537897 00000 n -0000538092 00000 n -0000538156 00000 n -0000538222 00000 n -0000538288 00000 n -0000538352 00000 n -0000542501 00000 n -0000540483 00000 n -0000538624 00000 n -0000540960 00000 n -0000541089 00000 n -0000540639 00000 n -0000540805 00000 n -0000541153 00000 n -0000541217 00000 n -0000541283 00000 n -0000541346 00000 n +0000445573 00000 n +0000445638 00000 n +0000445704 00000 n +0000445770 00000 n +0000445836 00000 n +0000445902 00000 n +0000445968 00000 n +0000446034 00000 n +0000446100 00000 n +0000446166 00000 n +0000446228 00000 n +0000446292 00000 n +0000446356 00000 n +0000446420 00000 n +0000448911 00000 n +0000448090 00000 n +0000446665 00000 n +0000448461 00000 n +0000448525 00000 n +0000448589 00000 n +0000448653 00000 n +0000448717 00000 n +0001080589 00000 n +0001068376 00000 n +0001080415 00000 n +0000448237 00000 n +0000448781 00000 n +0000448845 00000 n +0001006707 00000 n +0000454525 00000 n +0000451304 00000 n +0000449055 00000 n +0000453051 00000 n +0000453115 00000 n +0000453179 00000 n +0001067616 00000 n +0001057596 00000 n +0001067438 00000 n +0000453245 00000 n +0000451514 00000 n +0000451673 00000 n +0000453309 00000 n +0000453373 00000 n +0000453437 00000 n +0000453503 00000 n +0000453567 00000 n +0000453630 00000 n +0000453692 00000 n +0000451829 00000 n +0000453756 00000 n +0000451988 00000 n +0000453820 00000 n +0000452150 00000 n +0000453884 00000 n +0000452314 00000 n +0000453948 00000 n +0000452475 00000 n +0000454012 00000 n +0000452639 00000 n +0000454076 00000 n +0000454267 00000 n +0000454331 00000 n +0000454395 00000 n +0000454459 00000 n +0001178044 00000 n +0000458129 00000 n +0000456269 00000 n +0000454669 00000 n +0000456522 00000 n +0000456713 00000 n +0000456777 00000 n +0000456841 00000 n +0000456905 00000 n +0000456971 00000 n +0000457035 00000 n +0000457099 00000 n +0000457165 00000 n +0000457231 00000 n +0000457423 00000 n +0000457487 00000 n +0000457551 00000 n +0000457615 00000 n +0000457681 00000 n +0000457873 00000 n +0000457935 00000 n +0000457999 00000 n +0000458063 00000 n +0000463473 00000 n +0000460933 00000 n +0000458259 00000 n +0000461407 00000 n +0000461471 00000 n +0000461663 00000 n +0000461727 00000 n +0000461089 00000 n +0000461791 00000 n +0000461857 00000 n +0000461921 00000 n +0000462115 00000 n +0000462179 00000 n +0000462243 00000 n +0000462309 00000 n +0000462375 00000 n +0000462441 00000 n +0000462505 00000 n +0000462571 00000 n +0000462636 00000 n +0000462701 00000 n +0000462765 00000 n +0000462957 00000 n +0000463021 00000 n +0000461246 00000 n +0000463087 00000 n +0000463151 00000 n +0000463217 00000 n +0000463281 00000 n +0000463345 00000 n +0000463409 00000 n +0001007093 00000 n +0000469944 00000 n +0000466272 00000 n +0000463603 00000 n +0000467296 00000 n +0000466455 00000 n +0000466621 00000 n +0000467360 00000 n +0000467424 00000 n +0000467488 00000 n +0000467552 00000 n +0000467617 00000 n +0000467681 00000 n +0000467745 00000 n +0000467811 00000 n +0000467877 00000 n +0000467942 00000 n +0000468006 00000 n +0000468072 00000 n +0000468136 00000 n +0000468200 00000 n +0000468266 00000 n +0000468330 00000 n +0000468395 00000 n +0000468459 00000 n +0000468524 00000 n +0000468588 00000 n +0000468653 00000 n +0000468717 00000 n +0000466794 00000 n +0000468782 00000 n +0000468846 00000 n +0000468911 00000 n +0000468975 00000 n +0000469040 00000 n +0000469104 00000 n +0000469169 00000 n +0000469233 00000 n +0000466964 00000 n +0000469298 00000 n +0000469362 00000 n +0000469427 00000 n +0000469491 00000 n +0000469556 00000 n +0000469622 00000 n +0000469686 00000 n +0000467132 00000 n +0000469751 00000 n +0000469815 00000 n +0000469880 00000 n +0000476443 00000 n +0000472390 00000 n +0000470088 00000 n +0000473610 00000 n +0000472582 00000 n +0000473675 00000 n +0000473739 00000 n +0000472755 00000 n +0000473804 00000 n +0000473868 00000 n +0000472926 00000 n +0000473933 00000 n +0000473997 00000 n +0000473095 00000 n +0000474062 00000 n +0000474126 00000 n +0000474191 00000 n +0000474255 00000 n +0000474320 00000 n +0000474384 00000 n +0000473266 00000 n +0000474449 00000 n +0000474513 00000 n +0000474578 00000 n +0000474642 00000 n +0000474707 00000 n +0000474771 00000 n +0000474836 00000 n +0000474900 00000 n +0000473439 00000 n +0000474965 00000 n +0000475029 00000 n +0000475094 00000 n +0000475158 00000 n +0000475223 00000 n +0000475287 00000 n +0000475352 00000 n +0000475416 00000 n +0000475481 00000 n +0000475545 00000 n +0000475610 00000 n +0000475674 00000 n +0000475868 00000 n +0000475932 00000 n +0000476123 00000 n +0000476315 00000 n +0000476379 00000 n +0000480332 00000 n +0000478283 00000 n +0000476545 00000 n +0000478409 00000 n +0000478473 00000 n +0000478538 00000 n +0000478603 00000 n +0000478668 00000 n +0000478732 00000 n +0000478797 00000 n +0000478991 00000 n +0000479182 00000 n +0000479374 00000 n +0000479565 00000 n +0000479629 00000 n +0000479822 00000 n +0000480015 00000 n +0000480204 00000 n +0000480268 00000 n +0000485415 00000 n +0000483078 00000 n +0000480462 00000 n +0000483547 00000 n +0000483611 00000 n +0000483675 00000 n +0000483739 00000 n +0000483234 00000 n +0000483805 00000 n +0000483869 00000 n +0000483933 00000 n +0000483997 00000 n +0000484187 00000 n +0000484251 00000 n +0000484316 00000 n +0000484382 00000 n +0000484448 00000 n +0000484512 00000 n +0000484578 00000 n +0000484644 00000 n +0000484836 00000 n +0000484900 00000 n +0000483392 00000 n +0000485095 00000 n +0000485159 00000 n +0000485223 00000 n +0000485287 00000 n +0000485351 00000 n +0001178169 00000 n +0000491279 00000 n +0000488313 00000 n +0000485545 00000 n +0000489274 00000 n +0000489338 00000 n +0000489402 00000 n +0000489466 00000 n +0000489532 00000 n +0000489598 00000 n +0000489662 00000 n +0000489728 00000 n +0000489792 00000 n +0000489856 00000 n +0000489921 00000 n +0000489985 00000 n +0000490051 00000 n +0000490116 00000 n +0000490182 00000 n +0000490246 00000 n +0000490312 00000 n +0000488496 00000 n +0000490377 00000 n +0000490441 00000 n +0000490636 00000 n +0000488649 00000 n +0000488800 00000 n +0000488958 00000 n +0000490828 00000 n +0000490892 00000 n +0000491085 00000 n +0000491149 00000 n +0000489112 00000 n +0000491215 00000 n +0000496798 00000 n +0000494023 00000 n +0000491423 00000 n +0000494329 00000 n +0000494458 00000 n +0000494522 00000 n +0000494586 00000 n +0000494650 00000 n +0000494716 00000 n +0000494845 00000 n +0000494909 00000 n +0000494975 00000 n +0001057018 00000 n +0001047036 00000 n +0001056839 00000 n +0000495041 00000 n +0000494170 00000 n +0000495107 00000 n +0000495171 00000 n +0000495237 00000 n +0000495303 00000 n +0000495369 00000 n +0000495435 00000 n +0000495501 00000 n +0000495565 00000 n +0000495631 00000 n +0000495695 00000 n +0000495760 00000 n +0000495826 00000 n +0000495891 00000 n +0000496020 00000 n +0000496084 00000 n +0000496148 00000 n +0000496214 00000 n +0000496280 00000 n +0000496346 00000 n +0000496410 00000 n +0000496475 00000 n +0000496541 00000 n +0000496606 00000 n +0000496670 00000 n +0000496734 00000 n +0000501822 00000 n +0000498995 00000 n +0000496970 00000 n +0000499301 00000 n +0000499494 00000 n +0000499623 00000 n +0000499687 00000 n +0000499753 00000 n +0000499819 00000 n +0000499142 00000 n +0000499885 00000 n +0000499949 00000 n +0000500013 00000 n +0000500078 00000 n +0000500142 00000 n +0000500206 00000 n +0000500271 00000 n +0000500335 00000 n +0000500400 00000 n +0000500465 00000 n +0000500594 00000 n +0000500658 00000 n +0000500724 00000 n +0000500790 00000 n +0000500854 00000 n +0000500918 00000 n +0000500982 00000 n +0000501046 00000 n +0000501112 00000 n +0000501176 00000 n +0000501242 00000 n +0000501308 00000 n +0000501503 00000 n +0000501631 00000 n +0000501694 00000 n +0000501756 00000 n +0000505814 00000 n +0000503947 00000 n +0000501966 00000 n +0000504073 00000 n +0000504137 00000 n +0000504201 00000 n +0000504267 00000 n +0000504333 00000 n +0000504462 00000 n +0000504526 00000 n +0000504590 00000 n +0000504654 00000 n +0000504718 00000 n +0000504782 00000 n +0000504848 00000 n +0000504977 00000 n +0000505041 00000 n +0000505107 00000 n +0000505171 00000 n +0000505362 00000 n +0000505426 00000 n +0000505492 00000 n +0000505556 00000 n +0000505620 00000 n +0000505684 00000 n +0000512068 00000 n +0000508997 00000 n +0000505958 00000 n +0000509669 00000 n +0000509733 00000 n +0000509862 00000 n +0000509925 00000 n +0000509162 00000 n +0000509990 00000 n +0000510184 00000 n +0000509334 00000 n +0000509501 00000 n +0000510248 00000 n +0000510376 00000 n +0000510440 00000 n +0000510504 00000 n +0000510568 00000 n +0000510634 00000 n +0000510700 00000 n +0000510764 00000 n +0000510830 00000 n +0000510895 00000 n +0000510959 00000 n +0000511023 00000 n +0000511089 00000 n +0000511154 00000 n +0000511218 00000 n +0000511282 00000 n +0000511348 00000 n +0000511413 00000 n +0000511478 00000 n +0000511544 00000 n +0000511610 00000 n +0000511676 00000 n +0000511742 00000 n +0000511808 00000 n +0000511872 00000 n +0000511938 00000 n +0000512004 00000 n +0000518138 00000 n +0000515347 00000 n +0000512226 00000 n +0000515473 00000 n +0000515537 00000 n +0000515666 00000 n +0000515730 00000 n +0000515794 00000 n +0000515858 00000 n +0000515924 00000 n +0000515990 00000 n +0000516054 00000 n +0000516118 00000 n +0000516182 00000 n +0000516248 00000 n +0000516314 00000 n +0000516379 00000 n +0000516445 00000 n +0000516511 00000 n +0000516575 00000 n +0000516639 00000 n +0000516704 00000 n +0000516770 00000 n +0000516836 00000 n +0000516902 00000 n +0000516968 00000 n +0000517034 00000 n +0000517098 00000 n +0000517162 00000 n +0000517226 00000 n +0000517291 00000 n +0000517355 00000 n +0000517421 00000 n +0000517485 00000 n +0000517551 00000 n +0000517617 00000 n +0000517683 00000 n +0000517746 00000 n +0000517812 00000 n +0000517878 00000 n +0000517942 00000 n +0000518008 00000 n +0000518072 00000 n +0001178294 00000 n +0000523884 00000 n +0000521058 00000 n +0000518296 00000 n +0000521547 00000 n +0000521740 00000 n +0000521804 00000 n +0000521870 00000 n +0000521936 00000 n +0000522002 00000 n +0000522068 00000 n +0000522134 00000 n +0000522199 00000 n +0000522264 00000 n +0000522330 00000 n +0000522393 00000 n +0000522459 00000 n +0000522525 00000 n +0000522591 00000 n +0000522655 00000 n +0000522721 00000 n +0000522785 00000 n +0000522849 00000 n +0000522913 00000 n +0000522977 00000 n +0000523041 00000 n +0000523105 00000 n +0000523171 00000 n +0000523237 00000 n +0000523301 00000 n +0000523365 00000 n +0000523431 00000 n +0000521214 00000 n +0000523626 00000 n +0000523690 00000 n +0000521384 00000 n +0000523756 00000 n +0000523820 00000 n +0000529111 00000 n +0000526317 00000 n +0000524028 00000 n +0000526790 00000 n +0000526854 00000 n +0000526918 00000 n +0000526473 00000 n +0000526984 00000 n +0000527050 00000 n +0000527116 00000 n +0000527181 00000 n +0000527247 00000 n +0000527311 00000 n +0000527377 00000 n +0000527442 00000 n +0000526631 00000 n +0000527635 00000 n +0000527828 00000 n +0000527892 00000 n +0000527956 00000 n +0000528020 00000 n +0001046357 00000 n +0001030644 00000 n +0001046182 00000 n +0000528086 00000 n +0000528149 00000 n +0000528215 00000 n +0000528279 00000 n +0000528341 00000 n +0000528405 00000 n +0000528469 00000 n +0000528663 00000 n +0000528725 00000 n +0000528789 00000 n +0000528853 00000 n +0000528917 00000 n +0000528981 00000 n +0000534370 00000 n +0000531927 00000 n +0000529269 00000 n +0000532228 00000 n +0000532357 00000 n +0000532074 00000 n +0000532421 00000 n +0000532485 00000 n +0000532549 00000 n +0000532613 00000 n +0000532677 00000 n +0000532742 00000 n +0000532806 00000 n +0000533001 00000 n +0000533065 00000 n +0000533130 00000 n +0000533196 00000 n +0000533262 00000 n +0000533328 00000 n +0000533394 00000 n +0000533457 00000 n +0000533523 00000 n +0000533589 00000 n +0000533653 00000 n +0000533717 00000 n +0000533910 00000 n +0000533974 00000 n +0000534040 00000 n +0000534106 00000 n +0000534172 00000 n +0000534238 00000 n +0000534304 00000 n +0000538607 00000 n +0000536798 00000 n +0000534500 00000 n +0000536924 00000 n +0000536988 00000 n +0000537052 00000 n +0000537118 00000 n +0000537184 00000 n +0000537250 00000 n +0000537316 00000 n +0000537380 00000 n +0000537444 00000 n +0000537637 00000 n +0000537701 00000 n +0000537765 00000 n +0000537960 00000 n +0000538024 00000 n +0000538219 00000 n +0000538283 00000 n +0000538349 00000 n +0000538415 00000 n +0000538479 00000 n +0000542628 00000 n +0000540610 00000 n +0000538751 00000 n +0000541087 00000 n +0000541216 00000 n +0000540766 00000 n +0000540932 00000 n +0000541280 00000 n +0000541344 00000 n 0000541410 00000 n -0000541474 00000 n -0000541538 00000 n -0000541602 00000 n -0000541666 00000 n -0000541730 00000 n -0000541794 00000 n -0000541858 00000 n -0000541922 00000 n -0000541987 00000 n -0000542051 00000 n -0000542115 00000 n -0000542180 00000 n -0000542373 00000 n -0001017951 00000 n -0000548937 00000 n -0000545533 00000 n -0000542645 00000 n -0000546348 00000 n -0000546412 00000 n -0000546541 00000 n -0000545707 00000 n -0000545880 00000 n -0000546605 00000 n +0000541473 00000 n +0000541537 00000 n +0000541601 00000 n +0000541665 00000 n +0000541729 00000 n +0000541793 00000 n +0000541857 00000 n +0000541921 00000 n +0000541985 00000 n +0000542049 00000 n +0000542114 00000 n +0000542178 00000 n +0000542242 00000 n +0000542307 00000 n +0000542500 00000 n +0001016672 00000 n +0000549064 00000 n +0000545660 00000 n +0000542772 00000 n +0000546475 00000 n +0000546539 00000 n 0000546668 00000 n -0000546731 00000 n -0000546797 00000 n -0000546861 00000 n -0000546926 00000 n -0000546992 00000 n -0000547187 00000 n -0000547380 00000 n -0000547573 00000 n -0000547637 00000 n -0000547703 00000 n -0000546032 00000 n -0000547896 00000 n -0000547960 00000 n -0000548024 00000 n -0000548089 00000 n -0000548155 00000 n -0000548219 00000 n -0000548284 00000 n -0000546190 00000 n -0000548348 00000 n -0000548412 00000 n -0000548476 00000 n -0000548542 00000 n -0000548608 00000 n -0000548673 00000 n -0000548739 00000 n -0000548805 00000 n -0000548871 00000 n -0001179696 00000 n -0001009015 00000 n -0000552994 00000 n -0000551336 00000 n -0000549067 00000 n -0000551643 00000 n -0000551771 00000 n -0001029693 00000 n -0001027198 00000 n -0001029524 00000 n -0000551835 00000 n -0000551899 00000 n -0000551963 00000 n -0000552027 00000 n -0000552222 00000 n -0000552286 00000 n -0000552350 00000 n -0000552674 00000 n -0000551483 00000 n -0000552866 00000 n -0000552930 00000 n -0000556451 00000 n -0000554899 00000 n -0000553124 00000 n -0000555025 00000 n -0000555089 00000 n -0000555155 00000 n -0000555220 00000 n -0000555286 00000 n -0000555417 00000 n -0000555546 00000 n -0000555610 00000 n +0000545834 00000 n +0000546007 00000 n +0000546732 00000 n +0000546795 00000 n +0000546858 00000 n +0000546924 00000 n +0000546988 00000 n +0000547053 00000 n +0000547119 00000 n +0000547314 00000 n +0000547507 00000 n +0000547700 00000 n +0000547764 00000 n +0000547830 00000 n +0000546159 00000 n +0000548023 00000 n +0000548087 00000 n +0000548151 00000 n +0000548216 00000 n +0000548282 00000 n +0000548346 00000 n +0000548411 00000 n +0000546317 00000 n +0000548475 00000 n +0000548539 00000 n +0000548603 00000 n +0000548669 00000 n +0000548735 00000 n +0000548800 00000 n +0000548866 00000 n +0000548932 00000 n +0000548998 00000 n +0001178419 00000 n +0001007736 00000 n +0000553121 00000 n +0000551463 00000 n +0000549194 00000 n +0000551770 00000 n +0000551898 00000 n +0001028415 00000 n +0001025919 00000 n +0001028246 00000 n +0000551962 00000 n +0000552026 00000 n +0000552090 00000 n +0000552154 00000 n +0000552349 00000 n +0000552413 00000 n +0000552477 00000 n +0000552801 00000 n +0000551610 00000 n +0000552993 00000 n +0000553057 00000 n +0000556578 00000 n +0000555026 00000 n +0000553251 00000 n +0000555152 00000 n +0000555216 00000 n +0000555282 00000 n +0000555347 00000 n +0000555413 00000 n +0000555544 00000 n 0000555673 00000 n -0000555802 00000 n -0000555866 00000 n -0000555932 00000 n -0000555998 00000 n -0000556127 00000 n -0000556191 00000 n -0000556255 00000 n -0000556321 00000 n -0000556387 00000 n -0000560699 00000 n -0000558427 00000 n -0000556609 00000 n -0000558553 00000 n -0000558617 00000 n -0000558681 00000 n -0000558747 00000 n -0000558813 00000 n -0000558877 00000 n -0000558943 00000 n -0000559007 00000 n -0000559071 00000 n -0000559136 00000 n -0000559330 00000 n -0000559393 00000 n +0000555737 00000 n +0000555800 00000 n +0000555929 00000 n +0000555993 00000 n +0000556059 00000 n +0000556125 00000 n +0000556254 00000 n +0000556318 00000 n +0000556382 00000 n +0000556448 00000 n +0000556514 00000 n +0000560826 00000 n +0000558554 00000 n +0000556736 00000 n +0000558680 00000 n +0000558744 00000 n +0000558808 00000 n +0000558874 00000 n +0000558940 00000 n +0000559004 00000 n +0000559070 00000 n +0000559134 00000 n +0000559198 00000 n +0000559263 00000 n 0000559457 00000 n -0000559523 00000 n -0000559589 00000 n -0000559655 00000 n -0000559721 00000 n -0000559787 00000 n -0000559852 00000 n -0000559918 00000 n -0000559984 00000 n -0000560050 00000 n -0000560116 00000 n -0000560180 00000 n -0000560375 00000 n -0000560438 00000 n -0000560503 00000 n -0000560569 00000 n -0000565673 00000 n -0000563538 00000 n -0000560857 00000 n -0000563860 00000 n -0000563989 00000 n -0000564182 00000 n -0000564246 00000 n -0000564312 00000 n -0000564376 00000 n -0000564440 00000 n -0000564504 00000 n -0000564569 00000 n -0000564764 00000 n -0000564828 00000 n -0000564893 00000 n -0000563685 00000 n -0000564958 00000 n -0000565024 00000 n -0000565088 00000 n -0000565154 00000 n -0000565219 00000 n -0000565413 00000 n -0000565477 00000 n -0000565541 00000 n -0000565607 00000 n -0000570968 00000 n -0000568589 00000 n -0000565817 00000 n -0000569228 00000 n -0000569292 00000 n -0000569358 00000 n -0000569422 00000 n -0000569615 00000 n -0000569679 00000 n -0000569743 00000 n +0000559520 00000 n +0000559584 00000 n +0000559650 00000 n +0000559716 00000 n +0000559782 00000 n +0000559848 00000 n +0000559914 00000 n +0000559979 00000 n +0000560045 00000 n +0000560111 00000 n +0000560177 00000 n +0000560243 00000 n +0000560307 00000 n +0000560502 00000 n +0000560565 00000 n +0000560630 00000 n +0000560696 00000 n +0000565800 00000 n +0000563665 00000 n +0000560984 00000 n +0000563987 00000 n +0000564116 00000 n +0000564309 00000 n +0000564373 00000 n +0000564439 00000 n +0000564503 00000 n +0000564567 00000 n +0000564631 00000 n +0000564696 00000 n +0000564891 00000 n +0000564955 00000 n +0000565020 00000 n +0000563812 00000 n +0000565085 00000 n +0000565151 00000 n +0000565215 00000 n +0000565281 00000 n +0000565346 00000 n +0000565540 00000 n +0000565604 00000 n +0000565668 00000 n +0000565734 00000 n +0000571095 00000 n +0000568716 00000 n +0000565944 00000 n +0000569355 00000 n +0000569419 00000 n +0000569485 00000 n +0000569549 00000 n +0000569742 00000 n 0000569806 00000 n 0000569870 00000 n -0000570063 00000 n -0000570127 00000 n -0000570191 00000 n +0000569933 00000 n +0000569997 00000 n +0000570190 00000 n 0000570254 00000 n -0000570319 00000 n -0000570385 00000 n -0000570449 00000 n -0000568754 00000 n -0000570514 00000 n -0000570578 00000 n -0000568913 00000 n -0000569071 00000 n -0000570643 00000 n -0000570707 00000 n -0000570772 00000 n -0000570838 00000 n -0000570902 00000 n -0000576475 00000 n -0000573532 00000 n -0000571112 00000 n -0000574351 00000 n -0000574415 00000 n -0000574479 00000 n -0000574543 00000 n -0000574607 00000 n -0000574669 00000 n -0000574735 00000 n -0000574801 00000 n -0000574865 00000 n -0000574929 00000 n -0000574995 00000 n -0000575190 00000 n -0000575254 00000 n -0000575318 00000 n -0000573706 00000 n -0000575382 00000 n -0000575446 00000 n -0000575511 00000 n -0000575577 00000 n -0000573864 00000 n -0000575641 00000 n -0000575705 00000 n -0000575770 00000 n -0000574027 00000 n -0000575833 00000 n +0000570318 00000 n +0000570381 00000 n +0000570446 00000 n +0000570512 00000 n +0000570576 00000 n +0000568881 00000 n +0000570641 00000 n +0000570705 00000 n +0000569040 00000 n +0000569198 00000 n +0000570770 00000 n +0000570834 00000 n +0000570899 00000 n +0000570965 00000 n +0000571029 00000 n +0000576602 00000 n +0000573659 00000 n +0000571239 00000 n +0000574478 00000 n +0000574542 00000 n +0000574606 00000 n +0000574670 00000 n +0000574734 00000 n +0000574796 00000 n +0000574862 00000 n +0000574928 00000 n +0000574992 00000 n +0000575056 00000 n +0000575122 00000 n +0000575317 00000 n +0000575381 00000 n +0000575445 00000 n +0000573833 00000 n +0000575509 00000 n +0000575573 00000 n +0000575638 00000 n +0000575704 00000 n +0000573991 00000 n +0000575768 00000 n +0000575832 00000 n 0000575897 00000 n -0000575962 00000 n -0000576155 00000 n -0000574188 00000 n -0000576219 00000 n -0000576411 00000 n -0001179821 00000 n -0000580935 00000 n -0000578657 00000 n -0000576591 00000 n -0000578783 00000 n -0000578847 00000 n -0000578911 00000 n -0000578975 00000 n -0000579041 00000 n -0000579107 00000 n -0000579173 00000 n -0000579239 00000 n -0000579303 00000 n -0000579367 00000 n -0000579433 00000 n -0000579499 00000 n -0000579694 00000 n -0000579758 00000 n -0000579823 00000 n -0000579887 00000 n -0000579953 00000 n -0000580017 00000 n -0000580083 00000 n -0000580149 00000 n -0000580213 00000 n -0000580279 00000 n -0000580343 00000 n -0000580409 00000 n -0000580475 00000 n -0000580541 00000 n -0000580607 00000 n -0000580673 00000 n -0000580739 00000 n -0000580803 00000 n -0000580869 00000 n -0000586201 00000 n -0000583462 00000 n -0000581093 00000 n -0000583937 00000 n -0000584001 00000 n -0000584192 00000 n -0000584255 00000 n +0000574154 00000 n +0000575960 00000 n +0000576024 00000 n +0000576089 00000 n +0000576282 00000 n +0000574315 00000 n +0000576346 00000 n +0000576538 00000 n +0001178544 00000 n +0000581062 00000 n +0000578784 00000 n +0000576718 00000 n +0000578910 00000 n +0000578974 00000 n +0000579038 00000 n +0000579102 00000 n +0000579168 00000 n +0000579234 00000 n +0000579300 00000 n +0000579366 00000 n +0000579430 00000 n +0000579494 00000 n +0000579560 00000 n +0000579626 00000 n +0000579821 00000 n +0000579885 00000 n +0000579950 00000 n +0000580014 00000 n +0000580080 00000 n +0000580144 00000 n +0000580210 00000 n +0000580276 00000 n +0000580340 00000 n +0000580406 00000 n +0000580470 00000 n +0000580536 00000 n +0000580602 00000 n +0000580668 00000 n +0000580734 00000 n +0000580800 00000 n +0000580866 00000 n +0000580930 00000 n +0000580996 00000 n +0000586328 00000 n +0000583589 00000 n +0000581220 00000 n +0000584064 00000 n +0000584128 00000 n 0000584319 00000 n -0000584385 00000 n -0000584449 00000 n -0000584513 00000 n -0000584579 00000 n -0000584645 00000 n -0000584709 00000 n -0000584775 00000 n -0000584841 00000 n -0000584905 00000 n -0000584969 00000 n -0000585035 00000 n -0000583618 00000 n -0000585230 00000 n -0000585294 00000 n -0000585358 00000 n -0000585422 00000 n -0000585487 00000 n -0000585552 00000 n -0000585618 00000 n -0000585682 00000 n -0000583777 00000 n -0000585746 00000 n -0000585810 00000 n -0000585875 00000 n -0000585941 00000 n -0000586005 00000 n -0000586071 00000 n -0000586137 00000 n -0000590082 00000 n -0000588376 00000 n -0000586373 00000 n -0000588849 00000 n -0000588913 00000 n -0000588979 00000 n -0000589045 00000 n -0000589109 00000 n -0000589175 00000 n -0000589239 00000 n -0000589304 00000 n -0000589369 00000 n -0000589433 00000 n -0000588532 00000 n -0000589498 00000 n -0000589691 00000 n -0000589755 00000 n -0000588691 00000 n -0000589819 00000 n -0000589884 00000 n -0000589950 00000 n -0000590016 00000 n -0000595031 00000 n -0000592197 00000 n -0000590212 00000 n -0000592323 00000 n -0000592643 00000 n -0000592835 00000 n -0000592899 00000 n -0000592963 00000 n -0000593027 00000 n -0000593091 00000 n -0000593155 00000 n -0000593220 00000 n -0000593284 00000 n -0000593348 00000 n -0000593413 00000 n -0000593477 00000 n -0000593543 00000 n -0000593609 00000 n -0000593675 00000 n -0000593739 00000 n -0000593803 00000 n -0000593868 00000 n -0000593932 00000 n -0000593997 00000 n -0000594063 00000 n -0000594127 00000 n -0000594191 00000 n -0000594255 00000 n -0000594320 00000 n -0000594384 00000 n -0000594449 00000 n -0000594514 00000 n -0000594580 00000 n -0000594644 00000 n +0000584382 00000 n +0000584446 00000 n +0000584512 00000 n +0000584576 00000 n +0000584640 00000 n +0000584706 00000 n +0000584772 00000 n +0000584836 00000 n +0000584902 00000 n +0000584968 00000 n +0000585032 00000 n +0000585096 00000 n +0000585162 00000 n +0000583745 00000 n +0000585357 00000 n +0000585421 00000 n +0000585485 00000 n +0000585549 00000 n +0000585614 00000 n +0000585679 00000 n +0000585745 00000 n +0000585809 00000 n +0000583904 00000 n +0000585873 00000 n +0000585937 00000 n +0000586002 00000 n +0000586068 00000 n +0000586132 00000 n +0000586198 00000 n +0000586264 00000 n +0000590209 00000 n +0000588503 00000 n +0000586500 00000 n +0000588976 00000 n +0000589040 00000 n +0000589106 00000 n +0000589172 00000 n +0000589236 00000 n +0000589302 00000 n +0000589366 00000 n +0000589431 00000 n +0000589496 00000 n +0000589560 00000 n +0000588659 00000 n +0000589625 00000 n +0000589818 00000 n +0000589882 00000 n +0000588818 00000 n +0000589946 00000 n +0000590011 00000 n +0000590077 00000 n +0000590143 00000 n +0000595158 00000 n +0000592324 00000 n +0000590339 00000 n +0000592450 00000 n +0000592770 00000 n +0000592962 00000 n +0000593026 00000 n +0000593090 00000 n +0000593154 00000 n +0000593218 00000 n +0000593282 00000 n +0000593347 00000 n +0000593411 00000 n +0000593475 00000 n +0000593540 00000 n +0000593604 00000 n +0000593670 00000 n +0000593736 00000 n +0000593802 00000 n +0000593866 00000 n +0000593930 00000 n +0000593995 00000 n +0000594059 00000 n +0000594124 00000 n +0000594190 00000 n +0000594254 00000 n +0000594318 00000 n +0000594382 00000 n +0000594447 00000 n +0000594511 00000 n +0000594576 00000 n +0000594641 00000 n 0000594707 00000 n -0000594772 00000 n -0000594838 00000 n -0000594902 00000 n -0000594966 00000 n -0000600311 00000 n -0000597661 00000 n -0000595161 00000 n -0000597787 00000 n -0000597851 00000 n -0000597917 00000 n -0000597983 00000 n -0000598048 00000 n -0000598112 00000 n -0000598176 00000 n -0000598241 00000 n -0000598305 00000 n -0000598370 00000 n -0000598435 00000 n -0000598500 00000 n -0000598564 00000 n -0000598627 00000 n -0000598692 00000 n -0000598756 00000 n -0000598820 00000 n -0000598885 00000 n -0000598951 00000 n -0000599015 00000 n -0000599079 00000 n -0000599145 00000 n -0000599209 00000 n -0000599273 00000 n -0000599338 00000 n -0000599402 00000 n -0000599466 00000 n -0000599532 00000 n -0000599598 00000 n -0000599662 00000 n -0000599726 00000 n -0000599791 00000 n -0000599857 00000 n -0000599922 00000 n -0000599988 00000 n -0000600052 00000 n -0000600116 00000 n -0000600181 00000 n -0000600246 00000 n -0000604666 00000 n -0000602740 00000 n -0000600455 00000 n -0000602866 00000 n -0000602930 00000 n -0000602994 00000 n -0000603058 00000 n -0000603252 00000 n -0000603316 00000 n -0000603380 00000 n -0000603444 00000 n -0000603508 00000 n -0000603572 00000 n -0000603764 00000 n -0000603828 00000 n -0000603892 00000 n -0000603956 00000 n -0000604019 00000 n -0000604084 00000 n -0000604150 00000 n -0000604214 00000 n -0000604278 00000 n -0000604343 00000 n -0000604538 00000 n -0001179946 00000 n -0000608596 00000 n -0000606934 00000 n -0000604782 00000 n -0000607060 00000 n -0000607189 00000 n -0000607253 00000 n -0000607317 00000 n -0000607381 00000 n -0000607445 00000 n -0000607510 00000 n -0000607574 00000 n -0000607636 00000 n -0000607699 00000 n -0000607763 00000 n -0000607827 00000 n -0000608021 00000 n -0000608085 00000 n -0000608149 00000 n -0000608213 00000 n -0000608277 00000 n -0000608342 00000 n -0000608406 00000 n -0000608470 00000 n -0000613701 00000 n -0000611259 00000 n -0000608712 00000 n -0000611897 00000 n -0000612025 00000 n -0000612089 00000 n -0000612283 00000 n -0000612347 00000 n -0000612542 00000 n -0000611424 00000 n -0000612606 00000 n -0000612670 00000 n -0000612734 00000 n -0000612798 00000 n +0000594771 00000 n +0000594834 00000 n +0000594899 00000 n +0000594965 00000 n +0000595029 00000 n +0000595093 00000 n +0000600707 00000 n +0000598059 00000 n +0000595288 00000 n +0000598185 00000 n +0000598249 00000 n +0000598315 00000 n +0000598381 00000 n +0000598446 00000 n +0000598510 00000 n +0000598574 00000 n +0000598639 00000 n +0000598703 00000 n +0000598768 00000 n +0000598833 00000 n +0000598898 00000 n +0000598962 00000 n +0000599025 00000 n +0000599090 00000 n +0000599156 00000 n +0000599220 00000 n +0000599284 00000 n +0000599350 00000 n +0000599414 00000 n +0000599478 00000 n +0000599542 00000 n +0000599606 00000 n +0000599670 00000 n +0000599736 00000 n +0000599802 00000 n +0000599866 00000 n +0000599930 00000 n +0000599995 00000 n +0000600061 00000 n +0000600126 00000 n +0000600192 00000 n +0000600255 00000 n +0000600319 00000 n +0000600384 00000 n +0000600450 00000 n +0000600515 00000 n +0000600579 00000 n +0000600643 00000 n +0000604965 00000 n +0000603038 00000 n +0000600851 00000 n +0000603164 00000 n +0000603357 00000 n +0000603549 00000 n +0000603613 00000 n +0000603677 00000 n +0000603741 00000 n +0000603805 00000 n +0000603870 00000 n +0000603936 00000 n +0000604000 00000 n +0000604064 00000 n +0000604129 00000 n +0000604324 00000 n +0000604517 00000 n +0000604581 00000 n +0000604645 00000 n +0000604709 00000 n +0000604773 00000 n +0000604838 00000 n +0000604902 00000 n +0001178669 00000 n +0000608870 00000 n +0000607202 00000 n +0000605081 00000 n +0000607328 00000 n +0000607392 00000 n +0000607456 00000 n +0000607520 00000 n +0000607584 00000 n +0000607778 00000 n +0000607842 00000 n +0000607905 00000 n +0000607967 00000 n +0000608031 00000 n +0000608096 00000 n +0000608160 00000 n +0000608224 00000 n +0000608417 00000 n +0000608481 00000 n +0000608676 00000 n +0000608740 00000 n +0000613893 00000 n +0000611777 00000 n +0000609000 00000 n +0000612414 00000 n +0000612478 00000 n +0000612607 00000 n +0000611942 00000 n +0000612671 00000 n +0000612735 00000 n +0000612799 00000 n 0000612863 00000 n -0000612927 00000 n -0000612991 00000 n +0000612928 00000 n +0000612992 00000 n 0000613056 00000 n -0000613122 00000 n -0000613186 00000 n -0000613250 00000 n -0000611577 00000 n +0000613121 00000 n +0000613187 00000 n +0000613251 00000 n 0000613315 00000 n +0000612095 00000 n 0000613379 00000 n 0000613443 00000 n -0000611736 00000 n -0000613637 00000 n -0000619203 00000 n -0000616825 00000 n -0000613817 00000 n -0000617132 00000 n -0000617196 00000 n -0000617260 00000 n -0000617324 00000 n -0000617390 00000 n -0000616972 00000 n -0000617456 00000 n -0000617522 00000 n -0000617586 00000 n -0000617650 00000 n -0000617714 00000 n -0000617778 00000 n -0000617842 00000 n -0000617907 00000 n -0000617973 00000 n -0000618039 00000 n -0000618103 00000 n -0000618167 00000 n -0000618232 00000 n -0000618296 00000 n -0000618362 00000 n -0000618428 00000 n -0000618492 00000 n -0000618556 00000 n -0000618620 00000 n -0000618684 00000 n -0000618750 00000 n -0000618815 00000 n -0000618880 00000 n -0000618944 00000 n -0000619008 00000 n -0000619073 00000 n -0000619137 00000 n -0001009468 00000 n -0000624030 00000 n -0000621280 00000 n -0000619347 00000 n -0000621581 00000 n -0000621645 00000 n -0000621709 00000 n -0000621773 00000 n -0000621838 00000 n -0000621902 00000 n -0000621968 00000 n -0000622032 00000 n -0000622096 00000 n -0000622161 00000 n -0000622225 00000 n -0000622291 00000 n -0000622355 00000 n -0000622419 00000 n -0000622484 00000 n -0000622548 00000 n -0000622743 00000 n -0000622807 00000 n -0000622871 00000 n -0000621427 00000 n -0000622935 00000 n -0000622999 00000 n -0000623063 00000 n -0000623126 00000 n -0000623190 00000 n -0000623255 00000 n -0000623321 00000 n -0000623387 00000 n -0000623453 00000 n -0000623517 00000 n -0000623581 00000 n -0000623646 00000 n -0000623709 00000 n -0000623773 00000 n -0000623838 00000 n -0000623902 00000 n -0000623965 00000 n -0000628312 00000 n -0000626388 00000 n -0000624160 00000 n -0000626514 00000 n -0000626642 00000 n -0000626706 00000 n -0000626899 00000 n -0000626963 00000 n -0000627027 00000 n -0000627091 00000 n -0000627155 00000 n -0000627220 00000 n -0000627286 00000 n -0000627350 00000 n -0000627413 00000 n -0000627478 00000 n -0000627542 00000 n -0000627606 00000 n -0000627671 00000 n -0000627735 00000 n -0000627799 00000 n -0000627863 00000 n -0000627927 00000 n -0000627991 00000 n -0000628184 00000 n -0000632117 00000 n -0000630706 00000 n -0000628428 00000 n -0000630832 00000 n -0000630961 00000 n -0000631090 00000 n -0000631154 00000 n -0000631218 00000 n -0000631283 00000 n -0000631347 00000 n -0000631540 00000 n -0000631862 00000 n -0000631926 00000 n -0000631989 00000 n -0001180071 00000 n -0000637166 00000 n -0000634796 00000 n -0000632233 00000 n -0000635101 00000 n -0000635358 00000 n -0000635422 00000 n -0000635487 00000 n -0000635552 00000 n -0000635616 00000 n -0000635682 00000 n -0000635875 00000 n -0000636003 00000 n -0000636067 00000 n -0000636133 00000 n -0000636199 00000 n -0000634943 00000 n -0000636263 00000 n -0000636392 00000 n -0000636456 00000 n -0000636521 00000 n -0000636585 00000 n -0000636649 00000 n -0000636714 00000 n -0000636778 00000 n -0000636843 00000 n -0000636906 00000 n -0000636970 00000 n -0000637036 00000 n -0000643912 00000 n -0000640619 00000 n -0000637296 00000 n -0000640745 00000 n -0000640874 00000 n -0000640938 00000 n -0000641002 00000 n -0000641066 00000 n -0000641131 00000 n -0000641196 00000 n -0000641262 00000 n -0000641326 00000 n -0000641391 00000 n -0000641456 00000 n -0000641520 00000 n -0000641585 00000 n -0000641650 00000 n -0000641714 00000 n -0000641779 00000 n -0000641844 00000 n -0000641908 00000 n -0000641973 00000 n -0000642038 00000 n -0000642102 00000 n -0000642167 00000 n -0000642231 00000 n -0000642295 00000 n -0000642361 00000 n -0000642426 00000 n -0000642492 00000 n -0000642557 00000 n -0000642622 00000 n -0000642687 00000 n -0000642751 00000 n -0000642816 00000 n -0000642881 00000 n -0000642945 00000 n -0000643009 00000 n -0000643073 00000 n -0000643137 00000 n -0000643202 00000 n -0000643267 00000 n -0000643330 00000 n -0000643395 00000 n -0000643460 00000 n -0000643524 00000 n -0000643589 00000 n -0000643654 00000 n -0000643718 00000 n -0000643783 00000 n -0000643848 00000 n -0000648830 00000 n -0000646715 00000 n -0000644042 00000 n -0000647020 00000 n -0000647084 00000 n -0000647148 00000 n -0000647213 00000 n -0000647278 00000 n -0000647344 00000 n -0000647408 00000 n -0000647473 00000 n -0000647538 00000 n +0000613507 00000 n +0000612253 00000 n +0000613701 00000 n +0000613765 00000 n +0000613829 00000 n +0000619316 00000 n +0000616487 00000 n +0000613995 00000 n +0000616795 00000 n +0000616859 00000 n +0000616925 00000 n +0000616634 00000 n +0000616991 00000 n +0000617057 00000 n +0000617121 00000 n +0000617185 00000 n +0000617249 00000 n +0000617314 00000 n +0000617380 00000 n +0000617446 00000 n +0000617512 00000 n +0000617576 00000 n +0000617640 00000 n +0000617705 00000 n +0000617769 00000 n +0000617835 00000 n +0000617901 00000 n +0000617964 00000 n +0000618028 00000 n +0000618092 00000 n +0000618156 00000 n +0000618222 00000 n +0000618287 00000 n +0000618353 00000 n +0000618416 00000 n +0000618480 00000 n +0000618545 00000 n +0000618609 00000 n +0000618674 00000 n +0000618738 00000 n +0000618802 00000 n +0000618867 00000 n +0000618931 00000 n +0000618996 00000 n +0000619060 00000 n +0000619124 00000 n +0000619189 00000 n +0000619253 00000 n +0001008189 00000 n +0000623807 00000 n +0000621318 00000 n +0000619460 00000 n +0000621619 00000 n +0000621683 00000 n +0000621747 00000 n +0000621811 00000 n +0000621876 00000 n +0000621940 00000 n +0000622135 00000 n +0000622199 00000 n +0000622263 00000 n +0000621465 00000 n +0000622327 00000 n +0000622391 00000 n +0000622455 00000 n +0000622518 00000 n +0000622582 00000 n +0000622647 00000 n +0000622713 00000 n +0000622779 00000 n +0000622845 00000 n +0000622909 00000 n +0000622973 00000 n +0000623038 00000 n +0000623101 00000 n +0000623165 00000 n +0000623230 00000 n +0000623294 00000 n +0000623357 00000 n +0000623422 00000 n +0000623486 00000 n +0000623679 00000 n +0000623743 00000 n +0000628289 00000 n +0000626491 00000 n +0000623937 00000 n +0000626617 00000 n +0000626681 00000 n +0000626745 00000 n +0000626809 00000 n +0000626874 00000 n +0000626940 00000 n +0000627004 00000 n +0000627068 00000 n +0000627133 00000 n +0000627197 00000 n +0000627261 00000 n +0000627326 00000 n +0000627390 00000 n +0000627454 00000 n +0000627519 00000 n +0000627583 00000 n +0000627647 00000 n +0000627840 00000 n +0000628032 00000 n +0000628225 00000 n +0000632428 00000 n +0000630691 00000 n +0000628405 00000 n +0000630817 00000 n +0000630881 00000 n +0000630945 00000 n +0000631009 00000 n +0000631074 00000 n +0000631138 00000 n +0000631331 00000 n +0000631653 00000 n +0000631717 00000 n +0000631781 00000 n +0000632102 00000 n +0000632166 00000 n +0000632232 00000 n +0000632298 00000 n +0000632362 00000 n +0001178794 00000 n +0000637913 00000 n +0000635216 00000 n +0000632544 00000 n +0000635521 00000 n +0000635714 00000 n +0000635843 00000 n +0000635907 00000 n +0000635973 00000 n +0000636039 00000 n +0000635363 00000 n +0000636103 00000 n +0000636232 00000 n +0000636296 00000 n +0000636362 00000 n +0000636426 00000 n +0000636490 00000 n +0000636555 00000 n +0000636619 00000 n +0000636684 00000 n +0000636748 00000 n +0000636812 00000 n +0000636878 00000 n +0000637073 00000 n +0000637137 00000 n +0000637201 00000 n +0000637265 00000 n +0000637330 00000 n +0000637395 00000 n +0000637461 00000 n +0000637525 00000 n +0000637590 00000 n +0000637655 00000 n +0000637719 00000 n +0000637784 00000 n +0000637849 00000 n +0000644258 00000 n +0000641289 00000 n +0000638043 00000 n +0000641415 00000 n +0000641479 00000 n +0000641544 00000 n +0000641609 00000 n +0000641673 00000 n +0000641738 00000 n +0000641803 00000 n +0000641867 00000 n +0000641931 00000 n +0000641995 00000 n +0000642059 00000 n +0000642125 00000 n +0000642190 00000 n +0000642256 00000 n +0000642321 00000 n +0000642386 00000 n +0000642451 00000 n +0000642515 00000 n +0000642580 00000 n +0000642645 00000 n +0000642709 00000 n +0000642773 00000 n +0000642837 00000 n +0000642901 00000 n +0000642966 00000 n +0000643031 00000 n +0000643094 00000 n +0000643158 00000 n +0000643222 00000 n +0000643286 00000 n +0000643351 00000 n +0000643416 00000 n +0000643480 00000 n +0000643545 00000 n +0000643610 00000 n +0000643674 00000 n +0000643739 00000 n +0000643804 00000 n +0000643870 00000 n +0000643934 00000 n +0000643999 00000 n +0000644064 00000 n +0000644129 00000 n +0000648763 00000 n +0000646911 00000 n +0000644402 00000 n +0000647216 00000 n +0000647345 00000 n +0000647409 00000 n +0000647058 00000 n 0000647603 00000 n -0000647798 00000 n -0000647862 00000 n -0000646862 00000 n +0000647667 00000 n +0000647733 00000 n +0000647797 00000 n +0000647861 00000 n +0000647927 00000 n +0000647991 00000 n 0000648055 00000 n 0000648119 00000 n -0000648185 00000 n -0000648249 00000 n 0000648313 00000 n -0000648379 00000 n -0000648443 00000 n -0000648507 00000 n -0000648571 00000 n -0000648766 00000 n -0000653814 00000 n -0000650963 00000 n -0000648988 00000 n -0000651436 00000 n -0000651500 00000 n -0000651564 00000 n -0000651628 00000 n -0000651692 00000 n -0000651885 00000 n -0000651119 00000 n -0000651276 00000 n -0000651949 00000 n -0000652015 00000 n -0000652079 00000 n -0000652145 00000 n -0000652209 00000 n -0000652273 00000 n -0000652337 00000 n -0000652401 00000 n -0000652466 00000 n -0000652530 00000 n -0000652593 00000 n -0000652656 00000 n -0000652720 00000 n -0000652784 00000 n -0000652849 00000 n -0000652913 00000 n -0000652977 00000 n -0000653042 00000 n -0000653106 00000 n -0000653170 00000 n -0000653235 00000 n -0000653299 00000 n -0000653363 00000 n -0000653428 00000 n -0000653492 00000 n -0000653556 00000 n -0000653621 00000 n -0000653685 00000 n -0000653749 00000 n -0001018272 00000 n -0000659124 00000 n -0000656085 00000 n -0000653916 00000 n -0000657066 00000 n -0000657130 00000 n -0000657194 00000 n -0000657258 00000 n -0000657323 00000 n -0000657385 00000 n -0000657450 00000 n -0000656268 00000 n -0000657641 00000 n -0000657704 00000 n -0000657768 00000 n -0000657832 00000 n -0000657897 00000 n -0000657963 00000 n -0000658029 00000 n -0000658093 00000 n -0000658158 00000 n -0000658224 00000 n -0000658288 00000 n -0000658353 00000 n -0000658417 00000 n -0000656436 00000 n -0000658611 00000 n -0000658804 00000 n -0000658868 00000 n -0000656594 00000 n -0000658932 00000 n -0000656752 00000 n -0000658996 00000 n -0000656908 00000 n -0000665175 00000 n -0000662366 00000 n -0000659226 00000 n -0000662842 00000 n -0000662971 00000 n -0000663035 00000 n -0000663101 00000 n -0000663167 00000 n -0000662522 00000 n -0000663231 00000 n -0000663295 00000 n -0000662675 00000 n -0000663359 00000 n -0000663423 00000 n -0000663487 00000 n -0000663551 00000 n -0000663617 00000 n -0000663683 00000 n -0000663749 00000 n -0000663813 00000 n -0000663879 00000 n -0000663945 00000 n -0000664011 00000 n -0000664077 00000 n -0000664143 00000 n -0000664207 00000 n -0000664273 00000 n -0000664336 00000 n -0000664402 00000 n -0000664466 00000 n -0000664531 00000 n -0000664594 00000 n -0000664659 00000 n -0000664723 00000 n -0000664787 00000 n -0000664981 00000 n -0000665045 00000 n -0000665111 00000 n -0001180196 00000 n -0000668660 00000 n -0000667124 00000 n -0000665291 00000 n -0000667250 00000 n -0000667314 00000 n -0000667378 00000 n -0000667442 00000 n -0000667506 00000 n -0000667570 00000 n -0000667634 00000 n -0000667698 00000 n -0000667762 00000 n -0000667826 00000 n -0000667890 00000 n -0000667954 00000 n -0000668018 00000 n +0000648377 00000 n +0000648441 00000 n +0000648505 00000 n +0000648569 00000 n +0000648635 00000 n +0000653903 00000 n +0000650675 00000 n +0000648907 00000 n +0000651331 00000 n +0000651460 00000 n +0000650840 00000 n +0000651000 00000 n +0000651524 00000 n +0000651590 00000 n +0000651654 00000 n +0000651720 00000 n +0000651784 00000 n +0000651848 00000 n +0000651912 00000 n +0000651976 00000 n +0000652041 00000 n +0000652104 00000 n +0000652168 00000 n +0000652233 00000 n +0000652297 00000 n +0000652361 00000 n +0000652426 00000 n +0000652490 00000 n +0000652554 00000 n +0000652618 00000 n +0000652682 00000 n +0000652746 00000 n +0000652811 00000 n +0000652875 00000 n +0000652939 00000 n +0000653004 00000 n +0000653068 00000 n +0000653132 00000 n +0000653197 00000 n +0000653261 00000 n +0000653325 00000 n +0000653390 00000 n +0000653454 00000 n +0000653518 00000 n +0000653583 00000 n +0000653647 00000 n +0000653710 00000 n +0000653775 00000 n +0000651163 00000 n +0001016993 00000 n +0000659454 00000 n +0000656489 00000 n +0000654005 00000 n +0000657453 00000 n +0000657582 00000 n +0000657646 00000 n +0000657710 00000 n +0000657774 00000 n +0000657839 00000 n +0000657905 00000 n +0000657971 00000 n +0000658035 00000 n +0000658100 00000 n +0000658166 00000 n +0000658230 00000 n +0000658295 00000 n +0000658359 00000 n +0000656672 00000 n +0000658553 00000 n +0000658746 00000 n +0000658810 00000 n +0000656829 00000 n +0000658874 00000 n +0000656987 00000 n +0000658938 00000 n +0000657143 00000 n +0000659130 00000 n +0000659194 00000 n +0000659260 00000 n +0000659326 00000 n +0000657300 00000 n +0000659390 00000 n +0000665001 00000 n +0000662552 00000 n +0000659556 00000 n +0000662868 00000 n +0000662932 00000 n +0000662699 00000 n +0000662996 00000 n +0000663060 00000 n +0000663124 00000 n +0000663187 00000 n +0000663253 00000 n +0000663319 00000 n +0000663385 00000 n +0000663448 00000 n +0000663514 00000 n +0000663580 00000 n +0000663645 00000 n +0000663710 00000 n +0000663775 00000 n +0000663839 00000 n +0000663905 00000 n +0000663969 00000 n +0000664035 00000 n +0000664099 00000 n +0000664163 00000 n +0000664227 00000 n +0000664292 00000 n +0000664356 00000 n +0000664420 00000 n +0000664615 00000 n +0000664679 00000 n +0000664745 00000 n +0000664809 00000 n +0000664873 00000 n +0000664937 00000 n +0001178919 00000 n +0000668403 00000 n +0000666930 00000 n +0000665131 00000 n +0000667056 00000 n +0000667120 00000 n +0000667184 00000 n +0000667248 00000 n +0000667312 00000 n +0000667376 00000 n +0000667440 00000 n +0000667504 00000 n +0000667568 00000 n +0000667632 00000 n +0000667696 00000 n +0000667760 00000 n +0000667824 00000 n +0000667888 00000 n +0000667953 00000 n +0000668017 00000 n 0000668082 00000 n 0000668146 00000 n -0000668210 00000 n -0000668274 00000 n +0000668211 00000 n +0000668275 00000 n 0000668339 00000 n -0000668403 00000 n -0000668468 00000 n -0000668532 00000 n -0000668597 00000 n -0000671908 00000 n -0000670709 00000 n -0000668762 00000 n -0000671009 00000 n -0000671073 00000 n -0000671137 00000 n -0000671201 00000 n -0000671265 00000 n -0000671329 00000 n -0000671393 00000 n -0000671457 00000 n -0000671521 00000 n -0000670856 00000 n -0000671714 00000 n -0000671778 00000 n -0000671842 00000 n -0000677189 00000 n -0000674093 00000 n -0000672038 00000 n -0000674219 00000 n -0000674283 00000 n -0000674347 00000 n -0000674411 00000 n -0000674475 00000 n -0000674540 00000 n -0000674606 00000 n -0000674671 00000 n -0000674735 00000 n -0000674800 00000 n -0000674866 00000 n -0000674930 00000 n -0000674995 00000 n -0000675061 00000 n -0000675127 00000 n -0000675193 00000 n -0000675259 00000 n -0000675325 00000 n -0000675391 00000 n -0000675585 00000 n -0000675649 00000 n -0000675713 00000 n -0000675777 00000 n -0000675841 00000 n -0000675906 00000 n -0000675970 00000 n +0000672818 00000 n +0000670514 00000 n +0000668505 00000 n +0000670813 00000 n +0000670877 00000 n +0000670941 00000 n +0000671005 00000 n +0000671069 00000 n +0000671133 00000 n +0000671197 00000 n +0000670661 00000 n +0000671388 00000 n +0000671452 00000 n +0000671516 00000 n +0000671582 00000 n +0000671646 00000 n +0000671710 00000 n +0000671774 00000 n +0000671839 00000 n +0000671905 00000 n +0000671970 00000 n +0000672034 00000 n +0000672099 00000 n +0000672165 00000 n +0000672228 00000 n +0000672293 00000 n +0000672359 00000 n +0000672425 00000 n +0000672491 00000 n +0000672557 00000 n +0000672623 00000 n +0000672689 00000 n +0000677324 00000 n +0000675015 00000 n +0000672948 00000 n +0000675141 00000 n +0000675205 00000 n +0000675334 00000 n +0000675398 00000 n +0000675461 00000 n +0000675525 00000 n +0000675589 00000 n +0000675653 00000 n +0000675717 00000 n +0000675782 00000 n +0000675845 00000 n 0000676035 00000 n 0000676099 00000 n +0000676162 00000 n +0000676225 00000 n 0000676289 00000 n 0000676353 00000 n 0000676417 00000 n -0000676481 00000 n -0000676545 00000 n -0000676609 00000 n -0000676673 00000 n -0000676738 00000 n -0000676802 00000 n -0000676867 00000 n -0000676931 00000 n -0000676996 00000 n -0000677060 00000 n -0000683206 00000 n -0000679389 00000 n -0000677305 00000 n -0000679515 00000 n -0000679644 00000 n -0000679708 00000 n -0000679774 00000 n -0000679840 00000 n -0000680035 00000 n -0000680099 00000 n -0000680165 00000 n -0000680231 00000 n -0000680294 00000 n -0000680360 00000 n -0000680424 00000 n -0000680488 00000 n -0000680553 00000 n -0000680617 00000 n -0000680683 00000 n -0000680747 00000 n -0000680813 00000 n -0000680879 00000 n -0000680945 00000 n -0000681008 00000 n -0000681072 00000 n -0000681137 00000 n -0000681201 00000 n -0000681266 00000 n -0000681332 00000 n -0000681398 00000 n -0000681462 00000 n -0000681527 00000 n -0000681592 00000 n -0000681658 00000 n -0000681722 00000 n -0000682045 00000 n -0000682109 00000 n -0000682175 00000 n -0000682239 00000 n -0000682303 00000 n -0000682367 00000 n -0000682432 00000 n -0000682496 00000 n -0000682560 00000 n -0000682624 00000 n -0000682689 00000 n -0000682755 00000 n -0000682818 00000 n -0000682881 00000 n -0000682945 00000 n -0000683010 00000 n -0000683076 00000 n -0000683140 00000 n -0000688763 00000 n -0000685658 00000 n -0000683322 00000 n -0000685784 00000 n -0000685977 00000 n -0000686041 00000 n -0000686107 00000 n -0000686172 00000 n -0000686238 00000 n -0000686304 00000 n -0000686368 00000 n -0000686434 00000 n -0000686498 00000 n -0000686563 00000 n -0000686629 00000 n -0000686822 00000 n -0000687015 00000 n -0000687079 00000 n -0000687143 00000 n -0000687209 00000 n -0000687273 00000 n -0000687337 00000 n -0000687400 00000 n -0000687466 00000 n -0000687530 00000 n -0000687594 00000 n -0000687659 00000 n -0000687723 00000 n -0000687788 00000 n -0000687852 00000 n -0000687918 00000 n -0000687982 00000 n -0000688047 00000 n -0000688112 00000 n -0000688178 00000 n -0000688373 00000 n -0000688437 00000 n -0000688503 00000 n -0000688569 00000 n -0000688633 00000 n -0000694640 00000 n -0000691224 00000 n -0000688879 00000 n -0000691529 00000 n -0000691593 00000 n -0000691722 00000 n -0000691786 00000 n -0000691852 00000 n -0000691917 00000 n -0000691983 00000 n -0000692176 00000 n -0000692240 00000 n -0000691371 00000 n -0000692435 00000 n -0000692499 00000 n -0000692564 00000 n -0000692692 00000 n -0000692756 00000 n -0000692885 00000 n -0000692949 00000 n -0000693015 00000 n -0000693081 00000 n -0000693210 00000 n -0000693274 00000 n -0000693337 00000 n -0000693402 00000 n -0000693466 00000 n +0000676482 00000 n +0000676546 00000 n +0000676611 00000 n +0000676675 00000 n +0000676740 00000 n +0000676804 00000 n +0000676998 00000 n +0000677062 00000 n +0000677128 00000 n +0000677194 00000 n +0000682844 00000 n +0000679414 00000 n +0000677440 00000 n +0000679540 00000 n +0000679669 00000 n +0000679733 00000 n +0000679799 00000 n +0000679865 00000 n +0000679929 00000 n +0000679995 00000 n +0000680061 00000 n +0000680127 00000 n +0000680191 00000 n +0000680256 00000 n +0000680322 00000 n +0000680386 00000 n +0000680450 00000 n +0000680515 00000 n +0000680580 00000 n +0000680644 00000 n +0000680709 00000 n +0000680774 00000 n +0000680840 00000 n +0000680904 00000 n +0000681227 00000 n +0000681291 00000 n +0000681357 00000 n +0000681421 00000 n +0000681485 00000 n +0000681549 00000 n +0000681613 00000 n +0000681677 00000 n +0000681741 00000 n +0000681804 00000 n +0000681869 00000 n +0000681935 00000 n +0000681999 00000 n +0000682063 00000 n +0000682127 00000 n +0000682192 00000 n +0000682258 00000 n +0000682322 00000 n +0000682517 00000 n +0000682581 00000 n +0000682647 00000 n +0000682712 00000 n +0000682778 00000 n +0000688478 00000 n +0000685368 00000 n +0000682960 00000 n +0000685494 00000 n +0000685558 00000 n +0000685622 00000 n +0000685688 00000 n +0000685752 00000 n +0000685818 00000 n +0000685884 00000 n +0000686078 00000 n +0000686271 00000 n +0000686335 00000 n +0000686399 00000 n +0000686465 00000 n +0000686531 00000 n +0000686595 00000 n +0000686659 00000 n +0000686725 00000 n +0000686789 00000 n +0000686854 00000 n +0000686920 00000 n +0000686984 00000 n +0000687049 00000 n +0000687113 00000 n +0000687179 00000 n +0000687243 00000 n +0000687308 00000 n +0000687373 00000 n +0000687439 00000 n +0000687634 00000 n +0000687698 00000 n +0000687764 00000 n +0000687830 00000 n +0000687894 00000 n +0000688089 00000 n +0000688153 00000 n +0000688219 00000 n +0000688284 00000 n +0000688350 00000 n +0000694767 00000 n +0000691216 00000 n +0000688594 00000 n +0000691523 00000 n +0000691652 00000 n +0000691716 00000 n +0000691363 00000 n +0000691911 00000 n +0000691975 00000 n +0000692040 00000 n +0000692168 00000 n +0000692232 00000 n +0000692361 00000 n +0000692425 00000 n +0000692491 00000 n +0000692556 00000 n +0000692684 00000 n +0000692747 00000 n +0000692811 00000 n +0000692877 00000 n +0000692941 00000 n +0000693005 00000 n +0000693071 00000 n +0000693137 00000 n +0000693203 00000 n +0000693269 00000 n +0000693333 00000 n +0000693399 00000 n +0000693463 00000 n 0000693529 00000 n -0000693594 00000 n +0000693595 00000 n 0000693659 00000 n 0000693725 00000 n 0000693791 00000 n -0000693855 00000 n -0000693921 00000 n -0000693984 00000 n -0000694050 00000 n -0000694116 00000 n -0000694180 00000 n -0000694246 00000 n -0000694312 00000 n -0000694378 00000 n -0000694444 00000 n -0000694510 00000 n +0000693857 00000 n +0000693923 00000 n +0000693989 00000 n +0000694053 00000 n +0000694119 00000 n +0000694183 00000 n +0000694247 00000 n +0000694311 00000 n +0000694376 00000 n +0000694442 00000 n +0000694508 00000 n 0000694574 00000 n -0001180321 00000 n -0000699716 00000 n -0000697192 00000 n -0000694756 00000 n -0000697318 00000 n -0000697382 00000 n -0000697446 00000 n -0000697510 00000 n -0000697575 00000 n -0000697641 00000 n -0000697707 00000 n -0000697773 00000 n -0000697839 00000 n -0000697904 00000 n -0000698033 00000 n -0000698097 00000 n -0000698161 00000 n -0000698225 00000 n -0000698354 00000 n -0000698417 00000 n -0000698483 00000 n -0000698612 00000 n -0000698675 00000 n -0000698741 00000 n -0000698807 00000 n -0000698873 00000 n -0000698939 00000 n -0000699005 00000 n -0000699134 00000 n -0000699198 00000 n -0000699262 00000 n -0000699390 00000 n -0000699454 00000 n -0000699520 00000 n -0000699586 00000 n -0000699652 00000 n -0000704344 00000 n -0000702225 00000 n -0000699818 00000 n -0000702531 00000 n -0000702660 00000 n -0000702788 00000 n -0000702852 00000 n -0000702918 00000 n -0000702984 00000 n -0000703050 00000 n -0000703179 00000 n -0000703243 00000 n -0000703438 00000 n -0000703502 00000 n -0000703568 00000 n -0000703632 00000 n -0000703697 00000 n -0000703761 00000 n -0000703827 00000 n -0000703893 00000 n -0000704088 00000 n -0000704152 00000 n -0000702372 00000 n -0000704216 00000 n -0000710567 00000 n -0000707337 00000 n -0000704474 00000 n -0000707987 00000 n -0000708180 00000 n -0000708244 00000 n -0000708308 00000 n -0000708372 00000 n -0000708435 00000 n -0000708630 00000 n -0000708694 00000 n +0000694639 00000 n +0000694703 00000 n +0001179044 00000 n +0000699688 00000 n +0000697167 00000 n +0000694883 00000 n +0000697293 00000 n +0000697422 00000 n +0000697486 00000 n +0000697550 00000 n +0000697614 00000 n +0000697743 00000 n +0000697807 00000 n +0000697873 00000 n +0000698002 00000 n +0000698065 00000 n +0000698131 00000 n +0000698197 00000 n +0000698263 00000 n +0000698329 00000 n +0000698395 00000 n +0000698523 00000 n +0000698587 00000 n +0000698651 00000 n +0000698780 00000 n +0000698844 00000 n +0000698910 00000 n +0000698976 00000 n +0000699042 00000 n +0000699171 00000 n +0000699235 00000 n +0000699363 00000 n +0000699427 00000 n +0000699493 00000 n +0000699559 00000 n +0000699624 00000 n +0000704169 00000 n +0000702311 00000 n +0000699790 00000 n +0000702617 00000 n +0000702746 00000 n +0000702810 00000 n +0000703005 00000 n +0000703069 00000 n +0000703135 00000 n +0000703199 00000 n +0000703265 00000 n +0000703329 00000 n +0000703395 00000 n +0000703461 00000 n +0000703656 00000 n +0000703720 00000 n +0000702458 00000 n +0000703784 00000 n +0000703977 00000 n +0000704041 00000 n +0000704105 00000 n +0000710175 00000 n +0000706835 00000 n +0000704299 00000 n +0000707658 00000 n +0000707722 00000 n +0000707786 00000 n +0000707981 00000 n +0000708045 00000 n +0000708109 00000 n +0000708175 00000 n +0000708238 00000 n +0000708303 00000 n +0000708368 00000 n +0000708434 00000 n +0000708498 00000 n +0000708563 00000 n +0000708628 00000 n +0000708692 00000 n 0000708757 00000 n -0000708823 00000 n -0000708886 00000 n -0000708951 00000 n +0000708822 00000 n +0000708888 00000 n +0000707009 00000 n +0000707173 00000 n +0000708952 00000 n 0000709016 00000 n -0000709082 00000 n +0000709081 00000 n 0000709146 00000 n -0000709211 00000 n -0000709276 00000 n +0000709210 00000 n +0000709275 00000 n +0000707337 00000 n 0000709340 00000 n -0000709405 00000 n -0000709470 00000 n -0000709536 00000 n -0000707502 00000 n -0000707666 00000 n -0000709600 00000 n -0000709664 00000 n -0000709729 00000 n -0000709794 00000 n -0000709858 00000 n -0000709923 00000 n -0000707830 00000 n -0000709988 00000 n -0000710052 00000 n -0000710117 00000 n -0000710182 00000 n -0000710246 00000 n -0000710311 00000 n -0000710503 00000 n -0000714743 00000 n -0000712830 00000 n -0000710683 00000 n -0000713141 00000 n -0000713205 00000 n -0000712977 00000 n -0000713332 00000 n -0000713524 00000 n -0000713588 00000 n -0000713781 00000 n -0000713844 00000 n -0000713910 00000 n -0000714102 00000 n -0000714166 00000 n -0000714230 00000 n -0000714293 00000 n -0000714358 00000 n -0000714421 00000 n -0000714486 00000 n -0000714679 00000 n -0000719586 00000 n -0000717660 00000 n -0000714859 00000 n -0000717786 00000 n -0000717979 00000 n -0000718043 00000 n -0000718107 00000 n -0000718171 00000 n -0000718235 00000 n -0000718300 00000 n -0000718363 00000 n -0000718428 00000 n -0000718493 00000 n -0000718557 00000 n -0000718622 00000 n -0000718687 00000 n -0000718751 00000 n -0000718816 00000 n -0000718881 00000 n -0000718945 00000 n -0000719139 00000 n -0000719203 00000 n -0000719267 00000 n -0000719333 00000 n -0000719397 00000 n -0000719461 00000 n -0000726035 00000 n -0000722890 00000 n -0000719688 00000 n -0000723909 00000 n -0000723973 00000 n -0000724102 00000 n -0000724166 00000 n -0000724230 00000 n -0000724294 00000 n -0000724358 00000 n -0000724423 00000 n -0000724487 00000 n -0000723073 00000 n -0000723240 00000 n -0000724552 00000 n -0000724616 00000 n -0000723407 00000 n -0000724680 00000 n -0000724744 00000 n -0000723575 00000 n -0000724809 00000 n -0000724873 00000 n -0000723739 00000 n -0000724939 00000 n -0000725002 00000 n -0000725064 00000 n -0000725259 00000 n -0000725323 00000 n -0000725387 00000 n -0000725451 00000 n -0000725516 00000 n -0000725582 00000 n -0000725648 00000 n -0000725712 00000 n -0000725777 00000 n -0000725842 00000 n -0000725906 00000 n -0000725971 00000 n -0001180446 00000 n -0000730841 00000 n -0000728952 00000 n -0000726151 00000 n -0000729425 00000 n +0000709404 00000 n +0000709469 00000 n +0000709534 00000 n +0000709598 00000 n +0000709663 00000 n +0000709855 00000 n +0000707494 00000 n +0000710048 00000 n +0000714389 00000 n +0000712590 00000 n +0000710277 00000 n +0000712716 00000 n +0000712780 00000 n +0000712909 00000 n +0000712973 00000 n +0000713168 00000 n +0000713232 00000 n +0000713298 00000 n +0000713490 00000 n +0000713554 00000 n +0000713618 00000 n +0000713682 00000 n +0000713747 00000 n +0000713811 00000 n +0000713876 00000 n +0000714068 00000 n +0000714132 00000 n +0000714325 00000 n +0000719355 00000 n +0000717365 00000 n +0000714505 00000 n +0000717491 00000 n +0000717555 00000 n +0000717619 00000 n +0000717683 00000 n +0000717748 00000 n +0000717812 00000 n +0000717877 00000 n +0000717942 00000 n +0000718006 00000 n +0000718071 00000 n +0000718136 00000 n +0000718200 00000 n +0000718264 00000 n +0000718328 00000 n +0000718392 00000 n +0000718586 00000 n +0000718649 00000 n +0000718712 00000 n +0000718778 00000 n +0000718842 00000 n +0000718906 00000 n +0000719099 00000 n +0000719163 00000 n +0000719227 00000 n +0000719291 00000 n +0000725470 00000 n +0000722510 00000 n +0000719457 00000 n +0000723532 00000 n +0000723596 00000 n +0000723661 00000 n +0000723724 00000 n +0000722693 00000 n +0000722861 00000 n +0000723789 00000 n +0000723853 00000 n +0000723028 00000 n +0000723918 00000 n +0000723982 00000 n +0000723198 00000 n +0000724047 00000 n +0000724111 00000 n +0000723362 00000 n +0000724177 00000 n +0000724241 00000 n +0000724305 00000 n +0000724500 00000 n +0000724563 00000 n +0000724627 00000 n +0000724691 00000 n +0000724756 00000 n +0000724822 00000 n +0000724888 00000 n +0000724952 00000 n +0000725017 00000 n +0000725083 00000 n +0000725147 00000 n +0000725212 00000 n +0000725276 00000 n +0000725340 00000 n +0000725405 00000 n +0001179169 00000 n +0000730578 00000 n +0000728241 00000 n +0000725586 00000 n +0000728714 00000 n +0000728778 00000 n +0000728844 00000 n +0000728909 00000 n +0000728397 00000 n +0000729101 00000 n +0000729164 00000 n +0000729230 00000 n +0000729295 00000 n +0000729359 00000 n +0000728556 00000 n +0000729423 00000 n 0000729489 00000 n -0000729554 00000 n -0000729620 00000 n -0000729685 00000 n -0000729108 00000 n -0000729877 00000 n -0000729940 00000 n -0000730006 00000 n -0000730071 00000 n -0000730135 00000 n -0000729267 00000 n -0000730199 00000 n -0000730265 00000 n -0000730329 00000 n -0000730393 00000 n -0000730457 00000 n -0000730521 00000 n -0000730586 00000 n -0000730649 00000 n -0000730712 00000 n -0000730776 00000 n -0000736449 00000 n -0000733307 00000 n -0000730957 00000 n -0000734460 00000 n -0000734524 00000 n -0000734588 00000 n -0000734652 00000 n -0000734716 00000 n -0000734781 00000 n -0000734843 00000 n -0000734905 00000 n -0000734969 00000 n -0000735034 00000 n -0000735098 00000 n -0000735162 00000 n -0000735226 00000 n -0000733499 00000 n -0000735291 00000 n -0000735355 00000 n -0000735419 00000 n -0000735483 00000 n -0000733657 00000 n -0000735677 00000 n -0000735741 00000 n -0000735805 00000 n -0000735869 00000 n -0000733815 00000 n -0000735934 00000 n -0000735998 00000 n -0000733972 00000 n -0000736063 00000 n -0000736127 00000 n -0000734131 00000 n -0000736321 00000 n -0000734291 00000 n -0000738743 00000 n -0000737970 00000 n -0000736551 00000 n -0000738096 00000 n -0000738225 00000 n -0000738289 00000 n -0000738353 00000 n -0000738417 00000 n -0000738483 00000 n -0000738549 00000 n -0000738613 00000 n -0000738677 00000 n -0000744136 00000 n -0000741460 00000 n -0000738887 00000 n -0000741936 00000 n -0000742128 00000 n -0000742192 00000 n -0000742257 00000 n -0000742578 00000 n -0000742770 00000 n -0000741616 00000 n -0000742834 00000 n -0000742900 00000 n -0000742966 00000 n -0000743032 00000 n -0000741775 00000 n -0000743098 00000 n -0000743163 00000 n -0000743228 00000 n -0000743293 00000 n -0000743358 00000 n -0000743424 00000 n -0000743490 00000 n -0000743554 00000 n -0000743618 00000 n -0000743683 00000 n -0000743748 00000 n -0000743942 00000 n -0000744006 00000 n -0001012037 00000 n -0001022093 00000 n -0000748769 00000 n -0000745973 00000 n -0000744280 00000 n -0000746645 00000 n -0000746903 00000 n -0000746138 00000 n -0000747096 00000 n -0000747159 00000 n -0000747225 00000 n -0000747291 00000 n -0000747357 00000 n -0000747421 00000 n -0000747485 00000 n -0000747549 00000 n -0000747613 00000 n -0000747679 00000 n -0000747742 00000 n -0000747806 00000 n -0000747870 00000 n -0000747934 00000 n -0000747998 00000 n -0000748064 00000 n -0000748128 00000 n -0000748192 00000 n -0000748256 00000 n -0000746305 00000 n -0000748449 00000 n -0000746480 00000 n -0000748513 00000 n -0000748577 00000 n -0000748640 00000 n -0000748705 00000 n -0000756489 00000 n -0000751146 00000 n -0000748927 00000 n -0000751623 00000 n -0000751945 00000 n -0000752009 00000 n -0000752075 00000 n -0000752139 00000 n -0000751302 00000 n -0000751464 00000 n -0000752203 00000 n -0000752268 00000 n -0000752332 00000 n -0000752397 00000 n -0000752461 00000 n -0000752525 00000 n -0000752590 00000 n -0000752655 00000 n -0000752720 00000 n -0000752786 00000 n -0000752852 00000 n -0000752917 00000 n -0000752982 00000 n -0000753047 00000 n -0000753111 00000 n -0000753175 00000 n -0000753239 00000 n -0000753303 00000 n -0000753368 00000 n -0000753434 00000 n -0000753500 00000 n -0000753565 00000 n -0000753630 00000 n -0000753695 00000 n -0000753759 00000 n -0000753823 00000 n -0000753887 00000 n -0000753951 00000 n -0000754015 00000 n -0000754081 00000 n -0000754145 00000 n -0000754211 00000 n -0000754277 00000 n -0000754343 00000 n -0000754408 00000 n -0000754473 00000 n -0000754537 00000 n -0000754601 00000 n -0000754667 00000 n -0000754731 00000 n -0000754797 00000 n -0000754863 00000 n -0000754929 00000 n -0000754995 00000 n -0000755061 00000 n -0000755127 00000 n -0000755193 00000 n -0000755259 00000 n -0000755325 00000 n -0000755390 00000 n -0000755455 00000 n -0000755519 00000 n -0000755583 00000 n -0000755649 00000 n -0000755714 00000 n -0000755779 00000 n -0000755844 00000 n -0000755908 00000 n -0000755972 00000 n -0000756037 00000 n -0000756102 00000 n -0000756167 00000 n -0000756232 00000 n -0000756296 00000 n -0000756360 00000 n -0000756425 00000 n -0001180571 00000 n -0001002191 00000 n -0000759394 00000 n -0000758058 00000 n -0000756633 00000 n -0000758356 00000 n -0000758420 00000 n -0000758486 00000 n -0000758552 00000 n -0000758618 00000 n -0000758682 00000 n -0000758205 00000 n -0000759003 00000 n -0000759067 00000 n -0000759133 00000 n -0000759198 00000 n -0000759264 00000 n -0000759328 00000 n -0000764126 00000 n -0000762000 00000 n -0000759524 00000 n -0000762126 00000 n -0000762447 00000 n -0000762511 00000 n -0000762577 00000 n -0000762641 00000 n -0000762835 00000 n -0000762898 00000 n -0000762961 00000 n -0000763025 00000 n -0000763089 00000 n -0000763154 00000 n -0000763220 00000 n -0000763286 00000 n -0000763352 00000 n -0000763418 00000 n -0000763482 00000 n -0000763546 00000 n -0000763611 00000 n -0000763675 00000 n -0000763740 00000 n -0000763804 00000 n -0000763868 00000 n -0000763933 00000 n -0000763997 00000 n -0000764062 00000 n -0000770870 00000 n -0000767579 00000 n -0000764256 00000 n -0000767705 00000 n -0000767769 00000 n -0000767834 00000 n -0000767900 00000 n -0000767966 00000 n -0000768159 00000 n -0000768223 00000 n -0000768287 00000 n -0000768351 00000 n -0000768415 00000 n -0000768480 00000 n -0000768545 00000 n -0000768610 00000 n -0000768674 00000 n -0000768738 00000 n -0000768803 00000 n -0000768868 00000 n -0000768932 00000 n -0000768997 00000 n -0000769062 00000 n -0000769126 00000 n -0000769191 00000 n -0000769256 00000 n -0000769320 00000 n -0000769385 00000 n -0000769450 00000 n -0000769513 00000 n -0000769578 00000 n -0000769643 00000 n -0000769707 00000 n -0000769772 00000 n -0000769837 00000 n -0000769901 00000 n -0000769966 00000 n -0000770031 00000 n -0000770095 00000 n -0000770160 00000 n -0000770225 00000 n -0000770289 00000 n -0000770354 00000 n -0000770419 00000 n -0000770483 00000 n -0000770548 00000 n -0000770613 00000 n -0000770677 00000 n -0000770742 00000 n -0000770807 00000 n -0000777213 00000 n -0000775843 00000 n -0000773333 00000 n -0000770972 00000 n -0000773643 00000 n -0000773771 00000 n -0000773836 00000 n -0000773901 00000 n -0000773964 00000 n -0000774029 00000 n -0000774094 00000 n -0000774158 00000 n -0000774223 00000 n -0000774288 00000 n -0000774352 00000 n -0000774417 00000 n -0000774482 00000 n -0000774548 00000 n -0000774614 00000 n -0000774678 00000 n -0000774742 00000 n -0000774807 00000 n -0000774872 00000 n -0000774936 00000 n -0000775001 00000 n -0000775066 00000 n -0000775130 00000 n -0000775195 00000 n -0000775260 00000 n -0000775324 00000 n -0000775389 00000 n -0000775583 00000 n -0000773480 00000 n -0000775647 00000 n -0000775713 00000 n -0000827388 00000 n -0000777066 00000 n -0000775945 00000 n -0000826809 00000 n -0000826873 00000 n -0000826937 00000 n -0000827066 00000 n -0000827130 00000 n -0000827196 00000 n -0000827260 00000 n -0000826648 00000 n -0000832349 00000 n -0000829897 00000 n -0000827541 00000 n -0000830023 00000 n -0000830152 00000 n -0000830216 00000 n -0000830280 00000 n -0000830346 00000 n -0000830412 00000 n -0000830478 00000 n -0000830542 00000 n -0000830606 00000 n -0000830670 00000 n -0000830735 00000 n -0000830800 00000 n -0000830864 00000 n -0000830929 00000 n -0000830994 00000 n -0000831058 00000 n -0000831123 00000 n -0000831316 00000 n -0000831380 00000 n -0000831572 00000 n -0000831636 00000 n -0000831700 00000 n -0000831763 00000 n -0000831829 00000 n -0000831893 00000 n -0000831959 00000 n -0000832023 00000 n -0000832089 00000 n -0000832153 00000 n -0000832219 00000 n -0000832283 00000 n -0001180696 00000 n -0000836887 00000 n -0000835085 00000 n -0000832451 00000 n -0000835211 00000 n -0000835275 00000 n -0000835468 00000 n -0000835532 00000 n -0000835598 00000 n -0000835662 00000 n -0000835727 00000 n -0000835791 00000 n -0000835984 00000 n -0000836048 00000 n -0000836114 00000 n -0000836180 00000 n -0000836244 00000 n -0000836439 00000 n -0000836631 00000 n -0000836695 00000 n -0000836759 00000 n -0000836823 00000 n -0000842077 00000 n -0000839960 00000 n -0000837003 00000 n -0000840270 00000 n -0000840334 00000 n -0000840526 00000 n -0000840589 00000 n -0000840107 00000 n -0000840654 00000 n -0000840718 00000 n -0000840784 00000 n -0000840849 00000 n -0000841173 00000 n -0000841237 00000 n -0000841303 00000 n -0000841367 00000 n -0000841431 00000 n -0000841495 00000 n -0000841560 00000 n -0000841626 00000 n -0000841692 00000 n -0000841756 00000 n -0000841820 00000 n -0000841886 00000 n -0000841951 00000 n -0000842015 00000 n -0000846796 00000 n -0000845186 00000 n -0000842193 00000 n -0000845312 00000 n -0000845376 00000 n -0000845441 00000 n -0000845506 00000 n -0000845570 00000 n -0000845635 00000 n -0000845701 00000 n -0000845765 00000 n -0000845829 00000 n -0000845894 00000 n -0000845959 00000 n -0000846023 00000 n -0000846088 00000 n -0000846152 00000 n -0000846217 00000 n -0000846283 00000 n -0000846347 00000 n -0000846539 00000 n -0000846603 00000 n -0000846669 00000 n -0000850991 00000 n -0000849452 00000 n -0000846912 00000 n -0000849578 00000 n -0000849707 00000 n -0000849771 00000 n -0000849834 00000 n -0000849898 00000 n -0000849962 00000 n -0000850025 00000 n -0000850091 00000 n -0000850156 00000 n -0000850222 00000 n -0000850286 00000 n -0000850480 00000 n -0000850543 00000 n -0000850607 00000 n -0000850671 00000 n -0000850864 00000 n -0000854760 00000 n -0000853094 00000 n -0000851107 00000 n -0000853220 00000 n -0000853284 00000 n -0000853413 00000 n -0000853606 00000 n -0000853796 00000 n -0000853989 00000 n -0000854182 00000 n -0000854246 00000 n -0000854439 00000 n -0000854632 00000 n -0000858287 00000 n -0000856874 00000 n -0000854862 00000 n -0000857000 00000 n -0000857064 00000 n -0000857193 00000 n -0000857257 00000 n -0000857323 00000 n -0000857387 00000 n -0000857580 00000 n -0000857644 00000 n -0000857837 00000 n -0000858030 00000 n -0000858093 00000 n -0000858159 00000 n -0001180821 00000 n -0000863979 00000 n -0000861213 00000 n -0000858389 00000 n -0000861339 00000 n -0000861468 00000 n -0000861532 00000 n -0000861598 00000 n -0000861664 00000 n -0000861729 00000 n -0000861922 00000 n -0000862114 00000 n -0000862177 00000 n -0000862240 00000 n -0000862304 00000 n -0000862369 00000 n -0000862433 00000 n -0000862497 00000 n -0000862561 00000 n -0000862626 00000 n +0000729553 00000 n +0000729617 00000 n +0000729681 00000 n +0000729745 00000 n +0000729810 00000 n +0000729873 00000 n +0000729936 00000 n +0000730000 00000 n +0000730065 00000 n +0000730129 00000 n +0000730193 00000 n +0000730256 00000 n +0000730321 00000 n +0000730385 00000 n +0000730449 00000 n +0000730513 00000 n +0000736296 00000 n +0000733411 00000 n +0000730694 00000 n +0000734562 00000 n +0000734626 00000 n +0000734690 00000 n +0000734754 00000 n +0000734818 00000 n +0000734882 00000 n +0000733603 00000 n +0000734947 00000 n +0000735011 00000 n +0000735075 00000 n +0000735139 00000 n +0000733761 00000 n +0000735333 00000 n +0000735397 00000 n +0000735461 00000 n +0000735524 00000 n +0000733919 00000 n +0000735589 00000 n +0000735653 00000 n +0000734075 00000 n +0000735718 00000 n +0000735781 00000 n +0000734234 00000 n +0000735975 00000 n +0000734394 00000 n +0000736168 00000 n +0000736232 00000 n +0000737753 00000 n +0000737237 00000 n +0000736398 00000 n +0000737363 00000 n +0000737427 00000 n +0000737491 00000 n +0000737557 00000 n +0000737623 00000 n +0000737687 00000 n +0000743146 00000 n +0000740470 00000 n +0000737897 00000 n +0000740946 00000 n +0000741138 00000 n +0000741202 00000 n +0000741267 00000 n +0000741588 00000 n +0000741780 00000 n +0000740626 00000 n +0000741844 00000 n +0000741910 00000 n +0000741976 00000 n +0000742042 00000 n +0000740785 00000 n +0000742108 00000 n +0000742173 00000 n +0000742238 00000 n +0000742303 00000 n +0000742368 00000 n +0000742434 00000 n +0000742500 00000 n +0000742564 00000 n +0000742628 00000 n +0000742693 00000 n +0000742758 00000 n +0000742952 00000 n +0000743016 00000 n +0001010758 00000 n +0001020814 00000 n +0000747779 00000 n +0000744983 00000 n +0000743290 00000 n +0000745655 00000 n +0000745913 00000 n +0000745148 00000 n +0000746106 00000 n +0000746169 00000 n +0000746235 00000 n +0000746301 00000 n +0000746367 00000 n +0000746431 00000 n +0000746495 00000 n +0000746559 00000 n +0000746623 00000 n +0000746689 00000 n +0000746752 00000 n +0000746816 00000 n +0000746880 00000 n +0000746944 00000 n +0000747008 00000 n +0000747074 00000 n +0000747138 00000 n +0000747202 00000 n +0000747266 00000 n +0000745315 00000 n +0000747459 00000 n +0000745490 00000 n +0000747523 00000 n +0000747587 00000 n +0000747650 00000 n +0000747715 00000 n +0000755199 00000 n +0000750117 00000 n +0000747937 00000 n +0000750594 00000 n +0000750916 00000 n +0000750980 00000 n +0000751046 00000 n +0000751110 00000 n +0000750273 00000 n +0000750435 00000 n +0000751174 00000 n +0000751239 00000 n +0000751303 00000 n +0000751368 00000 n +0000751432 00000 n +0000751496 00000 n +0000751561 00000 n +0000751626 00000 n +0000751691 00000 n +0000751757 00000 n +0000751823 00000 n +0000751888 00000 n +0000751953 00000 n +0000752018 00000 n +0000752082 00000 n +0000752146 00000 n +0000752210 00000 n +0000752275 00000 n +0000752340 00000 n +0000752405 00000 n +0000752469 00000 n +0000752533 00000 n +0000752598 00000 n +0000752662 00000 n +0000752726 00000 n +0000752791 00000 n +0000752855 00000 n +0000752921 00000 n +0000752987 00000 n +0000753053 00000 n +0000753118 00000 n +0000753183 00000 n +0000753247 00000 n +0000753311 00000 n +0000753377 00000 n +0000753441 00000 n +0000753507 00000 n +0000753573 00000 n +0000753639 00000 n +0000753705 00000 n +0000753771 00000 n +0000753837 00000 n +0000753903 00000 n +0000753969 00000 n +0000754035 00000 n +0000754100 00000 n +0000754165 00000 n +0000754229 00000 n +0000754293 00000 n +0000754359 00000 n +0000754424 00000 n +0000754489 00000 n +0000754554 00000 n +0000754618 00000 n +0000754682 00000 n +0000754747 00000 n +0000754812 00000 n +0000754877 00000 n +0000754942 00000 n +0000755006 00000 n +0000755070 00000 n +0000755135 00000 n +0001179294 00000 n +0001000912 00000 n +0000758104 00000 n +0000756768 00000 n +0000755343 00000 n +0000757066 00000 n +0000757130 00000 n +0000757196 00000 n +0000757262 00000 n +0000757328 00000 n +0000757392 00000 n +0000756915 00000 n +0000757713 00000 n +0000757777 00000 n +0000757843 00000 n +0000757908 00000 n +0000757974 00000 n +0000758038 00000 n +0000762830 00000 n +0000760704 00000 n +0000758234 00000 n +0000760830 00000 n +0000761151 00000 n +0000761215 00000 n +0000761281 00000 n +0000761345 00000 n +0000761539 00000 n +0000761602 00000 n +0000761665 00000 n +0000761729 00000 n +0000761793 00000 n +0000761858 00000 n +0000761924 00000 n +0000761990 00000 n +0000762056 00000 n +0000762122 00000 n +0000762186 00000 n +0000762250 00000 n +0000762315 00000 n +0000762379 00000 n +0000762444 00000 n +0000762508 00000 n +0000762572 00000 n +0000762637 00000 n +0000762701 00000 n +0000762766 00000 n +0000769592 00000 n +0000766301 00000 n +0000762960 00000 n +0000766427 00000 n +0000766491 00000 n +0000766556 00000 n +0000766622 00000 n +0000766688 00000 n +0000766881 00000 n +0000766945 00000 n +0000767009 00000 n +0000767073 00000 n +0000767137 00000 n +0000767202 00000 n +0000767267 00000 n +0000767332 00000 n +0000767396 00000 n +0000767460 00000 n +0000767525 00000 n +0000767590 00000 n +0000767654 00000 n +0000767719 00000 n +0000767784 00000 n +0000767848 00000 n +0000767913 00000 n +0000767978 00000 n +0000768042 00000 n +0000768107 00000 n +0000768172 00000 n +0000768235 00000 n +0000768300 00000 n +0000768365 00000 n +0000768429 00000 n +0000768494 00000 n +0000768559 00000 n +0000768623 00000 n +0000768688 00000 n +0000768753 00000 n +0000768817 00000 n +0000768882 00000 n +0000768947 00000 n +0000769011 00000 n +0000769076 00000 n +0000769141 00000 n +0000769205 00000 n +0000769270 00000 n +0000769335 00000 n +0000769399 00000 n +0000769464 00000 n +0000769529 00000 n +0000775929 00000 n +0000774565 00000 n +0000772055 00000 n +0000769694 00000 n +0000772365 00000 n +0000772493 00000 n +0000772558 00000 n +0000772623 00000 n +0000772686 00000 n +0000772751 00000 n +0000772816 00000 n +0000772880 00000 n +0000772945 00000 n +0000773010 00000 n +0000773074 00000 n +0000773139 00000 n +0000773204 00000 n +0000773270 00000 n +0000773336 00000 n +0000773400 00000 n +0000773464 00000 n +0000773529 00000 n +0000773594 00000 n +0000773658 00000 n +0000773723 00000 n +0000773788 00000 n +0000773852 00000 n +0000773917 00000 n +0000773982 00000 n +0000774046 00000 n +0000774111 00000 n +0000774305 00000 n +0000772202 00000 n +0000774369 00000 n +0000774435 00000 n +0000826104 00000 n +0000775782 00000 n +0000774667 00000 n +0000825525 00000 n +0000825589 00000 n +0000825653 00000 n +0000825782 00000 n +0000825846 00000 n +0000825912 00000 n +0000825976 00000 n +0000825364 00000 n +0000831065 00000 n +0000828613 00000 n +0000826257 00000 n +0000828739 00000 n +0000828868 00000 n +0000828932 00000 n +0000828996 00000 n +0000829062 00000 n +0000829128 00000 n +0000829194 00000 n +0000829258 00000 n +0000829322 00000 n +0000829386 00000 n +0000829451 00000 n +0000829516 00000 n +0000829580 00000 n +0000829645 00000 n +0000829710 00000 n +0000829774 00000 n +0000829839 00000 n +0000830032 00000 n +0000830096 00000 n +0000830288 00000 n +0000830352 00000 n +0000830416 00000 n +0000830479 00000 n +0000830545 00000 n +0000830609 00000 n +0000830675 00000 n +0000830739 00000 n +0000830805 00000 n +0000830869 00000 n +0000830935 00000 n +0000830999 00000 n +0001179419 00000 n +0000835603 00000 n +0000833801 00000 n +0000831167 00000 n +0000833927 00000 n +0000833991 00000 n +0000834184 00000 n +0000834248 00000 n +0000834314 00000 n +0000834378 00000 n +0000834443 00000 n +0000834507 00000 n +0000834700 00000 n +0000834764 00000 n +0000834830 00000 n +0000834896 00000 n +0000834960 00000 n +0000835155 00000 n +0000835347 00000 n +0000835411 00000 n +0000835475 00000 n +0000835539 00000 n +0000840788 00000 n +0000838671 00000 n +0000835719 00000 n +0000838981 00000 n +0000839045 00000 n +0000839237 00000 n +0000839300 00000 n +0000838818 00000 n +0000839365 00000 n +0000839429 00000 n +0000839495 00000 n +0000839560 00000 n +0000839884 00000 n +0000839948 00000 n +0000840014 00000 n +0000840078 00000 n +0000840142 00000 n +0000840206 00000 n +0000840271 00000 n +0000840337 00000 n +0000840403 00000 n +0000840467 00000 n +0000840531 00000 n +0000840597 00000 n +0000840662 00000 n +0000840726 00000 n +0000845507 00000 n +0000843897 00000 n +0000840904 00000 n +0000844023 00000 n +0000844087 00000 n +0000844152 00000 n +0000844217 00000 n +0000844281 00000 n +0000844346 00000 n +0000844412 00000 n +0000844476 00000 n +0000844540 00000 n +0000844605 00000 n +0000844670 00000 n +0000844734 00000 n +0000844799 00000 n +0000844863 00000 n +0000844928 00000 n +0000844994 00000 n +0000845058 00000 n +0000845250 00000 n +0000845314 00000 n +0000845380 00000 n +0000849702 00000 n +0000848163 00000 n +0000845623 00000 n +0000848289 00000 n +0000848418 00000 n +0000848482 00000 n +0000848545 00000 n +0000848609 00000 n +0000848673 00000 n +0000848736 00000 n +0000848802 00000 n +0000848867 00000 n +0000848933 00000 n +0000848997 00000 n +0000849191 00000 n +0000849254 00000 n +0000849318 00000 n +0000849382 00000 n +0000849575 00000 n +0000853471 00000 n +0000851805 00000 n +0000849818 00000 n +0000851931 00000 n +0000851995 00000 n +0000852124 00000 n +0000852317 00000 n +0000852507 00000 n +0000852700 00000 n +0000852893 00000 n +0000852957 00000 n +0000853150 00000 n +0000853343 00000 n +0000856998 00000 n +0000855585 00000 n +0000853573 00000 n +0000855711 00000 n +0000855775 00000 n +0000855904 00000 n +0000855968 00000 n +0000856034 00000 n +0000856098 00000 n +0000856291 00000 n +0000856355 00000 n +0000856548 00000 n +0000856741 00000 n +0000856804 00000 n +0000856870 00000 n +0001179544 00000 n 0000862690 00000 n -0000862755 00000 n -0000862819 00000 n -0000862884 00000 n -0000862947 00000 n -0000863012 00000 n -0000863076 00000 n -0000863141 00000 n -0000863205 00000 n -0000863270 00000 n -0000863334 00000 n -0000863399 00000 n -0000863463 00000 n -0000863657 00000 n -0000863721 00000 n -0000863784 00000 n -0000863849 00000 n -0000863915 00000 n -0000869664 00000 n -0000867145 00000 n -0000864095 00000 n -0000867271 00000 n -0000867335 00000 n -0000867399 00000 n -0000867465 00000 n -0000867529 00000 n -0000867595 00000 n -0000867661 00000 n -0000867725 00000 n -0000867791 00000 n -0000867855 00000 n -0000867919 00000 n -0000867983 00000 n -0000868048 00000 n -0000868111 00000 n -0000868176 00000 n -0000868242 00000 n -0000868306 00000 n -0000868371 00000 n -0000868437 00000 n -0000868500 00000 n -0000868565 00000 n -0000868630 00000 n -0000868694 00000 n -0000868758 00000 n -0000868823 00000 n -0000868887 00000 n -0000868951 00000 n -0000869015 00000 n -0000869081 00000 n -0000869146 00000 n -0000869212 00000 n -0000869276 00000 n -0000869340 00000 n -0000869406 00000 n -0000869470 00000 n -0000869536 00000 n -0000869600 00000 n -0000874588 00000 n -0000871644 00000 n -0000869780 00000 n -0000871944 00000 n -0000872008 00000 n -0000872072 00000 n -0000872136 00000 n -0000872202 00000 n -0000872268 00000 n -0000872463 00000 n -0000871791 00000 n -0000872656 00000 n -0000872720 00000 n +0000859924 00000 n +0000857100 00000 n +0000860050 00000 n +0000860179 00000 n +0000860243 00000 n +0000860309 00000 n +0000860375 00000 n +0000860440 00000 n +0000860633 00000 n +0000860825 00000 n +0000860888 00000 n +0000860951 00000 n +0000861015 00000 n +0000861080 00000 n +0000861144 00000 n +0000861208 00000 n +0000861272 00000 n +0000861337 00000 n +0000861401 00000 n +0000861466 00000 n +0000861530 00000 n +0000861595 00000 n +0000861658 00000 n +0000861723 00000 n +0000861787 00000 n +0000861852 00000 n +0000861916 00000 n +0000861981 00000 n +0000862045 00000 n +0000862110 00000 n +0000862174 00000 n +0000862368 00000 n +0000862432 00000 n +0000862495 00000 n +0000862560 00000 n +0000862626 00000 n +0000868375 00000 n +0000865856 00000 n +0000862806 00000 n +0000865982 00000 n +0000866046 00000 n +0000866110 00000 n +0000866176 00000 n +0000866240 00000 n +0000866306 00000 n +0000866372 00000 n +0000866436 00000 n +0000866502 00000 n +0000866566 00000 n +0000866630 00000 n +0000866694 00000 n +0000866759 00000 n +0000866822 00000 n +0000866887 00000 n +0000866953 00000 n +0000867017 00000 n +0000867082 00000 n +0000867148 00000 n +0000867211 00000 n +0000867276 00000 n +0000867341 00000 n +0000867405 00000 n +0000867469 00000 n +0000867534 00000 n +0000867598 00000 n +0000867662 00000 n +0000867726 00000 n +0000867792 00000 n +0000867857 00000 n +0000867923 00000 n +0000867987 00000 n +0000868051 00000 n +0000868117 00000 n +0000868181 00000 n +0000868247 00000 n +0000868311 00000 n +0000873299 00000 n +0000870355 00000 n +0000868491 00000 n +0000870655 00000 n +0000870719 00000 n +0000870783 00000 n +0000870847 00000 n +0000870913 00000 n +0000870979 00000 n +0000871174 00000 n +0000870502 00000 n +0000871367 00000 n +0000871431 00000 n +0000871497 00000 n +0000871692 00000 n +0000871756 00000 n +0000871820 00000 n +0000871886 00000 n +0000871950 00000 n +0000872014 00000 n +0000872078 00000 n +0000872143 00000 n +0000872207 00000 n +0000872271 00000 n +0000872336 00000 n +0000872400 00000 n +0000872464 00000 n +0000872529 00000 n +0000872593 00000 n +0000872657 00000 n +0000872722 00000 n 0000872786 00000 n -0000872981 00000 n -0000873045 00000 n -0000873109 00000 n -0000873175 00000 n -0000873239 00000 n -0000873303 00000 n -0000873367 00000 n -0000873432 00000 n -0000873496 00000 n -0000873560 00000 n -0000873625 00000 n -0000873689 00000 n -0000873753 00000 n -0000873818 00000 n -0000873882 00000 n -0000873946 00000 n -0000874011 00000 n -0000874075 00000 n -0000874139 00000 n -0000874204 00000 n -0000874266 00000 n -0000874330 00000 n -0000874395 00000 n -0000874459 00000 n -0000874523 00000 n -0000878883 00000 n -0000876579 00000 n -0000874690 00000 n -0000876897 00000 n -0000877025 00000 n -0000877089 00000 n -0000877153 00000 n -0000877218 00000 n -0000877282 00000 n -0000877347 00000 n -0000877411 00000 n -0000877475 00000 n -0000877540 00000 n -0000877604 00000 n -0000877668 00000 n -0000877733 00000 n -0000877796 00000 n -0000877860 00000 n -0000877925 00000 n -0000877989 00000 n -0000878053 00000 n -0000878118 00000 n -0000878180 00000 n -0000876726 00000 n -0000878372 00000 n -0000878563 00000 n -0000878627 00000 n -0000878691 00000 n -0000878755 00000 n -0000878819 00000 n -0000882972 00000 n -0000881692 00000 n -0000878999 00000 n -0000881818 00000 n -0000881947 00000 n -0000882011 00000 n -0000882075 00000 n -0000882139 00000 n -0000882203 00000 n -0000882267 00000 n -0000882459 00000 n -0000882523 00000 n -0000882587 00000 n -0000882651 00000 n -0000882715 00000 n -0000882908 00000 n -0000886456 00000 n -0000885241 00000 n -0000883088 00000 n -0000885367 00000 n -0000885431 00000 n -0000885495 00000 n -0000885688 00000 n -0000885752 00000 n -0000885816 00000 n -0000885880 00000 n -0000885944 00000 n -0000886008 00000 n -0000886071 00000 n -0000886135 00000 n -0000886328 00000 n -0000886392 00000 n -0001180946 00000 n -0000890753 00000 n -0000889160 00000 n -0000886558 00000 n -0000889657 00000 n -0000889721 00000 n -0000889787 00000 n -0000889853 00000 n -0000889316 00000 n -0000889917 00000 n -0000889982 00000 n -0000889484 00000 n -0000890175 00000 n -0000890238 00000 n -0000890302 00000 n -0000890495 00000 n -0000890559 00000 n -0000890623 00000 n -0000890687 00000 n -0000895085 00000 n -0000893700 00000 n -0000890869 00000 n -0000893999 00000 n -0000894063 00000 n -0000894127 00000 n -0000894191 00000 n -0000894254 00000 n -0000894446 00000 n -0000894510 00000 n -0000894574 00000 n -0000893847 00000 n -0000894638 00000 n -0000894700 00000 n -0000894764 00000 n -0000894828 00000 n -0000894892 00000 n -0000894956 00000 n -0000896404 00000 n -0000895958 00000 n -0000895201 00000 n -0000896084 00000 n -0000896213 00000 n -0000896277 00000 n -0000896340 00000 n -0000901244 00000 n -0000898792 00000 n -0000896520 00000 n -0000899107 00000 n -0000899428 00000 n -0000899492 00000 n -0000899558 00000 n -0000899622 00000 n -0000899687 00000 n -0000899753 00000 n -0000899817 00000 n -0000899882 00000 n -0000899948 00000 n -0000900013 00000 n -0000900077 00000 n -0000900270 00000 n -0000900334 00000 n -0000898939 00000 n -0000900526 00000 n -0000900590 00000 n -0000900656 00000 n -0000900722 00000 n -0000900788 00000 n -0000900852 00000 n -0000900918 00000 n -0000900982 00000 n -0000901048 00000 n -0000901114 00000 n -0000906316 00000 n -0000904121 00000 n -0000901388 00000 n -0000904247 00000 n +0000872850 00000 n +0000872915 00000 n +0000872977 00000 n +0000873041 00000 n +0000873106 00000 n +0000873170 00000 n +0000873234 00000 n +0000877594 00000 n +0000875290 00000 n +0000873401 00000 n +0000875608 00000 n +0000875736 00000 n +0000875800 00000 n +0000875864 00000 n +0000875929 00000 n +0000875993 00000 n +0000876058 00000 n +0000876122 00000 n +0000876186 00000 n +0000876251 00000 n +0000876315 00000 n +0000876379 00000 n +0000876444 00000 n +0000876507 00000 n +0000876571 00000 n +0000876636 00000 n +0000876700 00000 n +0000876764 00000 n +0000876829 00000 n +0000876891 00000 n +0000875437 00000 n +0000877083 00000 n +0000877274 00000 n +0000877338 00000 n +0000877402 00000 n +0000877466 00000 n +0000877530 00000 n +0000881683 00000 n +0000880403 00000 n +0000877710 00000 n +0000880529 00000 n +0000880658 00000 n +0000880722 00000 n +0000880786 00000 n +0000880850 00000 n +0000880914 00000 n +0000880978 00000 n +0000881170 00000 n +0000881234 00000 n +0000881298 00000 n +0000881362 00000 n +0000881426 00000 n +0000881619 00000 n +0000885167 00000 n +0000883952 00000 n +0000881799 00000 n +0000884078 00000 n +0000884142 00000 n +0000884206 00000 n +0000884399 00000 n +0000884463 00000 n +0000884527 00000 n +0000884591 00000 n +0000884655 00000 n +0000884719 00000 n +0000884782 00000 n +0000884846 00000 n +0000885039 00000 n +0000885103 00000 n +0001179669 00000 n +0000889464 00000 n +0000887871 00000 n +0000885269 00000 n +0000888368 00000 n +0000888432 00000 n +0000888498 00000 n +0000888564 00000 n +0000888027 00000 n +0000888628 00000 n +0000888693 00000 n +0000888195 00000 n +0000888886 00000 n +0000888949 00000 n +0000889013 00000 n +0000889206 00000 n +0000889270 00000 n +0000889334 00000 n +0000889398 00000 n +0000893796 00000 n +0000892411 00000 n +0000889580 00000 n +0000892710 00000 n +0000892774 00000 n +0000892838 00000 n +0000892902 00000 n +0000892965 00000 n +0000893157 00000 n +0000893221 00000 n +0000893285 00000 n +0000892558 00000 n +0000893349 00000 n +0000893411 00000 n +0000893475 00000 n +0000893539 00000 n +0000893603 00000 n +0000893667 00000 n +0000895115 00000 n +0000894669 00000 n +0000893912 00000 n +0000894795 00000 n +0000894924 00000 n +0000894988 00000 n +0000895051 00000 n +0000899955 00000 n +0000897503 00000 n +0000895231 00000 n +0000897818 00000 n +0000898139 00000 n +0000898203 00000 n +0000898269 00000 n +0000898333 00000 n +0000898398 00000 n +0000898464 00000 n +0000898528 00000 n +0000898593 00000 n +0000898659 00000 n +0000898724 00000 n +0000898788 00000 n +0000898981 00000 n +0000899045 00000 n +0000897650 00000 n +0000899237 00000 n +0000899301 00000 n +0000899367 00000 n +0000899433 00000 n +0000899499 00000 n +0000899563 00000 n +0000899629 00000 n +0000899693 00000 n +0000899759 00000 n +0000899825 00000 n +0000905027 00000 n +0000902832 00000 n +0000900099 00000 n +0000902958 00000 n +0000903022 00000 n +0000903151 00000 n +0000903215 00000 n +0000903279 00000 n +0000903344 00000 n +0000903410 00000 n +0000903473 00000 n +0000903536 00000 n +0000903600 00000 n +0000903663 00000 n +0000903729 00000 n +0000903793 00000 n +0000903857 00000 n +0000903923 00000 n +0000903987 00000 n +0000904051 00000 n +0000904115 00000 n +0000904179 00000 n +0000904245 00000 n 0000904311 00000 n -0000904440 00000 n -0000904504 00000 n -0000904568 00000 n -0000904633 00000 n -0000904699 00000 n -0000904762 00000 n -0000904825 00000 n -0000904889 00000 n -0000904952 00000 n -0000905018 00000 n -0000905082 00000 n -0000905146 00000 n -0000905212 00000 n -0000905276 00000 n -0000905340 00000 n -0000905404 00000 n -0000905468 00000 n -0000905534 00000 n -0000905600 00000 n -0000905666 00000 n -0000905731 00000 n -0000905797 00000 n -0000905863 00000 n -0000905929 00000 n -0000906122 00000 n -0000906186 00000 n -0000906250 00000 n -0000911437 00000 n -0000909567 00000 n -0000906474 00000 n -0000909693 00000 n -0000909757 00000 n -0000909821 00000 n -0000909885 00000 n -0000909949 00000 n -0000910013 00000 n -0000910079 00000 n -0000910274 00000 n -0000910338 00000 n -0000910404 00000 n -0000910468 00000 n -0000910534 00000 n -0000910598 00000 n -0000910663 00000 n -0000910727 00000 n -0000910791 00000 n -0000910855 00000 n -0000910919 00000 n -0000910984 00000 n -0000911048 00000 n -0000911112 00000 n -0000911178 00000 n -0000911242 00000 n -0000911307 00000 n -0001181071 00000 n -0000917417 00000 n -0000914969 00000 n -0000911567 00000 n +0000904377 00000 n +0000904442 00000 n +0000904508 00000 n +0000904574 00000 n +0000904640 00000 n +0000904833 00000 n +0000904897 00000 n +0000904961 00000 n +0000910148 00000 n +0000908278 00000 n +0000905185 00000 n +0000908404 00000 n +0000908468 00000 n +0000908532 00000 n +0000908596 00000 n +0000908660 00000 n +0000908724 00000 n +0000908790 00000 n +0000908985 00000 n +0000909049 00000 n +0000909115 00000 n +0000909179 00000 n +0000909245 00000 n +0000909309 00000 n +0000909374 00000 n +0000909438 00000 n +0000909502 00000 n +0000909566 00000 n +0000909630 00000 n +0000909695 00000 n +0000909759 00000 n +0000909823 00000 n +0000909889 00000 n +0000909953 00000 n +0000910018 00000 n +0001179794 00000 n +0000916128 00000 n +0000913680 00000 n +0000910278 00000 n +0000913806 00000 n +0000913870 00000 n +0000913999 00000 n +0000914063 00000 n +0000914127 00000 n +0000914191 00000 n +0000914255 00000 n +0000914319 00000 n +0000914385 00000 n +0000914449 00000 n +0000914513 00000 n +0000914577 00000 n +0000914641 00000 n +0000914707 00000 n +0000914773 00000 n +0000914839 00000 n +0000914903 00000 n +0000914967 00000 n +0000915031 00000 n 0000915095 00000 n 0000915159 00000 n -0000915288 00000 n -0000915352 00000 n -0000915416 00000 n +0000915223 00000 n +0000915287 00000 n +0000915351 00000 n +0000915415 00000 n 0000915480 00000 n 0000915544 00000 n 0000915608 00000 n -0000915674 00000 n +0000915672 00000 n 0000915738 00000 n -0000915802 00000 n +0000915804 00000 n 0000915866 00000 n 0000915930 00000 n 0000915996 00000 n 0000916062 00000 n -0000916128 00000 n -0000916192 00000 n -0000916256 00000 n -0000916320 00000 n -0000916384 00000 n -0000916448 00000 n -0000916512 00000 n -0000916576 00000 n -0000916640 00000 n -0000916704 00000 n -0000916769 00000 n -0000916833 00000 n -0000916897 00000 n -0000916961 00000 n -0000917027 00000 n -0000917093 00000 n -0000917155 00000 n -0000917219 00000 n -0000917285 00000 n -0000917351 00000 n -0000921295 00000 n -0000919947 00000 n -0000917547 00000 n -0000920073 00000 n -0000920137 00000 n -0000920201 00000 n -0000920267 00000 n -0000920331 00000 n -0000920395 00000 n -0000920459 00000 n -0000920652 00000 n -0000920716 00000 n -0000920908 00000 n -0000920972 00000 n -0000921038 00000 n -0000921102 00000 n -0000921166 00000 n -0000921230 00000 n -0000926765 00000 n -0000924568 00000 n -0000921425 00000 n -0000924694 00000 n -0000924758 00000 n -0000924822 00000 n -0000924886 00000 n -0000924951 00000 n -0000925016 00000 n -0000925081 00000 n -0000925147 00000 n -0000925211 00000 n -0000925275 00000 n -0000925340 00000 n -0000925406 00000 n -0000925472 00000 n -0000925536 00000 n -0000925602 00000 n -0000925668 00000 n -0000925734 00000 n -0000925798 00000 n -0000925864 00000 n -0000925928 00000 n -0000925992 00000 n -0000926056 00000 n -0000926120 00000 n -0000926184 00000 n -0000926248 00000 n -0000926312 00000 n -0000926378 00000 n -0000926442 00000 n -0000926508 00000 n -0000926574 00000 n -0000926639 00000 n -0000926703 00000 n -0000931557 00000 n -0000929492 00000 n -0000926881 00000 n -0000929618 00000 n -0000929682 00000 n -0000929746 00000 n -0000929810 00000 n -0000929876 00000 n -0000929940 00000 n -0000930003 00000 n -0000930069 00000 n -0000930133 00000 n -0000930198 00000 n -0000930262 00000 n -0000930326 00000 n -0000930390 00000 n -0000930453 00000 n -0000930517 00000 n -0000930581 00000 n -0000930645 00000 n -0000930711 00000 n -0000930777 00000 n -0000930843 00000 n -0000930907 00000 n -0000930973 00000 n -0000931039 00000 n -0000931104 00000 n -0000931168 00000 n -0000931233 00000 n -0000931299 00000 n -0000931365 00000 n -0000931430 00000 n -0000935851 00000 n -0000934497 00000 n -0000931659 00000 n -0000934623 00000 n -0000934687 00000 n -0000934816 00000 n -0000934880 00000 n -0000934945 00000 n -0000935007 00000 n -0000935073 00000 n -0000935139 00000 n -0000935202 00000 n -0000935267 00000 n -0000935333 00000 n -0000935399 00000 n -0000935463 00000 n -0000935529 00000 n -0000935593 00000 n -0000935657 00000 n -0000935723 00000 n -0000935787 00000 n -0000940102 00000 n -0000938311 00000 n -0000935981 00000 n -0000938939 00000 n -0000939003 00000 n -0000939067 00000 n -0000939133 00000 n -0000939199 00000 n -0000939521 00000 n -0000938476 00000 n -0000938627 00000 n -0000938783 00000 n -0000939713 00000 n -0000939777 00000 n -0000939841 00000 n -0000939907 00000 n -0000939972 00000 n -0000940036 00000 n -0001181196 00000 n -0000943009 00000 n -0000941657 00000 n -0000940232 00000 n -0000941783 00000 n -0000941847 00000 n -0000941911 00000 n -0000942106 00000 n -0000942170 00000 n -0000942234 00000 n -0000942299 00000 n -0000942365 00000 n -0000942556 00000 n -0000942620 00000 n -0000942815 00000 n -0000942879 00000 n -0000942943 00000 n -0000948039 00000 n -0000945632 00000 n -0000943111 00000 n -0000946108 00000 n -0000946300 00000 n -0000946493 00000 n -0000946557 00000 n -0000946623 00000 n -0000946689 00000 n -0000945788 00000 n -0000945948 00000 n -0000946753 00000 n -0000946818 00000 n -0000946882 00000 n -0000946948 00000 n -0000947012 00000 n -0000947208 00000 n -0000947272 00000 n -0000947337 00000 n -0000947403 00000 n -0000947466 00000 n -0000947656 00000 n -0000947720 00000 n -0000947784 00000 n -0000947848 00000 n -0000947913 00000 n -0000947976 00000 n -0000951942 00000 n -0000950007 00000 n -0000948183 00000 n -0000950133 00000 n -0000950197 00000 n -0000950392 00000 n -0000950456 00000 n -0000950519 00000 n -0000950583 00000 n -0000950649 00000 n -0000950713 00000 n -0000950777 00000 n -0000950841 00000 n -0000951035 00000 n -0000951099 00000 n -0000951165 00000 n -0000951229 00000 n -0000951293 00000 n -0000951359 00000 n -0000951424 00000 n -0000951490 00000 n -0000951554 00000 n -0000951618 00000 n -0000951813 00000 n -0000951877 00000 n -0000955863 00000 n -0000954253 00000 n -0000952086 00000 n -0000954379 00000 n -0000954443 00000 n -0000954507 00000 n -0000954573 00000 n -0000954637 00000 n -0000954701 00000 n -0000954765 00000 n -0000954829 00000 n -0000954893 00000 n -0000954959 00000 n -0000955025 00000 n -0000955089 00000 n -0000955152 00000 n -0000955216 00000 n -0000955280 00000 n -0000955345 00000 n -0000955411 00000 n -0000955475 00000 n -0000955541 00000 n -0000955736 00000 n -0000955799 00000 n -0000959263 00000 n -0000957856 00000 n -0000955979 00000 n -0000958161 00000 n -0000958225 00000 n -0000958289 00000 n -0000958355 00000 n -0000958550 00000 n -0000958613 00000 n -0000958677 00000 n -0000958743 00000 n -0000958003 00000 n -0000958939 00000 n -0000959003 00000 n -0000959067 00000 n -0000959133 00000 n -0000959197 00000 n -0000965612 00000 n -0000962433 00000 n -0000959393 00000 n -0000962559 00000 n -0000962751 00000 n -0000962815 00000 n -0000963011 00000 n -0000963075 00000 n -0000963141 00000 n -0000963207 00000 n -0000963273 00000 n -0000963339 00000 n -0000963403 00000 n -0000963469 00000 n -0000963533 00000 n -0000963597 00000 n -0000963661 00000 n -0000963727 00000 n -0000963791 00000 n -0000963855 00000 n -0000963921 00000 n -0000963987 00000 n -0000964053 00000 n -0000964119 00000 n -0000964185 00000 n -0000964251 00000 n -0000964315 00000 n -0000964381 00000 n -0000964445 00000 n -0000964509 00000 n -0000964575 00000 n -0000964639 00000 n -0000964704 00000 n -0000964768 00000 n -0000964834 00000 n -0000965030 00000 n -0000965094 00000 n -0000965160 00000 n -0000965226 00000 n -0000965290 00000 n -0000965355 00000 n -0000965420 00000 n -0000965484 00000 n -0000965548 00000 n -0001181321 00000 n -0000969808 00000 n -0000967425 00000 n -0000965756 00000 n -0000967743 00000 n -0000968066 00000 n -0000968130 00000 n -0000968194 00000 n -0000968258 00000 n -0000968322 00000 n -0000968386 00000 n -0000968450 00000 n -0000968514 00000 n -0000968578 00000 n -0000968642 00000 n -0000968707 00000 n -0000968771 00000 n -0000968837 00000 n -0000968903 00000 n -0000967572 00000 n -0000969097 00000 n -0000969160 00000 n -0000969224 00000 n -0000969289 00000 n -0000969354 00000 n -0000969418 00000 n -0000969482 00000 n -0000969548 00000 n -0000969614 00000 n -0000969678 00000 n -0000969742 00000 n -0000972444 00000 n -0000970565 00000 n -0000969938 00000 n -0000970691 00000 n -0000970755 00000 n -0000970821 00000 n -0000970885 00000 n -0000970948 00000 n -0000971014 00000 n -0000971080 00000 n -0000971144 00000 n -0000971208 00000 n -0000971274 00000 n -0000971340 00000 n -0000971404 00000 n -0000971468 00000 n -0000971534 00000 n -0000971600 00000 n -0000971664 00000 n -0000971728 00000 n -0000971794 00000 n -0000971860 00000 n -0000971924 00000 n -0000971988 00000 n -0000972054 00000 n -0000972120 00000 n -0000972184 00000 n -0000972248 00000 n -0000972314 00000 n -0000972380 00000 n -0000975344 00000 n -0000973269 00000 n -0000972532 00000 n -0000973395 00000 n -0000973459 00000 n -0000973523 00000 n -0000973589 00000 n -0000973655 00000 n -0000973719 00000 n -0000973783 00000 n -0000973849 00000 n -0000973915 00000 n -0000973979 00000 n -0000974043 00000 n -0000974109 00000 n -0000974305 00000 n -0000974369 00000 n -0000974433 00000 n -0000974499 00000 n -0000974564 00000 n -0000974628 00000 n -0000974692 00000 n -0000974758 00000 n -0000974824 00000 n -0000974888 00000 n -0000974952 00000 n -0000975018 00000 n -0000975084 00000 n -0000975148 00000 n -0000975212 00000 n -0000975278 00000 n -0000976671 00000 n -0000975962 00000 n -0000975446 00000 n -0000976088 00000 n -0000976152 00000 n -0000976216 00000 n -0000976280 00000 n -0000976346 00000 n -0000976412 00000 n -0000976476 00000 n -0000976540 00000 n -0000976605 00000 n -0000980768 00000 n -0000979427 00000 n -0000976759 00000 n -0000979553 00000 n -0000979744 00000 n -0000979808 00000 n -0000979872 00000 n -0000980064 00000 n -0000980128 00000 n -0000980192 00000 n -0000980384 00000 n -0000980448 00000 n -0000980512 00000 n -0000980576 00000 n -0000980640 00000 n -0000980704 00000 n -0000984831 00000 n -0000983934 00000 n -0000980870 00000 n -0000984060 00000 n -0000984124 00000 n -0000984188 00000 n -0000984382 00000 n -0000984446 00000 n -0000984639 00000 n -0000984703 00000 n -0000984767 00000 n -0001181446 00000 n -0000990550 00000 n -0000988108 00000 n -0000984933 00000 n -0000988234 00000 n -0000988298 00000 n -0000988362 00000 n -0000988556 00000 n -0000988620 00000 n -0000988684 00000 n -0000988747 00000 n -0000988812 00000 n -0000988876 00000 n -0000988941 00000 n -0000989005 00000 n -0000989070 00000 n -0000989134 00000 n -0000989199 00000 n -0000989262 00000 n -0000989327 00000 n -0000989391 00000 n -0000989456 00000 n -0000989520 00000 n -0000989585 00000 n -0000989649 00000 n -0000989714 00000 n -0000989778 00000 n -0000989843 00000 n -0000989907 00000 n -0000989972 00000 n -0000990035 00000 n -0000990100 00000 n -0000990164 00000 n -0000990229 00000 n -0000990293 00000 n -0000990358 00000 n -0000990422 00000 n -0000990486 00000 n -0000994394 00000 n -0000993303 00000 n -0000990652 00000 n -0000993429 00000 n -0000993493 00000 n -0000993557 00000 n -0000993751 00000 n -0000993815 00000 n -0000993879 00000 n -0000994073 00000 n -0000994137 00000 n -0000994330 00000 n -0000998288 00000 n -0000997003 00000 n -0000994496 00000 n -0000997129 00000 n -0000997193 00000 n -0000997387 00000 n -0000997581 00000 n -0000997773 00000 n -0000997837 00000 n -0000997903 00000 n -0000998097 00000 n -0000998161 00000 n -0000998224 00000 n -0000999553 00000 n -0000999235 00000 n -0000998390 00000 n -0000999361 00000 n -0000999425 00000 n -0000999489 00000 n -0001005356 00000 n -0001001563 00000 n -0000999641 00000 n -0001001869 00000 n -0001002062 00000 n -0001002319 00000 n -0001002383 00000 n -0001002447 00000 n -0001002513 00000 n -0001002578 00000 n -0001002707 00000 n -0001002837 00000 n -0001002901 00000 n -0001002965 00000 n -0001003030 00000 n -0001003096 00000 n -0001003160 00000 n -0001003290 00000 n -0001003354 00000 n -0001003418 00000 n -0001003482 00000 n -0001003546 00000 n -0001003612 00000 n -0001003676 00000 n -0001003740 00000 n -0001003804 00000 n -0001003868 00000 n -0001003932 00000 n -0001003996 00000 n -0001004060 00000 n -0001004126 00000 n -0001004192 00000 n -0001004256 00000 n -0001004320 00000 n -0001004384 00000 n -0001004448 00000 n -0001004514 00000 n -0001004580 00000 n -0001004645 00000 n -0001004710 00000 n -0001004775 00000 n -0001004840 00000 n -0001004906 00000 n -0001004970 00000 n -0001005034 00000 n -0001005098 00000 n -0001005162 00000 n -0001005228 00000 n -0001001710 00000 n -0001005292 00000 n -0001009856 00000 n -0001007021 00000 n -0001005486 00000 n -0001007147 00000 n -0001007276 00000 n -0001007405 00000 n -0001007469 00000 n -0001007533 00000 n -0001007599 00000 n -0001007663 00000 n -0001007728 00000 n -0001007858 00000 n -0001007922 00000 n -0001008116 00000 n -0001008180 00000 n -0001008244 00000 n -0001008502 00000 n -0001008565 00000 n -0001008629 00000 n -0001008693 00000 n -0001008758 00000 n -0001008888 00000 n -0001008952 00000 n -0001009145 00000 n -0001009209 00000 n -0001009273 00000 n -0001009337 00000 n -0001009402 00000 n -0001009532 00000 n -0001009662 00000 n -0001009726 00000 n -0001009790 00000 n -0001181571 00000 n -0001013652 00000 n -0001011458 00000 n -0001009986 00000 n -0001011584 00000 n -0001011648 00000 n -0001011712 00000 n -0001011778 00000 n -0001011842 00000 n -0001011908 00000 n -0001012167 00000 n -0001012230 00000 n -0001012294 00000 n -0001012360 00000 n -0001012425 00000 n -0001012555 00000 n -0001012619 00000 n -0001012683 00000 n -0001012812 00000 n -0001012941 00000 n -0001013005 00000 n -0001013069 00000 n -0001013135 00000 n -0001013201 00000 n -0001013266 00000 n -0001013394 00000 n -0001013524 00000 n -0001013588 00000 n -0001018529 00000 n -0001015404 00000 n -0001013782 00000 n -0001015881 00000 n -0001016010 00000 n -0001016140 00000 n -0001016204 00000 n -0001016268 00000 n -0001016334 00000 n -0001016399 00000 n -0001016465 00000 n -0001016531 00000 n -0001016596 00000 n -0001016725 00000 n -0001016789 00000 n -0001015560 00000 n -0001016852 00000 n -0001016918 00000 n -0001016982 00000 n -0001017046 00000 n -0001017110 00000 n -0001017174 00000 n -0001017240 00000 n -0001017304 00000 n -0001017368 00000 n -0001017432 00000 n -0001017498 00000 n -0001017564 00000 n -0001017628 00000 n -0001017692 00000 n -0001017756 00000 n -0001015719 00000 n -0001017822 00000 n -0001018080 00000 n -0001018144 00000 n -0001018208 00000 n -0001018402 00000 n -0001018465 00000 n -0001021386 00000 n -0001022416 00000 n -0001020031 00000 n -0001018645 00000 n -0001020157 00000 n -0001020221 00000 n -0001020350 00000 n -0001020414 00000 n -0001020478 00000 n -0001020543 00000 n -0001020672 00000 n -0001020801 00000 n -0001020865 00000 n -0001020929 00000 n -0001020993 00000 n -0001021059 00000 n -0001021125 00000 n -0001021191 00000 n -0001021257 00000 n -0001021516 00000 n -0001021580 00000 n -0001021643 00000 n -0001021771 00000 n -0001021835 00000 n -0001021899 00000 n -0001021965 00000 n -0001022223 00000 n -0001022287 00000 n -0001022351 00000 n -0001027096 00000 n -0001024574 00000 n -0001022518 00000 n -0001024700 00000 n -0001024764 00000 n -0001024828 00000 n -0001024958 00000 n -0001025022 00000 n -0001025086 00000 n -0001025150 00000 n -0001025216 00000 n -0001025282 00000 n -0001025348 00000 n -0001025414 00000 n -0001025480 00000 n -0001025545 00000 n -0001025610 00000 n -0001025676 00000 n -0001025742 00000 n -0001025870 00000 n -0001026000 00000 n -0001026064 00000 n -0001026128 00000 n -0001026194 00000 n -0001026324 00000 n -0001026388 00000 n -0001026452 00000 n -0001026581 00000 n -0001026711 00000 n -0001026775 00000 n -0001026838 00000 n -0001026902 00000 n -0001026966 00000 n -0001027030 00000 n -0001029935 00000 n -0001029902 00000 n -0001030033 00000 n -0001048016 00000 n -0001058618 00000 n -0001069278 00000 n -0001082438 00000 n -0001103818 00000 n -0001122917 00000 n -0001140602 00000 n -0001163522 00000 n -0001178598 00000 n -0001181687 00000 n -0001181813 00000 n -0001181939 00000 n -0001182065 00000 n -0001182164 00000 n -0001182256 00000 n -0001213253 00000 n -0001273633 00000 n -0001273674 00000 n -0001273714 00000 n -0001273849 00000 n +0000920006 00000 n +0000918658 00000 n +0000916258 00000 n +0000918784 00000 n +0000918848 00000 n +0000918912 00000 n +0000918978 00000 n +0000919042 00000 n +0000919106 00000 n +0000919170 00000 n +0000919363 00000 n +0000919427 00000 n +0000919619 00000 n +0000919683 00000 n +0000919749 00000 n +0000919813 00000 n +0000919877 00000 n +0000919941 00000 n +0000925476 00000 n +0000923279 00000 n +0000920136 00000 n +0000923405 00000 n +0000923469 00000 n +0000923533 00000 n +0000923597 00000 n +0000923662 00000 n +0000923727 00000 n +0000923792 00000 n +0000923858 00000 n +0000923922 00000 n +0000923986 00000 n +0000924051 00000 n +0000924117 00000 n +0000924183 00000 n +0000924247 00000 n +0000924313 00000 n +0000924379 00000 n +0000924445 00000 n +0000924509 00000 n +0000924575 00000 n +0000924639 00000 n +0000924703 00000 n +0000924767 00000 n +0000924831 00000 n +0000924895 00000 n +0000924959 00000 n +0000925023 00000 n +0000925089 00000 n +0000925153 00000 n +0000925219 00000 n +0000925285 00000 n +0000925350 00000 n +0000925414 00000 n +0000930275 00000 n +0000928210 00000 n +0000925592 00000 n +0000928336 00000 n +0000928400 00000 n +0000928464 00000 n +0000928528 00000 n +0000928594 00000 n +0000928658 00000 n +0000928721 00000 n +0000928787 00000 n +0000928851 00000 n +0000928916 00000 n +0000928980 00000 n +0000929044 00000 n +0000929108 00000 n +0000929171 00000 n +0000929235 00000 n +0000929299 00000 n +0000929363 00000 n +0000929429 00000 n +0000929495 00000 n +0000929561 00000 n +0000929625 00000 n +0000929691 00000 n +0000929757 00000 n +0000929822 00000 n +0000929886 00000 n +0000929951 00000 n +0000930017 00000 n +0000930083 00000 n +0000930148 00000 n +0000934572 00000 n +0000933218 00000 n +0000930377 00000 n +0000933344 00000 n +0000933408 00000 n +0000933537 00000 n +0000933601 00000 n +0000933666 00000 n +0000933728 00000 n +0000933794 00000 n +0000933860 00000 n +0000933923 00000 n +0000933988 00000 n +0000934054 00000 n +0000934120 00000 n +0000934184 00000 n +0000934250 00000 n +0000934314 00000 n +0000934378 00000 n +0000934444 00000 n +0000934508 00000 n +0000938823 00000 n +0000937032 00000 n +0000934702 00000 n +0000937660 00000 n +0000937724 00000 n +0000937788 00000 n +0000937854 00000 n +0000937920 00000 n +0000938242 00000 n +0000937197 00000 n +0000937348 00000 n +0000937504 00000 n +0000938434 00000 n +0000938498 00000 n +0000938562 00000 n +0000938628 00000 n +0000938693 00000 n +0000938757 00000 n +0001179919 00000 n +0000941730 00000 n +0000940378 00000 n +0000938953 00000 n +0000940504 00000 n +0000940568 00000 n +0000940632 00000 n +0000940827 00000 n +0000940891 00000 n +0000940955 00000 n +0000941020 00000 n +0000941086 00000 n +0000941277 00000 n +0000941341 00000 n +0000941536 00000 n +0000941600 00000 n +0000941664 00000 n +0000946760 00000 n +0000944353 00000 n +0000941832 00000 n +0000944829 00000 n +0000945021 00000 n +0000945214 00000 n +0000945278 00000 n +0000945344 00000 n +0000945410 00000 n +0000944509 00000 n +0000944669 00000 n +0000945474 00000 n +0000945539 00000 n +0000945603 00000 n +0000945669 00000 n +0000945733 00000 n +0000945929 00000 n +0000945993 00000 n +0000946058 00000 n +0000946124 00000 n +0000946187 00000 n +0000946377 00000 n +0000946441 00000 n +0000946505 00000 n +0000946569 00000 n +0000946634 00000 n +0000946697 00000 n +0000950663 00000 n +0000948728 00000 n +0000946904 00000 n +0000948854 00000 n +0000948918 00000 n +0000949113 00000 n +0000949177 00000 n +0000949240 00000 n +0000949304 00000 n +0000949370 00000 n +0000949434 00000 n +0000949498 00000 n +0000949562 00000 n +0000949756 00000 n +0000949820 00000 n +0000949886 00000 n +0000949950 00000 n +0000950014 00000 n +0000950080 00000 n +0000950145 00000 n +0000950211 00000 n +0000950275 00000 n +0000950339 00000 n +0000950534 00000 n +0000950598 00000 n +0000954584 00000 n +0000952974 00000 n +0000950807 00000 n +0000953100 00000 n +0000953164 00000 n +0000953228 00000 n +0000953294 00000 n +0000953358 00000 n +0000953422 00000 n +0000953486 00000 n +0000953550 00000 n +0000953614 00000 n +0000953680 00000 n +0000953746 00000 n +0000953810 00000 n +0000953873 00000 n +0000953937 00000 n +0000954001 00000 n +0000954066 00000 n +0000954132 00000 n +0000954196 00000 n +0000954262 00000 n +0000954457 00000 n +0000954520 00000 n +0000957984 00000 n +0000956577 00000 n +0000954700 00000 n +0000956882 00000 n +0000956946 00000 n +0000957010 00000 n +0000957076 00000 n +0000957271 00000 n +0000957334 00000 n +0000957398 00000 n +0000957464 00000 n +0000956724 00000 n +0000957660 00000 n +0000957724 00000 n +0000957788 00000 n +0000957854 00000 n +0000957918 00000 n +0000964333 00000 n +0000961154 00000 n +0000958114 00000 n +0000961280 00000 n +0000961472 00000 n +0000961536 00000 n +0000961732 00000 n +0000961796 00000 n +0000961862 00000 n +0000961928 00000 n +0000961994 00000 n +0000962060 00000 n +0000962124 00000 n +0000962190 00000 n +0000962254 00000 n +0000962318 00000 n +0000962382 00000 n +0000962448 00000 n +0000962512 00000 n +0000962576 00000 n +0000962642 00000 n +0000962708 00000 n +0000962774 00000 n +0000962840 00000 n +0000962906 00000 n +0000962972 00000 n +0000963036 00000 n +0000963102 00000 n +0000963166 00000 n +0000963230 00000 n +0000963296 00000 n +0000963360 00000 n +0000963425 00000 n +0000963489 00000 n +0000963555 00000 n +0000963751 00000 n +0000963815 00000 n +0000963881 00000 n +0000963947 00000 n +0000964011 00000 n +0000964076 00000 n +0000964141 00000 n +0000964205 00000 n +0000964269 00000 n +0001180044 00000 n +0000968529 00000 n +0000966146 00000 n +0000964477 00000 n +0000966464 00000 n +0000966787 00000 n +0000966851 00000 n +0000966915 00000 n +0000966979 00000 n +0000967043 00000 n +0000967107 00000 n +0000967171 00000 n +0000967235 00000 n +0000967299 00000 n +0000967363 00000 n +0000967428 00000 n +0000967492 00000 n +0000967558 00000 n +0000967624 00000 n +0000966293 00000 n +0000967818 00000 n +0000967881 00000 n +0000967945 00000 n +0000968010 00000 n +0000968075 00000 n +0000968139 00000 n +0000968203 00000 n +0000968269 00000 n +0000968335 00000 n +0000968399 00000 n +0000968463 00000 n +0000971165 00000 n +0000969286 00000 n +0000968659 00000 n +0000969412 00000 n +0000969476 00000 n +0000969542 00000 n +0000969606 00000 n +0000969669 00000 n +0000969735 00000 n +0000969801 00000 n +0000969865 00000 n +0000969929 00000 n +0000969995 00000 n +0000970061 00000 n +0000970125 00000 n +0000970189 00000 n +0000970255 00000 n +0000970321 00000 n +0000970385 00000 n +0000970449 00000 n +0000970515 00000 n +0000970581 00000 n +0000970645 00000 n +0000970709 00000 n +0000970775 00000 n +0000970841 00000 n +0000970905 00000 n +0000970969 00000 n +0000971035 00000 n +0000971101 00000 n +0000974065 00000 n +0000971990 00000 n +0000971253 00000 n +0000972116 00000 n +0000972180 00000 n +0000972244 00000 n +0000972310 00000 n +0000972376 00000 n +0000972440 00000 n +0000972504 00000 n +0000972570 00000 n +0000972636 00000 n +0000972700 00000 n +0000972764 00000 n +0000972830 00000 n +0000973026 00000 n +0000973090 00000 n +0000973154 00000 n +0000973220 00000 n +0000973285 00000 n +0000973349 00000 n +0000973413 00000 n +0000973479 00000 n +0000973545 00000 n +0000973609 00000 n +0000973673 00000 n +0000973739 00000 n +0000973805 00000 n +0000973869 00000 n +0000973933 00000 n +0000973999 00000 n +0000975392 00000 n +0000974683 00000 n +0000974167 00000 n +0000974809 00000 n +0000974873 00000 n +0000974937 00000 n +0000975001 00000 n +0000975067 00000 n +0000975133 00000 n +0000975197 00000 n +0000975261 00000 n +0000975326 00000 n +0000979489 00000 n +0000978148 00000 n +0000975480 00000 n +0000978274 00000 n +0000978465 00000 n +0000978529 00000 n +0000978593 00000 n +0000978785 00000 n +0000978849 00000 n +0000978913 00000 n +0000979105 00000 n +0000979169 00000 n +0000979233 00000 n +0000979297 00000 n +0000979361 00000 n +0000979425 00000 n +0000983552 00000 n +0000982655 00000 n +0000979591 00000 n +0000982781 00000 n +0000982845 00000 n +0000982909 00000 n +0000983103 00000 n +0000983167 00000 n +0000983360 00000 n +0000983424 00000 n +0000983488 00000 n +0001180169 00000 n +0000989271 00000 n +0000986829 00000 n +0000983654 00000 n +0000986955 00000 n +0000987019 00000 n +0000987083 00000 n +0000987277 00000 n +0000987341 00000 n +0000987405 00000 n +0000987468 00000 n +0000987533 00000 n +0000987597 00000 n +0000987662 00000 n +0000987726 00000 n +0000987791 00000 n +0000987855 00000 n +0000987920 00000 n +0000987983 00000 n +0000988048 00000 n +0000988112 00000 n +0000988177 00000 n +0000988241 00000 n +0000988306 00000 n +0000988370 00000 n +0000988435 00000 n +0000988499 00000 n +0000988564 00000 n +0000988628 00000 n +0000988693 00000 n +0000988756 00000 n +0000988821 00000 n +0000988885 00000 n +0000988950 00000 n +0000989014 00000 n +0000989079 00000 n +0000989143 00000 n +0000989207 00000 n +0000993115 00000 n +0000992024 00000 n +0000989373 00000 n +0000992150 00000 n +0000992214 00000 n +0000992278 00000 n +0000992472 00000 n +0000992536 00000 n +0000992600 00000 n +0000992794 00000 n +0000992858 00000 n +0000993051 00000 n +0000997009 00000 n +0000995724 00000 n +0000993217 00000 n +0000995850 00000 n +0000995914 00000 n +0000996108 00000 n +0000996302 00000 n +0000996494 00000 n +0000996558 00000 n +0000996624 00000 n +0000996818 00000 n +0000996882 00000 n +0000996945 00000 n +0000998274 00000 n +0000997956 00000 n +0000997111 00000 n +0000998082 00000 n +0000998146 00000 n +0000998210 00000 n +0001004077 00000 n +0001000284 00000 n +0000998362 00000 n +0001000590 00000 n +0001000783 00000 n +0001001040 00000 n +0001001104 00000 n +0001001168 00000 n +0001001234 00000 n +0001001299 00000 n +0001001428 00000 n +0001001558 00000 n +0001001622 00000 n +0001001686 00000 n +0001001751 00000 n +0001001817 00000 n +0001001881 00000 n +0001002011 00000 n +0001002075 00000 n +0001002139 00000 n +0001002203 00000 n +0001002267 00000 n +0001002333 00000 n +0001002397 00000 n +0001002461 00000 n +0001002525 00000 n +0001002589 00000 n +0001002653 00000 n +0001002717 00000 n +0001002781 00000 n +0001002847 00000 n +0001002913 00000 n +0001002977 00000 n +0001003041 00000 n +0001003105 00000 n +0001003169 00000 n +0001003235 00000 n +0001003301 00000 n +0001003366 00000 n +0001003431 00000 n +0001003496 00000 n +0001003561 00000 n +0001003627 00000 n +0001003691 00000 n +0001003755 00000 n +0001003819 00000 n +0001003883 00000 n +0001003949 00000 n +0001000431 00000 n +0001004013 00000 n +0001008577 00000 n +0001005742 00000 n +0001004207 00000 n +0001005868 00000 n +0001005997 00000 n +0001006126 00000 n +0001006190 00000 n +0001006254 00000 n +0001006320 00000 n +0001006384 00000 n +0001006449 00000 n +0001006579 00000 n +0001006643 00000 n +0001006837 00000 n +0001006901 00000 n +0001006965 00000 n +0001007223 00000 n +0001007286 00000 n +0001007350 00000 n +0001007414 00000 n +0001007479 00000 n +0001007609 00000 n +0001007673 00000 n +0001007866 00000 n +0001007930 00000 n +0001007994 00000 n +0001008058 00000 n +0001008123 00000 n +0001008253 00000 n +0001008383 00000 n +0001008447 00000 n +0001008511 00000 n +0001180294 00000 n +0001012373 00000 n +0001010179 00000 n +0001008707 00000 n +0001010305 00000 n +0001010369 00000 n +0001010433 00000 n +0001010499 00000 n +0001010563 00000 n +0001010629 00000 n +0001010888 00000 n +0001010951 00000 n +0001011015 00000 n +0001011081 00000 n +0001011146 00000 n +0001011276 00000 n +0001011340 00000 n +0001011404 00000 n +0001011533 00000 n +0001011662 00000 n +0001011726 00000 n +0001011790 00000 n +0001011856 00000 n +0001011922 00000 n +0001011987 00000 n +0001012115 00000 n +0001012245 00000 n +0001012309 00000 n +0001017250 00000 n +0001014125 00000 n +0001012503 00000 n +0001014602 00000 n +0001014731 00000 n +0001014861 00000 n +0001014925 00000 n +0001014989 00000 n +0001015055 00000 n +0001015120 00000 n +0001015186 00000 n +0001015252 00000 n +0001015317 00000 n +0001015446 00000 n +0001015510 00000 n +0001014281 00000 n +0001015573 00000 n +0001015639 00000 n +0001015703 00000 n +0001015767 00000 n +0001015831 00000 n +0001015895 00000 n +0001015961 00000 n +0001016025 00000 n +0001016089 00000 n +0001016153 00000 n +0001016219 00000 n +0001016285 00000 n +0001016349 00000 n +0001016413 00000 n +0001016477 00000 n +0001014440 00000 n +0001016543 00000 n +0001016801 00000 n +0001016865 00000 n +0001016929 00000 n +0001017123 00000 n +0001017186 00000 n +0001020107 00000 n +0001021137 00000 n +0001018752 00000 n +0001017366 00000 n +0001018878 00000 n +0001018942 00000 n +0001019071 00000 n +0001019135 00000 n +0001019199 00000 n +0001019264 00000 n +0001019393 00000 n +0001019522 00000 n +0001019586 00000 n +0001019650 00000 n +0001019714 00000 n +0001019780 00000 n +0001019846 00000 n +0001019912 00000 n +0001019978 00000 n +0001020237 00000 n +0001020301 00000 n +0001020364 00000 n +0001020492 00000 n +0001020556 00000 n +0001020620 00000 n +0001020686 00000 n +0001020944 00000 n +0001021008 00000 n +0001021072 00000 n +0001025817 00000 n +0001023295 00000 n +0001021239 00000 n +0001023421 00000 n +0001023485 00000 n +0001023549 00000 n +0001023679 00000 n +0001023743 00000 n +0001023807 00000 n +0001023871 00000 n +0001023937 00000 n +0001024003 00000 n +0001024069 00000 n +0001024135 00000 n +0001024201 00000 n +0001024266 00000 n +0001024331 00000 n +0001024397 00000 n +0001024463 00000 n +0001024591 00000 n +0001024721 00000 n +0001024785 00000 n +0001024849 00000 n +0001024915 00000 n +0001025045 00000 n +0001025109 00000 n +0001025173 00000 n +0001025302 00000 n +0001025432 00000 n +0001025496 00000 n +0001025559 00000 n +0001025623 00000 n +0001025687 00000 n +0001025751 00000 n +0001028657 00000 n +0001028624 00000 n +0001028755 00000 n +0001046739 00000 n +0001057341 00000 n +0001068001 00000 n +0001081161 00000 n +0001102541 00000 n +0001121640 00000 n +0001139325 00000 n +0001162245 00000 n +0001177321 00000 n +0001180410 00000 n +0001180536 00000 n +0001180662 00000 n +0001180788 00000 n +0001180887 00000 n +0001180979 00000 n +0001211976 00000 n +0001272116 00000 n +0001272157 00000 n +0001272197 00000 n +0001272332 00000 n trailer << -/Size 5550 -/Root 5548 0 R -/Info 5549 0 R -/ID [<845C15CED14FD08E1C46D28743E9921D> <845C15CED14FD08E1C46D28743E9921D>] +/Size 5535 +/Root 5533 0 R +/Info 5534 0 R +/ID [<AC9FBA1A5F444FAD110EEAC21342C06C> <AC9FBA1A5F444FAD110EEAC21342C06C>] >> startxref -1274113 +1272596 %%EOF diff --git a/docs/en/txt/Bugzilla-Guide.txt b/docs/en/txt/Bugzilla-Guide.txt index 7acb4caa403e4186608f72df01f769ff819ea19e..c2f2cd009e27dfa80e0ff262aba93d9b6d8eaa86 100644 --- a/docs/en/txt/Bugzilla-Guide.txt +++ b/docs/en/txt/Bugzilla-Guide.txt @@ -1,9 +1,9 @@ -The Bugzilla Guide - 3.2.1 Release +The Bugzilla Guide - 3.3.1 Development Release The Bugzilla Team - 2009-02-02 + 2009-01-05 This is the documentation for Bugzilla, a bug-tracking system from mozilla.org. Bugzilla is an enterprise-class piece of software that tracks @@ -177,8 +177,9 @@ Chapter 1. About This Guide 1.3. New Versions - This is the 3.2.1 version of The Bugzilla Guide. It is so named to match the - current version of Bugzilla. + This is the 3.3.1 version of The Bugzilla Guide. It is so named to match the + current version of Bugzilla. This version of the guide, like its associated + Bugzilla version, is a development version. The latest version of this guide can always be found at http://www.bugzilla.org, or checked out via CVS by following the Mozilla CVS @@ -1891,10 +1892,6 @@ Chapter 3. Administering Bugzilla /bugzilla/. Setting it to "/" will allow all sites served by this web server or virtual host to read Bugzilla cookies. - timezone - Timezone of server. The timezone is displayed with timestamps. If - this parameter is left blank, the timezone is not displayed. - utf8 Determines whether to use UTF-8 (Unicode) encoding for all text in Bugzilla. New installations should set this to true to avoid @@ -1951,17 +1948,8 @@ Chapter 3. Administering Bugzilla 3.1.2. Administrative Policies This page contains parameters for basic administrative functions. Options - include whether to allow the deletion of bugs and users, whether to allow - users to change their email address, and whether to allow user watching (one - user receiving all notifications of a selected other user). - - supportwatchers - Turning on this option allows users to ask to receive copies of bug - mail sent to another user. Watching a user with different group - permissions is not a way to 'get around' the system; copied emails - are still subject to the normal groupset permissions of a bug, and - "watchers" will only be copied on emails from bugs they would - normally be allowed to view. + include whether to allow the deletion of bugs and users, and whether to + allow users to change their email address. _________________________________________________________________ 3.1.3. User Authentication @@ -3679,7 +3667,6 @@ skip-networking + Block: *.pl, *localconfig* * In data: + Block everything - + But allow: duplicates.rdf * In data/webdot: + If you use a remote webdot server: o Block everything @@ -3745,7 +3732,7 @@ Chapter 5. Using Bugzilla If you want to use Bugzilla, first you need to create an account. Consult with the administrator responsible for your installation of Bugzilla for the URL you should use to access it. If you're test-driving Bugzilla, use this - URL: http://landfill.bugzilla.org/bugzilla-3.2-branch/. + URL: http://landfill.bugzilla.org/bugzilla-tip/. 1. On the home page index.cgi, click the "Open a new Bugzilla account" link, or the "New Account" link available in the footer of pages. Now @@ -3889,7 +3876,7 @@ Chapter 5. Using Bugzilla The Bugzilla Search page is the interface where you can find any bug report, comment, or patch currently in the Bugzilla system. You can play with it - here: http://landfill.bugzilla.org/bugzilla-3.2-branch/query.cgi. + here: http://landfill.bugzilla.org/bugzilla-tip/query.cgi. The Search page has controls for selecting different possible values for all of the fields in a bug, as described above. For some fields, multiple values @@ -5227,15 +5214,15 @@ Chapter 6. Customizing Bugzilla of standard Bugzilla administration links: ... [% ', <a href="editkeywords.cgi">keywords</a>' - IF user.groups.editkeywords %] + IF user.in_group('editkeywords') %] [% Hook.process("edit") %] ... The corresponding extension file for this hook is BUGZILLA_ROOT/extensions/projman/template/en/global/useful-links-edit.html.t mpl. You then create that template file and add the following constant: -...[% ', <a href="edit-projects.cgi">projects</a>' IF user.groups.projman_admin -s %] +...[% ', <a href="edit-projects.cgi">projects</a>' IF user.in_group('projman_ad +mins') %] Voila! The link now appears after the other administration links in the navigation bar for users in the projman_admins group. @@ -5340,7 +5327,7 @@ s %] returns 1 (allow) if certain conditions are true, or a negative check, which returns 0 (deny.) E.g.: if ($field eq "qacontact") { - if (Bugzilla->user->groups("quality_assurance")) { + if (Bugzilla->user->in_group("quality_assurance")) { return 1; } else { diff --git a/docs/en/xml/Bugzilla-Guide.xml b/docs/en/xml/Bugzilla-Guide.xml index 38b7454165f6b5790ea2f2af151902cd17174365..751b2d002b5927290998af15fe3e40a538a81551 100644 --- a/docs/en/xml/Bugzilla-Guide.xml +++ b/docs/en/xml/Bugzilla-Guide.xml @@ -34,12 +34,12 @@ For a devel release, simple bump bz-ver and bz-date --> -<!ENTITY bz-ver "3.2.1"> +<!ENTITY bz-ver "3.3.1"> <!ENTITY bz-nextver "3.4"> -<!ENTITY bz-date "2009-02-02"> +<!ENTITY bz-date "2009-01-05"> <!ENTITY current-year "2009"> -<!ENTITY landfillbase "http://landfill.bugzilla.org/bugzilla-3.2-branch/"> +<!ENTITY landfillbase "http://landfill.bugzilla.org/bugzilla-tip/"> <!ENTITY bz "http://www.bugzilla.org/"> <!ENTITY bzg-bugs "<ulink url='https://bugzilla.mozilla.org/enter_bug.cgi?product=Bugzilla&component=Documentation'>Bugzilla Documentation</ulink>"> <!ENTITY mysql "http://www.mysql.com/"> @@ -76,6 +76,7 @@ <bookinfo> <title>The Bugzilla Guide - &bz-ver; + <!-- BZ-DEVEL -->Development <!-- /BZ-DEVEL --> Release</title> <authorgroup> diff --git a/docs/en/xml/CVS/Entries b/docs/en/xml/CVS/Entries index ec6252a0232a0e0603d628333e63ad57e8ce259c..b088ab51963e3dd9a05b136d096e697eab712e6c 100644 --- a/docs/en/xml/CVS/Entries +++ b/docs/en/xml/CVS/Entries @@ -1,19 +1,19 @@ -/.cvsignore/1.1/Fri Apr 4 06:48:17 2008//TBUGZILLA-3_2_1 -/Bugzilla-Guide.xml/1.78.2.5/Mon Feb 2 23:28:53 2009//TBUGZILLA-3_2_1 -/about.xml/1.26.2.1/Sun Nov 30 01:34:58 2008//TBUGZILLA-3_2_1 -/administration.xml/1.90.2.1/Thu Aug 7 00:25:19 2008//TBUGZILLA-3_2_1 -/conventions.xml/1.12/Fri Apr 4 06:48:20 2008//TBUGZILLA-3_2_1 -/customization.xml/1.44/Sat Apr 26 09:51:17 2008//TBUGZILLA-3_2_1 -/gfdl.xml/1.11/Fri Apr 4 06:48:21 2008//TBUGZILLA-3_2_1 -/glossary.xml/1.25/Fri Apr 4 06:48:21 2008//TBUGZILLA-3_2_1 -/index.xml/1.6/Fri Apr 4 06:48:21 2008//TBUGZILLA-3_2_1 -/installation.xml/1.157.2.6/Thu Jan 8 23:44:22 2009//TBUGZILLA-3_2_1 -/integration.xml/1.14/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_2_1 -/introduction.xml/1.6/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_2_1 -/modules.xml/1.13/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_2_1 -/patches.xml/1.25/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_2_1 -/requiredsoftware.xml/1.7/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_2_1 -/security.xml/1.18/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_2_1 -/troubleshooting.xml/1.13/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_2_1 -/using.xml/1.79/Fri Apr 4 06:48:26 2008//TBUGZILLA-3_2_1 +/.cvsignore/1.1/Fri Apr 4 06:48:17 2008//TBUGZILLA-3_3_1 +/Bugzilla-Guide.xml/1.81/Tue Jan 6 07:34:42 2009//TBUGZILLA-3_3_1 +/about.xml/1.26/Fri Apr 4 06:48:18 2008//TBUGZILLA-3_3_1 +/administration.xml/1.93/Wed Dec 10 18:26:54 2008//TBUGZILLA-3_3_1 +/conventions.xml/1.12/Fri Apr 4 06:48:20 2008//TBUGZILLA-3_3_1 +/customization.xml/1.45/Fri Aug 8 01:26:36 2008//TBUGZILLA-3_3_1 +/gfdl.xml/1.11/Fri Apr 4 06:48:21 2008//TBUGZILLA-3_3_1 +/glossary.xml/1.25/Fri Apr 4 06:48:21 2008//TBUGZILLA-3_3_1 +/index.xml/1.6/Fri Apr 4 06:48:21 2008//TBUGZILLA-3_3_1 +/installation.xml/1.163/Wed Dec 17 16:19:23 2008//TBUGZILLA-3_3_1 +/integration.xml/1.14/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_3_1 +/introduction.xml/1.6/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_3_1 +/modules.xml/1.13/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_3_1 +/patches.xml/1.25/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_3_1 +/requiredsoftware.xml/1.7/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_3_1 +/security.xml/1.19/Wed May 21 00:01:04 2008//TBUGZILLA-3_3_1 +/troubleshooting.xml/1.13/Fri Apr 4 06:48:25 2008//TBUGZILLA-3_3_1 +/using.xml/1.79/Fri Apr 4 06:48:26 2008//TBUGZILLA-3_3_1 D diff --git a/docs/en/xml/CVS/Tag b/docs/en/xml/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/docs/en/xml/CVS/Tag +++ b/docs/en/xml/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/docs/en/xml/about.xml b/docs/en/xml/about.xml index 22418f5f97b8efdc5fd810b5c45a2cf3b80b487b..7e8b8d174771600240ade62fa1edf9ea4ab5d4db 100644 --- a/docs/en/xml/about.xml +++ b/docs/en/xml/about.xml @@ -1,6 +1,6 @@ <!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ <!ENTITY conventions SYSTEM "conventions.xml"> ] > --> -<!-- $Id: about.xml,v 1.26.2.1 2008/11/30 01:34:58 mkanat%bugzilla.org Exp $ --> +<!-- $Id: about.xml,v 1.26 2008/04/04 06:48:18 wurblzap%gmail.com Exp $ --> <chapter id="about"> <title>About This Guide</title> @@ -65,6 +65,8 @@ <para> This is the &bz-ver; version of The Bugzilla Guide. It is so named to match the current version of Bugzilla. + <!-- BZ-DEVEL --> This version of the guide, like its associated Bugzilla version, is a + development version.<!-- /BZ-DEVEL --> </para> <para> The latest version of this guide can always be found at <ulink diff --git a/docs/en/xml/administration.xml b/docs/en/xml/administration.xml index 2ed037609fcbc908cc1c2e850f259687da9dd722..df56715025c0787b28c01be8cc22004994fdae76 100644 --- a/docs/en/xml/administration.xml +++ b/docs/en/xml/administration.xml @@ -145,18 +145,6 @@ </listitem> </varlistentry> - <varlistentry> - <term> - timezone - </term> - <listitem> - <para> - Timezone of server. The timezone is displayed with timestamps. If - this parameter is left blank, the timezone is not displayed. - </para> - </listitem> - </varlistentry> - <varlistentry> <term> utf8 @@ -262,34 +250,11 @@ <section id="param-admin-policies"> <title>Administrative Policies</title> - <para> - This page contains parameters for basic administrative functions. - Options include whether to allow the deletion of bugs and users, whether - to allow users to change their email address, and whether to allow - user watching (one user receiving all notifications of a selected - other user). - </para> - - <variablelist> - - <varlistentry> - <term> - supportwatchers - </term> - <listitem> - <para> - Turning on this option allows users to ask to receive copies - of bug mail sent to another user. Watching a user with - different group permissions is not a way to 'get around' the - system; copied emails are still subject to the normal groupset - permissions of a bug, and <quote>watchers</quote> will only be - copied on emails from bugs they would normally be allowed to view. - </para> - </listitem> - </varlistentry> - - </variablelist> - + <para> + This page contains parameters for basic administrative functions. + Options include whether to allow the deletion of bugs and users, + and whether to allow users to change their email address. + </para> </section> <section id="param-user-authentication"> diff --git a/docs/en/xml/bugzilla.ent b/docs/en/xml/bugzilla.ent index 04e3aa8955b02b9648148cfc14706bc0ecdd793f..e78530c3388a1f398733382e1cdc5b0fa1d9a526 100644 --- a/docs/en/xml/bugzilla.ent +++ b/docs/en/xml/bugzilla.ent @@ -2,7 +2,9 @@ <!-- Module Versions --> <!ENTITY min-cgi-ver "3.21"> +<!ENTITY min-digest-sha-ver "any"> <!ENTITY min-date-format-ver "2.21"> +<!ENTITY min-datetime-ver "0.28"> <!ENTITY min-file-spec-ver "0.84"> <!ENTITY min-dbi-ver "1.41"> <!ENTITY min-template-ver "2.15"> @@ -27,6 +29,8 @@ <!ENTITY min-html-scrubber-ver "any"> <!ENTITY min-email-mime-attachment-stripper-ver "any"> <!ENTITY min-email-reply-ver "any"> +<!ENTITY min-theschwartz-ver "any"> +<!ENTITY min-daemon-generic-ver "any"> <!ENTITY min-mod_perl2-ver "1.999022"> <!ENTITY min-mp-cgi-ver "3.21"> diff --git a/docs/en/xml/customization.xml b/docs/en/xml/customization.xml index 81a5b4960d749dc61fa27bfd1e00e21ec048f803..9c69c3757fbbbc3447e63ff148b476a2fd12313e 100644 --- a/docs/en/xml/customization.xml +++ b/docs/en/xml/customization.xml @@ -582,7 +582,7 @@ <programlisting><![CDATA[... [% ', <a href="editkeywords.cgi">keywords</a>' - IF user.groups.editkeywords %] + IF user.in_group('editkeywords') %] [% Hook.process("edit") %] ...]]></programlisting> @@ -592,7 +592,7 @@ You then create that template file and add the following constant: </para> - <programlisting><![CDATA[...[% ', <a href="edit-projects.cgi">projects</a>' IF user.groups.projman_admins %]]]></programlisting> + <programlisting><![CDATA[...[% ', <a href="edit-projects.cgi">projects</a>' IF user.in_group('projman_admins') %]]]></programlisting> <para> Voila! The link now appears after the other administration links in the @@ -746,7 +746,7 @@ positive check, which returns 1 (allow) if certain conditions are true, or a negative check, which returns 0 (deny.) E.g.: <programlisting> if ($field eq "qacontact") { - if (Bugzilla->user->groups("quality_assurance")) { + if (Bugzilla->user->in_group("quality_assurance")) { return 1; } else { diff --git a/docs/en/xml/installation.xml b/docs/en/xml/installation.xml index 54ec6c1c67d01e8f6723179ad86590cd38aac3d9..43c2d9422c73d24cae12400526aced40c1f9a669 100644 --- a/docs/en/xml/installation.xml +++ b/docs/en/xml/installation.xml @@ -1,5 +1,5 @@ <!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"> --> -<!-- $Id: installation.xml,v 1.157.2.6 2009/01/08 23:44:22 lpsolit%gmail.com Exp $ --> +<!-- $Id: installation.xml,v 1.163 2008/12/17 16:19:23 lpsolit%gmail.com Exp $ --> <chapter id="installing-bugzilla"> <title>Installing Bugzilla</title> @@ -1576,7 +1576,7 @@ AddType application/rdf+xml .rdf</screen> based system such as GNU/Linux. That said, if you do want to get Bugzilla running on Windows, you will need to make the following adjustments. A detailed step-by-step - <ulink url="https://wiki.mozilla.org/Bugzilla:Win32Install"> + <ulink url="http://www.bugzilla.org/docs/win32install.html"> installation guide for Windows</ulink> is also available if you need more help with your installation. </para> diff --git a/docs/en/xml/security.xml b/docs/en/xml/security.xml index 6b2dd55737ae189608431d413aba650a92b4ad92..f1835a3336ed9031062e23787cea4725fed39104 100644 --- a/docs/en/xml/security.xml +++ b/docs/en/xml/security.xml @@ -1,5 +1,5 @@ <!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"> --> -<!-- $Id: security.xml,v 1.18 2008/04/04 06:48:25 lpsolit%gmail.com Exp $ --> +<!-- $Id: security.xml,v 1.19 2008/05/21 00:01:04 lpsolit%gmail.com Exp $ --> <chapter id="security"> <title>Bugzilla Security</title> @@ -215,13 +215,6 @@ skip-networking <listitem> <para>Block everything</para> </listitem> - <listitem> - <para>But allow: - <simplelist type="inline"> - <member><filename>duplicates.rdf</filename></member> - </simplelist> - </para> - </listitem> </itemizedlist> </listitem> diff --git a/docs/lib/CVS/Tag b/docs/lib/CVS/Tag index efa87d6722f10a1d970604be7881773f97969d3e..8d751ae8a4f2d445287de3bcefb6f8a590304c1c 100644 --- a/docs/lib/CVS/Tag +++ b/docs/lib/CVS/Tag @@ -1 +1 @@ -TBUGZILLA-3_2_1 +TBUGZILLA-3_3_1 diff --git a/docs/lib/Pod/CVS/Tag b/docs/lib/Pod/CVS/Tag index efa87d6722f10a1d970604be7881773f97969d3e..8d751ae8a4f2d445287de3bcefb6f8a590304c1c 100644 --- a/docs/lib/Pod/CVS/Tag +++ b/docs/lib/Pod/CVS/Tag @@ -1 +1 @@ -TBUGZILLA-3_2_1 +TBUGZILLA-3_3_1 diff --git a/docs/lib/Pod/Simple/CVS/Tag b/docs/lib/Pod/Simple/CVS/Tag index efa87d6722f10a1d970604be7881773f97969d3e..8d751ae8a4f2d445287de3bcefb6f8a590304c1c 100644 --- a/docs/lib/Pod/Simple/CVS/Tag +++ b/docs/lib/Pod/Simple/CVS/Tag @@ -1 +1 @@ -TBUGZILLA-3_2_1 +TBUGZILLA-3_3_1 diff --git a/docs/lib/Pod/Simple/HTML/CVS/Entries b/docs/lib/Pod/Simple/HTML/CVS/Entries index b6e4c6080808de0b8ac10bf47b97501b802c8cf5..b0b7464da520e7682a9ceead12c27200e4fe20b6 100644 --- a/docs/lib/Pod/Simple/HTML/CVS/Entries +++ b/docs/lib/Pod/Simple/HTML/CVS/Entries @@ -1,2 +1,2 @@ -/Bugzilla.pm/1.1/Tue Sep 5 19:00:56 2006//TBUGZILLA-3_2_1 +/Bugzilla.pm/1.1/Tue Sep 5 19:00:56 2006//TBUGZILLA-3_3_1 D diff --git a/docs/lib/Pod/Simple/HTML/CVS/Tag b/docs/lib/Pod/Simple/HTML/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/docs/lib/Pod/Simple/HTML/CVS/Tag +++ b/docs/lib/Pod/Simple/HTML/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/docs/lib/Pod/Simple/HTMLBatch/CVS/Entries b/docs/lib/Pod/Simple/HTMLBatch/CVS/Entries index 6397ff49a3308ddf6dab8e95a488a76a0962d81d..44aa0ee537a891bd3baaf8fbaa21251cce20edbb 100644 --- a/docs/lib/Pod/Simple/HTMLBatch/CVS/Entries +++ b/docs/lib/Pod/Simple/HTMLBatch/CVS/Entries @@ -1,2 +1,2 @@ -/Bugzilla.pm/1.4.2.1/Wed Nov 26 00:56:34 2008//TBUGZILLA-3_2_1 +/Bugzilla.pm/1.5/Wed Nov 26 00:55:59 2008//TBUGZILLA-3_3_1 D diff --git a/docs/lib/Pod/Simple/HTMLBatch/CVS/Tag b/docs/lib/Pod/Simple/HTMLBatch/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/docs/lib/Pod/Simple/HTMLBatch/CVS/Tag +++ b/docs/lib/Pod/Simple/HTMLBatch/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/duplicates.cgi b/duplicates.cgi index 32553a39d71be47c23b42621de0a0f7621872b2f..06334e22b9874fdcb7e63b5235932bc4845f10fe 100755 --- a/duplicates.cgi +++ b/duplicates.cgi @@ -37,19 +37,6 @@ use Bugzilla::Search; use Bugzilla::Product; my $cgi = Bugzilla->cgi; - -# Go directly to the XUL version of the duplicates report (duplicates.xul) -# if the user specified ctype=xul. Adds params if they exist, and directs -# the user to a signed copy of the script in duplicates.jar if it exists. -if (defined $cgi->param('ctype') && $cgi->param('ctype') eq "xul") { - my $params = CanonicaliseParams($cgi->query_string(), ["format", "ctype"]); - my $url = (-e "duplicates.jar" ? "duplicates.jar!/" : "") . - "duplicates.xul" . ($params ? "?$params" : "") . "\n\n"; - - print $cgi->redirect($url); - exit; -} - my $template = Bugzilla->template; my $vars = {}; diff --git a/duplicates.xul b/duplicates.xul deleted file mode 100644 index cebb4e189298ab69e6e11bdf5e63643b8a0425a4..0000000000000000000000000000000000000000 --- a/duplicates.xul +++ /dev/null @@ -1,133 +0,0 @@ -<?xml version="1.0"?> -<!-- - - - - The contents of this file are subject to the Mozilla Public - - License Version 1.1 (the "License"); you may not use this file - - except in compliance with the License. You may obtain a copy of - - the License at http://www.mozilla.org/MPL/ - - - - Software distributed under the License is distributed on an "AS - - IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - - implied. See the License for the specific language governing - - rights and limitations under the License. - - - - The Original Code is the Bugzilla Bug Tracking System. - - - - The Initial Developer of the Original Code is Netscape Communications - - Corporation. Portions created by Netscape are - - Copyright (C) 1998 Netscape Communications Corporation. All - - Rights Reserved. - - - - Contributor(s): Myk Melez <myk@mozilla.org> - - - --> - -<!DOCTYPE window [ - <!ENTITY idColumn.label "ID"> - <!ENTITY duplicateCountColumn.label "Count"> - <!ENTITY duplicateDeltaColumn.label "Delta"> - <!ENTITY componentColumn.label "Component"> - <!ENTITY severityColumn.label "Severity"> - <!ENTITY osColumn.label "OS"> - <!ENTITY targetMilestoneColumn.label "Milestone"> - <!ENTITY summaryColumn.label "Summary"> -]> - -<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> -<?xml-stylesheet href="skins/standard/duplicates.css" type="text/css"?> - -<window id="duplicates_report" - xmlns:html="http://www.w3.org/1999/xhtml" - xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" - title="Duplicates Report"> - - // Code for populating the tree from the RDF data source - // and loading bug reports when the user selects rows in the tree. - <script type="application/x-javascript" src="js/duplicates.js" /> - - <tree id="results-tree" flex="1" - flags="dont-build-content" - enableColumnDrag="true" - datasources="rdf:null" - ref="" - onselect="loadBugInPane();" - ondblclick="loadBugInWindow();"> - <treecols> - <treecol id="id_column" label="&idColumn.label;" primary="true" sort="?id" - persist="width hidden sortActive sortDirection ordinal" /> - <splitter class="tree-splitter"/> - - <treecol id="duplicate_count_column" label="&duplicateCountColumn.label;" sort="?duplicate_count" - sortActive="true" sortDirection="descending" - persist="width hidden sortActive sortDirection ordinal" /> - <splitter class="tree-splitter" /> - - <treecol id="duplicate_delta_column" label="&duplicateDeltaColumn.label;" sort="?duplicate_delta" - persist="width hidden sortActive sortDirection ordinal" /> - <splitter class="tree-splitter"/> - - <treecol id="component_column" label="&componentColumn.label;" flex="3" sort="?component" - persist="width hidden sortActive sortDirection ordinal" /> - <splitter class="tree-splitter"/> - - <treecol id="severity_column" label="&severityColumn.label;" flex="1" sort="?severity" - persist="width hidden sortActive sortDirection ordinal" /> - <splitter class="tree-splitter"/> - - <treecol id="os_column" label="&osColumn.label;" flex="2" sort="?os" - persist="width hidden sortActive sortDirection ordinal" /> - <splitter class="tree-splitter"/> - - <treecol id="target_milestone_column" label="&targetMilestoneColumn.label;" flex="1" sort="?target_milestone" - persist="width hidden sortActive sortDirection ordinal" /> - <splitter class="tree-splitter"/> - - <treecol id="summary_column" label="&summaryColumn.label;" flex="12" sort="?summary" - persist="width hidden sortActive sortDirection ordinal" /> - </treecols> - <template> - <rule> - <conditions> - <treeitem uri="?uri" /> - <triple subject="?uri" predicate="http://www.bugzilla.org/rdf#bugs" object="?bugs" /> - <member container="?bugs" child="?bug" /> - <triple subject="?bug" predicate="http://www.bugzilla.org/rdf#id" object="?id" /> - </conditions> - <bindings> - <binding subject="?bug" predicate="http://www.bugzilla.org/rdf#duplicate_count" object="?duplicate_count" /> - <binding subject="?bug" predicate="http://www.bugzilla.org/rdf#duplicate_delta" object="?duplicate_delta" /> - <binding subject="?bug" predicate="http://www.bugzilla.org/rdf#component" object="?component" /> - <binding subject="?bug" predicate="http://www.bugzilla.org/rdf#severity" object="?severity" /> - <binding subject="?bug" predicate="http://www.bugzilla.org/rdf#priority" object="?priority" /> - <binding subject="?bug" predicate="http://www.bugzilla.org/rdf#os" object="?os" /> - <binding subject="?bug" predicate="http://www.bugzilla.org/rdf#target_milestone" object="?target_milestone" /> - <binding subject="?bug" predicate="http://www.bugzilla.org/rdf#summary" object="?summary" /> - <binding subject="?bug" predicate="http://www.bugzilla.org/rdf#resolution" object="?resolution" /> - </bindings> - <action> - <treechildren> - <treeitem uri="?bug"> - <treerow properties="resolution-?resolution"> - <treecell ref="id_column" label="?id" properties="resolution-?resolution" /> - <treecell ref="duplicate_count_column" label="?duplicate_count" properties="resolution-?resolution" /> - <treecell ref="duplicate_delta_column" label="?duplicate_delta" properties="resolution-?resolution" /> - <treecell ref="component_column" label="?component" properties="resolution-?resolution" /> - <treecell ref="severity_column" label="?severity" properties="resolution-?resolution" /> - <treecell ref="os_column" label="?os" properties="resolution-?resolution" /> - <treecell ref="target_milestone_column" label="?target_milestone" properties="resolution-?resolution" /> - <treecell ref="summary_column" label="?summary" properties="resolution-?resolution" /> - </treerow> - </treeitem> - </treechildren> - </action> - </rule> - </template> - </tree> - - <splitter id="report-content-splitter" collapse="after" state="open" persist="state"> - <grippy/> - </splitter> - - <iframe id="content-browser" src="about:blank" flex="2" persist="height" /> - -</window> diff --git a/editclassifications.cgi b/editclassifications.cgi index 8ef9afe1a7508f497c0c0b4397886d0fdc11ba17..61b014c8d7d56e29b5865974d29f5e96a4c772f1 100755 --- a/editclassifications.cgi +++ b/editclassifications.cgi @@ -40,7 +40,7 @@ sub LoadTemplate { my $cgi = Bugzilla->cgi; my $template = Bugzilla->template; - $vars->{'classifications'} = [Bugzilla::Classification::get_all_classifications()] + $vars->{'classifications'} = [Bugzilla::Classification->get_all] if ($action eq 'select'); # There is currently only one section about classifications, # so all pages point to it. Let's define it here. @@ -62,7 +62,7 @@ Bugzilla->login(LOGIN_REQUIRED); print $cgi->header(); -exists Bugzilla->user->groups->{'editclassifications'} +Bugzilla->user->in_group('editclassifications') || ThrowUserError("auth_failure", {group => "editclassifications", action => "edit", object => "classifications"}); @@ -100,36 +100,16 @@ if ($action eq 'add') { if ($action eq 'new') { check_token_data($token, 'add_classification'); - $class_name || ThrowUserError("classification_not_specified"); - my $classification = - new Bugzilla::Classification({name => $class_name}); - - if ($classification) { - ThrowUserError("classification_already_exists", - { name => $classification->name }); - } - - my $description = trim($cgi->param('description') || ''); - - my $sortkey = trim($cgi->param('sortkey') || 0); - my $stored_sortkey = $sortkey; - detaint_natural($sortkey) - || ThrowUserError('classification_invalid_sortkey', {'name' => $class_name, - 'sortkey' => $stored_sortkey}); - - trick_taint($description); - trick_taint($class_name); - - # Add the new classification. - $dbh->do("INSERT INTO classifications (name, description, sortkey) - VALUES (?, ?, ?)", undef, ($class_name, $description, $sortkey)); + Bugzilla::Classification->create({name => $class_name, + description => scalar $cgi->param('description'), + sortkey => scalar $cgi->param('sortkey')}); delete_token($token); $vars->{'message'} = 'classification_created'; - $vars->{'classification'} = new Bugzilla::Classification({name => $class_name}); - $vars->{'classifications'} = [Bugzilla::Classification::get_all_classifications]; + $vars->{'classification'} = $classification; + $vars->{'classifications'} = [Bugzilla::Classification->get_all]; $vars->{'token'} = issue_session_token('reclassify_classifications'); LoadTemplate('reclassify'); } @@ -142,8 +122,7 @@ if ($action eq 'new') { if ($action eq 'del') { - my $classification = - Bugzilla::Classification::check_classification($class_name); + my $classification = Bugzilla::Classification->check($class_name); if ($classification->id == 1) { ThrowUserError("classification_not_deletable"); @@ -166,29 +145,12 @@ if ($action eq 'del') { if ($action eq 'delete') { check_token_data($token, 'delete_classification'); - my $classification = - Bugzilla::Classification::check_classification($class_name); - - if ($classification->id == 1) { - ThrowUserError("classification_not_deletable"); - } - - # lock the tables before we start to change everything: - $dbh->bz_start_transaction(); - - # update products just in case - $dbh->do("UPDATE products SET classification_id = 1 - WHERE classification_id = ?", undef, $classification->id); - - # delete - $dbh->do("DELETE FROM classifications WHERE id = ?", undef, - $classification->id); - - $dbh->bz_commit_transaction(); + my $classification = Bugzilla::Classification->check($class_name); + $classification->remove_from_db; + delete_token($token); $vars->{'message'} = 'classification_deleted'; - $vars->{'classification'} = $class_name; - delete_token($token); + $vars->{'classification'} = $classification; LoadTemplate('select'); } @@ -199,9 +161,7 @@ if ($action eq 'delete') { # if ($action eq 'edit') { - - my $classification = - Bugzilla::Classification::check_classification($class_name); + my $classification = Bugzilla::Classification->check($class_name); $vars->{'classification'} = $classification; $vars->{'token'} = issue_session_token('edit_classification'); @@ -216,59 +176,19 @@ if ($action eq 'edit') { if ($action eq 'update') { check_token_data($token, 'edit_classification'); - $class_name || ThrowUserError("classification_not_specified"); - my $class_old_name = trim($cgi->param('classificationold') || ''); + my $classification = Bugzilla::Classification->check($class_old_name); - my $class_old = - Bugzilla::Classification::check_classification($class_old_name); - - my $description = trim($cgi->param('description') || ''); - - my $sortkey = trim($cgi->param('sortkey') || 0); - my $stored_sortkey = $sortkey; - detaint_natural($sortkey) - || ThrowUserError('classification_invalid_sortkey', {'name' => $class_old->name, - 'sortkey' => $stored_sortkey}); - - $dbh->bz_start_transaction(); - - if ($class_name ne $class_old->name) { - - my $class = new Bugzilla::Classification({name => $class_name}); - if ($class) { - ThrowUserError("classification_already_exists", - { name => $class->name }); - } - trick_taint($class_name); - $dbh->do("UPDATE classifications SET name = ? WHERE id = ?", - undef, ($class_name, $class_old->id)); - - $vars->{'updated_classification'} = 1; - } - - if ($description ne $class_old->description) { - trick_taint($description); - $dbh->do("UPDATE classifications SET description = ? - WHERE id = ?", undef, - ($description, $class_old->id)); + $classification->set_name($class_name); + $classification->set_description(scalar $cgi->param('description')); + $classification->set_sortkey(scalar $cgi->param('sortkey')); - $vars->{'updated_description'} = 1; - } - - if ($sortkey ne $class_old->sortkey) { - $dbh->do("UPDATE classifications SET sortkey = ? - WHERE id = ?", undef, - ($sortkey, $class_old->id)); - - $vars->{'updated_sortkey'} = 1; - } - - $dbh->bz_commit_transaction(); + my $changes = $classification->update; + delete_token($token); $vars->{'message'} = 'classification_updated'; - $vars->{'classification'} = $class_name; - delete_token($token); + $vars->{'classification'} = $classification; + $vars->{'changes'} = $changes; LoadTemplate('select'); } @@ -277,9 +197,7 @@ if ($action eq 'update') { # if ($action eq 'reclassify') { - - my $classification = - Bugzilla::Classification::check_classification($class_name); + my $classification = Bugzilla::Classification->check($class_name); my $sth = $dbh->prepare("UPDATE products SET classification_id = ? WHERE name = ?"); @@ -304,9 +222,7 @@ if ($action eq 'reclassify') { delete_token($token); } - my @classifications = - Bugzilla::Classification::get_all_classifications; - $vars->{'classifications'} = \@classifications; + $vars->{'classifications'} = [Bugzilla::Classification->get_all]; $vars->{'classification'} = $classification; $vars->{'token'} = issue_session_token('reclassify_classifications'); diff --git a/editfields.cgi b/editfields.cgi index 138c6b72959baba9462a2f57de6e44b5f9715e45..4467530441f9153bd2126f90deb5d0d24a4a81b8 100644 --- a/editfields.cgi +++ b/editfields.cgi @@ -55,7 +55,6 @@ elsif ($action eq 'add') { } elsif ($action eq 'new') { check_token_data($token, 'add_field'); - $vars->{'field'} = Bugzilla::Field->create({ name => scalar $cgi->param('name'), description => scalar $cgi->param('desc'), @@ -65,6 +64,9 @@ elsif ($action eq 'new') { enter_bug => scalar $cgi->param('enter_bug'), obsolete => scalar $cgi->param('obsolete'), custom => 1, + visibility_field_id => scalar $cgi->param('visibility_field_id'), + visibility_value_id => scalar $cgi->param('visibility_value_id'), + value_field_id => scalar $cgi->param('value_field_id'), }); delete_token($token); @@ -107,6 +109,9 @@ elsif ($action eq 'update') { $field->set_in_new_bugmail($cgi->param('new_bugmail')); $field->set_enter_bug($cgi->param('enter_bug')); $field->set_obsolete($cgi->param('obsolete')); + $field->set_visibility_field($cgi->param('visibility_field_id')); + $field->set_visibility_value($cgi->param('visibility_value_id')); + $field->set_value_field($cgi->param('value_field_id')); $field->update(); delete_token($token); diff --git a/editflagtypes.cgi b/editflagtypes.cgi index 5e58266311e09c9b2051afa721d16664e0a323df..d77c6b8a3cd3f3a771acdb96d4ffe7ab8ae82045 100755 --- a/editflagtypes.cgi +++ b/editflagtypes.cgi @@ -80,7 +80,7 @@ elsif ($action eq 'edit') { edit($action); } elsif ($action eq 'insert') { insert($token); } elsif ($action eq 'update') { update($token); } elsif ($action eq 'confirmdelete') { confirmDelete(); } -elsif ($action eq 'delete') { deleteType($token); } +elsif ($action eq 'delete') { deleteType(undef, $token); } elsif ($action eq 'deactivate') { deactivate($token); } else { ThrowCodeError("action_unrecognized", { action => $action }); @@ -100,6 +100,7 @@ sub list { my $component = validateComponent($product, scalar $cgi->param('component')); my $product_id = $product ? $product->id : 0; my $component_id = $component ? $component->id : 0; + my $show_flag_counts = (defined $cgi->param('show_flag_counts')) ? 1 : 0; # Define the variables and functions that will be passed to the UI template. $vars->{'selected_product'} = $cgi->param('product'); @@ -140,6 +141,20 @@ sub list { 'group' => scalar $cgi->param('group')}); } + if ($show_flag_counts) { + my %bug_lists; + my %map = ('+' => 'granted', '-' => 'denied', '?' => 'pending'); + + foreach my $flagtype (@$bug_flagtypes, @$attach_flagtypes) { + $bug_lists{$flagtype->id} = {}; + my $flags = Bugzilla::Flag->match({type_id => $flagtype->id}); + # Build lists of bugs, triaged by flag status. + map { push(@{$bug_lists{$flagtype->id}->{$map{$_->status}}}, $_->bug_id) } @$flags; + } + $vars->{'bug_lists'} = \%bug_lists; + $vars->{'show_flag_counts'} = 1; + } + $vars->{'bug_types'} = $bug_flagtypes; $vars->{'attachment_types'} = $attach_flagtypes; @@ -445,8 +460,9 @@ sub update { sub confirmDelete { - my $flag_type = validateID(); + my $flag_type = validateID(); + if ($flag_type->flag_count) { $vars->{'flag_type'} = $flag_type; $vars->{'token'} = issue_session_token('delete_flagtype'); # Return the appropriate HTTP response headers. @@ -455,13 +471,20 @@ sub confirmDelete { # Generate and return the UI (HTML page) from the appropriate template. $template->process("admin/flag-type/confirm-delete.html.tmpl", $vars) || ThrowTemplateError($template->error()); + } + else { + # We should *always* ask if the admin really wants to delete + # a flagtype, even if there is no flag belonging to this type. + my $token = issue_session_token('delete_flagtype'); + deleteType($flag_type, $token); + } } sub deleteType { + my $flag_type = shift || validateID(); my $token = shift; check_token_data($token, 'delete_flagtype'); - my $flag_type = validateID(); my $id = $flag_type->id; my $dbh = Bugzilla->dbh; diff --git a/editgroups.cgi b/editgroups.cgi index c54924c5bc8c79b002dcf82ba0c84c809c1b4598..7dd8a7b6304e56995cf5eee5e69c718ff1ab75d6 100755 --- a/editgroups.cgi +++ b/editgroups.cgi @@ -72,41 +72,6 @@ sub CheckGroupID { return $group_id; } -# This subroutine is called when: -# - a new group is created. CheckGroupName checks that its name -# is not empty and is not already used by any existing group. -# - an existing group is edited. CheckGroupName checks that its -# name has not been deleted or renamed to another existing -# group name (whose group ID is different from $group_id). -# In both cases, an error message is returned to the user if any -# test fails! Else, the trimmed group name is returned. - -sub CheckGroupName { - my ($name, $group_id) = @_; - $name = trim($name || ''); - trick_taint($name); - ThrowUserError("empty_group_name") unless $name; - my $excludeself = (defined $group_id) ? " AND id != $group_id" : ""; - my $name_exists = Bugzilla->dbh->selectrow_array("SELECT name FROM groups " . - "WHERE name = ? $excludeself", - undef, $name); - if ($name_exists) { - ThrowUserError("group_exists", { name => $name }); - } - return $name; -} - -# CheckGroupDesc checks that a non empty description is given. The -# trimmed description is returned. - -sub CheckGroupDesc { - my ($desc) = @_; - $desc = trim($desc || ''); - trick_taint($desc); - ThrowUserError("empty_group_description") unless $desc; - return $desc; -} - # CheckGroupRegexp checks that the regular expression is valid # (the regular expression being optional, the test is successful # if none is given, as expected). The trimmed regular expression @@ -237,37 +202,14 @@ if ($action eq 'add') { if ($action eq 'new') { check_token_data($token, 'add_group'); - # Check that a not already used group name is given, that - # a description is also given and check if the regular - # expression is valid (if any). - my $name = CheckGroupName($cgi->param('name')); - my $desc = CheckGroupDesc($cgi->param('desc')); - my $regexp = CheckGroupRegexp($cgi->param('regexp')); - my $isactive = $cgi->param('isactive') ? 1 : 0; - # This is an admin page. The URL is considered safe. - my $icon_url; - if ($cgi->param('icon_url')) { - $icon_url = clean_text($cgi->param('icon_url')); - trick_taint($icon_url); - } - - # Add the new group - $dbh->do('INSERT INTO groups - (name, description, isbuggroup, userregexp, isactive, icon_url) - VALUES (?, ?, 1, ?, ?, ?)', - undef, ($name, $desc, $regexp, $isactive, $icon_url)); - - my $group = new Bugzilla::Group({name => $name}); - my $admin = Bugzilla::Group->new({name => 'admin'})->id(); - # Since we created a new group, give the "admin" group all privileges - # initially. - my $sth = $dbh->prepare('INSERT INTO group_group_map - (member_id, grantor_id, grant_type) - VALUES (?, ?, ?)'); - - $sth->execute($admin, $group->id, GROUP_MEMBERSHIP); - $sth->execute($admin, $group->id, GROUP_BLESS); - $sth->execute($admin, $group->id, GROUP_VISIBLE); + my $group = Bugzilla::Group->create({ + name => scalar $cgi->param('name'), + description => scalar $cgi->param('desc'), + userregexp => scalar $cgi->param('regexp'), + isactive => scalar $cgi->param('isactive'), + icon_url => scalar $cgi->param('icon_url'), + isbuggroup => 1, + }); # Permit all existing products to use the new group if makeproductgroups. if ($cgi->param('insertnew')) { @@ -277,7 +219,6 @@ if ($action eq 'new') { SELECT ?, products.id, 0, ?, ?, 0 FROM products', undef, ($group->id, CONTROLMAPSHOWN, CONTROLMAPNA)); } - Bugzilla::Group::RederiveRegexp($regexp, $group->id); delete_token($token); $vars->{'message'} = 'group_created'; diff --git a/editkeywords.cgi b/editkeywords.cgi index 2e65eb92c721100c16f411835d8e5d7d18dec632..dbc92971d6f83676f65aa0ad09d2c4c1a2fe4a6f 100755 --- a/editkeywords.cgi +++ b/editkeywords.cgi @@ -131,8 +131,10 @@ if ($action eq 'update') { my $keyword = new Bugzilla::Keyword($key_id) || ThrowCodeError('invalid_keyword_id', { id => $key_id }); - $keyword->set_name($cgi->param('name')); - $keyword->set_description($cgi->param('description')); + $keyword->set_all({ + name => scalar $cgi->param('name'), + description => scalar $cgi->param('description'), + }); my $changes = $keyword->update(); delete_token($token); @@ -149,23 +151,26 @@ if ($action eq 'update') { exit; } -if ($action eq 'del') { + +if ($action eq 'delete') { my $keyword = new Bugzilla::Keyword($key_id) || ThrowCodeError('invalid_keyword_id', { id => $key_id }); $vars->{'keyword'} = $keyword; - $vars->{'token'} = issue_session_token('delete_keyword'); - print $cgi->header(); - $template->process("admin/keywords/confirm-delete.html.tmpl", $vars) - || ThrowTemplateError($template->error()); - exit; -} + # We need this token even if there is no bug using this keyword. + $token = issue_session_token('delete_keyword'); -if ($action eq 'delete') { + if (!$cgi->param('reallydelete') && $keyword->bug_count) { + $vars->{'token'} = $token; + + print $cgi->header(); + $template->process("admin/keywords/confirm-delete.html.tmpl", $vars) + || ThrowTemplateError($template->error()); + exit; + } + # We cannot do this check earlier as we have to check 'reallydelete' first. check_token_data($token, 'delete_keyword'); - my $keyword = new Bugzilla::Keyword($key_id) - || ThrowCodeError('invalid_keyword_id', { id => $key_id }); $dbh->do('DELETE FROM keywords WHERE keywordid = ?', undef, $keyword->id); $dbh->do('DELETE FROM keyworddefs WHERE id = ?', undef, $keyword->id); diff --git a/editparams.cgi b/editparams.cgi index 2fd30e9445d509991456ae6e86ded43d47546d22..2c3e4089ef2c0e3d8c34e058188cd18e8945c529 100755 --- a/editparams.cgi +++ b/editparams.cgi @@ -71,12 +71,17 @@ foreach my $panel (keys %$param_panels) { $current_module = $panel if ($current_panel eq lc($panel)); } +my %hook_panels = map { $_->{name} => { params => $_->{param_list} } } + @panels; +# Note that this hook is also called in Bugzilla::Config. +Bugzilla::Hook::process('config-modify_panels', { panels => \%hook_panels }); + $vars->{panels} = \@panels; if ($action eq 'save' && $current_module) { check_token_data($token, 'edit_parameters'); my @changes = (); - my @module_param_list = "$param_panels->{$current_module}"->get_param_list(); + my @module_param_list = @{ $hook_panels{lc($current_module)}->{params} }; foreach my $i (@module_param_list) { my $name = $i->{'name'}; diff --git a/editproducts.cgi b/editproducts.cgi index cb451b06571253cfff0b094329710494ebe63b02..8dd42d7415e75f1eee3fb42acb0c7c04980a91d1 100755 --- a/editproducts.cgi +++ b/editproducts.cgi @@ -35,17 +35,10 @@ use Bugzilla; use Bugzilla::Constants; use Bugzilla::Util; use Bugzilla::Error; -use Bugzilla::Bug; -use Bugzilla::Series; -use Bugzilla::Mailer; +use Bugzilla::Group; use Bugzilla::Product; use Bugzilla::Classification; -use Bugzilla::Milestone; -use Bugzilla::Group; -use Bugzilla::User; -use Bugzilla::Field; use Bugzilla::Token; -use Bugzilla::Status; # # Preliminary checks: @@ -76,7 +69,6 @@ $user->in_group('editcomponents') my $classification_name = trim($cgi->param('classification') || ''); my $product_name = trim($cgi->param('product') || ''); my $action = trim($cgi->param('action') || ''); -my $showbugcounts = (defined $cgi->param('showbugcounts')); my $token = $cgi->param('token'); # @@ -89,7 +81,7 @@ if (Bugzilla->params->{'useclassification'} && !$product_name) { $vars->{'classifications'} = $user->in_group('editcomponents') ? - [Bugzilla::Classification::get_all_classifications] : $user->get_selectable_classifications; + [Bugzilla::Classification->get_all] : $user->get_selectable_classifications; $template->process("admin/products/list-classifications.html.tmpl", $vars) || ThrowTemplateError($template->error()); @@ -107,9 +99,7 @@ if (!$action && !$product_name) { my $products; if (Bugzilla->params->{'useclassification'}) { - $classification = - Bugzilla::Classification::check_classification($classification_name); - + $classification = Bugzilla::Classification->check($classification_name); $products = $user->get_selectable_products($classification->id); $vars->{'classification'} = $classification; } else { @@ -125,7 +115,7 @@ if (!$action && !$product_name) { } } $vars->{'products'} = $products; - $vars->{'showbugcounts'} = $showbugcounts; + $vars->{'showbugcounts'} = $cgi->param('showbugcounts') ? 1 : 0; $template->process("admin/products/list.html.tmpl", $vars) || ThrowTemplateError($template->error()); @@ -150,8 +140,7 @@ if ($action eq 'add') { object => "products"}); if (Bugzilla->params->{'useclassification'}) { - my $classification = - Bugzilla::Classification::check_classification($classification_name); + my $classification = Bugzilla::Classification->check($classification_name); $vars->{'classification'} = $classification; } $vars->{'token'} = issue_session_token('add_product'); @@ -176,171 +165,27 @@ if ($action eq 'new') { object => "products"}); check_token_data($token, 'add_product'); - # Cleanups and validity checks - - my $classification_id = 1; - if (Bugzilla->params->{'useclassification'}) { - my $classification = - Bugzilla::Classification::check_classification($classification_name); - $classification_id = $classification->id; - $vars->{'classification'} = $classification; - } - unless ($product_name) { - ThrowUserError("product_blank_name"); - } - - my $product = new Bugzilla::Product({name => $product_name}); + my $product = + Bugzilla::Product->create({classification => $classification_name, + name => $product_name, + description => scalar $cgi->param('description'), + version => scalar $cgi->param('version'), + defaultmilestone => scalar $cgi->param('defaultmilestone'), + milestoneurl => scalar $cgi->param('milestoneurl'), + disallownew => scalar $cgi->param('disallownew'), + votesperuser => scalar $cgi->param('votesperuser'), + maxvotesperbug => scalar $cgi->param('maxvotesperbug'), + votestoconfirm => scalar $cgi->param('votestoconfirm'), + create_series => scalar $cgi->param('createseries')}); - if ($product) { - - # Check for exact case sensitive match: - if ($product->name eq $product_name) { - ThrowUserError("product_name_already_in_use", - {'product' => $product->name}); - } - - # Next check for a case-insensitive match: - if (lc($product->name) eq lc($product_name)) { - ThrowUserError("product_name_diff_in_case", - {'product' => $product_name, - 'existing_product' => $product->name}); - } - } - - my $version = trim($cgi->param('version') || ''); - - if ($version eq '') { - ThrowUserError("product_must_have_version", - {'product' => $product_name}); - } - - my $description = trim($cgi->param('description') || ''); - - if ($description eq '') { - ThrowUserError('product_must_have_description', - {'product' => $product_name}); - } - - my $milestoneurl = trim($cgi->param('milestoneurl') || ''); - my $disallownew = $cgi->param('disallownew') ? 1 : 0; - my $votesperuser = $cgi->param('votesperuser') || 0; - my $maxvotesperbug = defined($cgi->param('maxvotesperbug')) ? - $cgi->param('maxvotesperbug') : 10000; - my $votestoconfirm = $cgi->param('votestoconfirm') || 0; - my $defaultmilestone = $cgi->param('defaultmilestone') || "---"; - - # The following variables are used in placeholders only. - trick_taint($product_name); - trick_taint($version); - trick_taint($description); - trick_taint($milestoneurl); - trick_taint($defaultmilestone); - detaint_natural($disallownew); - detaint_natural($votesperuser); - detaint_natural($maxvotesperbug); - detaint_natural($votestoconfirm); - - # Add the new product. - $dbh->do('INSERT INTO products - (name, description, milestoneurl, disallownew, votesperuser, - maxvotesperbug, votestoconfirm, defaultmilestone, classification_id) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', - undef, ($product_name, $description, $milestoneurl, $disallownew, - $votesperuser, $maxvotesperbug, $votestoconfirm, $defaultmilestone, - $classification_id)); - - $product = new Bugzilla::Product({name => $product_name}); - - $dbh->do('INSERT INTO versions (value, product_id) VALUES (?, ?)', - undef, ($version, $product->id)); - - $dbh->do('INSERT INTO milestones (product_id, value) VALUES (?, ?)', - undef, ($product->id, $defaultmilestone)); - - # If we're using bug groups, then we need to create a group for this - # product as well. -JMR, 2/16/00 - if (Bugzilla->params->{"makeproductgroups"}) { - # Next we insert into the groups table - my $productgroup = $product->name; - while (new Bugzilla::Group({name => $productgroup})) { - $productgroup .= '_'; - } - my $group_description = "Access to bugs in the " . - $product->name . " product"; - - $dbh->do('INSERT INTO groups (name, description, isbuggroup) - VALUES (?, ?, ?)', - undef, ($productgroup, $group_description, 1)); - - my $gid = $dbh->bz_last_key('groups', 'id'); - - # If we created a new group, give the "admin" group privileges - # initially. - my $admin = Bugzilla::Group->new({name => 'admin'})->id(); - - my $sth = $dbh->prepare('INSERT INTO group_group_map - (member_id, grantor_id, grant_type) - VALUES (?, ?, ?)'); - - $sth->execute($admin, $gid, GROUP_MEMBERSHIP); - $sth->execute($admin, $gid, GROUP_BLESS); - $sth->execute($admin, $gid, GROUP_VISIBLE); - - # Associate the new group and new product. - $dbh->do('INSERT INTO group_control_map - (group_id, product_id, entry, membercontrol, - othercontrol, canedit) - VALUES (?, ?, ?, ?, ?, ?)', - undef, ($gid, $product->id, - Bugzilla->params->{'useentrygroupdefault'}, - CONTROLMAPDEFAULT, CONTROLMAPNA, 0)); - } - - if ($cgi->param('createseries')) { - # Insert default charting queries for this product. - # If they aren't using charting, this won't do any harm. - # - # $open_name and $product are sqlquoted by the series code - # and never used again here, so we can trick_taint them. - my $open_name = $cgi->param('open_name'); - trick_taint($open_name); - - my @series; - - # We do every status, every resolution, and an "opened" one as well. - foreach my $bug_status (@{get_legal_field_values('bug_status')}) { - push(@series, [$bug_status, - "bug_status=" . url_quote($bug_status)]); - } - - foreach my $resolution (@{get_legal_field_values('resolution')}) { - next if !$resolution; - push(@series, [$resolution, "resolution=" .url_quote($resolution)]); - } - - # For localization reasons, we get the name of the "global" subcategory - # and the title of the "open" query from the submitted form. - my @openedstatuses = BUG_STATE_OPEN; - my $query = - join("&", map { "bug_status=" . url_quote($_) } @openedstatuses); - push(@series, [$open_name, $query]); - - foreach my $sdata (@series) { - my $series = new Bugzilla::Series(undef, $product->name, - scalar $cgi->param('subcategory'), - $sdata->[0], $whoid, 1, - $sdata->[1] . "&product=" . - url_quote($product->name), 1); - $series->writeToDatabase(); - } - } delete_token($token); $vars->{'message'} = 'product_created'; $vars->{'product'} = $product; - $vars->{'classification'} = new Bugzilla::Classification($product->classification_id) - if Bugzilla->params->{'useclassification'}; + if (Bugzilla->params->{'useclassification'}) { + $vars->{'classification'} = new Bugzilla::Classification($product->classification_id); + } $vars->{'token'} = issue_session_token('edit_product'); $template->process("admin/products/edit.html.tmpl", $vars) @@ -358,16 +203,8 @@ if ($action eq 'del') { my $product = $user->check_can_admin_product($product_name); if (Bugzilla->params->{'useclassification'}) { - my $classification = - Bugzilla::Classification::check_classification($classification_name); - if ($classification->id != $product->classification_id) { - ThrowUserError('classification_doesnt_exist_for_product', - { product => $product->name, - classification => $classification->name }); - } - $vars->{'classification'} = $classification; + $vars->{'classification'} = new Bugzilla::Classification($product->classification_id); } - $vars->{'product'} = $product; $vars->{'token'} = issue_session_token('delete_product'); @@ -386,69 +223,7 @@ if ($action eq 'delete') { my $product = $user->check_can_admin_product($product_name); check_token_data($token, 'delete_product'); - if (Bugzilla->params->{'useclassification'}) { - my $classification = - Bugzilla::Classification::check_classification($classification_name); - if ($classification->id != $product->classification_id) { - ThrowUserError('classification_doesnt_exist_for_product', - { product => $product->name, - classification => $classification->name }); - } - $vars->{'classification'} = $classification; - } - - if ($product->bug_count) { - if (Bugzilla->params->{"allowbugdeletion"}) { - foreach my $bug_id (@{$product->bug_ids}) { - # Note that we allow the user to delete bugs he can't see, - # which is okay, because he's deleting the whole Product. - my $bug = new Bugzilla::Bug($bug_id); - $bug->remove_from_db(); - } - } - else { - ThrowUserError("product_has_bugs", - { nb => $product->bug_count }); - } - } - - $dbh->bz_start_transaction(); - - my $comp_ids = $dbh->selectcol_arrayref('SELECT id FROM components - WHERE product_id = ?', - undef, $product->id); - - $dbh->do('DELETE FROM component_cc WHERE component_id IN - (' . join(',', @$comp_ids) . ')') if scalar(@$comp_ids); - - $dbh->do("DELETE FROM components WHERE product_id = ?", - undef, $product->id); - - $dbh->do("DELETE FROM versions WHERE product_id = ?", - undef, $product->id); - - $dbh->do("DELETE FROM milestones WHERE product_id = ?", - undef, $product->id); - - $dbh->do("DELETE FROM group_control_map WHERE product_id = ?", - undef, $product->id); - - $dbh->do("DELETE FROM flaginclusions WHERE product_id = ?", - undef, $product->id); - - $dbh->do("DELETE FROM flagexclusions WHERE product_id = ?", - undef, $product->id); - - $dbh->do("DELETE FROM products WHERE id = ?", - undef, $product->id); - - $dbh->bz_commit_transaction(); - - # We have to delete these internal variables, else we get - # the old lists of products and classifications again. - delete $user->{selectable_products}; - delete $user->{selectable_classifications}; - + $product->remove_from_db; delete_token($token); $vars->{'message'} = 'product_deleted'; @@ -457,7 +232,7 @@ if ($action eq 'delete') { if (Bugzilla->params->{'useclassification'}) { $vars->{'classifications'} = $user->in_group('editcomponents') ? - [Bugzilla::Classification::get_all_classifications] : $user->get_selectable_classifications; + [Bugzilla::Classification->get_all] : $user->get_selectable_classifications; $template->process("admin/products/list-classifications.html.tmpl", $vars) || ThrowTemplateError($template->error()); @@ -488,20 +263,7 @@ if ($action eq 'edit' || (!$action && $product_name)) { my $product = $user->check_can_admin_product($product_name); if (Bugzilla->params->{'useclassification'}) { - my $classification; - if (!$classification_name) { - $classification = - new Bugzilla::Classification($product->classification_id); - } else { - $classification = - Bugzilla::Classification::check_classification($classification_name); - if ($classification->id != $product->classification_id) { - ThrowUserError('classification_doesnt_exist_for_product', - { product => $product->name, - classification => $classification->name }); - } - } - $vars->{'classification'} = $classification; + $vars->{'classification'} = new Bugzilla::Classification($product->classification_id); } $vars->{'product'} = $product; $vars->{'token'} = issue_session_token('edit_product'); @@ -512,7 +274,54 @@ if ($action eq 'edit' || (!$action && $product_name)) { } # -# action='updategroupcontrols' -> update the product +# action='update' -> update the product +# +if ($action eq 'update') { + check_token_data($token, 'edit_product'); + my $product_old_name = trim($cgi->param('product_old_name') || ''); + my $product = $user->check_can_admin_product($product_old_name); + + $product->set_name($product_name); + $product->set_description(scalar $cgi->param('description')); + $product->set_default_milestone(scalar $cgi->param('defaultmilestone')); + $product->set_milestone_url(scalar $cgi->param('milestoneurl')); + $product->set_disallow_new(scalar $cgi->param('disallownew')); + $product->set_votes_per_user(scalar $cgi->param('votesperuser')); + $product->set_votes_per_bug(scalar $cgi->param('maxvotesperbug')); + $product->set_votes_to_confirm(scalar $cgi->param('votestoconfirm')); + + my $changes = $product->update(); + + delete_token($token); + + if (Bugzilla->params->{'useclassification'}) { + $vars->{'classification'} = new Bugzilla::Classification($product->classification_id); + } + $vars->{'product'} = $product; + $vars->{'changes'} = $changes; + + $template->process("admin/products/updated.html.tmpl", $vars) + || ThrowTemplateError($template->error()); + exit; +} + +# +# action='editgroupcontrols' -> display product group controls +# + +if ($action eq 'editgroupcontrols') { + my $product = $user->check_can_admin_product($product_name); + + $vars->{'product'} = $product; + $vars->{'token'} = issue_session_token('edit_group_controls'); + + $template->process("admin/products/groupcontrol/edit.html.tmpl", $vars) + || ThrowTemplateError($template->error()); + exit; +} + +# +# action='updategroupcontrols' -> update product group controls # if ($action eq 'updategroupcontrols') { @@ -547,10 +356,9 @@ if ($action eq 'updategroupcontrols') { {'Slice' => {}}, $product->id); } -# -# return the mandatory groups which need to have bug entries added to the bug_group_map -# and the corresponding bug count -# + # return the mandatory groups which need to have bug entries + # added to the bug_group_map and the corresponding bug count + my $mandatory_groups; if (@now_mandatory) { $mandatory_groups = $dbh->selectall_arrayref( @@ -578,514 +386,34 @@ if ($action eq 'updategroupcontrols') { $vars->{'mandatory_groups'} = $mandatory_groups; $template->process("admin/products/groupcontrol/confirm-edit.html.tmpl", $vars) || ThrowTemplateError($template->error()); - exit; + exit; } } - my $groups = $dbh->selectall_arrayref('SELECT id, name FROM groups - WHERE isbuggroup != 0 - AND isactive != 0'); + my $groups = Bugzilla::Group->match({isactive => 1, isbuggroup => 1}); foreach my $group (@$groups) { - my ($groupid, $groupname) = @$group; - my $newmembercontrol = $cgi->param("membercontrol_$groupid") || 0; - my $newothercontrol = $cgi->param("othercontrol_$groupid") || 0; - # Legality of control combination is a function of - # membercontrol\othercontrol - # NA SH DE MA - # NA + - - - - # SH + + + + - # DE + - + + - # MA - - - + - unless (($newmembercontrol == $newothercontrol) - || ($newmembercontrol == CONTROLMAPSHOWN) - || (($newmembercontrol == CONTROLMAPDEFAULT) - && ($newothercontrol != CONTROLMAPSHOWN))) { - ThrowUserError('illegal_group_control_combination', - {groupname => $groupname}); - } - } - $dbh->bz_start_transaction(); - - my $sth_Insert = $dbh->prepare('INSERT INTO group_control_map - (group_id, product_id, entry, membercontrol, - othercontrol, canedit, editcomponents, - canconfirm, editbugs) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)'); - - my $sth_Update = $dbh->prepare('UPDATE group_control_map - SET entry = ?, membercontrol = ?, - othercontrol = ?, canedit = ?, - editcomponents = ?, canconfirm = ?, - editbugs = ? - WHERE group_id = ? AND product_id = ?'); - - my $sth_Delete = $dbh->prepare('DELETE FROM group_control_map - WHERE group_id = ? AND product_id = ?'); - - $groups = $dbh->selectall_arrayref('SELECT id, name, entry, membercontrol, - othercontrol, canedit, - editcomponents, canconfirm, editbugs - FROM groups - LEFT JOIN group_control_map - ON group_control_map.group_id = id - AND product_id = ? - WHERE isbuggroup != 0 - AND isactive != 0', - undef, $product->id); - - foreach my $group (@$groups) { - my ($groupid, $groupname, $entry, $membercontrol, $othercontrol, - $canedit, $editcomponents, $canconfirm, $editbugs) = @$group; - my $newentry = $cgi->param("entry_$groupid") || 0; - my $newmembercontrol = $cgi->param("membercontrol_$groupid") || 0; - my $newothercontrol = $cgi->param("othercontrol_$groupid") || 0; - my $newcanedit = $cgi->param("canedit_$groupid") || 0; - my $new_editcomponents = $cgi->param("editcomponents_$groupid") || 0; - my $new_canconfirm = $cgi->param("canconfirm_$groupid") || 0; - my $new_editbugs = $cgi->param("editbugs_$groupid") || 0; - - my $oldentry = $entry; - # Set undefined values to 0. - $entry ||= 0; - $membercontrol ||= 0; - $othercontrol ||= 0; - $canedit ||= 0; - $editcomponents ||= 0; - $canconfirm ||= 0; - $editbugs ||= 0; - - # We use them in placeholders only. So it's safe to detaint them. - detaint_natural($newentry); - detaint_natural($newothercontrol); - detaint_natural($newmembercontrol); - detaint_natural($newcanedit); - detaint_natural($new_editcomponents); - detaint_natural($new_canconfirm); - detaint_natural($new_editbugs); - - if (!defined($oldentry) - && ($newentry || $newmembercontrol || $newcanedit - || $new_editcomponents || $new_canconfirm || $new_editbugs)) - { - $sth_Insert->execute($groupid, $product->id, $newentry, - $newmembercontrol, $newothercontrol, $newcanedit, - $new_editcomponents, $new_canconfirm, $new_editbugs); - } - elsif (($newentry != $entry) - || ($newmembercontrol != $membercontrol) - || ($newothercontrol != $othercontrol) - || ($newcanedit != $canedit) - || ($new_editcomponents != $editcomponents) - || ($new_canconfirm != $canconfirm) - || ($new_editbugs != $editbugs)) - { - $sth_Update->execute($newentry, $newmembercontrol, $newothercontrol, - $newcanedit, $new_editcomponents, $new_canconfirm, - $new_editbugs, $groupid, $product->id); - } - - if (!$newentry && !$newmembercontrol && !$newothercontrol - && !$newcanedit && !$new_editcomponents && !$new_canconfirm - && !$new_editbugs) - { - $sth_Delete->execute($groupid, $product->id); - } - } - - my $sth_Select = $dbh->prepare( - 'SELECT bugs.bug_id, - CASE WHEN (lastdiffed >= delta_ts) THEN 1 ELSE 0 END - FROM bugs - INNER JOIN bug_group_map - ON bug_group_map.bug_id = bugs.bug_id - WHERE group_id = ? - AND bugs.product_id = ? - ORDER BY bugs.bug_id'); - - my $sth_Select2 = $dbh->prepare('SELECT name, NOW() FROM groups WHERE id = ?'); - - $sth_Update = $dbh->prepare('UPDATE bugs SET delta_ts = ? WHERE bug_id = ?'); - - my $sth_Update2 = $dbh->prepare('UPDATE bugs SET delta_ts = ?, lastdiffed = ? - WHERE bug_id = ?'); - - $sth_Delete = $dbh->prepare('DELETE FROM bug_group_map - WHERE bug_id = ? AND group_id = ?'); - - my @removed_na; - foreach my $groupid (@now_na) { - my $count = 0; - my $bugs = $dbh->selectall_arrayref($sth_Select, undef, - ($groupid, $product->id)); - - my ($removed, $timestamp) = - $dbh->selectrow_array($sth_Select2, undef, $groupid); - - foreach my $bug (@$bugs) { - my ($bugid, $mailiscurrent) = @$bug; - $sth_Delete->execute($bugid, $groupid); - - LogActivityEntry($bugid, "bug_group", $removed, "", - $whoid, $timestamp); - - if ($mailiscurrent) { - $sth_Update2->execute($timestamp, $timestamp, $bugid); - } - else { - $sth_Update->execute($timestamp, $bugid); - } - $count++; - } - my %group = (name => $removed, bug_count => $count); - - push(@removed_na, \%group); - } - - $sth_Select = $dbh->prepare( - 'SELECT bugs.bug_id, - CASE WHEN (lastdiffed >= delta_ts) THEN 1 ELSE 0 END - FROM bugs - LEFT JOIN bug_group_map - ON bug_group_map.bug_id = bugs.bug_id - AND group_id = ? - WHERE bugs.product_id = ? - AND bug_group_map.bug_id IS NULL - ORDER BY bugs.bug_id'); - - $sth_Insert = $dbh->prepare('INSERT INTO bug_group_map - (bug_id, group_id) VALUES (?, ?)'); - - my @added_mandatory; - foreach my $groupid (@now_mandatory) { - my $count = 0; - my $bugs = $dbh->selectall_arrayref($sth_Select, undef, - ($groupid, $product->id)); - - my ($added, $timestamp) = - $dbh->selectrow_array($sth_Select2, undef, $groupid); - - foreach my $bug (@$bugs) { - my ($bugid, $mailiscurrent) = @$bug; - $sth_Insert->execute($bugid, $groupid); - - LogActivityEntry($bugid, "bug_group", "", $added, - $whoid, $timestamp); - - if ($mailiscurrent) { - $sth_Update2->execute($timestamp, $timestamp, $bugid); - } - else { - $sth_Update->execute($timestamp, $bugid); - } - $count++; - } - my %group = (name => $added, bug_count => $count); - - push(@added_mandatory, \%group); - } - $dbh->bz_commit_transaction(); + my $group_id = $group->id; + $product->set_group_controls($group, + {entry => scalar $cgi->param("entry_$group_id") || 0, + membercontrol => scalar $cgi->param("membercontrol_$group_id") || CONTROLMAPNA, + othercontrol => scalar $cgi->param("othercontrol_$group_id") || CONTROLMAPNA, + canedit => scalar $cgi->param("canedit_$group_id") || 0, + editcomponents => scalar $cgi->param("editcomponents_$group_id") || 0, + editbugs => scalar $cgi->param("editbugs_$group_id") || 0, + canconfirm => scalar $cgi->param("canconfirm_$group_id") || 0}); + } + my $changes = $product->update; delete_token($token); - $vars->{'removed_na'} = \@removed_na; - $vars->{'added_mandatory'} = \@added_mandatory; $vars->{'product'} = $product; + $vars->{'changes'} = $changes; $template->process("admin/products/groupcontrol/updated.html.tmpl", $vars) || ThrowTemplateError($template->error()); exit; } -# -# action='update' -> update the product -# -if ($action eq 'update') { - check_token_data($token, 'edit_product'); - my $product_old_name = trim($cgi->param('product_old_name') || ''); - my $description = trim($cgi->param('description') || ''); - my $disallownew = trim($cgi->param('disallownew') || ''); - my $milestoneurl = trim($cgi->param('milestoneurl') || ''); - my $votesperuser = trim($cgi->param('votesperuser') || 0); - my $maxvotesperbug = trim($cgi->param('maxvotesperbug') || 0); - my $votestoconfirm = trim($cgi->param('votestoconfirm') || 0); - my $defaultmilestone = trim($cgi->param('defaultmilestone') || '---'); - - my $checkvotes = 0; - - my $product_old = $user->check_can_admin_product($product_old_name); - - if (Bugzilla->params->{'useclassification'}) { - my $classification; - if (!$classification_name) { - $classification = - new Bugzilla::Classification($product_old->classification_id); - } else { - $classification = - Bugzilla::Classification::check_classification($classification_name); - if ($classification->id != $product_old->classification_id) { - ThrowUserError('classification_doesnt_exist_for_product', - { product => $product_old->name, - classification => $classification->name }); - } - } - $vars->{'classification'} = $classification; - } - - unless ($product_name) { - ThrowUserError('product_cant_delete_name', - {product => $product_old->name}); - } - - unless ($description) { - ThrowUserError('product_cant_delete_description', - {product => $product_old->name}); - } - - my $stored_maxvotesperbug = $maxvotesperbug; - if (!detaint_natural($maxvotesperbug)) { - ThrowUserError('product_votes_per_bug_must_be_nonnegative', - {maxvotesperbug => $stored_maxvotesperbug}); - } - - my $stored_votesperuser = $votesperuser; - if (!detaint_natural($votesperuser)) { - ThrowUserError('product_votes_per_user_must_be_nonnegative', - {votesperuser => $stored_votesperuser}); - } - - my $stored_votestoconfirm = $votestoconfirm; - if (!detaint_natural($votestoconfirm)) { - ThrowUserError('product_votes_to_confirm_must_be_nonnegative', - {votestoconfirm => $stored_votestoconfirm}); - } - - $dbh->bz_start_transaction(); - - my $testproduct = - new Bugzilla::Product({name => $product_name}); - if (lc($product_name) ne lc($product_old->name) && - $testproduct) { - ThrowUserError('product_name_already_in_use', - {product => $product_name}); - } - - # Only update milestone related stuff if 'usetargetmilestone' is on. - if (Bugzilla->params->{'usetargetmilestone'}) { - my $milestone = new Bugzilla::Milestone( - { product => $product_old, name => $defaultmilestone }); - - unless ($milestone) { - ThrowUserError('product_must_define_defaultmilestone', - {product => $product_old->name, - defaultmilestone => $defaultmilestone, - classification => $classification_name}); - } - - if ($milestoneurl ne $product_old->milestone_url) { - trick_taint($milestoneurl); - $dbh->do('UPDATE products SET milestoneurl = ? WHERE id = ?', - undef, ($milestoneurl, $product_old->id)); - } - - if ($milestone->name ne $product_old->default_milestone) { - $dbh->do('UPDATE products SET defaultmilestone = ? WHERE id = ?', - undef, ($milestone->name, $product_old->id)); - } - } - - $disallownew = $disallownew ? 1 : 0; - if ($disallownew ne $product_old->disallow_new) { - $dbh->do('UPDATE products SET disallownew = ? WHERE id = ?', - undef, ($disallownew, $product_old->id)); - } - - if ($description ne $product_old->description) { - trick_taint($description); - $dbh->do('UPDATE products SET description = ? WHERE id = ?', - undef, ($description, $product_old->id)); - } - - if ($votesperuser ne $product_old->votes_per_user) { - $dbh->do('UPDATE products SET votesperuser = ? WHERE id = ?', - undef, ($votesperuser, $product_old->id)); - $checkvotes = 1; - } - - if ($maxvotesperbug ne $product_old->max_votes_per_bug) { - $dbh->do('UPDATE products SET maxvotesperbug = ? WHERE id = ?', - undef, ($maxvotesperbug, $product_old->id)); - $checkvotes = 1; - } - - if ($votestoconfirm ne $product_old->votes_to_confirm) { - $dbh->do('UPDATE products SET votestoconfirm = ? WHERE id = ?', - undef, ($votestoconfirm, $product_old->id)); - $checkvotes = 1; - } - - if ($product_name ne $product_old->name) { - trick_taint($product_name); - $dbh->do('UPDATE products SET name = ? WHERE id = ?', - undef, ($product_name, $product_old->id)); - } - - $dbh->bz_commit_transaction(); - - my $product = new Bugzilla::Product({name => $product_name}); - - if ($checkvotes) { - $vars->{'checkvotes'} = 1; - - # 1. too many votes for a single user on a single bug. - my @toomanyvotes_list = (); - if ($maxvotesperbug < $votesperuser) { - my $votes = $dbh->selectall_arrayref( - 'SELECT votes.who, votes.bug_id - FROM votes - INNER JOIN bugs - ON bugs.bug_id = votes.bug_id - WHERE bugs.product_id = ? - AND votes.vote_count > ?', - undef, ($product->id, $maxvotesperbug)); - - foreach my $vote (@$votes) { - my ($who, $id) = (@$vote); - # If some votes are removed, RemoveVotes() returns a list - # of messages to send to voters. - my $msgs = RemoveVotes($id, $who, 'votes_too_many_per_bug'); - foreach my $msg (@$msgs) { - MessageToMTA($msg); - } - my $name = user_id_to_login($who); - - push(@toomanyvotes_list, - {id => $id, name => $name}); - } - } - $vars->{'toomanyvotes'} = \@toomanyvotes_list; - - # 2. too many total votes for a single user. - # This part doesn't work in the general case because RemoveVotes - # doesn't enforce votesperuser (except per-bug when it's less - # than maxvotesperbug). See Bugzilla::Bug::RemoveVotes(). - - my $votes = $dbh->selectall_arrayref( - 'SELECT votes.who, votes.vote_count - FROM votes - INNER JOIN bugs - ON bugs.bug_id = votes.bug_id - WHERE bugs.product_id = ?', - undef, $product->id); - - my %counts; - foreach my $vote (@$votes) { - my ($who, $count) = @$vote; - if (!defined $counts{$who}) { - $counts{$who} = $count; - } else { - $counts{$who} += $count; - } - } - my @toomanytotalvotes_list = (); - foreach my $who (keys(%counts)) { - if ($counts{$who} > $votesperuser) { - my $bug_ids = $dbh->selectcol_arrayref( - 'SELECT votes.bug_id - FROM votes - INNER JOIN bugs - ON bugs.bug_id = votes.bug_id - WHERE bugs.product_id = ? - AND votes.who = ?', - undef, ($product->id, $who)); - - foreach my $bug_id (@$bug_ids) { - # RemoveVotes() returns a list of messages to send - # in case some voters had too many votes. - my $msgs = RemoveVotes($bug_id, $who, 'votes_too_many_per_user'); - foreach my $msg (@$msgs) { - MessageToMTA($msg); - } - my $name = user_id_to_login($who); - - push(@toomanytotalvotes_list, - {id => $bug_id, name => $name}); - } - } - } - $vars->{'toomanytotalvotes'} = \@toomanytotalvotes_list; - - # 3. enough votes to confirm - my $bug_list = $dbh->selectcol_arrayref( - "SELECT bug_id FROM bugs - WHERE product_id = ? - AND bug_status = 'UNCONFIRMED' - AND votes >= ?", - undef, ($product->id, $votestoconfirm)); - - my @updated_bugs = (); - foreach my $bug_id (@$bug_list) { - my $confirmed = CheckIfVotedConfirmed($bug_id, $whoid); - push (@updated_bugs, $bug_id) if $confirmed; - } - - $vars->{'confirmedbugs'} = \@updated_bugs; - $vars->{'changer'} = $user->login; - } - delete_token($token); - - $vars->{'old_product'} = $product_old; - $vars->{'product'} = $product; - - $template->process("admin/products/updated.html.tmpl", $vars) - || ThrowTemplateError($template->error()); - exit; -} - -# -# action='editgroupcontrols' -> update product group controls -# - -if ($action eq 'editgroupcontrols') { - my $product = $user->check_can_admin_product($product_name); - - # Display a group if it is either enabled or has bugs for this product. - my $groups = $dbh->selectall_arrayref( - 'SELECT id, name, entry, membercontrol, othercontrol, canedit, - editcomponents, editbugs, canconfirm, - isactive, COUNT(bugs.bug_id) AS bugcount - FROM groups - LEFT JOIN group_control_map - ON group_control_map.group_id = groups.id - AND group_control_map.product_id = ? - LEFT JOIN bug_group_map - ON bug_group_map.group_id = groups.id - LEFT JOIN bugs - ON bugs.bug_id = bug_group_map.bug_id - AND bugs.product_id = ? - WHERE isbuggroup != 0 - AND (isactive != 0 OR entry IS NOT NULL OR bugs.bug_id IS NOT NULL) ' . - $dbh->sql_group_by('name', 'id, entry, membercontrol, - othercontrol, canedit, isactive, - editcomponents, canconfirm, editbugs'), - {'Slice' => {}}, ($product->id, $product->id)); - - $vars->{'product'} = $product; - $vars->{'groups'} = $groups; - $vars->{'token'} = issue_session_token('edit_group_controls'); - - $vars->{'const'} = { - 'CONTROLMAPNA' => CONTROLMAPNA, - 'CONTROLMAPSHOWN' => CONTROLMAPSHOWN, - 'CONTROLMAPDEFAULT' => CONTROLMAPDEFAULT, - 'CONTROLMAPMANDATORY' => CONTROLMAPMANDATORY, - }; - - $template->process("admin/products/groupcontrol/edit.html.tmpl", $vars) - || ThrowTemplateError($template->error()); - exit; -} - - # # No valid action found # diff --git a/editusers.cgi b/editusers.cgi index b93f1c063c9076928776183db03bdaa3103d0677..6dac967886550d824e4bafdf1ef232c9493cf936 100755 --- a/editusers.cgi +++ b/editusers.cgi @@ -136,23 +136,28 @@ if ($action eq 'search') { } else { $expr = "profiles.login_name"; } + + if ($matchstr =~ /^(regexp|notregexp|exact)$/) { + $matchstr ||= '.'; + } + else { + $matchstr = '' unless defined $matchstr; + } + # We can trick_taint because we use the value in a SELECT only, + # using a placeholder. + trick_taint($matchstr); + if ($matchtype eq 'regexp') { - $query .= $dbh->sql_regexp($expr, '?'); - $matchstr = '.' unless $matchstr; + $query .= $dbh->sql_regexp($expr, '?', 0, $dbh->quote($matchstr)); } elsif ($matchtype eq 'notregexp') { - $query .= $dbh->sql_not_regexp($expr, '?'); - $matchstr = '.' unless $matchstr; + $query .= $dbh->sql_not_regexp($expr, '?', 0, $dbh->quote($matchstr)); } elsif ($matchtype eq 'exact') { $query .= $expr . ' = ?'; - $matchstr = '.' unless $matchstr; } else { # substr or unknown $query .= $dbh->sql_istrcmp($expr, '?', 'LIKE'); $matchstr = "%$matchstr%"; } $nextCondition = 'AND'; - # We can trick_taint because we use the value in a SELECT only, - # using a placeholder. - trick_taint($matchstr); push(@bindValues, $matchstr); } @@ -238,7 +243,7 @@ if ($action eq 'search') { # Update profiles table entry; silently skip doing this if the user # is not authorized. - my %changes; + my $changes = {}; if ($editusers) { $otherUser->set_login($cgi->param('login')); $otherUser->set_name($cgi->param('name')); @@ -246,7 +251,7 @@ if ($action eq 'search') { if $cgi->param('password'); $otherUser->set_disabledtext($cgi->param('disabledtext')); $otherUser->set_disable_mail($cgi->param('disable_mail')); - %changes = %{$otherUser->update()}; + $changes = $otherUser->update(); } # Update group settings. @@ -276,9 +281,9 @@ if ($action eq 'search') { # would allow to display a friendlier error message on page reloads. userDataToVars($otherUserID); my $permissions = $vars->{'permissions'}; - foreach (@{$user->bless_groups()}) { - my $id = $$_{'id'}; - my $name = $$_{'name'}; + foreach my $blessable (@{$user->bless_groups()}) { + my $id = $blessable->id; + my $name = $blessable->name; # Change memberships. my $groupid = $cgi->param("group_$id") || 0; @@ -334,7 +339,7 @@ if ($action eq 'search') { delete_token($token); $vars->{'message'} = 'account_updated'; - $vars->{'changed_fields'} = [keys %changes]; + $vars->{'changed_fields'} = [keys %$changes]; $vars->{'groups_added_to'} = \@groupsAddedTo; $vars->{'groups_removed_from'} = \@groupsRemovedFrom; $vars->{'groups_granted_rights_to_bless'} = \@groupsGrantedRightsToBless; @@ -523,7 +528,6 @@ if ($action eq 'search') { $otherUserID); $dbh->do('DELETE FROM profiles_activity WHERE userid = ? OR who = ?', undef, ($otherUserID, $otherUserID)); - $dbh->do('UPDATE quips SET userid = NULL where userid = ?', undef, $otherUserID); $dbh->do('DELETE FROM tokens WHERE userid = ?', undef, $otherUserID); $dbh->do('DELETE FROM user_group_map WHERE user_id = ?', undef, $otherUserID); @@ -652,7 +656,7 @@ if ($action eq 'search') { $vars->{'profile_changes'} = $dbh->selectall_arrayref( "SELECT profiles.login_name AS who, " . $dbh->sql_date_format('profiles_activity.profiles_when') . " AS activity_when, - fielddefs.description AS what, + fielddefs.name AS what, profiles_activity.oldvalue AS removed, profiles_activity.newvalue AS added FROM profiles_activity diff --git a/editvalues.cgi b/editvalues.cgi index a7a5204218581ee03c51ac88a434db324597fa69..5b82cee01f11f0ec0fe5976dfad3bf2ae4bfd4af 100755 --- a/editvalues.cgi +++ b/editvalues.cgi @@ -25,79 +25,21 @@ use Bugzilla; use Bugzilla::Util; use Bugzilla::Error; use Bugzilla::Constants; -use Bugzilla::Config qw(:admin); use Bugzilla::Token; use Bugzilla::Field; -use Bugzilla::Bug; -use Bugzilla::Status; +use Bugzilla::Field::Choice; -# List of different tables that contain the changeable field values -# (the old "enums.") Keep them in alphabetical order by their -# English name from field-descs.html.tmpl. -# Format: Array of valid field names. -our @valid_fields = ('op_sys', 'rep_platform', 'priority', 'bug_severity', - 'bug_status', 'resolution'); +############### +# Subroutines # +############### -# Add custom select fields. -my @custom_fields = Bugzilla->get_fields({custom => 1, - type => FIELD_TYPE_SINGLE_SELECT}); -push(@custom_fields, Bugzilla->get_fields({custom => 1, - type => FIELD_TYPE_MULTI_SELECT})); - -push(@valid_fields, map { $_->name } @custom_fields); - -###################################################################### -# Subroutines -###################################################################### - -# Returns whether or not the specified table exists in the @tables array. -sub FieldExists { - my ($field) = @_; - - return lsearch(\@valid_fields, $field) >= 0; -} - -# Same as FieldExists, but emits and error and dies if it fails. -sub FieldMustExist { - my ($field)= @_; - - $field || - ThrowUserError('fieldname_not_specified'); - - # Is it a valid field to be editing? - FieldExists($field) || - ThrowUserError('fieldname_invalid', {'field' => $field}); - - return new Bugzilla::Field({name => $field}); -} - -# Returns if the specified value exists for the field specified. -sub ValueExists { - my ($field, $value) = @_; - # Value is safe because it's being passed only to a SELECT - # statement via a placeholder. - trick_taint($value); - - my $dbh = Bugzilla->dbh; - my $value_count = - $dbh->selectrow_array("SELECT COUNT(*) FROM $field " - . " WHERE value = ?", undef, $value); - - return $value_count; -} - -# Same check as ValueExists, emits an error text and dies if it fails. -sub ValueMustExist { - my ($field, $value)= @_; - - # Values may not be empty (it's very difficult to deal - # with empty values in the admin interface). - trim($value) || ThrowUserError('fieldvalue_not_specified'); - - # Does it exist in the DB? - ValueExists($field, $value) || - ThrowUserError('fieldvalue_doesnt_exist', {'value' => $value, - 'field' => $field}); +sub display_field_values { + my $vars = shift; + my $template = Bugzilla->template; + $vars->{'values'} = $vars->{'field'}->legal_values; + $template->process("admin/fieldvalues/list.html.tmpl", $vars) + || ThrowTemplateError($template->error()); + exit; } ###################################################################### @@ -110,7 +52,7 @@ Bugzilla->login(LOGIN_REQUIRED); my $dbh = Bugzilla->dbh; my $cgi = Bugzilla->cgi; my $template = Bugzilla->template; -local our $vars = {}; +my $vars = {}; # Replace this entry by separate entries in templates when # the documentation about legal values becomes bigger. @@ -118,7 +60,7 @@ $vars->{'doc_section'} = 'edit-values.html'; print $cgi->header(); -exists Bugzilla->user->groups->{'admin'} || +Bugzilla->user->in_group('admin') || ThrowUserError('auth_failure', {group => "admin", action => "edit", object => "field_values"}); @@ -126,177 +68,80 @@ exists Bugzilla->user->groups->{'admin'} || # # often-used variables # -my $field = trim($cgi->param('field') || ''); -my $value = trim($cgi->param('value') || ''); -my $sortkey = trim($cgi->param('sortkey') || '0'); -my $action = trim($cgi->param('action') || ''); -my $token = $cgi->param('token'); - -# Gives the name of the parameter associated with the field -# and representing its default value. -local our %defaults; -$defaults{'op_sys'} = 'defaultopsys'; -$defaults{'rep_platform'} = 'defaultplatform'; -$defaults{'priority'} = 'defaultpriority'; -$defaults{'bug_severity'} = 'defaultseverity'; - -# Alternatively, a list of non-editable values can be specified. -# In this case, only the sortkey can be altered. -local our %static; -$static{'bug_status'} = ['UNCONFIRMED', Bugzilla->params->{'duplicate_or_move_bug_status'}]; -$static{'resolution'} = ['', 'FIXED', 'MOVED', 'DUPLICATE']; -$static{$_->name} = ['---'] foreach (@custom_fields); +my $action = trim($cgi->param('action') || ''); +my $token = $cgi->param('token'); # # field = '' -> Show nice list of fields # -unless ($field) { - # Convert @valid_fields into the format that select-field wants. - my @field_list = (); - foreach my $field_name (@valid_fields) { - push(@field_list, {name => $field_name}); - } +if (!$cgi->param('field')) { + my @field_list = Bugzilla->get_fields({ is_select => 1 }); $vars->{'fields'} = \@field_list; - $template->process("admin/fieldvalues/select-field.html.tmpl", - $vars) + $template->process("admin/fieldvalues/select-field.html.tmpl", $vars) || ThrowTemplateError($template->error()); exit; } -# At this point, the field is defined. -my $field_obj = FieldMustExist($field); -$vars->{'field'} = $field_obj; -trick_taint($field); - -sub display_field_values { - my $template = Bugzilla->template; - my $field = $vars->{'field'}->name; - my $fieldvalues = - Bugzilla->dbh->selectall_arrayref("SELECT value AS name, sortkey" - . " FROM $field ORDER BY sortkey, value", - {Slice =>{}}); - - $vars->{'values'} = $fieldvalues; - $vars->{'default'} = Bugzilla->params->{$defaults{$field}} if defined $defaults{$field}; - $vars->{'static'} = $static{$field} if exists $static{$field}; - - $template->process("admin/fieldvalues/list.html.tmpl", $vars) - || ThrowTemplateError($template->error()); - exit; +# At this point, the field must be defined. +my $field = Bugzilla::Field->check($cgi->param('field')); +if (!$field->is_select) { + ThrowUserError('fieldname_invalid', { field => $field }); } +$vars->{'field'} = $field; # # action='' -> Show nice list of values. # -display_field_values() unless $action; +display_field_values($vars) unless $action; # # action='add' -> show form for adding new field value. # (next action will be 'new') # if ($action eq 'add') { - $vars->{'value'} = $value; $vars->{'token'} = issue_session_token('add_field_value'); - $template->process("admin/fieldvalues/create.html.tmpl", - $vars) + $template->process("admin/fieldvalues/create.html.tmpl", $vars) || ThrowTemplateError($template->error()); - exit; } - # # action='new' -> add field value entered in the 'action=add' screen # if ($action eq 'new') { check_token_data($token, 'add_field_value'); - # Cleanups and validity checks - $value || ThrowUserError('fieldvalue_undefined'); - - if (length($value) > 60) { - ThrowUserError('fieldvalue_name_too_long', - {'value' => $value}); - } - # Need to store in case detaint_natural() clears the sortkey - my $stored_sortkey = $sortkey; - if (!detaint_natural($sortkey)) { - ThrowUserError('fieldvalue_sortkey_invalid', - {'name' => $field, - 'sortkey' => $stored_sortkey}); - } - if (ValueExists($field, $value)) { - ThrowUserError('fieldvalue_already_exists', - {'field' => $field_obj, - 'value' => $value}); - } - if ($field eq 'bug_status' - && (grep { lc($value) eq $_ } SPECIAL_STATUS_WORKFLOW_ACTIONS)) - { - $vars->{'value'} = $value; - ThrowUserError('fieldvalue_reserved_word', $vars); - } - - # Value is only used in a SELECT placeholder and through the HTML filter. - trick_taint($value); - - # Add the new field value. - $dbh->do("INSERT INTO $field (value, sortkey) VALUES (?, ?)", - undef, ($value, $sortkey)); - - if ($field eq 'bug_status') { - unless ($cgi->param('is_open')) { - # The bug status is a closed state, but they are open by default. - $dbh->do('UPDATE bug_status SET is_open = 0 WHERE value = ?', undef, $value); - } - # Allow the transition from this new bug status to the one used - # by the 'duplicate_or_move_bug_status' parameter. - Bugzilla::Status::add_missing_bug_status_transitions(); - } + my $created_value = Bugzilla::Field::Choice->type($field)->create({ + value => scalar $cgi->param('value'), + sortkey => scalar $cgi->param('sortkey'), + is_open => scalar $cgi->param('is_open'), + visibility_value_id => scalar $cgi->param('visibility_value_id'), + }); delete_token($token); $vars->{'message'} = 'field_value_created'; - $vars->{'value'} = $value; - display_field_values(); + $vars->{'value'} = $created_value; + display_field_values($vars); } +# After this, we always have a value +my $value = Bugzilla::Field::Choice->type($field)->check($cgi->param('value')); +$vars->{'value'} = $value; # # action='del' -> ask if user really wants to delete # (next action would be 'delete') # if ($action eq 'del') { - ValueMustExist($field, $value); - trick_taint($value); - - # See if any bugs are still using this value. - if ($field_obj->type != FIELD_TYPE_MULTI_SELECT) { - $vars->{'bug_count'} = - $dbh->selectrow_array("SELECT COUNT(*) FROM bugs WHERE $field = ?", - undef, $value); - } - else { - $vars->{'bug_count'} = - $dbh->selectrow_array("SELECT COUNT(*) FROM bug_$field WHERE value = ?", - undef, $value); - } - - $vars->{'value_count'} = - $dbh->selectrow_array("SELECT COUNT(*) FROM $field"); - - $vars->{'value'} = $value; - $vars->{'param_name'} = $defaults{$field}; - # If the value cannot be deleted, throw an error. - if (lsearch($static{$field}, $value) >= 0) { + if ($value->is_static) { ThrowUserError('fieldvalue_not_deletable', $vars); } $vars->{'token'} = issue_session_token('delete_field_value'); - $template->process("admin/fieldvalues/confirm-delete.html.tmpl", - $vars) + $template->process("admin/fieldvalues/confirm-delete.html.tmpl", $vars) || ThrowTemplateError($template->error()); exit; @@ -308,63 +153,11 @@ if ($action eq 'del') { # if ($action eq 'delete') { check_token_data($token, 'delete_field_value'); - ValueMustExist($field, $value); - - $vars->{'value'} = $value; - $vars->{'param_name'} = $defaults{$field}; - - if (defined $defaults{$field} - && ($value eq Bugzilla->params->{$defaults{$field}})) - { - ThrowUserError('fieldvalue_is_default', $vars); - } - # If the value cannot be deleted, throw an error. - if (lsearch($static{$field}, $value) >= 0) { - ThrowUserError('fieldvalue_not_deletable', $vars); - } - - trick_taint($value); - - $dbh->bz_start_transaction(); - - # Check if there are any bugs that still have this value. - my $bug_count; - if ($field_obj->type != FIELD_TYPE_MULTI_SELECT) { - $bug_count = - $dbh->selectrow_array("SELECT COUNT(*) FROM bugs WHERE $field = ?", - undef, $value); - } - else { - $bug_count = - $dbh->selectrow_array("SELECT COUNT(*) FROM bug_$field WHERE value = ?", - undef, $value); - } - - - if ($bug_count) { - # You tried to delete a field that bugs are still using. - # You can't just delete the bugs. That's ridiculous. - ThrowUserError("fieldvalue_still_has_bugs", - { field => $field, value => $value, - count => $bug_count }); - } - - if ($field eq 'bug_status') { - my ($status_id) = $dbh->selectrow_array( - 'SELECT id FROM bug_status WHERE value = ?', undef, $value); - $dbh->do('DELETE FROM status_workflow - WHERE old_status = ? OR new_status = ?', - undef, ($status_id, $status_id)); - } - - $dbh->do("DELETE FROM $field WHERE value = ?", undef, $value); - - $dbh->bz_commit_transaction(); + $value->remove_from_db(); delete_token($token); - $vars->{'message'} = 'field_value_deleted'; $vars->{'no_edit_link'} = 1; - display_field_values(); + display_field_values($vars); } @@ -373,20 +166,7 @@ if ($action eq 'delete') { # (next action would be 'update') # if ($action eq 'edit') { - ValueMustExist($field, $value); - trick_taint($value); - - $vars->{'sortkey'} = $dbh->selectrow_array( - "SELECT sortkey FROM $field WHERE value = ?", undef, $value) || 0; - - $vars->{'value'} = $value; - $vars->{'is_static'} = (lsearch($static{$field}, $value) >= 0) ? 1 : 0; $vars->{'token'} = issue_session_token('edit_field_value'); - if ($field eq 'bug_status') { - $vars->{'is_open'} = $dbh->selectrow_array('SELECT is_open FROM bug_status - WHERE value = ?', undef, $value); - } - $template->process("admin/fieldvalues/edit.html.tmpl", $vars) || ThrowTemplateError($template->error()); @@ -399,93 +179,14 @@ if ($action eq 'edit') { # if ($action eq 'update') { check_token_data($token, 'edit_field_value'); - my $valueold = trim($cgi->param('valueold') || ''); - my $sortkeyold = trim($cgi->param('sortkeyold') || '0'); - - ValueMustExist($field, $valueold); - trick_taint($valueold); - - $vars->{'value'} = $value; - # If the value cannot be renamed, throw an error. - if (lsearch($static{$field}, $valueold) >= 0 && $value ne $valueold) { - $vars->{'old_value'} = $valueold; - ThrowUserError('fieldvalue_not_editable', $vars); - } - - if (length($value) > 60) { - ThrowUserError('fieldvalue_name_too_long', $vars); - } - - $dbh->bz_start_transaction(); - - # Need to store because detaint_natural() will delete this if - # invalid - my $stored_sortkey = $sortkey; - if ($sortkey != $sortkeyold) { - - if (!detaint_natural($sortkey)) { - ThrowUserError('fieldvalue_sortkey_invalid', - {'name' => $field, - 'sortkey' => $stored_sortkey}); - - } - - $dbh->do("UPDATE $field SET sortkey = ? WHERE value = ?", - undef, $sortkey, $valueold); - - $vars->{'updated_sortkey'} = 1; - $vars->{'sortkey'} = $sortkey; - } - - if ($value ne $valueold) { - - unless ($value) { - ThrowUserError('fieldvalue_undefined'); - } - if (ValueExists($field, $value)) { - ThrowUserError('fieldvalue_already_exists', $vars); - } - if ($field eq 'bug_status' - && (grep { lc($value) eq $_ } SPECIAL_STATUS_WORKFLOW_ACTIONS)) - { - $vars->{'value'} = $value; - ThrowUserError('fieldvalue_reserved_word', $vars); - } - trick_taint($value); - - if ($field_obj->type != FIELD_TYPE_MULTI_SELECT) { - $dbh->do("UPDATE bugs SET $field = ? WHERE $field = ?", - undef, $value, $valueold); - } - else { - $dbh->do("UPDATE bug_$field SET value = ? WHERE value = ?", - undef, $value, $valueold); - } - - $dbh->do("UPDATE $field SET value = ? WHERE value = ?", - undef, $value, $valueold); - - $vars->{'updated_value'} = 1; - } - - $dbh->bz_commit_transaction(); - - # If the old value was the default value for the field, - # update data/params accordingly. - # This update is done while tables are unlocked due to the - # annoying calls in Bugzilla/Config/Common.pm. - if (defined $defaults{$field} - && $value ne $valueold - && $valueold eq Bugzilla->params->{$defaults{$field}}) - { - SetParam($defaults{$field}, $value); - write_params(); - $vars->{'default_value_updated'} = 1; - } + $vars->{'value_old'} = $value->name; + $value->set_name($cgi->param('value_new')); + $value->set_sortkey($cgi->param('sortkey')); + $value->set_visibility_value($cgi->param('visibility_value_id')); + $vars->{'changes'} = $value->update(); delete_token($token); - $vars->{'message'} = 'field_value_updated'; - display_field_values(); + display_field_values($vars); } diff --git a/editwhines.cgi b/editwhines.cgi index 33b7860bc63c86746fcc8836f5cb56ff94046fad..06717fe2c5f586a3b09c4df8643b6078875e933f 100755 --- a/editwhines.cgi +++ b/editwhines.cgi @@ -238,7 +238,6 @@ if ($cgi->param('update')) { # get an id for the mailto address if ($can_mail_others && $mailto) { if ($mailto_type == MAILTO_USER) { - # The user login has already been validated. $mailto_id = login_to_id($mailto); } elsif ($mailto_type == MAILTO_GROUP) { @@ -427,6 +426,7 @@ while (my ($query) = $sth->fetchrow_array) { push @{$vars->{'available_queries'}}, $query; } $vars->{'token'} = issue_session_token('edit_whine'); +$vars->{'local_timezone'} = Bugzilla->local_timezone->short_name_for_datetime(DateTime->now()); $template->process("whine/schedule.html.tmpl", $vars) || ThrowTemplateError($template->error()); diff --git a/email_in.pl b/email_in.pl index e1ebd3e0c9ed11855389ddb033bd5285fba5d2a1..bed5a1477ccdf3f9a96b7d6df971c983a149fe11 100644 --- a/email_in.pl +++ b/email_in.pl @@ -41,13 +41,12 @@ use Pod::Usage; use Encode; use Bugzilla; -use Bugzilla::Bug qw(ValidateBugID); +use Bugzilla::Bug; use Bugzilla::Constants qw(USAGE_MODE_EMAIL); use Bugzilla::Error; use Bugzilla::Mailer; use Bugzilla::User; use Bugzilla::Util; -use Bugzilla::Token; ############# # Constants # @@ -173,8 +172,7 @@ sub process_bug { debug_print("Updating Bug $fields{id}..."); - ValidateBugID($bug_id); - my $bug = new Bugzilla::Bug($bug_id); + my $bug = Bugzilla::Bug->check($bug_id); if ($fields{'bug_status'}) { $fields{'knob'} = $fields{'bug_status'}; @@ -203,7 +201,6 @@ sub process_bug { $cgi->param(-name => $field, -value => $fields{$field}); } $cgi->param('longdesclength', scalar $bug->longdescs); - $cgi->param('token', issue_hash_token([$bug->id, $bug->delta_ts])); require 'process_bug.cgi'; } diff --git a/enter_bug.cgi b/enter_bug.cgi index ca9b39a17cd6b70ad8af93013f8b880ac87c480a..d463a7a11eead83f3949bc71e0a822c9f15cf6e5 100755 --- a/enter_bug.cgi +++ b/enter_bug.cgi @@ -22,6 +22,7 @@ # Joe Robins <jmrobins@tgix.com> # Gervase Markham <gerv@gerv.net> # Shane H. W. Travis <travis@sedsystems.ca> +# Nitish Bezzala <nbezzala@yahoo.com> ############################################################################## # @@ -351,8 +352,8 @@ my $has_canconfirm = $user->in_group('canconfirm', $product->id); $cloned_bug_id = $cgi->param('cloned_bug_id'); if ($cloned_bug_id) { - ValidateBugID($cloned_bug_id); - $cloned_bug = new Bugzilla::Bug($cloned_bug_id); + $cloned_bug = Bugzilla::Bug->check($cloned_bug_id); + $cloned_bug_id = $cloned_bug->id; } if (scalar(@{$product->components}) == 1) { @@ -399,15 +400,19 @@ if ($cloned_bug_id) { $vars->{'short_desc'} = $cloned_bug->short_desc; $vars->{'bug_file_loc'} = $cloned_bug->bug_file_loc; $vars->{'keywords'} = $cloned_bug->keywords; - $vars->{'dependson'} = $cloned_bug_id; - $vars->{'blocked'} = ""; + $vars->{'dependson'} = join (", ", $cloned_bug_id, @{$cloned_bug->dependson}); + $vars->{'blocked'} = join (", ", @{$cloned_bug->blocked}); $vars->{'deadline'} = $cloned_bug->deadline; if (defined $cloned_bug->cc) { - $vars->{'cc'} = join (" ", @{$cloned_bug->cc}); + $vars->{'cc'} = join (", ", @{$cloned_bug->cc}); } else { $vars->{'cc'} = formvalue('cc'); } + + if ($cloned_bug->reporter->id != $user->id) { + $vars->{'cc'} = join (", ", $cloned_bug->reporter->login, $vars->{'cc'}); + } foreach my $field (@enter_bug_fields) { my $field_name = $field->name; @@ -417,17 +422,14 @@ if ($cloned_bug_id) { # We need to ensure that we respect the 'insider' status of # the first comment, if it has one. Either way, make a note # that this bug was cloned from another bug. - # We cannot use $cloned_bug->longdescs because this method - # depends on the "comment_sort_order" user pref, and we - # really want the first comment of the bug. - my $bug_desc = Bugzilla::Bug::GetComments($cloned_bug_id, 'oldest_to_newest'); - my $isprivate = $bug_desc->[0]->{'isprivate'}; + + my $isprivate = $cloned_bug->longdescs->[0]->{'isprivate'}; $vars->{'comment'} = ""; $vars->{'commentprivacy'} = 0; - if (!$isprivate || Bugzilla->user->is_insider) { - $vars->{'comment'} = $bug_desc->[0]->{'body'}; + if ( !($isprivate) || Bugzilla->user->is_insider ) { + $vars->{'comment'} = $cloned_bug->longdescs->[0]->{'body'}; $vars->{'commentprivacy'} = $isprivate; } diff --git a/extensions/CVS/Tag b/extensions/CVS/Tag index efa87d6722f10a1d970604be7881773f97969d3e..8d751ae8a4f2d445287de3bcefb6f8a590304c1c 100644 --- a/extensions/CVS/Tag +++ b/extensions/CVS/Tag @@ -1 +1 @@ -TBUGZILLA-3_2_1 +TBUGZILLA-3_3_1 diff --git a/extensions/example/CVS/Entries b/extensions/example/CVS/Entries index 9bea10a59e49f42d66e62c07aecedd06b510cdab..aa5cd15f78df102abd5749780d73621409876783 100644 --- a/extensions/example/CVS/Entries +++ b/extensions/example/CVS/Entries @@ -1,5 +1,5 @@ -/disabled/1.1/Fri Oct 19 07:58:49 2007//TBUGZILLA-3_2_1 -/info.pl/1.1/Mon May 19 18:38:27 2008//TBUGZILLA-3_2_1 +/disabled/1.1/Fri Oct 19 07:58:49 2007//TBUGZILLA-3_3_1 +/info.pl/1.1/Mon May 19 18:38:27 2008//TBUGZILLA-3_3_1 D/code//// D/lib//// D/template//// diff --git a/extensions/example/CVS/Tag b/extensions/example/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/extensions/example/CVS/Tag +++ b/extensions/example/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/extensions/example/code/CVS/Entries b/extensions/example/code/CVS/Entries index 60f9624c29be7bbb7720cf4edbf29ed5e6e829f0..77cfcdfc7065f3dfb77f5b508af0b67b4ac85468 100644 --- a/extensions/example/code/CVS/Entries +++ b/extensions/example/code/CVS/Entries @@ -1,10 +1,17 @@ -/bug-end_of_update.pl/1.1.2.2/Wed Nov 5 19:18:17 2008//TBUGZILLA-3_2_1 -/buglist-columns.pl/1.1.2.1/Sat Jun 28 18:09:32 2008//TBUGZILLA-3_2_1 -/colchange-columns.pl/1.1.2.1/Tue Aug 19 21:29:54 2008//TBUGZILLA-3_2_1 -/config.pl/1.1/Mon May 5 23:01:25 2008//TBUGZILLA-3_2_1 -/flag-end_of_update.pl/1.1.2.2/Wed Nov 5 19:18:17 2008//TBUGZILLA-3_2_1 -/install-before_final_checks.pl/1.1.2.1/Thu Aug 21 23:01:42 2008//TBUGZILLA-3_2_1 -/product-confirm_delete.pl/1.1.2.1/Thu Dec 18 17:33:24 2008//TBUGZILLA-3_2_1 -/webservice-error_codes.pl/1.1.2.1/Tue May 27 22:12:02 2008//TBUGZILLA-3_2_1 -/webservice.pl/1.2/Fri Oct 19 08:01:51 2007//TBUGZILLA-3_2_1 +/auth-login_methods.pl/1.1/Wed Aug 6 23:38:29 2008//TBUGZILLA-3_3_1 +/auth-verify_methods.pl/1.1/Wed Aug 6 23:38:29 2008//TBUGZILLA-3_3_1 +/bug-columns.pl/1.1/Thu Aug 21 22:56:49 2008//TBUGZILLA-3_3_1 +/bug-end_of_update.pl/1.1/Wed Nov 5 19:15:07 2008//TBUGZILLA-3_3_1 +/bug-fields.pl/1.1/Thu Aug 21 22:56:49 2008//TBUGZILLA-3_3_1 +/buglist-columns.pl/1.1/Sat Jun 28 18:04:55 2008//TBUGZILLA-3_3_1 +/colchange-columns.pl/1.1/Tue Aug 19 21:28:03 2008//TBUGZILLA-3_3_1 +/config-add_panels.pl/1.1/Wed Aug 6 23:38:29 2008//TBUGZILLA-3_3_1 +/config-modify_panels.pl/1.1/Wed Aug 6 23:38:29 2008//TBUGZILLA-3_3_1 +/config.pl/1.1/Mon May 5 23:01:25 2008//TBUGZILLA-3_3_1 +/flag-end_of_update.pl/1.1/Wed Nov 5 19:15:07 2008//TBUGZILLA-3_3_1 +/install-before_final_checks.pl/1.1/Thu Aug 21 22:58:46 2008//TBUGZILLA-3_3_1 +/mailer-before_send.pl/1.1/Mon Oct 20 00:04:45 2008//TBUGZILLA-3_3_1 +/product-confirm_delete.pl/1.2/Thu Dec 18 17:33:35 2008//TBUGZILLA-3_3_1 +/webservice-error_codes.pl/1.1/Tue May 27 22:09:05 2008//TBUGZILLA-3_3_1 +/webservice.pl/1.2/Fri Oct 19 08:01:51 2007//TBUGZILLA-3_3_1 D diff --git a/extensions/example/code/CVS/Tag b/extensions/example/code/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/extensions/example/code/CVS/Tag +++ b/extensions/example/code/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/extensions/example/code/auth-login_methods.pl b/extensions/example/code/auth-login_methods.pl new file mode 100644 index 0000000000000000000000000000000000000000..0ae12aa6bf1364afa9b28eb0513153028c1df5ec --- /dev/null +++ b/extensions/example/code/auth-login_methods.pl @@ -0,0 +1,27 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical Ltd. are Copyright (C) 2008 +# Canonical Ltd. All Rights Reserved. +# +# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org> + +use strict; +use warnings; +use Bugzilla; +my $modules = Bugzilla->hook_args->{modules}; +if (exists $modules->{Example}) { + $modules->{Example} = 'extensions/example/lib/AuthLogin.pm'; +} diff --git a/extensions/example/code/auth-verify_methods.pl b/extensions/example/code/auth-verify_methods.pl new file mode 100644 index 0000000000000000000000000000000000000000..7ae52f012b916a0a7a0cc66e47935f747854b8be --- /dev/null +++ b/extensions/example/code/auth-verify_methods.pl @@ -0,0 +1,27 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical Ltd. are Copyright (C) 2008 +# Canonical Ltd. All Rights Reserved. +# +# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org> + +use strict; +use warnings; +use Bugzilla; +my $modules = Bugzilla->hook_args->{modules}; +if (exists $modules->{Example}) { + $modules->{Example} = 'extensions/example/lib/AuthVerify.pm'; +} diff --git a/extensions/example/code/bug-columns.pl b/extensions/example/code/bug-columns.pl new file mode 100644 index 0000000000000000000000000000000000000000..92ccf6d2301b1e5d34e666fc0d28e4d4bb237ac5 --- /dev/null +++ b/extensions/example/code/bug-columns.pl @@ -0,0 +1,27 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical Ltd. are Copyright (C) 2008 +# Canonical Ltd. All Rights Reserved. +# +# Contributor(s): Elliotte Martin <elliotte_martin@yahoo.com> + + +use strict; +use warnings; +use Bugzilla; + +my $columns = Bugzilla->hook_args->{'columns'}; +push (@$columns, "delta_ts AS example") diff --git a/extensions/example/code/bug-fields.pl b/extensions/example/code/bug-fields.pl new file mode 100644 index 0000000000000000000000000000000000000000..f8475426d8181a2371f5e7777832ac04bd594c59 --- /dev/null +++ b/extensions/example/code/bug-fields.pl @@ -0,0 +1,27 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical Ltd. are Copyright (C) 2008 +# Canonical Ltd. All Rights Reserved. +# +# Contributor(s): Elliotte Martin <elliotte_martin@yahoo.com> + + +use strict; +use warnings; +use Bugzilla; + +my $fields = Bugzilla->hook_args->{'fields'}; +push (@$fields, "example") diff --git a/extensions/example/code/config-add_panels.pl b/extensions/example/code/config-add_panels.pl new file mode 100644 index 0000000000000000000000000000000000000000..5f4f5bdd40677d2659c200381eadea82e19e8085 --- /dev/null +++ b/extensions/example/code/config-add_panels.pl @@ -0,0 +1,25 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical Ltd. are Copyright (C) 2008 +# Canonical Ltd. All Rights Reserved. +# +# Contributor(s): Bradley Baetz <bbaetz@acm.org> + +use strict; +use warnings; +use Bugzilla; +my $modules = Bugzilla->hook_args->{panel_modules}; +$modules->{Example} = "extensions::example::lib::ConfigExample"; diff --git a/extensions/example/code/config-modify_panels.pl b/extensions/example/code/config-modify_panels.pl new file mode 100644 index 0000000000000000000000000000000000000000..bd93962bf11a8710f422c50e685e343056350af3 --- /dev/null +++ b/extensions/example/code/config-modify_panels.pl @@ -0,0 +1,32 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical Ltd. are Copyright (C) 2008 +# Canonical Ltd. All Rights Reserved. +# +# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org> + +use strict; +use warnings; +use Bugzilla; +my $panels = Bugzilla->hook_args->{panels}; + +# Add the "Example" auth methods. +my $auth_params = $panels->{'auth'}->{params}; +my ($info_class) = grep($_->{name} eq 'user_info_class', @$auth_params); +my ($verify_class) = grep($_->{name} eq 'user_verify_class', @$auth_params); + +push(@{ $info_class->{choices} }, 'CGI,Example'); +push(@{ $verify_class->{choices} }, 'Example'); diff --git a/extensions/example/code/mailer-before_send.pl b/extensions/example/code/mailer-before_send.pl new file mode 100644 index 0000000000000000000000000000000000000000..322c7808897ef9172f6c54617f532af5569725bb --- /dev/null +++ b/extensions/example/code/mailer-before_send.pl @@ -0,0 +1,28 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Everything Solved, Inc. +# Portions created by the Initial Developer are Copyright (C) 2008 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org> + +use strict; +use warnings; +use Bugzilla; +my $email = Bugzilla->hook_args->{email}; +# If you add a header to an email, it's best to start it with +# 'X-Bugzilla-<Extension>' so that you don't conflict with +# other extensions. +$email->header_set('X-Bugzilla-Example-Header', 'Example'); diff --git a/extensions/example/code/product-confirm_delete.pl b/extensions/example/code/product-confirm_delete.pl index 1f4c3740eef5530a9a4c0eee87413ae9d8b3b212..d961dfaa7cb14ef72ce5636254d4b28e609547c6 100644 --- a/extensions/example/code/product-confirm_delete.pl +++ b/extensions/example/code/product-confirm_delete.pl @@ -23,4 +23,4 @@ use strict; my $vars = Bugzilla->hook_args->{vars}; -$vars->{'example'} = 1 +$vars->{'example'} = 1 \ No newline at end of file diff --git a/extensions/example/lib/AuthLogin.pm b/extensions/example/lib/AuthLogin.pm new file mode 100644 index 0000000000000000000000000000000000000000..def3fa22891541559dc2570ac4a86ba0440c2895 --- /dev/null +++ b/extensions/example/lib/AuthLogin.pm @@ -0,0 +1,32 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical are Copyright (C) 2008 Canonical Ltd. +# All Rights Reserved. +# +# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org> + +package extensions::example::lib::AuthLogin; +use strict; +use base qw(Bugzilla::Auth::Login); +use constant user_can_create_account => 0; +use Bugzilla::Constants; + +# Always returns no data. +sub get_login_info { + return { failure => AUTH_NODATA }; +} + +1; diff --git a/extensions/example/lib/AuthVerify.pm b/extensions/example/lib/AuthVerify.pm new file mode 100644 index 0000000000000000000000000000000000000000..b89bbb213f9351c966e35a7dfb5f44bb54ffb95d --- /dev/null +++ b/extensions/example/lib/AuthVerify.pm @@ -0,0 +1,31 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical are Copyright (C) 2008 Canonical Ltd. +# All Rights Reserved. +# +# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org> + +package extensions::example::lib::AuthVerify; +use strict; +use base qw(Bugzilla::Auth::Verify); +use Bugzilla::Constants; + +# A verifier that always fails. +sub check_credentials { + return { failure => AUTH_NO_SUCH_USER }; +} + +1; diff --git a/extensions/example/lib/CVS/Entries b/extensions/example/lib/CVS/Entries index 520bca9440c67c3eff1f068b7144af1f2a611694..352769480f92e86466a5128f0aa4de192106fa0d 100644 --- a/extensions/example/lib/CVS/Entries +++ b/extensions/example/lib/CVS/Entries @@ -1,3 +1,5 @@ -/ConfigExample.pm/1.1/Mon May 5 23:01:31 2008//TBUGZILLA-3_2_1 -/WSExample.pm/1.2.2.1/Tue May 27 22:12:12 2008//TBUGZILLA-3_2_1 +/AuthLogin.pm/1.1/Wed Aug 6 23:38:31 2008//TBUGZILLA-3_3_1 +/AuthVerify.pm/1.1/Wed Aug 6 23:38:31 2008//TBUGZILLA-3_3_1 +/ConfigExample.pm/1.1/Mon May 5 23:01:31 2008//TBUGZILLA-3_3_1 +/WSExample.pm/1.3/Tue May 27 22:09:17 2008//TBUGZILLA-3_3_1 D diff --git a/extensions/example/lib/CVS/Tag b/extensions/example/lib/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/extensions/example/lib/CVS/Tag +++ b/extensions/example/lib/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/extensions/example/template/CVS/Tag b/extensions/example/template/CVS/Tag index efa87d6722f10a1d970604be7881773f97969d3e..8d751ae8a4f2d445287de3bcefb6f8a590304c1c 100644 --- a/extensions/example/template/CVS/Tag +++ b/extensions/example/template/CVS/Tag @@ -1 +1 @@ -TBUGZILLA-3_2_1 +TBUGZILLA-3_3_1 diff --git a/extensions/example/template/en/CVS/Tag b/extensions/example/template/en/CVS/Tag index efa87d6722f10a1d970604be7881773f97969d3e..8d751ae8a4f2d445287de3bcefb6f8a590304c1c 100644 --- a/extensions/example/template/en/CVS/Tag +++ b/extensions/example/template/en/CVS/Tag @@ -1 +1 @@ -TBUGZILLA-3_2_1 +TBUGZILLA-3_3_1 diff --git a/extensions/example/template/en/default/CVS/Tag b/extensions/example/template/en/default/CVS/Tag index efa87d6722f10a1d970604be7881773f97969d3e..8d751ae8a4f2d445287de3bcefb6f8a590304c1c 100644 --- a/extensions/example/template/en/default/CVS/Tag +++ b/extensions/example/template/en/default/CVS/Tag @@ -1 +1 @@ -TBUGZILLA-3_2_1 +TBUGZILLA-3_3_1 diff --git a/extensions/example/template/en/default/admin/CVS/Tag b/extensions/example/template/en/default/admin/CVS/Tag index efa87d6722f10a1d970604be7881773f97969d3e..8d751ae8a4f2d445287de3bcefb6f8a590304c1c 100644 --- a/extensions/example/template/en/default/admin/CVS/Tag +++ b/extensions/example/template/en/default/admin/CVS/Tag @@ -1 +1 @@ -TBUGZILLA-3_2_1 +TBUGZILLA-3_3_1 diff --git a/extensions/example/template/en/default/admin/params/CVS/Entries b/extensions/example/template/en/default/admin/params/CVS/Entries index 82df72cdce7816964a7ff3b9a0489de7d5679151..2c0e2b283714019d258d98945291087266c51c42 100644 --- a/extensions/example/template/en/default/admin/params/CVS/Entries +++ b/extensions/example/template/en/default/admin/params/CVS/Entries @@ -1,2 +1,2 @@ -/example.html.tmpl/1.1/Mon May 5 23:01:33 2008//TBUGZILLA-3_2_1 +/example.html.tmpl/1.1/Mon May 5 23:01:33 2008//TBUGZILLA-3_3_1 D diff --git a/extensions/example/template/en/default/admin/params/CVS/Tag b/extensions/example/template/en/default/admin/params/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/extensions/example/template/en/default/admin/params/CVS/Tag +++ b/extensions/example/template/en/default/admin/params/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/extensions/example/template/en/global/CVS/Entries b/extensions/example/template/en/global/CVS/Entries index b6a4aa5526e90382046477f579983b632427cc93..c4e371fee3c07f0e16d3c43ea7820a2077c543b3 100644 --- a/extensions/example/template/en/global/CVS/Entries +++ b/extensions/example/template/en/global/CVS/Entries @@ -1,2 +1,2 @@ -/user-error-errors.html.tmpl/1.1.2.1/Tue May 27 22:12:18 2008//TBUGZILLA-3_2_1 +/user-error-errors.html.tmpl/1.1/Tue May 27 22:09:22 2008//TBUGZILLA-3_3_1 D diff --git a/extensions/example/template/en/global/CVS/Tag b/extensions/example/template/en/global/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/extensions/example/template/en/global/CVS/Tag +++ b/extensions/example/template/en/global/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/images/CVS/Entries b/images/CVS/Entries index 71ac9883df90b55fc841f2bb0419f8edda2d7144..10500984302545b3929312a8fe0814e043a3caad 100644 --- a/images/CVS/Entries +++ b/images/CVS/Entries @@ -1,3 +1,3 @@ -/favicon.ico/1.1.2.1/Wed Jul 30 11:16:40 2008/-kb/TBUGZILLA-3_2_1 -/padlock.png/1.2/Thu Sep 23 18:08:31 2004/-kb/TBUGZILLA-3_2_1 +/favicon.ico/1.1/Wed Jul 30 11:13:48 2008/-kb/TBUGZILLA-3_3_1 +/padlock.png/1.2/Thu Sep 23 18:08:31 2004/-kb/TBUGZILLA-3_3_1 D diff --git a/images/CVS/Tag b/images/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/images/CVS/Tag +++ b/images/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/importxml.pl b/importxml.pl index 6b0c043b4d732957f02d79b8d8e2cea7b8416f88..fd8c27723de135d9bac13eb925907bdaf03ace27 100755 --- a/importxml.pl +++ b/importxml.pl @@ -92,10 +92,6 @@ use Getopt::Long; use Pod::Usage; use XML::Twig; -# We want to capture errors and handle them here rather than have the Template -# code barf all over the place. -Bugzilla->usage_mode(Bugzilla::Constants::USAGE_MODE_CMDLINE); - my $debug = 0; my $mail = ''; my $attach_path = ''; @@ -571,8 +567,7 @@ sub process_bug { my $comments; $comments .= "\n\n--- Bug imported by $exporter_login "; - $comments .= time2str( "%Y-%m-%d %H:%M", time ) . " "; - $comments .= $params->{'timezone'}; + $comments .= format_time(localtime(time()), '%Y-%m-%d %H:%M %Z') . " "; $comments .= " ---\n\n"; $comments .= "This bug was previously known as _bug_ $bug_fields{'bug_id'} at "; $comments .= $urlbase . "show_bug.cgi?id=" . $bug_fields{'bug_id'} . "\n"; diff --git a/jobqueue.pl b/jobqueue.pl new file mode 100644 index 0000000000000000000000000000000000000000..ad0c81f853c3fcb595f50a093d8b0090fc643897 --- /dev/null +++ b/jobqueue.pl @@ -0,0 +1,54 @@ +#!/usr/bin/perl -w +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# The Initial Developer of the Original Code is Mozilla Corporation. +# Portions created by the Initial Developer are Copyright (C) 2008 +# Mozilla Corporation. All Rights Reserved. +# +# Contributor(s): +# Mark Smith <mark@mozilla.com> +# Max Kanat-Alexander <mkanat@bugzilla.org> + +use strict; +use File::Basename; +BEGIN { chdir dirname($0); } + +use lib qw(. lib); +use Bugzilla; +use Bugzilla::JobQueue::Runner; + +Bugzilla::JobQueue::Runner->new(); + +=head1 NAME + +jobqueue.pl - Runs jobs in the background for Bugzilla. + +=head1 SYNOPSIS + + ./jobqueue.pl [ -f ] [ -d ] { start | stop | restart | check | help | version } + + -f Run in the foreground (don't detach) + -d Output a lot of debugging information + start Starts a new jobqueue daemon if there isn't one running already + stop Stops a running jobqueue daemon + restart Stops a running jobqueue if one is running, and then + starts a new one. + check Report the current status of the daemon. + help Display this usage info + version Display the version of jobqueue.pl + +=head1 DESCRIPTION + +See L<Bugzilla::JobQueue> and L<Bugzilla::JobQueue::Runner>. diff --git a/js/CVS/Entries b/js/CVS/Entries index f8af2a5974d2b9a3e6ebf172f9226c870728e84b..0978ee760674f8f852bf7b470afcf73c928714ce 100644 --- a/js/CVS/Entries +++ b/js/CVS/Entries @@ -1,10 +1,10 @@ -/TUI.js/1.1/Tue Jul 12 12:32:16 2005//TBUGZILLA-3_2_1 -/attachment.js/1.3/Wed Mar 7 07:59:33 2007//TBUGZILLA-3_2_1 -/duplicates.js/1.2/Sun Jan 25 18:47:16 2004//TBUGZILLA-3_2_1 -/expanding-tree.js/1.2/Wed Feb 22 22:02:09 2006//TBUGZILLA-3_2_1 -/field.js/1.8.2.3/Thu Jan 1 23:34:11 2009//TBUGZILLA-3_2_1 -/help.js/1.1/Sun Apr 15 18:43:26 2007//TBUGZILLA-3_2_1 -/params.js/1.1/Thu Aug 2 22:38:44 2007//TBUGZILLA-3_2_1 -/productform.js/1.3/Tue Apr 17 22:08:06 2007//TBUGZILLA-3_2_1 -/util.js/1.3.2.1/Wed Sep 17 23:55:42 2008//TBUGZILLA-3_2_1 +/TUI.js/1.1/Tue Jul 12 12:32:16 2005//TBUGZILLA-3_3_1 +/attachment.js/1.4/Tue Oct 21 16:41:02 2008//TBUGZILLA-3_3_1 +/change-columns.js/1.1/Wed Sep 10 19:07:02 2008//TBUGZILLA-3_3_1 +/expanding-tree.js/1.2/Wed Feb 22 22:02:09 2006//TBUGZILLA-3_3_1 +/field.js/1.14/Thu Jan 1 23:32:26 2009//TBUGZILLA-3_3_1 +/help.js/1.1/Sun Apr 15 18:43:26 2007//TBUGZILLA-3_3_1 +/params.js/1.1/Thu Aug 2 22:38:44 2007//TBUGZILLA-3_3_1 +/productform.js/1.3/Tue Apr 17 22:08:06 2007//TBUGZILLA-3_3_1 +/util.js/1.6/Fri Nov 7 11:34:47 2008//TBUGZILLA-3_3_1 D/yui//// diff --git a/js/CVS/Tag b/js/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/js/CVS/Tag +++ b/js/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/js/attachment.js b/js/attachment.js index eb42ba49208f296b792e9c5851c400f3caa1d955..c05d1d3ea609e9c30fad02f212e80eb5356f41d6 100644 --- a/js/attachment.js +++ b/js/attachment.js @@ -104,3 +104,102 @@ function clearAttachmentFields() { if ((element = document.getElementById('isprivate'))) element.checked = ''; } + +/* Functions used when viewing patches in Diff mode. */ + +function collapse_all() { + var elem = document.checkboxform.firstChild; + while (elem != null) { + if (elem.firstChild != null) { + var tbody = elem.firstChild.nextSibling; + if (tbody.className == 'file') { + tbody.className = 'file_collapse'; + twisty = get_twisty_from_tbody(tbody); + twisty.firstChild.nodeValue = '(+)'; + twisty.nextSibling.checked = false; + } + } + elem = elem.nextSibling; + } + return false; +} + +function expand_all() { + var elem = document.checkboxform.firstChild; + while (elem != null) { + if (elem.firstChild != null) { + var tbody = elem.firstChild.nextSibling; + if (tbody.className == 'file_collapse') { + tbody.className = 'file'; + twisty = get_twisty_from_tbody(tbody); + twisty.firstChild.nodeValue = '(-)'; + twisty.nextSibling.checked = true; + } + } + elem = elem.nextSibling; + } + return false; +} + +var current_restore_elem; + +function restore_all() { + current_restore_elem = null; + incremental_restore(); +} + +function incremental_restore() { + if (!document.checkboxform.restore_indicator.checked) { + return; + } + var next_restore_elem; + if (current_restore_elem) { + next_restore_elem = current_restore_elem.nextSibling; + } else { + next_restore_elem = document.checkboxform.firstChild; + } + while (next_restore_elem != null) { + current_restore_elem = next_restore_elem; + if (current_restore_elem.firstChild != null) { + restore_elem(current_restore_elem.firstChild.nextSibling); + } + next_restore_elem = current_restore_elem.nextSibling; + } +} + +function restore_elem(elem, alertme) { + if (elem.className == 'file_collapse') { + twisty = get_twisty_from_tbody(elem); + if (twisty.nextSibling.checked) { + elem.className = 'file'; + twisty.firstChild.nodeValue = '(-)'; + } + } else if (elem.className == 'file') { + twisty = get_twisty_from_tbody(elem); + if (!twisty.nextSibling.checked) { + elem.className = 'file_collapse'; + twisty.firstChild.nodeValue = '(+)'; + } + } +} + +function twisty_click(twisty) { + tbody = get_tbody_from_twisty(twisty); + if (tbody.className == 'file') { + tbody.className = 'file_collapse'; + twisty.firstChild.nodeValue = '(+)'; + twisty.nextSibling.checked = false; + } else { + tbody.className = 'file'; + twisty.firstChild.nodeValue = '(-)'; + twisty.nextSibling.checked = true; + } + return false; +} + +function get_tbody_from_twisty(twisty) { + return twisty.parentNode.parentNode.parentNode.nextSibling; +} +function get_twisty_from_tbody(tbody) { + return tbody.previousSibling.firstChild.nextSibling.firstChild.firstChild; +} diff --git a/js/change-columns.js b/js/change-columns.js new file mode 100644 index 0000000000000000000000000000000000000000..5fd5c1085dde0b567a96e8489d4ae996b5291c43 --- /dev/null +++ b/js/change-columns.js @@ -0,0 +1,145 @@ +/*# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Pascal Held. + # + # Contributor(s): Pascal Held <paheld@gmail.com> + # +*/ + +function initChangeColumns() { + window.onunload = unload; + var av_select = document.getElementById("available_columns"); + var sel_select = document.getElementById("selected_columns"); + document.getElementById("avail_header").style.display = "inline"; + document.getElementById("available_columns").style.display = "inline"; + document.getElementById("select_button").style.display = "inline"; + document.getElementById("deselect_button").style.display = "inline"; + document.getElementById("up_button").style.display = "inline"; + document.getElementById("down_button").style.display = "inline"; + switch_options(sel_select, av_select, false); + sel_select.selectedIndex = -1; + updateView(); +} + +function switch_options(from_box, to_box, selected) { + for (var i = 0; i<from_box.options.length; i++) { + var opt = from_box.options[i]; + if (opt.selected == selected) { + var newopt = new Option(opt.text, opt.value, opt.defaultselected, opt.selected); + to_box.options[to_box.options.length] = newopt; + from_box.options[i] = null; + i = i - 1; + } + + } +} + +function move_select() { + var av_select = document.getElementById("available_columns"); + var sel_select = document.getElementById("selected_columns"); + switch_options(av_select, sel_select, true); + updateView(); +} + +function move_deselect() { + var av_select = document.getElementById("available_columns"); + var sel_select = document.getElementById("selected_columns"); + switch_options(sel_select, av_select, true); + updateView(); +} + +function move_up() { + var sel_select = document.getElementById("selected_columns"); + var last = sel_select.options[0]; + var dummy = new Option("", "", false, false); + for (var i = 1; i<sel_select.options.length; i++) { + var opt = sel_select.options[i]; + if (opt.selected) { + sel_select.options[i] = dummy; + sel_select.options[i-1] = opt; + sel_select.options[i] = last; + } + else{ + last = opt; + } + } + updateView(); +} + +function move_down() { + var sel_select = document.getElementById("selected_columns"); + var last = sel_select.options[sel_select.options.length-1]; + var dummy = new Option("", "", false, false); + for (var i = sel_select.options.length-2; i >= 0; i--) { + var opt = sel_select.options[i]; + if (opt.selected) { + sel_select.options[i] = dummy; + sel_select.options[i + 1] = opt; + sel_select.options[i] = last; + } + else{ + last = opt; + } + } + updateView(); +} + +function updateView() { + var select_button = document.getElementById("select_button"); + var deselect_button = document.getElementById("deselect_button"); + var up_button = document.getElementById("up_button"); + var down_button = document.getElementById("down_button"); + select_button.disabled = true; + deselect_button.disabled = true; + up_button.disabled = true; + down_button.disabled = true; + var av_select = document.getElementById("available_columns"); + var sel_select = document.getElementById("selected_columns"); + for (var i = 0; i < av_select.options.length; i++) { + if (av_select.options[i].selected) { + select_button.disabled = false; + break; + } + } + for (var i = 0; i < sel_select.options.length; i++) { + if (sel_select.options[i].selected) { + deselect_button.disabled = false; + up_button.disabled = false; + down_button.disabled = false; + break; + } + } + if (sel_select.options.length > 0) { + if (sel_select.options[0].selected) { + up_button.disabled = true; + } + if (sel_select.options[sel_select.options.length - 1].selected) { + down_button.disabled = true; + } + } +} + +function change_submit() { + var sel_select = document.getElementById("selected_columns"); + for (var i = 0; i < sel_select.options.length; i++) { + sel_select.options[i].selected = true; + } + return false; +} + +function unload() { + var sel_select = document.getElementById("selected_columns"); + for (var i = 0; i < sel_select.options.length; i++) { + sel_select.options[i].selected = true; + } +} diff --git a/js/duplicates.js b/js/duplicates.js deleted file mode 100644 index ccad539e30cd9a1d8cf202757814445eb1f79830..0000000000000000000000000000000000000000 --- a/js/duplicates.js +++ /dev/null @@ -1,153 +0,0 @@ -/* The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is the Bugzilla Bug Tracking System. - * - * The Initial Developer of the Original Code is Netscape Communications - * Corporation. Portions created by Netscape are - * Copyright (C) 1998 Netscape Communications Corporation. All - * Rights Reserved. - * - * Contributor(s): Myk Melez <myk@mozilla.org> - */ - -// When the XUL window finishes loading, load the RDF data into it. -window.addEventListener('load', loadData, false); - -// The base URL of this Bugzilla installation; derived from the page's URL. -var gBaseURL = window.location.href.replace(/(jar:)?(.*?)duplicates\.(jar!|xul).*/, "$2"); - -function loadData() -{ - // Loads the duplicates data as an RDF data source, attaches it to the tree, - // and rebuilds the tree to display the data. - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - // Get the RDF service so we can use it to load the data source. - var rdfService = - Components - .classes["@mozilla.org/rdf/rdf-service;1"] - .getService(Components.interfaces.nsIRDFService); - - // When a bug report loads in the content iframe, a 'load' event bubbles up - // to the browser window, which calls this load handler again, which reloads - // the RDF data, which causes the tree to lose the selection. To prevent - // this, we have to remove this handler. - window.removeEventListener('load', loadData, false); - - // The URL of the RDF file; by default for performance a static file - // generated by collectstats.pl, but a call to duplicates.cgi if the page's - // URL contains parameters (so we can dynamically generate the RDF data - // based on those parameters). - var dataURL = gBaseURL + "data/duplicates.rdf"; - if (window.location.href.search(/duplicates\.xul\?.+/) != -1) - dataURL = window.location.href.replace(/(duplicates\.jar!\/)?duplicates\.xul\?/, "duplicates.cgi?ctype=rdf&"); - - // Get the data source and add it to the XUL tree's database to populate - // the tree with the data. - var dataSource = rdfService.GetDataSource(dataURL); - - // If we're using the static file, add an observer that detects failed loads - // (in case this installation isn't generating the file nightly) and redirects - // to the CGI version when loading of the static version fails. - if (window.location.href.search(/duplicates\.xul\?.+/) == -1) - { - var sink = dataSource.QueryInterface(Components.interfaces.nsIRDFXMLSink); - sink.addXMLSinkObserver(StaticDataSourceObserver); - } - - // Add the data source to the tree, set the tree's "ref" attribute - // to the base URL of the data source, and rebuild the tree. - var resultsTree = document.getElementById('results-tree'); - resultsTree.database.AddDataSource(dataSource); - resultsTree.setAttribute('ref', gBaseURL + "data/duplicates.rdf"); - resultsTree.builder.rebuild(); -} - -function getBugURI() -{ - var tree = document.getElementById('results-tree'); - var index = tree.currentIndex; - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - var builder = tree.builder.QueryInterface(Components.interfaces.nsIXULTreeBuilder); - var resource = builder.getResourceAtIndex(index); - - return resource.Value; -} - -function loadBugInWindow() -{ - // Loads the selected bug in the browser window, replacing the duplicates report - // with the bug report. - - var bugURI = getBugURI(); - window.location = bugURI; -} - -function loadBugInPane() -{ - // Loads the selected bug in the iframe-based content pane that is part of - // this XUL document. - - var splitter = document.getElementById('report-content-splitter'); - var state = splitter.getAttribute('state'); - if (state != "collapsed") - { - var bugURI = getBugURI(); - var browser = document.getElementById('content-browser'); - browser.setAttribute('src', bugURI); - } -} - -var StaticDataSourceObserver = { - onBeginLoad: function(aSink) { } , - onInterrupt: function(aSink) { } , - onResume: function(aSink) { } , - onEndLoad: function(aSink) - { - // Removes the observer from the data source so it doesn't stay around - // when duplicates.xul is reloaded from scratch. - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - aSink.removeXMLSinkObserver(StaticDataSourceObserver); - } , - onError: function(aSink, aStatus, aErrorMsg) - { - // Tries the dynamic data source since the static one failed to load. - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - // Get the RDF service so we can use it to load the data source. - var rdfService = - Components - .classes["@mozilla.org/rdf/rdf-service;1"] - .getService(Components.interfaces.nsIRDFService); - - // Remove the observer from the data source so it doesn't stay around - // when duplicates.xul is reloaded from scratch. - aSink.removeXMLSinkObserver(StaticDataSourceObserver); - - // Remove the static data source from the tree. - var oldDataSource = aSink.QueryInterface(Components.interfaces.nsIRDFDataSource); - var resultsTree = document.getElementById('results-tree'); - resultsTree.database.RemoveDataSource(oldDataSource); - - // Munge the URL to point to the CGI and load the data source. - var dataURL = gBaseURL + "duplicates.cgi?ctype=rdf"; - newDataSource = rdfService.GetDataSource(dataURL); - - // Add the data source to the tree and rebuild the tree with the new data. - resultsTree.database.AddDataSource(newDataSource); - resultsTree.builder.rebuild(); - } -}; diff --git a/js/field.js b/js/field.js index a1b6245a96c56c8ba523936b46dc8dc43ed60c77..e8442e964fb180d5f0ebb50ed66f679e00e673f9 100644 --- a/js/field.js +++ b/js/field.js @@ -337,3 +337,168 @@ function boldOnChange(e, field_id){ } } } + +function updateCommentTagControl(checkbox, form) { + if (checkbox.checked) { + form.comment.className='bz_private'; + } else { + form.comment.className=''; + } +} + +/** + * Says that a field should only be displayed when another field has + * a certain value. May only be called after the controller has already + * been added to the DOM. + */ +function showFieldWhen(controlled_id, controller_id, value) { + var controller = document.getElementById(controller_id); + // Note that we don't get an object for "controlled" here, because it + // might not yet exist in the DOM. We just pass along its id. + YAHOO.util.Event.addListener(controller, 'change', + handleVisControllerValueChange, [controlled_id, controller, value]); +} + +/** + * Called by showFieldWhen when a field's visibility controller + * changes values. + */ +function handleVisControllerValueChange(e, args) { + var controlled_id = args[0]; + var controller = args[1]; + var value = args[2]; + + var label_container = + document.getElementById('field_label_' + controlled_id); + var field_container = + document.getElementById('field_container_' + controlled_id); + if (bz_valueSelected(controller, value)) { + YAHOO.util.Dom.removeClass(label_container, 'bz_hidden_field'); + YAHOO.util.Dom.removeClass(field_container, 'bz_hidden_field'); + } + else { + YAHOO.util.Dom.addClass(label_container, 'bz_hidden_field'); + YAHOO.util.Dom.addClass(field_container, 'bz_hidden_field'); + } +} + +function showValueWhen(controlled_field_id, controlled_value, + controller_field_id, controller_value) +{ + var controller_field = document.getElementById(controller_field_id); + // Note that we don't get an object for the controlled field here, + // because it might not yet exist in the DOM. We just pass along its id. + YAHOO.util.Event.addListener(controller_field, 'change', + handleValControllerChange, [controlled_field_id, controlled_value, + controller_field, controller_value]); +} + +function handleValControllerChange(e, args) { + var controlled_field = document.getElementById(args[0]); + var controlled_value = args[1]; + var controller_field = args[2]; + var controller_value = args[3]; + + var item = getPossiblyHiddenOption(controlled_field, controlled_value); + if (bz_valueSelected(controller_field, controller_value)) { + showOptionInIE(item, controlled_field); + YAHOO.util.Dom.removeClass(item, 'bz_hidden_option'); + item.disabled = false; + } + else if (!item.disabled) { + YAHOO.util.Dom.addClass(item, 'bz_hidden_option'); + if (item.selected) { + item.selected = false; + bz_fireEvent(controlled_field, 'change'); + } + item.disabled = true; + hideOptionInIE(item, controlled_field); + } +} + +/*********************************/ +/* Code for Hiding Options in IE */ +/*********************************/ + +/* IE 7 and below (and some other browsers) don't respond to "display: none" + * on <option> tags. However, you *can* insert a Comment Node as a + * child of a <select> tag. So we just insert a Comment where the <option> + * used to be. */ +function hideOptionInIE(anOption, aSelect) { + if (browserCanHideOptions(aSelect)) return; + + var commentNode = document.createComment(anOption.value); + aSelect.replaceChild(commentNode, anOption); +} + +function showOptionInIE(aNode, aSelect) { + if (browserCanHideOptions(aSelect)) return; + // If aNode is an Option + if (typeof(aNode.value) != 'undefined') return; + + // We do this crazy thing with innerHTML and createElement because + // this is the ONLY WAY that this works properly in IE. + var optionNode = document.createElement('option'); + optionNode.innerHTML = aNode.data; + optionNode.value = aNode.data; + var old_node = aSelect.replaceChild(optionNode, aNode); +} + +function initHidingOptionsForIE(select_name) { + var aSelect = document.getElementById(select_name); + if (browserCanHideOptions(aSelect)) return; + + for (var i = 0; ;i++) { + var item = aSelect.options[i]; + if (!item) break; + if (item.disabled) { + hideOptionInIE(item, aSelect); + i--; // Hiding an option means that the options array has changed. + } + } +} + +function getPossiblyHiddenOption(aSelect, aValue) { + var val_index = bz_optionIndex(aSelect, aValue); + + /* We have to go fishing for one of our comment nodes if we + * don't find the <option>. */ + if (val_index < 0 && !browserCanHideOptions(aSelect)) { + var children = aSelect.childNodes; + for (var i = 0; i < children.length; i++) { + var item = children[i]; + if (item.data == aValue) { + // Set this for handleValControllerChange, so that both options + // and commentNodes have this. + children[i].disabled = true; + return children[i]; + } + } + } + + /* Otherwise we just return the Option we found. */ + return aSelect.options[val_index]; +} + +var browser_can_hide_options; +function browserCanHideOptions(aSelect) { + /* As far as I can tell, browsers that don't hide <option> tags + * also never have a X position for <option> tags, even if + * they're visible. This is the only reliable way I found to + * differentiate browsers. So we create a visible option, see + * if it has a position, and then remove it. */ + if (typeof(browser_can_hide_options) == "undefined") { + var new_opt = bz_createOptionInSelect(aSelect, '', ''); + var opt_pos = YAHOO.util.Dom.getX(new_opt); + aSelect.removeChild(new_opt); + if (opt_pos) { + browser_can_hide_options = true; + } + else { + browser_can_hide_options = false; + } + } + return browser_can_hide_options; +} + +/* (end) option hiding code */ diff --git a/js/util.js b/js/util.js index ce7ea4caeb04497f75453f74bf2a345985ea5b3b..86924210ca889c189576750160092c5fb1d1c78a 100644 --- a/js/util.js +++ b/js/util.js @@ -154,3 +154,102 @@ function bz_isValueInArray(aArray, aValue) return false; } + +/** + * Create wanted options in a select form control. + * + * @param aSelect Select form control to manipulate. + * @param aValue Value attribute of the new option element. + * @param aTextValue Value of a text node appended to the new option + * element. + * @return Created option element. + */ +function bz_createOptionInSelect(aSelect, aTextValue, aValue) { + var myOption = new Option(aTextValue, aValue); + aSelect.appendChild(myOption); + return myOption; +} + +/** + * Clears all options from a select form control. + * + * @param aSelect Select form control of which options to clear. + */ +function bz_clearOptions(aSelect) { + + var length = aSelect.options.length; + + for (var i = 0; i < length; i++) { + aSelect.removeChild(aSelect.options[0]); + } +} + +/** + * Takes an array and moves all the values to an select. + * + * @param aSelect Select form control to populate. Will be cleared + * before array values are created in it. + * @param aArray Array with values to populate select with. + */ +function bz_populateSelectFromArray(aSelect, aArray) { + // Clear the field + bz_clearOptions(aSelect); + + for (var i = 0; i < aArray.length; i++) { + var item = aArray[i]; + bz_createOptionInSelect(aSelect, item[1], item[0]); + } +} + +/** + * Tells you whether or not a particular value is selected in a select, + * whether it's a multi-select or a single-select. The check is + * case-sensitive. + * + * @param aSelect The select you're checking. + * @param aValue The value that you want to know about. + */ +function bz_valueSelected(aSelect, aValue) { + var options = aSelect.options; + for (var i = 0; i < options.length; i++) { + if (options[i].selected && options[i].value == aValue) { + return true; + } + } + return false; +} + +/** + * Tells you where (what index) in a <select> a particular option is. + * Returns -1 if the value is not in the <select> + * + * @param aSelect The select you're checking. + * @param aValue The value you want to know the index of. + */ +function bz_optionIndex(aSelect, aValue) { + for (var i = 0; i < aSelect.options.length; i++) { + if (aSelect.options[i].value == aValue) { + return i; + } + } + return -1; +} + +/** + * Used to fire an event programmatically. + * + * @param anElement The element you want to fire the event of. + * @param anEvent The name of the event you want to fire, + * without the word "on" in front of it. + */ +function bz_fireEvent(anElement, anEvent) { + // IE + if (document.createEventObject) { + var evt = document.createEventObject(); + return anElement.fireEvent('on' + anEvent, evt); + } + // Firefox, etc. + var evt = document.createEvent("HTMLEvents"); + evt.initEvent(anEvent, true, true); // event type, bubbling, cancelable + return !anElement.dispatchEvent(evt); +} diff --git a/js/yui/CVS/Entries b/js/yui/CVS/Entries index 18b6595f7be122eef1a2ecb35767f4105853d116..526b83b03041071d8d4e013c04372d85d8e53ef6 100644 --- a/js/yui/CVS/Entries +++ b/js/yui/CVS/Entries @@ -1,3 +1,3 @@ -/calendar.js/1.1/Thu Nov 29 02:20:27 2007//TBUGZILLA-3_2_1 -/yahoo-dom-event.js/1.1/Thu Nov 29 02:20:27 2007//TBUGZILLA-3_2_1 +/calendar.js/1.1/Thu Nov 29 02:20:27 2007//TBUGZILLA-3_3_1 +/yahoo-dom-event.js/1.1/Thu Nov 29 02:20:27 2007//TBUGZILLA-3_3_1 D diff --git a/js/yui/CVS/Tag b/js/yui/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/js/yui/CVS/Tag +++ b/js/yui/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/lib/CVS/Entries b/lib/CVS/Entries index f6613dbc4bf7bd9c7befd31009950fc4e1aa82b4..af182c5d5c30674726d31bf7d974dd175a089196 100644 --- a/lib/CVS/Entries +++ b/lib/CVS/Entries @@ -1,2 +1,2 @@ -/README/1.1/Fri Oct 19 06:46:19 2007//TBUGZILLA-3_2_1 +/README/1.1/Fri Oct 19 06:46:19 2007//TBUGZILLA-3_3_1 D diff --git a/lib/CVS/Tag b/lib/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/lib/CVS/Tag +++ b/lib/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/post_bug.cgi b/post_bug.cgi index a9910e83a8fa48364f51c58fbd60c12b65a3b248..b450a8691a1076d7ffbf6df95a1396f59d001972 100755 --- a/post_bug.cgi +++ b/post_bug.cgi @@ -194,7 +194,7 @@ if (defined $cgi->param('version')) { # Add an attachment if requested. if (defined($cgi->upload('data')) || $cgi->param('attachurl')) { $cgi->param('isprivate', $cgi->param('commentprivacy')); - my $attachment = Bugzilla::Attachment->insert_attachment_for_bug(!THROW_ERROR, + my $attachment = Bugzilla::Attachment->create(!THROW_ERROR, $bug, $user, $timestamp, $vars); if ($attachment) { diff --git a/process_bug.cgi b/process_bug.cgi index f21b1724e5230c1f62a1a4f01e906533662cb615..c64594bd94dc21fcc06d6546e1cf022a0c5f68d6 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -59,7 +59,6 @@ use Bugzilla::Component; use Bugzilla::Keyword; use Bugzilla::Flag; use Bugzilla::Status; -use Bugzilla::Token; use Storable qw(dclone); @@ -112,23 +111,16 @@ sub should_set { # Create a list of objects for all bugs being modified in this request. my @bug_objects; if (defined $cgi->param('id')) { - my $id = $cgi->param('id'); - ValidateBugID($id); - - # Store the validated, and detainted id back in the cgi data, as - # lots of later code will need it, and will obtain it from there - $cgi->param('id', $id); - push(@bug_objects, new Bugzilla::Bug($id)); + my $bug = Bugzilla::Bug->check(scalar $cgi->param('id')); + $cgi->param('id', $bug->id); + push(@bug_objects, $bug); } else { - my @ids; foreach my $i ($cgi->param()) { if ($i =~ /^id_([1-9][0-9]*)/) { my $id = $1; - ValidateBugID($id); - push(@ids, $id); + push(@bug_objects, Bugzilla::Bug->check($id)); } } - @bug_objects = @{Bugzilla::Bug->new_from_list(\@ids)}; } # Make sure there are bugs to process. @@ -166,6 +158,10 @@ if (defined $cgi->param('dontchange')) { # reference to flags if $cgi->param('id') is undefined. Bugzilla::Flag::validate($cgi->param('id')); +###################################################################### +# End Data/Security Validation +###################################################################### + print $cgi->header() unless Bugzilla->usage_mode == USAGE_MODE_EMAIL; # Check for a mid-air collision. Currently this only works when updating @@ -188,8 +184,6 @@ if (defined $cgi->param('delta_ts') $vars->{'comments'} = Bugzilla::Bug::GetComments($first_bug->id, "oldest_to_newest"); $vars->{'bug'} = $first_bug; - # The token contains the old delta_ts. We need a new one. - $cgi->param('token', issue_hash_token([$first_bug->id, $first_bug->delta_ts])); # Warn the user about the mid-air collision and ask them what to do. $template->process("bug/process/midair.html.tmpl", $vars) @@ -197,22 +191,6 @@ if (defined $cgi->param('delta_ts') exit; } -# We couldn't do this check earlier as we first had to validate bug IDs -# and display the mid-air collision page if delta_ts changed. -# If we do a mass-change, we use session tokens. -my $token = $cgi->param('token'); - -if ($cgi->param('id')) { - check_hash_token($token, [$first_bug->id, $first_bug->delta_ts]); -} -else { - check_token_data($token, 'buglist_mass_change', 'query.cgi'); -} - -###################################################################### -# End Data/Security Validation -###################################################################### - $vars->{'title_tag'} = "bug_processed"; # Set up the vars for navigational <link> elements @@ -255,39 +233,36 @@ foreach my $bug (@bug_objects) { } } -# For security purposes, and because lots of other checks depend on it, -# we set the product first before anything else. -my $product_change; # Used only for strict_isolation checks, right now. -if (should_set('product')) { - foreach my $b (@bug_objects) { - my $changed = $b->set_product(scalar $cgi->param('product'), - { component => scalar $cgi->param('component'), - version => scalar $cgi->param('version'), - target_milestone => scalar $cgi->param('target_milestone'), - change_confirmed => scalar $cgi->param('confirm_product_change'), - other_bugs => \@bug_objects, - }); - $product_change ||= $changed; +my $product_change; +foreach my $bug (@bug_objects) { + my $args; + if (should_set('product')) { + $args->{product} = scalar $cgi->param('product'); + $args->{component} = scalar $cgi->param('component'); + $args->{version} = scalar $cgi->param('version'); + $args->{target_milestone} = scalar $cgi->param('target_milestone'); + $args->{confirm_product_change} = scalar $cgi->param('confirm_product_change'); + $args->{other_bugs} = \@bug_objects; } -} - -# strict_isolation checks mean that we should set the groups -# immediately after changing the product. -foreach my $b (@bug_objects) { - foreach my $group (@{$b->product_obj->groups_valid}) { + + foreach my $group (@{$bug->product_obj->groups_valid}) { my $gid = $group->id; if (should_set("bit-$gid", 1)) { # Check ! first to avoid having to check defined below. if (!$cgi->param("bit-$gid")) { - $b->remove_group($gid); + push (@{$args->{remove_group}}, $gid); } # "== 1" is important because mass-change uses -1 to mean # "don't change this restriction" elsif ($cgi->param("bit-$gid") == 1) { - $b->add_group($gid); + push (@{$args->{add_group}}, $gid); } } } + + # this will be deleted later when code moves to $bug->set_all + my $changed = $bug->set_all($args); + $product_change ||= $changed; } if ($cgi->param('id') && (defined $cgi->param('dependson') @@ -296,10 +271,24 @@ if ($cgi->param('id') && (defined $cgi->param('dependson') $first_bug->set_dependencies(scalar $cgi->param('dependson'), scalar $cgi->param('blocked')); } -# Right now, you can't modify dependencies on a mass change. -else { - $cgi->delete('dependson'); - $cgi->delete('blocked'); +elsif (should_set('dependson') || should_set('blocked')) { + foreach my $bug (@bug_objects) { + my %temp_deps; + foreach my $type (qw(dependson blocked)) { + $temp_deps{$type} = { map { $_ => 1 } @{$bug->$type} }; + if (should_set($type) && $cgi->param($type . '_action') =~ /^(add|remove)$/) { + foreach my $id (split(/[,\s]+/, $cgi->param($type))) { + if ($cgi->param($type . '_action') eq 'remove') { + delete $temp_deps{$type}{$id}; + } + else { + $temp_deps{$type}{$id} = 1; + } + } + } + } + $bug->set_dependencies([ keys %{$temp_deps{'dependson'}} ], [ keys %{$temp_deps{'blocked'}} ]); + } } my $any_keyword_changes; @@ -564,13 +553,13 @@ foreach my $bug (@bug_objects) { # an error later. delete $changed_deps{''}; - # $msgs will store emails which have to be sent to voters, if any. - my $msgs; + # @msgs will store emails which have to be sent to voters, if any. + my @msgs; if ($changes->{'product'}) { # If some votes have been removed, RemoveVotes() returns # a list of messages to send to voters. - # We delay the sending of these messages till tables are unlocked. - $msgs = RemoveVotes($bug->id, 0, 'votes_bug_moved'); + # We delay the sending of these messages till changes are committed. + @msgs = RemoveVotes($bug->id, 0, 'votes_bug_moved'); CheckIfVotedConfirmed($bug->id, Bugzilla->user->id); } @@ -584,7 +573,7 @@ foreach my $bug (@bug_objects) { ############### # Now is a good time to send email to voters. - foreach my $msg (@$msgs) { + foreach my $msg (@msgs) { MessageToMTA($msg); } diff --git a/query.cgi b/query.cgi index 5998c31abb3fa01d76ebe649c3f0879ca08d07f3..f41310bb73d09a6da1962ab1e827467b983298b8 100755 --- a/query.cgi +++ b/query.cgi @@ -116,7 +116,7 @@ sub PrefillForm { my $foundone = 0; # Nothing must be undef, otherwise the template complains. - foreach my $name ("bug_status", "resolution", "assigned_to", + my @list = ("bug_status", "resolution", "assigned_to", "rep_platform", "priority", "bug_severity", "classification", "product", "reporter", "op_sys", "component", "version", "chfield", "chfieldfrom", @@ -133,8 +133,13 @@ sub PrefillForm { "x_axis_field", "y_axis_field", "z_axis_field", "chart_format", "cumulate", "x_labels_vertical", "category", "subcategory", "name", "newcategory", - "newsubcategory", "public", "frequency") - { + "newsubcategory", "public", "frequency"); + # These fields can also have default values (when used in reports). + my @custom_select_fields = + grep { $_->type == FIELD_TYPE_SINGLE_SELECT } Bugzilla->active_custom_fields; + push(@list, map { $_->name } @custom_select_fields); + + foreach my $name (@list) { $default{$name} = []; } @@ -343,6 +348,13 @@ if (($cgi->param('query_format') || $cgi->param('format') || "") $vars->{'category'} = Bugzilla::Chart::getVisibleSeries(); } +if ($cgi->param('format') && $cgi->param('format') =~ /^report-(table|graph)$/) { + # Get legal custom fields for tabular and graphical reports. + my @custom_fields_for_reports = + grep { $_->type == FIELD_TYPE_SINGLE_SELECT } Bugzilla->active_custom_fields; + $vars->{'custom_fields'} = \@custom_fields_for_reports; +} + $vars->{'known_name'} = $cgi->param('known_name'); diff --git a/report.cgi b/report.cgi index 913f85dde13d891549ff85b5996ddc2ebd63b2ef..c84ed6208ed0842bdd87cbfaba3f789ccd6e5f34 100755 --- a/report.cgi +++ b/report.cgi @@ -119,6 +119,15 @@ $columns{'op_sys'} = "bugs.op_sys"; $columns{'votes'} = "bugs.votes"; $columns{'keywords'} = "bugs.keywords"; $columns{'target_milestone'} = "bugs.target_milestone"; +# Single-select fields are also accepted as valid column names. +my @single_select_fields = + grep { $_->type == FIELD_TYPE_SINGLE_SELECT } Bugzilla->active_custom_fields; + +foreach my $custom_field (@single_select_fields) { + my $field_name = $custom_field->name; + $columns{$field_name} = "bugs.$field_name"; +} + # One which means "nothing". Any number would do, really. It just gets SELECTed # so that we always select 3 items in the query. $columns{''} = "42217354"; @@ -226,7 +235,7 @@ foreach my $tbl (@tbl_names) { $vars->{'col_field'} = $col_field; $vars->{'row_field'} = $row_field; $vars->{'tbl_field'} = $tbl_field; -$vars->{'time'} = time(); +$vars->{'time'} = localtime(time()); $vars->{'col_names'} = \@col_names; $vars->{'row_names'} = \@row_names; @@ -319,8 +328,6 @@ if ($cgi->param('debug')) { # All formats point to the same section of the documentation. $vars->{'doc_section'} = 'reporting.html#reports'; -disable_utf8() if ($format->{'ctype'} =~ /^image\//); - $template->process("$format->{'template'}", $vars) || ThrowTemplateError($template->error()); diff --git a/request.cgi b/request.cgi index cad1f6f533d656a2fa7db0d000a71fb311d65541..666b74b17e5106d41d8386d602910c5bfff20d5e 100755 --- a/request.cgi +++ b/request.cgi @@ -42,7 +42,6 @@ use Bugzilla::Component; # Make sure the user is logged in. my $user = Bugzilla->login(); my $cgi = Bugzilla->cgi; -my $dbh = Bugzilla->dbh; my $template = Bugzilla->template; my $action = $cgi->param('action') || ''; @@ -68,8 +67,7 @@ if ($action eq 'queue') { queue(); } else { - my $flagtypes = $dbh->selectcol_arrayref('SELECT DISTINCT(name) FROM flagtypes - ORDER BY name'); + my $flagtypes = get_flag_types(); my @types = ('all', @$flagtypes); my $vars = {}; @@ -142,7 +140,7 @@ sub queue { LEFT JOIN bug_group_map AS bgmap ON bgmap.bug_id = bugs.bug_id AND bgmap.group_id NOT IN (" . - join(', ', (-1, values(%{$user->groups}))) . ") + $user->groups_as_string . ") LEFT JOIN cc AS ccmap ON ccmap.who = $userid AND ccmap.bug_id = bugs.bug_id @@ -303,8 +301,7 @@ sub queue { # Get a list of request type names to use in the filter form. my @types = ("all"); - my $flagtypes = $dbh->selectcol_arrayref( - "SELECT DISTINCT(name) FROM flagtypes ORDER BY name"); + my $flagtypes = get_flag_types(); push(@types, @$flagtypes); # We move back to the main DB to get the list of products the user can see. @@ -355,3 +352,14 @@ sub validateGroup { return $group; } +# Returns all flag types which have at least one flag of this type. +# If a flag type is inactive but still has flags, we want it. +sub get_flag_types { + my $dbh = Bugzilla->dbh; + my $flag_types = $dbh->selectcol_arrayref('SELECT DISTINCT name + FROM flagtypes + WHERE flagtypes.id IN + (SELECT DISTINCT type_id FROM flags) + ORDER BY name'); + return $flag_types; +} diff --git a/sanitycheck.cgi b/sanitycheck.cgi index e32635970cea6488f4357a7b7050adf5ef3acab1..93228fc67dd03e5134e1ddd3b3428487e235c167 100755 --- a/sanitycheck.cgi +++ b/sanitycheck.cgi @@ -293,17 +293,12 @@ if ($cgi->param('remove_invalid_bug_references')) { $dbh->bz_start_transaction(); - # Include custom multi-select fields to the list. - my @multi_selects = Bugzilla->get_fields({custom => 1, type => FIELD_TYPE_MULTI_SELECT}); - my @addl_fields = map { 'bug_' . $_->name . '/' } @multi_selects; - foreach my $pair ('attachments/', 'bug_group_map/', 'bugs_activity/', 'bugs_fulltext/', 'cc/', 'dependencies/blocked', 'dependencies/dependson', 'duplicates/dupe', 'duplicates/dupe_of', - 'flags/', 'keywords/', 'longdescs/', 'votes/', - @addl_fields) - { + 'flags/', 'keywords/', 'longdescs/', 'votes/') { + my ($table, $field) = split('/', $pair); $field ||= "bug_id"; @@ -462,10 +457,6 @@ CrossCheck("flagtypes", "id", ["flagexclusions", "type_id"], ["flaginclusions", "type_id"]); -# Include custom multi-select fields to the list. -my @multi_selects = Bugzilla->get_fields({custom => 1, type => FIELD_TYPE_MULTI_SELECT}); -my @addl_fields = map { ['bug_' . $_->name, 'bug_id'] } @multi_selects; - CrossCheck("bugs", "bug_id", ["bugs_activity", "bug_id"], ["bug_group_map", "bug_id"], @@ -479,8 +470,7 @@ CrossCheck("bugs", "bug_id", ["votes", "bug_id"], ["keywords", "bug_id"], ["duplicates", "dupe_of", "dupe"], - ["duplicates", "dupe", "dupe_of"], - @addl_fields); + ["duplicates", "dupe", "dupe_of"]); CrossCheck("groups", "id", ["bug_group_map", "group_id"], diff --git a/sanitycheck.pl b/sanitycheck.pl index 2ef0eea7da29bfcff091c16e41e87c9555a8910f..e0128b58a06cc26745ce515da00fde8cc97272e1 100644 --- a/sanitycheck.pl +++ b/sanitycheck.pl @@ -42,8 +42,6 @@ my $result = GetOptions('verbose' => \$verbose, pod2usage({-verbose => 1, -exitval => 1}) if $help; -Bugzilla->usage_mode(USAGE_MODE_CMDLINE); - # Be sure a login name if given. $login || ThrowUserError('invalid_username'); diff --git a/search_plugin.cgi b/search_plugin.cgi index 5048f7ce6ac26df94f84cd543404478e3283926a..4dfe8fa9f4d3e3c5307e6934a10caf90e5bdc2c4 100644 --- a/search_plugin.cgi +++ b/search_plugin.cgi @@ -20,14 +20,24 @@ use lib qw(. lib); use Bugzilla; use Bugzilla::Error; +use Bugzilla::Constants; Bugzilla->login(); my $cgi = Bugzilla->cgi; my $template = Bugzilla->template; +my $vars = {}; # Return the appropriate HTTP response headers. print $cgi->header('application/xml'); -$template->process("search/search-plugin.xml.tmpl") +# Get the contents of favicon.ico +my $filename = bz_locations()->{'libpath'} . "/images/favicon.ico"; +if (open(IN, $filename)) { + local $/; + binmode IN; + $vars->{'favicon'} = <IN>; + close IN; +} +$template->process("search/search-plugin.xml.tmpl", $vars) || ThrowTemplateError($template->error()); diff --git a/show_activity.cgi b/show_activity.cgi index d2570f8b105ed44434ea88bc34c77cb99f00fc19..f7db3dd0b79f0c259f60dea1ecc95dc08e2a1315 100755 --- a/show_activity.cgi +++ b/show_activity.cgi @@ -43,17 +43,17 @@ Bugzilla->login(); # Make sure the bug ID is a positive integer representing an existing # bug that the user is authorized to access. -my $bug_id = $cgi->param('id'); -ValidateBugID($bug_id); +my $id = $cgi->param('id'); +my $bug = Bugzilla::Bug->check($id); ############################################################################### # End Data/Security Validation ############################################################################### ($vars->{'operations'}, $vars->{'incomplete_data'}) = - Bugzilla::Bug::GetBugActivity($bug_id); + Bugzilla::Bug::GetBugActivity($bug->id); -$vars->{'bug'} = new Bugzilla::Bug($bug_id); +$vars->{'bug'} = $bug; print $cgi->header(); diff --git a/show_bug.cgi b/show_bug.cgi index 59e2286c34676a249a6cdc5b9202440aec34670c..62575c5ced1af03cf4b250a4284e998b52764f2e 100755 --- a/show_bug.cgi +++ b/show_bug.cgi @@ -57,10 +57,7 @@ my %marks; if ($single) { my $id = $cgi->param('id'); - # Its a bit silly to do the validation twice - that functionality should - # probably move into Bug.pm at some point - ValidateBugID($id); - push @bugs, new Bugzilla::Bug($id); + push @bugs, Bugzilla::Bug->check($id); if (defined $cgi->param('mark')) { foreach my $range (split ',', $cgi->param('mark')) { if ($range =~ /^(\d+)-(\d+)$/) { diff --git a/showdependencygraph.cgi b/showdependencygraph.cgi index f9eb4ed88884a9f10132d636b24159a19eaadf5f..6f2a95503d11a81e52b4039086eddd67a7621fb7 100755 --- a/showdependencygraph.cgi +++ b/showdependencygraph.cgi @@ -135,8 +135,8 @@ if ($display eq 'doall') { } } else { foreach my $i (split('[\s,]+', $cgi->param('id'))) { - ValidateBugID($i); - $baselist{$i} = 1; + my $bug = Bugzilla::Bug->check($i); + $baselist{$bug->id} = 1; } my @stack = keys(%baselist); diff --git a/showdependencytree.cgi b/showdependencytree.cgi index 80e67716afe551ba55675659bb2eaa7f5be52874..8683c190cc8214364ee785b37293876d704f5f2e 100755 --- a/showdependencytree.cgi +++ b/showdependencytree.cgi @@ -49,9 +49,8 @@ my $dbh = Bugzilla->switch_to_shadow_db(); # Make sure the bug ID is a positive integer representing an existing # bug that the user is authorized to access. -my $id = $cgi->param('id') || ThrowUserError('improper_bug_id_field_value'); -ValidateBugID($id); -my $current_bug = new Bugzilla::Bug($id); +my $bug = Bugzilla::Bug->check(scalar $cgi->param('id')); +my $id = $bug->id; local our $hide_resolved = $cgi->param('hide_resolved') ? 1 : 0; @@ -67,7 +66,7 @@ local our $realdepth = 0; # Generate the tree of bugs that this bug depends on and a list of IDs # appearing in the tree. -my $dependson_tree = { $id => $current_bug }; +my $dependson_tree = { $id => $bug }; my $dependson_ids = {}; GenerateTree($id, "dependson", 1, $dependson_tree, $dependson_ids); $vars->{'dependson_tree'} = $dependson_tree; @@ -75,7 +74,7 @@ $vars->{'dependson_ids'} = [keys(%$dependson_ids)]; # Generate the tree of bugs that this bug blocks and a list of IDs # appearing in the tree. -my $blocked_tree = { $id => $current_bug }; +my $blocked_tree = { $id => $bug }; my $blocked_ids = {}; GenerateTree($id, "blocked", 1, $blocked_tree, $blocked_ids); $vars->{'blocked_tree'} = $blocked_tree; diff --git a/skins/CVS/Entries b/skins/CVS/Entries index d5a3701c98462ef456701af75ec05e3594ea03c9..e6058cb496cb6b354e2cd74fac45012765c6a746 100644 --- a/skins/CVS/Entries +++ b/skins/CVS/Entries @@ -1,3 +1,3 @@ -/.cvsignore/1.2/Tue Aug 14 21:54:35 2007//TBUGZILLA-3_2_1 +/.cvsignore/1.2/Tue Aug 14 21:54:35 2007//TBUGZILLA-3_3_1 D/contrib//// D/standard//// diff --git a/skins/CVS/Tag b/skins/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/skins/CVS/Tag +++ b/skins/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/skins/contrib/CVS/Tag b/skins/contrib/CVS/Tag index efa87d6722f10a1d970604be7881773f97969d3e..8d751ae8a4f2d445287de3bcefb6f8a590304c1c 100644 --- a/skins/contrib/CVS/Tag +++ b/skins/contrib/CVS/Tag @@ -1 +1 @@ -TBUGZILLA-3_2_1 +TBUGZILLA-3_3_1 diff --git a/skins/contrib/Dusk/CVS/Entries b/skins/contrib/Dusk/CVS/Entries index 8ba068936f8eeb3f94430016480d0ee5b48d2ec8..1380337881895ce9b9b78f213679fad932110302 100644 --- a/skins/contrib/Dusk/CVS/Entries +++ b/skins/contrib/Dusk/CVS/Entries @@ -1,4 +1,4 @@ -/.cvsignore/1.3/Sun Jan 27 19:21:12 2008//TBUGZILLA-3_2_1 -/buglist.css/1.1.2.1/Tue Aug 19 10:05:06 2008//TBUGZILLA-3_2_1 -/global.css/1.3.2.1/Sat Nov 29 22:11:05 2008//TBUGZILLA-3_2_1 +/.cvsignore/1.3/Sun Jan 27 19:21:12 2008//TBUGZILLA-3_3_1 +/buglist.css/1.2/Tue Aug 19 10:03:18 2008//TBUGZILLA-3_3_1 +/global.css/1.5/Sat Nov 29 22:08:50 2008//TBUGZILLA-3_3_1 D diff --git a/skins/contrib/Dusk/CVS/Tag b/skins/contrib/Dusk/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/skins/contrib/Dusk/CVS/Tag +++ b/skins/contrib/Dusk/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/skins/contrib/Dusk/global.css b/skins/contrib/Dusk/global.css index d6e815945f23ce5d058a854c7ff3749ceb1c0ee5..ab168873fe5a84907548f8fe28902297faba8c6b 100644 --- a/skins/contrib/Dusk/global.css +++ b/skins/contrib/Dusk/global.css @@ -123,7 +123,9 @@ hr { border-top: 1px solid #c8c8ba; } -/* comments */ +/************/ +/* Comments */ +/************/ #comments th { font-size: 9pt; @@ -155,26 +157,21 @@ hr { font-size: 9pt; } -.bz_first_comment { -} - -.bz_comment_head, -.bz_first_comment_head { +.bz_comment_head, .bz_first_comment_head { margin: 0; padding: 0; background-color: transparent; font-weight: bold; } +.bz_comment_user { + margin-left: 0; +} + .bz_comment.bz_private { background-color: #f0e8e8; border-color: #f8c8ba; } -.bz_comment_head i, -.bz_first_comment_head i { - font-style: normal; -} - .comment_rule { display: none; } diff --git a/skins/standard/CVS/Entries b/skins/standard/CVS/Entries index b86d04547e039ec6e17adf61840f3df5e8e61fd2..9d8530c94370357bd221d8cd9dd4398f5c01b378 100644 --- a/skins/standard/CVS/Entries +++ b/skins/standard/CVS/Entries @@ -1,20 +1,20 @@ -/IE-fixes.css/1.2/Fri Feb 8 23:18:59 2008//TBUGZILLA-3_2_1 -/admin.css/1.6.2.1/Mon Sep 8 20:39:27 2008//TBUGZILLA-3_2_1 -/buglist.css/1.12/Thu Apr 10 16:33:45 2008//TBUGZILLA-3_2_1 -/create_attachment.css/1.1/Sat Jun 17 23:24:35 2006//TBUGZILLA-3_2_1 -/dependency-tree.css/1.3/Sat Jan 6 19:48:10 2007//TBUGZILLA-3_2_1 -/duplicates.css/1.2/Fri Nov 15 22:04:04 2002//TBUGZILLA-3_2_1 -/editusers.css/1.3/Sun May 13 18:58:26 2007//TBUGZILLA-3_2_1 -/global.css/1.47.2.6/Fri Dec 19 01:09:28 2008//TBUGZILLA-3_2_1 -/help.css/1.1/Sun Apr 15 18:43:26 2007//TBUGZILLA-3_2_1 -/index.css/1.8/Sun Mar 25 02:10:20 2007//TBUGZILLA-3_2_1 -/panel.css/1.1/Wed Dec 12 22:41:11 2001//TBUGZILLA-3_2_1 -/params.css/1.4/Thu Aug 2 22:38:45 2007//TBUGZILLA-3_2_1 -/release-notes.css/1.1/Thu Feb 22 18:41:29 2007//TBUGZILLA-3_2_1 -/show_bug.css/1.6.2.3/Wed Nov 19 19:18:13 2008//TBUGZILLA-3_2_1 -/show_multiple.css/1.4/Sun Jun 18 23:11:59 2006//TBUGZILLA-3_2_1 -/summarize-time.css/1.1/Mon Feb 28 17:52:57 2005//TBUGZILLA-3_2_1 -/voting.css/1.1/Tue Feb 8 15:49:57 2005//TBUGZILLA-3_2_1 +/IE-fixes.css/1.2/Fri Feb 8 23:18:59 2008//TBUGZILLA-3_3_1 +/admin.css/1.7/Mon Sep 8 20:37:50 2008//TBUGZILLA-3_3_1 +/buglist.css/1.15/Sun Jan 4 17:44:51 2009//TBUGZILLA-3_3_1 +/create_attachment.css/1.2/Tue Dec 9 18:09:59 2008//TBUGZILLA-3_3_1 +/dependency-tree.css/1.3/Sat Jan 6 19:48:10 2007//TBUGZILLA-3_3_1 +/duplicates.css/1.2/Fri Nov 15 22:04:04 2002//TBUGZILLA-3_3_1 +/editusers.css/1.3/Sun May 13 18:58:26 2007//TBUGZILLA-3_3_1 +/global.css/1.57/Fri Dec 19 01:07:23 2008//TBUGZILLA-3_3_1 +/help.css/1.1/Sun Apr 15 18:43:26 2007//TBUGZILLA-3_3_1 +/index.css/1.8/Sun Mar 25 02:10:20 2007//TBUGZILLA-3_3_1 +/panel.css/1.1/Wed Dec 12 22:41:11 2001//TBUGZILLA-3_3_1 +/params.css/1.4/Thu Aug 2 22:38:45 2007//TBUGZILLA-3_3_1 +/release-notes.css/1.1/Thu Feb 22 18:41:29 2007//TBUGZILLA-3_3_1 +/show_bug.css/1.10/Wed Nov 19 19:13:24 2008//TBUGZILLA-3_3_1 +/show_multiple.css/1.4/Sun Jun 18 23:11:59 2006//TBUGZILLA-3_3_1 +/summarize-time.css/1.1/Mon Feb 28 17:52:57 2005//TBUGZILLA-3_3_1 +/voting.css/1.1/Tue Feb 8 15:49:57 2005//TBUGZILLA-3_3_1 D/dependency-tree//// D/global//// D/index//// diff --git a/skins/standard/CVS/Tag b/skins/standard/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/skins/standard/CVS/Tag +++ b/skins/standard/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/skins/standard/buglist.css b/skins/standard/buglist.css index 71206fcbd915da610490d778d69942c419ab1e78..fb4801d794a212ed3d16547cd1ceeeb319769b07 100644 --- a/skins/standard/buglist.css +++ b/skins/standard/buglist.css @@ -18,6 +18,16 @@ * Contributor(s): Myk Melez <myk@mozilla.org> */ +.search_description { + margin: .5em 0; + padding: 0; +} +.search_description li { + list-style-type: none; + display: inline; + margin-right: 2em; +} + .bz_id_column { } @@ -61,6 +71,27 @@ tr.bz_secure_mode_implied td.first-child { tr.bz_secure_mode_manual td.first-child { } +td.bz_estimated_time_column, +td.bz_remaining_time_column, +td.bz_actual_time_column, +td.bz_percentage_complete_column { + text-align: right; +} + +tr.bz_time_summary_line { + background: black; + color: white; +} + +td.bz_total_label { + font-weight: bold; + text-align: right; +} + #commit, #action { margin-top: .25em; } + +.bz_query_explain { + text-align: left; +} diff --git a/skins/standard/create_attachment.css b/skins/standard/create_attachment.css index dcb19836d11fb59121591964fe3f9c8c6571ec44..9ed5151788b8190b4c0c4c85db3e4119ab451490 100644 --- a/skins/standard/create_attachment.css +++ b/skins/standard/create_attachment.css @@ -34,3 +34,73 @@ table#flags td { vertical-align: baseline; font-size: small; } + +/* Rules used to view patches in diff mode. */ + +.file_head { + font-weight: bold; + font-size: 1em; + background-color: #c3c3c3; + border: 1px solid black; +} + +.file_head a { + text-decoration: none; + font-family: monospace; + font-size: 1.1em; +} + +.file_collapse { + display: none; +} + +.section_head { + background-color: #f0f0f0; + border: 1px solid black; + text-align: left; +} + +table.file_table { + table-layout: fixed; + width: 100%; + empty-cells: show; + border-spacing: 0px; + border-collapse: collapse; + /* draw border below last open context section in listing */ + border-bottom: 1px solid black; +} + +tbody.file pre { + display: inline; + white-space: pre-wrap; /* CSS 3 & CSS 2.1 */ + white-space: -moz-pre-wrap; /* Gecko < 1.9.1 */ + white-space: -o-pre-wrap; /* Opera 7 */ + font-size: 0.9em; +} + +tbody.file pre:empty { + display: block; +} + +.changed { + background-color: lightblue; +} + +.added { + background-color: lightgreen; +} + +.removed { + background-color: #FFCC99; +} + +.num { + background-color: #ffe9ae; + text-align:right; + padding: 0 0.3em; + width: 3em; +} + +.warning { + color: red +} diff --git a/skins/standard/dependency-tree/CVS/Entries b/skins/standard/dependency-tree/CVS/Entries index f941a60ae61a115c7020a5c5e285c8543504f365..ec4de214c749c7d1e7a02d3e57d72cb23b749188 100644 --- a/skins/standard/dependency-tree/CVS/Entries +++ b/skins/standard/dependency-tree/CVS/Entries @@ -1,5 +1,5 @@ -/bug-item.png/1.1/Fri Feb 24 01:31:13 2006/-kb/TBUGZILLA-3_2_1 -/tree-closed.png/1.1/Fri Feb 24 01:31:13 2006/-kb/TBUGZILLA-3_2_1 -/tree-open.png/1.1/Fri Feb 24 01:31:13 2006/-kb/TBUGZILLA-3_2_1 -/tree.png/1.1/Tue May 23 00:31:35 2006/-kb/TBUGZILLA-3_2_1 +/bug-item.png/1.1/Fri Feb 24 01:31:13 2006/-kb/TBUGZILLA-3_3_1 +/tree-closed.png/1.1/Fri Feb 24 01:31:13 2006/-kb/TBUGZILLA-3_3_1 +/tree-open.png/1.1/Fri Feb 24 01:31:13 2006/-kb/TBUGZILLA-3_3_1 +/tree.png/1.1/Tue May 23 00:31:35 2006/-kb/TBUGZILLA-3_3_1 D diff --git a/skins/standard/dependency-tree/CVS/Tag b/skins/standard/dependency-tree/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/skins/standard/dependency-tree/CVS/Tag +++ b/skins/standard/dependency-tree/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/skins/standard/global.css b/skins/standard/global.css index aca0ab558c592b6170fbd1a371a845469df7ed08..cd5e489a3189005d969bd2ca32230ad264041f77 100644 --- a/skins/standard/global.css +++ b/skins/standard/global.css @@ -20,6 +20,7 @@ * Vitaly Harisov <vitaly@rathedg.com> * Svetlana Harisova <light@rathedg.com> * Marc Schumann <wurblzap@gmail.com> + * Pascal Held <paheld@gmail.com> */ /* global (begin) */ @@ -243,6 +244,10 @@ div#docslinks { color: #a0a0a0; } +/************/ +/* Comments */ +/************/ + .bz_comment { margin-bottom: 2em; } @@ -263,18 +268,48 @@ div#docslinks { width: 50em; } -.bz_first_comment { +.bz_comment_user, .bz_comment_time, .bz_comment_number, +.bz_private_checkbox, .bz_comment_actions +{ + margin: 0 .5em; +} + +.bz_comment_actions, .bz_comment_number, .bz_private_checkbox { + float: right; +} + +.bz_collapse_comment { + text-decoration: none; +} + +.bz_private_checkbox input { + margin: 0; + vertical-align: middle; } .bz_comment_head, .bz_first_comment_head { + padding-top: .1em; + padding-bottom: .1em; + padding-left: .5em; background-color: #e0e0e0; } + +.bz_comment_user_images img { + vertical-align: bottom; +} + .bz_comment_hilite pre { background-color: lightgreen; margin: 0; padding: 1em 0; } +/** End Comments **/ + +.bz_default_hidden { + display: none; +} + span.quote { color: #65379c; /* Make quoted text not wrap. */ @@ -405,6 +440,13 @@ div.user_match { vertical-align: top; } +.bz_hidden_field, .bz_hidden_option { + display: none; +} +.bz_hidden_option { + visibility: hidden; +} + .calendar_button { background: transparent url("global/calendar.png") no-repeat; width: 20px; @@ -432,3 +474,26 @@ form#Create .comment { padding: 0.3em; height: 8ex; } + +.image_button { + background-repeat: no-repeat; + background-position: center center; + width: 30px; + display: none; +} + +#select_button { + background-image: url(global/right.png); +} + +#deselect_button { + background-image: url(global/left.png); +} + +#up_button { + background-image: url(global/up.png); +} + +#down_button { + background-image: url(global/down.png); +} diff --git a/skins/standard/global/CVS/Entries b/skins/standard/global/CVS/Entries index 05a6daa7c5c0be899e888713f0a2134b2e77a43d..6f25080be5b94d090cc07587329982625ee01f42 100644 --- a/skins/standard/global/CVS/Entries +++ b/skins/standard/global/CVS/Entries @@ -1,4 +1,8 @@ -/body-back.gif/1.1/Fri Mar 11 03:07:18 2005/-kb/TBUGZILLA-3_2_1 -/calendar.png/1.1/Thu Nov 29 02:20:30 2007/-kb/TBUGZILLA-3_2_1 -/header.png/1.1/Thu Feb 3 19:23:17 2005/-kb/TBUGZILLA-3_2_1 +/body-back.gif/1.1/Fri Mar 11 03:07:18 2005/-kb/TBUGZILLA-3_3_1 +/calendar.png/1.1/Thu Nov 29 02:20:30 2007/-kb/TBUGZILLA-3_3_1 +/down.png/1.1/Wed Sep 10 19:07:07 2008/-kb/TBUGZILLA-3_3_1 +/header.png/1.1/Thu Feb 3 19:23:17 2005/-kb/TBUGZILLA-3_3_1 +/left.png/1.1/Wed Sep 10 19:07:07 2008/-kb/TBUGZILLA-3_3_1 +/right.png/1.1/Wed Sep 10 19:07:07 2008/-kb/TBUGZILLA-3_3_1 +/up.png/1.1/Wed Sep 10 19:07:07 2008/-kb/TBUGZILLA-3_3_1 D diff --git a/skins/standard/global/CVS/Tag b/skins/standard/global/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/skins/standard/global/CVS/Tag +++ b/skins/standard/global/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/skins/standard/global/down.png b/skins/standard/global/down.png new file mode 100644 index 0000000000000000000000000000000000000000..78a9e631a4ed2567c045701523e9063106957276 Binary files /dev/null and b/skins/standard/global/down.png differ diff --git a/skins/standard/global/left.png b/skins/standard/global/left.png new file mode 100644 index 0000000000000000000000000000000000000000..f8cb2b2dddf9a902bd200f28e69624278c7be8af Binary files /dev/null and b/skins/standard/global/left.png differ diff --git a/skins/standard/global/right.png b/skins/standard/global/right.png new file mode 100644 index 0000000000000000000000000000000000000000..d02b707a64e042bc61979a5f7a5a2a197cdf67e4 Binary files /dev/null and b/skins/standard/global/right.png differ diff --git a/skins/standard/global/up.png b/skins/standard/global/up.png new file mode 100644 index 0000000000000000000000000000000000000000..240d483df772f30a2222624f73f41f4beb8813e4 Binary files /dev/null and b/skins/standard/global/up.png differ diff --git a/skins/standard/index/CVS/Entries b/skins/standard/index/CVS/Entries index 9235142a28e6a0cd0ac85c57c55cb0b9dc2cdd62..7dd03a98fc07d07053246617e04f546856365088 100644 --- a/skins/standard/index/CVS/Entries +++ b/skins/standard/index/CVS/Entries @@ -1,2 +1,2 @@ -/front.png/1.1/Thu Feb 3 19:23:17 2005/-kb/TBUGZILLA-3_2_1 +/front.png/1.1/Thu Feb 3 19:23:17 2005/-kb/TBUGZILLA-3_3_1 D diff --git a/skins/standard/index/CVS/Tag b/skins/standard/index/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/skins/standard/index/CVS/Tag +++ b/skins/standard/index/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/skins/standard/show_bug.css b/skins/standard/show_bug.css index 52d99a81c8628de3b8b3efa2a071a3bbd8f89ca1..e21cad1b8e86c7a18bef4263b7e6c331c2118a25 100644 --- a/skins/standard/show_bug.css +++ b/skins/standard/show_bug.css @@ -11,10 +11,6 @@ width: 2em; } -.bz_default_hidden { - display: none; -} - .related_actions { font-size: 0.85em; float: right; diff --git a/skins/standard/yui/CVS/Entries b/skins/standard/yui/CVS/Entries index a94d306e38f652a332323a8ddeb213fd117edcf5..6c06659e44a5e2e43c9050c245bf39872c31a567 100644 --- a/skins/standard/yui/CVS/Entries +++ b/skins/standard/yui/CVS/Entries @@ -1,3 +1,3 @@ -/calendar.css/1.1/Thu Nov 29 02:20:31 2007//TBUGZILLA-3_2_1 -/sprite.png/1.1/Thu Nov 29 02:20:31 2007/-kb/TBUGZILLA-3_2_1 +/calendar.css/1.1/Thu Nov 29 02:20:31 2007//TBUGZILLA-3_3_1 +/sprite.png/1.1/Thu Nov 29 02:20:31 2007/-kb/TBUGZILLA-3_3_1 D diff --git a/skins/standard/yui/CVS/Tag b/skins/standard/yui/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/skins/standard/yui/CVS/Tag +++ b/skins/standard/yui/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/summarize_time.cgi b/summarize_time.cgi index 071f89a67ad5de85e01ce91157c624ce0a3372b5..0330f9dcff17a590ed98800e89d23755e3c0135d 100755 --- a/summarize_time.cgi +++ b/summarize_time.cgi @@ -251,7 +251,7 @@ $user->in_group(Bugzilla->params->{"timetrackinggroup"}) object => "timetracking_summaries"}); my @ids = split(",", $cgi->param('id')); -map { ValidateBugID($_) } @ids; +@ids = map { Bugzilla::Bug->check($_)->id } @ids; scalar(@ids) || ThrowUserError('no_bugs_chosen', {action => 'view'}); my $group_by = $cgi->param('group_by') || "number"; diff --git a/t/007util.t b/t/007util.t index 18d58148bd3288012f5c035ac74cfd0e32acd799..dad5dfb02b1602a3929d4e93ba03ee88ddc4feff 100644 --- a/t/007util.t +++ b/t/007util.t @@ -33,11 +33,13 @@ BEGIN { use_ok(Bugzilla::Util); } -# We need to override Bugzilla->params so we can get an expected value when -# Bugzilla::Util::format_time() calls ask for the 'timezone' parameter. -# This will also prevent the tests from failing on site that do not have a -# data/params file containing 'timezone' yet. -Bugzilla->params->{'timezone'} = "TEST"; +# We need to override user preferences so we can get an expected value when +# Bugzilla::Util::format_time() calls ask for the 'timezone' user preference. +Bugzilla->user->{'settings'}->{'timezone'}->{'value'} = "local"; + +# We need to know the local timezone for the date chosen in our tests. +# Below, tests are run against Nov. 24, 2002. +my $tz = Bugzilla->local_timezone->short_name_for_datetime(DateTime->new(year => 2002, month => 11, day => 24)); # we don't test the taint functions since that's going to take some more work. # XXX: test taint functions @@ -58,7 +60,7 @@ is(lsearch(\@list,'kiwi'),-1,'lsearch 3 (missing item)'); is(trim(" fg<*\$%>+=~~ "),'fg<*$%>+=~~','trim()'); #format_time(); -is(format_time("2002.11.24 00:05"),'2002-11-24 00:05 TEST','format_time("2002.11.24 00:05")'); -is(format_time("2002.11.24 00:05:56"),'2002-11-24 00:05:56 TEST','format_time("2002.11.24 00:05:56")'); +is(format_time("2002.11.24 00:05"), "2002-11-24 00:05 $tz",'format_time("2002.11.24 00:05") is ' . format_time("2002.11.24 00:05")); +is(format_time("2002.11.24 00:05:56"), "2002-11-24 00:05:56 $tz",'format_time("2002.11.24 00:05:56")'); is(format_time("2002.11.24 00:05:56", "%Y-%m-%d %R"), '2002-11-24 00:05', 'format_time("2002.11.24 00:05:56", "%Y-%m-%d %R") (with no timezone)'); -is(format_time("2002.11.24 00:05:56", "%Y-%m-%d %R %Z"), '2002-11-24 00:05 TEST', 'format_time("2002.11.24 00:05:56", "%Y-%m-%d %R %Z") (with timezone)'); +is(format_time("2002.11.24 00:05:56", "%Y-%m-%d %R %Z"), "2002-11-24 00:05 $tz", 'format_time("2002.11.24 00:05:56", "%Y-%m-%d %R %Z") (with timezone)'); diff --git a/t/CVS/Entries b/t/CVS/Entries index be081664c38efbf481676449e80f4a44624ba284..a34f020c7533750bcfa809e9185c8fbab60a59c2 100644 --- a/t/CVS/Entries +++ b/t/CVS/Entries @@ -1,13 +1,13 @@ -/001compile.t/1.17/Tue Mar 18 17:30:02 2008//TBUGZILLA-3_2_1 -/002goodperl.t/1.15/Wed Sep 8 22:46:34 2004//TBUGZILLA-3_2_1 -/003safesys.t/1.6/Sun Dec 5 14:13:27 2004//TBUGZILLA-3_2_1 -/004template.t/1.40/Wed Mar 5 17:19:48 2008//TBUGZILLA-3_2_1 -/005no_tabs.t/1.13/Fri Aug 5 23:47:27 2005//TBUGZILLA-3_2_1 -/006spellcheck.t/1.6/Wed Jul 25 14:47:20 2007//TBUGZILLA-3_2_1 -/007util.t/1.9/Sun Oct 7 22:56:37 2007//TBUGZILLA-3_2_1 -/008filter.t/1.28.2.1/Mon Dec 29 00:05:08 2008//TBUGZILLA-3_2_1 -/009bugwords.t/1.7/Wed Jul 25 14:51:00 2007//TBUGZILLA-3_2_1 -/010dependencies.t/1.1/Tue Sep 5 17:02:45 2006//TBUGZILLA-3_2_1 -/011pod.t/1.1/Tue Jul 26 14:23:50 2005//TBUGZILLA-3_2_1 -/012throwables.t/1.5/Wed Oct 4 20:20:59 2006//TBUGZILLA-3_2_1 +/001compile.t/1.17/Tue Mar 18 17:30:02 2008//TBUGZILLA-3_3_1 +/002goodperl.t/1.15/Wed Sep 8 22:46:34 2004//TBUGZILLA-3_3_1 +/003safesys.t/1.6/Sun Dec 5 14:13:27 2004//TBUGZILLA-3_3_1 +/004template.t/1.40/Wed Mar 5 17:19:48 2008//TBUGZILLA-3_3_1 +/005no_tabs.t/1.13/Fri Aug 5 23:47:27 2005//TBUGZILLA-3_3_1 +/006spellcheck.t/1.6/Wed Jul 25 14:47:20 2007//TBUGZILLA-3_3_1 +/007util.t/1.11/Wed Aug 27 10:17:56 2008//TBUGZILLA-3_3_1 +/008filter.t/1.29/Mon Dec 29 00:02:14 2008//TBUGZILLA-3_3_1 +/009bugwords.t/1.7/Wed Jul 25 14:51:00 2007//TBUGZILLA-3_3_1 +/010dependencies.t/1.1/Tue Sep 5 17:02:45 2006//TBUGZILLA-3_3_1 +/011pod.t/1.1/Tue Jul 26 14:23:50 2005//TBUGZILLA-3_3_1 +/012throwables.t/1.5/Wed Oct 4 20:20:59 2006//TBUGZILLA-3_3_1 D/Support//// diff --git a/t/CVS/Tag b/t/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/t/CVS/Tag +++ b/t/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/t/Support/CVS/Entries b/t/Support/CVS/Entries index 5a85108bb91514d49c079dc1765b2fa98f00cd3f..ebfa3d13ffe3769a6ff54dc6ec363af3ac73f750 100644 --- a/t/Support/CVS/Entries +++ b/t/Support/CVS/Entries @@ -1,4 +1,4 @@ -/Files.pm/1.23/Fri Aug 3 13:41:43 2007//TBUGZILLA-3_2_1 -/Systemexec.pm/1.2/Fri Oct 19 22:39:51 2001//TBUGZILLA-3_2_1 -/Templates.pm/1.15/Tue Jul 4 22:25:47 2006//TBUGZILLA-3_2_1 +/Files.pm/1.23/Fri Aug 3 13:41:43 2007//TBUGZILLA-3_3_1 +/Systemexec.pm/1.2/Fri Oct 19 22:39:51 2001//TBUGZILLA-3_3_1 +/Templates.pm/1.15/Tue Jul 4 22:25:47 2006//TBUGZILLA-3_3_1 D diff --git a/t/Support/CVS/Tag b/t/Support/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/t/Support/CVS/Tag +++ b/t/Support/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/CVS/Entries b/template/CVS/Entries index 957298d3ec6775ef0151f393fb19de0eb1f0ecef..3d833419daf840b24bb90224d8d565324c569291 100644 --- a/template/CVS/Entries +++ b/template/CVS/Entries @@ -1,2 +1,2 @@ -/.cvsignore/1.3/Tue May 7 21:33:53 2002//TBUGZILLA-3_2_1 +/.cvsignore/1.3/Tue May 7 21:33:53 2002//TBUGZILLA-3_3_1 D/en//// diff --git a/template/CVS/Tag b/template/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/CVS/Tag +++ b/template/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/CVS/Entries b/template/en/CVS/Entries index 8869fbd31da2ae075c4a842b73efa27c801026b5..65d71e9564d791aaceb62febc550e61319bd57f5 100644 --- a/template/en/CVS/Entries +++ b/template/en/CVS/Entries @@ -1,3 +1,3 @@ -/.cvsignore/1.1/Wed Apr 24 07:29:49 2002//TBUGZILLA-3_2_1 +/.cvsignore/1.1/Wed Apr 24 07:29:49 2002//TBUGZILLA-3_3_1 D/default//// D/extension//// diff --git a/template/en/CVS/Tag b/template/en/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/CVS/Tag +++ b/template/en/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/CVS/Entries b/template/en/default/CVS/Entries index c9c1d946a898c373fe108155bf47d71846a75e25..1b7d60594bb57c45646c5c41c33fd0971af98c2c 100644 --- a/template/en/default/CVS/Entries +++ b/template/en/default/CVS/Entries @@ -1,9 +1,9 @@ -/config.js.tmpl/1.11/Sun Apr 20 09:50:02 2008//TBUGZILLA-3_2_1 -/config.rdf.tmpl/1.13.2.1/Wed Nov 26 01:03:48 2008//TBUGZILLA-3_2_1 -/filterexceptions.pl/1.111.2.3/Fri Nov 21 21:55:59 2008//TBUGZILLA-3_2_1 -/index.html.tmpl/1.40/Thu Apr 3 19:05:49 2008//TBUGZILLA-3_2_1 -/sidebar.xul.tmpl/1.25/Mon Aug 20 18:24:39 2007//TBUGZILLA-3_2_1 -/welcome-admin.html.tmpl/1.4.2.1/Sun Jan 25 22:43:32 2009//TBUGZILLA-3_2_1 +/config.js.tmpl/1.12/Wed Sep 24 02:55:22 2008//TBUGZILLA-3_3_1 +/config.rdf.tmpl/1.16/Sat Dec 6 19:48:23 2008//TBUGZILLA-3_3_1 +/filterexceptions.pl/1.123/Tue Dec 9 18:41:25 2008//TBUGZILLA-3_3_1 +/index.html.tmpl/1.40/Thu Apr 3 19:05:49 2008//TBUGZILLA-3_3_1 +/sidebar.xul.tmpl/1.26/Fri Aug 8 01:26:37 2008//TBUGZILLA-3_3_1 +/welcome-admin.html.tmpl/1.4/Mon Feb 25 16:16:33 2008//TBUGZILLA-3_3_1 D/account//// D/admin//// D/attachment//// diff --git a/template/en/default/CVS/Tag b/template/en/default/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/CVS/Tag +++ b/template/en/default/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/account/CVS/Entries b/template/en/default/account/CVS/Entries index 0197b59fa28761047a05cd8d38dfcad431a46188..4c3407a08267c1d3a2fd617b2e5b9a52a087b34c 100644 --- a/template/en/default/account/CVS/Entries +++ b/template/en/default/account/CVS/Entries @@ -1,7 +1,7 @@ -/cancel-token.txt.tmpl/1.15/Wed Apr 2 17:42:28 2008//TBUGZILLA-3_2_1 -/create.html.tmpl/1.12/Mon Aug 20 18:24:40 2007//TBUGZILLA-3_2_1 -/created.html.tmpl/1.9/Mon Aug 20 18:24:40 2007//TBUGZILLA-3_2_1 -/profile-activity.html.tmpl/1.4/Mon Aug 20 18:24:40 2007//TBUGZILLA-3_2_1 +/cancel-token.txt.tmpl/1.15/Wed Apr 2 17:42:28 2008//TBUGZILLA-3_3_1 +/create.html.tmpl/1.13/Tue Oct 28 21:27:20 2008//TBUGZILLA-3_3_1 +/created.html.tmpl/1.9/Mon Aug 20 18:24:40 2007//TBUGZILLA-3_3_1 +/profile-activity.html.tmpl/1.5/Fri May 23 22:34:12 2008//TBUGZILLA-3_3_1 D/auth//// D/email//// D/password//// diff --git a/template/en/default/account/CVS/Tag b/template/en/default/account/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/account/CVS/Tag +++ b/template/en/default/account/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/account/auth/CVS/Entries b/template/en/default/account/auth/CVS/Entries index d002569d03cef7ab11c926d30ddfbb9a7a6dc2ce..6e2e55272c96e2bd9e9aa01af55ff4b5cf544904 100644 --- a/template/en/default/account/auth/CVS/Entries +++ b/template/en/default/account/auth/CVS/Entries @@ -1,3 +1,3 @@ -/login-small.html.tmpl/1.11/Mon Mar 31 08:51:03 2008//TBUGZILLA-3_2_1 -/login.html.tmpl/1.21/Mon Mar 31 08:51:03 2008//TBUGZILLA-3_2_1 +/login-small.html.tmpl/1.11/Mon Mar 31 08:51:03 2008//TBUGZILLA-3_3_1 +/login.html.tmpl/1.21/Mon Mar 31 08:51:03 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/account/auth/CVS/Tag b/template/en/default/account/auth/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/account/auth/CVS/Tag +++ b/template/en/default/account/auth/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/account/create.html.tmpl b/template/en/default/account/create.html.tmpl index db5df1b43047c8905d29906b4c54f0a5dea2f9f1..5b82201930f5a6fb22f2a4e6fcceef940a028fc6 100644 --- a/template/en/default/account/create.html.tmpl +++ b/template/en/default/account/create.html.tmpl @@ -40,7 +40,7 @@ [% IF Param('emailsuffix') == '' %] a legitimate email address. [% ELSE %] - an accountname which when combined with [% Param('emailsuffix') %] + an account name which when combined with [% Param('emailsuffix') %] corresponds to an address where you receive email. [% END %] You will receive an email at this address to confirm the creation of your diff --git a/template/en/default/account/email/CVS/Entries b/template/en/default/account/email/CVS/Entries index 8a9bbb96df29d46f4366266005efba60cd7c56a6..3bd6cf2a4f53cb436a07d4cdbe92989bfcadbdb6 100644 --- a/template/en/default/account/email/CVS/Entries +++ b/template/en/default/account/email/CVS/Entries @@ -1,6 +1,6 @@ -/change-new.txt.tmpl/1.12/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_2_1 -/change-old.txt.tmpl/1.13/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_2_1 -/confirm-new.html.tmpl/1.5/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_2_1 -/confirm.html.tmpl/1.11/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_2_1 -/request-new.txt.tmpl/1.6/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_2_1 +/change-new.txt.tmpl/1.12/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_3_1 +/change-old.txt.tmpl/1.13/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_3_1 +/confirm-new.html.tmpl/1.5/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_3_1 +/confirm.html.tmpl/1.11/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_3_1 +/request-new.txt.tmpl/1.6/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_3_1 D diff --git a/template/en/default/account/email/CVS/Tag b/template/en/default/account/email/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/account/email/CVS/Tag +++ b/template/en/default/account/email/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/account/password/CVS/Entries b/template/en/default/account/password/CVS/Entries index 7952f62ecee6f778138b1e2935b3667d1d93e8e5..14adef7e3525d5116e2c1ed2682548947f356dfd 100644 --- a/template/en/default/account/password/CVS/Entries +++ b/template/en/default/account/password/CVS/Entries @@ -1,3 +1,3 @@ -/forgotten-password.txt.tmpl/1.10/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_2_1 -/set-forgotten-password.html.tmpl/1.8/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_2_1 +/forgotten-password.txt.tmpl/1.10/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_3_1 +/set-forgotten-password.html.tmpl/1.8/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_3_1 D diff --git a/template/en/default/account/password/CVS/Tag b/template/en/default/account/password/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/account/password/CVS/Tag +++ b/template/en/default/account/password/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/account/prefs/CVS/Entries b/template/en/default/account/prefs/CVS/Entries index c02304d9a4ab9ed37ea1f55c82ab76b37c94b76a..1aa311e8d8aab8743420574e1bad6a30995f8efa 100644 --- a/template/en/default/account/prefs/CVS/Entries +++ b/template/en/default/account/prefs/CVS/Entries @@ -1,7 +1,7 @@ -/account.html.tmpl/1.9.2.1/Sat Oct 18 16:34:33 2008//TBUGZILLA-3_2_1 -/email.html.tmpl/1.30/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_2_1 -/permissions.html.tmpl/1.13/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_2_1 -/prefs.html.tmpl/1.30.2.1/Mon Feb 2 19:22:56 2009//TBUGZILLA-3_2_1 -/saved-searches.html.tmpl/1.18.2.1/Mon Feb 2 18:50:21 2009//TBUGZILLA-3_2_1 -/settings.html.tmpl/1.6/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_2_1 +/account.html.tmpl/1.10/Sat Oct 18 16:33:33 2008//TBUGZILLA-3_3_1 +/email.html.tmpl/1.32/Wed Dec 10 18:26:55 2008//TBUGZILLA-3_3_1 +/permissions.html.tmpl/1.14/Fri Aug 8 01:26:38 2008//TBUGZILLA-3_3_1 +/prefs.html.tmpl/1.30/Sun Oct 21 20:59:28 2007//TBUGZILLA-3_3_1 +/saved-searches.html.tmpl/1.19/Thu Dec 18 15:55:31 2008//TBUGZILLA-3_3_1 +/settings.html.tmpl/1.6/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_3_1 D diff --git a/template/en/default/account/prefs/CVS/Tag b/template/en/default/account/prefs/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/account/prefs/CVS/Tag +++ b/template/en/default/account/prefs/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/account/prefs/email.html.tmpl b/template/en/default/account/prefs/email.html.tmpl index ad9b370dec13d99f79415fcd3af206751f771a5b..a4d22db73297766edc9b6748b058f434093ee3df 100644 --- a/template/en/default/account/prefs/email.html.tmpl +++ b/template/en/default/account/prefs/email.html.tmpl @@ -31,7 +31,6 @@ # below), keyed by reasonname (e.g. comments; again, see # below). The value is a boolean - true if the user is # receiving mail for that reason when in that role. - # Also references the 'supportwatchers' Param. #%] [% PROCESS global/variables.none.tmpl %] @@ -119,6 +118,8 @@ document.write('<input type="button" value="Disable All Mail" onclick="SetCheckb [% events = [ { id = constants.EVT_ADDED_REMOVED, description = "I'm added to or removed from this capacity" }, + { id = constants.EVT_BUG_CREATED, + description = "A new $terms.bug is created" }, { id = constants.EVT_OPENED_CLOSED, description = "The $terms.bug is resolved or reopened" }, { id = constants.EVT_PROJ_MANAGEMENT, @@ -262,7 +263,6 @@ document.write('<input type="button" value="Disable All Mail" onclick="SetCheckb [% END %] [% END %] -[% IF Param('supportwatchers') %] <hr> <b>User Watching</b> @@ -304,8 +304,6 @@ You are currently not watching any users. [% END %] </p> -[% END %] - <hr> <br> diff --git a/template/en/default/account/prefs/permissions.html.tmpl b/template/en/default/account/prefs/permissions.html.tmpl index 4a097e2f2ba1b314a46b4c789fa4ea7d4805dd7d..5e8dc9ca28868e8f2c3a2a2bada4d60f8fc75d7b 100644 --- a/template/en/default/account/prefs/permissions.html.tmpl +++ b/template/en/default/account/prefs/permissions.html.tmpl @@ -65,7 +65,7 @@ There are no permission bits set on your account. [% END %] - [% IF user.groups.editusers %] + [% IF user.in_group('editusers') %] <br> You have editusers privileges. You can turn on and off all permissions for all users. @@ -83,7 +83,7 @@ </table> [% END %] - [% IF user.groups.bz_sudoers %] + [% IF user.in_group('bz_sudoers') %] <br> You are a member of the <b>bz_sudoers</b> group, so you can <a href="relogin.cgi?action=prepare-sudo">impersonate someone else</a>. diff --git a/template/en/default/account/prefs/prefs.html.tmpl b/template/en/default/account/prefs/prefs.html.tmpl index 71e411d8640f80f27ee8bd7933f70410c741f953..ed9cbce72ed6b683b3131aae9a0eac6c3f895927 100644 --- a/template/en/default/account/prefs/prefs.html.tmpl +++ b/template/en/default/account/prefs/prefs.html.tmpl @@ -85,7 +85,6 @@ [% IF current_tab.saveable %] <form name="userprefsform" method="post" action="userprefs.cgi"> <input type="hidden" name="tab" value="[% current_tab.name %]"> - <input type="hidden" name="token" value="[% token FILTER html %]"> [% END %] [% PROCESS "account/prefs/${current_tab.name}.html.tmpl" diff --git a/template/en/default/account/prefs/saved-searches.html.tmpl b/template/en/default/account/prefs/saved-searches.html.tmpl index cf458e8025065461231302dc0b65afcaa2b1cf68..709cf49c5fd7929b48a20569c63410200a415ca6 100644 --- a/template/en/default/account/prefs/saved-searches.html.tmpl +++ b/template/en/default/account/prefs/saved-searches.html.tmpl @@ -96,7 +96,8 @@ <tr> <td>[% q.name FILTER html %]</td> <td> - <a href="buglist.cgi?cmdtype=runnamed&namedcmd=[% q.name FILTER url_quote %]">Run</a> + <a href="buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=[% q.name FILTER url_quote %] + [% IF q.shared_with_group.id %]&sharer_id=[% user.id FILTER url_quote %][% END %]">Run</a> </td> <td> <a href="query.cgi?[% q.edit_link FILTER html %]&known_name= @@ -107,8 +108,7 @@ Remove from <a href="editwhines.cgi">whining</a> first [% ELSE %] <a href="buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd= - [% q.name FILTER url_quote %]&token= - [% issue_hash_token([q.id, q.name]) FILTER url_quote %]">Forget</a> + [% q.name FILTER url_quote %]">Forget</a> [% END %] </td> <td align="center"> diff --git a/template/en/default/account/profile-activity.html.tmpl b/template/en/default/account/profile-activity.html.tmpl index 3ef904de7df56e6621d98bf201e92723b4ae51e4..bcb81f8497c2ca9029a64952061e2ac29e50e23f 100644 --- a/template/en/default/account/profile-activity.html.tmpl +++ b/template/en/default/account/profile-activity.html.tmpl @@ -56,6 +56,7 @@ } {name => 'what' heading => 'What' + content_use_field => 1 } {name => 'removed' heading => 'Removed' diff --git a/template/en/default/admin/CVS/Entries b/template/en/default/admin/CVS/Entries index 0ee9bbe2795aa9c7b56ce5052f624e4427b46f44..530f146bbf0d230b058f47e633237446b5df4bd2 100644 --- a/template/en/default/admin/CVS/Entries +++ b/template/en/default/admin/CVS/Entries @@ -1,7 +1,7 @@ -/admin.html.tmpl/1.6/Tue Nov 13 21:39:05 2007//TBUGZILLA-3_2_1 -/confirm-action.html.tmpl/1.2.2.1/Mon Feb 2 18:42:06 2009//TBUGZILLA-3_2_1 -/sudo.html.tmpl/1.7.2.1/Wed Nov 19 22:10:01 2008//TBUGZILLA-3_2_1 -/table.html.tmpl/1.10/Wed Mar 19 23:41:05 2008//TBUGZILLA-3_2_1 +/admin.html.tmpl/1.7/Fri Aug 8 01:26:51 2008//TBUGZILLA-3_3_1 +/confirm-action.html.tmpl/1.2/Mon Aug 20 18:24:43 2007//TBUGZILLA-3_3_1 +/sudo.html.tmpl/1.8/Wed Nov 19 22:08:09 2008//TBUGZILLA-3_3_1 +/table.html.tmpl/1.10/Wed Mar 19 23:41:05 2008//TBUGZILLA-3_3_1 D/classifications//// D/components//// D/custom_fields//// diff --git a/template/en/default/admin/CVS/Tag b/template/en/default/admin/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/CVS/Tag +++ b/template/en/default/admin/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/admin.html.tmpl b/template/en/default/admin/admin.html.tmpl index c681767b5bca0228bb86bb41affd287615e09e71..15f126ba53d2efa3c309bf48a89eb95f18bc51fb 100644 --- a/template/en/default/admin/admin.html.tmpl +++ b/template/en/default/admin/admin.html.tmpl @@ -36,7 +36,7 @@ <tr> <td class="admin_links"> <dl> - [% class = user.groups.tweakparams ? "" : "forbidden" %] + [% class = user.in_group('tweakparams') ? "" : "forbidden" %] <dt class="[% class %]"><a href="editparams.cgi">Parameters</a></dt> <dd class="[% class %]">Set core parameters of the installation. That's the place where you specify the URL to access this installation, determine how @@ -49,25 +49,25 @@ which will be used by default for all users. Users will be able to edit their own preferences from the <a href="userprefs.cgi?tab=settings">Preferences</a>.</dd> - [% class = user.groups.editcomponents ? "" : "forbidden" %] + [% class = user.in_group('editcomponents') ? "" : "forbidden" %] <dt class="[% class %]"><a href="sanitycheck.cgi">Sanity Check</a></dt> <dd class="[% class %]">Run sanity checks to locate problems in your database. This may take several tens of minutes depending on the size of your installation. You can also automate this check by running <tt>sanitycheck.pl</tt> from a cron job. A notification will be sent per email to the specified user if errors are detected.</dd> - [% class = (user.groups.editusers || user.can_bless) ? "" : "forbidden" %] + [% class = (user.in_group('editusers') || user.can_bless) ? "" : "forbidden" %] <dt class="[% class %]"><a href="editusers.cgi">Users</a></dt> <dd class="[% class %]">Create new user accounts or edit existing ones. You can also add and remove users from groups (also known as "user privileges").</dd> - [% class = (Param('useclassification') && user.groups.editclassifications) ? "" : "forbidden" %] + [% class = (Param('useclassification') && user.in_group('editclassifications')) ? "" : "forbidden" %] <dt class="[% class %]"><a href="editclassifications.cgi">Classifications</a></dt> <dd class="[% class %]">If your installation has to manage many products at once, it's a good idea to group these products into distinct categories. This lets users find information more easily when doing searches or when filing new [% terms.bugs %].</dd> - [% class = (user.groups.editcomponents + [% class = (user.in_group('editcomponents') || user.get_products_by_permission("editcomponents").size) ? "" : "forbidden" %] <dt class="[% class %]"><a href="editproducts.cgi">Products</a></dt> <dd class="[% class %]">Edit all aspects of products, including group restrictions @@ -76,7 +76,7 @@ <a href="editcomponents.cgi">components</a>, <a href="editversions.cgi">versions</a> and <a href="editmilestones.cgi">milestones</a> directly.</dd> - [% class = user.groups.editcomponents ? "" : "forbidden" %] + [% class = user.in_group('editcomponents') ? "" : "forbidden" %] <dt class="[% class %]"><a href="editflagtypes.cgi">Flags</a></dt> <dd class="[% class %]">A flag is a custom 4-states attribute of [% terms.bugs %] and/or attachments. These states are: granted, denied, requested and undefined. @@ -87,7 +87,7 @@ <td class="admin_links"> <dl> - [% class = user.groups.admin ? "" : "forbidden" %] + [% class = user.in_group('admin') ? "" : "forbidden" %] <dt class="[% class %]"><a href="editfields.cgi">Custom Fields</a></dt> <dd class="[% class %]">[% terms.Bugzilla %] lets you define fields which are not implemented by default, based on your local and specific requirements. @@ -107,18 +107,18 @@ statuses available on [% terms.bug %] creation and allowed [% terms.bug %] status transitions when editing existing [% terms.bugs %].</dd> - [% class = user.groups.creategroups ? "" : "forbidden" %] + [% class = user.in_group('creategroups') ? "" : "forbidden" %] <dt class="[% class %]"><a href="editgroups.cgi">Groups</a></dt> <dd class="[% class %]">Define groups which will be used in the installation. They can either be used to define new user privileges or to restrict the access to some [% terms.bugs %].</dd> - [% class = user.groups.editkeywords ? "" : "forbidden" %] + [% class = user.in_group('editkeywords') ? "" : "forbidden" %] <dt class="[% class %]"><a href="editkeywords.cgi">Keywords</a></dt> <dd class="[% class %]">Set keywords to be used with [% terms.bugs %]. Keywords are an easy way to "tag" [% terms.bugs %] to let you find them more easily later.</dd> - [% class = user.groups.bz_canusewhines ? "" : "forbidden" %] + [% class = user.in_group('bz_canusewhines') ? "" : "forbidden" %] <dt class="[% class %]"><a href="editwhines.cgi">Whining</a></dt> <dd class="[% class %]">Set queries which will be run at some specified date and time, and get the result of these queries directly per email. This is a diff --git a/template/en/default/admin/classifications/CVS/Entries b/template/en/default/admin/classifications/CVS/Entries index 5b4763d4f4f70b3aaccacf9e5ad0f396ae728a00..9e440ebd06cbfee9c6ea103104faa77d452531b9 100644 --- a/template/en/default/admin/classifications/CVS/Entries +++ b/template/en/default/admin/classifications/CVS/Entries @@ -1,6 +1,6 @@ -/add.html.tmpl/1.5/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_2_1 -/del.html.tmpl/1.8/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.12/Fri Aug 24 05:03:42 2007//TBUGZILLA-3_2_1 -/reclassify.html.tmpl/1.9/Mon Mar 17 14:48:57 2008//TBUGZILLA-3_2_1 -/select.html.tmpl/1.8/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_2_1 +/add.html.tmpl/1.5/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_1 +/del.html.tmpl/1.8/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.12/Fri Aug 24 05:03:42 2007//TBUGZILLA-3_3_1 +/reclassify.html.tmpl/1.9/Mon Mar 17 14:48:57 2008//TBUGZILLA-3_3_1 +/select.html.tmpl/1.8/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/classifications/CVS/Tag b/template/en/default/admin/classifications/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/classifications/CVS/Tag +++ b/template/en/default/admin/classifications/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/components/CVS/Entries b/template/en/default/admin/components/CVS/Entries index dafa234bd3ef86b84cb702faf572bec347b2dee0..06bff037a7bb7b2439cb67cef98cffc69f2a4951 100644 --- a/template/en/default/admin/components/CVS/Entries +++ b/template/en/default/admin/components/CVS/Entries @@ -1,7 +1,7 @@ -/confirm-delete.html.tmpl/1.12/Sun Oct 7 23:18:21 2007//TBUGZILLA-3_2_1 -/create.html.tmpl/1.14.2.2/Mon Dec 29 00:05:09 2008//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.15.2.1/Wed Nov 19 21:03:49 2008//TBUGZILLA-3_2_1 -/footer.html.tmpl/1.4/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_2_1 -/list.html.tmpl/1.6/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_2_1 -/select-product.html.tmpl/1.4/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_2_1 +/confirm-delete.html.tmpl/1.12/Sun Oct 7 23:18:21 2007//TBUGZILLA-3_3_1 +/create.html.tmpl/1.16/Mon Dec 29 00:02:15 2008//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.16/Wed Nov 19 21:01:49 2008//TBUGZILLA-3_3_1 +/footer.html.tmpl/1.4/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_1 +/list.html.tmpl/1.6/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_1 +/select-product.html.tmpl/1.4/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/components/CVS/Tag b/template/en/default/admin/components/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/components/CVS/Tag +++ b/template/en/default/admin/components/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/confirm-action.html.tmpl b/template/en/default/admin/confirm-action.html.tmpl index 521d2d157bf4a19b2f3c0701fe98dfacc1aa7682..da551d0d7e3fe646a3c5b3c7dae81e316f485146 100644 --- a/template/en/default/admin/confirm-action.html.tmpl +++ b/template/en/default/admin/confirm-action.html.tmpl @@ -20,8 +20,6 @@ # token_action: the action the token was supposed to serve. # expected_action: the action the user was going to do. # script_name: the script generating this warning. - # alternate_script: the suggested script to redirect the user to - # if he declines submission. #%] [% PROCESS "global/field-descs.none.tmpl" %] @@ -91,8 +89,8 @@ exclude="^(Bugzilla_login|Bugzilla_password)$" %] <input type="submit" id="confirm" value="Confirm Changes"> </form> - <p>Or throw away these changes and go back to <a href="[% alternate_script FILTER html %]"> - [%- alternate_script FILTER html %]</a>.</p> + <p>Or throw away these changes and go back to <a href="[% script_name FILTER html %]"> + [%- script_name FILTER html %]</a>.</p> [% END %] [% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/custom_fields/CVS/Entries b/template/en/default/admin/custom_fields/CVS/Entries index 5359b8ebc83e5c828b239da8519a76bf8fa11e30..984e7adc6016f99cfa5d50b161c7d71fbf22c322 100644 --- a/template/en/default/admin/custom_fields/CVS/Entries +++ b/template/en/default/admin/custom_fields/CVS/Entries @@ -1,5 +1,6 @@ -/confirm-delete.html.tmpl/1.1/Wed Feb 6 16:18:13 2008//TBUGZILLA-3_2_1 -/create.html.tmpl/1.9/Sun Nov 11 21:57:09 2007//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.9/Wed Feb 6 16:15:40 2008//TBUGZILLA-3_2_1 -/list.html.tmpl/1.7/Wed Feb 6 16:15:40 2008//TBUGZILLA-3_2_1 +/cf-js.js.tmpl/1.3/Fri Nov 7 11:34:49 2008//TBUGZILLA-3_3_1 +/confirm-delete.html.tmpl/1.1/Wed Feb 6 16:18:13 2008//TBUGZILLA-3_3_1 +/create.html.tmpl/1.12/Fri Nov 7 11:34:49 2008//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.12/Fri Nov 7 11:34:49 2008//TBUGZILLA-3_3_1 +/list.html.tmpl/1.7/Wed Feb 6 16:15:40 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/custom_fields/CVS/Tag b/template/en/default/admin/custom_fields/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/custom_fields/CVS/Tag +++ b/template/en/default/admin/custom_fields/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/custom_fields/cf-js.js.tmpl b/template/en/default/admin/custom_fields/cf-js.js.tmpl new file mode 100644 index 0000000000000000000000000000000000000000..6c5bbf626240c130eeeda23788c6ddd36fa2f707 --- /dev/null +++ b/template/en/default/admin/custom_fields/cf-js.js.tmpl @@ -0,0 +1,58 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is NASA. + # Portions created by NASA are Copyright (C) 2008 + # San Jose State University Foundation. All Rights Reserved. + # + # Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +// Disable a checkbox based on the state of another one. +function toggleCheckbox(this_checkbox, other_checkbox_id) { + var other_checkbox = document.getElementById(other_checkbox_id); + other_checkbox.disabled = !this_checkbox.checked; +} + +var select_values = new Array(); +[% FOREACH sel_field = Bugzilla.get_fields({ is_select => 1 }) %] + select_values[[% sel_field.id FILTER js %]] = [ + [% FOREACH legal_value = sel_field.legal_values %] + [[% legal_value.id FILTER js %], '[% legal_value.name FILTER html %]'], + [% END %] + ]; +[% END %] + +function onChangeType(type_field) { + var value_field = document.getElementById('value_field_id'); + if (type_field.value == [% constants.FIELD_TYPE_SINGLE_SELECT %] + || type_field.value == [% constants.FIELD_TYPE_MULTI_SELECT %]) + { + value_field.disabled = false; + } + else { + value_field.disabled = true; + } +} + +function onChangeVisibilityField() { + var vis_field = document.getElementById('visibility_field_id'); + var vis_value = document.getElementById('visibility_value_id'); + + if (vis_field.value) { + var values = select_values[vis_field.value]; + bz_populateSelectFromArray(vis_value, values); + } + else { + bz_clearOptions(vis_value); + } +} diff --git a/template/en/default/admin/custom_fields/create.html.tmpl b/template/en/default/admin/custom_fields/create.html.tmpl index 5dd50ce3b47682d69e5859c6fb76a7e89dcb054f..a2db4708be807e6c1fab2776a6aa56515f5b8988 100644 --- a/template/en/default/admin/custom_fields/create.html.tmpl +++ b/template/en/default/admin/custom_fields/create.html.tmpl @@ -19,22 +19,17 @@ [% PROCESS "global/field-descs.none.tmpl" %] +[% javascript = BLOCK %] + [% INCLUDE "admin/custom_fields/cf-js.js.tmpl" %] +[% END %] + [% PROCESS global/header.html.tmpl title = "Add a new Custom Field" onload = "document.getElementById('new_bugmail').disabled = true;" + javascript_urls = [ 'js/util.js' ] doc_section = "custom-fields.html#add-custom-fields" %] -<script type="text/javascript"> - <!-- - // Disable a checkbox based on the state of another one. - function toggleCheckbox(this_checkbox, other_checkbox_id) { - var other_checkbox = document.getElementById(other_checkbox_id); - other_checkbox.disabled = !this_checkbox.checked; - } - //--> -</script> - <p> Adding custom fields can make the interface of [% terms.Bugzilla %] very complicated. Many admins who are new to [% terms.Bugzilla %] start off @@ -80,7 +75,7 @@ <tr> <th align="right"><label for="type">Type:</label></th> <td> - <select id="type" name="type"> + <select id="type" name="type" onchange="onChangeType(this)"> [% FOREACH type = field_types.keys %] [% NEXT IF type == constants.FIELD_TYPE_UNKNOWN %] <option value="[% type FILTER html %]">[% field_types.$type FILTER html %]</option> @@ -97,8 +92,47 @@ <input type="text" id="sortkey" name="sortkey" size="6" maxlength="6"> </td> - <th> </th> - <td> </td> + <th align="right"> + <label for="visibility_field_id">Field only appears when:</label> + </th> + <td> + <select name="visibility_field_id" id="visibility_field_id" + onchange="onChangeVisibilityField()"> + <option></option> + [% FOREACH sel_field = Bugzilla.get_fields({ is_select => 1 }) %] + <option value="[% sel_field.id FILTER html %]"> + [% sel_field.description FILTER html %] + ([% sel_field.name FILTER html %]) + </option> + [% END %] + </select> + <label for="visibility_value_id"><strong>is set to:</strong></label> + <select name="visibility_value_id" id="visibility_value_id"> + <option value=""></option> + </select> + </td> + </tr> + + <tr> + <td colspan="2"> </td> + <th> + <label for="value_field_id"> + Field that controls the values<br> + that appear in this field: + </label> + </th> + + <td> + <select disabled="disabled" name="value_field_id" id="value_field_id"> + <option></option> + [% FOREACH sel_field = Bugzilla.get_fields({ is_select => 1 }) %] + <option value="[% sel_field.id FILTER html %]"> + [% sel_field.description FILTER html %] + ([% sel_field.name FILTER html %]) + </option> + [% END %] + </select> + </td> </tr> </table> <p> diff --git a/template/en/default/admin/custom_fields/edit.html.tmpl b/template/en/default/admin/custom_fields/edit.html.tmpl index 02334ab13b9199cd9d3b2680e1a3d63c6d083c7a..b6a8ae9bd789babb5d9641854791b71be01044a5 100644 --- a/template/en/default/admin/custom_fields/edit.html.tmpl +++ b/template/en/default/admin/custom_fields/edit.html.tmpl @@ -14,7 +14,7 @@ #%] [%# INTERFACE: - # none + # field: Bugzila::Field; the current field being edited #%] [% PROCESS "global/field-descs.none.tmpl" %] @@ -23,22 +23,17 @@ Edit the Custom Field '[% field.name FILTER html %]' ([% field.description FILTER html %]) [% END %] +[% javascript = BLOCK %] + [% INCLUDE "admin/custom_fields/cf-js.js.tmpl" %] +[% END %] + [% PROCESS global/header.html.tmpl title = title onload = "toggleCheckbox(document.getElementById('enter_bug'), 'new_bugmail');" + javascript_urls = [ 'js/util.js' ] doc_section = "custom-fields.html#edit-custom-fields" %] -<script type="text/javascript"> - <!-- - // Disable a checkbox based on the state of another one. - function toggleCheckbox(this_checkbox, other_checkbox_id) { - var other_checkbox = document.getElementById(other_checkbox_id); - other_checkbox.disabled = !this_checkbox.checked; - } - //--> -</script> - <p> Descriptions are a very short string describing the field and will be used as the label for this field in the user interface. @@ -82,18 +77,64 @@ <input type="text" id="sortkey" name="sortkey" size="6" maxlength="6" value="[% field.sortkey FILTER html %]"> </td> - - <th> </th> - <td> </td> + <th align="right"> + <label for="visibility_field_id">Field only appears when:</label> + </th> + <td> + <select name="visibility_field_id" id="visibility_field_id" + onchange="onChangeVisibilityField()"> + <option></option> + [% FOREACH sel_field = Bugzilla.get_fields({ is_select => 1 }) %] + [% NEXT IF sel_field.id == field.id %] + <option value="[% sel_field.id FILTER html %]" + [% ' selected="selected"' + IF sel_field.id == field.visibility_field.id %]> + [% sel_field.description FILTER html %] + ([% sel_field.name FILTER html %]) + </option> + [% END %] + </select> + <label for="visibility_value_id"><strong>is set to:</strong></label> + <select name="visibility_value_id" id="visibility_value_id"> + [% FOREACH value = field.visibility_field.legal_values %] + <option value="[% value.id FILTER html %]" + [% ' selected="selected"' + IF field.visibility_value.id == value.id %]> + [% value.name FILTER html %] + </option> + [% END %] + </select> + </td> </tr> - [% IF field.type == constants.FIELD_TYPE_SINGLE_SELECT - || field.type == constants.FIELD_TYPE_MULTI_SELECT %] + [% IF field.is_select %] <tr> <th> </th> - <td colspan="3"> + <td> <a href="editvalues.cgi?field=[% field.name FILTER url_quote %]">Edit legal values for this field</a>. </td> + + <th> + <label for="value_field_id"> + Field that controls the values<br> + that appear in this field: + </label> + </th> + + <td> + <select name="value_field_id" id="value_field_id"> + <option></option> + [% FOREACH sel_field = Bugzilla.get_fields({ is_select => 1 }) %] + [% NEXT IF sel_field.id == field.id %] + <option value="[% sel_field.id FILTER html %]" + [% ' selected="selected"' + IF sel_field.id == field.value_field.id %]> + [% sel_field.description FILTER html %] + ([% sel_field.name FILTER html %]) + </option> + [% END %] + </select> + </td> </tr> [% END %] </table> diff --git a/template/en/default/admin/fieldvalues/CVS/Entries b/template/en/default/admin/fieldvalues/CVS/Entries index 7fe4734e5e9826068ff500e68cef5f9312890e6c..e7728aa96116836c078cc835682c55491e265ffb 100644 --- a/template/en/default/admin/fieldvalues/CVS/Entries +++ b/template/en/default/admin/fieldvalues/CVS/Entries @@ -1,7 +1,7 @@ -/confirm-delete.html.tmpl/1.9/Mon Aug 20 18:24:46 2007//TBUGZILLA-3_2_1 -/create.html.tmpl/1.9/Mon Aug 20 18:24:46 2007//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.11/Mon Aug 20 18:24:46 2007//TBUGZILLA-3_2_1 -/footer.html.tmpl/1.6/Mon Aug 20 18:24:46 2007//TBUGZILLA-3_2_1 -/list.html.tmpl/1.8/Mon Aug 20 18:24:46 2007//TBUGZILLA-3_2_1 -/select-field.html.tmpl/1.4/Mon Aug 20 18:24:46 2007//TBUGZILLA-3_2_1 +/confirm-delete.html.tmpl/1.13/Fri Nov 7 11:34:50 2008//TBUGZILLA-3_3_1 +/create.html.tmpl/1.12/Fri Nov 7 11:34:50 2008//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.14/Fri Nov 7 11:34:50 2008//TBUGZILLA-3_3_1 +/footer.html.tmpl/1.7/Fri Oct 3 01:40:18 2008//TBUGZILLA-3_3_1 +/list.html.tmpl/1.9/Fri Oct 3 01:40:18 2008//TBUGZILLA-3_3_1 +/select-field.html.tmpl/1.4/Mon Aug 20 18:24:46 2007//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/fieldvalues/CVS/Tag b/template/en/default/admin/fieldvalues/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/fieldvalues/CVS/Tag +++ b/template/en/default/admin/fieldvalues/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl b/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl index 3320ae48f081145237b3252b87eda34920b8bd36..b215edf04d1ac1ccac6aa053b9b7050d55b96461 100644 --- a/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl +++ b/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl @@ -14,18 +14,14 @@ #%] [%# INTERFACE: - # value: string; The field value being deleted. - # bug_count: number; The number of bugs that have this field value. - # value_count: number; The number of values left for this field, including - # this value. + # value: Bugzilla::Field::Choice; The field value being deleted. + # value_count: number; The number of values available for this field. # field: object; the field the value is being deleted from. - # param_name: string; The name of the parameter (defaultxxx) associated - # with the field. #%] [% title = BLOCK %] - Delete Value '[% value FILTER html %]' from the '[% field.description FILTER html %]' - ([% field.name FILTER html %]) field + Delete Value '[% value.name FILTER html %]' from the + '[% field.description FILTER html %]' ([% field.name FILTER html %]) field [% END %] [% PROCESS global/header.html.tmpl @@ -44,15 +40,18 @@ </tr> <tr> <td valign="top">Field Value:</td> - <td valign="top">[% value FILTER html %]</td> + <td valign="top">[% value.name FILTER html %]</td> </tr> <tr> <td valign="top">[% terms.Bugs %]:</td> <td valign="top"> -[% IF bug_count %] - <a title="List of [% terms.bugs %] where '[% field.description FILTER html %]' is ' - [% value FILTER html %]'" - href="buglist.cgi?[% field.name FILTER url_quote %]=[%- value FILTER url_quote %]">[% bug_count FILTER html %]</a> +[% IF value.bug_count %] + <a title="List of [% terms.bugs %] where ' + [%- field.description FILTER html %]' is ' + [%- value.name FILTER html %]'" + href="buglist.cgi?[% field.name FILTER url_quote %]= + [%- value.name FILTER url_quote %]"> + [%- value.bug_count FILTER html %]</a> [% ELSE %] None [% END %] @@ -62,44 +61,80 @@ <h2>Confirmation</h2> -[% IF (param_name.defined && Param(param_name) == value) || bug_count || (value_count == 1) %] +[% IF value.is_default || value.bug_count || (value_count == 1) + || value.controls_visibility_of_fields.size + || value.controlled_values.size +%] - <p>Sorry, but the '[% value FILTER html %]' value cannot be deleted - from the '[% field.description FILTER html %]' field for the following reason(s):</p> + <p>Sorry, but the '[% value.name FILTER html %]' value cannot be deleted + from the '[% field.description FILTER html %]' field for the following + reason(s):</p> <ul class="warningmessages"> - [% IF param_name.defined && Param(param_name) == value %] - <li>'[% value FILTER html %]' is the default value for - the '[% field.description FILTER html %]' field. - [% IF user.groups.tweakparams %] - You first have to <a href="editparams.cgi?section=bugfields# - [%- param_name FILTER url_quote %]">change the default value</a> for - this field before you can delete this value. - [% END %] + [% IF value.is_default %] + <li>'[% value.name FILTER html %]' is the default value for + the '[% field.description FILTER html %]' field. + [% IF user.in_group('tweakparams') %] + You first have to <a href="editparams.cgi?section=bugfields">change + the default value</a> for this field before you can delete + this value. + [% END %] + </li> [% END %] - [% IF bug_count %] - <li>There - [% IF bug_count > 1 %] - are [% bug_count FILTER html %] [%+ terms.bugs %] - [% ELSE %] - is 1 [% terms.bug %] - [% END %] - with this field value. You must change the field value on - <a title="List of [% terms.bugs %] where '[% field.description FILTER html %]' is '[% value FILTER html %]'" - href="buglist.cgi?[% field.name FILTER url_quote %]=[% value FILTER url_quote %]"> - [% IF bug_count > 1 %] + [% IF value.bug_count %] + <li> + [% IF value.bug_count > 1 %] + There are [% value.bug_count FILTER html %] [%+ terms.bugs %] + with this field value. + [% ELSE %] + There is is 1 [% terms.bug %] with this field value. + [% END %] + You must change the field value on + <a title="List of [% terms.bugs %] where ' + [%- field.description FILTER html %]' is ' + [%- value.name FILTER html %]'" + href="buglist.cgi?[% field.name FILTER url_quote %]= + [%- value.name FILTER url_quote %]"> + [% IF value.bug_count > 1 %] those [% terms.bugs %] [% ELSE %] that [% terms.bug %] [% END %] </a> to another value before you can delete this value. + </li> [% END %] [% IF value_count == 1 %] - <li>'[% value FILTER html %]' is the last value for - '[%- field.description FILTER html %]', and so it can not be deleted. + <li>'[% value.name FILTER html %]' is the last value for + '[%- field.description FILTER html %]', and so it can not be deleted. + </li> + [% END %] + + [% IF value.controls_visibility_of_fields.size %] + <li>This value controls the visibility of the following fields:<br> + [% FOREACH field = value.controls_visibility_of_fields %] + <a href="editfields.cgi?action=edit&name= + [%- field.name FILTER url_quote %]"> + [%- field.description FILTER html %] + ([% field.name FILTER html %])</a><br> + [% END %] + </li> + [% END %] + + [% IF value.controlled_values.size %] + <li>This value controls the visibility of the following values in + other fields:<br> + [% FOREACH controlled = value.controlled_values %] + <a href="editvalues.cgi?action=edit&field= + [%- controlled.field.name FILTER url_quote %]&value= + [%- controlled.name FILTER url_quote %]"> + [% controlled.field.description FILTER html %] + ([% controlled.field.name FILTER html %]): + [%+ controlled.name FILTER html %]</a><br> + [% END %] + </li> [% END %] </ul> @@ -111,7 +146,7 @@ <input type="submit" value="Yes, delete" id="delete"> <input type="hidden" name="action" value="delete"> <input type="hidden" name="field" value="[% field.name FILTER html %]"> - <input type="hidden" name="value" value="[% value FILTER html %]"> + <input type="hidden" name="value" value="[% value.name FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]"> </form> diff --git a/template/en/default/admin/fieldvalues/create.html.tmpl b/template/en/default/admin/fieldvalues/create.html.tmpl index fe906bfe3a1f6536f539843ff4fa4330ba8431ae..f1eec1a5a4a7c24d307680b7618e0beb406e7608 100644 --- a/template/en/default/admin/fieldvalues/create.html.tmpl +++ b/template/en/default/admin/fieldvalues/create.html.tmpl @@ -26,26 +26,29 @@ %] <p> - This page allows you to add a new value for the '[% field.description FILTER html %]' field. + This page allows you to add a new value for the + '[% field.description FILTER html %]' field. </p> <form method="post" action="editvalues.cgi"> <table border="0" cellpadding="4" cellspacing="0"> <tr> <th align="right"><label for="value">Value:</label></th> - <td><input id="value" size="30" maxlength="60" name="value" - value=""></td> + <td> + <input id="value" name="value" size="30" + maxlength="[% constants.MAX_FIELD_VALUE_SIZE FILTER none %]"> + </td> </tr> <tr> <th align="right"><label for="sortkey">Sortkey:</label></th> - <td><input id="sortkey" size="10" maxlength="20" name="sortkey" - value=""></td> + <td><input id="sortkey" name="sortkey" size="6" maxlength="6"></td> </tr> [% IF field.name == "bug_status" %] <tr> <th align="right"><label for="is_open">Status Type:</label></th> <td> - <input type="radio" id="open_status" name="is_open" value="1" checked="checked"> + <input type="radio" id="open_status" name="is_open" value="1" + checked="checked"> <label for="open_status">Open</label><br> <input type="radio" id="closed_status" name="is_open" value="0"> <label for="closed_status">Closed (requires a Resolution)</label> @@ -59,6 +62,27 @@ </td> </tr> [% END %] + [% IF field.value_field %] + <tr> + <th align="right"> + <label for="visibility_value_id">Only appears when + [%+ field.value_field.description FILTER html %] is set to: + </label> + </th> + <td> + <select name="visibility_value_id" id="visibility_value_id"> + <option></option> + [% FOREACH field_value = field.value_field.legal_values %] + [% NEXT IF field_value.name == '' %] + <option value="[% field_value.id FILTER none %]"> + [%- field_value.name FILTER html -%] + </option> + [% END %] + </select> + <small>(Leave unset to have this value always appear.)</small> + </td> + </tr> + [% END %] </table> <input type="submit" id="create" value="Add"> <input type="hidden" name="action" value="new"> diff --git a/template/en/default/admin/fieldvalues/edit.html.tmpl b/template/en/default/admin/fieldvalues/edit.html.tmpl index 98b480ba89f459d4419f251a67f55df37fc3f34c..b014155774c0163e86c5d715da3a02a955647636 100644 --- a/template/en/default/admin/fieldvalues/edit.html.tmpl +++ b/template/en/default/admin/fieldvalues/edit.html.tmpl @@ -14,16 +14,15 @@ #%] [%# INTERFACE: - # value: string; The field value we are editing. - # sortkey: number; Sortkey of the field value we are editing. - # field: object; The field this value belongs to. + # value: Bugzilla::Field::Choice; The field value we are editing. + # field: Bugzilla::Field; The field this value belongs to. #%] [% PROCESS global/variables.none.tmpl %] [% title = BLOCK %] - Edit Value '[% value FILTER html %]' for the '[% field.description FILTER html %]' - ([% field.name FILTER html %]) field + Edit Value '[% value.name FILTER html %]' for the + '[% field.description FILTER html %]' ([% field.name FILTER html %]) field [% END %] [% PROCESS global/header.html.tmpl title = title @@ -33,32 +32,58 @@ <table border="0" cellpadding="4" cellspacing="0"> <tr> - <th valign="top"><label for="value">Field Value:</label></th> + <th valign="top" align="right"> + <label for="value_new">Field Value:</label> + </th> <td> - [% IF is_static %] - <input type="hidden" name="value" value="[% value FILTER html %]"> - [% value FILTER html %] + [% IF value.is_static %] + <input type="hidden" name="value_new" id="value_new" + value="[% value.name FILTER html %]"> + [%- value.name FILTER html %] [% ELSE %] - <input id="value" size="20" maxlength="60" name="value" value=" - [%- value FILTER html %]"> + <input id="value_new" name="value_new" size="20" + maxlength="[% constants.MAX_FIELD_VALUE_SIZE FILTER none %]" + value="[% value.name FILTER html %]"> [% END %] </td> </tr> <tr> <th align="right"><label for="sortkey">Sortkey:</label></th> - <td><input id="sortkey" size="20" maxlength="20" name="sortkey" value=" - [%- sortkey FILTER html %]"></td> + <td><input id="sortkey" size="6" maxlength="6" name="sortkey" + value="[%- value.sortkey FILTER html %]"></td> </tr> [% IF field.name == "bug_status" %] <tr> <th align="right"><label for="is_open">Status Type:</label></th> - <td>[% IF is_open %]Open[% ELSE %]Closed[% END %]</td> + <td>[% IF value.is_open %]Open[% ELSE %]Closed[% END %]</td> + </tr> + [% END %] + [% IF field.value_field %] + <tr> + <th align="right"> + <label for="visibility_value_id">Only appears when + [%+ field.value_field.description FILTER html %] is set to: + </label> + </th> + <td> + <select name="visibility_value_id" id="visibility_value_id"> + <option></option> + [% FOREACH field_value = field.value_field.legal_values %] + [% NEXT IF field_value.name == '' %] + <option value="[% field_value.id FILTER none %]" + [% ' selected="selected"' + IF field_value.id == value.visibility_value.id %]> + [%- field_value.name FILTER html -%] + </option> + [% END %] + </select> + <small>(Leave unset to have this value always appear.)</small> + </td> </tr> [% END %] </table> - <input type="hidden" name="valueold" value="[% value FILTER html %]"> - <input type="hidden" name="sortkeyold" value="[% sortkey FILTER html %]"> + <input type="hidden" name="value" value="[% value.name FILTER html %]"> <input type="hidden" name="action" value="update"> <input type="hidden" name="field" value="[% field.name FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]"> diff --git a/template/en/default/admin/fieldvalues/footer.html.tmpl b/template/en/default/admin/fieldvalues/footer.html.tmpl index dcb6dbc8d3a23f5190d9f6d9ebda2e4094039482..288612d4c4db4728e981edef47913ce2b23d3db2 100644 --- a/template/en/default/admin/fieldvalues/footer.html.tmpl +++ b/template/en/default/admin/fieldvalues/footer.html.tmpl @@ -35,13 +35,14 @@ [%- field.name FILTER url_quote %]">Add</a> a value. [% END %] -[% IF value && !no_edit_link %] +[% IF value.defined && !no_edit_link %] Edit value <a - title="Edit value '[% value FILTER html %]' for the ' + title="Edit value '[% value.name FILTER html %]' for the ' [%- field.name FILTER html %]' field" href="editvalues.cgi?action=edit&field= - [%- field.name FILTER url_quote %]&value=[% value FILTER url_quote %]"> - '[% value FILTER html %]'</a>. + [%- field.name FILTER url_quote %]&value= + [%- value.name FILTER url_quote %]"> + '[% value.name FILTER html %]'</a>. [% END %] [% UNLESS no_edit_other_link %] diff --git a/template/en/default/admin/fieldvalues/list.html.tmpl b/template/en/default/admin/fieldvalues/list.html.tmpl index d14bbc26d704fe67567b4223d77aebdd07365982..976b58ae7477bd7cf1aefe81d0c9174c55248f0c 100644 --- a/template/en/default/admin/fieldvalues/list.html.tmpl +++ b/template/en/default/admin/fieldvalues/list.html.tmpl @@ -58,26 +58,13 @@ } ] %] -[% IF default.defined %] - [% overrides.action = [ { - match_value => "$default" - match_field => 'name' - override_content => 1 - content => "(Default value)" - override_contentlink => 1 - contentlink => undef - } ] - %] -[% END %] -[% IF static.size %] - [% UNLESS overrides.action.size %] - [% overrides.action = [] %] - [% END %] +[% SET overrides.action = [] %] +[% FOREACH check_value = values %] - [% FOREACH static_value = static %] + [% IF check_value.is_static %] [% overrides.action.push({ - match_value => "$static_value" + match_value => check_value.name match_field => 'name' override_content => 1 content => "(Non-deletable value)" @@ -85,7 +72,17 @@ contentlink => undef }) %] + [% ELSIF check_value.is_default %] + [% overrides.action.push({ + match_value => check_value.name + match_field => 'name' + override_content => 1 + content => "(Default value)" + override_contentlink => 1 + contentlink => undef }) + %] [% END %] + [% END %] [% PROCESS admin/table.html.tmpl diff --git a/template/en/default/admin/flag-type/CVS/Entries b/template/en/default/admin/flag-type/CVS/Entries index 196ab2979d9487aaa0761a49647da883d4e34928..f221c88f505205f937e22e1f078f7d9fd95cb881 100644 --- a/template/en/default/admin/flag-type/CVS/Entries +++ b/template/en/default/admin/flag-type/CVS/Entries @@ -1,4 +1,4 @@ -/confirm-delete.html.tmpl/1.9.2.1/Mon Feb 2 19:01:13 2009//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.26/Mon Oct 22 21:42:00 2007//TBUGZILLA-3_2_1 -/list.html.tmpl/1.19/Mon Oct 22 21:42:00 2007//TBUGZILLA-3_2_1 +/confirm-delete.html.tmpl/1.9/Mon Oct 22 21:42:00 2007//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.26/Mon Oct 22 21:42:00 2007//TBUGZILLA-3_3_1 +/list.html.tmpl/1.20/Thu Jan 1 19:04:53 2009//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/flag-type/CVS/Tag b/template/en/default/admin/flag-type/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/flag-type/CVS/Tag +++ b/template/en/default/admin/flag-type/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/flag-type/confirm-delete.html.tmpl b/template/en/default/admin/flag-type/confirm-delete.html.tmpl index ed909417dca7a3659d65ebcbd0bb97ae3b34c827..cc6a064a92832c360ea1056e1bb5ad95f975b271 100644 --- a/template/en/default/admin/flag-type/confirm-delete.html.tmpl +++ b/template/en/default/admin/flag-type/confirm-delete.html.tmpl @@ -28,16 +28,13 @@ %] <p> - [% IF flag_type.flag_count %] - There are [% flag_type.flag_count %] flags of type [% flag_type.name FILTER html %]. - If you delete this type, those flags will also be deleted. - [% END %] - - Note that instead of deleting the type you can + There are [% flag_type.flag_count %] flags of type [% flag_type.name FILTER html %]. + If you delete this type, those flags will also be deleted. Note that + instead of deleting the type you can <a href="editflagtypes.cgi?action=deactivate&id=[% flag_type.id %]&token= [%- token FILTER html %]">deactivate it</a>, - in which case the type [% IF flag_type.flag_count %] and its flags [% END %] will remain - in the database but will not appear in the [% terms.Bugzilla %] UI. + in which case the type and its flags will remain in the database + but will not appear in the [% terms.Bugzilla %] UI. </p> <table> diff --git a/template/en/default/admin/flag-type/list.html.tmpl b/template/en/default/admin/flag-type/list.html.tmpl index d4bba945a289a8f8f4866db0c31584e89d76bea1..497d3b3d5f46cf1345a8f13695e9f8312b24abb3 100644 --- a/template/en/default/admin/flag-type/list.html.tmpl +++ b/template/en/default/admin/flag-type/list.html.tmpl @@ -16,6 +16,7 @@ # Rights Reserved. # # Contributor(s): Myk Melez <myk@mozilla.org> + # Frédéric Buclin <LpSolit@gmail.com> #%] [% PROCESS global/variables.none.tmpl %] @@ -80,6 +81,11 @@ [% END %] </select> </td> + <td> + <input type="checkbox" id="show_flag_counts" name="show_flag_counts" value="1" + [%+ 'checked="checked"' IF show_flag_counts %]> + <label for="show_flag_counts">Show flag counts</label> + </td> <td><input type="submit" id="submit" value="Filter"></td> </tr> </table> @@ -114,6 +120,11 @@ <th>Properties</th> <th>Grant group</th> <th>Request group</th> + [% IF show_flag_counts %] + <th>Flags</th> + [%# Note to translators: translate the strings in quotes only. %] + [% state_desc = {granted = 'granted' denied = 'denied' pending = 'pending'} %] + [% END %] <th>Actions</th> </tr> @@ -136,6 +147,21 @@ </td> <td>[% IF type.grant_group %][% type.grant_group.name FILTER html %][% END %]</td> <td>[% IF type.request_group %][% type.request_group.name FILTER html %][% END %]</td> + [% IF show_flag_counts %] + <td> + [% FOREACH state = ['granted', 'pending', 'denied'] %] + [% bug_list = bug_lists.${type.id}.$state || [] %] + [% IF bug_list.size %] + <a href="buglist.cgi?bug_id=[% bug_list.unique.nsort.join(",") FILTER html %]"> + [% bug_list.size FILTER html %] [%+ state_desc.$state FILTER html %] + </a> + <br> + [% ELSE %] + 0 [% state_desc.$state FILTER html %]<br> + [% END %] + [% END %] + </td> + [% END %] <td> <a href="editflagtypes.cgi?action=copy&id=[% type.id %]">Copy</a> | <a href="editflagtypes.cgi?action=confirmdelete&id=[% type.id %]">Delete</a> diff --git a/template/en/default/admin/groups/CVS/Entries b/template/en/default/admin/groups/CVS/Entries index ac1921545f668b79da48929927603fb4bd339033..ab9f2bdf8f7a4cb99691b47980e212b1585f6736 100644 --- a/template/en/default/admin/groups/CVS/Entries +++ b/template/en/default/admin/groups/CVS/Entries @@ -1,6 +1,6 @@ -/confirm-remove.html.tmpl/1.5/Sun Dec 16 10:32:54 2007//TBUGZILLA-3_2_1 -/create.html.tmpl/1.11.2.3/Sat Oct 18 16:34:36 2008//TBUGZILLA-3_2_1 -/delete.html.tmpl/1.13/Tue Nov 20 08:46:57 2007//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.17.2.1/Sat Oct 18 16:34:36 2008//TBUGZILLA-3_2_1 -/list.html.tmpl/1.13/Sun Nov 11 21:57:10 2007//TBUGZILLA-3_2_1 +/confirm-remove.html.tmpl/1.5/Sun Dec 16 10:32:54 2007//TBUGZILLA-3_3_1 +/create.html.tmpl/1.14/Sat Oct 18 16:33:35 2008//TBUGZILLA-3_3_1 +/delete.html.tmpl/1.13/Tue Nov 20 08:46:57 2007//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.18/Sat Oct 18 16:33:35 2008//TBUGZILLA-3_3_1 +/list.html.tmpl/1.13/Sun Nov 11 21:57:10 2007//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/groups/CVS/Tag b/template/en/default/admin/groups/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/groups/CVS/Tag +++ b/template/en/default/admin/groups/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/keywords/CVS/Entries b/template/en/default/admin/keywords/CVS/Entries index 285827c54901116500ed4e60bb2bfcc97f57b8bb..a0c98ee59ed3e4a606f0dbd0570613b7cda16141 100644 --- a/template/en/default/admin/keywords/CVS/Entries +++ b/template/en/default/admin/keywords/CVS/Entries @@ -1,5 +1,5 @@ -/confirm-delete.html.tmpl/1.7.2.1/Mon Feb 2 19:01:21 2009//TBUGZILLA-3_2_1 -/create.html.tmpl/1.9/Mon Aug 20 18:24:48 2007//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.10/Mon Aug 20 18:24:48 2007//TBUGZILLA-3_2_1 -/list.html.tmpl/1.11.2.1/Mon Feb 2 19:01:21 2009//TBUGZILLA-3_2_1 +/confirm-delete.html.tmpl/1.7/Mon Aug 20 18:24:48 2007//TBUGZILLA-3_3_1 +/create.html.tmpl/1.9/Mon Aug 20 18:24:48 2007//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.10/Mon Aug 20 18:24:48 2007//TBUGZILLA-3_3_1 +/list.html.tmpl/1.11/Mon Aug 20 18:24:48 2007//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/keywords/CVS/Tag b/template/en/default/admin/keywords/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/keywords/CVS/Tag +++ b/template/en/default/admin/keywords/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/keywords/confirm-delete.html.tmpl b/template/en/default/admin/keywords/confirm-delete.html.tmpl index 20a6deee757f0bd557fb1a3ce18eb44818f0c5e8..6bde05abfbc891f76681d6dfe38b29c07905881e 100644 --- a/template/en/default/admin/keywords/confirm-delete.html.tmpl +++ b/template/en/default/admin/keywords/confirm-delete.html.tmpl @@ -31,7 +31,7 @@ <p> [% IF keyword.bug_count == 1 %] There is one [% terms.bug %] with this keyword set. - [% ELSIF keyword.bug_count > 1 %] + [% ELSE %] There are [% keyword.bug_count FILTER html %] [%+ terms.bugs %] with this keyword set. [% END %] @@ -43,6 +43,7 @@ <form method="post" action="editkeywords.cgi"> <input type="hidden" name="id" value="[% keyword.id FILTER html %]"> <input type="hidden" name="action" value="delete"> + <input type="hidden" name="reallydelete" value="1"> <input type="hidden" name="token" value="[% token FILTER html %]"> <input type="submit" id="delete" value="Yes, really delete the keyword"> diff --git a/template/en/default/admin/keywords/list.html.tmpl b/template/en/default/admin/keywords/list.html.tmpl index c400a23629fc41959c75d17603cc488ce0afd82b..5fb6b3aa69fe3f091ee9ab4f03989ce3e8a96b88 100644 --- a/template/en/default/admin/keywords/list.html.tmpl +++ b/template/en/default/admin/keywords/list.html.tmpl @@ -54,7 +54,7 @@ { heading => "Action" content => "Delete" - contentlink => "editkeywords.cgi?action=del&id=%%id%%" + contentlink => "editkeywords.cgi?action=delete&id=%%id%%" } ] %] diff --git a/template/en/default/admin/milestones/CVS/Entries b/template/en/default/admin/milestones/CVS/Entries index 1d786f5dde190fd14e62f9bfcb947347b0403c2f..90714307f37270fdcc49e64a86817e0299f555a6 100644 --- a/template/en/default/admin/milestones/CVS/Entries +++ b/template/en/default/admin/milestones/CVS/Entries @@ -1,7 +1,7 @@ -/confirm-delete.html.tmpl/1.9/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_2_1 -/create.html.tmpl/1.8/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.9/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_2_1 -/footer.html.tmpl/1.4/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_2_1 -/list.html.tmpl/1.6/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_2_1 -/select-product.html.tmpl/1.5/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_2_1 +/confirm-delete.html.tmpl/1.9/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_1 +/create.html.tmpl/1.8/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.9/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_1 +/footer.html.tmpl/1.4/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_1 +/list.html.tmpl/1.6/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_1 +/select-product.html.tmpl/1.5/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/milestones/CVS/Tag b/template/en/default/admin/milestones/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/milestones/CVS/Tag +++ b/template/en/default/admin/milestones/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/params/CVS/Entries b/template/en/default/admin/params/CVS/Entries index 59ab2b91ed122f7bf4ba491c28e76c89f2d6536c..c906ff9f5a1c71c38c6d59f654a2cc9541a2f58b 100644 --- a/template/en/default/admin/params/CVS/Entries +++ b/template/en/default/admin/params/CVS/Entries @@ -1,20 +1,20 @@ -/admin.html.tmpl/1.4/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_2_1 -/attachment.html.tmpl/1.4.2.2/Mon Feb 2 19:12:25 2009//TBUGZILLA-3_2_1 -/auth.html.tmpl/1.4/Wed Dec 5 00:48:30 2007//TBUGZILLA-3_2_1 -/bugchange.html.tmpl/1.6/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_2_1 -/bugfields.html.tmpl/1.4/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_2_1 -/bugmove.html.tmpl/1.3/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_2_1 -/common.html.tmpl/1.6.2.1/Thu Oct 16 17:13:50 2008//TBUGZILLA-3_2_1 -/core.html.tmpl/1.11/Thu Apr 3 20:40:14 2008//TBUGZILLA-3_2_1 -/dependencygraph.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_2_1 -/editparams.html.tmpl/1.8/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_2_1 -/groupsecurity.html.tmpl/1.5.2.1/Mon Oct 27 22:47:20 2008//TBUGZILLA-3_2_1 -/index.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_2_1 -/ldap.html.tmpl/1.7.2.1/Wed May 21 23:03:24 2008//TBUGZILLA-3_2_1 -/mta.html.tmpl/1.12/Fri Mar 14 00:05:37 2008//TBUGZILLA-3_2_1 -/patchviewer.html.tmpl/1.3/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_2_1 -/query.html.tmpl/1.4.2.1/Thu Aug 7 08:37:09 2008//TBUGZILLA-3_2_1 -/radius.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_2_1 -/shadowdb.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_2_1 -/usermatch.html.tmpl/1.3/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_2_1 +/admin.html.tmpl/1.5/Wed Dec 10 18:26:56 2008//TBUGZILLA-3_3_1 +/attachment.html.tmpl/1.5/Wed Dec 10 18:32:29 2008//TBUGZILLA-3_3_1 +/auth.html.tmpl/1.4/Wed Dec 5 00:48:30 2007//TBUGZILLA-3_3_1 +/bugchange.html.tmpl/1.8/Wed Dec 10 18:40:02 2008//TBUGZILLA-3_3_1 +/bugfields.html.tmpl/1.5/Wed Dec 10 18:43:29 2008//TBUGZILLA-3_3_1 +/bugmove.html.tmpl/1.3/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1 +/common.html.tmpl/1.7/Thu Oct 16 17:12:10 2008//TBUGZILLA-3_3_1 +/core.html.tmpl/1.12/Wed Aug 27 23:26:22 2008//TBUGZILLA-3_3_1 +/dependencygraph.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1 +/editparams.html.tmpl/1.8/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_1 +/groupsecurity.html.tmpl/1.6/Mon Oct 27 22:44:43 2008//TBUGZILLA-3_3_1 +/index.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1 +/ldap.html.tmpl/1.8/Wed May 21 22:59:24 2008//TBUGZILLA-3_3_1 +/mta.html.tmpl/1.13/Wed Dec 24 03:43:48 2008//TBUGZILLA-3_3_1 +/patchviewer.html.tmpl/1.3/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1 +/query.html.tmpl/1.5/Wed Aug 6 12:06:33 2008//TBUGZILLA-3_3_1 +/radius.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1 +/shadowdb.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1 +/usermatch.html.tmpl/1.3/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/params/CVS/Tag b/template/en/default/admin/params/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/params/CVS/Tag +++ b/template/en/default/admin/params/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/params/admin.html.tmpl b/template/en/default/admin/params/admin.html.tmpl index 639ea66a1bda9350900cef66b2540bb75925aae0..dd83ebb2ed03a3731ab5b1a73a8f13ba0e89a274 100644 --- a/template/en/default/admin/params/admin.html.tmpl +++ b/template/en/default/admin/params/admin.html.tmpl @@ -37,9 +37,5 @@ "$terms.Bugzilla will issue a warning in case you'd run into inconsistencies " _ "when you're about to do so, but such deletions remain kinda scary. " _ "So, you have to turn on this option before any such deletions " _ - "will ever happen.", - - supportwatchers => "Support one user watching (ie getting copies of all related " _ - "email about) another's ${terms.bugs}. Useful for people going on " _ - "vacation, and QA folks watching particular developers' ${terms.bugs}." } + "will ever happen." } %] \ No newline at end of file diff --git a/template/en/default/admin/params/attachment.html.tmpl b/template/en/default/admin/params/attachment.html.tmpl index 47d29bf35a651e97c292a03786e6530d0c47631a..ef3363bbb494c80be5935a1f5f22ee08c4a0aacd 100644 --- a/template/en/default/admin/params/attachment.html.tmpl +++ b/template/en/default/admin/params/attachment.html.tmpl @@ -24,39 +24,6 @@ %] [% param_descs = { - allow_attachment_display => - "If this option is on, users will be able to view attachments from" - _ " their browser, if their browser supports the attachment's MIME type." - _ " If this option is off, users are forced to download attachments," - _ " even if the browser is able to display them." - _ "<p>This is a security restriction for installations where untrusted" - _ " users may upload attachments that could be potentially damaging if" - _ " viewed directly in the browser.</p>" - _ "<p>It is highly recommended that you set the <tt>attachment_base</tt>" - _ " parameter if you turn this parameter on.", - - attachment_base => - "When the <tt>allow_attachment_display</tt> parameter is on, it is " - _ " possible for a malicious attachment to steal your cookies or" - _ " perform an attack on $terms.Bugzilla using your credentials." - _ "<p>If you would like additional security on attachments to avoid" - _ " this, set this parameter to an alternate URL for your $terms.Bugzilla" - _ " that is not the same as <tt>urlbase</tt> or <tt>sslbase</tt>." - _ " That is, a different domain name that resolves to this exact" - _ " same $terms.Bugzilla installation.</p>" - _ "<p>Note that if you have set the" - _ " <a href=\"editparams.cgi?section=core#cookiedomain\"><tt>cookiedomain</tt>" - _" parameter</a>, you should set <tt>attachment_base</tt> to use a" - _ " domain that would <em>not</em> be matched by" - _ " <tt>cookiedomain</tt>.</p>" - _ "<p>For added security, you can insert <tt>%bugid%</tt> into the URL," - _ " which will be replaced with the ID of the current $terms.bug that" - _ " the attachment is on, when you access an attachment. This will limit" - _ " attachments to accessing only other attachments on the same" - _ " ${terms.bug}. Remember, though, that all those possible domain names " - _ " (such as <tt>1234.your.domain.com</tt>) must point to this same" - _ " $terms.Bugzilla instance.", - allow_attachment_deletion => "If this option is on, administrators will be able to delete " _ "the content of attachments.", @@ -64,12 +31,7 @@ "specify a URL when creating an attachment and " _ "treat the URL itself as if it were an attachment.", - maxpatchsize => "The maximum size (in kilobytes) of patches. $terms.Bugzilla will not " _ - "accept patches greater than this number of kilobytes in size. " _ - "To accept patches of any size (subject to the limitations of " _ - "your server software), set this value to zero.", - - maxattachmentsize => "The maximum size (in kilobytes) of non-patch attachments. " _ + maxattachmentsize => "The maximum size (in kilobytes) of attachments. " _ "$terms.Bugzilla will not accept attachments greater than this number " _ "of kilobytes in size. To accept attachments of any size " _ "(subject to the limitations of your server software), set this " _ diff --git a/template/en/default/admin/params/bugchange.html.tmpl b/template/en/default/admin/params/bugchange.html.tmpl index 458bc4eb8d72421e0aaf132cec34ec0ccbcc59ae..9f456ee6f55ad712728ef00fabaa68a2e12f751a 100644 --- a/template/en/default/admin/params/bugchange.html.tmpl +++ b/template/en/default/admin/params/bugchange.html.tmpl @@ -40,15 +40,9 @@ musthavemilestoneonaccept => "If you are using Target Milestone, do you want to require that " _ "the milestone be set in order for a user to ACCEPT a ${terms.bug}?", - commentonclearresolution => "If this option is on, the user needs to enter a short comment if " _ - "the ${terms.bug}'s resolution is cleared.", - commentonchange_resolution => "If this option is on, the user needs to enter a short " _ "comment if the resolution of the $terms.bug changes.", - commentonreassignbycomponent => "If this option is on, the user needs to enter a short comment if " _ - "the $terms.bug is reassigned by component.", - commentonduplicate => "If this option is on, the user needs to enter a short comment " _ "if the $terms.bug is marked as duplicate.", diff --git a/template/en/default/admin/params/bugfields.html.tmpl b/template/en/default/admin/params/bugfields.html.tmpl index bdd9ad8820eed77a638f6174a3cf749630f07e94..e0625b480929d4fec5fe5be633bd1158b4788b44 100644 --- a/template/en/default/admin/params/bugfields.html.tmpl +++ b/template/en/default/admin/params/bugfields.html.tmpl @@ -28,9 +28,6 @@ "specific classification. But you must have 'editclassification' " _ "permissions enabled in order to edit classifications.", - showallproducts => "If this is on and useclassification is set, $terms.Bugzilla will add a " _ - "'All' link in the 'New $terms.Bug' page to list all available products.", - usetargetmilestone => "Do you wish to use the Target Milestone field?", useqacontact => "Do you wish to use the QA Contact field?", diff --git a/template/en/default/admin/params/core.html.tmpl b/template/en/default/admin/params/core.html.tmpl index ae1d995fb83db3bd153e092096404c06581b5a0e..d66c4a51bd6d4443ff187a0bcbe21c71fbcc6960 100644 --- a/template/en/default/admin/params/core.html.tmpl +++ b/template/en/default/admin/params/core.html.tmpl @@ -60,10 +60,6 @@ "all sites served by this web server or virtual host to read " _ "$terms.Bugzilla cookies.", - timezone => "The timezone that your database server lives in, " _ - "such as UTC, PDT or JST. If set to '', " _ - "then the timezone will not be displayed with the timestamps.", - utf8 => "Use UTF-8 (Unicode) encoding for all text in ${terms.Bugzilla}. New " _ "installations should set this to true to avoid character encoding " _ "problems. <strong>Existing databases should set this to true " _ diff --git a/template/en/default/admin/params/mta.html.tmpl b/template/en/default/admin/params/mta.html.tmpl index 800fbad9b047d648f968e25f6bc42a1f93b3081f..8533257f409b0710b799d0f8fd92092744902a36 100644 --- a/template/en/default/admin/params/mta.html.tmpl +++ b/template/en/default/admin/params/mta.html.tmpl @@ -45,6 +45,16 @@ mailfrom => "The email address of the $terms.Bugzilla mail daemon. Some email systems " _ "require this to be a valid email address.", + use_mailer_queue => "In a large $terms.Bugzilla installation, updating" + _ " $terms.bugs can be very slow, because $terms.Bugzilla sends all" + _ " email at once. If you enable this parameter, $terms.Bugzilla will" + _ " queue all mail and then send it in the background. This requires" + _ " that you have installed certain Perl modules (as listed by" + _ " <code>checksetup.pl</code> for this feature), and that you are" + _ " running the <code>jobqueue.pl</code> daemon (otherwise your mail" + _ " won't get sent). This affects all mail sent by $terms.Bugzilla," + _ " not just $terms.bug updates.", + sendmailnow => "Sites using anything older than version 8.12 of 'sendmail' " _ "can achieve a significant performance increase in the " _ "UI -- at the cost of delaying the sending of mail -- by " _ diff --git a/template/en/default/admin/products/CVS/Entries b/template/en/default/admin/products/CVS/Entries index d455215a473cbf59f6b3bc8d4c73502a0fe048c6..8328d8f262a2db7c65b01424babf7aac60fdcc68 100644 --- a/template/en/default/admin/products/CVS/Entries +++ b/template/en/default/admin/products/CVS/Entries @@ -1,9 +1,9 @@ -/confirm-delete.html.tmpl/1.9.2.1/Thu Dec 18 17:19:30 2008//TBUGZILLA-3_2_1 -/create.html.tmpl/1.5/Mon Aug 20 18:24:51 2007//TBUGZILLA-3_2_1 -/edit-common.html.tmpl/1.9/Mon Aug 20 18:24:51 2007//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.12/Mon Mar 10 19:37:58 2008//TBUGZILLA-3_2_1 -/footer.html.tmpl/1.11/Mon Aug 20 18:24:51 2007//TBUGZILLA-3_2_1 -/list-classifications.html.tmpl/1.4/Thu Sep 20 21:23:44 2007//TBUGZILLA-3_2_1 -/list.html.tmpl/1.5/Mon Aug 20 18:24:51 2007//TBUGZILLA-3_2_1 -/updated.html.tmpl/1.7/Mon Aug 20 18:24:51 2007//TBUGZILLA-3_2_1 +/confirm-delete.html.tmpl/1.11/Thu Dec 18 17:18:20 2008//TBUGZILLA-3_3_1 +/create.html.tmpl/1.6/Wed Jul 30 21:47:29 2008//TBUGZILLA-3_3_1 +/edit-common.html.tmpl/1.9/Mon Aug 20 18:24:51 2007//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.14/Thu Aug 14 16:36:10 2008//TBUGZILLA-3_3_1 +/footer.html.tmpl/1.12/Wed Jul 30 21:47:29 2008//TBUGZILLA-3_3_1 +/list-classifications.html.tmpl/1.4/Thu Sep 20 21:23:44 2007//TBUGZILLA-3_3_1 +/list.html.tmpl/1.6/Wed Jul 30 21:47:29 2008//TBUGZILLA-3_3_1 +/updated.html.tmpl/1.8/Wed Jul 30 21:47:29 2008//TBUGZILLA-3_3_1 D/groupcontrol//// diff --git a/template/en/default/admin/products/CVS/Tag b/template/en/default/admin/products/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/products/CVS/Tag +++ b/template/en/default/admin/products/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/products/confirm-delete.html.tmpl b/template/en/default/admin/products/confirm-delete.html.tmpl index e5e982b1ea7008d93e105bf2a0e1c22ddf55270a..516672142c6c6e6674f54d252fdc96cd96d92603 100644 --- a/template/en/default/admin/products/confirm-delete.html.tmpl +++ b/template/en/default/admin/products/confirm-delete.html.tmpl @@ -31,14 +31,6 @@ style_urls = ['skins/standard/admin.css'] %] -[% IF classification %] - [% classification_url_part = BLOCK %]&classification= - [%- classification.name FILTER url_quote %] - [%- END %] -[% ELSE %] - [% classification_url_part = "" %] -[% END %] - <table border="1" cellpadding="4" cellspacing="0"> <tr bgcolor="#6666FF"> <th valign="top" align="left">Field</th> @@ -66,8 +58,7 @@ <tr> <td valign="top">Product:</td> <td valign="top"> - <a href="editproducts.cgi?product=[% product.name FILTER url_quote %] - [%- classification_url_part %]"> + <a href="editproducts.cgi?product=[% product.name FILTER url_quote %]"> [% product.name FILTER html %] </a> </td> @@ -113,8 +104,7 @@ <tr> <td> [% IF product.components.size > 0 %] - <a href="editcomponents.cgi?product=[% product.name FILTER url_quote %] - [%- classification_url_part %]" + <a href="editcomponents.cgi?product=[% product.name FILTER url_quote %]" title="Edit components for product '[% product.name FILTER html %]'"> Components: </a> @@ -148,8 +138,7 @@ <tr> <td> [% IF product.versions.size > 0 %] - <a href="editversions.cgi?product=[%- product.name FILTER url_quote %] - [%- classification_url_part %]"> + <a href="editversions.cgi?product=[%- product.name FILTER url_quote %]"> Versions: </a> [% ELSE %] @@ -172,8 +161,7 @@ <tr> <td valign="top"> [% IF product.milestones.size > 0 %] - <a href="editmilestones.cgi?product=[%- product.name FILTER url_quote %] - [%- classification_url_part -%]"> + <a href="editmilestones.cgi?product=[%- product.name FILTER url_quote %]"> Milestones: </a> [% ELSE %] @@ -196,10 +184,8 @@ <td>[% terms.Bugs %]:</td> <td> [% IF product.bug_count %] - <a href="buglist.cgi?product=[%- product.name FILTER url_quote %] - [%- classification_url_part %]" - title="List of [% terms.bugs %] for product ' - [%- product.name FILTER html %]'"> + <a href="buglist.cgi?product=[% product.name FILTER url_quote %]" + title="List of [% terms.bugs %] for product '[% product.name FILTER html %]'"> [% product.bug_count FILTER html %] </a> [% ELSE %] @@ -266,8 +252,6 @@ <input type="hidden" name="action" value="delete"> <input type="hidden" name="product" value="[% product.name FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]"> - <input type="hidden" name="classification" - value="[% classification.name FILTER html %]"> </form> [% END %] diff --git a/template/en/default/admin/products/create.html.tmpl b/template/en/default/admin/products/create.html.tmpl index e1cd38140cc7670b7bb3c6a0897c883b982f9849..49c4ca71f3ee6e4a4f36df4df62776559aac80bf 100644 --- a/template/en/default/admin/products/create.html.tmpl +++ b/template/en/default/admin/products/create.html.tmpl @@ -53,8 +53,6 @@ </table> <input type="submit" value="Add"> - <input type="hidden" name="subcategory" value="-All-"> - <input type="hidden" name="open_name" value="All Open"> <input type="hidden" name="action" value="new"> <input type="hidden" name="token" value="[% token FILTER html %]"> <input type="hidden" name="classification" diff --git a/template/en/default/admin/products/edit.html.tmpl b/template/en/default/admin/products/edit.html.tmpl index 2d346c665677eb03aa2b6da78f51fcd861b650ce..e6480c45307073644357e69d8c9e3985875bbca8 100644 --- a/template/en/default/admin/products/edit.html.tmpl +++ b/template/en/default/admin/products/edit.html.tmpl @@ -101,14 +101,13 @@ versions:</a> <tr> <th align="right" valign="top"> <a href="editproducts.cgi?action=editgroupcontrols&product= - [%- product.name FILTER url_quote %]&classification= - [%- classification.name FILTER url_quote %]"> + [%- product.name FILTER url_quote %]"> Edit Group Access Controls: </a> </th> <td> [% IF product.group_controls.size %] - [% FOREACH g = product.group_controls.values %] + [% FOREACH g = product.group_controls.values.sort("name") %] <b>[% g.group.name FILTER html %]:</b> [% IF g.group.isactive %] [% group_control.${g.membercontrol} FILTER html %]/ @@ -139,8 +138,6 @@ versions:</a> value="[% product.name FILTER html %]"> <input type="hidden" name="action" value="update"> <input type="hidden" name="token" value="[% token FILTER html %]"> - <input type="hidden" name="classification" - value="[% classification.name FILTER html %]"> <input type="submit" name="submit" value="Save Changes"> </form> diff --git a/template/en/default/admin/products/footer.html.tmpl b/template/en/default/admin/products/footer.html.tmpl index 4b8fe053ba7f83a8848e79cebccda8cb6ba16df2..c355517489fa075ecd8a8301a969014075775762 100644 --- a/template/en/default/admin/products/footer.html.tmpl +++ b/template/en/default/admin/products/footer.html.tmpl @@ -61,9 +61,7 @@ Edit product <a title="Edit Product '[% product.name FILTER html %]' [%- classification_text %]" - href="editproducts.cgi?action=edit&product= - [%- product.name FILTER url_quote %] - [%- classification_url_part %]"> + href="editproducts.cgi?action=edit&product=[% product.name FILTER url_quote %]"> '[% product.name FILTER html %]'</a>. [% END %] diff --git a/template/en/default/admin/products/groupcontrol/CVS/Entries b/template/en/default/admin/products/groupcontrol/CVS/Entries index 979d3c0e201e343a4f0e2dbc96bad3cc403b5dc4..e3d11d5edee8d61882a76a410e73b4f44d20de32 100644 --- a/template/en/default/admin/products/groupcontrol/CVS/Entries +++ b/template/en/default/admin/products/groupcontrol/CVS/Entries @@ -1,4 +1,4 @@ -/confirm-edit.html.tmpl/1.9/Mon Aug 20 18:24:52 2007//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.11/Tue Feb 5 12:11:57 2008//TBUGZILLA-3_2_1 -/updated.html.tmpl/1.3/Mon Aug 20 18:24:52 2007//TBUGZILLA-3_2_1 +/confirm-edit.html.tmpl/1.9/Mon Aug 20 18:24:52 2007//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.12/Thu Aug 14 16:36:11 2008//TBUGZILLA-3_3_1 +/updated.html.tmpl/1.4/Thu Aug 14 16:36:11 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/products/groupcontrol/CVS/Tag b/template/en/default/admin/products/groupcontrol/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/products/groupcontrol/CVS/Tag +++ b/template/en/default/admin/products/groupcontrol/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/products/groupcontrol/edit.html.tmpl b/template/en/default/admin/products/groupcontrol/edit.html.tmpl index c793ff683ec78dfe610517ec55ccf66b8f25245c..8c634ebfe113542207b0a11af3f367e0e25a9502 100644 --- a/template/en/default/admin/products/groupcontrol/edit.html.tmpl +++ b/template/en/default/admin/products/groupcontrol/edit.html.tmpl @@ -31,8 +31,6 @@ <input type="hidden" name="action" value="updategroupcontrols"> <input type="hidden" name="product" value="[% product.name FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]"> - <input type="hidden" name="classification" - value="[% classification.name FILTER html %]"> <table id="form" cellspacing="0" cellpadding="4" border="1"> <tr bgcolor="#6666ff"> @@ -46,23 +44,23 @@ <th>editbugs</th> <th>[% terms.Bugs %]</th> </tr> - [% FOREACH group = groups %] - [% IF group.isactive == 0 AND group.bugcount > 0 %] + [% FOREACH group = product.group_controls(1).values.sort("name") %] + [% IF !group.group.isactive AND group.bug_count %] <tr bgcolor="#bbbbbb"> <td> - [% group.name FILTER html %] + [% group.group.name FILTER html %] </td> <td align="center" colspan=7> Disabled </td> <td> - [% group.bugcount %] + [% group.bug_count FILTER html %] </td> <tr> - [% ELSIF group.isactive != 0 %] + [% ELSIF group.group.is_active %] <tr> <td> - [% group.name FILTER html %] + [% group.group.name FILTER html %] </td> <td> <input type=checkbox value=1 name=entry_[% group.id %] @@ -70,48 +68,48 @@ </td> <td> <select name="membercontrol_[% group.id %]"> - <option value=[% const.CONTROLMAPNA %] + <option value=[% constants.CONTROLMAPNA %] [% " selected=\"selected\"" - IF group.membercontrol == const.CONTROLMAPNA %] + IF group.membercontrol == constants.CONTROLMAPNA %] >NA </option> - <option value=[% const.CONTROLMAPSHOWN %] + <option value=[% constants.CONTROLMAPSHOWN %] [% " selected=\"selected\"" - IF group.membercontrol == const.CONTROLMAPSHOWN %] + IF group.membercontrol == constants.CONTROLMAPSHOWN %] >Shown </option> - <option value=[% const.CONTROLMAPDEFAULT %] + <option value=[% constants.CONTROLMAPDEFAULT %] [% " selected=\"selected\"" - IF group.membercontrol == const.CONTROLMAPDEFAULT %] + IF group.membercontrol == constants.CONTROLMAPDEFAULT %] >Default </option> - <option value=[% const.CONTROLMAPMANDATORY %] + <option value=[% constants.CONTROLMAPMANDATORY %] [% " selected=\"selected\"" - IF group.membercontrol == const.CONTROLMAPMANDATORY %] + IF group.membercontrol == constants.CONTROLMAPMANDATORY %] >Mandatory </option> </select> </td> <td> <select name="othercontrol_[% group.id %]"> - <option value=[% const.CONTROLMAPNA %] + <option value=[% constants.CONTROLMAPNA %] [% " selected=\"selected\"" - IF group.othercontrol == const.CONTROLMAPNA %] + IF group.othercontrol == constants.CONTROLMAPNA %] >NA </option> - <option value=[% const.CONTROLMAPSHOWN %] + <option value=[% constants.CONTROLMAPSHOWN %] [% " selected=\"selected\"" - IF group.othercontrol == const.CONTROLMAPSHOWN %] + IF group.othercontrol == constants.CONTROLMAPSHOWN %] >Shown </option> - <option value=[% const.CONTROLMAPDEFAULT %] + <option value=[% constants.CONTROLMAPDEFAULT %] [% " selected=\"selected\"" - IF group.othercontrol == const.CONTROLMAPDEFAULT %] + IF group.othercontrol == constants.CONTROLMAPDEFAULT %] >Default </option> - <option value=[% const.CONTROLMAPMANDATORY %] + <option value=[% constants.CONTROLMAPMANDATORY %] [% " selected=\"selected\"" - IF group.othercontrol == const.CONTROLMAPMANDATORY %] + IF group.othercontrol == constants.CONTROLMAPMANDATORY %] >Mandatory </option> </select> @@ -133,7 +131,7 @@ [% " checked=\"checked\"" IF group.editbugs %]> </td> <td> - [% group.bugcount %] + [% group.bug_count || 0 FILTER html %] </td> </tr> [% END %] diff --git a/template/en/default/admin/products/groupcontrol/updated.html.tmpl b/template/en/default/admin/products/groupcontrol/updated.html.tmpl index 52456a4735ee9bf767aa95b9cd7c42f715bb2d71..2f59cae685e533ece0118439d0441bc8b6413a14 100644 --- a/template/en/default/admin/products/groupcontrol/updated.html.tmpl +++ b/template/en/default/admin/products/groupcontrol/updated.html.tmpl @@ -15,10 +15,8 @@ #%] [%# INTERFACE: - # removed_na: array of hashes; groups not applicable for the product. - # added_mandatory: array of hashes; groups mandatory for the product. - # classification: Bugzilla::Classification object; product classification. - # product: Bugzilla::Product object; the product. + # product: Bugzilla::Product object; the product. + # changes: Hashref with changes made to the product group controls. #%] [% title = BLOCK %] @@ -29,16 +27,16 @@ title = title %] <p> -[% IF removed_na.size > 0 %] - [% FOREACH g = removed_na %] +[% IF changes.group_controls.now_na.size %] + [% FOREACH g = changes.group_controls.now_na %] Removing [% terms.bugs %] from group '[% g.name FILTER html %]' which no longer applies to this product<p> [% g.bug_count FILTER html %] [%+ terms.bugs %] removed<p> [% END %] [% END %] -[% IF added_mandatory.size > 0 %] - [% FOREACH g = added_mandatory %] +[% IF changes.group_controls.now_mandatory.size %] + [% FOREACH g = changes.group_controls.now_mandatory %] Adding [% terms.bugs %] to group '[% g.name FILTER html %]' which is mandatory for this product<p> [% g.bug_count FILTER html %] [%+ terms.bugs %] added<p> diff --git a/template/en/default/admin/products/list.html.tmpl b/template/en/default/admin/products/list.html.tmpl index 3f1576913d7ad46443033ea462389e75cb0a9a43..b82a6a5b0030c7442455758431faf7ff55f47dfb 100644 --- a/template/en/default/admin/products/list.html.tmpl +++ b/template/en/default/admin/products/list.html.tmpl @@ -39,14 +39,13 @@ [% edit_contentlink = BLOCK %] editproducts.cgi?action=edit&product=%%name%% - [%- classification_url_part %] [% END %] [% delete_contentlink = BLOCK %] editproducts.cgi?action=del&product=%%name%% - [%- classification_url_part %] [% END %] -[% bug_count_contentlink = BLOCK %]buglist.cgi?product=%%name%% - [%- classification_url_part %][% END %] +[% bug_count_contentlink = BLOCK %] + buglist.cgi?product=%%name%% +[% END %] [% columns = [ diff --git a/template/en/default/admin/products/updated.html.tmpl b/template/en/default/admin/products/updated.html.tmpl index 4d5f518ecd396df0838a1d66eb34ef327b790a9b..b04fa46636ea089ce216a17a8cb2c96d9906547b 100644 --- a/template/en/default/admin/products/updated.html.tmpl +++ b/template/en/default/admin/products/updated.html.tmpl @@ -16,38 +16,18 @@ # Rights Reserved. # # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Frédéric Buclin <LpSolit@gmail.com> #%] [%# INTERFACE: - # - # old_product : Bugzilla::Product Object; old product. # product : Bugzilla::Product Object; new product. - # # classification: Bugzilla::Classification Object; The product classification (may be empty or missing) - # - # checkvotes: boolean; is true if vote related fields have changed. If so, - # then the following parameters will be specified: - # - # toomanyvotes: list of hashes, each one with an 'id' and a 'name' hash key - # detailing the bug id and the username of users who had too - # many votes for a bug - # - # toomanytotalvotes: list of hashes, each one with an 'id' and a 'name' hash key - # detailing the bug id and the username of users who had - # too many total votes - # - # confirmedbugs: list of bug ids, which were confirmed by votes - # - # changer: string; login of the user making the changes, used for mailing - # bug changes if necessary - # + # changes: hashref with all changes made to the product. Each key is an edited field, + # and its value is an arrayref of the form [old values, new values]. #%] [% IF classification %] - [% classification_url_part = BLOCK %]&classification= - [%- classification.name FILTER url_quote %] - [% END %] - [% classification_text = BLOCK %] + [% classification_text = BLOCK %] of classification '[% classification.name FILTER html %]' [% END %] [% END %] @@ -58,28 +38,24 @@ title = title style_urls = ['skins/standard/admin.css'] %] -[% updated = 0 %] -[% IF product.name != old_product.name %] +[% IF changes.name.defined %] <p> - Updated product name from '[% old_product.name FILTER html %]' to - <a href="editproducts.cgi?action=edit&product= - [%- product.name FILTER url_quote %] - [%- classification_url_part FILTER none %]">[% product.name FILTER html %]</a>. + Updated product name from '[% changes.name.0 FILTER html %]' to + '<a href="editproducts.cgi?action=edit&product= + [%- product.name FILTER url_quote %]">[% product.name FILTER html %]</a>'. </p> - [% updated = 1 %] [% END %] -[% IF product.description != old_product.description %] +[% IF changes.description.defined %] <p> Updated description to: </p> <p style="margin: 1em 3em 1em 3em">[% product.description FILTER html_light %]</p> - [% updated = 1 %] [% END %] -[% IF product.disallow_new != old_product.disallow_new %] +[% IF changes.disallownew.defined %] <p> Product is now [% IF product.disallow_new %] @@ -89,15 +65,14 @@ [% END %] new [% terms.bugs %]. </p> - [% updated = 1 %] [% END %] -[% IF product.milestone_url != old_product.milestone_url %] +[% IF changes.milestoneurl.defined %] <p> Updated milestone URL - [% IF old_product.milestone_url != '' %] - from<br> <a href="[%- old_product.milestone_url FILTER html %]"> - [%- old_product.milestone_url FILTER html %]</a> + [% IF changes.milestoneurl.0 != '' %] + from<br> <a href="[%- changes.milestoneurl.0 FILTER html %]"> + [%- changes.milestoneurl.0 FILTER html %]</a> [% END %] to [% IF product.milestone_url != '' %] @@ -107,45 +82,43 @@ be empty. [% END %] </p> - [% updated = 1 %] [% END %] -[% IF product.default_milestone != old_product.default_milestone %] +[% IF changes.defaultmilestone.defined %] <p> - Updated default milestone from '[% old_product.default_milestone FILTER html %]' to + Updated default milestone from '[% changes.defaultmilestone.0 FILTER html %]' to '[% product.default_milestone FILTER html %]'. </p> - [% updated = 1 %] [% END %] -[% IF product.votes_per_user != old_product.votes_per_user %] +[% IF changes.votesperuser.defined %] <p> Updated votes per user from - [%+ old_product.votes_per_user FILTER html %] to + [%+ changes.votesperuser.0 FILTER html %] to [%+ product.votes_per_user FILTER html %]. </p> - [% updated = 1 %] + [% checkvotes = 1 %] [% END %] -[% IF product.max_votes_per_bug != old_product.max_votes_per_bug %] +[% IF changes.maxvotesperbug.defined %] <p> Updated maximum votes per [% terms.bug %] from - [%+ old_product.max_votes_per_bug FILTER html %] to + [%+ changes.maxvotesperbug.0 FILTER html %] to [%+ product.max_votes_per_bug FILTER html %]. </p> - [% updated = 1 %] + [% checkvotes = 1 %] [% END %] -[% IF product.votes_to_confirm != old_product.votes_to_confirm %] +[% IF changes.votestoconfirm.defined %] <p> Updated number of votes needed to confirm a [% terms.bug %] from - [%+ old_product.votes_to_confirm FILTER html %] to + [%+ changes.votestoconfirm.0 FILTER html %] to [%+ product.votes_to_confirm FILTER html %]. </p> - [% updated = 1 %] + [% checkvotes = 1 %] [% END %] -[% UNLESS updated %] +[% IF !changes.keys.size %] <p>Nothing changed for product '[% product.name FILTER html %]'.</p> [% END %] @@ -159,8 +132,8 @@ <p>Checking existing votes in this product for anybody who now has too many votes for [% terms.abug %]...<br> - [% IF toomanyvotes.size > 0 %] - [% FOREACH detail = toomanyvotes %] + [% IF changes.too_many_votes.size %] + [% FOREACH detail = changes.too_many_votes %] →removed votes for [% terms.bug %] <a href="show_bug.cgi?id= [%- detail.id FILTER url_quote %]"> [%- detail.id FILTER html %]</a> from [% detail.name FILTER html %]<br> @@ -172,8 +145,8 @@ <p>Checking existing votes in this product for anybody who now has too many total votes...<br> - [% IF toomanytotalvotes.size > 0 %] - [% FOREACH detail = toomanytotalvotes %] + [% IF changes.too_many_total_votes.size %] + [% FOREACH detail = changes.too_many_total_votes %] →removed votes for [% terms.bug %] <a href="show_bug.cgi?id= [%- detail.id FILTER url_quote %]"> [%- detail.id FILTER html %]</a> from [% detail.name FILTER html %]<br> @@ -185,14 +158,14 @@ <p>Checking unconfirmed [% terms.bugs %] in this product for any which now have sufficient votes...<br> - [% IF confirmedbugs.size > 0 %] - [% FOREACH id = confirmedbugs %] + [% IF changes.confirmed_bugs.size %] + [% FOREACH id = changes.confirmed_bugs %] [%# This is INCLUDED instead of PROCESSED to avoid variables getting overwritten, which happens otherwise %] [% INCLUDE bug/process/results.html.tmpl type = 'votes' - mailrecipients = { 'changer' => changer } + mailrecipients = { 'changer' => user.login } header_done = 1 id = id %] diff --git a/template/en/default/admin/sanitycheck/CVS/Entries b/template/en/default/admin/sanitycheck/CVS/Entries index 6233864cf1425b0c1424656df15786b7f7b397a6..471955f2a70200383b62f31f1a1a47fecc410cdd 100644 --- a/template/en/default/admin/sanitycheck/CVS/Entries +++ b/template/en/default/admin/sanitycheck/CVS/Entries @@ -1,3 +1,3 @@ -/list.html.tmpl/1.2/Mon Aug 20 18:24:53 2007//TBUGZILLA-3_2_1 -/messages.html.tmpl/1.4.2.3/Thu Aug 7 08:37:11 2008//TBUGZILLA-3_2_1 +/list.html.tmpl/1.2/Mon Aug 20 18:24:53 2007//TBUGZILLA-3_3_1 +/messages.html.tmpl/1.8/Wed Aug 6 12:06:42 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/sanitycheck/CVS/Tag b/template/en/default/admin/sanitycheck/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/sanitycheck/CVS/Tag +++ b/template/en/default/admin/sanitycheck/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/settings/CVS/Entries b/template/en/default/admin/settings/CVS/Entries index a3a4178f2d483d10d9ad66ea28d62bd7b5363255..832d41a7041c915001283df2e44a0f8f5ef5278f 100644 --- a/template/en/default/admin/settings/CVS/Entries +++ b/template/en/default/admin/settings/CVS/Entries @@ -1,2 +1,2 @@ -/edit.html.tmpl/1.9/Sun Jan 27 23:14:25 2008//TBUGZILLA-3_2_1 +/edit.html.tmpl/1.9/Sun Jan 27 23:14:25 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/settings/CVS/Tag b/template/en/default/admin/settings/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/settings/CVS/Tag +++ b/template/en/default/admin/settings/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/users/CVS/Entries b/template/en/default/admin/users/CVS/Entries index 64c641e659baa22aa93abba88c5a2b9612c85323..ab0d24837dd675ebd1696fc6a9e4a895e526b597 100644 --- a/template/en/default/admin/users/CVS/Entries +++ b/template/en/default/admin/users/CVS/Entries @@ -1,9 +1,9 @@ -/confirm-delete.html.tmpl/1.20.2.4/Fri Jan 23 22:24:16 2009//TBUGZILLA-3_2_1 -/create.html.tmpl/1.5/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.15/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_2_1 -/list.html.tmpl/1.6/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_2_1 -/listselectvars.html.tmpl/1.2/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_2_1 -/responsibilities.html.tmpl/1.2/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_2_1 -/search.html.tmpl/1.6/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_2_1 -/userdata.html.tmpl/1.12/Sat Jan 12 11:40:11 2008//TBUGZILLA-3_2_1 +/confirm-delete.html.tmpl/1.24/Mon Dec 1 01:48:24 2008//TBUGZILLA-3_3_1 +/create.html.tmpl/1.5/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.15/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_1 +/list.html.tmpl/1.6/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_1 +/listselectvars.html.tmpl/1.2/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_3_1 +/responsibilities.html.tmpl/1.2/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_3_1 +/search.html.tmpl/1.6/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_1 +/userdata.html.tmpl/1.13/Fri Aug 8 01:26:58 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/users/CVS/Tag b/template/en/default/admin/users/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/users/CVS/Tag +++ b/template/en/default/admin/users/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/users/confirm-delete.html.tmpl b/template/en/default/admin/users/confirm-delete.html.tmpl index 38528398caa26f8470abec752f95c28e659b9541..83d6ca4f6a77f90b77abdb372f56fc54c121e296 100644 --- a/template/en/default/admin/users/confirm-delete.html.tmpl +++ b/template/en/default/admin/users/confirm-delete.html.tmpl @@ -69,8 +69,8 @@ <td> [% IF otheruser.groups.size %] <ul> - [% FOREACH group = otheruser.groups.keys %] - <li>[% group FILTER html %]</li> + [% FOREACH group = otheruser.groups %] + <li>[% group.name FILTER html %]</li> [% END %] </ul> [% ELSE %] @@ -269,7 +269,7 @@ one component [% ELSE %] [%+ component_cc %] components - [% END %]. + [% END %]</a>. If you delete the user account, it will be removed from these CC lists. </li> [% END %] diff --git a/template/en/default/admin/users/userdata.html.tmpl b/template/en/default/admin/users/userdata.html.tmpl index feee4c5d6a936915ddce40d815af71b808b38d13..f23aa1b85c171a29fcd0fe9e2e2b67f5db4988b1 100644 --- a/template/en/default/admin/users/userdata.html.tmpl +++ b/template/en/default/admin/users/userdata.html.tmpl @@ -27,7 +27,7 @@ <input size="64" maxlength="255" name="login" id="login" value="[% otheruser.login FILTER html %]" /> [% IF editform %] - [% IF !otheruser.groups.bz_sudo_protect %] + [% IF !otheruser.in_group('bz_sudo_protect') %] <br /> <a href="relogin.cgi?action=prepare-sudo&target_login= [%- otheruser.login FILTER url_quote %]">Impersonate this user</a> diff --git a/template/en/default/admin/versions/CVS/Entries b/template/en/default/admin/versions/CVS/Entries index ab6a061aadfcbb32e5387eff133c1b77b5a356b7..7396448922be41fed7ff977dd78f71d782552d6c 100644 --- a/template/en/default/admin/versions/CVS/Entries +++ b/template/en/default/admin/versions/CVS/Entries @@ -1,7 +1,7 @@ -/confirm-delete.html.tmpl/1.8/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_2_1 -/create.html.tmpl/1.7/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.7/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_2_1 -/footer.html.tmpl/1.4/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_2_1 -/list.html.tmpl/1.5/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_2_1 -/select-product.html.tmpl/1.4/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_2_1 +/confirm-delete.html.tmpl/1.8/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_3_1 +/create.html.tmpl/1.7/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.7/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_3_1 +/footer.html.tmpl/1.4/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_3_1 +/list.html.tmpl/1.5/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_3_1 +/select-product.html.tmpl/1.4/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/versions/CVS/Tag b/template/en/default/admin/versions/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/versions/CVS/Tag +++ b/template/en/default/admin/versions/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/admin/workflow/CVS/Entries b/template/en/default/admin/workflow/CVS/Entries index cc5d92d537a2382f7f5956ee8b2b83d9a62d77fc..adf64f4170bbc6993f49c0a1c6e52792f3ac1b5e 100644 --- a/template/en/default/admin/workflow/CVS/Entries +++ b/template/en/default/admin/workflow/CVS/Entries @@ -1,3 +1,3 @@ -/comment.html.tmpl/1.3.2.1/Mon Oct 6 21:11:46 2008//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.4.2.2/Mon Oct 6 21:11:46 2008//TBUGZILLA-3_2_1 +/comment.html.tmpl/1.4/Mon Oct 6 21:09:53 2008//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.6/Mon Oct 6 21:09:53 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/admin/workflow/CVS/Tag b/template/en/default/admin/workflow/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/admin/workflow/CVS/Tag +++ b/template/en/default/admin/workflow/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/attachment/CVS/Entries b/template/en/default/attachment/CVS/Entries index 4a63470b33cc3176fdd43a29c13e48cd7f9261a3..e700999fa974ab2fc4a698a622be52279879d451 100644 --- a/template/en/default/attachment/CVS/Entries +++ b/template/en/default/attachment/CVS/Entries @@ -1,17 +1,17 @@ -/cancel-create-dupe.html.tmpl/1.1.2.1/Fri Jun 27 19:47:23 2008//TBUGZILLA-3_2_1 -/choose.html.tmpl/1.6/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_2_1 -/confirm-delete.html.tmpl/1.6/Sun Nov 11 22:03:17 2007//TBUGZILLA-3_2_1 -/content-types.html.tmpl/1.6/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_2_1 -/create.html.tmpl/1.35.2.1/Fri Jun 27 19:47:23 2008//TBUGZILLA-3_2_1 -/created.html.tmpl/1.21.2.1/Wed Sep 17 23:55:47 2008//TBUGZILLA-3_2_1 -/createformcontents.html.tmpl/1.2/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_2_1 -/delete_reason.txt.tmpl/1.3/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_2_1 -/diff-file.html.tmpl/1.7/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_2_1 -/diff-footer.html.tmpl/1.3/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_2_1 -/diff-header.html.tmpl/1.18.2.2/Mon Oct 20 17:54:34 2008//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.51.2.2/Mon Feb 2 19:12:26 2009//TBUGZILLA-3_2_1 -/list.html.tmpl/1.38.2.1/Mon Feb 2 19:12:26 2009//TBUGZILLA-3_2_1 -/midair.html.tmpl/1.2/Fri Feb 8 23:19:10 2008//TBUGZILLA-3_2_1 -/show-multiple.html.tmpl/1.25/Tue Mar 18 08:31:51 2008//TBUGZILLA-3_2_1 -/updated.html.tmpl/1.19.2.1/Wed Sep 17 23:55:47 2008//TBUGZILLA-3_2_1 +/cancel-create-dupe.html.tmpl/1.2/Fri Jun 27 19:56:25 2008//TBUGZILLA-3_3_1 +/choose.html.tmpl/1.6/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1 +/confirm-delete.html.tmpl/1.6/Sun Nov 11 22:03:17 2007//TBUGZILLA-3_3_1 +/content-types.html.tmpl/1.6/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1 +/create.html.tmpl/1.37/Thu Sep 18 18:56:26 2008//TBUGZILLA-3_3_1 +/created.html.tmpl/1.22/Wed Sep 17 23:49:01 2008//TBUGZILLA-3_3_1 +/createformcontents.html.tmpl/1.2/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1 +/delete_reason.txt.tmpl/1.3/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1 +/diff-file.html.tmpl/1.7/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1 +/diff-footer.html.tmpl/1.3/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1 +/diff-header.html.tmpl/1.22/Tue Dec 9 18:10:08 2008//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.54/Thu Sep 18 18:56:26 2008//TBUGZILLA-3_3_1 +/list.html.tmpl/1.38/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1 +/midair.html.tmpl/1.2/Fri Feb 8 23:19:10 2008//TBUGZILLA-3_3_1 +/show-multiple.html.tmpl/1.25/Tue Mar 18 08:31:51 2008//TBUGZILLA-3_3_1 +/updated.html.tmpl/1.20/Wed Sep 17 23:49:01 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/attachment/CVS/Tag b/template/en/default/attachment/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/attachment/CVS/Tag +++ b/template/en/default/attachment/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/attachment/create.html.tmpl b/template/en/default/attachment/create.html.tmpl index 10648159b89088f456a82d18ea4cfd36f57bea33..3c099bee7446a731f527aca6d9e3329e942cf443 100644 --- a/template/en/default/attachment/create.html.tmpl +++ b/template/en/default/attachment/create.html.tmpl @@ -35,7 +35,7 @@ subheader = subheader onload="setContentTypeDisabledState(document.entryform);" style_urls = [ 'skins/standard/create_attachment.css' ] - javascript_urls = [ "js/attachment.js" ] + javascript_urls = [ "js/yui/yahoo-dom-event.js", "js/attachment.js" ] doc_section = "attachments.html" %] diff --git a/template/en/default/attachment/diff-header.html.tmpl b/template/en/default/attachment/diff-header.html.tmpl index c6b14d9a062123e0b4c24466b6b413cc5f5afc75..8dcd073f11cfdf06e0c2e47169d385cc398d3ece 100644 --- a/template/en/default/attachment/diff-header.html.tmpl +++ b/template/en/default/attachment/diff-header.html.tmpl @@ -30,176 +30,6 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %] [% END %] [% END %] -[% style = BLOCK %] -.file_head { - font-weight: bold; - font-size: 1em; - background-color: #c3c3c3; - border: 1px solid black; -} - -.file_head a { - text-decoration: none; - font-family: monospace; - font-size: 1.1em; -} - -.file_collapse { - display: none; -} - -.section_head { - background-color: #f0f0f0; - border: 1px solid black; - text-align: left; -} - -table.file_table { - table-layout: fixed; - width: 100%; - empty-cells: show; - border-spacing: 0px; - border-collapse: collapse; - /* draw border below last open context section in listing */ - border-bottom: 1px solid black; -} - -tbody.file pre { - display: inline; - white-space: pre-wrap; /* CSS 3 & CSS 2.1 */ - white-space: -moz-pre-wrap; /* Gecko < 1.9.1 */ - white-space: -o-pre-wrap; /* Opera 7 */ - font-size: 0.9em; -} - -tbody.file pre:empty { - display: block; -} - -.changed { - background-color: lightblue; -} - -.added { - background-color: lightgreen; -} - -.removed { - background-color: #FFCC99; -} - -.num { - background-color: #ffe9ae; - text-align:right; - padding: 0 0.3em; - width: 3em; -} - -.warning { - color: red -} -[% END %] - -[%# SCRIPT FUNCTIONS %] -[% javascript = BLOCK %] - function collapse_all() { - var elem = document.checkboxform.firstChild; - while (elem != null) { - if (elem.firstChild != null) { - var tbody = elem.firstChild.nextSibling; - if (tbody.className == 'file') { - tbody.className = 'file_collapse'; - twisty = get_twisty_from_tbody(tbody); - twisty.firstChild.nodeValue = '(+)'; - twisty.nextSibling.checked = false; - } - } - elem = elem.nextSibling; - } - return false; - } - - function expand_all() { - var elem = document.checkboxform.firstChild; - while (elem != null) { - if (elem.firstChild != null) { - var tbody = elem.firstChild.nextSibling; - if (tbody.className == 'file_collapse') { - tbody.className = 'file'; - twisty = get_twisty_from_tbody(tbody); - twisty.firstChild.nodeValue = '(-)'; - twisty.nextSibling.checked = true; - } - } - elem = elem.nextSibling; - } - return false; - } - - var current_restore_elem; - - function restore_all() { - current_restore_elem = null; - incremental_restore(); - } - - function incremental_restore() { - if (!document.checkboxform.restore_indicator.checked) { - return; - } - var next_restore_elem; - if (current_restore_elem) { - next_restore_elem = current_restore_elem.nextSibling; - } else { - next_restore_elem = document.checkboxform.firstChild; - } - while (next_restore_elem != null) { - current_restore_elem = next_restore_elem; - if (current_restore_elem.firstChild != null) { - restore_elem(current_restore_elem.firstChild.nextSibling); - } - next_restore_elem = current_restore_elem.nextSibling; - } - } - - function restore_elem(elem, alertme) { - if (elem.className == 'file_collapse') { - twisty = get_twisty_from_tbody(elem); - if (twisty.nextSibling.checked) { - elem.className = 'file'; - twisty.firstChild.nodeValue = '(-)'; - } - } else if (elem.className == 'file') { - twisty = get_twisty_from_tbody(elem); - if (!twisty.nextSibling.checked) { - elem.className = 'file_collapse'; - twisty.firstChild.nodeValue = '(+)'; - } - } - } - - function twisty_click(twisty) { - tbody = get_tbody_from_twisty(twisty); - if (tbody.className == 'file') { - tbody.className = 'file_collapse'; - twisty.firstChild.nodeValue = '(+)'; - twisty.nextSibling.checked = false; - } else { - tbody.className = 'file'; - twisty.firstChild.nodeValue = '(-)'; - twisty.nextSibling.checked = true; - } - return false; - } - - function get_tbody_from_twisty(twisty) { - return twisty.parentNode.parentNode.parentNode.nextSibling; - } - function get_twisty_from_tbody(tbody) { - return tbody.previousSibling.firstChild.nextSibling.firstChild.firstChild; - } -[% END %] - [% onload = 'restore_all(); document.checkboxform.restore_indicator.checked = true' %] [% BLOCK viewurl %]attachment.cgi?id=[% id %][% END %] @@ -221,18 +51,14 @@ tbody.file pre:empty { [% subheader = BLOCK %] [% bugsummary FILTER html %] [% END %] - [% PROCESS global/header.html.tmpl doc_section = "attachments.html#patchviewer" %] + [% PROCESS global/header.html.tmpl doc_section = "attachments.html#patchviewer" + javascript_urls = "js/attachment.js" + style_urls = ['skins/standard/create_attachment.css'] %] [% ELSE %] <html> <head> - <style type="text/css"> - [% style %] - </style> - <script type="text/javascript"> - <!-- - [% javascript %] - --> - </script> + <link href="skins/standard/create_attachment.css" rel="stylesheet" type="text/css"> + <script src="js/attachment.js" type="text/javascript"></script> </head> <body onload="[% onload FILTER html %]"> [% END %] diff --git a/template/en/default/attachment/edit.html.tmpl b/template/en/default/attachment/edit.html.tmpl index ca0a8bc6e126fd257aa4edd2112de36a2df5ac38..2550d4f468a563c3fa8a83f671589b9db45032bd 100644 --- a/template/en/default/attachment/edit.html.tmpl +++ b/template/en/default/attachment/edit.html.tmpl @@ -29,18 +29,16 @@ Attachment [% attachment.id %] Details for [%+ "$terms.Bug ${attachment.bug_id}" FILTER bug_link(attachment.bug_id) FILTER none %] [% END %] -[% subheader = BLOCK %][% bugsummary FILTER html %][% END %] +[% subheader = BLOCK %][% attachment.bug.short_desc FILTER html %][% END %] [% PROCESS global/header.html.tmpl title = title header = header subheader = subheader + javascript_urls = [ "js/yui/yahoo-dom-event.js" ] doc_section = "attachments.html" %] -[%# No need to display the Diff button and iframe if the attachment is not a patch. %] -[% patchviewerinstalled = (patchviewerinstalled && attachment.ispatch) %] - <script type="text/javascript"> <!-- var prev_mode = 'raw'; @@ -49,7 +47,37 @@ var has_viewed_as_diff = 0; function editAsComment() { + // Get the content of the document as a string. + var viewFrame = document.getElementById('viewFrame'); + var aSerializer = new XMLSerializer(); + var contentDocument = viewFrame.contentDocument; + var theContent = aSerializer.serializeToString(contentDocument); + + // If this is a plaintext document, remove cruft that Mozilla adds + // because it treats it as an HTML document with a big PRE section. + // http://bugzilla.mozilla.org/show_bug.cgi?id=86012 + var contentType = '[% attachment.contenttype FILTER js %]'; + if ( contentType == 'text/plain' ) + { + theContent = theContent.replace( /^<html><head\/?><body><pre>/i , "" ); + theContent = theContent.replace( /<\/pre><\/body><\/html>$/i , "" ); + theContent = theContent.replace( /</gi , "<" ); + theContent = theContent.replace( />/gi , ">" ); + theContent = theContent.replace( /&/gi , "&" ); + } + + // Add mail-style quote indicators (>) to the beginning of each line. + // ".*\n" matches lines that end with a newline, while ".+" matches + // the rare situation in which the last line of a file does not end + // with a newline. + theContent = theContent.replace( /(.*\n|.+)/g , ">$1" ); + switchToMode('edit'); + + // Copy the contents of the diff into the textarea + var editFrame = document.getElementById('editFrame'); + editFrame.value = theContent + "\n\n"; + has_edited = 1; } function undoEditAsComment() @@ -223,9 +251,11 @@ <br> </small> - [% IF flag_types.size > 0 %] + [% IF attachment.flag_types.size > 0 %] [% PROCESS "flag/list.html.tmpl" bug_id = attachment.bug_id - attach_id = attachment.id %]<br> + attach_id = attachment.id + flag_types = attachment.flag_types + %]<br> [% END %] <div id="smallCommentFrame"> @@ -247,7 +277,7 @@ | <a href="attachment.cgi?id=[% attachment.id %]&action=diff">Diff</a> [% END %] [% IF Param("allow_attachment_deletion") - && user.groups.admin + && user.in_group('admin') && attachment.datasize > 0 %] | <a href="attachment.cgi?id=[% attachment.id %]&action=delete">Delete</a> [% END %] @@ -267,17 +297,6 @@ [% END %] </a> </td> - [% ELSIF !Param("allow_attachment_display") %] - <td id="view_disabled" width="50%"> - <p><b> - The attachment is not viewable in your browser due to security - restrictions enabled by [% terms.Bugzilla %]. - </b></p> - <p><b> - In order to view the attachment, you first have to - <a href="attachment.cgi?id=[% attachment.id %]">download it</a>. - </b></p> - </td> [% ELSIF attachment.is_viewable %] <td width="75%"> [% INCLUDE global/textarea.html.tmpl @@ -287,8 +306,6 @@ minrows = 10 cols = 80 wrap = 'soft' - defaultcontent = (attachment.contenttype.match('^text\/')) ? - attachment.data.replace('(.*\n|.+)', '>$1') : undef %] <iframe id="viewFrame" src="attachment.cgi?id=[% attachment.id %]" style="height: 400px; width: 100%;"> <b>You cannot view the attachment while viewing its details because your browser does not support IFRAMEs. diff --git a/template/en/default/attachment/list.html.tmpl b/template/en/default/attachment/list.html.tmpl index 546041eae50261132527f7d34e14343ea9bd0e48..054b684551c91dde8c075508972ef4363e5f3409 100644 --- a/template/en/default/attachment/list.html.tmpl +++ b/template/en/default/attachment/list.html.tmpl @@ -134,11 +134,9 @@ [% IF attachments.size %] <span class="bz_attach_view_hide"> [% IF obsolete_attachments %] - <a href="#a0" onClick="return toggle_display(this);">Hide Obsolete</a> ([% obsolete_attachments %]) - [% END %] - [% IF Param("allow_attachment_display") %] - <a href="attachment.cgi?bugid=[% bugid %]&action=viewall">View All</a> + <a href="#a0" onClick="return toggle_display(this);">Hide Obsolete</a> ([% obsolete_attachments %]) | [% END %] + <a href="attachment.cgi?bugid=[% bugid %]&action=viewall">View All</a> </span> [% END %] <a href="attachment.cgi?bugid=[% bugid %]&action=enter">Add an attachment</a> diff --git a/template/en/default/bug/CVS/Entries b/template/en/default/bug/CVS/Entries index 475e33c4f1cd1dd24d6226267395b32be277858e..bfd754e228d71cf6e1ec7b3676e29f14f2be07ec 100644 --- a/template/en/default/bug/CVS/Entries +++ b/template/en/default/bug/CVS/Entries @@ -1,16 +1,17 @@ -/choose.html.tmpl/1.8/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_2_1 -/comments.html.tmpl/1.36.2.1/Mon Sep 22 12:59:58 2008//TBUGZILLA-3_2_1 -/dependency-graph.html.tmpl/1.14/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_2_1 -/dependency-tree.html.tmpl/1.29/Fri Apr 11 21:42:30 2008//TBUGZILLA-3_2_1 -/edit.html.tmpl/1.125.2.19/Mon Feb 2 18:42:07 2009//TBUGZILLA-3_2_1 -/field.html.tmpl/1.14.2.1/Thu Sep 18 18:53:57 2008//TBUGZILLA-3_2_1 -/knob.html.tmpl/1.36.2.2/Wed Nov 12 14:13:23 2008//TBUGZILLA-3_2_1 -/navigate.html.tmpl/1.11/Sun Jan 27 19:21:16 2008//TBUGZILLA-3_2_1 -/show-multiple.html.tmpl/1.42.2.1/Tue Jun 3 22:48:22 2008//TBUGZILLA-3_2_1 -/show.html.tmpl/1.25.2.1/Wed Sep 17 23:55:51 2008//TBUGZILLA-3_2_1 -/show.xml.tmpl/1.23.2.2/Wed Nov 26 01:03:50 2008//TBUGZILLA-3_2_1 -/summarize-time.html.tmpl/1.12/Mon Mar 31 08:51:05 2008//TBUGZILLA-3_2_1 -/time.html.tmpl/1.3/Mon Aug 20 18:24:58 2007//TBUGZILLA-3_2_1 +/choose.html.tmpl/1.8/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1 +/comments.html.tmpl/1.39/Wed Nov 19 05:33:07 2008//TBUGZILLA-3_3_1 +/dependency-graph.html.tmpl/1.14/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1 +/dependency-tree.html.tmpl/1.30/Fri Aug 8 01:27:14 2008//TBUGZILLA-3_3_1 +/edit.html.tmpl/1.144/Mon Dec 29 00:02:16 2008//TBUGZILLA-3_3_1 +/field-events.js.tmpl/1.1/Fri Nov 7 11:34:52 2008//TBUGZILLA-3_3_1 +/field.html.tmpl/1.21/Fri Nov 7 11:34:52 2008//TBUGZILLA-3_3_1 +/knob.html.tmpl/1.40/Wed Nov 12 14:11:30 2008//TBUGZILLA-3_3_1 +/navigate.html.tmpl/1.11/Sun Jan 27 19:21:16 2008//TBUGZILLA-3_3_1 +/show-multiple.html.tmpl/1.43/Tue Jun 3 22:47:20 2008//TBUGZILLA-3_3_1 +/show.html.tmpl/1.26/Wed Sep 17 23:49:05 2008//TBUGZILLA-3_3_1 +/show.xml.tmpl/1.25/Wed Nov 26 01:03:06 2008//TBUGZILLA-3_3_1 +/summarize-time.html.tmpl/1.13/Wed Aug 27 23:26:23 2008//TBUGZILLA-3_3_1 +/time.html.tmpl/1.3/Mon Aug 20 18:24:58 2007//TBUGZILLA-3_3_1 D/activity//// D/create//// D/process//// diff --git a/template/en/default/bug/CVS/Tag b/template/en/default/bug/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/bug/CVS/Tag +++ b/template/en/default/bug/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/bug/activity/CVS/Entries b/template/en/default/bug/activity/CVS/Entries index dbe3750ead65f9ddd862bbe076276ea8fb9b2466..8a4671fea420fa601e3d389c07bf62c354c675be 100644 --- a/template/en/default/bug/activity/CVS/Entries +++ b/template/en/default/bug/activity/CVS/Entries @@ -1,3 +1,3 @@ -/show.html.tmpl/1.10/Wed Oct 3 13:38:34 2007//TBUGZILLA-3_2_1 -/table.html.tmpl/1.16/Wed Apr 2 00:23:05 2008//TBUGZILLA-3_2_1 +/show.html.tmpl/1.10/Wed Oct 3 13:38:34 2007//TBUGZILLA-3_3_1 +/table.html.tmpl/1.16/Wed Apr 2 00:23:05 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/bug/activity/CVS/Tag b/template/en/default/bug/activity/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/bug/activity/CVS/Tag +++ b/template/en/default/bug/activity/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/bug/comments.html.tmpl b/template/en/default/bug/comments.html.tmpl index bf9326e8fa034f2bba0501c093434569f0ae1be6..1e8ee8c546ae14c552cc4c17ca0029d012435bce 100644 --- a/template/en/default/bug/comments.html.tmpl +++ b/template/en/default/bug/comments.html.tmpl @@ -69,13 +69,13 @@ } function collapse_comment(link, comment) { - link.innerHTML = "(+)"; + link.innerHTML = "[+]"; link.title = "Expand the comment."; comment.className = "collapsed"; } function expand_comment(link, comment) { - link.innerHTML = "(-)"; + link.innerHTML = "[-]"; link.title = "Collapse the comment"; comment.className = ""; } @@ -84,9 +84,10 @@ * won't display this link */ function addCollapseLink(count) { - document.write(' <a href="#" id="comment_link_' + count + + document.write(' <a href="#" class="bz_collapse_comment"' + + ' id="comment_link_' + count + '" onclick="toggle_comment_display(this, ' + count + - '); return false;" title="Collapse the comment.">(-)</a> '); + '); return false;" title="Collapse the comment.">[-]<\/a> '); } //--> </script> @@ -150,56 +151,64 @@ [% " bz_first_comment" IF count == description %]"> [% IF count == description %] [% class_name = "bz_first_comment_head" %] - [% comment_label = "" %] - [% comment_link = "Description" %] - [% decoration = "" %] + [% comment_label = "Description" %] [% ELSE %] [% class_name = "bz_comment_head" %] - [% comment_label = "Comment" %] - [% comment_link = "#" _ count %] - [% decoration = '<span class="comment_rule">-------</span>' %] + [% comment_label = "Comment " _ count %] [% END %] - <span class="[% class_name FILTER html %]"> - [%# Do not filter decoration as it's a real HTML tag. No XSS risk. %] - [% decoration FILTER none %] - <i>[% comment_label FILTER html %] - <a name="c[% count %]" href="show_bug.cgi?id=[% bug.bug_id %]#c[% count %]"> - [% comment_link FILTER html %]</a> From - <span class="vcard"> - <a class="fn email" href="mailto:[% comment.author.email FILTER html %]"> - [% (comment.author.name || comment.author.login) FILTER html %]</a> - </span> - [% FOREACH group = comment.author.direct_group_membership %] - [% NEXT UNLESS group.icon_url %] - <img src="[% group.icon_url FILTER html %]" - alt="[% group.name FILTER html %]" - title="[% group.name FILTER html %] - [% group.description FILTER html %]"> - [% END %] - - [%+ comment.time FILTER time %]</i> + <div class="[% class_name FILTER html %]"> [% IF mode == "edit" %] - <script type="text/javascript"><!-- - addCollapseLink([% count %]); - addReplyLink([% count %], [% comment.id %]); //--> - </script> + <span class="bz_comment_actions"> + <script type="text/javascript"><!-- + addReplyLink([% count %], [% comment.id %]); + addCollapseLink([% count %]); // --> + </script> + </span> [% END %] - [%+ decoration FILTER none %] - </span> - - [% IF mode == "edit" && isinsider %] - <i> - <input type="hidden" value="1" - name="defined_isprivate_[% comment.id %]"> - <input type="checkbox" - name="isprivate_[% comment.id %]" value="1" - id="isprivate_[% comment.id %]" - onClick="updateCommentPrivacy(this, [% count %])" - [% " checked=\"checked\"" IF comment.isprivate %]> - <label for="isprivate_[% comment.id %]">Private</label> - </i> - [% END %] + + [% IF mode == "edit" && isinsider %] + <div class="bz_private_checkbox"> + <input type="hidden" value="1" + name="defined_isprivate_[% comment.id %]"> + <input type="checkbox" + name="isprivate_[% comment.id %]" value="1" + id="isprivate_[% comment.id %]" + onClick="updateCommentPrivacy(this, [% count %])" + [% " checked=\"checked\"" IF comment.isprivate %]> + <label for="isprivate_[% comment.id %]">Private</label> + </div> + [% END %] + + <span class="bz_comment_number"> + <a name="c[% count %]" + href="show_bug.cgi?id=[% bug.bug_id %]#c[% count %]"> + [%- comment_label FILTER html %]</a> + </span> + + <span class="bz_comment_user"> + <span class="vcard"> + <a class="fn email" + href="mailto:[% comment.author.email FILTER html %]"> + [% (comment.author.name || comment.author.login) FILTER html %]</a> + </span> + </span> + + <span class="bz_comment_user_images"> + [% FOREACH group = comment.author.direct_group_membership %] + [% NEXT UNLESS group.icon_url %] + <img src="[% group.icon_url FILTER html %]" + alt="[% group.name FILTER html %]" + title="[% group.name FILTER html %] - [% group.description FILTER html %]"> + [% END %] + </span> + + <span class="bz_comment_time"> + [%+ comment.time FILTER time %] + </span> + </div> + [% IF user.in_group(Param('timetrackinggroup')) && (comment.work_time > 0 || comment.work_time < 0) %] <br> @@ -217,7 +226,7 @@ [% END %] <pre class="bz_comment_text" [% ' id="comment_text_' _ count _ '"' IF mode == "edit" %]> - [%- wrapped_comment FILTER quoteUrls(bug.bug_id) -%] + [%- wrapped_comment FILTER quoteUrls(bug.bug_id, comment.already_wrapped) -%] </pre> </div> [% END %] diff --git a/template/en/default/bug/create/CVS/Entries b/template/en/default/bug/create/CVS/Entries index f045e9e85a6f736c83011b7c6946dcf4d9346c2b..d636cbc552830efc54491ef6a988eee8c235e780 100644 --- a/template/en/default/bug/create/CVS/Entries +++ b/template/en/default/bug/create/CVS/Entries @@ -1,9 +1,9 @@ -/comment-guided.txt.tmpl/1.6.2.1/Thu Jan 1 23:13:26 2009//TBUGZILLA-3_2_1 -/comment.txt.tmpl/1.5/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_2_1 -/confirm-create-dupe.html.tmpl/1.4/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_2_1 -/create-guided.html.tmpl/1.42.2.1/Mon Dec 29 21:19:19 2008//TBUGZILLA-3_2_1 -/create.html.tmpl/1.83.2.6/Mon Dec 29 00:05:12 2008//TBUGZILLA-3_2_1 -/created.html.tmpl/1.13.2.1/Wed Sep 17 23:55:52 2008//TBUGZILLA-3_2_1 -/make-template.html.tmpl/1.10/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_2_1 -/user-message.html.tmpl/1.5/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_2_1 +/comment-guided.txt.tmpl/1.7/Thu Jan 1 23:11:59 2009//TBUGZILLA-3_3_1 +/comment.txt.tmpl/1.5/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_3_1 +/confirm-create-dupe.html.tmpl/1.4/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_3_1 +/create-guided.html.tmpl/1.44/Mon Dec 29 21:17:21 2008//TBUGZILLA-3_3_1 +/create.html.tmpl/1.91/Mon Dec 29 00:02:17 2008//TBUGZILLA-3_3_1 +/created.html.tmpl/1.15/Thu Jan 1 19:16:48 2009//TBUGZILLA-3_3_1 +/make-template.html.tmpl/1.10/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_3_1 +/user-message.html.tmpl/1.5/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_3_1 D diff --git a/template/en/default/bug/create/CVS/Tag b/template/en/default/bug/create/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/bug/create/CVS/Tag +++ b/template/en/default/bug/create/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/bug/create/create-guided.html.tmpl b/template/en/default/bug/create/create-guided.html.tmpl index 090d4e99104deafdfa05b39feb07b1ee65793e66..92344286072bdabe118ba2a728123d0b384c4593 100644 --- a/template/en/default/bug/create/create-guided.html.tmpl +++ b/template/en/default/bug/create/create-guided.html.tmpl @@ -260,9 +260,8 @@ function PutDescription() { </td> </tr> - [% op_sys = [ "Windows 98", "Windows NT", "Windows 2000", "Windows XP", - "Mac System 9.x", "MacOS X", - "Linux", "All", "other" ] %] + [% op_sys = [ "Windows 2000", "Windows XP", "Windows Vista", + "Mac OS X", "Linux", "All", "other" ] %] <tr> <td align="right" valign="top"> diff --git a/template/en/default/bug/create/create.html.tmpl b/template/en/default/bug/create/create.html.tmpl index ee819a2aae56bbf0327a7b0edfb6b960989861d1..5b99d38ba9dfcea6ef712f024a8486aa9860abdd 100644 --- a/template/en/default/bug/create/create.html.tmpl +++ b/template/en/default/bug/create/create.html.tmpl @@ -162,6 +162,14 @@ function handleWantsAttachment(wants_attachment) { --> </script> +[% USE Bugzilla %] +[% SET select_fields = {} %] +[% FOREACH field = Bugzilla.get_fields( + { type => constants.FIELD_TYPE_SINGLE_SELECT, custom => 0 }) +%] + [% select_fields.${field.name} = field %] +[% END %] + <form name="Create" id="Create" method="post" action="post_bug.cgi" enctype="multipart/form-data"> <input type="hidden" name="product" value="[% product.name FILTER html %]"> @@ -247,18 +255,21 @@ function handleWantsAttachment(wants_attachment) { </select> </td> - [% sel = { description => 'Severity', name => 'bug_severity' } %] - [% INCLUDE select %] + [% INCLUDE bug/field.html.tmpl + bug = default, field = select_fields.bug_severity, editable = 1, + value = default.bug_severity %] </tr> <tr> - [% sel = { description => 'Platform', name => 'rep_platform' } %] - [% INCLUDE select %] + [% INCLUDE bug/field.html.tmpl + bug = default, field = select_fields.rep_platform, editable = 1, + value = default.rep_platform %] </tr> <tr> - [% sel = { description => 'OS', name => 'op_sys' } %] - [% INCLUDE select %] + [% INCLUDE bug/field.html.tmpl + bug = default, field = select_fields.op_sys, editable = 1, + value = default.op_sys %] </tr> </tbody> @@ -272,12 +283,11 @@ function handleWantsAttachment(wants_attachment) { [% END %] [% IF Param('letsubmitterchoosepriority') %] - [% sel = { description => 'Priority', name => 'priority' } %] - [% INCLUDE select %] + [% INCLUDE bug/field.html.tmpl + bug = default, field = select_fields.priority, editable = 1, + value = default.priority %] [% ELSE %] - <td colspan="2"> - <input type="hidden" name="priority" value="[% default.priority FILTER html %]"> - </td> + <td colspan="2"> </td> [% END %] </tr> </tbody> @@ -451,7 +461,9 @@ function handleWantsAttachment(wants_attachment) { [% NEXT UNLESS field.enter_bug %] [% SET value = ${field.name}.defined ? ${field.name} : "" %] <tr> - [% PROCESS bug/field.html.tmpl editable=1 value_span=3 %] + [% INCLUDE bug/field.html.tmpl + bug = default, field = field, value = value, editable = 1, + value_span = 3 %] </tr> [% END %] @@ -631,7 +643,7 @@ function handleWantsAttachment(wants_attachment) { [% END %] <td> - <select name="[% sel.name %]"> + <select name="[% sel.name %]" id="[% sel.name %]"> [%- FOREACH x = ${sel.name} %] <option value="[% x FILTER html %]" [% " selected=\"selected\"" IF x == default.${sel.name} %]> @@ -642,6 +654,15 @@ function handleWantsAttachment(wants_attachment) { [% END %]</option> [% END %] </select> + + [% IF sel.name == "bug_status" %] + <script type="text/javascript"> + <!-- + [%+ INCLUDE "bug/field-events.js.tmpl" + field = select_fields.bug_status %] + //--> + </script> + [% END %] </td> [% END %] diff --git a/template/en/default/bug/create/created.html.tmpl b/template/en/default/bug/create/created.html.tmpl index 6226fdc6430cdcaae5bf12a464236086bdf7e178..7ec59b12661fc4b11d6d625a56a10743cd92ea30 100644 --- a/template/en/default/bug/create/created.html.tmpl +++ b/template/en/default/bug/create/created.html.tmpl @@ -34,8 +34,11 @@ [% PROCESS global/variables.none.tmpl %] +[% filtered_desc = bug.short_desc FILTER html %] [% PROCESS global/header.html.tmpl - title = "$terms.Bug $id Submitted" + title = "$terms.Bug $id Submitted – $filtered_desc" + header = "$terms.Bug $id Submitted" + subheader = filtered_desc javascript_urls = [ "js/util.js", "js/field.js", "js/yui/yahoo-dom-event.js", "js/yui/calendar.js" ] style_urls = [ "skins/standard/yui/calendar.css", "skins/standard/show_bug.css" ] diff --git a/template/en/default/bug/dependency-tree.html.tmpl b/template/en/default/bug/dependency-tree.html.tmpl index cc49d2fa4ea7a3de9c790b890065d0fb0a46d38b..adabf8ea2f914acd000d4a601cd19405b72b8db6 100644 --- a/template/en/default/bug/dependency-tree.html.tmpl +++ b/template/en/default/bug/dependency-tree.html.tmpl @@ -83,7 +83,7 @@ [% IF ids.size %] ([% IF maxdepth -%]Up to [% maxdepth %] level[% "s" IF maxdepth > 1 %] deep | [% END -%] <a href="buglist.cgi?bug_id=[% ids.join(",") %]">view as [% terms.bug %] list</a> - [% IF user.groups.editbugs && ids.size > 1 %] + [% IF user.in_group('editbugs') && ids.size > 1 %] | <a href="buglist.cgi?bug_id=[% ids.join(",") %]&tweak=1">change several</a> [% END %]) <ul class="tree"> diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl index 82328b6e7e05845c179dd69633063a6fd21bd38f..4cb5017e12b03fe26c78c35424c935acf9505460 100644 --- a/template/en/default/bug/edit.html.tmpl +++ b/template/en/default/bug/edit.html.tmpl @@ -30,6 +30,14 @@ [% PROCESS bug/time.html.tmpl %] +[% USE Bugzilla %] +[% SET select_fields = {} %] +[% FOREACH field = Bugzilla.get_fields( + { type => constants.FIELD_TYPE_SINGLE_SELECT, custom => 0 }) +%] + [% select_fields.${field.name} = field %] +[% END %] + <script type="text/javascript"> <!-- @@ -128,14 +136,6 @@ [% END %] - function updateCommentTagControl(checkbox, form) { - if (checkbox.checked) { - form.comment.className='bz_private'; - } else { - form.comment.className=''; - } - } - //--> </script> @@ -144,7 +144,6 @@ <input type="hidden" name="delta_ts" value="[% bug.delta_ts %]"> <input type="hidden" name="longdesclength" value="[% bug.longdescs.size %]"> <input type="hidden" name="id" value="[% bug.bug_id %]"> - <input type="hidden" name="token" value="[% issue_hash_token([bug.id, bug.delta_ts]) FILTER html %]"> [% PROCESS section_title %] <table> @@ -259,7 +258,7 @@ <input type="submit" name="action" id="action" value="[% Param("move-button-text") %]"> [% END %] </div> - <table class="status" cellspacing="0" cellpadding="0"> + <table class="status"> <tr> <td class="field_label"> <b><a href="page.cgi?id=fields.html#status">Status</a></b>: @@ -405,9 +404,15 @@ <td class="field_label"> <label for="rep_platform" accesskey="h"><b>Platform</b></label>: </td> - <td> - [% PROCESS select selname => "rep_platform" no_td=> 1 %] - [%+ PROCESS select selname => "op_sys" no_td=> 1 %] + <td class="field_value"> + [% INCLUDE bug/field.html.tmpl + bug = bug, field = select_fields.rep_platform, + no_tds = 1, value = bug.rep_platform + editable = bug.check_can_change_field('rep_platform', 0, 1) %] + [%+ INCLUDE bug/field.html.tmpl + bug = bug, field = select_fields.op_sys, + no_tds = 1, value = bug.op_sys + editable = bug.check_can_change_field('op_sys', 0, 1) %] <script type="text/javascript"> assignToDefaultOnChange(['product', 'component']); </script> @@ -460,8 +465,14 @@ <b><a href="page.cgi?id=fields.html#importance"><u>I</u>mportance</a></b></label>: </td> <td> - [% PROCESS select selname => "priority" no_td=>1 %] - [% PROCESS select selname = "bug_severity" no_td=>1 %] + [% INCLUDE bug/field.html.tmpl + bug = bug, field = select_fields.priority, + no_tds = 1, value = bug.priority + editable = bug.check_can_change_field('priority', 0, 1) %] + [%+ INCLUDE bug/field.html.tmpl + bug = bug, field = select_fields.bug_severity, + no_tds = 1, value = bug.bug_severity + editable = bug.check_can_change_field('bug_severity', 0, 1) %] [% IF bug.use_votes %] <span id="votes_container"> [% IF bug.votes %] @@ -690,25 +701,22 @@ [% BLOCK section_restrict_visibility %] [% RETURN UNLESS bug.groups.size %] + <table class="bz_group_visibility_section"> + <tr> + <td class="field_label"> + <label id="bz_restrict_group_visibility_label"><b> Restrict Group Visibility</b>:</label> + </td> + <td> + [% inallgroups = 1 %] + [% inagroup = 0 %] + [% FOREACH group = bug.groups %] + [% SET inallgroups = 0 IF NOT group.ingroup %] + [% SET inagroup = 1 IF group.ison %] - [% inallgroups = 1 %] - [% inagroup = 0 %] - [% emitted_description = 0 %] - - [% FOREACH group = bug.groups %] - [% SET inallgroups = 0 IF NOT group.ingroup %] - [% SET inagroup = 1 IF group.ison %] - - [% NEXT IF group.mandatory %] + [% NEXT IF group.mandatory %] - [% IF NOT emitted_description %] - [% emitted_description = 1 %] - <table> - <tr> - <td class="field_label"> - <label id="bz_restrict_group_visibility_label"><b>Restrict Group Visibility</b>:</label> - </td> - <td> + [% IF NOT emitted_description %] + [% emitted_description = 1 %] <div id="bz_restrict_group_visibility_help"> <b>Only users in all of the selected groups can view this [% terms.bug %]:</b> <br> @@ -716,33 +724,30 @@ (Unchecking all boxes makes this a more public [% terms.bug %].) </small> </div> - [% END %] + [% END %] - [% IF group.ingroup %] - <input type="hidden" name="defined_bit-[% group.bit %]" value="1"> - [% END %] - <input type="checkbox" value="1" name="bit-[% group.bit %]" id="bit-[% group.bit %]" - [% ' checked="checked"' IF group.ison %] - [% ' disabled="disabled"' IF NOT group.ingroup %]> - <label for="bit-[% group.bit %]">[% group.description FILTER html_light %]</label> - <br> - [% END %] + [% IF group.ingroup %] + <input type="hidden" name="defined_bit-[% group.bit %]" value="1"> + [% END %] + <input type="checkbox" value="1" + name="bit-[% group.bit %]" id="bit-[% group.bit %]" + [% " checked=\"checked\"" IF group.ison %] + [% " disabled=\"disabled\"" IF NOT group.ingroup %]> + <label for="bit-[% group.bit %]">[% group.description FILTER html_light %]</label> + <br> + [% END %] - [% IF emitted_description %] - [% IF NOT inallgroups %] - <b>Only members of a group can change the visibility of [% terms.abug %] for that group.</b> - <br> - [% END %] + [% IF NOT inallgroups %] + <b> + Only members of a group can change the visibility of [% terms.abug %] for + that group. + </b> + <br> + [% END %] </td> </tr> - [% "</table>" IF NOT inagroup %] - [% END %] - [% IF inagroup %] - [% IF NOT emitted_description %] - [% emitted_description = 1 %] - <table> - [% END %] + [% IF inagroup %] <tr> <td class="field_label"> <label id="bz_enable_role_visibility_label"><b>Enable Role Visibility</b>:</label> @@ -786,8 +791,8 @@ </div> </td> </tr> - </table> - [% END %] + [% END %] + </table> [% END %] [%############################################################################%] @@ -947,7 +952,6 @@ [% BLOCK section_customfields %] [%# *** Custom Fields *** %] - [% USE Bugzilla %] [% FOREACH field = Bugzilla.active_custom_fields %] <tr> [% PROCESS bug/field.html.tmpl value=bug.${field.name} diff --git a/template/en/default/bug/field-events.js.tmpl b/template/en/default/bug/field-events.js.tmpl new file mode 100644 index 0000000000000000000000000000000000000000..7cdf64687605b724f5fa14c32ba6c97a0bf61ead --- /dev/null +++ b/template/en/default/bug/field-events.js.tmpl @@ -0,0 +1,36 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is the San Jose State + # University Foundation. Portions created by the Initial Developer + # are Copyright (C) 2008 the Initial Developer. All Rights Reserved. + # + # Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# INTERFACE: + # field: a Bugzilla::Field object + #%] + +[% FOREACH controlled_field = field.controls_visibility_of %] + showFieldWhen('[% controlled_field.name FILTER js %]', + '[% field.name FILTER js %]', + '[% controlled_field.visibility_value.name FILTER js %]'); +[% END %] +[% FOREACH legal_value = field.legal_values %] + [% FOREACH controlled_value = legal_value.controlled_values %] + showValueWhen('[% controlled_value.field.name FILTER js %]', + '[% controlled_value.name FILTER js %]', + '[% field.name FILTER js %]', + '[% legal_value.name FILTER js %]'); + [% END %] +[% END %] diff --git a/template/en/default/bug/field.html.tmpl b/template/en/default/bug/field.html.tmpl index 664cbeee48faee310b845adf6517bcd593f20f02..d29aaa305c8491934ddd8ad1c9d0c62de9184106 100644 --- a/template/en/default/bug/field.html.tmpl +++ b/template/en/default/bug/field.html.tmpl @@ -17,6 +17,7 @@ # # Contributor(s): Myk Melez <myk@mozilla.org> # Max Kanat-Alexander <mkanat@bugzilla.org> + # Elliotte Martin <elliotte_martin@yahoo.com> #%] [%# INTERFACE: @@ -27,17 +28,43 @@ # allow_dont_change: display the --do_not_change-- option for select fields. # value_span: A colspan for the table cell containing # the field value. + # no_tds: boolean; if true, don't display the label <th> or the + # wrapping <td> for the field. + # bug (optional): The current Bugzilla::Bug being displayed, or a hash + # with default field values being displayed on a page. #%] -<th class="field_label"> - [% IF editable %] - <label for="[% field.name FILTER html %]"> +[% SET hidden = 0 %] +[% IF field.visibility_field.defined %] + [% IF !bug.${field.visibility_field.name} + .contains(field.visibility_value.name) + %] + [% SET hidden = 1 %] [% END %] - [% field_descs.${field.name} FILTER html %]: - [% '</label>' IF editable %] -</th> +[% END %] + +[% IF NOT no_tds %] + <th class="field_label [% ' bz_hidden_field' IF hidden %]" + id="field_label_[% field.name FILTER html %]"> + [% IF editable %] + <label for="[% field.name FILTER html %]"> + [% END %] + [% IF !field.custom %] + <a href="page.cgi?id=fields.html#[% field.name FILTER url_quote %]"> + [% END -%] + [% field_descs.${field.name} FILTER html %]: + [%- IF !field.custom %] + </a> + [% END %] + [% '</label>' IF editable %] + </th> +[% END %] -<td class="field_value" [% "colspan=\"$value_span\"" FILTER none IF value_span %]> +[% IF NOT no_tds %] +<td class="field_value [% ' bz_hidden_field' IF hidden %]" + id="field_container_[% field.name FILTER html %]" + [% " colspan=\"$value_span\"" FILTER none IF value_span %]> +[% END %] [% IF editable %] [% SWITCH field.type %] [% CASE constants.FIELD_TYPE_FREETEXT %] @@ -61,6 +88,25 @@ <script type="text/javascript"> createCalendar('[% field.name FILTER js %]') </script> + [% CASE constants.FIELD_TYPE_BUG_ID %] + <span id="[% field.name FILTER html %]_input_area"> + <input name="[% field.name FILTER html %]" id="[% field.name FILTER html %]" + value="[% value FILTER html %]" size="7"> + </span> + + [% IF bug.${field.name} %] + [% bug.${field.name} FILTER bug_link(bug.${field.name}) FILTER none %] + [% END %] + <span id="[% field.name FILTER html %]_edit_container" class="edit_me bz_default_hidden"> + (<a href="#" id="[% field.name FILTER html %]_edit_action">edit</a>) + </span> + <script type="text/javascript"> + hideEditableField('[% field.name FILTER js %]_edit_container', + '[% field.name FILTER js %]_input_area', + '[% field.name FILTER js %]_edit_action', + '[% field.name FILTER js %]', + "[% bug.${field.name} FILTER js %]"); + </script> [% CASE [ constants.FIELD_TYPE_SINGLE_SELECT constants.FIELD_TYPE_MULTI_SELECT ] %] <select id="[% field.name FILTER html %]" @@ -80,9 +126,20 @@ </option> [% END %] [% FOREACH legal_value = field.legal_values %] - <option value="[% legal_value FILTER html %]" - [%- " selected=\"selected\"" IF value.contains(legal_value).size %]> - [%- legal_value FILTER html %]</option> + [% SET control_value = legal_value.visibility_value %] + [% SET control_field = field.value_field %] + <option value="[% legal_value.name FILTER html %]" + [%# We always show selected values, even if they should be + # hidden %] + [% IF value.contains(legal_value.name).size %] + selected="selected" + [% ELSIF control_field && control_value + && !bug.${control_field.name}.contains(control_value.name) + %] + class="bz_hidden_option" disabled="disabled" + [% END %]> + [%- legal_value.name FILTER html -%] + </option> [% END %] </select> [%# When you pass an empty multi-select in the web interface, @@ -95,6 +152,14 @@ [% IF field.type == constants.FIELD_TYPE_MULTI_SELECT %] <input type="hidden" name="defined_[% field.name FILTER html %]"> [% END %] + + <script type="text/javascript"> + <!-- + initHidingOptionsForIE('[% field.name FILTER js %]'); + [%+ INCLUDE "bug/field-events.js.tmpl" field = field %] + //--> + </script> + [% CASE constants.FIELD_TYPE_TEXTAREA %] [% INCLUDE global/textarea.html.tmpl id = field.name name = field.name minrows = 4 maxrows = 8 @@ -103,7 +168,11 @@ [% ELSIF field.type == constants.FIELD_TYPE_TEXTAREA %] <div class="uneditable_textarea">[% value FILTER wrap_comment(60) FILTER html %]</div> +[% ELSIF field.type == constants.FIELD_TYPE_BUG_ID %] + [% IF bug.${field.name} %] + [% bug.${field.name} FILTER bug_link(bug.${field.name}) FILTER none %] + [% END %] [% ELSE %] [% value.join(', ') FILTER html %] [% END %] -</td> +[% '</td>' IF NOT no_tds %] diff --git a/template/en/default/bug/knob.html.tmpl b/template/en/default/bug/knob.html.tmpl index 4cf6031e7e74dc25b865407ad91ca5ddda432236..f08b9e2b14354b8e251e49f7a8f51dd2c3cb1d63 100644 --- a/template/en/default/bug/knob.html.tmpl +++ b/template/en/default/bug/knob.html.tmpl @@ -120,6 +120,9 @@ YAHOO.util.Event.addListener( window, 'load', showHideStatusItems, ['[% "is_duplicate" IF bug.dup_id %]', '[% bug.bug_status FILTER js %]'] ); + + [% INCLUDE "bug/field-events.js.tmpl" field = select_fields.bug_status %] + [% INCLUDE "bug/field-events.js.tmpl" field = select_fields.resolution %] </script> [%# Common actions %] diff --git a/template/en/default/bug/process/CVS/Entries b/template/en/default/bug/process/CVS/Entries index 47054ee3d216ac72393d54aff7ae20176487088e..de5da073f659c16d8b9d5c47b831e5dbdd9ab764 100644 --- a/template/en/default/bug/process/CVS/Entries +++ b/template/en/default/bug/process/CVS/Entries @@ -1,7 +1,7 @@ -/bugmail.html.tmpl/1.8/Mon Aug 20 18:25:01 2007//TBUGZILLA-3_2_1 -/confirm-duplicate.html.tmpl/1.12/Mon Aug 20 18:25:01 2007//TBUGZILLA-3_2_1 -/header.html.tmpl/1.10.2.1/Wed Sep 17 23:55:54 2008//TBUGZILLA-3_2_1 -/midair.html.tmpl/1.22/Fri Feb 8 23:19:21 2008//TBUGZILLA-3_2_1 -/results.html.tmpl/1.12/Mon Aug 20 18:25:01 2007//TBUGZILLA-3_2_1 -/verify-new-product.html.tmpl/1.26.2.1/Fri Oct 3 01:55:04 2008//TBUGZILLA-3_2_1 +/bugmail.html.tmpl/1.8/Mon Aug 20 18:25:01 2007//TBUGZILLA-3_3_1 +/confirm-duplicate.html.tmpl/1.12/Mon Aug 20 18:25:01 2007//TBUGZILLA-3_3_1 +/header.html.tmpl/1.11/Wed Sep 17 23:49:07 2008//TBUGZILLA-3_3_1 +/midair.html.tmpl/1.23/Thu Dec 18 15:42:45 2008//TBUGZILLA-3_3_1 +/results.html.tmpl/1.12/Mon Aug 20 18:25:01 2007//TBUGZILLA-3_3_1 +/verify-new-product.html.tmpl/1.27/Fri Oct 3 01:53:09 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/bug/process/CVS/Tag b/template/en/default/bug/process/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/bug/process/CVS/Tag +++ b/template/en/default/bug/process/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/bug/process/midair.html.tmpl b/template/en/default/bug/process/midair.html.tmpl index d7e980e8c4d726aa0ee49e8a29cbc47af606efc9..ed3be74d3b1e287dfc613cd32b87542155ef394e 100644 --- a/template/en/default/bug/process/midair.html.tmpl +++ b/template/en/default/bug/process/midair.html.tmpl @@ -88,6 +88,17 @@ You have the following choices: [% ", except for the added comment(s)" IF comments.size > start_at %]. </form> </li> + [% IF cgi.param("comment") %] + <li> + <form method="post" action="process_bug.cgi"> + <input type="hidden" name="id" value="[% cgi.param("id") FILTER html %]"> + <input type="hidden" name="delta_ts" value="[% bug.delta_ts FILTER html %]"> + <input type="hidden" name="comment" value="[% cgi.param("comment") FILTER html %]"> + <input type="hidden" name="commentprivacy" value="[% cgi.param("commentprivacy") FILTER html %]"> + <input type="submit" id="process_comment" value="Submit only my new comment"> + </form> + </li> + [% END %] <li> Throw away my changes, and [%+ "revisit $terms.bug $bug.id" FILTER bug_link(bug.id) FILTER none %] diff --git a/template/en/default/bug/summarize-time.html.tmpl b/template/en/default/bug/summarize-time.html.tmpl index b8bd0737e846e10ef911b05a5042fb100a81d61b..14ae68da264b5ab6d5dde470dca8aa04676c4c13 100644 --- a/template/en/default/bug/summarize-time.html.tmpl +++ b/template/en/default/bug/summarize-time.html.tmpl @@ -14,8 +14,6 @@ # Frédéric Buclin <LpSolit@gmail.com> #%] -[% USE date %] - [% PROCESS "global/field-descs.none.tmpl" %] [% title = "Time Summary " %] diff --git a/template/en/default/bug/votes/CVS/Entries b/template/en/default/bug/votes/CVS/Entries index 6b64212123b05dddde09c762840e033e698ddc5d..b4c67dca5ba40c9253a193e512bb6257f9cbb0e4 100644 --- a/template/en/default/bug/votes/CVS/Entries +++ b/template/en/default/bug/votes/CVS/Entries @@ -1,4 +1,4 @@ -/delete-all.html.tmpl/1.8/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_2_1 -/list-for-bug.html.tmpl/1.12/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_2_1 -/list-for-user.html.tmpl/1.28/Sun Feb 3 11:37:23 2008//TBUGZILLA-3_2_1 +/delete-all.html.tmpl/1.8/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_3_1 +/list-for-bug.html.tmpl/1.12/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_3_1 +/list-for-user.html.tmpl/1.28/Sun Feb 3 11:37:23 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/bug/votes/CVS/Tag b/template/en/default/bug/votes/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/bug/votes/CVS/Tag +++ b/template/en/default/bug/votes/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/config.js.tmpl b/template/en/default/config.js.tmpl index 66617007dfbd0f25ac040f2f1d83445c2fd00181..0d6358312ca1599a489f8436a542d4e1671c5684 100644 --- a/template/en/default/config.js.tmpl +++ b/template/en/default/config.js.tmpl @@ -61,7 +61,7 @@ var severity = [ [% FOREACH x = severity %]'[% x FILTER js %]', [% END %] ] // ============= [% FOREACH cf = custom_fields %] -var [% cf.name FILTER js %] = [ [% FOREACH x = cf.legal_values %]'[% x FILTER js %]', [% END %] ]; +var [% cf.name FILTER js %] = [ [% FOREACH x = cf.legal_values %]'[% x.name FILTER js %]', [% END %] ]; [% END %] diff --git a/template/en/default/config.rdf.tmpl b/template/en/default/config.rdf.tmpl index 2850a5aed709ed216bdd360b7993e9e7e7077900..84465ddd5eda21bf40b858a7b227743e1d6b806e 100644 --- a/template/en/default/config.rdf.tmpl +++ b/template/en/default/config.rdf.tmpl @@ -107,7 +107,7 @@ <bz:[% cf.name FILTER html %]> <Seq> [% FOREACH item = cf.legal_values %] - <li>[% item FILTER html %]</li> + <li>[% item.name FILTER html %]</li> [% END %] </Seq> </bz:[% cf.name FILTER html %]> @@ -169,7 +169,7 @@ [% FOREACH flag_type = flag_types %] [% NEXT UNLESS flag_type.is_active %] [% all_visible_flag_types.${flag_type.id} = flag_type %] - <li resource="[% urlbase FILTER xml %]flags.cgi?id=[% flag_type.id FILTER url_quote + <li resource="[% urlbase FILTER xml %]flag.cgi?id=[% flag_type.id FILTER url_quote %]&name=[% flag_type.name FILTER url_quote %]" /> [% END %] </Seq> diff --git a/template/en/default/email/CVS/Entries b/template/en/default/email/CVS/Entries index 8b3090f3149440142897d2bb00cd1a211df48518..79e97cc18fb9858face571947747767f0b40a3ea 100644 --- a/template/en/default/email/CVS/Entries +++ b/template/en/default/email/CVS/Entries @@ -1,6 +1,6 @@ -/newchangedmail.txt.tmpl/1.11/Tue Sep 4 22:01:54 2007//TBUGZILLA-3_2_1 -/sanitycheck.txt.tmpl/1.3/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_2_1 -/sudo.txt.tmpl/1.5/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_2_1 -/votes-removed.txt.tmpl/1.5/Wed Apr 2 17:42:29 2008//TBUGZILLA-3_2_1 -/whine.txt.tmpl/1.6.2.1/Thu Aug 7 08:37:13 2008//TBUGZILLA-3_2_1 +/newchangedmail.txt.tmpl/1.12/Wed Sep 17 17:44:10 2008//TBUGZILLA-3_3_1 +/sanitycheck.txt.tmpl/1.3/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_3_1 +/sudo.txt.tmpl/1.5/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_3_1 +/votes-removed.txt.tmpl/1.5/Wed Apr 2 17:42:29 2008//TBUGZILLA-3_3_1 +/whine.txt.tmpl/1.7/Wed Aug 6 12:06:43 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/email/CVS/Tag b/template/en/default/email/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/email/CVS/Tag +++ b/template/en/default/email/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/email/newchangedmail.txt.tmpl b/template/en/default/email/newchangedmail.txt.tmpl index 7c0e30a271a198bb4204a22135dd02777684e6e6..613e174f002888e80c7e5bde811035bfab68fd87 100644 --- a/template/en/default/email/newchangedmail.txt.tmpl +++ b/template/en/default/email/newchangedmail.txt.tmpl @@ -23,7 +23,7 @@ From: [% Param('mailfrom') %] To: [% to %] Subject: [[% terms.Bug %] [%+ bugid %]] [% 'New: ' IF isnew %][%+ summary %] X-Bugzilla-Reason: [% reasonsheader %] -X-Bugzilla-Type: newchanged +X-Bugzilla-Type: [% isnew ? 'new' : 'changed' %] X-Bugzilla-Watch-Reason: [% reasonswatchheader %] [% IF Param('useclassification') %] X-Bugzilla-Classification: [% classification %] diff --git a/template/en/default/filterexceptions.pl b/template/en/default/filterexceptions.pl index 6ef3e5ea23fcdeec64074d8989a8d51ee3d33ada..ab9ff00e9576b517bf8e3f566aaa03330637bba4 100644 --- a/template/en/default/filterexceptions.pl +++ b/template/en/default/filterexceptions.pl @@ -60,10 +60,7 @@ 'search/boolean-charts.html.tmpl' => [ '"field${chartnum}-${rownum}-${colnum}"', '"value${chartnum}-${rownum}-${colnum}"', - '"type${chartnum}-${rownum}-${colnum}"', 'field.name', - 'type.name', - 'type.description', '"${chartnum}-${rownum}-${newor}"', '"${chartnum}-${newand}-0"', 'newchart', @@ -71,7 +68,6 @@ ], 'search/form.html.tmpl' => [ - 'qv.value', 'qv.name', 'qv.description', 'field.name', @@ -147,13 +143,6 @@ 'cumulate', ], -'reports/duplicates.rdf.tmpl' => [ - 'template_version', - 'bug.id', - 'bug.count', - 'bug.delta', -], - 'reports/chart.html.tmpl' => [ 'width', 'height', @@ -184,10 +173,6 @@ 'default.series_id', ], -'list/change-columns.html.tmpl' => [ - 'column', -], - 'list/edit-multiple.html.tmpl' => [ 'group.id', 'menuname', @@ -433,8 +418,6 @@ 'bugid', 'oldid', 'newid', - 'style', - 'javascript', 'patch.id', ], @@ -459,6 +442,11 @@ 'link_uri' ], +'admin/custom_fields/cf-js.js.tmpl' => [ + 'constants.FIELD_TYPE_SINGLE_SELECT', + 'constants.FIELD_TYPE_MULTI_SELECT', +], + 'admin/params/common.html.tmpl' => [ 'sortlist_separator', ], @@ -468,22 +456,17 @@ ], 'admin/products/groupcontrol/edit.html.tmpl' => [ - 'group.bugcount', - 'group.id', - 'const.CONTROLMAPNA', - 'const.CONTROLMAPSHOWN', - 'const.CONTROLMAPDEFAULT', - 'const.CONTROLMAPMANDATORY', + 'group.id', + 'constants.CONTROLMAPNA', + 'constants.CONTROLMAPSHOWN', + 'constants.CONTROLMAPDEFAULT', + 'constants.CONTROLMAPMANDATORY', ], 'admin/products/list.html.tmpl' => [ 'classification_url_part', ], -'admin/products/confirm-delete.html.tmpl' => [ - 'classification_url_part', -], - 'admin/products/footer.html.tmpl' => [ 'classification_url_part', 'classification_text', diff --git a/template/en/default/flag/CVS/Entries b/template/en/default/flag/CVS/Entries index 1133aca412346a619cf4dd03b97f10421d078e95..88448ccf34ee02bc8c0b89962adfa0679d04fe45 100644 --- a/template/en/default/flag/CVS/Entries +++ b/template/en/default/flag/CVS/Entries @@ -1,2 +1,2 @@ -/list.html.tmpl/1.32/Thu May 15 17:37:40 2008//TBUGZILLA-3_2_1 +/list.html.tmpl/1.33/Fri May 30 07:29:26 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/flag/CVS/Tag b/template/en/default/flag/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/flag/CVS/Tag +++ b/template/en/default/flag/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/flag/list.html.tmpl b/template/en/default/flag/list.html.tmpl index 8aef809e0d53d1b21a47b107b0915b1060458282..32a44a605d93125c6521e48dd1fc60afbc4a2175 100644 --- a/template/en/default/flag/list.html.tmpl +++ b/template/en/default/flag/list.html.tmpl @@ -68,7 +68,7 @@ } } } - window.onload = disableRequesteeFields; + YAHOO.util.Event.addListener(window, "load", disableRequesteeFields); // --> </script> diff --git a/template/en/default/global/CVS/Entries b/template/en/default/global/CVS/Entries index 114753cfb0fd7f87d531fc415d914781a1e2dec5..f6ef8c06c329d946733fa537bf2ee468f8f72e17 100644 --- a/template/en/default/global/CVS/Entries +++ b/template/en/default/global/CVS/Entries @@ -1,29 +1,28 @@ -/banner.html.tmpl/1.11/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/choose-classification.html.tmpl/1.10/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/choose-product.html.tmpl/1.18/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/code-error.html.tmpl/1.105/Thu Apr 10 16:33:54 2008//TBUGZILLA-3_2_1 -/common-links.html.tmpl/1.14.2.3/Wed Nov 5 17:48:35 2008//TBUGZILLA-3_2_1 -/confirm-action.html.tmpl/1.1.2.2/Mon Feb 2 18:42:08 2009//TBUGZILLA-3_2_1 -/confirm-user-match.html.tmpl/1.19/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/docslinks.html.tmpl/1.3/Thu Apr 3 19:05:50 2008//TBUGZILLA-3_2_1 -/field-descs.none.tmpl/1.25.2.2/Sun Sep 21 18:42:45 2008//TBUGZILLA-3_2_1 -/footer.html.tmpl/1.14/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/header.html.tmpl/1.56.2.3/Thu Oct 2 17:11:18 2008//TBUGZILLA-3_2_1 -/help.html.tmpl/1.6/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/hidden-fields.html.tmpl/1.11/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/initialize.none.tmpl/1.2/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/js-products.html.tmpl/1.3/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/message.html.tmpl/1.8/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/message.txt.tmpl/1.4/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/messages.html.tmpl/1.72.2.1/Mon Dec 29 21:19:20 2008//TBUGZILLA-3_2_1 -/per-bug-queries.html.tmpl/1.13/Thu Apr 3 19:05:50 2008//TBUGZILLA-3_2_1 -/select-menu.html.tmpl/1.6/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/setting-descs.none.tmpl/1.14/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/site-navigation.html.tmpl/1.25/Wed Feb 6 13:34:51 2008//TBUGZILLA-3_2_1 -/tabs.html.tmpl/1.4/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/textarea.html.tmpl/1.3/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/useful-links.html.tmpl/1.59/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_2_1 -/user-error.html.tmpl/1.249.2.3/Mon Feb 2 18:50:23 2009//TBUGZILLA-3_2_1 -/userselect.html.tmpl/1.9.2.1/Mon Dec 29 00:05:14 2008//TBUGZILLA-3_2_1 -/variables.none.tmpl/1.7/Wed Feb 6 21:02:21 2008//TBUGZILLA-3_2_1 +/banner.html.tmpl/1.11/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/choose-classification.html.tmpl/1.11/Wed Dec 10 18:43:36 2008//TBUGZILLA-3_3_1 +/choose-product.html.tmpl/1.18/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/code-error.html.tmpl/1.108/Wed Dec 24 03:43:49 2008//TBUGZILLA-3_3_1 +/common-links.html.tmpl/1.18/Wed Nov 5 17:45:16 2008//TBUGZILLA-3_3_1 +/confirm-user-match.html.tmpl/1.19/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/docslinks.html.tmpl/1.3/Thu Apr 3 19:05:50 2008//TBUGZILLA-3_3_1 +/field-descs.none.tmpl/1.30/Sat Dec 6 19:44:46 2008//TBUGZILLA-3_3_1 +/footer.html.tmpl/1.14/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/header.html.tmpl/1.59/Thu Oct 2 17:08:04 2008//TBUGZILLA-3_3_1 +/help.html.tmpl/1.6/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/hidden-fields.html.tmpl/1.11/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/initialize.none.tmpl/1.2/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/js-products.html.tmpl/1.3/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/message.html.tmpl/1.8/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/message.txt.tmpl/1.4/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/messages.html.tmpl/1.83/Fri Jan 2 14:12:32 2009//TBUGZILLA-3_3_1 +/per-bug-queries.html.tmpl/1.13/Thu Apr 3 19:05:50 2008//TBUGZILLA-3_3_1 +/select-menu.html.tmpl/1.6/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/setting-descs.none.tmpl/1.15/Wed Aug 27 02:32:21 2008//TBUGZILLA-3_3_1 +/site-navigation.html.tmpl/1.26/Fri Aug 8 01:27:15 2008//TBUGZILLA-3_3_1 +/tabs.html.tmpl/1.4/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/textarea.html.tmpl/1.3/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/useful-links.html.tmpl/1.59/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1 +/user-error.html.tmpl/1.269/Sun Jan 4 23:15:31 2009//TBUGZILLA-3_3_1 +/userselect.html.tmpl/1.10/Mon Dec 29 00:02:20 2008//TBUGZILLA-3_3_1 +/variables.none.tmpl/1.7/Wed Feb 6 21:02:21 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/global/CVS/Tag b/template/en/default/global/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/global/CVS/Tag +++ b/template/en/default/global/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/global/choose-classification.html.tmpl b/template/en/default/global/choose-classification.html.tmpl index 6a37719124264bae7b929dbc0b104c7bb0794a7e..9342d814aca26022dcd79d91a99e00a1f6b72c75 100644 --- a/template/en/default/global/choose-classification.html.tmpl +++ b/template/en/default/global/choose-classification.html.tmpl @@ -29,8 +29,6 @@ [% PROCESS global/header.html.tmpl %] <table> - -[% IF Param('showallproducts') %] <tr> <th align="right"> <a href="[% target FILTER url_quote %]?classification=__all @@ -44,7 +42,6 @@ <tr> <th colspan="2"> </th> </tr> -[% END %] [% FOREACH class = classifications %] <tr> diff --git a/template/en/default/global/code-error.html.tmpl b/template/en/default/global/code-error.html.tmpl index 80645a85113ed8c24e6fb7c8252c8addd7a33354..37e052f81d1fc17b6426950c84833b55d5485ada 100644 --- a/template/en/default/global/code-error.html.tmpl +++ b/template/en/default/global/code-error.html.tmpl @@ -145,6 +145,12 @@ in the database for '[% username FILTER html %]', but your account source says that '[% extern_user FILTER html %]' has that ID. + [% ELSIF error == "field_choice_must_use_type" %] + When you call a class method on <code>Bugzilla::Field::Choice</code>, + you must call <code>Bugzilla::Field::Choice->type('some_field')</code> + to generate the right class (you can't call class methods directly + on Bugzilla::Field::Choice). + [% ELSIF error == "field_type_mismatch" %] Cannot seem to handle <code>[% field FILTER html %]</code> and <code>[% type FILTER html %]</code> together. @@ -271,6 +277,21 @@ given. [% END %] + [% ELSIF error == "jobqueue_insert_failed" %] + [% title = "Job Queue Failure" %] + Inserting a <code>[% job FILTER html %]</code> job into the Job + Queue failed with the following error: [% errmsg FILTER html %] + + [% ELSIF error == "jobqueue_not_configured" %] + Using the job queue system requires that certain Perl modules + be installed. Run <code>checksetup.pl</code> to see what modules + you are missing. + + [% ELSIF error == "jobqueue_no_job_mapping" %] + <code>Bugzilla::JobQueue</code> has not been configured to handle + the job "[% job FILTER html %]". You need to add this job type + to the <code>JOB_MAP</code> constant in <code>Bugzilla::JobQueue</code>. + [% ELSIF error == "ldap_bind_failed" %] Failed to bind to the LDAP server. The error message was: <code>[% errstr FILTER html %]</code> @@ -324,6 +345,16 @@ a <code>[% param FILTER html %]</code> argument, and that argument was not set. + [% ELSIF error == "product_empty_group_controls" %] + [% title = "Missing Group Controls" %] + New settings must be defined to edit group controls for + the [% group.name FILTER html %] group. + + [% ELSIF error == "product_illegal_group_control" %] + [% title = "Illegal Group Control" %] + '[% value FILTER html %]' is not a legal value for + the '[% field FILTER html %]' field. + [% ELSIF error == "protection_violation" %] The function <code>[% function FILTER html %]</code> was called diff --git a/template/en/default/global/common-links.html.tmpl b/template/en/default/global/common-links.html.tmpl index 8b4c284333ea9b13678cdbf070b803f3a2f117b6..3fce543d11e6128bd5396d081536f8605b934528 100644 --- a/template/en/default/global/common-links.html.tmpl +++ b/template/en/default/global/common-links.html.tmpl @@ -56,10 +56,10 @@ [% IF user.login %] <li><span class="separator">| </span><a href="userprefs.cgi">Preferences</a></li> - [% IF user.groups.tweakparams || user.groups.editusers || user.can_bless - || (Param('useclassification') && user.groups.editclassifications) - || user.groups.editcomponents || user.groups.admin || user.groups.creategroups - || user.groups.editkeywords || user.groups.bz_canusewhines + [% IF user.in_group('tweakparams') || user.in_group('editusers') || user.can_bless + || (Param('useclassification') && user.in_group('editclassifications')) + || user.in_group('editcomponents') || user.in_group('admin') || user.in_group('creategroups') + || user.in_group('editkeywords') || user.in_group('bz_canusewhines') || user.get_products_by_permission("editcomponents").size %] <li><span class="separator">| </span><a href="admin.cgi">Administration</a></li> [% END %] diff --git a/template/en/default/global/confirm-action.html.tmpl b/template/en/default/global/confirm-action.html.tmpl deleted file mode 100644 index e57a83c281c209ec1c8c6c0f9d7b9184c37162df..0000000000000000000000000000000000000000 --- a/template/en/default/global/confirm-action.html.tmpl +++ /dev/null @@ -1,63 +0,0 @@ -[%# The contents of this file are subject to the Mozilla Public - # License Version 1.1 (the "License"); you may not use this file - # except in compliance with the License. You may obtain a copy of - # the License at http://www.mozilla.org/MPL/ - # - # Software distributed under the License is distributed on an "AS - # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - # implied. See the License for the specific language governing - # rights and limitations under the License. - # - # The Original Code is the Bugzilla Bug Tracking System. - # - # The Initial Developer of the Original Code is Frédéric Buclin. - # Portions created by Frédéric Buclin are Copyright (C) 2008 - # Frédéric Buclin. All Rights Reserved. - # - # Contributor(s): Frédéric Buclin <LpSolit@gmail.com> - #%] - -[%# INTERFACE: - # script_name: the script generating this warning. - # token: a valid token for the current action. - # reason: reason of the failure. - #%] - -[% PROCESS global/header.html.tmpl title = "Suspicious Action" - style_urls = ['skins/standard/global.css'] %] - -<div class="throw_error"> - [% IF reason == "expired_token" %] - Your changes have been rejected because you exceeded the time limit - of [% constants.MAX_TOKEN_AGE FILTER html %] days before submitting your - changes to [% script_name FILTER html %]. Your page may have been displayed - for too long, or old changes have been resubmitted by accident. - - [% ELSIF reason == "missing_token" %] - It looks like you didn't come from the right page. - One reason could be that you entered the URL in the address bar of your - web browser directly, which should be safe. Another reason could be that - you clicked on a URL which redirected you here <b>without your consent</b>. - - [% ELSIF reason == "invalid_token" %] - You submitted changes to [% script_name FILTER html %] with an invalid - token, which may indicate that someone tried to abuse you, for instance - by making you click on a URL which redirected you here <b>without your - consent</b>. - [% END %] - <p> - Are you sure you want to commit these changes? - </p> -</div> - -<form name="check" id="check" method="post" action="[% script_name FILTER html %]"> - [% PROCESS "global/hidden-fields.html.tmpl" - exclude="^(Bugzilla_login|Bugzilla_password|token)$" %] - <input type="hidden" name="token" value="[% token FILTER html %]"> - <input type="submit" id="confirm" value="Yes, Confirm Changes"> -</form> - -<p><a href="index.cgi">No, throw away these changes</a> (you will be redirected -to the home page).</p> - -[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/global/field-descs.none.tmpl b/template/en/default/global/field-descs.none.tmpl index 344dc5528741621ffbef54aac1a10d9962d099f3..324edb592880b3f2ebdb12510e184c1a21d3e03d 100644 --- a/template/en/default/global/field-descs.none.tmpl +++ b/template/en/default/global/field-descs.none.tmpl @@ -16,6 +16,7 @@ # Rights Reserved. # # Contributor(s): Gervase Markham <gerv@gerv.net> + # Elliotte Martin <elliotte_martin@yahoo.com> #%] [%# Remember to PROCESS rather than INCLUDE this template. %] @@ -98,12 +99,41 @@ [% END %] [% END %] +[% SET search_descs = { + "noop" => "---", + "equals" => "is equal to", + "notequals" => "is not equal to", + "anyexact" => "is equal to any of the strings", + "substring" => "contains the string", + "casesubstring" => "contains the string (exact case)", + "notsubstring" => "does not contain the string", + "anywordssubstr" => "contains any of the strings", + "allwordssubstr" => "contains all of the strings", + "nowordssubstr" => "contains none of the strings", + "regexp" => "matches regular expression", + "notregexp" => "does not match regular expression", + "lessthan" => "is less than", + "lessthaneq" => "is less than or equal to", + "greaterthan" => "is greater than", + "greaterthaneq" => "is greater than or equal to", + "anywords" => "contains any of the words", + "allwords" => "contains all of the words", + "nowords" => "contains none of the words", + "changedbefore" => "changed before", + "changedafter" => "changed after", + "changedfrom" => "changed from", + "changedto" => "changed to", + "changedby" => "changed by", + "matches" => "matches", +} %] + [% field_types = { ${constants.FIELD_TYPE_UNKNOWN} => "Unknown Type", ${constants.FIELD_TYPE_FREETEXT} => "Free Text", ${constants.FIELD_TYPE_SINGLE_SELECT} => "Drop Down", ${constants.FIELD_TYPE_MULTI_SELECT} => "Multiple-Selection Box", ${constants.FIELD_TYPE_TEXTAREA} => "Large Text Box", ${constants.FIELD_TYPE_DATETIME} => "Date/Time", + ${constants.FIELD_TYPE_BUG_ID} => "Bug ID", } %] [% status_descs = { "UNCONFIRMED" => "UNCONFIRMED", diff --git a/template/en/default/global/messages.html.tmpl b/template/en/default/global/messages.html.tmpl index 4889b9ce4f38cfe493e7656fb87e3fa7e34a60f5..c8e4dd225a78a6120568caca77cede70c59ffc10 100644 --- a/template/en/default/global/messages.html.tmpl +++ b/template/en/default/global/messages.html.tmpl @@ -114,6 +114,10 @@ The user account [% otheruser.login FILTER html %] has been deleted successfully. + [% ELSIF message_tag == "account_disabled" %] + The user account [% account FILTER html %] is disabled, so you + cannot change its password. + [% ELSIF message_tag == "attachment_creation_failed" %] The [% terms.bug %] was created successfully, but attachment creation failed. @@ -129,6 +133,9 @@ [% ELSIF message_tag == "bug_has_duplicate" %] *** [% terms.Bug %] [%+ dupe FILTER html %] has been marked as a duplicate of this [% terms.bug %]. *** + [% ELSIF message_tag == "bug_group_description" %] + Access to [% terms.bugs %] in the [% product.name FILTER html %] product + [% ELSIF message_tag == "bug_moved_to" %] <p>[% terms.Bug %] moved to [% Param("move-to-url") FILTER html %].</p> <p>If the move succeeded, [% login FILTER html %] will receive a mail @@ -179,26 +186,30 @@ [% ELSIF message_tag == "classification_deleted" %] [% title = "Classification Deleted" %] - The <em>[% classification FILTER html %]</em> classification has been deleted. + The <em>[% classification.name FILTER html %]</em> classification has been deleted. [% ELSIF message_tag == "classification_updated" %] - [% IF updated_classification || updated_description || updated_sortkey %] - [% title = "Classification Updated" %] - Changes to the <em>[% classification FILTER html %]</em> classification + [% title = "Classification Updated" %] + [% IF changes.keys.size %] + Changes to the <em>[% classification.name FILTER html %]</em> classification have been saved: <ul> - [% IF updated_classification %] - <li>Classification name updated</li> + [% IF changes.name.defined %] + <li>Name updated to '[% classification.name FILTER html %]'</li> [% END %] - [% IF updated_description %] - <li>Description updated</li> + [% IF changes.description.defined %] + [% IF classification.description %] + <li>Description updated to '[% classification.description FILTER html %]'</li> + [% ELSE %] + <li>Description removed</li> + [% END %] [% END %] - [% IF updated_sortkey %] - <li>Sortkey updated</li> + [% IF changes.sortkey.defined %] + <li>Sortkey updated to '[% classification.sortkey FILTER html %]'</li> [% END %] </ul> [% ELSE %] - No changes made to <em>[% classification FILTER html %]</em>. + No changes made to <em>[% classification.name FILTER html %]</em>. [% END %] [% ELSIF message_tag == "component_created" %] @@ -291,40 +302,54 @@ [% ELSIF message_tag == "field_value_created" %] [% title = "New Field Value Created" %] - The value <em>[% value FILTER html %]</em> has been added as a valid choice - for the <em>[% field.description FILTER html %]</em> + The value <em>[% value.name FILTER html %]</em> has been added as a + valid choice for the <em>[% field.description FILTER html %]</em> (<em>[% field.name FILTER html %]</em>) field. [% IF field.name == "bug_status" %] - You should now visit the <a href="editworkflow.cgi">status workflow page</a> - to include your new [% terms.bug %] status. + You should now visit the <a href="editworkflow.cgi">status workflow + page</a> to include your new [% terms.bug %] status. [% END %] [% ELSIF message_tag == "field_value_deleted" %] [% title = "Field Value Deleted" %] - The value <em>[% value FILTER html %]</em> of the + The value <em>[% value.name FILTER html %]</em> of the <em>[% field.description FILTER html %]</em> (<em>[% field.name FILTER html %]</em>) field has been deleted. [% ELSIF message_tag == "field_value_updated" %] [% title = "Field Value Updated" %] - [% IF updated_value || updated_sortkey %] - Changes to the <em>[% value FILTER html %]</em> value of the + [% IF changes.keys.size %] + The <em>[% value_old FILTER html %]</em> value of the <em>[% field.description FILTER html %]</em> - (<em>[% field.name FILTER html %]</em>) field have been changed: + (<em>[% field.name FILTER html %]</em>) field has been changed: <ul> - [% IF updated_value %] - <li>Field value updated to <em>[% value FILTER html %]</em></li> - [% IF default_value_updated %] - (note that this value is the default for this field. All - references to the default value will now point to this new value) - [% END %] + [% IF changes.value %] + <li>Field value updated to + <em>[% changes.value.1 FILTER html %]</em>. + [% IF value.is_default %] + (Note that this value is the default for this field. All + references to the default value will now point to this new value.) + [% END %] + </li> + [% END %] + [% IF changes.sortkey %] + <li>Sortkey updated to + <em>[% changes.sortkey.1 FILTER html %]</em>.</li> [% END %] - [% IF updated_sortkey %] - <li>Field value sortkey updated to <em>[% sortkey FILTER html %]</em></li> + [% IF changes.visibility_value_id %] + [% IF value.visibility_value.defined %] + <li>It only appears when + [%+ value.field.value_field.description FILTER html %] is set to + '[%+ value.visibility_value.name FILTER html %]'.</li> + [% ELSE %] + <li>It now always appears, no matter what + [%+ value.field.value_field.description FILTER html %] is set to. + </li> + [% END %] [% END %] </ul> [% ELSE %] - No changes made to the field value <em>[% value FILTER html %]</em>. + No changes made to the field value <em>[% value_old FILTER html %]</em>. [% END %] [% ELSIF message_tag == "flag_cleared" %] @@ -430,6 +455,9 @@ group. [% END %] + [% ELSIF message_tag == "job_queue_depth" %] + [% count FILTER html %] jobs in the queue. + [% ELSIF message_tag == "keyword_created" %] [% title = "New Keyword Created" %] The keyword <em>[% name FILTER html %]</em> has been created. @@ -539,20 +567,20 @@ Your password has been changed. [% ELSIF message_tag == "flag_type_created" %] - [% title = "Flag Type Created" %] + [% title = BLOCK %]Flag Type '[% name FILTER html %]' Created[% END %] The flag type <em>[% name FILTER html %]</em> has been created. [% ELSIF message_tag == "flag_type_changes_saved" %] - [% title = "Flag Type Changes Saved" %] + [% title = BLOCK %]Flag Type '[% name FILTER html %]' Changes Saved[% END %] Your changes to the flag type <em>[% name FILTER html %]</em> have been saved. [% ELSIF message_tag == "flag_type_deleted" %] - [% title = "Flag Type Deleted" %] + [% title = BLOCK %]Flag Type '[% name FILTER html %]' Deleted[% END %] The flag type <em>[% name FILTER html %]</em> has been deleted. [% ELSIF message_tag == "flag_type_deactivated" %] - [% title = "Flag Type Deactivated" %] + [% title = BLOCK %]Flag Type '[% flag_type.name FILTER html %]' Deactivated[% END %] The flag type <em>[% flag_type.name FILTER html %]</em> has been deactivated. [% ELSIF message_tag == "install_admin_get_email" %] @@ -599,6 +627,23 @@ [% ELSIF message_tag == "install_fk_drop" %] Dropping foreign key: [% table FILTER html %].[% column FILTER html %] -> [% fk.TABLE FILTER html %].[% fk.COLUMN FILTER html %]... + [% ELSIF message_tag == "install_fk_invalid" %] + ERROR: There are invalid values for the [% column FILTER html %] column in the [% table FILTER html %] + table. (These values do not exist in the [% foreign_table FILTER html %] table, in the + [% foreign_column FILTER html %] column.) + + Before continuing with checksetup, you will need to fix these values, + either by deleting these rows from the database, or changing the values + of [% column FILTER html %] in [% table FILTER html %] to point to valid values in [% foreign_table FILTER html %].[% foreign_column FILTER html %]. + + The bad values from the [% table FILTER html %].[% column FILTER html %] column are: + [%+ values.join(', ') FILTER html %] + + [% ELSIF message_tag == "install_fk_invalid_fixed" %] + WARNING: There were invalid values in [% table FILTER html %].[% column FILTER html %] + that have been [% IF action == 'delete' %]deleted[% ELSE %]set to NULL[% END %]: + [%+ values.join(', ') FILTER html %] + [% ELSIF message_tag == "install_group_create" %] Creating group [% name FILTER html %]... @@ -689,6 +734,9 @@ [% ELSIF message_tag == "series_all_closed" %] All Closed + [% ELSIF message_tag == "series_subcategory" %] + -All- + [% ELSIF message_tag == "sudo_started" %] [% title = "Sudo session started" %] The sudo session has been started. For the next 6 hours, or until you diff --git a/template/en/default/global/setting-descs.none.tmpl b/template/en/default/global/setting-descs.none.tmpl index 10290ad661076b5c9796eabc04e3724d47d8acaf..bcd476d04918df2a07fa9c731454fa19705a9090 100644 --- a/template/en/default/global/setting-descs.none.tmpl +++ b/template/en/default/global/setting-descs.none.tmpl @@ -43,5 +43,7 @@ "quote_replies" => "Quote the associated comment when you click on its reply link", "quoted_reply" => "Quote the full comment", "simple_reply" => "Reference the comment number only", + "timezone" => "Timezone used to display dates and times", + "local" => "Same as the server", } %] diff --git a/template/en/default/global/site-navigation.html.tmpl b/template/en/default/global/site-navigation.html.tmpl index 2acbcf44d5794d0b8c8382c023da801f0d157fff..5440fe1f8842c5b2f0b7ea2f73c3aac6258b3627 100644 --- a/template/en/default/global/site-navigation.html.tmpl +++ b/template/en/default/global/site-navigation.html.tmpl @@ -108,20 +108,20 @@ [%# *** Bugzilla Administration Tools *** %] [% IF user.login %] [% '<link rel="Administration" title="Parameters" - href="editparams.cgi">' IF user.groups.tweakparams %] + href="editparams.cgi">' IF user.in_group('tweakparams') %] [% '<link rel="Administration" title="Users" - href="editusers.cgi">' IF user.groups.editusers %] + href="editusers.cgi">' IF user.in_group('editusers') %] [% '<link rel="Administration" title="Products" href="editproducts.cgi">' - IF user.groups.editcomponents || user.get_products_by_permission("editcomponents").size %] + IF user.in_group('editcomponents') || user.get_products_by_permission("editcomponents").size %] [% '<link rel="Administration" title="Flag Types" - href="editflagtypes.cgi">' IF user.groups.editcomponents %] + href="editflagtypes.cgi">' IF user.in_group('editcomponents') %] [% '<link rel="Administration" title="Groups" - href="editgroups.cgi">' IF user.groups.creategroups %] + href="editgroups.cgi">' IF user.in_group('creategroups') %] [% '<link rel="Administration" title="Keywords" - href="editkeywords.cgi">' IF user.groups.editkeywords %] + href="editkeywords.cgi">' IF user.in_group('editkeywords') %] [% '<link rel="Administration" title="Whining" - href="editwhines.cgi">' IF user.groups.bz_canusewhines %] + href="editwhines.cgi">' IF user.in_group('bz_canusewhines') %] [% '<link rel="Administration" title="Sanity Check" - href="sanitycheck.cgi">' IF user.groups.editcomponents %] + href="sanitycheck.cgi">' IF user.in_group('editcomponents') %] [% END %] [% END %] diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl index bbae9b39cda168e3d936531ed90643c0fc4f444e..191f6eebd9ca04f29e20080f460e8437612743ec 100644 --- a/template/en/default/global/user-error.html.tmpl +++ b/template/en/default/global/user-error.html.tmpl @@ -194,8 +194,9 @@ a sudo session [% ELSIF object == "timetracking_summaries" %] time-tracking summary reports - [% ELSIF object == "user" %] - the user you specified + [% ELSIF object == "user" %] + the user [% IF userid %] with ID '[% userid FILTER html %]' + [% ELSE %]you specified [% END %] [% ELSIF object == "users" %] users [% ELSIF object == "versions" %] @@ -262,7 +263,12 @@ [% title = "Classification Not Enabled" %] Sorry, classification is not enabled. - [% ELSIF error == "classification_not_specified" %] + [% ELSIF error == "classification_name_too_long" %] + [% title = "Classification Name Too Long" %] + The name of a classification is limited to [% constants.MAX_CLASSIFICATION_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). + +[% ELSIF error == "classification_not_specified" %] [% title = "You Must Supply A Classification Name" %] You must enter a classification name. @@ -270,19 +276,10 @@ [% title = "Classification Already Exists" %] A classification with the name '[% name FILTER html %]' already exists. - [% ELSIF error == "classification_doesnt_exist" %] - [% title = "Classification Does Not Exist" %] - The classification '[% name FILTER html %]' does not exist. - - [% ELSIF error == "classification_doesnt_exist_for_product" %] - [% title = "Classification Does Not Exist For Product" %] - The classification '[% classification FILTER html %]' does not exist - for product '[% product FILTER html %]'. - [% ELSIF error == "classification_invalid_sortkey" %] [% title = "Invalid Sortkey for Classification" %] - The sortkey <em>[% sortkey FILTER html %]</em> for the '[% name FILTER html %]' - classification is invalid. It must be a positive integer. + The sortkey '[% sortkey FILTER html %]' is invalid. It must be an + integer between 0 and [% constants.MAX_SMALLINT FILTER html %]. [% ELSIF error == "classification_not_deletable" %] [% title = "Default Classification Can Not Be Deleted" %] @@ -314,8 +311,8 @@ [% ELSIF error == "component_name_too_long" %] [% title = "Component Name Is Too Long" %] - The name of a component is limited to 64 characters. - '[% name FILTER html %]' is too long ([% name.length %] characters). + The name of a component is limited to [% constants.MAX_COMPONENT_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). [% ELSIF error == "component_need_initialowner" %] [% title = "Component Requires Default Assignee" %] @@ -408,6 +405,17 @@ ([% field.description FILTER html %]) already exists. Please choose another name. + [% ELSIF error == "field_cant_control_self" %] + [% title = "Field Can't Control Itself" %] + The [% field.description FILTER html %] field can't be set to control + itself. + + [% ELSIF error == "field_control_must_be_select" %] + [% title = "Invalid Field Type Selected" %] + Only drop-down and multi-select fields can be used to control + the visibility/values of other fields. [% field.description FILTER html %] + is not the right type of field. + [% ELSIF error == "field_invalid_name" %] [% title = "Invalid Field Name" %] '[% name FILTER html %]' is not a valid name for a field. @@ -426,69 +434,84 @@ [% title = "Missing Name for Field" %] You must enter a name for this field. + [% ELSIF error == "field_value_control_select_only" %] + [% title = "Invalid Value Control Field" %] + Only Drop-Down or Multi-Select fields can have a field that + controls their values. + [% ELSIF error == "fieldname_invalid" %] [% title = "Specified Field Does Not Exist" %] - The field '[% field FILTER html %]' does not exist or + The field '[% field.name FILTER html %]' does not exist or cannot be edited with this interface. - [% ELSIF error == "fieldname_not_specified" %] - [% title = "Field Name Not Specified" %] - No field name specified when trying to edit field values. - [% ELSIF error == "fieldvalue_already_exists" %] [% title = "Field Value Already Exists" %] - The value '[% value FILTER html %]' already exists for the - '[%- field.description FILTER html %]' field. - - [% ELSIF error == "fieldvalue_doesnt_exist" %] - [% title = "Specified Field Value Does Not Exist" %] - The value '[% value FILTER html %]' does not exist for - the '[% field FILTER html %]' field. + The value '[% value.name FILTER html %]' already exists for the + [%+ field.description FILTER html %] field. + + [% ELSIF error == "fieldvalue_is_controller" %] + [% title = "Value Controls Other Fields" %] + You cannot delete the '[% value.name FILTER html %]' value for this + field because + [% IF fields.size %] + it controls the visibility of the following fields: + [%+ fields.join(', ') FILTER html %]. + [% END %] + [% ' and ' IF fields.size AND vals.size %] + [% IF vals.size %] + it controls the visibility of the following field values: + <ul> + [% FOREACH val = vals %] + <li>[% val.field.name FILTER html %]: + '[% val.name FILTER html %]'</li> + [% END %] + </ul> + [% END %] [% ELSIF error == "fieldvalue_is_default" %] [% title = "Specified Field Value Is Default" %] - '[% value FILTER html %]' is the default value for + '[% value.name FILTER html %]' is the default value for the '[% field.description FILTER html %]' field and cannot be deleted. - [% IF user.groups.tweakparams %] + [% IF user.in_group('tweakparams') %] You have to <a href="editparams.cgi?section=bugfields# [%- param_name FILTER url_quote %]">change</a> the default value first. [% END %] [% ELSIF error == "fieldvalue_name_too_long" %] [% title = "Field Value Is Too Long" %] - The value of a field is limited to 60 characters. + The value of a field is limited to + [%+ constants.FIELD_VALUE_MAX_SIZE FILTER none %] characters. '[% value FILTER html %]' is too long ([% value.length %] characters). [% ELSIF error == "fieldvalue_not_editable" %] [% title = "Field Value Not Editable" %] - The value '[% old_value FILTER html %]' cannot be renamed because - it plays some special role for the '[% field.description FILTER html %]' field. + The value '[% old_value.name FILTER html %]' cannot be renamed because + it plays some special role for the '[% field.description FILTER html %]' + field. [% ELSIF error == "fieldvalue_not_deletable" %] [% title = "Field Value Not Deletable" %] - The value '[% value FILTER html %]' cannot be removed because - it plays some special role for the '[% field.description FILTER html %]' field. - - [% ELSIF error == "fieldvalue_not_specified" %] - [% title = "Field Value Not Specified" %] - No field value specified when trying to edit a field value. + The value '[% value.name FILTER html %]' cannot be removed because + it plays some special role for the '[% field.description FILTER html %]' + field. [% ELSIF error == "fieldvalue_reserved_word" %] [% title = "Reserved Word Not Allowed" %] - You cannot use the '[% value FILTER html %]' value for the + You cannot use the value '[% value FILTER html %]' for the '[% field.description FILTER html %]' field. This value is used internally. Please choose another one. [% ELSIF error == "fieldvalue_sortkey_invalid" %] [% title = "Invalid Field Value Sortkey" %] - The sortkey '[% sortkey FILTER html %]' for the '[% name FILTER html %]' - field is not a valid (positive) number. + The sortkey '[% sortkey FILTER html %]' for the + [%+ field.description FILTER html %] field is not a valid + (positive) number. [% ELSIF error == "fieldvalue_still_has_bugs" %] [% title = "You Cannot Delete This Field Value" %] - You cannot delete the value '[% value FILTER html %]' from the - '[% field FILTER html %]' field, because there are still - [%+ count FILTER html %] [%+ terms.bugs %] using it. + You cannot delete the value '[% value.name FILTER html %]' from the + [% field.description FILTER html %] field, because there are still + [%+ value.bug_count FILTER html %] [%+ terms.bugs %] using it. [% ELSIF error == "fieldvalue_undefined" %] [% title = "Undefined Value Not Allowed" %] @@ -784,6 +807,11 @@ [% IF format %] Please use the format '<tt>[% format FILTER html %]</tt>'. [% END %] + + [% ELSIF error == "illegal_regexp" %] + [% title = "Illegal Regular Expression" %] + The regular expression you provided [% value FILTER html %] is not valid. + The error was: [% dberror FILTER html %]. [% ELSIF error == "insufficient_data_points" %] [% docslinks = {'reporting.html' => 'Reporting'} %] @@ -948,8 +976,8 @@ [% ELSIF error == "milestone_name_too_long" %] [% title = "Milestone Name Is Too Long" %] - The name of a milestone is limited to 20 characters. - '[% name FILTER html %]' is too long ([% name.length %] characters). + The name of a milestone is limited to [% constants.MAX_MILESTONE_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). [% ELSIF error == "milestone_required" %] [% title = "Milestone Required" %] @@ -1178,16 +1206,21 @@ in the <em>[% field_descs.$field FILTER html %]</em> field is less than the minimum allowable value of '[% min_num FILTER html %]'. - [% ELSIF error == "object_name_not_specified" %] - [% type = BLOCK %][% PROCESS object_name %][% END %] + [% ELSIF error == "object_not_specified" %] + [% type = BLOCK %][% INCLUDE object_name class = class %][% END %] [% title = BLOCK %][% type FILTER ucfirst FILTER html %] Not Specified[% END %] You must select/enter a [% type FILTER html %]. [% ELSIF error == "object_does_not_exist" %] - [% type = BLOCK %][% PROCESS object_name %][% END %] + [% type = BLOCK %][% INCLUDE object_name class = class %][% END %] [% title = BLOCK %]Invalid [% type FILTER ucfirst FILTER html %][% END %] - There is no [% type FILTER html %] named '[% name FILTER html %]' + There is no [% type FILTER html %] + [% IF id.defined %] + with the id '[% id FILTER html %]' + [% ELSE %] + named '[% name FILTER html %]' + [% END %] [% IF product.defined %] in the '[% product.name FILTER html %]' product [% END %]. @@ -1226,8 +1259,8 @@ [% title = "File Too Large" %] The file you are trying to attach is [% filesize FILTER html %] kilobytes (KB) in size. - Patches cannot be more than [% Param('maxpatchsize') %] KB in size. - Try breaking your patch into several pieces. + Patches cannot be more than [% Param('maxattachmentsize') %] KB in size. + Try splitting your patch into several pieces. [% ELSIF error == "product_access_denied" %] Either the product '[% product FILTER html %]' does not exist or @@ -1237,42 +1270,29 @@ [% title = "Specified Product Does Not Exist" %] The product '[% product FILTER html %]' does not exist. - [% ELSIF error == "product_votes_per_bug_must_be_nonnegative" %] - [% title = "Maximum Votes Must Be Non-negative" %] - [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] - '[% maxvotesperbug FILTER html %]' is an invalid value for the - <em>'Maximum Votes Per [% terms.Bug %]'</em> field, which should - contain a non-negative number. - - [% ELSIF error == "product_votes_per_user_must_be_nonnegative" %] - [% title = "Votes Per User Must Be Non-negative" %] - [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] - '[% votesperuser FILTER html %]' is an invalid value for the - <em>'Votes Per User'</em> field, which should contain a - non-negative number. + [% ELSIF error == "product_illegal_group" %] + [% title = "Illegal Group" %] + [% group.name FILTER html %] is not an active [% terms.bug %] group + and so you cannot edit group controls for it. - [% ELSIF error == "product_votes_to_confirm_must_be_nonnegative" %] - [% title = "Votes To Confirm Must Be Non-negative" %] + [% ELSIF error == "product_illegal_votes" %] + [% title = "Votes Must Be Non-negative" %] [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] - '[% votestoconfirm FILTER html %]' is an invalid value for the - <em>'Votes To Confirm'</em> field, which should contain a - non-negative number. - - [% ELSIF error == "product_cant_delete_description" %] - [% title = "Cannot delete product description" %] - [% admindocslinks = {'products.html' => 'Administering products'} %] - Cannot delete the description for product - '[% product FILTER html %]'. - - [% ELSIF error == "product_cant_delete_name" %] - [% title = "Cannot delete product name" %] - [% admindocslinks = {'products.html' => 'Administering products'} %] - Cannot delete the product name for product '[% product FILTER html %]'. + '[% votes FILTER html %]' is an invalid value for the + <em> + [% IF field == "votesperuser" %] + Votes Per User + [% ELSIF field == "maxvotesperbug" %] + Maximum Votes Per [% terms.Bug %] + [% ELSIF field == "votestoconfirm" %] + Votes To Confirm + [% END %] + </em> field, which should contain a non-negative number. [% ELSIF error == "product_name_already_in_use" %] [% title = "Product name already in use" %] [% admindocslinks = {'products.html' => 'Administering products'} %] - The product name '[% product FILTER html %]' is already in use. + The product name '[% product FILTER html %]' already exists. [% ELSIF error == "product_name_diff_in_case" %] [% title = "Product name differs only in case" %] @@ -1280,19 +1300,17 @@ The product name '[% product FILTER html %]' differs from existing product '[% existing_product FILTER html %]' only in case. + [% ELSIF error == "product_name_too_long" %] + [% title = "Product name too long" %] + The name of a product is limited to [% constants.MAX_PRODUCT_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). + [% ELSIF error == "product_must_define_defaultmilestone" %] [% title = "Must define new default milestone" %] [% admindocslinks = {'products.html' => 'Administering products', 'milestones.html' => 'About Milestones'} %] - [% IF classification %] - [% classification_url_part = BLOCK %]&classification= - [%- classification FILTER url_quote %] - [% END %] - [% END %] - You must <a href="editmilestones.cgi?action=add&product= - [%- product FILTER url_quote %] - [%- classification_url_part FILTER none %]"> - create the milestone '[% defaultmilestone FILTER html %]'</a> before + You must <a href="editmilestones.cgi?action=add&product=[% product FILTER url_quote %]"> + create the milestone '[% milestone FILTER html %]'</a> before it can be made the default milestone for product '[% product FILTER html %]'. [% ELSIF error == "product_admin_denied" %] @@ -1302,7 +1320,7 @@ [% ELSIF error == "product_blank_name" %] [% title = "Blank Product Name Not Allowed" %] [% admindocslinks = {'products.html' => 'Administering products'} %] - You must enter a name for the new product. + You must enter a name for the product. [% ELSIF error == "product_disabled" %] [% title = BLOCK %]Product closed for [% terms.Bug %] Entry[% END %] @@ -1327,13 +1345,13 @@ [% ELSIF error == "product_must_have_description" %] [% title = "Product needs Description" %] [% admindocslinks = {'products.html' => 'Administering products'} %] - You must enter a description for product '[% product FILTER html %]'. + You must enter a description for this product. [% ELSIF error == "product_must_have_version" %] [% title = "Product needs Version" %] [% admindocslinks = {'products.html' => 'Administering products', 'versions.html' => 'Administering versions'} %] - You must enter a version for product '[% product FILTER html %]'. + You must enter a valid version to create a new product. [% ELSIF error == "product_not_specified" %] [% title = "No Product Specified" %] @@ -1349,9 +1367,8 @@ The name <em>[% name FILTER html %]</em> is already used by another saved search. You first have to <a href="buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd= - [%- name FILTER url_quote %]&token= - [% issue_hash_token([query_id, name]) FILTER url_quote %]">delete</a> - it if you really want to use this name. + [%- name FILTER url_quote %]">delete</a> it if you really want to use + this name. [% ELSIF error == "query_name_missing" %] [% title = "No Search Name Specified" %] @@ -1360,7 +1377,8 @@ [% ELSIF error == "query_name_too_long" %] [% title = "Query Name Too Long" %] - The name of the query must be less than 64 characters long. + The name of the query must be less than [% constants.MAX_LEN_QUERY_NAME FILTER html %] + characters long. [% ELSIF error == "quicksearch_unknown_field" %] [% title = "Unknown QuickSearch Field" %] @@ -1553,6 +1571,16 @@ for at least one component. For this reason, you cannot delete the account at this time. + [% ELSIF error == "user_access_by_id_denied" %] + [% title = "User Access By Id Denied" %] + Logged-out users cannot use the "ids" argument to this function + to access any user information. + + [% ELSIF error == "user_access_by_match_denied" %] + [% title = "User-Matching Denied" %] + Logged-out users cannot use the "match" argument to this function + to access any user information. + [% ELSIF error == "user_login_required" %] [% title = "Login Name Required" %] [% admindocslinks = {'useradmin.html' => 'User administration'} %] @@ -1678,5 +1706,10 @@ milestone [% ELSIF class == "Bugzilla::Status" %] status + [% ELSIF class == "Bugzilla::Field" %] + field + [% ELSIF ( matches = class.match('^Bugzilla::Field::Choice::(.+)') ) %] + [% SET field_name = matches.0 %] + [% field_descs.$field_name FILTER html %] [% END %] [% END %] diff --git a/template/en/default/list/CVS/Entries b/template/en/default/list/CVS/Entries index 5d649d681361079d07921a1b8e14f38206d924bb..1bf6751dbc79413b5ff9e1f7597d2b9669734c68 100644 --- a/template/en/default/list/CVS/Entries +++ b/template/en/default/list/CVS/Entries @@ -1,13 +1,13 @@ -/change-columns.html.tmpl/1.16.2.1/Fri Aug 8 03:15:05 2008//TBUGZILLA-3_2_1 -/edit-multiple.html.tmpl/1.49.2.4/Mon Feb 2 18:42:11 2009//TBUGZILLA-3_2_1 -/list-simple.html.tmpl/1.12/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_2_1 -/list.atom.tmpl/1.5/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_2_1 -/list.csv.tmpl/1.7/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_2_1 -/list.html.tmpl/1.59.2.2/Mon Feb 2 18:50:24 2009//TBUGZILLA-3_2_1 -/list.ics.tmpl/1.9/Sun Oct 7 23:18:44 2007//TBUGZILLA-3_2_1 -/list.js.tmpl/1.3/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_2_1 -/list.rdf.tmpl/1.7/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_2_1 -/quips.html.tmpl/1.22.2.1/Wed Nov 5 18:41:37 2008//TBUGZILLA-3_2_1 -/server-push.html.tmpl/1.7/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_2_1 -/table.html.tmpl/1.40/Sat Apr 19 13:14:25 2008//TBUGZILLA-3_2_1 +/change-columns.html.tmpl/1.19/Wed Sep 17 11:26:01 2008//TBUGZILLA-3_3_1 +/edit-multiple.html.tmpl/1.54/Sun Jan 4 04:38:42 2009//TBUGZILLA-3_3_1 +/list-simple.html.tmpl/1.12/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1 +/list.atom.tmpl/1.6/Wed Aug 27 23:26:24 2008//TBUGZILLA-3_3_1 +/list.csv.tmpl/1.8/Wed Aug 27 23:26:24 2008//TBUGZILLA-3_3_1 +/list.html.tmpl/1.63/Sat Dec 6 19:44:47 2008//TBUGZILLA-3_3_1 +/list.ics.tmpl/1.10/Wed Aug 27 23:26:24 2008//TBUGZILLA-3_3_1 +/list.js.tmpl/1.3/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1 +/list.rdf.tmpl/1.7/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1 +/quips.html.tmpl/1.24/Wed Nov 5 18:38:52 2008//TBUGZILLA-3_3_1 +/server-push.html.tmpl/1.7/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1 +/table.html.tmpl/1.42/Sun Jan 4 17:44:52 2009//TBUGZILLA-3_3_1 D diff --git a/template/en/default/list/CVS/Tag b/template/en/default/list/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/list/CVS/Tag +++ b/template/en/default/list/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/list/change-columns.html.tmpl b/template/en/default/list/change-columns.html.tmpl index 88ae47818e97debb3f4e14248779e6327818cb4d..2e51851a976c8dbc68f751cf1c5e7d33a572c670 100644 --- a/template/en/default/list/change-columns.html.tmpl +++ b/template/en/default/list/change-columns.html.tmpl @@ -16,12 +16,15 @@ # Rights Reserved. # # Contributor(s): Dave Lawrence <dkl@redhat.com> + # Pascal Held <paheld@gmail.com> #%] [% PROCESS global/variables.none.tmpl %] [% PROCESS global/header.html.tmpl title = "Change Columns" + javascript_urls = "js/change-columns.js" + onload = "initChangeColumns()" %] <p> @@ -36,16 +39,55 @@ [% field_descs.reporter_realname = "Reporter Realname" %] [% field_descs.qa_contact_realname = "QA Contact Realname" %] -<form action="colchange.cgi"> +<form name="changecolumns" action="colchange.cgi" onsubmit="change_submit();"> <input type="hidden" name="rememberedquery" value="[% buffer FILTER html %]"> - [% FOREACH column = masterlist %] - <input type="checkbox" id="[% column %]" name="column_[% column %]" - [%+ "checked='checked'" IF lsearch(collist, column) != -1 %]> - <label for="[% column %]"> - [% (field_descs.${column} || column) FILTER html %] - </label> - <br> - [% END %] + <table> + <tr> + <th><div id="avail_header" class="bz_default_hidden">Available Columns</div></th> + <th></th> + <th>Selected Columns</th> + <th></th> + </tr> + <tr> + <td> + <select name="available_columns" id="available_columns" + size="15" multiple="multiple" onchange="updateView();" + class="bz_default_hidden"> + </select> + </td> + <td> + <input class="image_button" type="button" id="select_button" + name="select" onclick="move_select()"> + <br><br> + <input class="image_button" type="button" id="deselect_button" + name="deselect" onclick="move_deselect()"> + </td> + <td> + <select name="selected_columns" id="selected_columns" + size="15" multiple="multiple" onchange="updateView();"> + [% FOREACH column = collist %] + <option value="[% column FILTER html %]" selected="selected"> + [% (field_descs.${column} || column) FILTER html %] + </option> + [% END %] + [% FOREACH column = masterlist %] + [% IF lsearch(collist, column) == -1 %] + <option value="[% column FILTER html %]"> + [% (field_descs.${column} || column) FILTER html %] + </option> + [% END %] + [% END %] + </select> + </td> + <td> + <input class="image_button" type="button" id="up_button" + name="up" onclick="move_up()"> + <br><br> + <input class="image_button" type="button" id="down_button" + name="down" onclick="move_down()"> + </td> + </tr> + </table> <p> <input id="nosplitheader" type="radio" name="splitheader" value="0" diff --git a/template/en/default/list/edit-multiple.html.tmpl b/template/en/default/list/edit-multiple.html.tmpl index 3e582b3a50f5f0e8f8afb311a7be4937aeaa591a..6a62a80dccc8526ab033992a0f6f2fd22f3b541e 100644 --- a/template/en/default/list/edit-multiple.html.tmpl +++ b/template/en/default/list/edit-multiple.html.tmpl @@ -25,7 +25,6 @@ [% dontchange = "--do_not_change--" %] <input type="hidden" name="dontchange" value="[% dontchange FILTER html %]"> -<input type="hidden" name="token" value="[% token FILTER html %]"> <script type="text/javascript"> var numelements = document.forms.changeform.elements.length; @@ -230,6 +229,36 @@ </tr> [% END %] + <tr> + <th> + <label for="dependson"> + Depends On: + </label> + </th> + <td colspan="3"> + <input id="dependson" name="dependson" size="32"> + <select name="dependson_action"> + <option value="add">Add these IDs</option> + <option value="remove">Delete these IDs</option> + </select> + </td> + </tr> + + <tr> + <th> + <label for="blocked"> + Blocks: + </label> + </th> + <td colspan="3"> + <input id="blocked" name="blocked" size="32"> + <select name="blocked_action"> + <option value="add">Add these IDs</option> + <option value="remove">Delete these IDs</option> + </select> + </td> + </tr> + [% IF Param('usestatuswhiteboard') %] <tr> <td align="right"> @@ -255,7 +284,14 @@ </table> -<b><label for="comment">Additional Comments:</label></b><br> +<b><label for="comment">Additional Comments:</label></b> +[% IF user.is_insider %] + <input type="checkbox" name="commentprivacy" value="1" + id="newcommentprivacy" + onClick="updateCommentTagControl(this, form)"/> + <label for="newcommentprivacy">Private</label> +[% END %] +<br> [% INCLUDE global/textarea.html.tmpl name = 'comment' id = 'comment' diff --git a/template/en/default/list/list.atom.tmpl b/template/en/default/list/list.atom.tmpl index bfebbb8ddd712a69ba546d0edcfb6f2c4e69dc24..5086a044c66fa286f932f41a903a927ada0c87b8 100644 --- a/template/en/default/list/list.atom.tmpl +++ b/template/en/default/list/list.atom.tmpl @@ -24,7 +24,6 @@ #%] [% PROCESS global/variables.none.tmpl %] -[% USE date %] [% DEFAULT title = "$terms.Bugzilla $terms.Bugs" %] @@ -37,9 +36,8 @@ <link rel="self" type="application/atom+xml" href="[% urlbase FILTER html %]buglist.cgi? [%- urlquerypart FILTER xml %]"/> - <updated>[% date.format(format=>"%Y-%m-%dT%H:%M:%SZ", - time=>bugs.nsort('changedtime').last.changedtime, - gmt=>1) FILTER xml %]</updated> + <updated>[% bugs.nsort('changedtime').last.changedtime FILTER time("%Y-%m-%dT%H:%M:%SZ", "UTC") + FILTER xml %]</updated> <id>[% urlbase FILTER html %]buglist.cgi?[% urlquerypart FILTER xml %]</id> [% FOREACH bug = bugs %] @@ -52,8 +50,7 @@ <author> <name>[% bug.reporter_realname FILTER xml %]</name> </author> - <updated>[% date.format(format=>"%Y-%m-%dT%H:%M:%SZ",time=>bug.changedtime, - gmt=>1) FILTER xml %]</updated> + <updated>[% bug.changedtime FILTER time("%Y-%m-%dT%H:%M:%SZ", "UTC") FILTER xml %]</updated> <summary type="html"> [%# Filter out the entire block, so that we don't need to escape the html code out %] [% FILTER xml %] diff --git a/template/en/default/list/list.csv.tmpl b/template/en/default/list/list.csv.tmpl index 9ce1c73f1b3d7c8799321af065f006ffddf9e18d..1a25b39079418d3a8c7531815d6102c92dd02054 100644 --- a/template/en/default/list/list.csv.tmpl +++ b/template/en/default/list/list.csv.tmpl @@ -20,7 +20,6 @@ #%] [% PROCESS "global/field-descs.none.tmpl" %] -[% USE date %] [% colsepchar = user.settings.csv_colsepchar.value %] @@ -35,7 +34,7 @@ bug_id [% colsepchar %] [% IF column == "opendate" OR column == "changeddate" %] [% rawcolumn = column.replace("date", "time") %] - [% bug.$column = date.format(bug.$rawcolumn, "%Y-%m-%d %H:%M:%S") %] + [% bug.$column = bug.$rawcolumn FILTER time("%Y-%m-%d %H:%M:%S") %] [% ELSIF column == 'bug_status' %] [% bug.$column = get_status(bug.$column) %] [% ELSIF column == 'resolution' %] diff --git a/template/en/default/list/list.html.tmpl b/template/en/default/list/list.html.tmpl index be1741480593476ba29bd14a4983fdab60f7d607..467e4dfc76854f8044693c78a9f5e867f3f552a9 100644 --- a/template/en/default/list/list.html.tmpl +++ b/template/en/default/list/list.html.tmpl @@ -28,7 +28,7 @@ [%# Template Initialization #%] [%############################################################################%] -[% PROCESS global/variables.none.tmpl %] +[% PROCESS "global/field-descs.none.tmpl" %] [% title = "$terms.Bug List" %] [% IF searchname || defaultsavename %] @@ -54,20 +54,14 @@ <div class="bz_query_head" align="center"> <span class="bz_query_timestamp"> - [% IF Param('timezone') %] - <b>[% time2str("%a %b %e %Y %T %Z", currenttime, Param('timezone')) %]</b><br> - [% ELSE %] - <b>[% time2str("%a %b %e %Y %T", currenttime) %]</b><br> - [% END %] + <b>[% currenttime FILTER time('%a %b %e %Y %T %Z') FILTER html %]</b><br> </span> [% IF debug %] - <p class="bz_query_debug"> - [% FOREACH debugline = debugdata %] - [% debugline FILTER html %]<br> - [% END %] - </p> <p class="bz_query">[% query FILTER html %]</p> + [% IF query_explain.defined %] + <pre class="bz_query_explain">[% query_explain FILTER html %]</pre> + [% END %] [% END %] [% IF user.settings.display_quips.value == 'on' %] @@ -86,6 +80,26 @@ </h2> [% END %] +[% SET shown_types = [ + 'notequal', 'regexp', 'notregexp', 'lessthan', 'lessthaneq', + 'greaterthan', 'greaterthaneq', 'changedbefore', 'changedafter', + 'changedfrom', 'changedto', 'changedby', +] %] +<ul class="search_description"> +[% FOREACH desc_item = search_description %] + <li> + <strong>[% field_descs.${desc_item.field} FILTER html %]:</strong> + [% IF shown_types.contains(desc_item.type) || debug %] + ([% search_descs.${desc_item.type} FILTER html %]) + [% END %] + [%+ desc_item.value FILTER html %] + [% IF debug %] + (<code>[% desc_item.term FILTER html %]</code>) + [% END %] + </li> +[% END %] +</ul> + <hr> [%############################################################################%] @@ -214,9 +228,8 @@ <td valign="middle" nowrap="nowrap" class="bz_query_forget"> | <a href="buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd= - [% searchname FILTER url_quote %]&token= - [% issue_hash_token([search_id, searchname]) FILTER url_quote %]"> - Forget Search '[% searchname FILTER html %]'</a> + [% searchname FILTER url_quote %]">Forget Search ' + [% searchname FILTER html %]'</a> </td> [% ELSE %] <td> </td> diff --git a/template/en/default/list/list.ics.tmpl b/template/en/default/list/list.ics.tmpl index f8953d99663d26653e1aabe625541e8b9b0993c9..d30b0658cfb10b1e7813fa95f6dc82062f6f8ea4 100644 --- a/template/en/default/list/list.ics.tmpl +++ b/template/en/default/list/list.ics.tmpl @@ -31,7 +31,7 @@ BEGIN:VTODO [%+ PROCESS ics_status bug_status = bug.bug_status +%] [%+ PROCESS ics_dtstamp +%] [% IF bug.changeddate %] -[%+ time2str("%Y%m%dT%H%M%SZ", bug.changedtime, "UTC") FILTER ics('LAST-MODIFIED') +%] +[%+ bug.changedtime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('LAST-MODIFIED') +%] [% END %] [% IF bug.percentage_complete %] [%+ bug.percentage_complete FILTER format('%d') FILTER ics('PERCENT-COMPLETE') +%] @@ -65,11 +65,11 @@ END:VCALENDAR [% END %] [% BLOCK ics_dtstart %] - [% time2str("%Y%m%dT%H%M%SZ", bug.opentime, "UTC") FILTER ics('DTSTART') %] + [% bug.opentime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DTSTART') %] [% END %] [% BLOCK ics_dtstamp %] - [% time2str("%Y%m%dT%H%M%SZ", currenttime, "UTC") FILTER ics('DTSTAMP') %] + [% currenttime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DTSTAMP') %] [% END %] [% BLOCK ics_status %] diff --git a/template/en/default/list/quips.html.tmpl b/template/en/default/list/quips.html.tmpl index d6000d5971010db252ee06576ab2e1a4b1ea4ce7..1404b2e352d314511ecd60246d0b0fc6697eea3b 100644 --- a/template/en/default/list/quips.html.tmpl +++ b/template/en/default/list/quips.html.tmpl @@ -37,7 +37,7 @@ <p> <font color="red"> Your quip '<tt>[% added_quip FILTER html %]</tt>' has been added. - [% IF Param("quip_list_entry_control") == "moderated" AND !user.groups.admin %] + [% IF Param("quip_list_entry_control") == "moderated" AND !user.in_group('admin') %] It will be used as soon as it gets approved. [% END %] </font> @@ -66,7 +66,7 @@ <p> You can extend the quip list. Type in something clever or funny or boring (but not obscene or offensive, please) and bonk on the button. - [% IF Param("quip_list_entry_control") == "moderated" AND !user.groups.admin %] + [% IF Param("quip_list_entry_control") == "moderated" AND !user.in_group('admin') %] Note that your quip has to be approved before it is used. [% END %] </p> diff --git a/template/en/default/list/table.html.tmpl b/template/en/default/list/table.html.tmpl index 811ed026a82e00064060f8e00de0f21884c0d2c4..9b27b0094482422b8842b4fcb371256714629330 100644 --- a/template/en/default/list/table.html.tmpl +++ b/template/en/default/list/table.html.tmpl @@ -188,6 +188,16 @@ [% FOREACH column = displaycolumns %] <td [% 'style="white-space: nowrap"' IF NOT abbrev.$column.wrap %]> + [% IF abbrev.$column.maxlength %] + <span title=" + [%- IF column == 'bug_status' %] + [%- get_status(bug.$column) FILTER html %] + [% ELSIF column == 'resolution' %] + [%- get_resolution(bug.$column) FILTER html %] + [% ELSE %] + [%- bug.$column FILTER html %] + [% END %]"> + [% END %] [% IF abbrev.$column.format_value %] [%- bug.$column FILTER format(abbrev.$column.format_value) FILTER html -%] [% ELSIF column == 'actual_time' || @@ -201,6 +211,9 @@ [% ELSE %] [%- bug.$column.truncate(abbrev.$column.maxlength, abbrev.$column.ellipsis) FILTER html -%] [% END %] + [% IF abbrev.$column.maxlength %] + </span> + [% END %] </td> [% END %] @@ -210,7 +223,40 @@ # end the current table. #%] [% IF loop.last() || loop.count() % 100 == 0 %] + [% IF loop.last() && time_info.time_present == 1 %] + [% PROCESS time_summary_line %] + [% END %] </table> [% END %] [% END %] + + +[% BLOCK time_summary_line %] + <tr class="bz_time_summary_line"> + [% columns_to_span = 1 %] [%# bugID %] + [% IF dotweak %] + [% columns_to_span = columns_to_span + 1 %] + [% END %] + [% FOREACH column = displaycolumns %] + [% IF column == 'actual_time' || + column == 'remaining_time' || + column == 'estimated_time' || + column == 'percentage_complete' %] + [% IF columns_to_span > 0 %] + <td class="bz_total_label" colspan="[% columns_to_span FILTER html %]"><b>Totals</b></td> + [% columns_to_span = 0 %] + [% END %] + [% IF column == 'percentage_complete' %] + <td>[% time_info.percentage_complete FILTER format(abbrev.$column.format_value) FILTER html -%]</td> + [% ELSE %] + <td>[% PROCESS formattimeunit time_unit=time_info.$column %]</td> + [% END %] + [% ELSIF columns_to_span == 0 %] [%# A column following the first total %] + <td> </td> + [% ELSE %] [%# We haven't gotten to a time column yet, keep computing span %] + [% columns_to_span = columns_to_span + 1 %] + [% END %] + [% END %] + </tr> +[% END %] diff --git a/template/en/default/pages/CVS/Entries b/template/en/default/pages/CVS/Entries index 99f80f6a4c5a50884a769ea4e6a7faef9cc40db8..e851f8db2cdaf894f572107c58b5ba36b8257d2b 100644 --- a/template/en/default/pages/CVS/Entries +++ b/template/en/default/pages/CVS/Entries @@ -1,10 +1,10 @@ -/bug-writing.html.tmpl/1.9/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_2_1 -/fields.html.tmpl/1.13.2.1/Wed Sep 17 11:13:56 2008//TBUGZILLA-3_2_1 -/linked.html.tmpl/1.10/Fri Feb 8 23:19:32 2008//TBUGZILLA-3_2_1 -/linkify.html.tmpl/1.9/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_2_1 -/quicksearch.html.tmpl/1.3/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_2_1 -/quicksearchhack.html.tmpl/1.7/Sun Dec 2 23:12:10 2007//TBUGZILLA-3_2_1 -/release-notes.html.tmpl/1.17.2.13/Mon Feb 2 23:00:58 2009//TBUGZILLA-3_2_1 -/sudo.html.tmpl/1.2/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_2_1 -/voting.html.tmpl/1.4.2.1/Mon Sep 15 22:36:04 2008//TBUGZILLA-3_2_1 +/bug-writing.html.tmpl/1.9/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1 +/fields.html.tmpl/1.14/Wed Sep 17 11:11:30 2008//TBUGZILLA-3_3_1 +/linked.html.tmpl/1.10/Fri Feb 8 23:19:32 2008//TBUGZILLA-3_3_1 +/linkify.html.tmpl/1.9/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1 +/quicksearch.html.tmpl/1.3/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1 +/quicksearchhack.html.tmpl/1.7/Sun Dec 2 23:12:10 2007//TBUGZILLA-3_3_1 +/release-notes.html.tmpl/1.27/Sat Dec 6 19:54:17 2008//TBUGZILLA-3_3_1 +/sudo.html.tmpl/1.3/Fri Aug 8 01:27:20 2008//TBUGZILLA-3_3_1 +/voting.html.tmpl/1.5/Mon Sep 15 22:34:32 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/pages/CVS/Tag b/template/en/default/pages/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/pages/CVS/Tag +++ b/template/en/default/pages/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/pages/release-notes.html.tmpl b/template/en/default/pages/release-notes.html.tmpl index 6f5a7fa9fa6f09abd8f15e756ab2a34c641e5021..21b98b5e26889d2ca4982245664bb4797eb55991 100644 --- a/template/en/default/pages/release-notes.html.tmpl +++ b/template/en/default/pages/release-notes.html.tmpl @@ -19,7 +19,7 @@ [% PROCESS global/variables.none.tmpl %] [% INCLUDE global/header.html.tmpl - title = "$terms.Bugzilla 3.2.1 Release Notes" + title = "$terms.Bugzilla 3.2 Release Notes" style_urls = ['skins/standard/release-notes.css'] %] @@ -27,8 +27,6 @@ <ul class="bz_toc"> <li><a href="#v32_introduction">Introduction</a></li> - <li><a href="#v32_point">Updates In This 3.2.x Release</a></li> - <li><a href="#v32_security">Security Fixes In This 3.2.x Release</a></li> <li><a href="#v32_req">Minimum Requirements</a></li> <li><a href="#v32_feat">New Features and Improvements</a></li> <li><a href="#v32_issues">Outstanding Issues</a></li> @@ -51,59 +49,6 @@ and this one, <strong>particularly the "Notes For Upgraders" section of each version's release notes</strong>.</p> -<h2><a name="v32_point">Updates in this 3.2.x Release</a></h2> - -<p>This section describes what's changed in the most recent b<!-- -->ug-fix - releases of [% terms.Bugzilla %] after 3.2. We only list the - most important fixes in each release. If you want a detailed list of - <em>everything</em> that's changed in each version, you should use our - <a href="http://www.bugzilla.org/status/changes.html">Change Log - Page</a>.</p> - -<h3>3.2.1</h3> - -<ul> - <li>Attachments, charts, and graphs would sometimes be garbled on Windows. - (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=464992">[% terms.Bug %] 464992</a>)</li> - - <li>Saving changes to parameters would sometimes fail silently (particularly - on Windows when the web server didn't have the right permissions to - update the <code>params</code> file). [% terms.Bugzilla %] will now - throw an error in this case, telling you what is wrong. - (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=347707">[% terms.Bug %] 347707</a>)</li> - - <li>If you were using the <code>usemenuforusers</code> parameter, - and [% terms.abug %] was assigned to (or had a QA Contact of) a disabled - user, that field would be reset to the first user in the list when - updating [% terms.abug %]. - (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=465589">[% terms.Bug %] 465589</a>)</li> - - <li>If you were using the <code>PROJECT</code> environment variable - to have multiple [% terms.Bugzilla %] installations using one codebase, - project-specific templates were being ignored. - (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=467324">[% terms.Bug %] 467324</a>)</li> - - <li>Some versions of the SOAP::Lite Perl module had a b[% %]ug that caused - [%+ terms.Bugzilla %]'s XML-RPC service to break. - <code>checksetup.pl</code> now checks for these bad versions and - will reject them. - (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=468009">[% terms.Bug %] 468009</a>)</li> - - <li>The font sizes in various places were too small, when using the - Classic skin. - (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=469136">[% terms.Bug %] 469136</a>)</li> -</ul> - -<h2><a name="v32_security">Security Fixes In This 3.2.x Release</a></h2> - -<h3>3.2.1</h3> - -<p>This release contains several security fixes. One fix may break any - automated scripts you have that are loading <kbd>process_bug.cgi</kbd> - directly. We recommend that you read the entire - <a href="http://www.bugzilla.org/security/2.22.6/">Security Advisory</a> - for this release.</p> - <h2><a name="v32_req"></a>Minimum Requirements</h2> <p>Any requirements that are new since 3.0.5 will look like @@ -142,7 +87,7 @@ features of [% terms.Bugzilla %]:</p> [% INCLUDE req_table reqs = OPTIONAL_MODULES - new = ['Authen-SASL', 'RadiusPerl'] + new = ['SASL-Authen', 'RadiusPerl'] updated = [] include_feature = 1 %] @@ -360,7 +305,7 @@ <li><strong>Authentication</strong>: [% terms.Bugzilla %] now supports RADIUS authentication.</li> - <li><strong>Security</strong>: The login cookie is now created as + <li><strong>Security</strong>: The login cookies is now created as "HTTPOnly" so that it can't be read by possibly malicious scripts. Also, if SSL is enabled on your installation, the login cookie is now only sent over SSL connections.</li> diff --git a/template/en/default/pages/sudo.html.tmpl b/template/en/default/pages/sudo.html.tmpl index dff2d7d87b15169de123f75a9e883cdc18712320..c790ff1abda694d9f1dc25fb5fa6cb95c02b2223 100644 --- a/template/en/default/pages/sudo.html.tmpl +++ b/template/en/default/pages/sudo.html.tmpl @@ -51,14 +51,14 @@ doing the impersonating has the appropriate privileges. </p> <p id="message"> - [% IF user.groups.bz_sudoers %] + [% IF user.in_group('bz_sudoers') %] You are a member of the <b>bz_sudoers</b> group. You may use this feature to impersonate others. [% ELSE %] You are not a member of an appropriate group. You may not use this feature. [% END %] - [% IF user.groups.bz_sudo_protect %] + [% IF user.in_group('bz_sudo_protect') %] <br> You are a member of the <b>bz_sudo_protect</b> group. Other people will not be able to use this feature to impersonate you. diff --git a/template/en/default/reports/CVS/Entries b/template/en/default/reports/CVS/Entries index a786a1ccb361ee5b3f30930f25896cf5d20da7dc..0f9904ce00ad4bec1eb17921baab83c8261e86ad 100644 --- a/template/en/default/reports/CVS/Entries +++ b/template/en/default/reports/CVS/Entries @@ -1,24 +1,23 @@ -/chart.csv.tmpl/1.3/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/chart.html.tmpl/1.4/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/chart.png.tmpl/1.6/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/components.html.tmpl/1.13/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/create-chart.html.tmpl/1.16/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/duplicates-simple.html.tmpl/1.5/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/duplicates-table.html.tmpl/1.14/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/duplicates.html.tmpl/1.19/Mon Mar 31 08:51:06 2008//TBUGZILLA-3_2_1 -/duplicates.rdf.tmpl/1.4/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/edit-series.html.tmpl/1.7/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/keywords.html.tmpl/1.10/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/menu.html.tmpl/1.9/Sun Nov 11 22:03:19 2007//TBUGZILLA-3_2_1 -/old-charts.html.tmpl/1.3/Sun Nov 11 22:03:19 2007//TBUGZILLA-3_2_1 -/report-bar.png.tmpl/1.8/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/report-line.png.tmpl/1.9/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/report-pie.png.tmpl/1.7/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/report-simple.html.tmpl/1.3/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/report-table.csv.tmpl/1.11/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/report-table.html.tmpl/1.16/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/report.csv.tmpl/1.3/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/report.html.tmpl/1.14/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/series-common.html.tmpl/1.5/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_2_1 -/series.html.tmpl/1.10/Mon Mar 31 08:51:06 2008//TBUGZILLA-3_2_1 +/chart.csv.tmpl/1.3/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/chart.html.tmpl/1.5/Wed Aug 27 02:32:26 2008//TBUGZILLA-3_3_1 +/chart.png.tmpl/1.6/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/components.html.tmpl/1.13/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/create-chart.html.tmpl/1.16/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/duplicates-simple.html.tmpl/1.5/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/duplicates-table.html.tmpl/1.14/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/duplicates.html.tmpl/1.19/Mon Mar 31 08:51:06 2008//TBUGZILLA-3_3_1 +/edit-series.html.tmpl/1.7/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/keywords.html.tmpl/1.10/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/menu.html.tmpl/1.9/Sun Nov 11 22:03:19 2007//TBUGZILLA-3_3_1 +/old-charts.html.tmpl/1.3/Sun Nov 11 22:03:19 2007//TBUGZILLA-3_3_1 +/report-bar.png.tmpl/1.8/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/report-line.png.tmpl/1.9/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/report-pie.png.tmpl/1.7/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/report-simple.html.tmpl/1.3/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/report-table.csv.tmpl/1.11/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/report-table.html.tmpl/1.16/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/report.csv.tmpl/1.3/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/report.html.tmpl/1.15/Wed Aug 27 02:32:26 2008//TBUGZILLA-3_3_1 +/series-common.html.tmpl/1.5/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1 +/series.html.tmpl/1.10/Mon Mar 31 08:51:06 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/reports/CVS/Tag b/template/en/default/reports/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/reports/CVS/Tag +++ b/template/en/default/reports/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/reports/chart.html.tmpl b/template/en/default/reports/chart.html.tmpl index 06a8d791fcdaf467b788d2fd62a608182db92555..e14744d311a3e57505f210c3b1714bf5827e05bb 100644 --- a/template/en/default/reports/chart.html.tmpl +++ b/template/en/default/reports/chart.html.tmpl @@ -25,9 +25,11 @@ height = 350 %] +[% time = time FILTER time('%Y-%m-%d %H:%M:%S') FILTER html %] + [% PROCESS global/header.html.tmpl title = "Chart" - header_addl_info = time2str("%Y-%m-%d %H:%M:%S", time) + header_addl_info = time %] <div align="center"> diff --git a/template/en/default/reports/duplicates.rdf.tmpl b/template/en/default/reports/duplicates.rdf.tmpl deleted file mode 100644 index 48fc44aa6522aaa21eedc48684a99cbfdc59119c..0000000000000000000000000000000000000000 --- a/template/en/default/reports/duplicates.rdf.tmpl +++ /dev/null @@ -1,50 +0,0 @@ -[%# The contents of this file are subject to the Mozilla Public - # License Version 1.1 (the "License"); you may not use this file - # except in compliance with the License. You may obtain a copy of - # the License at http://www.mozilla.org/MPL/ - # - # Software distributed under the License is distributed on an "AS - # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - # implied. See the License for the specific language governing - # rights and limitations under the License. - # - # The Original Code is the Bugzilla Bug Tracking System. - # - # The Initial Developer of the Original Code is Netscape Communications - # Corporation. Portions created by Netscape are - # Copyright (C) 1998 Netscape Communications Corporation. All - # Rights Reserved. - # - # Contributor(s): Myk Melez <myk@mozilla.org> - #%] - -<?xml version="1.0"[% IF Param('utf8') %] encoding="UTF-8"[% END %]?> -<!-- [% template_version %] --> -<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:bz="http://www.bugzilla.org/rdf#" - xmlns:nc="http://home.netscape.com/NC-rdf#"> - -<bz:duplicates_report rdf:about="[% urlbase FILTER xml %]data/duplicates.rdf"> - <bz:bugs> - <Seq> - [% FOREACH bug = bugs %] - <li> - <bz:bug rdf:about="[% urlbase FILTER xml %]show_bug.cgi?id=[% bug.id %]"> - <bz:id nc:parseType="Integer">[% bug.id %]</bz:id> - <bz:resolution>[% bug.resolution FILTER html %]</bz:resolution> - <bz:duplicate_count nc:parseType="Integer">[% bug.count %]</bz:duplicate_count> - <bz:duplicate_delta nc:parseType="Integer">[% bug.delta %]</bz:duplicate_delta> - <bz:component>[% bug.component FILTER html %]</bz:component> - <bz:severity>[% bug.bug_severity FILTER html %]</bz:severity> - <bz:os>[% bug.op_sys FILTER html %]</bz:os> - <bz:target_milestone>[% bug.target_milestone FILTER html %]</bz:target_milestone> - <bz:summary>[% bug.short_desc FILTER html %]</bz:summary> - </bz:bug> - </li> - [% END %] - </Seq> - </bz:bugs> -</bz:duplicates_report> - -</RDF> diff --git a/template/en/default/reports/report.html.tmpl b/template/en/default/reports/report.html.tmpl index b8e52219acdfeec0735f028447fea1f27f3e59d2..37af0b3006c0e9ad453c24a61f12f5eee2fbd848 100644 --- a/template/en/default/reports/report.html.tmpl +++ b/template/en/default/reports/report.html.tmpl @@ -66,6 +66,8 @@ [% col_field_disp FILTER html %] [% END %] +[% time = time FILTER time('%Y-%m-%d %H:%M:%S') FILTER html %] + [% PROCESS global/header.html.tmpl style = " .t1 { background-color: #ffffff } /* white */ @@ -74,7 +76,7 @@ .t4 { background-color: #c3d3ed } /* darker blue */ .ttotal { background-color: #cfffdf } /* light green */ " - header_addl_info = time2str("%Y-%m-%d %H:%M:%S", time) + header_addl_info = time %] [% IF debug %] diff --git a/template/en/default/request/CVS/Entries b/template/en/default/request/CVS/Entries index ba05c37b0a74d0e701a53085e68d3767ed3702f6..34aa17f6acbb0eea98505b81f9c8a60bdfe92a3a 100644 --- a/template/en/default/request/CVS/Entries +++ b/template/en/default/request/CVS/Entries @@ -1,3 +1,3 @@ -/email.txt.tmpl/1.20.2.1/Wed Aug 27 20:50:24 2008//TBUGZILLA-3_2_1 -/queue.html.tmpl/1.20/Wed May 14 03:34:25 2008//TBUGZILLA-3_2_1 +/email.txt.tmpl/1.21/Wed Aug 27 20:38:46 2008//TBUGZILLA-3_3_1 +/queue.html.tmpl/1.20/Wed May 14 03:34:25 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/request/CVS/Tag b/template/en/default/request/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/request/CVS/Tag +++ b/template/en/default/request/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/search/CVS/Entries b/template/en/default/search/CVS/Entries index 5ef44b308e4e5703365f0e0de37cdfec501aa2d6..10eb22f9cff14b90caece5236fafb1a694f06bc6 100644 --- a/template/en/default/search/CVS/Entries +++ b/template/en/default/search/CVS/Entries @@ -1,13 +1,14 @@ -/boolean-charts.html.tmpl/1.17.2.1/Sat May 24 09:39:56 2008//TBUGZILLA-3_2_1 -/form.html.tmpl/1.52.2.2/Thu Aug 14 00:27:41 2008//TBUGZILLA-3_2_1 -/knob.html.tmpl/1.21/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_2_1 -/search-advanced.html.tmpl/1.32/Sun Nov 11 22:03:21 2007//TBUGZILLA-3_2_1 -/search-create-series.html.tmpl/1.14/Sun Nov 11 22:03:21 2007//TBUGZILLA-3_2_1 -/search-help.html.tmpl/1.10/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_2_1 -/search-plugin.xml.tmpl/1.4/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_2_1 -/search-report-graph.html.tmpl/1.12.2.1/Tue Aug 12 07:59:20 2008//TBUGZILLA-3_2_1 -/search-report-select.html.tmpl/1.7/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_2_1 -/search-report-table.html.tmpl/1.13.2.1/Tue Aug 12 07:59:20 2008//TBUGZILLA-3_2_1 -/search-specific.html.tmpl/1.24/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_2_1 -/tabs.html.tmpl/1.7/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_2_1 +/boolean-charts.html.tmpl/1.19/Sat Dec 6 19:44:48 2008//TBUGZILLA-3_3_1 +/form.html.tmpl/1.55/Sat Dec 6 19:44:48 2008//TBUGZILLA-3_3_1 +/knob.html.tmpl/1.21/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_3_1 +/search-advanced.html.tmpl/1.33/Thu Sep 11 22:09:21 2008//TBUGZILLA-3_3_1 +/search-create-series.html.tmpl/1.14/Sun Nov 11 22:03:21 2007//TBUGZILLA-3_3_1 +/search-help.html.tmpl/1.10/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_3_1 +/search-plugin.xml.tmpl/1.5/Tue Dec 16 22:39:42 2008//TBUGZILLA-3_3_1 +/search-report-graph.html.tmpl/1.13/Tue Aug 12 07:58:07 2008//TBUGZILLA-3_3_1 +/search-report-select.html.tmpl/1.8/Sat Jan 3 01:08:28 2009//TBUGZILLA-3_3_1 +/search-report-table.html.tmpl/1.14/Tue Aug 12 07:58:07 2008//TBUGZILLA-3_3_1 +/search-specific.html.tmpl/1.24/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_3_1 +/tabs.html.tmpl/1.7/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_3_1 +/type-select.html.tmpl/1.2/Sat Dec 6 21:12:51 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/search/CVS/Tag b/template/en/default/search/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/search/CVS/Tag +++ b/template/en/default/search/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/search/boolean-charts.html.tmpl b/template/en/default/search/boolean-charts.html.tmpl index 97a10d4ab2b9ea8838ac3ff476a6bf1de2189337..db21be681dfebdb1e1087ac892dd569230de07bc 100644 --- a/template/en/default/search/boolean-charts.html.tmpl +++ b/template/en/default/search/boolean-charts.html.tmpl @@ -17,31 +17,34 @@ # # Contributor(s): Gervase Markham <gerv@gerv.net> #%] + +[% PROCESS "global/field-descs.none.tmpl" %] [% types = [ - { name => "noop", description => "---" }, - { name => "equals", description => "is equal to" }, - { name => "notequals", description => "is not equal to" }, - { name => "anyexact", description => "is equal to any of the strings" }, - { name => "substring", description => "contains the string" }, - { name => "casesubstring", description => "contains the string (exact case)" }, - { name => "notsubstring", description => "does not contain the string" }, - { name => "anywordssubstr", description => "contains any of the strings" }, - { name => "allwordssubstr", description => "contains all of the strings" }, - { name => "nowordssubstr", description => "contains none of the strings" }, - { name => "regexp", description => "contains regexp" }, - { name => "notregexp", description => "does not contain regexp" }, - { name => "lessthan", description => "is less than" }, - { name => "greaterthan", description => "is greater than" }, - { name => "anywords", description => "contains any of the words" }, - { name => "allwords", description => "contains all of the words" }, - { name => "nowords", description => "contains none of the words" }, - { name => "changedbefore", description => "changed before" }, - { name => "changedafter", description => "changed after" }, - { name => "changedfrom", description => "changed from" }, - { name => "changedto", description => "changed to" }, - { name => "changedby", description => "changed by" }, - { name => "matches", description => "matches" } ] %] + "noop", + "equals", + "notequals", + "anyexact", + "substring", + "casesubstring", + "notsubstring", + "anywordssubstr", + "allwordssubstr", + "nowordssubstr", + "regexp", + "notregexp", + "lessthan", + "greaterthan", + "anywords", + "allwords", + "nowords", + "changedbefore", + "changedafter", + "changedfrom", + "changedto", + "changedby", + "matches", +] %] <p> <strong> @@ -80,12 +83,9 @@ [% END %] </select> - <select name="[% "type${chartnum}-${rownum}-${colnum}" %]"> - [% FOREACH type = types %] - <option value="[% type.name %]" - [%- " selected" IF type.name == col.type %]>[% type.description %]</option> - [% END %] - </select> + [% INCLUDE "search/type-select.html.tmpl" + name = "type${chartnum}-${rownum}-${colnum}", + types = types, selected = col.type %] <input name="[% "value${chartnum}-${rownum}-${colnum}" %]" value="[% col.value FILTER html %]"> diff --git a/template/en/default/search/form.html.tmpl b/template/en/default/search/form.html.tmpl index 05b52dca40b972c406b3fc59538216cc8c184ebf..46df426c117040c907adb3cb8ae30d1ee734a75f 100644 --- a/template/en/default/search/form.html.tmpl +++ b/template/en/default/search/form.html.tmpl @@ -20,6 +20,8 @@ # Gervase Markham <gerv@gerv.net> #%] +[% PROCESS "global/field-descs.none.tmpl" %] + <script type="text/javascript"> var first_load = true; [%# is this the first time we load the page? %] @@ -103,20 +105,16 @@ function doOnSelectProduct(selectmode) { </script> - -[% PROCESS global/variables.none.tmpl %] - -[% query_variants = [ - { value => "allwordssubstr", description => "contains all of the words/strings" }, - { value => "anywordssubstr", description => "contains any of the words/strings" }, - { value => "substring", description => "contains the string" }, - { value => "casesubstring", description => "contains the string (exact case)" }, - { value => "allwords", description => "contains all of the words" }, - { value => "anywords", description => "contains any of the words" }, - { value => "regexp", description => "matches the regexp" }, - { value => "notregexp", description => "doesn't match the regexp" } ] %] - -[% PROCESS "global/field-descs.none.tmpl" %] +[% query_types = [ + "allwordssubstr", + "anywordssubstr", + "substring", + "casesubstring", + "allwords", + "anywords", + "regexp", + "notregexp", +] %] [%# If we resubmit to ourselves, we need to know if we are using a format. %] [% thisformat = query_format != '' ? query_format : format %] @@ -130,12 +128,9 @@ function doOnSelectProduct(selectmode) { <label for="short_desc" accesskey="s"><u>S</u>ummary</label>: </th> <td> - <select name="short_desc_type"> - [% FOREACH qv = query_variants %] - <option value="[% qv.value %]" - [% " selected" IF default.short_desc_type.0 == qv.value %]>[% qv.description %]</option> - [% END %] - </select> + [% INCLUDE "search/type-select.html.tmpl" + name = "short_desc_type", + types = query_types, selected = default.short_desc_type.0 %] </td> <td> <input name="short_desc" id="short_desc" size="40" @@ -265,7 +260,7 @@ function doOnSelectProduct(selectmode) { [%# *** Comment URL Whiteboard Keywords *** %] [% FOREACH field = [ - { name => "long_desc", description => "A <u>C</u>omment", + { name => "longdesc", description => "A <u>C</u>omment", accesskey => 'c' }, { name => "bug_file_loc", description => "The <u>U</u>RL", accesskey => 'u' }, @@ -278,13 +273,9 @@ function doOnSelectProduct(selectmode) { <label for="[% field.name %]" accesskey="[% field.accesskey %]">[% field.description %]</label>: </th> <td> - <select name="[% field.name %]_type"> - [% FOREACH qv = query_variants %] - [% type = "${field.name}_type" %] - <option value="[% qv.value %]" - [% " selected" IF default.$type.0 == qv.value %]>[% qv.description %]</option> - [% END %] - </select> + [% INCLUDE "search/type-select.html.tmpl" + name = field.name _ "_type", + types = query_types, selected = default.$type.0 %] </td> <td><input name="[% field.name %]" id="[% field.name %]" size="40" value="[% default.${field.name}.0 FILTER html %]"> @@ -300,17 +291,10 @@ function doOnSelectProduct(selectmode) { <label for="keywords" accesskey="k"><a href="describekeywords.cgi"><u>K</u>eywords</a></label>: </th> <td> - <select name="keywords_type"> - [% FOREACH qv = [ - { name => "allwords", description => "contains all of the keywords" }, - { name => "anywords", description => "contains any of the keywords" }, - { name => "nowords", description => "contains none of the keywords" } ] %] - - <option value="[% qv.name %]" - [% " selected" IF default.keywords_type.0 == qv.name %]> - [% qv.description %]</option> - [% END %] - </select> + [% INCLUDE "search/type-select.html.tmpl" + name = "keywords_type", + types = ['allwords', 'anywords', 'nowords'], + selected = default.keywords_type.0 %] </td> <td> <input name="keywords" id="keywords" size="40" diff --git a/template/en/default/search/search-advanced.html.tmpl b/template/en/default/search/search-advanced.html.tmpl index 1f1fd50ab8aeccdad8eab62b1cba79c65869bfd3..cb0519a817b599ef5786fdcf95be7b4310136fc1 100644 --- a/template/en/default/search/search-advanced.html.tmpl +++ b/template/en/default/search/search-advanced.html.tmpl @@ -64,7 +64,7 @@ var queryform = "queryform" // --> </script> -<form method="get" action="buglist.cgi" name="queryform"> +<form method="post" action="buglist.cgi" name="queryform"> [% PROCESS search/form.html.tmpl %] diff --git a/template/en/default/search/search-plugin.xml.tmpl b/template/en/default/search/search-plugin.xml.tmpl index fe870a85a4e6faa954ae8a2821e6a3ec7ac7e761..8564dca47d0ee8991e64deb2b71dd6e3bdc02873 100644 --- a/template/en/default/search/search-plugin.xml.tmpl +++ b/template/en/default/search/search-plugin.xml.tmpl @@ -19,6 +19,10 @@ <ShortName>[% terms.Bugzilla %]</ShortName> <Description>[% terms.Bugzilla %] Quick Search</Description> <InputEncoding>UTF-8</InputEncoding> -<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABGdBTUEAAK%2FINwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALBSURBVHjaYnxckcEAA3%2F%2B%2FT%2F17LUcH%2Fevf%2F8U%2BHmYGBkZMABAALEgc%2B68%2F3T227cf2tJKKhJLt59n%2FfmbnYnZV1KEhYkJrgYggBghNrz78fPIi3d8uvKBIdb%2FOaWPnzitLc97%2Bc5rFXnhnVO3%2BslLwjUABBDIhnsfPl%2Fj53VO91FX4Gfgkjxw%2Fd%2F6Q49%2FWStqyAj%2B%2B88gZqn%2B9u5rYU52iAaAAGL69%2F%2F%2F2d9%2FYiMclGT4fv76%2BZ9DbO%2FeA39%2BfJHVcvj5l%2Bnh03e%2FWThOvnwLtwEgAAAxAM7%2FBPj8%2FRYkHQYHAf3%2F%2Fv%2F%2B%2Fv8BAVNTUPX18yorLNHE2S8mB%2FT2%2Bq7a4dvu8iUSDgAAAAKICRgUv3%2F8ZGKGeIvpz6eXBvq61lZWLMwMv%2F5zMP7%2FqSAjVFyZ%2FNvZftuT10DnAAQAMQDO%2FwQIBAPz5Or6%2Ff0CBQEAAgT99ubq38z2%2BwT18%2FAM%2F%2BkNDAv6%2FQMCAA1GVVrhMze5h4kCCORpkd9%2F3n74KiHO%2B%2BffX8b%2Ff7m%2BXWP985%2Bf5R%2BPLNdfoK%2F%2F%2Ffv39%2BePj2%2FkZYR0fe0BAgikQZGX%2B9b9FzLS%2FH%2F%2B%2FGVgYGRlZWNlA7nv7z9QuDP8%2B8nw%2FRXjn68Mv4Gu%2FAwQQCCni3FxPLn7nIGZGegfNhYmNjYWZnBMASOakZER6Eumf9%2FYGT4y%2FHx%2F%2BfBFgAAC2cDGzPT99WeGvwzvv%2Fx89vrr%2F39%2FJER4pcT5Gf4z%2FP37D2jtj9%2B%2FL918fmzrKSsWNoAAgiaN%2Fz9%2Fff%2F6S4CP8%2BWbz9vWHfv54aukpAAz0Og%2Ff%2F7%2F%2Bs36668cO3ugED9QJUAAQTUArf7%2F8x87D9vRjcejhPiZhAUYcACAAGI5%2FOHH9ddvXzAxmjz%2B8P8lw4fXn5l4eRlwA4AAYmaTkBFg%2FKvJwfbkwZuXN57y%2Fv%2F34stXGR4uRmxpGwgAAgwA4%2FkfrfCWvLQAAAAASUVORK5CYII%3D</Image> +[% IF favicon %] + <Image width="16" height="16">data:image/x-icon;base64,[% favicon FILTER base64 %]</Image> +[% ELSE %] + <Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABGdBTUEAAK%2FINwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALBSURBVHjaYnxckcEAA3%2F%2B%2FT%2F17LUcH%2Fevf%2F8U%2BHmYGBkZMABAALEgc%2B68%2F3T227cf2tJKKhJLt59n%2FfmbnYnZV1KEhYkJrgYggBghNrz78fPIi3d8uvKBIdb%2FOaWPnzitLc97%2Bc5rFXnhnVO3%2BslLwjUABBDIhnsfPl%2Fj53VO91FX4Gfgkjxw%2Fd%2F6Q49%2FWStqyAj%2B%2B88gZqn%2B9u5rYU52iAaAAGL69%2F%2F%2F2d9%2FYiMclGT4fv76%2BZ9DbO%2FeA39%2BfJHVcvj5l%2Bnh03e%2FWThOvnwLtwEgAAAxAM7%2FBPj8%2FRYkHQYHAf3%2F%2Fv%2F%2B%2Fv8BAVNTUPX18yorLNHE2S8mB%2FT2%2Bq7a4dvu8iUSDgAAAAKICRgUv3%2F8ZGKGeIvpz6eXBvq61lZWLMwMv%2F5zMP7%2FqSAjVFyZ%2FNvZftuT10DnAAQAMQDO%2FwQIBAPz5Or6%2Ff0CBQEAAgT99ubq38z2%2BwT18%2FAM%2F%2BkNDAv6%2FQMCAA1GVVrhMze5h4kCCORpkd9%2F3n74KiHO%2B%2BffX8b%2Ff7m%2BXWP985%2Bf5R%2BPLNdfoK%2F%2F%2Ffv39%2BePj2%2FkZYR0fe0BAgikQZGX%2B9b9FzLS%2FH%2F%2B%2FGVgYGRlZWNlA7nv7z9QuDP8%2B8nw%2FRXjn68Mv4Gu%2FAwQQCCni3FxPLn7nIGZGegfNhYmNjYWZnBMASOakZER6Eumf9%2FYGT4y%2FHx%2F%2BfBFgAAC2cDGzPT99WeGvwzvv%2Fx89vrr%2F39%2FJER4pcT5Gf4z%2FP37D2jtj9%2B%2FL918fmzrKSsWNoAAgiaN%2Fz9%2Fff%2F6S4CP8%2BWbz9vWHfv54aukpAAz0Og%2Ff%2F7%2F%2Bs36668cO3ugED9QJUAAQTUArf7%2F8x87D9vRjcejhPiZhAUYcACAAGI5%2FOHH9ddvXzAxmjz%2B8P8lw4fXn5l4eRlwA4AAYmaTkBFg%2FKvJwfbkwZuXN57y%2Fv%2F34stXGR4uRmxpGwgAAgwA4%2FkfrfCWvLQAAAAASUVORK5CYII%3D</Image> +[% END %] <Url type="text/html" method="GET" template="[% urlbase FILTER xml %]buglist.cgi?quicksearch={searchTerms}"/> </OpenSearchDescription> diff --git a/template/en/default/search/search-report-select.html.tmpl b/template/en/default/search/search-report-select.html.tmpl index e893bf6a7ecffb2ddf0e2c9fd3ad81361c0666e6..de647871634d4d641e641f6208169628afa3c681 100644 --- a/template/en/default/search/search-report-select.html.tmpl +++ b/template/en/default/search/search-report-select.html.tmpl @@ -43,5 +43,12 @@ [% " selected" IF default.$name.0 == field %]> [% field_descs.$field || field FILTER html %]</option> [% END %] + + [%# Single-select fields are also valid column names. %] + [% FOREACH field = custom_fields %] + <option value="[% field.name FILTER html %]" + [% " selected" IF default.$name.0 == field.name %]> + [% field.description FILTER html %]</option> + [% END %] </select> [% END %] diff --git a/template/en/default/search/type-select.html.tmpl b/template/en/default/search/type-select.html.tmpl new file mode 100644 index 0000000000000000000000000000000000000000..043c4194a446fc7640f93d48609cda8685d5bf63 --- /dev/null +++ b/template/en/default/search/type-select.html.tmpl @@ -0,0 +1,29 @@ +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is the San Jose State + # University Foundation. Portions created by the Initial Developer are + # Copyright (C) 2008 the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +<select name="[% name FILTER html %]"> + [% FOREACH type = types %] + <option value="[% type FILTER html %]" + [%- ' selected="selected"' IF type == selected %]> + [%- search_descs.$type FILTER html %]</option> + [% END %] +</select> diff --git a/template/en/default/setup/CVS/Entries b/template/en/default/setup/CVS/Entries index 5097bb0c530ebddf06a48fc980563e4d45ac423e..ca7db186c429a91eb6dbdff5387d6102ecc53f5b 100644 --- a/template/en/default/setup/CVS/Entries +++ b/template/en/default/setup/CVS/Entries @@ -1,2 +1,2 @@ -/strings.txt.pl/1.8/Mon Jan 28 00:54:59 2008//TBUGZILLA-3_2_1 +/strings.txt.pl/1.8/Mon Jan 28 00:54:59 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/setup/CVS/Tag b/template/en/default/setup/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/setup/CVS/Tag +++ b/template/en/default/setup/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/sidebar.xul.tmpl b/template/en/default/sidebar.xul.tmpl index 31c14729f9cc23658684c1c0741b61ec9a1548ba..8035c8298bbf53273909c7148c9220199756a644 100644 --- a/template/en/default/sidebar.xul.tmpl +++ b/template/en/default/sidebar.xul.tmpl @@ -69,31 +69,31 @@ function normal_keypress_handler( aEvent ) { [% IF user.id %] <text class="text-link" onclick="load_relative_url('userprefs.cgi')" value="edit prefs"/> - [%- IF user.groups.tweakparams %] + [%- IF user.in_group('tweakparams') %] <text class="text-link" onclick="load_relative_url('editparams.cgi')" value="edit params"/> <text class="text-link" onclick="load_relative_url('editsettings.cgi')" value="edit default preferences"/> [%- END %] - [%- IF user.groups.editusers || user.can_bless %] + [%- IF user.in_group('editusers') || user.can_bless %] <text class="text-link" onclick="load_relative_url('editusers.cgi')" value="edit users"/> [%- END %] - [%- IF Param('useclassification') && user.groups.editclassifications %] + [%- IF Param('useclassification') && user.in_group('editclassifications') %] <text class="text-link" onclick="load_relative_url('editclassifications.cgi')" value="edit classifications"/> [%- END %] - [%- IF user.groups.editcomponents %] + [%- IF user.in_group('editcomponents') %] <text class="text-link" onclick="load_relative_url('editcomponents.cgi')" value="edit components"/> <text class="text-link" onclick="load_relative_url('editflagtypes.cgi')" value="edit flags"/> <text class="text-link" onclick="load_relative_url('editvalues.cgi')" value="edit field values"/> [%- END %] - [%- IF user.groups.creategroups %] + [%- IF user.in_group('creategroups') %] <text class="text-link" onclick="load_relative_url('editgroups.cgi')" value="edit groups"/> [%- END %] - [%- IF user.groups.editkeywords %] + [%- IF user.in_group('editkeywords') %] <text class="text-link" onclick="load_relative_url('editkeywords.cgi')" value="edit keywords"/> [%- END %] - [%- IF user.groups.bz_canusewhines %] + [%- IF user.in_group('bz_canusewhines') %] <text class="text-link" onclick="load_relative_url('editwhines.cgi')" value="edit whining"/> [%- END %] - [%- IF user.groups.editcomponents %] + [%- IF user.in_group('editcomponents') %] <text class="text-link" onclick="load_relative_url('sanitycheck.cgi')" value="sanity check"/> [%- END %] [%- IF user.authorizer.can_logout %] diff --git a/template/en/default/welcome-admin.html.tmpl b/template/en/default/welcome-admin.html.tmpl index 6e5e36ba4e17d2b2c6bc5d518f5a99f717a28518..ff26fcbc9f1391d74bab5f6033ac13916f87289a 100644 --- a/template/en/default/welcome-admin.html.tmpl +++ b/template/en/default/welcome-admin.html.tmpl @@ -34,11 +34,11 @@ The goal of this page is to inform you about the last steps required to set up your installation correctly.</p> - <p>As an administrator, you have access to all administrative pages, accessible from - the <a href="admin.cgi">Administration</a> link visible at the bottom of this page. - This link will always be visible, on all pages. From there, you must visit at least - the <a href="editparams.cgi">Parameters</a> page, from where you can set all important - parameters for this installation; among others:</p> + <p>As an administrator, several administrative links are available at the bottom of + this page. These links will always be visible, on all pages. Among these links, + you must visit at least the <a href="editparams.cgi">Parameters</a> one, + which is the page from where you can set all important parameters for this installation. + By clicking this link, you will be able to set among others:</p> <ul> <li><a href="editparams.cgi?section=core#maintainer">maintainer</a>, the person diff --git a/template/en/default/whine/CVS/Entries b/template/en/default/whine/CVS/Entries index a05055d4e4c3b7532f030d291203a2712eba430c..0e0c085d3b5c1398b39df06d505ee7e1be3ddc6c 100644 --- a/template/en/default/whine/CVS/Entries +++ b/template/en/default/whine/CVS/Entries @@ -1,5 +1,5 @@ -/mail.html.tmpl/1.7/Mon Aug 20 18:25:09 2007//TBUGZILLA-3_2_1 -/mail.txt.tmpl/1.7/Mon Aug 20 18:25:09 2007//TBUGZILLA-3_2_1 -/multipart-mime.txt.tmpl/1.6/Mon Aug 20 18:25:09 2007//TBUGZILLA-3_2_1 -/schedule.html.tmpl/1.11.2.1/Mon Sep 8 20:39:29 2008//TBUGZILLA-3_2_1 +/mail.html.tmpl/1.7/Mon Aug 20 18:25:09 2007//TBUGZILLA-3_3_1 +/mail.txt.tmpl/1.7/Mon Aug 20 18:25:09 2007//TBUGZILLA-3_3_1 +/multipart-mime.txt.tmpl/1.6/Mon Aug 20 18:25:09 2007//TBUGZILLA-3_3_1 +/schedule.html.tmpl/1.13/Mon Sep 8 20:37:51 2008//TBUGZILLA-3_3_1 D diff --git a/template/en/default/whine/CVS/Tag b/template/en/default/whine/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/default/whine/CVS/Tag +++ b/template/en/default/whine/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/template/en/default/whine/schedule.html.tmpl b/template/en/default/whine/schedule.html.tmpl index 0917f47807981d15826c83edec2d7f7707f2942d..6fe19957bf88ce4d4be5ddbdcd1908864b07fe7f 100644 --- a/template/en/default/whine/schedule.html.tmpl +++ b/template/en/default/whine/schedule.html.tmpl @@ -72,11 +72,7 @@ </p> <p> - [% IF Param("timezone") %] - All times are server local time ([% Param("timezone") FILTER upper %]). - [% ELSE %] - All times are server local time. - [% END %] + All times are server local time ([% local_timezone FILTER html %]). </p> <form method="post" action="editwhines.cgi"> diff --git a/template/en/extension/CVS/Entries b/template/en/extension/CVS/Entries index 0882396a9dbea140d7f2a14161486a7134ffd2aa..2c245a28a6799600695b3342ebcb4c579f7e83fd 100644 --- a/template/en/extension/CVS/Entries +++ b/template/en/extension/CVS/Entries @@ -1,2 +1,2 @@ -/filterexceptions.pl/1.2/Sat Feb 25 23:10:53 2006//TBUGZILLA-3_2_1 +/filterexceptions.pl/1.2/Sat Feb 25 23:10:53 2006//TBUGZILLA-3_3_1 D diff --git a/template/en/extension/CVS/Tag b/template/en/extension/CVS/Tag index e711c520b1111d84a0397cbd64eddb6d840f32fc..fbedea21ce8ecdf9268a4ea4704638ca4869f24c 100644 --- a/template/en/extension/CVS/Tag +++ b/template/en/extension/CVS/Tag @@ -1 +1 @@ -NBUGZILLA-3_2_1 +NBUGZILLA-3_3_1 diff --git a/testserver.pl b/testserver.pl index 9b649277caa21a5fd196d413206a4429ee8c3fe9..d3cab1dc5538fe1bc6b79df98e6aa912a618a2b7 100755 --- a/testserver.pl +++ b/testserver.pl @@ -21,13 +21,7 @@ use strict; use lib qw(. lib); -BEGIN { - my $envpath = $ENV{'PATH'}; - require Bugzilla; - # $ENV{'PATH'} is required by the 'ps' command to run correctly. - $ENV{'PATH'} = $envpath; -} - +use Bugzilla; use Bugzilla::Constants; use Socket; diff --git a/token.cgi b/token.cgi index d7f9f3c98a52b1682ba651afc83fe7343fae8c30..34a0173760625229f9649191a439b6c99da6008b 100755 --- a/token.cgi +++ b/token.cgi @@ -44,6 +44,9 @@ local our $cgi = Bugzilla->cgi; local our $template = Bugzilla->template; local our $vars = {}; +my $action = $cgi->param('a'); +my $token = $cgi->param('t'); + Bugzilla->login(LOGIN_OPTIONAL); ################################################################################ @@ -52,47 +55,40 @@ Bugzilla->login(LOGIN_OPTIONAL); # Throw an error if the form does not contain an "action" field specifying # what the user wants to do. -$cgi->param('a') || ThrowCodeError("unknown_action"); - -# Assign the action to a global variable. -$::action = $cgi->param('a'); +$action || ThrowCodeError("unknown_action"); # If a token was submitted, make sure it is a valid token that exists in the # database and is the correct type for the action being taken. -if ($cgi->param('t')) { - # Assign the token and its SQL quoted equivalent to global variables. - $::token = $cgi->param('t'); - - # Make sure the token contains only valid characters in the right amount. - # validate_password will throw an error if token is invalid - validate_password($::token); - +if ($token) { Bugzilla::Token::CleanTokenTable(); + # It's safe to detaint the token as it's used in a placeholder. + trick_taint($token); + # Make sure the token exists in the database. my ($tokentype) = $dbh->selectrow_array('SELECT tokentype FROM tokens - WHERE token = ?', undef, $::token); + WHERE token = ?', undef, $token); $tokentype || ThrowUserError("token_does_not_exist"); # Make sure the token is the correct type for the action being taken. - if ( grep($::action eq $_ , qw(cfmpw cxlpw chgpw)) && $tokentype ne 'password' ) { - Bugzilla::Token::Cancel($::token, "wrong_token_for_changing_passwd"); + if ( grep($action eq $_ , qw(cfmpw cxlpw chgpw)) && $tokentype ne 'password' ) { + Bugzilla::Token::Cancel($token, "wrong_token_for_changing_passwd"); ThrowUserError("wrong_token_for_changing_passwd"); } - if ( ($::action eq 'cxlem') + if ( ($action eq 'cxlem') && (($tokentype ne 'emailold') && ($tokentype ne 'emailnew')) ) { - Bugzilla::Token::Cancel($::token, "wrong_token_for_cancelling_email_change"); + Bugzilla::Token::Cancel($token, "wrong_token_for_cancelling_email_change"); ThrowUserError("wrong_token_for_cancelling_email_change"); } - if ( grep($::action eq $_ , qw(cfmem chgem)) + if ( grep($action eq $_ , qw(cfmem chgem)) && ($tokentype ne 'emailnew') ) { - Bugzilla::Token::Cancel($::token, "wrong_token_for_confirming_email_change"); + Bugzilla::Token::Cancel($token, "wrong_token_for_confirming_email_change"); ThrowUserError("wrong_token_for_confirming_email_change"); } - if (($::action =~ /^(request|confirm|cancel)_new_account$/) + if (($action =~ /^(request|confirm|cancel)_new_account$/) && ($tokentype ne 'account')) { - Bugzilla::Token::Cancel($::token, 'wrong_token_for_creating_account'); + Bugzilla::Token::Cancel($token, 'wrong_token_for_creating_account'); ThrowUserError('wrong_token_for_creating_account'); } } @@ -102,7 +98,7 @@ if ($cgi->param('t')) { # their login name and it exists in the database, and that the DB module is in # the list of allowed verification methods. my $user_account; -if ( $::action eq 'reqpw' ) { +if ( $action eq 'reqpw' ) { my $login_name = $cgi->param('loginname') || ThrowUserError("login_needed_for_password_change"); @@ -115,12 +111,18 @@ if ( $::action eq 'reqpw' ) { || ThrowUserError('illegal_email_address', {addr => $login_name}); $user_account = Bugzilla::User->check($login_name); + + # Make sure the user account is active. + if ($user_account->is_disabled) { + ThrowUserError('account_disabled', + {disabled_reason => get_text('account_disabled', {account => $login_name})}); + } } # If the user is changing their password, make sure they submitted a new # password and that the new password is valid. my $password; -if ( $::action eq 'chgpw' ) { +if ( $action eq 'chgpw' ) { $password = $cgi->param('password'); defined $password && defined $cgi->param('matchpassword') @@ -137,31 +139,31 @@ if ( $::action eq 'chgpw' ) { # determines what the user wants to do. The code below checks the value of # that variable and runs the appropriate code. -if ($::action eq 'reqpw') { +if ($action eq 'reqpw') { requestChangePassword($user_account); -} elsif ($::action eq 'cfmpw') { - confirmChangePassword(); -} elsif ($::action eq 'cxlpw') { - cancelChangePassword(); -} elsif ($::action eq 'chgpw') { - changePassword($password); -} elsif ($::action eq 'cfmem') { - confirmChangeEmail(); -} elsif ($::action eq 'cxlem') { - cancelChangeEmail(); -} elsif ($::action eq 'chgem') { - changeEmail(); -} elsif ($::action eq 'request_new_account') { - request_create_account(); -} elsif ($::action eq 'confirm_new_account') { - confirm_create_account(); -} elsif ($::action eq 'cancel_new_account') { - cancel_create_account(); +} elsif ($action eq 'cfmpw') { + confirmChangePassword($token); +} elsif ($action eq 'cxlpw') { + cancelChangePassword($token); +} elsif ($action eq 'chgpw') { + changePassword($token, $password); +} elsif ($action eq 'cfmem') { + confirmChangeEmail($token); +} elsif ($action eq 'cxlem') { + cancelChangeEmail($token); +} elsif ($action eq 'chgem') { + changeEmail($token); +} elsif ($action eq 'request_new_account') { + request_create_account($token); +} elsif ($action eq 'confirm_new_account') { + confirm_create_account($token); +} elsif ($action eq 'cancel_new_account') { + cancel_create_account($token); } else { # If the action that the user wants to take (specified in the "a" form field) # is none of the above listed actions, display an error telling the user # that we do not understand what they would like to do. - ThrowCodeError("unknown_action", { action => $::action }); + ThrowCodeError("unknown_action", { action => $action }); } exit; @@ -182,16 +184,18 @@ sub requestChangePassword { } sub confirmChangePassword { - $vars->{'token'} = $::token; - + my $token = shift; + $vars->{'token'} = $token; + print $cgi->header(); $template->process("account/password/set-forgotten-password.html.tmpl", $vars) || ThrowTemplateError($template->error()); } -sub cancelChangePassword { +sub cancelChangePassword { + my $token = shift; $vars->{'message'} = "password_change_canceled"; - Bugzilla::Token::Cancel($::token, $vars->{'message'}); + Bugzilla::Token::Cancel($token, $vars->{'message'}); print $cgi->header(); $template->process("global/message.html.tmpl", $vars) @@ -199,7 +203,7 @@ sub cancelChangePassword { } sub changePassword { - my ($password) = @_; + my ($token, $password) = @_; my $dbh = Bugzilla->dbh; # Create a crypted version of the new password @@ -207,7 +211,7 @@ sub changePassword { # Get the user's ID from the tokens table. my ($userid) = $dbh->selectrow_array('SELECT userid FROM tokens - WHERE token = ?', undef, $::token); + WHERE token = ?', undef, $token); # Update the user's password in the profiles table and delete the token # from the tokens table. @@ -216,7 +220,7 @@ sub changePassword { SET cryptpassword = ? WHERE userid = ?}, undef, ($cryptedpassword, $userid) ); - $dbh->do('DELETE FROM tokens WHERE token = ?', undef, $::token); + $dbh->do('DELETE FROM tokens WHERE token = ?', undef, $token); $dbh->bz_commit_transaction(); Bugzilla->logout_user_by_id($userid); @@ -229,22 +233,22 @@ sub changePassword { } sub confirmChangeEmail { - # Return HTTP response headers. - print $cgi->header(); - - $vars->{'token'} = $::token; + my $token = shift; + $vars->{'token'} = $token; + print $cgi->header(); $template->process("account/email/confirm.html.tmpl", $vars) || ThrowTemplateError($template->error()); } sub changeEmail { + my $token = shift; my $dbh = Bugzilla->dbh; # Get the user's ID from the tokens table. my ($userid, $eventdata) = $dbh->selectrow_array( q{SELECT userid, eventdata FROM tokens - WHERE token = ?}, undef, $::token); + WHERE token = ?}, undef, $token); my ($old_email, $new_email) = split(/:/,$eventdata); # Check the user entered the correct old email address @@ -255,7 +259,7 @@ sub changeEmail { # confirmed initially so cancel token if it is not still available if (! is_available_username($new_email,$old_email)) { $vars->{'email'} = $new_email; # Needed for Bugzilla::Token::Cancel's mail - Bugzilla::Token::Cancel($::token, "account_exists", $vars); + Bugzilla::Token::Cancel($token, "account_exists", $vars); ThrowUserError("account_exists", { email => $new_email } ); } @@ -266,7 +270,7 @@ sub changeEmail { SET login_name = ? WHERE userid = ?}, undef, ($new_email, $userid)); - $dbh->do('DELETE FROM tokens WHERE token = ?', undef, $::token); + $dbh->do('DELETE FROM tokens WHERE token = ?', undef, $token); $dbh->do(q{DELETE FROM tokens WHERE userid = ? AND tokentype = 'emailnew'}, undef, $userid); $dbh->bz_commit_transaction(); @@ -287,12 +291,13 @@ sub changeEmail { } sub cancelChangeEmail { + my $token = shift; my $dbh = Bugzilla->dbh; # Get the user's ID from the tokens table. my ($userid, $tokentype, $eventdata) = $dbh->selectrow_array( q{SELECT userid, tokentype, eventdata FROM tokens - WHERE token = ?}, undef, $::token); + WHERE token = ?}, undef, $token); my ($old_email, $new_email) = split(/:/,$eventdata); if($tokentype eq "emailold") { @@ -327,7 +332,7 @@ sub cancelChangeEmail { $vars->{'old_email'} = $old_email; $vars->{'new_email'} = $new_email; - Bugzilla::Token::Cancel($::token, $vars->{'message'}, $vars); + Bugzilla::Token::Cancel($token, $vars->{'message'}, $vars); $dbh->do(q{DELETE FROM tokens WHERE userid = ? AND tokentype = 'emailold' OR tokentype = 'emailnew'}, @@ -341,8 +346,10 @@ sub cancelChangeEmail { } sub request_create_account { - my (undef, $date, $login_name) = Bugzilla::Token::GetTokenData($::token); - $vars->{'token'} = $::token; + my $token = shift; + + my (undef, $date, $login_name) = Bugzilla::Token::GetTokenData($token); + $vars->{'token'} = $token; $vars->{'email'} = $login_name . Bugzilla->params->{'emailsuffix'}; $vars->{'date'} = str2time($date); @@ -360,7 +367,9 @@ sub request_create_account { } sub confirm_create_account { - my (undef, undef, $login_name) = Bugzilla::Token::GetTokenData($::token); + my $token = shift; + + my (undef, undef, $login_name) = Bugzilla::Token::GetTokenData($token); my $password = $cgi->param('passwd1') || ''; validate_password($password, $cgi->param('passwd2') || ''); @@ -371,7 +380,7 @@ sub confirm_create_account { cryptpassword => $password}); # Now delete this token. - delete_token($::token); + delete_token($token); # Let the user know that his user account has been successfully created. $vars->{'message'} = 'account_created'; @@ -385,11 +394,13 @@ sub confirm_create_account { } sub cancel_create_account { - my (undef, undef, $login_name) = Bugzilla::Token::GetTokenData($::token); + my $token = shift; + + my (undef, undef, $login_name) = Bugzilla::Token::GetTokenData($token); $vars->{'message'} = 'account_creation_canceled'; $vars->{'account'} = $login_name; - Bugzilla::Token::Cancel($::token, $vars->{'message'}); + Bugzilla::Token::Cancel($token, $vars->{'message'}); print $cgi->header(); $template->process('global/message.html.tmpl', $vars) diff --git a/userprefs.cgi b/userprefs.cgi index 3b01e8f338e2b510780f006a6f114ccd86c4d2c5..1bf2d7f5f3ea8cdfb803fd36b8afdc089e43b8e6 100755 --- a/userprefs.cgi +++ b/userprefs.cgi @@ -92,12 +92,7 @@ sub SaveAccount { my $oldpassword = $cgi->param('Bugzilla_password'); - # Wide characters cause crypt to die - if (Bugzilla->params->{'utf8'}) { - utf8::encode($oldpassword) if utf8::is_utf8($oldpassword); - } - - if (crypt($oldpassword, $oldcryptedpwd) ne $oldcryptedpwd) + if (bz_crypt($oldpassword, $oldcryptedpwd) ne $oldcryptedpwd) { ThrowUserError("old_password_incorrect"); } @@ -210,29 +205,27 @@ sub DoEmail { ########################################################################### # User watching ########################################################################### - if (Bugzilla->params->{"supportwatchers"}) { - my $watched_ref = $dbh->selectcol_arrayref( - "SELECT profiles.login_name FROM watch INNER JOIN profiles" . - " ON watch.watched = profiles.userid" . - " WHERE watcher = ?" . - " ORDER BY profiles.login_name", - undef, $user->id); - $vars->{'watchedusers'} = $watched_ref; - - my $watcher_ids = $dbh->selectcol_arrayref( - "SELECT watcher FROM watch WHERE watched = ?", - undef, $user->id); - - my @watchers; - foreach my $watcher_id (@$watcher_ids) { - my $watcher = new Bugzilla::User($watcher_id); - push (@watchers, Bugzilla::User::identity($watcher)); - } - - @watchers = sort { lc($a) cmp lc($b) } @watchers; - $vars->{'watchers'} = \@watchers; + my $watched_ref = $dbh->selectcol_arrayref( + "SELECT profiles.login_name FROM watch INNER JOIN profiles" . + " ON watch.watched = profiles.userid" . + " WHERE watcher = ?" . + " ORDER BY profiles.login_name", + undef, $user->id); + $vars->{'watchedusers'} = $watched_ref; + + my $watcher_ids = $dbh->selectcol_arrayref( + "SELECT watcher FROM watch WHERE watched = ?", + undef, $user->id); + + my @watchers; + foreach my $watcher_id (@$watcher_ids) { + my $watcher = new Bugzilla::User($watcher_id); + push(@watchers, Bugzilla::User::identity($watcher)); } + @watchers = sort { lc($a) cmp lc($b) } @watchers; + $vars->{'watchers'} = \@watchers; + ########################################################################### # Role-based preferences ########################################################################### @@ -254,9 +247,7 @@ sub SaveEmail { my $cgi = Bugzilla->cgi; my $user = Bugzilla->user; - if (Bugzilla->params->{"supportwatchers"}) { - Bugzilla::User::match_field($cgi, { 'new_watchedusers' => {'type' => 'multi'} }); - } + Bugzilla::User::match_field($cgi, { 'new_watchedusers' => {'type' => 'multi'} }); ########################################################################### # Role-based preferences @@ -313,9 +304,8 @@ sub SaveEmail { ########################################################################### # User watching ########################################################################### - if (Bugzilla->params->{"supportwatchers"} - && (defined $cgi->param('new_watchedusers') - || defined $cgi->param('remove_watched_users'))) + if (defined $cgi->param('new_watchedusers') + || defined $cgi->param('remove_watched_users')) { $dbh->bz_start_transaction(); @@ -406,7 +396,7 @@ sub DoSavedSearches { $vars->{'queryshare_groups'} = Bugzilla::Group->new_from_list($user->queryshare_groups); } - $vars->{'bless_group_ids'} = [map {$_->{'id'}} @{$user->bless_groups}]; + $vars->{'bless_group_ids'} = [map { $_->id } @{$user->bless_groups}]; } sub SaveSavedSearches { @@ -527,9 +517,6 @@ trick_taint($current_tab_name); $vars->{'current_tab_name'} = $current_tab_name; -my $token = $cgi->param('token'); -check_token_data($token, 'edit_user_prefs') if $cgi->param('dosave'); - # Do any saving, and then display the current tab. SWITCH: for ($current_tab_name) { /^account$/ && do { @@ -560,11 +547,6 @@ SWITCH: for ($current_tab_name) { { current_tab_name => $current_tab_name }); } -delete_token($token) if $cgi->param('dosave'); -if ($current_tab_name ne 'permissions') { - $vars->{'token'} = issue_session_token('edit_user_prefs'); -} - # Generate and return the UI (HTML page) from the appropriate template. print $cgi->header(); $template->process("account/prefs/prefs.html.tmpl", $vars) diff --git a/votes.cgi b/votes.cgi index 961db7aa5af038eb8fef314124f47cad428dda61..af41af0e48111f0a72ee49740d0740871221d46c 100755 --- a/votes.cgi +++ b/votes.cgi @@ -67,7 +67,10 @@ else { # Make sure the bug ID is a positive integer representing an existing # bug that the user is authorized to access. -ValidateBugID($bug_id) if defined $bug_id; +if (defined $bug_id) { + my $bug = Bugzilla::Bug->check($bug_id); + $bug_id = $bug->id; +} ################################################################################ # End Data/Security Validation @@ -244,14 +247,15 @@ sub record_votes { } } - # Call ValidateBugID on each bug ID to make sure it is a positive + # Call check() on each bug ID to make sure it is a positive # integer representing an existing bug that the user is authorized # to access, and make sure the number of votes submitted is also # a non-negative integer (a series of digits not preceded by a # minus sign). my %votes; foreach my $id (@buglist) { - ValidateBugID($id); + my $bug = Bugzilla::Bug->check($id); + $id = $bug->id; $votes{$id} = $cgi->param($id); detaint_natural($votes{$id}) || ThrowUserError("votes_must_be_nonnegative");