debian/0000775000000000000000000000000012317242200007161 5ustar debian/apache2.preinst0000664000000000000000000001100512262777736012121 0ustar #! /bin/bash # preinst script for apache2 # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `install' # * `install' # * `upgrade' # * `abort-upgrade' # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package # XXX remove # echo apache2.preinst $@ running # XXX: Whichever file you add in one of the sections below, make sure you copy # the same file arrays to apache2.postinst and apache2.postrm, too! OBSOLETE_CONFFILES="/etc/apache2/mods-available/authz_default.load /etc/apache2/mods-available/authn_default.load /etc/apache2/mods-available/mem_cache.load /etc/apache2/mods-available/mem_cache.conf /etc/apache2/mods-available/authn_alias.load /etc/apache2/mods-available/cern_meta.load /etc/apache2/mods-available/disk_cache.load /etc/apache2/mods-available/disk_cache.conf /etc/apache2/mods-available/ident.load /etc/apache2/mods-available/imagemap.load /etc/apache2/mods-available/version.load" # conffiles which moved from one random location to another, separate source and # destination by a colon MOVED_CONFFILES="/etc/bash_completion.d/apache2.2-common:/etc/bash_completion.d/apache2 /etc/apache2/sites-available/default:/etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default-ssl:/etc/apache2/sites-available/default-ssl.conf /etc/apache2/conf.d/charset:/etc/apache2/conf-available/charset.conf /etc/apache2/conf.d/localized-error-pages:/etc/apache2/conf-available/localized-error-pages.conf /etc/apache2/conf.d/other-vhosts-access-log:/etc/apache2/conf-available/other-vhosts-access-log.conf /etc/apache2/conf.d/security:/etc/apache2/conf-available/security.conf" obsolete_conffile_exists() { for CONFFILE in $OBSOLETE_CONFFILES ; do if [ -e "$CONFFILE" ] ; then return 0 fi done for CONFFILE in $MOVED_CONFFILES_IN ; do if [ -e "/etc/apache2/conf.d/$CONFFILE" ] ; then return 0 fi done return 1 } # The two functions below are licensed GPL-2+ and was written by dpkg maintainers # See the dpkg-maintscript-helper script for details prepare_rm_conffile() { for CONFFILE in $OBSOLETE_CONFFILES ; do [ -e "$CONFFILE" ] || continue local md5sum="$(md5sum $CONFFILE | sed -e 's/ .*//')" local old_md5sum="$(dpkg-query -W -f='${Conffiles}' apache2.2-common apache2 | \ sed -n -e "\' $CONFFILE ' { s/ obsolete$//; s/.* //; p }")" if [ "$md5sum" != "$old_md5sum" ]; then echo "Obsolete conffile $CONFFILE has been modified by you." echo "Saving as $CONFFILE.dpkg-bak ..." mv -f "$CONFFILE" "$CONFFILE.dpkg-backup" else echo "Moving obsolete conffile $CONFFILE out of the way..." mv -f "$CONFFILE" "$CONFFILE.dpkg-remove" fi done } prepare_mv_conffile() { for CONFFILE in $MOVED_CONFFILES ; do CONFFILE=$( echo "$CONFFILE" | cut -d: -f1 ) [ -e "$CONFFILE" ] || continue local md5sum="$(md5sum $CONFFILE | sed -e 's/ .*//')" local old_md5sum="$(dpkg-query -W -f='${Conffiles}' apache2.2-common apache2 | \ sed -n -e "\' $CONFFILE ' { s/ obsolete$//; s/.* //; p }")" if [ "$md5sum" = "$old_md5sum" ]; then mv -f "$CONFFILE" "$CONFFILE.dpkg-remove" fi done } case "$1" in install|upgrade) # black magic follows below. we're upgrading from Squeeze if # 1) an apache2-mpm package exists if [ -d "/etc/apache2/" ] ; then mpm=$(dpkg-query -f '${Package}\t${Status}\n' -W 'apache2-mpm-*' 2>/dev/null | grep "install ok" | cut -f1) if [ -n "$mpm" ] ; then if [ ! -f /etc/apache2/.apache2_mpm_selected ] ; then echo "# automatically created during upgrade" >> /etc/apache2/.apache2_mpm_selected echo "# it can be safely removed anytime" >> /etc/apache2/.apache2_mpm_selected echo "$mpm" >> /etc/apache2/.apache2_mpm_selected fi fi if [ -n "$2" ] && dpkg --compare-versions "$2" 'lt' '2.4.7-1~' && dpkg --compare-versions "$2" 'ge' '2.4.1-1' ; then CUR_MPM=$(a2query -M) || exit 1 if [ "$CUR_MPM" == "itk" ] ; then echo "apache2-mpm-itk" >> /etc/apache2/.apache2_mpm_selected fi fi fi # 2) an apache2.2-common conffiles exists or the 2.2 apache2 package is # installed if [ -n "$2" ] || obsolete_conffile_exists ; then prepare_rm_conffile prepare_mv_conffile fi ;; abort-upgrade) ;; *) echo "preinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 # vim: syntax=sh ts=4 sw=4 sts=4 sr noet debian/apache2-dev.install0000664000000000000000000000056412261546711012651 0ustar /usr/include/apache2 /usr/share/apache2/build /usr/bin/apxs debian/debhelper/dh_apache2 /usr/bin debian/debhelper/apache2.pm /usr/share/perl5/Debian/Debhelper/Sequence/ debian/debhelper/postinst-apache2 /usr/share/debhelper/autoscripts/ debian/debhelper/prerm-apache2 /usr/share/debhelper/autoscripts/ debian/debhelper/postrm-apache2 /usr/share/debhelper/autoscripts/ debian/apache2-suexec-custom.install0000664000000000000000000000013312261546711014667 0ustar /usr/sbin/suexec-custom /usr/lib/apache2/ debian/suexec-config-dir/* /etc/apache2/suexec/ debian/apache2-suexec-pristine.manpages0000664000000000000000000000006012261546711015336 0ustar debian/tmp/usr/share/man/man8/suexec-pristine.8 debian/apache2.logrotate0000664000000000000000000000066212261546711012426 0ustar /var/log/apache2/*.log { weekly missingok rotate 52 compress delaycompress notifempty create 640 root adm sharedscripts postrotate if /etc/init.d/apache2 status > /dev/null ; then \ /etc/init.d/apache2 reload > /dev/null; \ fi; endscript prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi; \ endscript } debian/apache2.cron.daily0000664000000000000000000000116112262777736012501 0ustar #!/bin/sh # run htcacheclean set -e set -u type htcacheclean > /dev/null 2>&1 || exit 0 [ -e /etc/default/apache2 ] || exit 0 # edit /etc/default/apache2 to change this HTCACHECLEAN_MODE=daemon HTCACHECLEAN_RUN=auto HTCACHECLEAN_SIZE=300M HTCACHECLEAN_PATH=/var/cache/apache2/mod_cache_disk HTCACHECLEAN_OPTIONS="" . /etc/default/apache2 [ "$HTCACHECLEAN_MODE" = "cron" ] || exit 0 [ "$HTCACHECLEAN_RUN" = "yes" ] || ( [ "$HTCACHECLEAN_RUN" = "auto" ] && \ [ -e /etc/apache2/mods-enabled/cache_disk.load ] ) || exit 0 htcacheclean ${HTCACHECLEAN_OPTIONS} \ -p${HTCACHECLEAN_PATH} \ -l${HTCACHECLEAN_SIZE} debian/a2query.in0000775000000000000000000002317712262777736011150 0ustar #! /usr/bin/perl # a2query - Apache2 helper to retrieve configuration informations # Copyright (C) 2012 Arno Töll # # This program is licensed at your choice under the terms of the GNU General # Public License vserion 2+ or under the terms of the Apache Software License # 2.0. # # For GPL-2+: # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, # USA. # # For ASF 2.0: # Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. use feature "switch"; use strict; use Getopt::Std; =head1 NAME a2query - retrieve runtime configuration from a local Apache 2 HTTP server =cut our $APACHE2 = "apache2ctl"; our $API = "__API__"; our $MODULE_DIR = "__MODULE_DIR__"; our $SERVER_VERSION = "__SERVER_VERSION__"; our $MODULE_DIR = "/usr/lib/apache2/modules/"; our $STATE_DIR = "/var/lib/apache2"; our @STATES = ("maint", "admin"); our $MPM = "invalid"; our $CONFIG_DIR = "/etc/apache2"; our $QUIET = 0; # time to introduce more _exit_ values our $E_OK = '0'; our $E_FOUND = '0'; our $E_NOTFOUND = '1'; our $E_OFFBYADMIN = '32'; our $E_OFFBYMAINT = '33'; our @RETVALS = ( $E_OK, $E_FOUND, $E_OFFBYADMIN, $E_NOTFOUND, $E_OFFBYMAINT ); our @MODULES = (); our @CONFS = (); our @SITES =(); our @HELP = (); our %verbose_state = ( 'admin' => 'site administrator', 'maint' => 'maintainer script', 'unknown' => 'unknown' ); =head1 SYNOPSIS B [S<-m> [I]] [S<-s> [I]] [S<-c> [I]] [S<-a>] [S<-v>] [S<-M>] [S<-d>] [S<-h>] =head1 DESCRIPTION B is a program designed to retrieve configuration values from a locally available Apache 2 HTTP web server. It was designed to be as robust as possible by returning feasible values even if the Apache 2 syntax validator fails. This program is primarily meant to be used from maintainer scripts. =head1 OPTIONS =over 4 =item S<-a> Returns the Apache 2 "Module Magic Version" (API version) number, the server was compiled with. The returned version does not contain any minor versions which are known to be compatible with the major version returned. =item S<-c> [I] Checks whether the configuration I is enabled. If no argument was given, all enabled configuration files are being returned. I is compared by string comparison by ignoring a leading "mod_" prefix and possibly a '.conf' or '.load' suffix. =item S<-h> Displays a brief summary how the program can be called and exits. =item S<-m> [I] Checks whether the module I is enabled, The argument is interpreted in the same way, as for configuration files queried by the S<-c> switch. =item S<-M> Returns the currently enabled Apache 2 MPM (Multi Processing Module). =item S<-s> [I] Checks whether the module I is enabled, The argument is interpreted in the same way, as for configuration files queried by the S<-c> switch. =item S<-v> returns the currently installed Apache 2 HTTP server version =item S<-q> suppress any output. This is useful to invoke a2query from another script. This is useful if only the return code is of interest. =back =head1 EXIT CODES B returns with a zero (S<0>) exit status if the requested operation was effectuated successfully and with a non-zero status otherwise. In case of an error it leaves with error code S<32> if a requested module, site or configuration was not found and S<33> if a module, site or configuration was disabled by a maintainer script. However, exit status S<1> is returned if the module was not found at all =head1 SEE ALSO L(8), L(8), L(1) =head1 AUTHOR This manual and L was written by Arno Toell . =cut sub output { print @_ unless $QUIET; } sub warning { print STDERR @_ unless $QUIET; } sub fail { die('usage: fail($reason, $retval)') if @_ != 2; my $reason = shift; my $retval = shift; warning "$reason\n"; exit $retval; } sub load_defaults { my @out = `$APACHE2 -V 2>/dev/null`; return if $?; for (my $line; $line <= $#out; $line++) { if ($out[$line] =~ m/(Server version|Server MPM|Magic Number):\s+(.*?)$/) { my ($pattern, $value) = ($1, $2); if ($pattern =~ /version/) { $SERVER_VERSION = $value; $SERVER_VERSION =~ s/[^\d\.]//g; } elsif($pattern =~ /MPM/) { $MPM = $value; } elsif($pattern =~ /Magic/) { $API = $value; $API =~ s/\:\d+//; } } } } sub load_modules { my $conf_dir = $CONFIG_DIR . "/mods-enabled"; opendir(DIR, $conf_dir) || fail("$conf_dir: $!"); while( readdir(DIR) ) { my $file = $_; next if $file !~ m/\.load$/; $file =~ s/\.load//; if ($file =~ /mpm_(\w+)/ && $file ne 'mpm_itk') { $MPM = $1 if $MPM eq 'invalid'; if(grep { $_ =~ m/^mpm_/ } @MODULES) { fail("There is more than one MPM loaded. Do not proceed due to undefined results"); } } push @MODULES, $file; } closedir(DIR); } sub load_conf { if ($#CONFS >= 0) { return; } my $conf_dir = $CONFIG_DIR . "/conf-enabled"; opendir(DIR, $conf_dir) || fail("$conf_dir: $!"); while( readdir(DIR) ) { my $file = $_; next if $file !~ m/\.conf$/; $file =~ s/\.conf$//; push @CONFS, $file; } closedir(DIR); } sub load_sites { if ($#SITES >= 0) { return; } my $conf_dir = $CONFIG_DIR . "/sites-enabled"; opendir(DIR, $conf_dir) || fail("$conf_dir: $!"); while( readdir(DIR) ) { my $file = $_; next if $file !~ m/\.conf$/; $file =~ s/\.conf$//; push @SITES, $file; } closedir(DIR); } sub switch_history { die('usage: switch_history([module|site|conf], [enabled|disabled], $name)') if @_ != 3; my $which = shift; my $what = shift; my $name = shift; $name =~ s/\.conf$//; foreach my $state (@STATES) { my $state_token = "$STATE_DIR/$which/$what" . "_by_$state/" . $name; if (-e $state_token) { return $state; } } return 0; } sub query_state { my $type = shift; my $pattern = shift; my $listref = shift; $pattern =~ s/^mod//; $pattern =~ s/\.(conf|load)//; my @candidates; if ($pattern) { @candidates = grep { $_ eq $pattern } @{ $listref }; } else { @candidates = @{ $listref } } my $matches = 0; foreach my $module (@candidates) { my $state = switch_history($type, "enabled", $module); if (!$state) { $state = "unknown"; } output("$module (enabled by $verbose_state{$state})\n"); $matches++; } if (!$matches) { my $reason = "No $type matches $pattern"; my $retval = $E_NOTFOUND; my $state = switch_history($type, "disabled", $pattern); if ($state) { $reason .= " (disabled by $verbose_state{$state})"; if ($state eq 'maint') { $retval = $E_OFFBYMAINT; } if ($state eq 'admin') { $retval = $E_OFFBYADMIN; } } fail($reason, $retval); } } load_defaults(); load_modules(); my %opts; my $help = 1; getopts('m:s:c:havMdq', \%opts); #foreach my $key (keys %opts) { print("$key=$opts{$key}\n");} push @HELP, ["q", "suppress any output. Useful for invocation from scripts"]; if (exists $opts{'q'}) { --$help; $QUIET=1; } push @HELP, ["m [MODULE]", "checks whether the module MODULE is enabled, lists all enabled modules if no argument was given"]; if (exists $opts{'m'}) { --$help; query_state('module', $opts{'m'}, \@MODULES); } push @HELP, ["s [SITE]", "checks whether the site SITE is enabled, lists all sites if no argument was given"]; if (exists $opts{'s'}) { --$help; load_sites(); query_state('site', $opts{'s'}, \@SITES); } push @HELP, ["c [CONF]", "checks whether the configuration CONF is enabled, lists all configurations if no argument was given"]; if (exists $opts{'c'}) { --$help; load_conf(); query_state('conf', $opts{'c'}, \@CONFS); } push @HELP, ["a", "returns the current Apache 2 module magic version"]; if (exists $opts{'a'}) { --$help; output("$API\n"); } push @HELP, ["v", "returns the current Apache 2 version"]; if (exists $opts{'v'}) { --$help; output("$SERVER_VERSION\n"); } push @HELP, ["M", "returns the enabled Apache 2 MPM"]; if (exists $opts{'M'}) { --$help; output("$MPM\n"); } push @HELP, ["d", "returns the Apache 2 module directory"]; if (exists $opts{'d'}) { --$help; output("$MODULE_DIR\n"); } push @HELP, ["h", "display this help"]; if (exists $opts{'h'} or $help == 1) { my $usage = "$0 "; map { $usage .= "-$_->[0] " } @HELP; print("Usage: $usage\n"); my $switch_name; my $description; format STDOUT = @<<<<<<<<<<<< ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< "-$switch_name", $description, ~~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $description, . foreach my $switch (@HELP) { ($switch_name, $description) = ($switch->[0], $switch->[1]); write STDOUT; } exit $E_OK; } # vim: syntax=perl sw=8 sts=8 sr noet debian/apache2-doc.postinst0000664000000000000000000000055012261546711013050 0ustar #! /bin/sh set -e # conffiles must be moved before invoking rc.d #DEBHELPER# # This code should use dh_apache2 once it is available as build dependency if [ "$1" = "configure" ] ; then if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then . /usr/share/apache2/apache2-maintscript-helper apache2_invoke enconf apache2-doc || true fi fi exit debian/apache2.docs0000664000000000000000000000014212261546711011347 0ustar debian/README.backtrace debian/README.multiple-instances debian/PACKAGING debian/migrate-sites.pl debian/copyright0000664000000000000000000005054212261546711011136 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Apache HTTPD Server Source: http://httpd.apache.org/ Files: * Copyright: Copyright 2009 The Apache Software Foundation License: Apache 2.0 Files: include/ap_regex.h Copyright: 2009 The Apache Software Foundation Copyright: 1997-2004 University of Cambridge License: Apache 2.0 and BSD-3-clause (Cambridge) Files: server/util_pcre.c Copyright: 1997-2001 University of Cambridge License: PCRE Files: server/util_expr_parse.c Copyright: 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. License: GPL-3+ or Custom Files: test/test_limits.c Copyright: 1998 Dag-Erling Codan Smrgrav License: BSD-3-clause (Smrgrav) Files: modules/metadata/mod_mime_magic.c Copyright: 2009 The Apache Software Foundation 1996-1997 Cisco Systems, Inc. 1987 Ian F. Darwin. License: Apache 2.0 and Cisco Files: docs/conf/magic debian/config-dir/magic Copyright: Ian F. Darwin 1986, 1987, 1989, 1990, 1991, 1992, 1994, 1995. License: BSD-2-clause (Darwin) Files: modules/mappers/mod_imagemap.c Copyright: 2009 The Apache Software Foundation 1992 by Eric Haines, erich@eye.com License: Apache 2.0 and Haines Files: server/util_md5.c Copyright: 2009 The Apache Software Foundation 1995, Board of Trustees of the University of Illinois 1993,1994 by Carnegie Mellon University 1991 Bell Communications Research, Inc. (Bellcore) License: Apache 2.0 and MD5 Files: support/ab.c Copyright: 2009 The Apache Software Foundation 1996 by Zeus Technology Ltd. http://www.zeustech.net/ License: Apache 2.0 and Zeus Files: debian/a2query.in debian/debhelper/dh_apache2 Copyright: 2012 Arno Töll License: Apache 2.0 or GPL-2+ Files: debian/debhelper/apache2-maintscript-helper Copyright: 2012 Arno Töll License: MIT Files: debian/a2enmod Copyright: 2008 Stefan Fritsch License: Apache 2.0 Files: debian/patches/itk/* Copyright: 2005-2012 Steinar H. Gunderson, 2008 Knut Auvor Grythe License: Apache 2.0 License: Apache 2.0 Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. . On Debian systems, the full text of the Apache Software License version 2 can be found in the file `/usr/share/common-licenses/Apache-2.0'. License: Zeus This program is based on ZeusBench V1.0 written by Adam Twiss which is Copyright (c) 1996 by Zeus Technology Ltd. http://www.zeustech.net/ . This software is provided "as is" and any express or implied waranties, including but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall Zeus Technology Ltd. be liable for any direct, indirect, incidental, special, exemplary, or consequential damaged (including, but not limited to, procurement of substitute good or services; loss of use, data, or profits; or business interruption) however caused and on theory of liability. Whether in contract, strict liability or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage License: PCRE This is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. See the file Tech.Notes for some information on the internals. . This module is a wrapper that provides a POSIX API to the underlying PCRE functions. . Written by: Philip Hazel . Copyright (c) 1997-2004 University of Cambridge . ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: MD5 NCSA HTTPd Server Software Development Group National Center for Supercomputing Applications University of Illinois at Urbana-Champaign 605 E. Springfield, Champaign, IL 61820 httpd@ncsa.uiuc.edu . Copyright (C) 1995, Board of Trustees of the University of Illinois . *********************************************************************** . md5.c: NCSA HTTPd code which uses the md5c.c RSA Code . Original Code Copyright (C) 1994, Jeff Hostetler, Spyglass, Inc. Portions of Content-MD5 code Copyright (C) 1993, 1994 by Carnegie Mellon University (see Copyright below). Portions of Content-MD5 code Copyright (C) 1991 Bell Communications Research, Inc. (Bellcore) (see Copyright below). Portions extracted from mpack, John G. Myers - jgm+@cmu.edu Content-MD5 Code contributed by Martin Hamilton (martin@net.lut.ac.uk) . these portions extracted from mpack, John G. Myers - jgm+@cmu.edu */ . (C) Copyright 1993,1994 by Carnegie Mellon University All Rights Reserved. . Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Carnegie Mellon University not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Carnegie Mellon University makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. . CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. . . . Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) . Permission to use, copy, modify, and distribute this material for any purpose and without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies, and that the name of Bellcore not be used in advertising or publicity pertaining to this material without the specific, prior written permission of an authorized representative of Bellcore. BELLCORE MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. License: GPL-3+ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . On Debian systems, the full text of the GNU General Public License version 2 can be found in the file `/usr/share/common-licenses/GPL-3'. License: GPL-2+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . On Debian systems, the full text of the GNU General Public License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. License: Haines This imagemap module started as a port of the original imagemap.c written by Rob McCool (11/13/93 robm@ncsa.uiuc.edu). This version includes the mapping algorithms found in version 1.3 of imagemap.c. . Contributors to this code include: . Kevin Hughes, kevinh@pulua.hcc.hawaii.edu . Eric Haines, erich@eye.com "macmartinized" polygon code copyright 1992 by Eric Haines, erich@eye.com . Randy Terbush, randy@zyzzyva.com port to Apache module format, "base_uri" and support for relative URLs . James H. Cloos, Jr., cloos@jhcloos.com Added point datatype, using code in NCSA's version 1.8 imagemap.c program, as distributed with version 1.4.1 of their server. The point code is originally added by Craig Milo Rogers, Rogers@ISI.Edu . Nathan Kurz, nate@tripod.com Rewrite/reorganization. New handling of default, base and relative URLs. New Configuration directives: ImapMenu {none, formatted, semiformatted, unformatted} ImapDefault {error, nocontent, referer, menu, URL} ImapBase {map, referer, URL} Support for creating non-graphical menu added. (backwards compatible): Old: directive URL [x,y ...] New: directive URL "Menu text" [x,y ...] or: directive URL x,y ... "Menu text" Map format and menu concept courtesy Joshua Bell, jsbell@acs.ucalgary.ca. . Mark Cox, mark@ukweb.com, Allow relative URLs even when no base specified License: BSD-2-clause (Darwin) Software written by Ian F. Darwin and others; maintained 1994-2004 Christos Zoulas. . This software is not subject to any export provision of the United States Department of Commerce, and may be exported to any country or planet. . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice immediately at the beginning of the file, without modification, this list of conditions, and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: Cisco This software was submitted by Cisco Systems to the Apache Software Foundation in July 1997. Future revisions and derivatives of this source code must acknowledge Cisco Systems as the original contributor of this module. All other licensing and usage conditions are those of the Apache Software Foundation. . Some of this code is derived from the free version of the file command originally posted to comp.sources.unix. Copyright info for that program is included below as required. --------------------------------------------------------------------------- - Copyright (c) Ian F. Darwin, 1987. Written by Ian F. Darwin. . This software is not subject to any license of the American Telephone and Telegraph Company or of the Regents of the University of California. . Permission is granted to anyone to use this software for any purpose on any computer system, and to alter it and redistribute it freely, subject to the following restrictions: . 1. The author is not responsible for the consequences of use of this software, no matter how awful, even if they arise from flaws in it. . 2. The origin of this software must not be misrepresented, either by explicit claim or by omission. Since few users ever read sources, credits must appear in the documentation. . 3. Altered versions must be plainly marked as such, and must not be misrepresented as being the original software. Since few users ever read sources, credits must appear in the documentation. . 4. This notice may not be removed or altered. ------------------------------------------------------------------------- . For compliance with Mr Darwin's terms: this has been very significantly modified from the free "file" command. - all-in-one file for compilation convenience when moving from one version of Apache to the next. - Memory allocation is done through the Apache API's apr_pool_t structure. - All functions have had necessary Apache API request or server structures passed to them where necessary to call other Apache API routines. (i.e. usually for logging, files, or memory allocation in itself or a called function.) - struct magic has been converted from an array to a single-ended linked list because it only grows one record at a time, it's only accessed sequentially, and the Apache API has no equivalent of realloc(). - Functions have been changed to get their parameters from the server configuration instead of globals. (It should be reentrant now but has not been tested in a threaded environment.) - Places where it used to print results to stdout now saves them in a list where they're used to set the MIME type in the Apache request record. - Command-line flags have been removed since they will never be used here. . Ian Kluft Engineering Information Framework Central Engineering Cisco Systems, Inc. San Jose, CA, USA . Initial installation July/August 1996 Misc bug fixes May 1997 Submission to Apache Software Foundation July 1997 License: BSD-3-clause (Smrgrav) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer in this position and unchanged. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of the author may not be used to endorse or promote products derived from this software withough specific prior written permission . THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: BSD-3-clause (Cambridge) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: Custom As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. . This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ . C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. License: MIT Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. debian/apache2-data.dirs0000664000000000000000000000003712261546711012272 0ustar usr/share/apache2/default-site debian/apache2.NEWS0000664000000000000000000002540112262777736011216 0ustar apache2 (2.4.1-1) unstable; urgency=low This package introduces a new major release of the Apache HTTP server. It is likely the site configuration needs changes to work with this release. Notable changes which need special care are: The module interface (ABI) has changed. If you have any locally compiled modules, you have to re-compile them for apache2 2.4. The authorization and authentication system has changed. Existing configurations using deprecated Order/Allow/Deny directives should be upgraded to the new system. Please review upstream's "Authentication, Authorization and Access Control Howto" [1]. However, "mod_access_compat" is loaded by default to provide backward compatibility. Furthermore, MPMs are simple modules now. Thus, the MPM can be changed at any time by (un-)loading a specific module. Be careful when upgrading. An example of changing the MPM is given below: a2dismod mpm_worker a2enmod mpm_prefork MPM ITK users should be advised, that ITK is not a MPM anymore. Instead, it is a simple Apache module, expanding functionality of the prefork MPM. Thus, users should switch to the prefork MPM and enable ITK as a module. The upgrade scripts ensure this for the upgrade from Debian Wheezy. We did change the security model for Apache in our default configuration. We do not allow access to the file system outside /var/www and /usr/share. If you are running virtual hosts or scripts outside these directories, you need to whitelist them in your configuration to grant access through HTTP. Special care must be taken if you are using a sub-directory in /srv to serve your content as recommended by the File Hierarchy Standard (FHS). You must allow access to your served directory explicity in the corresponding virtual host, or by allowing access in apache2.conf as proposed. Along the security model, we did also change the default Document Root, files are served from. Previous releases served /var/www by default when no other virtual host matched the request. Starting with this release, we changed the default document root to /var/www/html, so that sensitive files from other virtual hosts wich are typically put into some directory below /var/www are not exposed by the default virtual host. This change further improves the out of box security. Moreover, the configuration mechanism in Debian has changed. All configurations in sites-enabled and conf-enabled need a ".conf" suffix now. The latter replaces the deprecated /etc/apache2/conf.d/ directory (which is not supported any more) and works just like {sites,mods}-{available,enabled} via the "a2enconf" tool. The upgrade tries to migrate known configuration files from /etc/apache2/conf.d/ to /etc/apache2/conf-available/ - please review these changes. Note this means all existing sites are ignored until they get a ".conf" suffix and are re-enabled by the use of a2ensite. The script in [3] can automate that for simple cases. This change also includes Debian default sites, so the default site has been renamed to 000-default to avoid naming confusions. The rename of the config files to *.conf makes the special handling inside apache2 to ignore *.dpkg-* backup files obsolete. This special handling has been removed. Users of mod_authn_dbm should switch to htdbm to manage their DBM user databases. The pure-perl management utility "dbmmanage" was removed as it was outdated and orphaned upstream. Packagers are advised to review whether their packages comply with this new version. Please see [2] for detailed documentation and instructions. [1] http://httpd.apache.org/docs/2.4/howto/auth.html [2] [3] -- Arno Töll Fri, 23 July 2012 23:50:13 +0200 apache2 (2.2.15-4) unstable; urgency=low * Note to people using mod_proxy as forward proxy, i.e. with 'ProxyRequests on': This release disables the configuration in mods-available/proxy.conf by default. You should verify that access control for proxy access still works as intended. This is especially important if you have your forward proxy configuration in a different configuration file than proxy.conf. -- Stefan Fritsch Mon, 19 Apr 2010 22:36:57 +0200 apache2 (2.2.15-1) unstable; urgency=low * To fix a security vulnerability in the design of the SSL/TLS protocol (CVE-2009-3555), the protocol had to be extended (RFC 5746). By default, session renegotiation is no longer supported with old clients that do not implement this extension. This breaks certain configurations with client certificate authentication. If you still need to support old clients, you may restore the old (insecure) behaviour by uncommenting the SSLInsecureRenegotiation on line in /etc/apache2/mods-available/ssl.conf * This release adds and enables mod_reqtimeout, which limits the time Apache waits for a client to send a complete request. This helps to mitigate against certain denial of service attacks. In case of problems with slow clients, the timeout values can be adjusted in /etc/apache2/mods-available/reqtimeout.conf , or the module can be disabled with "a2dismod reqtimeout". -- Stefan Fritsch Sat, 28 Aug 2010 20:49:30 +0100 apache2 (2.2.14-6) unstable; urgency=low * Apache now uses the environment variables APACHE_RUN_DIR, APACHE_LOCK_DIR, and APACHE_LOG_DIR in the default configuration. If you have modified /etc/apache2/envvars, make sure that these variables are set and exported. * There is now some support for running multiple instances of Apache on the same machine. See the documentation in /usr/share/doc/apache2.2-common for details. -- Stefan Fritsch Sun, 07 Feb 2010 13:56:59 +0100 apache2 (2.2.13-2) unstable; urgency=high * The new support for TLS Server Name Indication added in 2.2.12 causes Apache to be stricter about certain misconfigurations involving name based SSL virtual hosts. This may result in Apache refusing to start with the logged error message: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] Up to 2.2.11, Apache accepted configurations where the necessary SSL configuration statements were included in the first (default) block but not in subsequent blocks. Starting with 2.2.12, every VirtualHost block used with SSL must contain the SSLEngine, SSLCertificateFile, and SSLCertificateKeyFile directives (SSLCertificateKeyFile is optional in some cases). When you encounter the above problem, the output of the command egrep -ir '^[^#]*(sslcertificate|sslengine|virtualhost)' \ /etc/apache2/*conf* /etc/apache2/*enabled may be useful to determine which VirtualHost sections need to be changed. Also, formerly accidentially working constructs like where one virtual host definition is used for both a non-ssl and a ssl virtual host do not work anymore. You can achieve a similar effect with Include /.../vhost.include SSLEngine on SSLCertificateFile ... Include /.../vhost.include -- Stefan Fritsch Wed, 16 Sep 2009 20:14:59 +0200 apache2 (2.2.9-3) unstable; urgency=low * The directive "NameVirtualHost *" has been changed to "NameVirtualHost *:80". It has also been moved from sites-available/default to ports.conf. This allows to ship a proper SSL default virtual host config in sites-available/default-ssl, but it means that if you use several name based virtual hosts: - you will have to change to in your name based virtual hosts - you need to add more NameVirtualHost directives if you use other ports than 80 with name based virtual hosts. You may also have to add these ports to the default virtual host in /etc/apache2/sites-available/default (like this: ""). If you prefer to revert to the old setup instead (and don't need the default-ssl host), just change "NameVirtualHost *:80" back to "NameVirtualHost *" in ports.conf and "" to "" in sites-available/default. * For mod_disk_cache, caching is again disabled in disk_cache.conf by default. It usually makes more sense to enable this on a per-virtual host basis. -- Stefan Fritsch Mon, 30 Jun 2008 19:47:52 +0200 apache2 (2.2.8-5) unstable; urgency=low * The suexec helper program needed for mod_suexec is now shipped in a separate package, apache2-suexec, which is not installed by default. You need to install this package manually if you are using mod_suexec. There is now also the apache2-suexec-custom package, which contains a customizable version of suexec which can be used with different document roots than /var/www. -- Stefan Fritsch Sun, 04 May 2008 20:24:00 +0200 apache2 (2.2.8-1) unstable; urgency=low * The Apache User and Group and the PidFile path are now configured in /etc/apache2/envvars, to make it easier to use them in scripts (like the init and logrotate scripts, and apache2ctl). If you have changed these settings from their default values, you need to adjust /etc/apache2/envvars. This also means that starting apache2 with "apache2 -k start" is no longer possible, you have to use /etc/init.d/apache2 or apache2ctl. -- Stefan Fritsch Tue, 15 Jan 2008 21:41:23 +0100 apache2 (2.2.4-2) unstable; urgency=low * This version introduces some changes in the configuration layout and defaults. You will probably have to adjust your configuration accordingly. - Module specific configuration has been moved from /etc/apache2/apache2.conf to /etc/apache2/mods-available/*.conf for the following modules: actions alias autoindex info mime negotiation setenvif status - AddDefaultCharset is again disabled by default. See /etc/apache2/conf.d/charset - "Listen 443" is automatically enabled in /etc/apache2/ports.conf if mod_ssl is enabled. * The NO_START functionality from /etc/default/apache2 has been removed. If you don't want to start apache2 on boot, rename the S*apache2 start symlinks as usual. * To ensure that the disk cache does not grow indefinitely, htcacheclean is now started when mod_disk_cache is enabled. The details can be configured in /etc/default/apache2 . -- Stefan Fritsch Mon, 09 Jul 2007 21:50:58 +0200 debian/apache2-utils.manpages0000664000000000000000000000072012261546711013352 0ustar debian/tmp/usr/share/man/man1/logresolve.1 debian/tmp/usr/share/man/man8/htcacheclean.8 debian/tmp/usr/share/man/man8/fcgistarter.8 debian/tmp/usr/share/man/man8/rotatelogs.8 debian/tmp/usr/share/man/man1/ab.1 debian/tmp/usr/share/man/man1/htdigest.1 debian/tmp/usr/share/man/man1/htdbm.1 debian/tmp/usr/share/man/man1/htpasswd.1 debian/tmp/usr/share/man/man1/httxt2dbm.1 debian/manpages/check_forensic.8 debian/manpages/checkgid.8 debian/manpages/split-logfile.8 debian/apache2-suexec.prerm.in0000775000000000000000000000064312261546711013454 0ustar #!/bin/sh # prerm script for apache2-suexec-__TYPE__ set -e case "$1" in remove) update-alternatives --remove suexec /usr/lib/apache2/suexec-__TYPE__ ;; upgrade|deconfigure|failed-upgrade) ;; *) echo "prerm called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 debian/apache2-data.links0000664000000000000000000000020712261546711012450 0ustar # This link is dangling by design (sometimes) usr/share/doc/apache2/changelog.Debian.gz usr/share/doc/apache2-data/changelog.Debian.gz debian/apache2.dirs0000664000000000000000000000043612263000007011347 0ustar etc/apache2/mods-enabled etc/apache2/conf-enabled etc/apache2/sites-enabled etc/logrotate.d usr/lib/cgi-bin var/lib/apache2 usr/share/lintian/overrides var/cache/apache2 var/cache/apache2/mod_cache_disk var/log/apache2 var/www/html usr/share/bug/apache2 /etc/ufw/applications.d/apache2 debian/apache2-bin.bug-script0000775000000000000000000000341312261546711013253 0ustar #!/usr/bin/perl -w use strict; use Text::Wrap; $Text::Wrap::columns = 70; #open (my $out, ">&=3") or die "could not open FD 3\n"; open (my $out, ">&=0") or die "could not open FD 3\n"; our $AQUERY = 0; our $PHP = 0; if (-x "/usr/sbin/a2query") { $AQUERY = "/usr/sbin/a2query"; } if ($AQUERY) { my $mpm = `$AQUERY -M`; chomp($mpm); print $out "Enabled MPM: $mpm\n"; } my @modules; if ($AQUERY) { print $out "List of enabled modules:\n"; @modules = `$AQUERY -m`; } else { print $out "a2query is not available.\n"; @modules = sort glob("/etc/apache2/mods-enabled/*.load"); map { s{^/etc/apache2/mods-enabled/(.*)\.load$}{$1} } @modules; print $out "List of /etc/apache2/mods-enabled/*.load:\n"; } if (! scalar @modules) { print $out "Could not determine module list\n"; } else { my $missing; foreach my $m (@modules) { my ($m, @desc) = split(/\s+/, $m); if (-e "/etc/apache2/mods-available/$m.conf" and ! -e "/etc/apache2/mods-enabled/$m.conf") { $m .= "*"; $missing = 1; } if ($m =~ /^(php\d)/) { $PHP = $1; } } print $out wrap(" ", " ", "@modules\n"); print $out wrap(" ", " ", "(A * means that the .conf file for that module is not " . "enabled in /etc/apache2/mods-enabled/)\n") if $missing; } if (defined $PHP) { my @exts = qx{egrep ^extension= /etc/$PHP/apache2/php.ini /etc/$PHP/apache2/conf.d/* 2>/dev/null}; if (scalar @exts) { chomp @exts; @exts = grep { ! m{\.dpkg-(?:bak|dist):} } @exts; @exts = sort grep { s{^.*:extension=(\S+)\.\S+}{$1} } @exts; print $out "List of enabled $PHP extensions:\n"; print $out wrap(" ", " ", "@exts\n"); } } if ($AQUERY) { my @confs; print $out "List of enabled configurations:\n"; @confs = `$AQUERY -c`; print $out wrap(" ", " ", "@confs\n"); } debian/convert_docs0000775000000000000000000000435712261546711011624 0ustar #!/usr/bin/perl -w use strict; use File::Path; use Fatal qw/mkpath symlink open close/; use File::Copy; use File::Find; scalar @ARGV == 1 or die; my $TGT=$ARGV[0]; my $SRC=$TGT.".orig"; move($TGT, $SRC); # list of languages my @lang = glob("$SRC/index.html.*") or die; map { s{^.*html\.}{} } @lang; # map "ja.euc-jp" to "ja/", ... my %lpath; foreach my $l (@lang) { my $t=$l; $t =~ s{\..*$}{}; $lpath{$l}="$t/"; } my @html; find(sub { $File::Find::name =~ s/^$SRC\///; push(@html, $File::Find::name) if $File::Find::name =~ /\.html$/; }, $SRC); foreach my $h (@html) { my $dir=""; if ($h =~ m{^(.*/)}) { $dir=$1; } for my $l (@lang) { my $tdir="$TGT/$lpath{$l}"; -d "$tdir$dir" || mkpath("$tdir$dir"); my $updir=$dir; $updir =~ s{[^/]+}{..}g; if ($l eq "en") { conv("$SRC/$h.en", "$tdir$h", $h); } elsif ( -f "$SRC/$h.$l" ) { conv("$SRC/$h.$l", "$tdir$h", $h); } else { symlink("${updir}../en/$h", "$tdir$h"); } } } open(my $out, ">", "$TGT/index.html"); print $out '', '', "\n\n"; foreach my $l (sort values %lpath) { print $out qq{\n}; } print $out '
$l
'; move("$SRC/images", "$TGT/images"); move("$SRC/style", "$TGT/style"); rmdir("$TGT/style/lang"); rmdir("$TGT/style/xsl/util"); rmdir("$TGT/style/xsl"); rmtree("$SRC"); ### END sub conv { my ($old, $new, $name) = @_; open(my $in, "<", $old); local $/; my $file = <$in>; close($in); # /mod/ -> /mod/index.html $file =~ s{href="([^:"]*/)"}{href="${1}index.html"}g; # style and images now one level up $file =~ s{(src|href)="\.\./(style|images)}{$1="../../$2}g; $file =~ s{(src|href)="(?:\./)?(style|images)}{$1="../$2}g; foreach my $l (values %lpath) { # language directories one level up $file =~ s{href="\.\./$l}{href="../../$l}g; $file =~ s{href="(?:\./)?$l}{href="../$l}g; $file =~ s{apachectl(?!\.html)}{apache2ctl}g; } # Debian tweaks $file =~ s{/usr/local/apache2/conf/httpd[.]conf}{/etc/apache2/apache2.conf}g; $file =~ s{httpd[.]conf}{apache2.conf}g; $file =~ s{apachectl(?!\.html)}{apache2ctl}g; open(my $out, ">", $new); print $out $file; close($out); } debian/ask-for-passphrase0000775000000000000000000000304512263000007012617 0ustar #!/bin/bash # # ask-for-passphrase - designed to be used by SSLPassPhraseDialog exec: # # Copyright Canonical, Ltd. 2010, All Rights Reserved # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # sitename=$1 keytype=$2 prompt="Apache needs to decrypt your SSL Keys for $sitename ($keytype) Please enter passphrase:" tty=`tty` if [ "$tty" = "not a tty" ] ; then # Apache gives us a pipe for stdin, but we want to # talk to apache's terminal. tty=`tty < /proc/${PPID}/fd/0` if [ "$tty" = "not a tty" ] ; then if [ -x /bin/plymouth ] && plymouth --ping ; then echo $prompt | logger exec plymouth ask-for-password --prompt="$prompt" else logger -p daemon.err -t apache2 "No way to ask user for passphrase" exit 1 fi fi # We must not print anything on stdout except the passphrase read -s -p "$prompt" passphrase > $tty 2>&1 < $tty echo $passphrase fi debian/apache2.examples0000664000000000000000000000011012261546711012230 0ustar debian/setup-instance debian/secondary-init-script debian/apache2.monit debian/README.backtrace0000664000000000000000000000227212261546711011776 0ustar If apache crashes or freezes, it is helpful if you include a backtrace in the bug report. In case of a crash, do the following: 1) Install the packages apache2-dbg libapr1-dbg libaprutil1-dbg gdb. 2) Add "CoreDumpDirectory /var/cache/apache2" to your apache configuration. 3) Execute as root: /etc/init.d/apache2 stop ulimit -c unlimited /etc/init.d/apache2 start 4) Do whatever it takes to reproduce the crash. There should now be the file /var/cache/apache2/core . 5) If you use a forking MPM (e.g. mod_prefork), execute: gdb /usr/sbin/apache2 /var/cache/apache2/core (gdb) bt full ... (gdb) quit If you use a threaded mpm (mod_worker, mod_event), execute: gdb /usr/sbin/apache2 /var/cache/apache2/core (gdb) thread apply all bt full ... (gdb) quit Include the backtrace in the bug report. 6) Undo the change to your configuration, uninstall the debug packages, remove /var/cache/apache2/core In case of a hanging process, you don't need a core dump and you can skip steps 2 and 3. 4) Reproduce the problem. Get the pid of a hanging process. 5) Start gdb with gdb -p pid and continue as described above. It may also be helpful to include the output of strace -p pid debian/rules0000775000000000000000000001463012263002323010245 0ustar #!/usr/bin/make -f # -*- makefile -*- DEB_BUILD_ARCH_OS ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS) # Uncomment this to turn on verbose mode. # export DH_VERBOSE=1 export DEB_BUILD_MAINT_OPTIONS=hardening=+bindnow include /usr/share/dpkg/buildflags.mk LSB_RELEASE := $(shell lsb_release -i -s) SERVER_VERSION := $(shell dpkg-parsechangelog | perl -ne 'print $$1 if m/Version:\s*([\d\.]+)/') DEBIAN_VERSION := $(shell dpkg-parsechangelog | perl -ne 'print $$1 if m/Version:\s*(.+)/') MODULE_DIR := /usr/lib/apache2/modules/ API = $(shell perl -ne 'print $$1 if m/define\s+MODULE_MAGIC_NUMBER_MAJOR\s+?(.*)$$/' < include/ap_mmn.h) AP2_CFLAGS = -pipe $(CFLAGS) AP2_LDFLAGS = -Wl,--as-needed $(LDFLAGS) AP2_CPPFLAGS = -DPLATFORM='\"$(LSB_RELEASE)\"' $(CPPFLAGS) AP2_LTFLAGS = --no-silent DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) support/suexec-custom.c: support/suexec.c debian/patches/suexec-custom.patch cp support/suexec.c support/suexec-custom.c patch -p1 -i debian/patches/suexec-custom.patch prebuild-checks: ERRS="" ;\ for a in $$(find debian/config-dir/ -type f) ; do \ t="$$a.$$$$" ;\ unexpand < "$$a" > "$$t" ;\ cmp -s "$$a" "$$t" || ERRS="$$ERRS $$a" ;\ rm "$$t" ;\ done ;\ if [ -n "$$ERRS" ] ; then \ echo 'ERROR: The following files contain spaces instead of tabs. Run through unexpand!' ;\ ls -1 $$ERRS ;\ false ;\ fi clean-config-vars: # Clean up config_vars.mk # FIXME: Maybe someone could document here why we actually need to # cleanup some stuff here perl ./debian/clean_config_vars '$(AP2_CFLAGS)' '$(AP2_CPPFLAGS)' '$(AP2_LDFLAGS)' %: %.in sed 's#__SERVER_VERSION__#$(SERVER_VERSION)#; s#__MODULE_DIR__#$(MODULE_DIR)#; s#__API__#$(API)#;' $< > $@ chmod `/usr/bin/stat -c '%a' "$<"` $@ prepare-scripts: debian/a2query debian/debhelper/dh_apache2 (grep -s -v apache2:API debian/apache2-bin.substvars; echo apache2:API=apache2-api-$(API)) > debian/apache2-bin.substvars.new mv debian/apache2-bin.substvars.new debian/apache2-bin.substvars generate-maintainer-scripts: set -e ; \ for type in custom pristine ; do \ for f in postinst preinst prerm links dirs lintian-overrides postrm; do \ if [ -e debian/apache2-suexec.$$f.in ] ; then \ perl -pe "s{__TYPE__}{$$type}g" < debian/apache2-suexec.$$f.in > debian/apache2-suexec-$$type.$$f ;\ chmod `/usr/bin/stat -c '%a' "debian/apache2-suexec.$$f.in"` debian/apache2-suexec-$$type.$$f ;\ fi ;\ done ;\ done set -e ; \ for type in worker itk prefork event ; do \ for f in postinst preinst prerm links dirs lintian-overrides postrm; do \ if [ -e debian/apache2-mpm.$$f.in ] ; then \ perl -pe "s{__TYPE__}{$$type}g" < debian/apache2-mpm.$$f.in > debian/apache2-mpm-$$type.$$f ;\ chmod `/usr/bin/stat -c '%a' "debian/apache2-mpm.$$f.in"` debian/apache2-mpm-$$type.$$f ;\ fi ;\ done ;\ done clean build build-arch build-indep binary binary-arch binary-indep: %: dh $@ --parallel --with autotools_dev override_dh_auto_configure: generate-maintainer-scripts prebuild-checks support/suexec-custom.c ./configure --enable-layout=Debian --enable-so --with-program-name=apache2 \ --enable-suexec --with-suexec-caller=www-data \ --with-suexec-bin=/usr/lib/apache2/suexec --with-suexec-docroot=/var/www \ --with-suexec-userdir=public_html --with-suexec-logfile=/var/log/apache2/suexec.log \ --with-suexec-uidmin=100 --enable-suexec=shared --enable-log-config=static \ --with-apr=/usr/bin/apr-1-config --with-apr-util=/usr/bin/apu-1-config \ --with-pcre=yes \ --enable-pie \ --enable-mpms-shared=all \ --enable-mods-shared="all cgi" \ --enable-mods-static="unixd logio watchdog version" \ CFLAGS="$(AP2_CFLAGS)" CPPFLAGS="$(AP2_CPPFLAGS)" LDFLAGS="$(AP2_LDFLAGS)" \ LTFLAGS="$(AP2_LTFLAGS)" override_dh_install: clean-config-vars prepare-scripts dh_install --list-missing override_dh_fixperms-arch: # standard suexec chmod 4754 debian/apache2-suexec-pristine/usr/lib/apache2/suexec-pristine chgrp www-data debian/apache2-suexec-pristine/usr/lib/apache2/suexec-pristine # configurable suexec chmod 4754 debian/apache2-suexec-custom/usr/lib/apache2/suexec-custom chgrp www-data debian/apache2-suexec-custom/usr/lib/apache2/suexec-custom dh_fixperms -a -Xusr/lib/apache2/suexec-custom -Xusr/lib/apache2/suexec-pristine chown -R www-data:www-data debian/apache2/var/cache/apache2/mod_cache_disk chown root:adm debian/apache2/var/log/apache2 chmod o-rx debian/apache2/var/log/apache2 override_dh_fixperms-indep: dh_fixperms -i override_dh_installinit: dh_installinit --restart-after-upgrade --error-handler=true -- defaults 91 09 override_dh_installdocs-indep: # TODO: So, did anyone check convert_docs needs an update? ;) perl debian/convert_docs debian/apache2-doc/usr/share/doc/apache2-doc/manual dh_installdocs -i override_dh_installdocs-arch: dh_installdocs --link-doc=apache2 -papache2 -papache2-dbg \ -papache2-mpm-worker -papache2-mpm-prefork -papache2-mpm-event \ -papache2-mpm-itk dh_installdocs --link-doc=apache2-bin -papache2.2-bin -plibapache2-mod-proxy-html \ -plibapache2-mod-macro dh_installdocs --link-doc=apache2-suexec-pristine -papache2-suexec dh_installdocs -a override_dh_installchangelogs: # Do not install changelogs for transitional packages and the -data # package not to trash the disk at the installation site. Together with # dh_installdocs this means that changelogs are installed in a few # packages only. dh_installchangelogs -Napache2-suexec -Napache2-mpm-worker \ -Napache2-mpm-prefork -Napache2-mpm-event -Napache2-mpm-itk \ -Napache2-data -Nlibapache2-mod-proxy-html -Napache2.2-bin \ -Nlibapache2-mod-macro override_dh_installman: mv debian/tmp/usr/share/man/man8/suexec.8 debian/tmp/usr/share/man/man8/suexec-pristine.8 pod2man debian/debhelper/dh_apache2 > debian/manpages/dh_apache2.1 pod2man debian/a2query.in > debian/manpages/a2query.8 dh_installman override_dh_strip: dh_strip --dbg-package=apache2-dbg override_dh_auto_install: dh_auto_install -- -j1 override_dh_builddeb: dh_builddeb -- -Zxz override_dh_auto_clean: dh_auto_clean override_dh_gencontrol: dh_gencontrol -p libapache2-mod-proxy-html -- -v1:$(DEBIAN_VERSION) dh_gencontrol -p libapache2-mod-macro -- -v1:$(DEBIAN_VERSION) dh_gencontrol --remaining-packages .PHONY: generate-maintainer-scripts clean-config-vars prepare-scripts prebuild-checks .PHONY: clean build build-arch build-indep binary binary-arch binary-indep debian/apache2.2-bin.postinst0000664000000000000000000000253712261546711013222 0ustar #! /bin/bash # postinst script for apache2.2-bin # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure) if [ -n "$2" ] && dpkg --compare-versions "$2" lt "2.4.4-5" ; then if [ -d /usr/share/doc/apache2.2-bin ] ; then RET=0 rmdir /usr/share/doc/apache2.2-bin > /dev/null 2>&1|| RET=$? if [ $RET = 0 ] ; then ln -s /usr/share/doc/apache2-bin /usr/share/doc/apache2.2-bin fi fi fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 debian/apache2-suexec.postinst0000664000000000000000000000255112261546711013602 0ustar #! /bin/bash # postinst script for apache2 # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure) if [ -n "$2" ] && dpkg --compare-versions "$2" lt "2.4.3" ; then if [ -d /usr/share/doc/apache2-suexec/ ] ; then RET=0 rmdir /usr/share/doc/apache2-suexec/ > /dev/null 2>&1|| RET=$? if [ $RET = 0 ] ; then ln -s /usr/share/doc/apache2-suexec-pristine /usr/share/doc/apache2-suexec fi fi fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 debian/config-dir/0000775000000000000000000000000012262777736011234 5ustar debian/config-dir/magic0000664000000000000000000007452712261546711012240 0ustar # Magic data for mod_mime_magic (originally for file(1) command) # # The format is 4-5 columns: # Column #1: byte number to begin checking from, ">" indicates continuation # Column #2: type of data to match # Column #3: contents of data to match # Column #4: MIME type of result # Column #5: MIME encoding of result (optional) #------------------------------------------------------------------------------ # Localstuff: file(1) magic for locally observed files # Add any locally observed files here. # Real Audio (Magic .ra\0375) 0 belong 0x2e7261fd audio/x-pn-realaudio 0 string .RMF application/vnd.rn-realmedia #video/x-pn-realvideo #video/vnd.rn-realvideo #application/vnd.rn-realmedia # sigh, there are many mimes for that but the above are the most common. # Taken from magic, converted to magic.mime # mime types according to http://www.geocities.com/nevilo/mod.htm: # audio/it .it # audio/x-zipped-it .itz # audio/xm fasttracker modules # audio/x-s3m screamtracker modules # audio/s3m screamtracker modules # audio/x-zipped-mod mdz # audio/mod mod # audio/x-mod All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z) # Taken from loader code from mikmod version 2.14 # by Steve McIntyre (stevem@chiark.greenend.org.uk) # added title printing on 2003-06-24 0 string MAS_UTrack_V00 >14 string >/0 audio/x-mod #audio/x-tracker-module #0 string UN05 MikMod UNI format module sound data 0 string Extended\ Module: audio/x-mod #audio/x-tracker-module ##>17 string >\0 Title: "%s" 21 string/c \!SCREAM! audio/x-mod #audio/x-screamtracker-module 21 string BMOD2STM audio/x-mod #audio/x-screamtracker-module 1080 string M.K. audio/x-mod #audio/x-protracker-module #>0 string >\0 Title: "%s" 1080 string M!K! audio/x-mod #audio/x-protracker-module #>0 string >\0 Title: "%s" 1080 string FLT4 audio/x-mod #audio/x-startracker-module #>0 string >\0 Title: "%s" 1080 string FLT8 audio/x-mod #audio/x-startracker-module #>0 string >\0 Title: "%s" 1080 string 4CHN audio/x-mod #audio/x-fasttracker-module #>0 string >\0 Title: "%s" 1080 string 6CHN audio/x-mod #audio/x-fasttracker-module #>0 string >\0 Title: "%s" 1080 string 8CHN audio/x-mod #audio/x-fasttracker-module #>0 string >\0 Title: "%s" 1080 string CD81 audio/x-mod #audio/x-oktalyzer-tracker-module #>0 string >\0 Title: "%s" 1080 string OKTA audio/x-mod #audio/x-oktalyzer-tracker-module #>0 string >\0 Title: "%s" # Not good enough. #1082 string CH #>1080 string >/0 %.2s-channel Fasttracker "oktalyzer" module sound data 1080 string 16CN audio/x-mod #audio/x-taketracker-module #>0 string >\0 Title: "%s" 1080 string 32CN audio/x-mod #audio/x-taketracker-module #>0 string >\0 Title: "%s" # Impuse tracker module (it) 0 string IMPM audio/x-mod #>4 string >\0 "%s" #>40 leshort !0 compatible w/ITv%x #>42 leshort !0 created w/ITv%x #------------------------------------------------------------------------------ # end local stuff #------------------------------------------------------------------------------ # xml based formats! # svg 0 string \38 string \<\!DOCTYPE\040svg image/svg+xml # xml 0 string \2 short 0xbabe application/java #------------------------------------------------------------------------------ # audio: file(1) magic for sound formats # # from Jan Nicolai Langfeldt , # # Sun/NeXT audio data 0 string .snd >12 belong 1 audio/basic >12 belong 2 audio/basic >12 belong 3 audio/basic >12 belong 4 audio/basic >12 belong 5 audio/basic >12 belong 6 audio/basic >12 belong 7 audio/basic >12 belong 23 audio/x-adpcm # DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format # that uses little-endian encoding and has a different magic number # (0x0064732E in little-endian encoding). 0 lelong 0x0064732E >12 lelong 1 audio/x-dec-basic >12 lelong 2 audio/x-dec-basic >12 lelong 3 audio/x-dec-basic >12 lelong 4 audio/x-dec-basic >12 lelong 5 audio/x-dec-basic >12 lelong 6 audio/x-dec-basic >12 lelong 7 audio/x-dec-basic # compressed (G.721 ADPCM) >12 lelong 23 audio/x-dec-adpcm # Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM" # AIFF audio data 8 string AIFF audio/x-aiff # AIFF-C audio data 8 string AIFC audio/x-aiff # IFF/8SVX audio data 8 string 8SVX audio/x-aiff # Creative Labs AUDIO stuff # Standard MIDI data 0 string MThd audio/unknown #>9 byte >0 (format %d) #>11 byte >1 using %d channels # Creative Music (CMF) data 0 string CTMF audio/unknown # SoundBlaster instrument data 0 string SBI audio/unknown # Creative Labs voice data 0 string Creative\ Voice\ File audio/unknown ## is this next line right? it came this way... #>19 byte 0x1A #>23 byte >0 - version %d #>22 byte >0 \b.%d # [GRR 950115: is this also Creative Labs? Guessing that first line # should be string instead of unknown-endian long...] #0 long 0x4e54524b MultiTrack sound data #0 string NTRK MultiTrack sound data #>4 long x - version %ld # Microsoft WAVE format (*.wav) # [GRR 950115: probably all of the shorts and longs should be leshort/lelong] # Microsoft RIFF 0 string RIFF # - WAVE format >8 string WAVE audio/x-wav >8 string/B AVI video/x-msvideo # >8 string CDRA image/x-coreldraw # AAC (aka MPEG-2 NBC) 0 beshort&0xfff6 0xfff0 audio/X-HX-AAC-ADTS 0 string ADIF audio/X-HX-AAC-ADIF 0 beshort&0xffe0 0x56e0 audio/MP4A-LATM 0 beshort 0x4De1 audio/MP4A-LATM # MPEG Layer 3 sound files 0 beshort&0xfffe =0xfffa audio/mpeg #MP3 with ID3 tag 0 string ID3 audio/mpeg # Ogg/Vorbis 0 string OggS application/ogg #------------------------------------------------------------------------------ # c-lang: file(1) magic for C programs or various scripts # # XPM icons (Greg Roelofs, newt@uchicago.edu) # ideally should go into "images", but entries below would tag XPM as C source 0 string /*\ XPM image/x-xpmi 7bit # 3DS (3d Studio files) #16 beshort 0x3d3d image/x-3ds # this first will upset you if you're a PL/1 shop... (are there any left?) # in which case rm it; ascmagic will catch real C programs # C or REXX program text #0 string /* text/x-c # C++ program text #0 string // text/x-c++ #------------------------------------------------------------------------------ # commands: file(1) magic for various shells and interpreters # #0 string :\ shell archive or commands for antique kernel text 0 string #!/bin/sh application/x-shellscript 0 string #!\ /bin/sh application/x-shellscript 0 string #!/bin/csh application/x-shellscript 0 string #!\ /bin/csh application/x-shellscript # korn shell magic, sent by George Wu, gwu@clyde.att.com 0 string #!/bin/ksh application/x-shellscript 0 string #!\ /bin/ksh application/x-shellscript 0 string #!/bin/tcsh application/x-shellscript 0 string #!\ /bin/tcsh application/x-shellscript 0 string #!/usr/local/tcsh application/x-shellscript 0 string #!\ /usr/local/tcsh application/x-shellscript 0 string #!/usr/local/bin/tcsh application/x-shellscript 0 string #!\ /usr/local/bin/tcsh application/x-shellscript # bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de) 0 string #!/bin/bash application/x-shellscript 0 string #!\ /bin/bash application/x-shellscript 0 string #!/usr/local/bin/bash application/x-shellscript 0 string #!\ /usr/local/bin/bash application/x-shellscript # # zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson) 0 string #!/bin/zsh application/x-shellscript 0 string #!/usr/bin/zsh application/x-shellscript 0 string #!/usr/local/bin/zsh application/x-shellscript 0 string #!\ /usr/local/bin/zsh application/x-shellscript 0 string #!/usr/local/bin/ash application/x-shellscript 0 string #!\ /usr/local/bin/ash application/x-shellscript #0 string #!/usr/local/bin/ae Neil Brown's ae #0 string #!\ /usr/local/bin/ae Neil Brown's ae 0 string #!/bin/nawk application/x-nawk 0 string #!\ /bin/nawk application/x-nawk 0 string #!/usr/bin/nawk application/x-nawk 0 string #!\ /usr/bin/nawk application/x-nawk 0 string #!/usr/local/bin/nawk application/x-nawk 0 string #!\ /usr/local/bin/nawk application/x-nawk 0 string #!/bin/gawk application/x-gawk 0 string #!\ /bin/gawk application/x-gawk 0 string #!/usr/bin/gawk application/x-gawk 0 string #!\ /usr/bin/gawk application/x-gawk 0 string #!/usr/local/bin/gawk application/x-gawk 0 string #!\ /usr/local/bin/gawk application/x-gawk # 0 string #!/bin/awk application/x-awk 0 string #!\ /bin/awk application/x-awk 0 string #!/usr/bin/awk application/x-awk 0 string #!\ /usr/bin/awk application/x-awk # update to distinguish from *.vcf files by Joerg Jenderek: joerg dot jenderek at web dot de #0 regex BEGIN[[:space:]]*[{] application/x-awk # For Larry Wall's perl language. The ``eval'' line recognizes an # outrageously clever hack for USG systems. # Keith Waclena 0 string #!/bin/perl application/x-perl 0 string #!\ /bin/perl application/x-perl 0 string eval\ "exec\ /bin/perl application/x-perl 0 string #!/usr/bin/perl application/x-perl 0 string #!\ /usr/bin/perl application/x-perl 0 string eval\ "exec\ /usr/bin/perl application/x-perl 0 string #!/usr/local/bin/perl application/x-perl 0 string #!\ /usr/local/bin/perl application/x-perl 0 string eval\ "exec\ /usr/local/bin/perl application/x-perl #------------------------------------------------------------------------------ # compress: file(1) magic for pure-compression formats (no archives) # # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc. # # Formats for various forms of compressed data # Formats for "compress" proper have been moved into "compress.c", # because it tries to uncompress it to figure out what's inside. # standard unix compress #0 string \037\235 application/x-compress # gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver) #0 string \037\213 application/x-gzip 0 string PK\003\004 application/x-zip # RAR archiver (Greg Roelofs, newt@uchicago.edu) 0 string Rar! application/x-rar # According to gzip.h, this is the correct byte order for packed data. 0 string \037\036 application/octet-stream # # This magic number is byte-order-independent. # 0 short 017437 application/octet-stream # XXX - why *two* entries for "compacted data", one of which is # byte-order independent, and one of which is byte-order dependent? # # compacted data 0 short 0x1fff application/octet-stream 0 string \377\037 application/octet-stream # huf output 0 short 0145405 application/octet-stream # Squeeze and Crunch... # These numbers were gleaned from the Unix versions of the programs to # handle these formats. Note that I can only uncrunch, not crunch, and # I didn't have a crunched file handy, so the crunch number is untested. # Keith Waclena #0 leshort 0x76FF squeezed data (CP/M, DOS) #0 leshort 0x76FE crunched data (CP/M, DOS) # Freeze #0 string \037\237 Frozen file 2.1 #0 string \037\236 Frozen file 1.0 (or gzip 0.5) # lzh? #0 string \037\240 LZH compressed data 257 string ustar\0 application/x-tar posix 257 string ustar\040\040\0 application/x-tar gnu 0 short 070707 application/x-cpio 0 short 0143561 application/x-cpio swapped 0 string = application/x-archive 0 string \! application/x-archive >8 string debian application/x-debian-package #------------------------------------------------------------------------------ # # RPM: file(1) magic for Red Hat Packages Erik Troan (ewt@redhat.com) # 0 beshort 0xedab >2 beshort 0xeedb application/x-rpm 0 lelong&0x8080ffff 0x0000081a application/x-arc lzw 0 lelong&0x8080ffff 0x0000091a application/x-arc squashed 0 lelong&0x8080ffff 0x0000021a application/x-arc uncompressed 0 lelong&0x8080ffff 0x0000031a application/x-arc packed 0 lelong&0x8080ffff 0x0000041a application/x-arc squeezed 0 lelong&0x8080ffff 0x0000061a application/x-arc crunched 0 leshort 0xea60 application/x-arj # LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu) 2 string -lh0- application/x-lharc lh0 2 string -lh1- application/x-lharc lh1 2 string -lz4- application/x-lharc lz4 2 string -lz5- application/x-lharc lz5 # [never seen any but the last; -lh4- reported in comp.compression:] 2 string -lzs- application/x-lha lzs 2 string -lh\ - application/x-lha lh 2 string -lhd- application/x-lha lhd 2 string -lh2- application/x-lha lh2 2 string -lh3- application/x-lha lh3 2 string -lh4- application/x-lha lh4 2 string -lh5- application/x-lha lh5 2 string -lh6- application/x-lha lh6 2 string -lh7- application/x-lha lh7 # Shell archives 10 string #\ This\ is\ a\ shell\ archive application/octet-stream x-shell #------------------------------------------------------------------------------ # frame: file(1) magic for FrameMaker files # # This stuff came on a FrameMaker demo tape, most of which is # copyright, but this file is "published" as witness the following: # 0 string \ # 0 string/cB \14 byte 12 (OS/2 1.x format) #>14 byte 64 (OS/2 2.x format) #>14 byte 40 (Windows 3.x format) #0 string IC icon #0 string PI pointer #0 string CI color icon #0 string CP color pointer #0 string BA bitmap array # CDROM Filesystems 32769 string CD001 application/x-iso9660 # Newer StuffIt archives (grant@netbsd.org) 0 string StuffIt application/x-stuffit #>162 string >0 : %s # BinHex is the Macintosh ASCII-encoded file format (see also "apple") # Daniel Quinlan, quinlan@yggdrasil.com 11 string must\ be\ converted\ with\ BinHex\ 4 application/mac-binhex40 ##>41 string x \b, version %.3s #------------------------------------------------------------------------------ # lisp: file(1) magic for lisp programs # # various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com) 0 string ;; text/plain 8bit # Emacs 18 - this is always correct, but not very magical. 0 string \012( application/x-elc # Emacs 19 0 string ;ELC\023\000\000\000 application/x-elc #------------------------------------------------------------------------------ # mail.news: file(1) magic for mail and news # # There are tests to ascmagic.c to cope with mail and news. 0 string Relay-Version: message/rfc822 7bit 0 string #!\ rnews message/rfc822 7bit 0 string N#!\ rnews message/rfc822 7bit 0 string Forward\ to message/rfc822 7bit 0 string Pipe\ to message/rfc822 7bit 0 string Return-Path: message/rfc822 7bit 0 string Received: message/rfc822 0 string Path: message/news 8bit 0 string Xref: message/news 8bit 0 string From: message/rfc822 7bit 0 string Article message/news 8bit #------------------------------------------------------------------------------ # msword: file(1) magic for MS Word files # # Contributor claims: # Reversed-engineered MS Word magic numbers # 0 string \376\067\0\043 application/msword 0 string \320\317\021\340\241\261 application/msword 0 string \333\245-\0\0\0 application/msword #------------------------------------------------------------------------------ # printer: file(1) magic for printer-formatted files # # PostScript 0 string %! application/postscript 0 string \004%! application/postscript # Acrobat # (due to clamen@cs.cmu.edu) 0 string %PDF- application/pdf #------------------------------------------------------------------------------ # sc: file(1) magic for "sc" spreadsheet # 38 string Spreadsheet application/x-sc #------------------------------------------------------------------------------ # tex: file(1) magic for TeX files # # XXX - needs byte-endian stuff (big-endian and little-endian DVI?) # # From # Although we may know the offset of certain text fields in TeX DVI # and font files, we can't use them reliably because they are not # zero terminated. [but we do anyway, christos] 0 string \367\002 application/x-dvi #0 string \367\203 TeX generic font data #0 string \367\131 TeX packed font data #0 string \367\312 TeX virtual font data #0 string This\ is\ TeX, TeX transcript text #0 string This\ is\ METAFONT, METAFONT transcript text # There is no way to detect TeX Font Metric (*.tfm) files without # breaking them apart and reading the data. The following patterns # match most *.tfm files generated by METAFONT or afm2tfm. 2 string \000\021 application/x-tex-tfm 2 string \000\022 application/x-tex-tfm #>34 string >\0 (%s) # Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com) 0 string \\input\ texinfo text/x-texinfo 0 string This\ is\ Info\ file text/x-info # correct TeX magic for Linux (and maybe more) # from Peter Tobias (tobias@server.et-inf.fho-emden.de) # 0 leshort 0x02f7 application/x-dvi # RTF - Rich Text Format 0 string {\\rtf text/rtf #------------------------------------------------------------------------------ # animation: file(1) magic for animation/movie formats # # animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8) # MPEG file # MPEG sequences 0 belong 0x000001BA >4 byte &0x40 video/mp2p >4 byte ^0x40 video/mpeg 0 belong 0x000001BB video/mpeg 0 belong 0x000001B0 video/mp4v-es 0 belong 0x000001B5 video/mp4v-es 0 belong 0x000001B3 video/mpv 0 belong&0xFF5FFF1F 0x47400010 video/mp2t 0 belong 0x00000001 >4 byte&0x1F 0x07 video/h264 # FLI animation format 0 leshort 0xAF11 video/fli # FLC animation format 0 leshort 0xAF12 video/flc # # SGI and Apple formats # Added ISO mimes 0 string MOVI video/sgi 4 string moov video/quicktime 4 string mdat video/quicktime 4 string wide video/quicktime 4 string skip video/quicktime 4 string free video/quicktime 4 string idsc image/x-quicktime 4 string idat image/x-quicktime 4 string pckg application/x-quicktime 4 string/B jP image/jp2 4 string ftyp >8 string isom video/mp4 >8 string mp41 video/mp4 >8 string mp42 video/mp4 >8 string/B jp2 image/jp2 >8 string 3gp video/3gpp >8 string avc1 video/3gpp >8 string mmp4 video/mp4 >8 string/B M4A audio/mp4 >8 string/B qt video/quicktime # The contributor claims: # I couldn't find a real magic number for these, however, this # -appears- to work. Note that it might catch other files, too, # so BE CAREFUL! # # Note that title and author appear in the two 20-byte chunks # at decimal offsets 2 and 22, respectively, but they are XOR'ed with # 255 (hex FF)! DL format SUCKS BIG ROCKS. # # DL file version 1 , medium format (160x100, 4 images/screen) 0 byte 1 video/unknown 0 byte 2 video/unknown # # Databases # # GDBM magic numbers # Will be maintained as part of the GDBM distribution in the future. # 0 belong 0x13579ace application/x-gdbm 0 lelong 0x13579ace application/x-gdbm 0 string GDBM application/x-gdbm # 0 belong 0x061561 application/x-dbm # # Executables # 0 string \177ELF >16 leshort 0 application/octet-stream >16 leshort 1 application/x-object >16 leshort 2 application/x-executable >16 leshort 3 application/x-sharedlib >16 leshort 4 application/x-coredump >16 beshort 0 application/octet-stream >16 beshort 1 application/x-object >16 beshort 2 application/x-executable >16 beshort 3 application/x-sharedlib >16 beshort 4 application/x-coredump # # DOS 0 string MZ application/x-dosexec # # KDE 0 string [KDE\ Desktop\ Entry] application/x-kdelnk 0 string \#\ KDE\ Config\ File application/x-kdelnk # xmcd database file for kscd 0 string \#\ xmcd text/xmcd #------------------------------------------------------------------------------ # pkgadd: file(1) magic for SysV R4 PKG Datastreams # 0 string #\ PaCkAgE\ DaTaStReAm application/x-svr4-package #PNG Image Format 0 string \x89PNG image/png # MNG Video Format, 0 string \x8aMNG video/x-mng 0 string \x8aJNG video/x-jng #------------------------------------------------------------------------------ # Hierarchical Data Format, used to facilitate scientific data exchange # specifications at http://hdf.ncsa.uiuc.edu/ #Hierarchical Data Format (version 4) data 0 belong 0x0e031301 application/x-hdf #Hierarchical Data Format (version 5) data 0 string \211HDF\r\n\032 application/x-hdf # Adobe Photoshop 0 string 8BPS image/x-photoshop # Felix von Leitner 0 string d8:announce application/x-bittorrent # lotus 1-2-3 document 0 belong 0x00001a00 application/x-123 0 belong 0x00000200 application/x-123 # MS Access database 4 string Standard\ Jet\ DB application/msaccess ## magic for XBase files #0 byte 0x02 #>8 leshort >0 #>>12 leshort 0 application/x-dbf # #0 byte 0x03 #>8 leshort >0 #>>12 leshort 0 application/x-dbf # #0 byte 0x04 #>8 leshort >0 #>>12 leshort 0 application/x-dbf # #0 byte 0x05 #>8 leshort >0 #>>12 leshort 0 application/x-dbf # #0 byte 0x30 #>8 leshort >0 #>>12 leshort 0 application/x-dbf # #0 byte 0x43 #>8 leshort >0 #>>12 leshort 0 application/x-dbf # #0 byte 0x7b #>8 leshort >0 #>>12 leshort 0 application/x-dbf # #0 byte 0x83 #>8 leshort >0 #>>12 leshort 0 application/x-dbf # #0 byte 0x8b #>8 leshort >0 #>>12 leshort 0 application/x-dbf # #0 byte 0x8e #>8 leshort >0 #>>12 leshort 0 application/x-dbf # #0 byte 0xb3 #>8 leshort >0 #>>12 leshort 0 application/x-dbf # #0 byte 0xf5 #>8 leshort >0 #>>12 leshort 0 application/x-dbf # #0 leshort 0x0006 application/x-dbt # Debian has entries for the old PGP formats: # pgp: file(1) magic for Pretty Good Privacy # see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html #text/PGP key public ring 0 beshort 0x9900 application/pgp #text/PGP key security ring 0 beshort 0x9501 application/pgp #text/PGP key security ring 0 beshort 0x9500 application/pgp #text/PGP encrypted data 0 beshort 0xa600 application/pgp-encrypted #text/PGP armored data ##public key block 2 string ---BEGIN\ PGP\ PUBLIC\ KEY\ BLOCK- application/pgp-keys 0 string -----BEGIN\040PGP\40MESSAGE- application/pgp 0 string -----BEGIN\040PGP\40SIGNATURE- application/pgp-signature # # GnuPG Magic: # # #text/GnuPG key public ring 0 beshort 0x9901 application/pgp #text/OpenPGP data 0 beshort 0x8501 application/pgp-encrypted # flash: file(1) magic for Macromedia Flash file format # # See # # http://www.macromedia.com/software/flash/open/ # 0 string FWS >3 byte x application/x-shockwave-flash # The following paramaters are created for Namazu. # # # 1999/08/13 #0 string \ Apache2 Ubuntu Default Page: It works
It works!

This is the default welcome page used to test the correct operation of the Apache2 server after installation on Ubuntu systems. It is based on the equivalent page on Debian, from which the Ubuntu Apache packaging is derived. If you can read this page, it means that the Apache HTTP server installed at this site is working properly. You should replace this file (located at /var/www/html/index.html) before continuing to operate your HTTP server.

If you are a normal user of this web site and don't know what this page is about, this probably means that the site is currently unavailable due to maintenance. If the problem persists, please contact the site's administrator.

Configuration Overview

Ubuntu's Apache2 default configuration is different from the upstream default configuration, and split into several files optimized for interaction with Ubuntu tools. The configuration system is fully documented in /usr/share/doc/apache2/README.Debian.gz. Refer to this for the full documentation. Documentation for the web server itself can be found by accessing the manual if the apache2-doc package was installed on this server.

The configuration layout for an Apache2 web server installation on Ubuntu systems is as follows:

/etc/apache2/
|-- apache2.conf
|       `--  ports.conf
|-- mods-enabled
|       |-- *.load
|       `-- *.conf
|-- conf-enabled
|       `-- *.conf
|-- sites-enabled
|       `-- *.conf
          
  • apache2.conf is the main configuration file. It puts the pieces together by including all remaining configuration files when starting up the web server.
  • ports.conf is always included from the main configuration file. It is used to determine the listening ports for incoming connections, and this file can be customized anytime.
  • Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/ directories contain particular configuration snippets which manage modules, global configuration fragments, or virtual host configurations, respectively.
  • They are activated by symlinking available configuration files from their respective *-available/ counterparts. These should be managed by using our helpers a2enmod, a2dismod, a2ensite, a2dissite, and a2enconf, a2disconf . See their respective man pages for detailed information.
  • The binary is called apache2. Due to the use of environment variables, in the default configuration, apache2 needs to be started/stopped with /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not work with the default configuration.
Document Roots

By default, Ubuntu does not allow access through the web browser to any file apart of those located in /var/www, public_html directories (when enabled) and /usr/share (for web applications). If your site is using a web document root located elsewhere (such as in /srv) you may need to whitelist your document root directory in /etc/apache2/apache2.conf.

The default Ubuntu document root is /var/www/html. You can make your own virtual hosts under /var/www. This is different to previous releases which provides better security out of the box.

Reporting Problems

Please use the ubuntu-bug tool to report bugs in the Apache2 package with Ubuntu. However, check existing bug reports before reporting a new bug.

Please report bugs specific to modules (such as PHP and others) to respective packages, not to the web server itself.

Valid XHTML 1.0 Transitional

debian/control0000664000000000000000000002412612265272014010601 0ustar Source: apache2 Section: httpd Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian Apache Maintainers Uploaders: Stefan Fritsch , Arno Töll Build-Depends: debhelper (>= 8.9.7~), lsb-release, dpkg-dev (>= 1.16.1~), libaprutil1-dev (>= 1.5.0), libapr1-dev (>= 1.5.0), libpcre3-dev, zlib1g-dev, libssl-dev (>= 0.9.8m), libcap-dev [linux-any], perl, liblua5.2-dev, libxml2-dev, autotools-dev, gawk | awk Build-Conflicts: autoconf2.13 Standards-Version: 3.9.4 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-apache/apache2.git Vcs-Git: git://anonscm.debian.org/pkg-apache/apache2.git Homepage: http://httpd.apache.org/ XS-Testsuite: autopkgtest Package: apache2 Architecture: any Depends: ${misc:Depends}, lsb-base, procps [!hurd-i386], perl, mime-support, apache2-bin (= ${binary:Version}), apache2-data (= ${source:Version}), ${perl:Depends} Replaces: apache2.2-common Conflicts: apache2.2-common Recommends: ssl-cert Suggests: www-browser, apache2-doc, apache2-suexec-pristine | apache2-suexec-custom, ufw, apache2-utils Description: Apache HTTP Server The Apache Software Foundation's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet. . This package contains the configuration files, init scripts and support scripts. It does not install the actual apache2 binaries. Package: apache2-data Architecture: all Depends: ${misc:Depends} Replaces: apache2.2-common Conflicts: apache2.2-common Multi-Arch: foreign Description: Apache HTTP Server (common files) The Apache Software Foundation's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet. . This package contains architecture-independent common files such as icons, error pages and static index files. Package: apache2-bin Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends} # MODULE_MAGIC_NUMBER_MAJOR from apache2/include/ap_mmn.h Provides: ${apache2:API}, httpd, httpd-cgi Suggests: www-browser, apache2-doc, apache2-suexec-pristine | apache2-suexec-custom Replaces: apache2.2-bin (<< 2.3~), apache2.2-common, apache2-mpm-prefork (<< 2.3~), apache2-mpm-itk (<< 2.3~), apache2-mpm-worker (<< 2.3~), apache2-mpm-event (<< 2.3~), libapache2-mod-proxy-html (<< 1:2.4.4-2~), libapache2-mod-macro (<< 1:2.4.6-1~) Conflicts: apache2.2-bin (<< 2.3~), apache2.2-common Breaks: libapache2-mod-proxy-html (<< 1:2.4.4-2~), libapache2-mod-macro (<< 1:2.4.6-1~) Description: Apache HTTP Server (binary files and modules) The Apache Software Foundation's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet. . This package contains the binaries only and does not set up a working web-server instance. Install the "apache2" package to get a fully working instance. Do not install this package unless you want to set-up the Apache HTTP server entirely on your own. Package: apache2-mpm-worker Architecture: any Section: oldlibs Priority: extra Provides: httpd, httpd-cgi Depends: ${misc:Depends}, apache2 (= ${binary:Version}) Description: transitional worker MPM package for apache2 This is a transitional package to apache2 for users of apache2-mpm-worker and can be safely removed after the installation is complete. Package: apache2-mpm-prefork Architecture: any Section: oldlibs Priority: extra Provides: httpd, httpd-cgi Depends: ${misc:Depends}, apache2 (= ${binary:Version}) Description: transitional prefork MPM package for apache2 This is a transitional package to apache2 for users of apache2-mpm-prefork and can be safely removed after the installation is complete. Package: apache2-mpm-event Architecture: any Section: oldlibs Priority: extra Provides: httpd, httpd-cgi Depends: ${misc:Depends}, apache2 (= ${binary:Version}) Description: transitional event MPM package for apache2 This is a transitional package to apache2 for users of apache2-mpm-event and can be safely removed after the installation is complete. Package: apache2-mpm-itk Architecture: any Section: oldlibs Priority: extra Provides: httpd, httpd-cgi Depends: ${misc:Depends}, apache2 (= ${binary:Version}), libapache2-mpm-itk Description: transitional itk MPM package for apache2 This is a transitional package to apache2 for users of apache2-mpm-itk and can be safely removed after the installation is complete. Package: apache2.2-bin Architecture: any Section: oldlibs Priority: extra Breaks: gnome-user-share (<< 3.8.0-2~), libapache2-mod-dnssd (<< 0.6-3.1~) Depends: ${misc:Depends}, apache2-bin (>= 2.3~) Description: Transitional package for apache2-bin This is a transitional package for apache2-bin, and can be safely removed after the installation is complete. Package: libapache2-mod-proxy-html Architecture: any Section: oldlibs Priority: extra Depends: ${misc:Depends}, apache2-bin (>= 2.3~) Description: Transitional package for apache2-bin This is a transitional package for apache2-bin, and can be safely removed after the installation is complete. Package: libapache2-mod-macro Architecture: any Section: oldlibs Priority: extra Depends: ${misc:Depends}, apache2-bin (>= 2.3~) Description: Transitional package for apache2-bin This is a transitional package for apache2-bin, and can be safely removed after the installation is complete. Package: apache2-utils Architecture: any Multi-Arch: foreign Depends: ${misc:Depends}, ${shlibs:Depends}, ${perl:Depends} Description: Apache HTTP Server (utility programs for web servers) Provides some add-on programs useful for any web server. These include: - ab (Apache benchmark tool) - fcgistarter (Start a FastCGI program) - logresolve (Resolve IP addresses to hostname in logfiles) - htpasswd (Manipulate basic authentication files) - htdigest (Manipulate digest authentication files) - htdbm (Manipulate basic authentication files in DBM format, using APR) - htcacheclean (Clean up the disk cache) - rotatelogs (Periodically stop writing to a logfile and open a new one) - split-logfile (Split a single log including multiple vhosts) - checkgid (Checks whether the caller can setgid to the specified group) - check_forensic (Extract mod_log_forensic output from Apache log files) - httxt2dbm (Generate dbm files for use with RewriteMap) Package: apache2-suexec Architecture: any Section: oldlibs Priority: extra Depends: ${misc:Depends}, apache2-suexec-pristine (= ${binary:Version}) Description: transitional package for apache2-suexec-pristine This is a transitional package for apache2-suexec-pristine, and can be safely removed after the installation is complete. Package: apache2-suexec-pristine Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, apache2-bin Replaces: apache2-suexec (<< 2.3~) Breaks: apache2-suexec (<< 2.3~) Provides: apache2-suexec Description: Apache HTTP Server standard suexec program for mod_suexec Provides the standard suexec helper program for mod_suexec. This version is compiled with document root /var/www and userdir suffix public_html. If you need different settings, use the package apache2-suexec-custom. Package: apache2-suexec-custom Priority: extra Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, apache2-bin Replaces: apache2-suexec (<< 2.3~) Breaks: apache2-suexec (<< 2.3~) Provides: apache2-suexec Description: Apache HTTP Server configurable suexec program for mod_suexec Provides a customizable version of the suexec helper program for mod_suexec. This is not the version from upstream, but can be configured with a configuration file. . If you do not need non-standard document root or userdir settings, it is recommended that you use the standard suexec helper program from the apache2-suexec-pristine package instead. Package: apache2-doc Section: doc Architecture: all Pre-Depends: ${misc:Pre-Depends} Recommends: apache2 Depends: ${misc:Depends} Description: Apache HTTP Server (on-site documentation) The Apache Software Foundation's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet. . This package provides the documentation for the Apache 2 HTTP server. The documentation is shipped in HTML format and can be accessed from a local running Apache HTTP server instance or by browsing the file system directly. Package: apache2-dev Architecture: any Depends: ${misc:Depends}, openssl, libapr1-dev, libaprutil1-dev, debhelper (>= 9), ${perl:Depends} Provides: apache2-prefork-dev, apache2-threaded-dev, dh-apache2 Replaces: apache2-prefork-dev, apache2-threaded-dev Conflicts: apache2-prefork-dev, apache2-threaded-dev Description: Apache HTTP Server (development headers) The Apache Software Foundation's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet. . This package provides development headers and the apxs2 binary for the Apache 2 HTTP server useful to develop and link third party additions to the Debian Apache HTTP server package. . It also provides dh_apache2 and dh sequence addons useful to install various Debian Apache2 extensions with debhelper. It supports - Apache 2 module configurations and shared objects - Site configuration files - Global configuration files Package: apache2-dbg Section: debug Priority: extra Architecture: any Depends: ${misc:Depends}, apache2-bin (= ${binary:Version}) Description: Apache debugging symbols The Apache Software Foundation's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet. . This package includes the debugging symbols. It can be used to debug crashing server instances and modules. See /usr/share/doc/apache2/README.backtrace for more information. debian/upstream-signing-key.pgp0000664000000000000000000122175512262777736014022 0ustar  Lfߔ|;OmM)j'Lq$^$+P*qJq|v<3%6x"e~8zN]=M^PKi5r]EWh5 6A:Eߤ rGr]]ňcG o7!3_V% یa=l. x3lFL 2åQ:WPPd+| 0alHOsKFN#R  nN$Q|L<e#8C*n WS9p ]M^7>6FN-L 2e* ?d_#D2/Q|eTQZy:Rw赈FP .o0K\j)>>stԫƴ9\%E}j.4F L :`ue M!%̠mi$:ŝ~=6oJf-x`uFNN &x7%'薥1Aڨ=Ȅ7a؛^}8wF LM0 L(1=ZMdy 8V0pvB7K`/Q ;rVQ.} #6dFS¬ 1/e2LYl"o`V恷wKv5KP>Ϗ>1gy2맗>٦1YY6e8\-uLJW 4Oe'ܯs;"Sa7-v ub]'!y懣2)t+l0n!) Y^P?Z s 2{%|r;\*o'K]P"ojX&L3 c^ e0Mun(~'R 7njlzkWZ  ФlF&-- H0> 0}#+Ӣ`&ȁɩ'پy!= $XoGv2.Y,G٦`r <'7] ]8#jI]I㞂:HW&.&e,0ޭC`-;/8k:NVħZ/|^k^=q z>k%HBTm8{wA1ͽqm+b|I0LxQn =PW1U,Ό]VI&t+ ZI$v+ fKJ5_ھ}WtwfޘB +q, 5u X]\%D.d ΄|0#t*0Z7QwM!fn'.;\ pV&+*N ya}ۭu Ш R&o#!dGneΣ>gW؝FUDZH6 4(_bǑ-Ih&7OR$!y|ߎB R$A!E^PZX$P^Wkca EqDۣzh[1WHqɲtrwl#2eko5u9&7\B$D;66̤7cr $`m`>˃Y1w1jmAyHu:yNu?/p5ˎWoU8tҒ#(o]|-;uReߤ(G bEp3RF9ڏnH-< ^N; MAEff{mavPg :!&LzY[ÇI* EK} ۟] 7㢇TG?'(-(ǬZuS¦yA9gx:<ڈ°!8_9:jMNFStI5w 8ΩWF_]Bv]O:(/8P[c'ZF#BB@Opb ({2O~>ٹE 6k[Vy,ߑ2DXwt(z!Jsҫ H 5rvSOH=qC P]l;kETK™>ƶj.IQ+{UBE뤇`~XP\x@2Rp?l4zvNZ V5*vЯ{-^(]_ņ6n&SmzsdS&W8R(V(/sy^qP^o:B/;M.1ux ~ںx`oFY^rѕUڬ6aJߛ򦁾֖_BcAޥ_'U oX{$/]sG<Ő釗#ǐůFhZZQeU._H Yl 5y/!V#%S WE[6*v>-nqhAo্*V l?j'F OZSd!*FCn ;M-5ˀcۛJޮ.uM}@~H<ԾSmk9-*X dTT\dgpN+ii )=ݖ&g`& CErx5Eՠ,(jV!c)dM:v_ 5R >+{?8Rs=~tfd-r {`Ywx`C"89Qh~P-[CemVF!MT.,q5޸G:w~=+`a0VV^0w~GCZ_ZC Z ~)CĚ Z_ fxV:QpȉNq- F2 7FԾϼ֊F?LI.6ID\.J}Ij 0 TƐ$6i"sގ(4 @z~FH?*ziu(ښ% 1?NJ~ }5Զ T:N'ff dϾhNi,!UIJ11QF&kC蝜Y6aIk[ԉQ[aNqq4Dz>;Yu٠K(uNm˕U5OQqkReM靯JW6*}VSgO6i 8s&'"+}z$،ʓS:d'Ʋӆ$ư~zVCg2V [_d';ɗ\:n zD#X\]+t-S2LNtQח3B+z=Z2sLYZC}#PT7Mŝx*&Txa-?^*Gr gb) /߶щA" u&CFL5A~*38b) * $'~@-'i?M}WpS<95twՇ]!1ik(҈JЊ"硹P$`z?}7O q?޸[׮0ƽEA?zNEaa [*2E@ͣ Z/@'`e:1!Gig΍ %M|]Kq!!޷8u͠nҿ]瘚ɽ;Xvr܄`ct$ֆC.5[R5'fznIQ- 3>8=CZV*nGHtW04[mT6چ(De? H8pkC`ԑnE}Lǁc#EͿ 6s\UKEvl"1$2Ǖch8TWL7ϹGޑI?5_Zu*ŀ?@ݣ Cnjg(arݐ[:2Kԥ7~Ѿ6WMrCw`;8$T+tЈl"zO'!͠>1zpΥ-zݎ*!nC߹Ş9K2/7[11ъتͧ㱩\%YYATYN/#h~?Ǐ";ҜM˭cSf5YWhϼ~ET}5C$619|֧Zӝ^eh$$d"aXƜ47h Ef+jD2ՆFP_1t44˫C^Q.QX ,T`v$_Ħ@o"+?c 8L[NI##|64_3֎?e)kRŢ#E9qń(ŝ/F$Ӧ Q2sa@~{nA~";1Up0U*SW x@,?jE@hD2flJ5OiG[;md!C*+8KoF,֮8? oזpݳ=VB8u9[9yܰC~xWd UĩD):f)%Ǽ뚅Nr4Eq̼%=+7!C}%*瞒湪¤@ 02mptbqd}b^<\fQQ69Ԭ6ٟ͡?Avy(Tmsa=X 7B8 86@y7ҝ\z,੖?~H]V&cVZS|h7݌~IB5~zIF%p9NQ>SOlRKn&\`DFQ0Z wMk2$cՙĴ*.nc4dϽӈ:eLX}Aޠ1!hc:\'K6+dc(e#`Ds'U\nDq_d@FnslƒLu<aHD%C&vs|q͚jK`e8bg ww$xq8$ Mɬ&0k@X} f*2~zJ,GP$ rt|#VIHHnֵ0&m`ǧ%N;63JFQrpz3r ."HPb9 bxfltT-ACQ7D&sU؍?%x- ܳ'< *cYz2ô]MA&Qgi%0~%s; 8jsͱ\)ZS&LŗJQ5 \p~T(<ݤ=yц숟aq|w*%&0X(9}`kV$Oxz8`ZH })) u }B>oݐI?Q}MsQR;3췹ḧtSYu&Qv[9*9n`BYFI-sIqK/-K%A.gq eodZ·Fm",- dFT"'av r̖̍8#b"~4lY؃9#S;"9rÀmS&HXLiq&k*Ֆ7{rJ >=V"kB@n Rl(&Bʴ? BQgȅ@O1>&ml\JzꕊR8f M1L_&&3`I.pi p\am;AJR5 <; S}.PvJfyZ- Lށ [Ͼ'zOh7@p뻅" ruc!؍TqRS;5)n&|)XiBxQ{?ÉJ#eU*'RnZaÍgzv 0֦g;ΚP?bN]klqگ՘aDU~y n}]F!19_U^Iw3 O4U"f·IC%L7w"m`3s 7R>Q9u|9Ĝ0-plG? F2$'n ,L]d㰗xLS6jc-S$ MPW ?Rz|dDQ4q p0tmr}J$>.c "`Cj4wߣΧeqž): T"9X3"iYshҜolRjRgy<}*csse~?OzXR'Hfe{//;xyP5RH2=:V&9:Y!.,rTu&\l 5!ؕf1fB?><90LGs~2 Ẍ́~%o6]z%U/:C*2**}6iV+o,lୡ(w[ #9Pʳ-DN޴ڠ?Ղx/6_SRZ66cWFԕ< LLMG+I<}#_BFðsIb^eQei U{?Q|l=9ftLW@UWGE ')W%Ma*rB=4Ė`&/O\"$Q,+h筗ӽmHFI,QL1K?R.ݝ?E %!B!Hl0̀M:Z\5g^'~x6RyUSL ?rL 3(+ lq-HD&* xJ.-.q_nI%k?h;QZ(VJ _bh';?MC71 LCPVI?WgbBdEY=s("o oqQc'0ݍ Ȩre)k9&T%Kx?J@9HӜ#4ER6:X#~ Q3P o `j DՅѬuH4#P1;* ΟbGDAm@.SY>td>p]cR1L12>Vq;Z.S}lNqw4:pË>9j"Zz+<}iT kA9p9M J2}sD_DT,Ѭo!=). [2r_nmV,T" /-$ـ8f~=6uݾ:dn\n@%.kBOO , t'>SE[l0}@'q"C}%YR De!"N.gJ< I%.jCw6'O6Ƙq(\fOEG)(Nۅ{{?ad[5|B,rHHawVxjJD /h?Rh+nQ/h,UC)ʔ ;w~F0I9%kōR.Nro~xXْ,?# Q4 bԏ<^C|SW0G0<>i'u^AxS EZe JJ 7^l3o@OXmA~~C-eo6';)srzwDҡ Ʊ_Z8I` І >(x* =uYN( }aH@v1‰N Ƈ_5AK[g1"sY:0x  qw`'\Vq'ńgJ %CĥؐO#R)rXA}y~`I&4/T4J&H)ZZRZOa\ 6ͅh?7Qtzxg o p%0dyOd(:Fnr#dA{ws"7oD2`ZrHtE"|]^KD4+F%?tեkoEix*~; ZlKĵy}>Z1VdLJ{OBb8@ HO$<ߛrH| nyATNzL>;Hڗ,- NF N I #pBq h&^;%;/Qe*v+£~ /6~+k^(WratfMړTЀ#zQaN9Ey΂uHhd B*ثW&mg[ ڢ |C.^CtߙGnDj22n; t-UBI>M f ::Y49Et '"#/pIZ*00I [blU #WΑKWKqo+nG܀J-8 /GIM|`ĭvHO@&Ȍ$Ghw QN*NwuW 74D/fs Ev,XTE(i^«ͨ|<nkXŕnuzZ7/-A}uacz v++u&|&-y*DWz( `rn|Y*{`TN瑻njA\JIZ~|n")ېRgk(;0꜋?BYƉ Q3 򅓮Q&cE DYHE689v'bgy#'r<6j[p|Ԇdb,FȧX_b)vWi=~2bk4"pwy)yX>ֹd%g[ 9p#6 .IΎ&LPv6EOWj)H B^]eaAƭp{E$ =x8=4rhv{6B+߳?=,MrM$,.<MrmpET>TBl+Y!<z|rR)B/(r!?+!z*&W1&w?C'33 7 ţy#! [ q K>q"{@zJ348hd$ `XLH_ǭu`n`LH9iSOy\HmpWF7Za"1_{\Ι^@l'v8jc4v\;[O7 !   No 4vy584yNQ^Z.P VZ$V8 'qDMe)+ #X<*"[缳hwW>#s#7 ,(B7^R?jSv%k& |Q͓d>.ux$h\ <_8)t_LKwJv&Lo,2]?KŠ,?eojqŬ@[r1D4& >!u?^<2<Õ>Y/0.6;(kofVoI4#(3=Ʃ%\Mz1y|e+sb@v~۞{NU!P&[h#vŖڍK1f 330< N8g ɈAͥFǗWٞ#X4l,:tA&F&^9$AuY7Vʼ}}"iN_9{l~A.PjʀKȈ8ĉ7 !L    4vy&Glʃ4ٴ\i}u>w9S4%u'O;R-FNS$ ;Gٓ  usdoͳ;-uiVQPX2ɼMDGfЃҒo(@loS`hdgm*]Sn*xΙO"L<5^%Hr0ϐ)ư$b *ÌGQݞQksM?ۯ5Ccg(Rg"㡽h%){$~)0m6O4:Y!qD!)d=eg=L@M}(%p>XT)9Bs$Ѩ)D^(VW[VU>F#1Njo7ЩׯLqa5cսyPJ;eӤD[tTd{I2<%tKHS4sJIp.$!Dԫ &XsjQHQQwhnLR NAkiUKڱ"ϓ1XԧSpn Gczi3O27}2)9L{p@̨Z<$j,P:>o'hA?d˷3`\uGyGt+3lS}3Xd`Uqx ZX0>l ס̚QaKh.{zHDTg.DsZЧfir2Ѱ!G&},V*Z\,nOv?WO`=e y3Omv"M&8k+q]TxrZ.:Lw!GWpa VFI6 }zQB  +1{Lw Kn 6.ٸi~*Ѫ,t y5옜B"(,ȝJs۪LT`Uy)]/~3vMC:dLӷb>&1Jim Jagielski FL 2åwGF”߹^we# x&Zw6q/4}䄣FN#R  nN$Q|\:jVSXHnpt^Usq0t{4kLFN-L 2e17E9v:Y{ӟ>;>gXA۹zFP .o0K\ %|2 vЁSΔS6cyD-3'F L  :`uҥvRw]1}"igD-ngH3;sFNN &:_(H2~YSV O`` 6f"ͱ4Bx)GF LM0 L(1=)rDf|Ui$ 'Y\]Q.} #6dT F6RV<#-Ġp,G0P+ S2M)a&G)]Y ˯ G<6z'`,#d B_'|4 $}hs~Y0%7EQBU-Pm!7RB7/}$Hu(;#V.L rjKqBa~{4 kg(k˞?SшhWB$]k,y-}G>|L3 c*M-˦¹6hHsptL]b1}Y:(I_#iO2˞w& GCo"CsI~).eT6a [ U8S_Ě?+dZjP$0ͱxD@;P*(y$ $!pk.6Sk}J߼  f@@ `1'Bu/-OF,g)I|`Qz`2k~> A#)+6%^W?/mx6[ 2XA ig/:iPNW! o%n r3y}X}'E3Z![,G7ܽr $BpqX{U[95m1w$H aIM։ yOD$mm?)š6f&]|+Wwsuz~$*d,5k|A؍ʌ 0>D,>{GcĐ ԵV0Eu& 7IN3fx/R;N ya}ۭ!@&eg X!5B!xfvgĵ7 GA:ņK},JR$S[bIgଯ_.zPXnڔm͎];&qoz:MH,Adg %-(95*}C̥zH D??ZAkDL(wEgx"D`ܤwʣ5Ӛ!/c^l}=\# w?i |>Gg,owb|D t un\U֊Fg+[GSO:1{SBBā&ʃdh$G7&|`tkO4ޮN>QY2ZmwUΊXY6fljN; MAE%8II?x]&6|cWüH@2rsY(=j@'`òn2!K+3Ў 42 ѤWc!j&KƱqOVLȹsTy{ \ }@n04}&;.CBLPՊǩ>V}<66y"A&p2cxއϯ9Cc8º:C A؍# D{۽9.zf%CIvNZ V5*v1NN{IL t|sd=Kk.7WS'<.(YmvoʗSV6]&s8%őy{[^EH=]|@ .\PtlmdU=]q46<{@YxP +{@*2}<Ì'm>#Yٰ1ɚC!IMQ*A4K݅؃K# 8"3o壚b! ejM=P~\#.S%DEdlSKb)V?n3>0e'ꑺPu?A&2~v離~n"9 `AtNx{^T(ݿ Ie k8Uo@]Fޜ߶9@A߶)A%D7uz58Ao24XUkX74TsP&0JQiNhBz qO:4*4ASB $dׇ")]Nc c=ˮkm)1Cn|'ЇDs4 xwu-Qܺs< o:vog+_7Y4m/ndb3I)gS.pm݊I/)K>PwYX$}e 힜^5 82߭;/-paq Ro fb :DP ( KHo9}gz!MMɛnE*,m#6Vli7[#щ9B5ŴB&yʇy$P m==>$vT e^ҟ0P 0̓C!W֚S;PunW.`%IcT$m ޗNAk {RGau*G4K#% k)Ηy(F3PT w1͢ŧz[qqWfv>8|P*HNq- F28@@?RyӢfDdz)[S3;V -WK.wW=٤UMz!+:տRIrkBl<"oOĔ4ZԄDe,֡%Ye[gKuMlJ1|挭VtVWh2uTU"D4ԇoy{^b6;a {Υj=bS#F_ñݣY>?+<"jۍU-Q'<6e@gxv_{T#Ji L$-EQ-W+ElRn016˻~[ O8ع /. k](*9jw"VTڒsGei` =aAq fm -6W~[t62nԕFzrWNyc Q*#,"]G+~F0'`k*\py8#itBMf`hfx*k=7#W[y ߉ʞ\lQc -9^&DKƻo!ÒrOk^+HLb.v JOw%P{y[bA aQcGV1}̧cA * qՈl W.1> +-u_6mljؼ*c+:z0T7ٹ^$1L]['5\4{(hi`zԫ+ƲJKIzջv8rա3H\Ueʚ?:Nz~ ')1ƵʭF{Ug6@5cd *lEIcWhF p0Iu'?j'!۩D,4Y#J'V^#j z>?e-pVpDH6!0Ty&dҸ" j4wPr֒Xf JO6i 8s&'"@[U2(삈T)b~\DACkywTnmcAW@W _#?muz/ /O''~Vy9"7x n2zNYW1 .}u,j8gbΈs5 sAݟp| )Y3"v-;kHy/ rZ0&C3Njo*|yu:hFVFVånTX`LFK(ⳘҨ}1ǮV(Hk9ј`@"erWL!9G2z9֓G"ɱ\lB}`N%)cۘ)n`{k8]+>VQ5d+݄V+y> eAq2@v@tn \<$Aډ }Tkr2lwS+xՆ]nȽF$p͔a9Oc TJ-="?V0I"|1g 2K~sܠ BQ- 3>8=CGrTdQ<?7 ':͢`?(6jg>ۘ-ѯz閖إ"Rod^"0?w0M6qb-_ T-ׁunM},@Hofq*ī dz8}c7l Z_AO`oUސ*#]c&) r@kॵZdGeA:lZ%LoH)"Y'!'okB, <_0^dښ Ŷ-jKtnD RFK3@M $qڬg~ڑ݅TsN pB 0 Dv@_g&j%pؒ>dԾ FR1W; 7!Xn&kyiۈƮDR }۰Н؝}]$F}U8Kv: <{520"@F<0GKA38͉Q.QX ,T#lEJ&훊6y$d7 z3uBu^Tl+ Ƈ`kN:X $P:FV;᫵X޲P~̟}Mٮf)!S&>74JD79p H|GRZLbg,nA /˸<*UCX/>+?jvYzl#L5=5T i,o1DzY?%|,;YPI%`j3]^?.(|UﮕGV.D]Zm`|OЦKQ.r #Xj:% #L J{&Od/7Cn&d geB5( 7nh;a܊+ Ƈ0_NB]ZjfQ`")U 91VַtR2 B}# ݼVШKe{L;%.83ؓ@0K4Њ ƌ$GA64y܊^K3Vꊎf6waLIFOlϤ0E6yoDtt#oRӷuCp\[ܶƧUp"#ϏnwX|i;ۉOju:6 uȟ4ˍ$왦7JHޫ(fWJQ.< C{\fZʳBQin;FG>5 7Eu#|G+ 7 lT nWZ*@`vSNU`ԈK/MVgz/hmWD(ێu52-.e:֒ŷE43_cUu,cN@y,PvZ+ u*ׇ =D/R^>†9m_8P֏p`%^H"k0"u)rh *JE6ڥ]p ͑} uQzQ>͆&~I2`DaC.iv;\)gz-.0 ug"I2Nb.ZNc?tbx>uLUC55<ۂ8? :*Z81 s@ oR!X?pC_;>ْk%;b1 <}5xQւzމQ0Z wMk/{"EПrAtnG۽RTSPKKQkIL6Fet AKʤNu% ƍ؁%l{TrF/w7x=%Z] {<Y-W1a934|CDzSa5V-\KjgSDʊ<2yl'W@ ?>18B! Cs4PA];mIEaG"Nl!@.PQv=?X{雒6E8کJnS7^VH '9WSr◸a]+?}ҩLCSct.h\^c Nì(,'KeX"oc8C`Z c:W$Gv Nadޡ;e*;H"Z=,$SĄX<1PP3`|&scbcz:;IP Z;88aMX~W{ X = Lށ [6V *h6ph0!){&zs}0{)&@uJHNjM3c:p"֘S(hUЖZeƯ|nϳJɝ_.+I&9坱3ጭ.4j^NdBiO'Gnċm)TZ2~kރ]W7a1!y[ ?-Yz9#j{;G4M՚4[d|FP`6w10!sL ~DV$ՠO/Hm3 7[ݟb=knl$ݡ*x уrGK3=lyHoOtD)U'XQ$ t+ı >fJ_H\PsyLWsoYGЇe*|qRiT6}}s羯AW]%0X\OnJL-j L # -HGwC M#W)un wZ/Ұ,W ȁ*uSC|a&=. w>қu0tJ2cR 7>9\S04l%neq:輱B`VP՝fA:bĜ" ܉B#U$'γ\0Zv.9xl@3Y  zJԼ4! nYGz޲ +Ҧ5ݮQ=Z4fmIݽ7I[$3LtW$ڶʿ((kgXv6ϊ-_͛R,$hW+H!VŶ6dmZ$<:I~8 #,l'prBgh ;#D_/c"Q;ٮ MPW ?Rz{/VugAOL!*ǮQ xL?G^*d(?ZPtҒ5FH5}+xd4O&iry0xš} tZX߆hX0e3 ô'S-D @a4$)aiq:t6_n.2]IVvcUq9TT4⭇/R~ ǃ%W@_oiQRw`)ez}{mds^T}ۨw5jG9ݫskK\a)S~nijX&;-Mgoxmxzî Xύ_(E qL˛^%Tg W) rtL\Xם,?_:>Oqu)چl`մ B5V9g&@iwՄE[޷ 1-~ɫ2ص腍lBpѲI49$ΒGԹ`ߗJ Z@qb&7ۺS N; S=]{ZT!Žчv뢩*8g f^O_^Ӆ&tm^&L -h2pŻ恴4s_D:mėvTO%ʍƁ!C99+">7$ sJ}C4_RY, yOt 0xdX8 1akw*z)2m%zBc6ٜ.gQᵞ!1O~HVI5g};?ZHA]7zAWt4Np\hdl 8$aJQ "PސVRKu?˚r N͖ OH5{3됮ŗIUG'5qM>c1exCp=mB>t+^zD:hÑNY8 3Ԣv"r \ںd BT+#ETp2΅<͈7|SpBu"Pbq^ =ƒ ;9T1h &U:TU]~G;ڡգ@al߮Iw4Yvc̔S #$;M% _'5.v-gmEv+Zq3n} ۺj[飂(&3WH KxC^IMs9'۳pCEgL#c/w LU!հ95`%bU2 Q3Q o B|;:ՔA%GC ZY6)3cQP՞90lE$A­C:cp謹œ0'`,~-3 s~W뫏O=rsdՉ(bIum{{ʙ ׳ ܒvwwM^;؄ (4 f`DtE\҃C0%Nx ƌK>/*چnomNJR^*KH_2:@0|?&za~BW޺IgK>rCAk Z4׃ Yvj&f^{3z. iE# ܘ~  vn6|mbЛN Ƈ_5Ac j:ջAU6ǢImøǔIb*}UXl;"*mߵ&BCꜨ" (7V4Z&Zd%7O؆ uy=EWJo2>i~+cBqڜ {-6BևMnl3j5{@,@K^-[l pAB)T&!zTD 6F M3k''b|%g !`J.jNM aGrɠ~ݧqF*iI)5Jo:AdεOuyWewQj)6*Y;pxNáy4ыEU';5ԽKp~0Nk](OA^")*x:e  8)@q(i07$} NF N [f@.5X7 r`|j131 'Q+>&i"uwsY!c- Ui2ɧrjeN ,G_EVyz[+0 BwMRr[L{rC0Dw8?IwhgHUƏydigIE_ǶKwP?) )pO4^≲b끘NiE7Sk6VO}:(XX1Z:UC Í(~a:ʥJl㦳c6|Xyr `q/\D!ՆO9"U썿 Q]42 .z7"Y"pz T0  .4sN&Vr4L , lzz_ǤŰP3)"@ 4FUr?̆i{,iދF B\c^F"`Nr 䆖G%0߾jyF15&`H8w1/E&Q$=8٘cZHӕ=uDZbG$Qu Q3 򅓮Q[FڵZ0Lt>BШKE=ry]\Ni/S׃^Ok}Ӡ5ѻ8MhJ!97\Wt6ymx7NƎaJ0H>W:'/)d3ԞQ41$ɻo=WFpo.x& kFMQuK T`,D o6^ b > ;[|\A,1GX[bɤ8s\ĸ7(MR~s r}r؂%ng\Yļ&ux!,Pwrvg=wxL$8zNB+t'_y !?w 2E18z@fvʇ$Qsm&pOQ?o.BoZش]ZMJXƗlu!a6xh9\ `½fa<'P쨰1exS9phUxpn: Tj}p\_c37 !   No 4vyW^΁E?{uO DMkQ\|_r-rƉ ?(A+ sVBZv6'Rj/7 XJav=(:&=4{(7!?ƔS7Aѡ!1מP NrO"J](F y+@[ ,)^77ֿv ?ݎR_}$'4^H5Nwt!1h ѿѸϮ +5bj2b8J1e4e+9?٧.ApS5Ia'$lu n~2FcMC s9.նAhdW/? Kr3R̟->^TȆ2ԾctVX~غmߩO r7 f/S02ԃu٥4~<6d H6`g}Q:Eezc3pnUyl_* M.>$kyX[6I(aJqT* "+Vr [`FZߖk5]ѧ!^s"Pcҍ.$7߼S<"r*kg(t:AͺVB;&vCFQ8N!E[ck|C:u3Q9LR NAĪ?C Ȟ l QE]iώ9$&߻L5[;j@opʙT: [_2 S鰀ԅzX~k[@H+G嘌&̉`5?2Rh%n#8ࡼۺw֟uG/c[߰nAd P .Tr w&#;w8呫L(__O WSW;"Ԭ6%G3?(7M~sLA^8\ѽdd4왜MlF R#hkJ[0t*SnZ 3+'IpUJ#0ɚ`)Xvת5/ΦܦP$AH {BD*ik~_UQ/h>RuW^gHiV4Rhg,BiRR `DPn4;: I,ѲЪ(]< &@Wĩ ~2=T>kAc4VlKڜv<( 94hisKj[)CZ ]<4&=a'Rx{".PA{"M-<`v*۠DyQY>8֓a'i q!JWC*0?N=-BnmAqX0]Su*D}-=J}Qpab&H\W!$T񈽜X I f?hj ܨu<a:Iz#+}^rC4-',ɖyM\E yD#5^Zb ݮ:|ٞ+Z( Dqa/Ű݀R& 䪩cgw4֎yFI Jim Jagielski FP .o0K\E/ ;p*{Ŝ 9 c2hZwO}Q.} #6d+xҹNg{~azzQ}MEVRaϲaz Me%V Q5QvKkW؅4K59̴B<5U|8+lT,d}]4;SBZmf+JfSΛ.,l݊~'>6ɺɔ[և{̇001B%WLd6MÞşa)YjOd>s4Tjx>pLQ- 3>8=CaN8'=@AiG| bGn>U+{6%P@)ԿR3OqY9Q_TN+݇|\\x?KPR]4Cdd3^dE E m4tJ,' H-;s/#Ө2X'yZn<ٻW 4=NᐆُO$e['mı^MSkjG^sЄ~#/#clXx~ac#4G( zqx&՜6 0D"۫dJRF VDܝ ;Qdlu0FL_B^F` Zjր#(och)f $7{*G+w`{156l{OaL_#3Sjoa)qj)uSo,~.&E@/pЯ&H:  RE@2RgT` :TQ.QX ,T_{hʷ١r, 0'B|hMu$џniNIaZ {Am"3vd ^p `lY8i`AIo )iwa-иV6HWu-ea^MQ9=2+ O8U1ˤw⟫_f#]ƕƘ>$\2<Sb:k#ciǜDNoi,ƟiEA/qo2A%!mMNSčyq|c2viSmܦUщO{`H-uڱ~YЮ߯"ժŖ%f!q i*,~qYDc&A \!9yF|9zd& dq˹ɒ0AWclIrUx@)4õ Y,uTL(_Ԑ#ld_<b`<ߦ}kjQ"} XleKl^Q.r #XjJ\uD=K;3rĐby{qE9C=р ȭBiK-Ȩ/6>jvinǵR28R5Ɯ(hɾfhh0 R)2v p$.PC)|W1aMaQn[xƾy/N (P}tަ0QreR`z՜-Fl y; >0GbLebx:';{7M15:H|N *ÓYҎjOQټ"2"hy).&7ADh3'iąxG 7m$5p sTFK"8GkES&'0Aqd>+w*2>O"/3ǵ$p0b6p FCǣXp.<=KZ%K2 D/SGf2^a|>E!]M4E9w)^\3 }dN"ܾOQ.< C{@;DYu9ER賓-̻>tjM-k=Qg}6n\ꚞP^V)7;a[Sn׶5 u/vXy1LG`vƠP},:^ez<;TϪ?&z3O|QP'o{_2>M/E 4(T2CDa$]41eŗ(S=4(S%#tH*{Dӊ%''fqK3: kSLdd|D9E4YRt== M:zelBk|b֢E6!(-s\ I٫kO*NJmL+!Q,9ySrk1f| S >ٽP,ICv ZTghߺ?dy(\Nm-R9SNj?Z-T3xQ0Z wMk t>:"A't฿N ܲ!Kϸz;\FAٓCY' -߉r}5e3fȩJ9cT%v S(\qw{lN2 Qt0(T8=Wx W bN>14McLH@$v1X lBh!Dp>`s/uUO*h/n'dj\םj}) jS>!`hA9ЊЦ`}f]yrUN5n%SEzIWsMԈf0xI -K9Qul'ϰU 0O ^kzKAWHCӥviŭ3 9`50^5Cb[^SF=L\uox "4!Bk!--ß>^,`'䩘G&){8ʙ/W!b! Q3Q o 3KR^_$L0q=]>g)ƢB;'ZuiFR8B(//A>;g%w՞hP:P'ۡ?mWN6//T?ss:L4=KiTvEL {9$EBI9^8ƥFRdq>iY;S4Ll'Ĝ%r(İRjrt[<3dy/ 1_X L?TE'LŰS4/a+v'UᾺ|xLg}2nzAxK ~ӥ#:dLv5D w_fBЯشT]fT"e3[ G9A7/$YgU mnXXޏU%.}(0/wIei䁪MWJJhp GTĚ)Jk| Q4 bԏgk~SP&;hʞP߯'s'+i F i ^5VVI0z,$EtVƴm^S!.hC7ȉIRq6M9ަq@M-".B7@3OdI~ܟP%FLnj'H&=P\2Jl"wzSkC fFyCDoؕZNzܱ*ɗwY 4i' |S`'؞$)YJ5$"_µsZSVոc,zz0@鰓 f5\ڪF'=yzBse9'ȏgP\;=&?َ!=,P sy4)N*'~'2҅﹢:0oYܟ6J7d~X&_6x- (p4RQ]THfM4@ NGuG\XytA5 Q3 򅓮QѝG7)R EVHݞޓZ<^M}zH Jqʂ&c6d tAFP>4CVz&OZl꼤mڒY](|arӜ}l'Bk&S1m =6,I<s>-g%qQ!;E!VEhiqZ}$;xXk yw|}f& N*"oˋd-cG+GL\~,@(_\J W( sh e"Éuɚ",O@CWV]#k'=OU0]$\EnU}q\<++u4Ӏڞde1!MJb =ܝ"(snhU34nm֔J?{U U˪N3V"}@5مgg*|-uI+6F '1IBO*NFޡ6/%/dj6 o ;38A5[]`:M" &OvxRjZdb2hWɤWA=~m 'ZԣVmK<'rI}gaAvH_&EixWG"!'ʪN?#V*TT{0 "&!(h?KT%+@HVh( ”"fHK:~"QR n6glx#k]ZNNR/VTɑ.F@U= ,y'Qy*Jo.ς-tb$Qׇ?y|h.(IQx) ݐVr}F OĔkwLb+<œƼEr;xSQ. NAG@2iK+b7Xp)[{f92_`]z6:zI{)OJp_ ;ӱW&/ 7L+lƿk|}D_U8EL"Hאi'[mq0Q eAG& r2^Sjlv&X{ mB4Oթ-#BM{S/ $τ`$}21R)곷8d+ -u#݃tT@Ȣ)mWN0VmaH{]͌B*V8,Jnx=Ë ՚YCOax6,eLcmW aXAP4:`g ]$ PW?㆗;U!yqg/fgr|O'Ta5# ܦY3\NOHXOu.Ygf9h{f@!Į? Tuض[I_CI۵PD4S1ŧ} =`4=e6.3r4`E>s(9{A\-6.Ku.ldRhT1/{+Cհæ)f^%s}|q@̂ORVBSs,Y=;pId/6=\(LthnԔeykZEp.آ {S{k2O!&`Iw16Fӧv;wdCȨ=ܯH9}E)<wiSIc[EiǯXaGFOfqoH0`'8qpǃ+€[s:q&T[w"X FC}?E v+C Jw XpQXy]pIZþŗ!ghZEu{kz.ĢjqXj J"W*M}KR(J^UĻEjaJ]'z ZLq4Jim Jagielski (Release Signing Key) EP .o0K\JKFA?s2l e!QȨYLjFL 2åB JX ZJN2VHœ{\gaYG*FN#R  nN$Q|CSR0'Ă1Pؘ3G䞫pV-EYӈFN-L 2evSx]2Au,6`v&+S?3b9F L :`ueJ< Q=?qn; !(H[ycXFNN &DA$O4ze{7x#v vc{v}9Em$CF LM0 L(1=oJ:\<ݐQY`CҫޕAL[3 Q.} #6dFKQ|N%#B:$;33gg0N+b=m r@WSN ya}ۭFu. 3F" NY:a -ԳXesnV1]7ӳ"e*FFnN; MAE'0L=)!7o`P13Pۣ e>T~k2T4Rk<]f]~n=|8 >S Y!FKy/?Ř)?1dr͑ˀ0I]'w.Md3>0>ƻ=Jպ##?6P;\-}YɈh?z W={zjÜΓE!O[!K } jNZ V5*vw(\C\epKfe37[x̣k/^ln4/8KgLH $tbxp7]')? VNkF5YȞ%Y jBw΀G_McZ{&_e-ۅǧN* mhzqOrlfwdŲQOsi'~$kdanV׏I\0!k * O/ i"A ڋV@ ˭Vz 8FVVq!K{#?,#*Wuot;yeY&CX`OVDM748r@sV eƛTeG_*;.luJ\ۃ~_!$d{y'NBCtXEvji?s88:PID_O eHU&P{,j> 5oNc c=ˮkȵ#ŸyբJ91gЦbNr6joկX$ѫE}_Ei6hFA2T? =Glfhi3YWsԍH )4 cɄ;TRă<xN`6a̱n,Kmb8IkLiD k4)=wCtn'FŘ?Ǿ攷^C?IE18IM⼤(WK 7$ąH:=hVBĉt#Jd0;f9{s Ifhk}>L֨@GրW=(S ;0P5c?99ڲkۻ g:G74Lʝm\NGOPvެvQ2GX:EU?'p04v}߅i琘Ǡ8$W+a?_pg*VC6ˌ- ^b‰Nq, F2ZɃk=认&}Ta!@R˄[8m'S]H7,h7&nQd-Zl ށDEm%-)g#}a0OrNeM춋OOJ kgHVriᙊKI-tqȪ` |E@S~ $gh[Kzt_Н]:y8}Al Kƃ> ':9d:^}2*м ~u埋;r;pG'"y§"ab9KtOA)6ϓΑt d疨sLj*5hqt7qzdž+)m"y2r\1Q d@ 43d3SpTR,D@4_zXGUYifo|'c2VJdA{z*7B,u5}Cny|TcYvHtB^UMȩj.T^o TƋzdE_}>6tn{(Fph7 fnLZ#Ӥ}!^`̳+w|zz{[눊g7cbf}(n3Cmrxc~Oٌ`rCR -en0X06݌PmZo>}KS̔2hcD9+k6)@о<( #:6rLHۅMZhST6sg{m iy̖Mpk}m& ' F|OA9k0O v1-H! c*9 zi]fOR xl!zתS?07NaT/'2kf?݉Q- 3>8=CkYH'D@.)QwSH`VbUw_JCSexOL]MAms!R ;$*Jqf9̖30cR:H! 6ɣ') 'o ^1Q@%TjxϛqB&ny-3_ P.DF&9K 7]UB"hhw o('&GEjqs,g8j<%(փ1hH<Q–8.5x]Xْw^цi1i߇*dQ1]WJ} x-LU_d=>8l$~3/?G9 ijZ r/S@֏1}FʷK-lQ@r`Lq e$?yLuue6@X?,_S+ceQ8/۲Ru\]/=#Fl-c'^TtrRfQ.QX ,TAWQ9J( Le8I;v=)*tKty3h=@go[`i _e(2\{l/ W}]e@܀m>}OkvG(IЍT{h[lÁE[C!g'`G 6Q zZK<8zUL[Ǡķfk?jvG'͈4)L(ӄ> @h>Ms蓋WYcQ yL "cMKE!4TW4*W5iHL!IД ]DŽѥZa%o 3_hҟS[h3gCif{[2'i-~:dxچ}l[Gzj!"сlĜeqypIa~&JW27_$TKps K o/e׻rnt>WqQ.r #Xj3b.2N7lW;b#`:+{7{0I?aJBssǨdi6}qN rm@L%͈XU|oS˸i71}@Rk.DoTݴUXŠTvKWp?=G >~e|$]@G زJ0eG35 7++V5Lp 隵y'+49/ Ԩ:_uY] ivfxB9BjEGce#ϼQ.< C{[dWPӴ,fvotM\p4y?ׂKYL@~ht(;c"| tjRIbն-1K凹ǗЅ S'|>\}e K7webbݾk .{9θxmPt e=/_E_h˃;|qZQbyqٿTխ}t 0[;x\:Ai? XQi 2ASx$9'I[d:,{%@VV9T\haL61I%J\*u?d4lU[ l˵*dkUvT3wQ5 \p~&Z@ /yZ"J'}nʂ/S,)F!Z#q+ bR@!(aYXe,cw}&4 4ϲh]jvtF+]z1Wn  %@mc9gnX8l6$"ia ^nC\Vn$i8 Ș)V;iK#͠|QF }XR,c ] o]Ѹ#PVvftގgv7YryjGcXPؠgFfO6)2=m\g@Ñ>:XvU<wD:mKb8x:rQh0>O%!VdVUΤs-)PF RC" ttp捍.0>6uo "]>,oxV :N܊]$4 0|utrR$x=S:+4{c=miGQ,aW }pko&AJs/ŰK b~+7IƝ]{,R/I3hŒ<-읪wxT4GB rG+<6Ɖbh[Ppaϳ!vy. ocs1VS%VtKT֋ah5D|mӖn/7 "m=§TߘU({uJgW1Z>=<[ځʘ{b&2(wne@(Nƺ MPW ?RzBQ 7}1~Zv=O}*foOZ$mU PóF{cm[.eu Qe ##C0[_D2x1Oc_@e>y_ z)bIGe/f:٩ 36k#L<Շ)tl{3#ņ[\%OpmS gc\/A6l1W_"8I6 sf>+r-{˺Rvy)7jc;mSӻ\_e@B핈/wӜjuE4yl MbqnRx~ ax͸MD-6œ| G:T7d c5Dey~nv -bC.Ҽ.\ƍVfWբ#%N=9e5fهWfcyHbb I#xzFQL8U`"^R%vBz,;B^n-_g N͖ OH5bZ#}RP024s)!Kn<lj1;\zp4k5\aHº]"qp~'ƃiZ29Xp4Ѹd).7::b>]NcVo˪xNj<08m&&.7 pRKcߪ3CX26>zhq)?6z6;y (`APc@dzuo~teAN}ۀ Jtg;${G1f #bܳIV+E@D-E/:C jOxYթnpEAÈBq#|7:ut?-:䴤!U4Ƶ0`eC ȆiY_sV,086L'|wRkP`A&/u_M<-uLl7n} W 3:\/E Q3P o P`*r{ZGkQ0G7Bbpﭒ}A\JұBa$LD_~ȉ&רZjT AI5/z8#i<Ȱ_@BFENG|~S帍~|EZ޳,~Q|c%1Ȫ>3[An֓$iCK9Ym@b;qP@PUp%ő)͡ l+)omo,vS$/^٦[̗H^S< Vހ@A-Oʿg)cC췱36 l2˹. E_R!EzmxsRERM1NVӾ:ۿ~1[Y1A٠' yOpYbg&Wqfx3t)x}om]6 }d`9PQ +dȞFK]:l$f:UK,xɥ2RT/en8FsG; 5dӉxn ,8lqEf _ _+d>k{of/j[frq=#1D YM]VƤÉi m<FU(gEN`4A]͜4mu.#`IOn={E^}g#9ƩO oȤ6]|RR+t60`ȾLSخyVs)\Gry9)ދ . Q#'iv-yV[ G4Bt/sd,cbܮhN Ƈ_5AB` Rr&TlgTK[jpON]<= yr Qp z;:+hal, vA KdxL~E:y~+G= #ljST}rXߕZ(UBlа}\3/sk`R;=CԦ\~^H+H4#JxvL9cY2kYLzEotY톌ZT?gQ->jnʙ:d3ӓ5髁Ɛ%Fj擏T"w^0Hq{0^KlT!CeUܪkC ‘ 4!毶O&-8rnj.!z`ub,Ҋ,DKıv+4ޥ =פ+C&Fs4zlp2(sUl  \t$ڪ0:t/,1cjLG(@5q_ ]"(7B͖bHKq)'[0}V"q[Nڎa NF N Q1ϦR K[Zex}9n?SeGjݺ05$Bz.zo?͘%`3n_$b;H;cvFl`ǭWLT:R]U. %(@\ܞK'ߖf<´'7qZc)S`mܻ%Ml_l2/sņi t et4sZBBvIFd Qc!|7֘M"W K uERQ֭J3K+<[rT{##uš{1WX3p4y3 2~Ȅgx/}:|D[xk FXZ|TǢ3"-TM߸s I{`COU,AKEB|ؗJ*ٻ/8/%ҖtTϤ?^(qשOeFݨCf7/*ca|+Ӣւ6Ӊ Q3 򅓮Qp.nXȄKJ [_+\ƪ5?U@av\:u}苢5$2P7"Notoo0tAMu{YT.ԋ4 % gptfa"Ғ !5ab"ˡ;T\y$ |X[\\: $   L b 4vy#PtANA5M![.zkZ(>;*Θ ~P)FK`,gm*:H>_֪©957d ?.ک>u$^Ts,lLF1|gWa&KX`P1] ؼ S_w&tsد n"k }sjK̥B.Q&ڀmGG0uxٙVVaOpȘ y/xi M ҼmF sH{FW0~@M (wC օmn#ꪙ v[i2 o)唼 H-/Claݠb\vB|ŦJ3u5&cwԋ \h5v|wh(к紗QGXx;. cǀI8Y:y&X>X Ba2n#ASRR#-@Μж`,Ԡ?o=Hq3?YOA3 owDyif6h4miKeWI! giOZ::>=e-Z}FqA|q0{7 |EFf(vOGstq`?XuDK6޴Hd=ܤּ)b*gdHl]ύ%aB.`SrYX>ʘ'CQaa+\8Nx(6(k +B'H).@4SvK?u" ]G6d?ɑ(iU #ˊ2s 𤮑Y*Q3Q^ӧOy|KRb Fj>CogarE_ќebwOJ6^3ַf,+)"U L\U ?]M#RNL-n-gLYcD-Τc}1 e`m$4$B( i^q8 q ֖ GekM.n2ڦgGFPbx݇MJonn0a9l[k &augQ]%EʔXl߉E"ᚆΘw? 5^fݩU)M8-u9Yk2 f #"(ЯQ?89WVZWiR,s{jJ8O&诚ϸ.dcEZ/9 F2 &ʨĿ#!l̒>R J)u2_ėgѕxs`φjIZ"qEU7YZk~FYWz9Մz -9V#d< ;FTjL57B/. 91,q3a L 4vyLZa%8I%>`/Xm!֭lZ,B6G}l*r>JAkdH3xͼ90iFhiTKNZоI;h zrՂ%Rj uMPˍ Q5`\nM%%q*f^M @>AFV-I~^hjIMU&SBU2sb?,|)>5Xq[J7٨e/AU(}9j$Q ݅3js*_XJ꘧`w(Ƴ#'q"OkPƽbGlSR7Wx p6kWcN}l7u#NzElԑĎ%OL/-U P ? A, ;#:R4iC"/EVqnlJ 9K~jUILC60 "ZN4FJ ^EG//_A^6w{H/ (aRu`0!y=[QOJ-sy8i,%-XMUTmB۶g>Jj:CO?`S} E'5Ben Laurie 2o`sp,7H#9YO:$ili>kgSfuCgk(.9`aS6vjȦh m 337Fׄ>)],dck;vmVP 9z U5{{\][߃ӑ'GT"uW!K^ jO:fD{P1} {o~$Ȇwz ;eJ=a u1sLfo.<~pd3w# +4T#`+%לi.nf/vCGޜaVH@ǞṂMiMHgyֿu-B1u E'56D4h\hL$Gs5g,d9EC.^qY*V ΄Jzw 32l6+p Qx |"^൬rR;p1`bSdAHH09Vtl{MYV}50Ne.˘pՉR WLr"/~??X+y*e:cMi0Z0&GhۀKq)i\Xȟ`jt7FL?ioit X6 [蹻?0e#s|((Ben Laurie 1% E'5s ƾrU A wfB;.I% ?1fN搆q9NÜ U9,+ފE* A%xz*rujj4#"uο;WӉwPs~G2#%J M3=cxExwc:98*=Q03χ\"Z>_QRd&(=q(H}hx4rO$%)VrDy1f*.YYs%D8$q휚6(ؚ OVy`61= i.>%.{ 1H-b+tu3c@:3<:]D2\.R3JLBtEؽ0ܕ{>U >W;OK;tKoA2ʬZA.4p:É7;6 cWIp]5&kHRաHyW`M ): )HT8g׍J$}K'Ǎ)qgWT8,N8tpoDT&{irxsF8o YUChh+ A?GLb!.fxpaH0R=(f"LΈ?:&ݺd,1-/VOgTa+RLDp1[Nm2F; );:&\4c8gUlR$> 5I J!*NF;{- KyRu"-BD-xpQ'`Wu#X|ZJjwv(Rodent of Unusual Size 6(tL|C(Zat 9L&+@$gWy6Ó)J]fd4Snƈ?:&ݺd,1-/y+c:.`wrXNUxى%߈>pF; );:Lsha؂.iUnq.̥juM -Rodent of Unusual Size 6(ir=|VeH닜e@mXFUujawK,=,f#צ=K(^eW:N9`\[*J_r0=决⮬zV?D?6o!Ч4rq JZ rZ| 61= _XS\WfʹUڢzğTTN7O[$6.|W҉q'$RzZ1Nsp~ lOfD8U]lÉkc_?:'ݺd,1-/Afkhp9gqT',Ԧ qs(& Q~} ZF; );:SPRY\ztՙp'6u]?:<o!Ч; DU~{7:>5Xl[$㘐[#]P%Rodent of Unusual Size 7ߚ3M|}@ћs`@8oF6i k@zzqPBuڣ#p;.qdFR.cpJZ وF8IȬ Q$ET>k&Ph UޝDa:)1Qt|cׁ" ?6o!ЧɃOT,aJvGsy{T陈Ń;>61= ]ZnZX%nec`HY,%{%Y`!~*(\eg Hw39񖑟 t DgA3-Ae̋$*.֥!p>:'ݺd,1-/뫂@@Yc2s?]ϯeG|Pb]:˒ǍF; );:q0.sSmL3!-pby#<ԍ6ֈvߴ%Rodent of Unusual Size :ZYhyokbbr(T"Sf?:'#ݺd,1-/|Uh0znLJg(9.ɷVF; );:pxj!3` `yqصȤnDL};krk_[B\WO0mX`$P=El6(Kg>uڀjrۣkӾx$4*P "޸)QLl#Rz; ](l턙EB3bu?ք,Q?l0ojR4;0sMKM(RrvHrq9[k<%c0$mnv :{[1Rodent of Unusual Size (DSA) V:K  P0-h(q}3uV̽\ n Lṃ  B 1qsV:K  P0-h(KVJBJQU?x|Hta^tFV;F; );:Gn ~r!K7tlvspjF:5詉;R/V:  P0-h0'.DsX"m1G{ %SLG6F; );:Pa(-bzeΥ=`W}]Mj;R9>H yQ yg9^ C\virMWI\^X?{Kס/HNXO}j!͌~/ l9 /{9?;Rݺd,1-/ ENefaPnfE1|(9EG7A{a3Rodent of Unusual Size (DSA) V:  P0-hKA"uXՖ&Ky|TFg࠾{{ܲf&F; );:N+aA ?u&<8zzȣM-(3Rodent of Unusual Size (DSA) V:  P0-hjH"~fP&vZYumE{{ԷF; );:J)uJނPЄ:%W~ۻSfd-Ӊ;RJV:  P0-h&ː|9۱rN9Am@H;㴪.I F; );:kAaw&$5T`e(&?+vB;RVV: $  P0-hWur@+a2)\*WI0҃LS)F; );:ࡅ\-q,zBL3SMlNKiyfQb;R`-YސԀ<;3whq%A_ fD)(͂cĮ+ sU0@U398>ɭ2h)H0ohjXMC^Mo=ήi{D>Hq|n9&,abQ3代visکnA )4]sxl<51ilᇾo᱐DB 0@([$VQC߿JcNmi۞yN مtS'iE΀Hf]H؏/.)IhѨoSq1IJxB8U~ĸG >?nCfFQhg' 8BAUe e(UPPL(nT~K \*]-Xgq6Ž آ"kU[_Emƀ1Rodent of Unusual Size (DSS) K 6)   ݺd,1-/y!2n'[r>}AsTm~  9HfT;ZzF>=+YnϣqW+tQrd5갈F8*  &0eV]h GcpE*'E!N;pcF: P0-hL?΢r g*-FS]w~."A*=;QK 6)"(  ݺd,1-/1_i-K9!vPrӳXwD͛?6o!ЧiMf<.Ep-K[ qUqqN|Js~dgKPo5N/@7;5 cWI$oXFK!y-"X{kwT*{T(aǺ:jqxIl IlpXꨔ6+?+@1{TN}U{!6YڡSպtԵF: P0-h;MMRK@%-{+W>in.kq7\8;QK 7  ݺd,1-/Vз zSM\Ki 4iOm))c 4'F: P0-h$w?W,y>vV2-} *]Kn\;QšK 7  ݺd,1-/e|4vz\mVP0A (GAΈF: P0-hTPIE/)*_{˵CϪg g+Rodent of Unusual Size (DSS) K 7  ݺd,1-/"M .!K*4p2-ep(ҲI>7,F: P0-hlkVsJ.KKB LP#\p66">ԋqhXfJvsk\OR~Oܜl czk()ckwub4ie7^(MQB1k-Rodent of Unusual Size (DSS) K 6)!k  ݺd,1-/ lg DB&u^xiP_ror?6xo!Ч97i7W~`6W?4UY6=w61= )I:fm=7GE]|B_ylL0'W<@{ Jޙx]a3R60.wۏ2bB ǔ2 $MRڿ+\AK=..cj2i/#}6bRQ%Rodent of Unusual Size K :  ݺd,1-/ 7 :Y`)DkZ0j Iyڢ¸riBҗJ;Q]uq,d`gA`>cV8zS_K>} ]E} 2XPg~rnM369A?=|y3+@Ϲ 6) BWr֩BS9OnK8 V@UCLdI eԡPY_vRO==ΙWYtOvG0a|f^[r:FX+XNI 6k3l8 E||[-#C[U]84|WCl3!,*<)@| rֆ)zʕ ٖ PF=f]A|K"&^U2 ; 9Z.uKڞ>Ƴ=5kǓ?,4?Pggv7Es}';y4oA&ZüT`J cl M3}|+#*Nš+SSOa+P\u+xZL)С?6) ݺd,1-/ҙfQ}e1e ^׮|JEކA87|e_jp1%Nz.ǓcUߠ%Ad)|\Uf$[ڤ~8.?nDn-gJ}v^- ^z?TujlSv.;Fj+QSjݙob*R;,m v "<(p YwŜc`<| 8TNOb]rVmJ>lG1&qe& T~ Bsyt&fctЕǹI}XoڔD^.heCqU*y\`@<]LK[ ?b !LV0-%7Z)/P%(p[‹P30׎Ozr'N#5SxjpiWJim Jagielski N 7 :`uI%k$Fv&09#O,VKn-&)X-Jim Jagielski K :j  :`uj94K=ZG/*2 >20}Jim Jagielski \=  :`uop@ń0 +n!f6e2d'|ic 7BWr֩BS9OnK8 V@UCLdI eԡPY_vRO==ΙWYtOvG0a|f^[r:FX+XNI 6k3l8 E||[-#C[U]84|WCl3!,*<)@| rֆ)zʕ ٖ PF=f]A|K"&^U2 ;7G7`ֆfiNsq:R$j)/O("`"1恮wk2'k\R [u'?*ͶZ4wn Ƥv.8Br'G)]JRFܲ,0-Z`BԺ/qiD2Sl1A$yq^FhyNmSJp, *q_}ɵ}!bDxvd݊?杘5!u^U%@))=iטAGF7 :`u0N* 1w`_-X<z/İ (A* 2A;ް|=) [V5ƜNEǰ09LDOJJ=γטCOeӗ'D5ԧk<è!.!dJt,eaCJU0N TK!@COoN ?;oFh6y~W'm^Ox7"kq7(>m)xH Γ[dއ7fԭ (O++ټT"Ym6kݑ1 sameer@c2.net2Am6kݑ1FK0!Z8zM =8ӗ[3#I圫f~9xCqD[Hn}So誈slQr-4 k-kj)S*#I_D(<,A5cz ld w8j@$6+:#=rs7vT[oCd'>9͟Jɫ!qbp8LZgCmOGpr?'vؼ ʷF'Vw1UEeOB`?5 )6g&oIR*xd n&+}8\XXRkMrf\Pj$Y}2 (6LӥDصF)&ec dRobert Hartill 1ec dM~L/$[ro_c`^;Y=;f}:3?v,ܣbKY~w=w, "0P<>!gD B)-Nc Xn\a qJ%~{1/х]h}X.!=7 yS@'ċpz2jjIrJGe+Ѹ=J6 B Uف'O<jdҫ|j6{v"+Й^̨ cWI!Randy Terbush 10 cWI'u}Y;$1 11No)>%@fJ`+4a1ϘLgp'%Z%[ [m[*׫4/a1LIc,z@@s.kנ `œ<,;2(lmSsTA3HUx, >]hnw? j/lxAz7?% ϳ(sc:k{2eA0[4 T[V!F܌4P\~_hi pFq )T)}/'&ەLk9SU_mM?Z[eb2lrڎ_a$_˝E>x,r=`"şF{r|)x%J]oJEJeom|׈|'C!HIx؈F;Г U e='Mv$Qa>]8:v06g0CF; P-/wKMV_Erj1RIۢD':GvnjȈF:7 ݄D7l<Th*^L/o=zݓ5Fݖ04u|?:rWo!Ч7^Nzz`cIC62Үkk z~mŴMark Cox 9LIc'+ofHoرεOu5$7k9LIc'M{{V$c\!"t6ן1/zFϵYľ/\s,* 1O5**ZIE9,"F+w ITC!,2-!y*tOlY>] Jxms^y@>ӌ"E>",eF;Г U e=yh /loe$m^̵Tm~q&QF; P-*Y%ìk2WC*2Q`n7b4F~?:rxo!Ч7p!hq(͇#ô"sf $\؞3]aOq $C|s.~)*s,rtf2co_qc KlZ url8t^;\rl.SiyI96B誗đcPi$K1dJ/Paul Sutton 3dJ/n#+*(P68g~0WzH{-i@&)#Cu>)(NqϥV0Odac{&O81Vz\XE1F3dv3ڳg ?_ я?`ËK $GkfpЊZӊRJ*kϪ "o2zج`-7m ~ht@L^&C})Ralf S. Engelschall 3d^&C})Zb\hdhx0FwOQ.6WkPhI]=0͟ E*_c2'xV!\0Sd p.Ztk7ٽh=] Z*~ p9r~,%ٙ3Y<&?߄I!{}޶d3x׊k×+ RIpY wd_h!gW0,@Yh3 86z7QTOac6GmDֻmT>݁JӬf9C65iԼΛM"AZ+Aoin:n夒[Ŏ Vx?R\1Yl̖IEw :neZR˯aYX܄ և{}eHHoى6/k+ED3QB,;9oJxmJy5c`/>u8 ɱ=xڿPjbI-ql=}E$_$gO3Slt=;d3&\86/kg7_e!p6/wl}Y"@pgm~V&(5gyoDb+Z |C 2r5. fSDyßPx SP)9~i6ݼMUxV/`"v09oFlx 89$>90 a4#B4D($.y)v)-k,_s`F<{)`I'r81f}?e(7ӎ鑓eu*^٘3A\%-a7hRejA|aRk"ԀfPӢ^ [~ gl؟gS)PzZ&==i`-)/4Řԁ̋F>W 1O Us<`ݙ@mai0aH.Ue6lF?k \7xȓs{i%`5eXoXCsN,crzTDx;Vh9?L 10+ʊ6mQ1şnK2F@>\6}-Z젣\m2~XH X^Tv}(H7sE$Rh`c/~sq^Y{ٯRTYF=P ͽ 5 .o0K\ ]W^ӥO gg&x-F? );:^(.ť4>[ʧ˕{c_3c"=Tk,kbF? $RLe9Tur df(AH=bh{@)EJAXc݄&Or/oV"RHGc껩!\M^^lFO.-ܫ ݼ#dԀ8 57'!gVaĻcXs*kw2X=SlOتlsca$! y7Ի`ɉ:_'je{aKOYƿ+>79%ד._ց{Cutܭ e: tߕv#J_5B^xi33XQbǼC[~휮}s`]:IyknH(g怳.CGBND2oz2=1-_,gY05MHG,HF[o_s>d'r' z90%ikzbZY OwQ80m4РIWcp]F)}(Φg 9݄͜TFEȜ$cǰ]RZlzE夻|o?s2o7h~OqqrםyF=DU .o0K\ "`$mYR^U} F+u?A,d<HF? LM߱'yIhѪe!{:*g=BaJk#35/F?S !0 ֗YU1u;9exÐ1ReJLXxT0$F? @)$\Vfz U7;Z]Rco+F? {GO1ٟ~vW%ZQJfK[0q/6}Uen[stʃCN99y/_D`Eۃu;vlz6)R͘ب픞6Av3cdž#EZhaΒ'|/QV |D2s]2ޭIm=X\#E]*R]S ZPSiu6R=G7VR@I-d;C xttcF? I4W*#H"qă׸Af./j !*}ZXF?~ +KB(`w2@*3u@q7ld]oĈF?#  у g[$x:/4~m4Jd2{$[>K-mwpu30fȷ^7aoq!ٟiXͦ?l偄(0>g:AsPr4"Martin Kraemer u6/g?Pr4Epͯir7> 5mOX'v;&̮WwUceRSj5:^,'ٔBE?aaRN#u6/f6*X9N=z39@L&9&tkBNrM*P*7 ōQ;-m &M[&JMxZ[M)pq)O\ :Z+EDY PUb. hAҼ{ŵ "W|,>ʿꉽz7)f.G1܅)biRWEȳe;w-|bfG?_ P 3M:k4a4x /JĹ8 Q^Mkt`|1(v2r9MO\q/M\p4fnd8}k{$K2 ?&byuC׿ܮQ1= ,Dirk-Willem van Gulik 4Y1= \gSKąkp:A>njݢ6חz>}G/z061M̲>oB@ <15VsW}%U`%N Gܮvi50*vo]u \.u:'ۜ8\r6G,Dirk-Willem van Gulik 3M:1= o@#3VRRV\j#I oFgb"SF{5'f+f|uo!cXʣ#' <||W^ eKI35KڱQ/:7+Dirk-Willem van Gulik 4Y1= 4h{۞-> zq[րfxP4u2EQ tsPțvӕ'`tmKj\ڻ)W 8zƜxJTw^8#{ʌͱNX|ˣ$Dirk-Willem van Gulik 4Y1= 7T"Wڕ‡S6NE}aUƸr_D QUފ!w5UR˗gߚn}>eZ.1 NKFDy}s[-۴)Dirk-Willem van Gulik 4Y1= R:GCl8}3|Ċ70#P*2?|)soy xlk^k}ŔGҫ^Sp+)$WiVkgiT.Dirk-Willem van Gulik 4Y1= Cdl.ƥbN=@_ȟ^"z;^Y.H>xmR5B ,wH:+Tϰi2I%p[ S1 '{dK/IDn&I:!zq4ɘ5"$1Q`,;ZB5e{l܍b*c}JԮԦkXB8Vds jrDD.?@Օ_L?ERՒ{TAPv3Vy]om0iz"q=O)&s *B'b"c&g=ly8f ( *Z77 #]1)m: }~foݚKlݎUu bw̷Jlаa| qZI='`9bfuϻ.z9%$9;~oR>{z!03~±C$R=[s]J1zh GsTrċw+g/7N'yd>f0Ɣ*eDtwM Dean Gaudet K 4  }m*Q4!y46߆TaAPj\Z=&Dean Gaudet K 4  }m*8oV*] zmeM %;_,QX7ƭ Dean Gaudet K 4  }m*/t„T'}W_-Z9q$0) -@F-d 4BWr֩BS9OnK8 V@UCLdI eԡPY_vRO==ΙWYtOvG0a|f^[r:FX+XNI 6k3l8 E||[-#C[U]84|WCl3!,*<)@| rֆ)zʕ ٖ PF=f]A|K"&^U2 ;dz~>'~yuى=Po}cf + QuɺK4_!mE 45GM%TbUN3>U>B*`29!RhVY?4odgEO'yN~loy_ fIj>^aZ!Y3jD\W'#$bJ2$﫥 ( (ڄ;^QDr%?4}m*mELupj4Nzxd҅F0N5)$},e.sɂKm-7 :hZ.IShUq5|7)58Gi(iҪo&p]lD,H.zN{[G,zOU7>A$Lars Eilebrecht 7FGDk?'~GH;1;ON[*U@jSJ:LM?Df\p[a,0 M*W a+1,G*{yQo&8oTn:eKi\ى6(P.~ȗ dOvc-ŏ4hjx ŎSC֕mC{CK'*V^kC'#T+FQPZ(MZnpV=dݚ;y#Ue9*\,ϒl>Px|݉0cB'i񍨉ŲB[ˆ9E'_9z77$IUViv6lnAͬ4v֭m~')oxb.+qhܡt#yAm1oO˔m#|4@Qܛ|׬v6 M*=a¸,\ΐ7 Qmz?ӱgM.{lw.&>/;QO(EڻQWۗYe¦}"|K౱!(ƐВ=Nu=P{j+[!vA8{ҟ]VVL(Mœ۳J2= XQ]3WhB?3gp$M*ω&w}tof;d-=p5ǧ#5# =˰G0`v\ \:ǒݣ͹ATM=L N\,Ѣ X h7 F9!MFFL$.(VJD 11BWA ŌM]+9Z^߈otD* "fA~IGC`5)7@%N֒q_(@0i[s§B~^$RgFщ7Ks MXQ 7-v\VtbEx}^JbRE@ 1#>ũM6F3|Ufӆ\iƾh@3`nKhR/xtW QbmZTAx#1'!{]|5&.ҁV ZZؚ!.pT^SI^V+TgOX_$`ó6K9†7k}, ݡWM%' / סMK mD[\9n$h wOcT!)٥ DW)I߉V#^"p4'_=7FL*P_$*$, ?Gf;Y(zàB *֟s& ߫\suKA*r "I*ǴI;yOiwmpLPӛ?*Eܓ20幺PWGt5rLҾ7Ɇz:j܅n[c8hQpH9&jV0a@SZ t2ilExB3FZ J]]2ȂPPG8aLDsՕ|-ك ;9uM k>KU\9lsYO7j^)(HE֥*xqQ.q :edyAj<%_8Ɂ@WiAKOWnhdiQYC1< q^eZݕg@̽h/-1/N*9z-E»X reyqFWj)k}z> f{{Grgb,0\3 .O)XB˾&z&JRa]n0ӡÿ!P**U4Bf^&7.t>Ab^8Qsb6 j.N(lj$a5{ߴYSuP˧͡}S@&`qɟIf`c5vy<(/ 6£v; 11^t1_y?fŵLgrQY$%+v}?:(ݺd,1-//|v'ԢÆߪ@Ey 5Fd~d<G/[4Mdy_x-,TP\O¤Bǔ7J{Pc+4sMլFt a@j r^,P{TpjuBǥ\BhE:AxaFĸ6=F=?9 );:b5|&)iQ&#Yp!tONA3S?=kE,4cKI(qo8,! 7=aЮ0( ȈF=g ,pD1s0xjU:٦4 g&,P`ZRm𒽦O)F=D .o0K\j5x5놜̩4c/I #3şt?+Y= Wo}'^ͧScnq*O4 ,zi6_dZx7U=oCn(F7p~HH"}'Q6(&=Q_cPJN_]a-ns?&z&WW +F=! ]AJˆ{BcH[DG3;l\?TbjUj5$K)+KF=P jl1K'Q'?*F9m$Y:y #:#]3ʲF= |P\:x7m3*4 ȎT#t~l(ϛliiAF= z fTyMWvOORT1^~8KRGmF=& 6"ׂ{њͶȩ<)BfjHی$Uhhy`!|NF=# f5ވ]*XW%G(ܴĹ|FMX῕[ @!+=#$fŜ2p19"YWY z9wtMMiur9n .*w3Iw+@oՅa~?x$/uل'"LawgU?r=!3qDFY%Dco`pA|A5$Sfe0,Л 0qGX Bo-ա0\l~ '.VӌT0'i^_cԞ.& \q'"dr[RxF?<2'74ܡ_e۟T=Lв3M "MY\vB?͛HHE%o叟(Y˓XuYMA*3Khw<}9TdX.rxq~iXd|l.,2S `\ uA*=n~2E%F<0}YɕT' j\0XfjVG=DIkꔹS4=$N1= iJw^1W.Kcq:Ǒvw~oBHj^SָkY ;T#U`Rul$a0Y+aIf̃[=0PߪJF=/ @)$.YD;t\Z P'XZ;KVF=܎ Ufdxٖ.[e6}W9JYnU,%3 F== 4JMu'1Hx].Y/mOp_Y %JMU Oq)݈F=k6 LM߇ Zuda ĬaqAEvoAnKBJ4BؾRUӈI0 > 5 .o0K\:KtQ%npE&y \.!Lars Eilebrecht 73-{%O ]hzn&3r{AYVhڵ:ߗk55i͓ܢ_,PaOwg@Do} aNCxM١[㙔AZ=ac)ô?7_V{ 4tu>ntVmXzڡr~ #q#87ȋ<9m 9ū|< 䭀+Pi0Q$S=,Ru|'Pc!;*'S1mᩓ]ț2T YʗmC15z>D4OO*h*G/VELCv4;C6;+zMѳںv564vMw>3E(" h/K %8j \(%JaQ"a @?z.ڽM6|; >!fV׭Y|rcSs7jQmz?ӱUڱTX֎hs @L?EEm Ur',dZ> D]:8 Yg6 ħadl<0[=I$ia-j'ۂ`büL5Y)Dĸ>{YNaK ?MÇׅ?W6r?ۨ4E= /thٍY)kdWE(BXD :iFf˝7F9Ihn 11zpRJ2 0b7GS}ylW)Iഓ5:w4U\/?E2KYO!jD80斝M<{esxG>n1((6)AƗnɍ1 I`E Q=/,bՒGddžY^k&Ņ庼n:.զqd,Gz̅/H1H̿'1ylk2?٪ ABI|6Y1= k5-g:Y ػ$@;B =tj_{6њS rq3:cCߞ$47T2@}&` 0O@E&od?:(Sݺd,1-/$+÷/B j6;,=iͧ!<G/[4MgƢeW4E|H1`ܙH&-M9@m,8s2O#la^5X@M2gFGeG{OG0[|/HNo};5#EF=?@ );:U!'C+p׭Nk"N Why gP|F=D .o0K\\Z?AڒZ(ud0&:AYX*9x_=5YrT`&5֢S!IS֨0Yȭ"vg.Ϧ g>R$?2D&IX=fVǺ'0慲]?+(҈5&8 X%*F=! ]AJ>xZ̀ şRu"lUxL$0Y҆؃xQMF=j jl1oVµF= ݼ(zo ]a()9ֹ=#F=& 6"ׂ{<s_OIO'po @qI+@OEF=# f5ވ]~r@J0~3fqRN{h">e&zEd@=$fŜ2p.yJZ9Rq=]F+x{$}&t{tι>j Nc,[ִ̉v#2CdFJ+!k$}+\vΫX.Hh'h$S-Sھawq*F"?%OfHЍE,׻{tev54\ Y&{LE gU%Lm#Ez]rdn_~X%n%zz!ҕ]vGoߟjDL ${ ]}qE"nCNB+Q A\L# eN=u4 d/, .`1MʗiQx9 pڒkw1n#ѳB L9q`x':hY'.H+YL!XK{FK։WxqĐ3$g6ƻ(䬹(5oUjx LsH]tIxxF== 4JMu';/w֨/޳7l-AXq3\EiZfE=k0 LM߇D='oEj*ŏ>w?MxQt{];'M e =!d{֍PH۾o\#\[TjZpnq'OǶL2L-;)I^mAnyd6gUrB~p/vVɶ&rqYߋ{joݔA,*HNr=ߌLIcD1m;&%`z#XESҀa[9h?naɬPV['mP^ M:w\6hܛ{VMFū,$a!sF=` 164仒Tc*;*M>cNmrX$_m?iF= e4XxlH]F \3TTv* ӻ:SшF> ZudaG%|GiqʬgwCV}s 0溕L7I0 > 5 .o0K\> *%lv܊Q+֤`7`|̢Ӵ!Lars Eilebrecht 74-{%&:7FFx?5퍉 ^IݾK 1BHpJ(){⎐QTvP! ȀAV=9pYsrJacrqx%á_$)ʔ`y|#CψhKtwgs)(H?ÀeҀ,~}g6N0gïDb}"fFLz3y0Mُo4dGv)?:(ݺd,1-/6fj ]Ae#3È~PH&%f<G/[4MVP9j\ F(dm[sb{k! zIZwл<2:sj٨(k] y;Kߎt޴ ԫ`"%?3+,hNF=?@ );:zTPXVhZ(mB{?L.}N ?=}E,<c.)8dUa`C pJDb >F=g ,pD1sQO;H s*itiT5!OeMs 2TȓPF=D .o0K\gZMAZ/Ti K͋0t} >= }OˣeOZ3[va:0,{t>w'JSCսb,4vә4TEFWڣhvB\ yeGd=UpYY'@==< E'5[ zz=96ljȂ[wj=Bc؜vr%y޻rrj|q躦kp@YZʲ n 6ݝh I9= W+YFCzrF=! ]AJS(bWY!xeдFQc*zb= '_|<ΈF=j jl1*}fw=[  $d3kyiwF= |P\:dSux($.L p^\]F= L_ Hn[R}[f>lQ ;uF=& 6"ׂ{kR4 mܵ.J0G/8+ʏF=# f5ވ] *cIᘑi4 CkH%s7z,=#$fŜ2pEYH= )/Vxcz ԺXSCRAY; #M]fuX&Γ:D35' WL>[ &-ل^ yQWi>[RX^r KAm|Cs(g\*#/s-! ?c3WYq)PJ%Z9SRKl:$dlZ);QZzg"پ1UV?= d xXV*S*n h:ƖFk&\a$;}AұJd[4fuP/c<Z)_*DPxs;rD8ei'-Mx }l;z#2jRuH[QdU/KMWظMqWXItfnjz(JIʷ{ҝ\\‚n-vOUi<f1+5 T[p$WM+<#TR?х*O-C5 BEdH/g=$M1= >up{Czw\hd9TъJnzߩ҆ @W#9bVh@^oV _N/%Q@z+86q%w\(قEAxւ&qq*4s-bݾ)7/UF=/ @)$6 S;p^o 6JY% ÒZ)Tv F=܎ Ufdx' "y|TajggR `\F== 4JMu'kh"˯ ʫfdԷr7KmF8]{p6F=k6 LM߇ga+@; @"HK(@j&fݭ<7kF=" \7xȓnFx6S,P.[8g(1rkA=! d{֍hV6& 8824ꤓH0e = j ߦ. 3V5Xt:um/Cйc:JcfPħ:A 25N^gN]i0Z3JDn=ߌLIcuL%1KGԼ Zs9&ۥw٧q:E]w:W^ި(: ֹD^|PBex=V6*TgBYIл/M tPF;Ag+E2DF=m 164仒TNy,J]M!v sfӊֵ+}l&bF= e4Xx>@#GtOW+-w@I<;BGk5F> ZudatQ>tc)/f.IsS!7۰nI0 > 5 .o0K\2F5/v$O ^ū:_-Lars Eilebrecht 74-{%Ya@*N 0%; V(3|'n?5kE6"u34k`iQClΡ{{S!{ ?7_V{ pWoW2)@\ EvUiNg>7ȋ<9mm|_ڣcXͫt-~ ](Fu$vEa1NP.cxp/W&(:X"n2Rv:tv Pto\?b"gtxT8Wx+JT[L}ߧl{?Eqr %MQ*|N,\ lU?r)",uY]#-U' %Tďl_Wj#7u;u7{Qmz?ӱI- Vr> 56{Z}^/w ;=M() Jb[sCuuZ3$c >S)銠$ͧɉ] YG見\XTvpyzAhۤs`ˉa[ƃEn;`n `Uz| ӯi CӠ3dQ,hIM C+4~T,^N}( |HP(~!} mվ,z.B;É7F9( hgS~QR_tel7p\_̍o:,˚i]R{IzגpꞀvqhk{;EJ<љ؅,aa20]!#Qn`/ :Sr){O&>˥s|̉3 >AOp5٤0"-YyVLZ;~ۊqѢu Z⾺Au%/okL–[ю$vs}\𹸑Uն GVP@wM}#0q3v:k#1 b{a)pVT1a n.x* z~RSk?=E,?j,#=[m{^hf/4]:8E&FlF=g ,pD1sPHv͏MhYQy҅["liϨF=D .o0K\OCBU@oh*JOnaKGS"r$*q= @~`?x byMŲB" ~dv| 콾;8ג ƷR}eut̬/0WA*VFH#yI=M*R4 e9W) :C^F=! ]AJiLt0f4om2  !Kº$. kF=k jl1%*^L]bvil_ja  :ASzk߿F= |P\:קnXQ3=jbNge`k7F= dUP緐3xTb2/\_m KjF=& 6"ׂ{ѥ2YPZb2kcQGv?ʄcg8n tAN@F=# f5ވ]y\@6d wd#'l@3*!Po F#=#$fŜ2p-#6r% 9)/m.hs|, Cv g?H'%q{*<r0fWwGTrT 0" Aq4 fic /ӵ2J9b  }Woyg9Ckx/ w#l zo`JR'V,mS+U-wQ!fzTS,FI(Γ "ӿ[\&]vS fƉ=$O1= w٨4fCmϘ$"QZæhyvpaƌ嶜 @ >U86p;3çbv6,U~;;:7&\Mx/9 |m)bTcK:9a]c'?vY1/F=- @)$A$e5\u2'CjEJs9dF=܍ Ufdx^dAx>>q7jXfF== 4JMu'g% iFL=Hb×m.;Z|kU?F=k6 LM߇1 h63\Lbsb,tr+@ q4nA{s=! d{֍?;D-y>>փ Zuda3 zJ8LXZhc f & ~I0 > 5 .o0K\YO@I o\U D\=HJ +X1Lars `SFX' Eilebrecht U0}J 4b칂9=*aH+u%-<>hՅ gA}f]RX&xg%٣9g0ЀF6 h]X5Ne!XhRd49YJLAfYviIqShf|K/V -'"mCgh:  olQtMLu3uK\%4h~ ~3sŞSé:C,"<2xՈG`dW*Aoobf3CX-R<[}; ZOj1L0B|ji֜#zYZb[ˀ‡K\i= \[om?[\bh>s7%@5 KI{́:0Qdu)Ny $!u$9JVOV,H֣]񇲟63ݠ!pP+n]]J@ lįe"LR4(n/hй?JEeo@;Q;:* "&a?q n&J>ӶݍM,/yu3j| ry0c )zU0ڛQg%!tf26ȫO ,M(mD-J{ƫ%x0EflɭYV&sJP5fZ{PV)UjTlqk&lˑr7Ӯ-f*kulRNe)hLXr6H2?3T!_j" _741,UtcWZ|9bf`x 1:{#/x7za̼tdl9Q,Ɣ޲/0gI)csp%R>< ƛJZ;_$$F9^2ΉݓlIuyJiDemFH`>{0g)nR6597.-}P<օ\-շy<@eX @ 4к\b'XVׅ,X]R@ۊ259S{r@FH$~$晉74'-{%*OҲy l@‰ Y쮩|}ŐՏ9<\ݑB;c0W7t~}_0L?X"ԾuPzJ{ ٢RVf뿇*OWX^>i[g{lFޖ'7r<">Aq[h3Q7: ȧ7^yjقO|YC16 eyPٺYNOn2Xu }''+t=0!n,4ҕS|ҿ[[F=?@ );:K[ OB{URGyɔb'!_,s6[sH>]wv!,=$P1= 8-IBg苤R mzʿݹt-8,0:YLdP$ To X!mL5 twOQ8ȔȆY|դ7i.+[8?B/o&xȧF=. @)$Cg }8) Avd1K {ގqu?4F=܍ Ufdxpêl,hn'6nUI{auWFfF== 4JMu' +URYD_WkSHe;XEF=k6 LM߇ #u'75/WUAst:SN e"``=! d{֍^n` mQ0עGo.;w~:;{]y"tǛph*,!1@ 3v*ݥ̂{ jʞ tX:TN[7zK 󒝲 P;=ߌLIcL/|A Fq~7d\1}]ָ/Җg|&"C?ZI{h%&'6!@Q!kQ+}GW'9?מ$9{ޙe &=5Ksx Zuda,O폝f݋%l" "ԁ)գ0E+N )q[I0 > 5 .o0K\gIPeM^G2D1Yy'O33Lars `SFX' Eilebrecht 0<#M>A;@ĸ K?R2p >}9OeJO<3L)T^tSqAdvf WCw MD49Y{Y6ߕFùhp*N%O^l{b]*p.s$p(? Nt+U/;CwG;[4upHކO!IOR1uHMsgc7QnFZø0; |V} mjᦉ/>GFުm{2x0 p~#Jypt8>[X7; g΃룞;sl J@"ezg6 q{|̚8'~e|ԖV) F՟d|~`}oF X qHB̉/H_/#+TxU pb7"qD׻駼MԮ&CU RavV(<_fOO p~~J"?[d>nq3P)KV٠ֲ(wsGD(ZUp/ѷII,F'su61g4<7!.QMZmONZ\wy8'ULf:㧅E9|9arnyS fv/@%w`QH<P<20{d*FU/>y {] fuB%=u.5܁]ѧmvksj &=f}ji?=^lZ#j0B؅ji֜0@RPuȹFN$G)vjV{f!Ɲzsb8B.,UzaK^]i&W7 $#cHTpu|WNS˷ߚ(v}LLH8oK77_+E.ŭӋQfqUN-X+}sXA1 m ;)?aq>^ 溷ȴڏnp~R/U/휙5NhMۛ w^B6)wf%aB<÷6pf bIX`){Ӗ>wJU0,Qg~{JD;ʣϔ T zYIQ{sS͉0ھEflɭSpW#)Kpr^7XIiHZKiMD lB)&Uހa BDRDE&֭:($=ݼ#SނcDȮӸBû]/8Jˆ Dc7C0p^H;P |us24xω n8cGUo픀iOQ_0KŃOO M2CC_wǚP|$UqqjJ#*y1,UcWT*cz|@J^J+z|8'xz_MRm7 dQ6SM ;h9/L5VpyVE2 n kl|ivʓ>o d"wіQᴔ;k xG]؃J@ *99Uw?/(66}4oͮ/߀@}nC[9i*VtĒ2ؗw}JOT$G&ǵِ^774R-{%8h{[l Ij@9bFuHǓ+&%քīď6$μK9ş>Yb5tZPr^+"/A%H#wj!Qw>t(HUCTl];ѸYnU#8h0fAa;0:"Uv6-m ޣ)MQ*L>4nK,DE ĹuTH-x3Lars `SFX' Eilebrecht 0<">Aha&&rg]urzK˺Y!0Nza0C?LQ7[_o[?{kIz!.X3lS1n:ՙޱƢg/ͳni0Bji֜{(=t'NSJ vC@'JVXP٧(`Px[ 0/(^*Zr!ö預Mz%8!#:MHC5;C ?4kN jYNxy0R3du)5;֔|G~ OU ml4dWPafu,hOH4m;ի"0w:s`MgwKv]ns=Xpגx8#zkyWomy#/q\74,Rq6iV&5Ӣ.U0 QTx/'C,xs[RJuW4蜷bnn3El0Eflɭ"*ȤAZ1$>1 aXIs!$lOwiR{rY|goѰw&x~b@,aIeb= ~]GIu*581,UcWVqn9x|R:Zbv4"0X4H{ZR$y<1擫Armud⼥;>|Zpv(j+KVn0TGnhS9Gd/l+.u"7 U+WC̃׷#D&5량c58KS:n Dy#`5a$IiK~]A9f&'hA0Z%r )073ߕ{b$a6[UOˁ!"mDґKH{gQvZ~Sꞓ`擭> OX}ñITI[zD}1$%Lars Eilebrecht <$>A#TGϳdYK{Ne JYYFPޗ4Dzu|վ ukke#"`az4.|vGY%Ci˶׀}Z :gdkP'b>!zl01xF=?@ );:YyYھAfgهAPm7"QOt QʈY:?=E,wN1X +^,"{|gj׈E=g ,pD1sȁEŮW j7)~NvwyxM̊`шF=D .o0K\ϦC~N S Ip`j{ ii=ZhTGiߚSS=  ۭȦSx%$}ANJ=&I-tfT# *^ICih1rEWBE<cv HTx!+[6T﹈F=! ]AJ.LgLmvNw@OR6HU>孴‰aF=k jl1${VM.˶%9F E )҈F= |P\:׭䑣z{x ՇZYQ0=pBeqɷ++׋ΈF= 6(E%'24 hw#JΚ"F=& 6"ׂ{Ѩ=8*eF]ԍɫ#2ؐ> F=# f5ވ]bqY7?1PZ4QOA1m]=xBχ=#$fŜ2pRN5 )Up_(]"󋳞U=#}Xp fOCK9AlDI<<Reȳ`FXcA Š+k8ٝrϦu0Ŗ34-/Bk?\,KE1u<ኩ\0Ua@넯,vBq1+Ba R)"y”e ~>F:6+ U/ﯕ.`'ꔶMZ qq Zuda hە|޼ M΄i3X'|LI0 > 5 .o0K\v)S:F<Z^8Αr2*hvJ%Lars Eilebrecht <$>Ac1N%K(%rFÔ`Mn^^-)_q.?s9NN7g)YӞ7ӘRf+|1;}uaS&0INMxC0F=?@ );:! el*@(2=5zKqQ M?=E,YJ'0lu*&aZk^_a4*4>LF=g ,pD1soro =+N]p]t~SF=D .o0K\%­u5^7J=IZ\C!&ɆT_gH= m`(s0P=RgH{Y/=PLv[n -8( _Paunr-!G`˭U#hƻ[0K rkr˸nF=! ]AJec"%cڦWF%c@$Ji]F=k jl1bOcb-k88H"hRo0_[(ZB嶈F= |P\:׈آSZ7Ad^cq&+N\ ln7U F= -aD \d 8%k>wE@ĬdAЗF=& 6"ׂ{&`̋]_}2%+CZ#1Dպ_X7 vF=# f5ވ]uڎcZΣN!π{*kd<. g<=#$fŜ2pOb}K:=o._f-r?  i z#C{݌V@ XHCn9Aw@scv Cdp 9E*RόLjdB*4}љB^bZ[|/sHQ*1Xx^>ϜBFjnbמ6U?*O6SJޓ]>(% " U|"AF7ߌƝϞR$^ @NKxS~Ju`l(> 4U9Qc0sG^afb'cԔ(Y4S94C#6yѣOߺDFw/aM[b$ 0Z|>jE]A?ˏ|Fy?I7 ;ʣfȸ]1N=5?gWḎ3 T=5> o0]{B}d]EHMSOĄq,ZkH{H}>Ή=$O1= I1#7;>e`5>מ :߽ Ro^ւ+0][<25< ʚ]ӎLL&/>7}͖O3>Z33%qeBN!F=܍ Ufdx t82v^ۮw۫#7 Z*%F== 4JMu'_T< z|"蜺V;..$F=k6 LM߇$fO' N-l]vq ^c\qBpF=" \7xȓ(AWI}0adz$_rBx z3 35fIv 7F=m 164仒TJSE؆0?0fMR9oVN'݈F= e4Xx?g66&EC9 MޙM}XRF> ZudaޤBzLLd9j NF50>I0 > 5 .o0K\d*F]2ir%s{q=,Xqj 8iY8֙8hr}n[Ivӑu0 T^~ 5IT~V3K6<)pyZS-}Ńn |QUreS'5cyW:oXI0E}&*(U+Daniel Lopez Ridruejo 8#&*(U}Zzlҭ?fJz^9#77i^_^/t2fҀhً00m_il-I)ML>$NmorݶU2L Nu?W0P<f*G Bm첛y6 xPBrbb@apache.org86#xPB8jSgxpE a˔*R-T>sL0ssKwg,k1U'=K: | c @" 8KFD;q9n8lYmqhxw~&At,Pc0{ʄ]!~毌6$łʕ*Wm~'ބCh n>$/!r@-RL)f'kDgl>ÌAs'%Q"mIs9_IeЍJ?89o!Чv_ 6jcK/`}R4H"fX-6)8-m&B[ u&&ô.AU*wPkP_/4-^klܙn}҄a;3@֍ː 8k>63R>Ӵ3T/Marc Slemko 8T/SfCp«yx{Lh8><%+97O(tCTC@L-|MLF[@h3! #41{vCos7jtg)꺝,^ Ӌ1wk[e)}&`%F<_()R?_Y]X `9#,k'qРjK^{՛-''#q/jO /^iyB7rhf((bċ)$Ask Bjoern Hansen 5y((bċ)#>"b`q摔qǠ EtG"Td,ޡ}XVRQZR1Fَ7ޫiPLWAEԘXz|<1)qf=~dȳnU?5{ =8r+2J !-Xg]qtq-s#y,巟EZ BF6v hj.M&<*iKS Eϗ^3#Zc79#u0{ R`1!AJFZl'$G)F՞+2ӣ7*0C[[)kb 7{-iօqw'm@ڈJFr^je~&:@H Ask Bjoern Hansen 3((bċ)_Xt MszW8NW@.ZIyʍfZ TrW9 ?ެ'#5u %P{:-:9/#{(\]bY׷ XF$$Θ5y((bċ)nM&6 W8?%N_f,Crm0\\~-]/驈 |CwwMa:rtrht؉.pF͌a' Qrx"{g Ask Bjoern Hansen 9#((bċ)Xgݺ}Fߓ)ep"w/*GW-@(#B. e tG3 ՋFۀ^09#((bċ) UdݹIh0 /It9YBz)!/YO:%,Q/VZ"x>G9})(R'ƲЫG~*ZtRj'X/૊ 99[H+E X{#Իz!p'Dxu524B% |:aDOǑ&{o3Dz!ɒE:wHUXSba7tSrT:`VUOWY~ \1yM2 2G%Ί>deml_++$p*;[ZE[a g F3M.?70ј[|߆Ubx-e}n^Oyu*William A. Rowe, Jr. :ѫPSG#^șQ_a9 Ծ?n,e%oiȲ٩­Ę.qI =ç][^Ῥ:^Âѽ :DRg̖ZbkC>!3nF;R( UfdxVQ0ݬW'M| .;:F:{W );:;o3;~$9&%temت@'F{/1QܶB?T6e$to]|6?:tGo!Чsk.(1Gόx|ƐO60A'rz.eV wrowe@lnd.comF:{Z );:b_:ߟf t¦t%F;w @WSk ^sX9$/kS Sox~93Jv  IlF:{Y );:.+K7#bZF?{$П0VF;w @WG_ M}_%tir zӚv 4]X2$Ż?sTz9gM~̍a4# 謄 5?%Ny*HL'UkFfKm >릙o2DGIY&DUO'xY`SBZx 'mH6 W@F;R Ufdxh=Xt~o`ӯhZbJ#ψF:{Z );:FR~dps:Z@:az7$pO FTaf7F;w @W?!Ǔm/C3 Qɒ$9>yui~OmAm(vOyl M2'uxr-{t[6у~㮚W }D6f y1yh]\S0H,#ƚ_vٱ3'3_4o-Py?G[ŸlY I'܀PMLbm] ŋ$ 9P0# 7!xU@,% At~3\x 0 9flDw0d3E?:tgo!Ч[eo"n.)(Jݿl)U+F.L`) GHjvgi5^h+3; u1g&BT@gX߾{\Yz1M -1`=~qq)4|+JbTg)yZ`@԰-MY:?dFϔ?pyш5쭠AOM0xIQfIrJhic7c K}W P| 3zfjd?&E:VO̔Aǜ<6Rg{HU,q%ڄ=s8Ϭ> עZ]r+F0 SՇ]YaHg (R HhƎ"vR^oݘ3\춈J@J<+&tdV0-φCw Ƒ_X4-zuZl07=~ /HA߃rb1 Hvq\B=(`dSG yu/Su@}8|B3b?:>"mIi?.p.? 8?I2ZܽbwZ{/'3H{ 3-kGfY%h0|c/]g-=`lwD͋ԟ)p SOjr(.|Kj.KQ{ ~\nў ri/HurUf%1|z4?X|h5 ?^2$|7Tkg"Y7E5Rb;Z׷g(M Ѻ\>]FHl `L_"|_秫NYs)2=>¾}FH?5 hLvWya#DmVB@fWY޻Ahg9}^ňFHND a"`&AVHz~dmٗ;yzzWuDAFH" E &b 엊X/ teR'9^r6f^1FG L(1=*++SKmE> 9gccFH < ހV)no1 v2&{F`nHY$3 <ڑ!hPk+G+G$https://www.cacert.org/cps.php#p5.2 XOMĮSd[?xk%lE} 6%)5׬',SQ!$1GM 1= OKK U{kf:ӉN>V?@hܡ_1M eJjw 407q[ S@<*sMSa} %k3v1;Z[j܈YH`f9LԣFHB @)$)9A*047ۣqjM?)G;°99!'VFHYDW 3Nu1=!5 P<[^])J ^gcYy}zFI4N [O4*&_|[ -WoL0rT>  C7LΝhttp://pgp.mit.edu/ ? ]w|2/JW6 #W E1/dua=NsҐenL?pnԶЀJ}IҒA )U9h4H ɰr@'`E\uZsnӰ ۏOl6u utS$XWծEִN o R#R5&tGL'Z%A./+[bj̆h@Jih [:j ea{:lLf[taA}~$) ~Q< xm z}>uꊶV.X}rʇ"i ޔINi4dˊ:}&t8Yk9!N]3IĜko ޢUgDird[iǧ8 VAso⟼S)t4m[G yu^CZjpppcϵw B2;Qu,($ա[A G~ W`Yn}$T]uѧ7^dlS(;A4R6Gg_plr~ ɫ"6ys,hE;X?*V@Z@=MNBTPTyfgGcAr4dHYބ{3<G|ڰH˩:r)wle'' ʪ1sfēt-sTTnFGFQ 8M5BFcfɆ:3z*ۣ?zAd^j1FGƧ 8K-QExDHϞ((l+]=^-fXW[iFGB s݌S5xO$OpU%04/ ^ ґ1d]FGO o!Ч-b[JsVz;_Jij`A-9~7eCFGS !(FH?5 hLvWsD۴gN j6`VǵDcwFHNL a"`(T[VXW)- ׷ $A ш?SF**WUFH" E &b#$*ם} X{6m6Ѫ^]G+FG L(1=y?zM2. xc[&r"ߠCkFH > ހV)lWSϪ6BDU0[Qy"o &%g|V!k+G+J$https://www.cacert.org/cps.php#p5.2 XOMĩZ0u\g4 @!4i׾ZGM 1= ;,~)6mkwCT|{4GqKTɡV|9wGb M2@f@jKFfϙ ǘj}j|P7' ZHzTr{~z&funӟ1:&"M_拜͜M 6/}/経rGynO@vcu|Qt=qe [>-Qr瑦-G$x-r\ I# ;L xelkVLs>ᗉ䠆)fDo<&L^ C7  ? ]w֩WBi70ÌI3΅ ;G`,ʋoyaaӗ5{ydIޯLj LڜU1[2O ϿaskٍGv``6p\1/Xn!Kg&UrfLVo؟++}R0ũսuEl̷[3Ahg,/YD5tt|vĦ#i\Hu-m1%{,ٛ?M~C6lXX<E L &pUYe1 C1 ɠ^Y턬he34*}2lZsoȨ SQ>KA(zx O; yH 1E#cY4+Nnh=Sp&Q0.1\{H_ < Eb-j R&j Qtua+HE.L3;p$d`l`,{ދ-zMtV\ tбE (y脹aT[DG  QC) ? ]w] G Tg˛l?8p( ׹#}CJD8Ct6zShTsJ ^GJ)٩yF-q%MN.`"msu!B~2N<`f2VC:]Wu=rq}"H1t7\s*ӂ0OJ;\ SR )g U!!wXz3 8W_  Pzl`c7,*ݕ@'i QDuu^m[n c/[ }ج.pƏ*ltTSЈÀl]H.ͭ@7TAPϔj鬘4ِ"WzE\u P>^XQ-KQ\z8Y1poú2cPu8oy*)ҼD;&)ADnVʲX߆{CԤ%V&>yZU, ;k~{UߖvK*gp_T- R(atDfU[U[Yc3F]ICn ]S!9 K`Cp%˚DgŶ',mLo5bDa4?(.R"xG]0DzLaHf:KieΟ qqP\Vyus[j8ʥ,A_k@+NR q؏69Su4!\?J[w0C`z!8r+t @+M/ܴ֦a$,b2SUV=T-av.2l&zX dA\"2,Z Yú݅3+23khZCL@23CGan cA~^eA&i;nDe{+ZfCw߇MI b +vmG4a N GI^\/Mwj $vF=ԐwVH5,&f3ǗȸW]!d]+dԌs(uSbɄ \ p/1~1"L@ O8ZH'U%'B|[%&:-1n1DLG7lQЦ:Nݱ4a$JeKiXP'a/Xh5"jW]e523-=!KtƺɲjWJь0e!>9p-eǹzK=_$ݥH羴-ix aD(hg#Xh֒LaO"r%tYطCC tTI~M i魥*<ٙ2tSY΅,T !8"\CKsBNY:mRfɆU xf[U֊9 _1KU.q.uEigJ9ҙ9PBv/ظ.Gs5$8]Q2^,sN)q>F?#޺jĸ ᓢ7ˋ!So'tw@6W>jd0~I!(p5oOQ~2;l'FVd\'d_9Y[J˸*bV & #W"ƹbᦷ3^^RP^0)'Mq?v~YG`_12o;F of.~&E'ĖߔtEjd$!0`24tk9;iB߆U%sS20mJVC,hV8SFD43 j$TuϺQq? gBݥ ;;g_41i$~Str6pI֣ MYs 6RVŲ octpAixM/ %Gq  QC ? ]w^"b;{pO P9*bvék+YͻFtnml,kC7Kֽ(D|O~zŊhl<]D3)ρ72#ۗxePnxsz6!bd@[0QIƹE.^Ks망Qũ>zyg`9֚)h: Ri#W &C_pt Ϻ5X|b;@6.?ZvZS|"Tv}(γ'>%$;iYn8TQ=;d1x6,@<˲0<8?jD6ZY*rd!yRlYjןֵj5]TCNܹ JU?wFa*p \g0녊|w]ϟ}ֱ25(l ڥǕvz-"QJi!?H(E" Š҇.>0LZpsTxX 8o|Yf࣏~s=1 55gJG:jhEj%s0 li N)dRt8z`MM#q SNyDGA6]1*Kt{M@Iھ &D_SQH\1Ő^ŷI[c_$BԢY?=53BFXx@ąλb\-Z2@oC fbitS@娭lBlDj/ tw:p2oǖ! vuI#fC:|wu ws}5WLOQڦuec?#Mûw!DJU? g) ? ]w] JU? Hrk<Å&_avm9թ?卥P~זaҜL'"f&uJdO$a%8p>9/3JS~w+jw6z3CVbt*S/8]zTOetx~/J:}oA3Mt%u K\ )g >o4l]Uv{ +R>QoK~7)։Yn0n`8ê3۾LPWr$TU[m#$KxVӜn a!1``i·1vn_n[x;Ip /?z&ζ(>۫I{{S@.'.sn2:R%-/!#hʷc[50 LHPgyfPwMæ=K n,ObItѤf25ڬ >câR m:)Z9nILcv e;l-cޗ8u' |KPG c*ًBhm Dn# ?{wѻz;F(/5R0J .hCV}tdZU[^TJ#_$T) Ild+iȮeZi R`ް深 X T\O3"Rҿ$FSS$ "q:0ni:R&I0it0L]ZrP9T,7 2OSw5UYvm]裘cؚH!б]X](9 JU@T7؊rdV TQE.܃B୴ \$Eݴ\ׁcMKQ690AV\٠5T/F]Xr. y;vԕ{lR$6!QC8A4jxŘ&b*yx wLMqwjE!eAcBwc4oHYu8SvxIYiu[M"*f}b!EV}f!m&Od|aHb,z}I*.z-SWPQJ>4℧Ƞ-)ua#2E'q&[g8!)H>g.a+hZ֝TR.wm6|'ﶎli C}jeI~€6<9c#:ʽ-X?AG7τJ 5kaRcs@Mo_[K:6O:~eң:[UcZ,vIQLWI4|]ew1mE%JU@  g ? ]wO҇#{-aVo{@sNea܌gSva%ȶ;vf-1SJR7lVxbT]Oݣi6-?dLPJɹL{q$f@CЃ+V9 ߈^?d֛B4H,hxE7sQ!5(踔iY v+s.Xf5x+QN.6c`-F)`\V] U7fR픾7~N+>ɓAS0JY)-}7nfU$;{Y&yEO7y [(3@khc:1~|!,)90q N}lܘFJL;gp0*y8Kfõ#"KQb"c ;b9cE5t",CՑx\6v0}bS m["E?&pZcA4lj JU@?Ϗ!n#?mJCVS>;({<n |3oNXg fio/mooI!.S~F́UuL(s'D?'"H~f`5qKmAlޚˎ76F1;2~)<ƶK`ѷ#}I8zdg>iv%[)",W6Jg@k0]l qUe<77$T'evgcfi aax}<e9Χ<طW$ǘa`UcNz7 $g,҂3'Kև1"ٿ.矋⨡p;:E4nVqcmf*g&gZlf\鳠}6{BdX5(hrA}.q0jIϜur`|1zȰy $Jp,,SG4TqͪCc6I@(ݑih0C X3zڂ4&vvJy3'!I9fK;;,A!Z?[ UeE"-3.kƃm3bTu!ۋ`*&.RO W ފ K7?=CDq_ -"/mLN8KA O~݀usqrUuL1<`7ܶ?yM&]W9贚MToWF`7aqG<#]6'!AklXH@'h^XqǼ OAע=޼4lY(eiJ ~rcI{R3Nb%;64>-򪓌.ez4I_[.R"zz"')Id7X\;ւ Z7wwO F+y%m#"f9J~Z,$.+7[s{*O];rO&IؘZEBrb. i%%JU@?  g ? ]w(*hps؜TLV=杛z_њW3~Y3QӪ$i>^9;U8ߔ v7~rz'+sC>[[IfA@?k<)=`v9 Dc\["N/ôW+**`䞟䆷Z7"ZHDMmz.֊|90yq4Bomo$%v ϲ OP`D+xUvu$և)]=|nA;?=t\Z|lG =p=3mU/WPL[T.E.k2i`BWk|7KU!>9`"IH:~fh\qJRç>љ>r)bv!-w Wq]Օkp A8,y3T!!oj9#OEi_N#9\ `vnPYu&iW,bX 8, N]-)[]'џ7fӎK22_ܽ K=GZ7<_ ӯ7zD%:^CR?C5O_K&'A!Gnz9|%nKlIO^v ׈N$1Za+$Ü jQ/&WƊ6;\G=FU{.ܔ JTbp &R]"kl!~@~nGH}1LPP]HC]X~'ƸL{r?Az8 o@6s`(򚎘4E͙(o,vo\[٪*lECq5B,fctȈeq BS={šzThmPTV: lÐx!d%+J9[9LZu^ `ZtZ+L\$|LYX5-T?+W+F aږ# Q)5w GdeGHT hf` jU~ &`ҭ4O@̇C Vś%\j KȲ};Ջ֤S/IQc6|ø$up*4d;$: ߱NYb57W/ .L} e$~Pw!hG!H@I8-4a /,Z)~, W>,*[:BT7-T\p05j1u%"o#%wϿJVu@l*4 Ϥcl1Etg H mxv90Iaɴ+f11[aT~7%N]   g ? ]wk/vKɵV-MGLJpy8/D~ۓ—D.ZW#Y|YvwXnU̞n)̑Rtm_؍ʼ`x. sAs1t1&*cX*Ƞ@Ar +$͉d3l#\g&Mu"isrTg^rpDv:[oKϔpzi$U8r*)o"/XcQ?:[ۨEM)^u5Q-ZWn ֟iORP汙D Nr[*w9nUS¿`f _ Zִi'I0kַ>9HNzcq9ID tn\,+GHNN:܇ш޹ N]/ k,SbkF7 #$}Im]V%,x&dѡE>NbqEZୀNoJ(mSkuKP`Y[] 5h豰ujrtM^,H#T[]ZY*XW"mY^~-4<$w9!н N]f=fCm)p}N}ZJ|K/ 1qĐ<7} խ0=p;E^gz$ = @2Ho[ yZz?oHhBۦ!.i?o )@ǃ#g ?)oz"4J żز4>b)AItghdЫ BO]JxkF$k82)_lE"h"=(^S4LmUT\%%^vV}on&6LH@|/dIc| ^ KbSQ]WOiĻ@ֶHSR8SSg[_>֏K)͝Y~d ۑۉr,>1Ҵ]M"#By8&!w+w}a*sFE GEe)?uM++cٍ.Y=Bx3l- MosOt0ZSK%l Ұmٛ  .'dSÐp(1U2EÜM$vTIxkjfCTe|"/i$2[Pcue̋:X c/5a/F v`hx@&% 9Rlķhm#H{^Fİ5߬B!ϓҹv:9ag16@V"0'|*2]_Z[+~]]b9X'qCmdBDD~d>wZ+.&ތ tA*g͚P7IoMܒM^Zr@nK؀Nt.`uBS@c%N]/  g ? ]wH0z2`@vMfW6t:_s{0I.QfTiVmN\(vI[.!&ZUwLMf<>$4Sks7i9l Z fQ eGxًy([Wvki9e˨jbaryMDF=y{q;!x|& 9*3Z|PVn(̊DkWp~oydN5IgOAQՉO}`7&y{m[.BS20t=¿=t3 S6ٌbX4г S|cto'(ȳxs"XVB0{G;MDŚ 5I=!o7m-"Jsp@BpsN^G|J70U&ЩRեYZp\l+V%9s?%X0gVUތ.QZkܺGF$hT!qwW 箢5wːhG~A¯H]pw Q@"${Uu̢(vT4'/#& 7JL5H^52Mteo )VQ5}sS'!K/tEc]p^9W:IK @ ո\UquC.K.`22*x\14v8[~Kt CnfU/ JiQj` PͼM;St H. )c^s;OOc!ash1ЮOc0ZN򲗕wEA^˗o?Ʌ㮰5sL`8Qq^.O}$RQYXL~U=  x vhm ] Iڃ?|-iP cZ|5Uվj{Dilh'G ؠeMրhe$q`YSnP dKX /uGhM59iHn >%΀/@afZ-ǗZ﷛rK-4C*S"ռL+XTr;(.)S&AhV Yy՝*R5KWLJ([fEa9ߥ2EI@6}iUfD hQp/bM,P.cnUFg29@@r! v~z l:o,_M'|kBq+i䴮ckH)$m<>2Fæ>5&CucKmOWsP&/ڃY'{@1Ądz'UVC?^E&RW Sbd_ }nSw=4O~Ooa8a8r$Sƚliv &+!m K)O :b@7|5Ihu5K)5 %VU#?#Syoz9 77MOC-_XyP~.LHI<\zm%7D!m0ڏ *|p)o:yym(d]_ui $w`%l)Y݀I[}p1{>XM|ֵ'eaۅV"F\޹+k1h‘ L׾#+鱕pGa vta[$sC Q_ S/1;QHQDc!$(0I[Wj a-V%zM+P1YuB2:]c$pmrur6NܿPm)la6& e.F_mDJFd=hݗYpPdʽ854DuW[-ZkfF]r:(33kh*ϭFYŁ_9V5SGG1 ƍ--3/MxiIMw*xlv;7 s8b3S("yt]m.3r-Y'Rn@5a.0*t9MtH>mt20Mxo*8ܱҮEDi_kՄbS&?J2v!yy]H6=9];p)-J=BJEr]u+GR9*6udkmrt׶-*,<bZc]0NIrg $Us0+4C5Jo]y@5CAHր 򖴸EڬGAq :7rg%1%c[[^f3 ÐF? 1džb]'}Bib7L&=%K,3NFPӨ kF;w 0`䇛9ɵ s> =̨;-J,>I>t; kZ:(s|obm*?Bцɷg,K/o-*_ QǣGX'qsycC,PBq ciA,o}؏p$.<\n CB^Z?N2?2O62,_I٢'\S-?]9O◧[rQ>B[ׯbUuЏ~OcLũ\rKS_S R٩t1 XxjU[ŚbVݽ{zmY grwr~g&v| "k}X֮+V2ɿ°oH¡^060>- EʒȪaWҪ[jgnۥF3Vf+/e|}HQ;3!(U-:dMi9Cm:ǩ}~$_DBKdCxPP |gE5u2LCgPB b\r%Qǣ  f ? ]w~&@=щ>y538 !E~g%GɫEXO Dϫ'&!7wPok382f++PsD <7X+mwg .u֑p!=4 06=B69% ܑv:TީHBqY(AƈZCKM{mBOH*=u{ϗ巼J#U Pm#QzfbĸOh:3YUZ¿ IΓh>m#a''; A:q وthYB~LssƢϔf9/ RfwG#OaNE`.s:H{+Q剗 :SNIj/4ZLgT€knDEce|RRc< nڱ%;T2TK#K5h%6A'"4.ƾ=7Q>'>Z(8 m +Ï=!"Vyl\M2@oxV:Qc5m׆5eKtʃ 7MA3n"xk=F + rIdV?l"Bill Stoddard :S㷝l,0U#dlH![UD$/>t&oGLC`C+cS742'=%jŁa"y+_|B+VaCTP|IrQiԖ,K߬b  e.8C#4Z3cXӐj6SBK'fM ~hMSՔRWlI`4MYv4=PW@\Χk(;;wͥJjk,k7PwW^I2?J>9v=&} oZ :zޢK#86IsI셴Ky G b^L:q~80)uPuT<I"㩐wrQmh`mk6oT7BvD{l ~> p۽EK;^ogXSr*DznKw! s^!d *Y8E9Ł *r= efB iaGqê掏ĠscKE 2{Tl)wi2q._UB?'Paul J. Reder :z_UB?_!M?cg; E~CUg P[?41RM;a*츣7uôߙZ`vǔ.* ߼l!JBR韈ᙑcZ3JXJG#YO2z5\$ `ʮ0쓼C5QUCV}& ͶnDxB9tfu@nTK PAzGh48u`0>R>Ja u<  F'*.ĴMqgܴ 2ֺ r qhkW!7EOLv}ߦk,]%[񃂀c쳤Hw6 G qo4E/9emP.#0@;f,,([ĻOݘSOAVz_RiT2I(l|Ev}x=K|S0':7 FBd='C$/<<L*P,Vgzlvic :bwM; sۻnc#vBF38D܂0 If&:$A`Dd\a%j5JqsR% OrBKMK7q.#Ɨ9sS*6(b;Y hb]Vym^%i{]WQ?#Cliff Woolley N<   6"ׂ{<wV5Mn^Ewن`volŨ{ₙ6< P :k]FfYijrsR90)1ցʛWi [1LX>yZF]ɴkc`;٦@yruЯ2/R.Hp!j&#ExΎ5h6U;{%HAe6(_雉T[<,0nwb~n^'%~ؖN}>`;{ߚ2> g+U6XQ_N^pm|Jr[4n+ҌS6π'ЀӞ ]V  < 5BWr֩BS9OnK8 V@UCLdI eԡPY_vRO==ΙWYtOvG0a|f^[r:FX+XNI 6k3l8 E||[-#C[U]84|WCl3!,*<)@| rֆ)zʕ ٖ PF=f]A|K"&^U2 ;nxix$)x,5'n($ؗ.q9NaBv0e» Ǻn"Ҏ.JBtBm} $pڻ'^us~P`RG^"0+ aKp)̤8=B >VߑA:adƇGDit3#؇n*rBh"kb[c륟[PL(=TɶF< 5 6"ׂ{ 糍:$ts=vPlav&al:'< < (̺M 6IkcqM(Ys۶A!o1ՈMlʇ##47XAX*C3¤QjN/-8[@m *-uM(,5rae@"Cn|iI乞^`Ƚ3Y$YEu+qu-K^DSZUVJ"|eyU)\s&KEZ4Z6v %rGD@S1n#zK٭3'(Dg/^em:k]#Cliff Woolley < (:k]KmGVXskAFX%*X*JG< Vi6;GDh>9.nء+AϽ(y6Lj(OyL<පp}rk.K}q:\\8{Ǹh$-@17dWPՌd[3Mr2Fj;ns?n1lRʚ[Nӳg6t/_Ke&yYɱX+ȶUtNȓրNjF< !EJ̋~wd!]`z B8e0]8>kg];^,rM{ļ.!=,K .i[00Re5D>Eʸ ܟ *{$ädF- Чxܕݞv&3lA{4N?uMKY_MY($ў3녣N듎+gav! Aׁ״%oDv#O%,P-yg*:+Y˿Ėn?6=eb<#=s4nZtʾPY KD/Olp6C.贂`*=0 Mٴ%Cliff Woolley N;^,  q5/ fS.(kaJУF܉< :k][*L/h.5o29 G --V)'59;jXM| 8b*)1 '| B/:OE!jݾNny#X(V;dZNj7K9P+H,a:/ү C[=ƎIͅee)Y( q6*Se ^𗕪II=Y!BБNA ΜNdi0-O0(Nz6KzlR'XD0\] (u?JRFOI#FC rTь^S&;88&6"͋u&G€l$pY]wHk愼P#< :k]_ܼy('\$(vRA"  Ob!3a 0FLݟw}~:o*z-pDŨ=zf]],.Ac/ -EUԼE\X۞'Up7NRqpC+N66 H͇Sǎ*ؒ"*l.4=Jv M_Mdƍkd7NLijj3[;esOXC/S7vXt!嚝{VP㠽aXBOmVcW=Q`PeLsŠCwKMF Z5 "mnpҔ/\$kgQqrƾ6 o C0 #F+9m2$+~PYRUL&YVf'f\5U0 YP52+LvHЅNT8{sHت\oOW. w ;yYqx4@y\(Zz܍rǧ91̽N`VzmhtR}ڞgN$3^|k/#l'|PĨyx>C*!Graham Leggett K 7v  4JMu'ff[?sY<>p˛fe}F=< jl1yeRA[&)r ^#e$Vdh:^p*CLH53m̐јDu-[ xӉ=GUyy]́a=  yucNl4W*ä]kߍD%*+l>oCXN[Ea9*L"c7O& h(4n꾀)ҲXNm"&. Y*YϹ̗rAdmR"wAѷ5qh~5L G[҆ZEGo92cZԀ=hoژSV=!R rj*Щj9%[ہ ?!l1R| =RU)6o$塬ЂYF=F +KB/1|8uxGTpv(c#Graham Leggett W<   4JMu'ei)r\o M,5I{\}T%[F=< jl1 DND@ 5)q K^B=EKQMunJF=F .o0K\1($}.n46¨F[rrO=G]*eT5b= ! yurU,?qgQ!Md S142j\P/2X-n5u'鯖vS Z '1Yg瘦xwRo(l ܯi,7Yl.5}8ǔ0#6 :vM[AZ*׈En ڼԯЃkxTdi3LWO|>#-3 hMQG*a<DFi7,;j.1L&F=#4 :`u!gf ȇR~ߩhfG6nI_5׃순=0 1= tQ ЅVkĐFӴ3a\0̰$kfV@:PVWMiEZF!<ʽ: RTw [\;'&`蚝f]5C/Vc*9y(kr=< >Ap]/Wյ DXӜ+T4$AoP٥Mg+\B c@kٕUw^ZcY"lƥ7a5jü+Ȉ(i=T<@yA69G" 7vBWr֩BS9OnK8 V@UCLdI eԡPY_vRO==ΙWYtOvG0a|f^[r:FX+XNI 6k3l8 E||[-#C[U]84|WCl3!,*<)@| rֆ)zʕ ٖ PF=f]A|K"&^U2 ;Tp.B7/#6 hD_9O1. Φ=B-vW%7sw[ :AEG>=0kucxPzL:! tq"h1 GVʁ-U0R7 j`{BȦchӈʢt{B ?kAe\4=m~OFS7EQ>*GYf_uY6Am(jz˗՞JP?7v4JMu'}U EA>#64tPF<=;zH:^7ڶ;٧w!"//p"u*go]^vؑoXP=z ,YYIQ)dRf Cx%wlUq-,$%#na\<98 ѢY?$Mц1o籋42La+C Hwz5vʹ=֞GF- {hۇF`v`m<Bcyz i U1^}Pʘ}|L%ی.CA'Ԏ%lF%WBT7z;![4$[f_-KD*$ ~%*\nKu6P];٧w    `^ZmyAildD EX{rGN i9Vv3CІ ;pL ;٧  `^ZmyA!6 47|WШETA4qKG*>ZF:vA8VKzZ U,#M S߈'+)UL=ߏ+F(fHdəP[>oZ"0Vb݂Τ.nL߄b0yc^?!߁Շ{7z6ʂ3̍jSz;}wREI=ro$|ޱ$ i@EF.R: !;L_`A4&Ns.13b2J1 /9_iOxs!4|&/'T"-7!sNu 3倐)fK9WGSR.‚UgêIi(-A_R1I$%F ~@*&uXQ}Fa@H%e툯B]koIʿ>EN*ݴ&Roy T. Fielding _An  [O* B]6p˔[sg]<== #F"^ W@KFAYi Ցr=.-^#x#(w Kzo{eɠFA) 0yr)Рtcj,"s@` ~XCPb$m"<FA ~wuy&"˿IJg:o 1feO1߿ *FA asR?d|'>\,%@8ϼD©((YFAr \7xȓ N,^$Qϫ߸C99mf ¾FA jѪbD}plx=%:+c(rkBY6AG_GFAΓ ]AJzEY$xeZ|_&lBa9`Xʵ8(1a/A 1= _9+mI=C 'C+y6.(jݜ0Ft1>Z]"h*P)ãm!5<~Kz\XcMy]B`/\zo* &(lg(!?.OEAK zf-޷̺""Zr#y8^ H:FA ޢ82GY#C'L1,sg !EFAy ~CPi! GETZ3.~*X$aB=#kPFA< fc-KIʐ8) YjJB`VRnaJU/t^UFAK @)$T "(7?_۔3/0MI1Ahʺ FA LM߇3pQ,Ŝc.ԞMsHdrԛv5tFAH 9S#z*DGhq}'E{SIV]tYANBǞ>FB." Q倳c[,O1gb׫*nh®ݼaRtFBu { --{H0Ef/8tEY?08^No ^栈FB vԆKx*-v,d:9%-a[ MFBްP o!Ч3@ udHl4컳U-͹OQdFB޺ 26BK&ȿ{ &ZUcrŎRqQSN鲈FBl P0-h#rw>}WXZnLb 1<(-FBl ݺd,1-/D|A~U[Q1A'O%S_yXBǢ 7_e!Ȧ E5অ'O߈BRf$ 1?ViI 0|9 rcNgK լ'ɳmLhB.Qgs^7++ƤaMhs/:m~r{1m ƈBl pl!a%ir|\E#g )S?y9]2FB ɵty|{pE|6,t< xwSl%Roy T. Fielding W  AE [O+"^&FDxeܕHOycBNoycYrlTA?:vi yuNyj&$/_zfUi"e z6/wz{ g"@C 4(w ;fյ lWuZhRmٛY8{:K6;jP> KҩmT3N)lo(޴ B|l&0Zdj .eWk„'KknYH2bO-_0Y{af_W0O:cY!L{3G\݆ ph%&R@o]0 Gg/&z-'=w9bc!vW⪓n ',屢hj|n%m]  dP׬!S9!q4b1;D%&T8Ď9`2}t#9IꠅyBjo-"9Ugk-Hiww-7 %"SnzP!4؏=rw\h\?PPl<(xgI80D1?Npcc-PHČvN჆D7 ]B0CTmo=]q~ɀD..LɀȎsm䕎0oP<#]2+xilƔ>ܜL$ t'|5NIL8[U,I8%=hH)fE=>Xr c݄&O66P.:߽]!DY[>\3vQd:/#G}~)ut[I~ӧvQkYqV^-0τP_)߆M('Nmm[,,9pVA~Ű"2IIcӻXױ-F]Mk">\-poYm Phv 8H pmcp-'$NͩZ gof:q)`ϙ,ґX2Q "~C }JC.e1[Iš*#! 1;ڮfv0Dw,eDF%ק4&(Vt<Qb$V[{N,4D,c3 WN@}Be`2/>e,Xq| Fyy-I]x'QKZOy$fHdQCGr [!V+=BqZ;>0xG fF={t  "%|3"`v޸;u oвt]F>W 1O UZC*uU;8/D]w"  L6eZF?h LFbO n'sI۴jo)}kL,ֿ6SփF@# ]'Չ=^dJWl63V1oYW1V5.޼l(?o >ABH,֍/,7adxƈs8B[g5LlLLUfP^{4x9qV]hopqM-y2+UeTHĨwt[Sg3_ЎFF=Q ͽA FAenv 6:0~?D%A԰ iC,y86}!ܝmFAp: nRž4g u4~n_ 1V?լėI%b@`ɘl݈I0 > 7 .o0K\"3į$߳6 -t=Bf<\v9X??FA& :`uov~BÍ|7+qҔ2%A/qv׈FAYi Ց皐M~hDss`yФ*J0@-} FA) 0yr)м;uxMt@d1er)A ")!5fՈFAUq |P\:./3HJตqkOm6(j>-@[?k Ϫv<'2 kc6W# tI΄p OYѭ6: hQ!>0heGh Ŵx{q\Ё6,ҁ͚Kꉟ:[o,CFO(xPPЩx..lFLB;DZC+Z݁G..,O hl?j yg/S4c܊9<0B+rC+BFA ~wuy1Fb} SWA*X֪*|].@t=uFA asRuTߐ-\!ُѯ< ՗}F!o/G?F@0c .Ѐi.j#vy7HA5e2peˈFA jѪbJu,DGejYǤS+x꬛|BK[ÈFAΊ ]AJ%0kڲ@.K yK88Ye~DW:v   [O4IrDd`OjINY-?]WLXћ∜A 1= s5wjWbnrk@W{GA-_ؼDSpfmA0o@Z=$UȆ{IH37,+33(X7ȍLFOgUk3hԗL>F? +KBihxQ-W `[ջ .a32DdWkFAK kM`ׁ@a>|d:vX-kc]R FA}T ˹Pcwmb7d d{e[faa) (ؤ쟰6  FAX gr--R&d큳=؋4^``Usq҈FA ޢ82j {f!eTT@/*x@3<ҧGFAy ~CPhem/c^W2q'uPcQLqT9d)nR`1aⱶݳFA< fc;)JsKGjYI)Û[Q<|F? @)$۩MJO1EE yO]`2 !2(q|F? {GO1ىFw|jngsuTUD5m T FA LM߇iU \ы,F_{pE/c9cN;]t;FAH 9S#z*4ŝWx9N?tcw=ޣTY%[KMFB." Q倳c~̾gvSP=t83zEUBX;FBu { b)]ŝ3)4M YR BEFB vԆO8w글1{»' Kϯ'u.qFBްO o!Чv[g0:7%>$ IWyc#a]FB޺ 26BK{M}ʔ5zKhFu+@z ,c:L2FBl P0-h^ڃ>19%cPby%ҰS&WD FBl ݺd,1-/^vr.|Gi~Y9CYl_Jp1PzPvBl a)RZp̟&qY6^d n޵HVo0疆=!Ẍ́" BѺu W|EN,9&d*h6_-.#ٖ\X_;J*-Pos5} M{~6iTTqi OUn-n~9w!FICb+fc#ol4G=TΪS׷^qwaPF6u66(pi~E6 I !H\&b cQ1,˔]6g;6d/`zلlHW)O Y*FB ɵto+4bMAN2BCwѦ';G4FB- 7ZJVQfEv<8+|" vLj"Roy T. Fielding _A  [OGai؀{aCzƯb0]2UvˈFA& :`uDU{N+U@&uş a߀˲W$FAYi Ց֖`h( 6z}oSM Nwv5ldFA) 0yr)2. }F2!3_(? E3iN5FAUq |P\:W.XlʪB?A>mKVDcjAI Ϫv< Pcb)a_LxǍK۠}Mt-+nU!/%BYFsQξZT-9"AU }B @FqUIvvg>h2VJ$- u}Ӂ̳4%=z 4 ^GN콲ǰ;j3+1`.hw Jr1zEB}&"r/P"/| en\qjm mbFA ~wuyD'#_grE72NvD3(M/c-@UшFA asR0 kb45 (rm, Ra%¥N&<9)lFAr \7xȓ 2.L G-ՂZEߒ<ѾB0 [C׈FA jѪb zqԦj*VF|Pg_,xg r>1tc2`BFAΓ ]AJhk݈Թ U͈\?1NS-;UوA 1= b ۍɵI*0uj03cPGqc!O~Ie Gi5/'sYˀiJ]{Mf?*4O" {&Er} tj}Ts@5ʡ?Hb)?;?ě2+x[2FAK ѷOhWPvmdKx.6gI &wcˈFAX gr--RC&c]T_3JNH Ҧ<5$!OQUFA@ +KB pI9nDwB9[N8x@ #%[+1m:6=aD?qFA ޢ82lϴb:._u0!-ȳpPo[lFAy ~CP.t3*PҌG%7EE#g? CSo(8FA< fc!C{GW=A&rF%ۑaڼ:5FAT @)$ B%_)oL^ miP(?I5k]iOǍx+FA LM߇7& b7ձk T.2m-IYvj7FAH 9S#z*{3v(Œֈ+\,2y1!If#䯗]lڈFBu { fT]8cSTPVhB*{$5sޅoFB vԆg]\{,*|GJ*`W)LDa~FBްP o!ЧO6>eTd7n2UEfU?z%-EN'@FB޺ 26BKd(GbA@Xo1FBl P0-h;rbXȉGd4|dI2?s/nƠ1]ZYjFBl ݺd,1-/hke~5{#]l%zawc_mBǢ 7_e!fUmY>gKlǬcƑ{Ϳ(.|R1r'fy_AW^g'0 {.x'TIiڳN"$EU'/B_.WZUvjg˯[Bl b" A [O34 TyI K]9-pOj塼SfFA& :`u@`zN}vڸ+Q2ٶc3,RFBRTշf5 FAYf Ցa:s0="OEm$X1AUa3BoDFA( 0yr)k{HEXҠ Jp>}?-FAUk |P\:טĴeaz:'˟ZfjS9YcAI Ϫv<ƆFSpʼm.qCI>= yB ` u~/ 584:a<:&SɫƥHў2"LZy:sMwm/ndzGe Y''(jͥ6%g79@߼; EwӮFc)&v-fQ֞9 sN:%6$p[SPӣxZ+m he8|OۜSdFA ~wuyiِxߛʀz֡V1iX<9FAz 'F$<&dh5tHy?kW<+g+FA asRU!3V{3/4 ;Y'x !$zxFAo \7xȓrc:sRu_Oڵ3~ԶwY%7FA jѪb`}Ӥ_<(, N̜8xg!Dx?` 7FAΓ ]AJnDOMBÔٴMӅrAwy<wAQA 1= G-}& B͑r|Jef *@]|#*_lm0B)"Q3cz<2,Vl)MdXC$uMq7 } plgFA= ȭV0Ud\DFNS'2<-0FAX gr--RZLu`mɟ;ƟB^n'{މ{`FA= +KBQӤZC17z1O=^VNoJN[aG|+LˆFA ޢ82<U7Ŏ)iGiK~ AxTJDM܈FAyy ~CPlš|~e ʂ&MbsrުEDFA< fcX[d҂Ql)[/T|SWn8 !+s<獬FA^ @)$%I އ8N+GR5@NIW=g-5{HvFA4 0Hӫ+ z:e/j.+Md&n( Ay c'iFA LM߇TCq%.&IY>@Sk3Df?4K|6FAH 9S#z*$-o8Ar `;D4>i4?޳ri'AA $l|O]Y 2bNyv7!|7wwd|#W~nJ;/) -aPVd弔ɫS$? !vFQA:Ved=SAl—}=)U#H*{lM HRQ yTo 6>Μ5~Q)UI؝N_'Լ+@wSL3@ ?ɘ8)l B/&>>}0@r#&(^47*aø 3JjP.$Y]neae!L:xtH*P EFHhe=1_N6ɤCv8)77ndUQԏ!r(.d,;ca;NMy!ľ^5\s# Y{4@J)ϫjIi:!Uu85k~J(LO{:Bqq(W~ @_Vt KSZnFBq { adߚ/MIlԔ5.c,1ؿn k)zFB vԆz'?yASyr,L4Q3Cg3m<τ i'); FBްL o!ЧI/yt)Ql~uVG<٬!@xT)FB޺ 26BK/di\f_Vڨj{~?:MehYFBl P0-h6N lh<I^MrR _E4FBl ݺd,1-/#q̅R`{tous'Y}mVd|:LjBǚ 7_e!º?YhJxj?m6tٲ86)S/Rn7υRIeƠ K5.HkQuC\i`[5y`4p$ˆBl ] *_ ?Ծi֖^F]Ԑن- ]n\YeKb# {h0MP8~R";:> û.)$~S\1ẏ4EПev])G7*F: [Oa(U8zYc:.e;"@<%>]kFmƙ7 5PZ6K$s!qj9 ē\w2ѴzM~3!X:j.Sd14V!ˎ~VH3:HOYϸق<}7`fpm %Yoay*&E .9ǵrL|pg OKz~_!9$#<%Tu:a=:Dj,SwFB)1-#PQr479l!Ґ}9}f}ZlqܷO:+R.h]cYGY7&80x_ejH) _P#z]kD[rZr*wwcWZ:Z*ZY`e5۟i؇.G-Justin R. Erenkrantz W;   d"gq?y̞RcVQmӤ B fXF;b !EJ̋~9E lw][4Z*8!Zk/-Justin R. Erenkrantz V9(  d"g$kR SZ| M̩i8 )䃌KF;b !EJ̋~MlA"R lYߚ6(uq#\nV;ݛ 7BWr֩BS9OnK8 V@UCLdI eԡPY_vRO==ΙWYtOvG0a|f^[r:FX+XNI 6k3l8 E||[-#C[U]84|WCl3!,*<)@| rֆ)zʕ ٖ PF=f]A|K"&^U2 ;.1ö}TГV@o 珵#4%@}yޯNmqRSodHͥqn] ibBA7}z-L.R'Y#974oӼ)>?Ђ{Ǹ^o͞a}; +o["͈F7 d"gH@nbI e>Pj`_! S0jD^aϞ&Ǐg#uQ^-<Oz>x߫E6Z㭅)&,/L+}[ u ۆFcB@౰jZRa#PPyy4蹇 )Ꮍn:LqPq({ί`CX.cgW?I!(S򭖏MWc,tܫ(t©~E}R^*T {ɜ͉"8C Ian Holsman ]9d,K(&(ޤ; 񓖨1-I#)lbc! TZɌΝ5a* U7i@Wƒɡq9jm,zM?%,7Q3–+Lu1@@A>)3@==r6pF佶=$ǩIA'5 o+TT?#BtjOuwR\I,YG`n("7toELhO~S:l Cmyc(N7yG`I*B|̒S@ְ M澒f4&mI~iw[۳D͂st[^,S uw{KH&xקL/Aaron Bannert W;   !EJ̋~^F vg.x&*s [q e&T)X>8C҈F; d"gԞa xnMPT}T8T6d B^D7tKo U_/1 #Bm"_}7I<%0'͊.%#4VW;   !EJ̋~35=l̷%LFW;*   !EJ̋~tJ&?|cP儛۟W&v_C},m _Ү8v"Sn0F; d"gwFM=li l9`T$?`Mͬ?HUrAsnH1Hs9Xt> F< f5ވ]Ӕ[~{`׺=cgQZj 2$JY, !Aaron Bannert W;I   !EJ̋~|kI/|5NŤ- "ټ|!}F; d"g,j|bg4D^B_iIʑe*gM0XJqR+"~N I{>H9*iX͓mY_,7RQݾnYۏW*.jš?i63yqKZ%4qwHy.MA[ u)꺨 /("#UfU6g6圠2XH\APݗairIRCr.^^JD? w QԔ+($T{}ғ^@+],6tl4waVJ2a j7伺q8lJN#o+z+9o"E礮nCIqX{--zĶ~{`3 L"bݳSyl%Wfm=hױ8?yɇc91Iz|g"sw\KgK#wPTP__]Ҵ)yι]Z_z`]<2j/ӅYl,π$Brad Nicholes N9ȭ  ]):NzC>Q+}b+@i@),e,If )粹 9ȳًg$ܦU8ZF h6sP>wP)P$ŪЪihE՜؂"};SZc e6ޙV }e>,Tֿ51]EmdVuѴ<#M=2;$e3a':G[!Ց+jR!?l=. z7ʮ 8,o K@{< \(V=QXGr :5R_73e~82Z3WُȈF9ȳ ]):Nz,&<muDr<:oCXzpd.?td4dqעN֙7 =J*D(aI!6s ÖŢX\GH$ -Fo@i*o8">5*oGTP!3g۴E R!VW{f#Sander Striker Wv\3?9K5F<Ϛ2 d"g,\d w=Wz/ &Lei Z*j#Sander Striker W<   f5ވ]@Gp+'b| 'gb_ۿ$$G w/@F<Ϛ5 d"g]Z_'DF;ʚy$NhMXbK|1[eMK6 <_/ܿ$݂W9)ss߿eT42#cL .K˱tyթzx̡Qͩ8 -rg 7Ya\)[Ӹ%#uCGTd l 87'Ȥ_ os\۷`%8vZBibok%b91@K<[Wd^kYgP y8.cBi^)o%u ;\$Ey-!`P&=( `+v w/Zn# _bx'+ V7υ}٪kAꖰ#z?*EQ5˸^ӕ\)}p\<j;qFMך VR91Q T)lm 4<ک̾-{VT(P+$!~ \G (J6 LdoUi[HD}=Z^(z?)!,iF< f5ވ]=?@.K/久HRXzE+UQ9h+u'{=[D$kԒRR(m(lw6&;E8ejŠ _~Tb'{ZCѬk1=#p)>/Lǫ"ز*فP6H^{LҐd#(Yb3j$a@qc=/(:;N^qeM bdz(o oQ+R f8śCFsٞ-N=$a>]}fW=[\   ]AJ1P{ޅf}\ĥ,p>xTyKui߄^tg״Greg Stein W=[l   ]AJ){ hOH́Bnמ?03#Eb糓1Greg Stein W=[ԑ   ]AJeP)N=Gـ19x)L#t:VvԿtius,ZS_pMi,7!SvzM\m9tطJןpm1)j_>x   i9t~eGPG\CL^-5Xkޢg,z/YYJkjNz,>u5 >ADzb~BUrtv (_{RR̡xx\(0Nl@cx׿gr q- j" D&p.=U#(lLfɥF>u] Z_krcK  pM}ňF> 9"as -+e׹6V%FB)l?n#È?>uo!Ч(+؄D)Q8_çZ/w ?uv=<(,GI~]sI-ai?>kE,2*}Y#Z4nښ@Z)zZ_t\ˆF?}> ͽ_=6O   i9t~eGPGŝۡm[{hۓccj.LѬ| ]̡>u/ >A$J]wU4Oщb. s3 58m y ERaDXǟU?1*yފ/_vLXsч[Brwm^kr F>uT Z_kruQ'B6ԥ`wpeS:#,$#`~F> 9"asG&J*n~VR_W,3^zs1J2?>uo!ЧAN "m[e:oW+1~!v`fB.F>w ?uv(ǡ,5OYB~9cxŻmH?>bE,~d6PkJUA>(=/0BڋF& F?}? ͽu] )t5.HϴAndre Malo _=6!   i9t~eGPG,CE#*m(>Z<ϡ&|fr[zK=U>u5 >A(~rC-De42Eg"eꁵ@$eZwqVS׋5|dK3=ZVEP[4KXYN1FY&4C{iIsտzw}eWI^1[F>u] Z_krtN*~ᚁ1\ [MӚʩX 9"asXjiFcݠãc8=m,Q sP?>uo!Чd4$4 va^f$6HObHVr-tLʈF>w ?uv24#.U̡s }'JtE,)0ط.EG0hܱfd}iِpH.F?}? ͽegb5ؿA7_ u&:x2LX\D:Vf4ݓQUhUM9N=6\ i9t~eGPGJJ!K S KߎwQ 5Ϲ =6}g9V0 7J*2DK7.ڐ.htQ"!w6]jwu丬YkؔXKf54nd3t |HBC@ V_<2_ {B[Q맮su`u3ڜVéHg͘'Ud0>m'z_>][RYNz8{G<+给nob$V +5Byk}Ցs믋61E}Q }q;ۭ%x۳+AzjD+tU7#Z^ІK_.n?-kw(jƌrM~G% ͑cuu͸V}unx2Fؠ[@-V .OY\kuBP|'Gنp1a'Q)pm׵.22hx@ uL }S挊ҧ@݌3uo Uy9 Å(#<\PdN`( ?Ʀgnupg vulnerability :-( i9t~xX]aoJc)xwP X'pR,6S&N=6 i9t~eGPG*בQг" 'xu6=/ 4'Ky"@ 1R,6Đ/+$ɣ[+tjj1um&asOA#4ndAPei&xE6_hNzcm8L|($}~%_OI{ "= =F"g_PW0M,ҹ`'i@?DOw` N@|՞Ywm1Φ9Ld'HP=ضtwd )UL5j)tN1`^_i).?D+kF= ?uv*(=$jL!ô݆QFZ"s A_ QЈ?>u^o!Ч,wUpYgƃ |N3rm}g1VlH>u߲ >AM ݚTf>> TdXvjn:fQIRr;?J{ )Wyzr֐m"N ~*kyۓ&wv㉏9iQӰ)3w+OOW1%Nb TZ8"3ՈF>u[ 9"asXoy ]~Er23Hrn>F>u Z_krp>\̞I}-g\B,MS%F] ?>UE,Kvq1Csh||3z#6X}^F> i9t~=Rr~b}}AxApcȉ^!Erik Abele W=W   ?uv[*%8@ YgN{K4>X.?>ufo!Ч4qaawb?PNmd嵛|gΚ8xO>u߼ >A' /#DVSPyfcmn@aȯ+J|7xX'hb`1bpiWs&BlmkHQ C`*eDz8orkv9KBEmpd|. aE>u` 9"as buܵ~˭hr7[v$xeE{wu`NU"F>u Z_krSKn̉݅ 5Kfίs|k7ܟ?>`E,,%B i zX%$_d3o>Ppb]1teS F> i9t~ڡ5ࢇ% 쟼;K:t0J 8k|D/ =/Wu4P (kG$K~(gxaiCc=x@#UL.AvJ )qFͭ~bcKT&:-!u `Bfدv=eNn2:J]\VDuCon9Bk]%==_|MI.ƌv08" u›1ݱ^ƟqGsTo Qz8HL;nW7FM nRP}T !+;W>{"z>[h'Ƈ9K YoR}%n>m_zUgVLQs[_1?&@ih=`ȵnd«6 Mk #-Ծi^m/uƉ[ͯZKC>jUOw(>pS>NACa8rп`L I#jLP=IɾI:+톄Hg70/UG8w'36#%zxPH/h=_/k_ͫq=& p:*oUO1S?uNNW3#dyI`~9)& %Pv"_"t U7t%2ANſY1-0@T eXI:/1;:P1B ߹1_T^V ´(Astrid Keáler (Kess) Y >p 9"as]:,@VTDȽ 3/+˲oIv0/4pF>zR i9t~J3h 8n'p1%dZg*f(6 |e9>u >A.Uȥtk 3%4cj`)NDT/G_Z+KD28JMB 8r3*jp,^JQZOa2&}?NZm==U?>uo!Ч*}QP+Y(OuZf35II`AhF>w ?uv6A~"42'R_)Jj ; X'14)-F>u Z_krbnjMPռ3zt~$'dd[5jd`݃F>#S E,ziF?ɻx_5g*;"A]1)Astrid Keáler (Kess) \>x|  9"as)0bRyfV15 T(\&>y(F>zR i9t~=uFzyJ[զlCByx1ddrC{>u >AL^# iHEl`#zxnGYnOpdjU~:D S4OL3 L">]$VO}}vU|dHM)UƷ^ &1+L3h?>uo!Ч0i#yrG(! Fi׆tTB,ë~5׽܈F>w ?uv˂L% ?*?U43|EF>u Z_kr$hqKDTq^!JE9Ar3p쀕/ F># E,B>LP~)q>)=Yo/~д'Astrid Keáler (Kess) \>x  9"asj6 ΙEv릷vLd4bv"ֱ34eCF>zR i9t~hzLy"Okuk_P%\ך>u >Ac:Ӡse" ټ5)0>kĕib[S$]/Sy7NOwP2:RcTY*M_eRE|3“Ss,Fܜ%a'+?>u o!ЧqDV}3wж#'?*BCͯޑmH _Q-E>w ?uvx-\>/S']L x.G}R;B&xu']F>u Z_krNi#o E,uȜ3^ 1+%4ZLFbYMF;Astrid Keáler (Kess) \>y  9"asVЅ[R6/G VИI_ lFekmF>zR i9t~YhZ$dy>t;ڬ$.>u >A̡>!8vq}Ny~)h$'?'sǚ ۾Grx 4{HejB)2m*\4HK7 Y E"]@ϭfXy&8jSY?>u"o!Ч = 1|ALlz ͬ>+SZD@F>w ?uvm,7AN{ R.};m:h.Yb [F>u Z_krhᎧ~8D$CL2!6*iTըtkyF># E,d6e!h4PLop(9&&}!(Astrid Kessler (Kess) _ > ? 9"asFEYKAgAf ځQkص%e['q`-nIV >ps)^H%_G#a }Y~?I40<I3؉ճlhgouSմfYS1Wr#nw*.nI[}'3\ xUlmt5:6a ?' @Hmeʣ lmW{^p ]E6ڕBު_Nŧc'n1J7k'7N߮=2VyTa8cZ7$qb!Rs{| Җw7^JwUhj{fìkoõPF RI\(˱#GONNG*{R|32=t1*t ]PBY|eiUk\KmEN{ /#u!$ee5v֨ߎ8T:&rFոT}H]͡01Ocd[ӓ"DF#MXv=n0ӽv4VSb"݌%FG@8:!&To[ ;|7vKe`L F>ps 9"as!27H-NK+:F"_#wq!>_fs7 @[n;Rl4g6vT'AkOzYps] C5ȧ|6Ue4@cD;& \RF 9w7 0G׎x3upד-+>yf"bl57r[YGl:D=(q[VJ ٜ]ٳ5P3ʙc; O Hь|ҥ jY"R{ե-A@;^"\xHtQ51/*љ\ >_ != PdQ,t5mG$nNAuB>EJwDJoe Schaefer \>`3  != PdIHmb⤽$Σ=8c4ٍNNx+yb >_t5W~jǜ<ƞAz4Sˀ|]ҷ` Q'MeK^ٱ#45[e+ߖ|:r2l֧G]R|yixhapb +#?Jo밃 Ӌ9}\d-g6i)K qYE,g+m2wg_EeYڒ)\pe~<<̶zIr>k/W.T~x GuF>_ != PdZR^V<89u7D(58e}>aÂ+=؏оUwi}V4}w9l T\ 2 z@]4k-ˉ SI] p4cBf!Tk W ^=玲ϔ'V7mY>t` J]qפ=S9? :Rg4s~pR6FB87# M`k ESf1w 'h+C_t8 l)-)99o9hQf䧙wRolrW5,F?SL B  != Pd7Fۨ0g d~1 issrA];;PId@Cޕ7ugaO4RVR@{Sl` i"P t2ρUh!koy?4W6Jm1IHKIVb+[\Hq[ tE ?*N'>T Lf̑ 3wLA< ˬ f_1?Fu,*4BU|U 4y`ت*s %oɇds{JBd nކqi>.|ON88ހ^L`^X%ESRr qy\LE愱Ao $78S2)"g{|fUfQ7 }\yt+[B_vbOkSO:EϮ.Gregory Trubetskoy (Grisha) ];PI f   yF#\taʗ!N=H4o&9O{uP4rrw.Ɋ ;PnbN%abY&L{G؏ kUNyb(W{3 U%թ>wHoώ9^QFT+ӕ'>4DŽD,@_JBZä|wL÷9`an #'U;3.1=cn~*(x.yCDRCzrȳMܛ>nn܂k|dkw&>4L2A=qZ ]Bcv=.{U,?~΋z$XdrmkY3KM8U/bk)]RtR;wͳ#څ'+h$5p+S”QFENX 5s{;2R 6r\'T5͵\ǽ9rNj\s%[: T-GsI)O7 $ l7(Qٺ?BTIp24fsV%ρ )[;] =k8NO7+qγU7vǑ.g݇b L ;Pn f yl !TpS5 OҬ<5ڳo#ds*:)!ՙLt H{?.td|5K ުE{{}Wۙ"M5wZݻ |5Q#ߝX>`N#|0ۮpp‘:M<lJ9^靉fl6eQT;ܟ#ո̓7LDȀܲ;+m2}tBQG՟`U2 ˟Y[9bϓ;/+U%ӱ?m@RO9NStas Bekman K :)  ̲FlНt?ʇ\3y / 'RA}:џL SG#x)@:ƥBDY$,'O[KtMd3ad9=6f8Ε􀭠u${4: EYA W&. B3oppJ}$MЏ؊nF;R Ufdx\6nΧ=Pz on^#6eEb; -&WF;W7 2åI@0Ged0a̷V:l*is!=iaw :)BWr֩BS9OnK8 V@UCLdI eԡPY_vRO==ΙWYtOvG0a|f^[r:FX+XNI 6k3l8 E||[-#C[U]84|WCl3!,*<)@| rֆ)zʕ ٖ PF=f]A|K"&^U2 ;;M;L0ᢁXZ_Ԧp?)@Ed}})Rw/l6wTe~36Q*k{"CnT!iY~CK9Ny¿xG/g7>jXJQ)]S1ӭK1y~\DNU"O}v5mPEJ vf>ZjKdo9Bĥ 5*#nܪG!r >wz凄_Vu?:)̲FlYX X w+Y/rUti|ˬF+R*+KXbygEdI)Fb3]!P4ڢTsb۫5'AM E ?m?L^APaul Querna ^@b  uBr5a8U?"TPjPRT8[`VFA asR oz( tDVCe I=`QPj }4u0S>VhWexq Ea6TFAX Ց皘<I=_xcOd?E{aZAkPF^FAK ݺd,1-/{8\V+b[-f1>@PkAӈFAK P0-h>nt3F5IEj_0O'0`&Dsf/FA/ jѪb:˃ 'V=]ipE+UY3NFAx ~CPj>xIqh@6 ,lqW >%q`XKD]EAM= t\W |VW*ZEv/0$D'77: >3(U/;Y+(|1vI@G*'R!GcKB~F{L2&S׈An 1= -'NK tG"U.:݅:x, :,Qӷs@V*h. 2rOl5sG~](ϙʀ6ʤ\n+v{u TeFAȞ LM߇r=X!gMh3QZnrYÜ+m_VZgx0FAΩF 9S#z*RbuFdТ_s+j)=)71QVK"Paul Querna `! @g uBrXƤK_㏒7Kg6_pk8ߓFAz 'F$Z;Iz^@   uBr;]^10n^f׏r Sf{NLAMB FWXHZT aDvh]KJ6Q`az{Y` -Qe6Թ* My *Al 1= .C{).@Ƞ. 5.ea1,A[XcN:y7qk?6nzt jZ=J XؒD*؞BLX{4D5 _ZRP}򱜲v`MFAȡ LM߇!D(ӿW2 [FKp2;*Ѷ"FAΩJ 9S#z* @ Դwb# ['O云$!֟ޫ Paul Querna ^@bt  uBrXل{5+Q8:gb:*-BMX2<^)xFA asR+zlVAŰ^sX{6n ZShj(&Z(EFA; fc&P9b踁#!#rŰhzzsՂǃ P{FA 0yr)xP>mdTn pwE7x:hn@Jo}xFA [OShۑ>ÓĎ Ň-1tҧ%~- Fdf\j"7͞@ĸ圷G-z<*ce } |AWw1Cr3#ޓɹj,JwЈFAȢ LM߇:M&MZ}v{؈pxIij+{N暑FAΩJ 9S#z*aD~B uӽM.D._ݷ$Ĵ Paul Querna ^@b  uBrE:eQ83 3x!Ρz O6eN1MN5QW[ FA asR]+ڶ1j&j6B4dp&#v9f~ї]FA; fcuuIҶKH9+q,]rl5F!Y|AFA 0yr)Зrn8 $ Om JJ($2 sFA [O _L^]zV<^(`+p le)YvKFAX Ց皲.7ei #[j"^!`+&H[mY(ZzFAK ݺd,1-/&7G8ϓCP>]E xxygtngFAK P0-h.g^ OJML\HqOט5ۓ.;BMFA/ jѪbR@+tk\j}lr ɌFAx ~CPD݂)l\S‰؃"|~ƒ%∜AMB i\ypau1-zk$xz+̄tx46ꄇM _S`%0:S(OsxG!An 1= ͹q%9:Kz(rZ< SSyB<⮣Fݓ!C/E eVNëQHRѪ@a*zkFAȢ LM߇锻xdq&&KQx-[?{H{Sqԭ4:FAΩJ 9S#z*UC1Ǿpk>u >B#6C7%\( @ C,&ՐĽ>!6"i `\XOڸ7J9 `EO UHh&4ScȆ@Jr{,2@boMv210z${?#ʼ:f?hU=27m9rA)=P&S,j;-KEڠE੥Q2~sBjOL2'mOdpa 8fR/m$jB*JZ6T jB:eW»ȅb9T^L:K>ZJ8frVom]O=6ЀeBȆ&f <[UNCN^KWb`C.0 0 8yꖺT~ _ظH#Z:'"Gzg^M!AnWM`,]>ZQ̢xJJ[+]2BMh-H2 FAI @  uBrKڟ+7@ m+Ge=T_ޙB_g F!uL-Ԑ.=włvO$i]IG a Y=:vaYy(4b%n E={eQTح>?Gf&f7.bq=Owь쉩$90jiA4SZDLe.k*" z@B]+#U|";NЙkP3]E| 1·8c X H Z<c3 w==X+MϞ؉ %]NQnKJU )#@9*]1ئl;l/d +~jJʺz"$h߽5*:h*u2 yI qj1O1Ŗϥ1G N'C#Colm MacCarthaigh ^C   uʢ7PӲGfj@U{"\@߁Prі< zYFC Q ȃC0Ȣ@|F['Sʊ[$c}VJTFC \7xȓ~ @@#g@Q^ǒLx~?FC$ ML?~h6Ud XyZO^B_  uʢ7PCapIJf@q dm 'mz<FB i9t~!\̢;p}zU{k(kQxS #FBL A WIkfG7M>B1ۡP;6awFBߒ fc6MME6Tbxիa ;$1(D;(v辈FBw vԆ/'?1pVKbE9EYyyP*R?NUFB 4BF8:!;.|>Cp?D04v%$FB aj.3>Nl:7 @,<8Kۏ]5:z,$YވFBe @)$a6(ۣ&"R>{'Q㾫u0˸^وFC S ȃC0Ȣ\$s|liiܶб ߙĘGѥuՈFB޵) )C$?<6iI \)G-m LԈ2JʈFB6 Z_kr} ]b<]HXUczr 뗽B|"ψBެ 1= *1!TBx"IH~7#GEQKMْ8Ph`]]HiXj#}3j"0#V>,0=n.rmf?]r}N:9q饴YYSz v 3CS&By 7_e!ʪެ >Gu~3w>t!-DZ=e$߱a+AVo^6AGrd.Y>pQl+QwvcMFZFBm2 ݺd,1-/zg+8/[$kr=ɑ-[:+% /VшFB ɵt߄tL(#NSwS38ټT҈FB 7ZLտV}RӠ-Jb$ m -GƙK.tFB [OSYhHQ } h[U> (׊"ӈFBb m1\1 !X(8`(PД4/Lp=FBZ .I~ҁF ݊6r)=IB_Ky$-iաh-IeFBN m :@X7q}lw6̆kohu&YˠiMQ ޙhpFB 2NA"+oG#eNΒrZޕjbu LR!eFB Ry/x ٔĂal~Zs/%pn |ƊTFB ks*b?r<4+|}d׺:isJLճ1 grFB晨 hv)g!>= kYG @2J$QIN"õFBa nuRCpK_Fd˥ *gr/,8;;ZIĦQ|FC \7xȓ 0`-̑>uBd};QN۬*"BVu?ۍkFC$ ML?~Iƈo)FzcR$H;%>fX׈FC$$ kdj>EVl,Cl$]ǎ0DkzFC%W =rEžʺHb=O$]*TAbbSE5h/Colm MacCarthaigh ^C U  uʢ7PvMYMKSk%ϜEHş|mn7uFC \7xȓ0r4QՃ1)C*mF\esFC$ ML?~J4 v5c@OpQrp>շ'xFC$! kdjXke x`V'UGwQԈFC%V =rEžX/ iu$zҐ$pt~S21ׂ}2 qPkhI B}=%!x`p`ïCi 'nrC B;JǝWTHMOd"A 6K4aa3 몏\hI>#5d)'aߙJϹ η6V9/4WeyoF^>ZmUXNmMCֱ/O^Ȉ ( %K:B_f$gp7G@sF&98KO:0fFCHԨ2i2Yvj^@3J .g nn^6@|b4Dޢ}W~-[j]qL[vq8;{IU=%ElXsgKԥTs=nH3_Y>~=Hv] t)/sipR!Q3hCŊ |J[=\ N '^%S`!aD.<}K-1'9DF޻!DqY)ڥ1dDx_(juňI B} uʢ7PM; 羟b> E*2LD۹3 dZ| "C? e[z_Aϟ-4hy4429gyc%2X`WY(HqE:f+r{YnY tfW}tA}JC9 -2Itv߿=l𐯲aA=P3kp *m:-_Gv*];c n+-̝׈>?5lsdgޏٙ>2AgizmUn $,P.e )+eqT T)@7C' ޞ!rajYr֬'MA_cU_ 9ŴW0W5.mu(KUȹsV2jRF1X):+Ik;LФ FʒV"Ruediger Pluem ^J    L(1=:Xy1xhy5KOƖIUve+z-[TFFD6 8M5B:Jjm\ )/}E?my?9ދD8` 7_e!7}՜$Y+3T@.?ޔ3$AVۣsq7/S\3sfp~B8gU9uj3 5xz+(xM$-+1Ks*p* ۽FD8R 26BK O Lwy rB!XWYߵ4R$jir>FDq 53Pa'uvl !*Gu( ];hXj[ƹE>mFD 3Nu1=Ij5rjرEKRLiG). uFD 7@3.cӢ^(*䭇Œ͛Q~uݷ{uR(r v '+J6(*{eњ RTXFF=V .FtJ#]B Y8F {"V PH2FF> T" ,t\ݶrQm_9s~VCdKK4eefDi@=FFF> >*o_)$*pMpw-JST v+lFO#4ʉٖFF=W `L_[4 *Cuι2>eC o'va UFF= rCXń$IgD]7TWpӘ5ed$s Tn?XFF>  ~lvڱ,B^' Ex,|72:}" $cFF= Ԫbr0ޫI -]V >K*7}ߪIˆFF8b s݌S55K&2Q|jjKD}^ 3?n8rFFFF Z_kr rY2xHj xNO^t6~ \ &_p~Јq1FHa*Henning Schmiedehausen 2NA"+{lƷD*MAѾrc8o3ЈFF@ m :@X7aMr:99 feV 7 îOCFUhMUiECFFLD= !#kr!g<I'BiQչ<'v-FFL| E &b5aBTQ8FT!to=Q ݊X򢩇FFR1 ވjZ-e1q'5ghv+a|"i:_FFRn 2;_l3(\ڰɆQql""KLFFRn ˮ9lL{YڞnI\VXAPGn8+0oIIϔ;iFSʤ Sander Temme "Sander Temme Sander Temme @)$z Uf%Dܜ@bX5W]os 06FF^c Ѫ`<r'\$W;X|Ggѵނ)+Uoa^5FFJ\ 9QL#@F~(t_ uZXF%[\`geFF 3g3^RGl;NM6Y)9 rHù1#ДYFG, )C$?<1+UqN%ؐ\7%U^n:p7\#yN&Oޑk+G&$https://www.cacert.org/cps.php#p5.2 XOMī9;xSktuTRzw*4 [aQ"IFG 8Kn,[g*6 MeYX|p[>0BK FG ࡛`|oTow0u 4uB0C‚z(`w!GMi 1= Wa4`U [x?VZy"]LgkP* 2b6JliD0ـ!:YgEOޱ4Q +STJvi8(=fjTgc q;+TC#`FGi uBr g؁"QÏUvDqEk|A.wӡ1FGN o!ЧFçXsskzk)լ8FG / 1QIm[`Ⅲ  g*BEQq0aHyJim Jagielski Jim Jagielski Jim Jagielski "Jim Jagielski :`uIz6w ?&(u@]Nf]fFH> hLvWs2ވFTn:U爸`_pP/q+zGeFH ހV)@rE W'RYdDot B!@.܋.ބH eP\ftd˄NƑSFgJgH74o2;YRܓic;p-DazZMQ m^f hJӒˎed/^ݼIML0m7FQpm'I5Tk*{|n%Oi~<ʼhz~Pys:sPJJJCFHM a"`{ uG.0I"Pj@[ATm|2<-(h4r2H d+Bernd Fondermann (ASF) Sm KTdIu+~FQ yc=;yX}LxByy`?nmrCPv)xJt4em z4Kw3D'zh78<>wkC SLc ":%~k2mO;4V`BNLD%34V\mZPpR ⡃tE^q-/,ة&IR:=TܖH3 xK7:D;-f8B-v wKyZ_BNSǯaG(#h1\Փ2|٫v .Vx;LN mG_n_H$1B ӚLxF]:: bf/ Ɍ@ZIQ# GqFC? L(1=3!%FK_1dGB`^ݢ jAc64B`ڹ J v3zK2[($F}Q3q &s}lW. lFhVLIqPAjE֓Lf.C;7} (ήu{s [޻-%خpTQC}X7ǸdE } }NVڿ5XI$ƽ}G?f"_' ,>+)K &$ 9{G]d20&hUs$qϱCB .[_ ?GJI_>(第cf0Nj hUk+x]c!ʲg]72n^Ɠ@QG|p|pyF?n>f97 nEƒJQL@|:F19do2xaI!Kw@v?=[;:gD^S ۃ17=S3d N>6_4wRErˁP'\~φY/ԉOXrr?>Zk;qm/<9))_yL2oG[O+ySv_Eٱ>]CS]B@EV}!3tw+Ka+ 䚳3J|@ girn~e90I&0<9&p$}綄Y.iqк!;5?SI J!= L(1=1Yo3ql4dV+AAtO#u(v NO]>`·74,pH2ɧ.,qtMA4*T>;*::7ImC{ _K>ȺVAO.'YѽF%IEW I eIM\+CpąCxh̓o9¤5T{25e{6˦3+"^F_ht3+qo~듴& > C .wmEȍ{u 5VX42l #ܷ #0+Q+l.3FA7coU)Q:. 5PtraщL*Ul9iHỴR(ׄrq ?Nx7h=Lg>;&Xo;R:9Maxime Petazzoni (Bulix.org) g' AS B { 7\=j*[; ǡ # jr%Eif嶀K5L Bcv uBrH `"|Jf%6z.]*ܲFB \7xȓ>M 2](cɿyIx@V\YѧL BĊ ItHS x$+e+":)Ije!, D;rcL BVD m :@X7e36mSwٱճUF? <(~oL CH =OSdv|=}6z*}_1te oȓL CG KsVA9\=da(Ϳ n &>|yWuÏdB= V7nFCL [A1HmHSISpjRt>ΥxqX,Maxime Petazzoni (Bulix.org) d$ AW B { $r"2wKZ嗃P*guvZx%Ԅj˅۫SFAn  5PdaV1Zև:P' 8gm:^K-HL A$E/ 05OR3orYXIRO=w;zK62\ߧa4vF^A  { <p' 4++x {S'3T" L A _Mն4a=~[q-GT֜(l,D|XRJiNFBB) N U/ndKJڿ4ϸ~r-D#gL B$wj S0KEW%-c,A `IRİPB EUFB [Odr"04н%>5Q >!p*>[NƞL Bcv uBrUmYrFc} @qy֯օ'o"m~Qk_FB \7xȓT U#[pmjh^)]t<;ވL BĊ ItHp_R4j.CrcATw$ϱe40]u L BVD m :@X7> }X%^Mm:~`74<[)bl몰RL CH =OSdK}"& 5ŚRŠRAˤ([NNEr8=pL CG KsVAPUį72?;I#r lP;ɌJttFCL [cHޢ&u NXn|TjëV0l?Maxime Petazzoni (Nova-mag.org) d0$A`0 This email no longer exists { 5g-^Q[׺a {7<8m}Q gp  L A _Mն4P)~/ nAۅS#i= g0m]큲7^?w  { 3HV2L{;@8(\(惷Ɗ4ĦpFAn  5Pda!u#?TbvFTGgj98xWL A$E/ 05ORnX]vUGǾBc#ܱ0Q:}0ˆd$ AW B { EŤ&}GN/m\è@gz9=G2Maxime Petazzoni (Nova-mag.org) d0$A`? This email no longer exists { $ M'uìl;%{\ua(B2jF? u9iDZ^DO_`习!22tCn CT͈Y>`  { \U>nR詹Tfj'..gЍy]܂F@Pi 0"fgSfo ˢ Zx=GH+{p?F? [T{<~pt"k C]i*qog>F?}a _Hi `֓HG4Mse\AQWi~0\r0ԕÈF? p=v-cM0sz d$B B  { ՔrY`Kz v(W<6+D5*9eD],7eL CH =OSdS|>(;pkk$؆Lma]lK\HFI L CG KsVAi Ƹ럺,Z/boK.M:"+[3k1+b/++ >a:h]{yr-yM~'1]KgC \\gE=TK+\ yԿDFoL=&]k@@Zl}`"QsxzZK.dz^]O6anl/~6gbkPw { DCNzB&)k9i~\2#QxG%jʵp̃[ 꾪˻F\գIF>a { O) K >lo'ue␴!9 8OJi#ݤl:юhTe@\)4go+t*2r3^چD!~p瀆bB ͋pJ6Q/b DBdkn)D%)_{zeD\S@g.R Xa-ټ8k'gp7vRh'oR+6VtiK+sm\g=mWړ %Ne~Iw>tUR@,#qSĐ#q 7zw=eIׯAֹzi O@J8;D[{Nick Kew W9   m :@X7irYj :Nf͖^D>AMv|/mxoS?€ 7_e!>ޛˀd(_fȗꌼ|+xP2qt";9@pxmJ*],IX2fA(ȴ&wkÑG78N=_y #4F?iu 2å>Wܞ/p񉭚1:Ks5OP*J*Vrmhώ6#F?a \7xȓ_%Os9oz~2;e*C&"798U[,L{NF?DZ' t9Gv0w֗`'(EuW퉜'M(*8!3F?Ç <&+P2; HpC(5%3/&%`{/]F?h =ceIf-?%O7sܜЈj*qwξ*F?d  у OO&oNxpSq;{udnr/'w&9`EGgFd޶Bx;s 93G/Ÿ w[0&ͧҬ .Z٪O﬏rZ{F?H LM+GK}n)(s+,=[i^$DPqE`2F? IƝx% ƴ3̴sk9VP̘qE]D ԈF?ϰ +KB۔`ύuH7˂07U~4AD(WdVF?M $RLeLexXEܐ2 n')ȷwpF?P !0 ֗Y1i$DZ KAϡͥ5rk)y\Gف7EYײF? hZwVU!#24_7L/Q;£F? .I~d*r n -74Vh*S0{'$Yݓv"W3F?ˋ  ZEܡVڮQWpW׻@s$j0um\תF?_ d٭=\]{ UHtlN1;}Z< =\?ot >ApAq 14r/d-6 9fۓ!N`}u(N =*֗& \_6-!B7Pchl j,(@%{kZɷ} !~f`siF@U UEV|γ T}rw91CζW f&F@0G .ЀiFc">p]Oo' ,p--q`,Ԅ'0aF@ ?uvncc%F=4CFSez6, 5Q|S.?@_SZ̲Fl}3z!px! ]'H\FA [O:R3Rf&ޤk2]F?Y LFbn_PE:f0}1p`/J)g1;f`FBӠ i9t~ /ʸ]ӎal L߽aK8u(\5UFBE A WI||cZګtu:)F8*j<K 3ǻMLq.mFB߆ c:W| AB{ż3f9xR\덯gW3oxKJFzFBߒW fcfjJȍQh8M[nV¨:0*3CFB vԆD|V9qۄCuIIRqbCm*֕,(f80FB㥆 4BhL2-vw؂6BD0 RhBN>ˆFBb aj.3>N'Ә-6oѯ0un?`:ZQZYFBަW )C$?||"3pFBm 66j7[NIZ;߷"6ၦwwCMS?RBkN}yD 6FBԎ 9"asv9dۖ#_[C!3x%`ZQ) FBl^ P0-h"jc0z~C#fy}O{/r KAFBl` ݺd,1-/W^ b _mDp ipFB ɵt uIͯ: |0}!*70QTFB 7ZTK=XcǩxRDXfud΅sPnoƬā܈FBa m1\1 'h5v߄:/"|eU9yw"FBU3 .I~XYM1a2@,UyQqV{y0ǙʝAb$MFBd uʢ7P݊2~) Y:~LtMg^X-d0kFBe ˂`ߓWM홧xJ\>΃94" +1f00FB 2NA"+Qq86eR+=FlcbcÂ+}z_uDٞFBx Ry/x§Z|g&VNFȆz &<ݒ-N,+ySvIFBr ks*b?rY`K;u%Bi駚R_c lt3FB` nuRCwwlZ{sSd}jKJ]"LjBެ5 1= F`^P ^4(o0k nƯ}Z4ߖ4Av={-Wo/B# @.P\ ;节ews_OoS_&Gjx6^92r/qq.VABl\ BH8ߔv}ew;FEL~>{G(%* vKGU^O]ȉB: \23e8I܈-㜒MYc [a.w c\ &>pb]>;xxplOaRfo !'-p['-~ o#KǚlI`sa;?(ֈІ҈FB8 ~6LI0ZQu;ܖݿ] uQ~*Bɲvq]R!EB5 Z_krJ ڝVΥ Th!k3$e xdu^?+ʬJ%QA09-1{OtꋗR0v Z}5)S<1n&p jDE/ȭzUhdT\y|rul+"`46uśs,zT)R>^~N {F#Sg<*쀣%Q4SN|xve oq,8{3nx%ޚ F Qž(T;φ3g([QmsZ{bN'sNpfdWHr VքS+ۀ9JhyJmdϙ6kζЂ:}04{#K4aԓm^<םz/NEb ?# [Y 5'N8H;:Sander Temme FJ @)$%) >.?L/vO?:j֨"K= 8s&'"tzhz =סp] {y )'=J,EwTRP j!]8AcRO)9ҽp|l.ԯ4,]r Itqah8'AG_`-_> hznBae&y ::?)8 '3C)M 3$*(]4`Ru8AqTgjgάP71@8y9$]uA<[T[eTRke 0?s q  K%F/ 1|mל֬4/IN+biA`F?eDB@strIs< ِ12O \H< ~FAeXCB呒Ϊ+#>gC>v ޮё7#a7'XWz7w ֎m^w-2ΣO<vT>ǹ,2p"h:Y)f5b%g3y,J؎,*K5 NAK}'$NTFGƙgӏmYI#MY=$nFhޟ9mHs-g5=f1$]@ܵ[XZq)r,|@KēY2c'0*L.? P] CVPk]:27 d6<VT&p>9&n ɵ\M}mR.<%'KyNF%Ku0 K(uBQ7oPlɻ.`"fGjn {[!ƅwMr_Ht%ov79:6f&Lt͏_=?Z{tߑV-j4|Y!'GYFszw4㺾ვQ*||95YQ3\-}HmO~B(p\B[RX )B#!5,%\gGcZۼwB (薔sƳ;"g&كt81_yځJS tQy4}uiO1IQܲ,: ˜` =ְ̛~1Q4Al) QHd"f/ҀT[dl z^?RHLk`"jĖߙ-c;5]=.Y7W#/ی?Ha"6K[}JY `׈C("FÌXGA7NLJ1s-A_25lk&SGm#sy,? QyEfXե}߶97mpmYj oRoΩXdvqe;[%5Q(?ȗ=Z lKS?N%w`ŕ>c V[)sL}jɽΐp>.UI'Dm"-!yv- W|- @22JPge:%5>lx/} KJ.u`Oeήo6KiYZ.c `oVJp9w$)לqpS-n"+ z̲NBcP'b)a@t[Uqzj@$)7_kikq=f@Tc3=_r0ĵ=r^i w\s#3qg]K;mQom OW8~[r*֑Aέ4ٔm#v u0]=i&P"A= "aAwtM}ȴӷEE9zÕQ Mlτ/@ K_eL S=]{ZC?pCf볽J{(/2{yJdk>_ }?~hzM})S]H`b#>OumոSmUw1%6tHҗDAaHqe`UӤ,NV w$<}XZ)7G%p`iq-:KoQm t sm)T6P1 2μ-!T,|=N1SN];aej\RA,ZӔ U./#hQ/_Z{|nѨC BďF5S=/d2e0FG~ f  z2 wdMke2"˱Os[I+G{TLY ov.ζ|\\ O 5t9ߗ M=841"<؄ɵv]q󶒵b>Z`yx>I]TbUߔSkJ}mE ˉ Lv 6$C_4XmR_SmûA)9VshCgJNj3jb@S(-=C8fXU$A'4_mǪЁp-6ͺ"%Oq/ȯlK耿hйj7m_](|6uTLeH_Pl,d.^s Q2 2Xs 9cMrb}wC0+0g gpuF+},PJ>vK*v#3:vx1n0̺s~4 O1G+󗓬#mwŸXsIF-d/6: }g[+8CZ3VѠ,< D\[;5{NC$%A8ݑ&_JX8&mlHryD^2t,Ѯ7Ji0$%slQrd` ,%FeHϸvRsJ.KO}}~FL. Hwf"u}o |Qc mR$Bn4t.bU\TM*u5LR.Jean-Sebastien Delfino }->y_֔y[|ʐ ԑGRA@_P/w  LҴCJim Jagielski Jim Jagielski Jim Jagielski "Jim Jagielski :`uY[bB383&@={tԓ9fTYW] LҴ xmYTT>EG{Չ1HB&RuXO JJϖ}"pp#Q,<+ rQ1#M!`93;g\g$a<%,>/̢g#!f &;>dܝT-qS[(HzdZGouJtR0hvTTxp iOt.-!Oʊ O-e'/8"/d<-PJ'4mDi6iՓrcI% 5P,AvGE)4$5Μ6tAlC}gd9nmၬI,Ao3 @J?NRELpK+hU;]Nz8tC**}:ݤL>06o <ܝrR k%Ӫg5\{!OsΎxWIN'>swj @= 2 }o ML ?Rz3y:djImKЭd׭\dFZX0KSc\ie-~mmۿgEkzr~a|JE74XBuDKr G(GS~|owUc'䓚Ej5?%t,\IR&൜s&ۂu25x)L/ףQ)z^K}p,'_.ja)|H#i\֥s\l *ݪfo?2Zg[?/s b#9*oE!]j fC6JӡnEU)B^M P(#AG訕W o0"O'.R<Lͩ5Thomas Dudziak (CODE SIGNING KEY) MMʨ,{Y!(FH b/=ɴ{O o ip@e,9ɁHukp US:"6MZ[v6x~#ۅ] O^{R62V-U15z}Y.hyTdD(.J$l|&X 4Z3-0"Bڃhg:Yky歬Rî*@䧽1z+xF6e~a&э2$KmPBB6GE_ny_X,C'*MD/Y,`.[{clu! Y[Fui+Ik/6yH? b ZS>]uϜ|p7Pw5Q qbPS]? N7R> ݚat1dzpGc H_mh:v2xdSŢ_Ri8BY(ZDLҸ=Antoine Levy-Lambert (CODE SIGNING KEY) ^5~ܡ+D&:oߐw yV{YU&Xh2wbщ~bVl.U'exp~{\,B1J[cDX:2Up)K` h5Sd^frfEVY^%fm$%y }2,h{5 am=ք|u)3p`ǿqRjK ^qkt%^=*UBxàc~o̐gwܳS0 S|_d(Xoǀ6huI ݆0Sؠ~ y3 #* cGW1hηvtY>#O|%A{aWO2OE7 ?O~9.W(qb7$և0%ћv-%.kH/,;avK9vB@Sw]GLѫ@Joseph Edward Bergmark (CODE SIGNING KEY) ّ|@7i_AQBNMIy?_P;Pc~x;6Ͻ,ߏЯ"G@s+t΋_~I>f%93"]JCd4RDXJw_du2t 8k6^FEwtH'-5o|/ΒL{;H+1@ Pf~D-(}LҴ)5Jim Jagielski (Release Signing Key) Jim Jagielski Jim Jagielski 4vyc$KM?h.,ƽh 8Xx8ѕBAiq];O]Ki%4>E\ Oa/u1u noCYHu'Md2Ҫoo I`UKOHS5/%符iGfbSff-" WUF&y%_`#Ͼpv54,JDc.kh^/e2XlX޿ExZe*jUAG HFQ3]1I쥭q=1k|ɯ4,!|~$hTOˉNh c=ˮk C[f}nfUJũz 6)<*ND SNn'QEU-&H&^+@`9k43 >0s8ǯo}Ev!Y߂,==;6Af 3YD GI7pmrLV8@Gs|P*_ ]k-90XN_Z V5*vgem [2-{L]+1N'Vf~|CTLA*:ٙ*IqV':lφn6>Cԛ44dj;*zZ6 /+ZF&Y"Y!Z!PPS]J+_KESl4pZ^`OΪxBu<_=V4v6io%T¤y3yySo=s^{ IJd] ĴZ-G`=HWDg6;x%'{Y yeޯ(T=N| %fg|[&|x\?  v4h./\^-׳3p~MF͛` s0=xCM~ϭU_tjp2T#4;_9,D<׽o~ o֢}t3TpQp6FtLGD(ln Jh_INR MAEYrޔrIo $Rt+{ 3 fG7s3S ,\ٲZU**x.ڔXBѠ*8:YFx}TߗRKBV[/XDzӔ"՞MoxQLwŽ"g'ʡ1SRY'E%DhoWnvsew_Ҥ52Մ dPxN\\͏c3v҉C-vⵑ{M0 @:`v)$h4b[D=ˆ4@Y3|i&O-T5w(YIUW]!nzJW)W@R{=[…L&=P7\h.D pjRhK3Uc!3]3^_1S7GPh)"c/ MW&.'xCf% !! V&2ly$ .:4B 0 X}Vqcksx=ړ'py TN~ Q*#,hS}('pd<61n+j IF's~8ZdYb5 dM/1c̻AT1b9~b8'Aɴ0XÒuJݾZ-W[ƴFp+Jwb}A3b(dB~_=ъtEx46B`?Gڃ疫Sg3N?_x3$,ߠ7MH8ՌQxS?Q2W[TH09@p w5+b/v kAK _ɋ0Ȏ" cVnj*`&6A S!gb\Β1ީ&M`@2L^gH`*#{ՖI"sYQѤևqt꽨qTLFU ߓ`e%HO |7X[;n WTzS8Ӳ57j&eDmLYcT>flj Nd N #F XE |CH 3Y%t\&U csq5i&Kvy[.?}n }mm+ua>Hci/oDإ"vk`6ht [W+PʬoQ[0 >@&T3-+n%O)Sʿ`M* Lo8k OC%ps.2/4qM=1 ;9],/PG@ZR>IuWD̼,v:* !&HrTP,n"-3-ijj{Ds_1LΟ:=>V9]G2pz0֡cs^񘩱Ъʛ'&btR5QVGv 7xQaPUtyLJ KWeb΁?4ªZ[ghnRD7cM|ojDEx/^%mܾ C&[d~7ޚswKR Nŗ@ T=w9I(t<f~@>9¡_V4 FSaɠH!Y}Wdɑ#R wf\j88Y2^9iFUi()^%gPyROjɊu+-W'l-`</ R?{,$ޥ[7lE'rP[oQ}u3:`y{)Y{!xNd8}? 4Fuf]?pl8K҂di_V POLV)1ve$xgAiUeScJ ""mϓWl t,en*Ǎ]BQǡ eāUq~FR5[G?|5j.?xq4TD_c١f 8˫e 'ǝ"8w`=L1fRb> VeZFDwtT?@OR N͗ OH5R~DOJ& 7WIRC! !o_psV[GyoNjZo[**H6G.ѶI{՚+-Ro7n ߓXRf~ڑ<`NDȲέUo*'`_nфwiT`؇dUg Yt; V͜ }NЮZS\A^ ~|\w,/K/5nТ&WYߪݴy z`vψ " j90ѦѸaAz;OF9 +Q;6n$Gk jB$^\YX*/4L%@:j5 Ï]S&;EuTgpK 7Y#'u@{N;Q\0e^c/!K#[͏'Hb_HGI$g hya9c/CCwzPƕU5hVUɈwFۈx!=P.Og;/kq"Sꈱ*{W@E?CN^ Ƈ_5AF'BPvbvBma%"}/y^sKҊRśE&g0~k:ZJ0%;D(a_b\rp'8rg"ԭ]0sB20`7#09~ PzW"O,|{8 y#!q:6*Ce؛`"@`dȒuk*S3Dx1}*PFv>.ƺ 3,׫S\moܼP 8#UﭭM @^*R .{ɞCz'6ziZ'aj/^V*9BzJQ"8v+VkF؞2oHhLaCk^Fm G?ٌ^*DIV0rv =ZCr6 }bB|U};Z߆t}Wv.** „n%T/t[0%%q3<@*   Q G 0 c6*- u|;Wz)rV(z#R$S 'ܡ#i%2p(Hn걶\-4` ɨfM9̟,o&Tmroī>@0zİXFP ihrEk6L!ܯ7ʾ&cȮp pVsd==F՚V.G#3K3kfvQwF<R92kOU0Q_Sc$AU`>*கE*"K%GﶤEZ$D Zn}[*NZg n(e(̵hqoy&-%뛮ϿCF\2 F7gCDo_9[2Trbe ݧ)Mɽ ]G΋ 2eBSmn$ω@*    J&n c,wl'CPdt8$ D#}ɑ ȁBaCj,AXniŸnR͊3TԡUaG bt~O"2sL̄ڿ,pCq?|&1g#04?}EAT 2%Q߭A1B"*-gzDj]4U;Cd8eb `!N]/Irlk2cک@L!{SwVagq340J)قHfcVq T7PBڮS%mﲧ/TXg0 ݷtSander Temme FJ @)$$Rj5ͦ˨Kv_p"Qղ)O3PqgQͨÉK= 8s&'" lmً1? ɫ‷ X@ߢx˜5=jV-6&E2aL,7`Gzh2y2t[^Df:NaV\+E1Um+9Y[;0tftE2;PxS ;X̨]$VNaƑp)}(+S >LP~GV m"SR&q0V?A{/GF 9GeO>(%l4]zQgyaX d0wؕ܉j%@5BA90+Fj3>ê2,Jk\>ץr`Qₑ'ZT~ ַMbzUswA۬b\xF yKR{5B"fx7fem٩Wim5 P\U;%^ ie0-vj&ԬoM2\! ȉ K%F0 1|m,GkNa}nVTRҴ#(rSVeq,nQiTEM0u^^o.hw5)M!5 ۰щƾc'נ5 㼹S<4b磓雼 ƶ#-m9ŗ;0OwHj>{yuGJ#ڃ'=U軬) > [߈.!eՐ@bp{< "%CI1 `LVY5Mdj]*#l?Pu6:?E6wv@DwXj6g딖A'Bgժ!>baaպ 9-e~'KM.y/.6jP^ +j8zQ!tp0ÉK5 NAGHQX`l`T 8U c_d-?yϖcFzk̎V!WR}Bie?QʎSozHDwZE o-f?!:R_qŰ@+ -ѻǾĵ`"m\h%p& HZWf8gJ7A\ODd L*M#hq5|gx[}qܦMiH S Mt ֲ%㬚skcp=zC#mvCFh:, g FM5=-1l+Q Dz"9  ֚ =11p$E[b u vf|ȢvF 4-4p>n'c|?gd|2ʽOĆَ,0Rtߟ裐e ET>|/|J^0i _N}_XDu%1.j lG GC2.`3I$-|x\dcQDA#$uRy7bK:(lf9 <4(><_%T`N_0GmwV87BŖFxXu/9'ʺ.m9gcd/ ]Nֺ]bbDDϹ]č:jLP,CLT*%[.j\bH 5Üp6Q #,D|8mILi˷V >?/@p=4gnJ;(O O8գ\+RUbSR,E)x|>+ xU7)Kt/ՒtFxxxBEAA}T=. fW>?sh5f|4ĕ.*hPT/Ty4)K_4D$%^xaF4h%U i $-S *su,NebfFK{g  NH=L՝܀D&KD) b%bK_e ? ]w9 Q-Q3տ_+, {-/N*,H6+bHm5 [&XPl(C.XT# S)#8bkuKBƦR%dh@Zq&N"5<#dz_~y32 6K'qyRhgjLkbI-CI8 1$ɖ,XlxNdkfP0Y.(nx37_E_i;8Om]tҵ\3>ˇCKZdO61E/7j4'\8twI1>>͒܁V \vr 0U: o#󛒫M. R'8OS6>Y#ʩcx}[qoMZ"1EGAM&622Wd6;t\-+ΰB_Wr5R?vw nR.L\ +T` 4оZ'7'K_u4 Uk? tRL VsZ/E"[{KK-Puz_SY)+ŸgI,`rIب\pglعGd$|@wml/'*/״LEQ~oBf{&WQ%vB41Fsv\|J|SxH`Zth8.z^gCd K"ݔbNi1GqIZB\u=`Ddw {Iz@ՌMkg:|WvqFX IQqv2=E4Y:%5+\̳г Xh\]rfmDerK@)&%f<>cMx3w} NJi 3خI}Ugo߼Sc |a@sg溭<;ǨYBN6yx1QݵӐfuhbweT0@.l%XV#VkuPZD| vU]{ zbq9usTWY%+ K_eL S=]{ZbӫKdV'yBB8#V!zS^k`Rj6$^|c}p&O XPkQS&|ң-c$k&]6gD`w2΁G<0wvk4~){PR,`+ K{!3 :6*m+ZtfRd&;{.^=E 3E- AK 5 V[L%꫆Bp;cΔzufe[GB$\W}y#W,P ,v0AY?S䶊d5t3maVl>4|9N,:Go|l(nR(&aT uk=?©vPin%bp1abYwsb@z,[)(ZFJ-=,V ]Y GfC*څ8*K mKI#~MR̟TeﬖAoً޹ֈ^"lT!+À@!}H̷H'DtMC.w̸]c|#frrQMR`WHU=aԴʝOu#bQ'I,McLF3#fA>);4]a ~^w?sou6n/曶`./]IIoI<3{~_N+SpkVB ƚm)/F )^:5呶؈FL. Hwf_ ya_{$GO3yXW)qLVgז|i5u5LR.Jean-Sebastien Delfino }->y_֔y[|ʐ ԑGRA@_P/w  LҴCJim Jagielski Jim Jagielski Jim Jagielski "Jim Jagielski :`uY[bB383&@={tԓ9fTYW] LҴ xmYT]A3âZz YLC@V'awD:hBRn6Sc~6"}^y(9r+#LhWsD" ΁t~xfZL"i{-pᰌ8/--/Z(Ex𥋂w&Q7 Q0yëXϔ˺H`jhmeߙl ښ䘡DB0(űiP=23Z5P}_ f6 Jc'$l|c<)DLJev&< ?c]RȚ*>%i1^U;˭q}jߴ T"T:_G3yc>b@c*49Z%(9l ^)O5iu6f3, چh"BJS#CwlS<x~a,]ig yf7hUٜoFsrU7)!m J͠*TU^\w,E1pT@El^ưP[+ir@ dVѪJ99P޴O|-+DFܘޕOw㡵9\ԇ]񚓑;-)UKW swZNwF8+BcEWVjPfǺ0U~D.G-.@)^0ϗ' :u-{N6%1Ғ&|>z1q(;w jA2gso].)a͔-Nf)By)mU`i"Y[$f:R<Lͩ5Thomas Dudziak (CODE SIGNING KEY) MMʨ,{Y!(FH b/=ɴ{O o ip@e,9ɁHukp US:"6MZ[v6x~#ۅ] O^{R62V-U15z}Y.hyTdD(.J$l|&X 4Z3-0"Bڃhg:Yky歬Rî*@䧽1z+xF6e~a&э2$KmPBB6GE_ny_X,C'*MD/Y,`.[{clu! Y[Fui+Ik/6yH? b ZS>]uϜ|p7Pw5Q qbPS]? N7R> ݚat1dzpGc H_mh:v2xdSŢ_Ri8BY(ZDLҸ=Antoine Levy-Lambert (CODE SIGNING KEY) ^5~ܡ+D&:oߐw yV{YU&Xh2wbщ~bVl.U'exp~{\,B1J[cDX:2Up)K` h5Sd^frfEVY^%fm$%y }2,h{5 am=ք|u)3p`ǿqRjK ^qkt%^=*UBxàc~o̐gwܳS0 S|_d(Xoǀ6huI ݆0Sؠ~ y3 #* cGW1hηvtY>#O|%A{aWO2OE7 ?O~9.W(qb7$և0%ћv-%.kH/,;avK9vB@Sw]GLѫ@Joseph Edward Bergmark (CODE SIGNING KEY) ّ|@7i_AQBNMIy?_P;Pc~x;6Ͻ,ߏЯ"G@s+t΋_~I>f%93"]JCd4RDXJw_du2t 8k6^FEwtH'-5o|/ΒL{;H+1@ Pf~D-(}LҴ)5Jim Jagielski (Release Signing Key) Jim Jagielski Jim Jagielski 4vyc$KM?h.,ƽh 8Xx8ѕBAiq];O]Ki%4>E\ Oa/u1u noCYHu'Md2Ҫoo I`UKOHS5/%符iGfbSff-" WUF&y%_`#Ͼpv54,JDc.kh^/e2XlX޿ExZe*jUAG HFQ3u c8Uwmu t=mcߥsk l[^'11z0ڽi~,4ށ6htYzOTO{Հ ὣa_hq™q?D#Zz8 ybE$l?BO WWpqkQ{|خ3]a;0+8 +T.ByJ>pYR) $N>4<ܓ JV""֝N樖^=b`;S[*G^TL|L^z8/}/52d}D]ЊO.. Q.\7@GBV83V;MPPTc#ⲅ\͒lMzhYUo0t^19My tFɞڷK fcY .gnG-74ퟐ.Pb&yHv3%@$IEWYB o`?.[a*|7XD)? `wc_7g[-slFN$R  nN$Q|9]/|!]98fe/b MD<?WFN) 2eUѥ^Z˰JNɜ" ֒h#Dew9FNN />]1IpLyinFc4l:-UV?v;]^L.{Xe ;Lq$8>È]qV+ў8ުiqvn݃7ufiZjgr#*Ii+Z[M\v {5ٷz6s;}jr~|`*1EȔ]1 :ґ:U9X2ve: ;,|\."z vG5d!솣٧w㒀f_?,F[Ί5 c2{\J-u3^>Ɨ EƔtY~OU)CX ey= 0YT1 |kaCc-9fd)?AiT>C:^iWZ!ޔn?oh+.~iNR MAEJw5B3`ziLfIE_|S$(_Jv~/qY2$W-ฎaa9;HbU9t({[Rz~/R<}neÄ\`f˲$\hs}QEDUwCiv盦k}NkPGo;)oՈ[ Q 1//pa3_:4x Jf9ȓ(#P5is3L0+Z"%I &`EAGY ͉Nh c=ˮk*",8%NLm w?ͫu#-U :*aSqP<<~SDGQ{TQtM=#ɽo}o#a+jюw& Equl..>iD-ĄnR(me!Qx%̎wZ OBpk5-EX*-F'K;V33u1(J!L<_ "%j9R1^YC,$T]_tfyCz5nLnZ(:%d zb  ^x,\s?>TeB{3';>@nԔ@ Y2+њVXP92s<̿oG5r(}-&ؑ PVTKѺ"#i -Fe+bӊ=]-uQ4 <qT/L=Y-c;p&rB(^aI鍨M[QD5* `UD1Q6zv̫lK<`< Qaӑ?W,٩fj{2h/#[64YMD4[l15CG*\mAELaH~a6]hR]RGZη(Df`Lق݈3d*qrT7 *ЛvKEvI5 #ZZ2XcE͈\\t" IF%U݈ՃaO%g:vUWzY, _ KR~\hm4)d2Q"|ۡoZBJ* ˀ(`(CBN< Nd N $ yӤ[õa *n)oprTp?8J3h[ t&S}?4Y/WBIZ)>wUps|P]d7M=0k?"ߡgh1ϻL3aaIgYmG,~d7S ֝ >Y0(_og d~7ZŸOg∠mnB$d/' NW^w3t!&dp (:c0wA#<~|OU)BRPMwO|ڠ锪YG@UHPov$ɲ<1**ai뗗h=a&xΥR NbS1GUɏ >#o=@rRdH VlHdQU#%؏>B~F:Ɉ&n+JQNyv'M,&GXLʝ(5N5,bwxX N^ Ƈ_5A4w JcӡO\`SL܋),Fg7AWց/x}Zj>ns ([;V!K8gS,b֔`,"nRrwbqR1J"-D|Yɏaln}}CEr/lAjSfNCP';dzMi$&ى<ŋL$1s_U-ezO.f+ϧ*>7zd7//[]D͝Ad@nWY {TVPLOw&+ ?BM5)ؖZqaGg1fYBJ4 x+7T;+D~v"C#O=%8AZ zc kڹG75b? =+c26l?)D/)yi} `|Հ^vDɂft4P h"Rx :8ݻj='   Q N 0 c0qWA)F7Hz_Dх==i=w2^4-uytvY1-O\LX9zm@Syȗg#`#xx4 \n.OAjDzEĻ6HA`@J(wr79ͦ4+(CY*dywW7m |3='J     c*!+ qmg4geL|؞FlIۯ1XWd]kw4! .ԴÎ#{GQqZ9a+SzvW]+%q,U<^[1_eNXc\X3hFQԩ(8"jEVlgc#'ndF* ait*JlQ)]8־S#P,y~05qOSh3x7x?ҳ%pt8Ė8a"hIxkqV˯Ѥ,AI 6Kc|W4ckgKAOY`Xa&$~:X h}+3x\kgǦ/0T3R%%T_3~=wR6!S9|Qc͹2Z0ÍVM"2R=ff( ŌĠv4 6UdVb0!DYYJFIFHH ExifMM*bj(1r2iHHAdobe Photoshop 7.02004:09:28 16:59:59He(& HHJFIFHH Adobe_CMAdobed            eH"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?KsZ@;?n_} XKHw{I蟳C{[|ڊΝk Ox?-n0$cV/>f0.uu=1۷1ze toI].} pp%̨N[U/-44msF;ܨYsɫmo,i:sq]2 I&$2 z]Sn0ev`K1:5uwXp_sZGF˒}VKnI:OiJ^+و7]{CPk=70Ƴ3$VG Hƻ^I˾Z=?[C@m˘nCGVF^;1-D\KSjݝ >9Vs:9߼huonc0HPpu'V:81wUsQ~&^v?~݇YP,zh[y+Pڮl8qy2ׇ4?>}5c4/k1%x_m?vrƩ# @䡖bT5c(xn;9xe%mW@4_$qjCnĵ]] D8~w`ufMtkUzXsCʬ09OmG+5K%.ME؁M] CZ>! !RO |Ak\ck'Dѧ ]]'UA0~5 ?XoƱ~j7}h;v>+ T>ur[Pp.y -<;:# {@!c}U˲m> 0]L"%nU7Kk8t$[c0@ C-eLKSSf;׹@- i+6X ml֍I%:[ 4yV.`vm#B$\NN~--,{u[m§c4[KmwgΟվe~ KvDJnV)FV:y,/WWַp+kCpw]3.k\+K@5Fy8?!)g^*ԩa [Ѓ+d>lvU歴6ډ'hsf<;M΢ֺy%9QTP'!CеdƇ ;k&HyVvI6a=-5R-±.ŸnwTgE/ҋҲ+#и'k]9wjK kvu$lq+kqoೆ,xx'lzz/F 5s)!ѳ||_} A8~no8?hߣ[Sy Jm2W}zS i;6sþԓ/l~a^9d"{uߛ*ћ2MU͟O"Dz-TSsg?/:ID?h?Nʹo{k#1*JPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMUeHNewOrleansSquareHenullboundsObjcRct1Top longLeftlongBtomlongeRghtlongHslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongeRghtlongHurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM HeU8 JFIFHH Adobe_CMAdobed            eH"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?KsZ@;?n_} XKHw{I蟳C{[|ڊΝk Ox?-n0$cV/>f0.uu=1۷1ze toI].} pp%̨N[U/-44msF;ܨYsɫmo,i:sq]2 I&$2 z]Sn0ev`K1:5uwXp_sZGF˒}VKnI:OiJ^+و7]{CPk=70Ƴ3$VG Hƻ^I˾Z=?[C@m˘nCGVF^;1-D\KSjݝ >9Vs:9߼huonc0HPpu'V:81wUsQ~&^v?~݇YP,zh[y+Pڮl8qy2ׇ4?>}5c4/k1%x_m?vrƩ# @䡖bT5c(xn;9xe%mW@4_$qjCnĵ]] D8~w`ufMtkUzXsCʬ09OmG+5K%.ME؁M] CZ>! !RO |Ak\ck'Dѧ ]]'UA0~5 ?XoƱ~j7}h;v>+ T>ur[Pp.y -<;:# {@!c}U˲m> 0]L"%nU7Kk8t$[c0@ C-eLKSSf;׹@- i+6X ml֍I%:[ 4yV.`vm#B$\NN~--,{u[m§c4[KmwgΟվe~ KvDJnV)FV:y,/WWַp+kCpw]3.k\+K@5Fy8?!)g^*ԩa [Ѓ+d>lvU歴6ډ'hsf<;M΢ֺy%9QTP'!CеdƇ ;k&HyVvI6a=-5R-±.ŸnwTgE/ҋҲ+#и'k]9wjK kvu$lq+kqoೆ,xx'lzz/F 5s)!ѳ||_} A8~no8?hߣ[Sy Jm2W}zS i;6sþԓ/l~a^9d"{uߛ*ћ2MU͟O"Dz-TSsg?/:ID?h?Nʹo{k#1*J8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:dabeb716-11a8-11d9-aef9-803fb9f49b6e Adobed@eH      u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyzm!1"AQ2aqB#Rb3 $Cr4%ScD&5T6Ed' sFtUeuV7)(GWf8vgwHXhx9IYiy*:JZjz ?,bq;W3KǓ楦ɻ_3C*dxiiNBP|t1WZ 9<z.$ee,T-R SMF8 G>jL [sp}RSu"z\nٹH1P&O=*ܸh#*-z4DCT_ZץOk#oI5i,>1w:~Uͳ!Xc͈AR$TUrR5""9G:uX6lxL\1pϠϵxĀVO:'hwEsSfb6;riZQCE_ߞj8*ehZx˦+Z:"32D&XH‚QCZf?oDqg?MSd{sWLV- o[I%8q"tKyeF Ҝ @ tF04=妿,Akc!4_׵HW&F,iAU *ȱo+ %ċv ͨPJS=:LBdQk‡G/Y" ;`Yximaj^|A]MϦ}U/DW}A%xfοϥ/f\n#CQQa!hj0 Jp߶0YKoF *ZU3B Zhq2G:_YObⲲCssoڋyT٫jEYg OLf$qwחv67kC]!5+Ӭ~U"8<0 ]M 6cd`Tي\ٸ"g5yyYi ]t?˩\M_ۻVKԊ,ˤ,XWa{ M #$r@9!qgۥ ,m$|gT~g6>tJkjCNmɲ]x*Ed2ͷ䠟0٬\^?IVL0=lvjNx|=NZꮭ(1&N=kñ_h%})d E 7)EGQHeHydyemn}2^Ǐ`8h< [W  5*qZp$}5dUcfZ8}i\B hf-O#>F]cO cV2PQ\y$/ θN_o_ѦCPSͳqCMM^CqS,ҽMXd66HE$1%B]=XʛP,+FƔ#'Ua`̀SAK¼qֻFMcQ(o;‡!&GEmZx 7V(4q!\ACݽZl%%%EqSšxӡ'(l7ݼv*F,ȠjN:ˋ9۶fk&6Rx4kYJҩ<0:[jmd@TdA#FjFO+L|C_/z(9]YIR_fR$H?fmyn AGm'_.M9Տ\p{1|ԌOl K=w蒞OEMeZERg!HņBO,cc^=$WYA(kNWglꓝ+]a-n E*Z,0Ur F`c7Eo~!Vm=(pϑ|?;>?vFW'k)𻎋9r)o5%n'+KJ XC 8׸}tIKyԯ=:۸:55+:[ :>Bn䒟'һ? `y{ARZTO$)rP >t=Q1@ruA@*uaGՆ+r2@ OkԉRZ(HYrCs͌ Yʊg#>_gD}rfʆݵ0=mMԛJ<%5 Wagi.O?AHTK y$Ϯ0 HQZ4|I#]-Fie͍]2{Xih:hĂ;ݏϲ$;*שSau?j]}x`y.[Hۖ N?ο]gk_.UwOEO (#UFf:6c r¨ U1ӽƈYFݑdTAgC9hsچZhI)*|3%H1"H$0ONNkqѐ[z|ka|V:AGUʸUy Z@75bi@!uPwkV0c;֜Gۊztl,bV`ё-jz=[\mZߑ_{h47&4^7עǴʓM]Ld,mq&,gẂPF+Éݑà9nPv[+MRSN#n>c֛{wnWM6Bm⭆)񢪷 )9-2 n-u*yޏsu WI89ɧPrXl29B_Im(qX&5Ic䕸%5?rDRIԗb? F_ Y27F ">RI?n}[DAFD+t1GJb6o m_@'-Rt:%Ytp?Kvv}52WBjC \iG*Y jGVHS7K67Ln?6.,U~NJxX5-uC'*Z ׅn h-ӹ?M.ת{+ i2t )C14j%Ft2$ڿeՋDM{o:nRO:h^U^_Uoknm={갻?b~Ee0 janw|e1ty(T$IRPXYFDO$";&?[i=E{[AXQWYр\.xS+i\Rsb6kO;g]ɱtxy&j-֑ L[G3`n@2ya5bMsNA@?.E=ꝯ?'Յ VBmg2gpi+ |PrYzZ*: $; nx +Wu^߾bOb;'OeWQˆS3Y*L-}"T|$b`Oz&ehe A|*kX$g?ѭtwÏGa຃6{gMۛz{m^?;x: *y0$@RhWԡXwJgϬ+ohZ"«Kz>Kn`w-Ԑ$qc7D)ԃ*Aޡ)C=oe +s%G 4%&>*ȮdMHĮy^NsanoXQ@-:\k3W-?/phG鬣yܔ˩⥙+ $y&s@PYZdO g_A^k#5a5dp-d5B-_>6.Hde9OB-PV+٘kĤPQT4ХTULu/s& 0%2.w;  7l,xڙ.fVc؛jO5xeaJE4)U bH#QZѷkņ-/gS 恅GͯRUfiPScfOMT2h9@}y'kwymwiXP%"j>Π٢)e*3Tq!ߒ_>Z&cey?[*|ң꧓`wYoSI4XmkSPgGo,{ \^y6$ܒTI  0MAE*c d`]ޯ4 89J~)kxJjpU4qxUc [H G*)ǙClw'n;KȥԇɕԧЭ88;[pVᙣ".X8P^JrMlo.RC.k)TSE3sY K[sjk*8kqi2"(*sfu=m3$\|GPJ m'gO]_C7 ]F:z TIH:ԪB;}ohmiZVXqS7u4p6a±GяUKCcYY ZZd-4}#R=پylwW&6?3e}oujmJ:?/ua=-t̪0o!1Vҫ RB|Sg/nl=CEZз_5 =PTҟkO嵸wn{jRl|-E}3CIqYܱbz䫧 3FAF[vy)<Z>}9t۷]m},ZMs220 8?nxo{fmM_~d7g=}p9xF 444k'َչMG,iQO3_/JEz-K d#20 2~`ӯ)?!vvY}v$U.R $$ }-#G8dWP1Ni.s@`kB0x`rm" #|?>*}{"Kz SO`VZ\f'WO*mmMUBKH*>!VFoSE[.4χ nڢyv5 m%VqR4jk(&`RH\6UjiY9F5 Q'>1F){vnTzW?!AV4S3rQ;7 c"!I@GÍ?Np]ia_@m]nǘS X*A0SE3 GQ]Q@;^hF4f1X@Zc$Lתݍ8"("JI8W{2gn.V%&?1԰ޚ4I&oTM#ō$ŦMx_$rDX ҿʂ/.= :,\dc."kUVPUOYM5>;%扑,7"FQn">TqGqw/M'R2SHְ])ԛ; 3#>SUV:(*i}mR[6RDiZK\c}}Kw" Ek)]DvدO[fhI&59_=՘j.Wm+Oy25X%f i.UQ!4 ㎫_ڼlcSEe Fd$sYWh+VނzI5}HiQLԲ@ϰnG: }.JC[sdo:ʀ֮!!>C,sDI:FG{YtU@$Zg&aquAyejJ(`-Uu#*A#‡sC=elc]kMj:j ipG1> ŨL(N #:{۹.w2&QSA i:<~?lu٪)&#q2̓SWC&wQ,8E(`?Wx-[ qK3q HԔ,SU2zoz>Ϻ|serY8g0I47zzNF:7G{on^uoJ)Lj(kRZ\ +4rFcb@5hs3@ QHUj^=[mppe"IJ\RXRtQ"әbF)blS?2+B=zA~q~Ο }V*6e:*8b6؀Ƕ,u8b*Ƥg/y _?d%VRժʼ do&#pZm 팲Gn zf:ggua.c]k6K^3BCZyҝG[oL*IR$c Ei|O>/awgt>ϛ]k{ cIPѬ205&mb[ʹ&Q)/#XrզߵkRsk•$}u̞۬W7F`BGPT`Z T K{o=VW{15"b_{TOݵ4RS=Iޠk;+P?t yt;[Ms7h YHaJr$cqul}K]3mzQ=4c.X.f]Q: CÆpԗeIpzԗ"䫁z{TZwbX)ќWz<~BXw.-b-&;|twU-%YrDahHGC4:*M׵⎊*34t*ܬQ.N8kjY]6>s=d0ZbM8YJ(HFJTPք|qKFTf&+8169,E([V۲l~:6ң^o.ˏcq& N48C̙oQ54i_'ONw#/[x<(LJ i֠di;xm_WO]e.9zm{?Ri_AOU_ϡl(~OM$/nn@_~OztܟQV?Ν/볏4es.ͥLo1dq>rc~o'i?zyxxzxOO/_|Yڅ[CkI_ A$4z}t?C'ij*2Z^SPm*YCE$FK}UV_M-`ɦYry=}:rسm$*>Cjj!kUl\ú}Eٛwfߋh&z,P ^Yӽ[pVU&3XyYv.SG:`CҸuZMuܹl~ڱJ=xӢE+%mH=TTO4QV)̐=D+TFe:Wm(IդkL*+îW\ux,Qd WWn=)P sوFJ @)$plgήÖ?~m(Iz i&= NItK= 8s&'" wTɦ}אҽ%LUÆ0hڸz{D#kE;Vܕ 2-&)P Z{[#Q# cZ$j#2Fah\|fd6:,ehbi}n{jЇ!9Ig<<N0vC X~%d ,Ł(\U؋j^-*z͙^sl b&[0; ) }jpL gvj  "xZi|;=l|)%fhMbgöF8i:O޳> %{ץn0g ᘸo]a.=oǬN+>PI5@o{(Ib\^" FbaF0!e/fn{>NxuЉ#sh!R 2m:|6V+5(m^rfh/: Lsh4 v_QqT0sһf3L}dIq.!Ѭy b6Y%Ml^rʆFNn:սHQB%,d|_1= vÓ4#ZH;~.#,} NƬ/-^iR~ډK5 NA y8C\I˭NSrL+xd @IE9NBA``ǫß RQq3ә,Dd,B#P>#%Tǻj#Z:Bdw^@|<ɴyN3A d~*ny$6:Jo2x|mdNͬx\Ғ΢gl_o `л+СE )ӡPku.v$K_e ? ]wl.b߹Ѷңڟv`Q;+c@X3|Uy)ςו Ŭ8JrGVv"uPI1HlCJ·H9If)(# WX4"~KS}r:ٌZe{o{L oXH|hK\UoYSl$DϔO"xQcM˃4MȐrܭ9gڌH7SQG١8ambmi"dD 7nK6 "vzYC WW&{9CWJo(!jEAA'|2Ujf eaC{E&+7auydvJ)'C|Ç~+?;:xU|XX(S*M>}1Ί,C(^3y&/f;p>ÓO!M}hv;V[hS], ]`F3=JvnK_u5 Uk? ۄ_%A bzgT;(,A׫D(I@ 8C9ӸeNl5v8<˓ChT<ȷC&=@7xD1$&wA)b[X 'S"mbuhHƊx`3X*=?ɊffRFg$5e#7R2+0sV֭qaWQlhGCi eltmUl@2wuT,#,UUh-֩` jaۼ-[R-*Q9ͭKnY 4+`F乆^t "ɕ٥ A6HxlHtIXW3s2HZb%ntkI|COu6ZY K_eL S=]{ZYӢ)355B-&5ӯ+QV(Moh~0*Lb@V7-\,{[wG,' {XNUDVק G4K96('yظs>($(7 %_#!ć@˫uC}XN6DTm!V&yE#evϺ +Cجyd6xa|!MIoĬ.&츎]UpQ]"VpAn)ṛ`存 Y5GJ~^c$Ԏ5*^Rvc\#csٗu4Oma W4Bd;)ޓ˶ޡD ^p`9]LM#78KD[4x1"H[IY 5Ex`f?h| d T[Y읊ML%zeVGC&nvtzݗtIz Lv 6$Ģq~=R+Ꭻ͐=#*h->%0bP'Y;caCnTIk#cB_F]ECZ(܇ǿN_|4enAk.2xaDxX=wia J&A,8s^5 cH)y  7 `JG_QH•yx8%h;KV('S7 ÔO#+`aq֔WHdq5jsZKAV5|J#m\sxo]ď0 ,Z/!A5"6P#ѫ#`uBIs@ `ceZ?,~T[ܫ9EO߮مi9(:fGf]7A24]Ra.ԩ*sϓ-&+0>OhYyW!=ꕰq4/6v ^1z1&irŠM5F=%\8?P0oqFL. Hwf6~KB/NIz\> =׃PPFCSW LҴ xmYT}|4[rq5 +uX(-&pnDorp8٧{m:Or5X]stlXrR뽮Shfc 8_Ɏ*xk.|$q#X؏Sg{ K7E4i&[W¯–3B:n",@3i޾(ֈAGG럣/eB% E#]>f& Y'uu#3| BPߢǙZf8tIg #=Kj2!:Kg/Y<&)K,1=0hQw98I1;!Z/o*0c\9:p*$vCU߅a%x Q| ML ?RzHqb\VebW_!=k M̝?`+!uR0J3ޏbXuWh^%KɆpb}'ɟ{ 5[NoSq(:&-9ylSn(=#$ P{?0jxe?l-$?QؽJc(纛/Ğt0T8.BqاWv0wVW гؙevOO7XnR x _UOU:9k&y/LI/Ekyl >DŽ jV:'ήh,aۦ5ܠ\\/pXlUzt9D65Nam): mcLۅa# _NH|"ڲ >V3l{Ҕ^݂jEL"cFM$ ~*7 K:6k!eEWb !Jk{*>]cAFL# &E Vj{M={Wk1Qa#M)'GƉ" N C6He-r%˒{HZa8] 9IUPs^<qsn;hfaD>vr'6݌&2Δo4pzbj䃆?q؋7*4:_<YGNXpͰ .?ex`9+ӽ ,4vۂ/Õl7wPâZEVŊF &$c\{fzeEI)9'bå4:<ގrAkrJs%;9rJ$r7ѧ1(NS6 U ʋ sv4/'6G,|2d誄Yҋ$O'}k !wlN3A4Y|~N O-|+F׶簎$L&sVV0ŐmDƍZS!.1 a$k#fE@IUNm8qƈ\=nP#32TxDoFN$R  nN$Q|hynYs#`Io#̨ĿU]/-FN) 2es^gR̉1 bBx4bV2f[FNN />]1I3BqN~i5ߍ!\(ne[}$Ƕ'\~2yX݉N_Z V5*vv3VaaIc1ٍ4\L?{v2HxvJO9sVV5IC+3 M}rRH~Z Ս|lutr9CY}  ;lpE*y>&ܶ^Lt=pDT:2%4 uANR MAEy * ҩ<+i/MNkt\ 򤒋>MS5 B<qj6ݱ!aXkN(BxK D1~Ds84ƩA0`c XO_7#_1LyslVe^^rGIIO4Ԗ &~zB1Ewc{_VUmN9pӯՙ@+3sZ/рٵBc{l|G= ry0YqR I-+R]~,tAZ$`D<;Q0s[t,VCBU^Ng+:z ;P3Y}ED3d'gBk Fnʸ0> \J{m˄1Ry^:tnf2EѤ-YmA؆рB6i@hL>*y[Mo (ȟj%*t=-vpN4*Cl-qtb/lU؅3Nh c=ˮk`]]P8s!4\ >QTD= XaMs_ZjnB8pxb_)ر[w]x&-MNc 묞Y Y]mOLgn2S<0>\ Ozbw+jZKyW4W\:=rs] 8~).% -0–d,-MtC5$'ŵxbnfOw5ؓVXkeG2k$v 9D 8R瑦*(((8xmc|N0`[?_R<=7+!G>zI!T!" +b jQDǞCYBa}8 NPflB X@׀ y#N4EG㯈#ÁƷrGvOx(ēXs-AG(JAI:CL%o-)/ԌQwvI~{(9d&GbֶˈFN {N4N Qu,pi18H_9N!$ӰE RJ#Nˀ Q*#,5ۣ!jAI Shٗdz!f],8 8mZ˩~47K#ΜA8i]fS #G=6HJJs.h T̩ =HL\;$DQD,3M}0]М觑sR(UUߺ7;\mqbF@$LnWu֬i/:') WWicKK~gÕc _(@Fz{yC vӝ/<9+K:h\]59B< +]d:)vvOC]L?WDzm(!ɹBPYߜj(!Z%]l#tD` Nd N @Nۉ DMp@$'V7 nIrMɫ/]sXC::`&FC.Z`ُ.bOĄGRWS, (,idmrbaY4sKQ=B9 m; DF}Z3ft-tfB/< Q 9?HvN\]4JH V-@E㝬ɁX3v hU7LoY,:#=mu },Oy|p Ӂ WD `~q^Hw}45u5|+4W3lMiE]]ΆJZeSeFi%ZONoSrǥsbw#Er9+_13%M2֚aNYRion.Q D 52 N͗ OH5\mfU`!e8ܐሁrXⰅ19gC,.S )=3hh9=6qL/Ɔ)t)*;"U.w^H^S<x>3Ⲝ3IIzn` 0xxg)#cE%%:> 9xOk֔q&xK1"l8-Q:<ϵ+5S.Y]N]8ZS Jrl;F+ۿ(gVpaST9\5[ [ReVy9J4uV?;:t7E.~5}@DP—⛙S_"E98r[jxyml=`NUßgQw??hC/4< QBN/>d @Z,@qC޼Htd5T^GU҅0 oW[iF怺)6:ذܜ'#S sS/0 N^ Ƈ_5Ati}$GJ:%F0]B+T3n;HV~vp}s^ 3htec s\`#C p{UOKXz tNu:b|)Q}4}EE-^~)կV3^ XD?.^EśpkN"EE 6c qsg -?~.e72(Zmx]W-15^OF<(ʼnbbv. D =+g.v8+UDgzs{xëeC1,mNg8lNNe9Z/kzaXL  Y0=ոֆfb,DH',tg 5$?:b{%.96ҙi='   Q N 0 c?q2.mq8|imcf<=\,՚iG7Jgohf@EB%ƋL{(!` fǙ_!kz9*rYCYs tU"Gs'd0v][DS.R3=sDP[dNj&H ~ X' ͚SRZx,SŕoZOLu#e@HW!aeܟ!g+W܄;.t$:㬑هӠLU+y,v,9sZᄍђ-޻`PӦK["P& 0#͹ ΋a-CC@>+xlb MdY,P ,v;r0vagάH[{at@jR)vY6|8:máHDRY ǨLOeY^%䕯[&PLtazb%ſMPeM} A:='J     c [gMxĐzE5EnGJ%55Nhn#%KC\V 8FHJ=WG|Ȅ2E*YrVJKXJ}jx.!Y.I=) 5>NJ&}yaSjˤKFlQ? Nlk$c*);>A ߊr> rluT=((DV:0U'< ]K a;d'`nyq#g.y :dlZZ\_猷M:ph*נJAngb6 qGle6J/0ɢa(==|8TXhR?F0k/Cm0fKU\hڟ# 1㱓ω( q,s@qj/VPt?JUZ4"@rwJ^F?M+ .aOړuL1p]t-0E HP369寣;knrƺoe/vL}7O{!Sander Temme FJ @)$"-0ԏoXӃLev+ )dzFeXK= 8s&'"YC&8BN\.1PRG4T$:Mܩ&B1.]9W/Kĺy6YL1n-e =Lch =vm,8F}E?"S rzwZ'ߖm=q[bTqfP='v"Dt .ܱ+aaIoG_2\PFq $@W"?Y:H]I EP"y_=S\@ka_Cd;h3 IEffTuc,[EwCo.Oh$$e8Tƞtr68K@a]{"7F&폍`_ݣuS*A'08K4#†.Z3gɌhpYcgI-3Չ K%F2 1|mgvA.Jε?qAhq?V.3o_v{n'/޵K|k,FY7 R<ªt,ܫ ]@k/>}_T9/ v dI\&حpV{~Ev2~c.]_~=cB7k7mM%ɒ(DŚ8\HzF2N ,h>t 2=toJ?]E2PtMa04${_HR".J1){TB3 "l5c`Clklk@ÿ:Wio&SW f^}uE:'[閯܈v@8BL#O{$h^K5 NA)\t+q%tBZMJZkv^ntI|wF#6Rk3Tq&q=cE«~d#G0=JP+W՗1IRs_VCN\|9Q&DPNxv 'XA8"Ly\[0#*|m+5ˢcTC7>ލ)bu@c6@q췉^Ksnj z(="d3q;78!hɖ@ &#yM k)'1D9A I ӿ}?@,:/!lCy?Ersr!`ֲq~|/Ympl:m+$Gj`'"2g1!f,8(JonDmLzOCʼnCDCD:LVt؃+ISM3O_/k/BcФpa*>Kr=kؼcAۙctӌUm\#n M0}"KeZ#` DM=chj[\mq]oHeנE*55T>6ׇZc@P}* X>,&7}*ђ;e-T0g`uO)r+frc6lf<6;~ue0| Bqb<.< @-Dq r@(.xW_3K_e ? ]w% vͽd3ݹ%}q l}[:T1}h= _xfjo_%ZۋktߩC.T9C_ }^OڝP% p:}0<9¢8eG i\R4 X!i yp^6P8ϲ]=yhs:qơ3sӗ1g2UfA/Al}Z$2ZSfkcl+~? 4Bm & NFK+Z>CrI7|yQj}Y |D"W9'}_H5L5 lMˉ K_eL S=]{Z m6cG$7^)13ۍ:;Ͼ|5OTU2't,㖻L@ZM ?D IRit|2oښ7̦7*cy8{r OG\t#)`kN| ]$} Xm-i X? )MB9>.լb=hrWS\Rr2=c ݑv>1TS|λs${HB""<8YD+ԥ`pK/4#VV`TEQT!y!a#‰0FL. Hwf>Hơf񟖑T>GB2Ń=;}zbwmӞu5LR.Jean-Sebastien Delfino }->y_֔y[|ʐ ԑGRA@_P/w  LҴCJim Jagielski Jim Jagielski Jim Jagielski "Jim Jagielski :`uY[bB383&@={tԓ9fTYW] LҴ xmYT)8KgyFTǴ0'fl[X<0i}|0"0_[N=`B>eefvDz$4`h<烍+pyAm1m<^kjJ;Y-"J/XcDʡh?Iu}YfNvpF ML ?Rzk=l68xGIM48A` n# $9GKre-+GhuI CS5[2kR3-4,npͶ[u H5[#cH>0Uz)Z_P?*秎;K'4SMR(_1|^ЖV~13Ҏpb[d2魂4VY3OYoƚFzrdA'x/RC]eU,@ YieRaY~F#Ҁ# -xL"ߴuPzhRuaKF>9k"… A9CɼaLݯJ4@ϯ\Pq;B,gs?JCp8 JQh9F6+E诎Ð0rB`8vWcITǺw6fh1*P|+'DM]rR<Lͩ5Thomas Dudziak (CODE SIGNING KEY) MMʨ,{Y!(FH b/=ɴ{O o ip@e,9ɁHukp US:"6MZ[v6x~#ۅ] O^{R62V-U15z}Y.hyTdD(.J$l|&X 4Z3-0"Bڃhg:Yky歬Rî*@䧽1z+xF6e~a&э2$KmPBB6GE_ny_X,C'*MD/Y,`.[{clu! Y[Fui+Ik/6yH? b ZS>]uϜ|p7Pw5Q qbPS]? N7R> ݚat1dzpGc H_mh:v2xdSŢ_Ri8BY(ZDLҸ=Antoine Levy-Lambert (CODE SIGNING KEY) ^5~ܡ+D&:oߐw yV{YU&Xh2wbщ~bVl.U'exp~{\,B1J[cDX:2Up)K` h5Sd^frfEVY^%fm$%y }2,h{5 am=ք|u)3p`ǿqRjK ^qkt%^=*UBxàc~o̐gwܳS0 S|_d(Xoǀ6huI ݆0Sؠ~ y3 #* cGW1hηvtY>#O|%A{aWO2OE7 ?O~9.W(qb7$և0%ћv-%.kH/,;avK9vB@Sw]GLѫ@Joseph Edward Bergmark (CODE SIGNING KEY) ّ|@7i_AQBNMIy?_P;Pc~x;6Ͻ,ߏЯ"G@s+t΋_~I>f%93"]JCd4RDXJw_du2t 8k6^FEwtH'-5o|/ΒL{;H+1@ Pf~D-(}LҴ)5Jim Jagielski (Release Signing Key) Jim Jagielski Jim Jagielski 4vyc$KM?h.,ƽh 8Xx8ѕBAiq];O]Ki%4>E\ Oa/u1u noCYHu'Md2Ҫoo I`UKOHS5/%符iGfbSff-" WUF&y%_`#Ͼpv54,JDc.kh^/e2XlX޿ExZe*jUAG HFQ3ZC JnWFNN />]1I{u]0E6jgm) b<فjEaࡉN_Z V5*vou;࠲FGL!3:}u7;'7acЇ-jV ڀT?:f_ZXU)kT 3i`z?=$Y{^lڄ'a/5 V"9eQ?uc*5S1}XcA|ɁQG{G(ꔢ_9tB*uUC*pihbj]vHk (1(9F-ycdUT?`5|c >(- . nB@?w=mOhؾHӔo7=C\nm]KwvcȒ+):ԉNR MAE;jɢC R"F?hJ}"Α^3g+4(F j׵& PȖ:IecRbKųӨ!?+4\",M/ Uu9sn;W|"Y$Imac%`w `B'xb,+8v!凉7US? K}.(^Vj !+IҠJm` Xfҕ"R ӆ"'N- ?Z,QSϐEty|KLz*ZXvϩW%[{'be%"["ݦ9@bR9}eq{c{2Z4T$f([Nһ7 2!&5[]`ݳ6 s@FT#k50AVtUow撗l׵DiE {Gue%N*Daob &P"_vXKCFZhEI# d{5NzAZA"F.".e_.l:WAA]꫽|Ahٱ#r;Ue|ʯ[{XުaI *l$^W,tñжQGAx`0/|,,jtw)pf:2] eaN Q*#,L5詩$\b\~+^Wlpx/ycXT=PTnl(.{ :-V4HMwӳwb֋)8@UU5N ?0G d&98HF_-Bβ˕ ;qԳðM]TUԔ2BVq}oeY(S?|6.T.}4)bUނ@tN"cQU~$YS}"L<2TF1čKXXy*y?67N?ؿ9Q#3ӉY{Tj3>o-0ʝ=ןF6C?s iu.ew&K`ha ÍeR#>8SE6nBvqoNs$wGu^8Gs:m)#Q"nɀ/o8{!rkR\g;!h* %O}՚\璺1ot]$ *k]m8 S'o96TNK)(pT7pyrgOzX65f$nM "֠d]A}UW +#䄎`M'jTAs`5﹵yUeZZ ʤą)_N  YН(ך}[]nFoWb<áY[iHrv;7 c"tͻ-&gpKX(Ih' )@\g֬G N͗ OH5Hal%n3Ma!=yRr!^CȼXF2͓Umu2b]DO'5X4^Esm mA%`@JT! +l:cKKLOg碝Щ_ȷ@ƜjgY1O\ZYmy  kvںy(uWWJu6?G>$mJ"/ɤ\bJNK쑵x?qrQ 6vTIs}AC1h6Zhpp\vr-@9#yTp]֦˔u"?r/RuXB %#"Ã|{η]nxOLL0$U2D"|؅VP ~1TD˒)"XugFM0MmL -R/-(.9|w NT\|j#*-Bai:p="*xLmv[:j YŒAU췸 N* s%0:Em3.sBDƺeEX3-A%LIc_mTboAIe0'قu.4NQɑ@RǘVM\MoM^| j1?,)x<>hL-g"뛾N)c˪$5:ZTm׮ZzV (wϳ3/m1`%zZ8{-* s Jw!wn1|#9 = '[S؞nm?Qj%s}YAO =k[}M5̰p6i5;ρ{%coi` f_},{G23{frq@yJ4eī?U T(;Skc&0NQ2;!s=8'zT{(f y6%~B⪍}k)QjTsP\,@^KzN^ Ƈ_5A'{-;dGO.sBe"4yM:D)twQ A}+Y<.*a'2Ƅ0.TW҇ځIj\lVYϊ$cBĞVpr\6 צ±ZI1W5aoΑ='   Q O 0 c@>Xu@⧣gx_4d|wA0:V}HEeި)\nHB玔;n*fĢ2Nҡ@շEЛ'IK=r%R>Fekrĕ{Li̚7εjccIw Hb\, lJ _jI?h&DW&A  cV+N: fo$O lg TV8ׁnWu=gHM64||W;b >!qo:oLLDjLJEӋ `='Ji     c?-5ٯf5XݡZ”La+vHbLQZ+SRAP1!E IJOL'43–Εf@'`ZbZeN`DKrY.@4)PNK.'*^E HzNhqG&f_L]|PbX,{> o.4Eg^lDBf%>LCLԷCݿ6a|_8U53au >\ }'5<0cFI ?I#TR<1)A aOTŏO ä6rKЬ[&1eh7}:f6bFGdun J;wKA[򓲅_MQ3!rV0>@Fg[  Eڊe5ԉ(/5MK"N^E"Uﺴ)Sander Temme  LҴ xmYT'$bgQa0N="ZJ1Z\_3^lȎƒh{(Yɂ~c@ LOd%VXwWF'˹cmK!=)]52U+iY4âQWpSAD}1%-*"2] <:xDסZ KoCj:4]T]^ w筶Ö4LxIulC9$@t9ӽ`1:7}@CITbb5$NࢄR>'PxS?Z;\Q̇s |eH*Cp8?U7K?d/J#ఋHx{ܾ`t0b0dmCZ,WK\;>Y&PSV<`}/%hue@QHvɶwheسhV&z-+mxGՋ1~=̮kEºSI_wkPͣפ@Ch .omtpdj|n ML ?Rz}a }TQ"{WHTLw$+n<c&);5j:[.6:8;DH d$b fN0OW`&硯{ ]dh%9hLۗ}$3Ġ@8:DzWq\zc{נ 3"ف%~1pú9:e>Ն 6YFgei Q~1@ǓWp%Ǔ3hV:D4>)5uvߜ B2~ ʠlOu܅FᴬRվcX3j=j{ڢ3>C\(khXGͻn QJ=?ф8wtVT4 ߥV-8+i1~nJ4E8=ۊJu "KH04ܧJE ;s MMʨ,{Y!(FH b/=ɴ{O o ip@e,9ɁHukp US:"6MZ[v6x~#ۅ] O^{R62V-U15z}Y.hyTdD(.J$l|&X 4Z3-0"Bڃhg:Yky歬Rî*@䧽1z+xF6e~a&э2$KmPBB6GE_ny_X,C'*MD/Y,`.[{clu! Y[Fui+Ik/6yH? b ZS>]uϜ|p7Pw5Q qbPS]? N7R> ݚat1dzpGc H_mh:v2xdSŢ_Ri8BY(ZDLҸ=Antoine Levy-Lambert (CODE SIGNING KEY) ^5~ܡ+D&:oߐw yV{YU&Xh2wbщ~bVl.U'exp~{\,B1J[cDX:2Up)K` h5Sd^frfEVY^%fm$%y }2,h{5 am=ք|u)3p`ǿqRjK ^qkt%^=*UBxàc~o̐gwܳS0 S|_d(Xoǀ6huI ݆0Sؠ~ y3 #* cGW1hηvtY>#O|%A{aWO2OE7 ?O~9.W(qb7$և0%ћv-%.kH/,;avK9vB@Sw]GLѫ@Joseph Edward Bergmark (CODE SIGNING KEY) ّ|@7i_AQBNMIy?_P;Pc~x;6Ͻ,ߏЯ"G@s+t΋_~I>f%93"]JCd4RDXJw_du2t 8k6^FEwtH'-5o|/ΒL{;H+1@ Pf~D-(}LҴ)5Jim Jagielski (Release Signing Key) Jim Jagielski Jim Jagielski 4vyc$KM?h.,ƽh 8Xx8ѕBAiq];O]Ki%4>E\ Oa/u1u noCYHu'Md2Ҫoo I`UKOHS5/%符iGfbSff-" WUF&y%_`#Ͼpv54,JDc.kh^/e2XlX޿ExZe*jUAG HFQ3ٿw?Ru+Ee|i$]_#NKlt5 -#9T禽W 3Q($/5{KW+.ׁ]:t$R…B*ͫ^\4p(柇Dm`!~ӍšSN$^?emZd'܂W荾XGE'a9' HYw7XjС"eW6X~ԨSqd,;R2dϠ:q{FB'ovS=lPۃ)k!D~²q'J~uV"5'E8QQ џA.&D^p=&e^p7QsO ujA% tPKƆ 6U8_^&= 56>n.qo#6FEQgxG5ͱy"YUTs$1\T=sWD6 j,P"Mgg*Mp$~éO4KdVAI.r(O5Uo89  RL̏N y)>&&nHU_$-sn9||G|L!EDe7}^4gIv ً#\)'Gؠaٸuž S ߇mP%USDE/,jdԂuI UXV̍9glPN|.7Z1 Fj>u) <cGIW6@Gkg"FM$ ~*7 4|D[ټ9>Sn cCz%_H M\WsFL# &df9-t~h>]'zf&@{׉E" N C6H^) Gsp> >TrD}}ĪX F1m]L~^L`y[. Ji<-ͨ*dR٨?# rTڗ0 K&Q<OiVN}"$F,3o^ɞQ}vȻ1w$ 6d-]\Y+ [L=#[z҇=(m;%/7d{ ֩zS:PF$T fZP#WRBwvU@WNݼEJkF+~Lv9{a vBUӤ\ r $%FZhs4Qg YE 6w܌fPOdCȿ{u'mkyA:FEM{8yh=ЋtۦO {UEΝFN$R  nN$Q|^` !@8)7nüN 4nFN) 2ep`W+Bkl27b%%+aY{?͕=FNN />]1I0Z?,4z6k==qbhN_Z V5*v'Knx1)q̴HLłc9/+k;F %\^6$vAw(#z ռ/Y'͚r1p=f,f@'\@)^ M#\ F-XB"}gs#w}1%ffJ'q=c#󆃻Sz+ۛ̅P\J v*7 Ni S=]{Zs=#h.D;kľ-Ollo\dxY]w֡6Ӆm s"S=#5NR" ?Z".P^V5~r>(WhJGB@&=3iȅ[P >X>俇/ffܔf gk!:RbʦִvTVLQd 2mSq5ٝTmY3xXFٶAwx2yLp3`&{cv\hL:Goߍ;eJSLLiHa -0|Vp5zMP7 r=GFRTEJ.^ɚx kp@;=ӹLxV O>[b[Csd*;t>9a6" BNɘ1b8̪nޢI #uTbqWѓFo՚lwUN Q*#,mI cf?tG|ND Y.NVR 8QK,u8jMϝA} VNR6 T7ob׽3.==!>C˘ȏ۸O`s(LFrWCM=,xLfQս\ H|+TڸHad F`ꞙjD3t[h|P0ѕ;tO 6-gˮT:В 0y2FZfPU8À^z᪞>BcG:*Za~4K" 6y&ܕuns _,j'ܨr(\gP0o(2[3٦[ afT(.71nZ&ݻUV ĞtD3h#-(jyyloT|KZӆIM9vV%_Zxi4nГ[7x =͉O6oi 8s&'"'H.59 ޤQ ?=.\#h_!CIԨn Esx<=pȥ& U]8S9 gH1m*bbl4p)8,,!r;e;]uBnD{\\fO) 5Bΐ).)"h;X 1۲md)5cx:H>{Y.hkB]|NPi#,ջ5̫z :B~wI}mc }?d Z&ϚyP;YRqD4cX 'ܞtUh*-WoDG7*k` 'A؝ ceFƪ;yΒy[@ -La/I׋65`!a2U]gTp\5qVE/^k'<Ԝi1ձwֳWN2DzǚȮ .#"][ zRnN Nd N nCWfS*5a~`^Fq Ͻw3DWwu+yyݾe+Nv\? TRPL yZn׭b4bӿDwL2T^#¾@^há:&{RDj̻T@IgQ75jukN&x/ɑǙ$ҧ6Xkrlk^5d\dڳ;:`Y|ԍ"U;Wf?$gl1O /ُ߀3idUsu|d+{|lI,kJvr񘢵R mzW=D,p }%1)mѦG~6R jĽZ9 8FpbKǮ!MKL!4kD4k}>Y:x拢 h5?epǒFa)[ ̠g1I.T,L(ߵ2WIHgjՈҡ|*=-{N^ Ƈ_5A"]#Ei#e`}~.W k4HWf :uOm;Rbg9nnX;q|`;1g?-9<}5[ӼTtaD1Z޺A"'!J3w ]l2PEcŴv4b|qmW&Ob` ,0붗д\VV) ̵5o †ؚZr8M cǐ/HIORQ2Ǽd@K)372.(S/晓Ahn wz(86ђ"C@:Ϊ:ef? Cq$l)yӵK8ҥy5#xc`ޠӑgxj^][CF_5Ӈs{F#ZH\VxgT/"㒯<>(  Q O 0 c${S* ak [S/)ur z#cZ3At ?Bf%'N h&"_h dQ;d/2$7O[$̟ٷ`:B^ڟD8*oFz-7BϏ$\:Á:$F+APiKl~UɯP; - [>M~#d!L8 6)12d )I|ƹ WzB֘\۩ȖD(:p+^X<dob ဠ"ǞG_%5Hv); #2)Y_u*n2lK Tj,>ޝͦ$t#z)7C5Cr*5u5LR.Jean-Sebastien Delfino }->y_֔y[|ʐ ԑGRA@_P/w  LҴCJim Jagielski Jim Jagielski Jim Jagielski "Jim Jagielski :`uY[bB383&@={tԓ9fTYW]8"Q   c%Jj^lI+ŗq=y-Йbtm}db 3 Lkr CnA|~Ak)4KyC,\\=[!qz|ZoM hŸF݂&{5$;%w2m֚ײQ5rLFTa0H\C=(Lw|    cv:2>cwz@bV]MG q۔j-3c Q-:ϥ͔BkNAnrT2vao8& QL٪G$z".""-_y ʾ]ާ>{OrleVٻO'QI`Py=6Yd(P#СW!.wLyj$,%DN.T`.ltĤg^܁4ԅ[nFŢ6b66mBȔ"F\+R>/jc?c@eܡԤalkM4A?uF_3=.g,?x$sǺؤq3!!]Wlw5XY{U5Կl1,tW) 9t&;(>7fr:w0,m:% Q  0z cB;sOaqXR0]MgXl8]4n5@SK9ߏ.`4j i|yVs,Jq Odc ~ '=qްEYe'\Q?Uˣ= zv:B$ym/ ? uYNEDQ  em)] O ]c/Z{ 2`R8~4ŋ~: l f.щ#\*e n'6@ґ䗽lʏ("`ZGG&C!Bl ^h?j;7%=(g^_;$v<@4j^q/oD\;̳daK(r Ux!Ӗ/BxyePI<@m) R>eRkƐcfu~xH5)՞VEU7#sMv,oOJ9'gH$$2WsIצrg>.hy};EL<dLa9.[EQ70rPl+9dcmY}jy8 Ǵ{eA\"!603!Б*PnH?7R߰ YUNr}L$#Hi$>vF #O]] cf gJ2V`eĉE򇾆coERˀ8xّa0ǜ5Q?pp=X6^Df{ oLwX,=;b.yFhYPI$WMJDԍmwl)Yb~!B@N G\3w5714^( ~it߿q3v.t̄`;1U% ˕vRXV.a\N{z*`LU cw->IHp` ERˀ  $O술_ֶ7I`QmpFBV+5\NXO ERˌGu׈}y~v ]( pB:KJܰxFӉ Z1hdĜFjI::?0,A(busz-Rx1cٓq&āMt]邒\AYnh|+⿗7޹3l)>a @m1pCjj}+439 tg'C\Q;ʹxn]>73>5*| uI ERˌ $O술'g# xVW)ܔB;u$Y d;ә;/.3&p,.' ՖU-rH0lnYJCLj嫨 N#z"v]\9t3@<]tf_ 4ߛM&qۻf ,MQ,X}{ i+գZNF`- .;]@>V{zPھ%Qr{To`EĪ%Mn#45;TԠ6P%50$BEaL.Љu w-n@qA4H"r>7g,p {d^JY&l` hҩh|zΤs|zX:9.- y^y,`fJ4%8͗U4 0e OwrU@}{`.GJoe Orton W;/   GD PE-&D S%qv볥FzF@lt 7Wxh}~k/Ry]VqR# xP+@FAf' K*Hӝ]씛nTUoR\QZ"PH2X V;G!FAȜ :Aȩ~Jv'Y k)u4֨X~0FBo OIoFpmsqF;/ GD DtF K|Z'Z9RkM+NrQ7݉ HEB)oM5x"d2֑U]w/ז!{w&} hVo}@=3FTc ܯ8Evwă{5+r/frgS`ΎFdFƴ舲4"+gEIAE/BkWк: `Ã*_G N_jgff?#Bojan Smojver 6 HE   MA3Ŕ'r-5kݬg8T>|~Yh[T9FDR*$D!7+G8a7y_GU`η=4DsE$$'erd2DŖ7w-҄p lSD`p!e?H=x0q qdN2x$*{I+ zU8>+>˷$LR$Η!ôA'le$%MO* Htȗ̻DdGG63rJ989{dl=G`ǟ-'hBbZ,kfmc[x;z70';Ie]b]D`fttCt8l7"7ԓ`+AI!+JM],3~h,JzggFn.K89]_J=#%_N$[0-[I_7DH fCf0Pb1 j\Y*St>`yO%ѬcÎC+u9l~DEW Jn_f/h{\s3)v8 {zjL#2!2WqS (}<6uYĬmJ XF@'HRG CW%H$    M43|Kr:E3+A4_B»1Rb#icTZ福H莖4md94#L/P:?43NUGj/s0#,.-FWT^,OZH 5bX(ϳ}g` src2}^ztxI<<e K]㦳J N$?z,$8 ۸w\X ͳaMۼ-j͎9I@8g%Jl=ɀD9 Vhc]M:|('iLi`g4 n`o}ăiIgIo8%iŔp-,\P͹R: "\'{"v88sԈ/b^PD%;Z G^O3w6нDSafl-`5 S;fާ/Whv0PƵp,آR;+Crk_/. fBZpkSp\t+ "ۿ ˑIݙxZ?-<{L\L% J D 7~/VcEB#W9,j?GjXG)ӈrk&ݴ&Issac Goldstand Y@8g  o"Gv. #WtJ79xL;}(GaOF@>` 7kcv>XАe-\OphUw,F@>? i`T1|K{\(^ +,F@>g6 T,t6rFdfxaPu5iQEj6 s^tF@? umKȁ8q1+AJЫʊM1JP6b/<%0w$|FG@f 7ZMuEo}[DaX$ai4n~눩iGC' Sander Temme "Sander Temme Sander Temme @)$\8 e=pL )C+adLgOEBFGg3 @«~@fxt!uDwcu]Z,\צIg:PjFG=G ,֨ F3pr! k7OF8$oʪxwXˆFG=) :Ys\+] >{a߱cNVb$B/{9sx_[+ Ԟ;FH E &b bt+HIlܷB+IΆ;[0I FG<+ ՜e45axN!g}%ߴMO/ [QW-CFGC!1 NiN/'g?4WU8E+mS[J)[eN`|Y@8g  o"cLs1cX,"Meқ*Uk{ FG?el 95.o^I0 䵧p}C ?vFG= f"nޱl grѝRNCVLJDhdFG<. 2å\xy <2F<)>.QWY q1G<Х*Henning Schmiedehausen 2NA"+  Z$ڋ8؇\ 2-&l.;N,ɝ=pƈFGCRu `(:O yۆJhhd%+XtR^ ;%σ FG= =0اn+QFBW / V4m5. JnMXl FGC ًh=dFO:30Q~*i]į%P{FH > `c0n MwІ[V%Êh(خUp&J' vad26DG<2 ePl]󌆔Ƀ\9Qk:GJd. >y D_K ߳Yfj=sW9^\!fAL IhC@]ڐ*-kNQt4IT8"pKC>x*Qw6.|o-\=<4;\7)4NL!$:0qjֲ`Q)-<t8$TyYp>dB=GPRj溇:F BF1/A-6 YFG;ʘ [OP8rtl!`WG.g}#XQ# VXBp`FGV .I~EQ/R<'$aF}-1\FG@ 1QyqϪG3.z8RS:2xS?TcFG@ i4 RͶ..G:9*xr>&q!%/.Oio/GB(Felix Meschberger ^'nwwH?X5܇jyJ)cbK}-^lEa-vȻ%S916Q77*Lu Ku"}w{4kDwO^1WZKyXʮncu!#=MWT3VBT̸`\抷 Y7xFe67߼98mK({IxYTumÿ&:]r<(0`1VjR #Vc9"}{h!)6ΚoԎ5\(mX_#*~1VTvV;,m`+C*"gRń`+nuw8"Guenter Knauf" ("CODE SIGNING KEY") `  P3| /h[ K8U%D[Xx)@ i16-5.l}*k}/!n3 &[0n1"ḦМy2p!y8?&qwDE7-N8Rx%{V~iT [iwø=[ 2 |KDwOj{p-W]5 bJ;Ll[_N9m Qq̟Aw-hu P2e[i=cp!>sJLdTQN: *#݀ ];Utټe*BZ#Y2N=1z;?).ēW t')/&[HKX4svz*!1E[XQ-_2$N&-QGv`^P[8J+1Q )v12W<bS?JIwڑKm2l9j8C:c6Vr}R* mcf P8\2izE䇦OpPoX*!_/j21擦"2^DTp:zҷ2sZ`SY`XzˎfNA|m'uW$LpE_d\0 OO@OEN  f /h[ ta搬dv(f7]WvLu? P3hJK t }© $1-srbl^~s*4TdhyX(a I4t`b|C꾊\̑\/sroFlˊUh P3) /h[ ] P3 U1f_7KrwӏEt@ձr.=KX gAVN{MaLL}V¢rK ^_B瀷0,>lUD5hܢ-O0o~h dcJVs0ŭW68h@b<[x]<"xiQۅ坈ap/2w=n#kMލi<]̴Hj_XDž]En!=  KUͶ@HFaaNY`> 9neQԐ2kH( ;nqߋ-kK@QǬq2_ "٦r nb0(xb]m$vHmf/yrHvQelATd`Q\,V ޶VKaf'KS1ޫ}̱e14bzl)!o݀1 5]5\295DQc1+\X;ZdQ1DH\A ʯ>yV>WM$[!F J^Ϝ>ܲyvUȓT% mH;Ks8e\nh8&P xMRpIݍkմW#kcS98oiESdVyScs٣T_ҌLX"}1NèKpPXA?`壝>4ԙ6+Q^B15<Ɩ9D"$/,4Jeff Trawick (CODE SIGNING KEY) 7 !KU    X.9 ,9"89)TUY7<c:3`h>1}лֱ7^g" FAV/3J4\{L?Ɉv(T @jcClJ3'/&K@~|4{Q !_ o0 t4J@N|rE˳!)SJ۵ӽ!#h]` [#yؐ@:`5< }Tꈼon 8 2Jm R np7O w-6)") sԭ E7Z0]- G[;o'vKm\`pY#GMq};E1ni8*l<~jvZŅoJ -f|2:۪ɾ|<ˠU\RupB&r=N>oY>kqA2T@Z)>M*jna>u `G 9_۵&\5hTJS}q^ sV*{:ufyT\g\v*{ KN@SI#.GM j\`|FWyo uQ3gϼl@z= j/w7QƭIxC7w KU X.9 ,HEoCa ^2m;;Edᕀ9n*~2^T_ txA†A^n6u 3ڟl GLf?dg&+p፜`g)\8dx QSE@jOc|'͗͟{E $Py#P JG;}C]6H &;,(6[tƲ:ΕT0#dǖ1 \ Ԓ^iub ֞.#:}%5nNߨ k|_7=WQyȺa <'E%SX!"VB$}eE,;+lT[ƨbTkM 7JĖN% /90[;%oZ[R73ȿipJN_WfHb0D1({K60?.L;(-ę K*vWeEO>YkB$@5ӓzC:v9x+MTxSwK7'O#7lL,1KȲ:+Iho-v k-E8q^lR=8pJO; d^+ Ud&ns \W7qѧ{(h 5<$Bg>t )3Cýjq۱[̴US-% Hj.KL/05*^jYsM0P:+$4ȡ\ΖnKR7h"$ΜZ rQS,›ސAP#-b= [(ѸEe5;8O_B3/(jy w+!Eric Covener : $   Oo,  xmYTo S=S@u4uOǗ#"iNT{;jk&A?HEҦlȌ5У;^#X 5Jp65xT4{ڟ,^«e>ah44I #\dŸ(8--1`[c?_uƋO#\`n 5ݴR=;1z;~J@wrdp @\u nw:6.Oo'1s ǝ]dQW:YޙbM6rD 57ƾJK>}  N>Er%j0ޭl8γ@iXI$JsC+?Ͳ\<^ct[}M>&CByٰ3F|YJ݁7,mQkZAK7~瓸@M Dan Poirier Dan Poirier +b?5,-gؓ~UYk~`QNi+_ t\ߩ% ݴ9QAN ޓ7Q%fѐp#(`ӢID2q;zgKLFeyedwS<w8-ܚ#i}sW |'yK_i!Ƌng'-`=dŵdy_i,m/ kPMT%N>K{2GN#{B-⃷iYxZ`9\#GpBB́*vN{;Zտ3.'Ύ%Cg~C4vge?CJ޹;^!sL9 ;NU1-Vqg_V8ϱ(#9W@Ͻ),Am{E.*Æj[~9%N? (ƙEJ;*ÑN2D三]GL׫@Joseph Edward Bergmark (CODE SIGNING KEY) ّ|@7,x> Ϳy/:K?B_&wl`7⏥Y!g~O 7fGc%ϗ7q :2e\ҜrԦ|5w2/Anknh\36SFzpԵSk'~``_\,U f11(Y4(Uq#:MGr !gDc&p6)l_h%JSB%' :͍[bu!餋-wl(f  ֙L%~V웠WJ+a$] Y3lKT t Oue~2y9RӾd4NJKHN-:M6oRfJ<}78w5JO.ߪeZLYܛh]:U~R&{fyW\2Zm^PwJ6EVXFډ/]s[^3f LҞ [{r^\Jŀo ԅn?o_OÈI{l++!@pN< |\ejS.e°#wRK":14SAݨRCV%p8A~#(␱濱3EeXJT  ˉCۍOz$Dޕ4 )kt%Ic#Sؔb;wژZ+:EBsNqRv's|׾h-/~ -ge@,#{gt tTvA Cѭ<;qxZue\S,Օi!~%&KS V!gBCyru4rK'T~\eO$eO8fѡb#cW'\"KK:no>{>sP<-~W`TwoR u5LR.Jean-Sebastien Delfino }-pRzt>Y;шK(ż̈LҴCJim Jagielski Jim Jagielski Jim Jagielski "Jim Jagielski :`u7%}LJ++Gg2u!}BwS MM ?Rzuzp5#nhXin墰QUI4?MKP9A2'<ۧռ{A rz-@.u"KmRZHۨ&5^ l0; Y(~{IgwhZ+ja2x Q#I #:8^g늋aAZ8DȪeCV?sىL'vR_:d>TTn,I×A\-K4?{(/uo ;5I(H6b?f wz@u-5ʻTgETyܲY PTFME* aըt2megFצo`T-MN(4ya؁]8a{iec.Ѡ'vŢ;cʳ~f,c~M8% 3Vu="(`Lԍ9jBN8WѸqPDBf_:䶌Lj]R<Lͨ5Thomas Dudziak (CODE SIGNING KEY) MMʨJr}#9ta´rD;ѝ20]6wX؆m!" VDw[ nD>V1D(>JJ\v$/t@jfZ]4. JP[-#fMr ƐDKWݚvAcNHwzʑP]R9: fIǤߏ rr]M3黍G֠gУ2~2azeWn F61x&N/w2F"QPo$4`NG>?$L ʇ 6$> !oX}5*( Ru|Я, jB7x#u)2.N7(od"K@Om$9 AgQG&}+q@Y P!J;\B6JOXЇDkd0{:Gh0|*ϔ-Z: 7IeBIcVjbdE' Li}S{Šg&\%,w/$K1,%Ԑfm{6")_J6).pK K{оI'k+Eu5IUUooM7:hGP̠<9D  |8 8i{w^q0TƓ뒗s )k㍇ U@.BlJ4_Y=4=ᝎTj)S뭨`%Jn$+%" WqIʤHY^얤 ąY',/ZTཙAK\2[pRDZDLҸ=Antoine Levy-Lambert (CODE SIGNING KEY) ^͉{Sj3t*fU%9u1h_ĀdϟFOK9P@aPLiKZ^+N#oL':'@V|D6{SŢEF̔ O T積]šlI*\ =E).jch~DfP]TK]nw_b*&Ujøe"N"I}*VAϝ{w( T.n1w\"o>=}+⹣ VR rRgAgL$nJ"(?*MLʷWJUsoω(3HMI9__YFҞ(Yqŀo5H)CX7<=9(j$uVTF6pe4\\ $= P_قFY(]"..FbB(#+!8g*]b]GLѭ@Joseph Edward Bergmark (CODE SIGNING KEY) ّ|@76y|G6?Ⱥ;|?? F;P2qGJ%HLʰ?(˟o}#>P `j}c>}\(f#SBL : 3$@ē"_[Ydc{|}CZGE'[,"/};~XB\6íq7Q(NPmՑ^ zBSfiOngrR_ᣨo[;Y*nP[ֺ!R3E'P,m*[\h٪BBVi4F"O_^?쀕)lXDL^Mqօfb Q$;M,v,H_p2ub;*̆[t]L3Ĭ4M~A:դS:sC3>Q D r]Ur Mm !WHf&O.Z}LҴ(5Jim Jagielski (Release Signing Key) Jim Jagielski Jim Jagielski 4vy6m)Gk]7G ֫OpW } qQsNx@{$  xyEm63<&jZ';FZSZc1`Wk,+H<~Er:!E F@t+Ц o+d7K4FWO;)\Ej1ߔPm֖ɻ NЍ&)fI_zN6bPjSL6/ CnmmSl"t<3Theojy"ޗ28")RQ0Ws`5&@uSI=![ YA\V DZk(jDiu^9QnWR+JИ)e?;r곟ìe^.?w'V).Ѱ8u aT,e mIy ;VSO6t1p@!7:h}fOvjZ#5Šr#EL Sander Temme "Sander Temme Sander Temme *Sander Temme cdsEVS7{ivBDX=y\ٛ҇wᑿlw(`SA["= J qt>3r /4HEP%2L=r,}jPa Cԣ[G'}݃b;X(v#pº' ނ-Mej<-Ժ$n|SR0cjDqԘ܋]F3LG=wx(TJ8"oQ5y^Zh{ yp1<~yen۩,LO:'XmS>jFn}ƠRSIz?(])?s+Bq#G[y c߁țJs:Yl;Ho.IFcD(ZP5m_`?Bȇys ~:4ENdqC:?Gm`{Jnh*-Z:J,D$P98*ꯠ (i`۹Mb q0[saIn]K6=k)V|˛OPI v͉B?`Hn >עJ4%?x4fثOwhYYA8D'3R,鄝I6)+(V VIRug-)I =@_qD4"T/9<e34ͧ%*^rskҤɜ ц|R~ωRYy#9v*b.t̀lv 4 ?y;wZ_W΍ đ߮`hJ \XM^8(dC&][Ů 2Efw MٗsT:dYoȏS|UO)վ!%a?\d3:dYhٮ~t<{0h q1 '2HC?piwnv s&ˍYܓ;d튶k |iy]p?. -:]oB҅5Dv#Y>$s/- T/=(ІW߄0/1iH"Eric Covener 7 !Oo+    xmYT+ CDY@X㙄>CǾ~ dhF-䮳ĴgǬ1d}:#)Iu,N ocyÇJ/<5oV PX3|IWtt Ƈ8|/* ~%*6cKJt@ ܥ QM*TVC lp0/90DC4aSh|uDTz o#ՓΏ!=.PblNA}h W6Iޱ~AHr$0DvF@2!=r]d37N17>[lvY>H7G;Udo d;@G<#v2QGw "(覎qL ܅ ش [sE\v39sCFMEB:ވ صDc֜jzfJG=~!\t83yjfߓ*bύ-*t K*vn(aD%"1y0JRKu#m;HTif (r>`fv5KQJZ؈Ⳉ67d{EÂoBPTʵzB Vr˭] y˰8D41=L56 *H^ 80;JXrHa2Pw?M0\vzShcf޲b/U5"dGdD0WÂo}G_- `$8ΣW 1p4f4>4~44,y9)J'T!L陗,w=:(K*lCn2!GRkӇW Hds6AgZKU`  ƷuLACRP5bE)o 3 Jt'0I7Bn/MG&=& j1$g^6$c]V|oA.= O&UlGxF&_+0ߞw qky<7/# K*v xmYTK*1>|w#ZdfOy_=?c{]a`y(omc15P60YzWU֕dBSoDOqmt3ES h0P |/ݹ ?+"%K312搩17Ɲa v7Ҟxu~yrbқ)F ӳFh_,ˮuv=ǻ%%9x=:̌) ]^c&U*K8P2ȸ:ڠ..L!aBi?o۝H!*E$b6˅󯱄~Y8QDw[Navwk6;7=.ߏ.zj׎G^6I'f\얽sLTYK, A ״6 iwɀf@XEfF"=tP2X.LiBKcMdYu>Hi3Lm{đ)debian/apache2.postinst0000664000000000000000000003206612262777736012332 0ustar #! /bin/bash # postinst script # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package # # XXX remove # echo apache2.postinst $@ running OBSOLETE_CONFFILES="/etc/apache2/mods-available/authz_default.load /etc/apache2/mods-available/authn_default.load /etc/apache2/mods-available/mem_cache.load /etc/apache2/mods-available/mem_cache.conf /etc/apache2/mods-available/authn_alias.load /etc/apache2/mods-available/cern_meta.load /etc/apache2/mods-available/disk_cache.load /etc/apache2/mods-available/disk_cache.conf /etc/apache2/mods-available/ident.load /etc/apache2/mods-available/imagemap.load /etc/apache2/mods-available/version.load" MOVED_CONFFILES="/etc/bash_completion.d/apache2.2-common:/etc/bash_completion.d/apache2 /etc/apache2/sites-available/default:/etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default-ssl:/etc/apache2/sites-available/default-ssl.conf /etc/apache2/conf.d/charset:/etc/apache2/conf-available/charset.conf /etc/apache2/conf.d/localized-error-pages:/etc/apache2/conf-available/localized-error-pages.conf /etc/apache2/conf.d/other-vhosts-access-log:/etc/apache2/conf-available/other-vhosts-access-log.conf /etc/apache2/conf.d/security:/etc/apache2/conf-available/security.conf" # the functions below need to be idempotent, however we guess the upgrade based # on obsolete conffiles which might be removed anytime. Thus, remember we were # already in there once. WHEEZY_UPGRADE=0 # n.b you can't rely on $2 (the last installed version) for upgrades, as # the user might have been using apache2.2-common only. Let's pretend we're # upgrading if there is either a /etc/apache2/.apache2_mpm_selected file # around or an /etc/apache2/.apache2_upgrade file exists. we_are_upgrading_from_wheezy() { if [ -n "$2" ] && dpkg --compare-versions "$2" le-nl "2.3"; then WHEEZY_UPGRADE=1 return 0 fi # this check is a probably tautology but makes it easier to understand # the logic if [ -n "$2" ] && dpkg --compare-versions "$2" ge-nl "2.3"; then return 1 fi if [ -e /etc/apache2/.apache2_mpm_selected ] ; then WHEEZY_UPGRADE=1 return 0 fi if [ "$WHEEZY_UPGRADE" -eq 1 ] ; then return 0 fi for CONFFILE in $OBSOLETE_CONFFILES ; do if [ -e "$CONFFILE.dpkg-backup" ] || [ -e "$CONFFILE.dpkg-remove" ] ; then WHEEZY_UPGRADE=1 return 0 fi done for CONFFILE in $MOVED_CONFFILES ; do OLDCONFFILE=$( echo "$CONFFILE" | cut -d: -f1 ) if [ -e "$OLDCONFFILE.dpkg-remove" ] ; then WHEEZY_UPGRADE=1 return 0 fi done return 1 } is_fresh_install() { if [ -z "$2" ] ; then return 0 fi return 1 } # The two functions below are licensed GPL-2+ and was written by dpkg maintainers # See the dpkg-maintscript-helper script for details remove_conffiles() { # we can't use dpkg-maintscript-helper as we shifted conffiles from the # apache2.2-common package to apache2, too. The tool can cope with # that, but additionally we didn't require apache2 to be installed. This # yields the wrong result when upgrading such an installation if we_are_upgrading_from_wheezy $@ ; then for CONFFILE in $OBSOLETE_CONFFILES ; do if [ -e "$CONFFILE.dpkg-backup" ]; then mv -f "$CONFFILE.dpkg-backup" "$CONFFILE.dpkg-bak" fi if [ -e "$CONFFILE.dpkg-remove" ]; then echo "Removing obsolete conffile $CONFFILE ..." rm -f "$CONFFILE.dpkg-remove" fi done fi } mv_conffiles() { # same rationale as above if we_are_upgrading_from_wheezy $@ ; then for CONFFILE in $MOVED_CONFFILES ; do OLDCONFFILE=$( echo "$CONFFILE" | cut -d: -f1 ) NEWCONFFILE=$( echo "$CONFFILE" | cut -d: -f2 ) rm -f $OLDCONFFILE.dpkg-remove [ -e "$OLDCONFFILE" ] || continue echo "Preserving user changes to $NEWCONFFILE (renamed from $OLDCONFFILE)..." mv -f "$NEWCONFFILE" "$NEWCONFFILE.dpkg-new" mv -f "$OLDCONFFILE" "$NEWCONFFILE" done if [ -d /etc/apache2/conf.d ] && [ ! "$(ls -A /etc/apache2/conf.d)" ] ; then echo "Removing obsolete directory /etc/apache2/conf.d" rmdir /etc/apache2/conf.d fi if [ -d /etc/apache2/conf.d ] && [ "$(ls -A /etc/apache2/conf.d)" ] ; then echo "Directory /etc/apache2/conf.d is not empty - leaving as is" echo "Please note, that directory is considered obsolete and not read anymore by default" # XXX order of processing??? this may become empty later on (after upgrade of apache2-doc) ls -A /etc/apache2/conf.d fi fi } enable_default_mpm() { mpm="mpm_event" if we_are_upgrading_from_wheezy $@ && [ -e /etc/apache2/.apache2_mpm_selected ]; then tmpmpm=$(grep -v "^#" /etc/apache2/.apache2_mpm_selected | head -n1) case "$tmpmpm" in apache2-mpm-worker) mpm="mpm_worker" ;; apache2-mpm-event) mpm="mpm_event" ;; apache2-mpm-prefork) mpm="mpm_prefork" ;; apache2-mpm-itk) # apache2-mpm-itk is installed, which is a # transitional package depending on # libapache2-mpm-itk which will enable itself # in its maintainer scripts. mpm="mpm_prefork" ;; *) # default MPM for upgrading in case we got an unrecognized # hint file mpm="mpm_event" ;; esac # No -m here, we pretend the user picked the MPM as this choice comes # from a 2.2 package relation a2enmod -q $mpm return 0 fi if is_fresh_install $@ ; then a2enmod -m -q $mpm fi } enable_default_modules() { if is_fresh_install $@; then for module in authz_host auth_basic access_compat authn_file authz_user \ alias dir autoindex \ env mime negotiation setenvif \ filter deflate \ status ; do a2enmod -m -q $module done elif we_are_upgrading_from_wheezy $@; then for module in authn_core authz_core filter access_compat ; do a2enmod -m -q $module done elif dpkg --compare-versions "$2" "le" "2.4.6-1~" ; then # These modules had dependencies missing in the initial 2.4 upload for module in auth_basic auth_digest auth_form cache_disk include ratelimit mpm_event do if [ -e /etc/apache2/mods-enabled/$module.load ] ; then # If module is enabled, enable again to # enable new dependencies a2enmod -m -q $module fi done fi } enable_default_conf() { if is_fresh_install $@ || we_are_upgrading_from_wheezy $@ ; then for conf in charset localized-error-pages other-vhosts-access-log security ; do a2enconf -m -q $conf done fi # This line must catch upgrades, upgrades from Wheezy und fresh # installs if dpkg --compare-versions "$2" "le" "2.4.1-4" ; then a2enconf -m -q serve-cgi-bin fi } install_default_site() { if we_are_upgrading_from_wheezy $@ ; then # by here, the old default sites were already renamed. Thus, the links # are dangling for SITE in /etc/apache2/sites-enabled/000-default /etc/apache2/sites-enabled/default-ssl ; do if [ -L $SITE ] ; then target=$(readlink -e "$SITE") || true sitename=$(basename "$SITE") if [ -z "$target" ] ; then rm -f $SITE a2ensite -q "$sitename" fi fi done elif is_fresh_install $@ ; then if [ ! -L /etc/apache2/sites-enabled/000-default.conf -a \ ! -f /etc/apache2/sites-enabled/000-default.conf ]; then a2ensite -q 000-default fi touch /var/log/apache2/error.log /var/log/apache2/access.log chown root:adm /var/log/apache2/error.log /var/log/apache2/access.log chmod 0640 /var/log/apache2/error.log /var/log/apache2/access.log touch /var/log/apache2/other_vhosts_access.log chown root:adm /var/log/apache2/other_vhosts_access.log chmod 0640 /var/log/apache2/other_vhosts_access.log fi } # XXX: This site is installed in the apache2-data package. Should the postinst # scriptlet move there too? install_default_files() { if is_fresh_install $@ || we_are_upgrading_from_wheezy $@ ; then if [ ! -e /var/www/index.html -a \ ! -h /var/www/index.html -a \ ! -e /var/www/index.cgi -a \ ! -e /var/www/index.pl -a \ ! -e /var/www/index.php -a \ ! -e /var/www/index.xhtml -a \ ! -e /var/www/index.htm ] ; then cp /usr/share/apache2/default-site/index.html /var/www/html/index.html fi fi } # XXX: Find out whether I am on crack removing stale modules that way refresh_modules() { if we_are_upgrading_from_wheezy $@ && [ -d /etc/apache2/mods-enabled/ ] ; then shopt -s nullglob for link in /etc/apache2/mods-enabled/*.load ; do target=$(readlink "$link") || true if [ -z "$target" ] ; then continue fi module=$(basename "$link" | sed 's/\.load//') || true if [ ! -e "/etc/apache2/mods-enabled/$target" ] ; then echo "disable obsolete module $module" a2dismod -m -q "$module" if [ "$module" = "disk_cache" ] ; then echo "Enable cache_disk as disk_cache was enabled in Apache 2.2" # ditto, we pretend it was the user's # choice not to use -m here a2enmod -q cache_disk fi fi # the module is already enabled, however # dependencies could have changed hence re-call # a2enmod again. # Example: the deflate module when upgraded from # Wheezy if [ -e "/etc/apache2/mods-enabled/$target" ] ; then a2enmod -m -q "$module" fi done fi } move_httpd_conf() { if we_are_upgrading_from_wheezy $@ ; then if [ -e /etc/apache2/httpd.conf ] && [ -f /etc/apache2/httpd.conf ] ; then local md5sum="$(md5sum /etc/apache2/httpd.conf | sed -e 's/ .*//')" if [ $md5sum = "d41d8cd98f00b204e9800998ecf8427e" ] || [ $md5sum = "a20c3e53dd07836481a5e64bc71e1a33" ] then echo "Remove obsolete configuration file /etc/apache2/httpd.conf" rm -f /etc/apache2/httpd.conf else if [ -d /etc/apache2/conf-available/ ] && [ ! -f /etc/apache2/conf-available/httpd.conf ] ; then echo "Detected legacy httpd.conf - moving file to /etc/apache2/conf-available/httpd.conf" mv /etc/apache2/httpd.conf /etc/apache2/conf-available/httpd.conf a2enconf -q httpd fi fi fi fi } migrate_data() { #XXX: jimjag recommends purging the cache albeit it is probably not # technically required. #if we_are_upgrading_from_wheezy $@ ; then # # /var/cache/apache2/mod_disk_cache -> /var/cache/apache2/mod_cache_disk # if [ -d /var/cache/apache2/mod_disk_cache ] && [ "$(ls -A /var/cache/apache2/mod_disk_cache)" ] ; then # echo "Migrate mod_disk_cache cache data to /var/cache/apache2/mod_cache_disk/" # mv /var/cache/apache2/mod_disk_cache/* /var/cache/apache2/mod_cache_disk/ # rmdir /var/cache/apache2/mod_disk_cache # fi #fi if we_are_upgrading_from_wheezy $@ ; then if [ -d /var/cache/apache2/mod_disk_cache ] ; then echo "Purge obsolete mod_disk_cache cache data in /var/cache/apache2/mod_cache_disk/" rm -rf /var/cache/apache2/mod_disk_cache fi fi } warn_itk_users() { # the function below only applies to Debian Testing users. Stable users are properly upgraded if [ -n "$2" ] && dpkg --compare-versions "$2" 'lt' '2.4.7-1~' && dpkg --compare-versions "$2" 'ge' '2.4.1-1' ; then local mpm="" [ -e /etc/apache2/.apache2_mpm_selected ] && mpm=$(grep -v "^#" /etc/apache2/.apache2_mpm_selected | head -n1) if [ "$mpm" = 'apache2-mpm-itk' ] ; then echo "=======================================================================" echo "You appear to be using the ITK MPM. Starting with Apache2 2.4.7-1 this" echo "is a separate package not bundled with Apache anymore. Moreover, it is" echo "not a MPM anymore. This upgrade will switch your MPM to 'prefork'. If" echo "you plan to use ITK in future, please do: " echo "" echo " apt-get install libapache2-mpm-itk" echo "" echo "=======================================================================" fi fi } #XXX: Deal with the sites-available/sites-enabled *.conf transition, e.g. rename # all files which look like site configuration? case "$1" in configure) remove_conffiles $@ mv_conffiles $@ enable_default_mpm $@ refresh_modules $@ install_default_files $@ enable_default_modules $@ enable_default_conf $@ install_default_site $@ move_httpd_conf $@ migrate_data $@ warn_itk_users $@ # post installation cleanup if [ -e /etc/apache2/.apache2_mpm_selected ] ; then rm -f /etc/apache2/.apache2_mpm_selected fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac #DEBHELPER# # And now the traditional insanity of apache2 upgrades (see #390823): # If everything went well, we need to purge apache2.2-common's postrm, or # purging that package will remove our logs, caches, ... if [ "$1" = configure ] && we_are_upgrading_from_wheezy $@ ; then oldpostrm=$(dpkg-query -c apache2.2-common postrm 2>/dev/null || true) if [ -n "$oldpostrm" ] ; then rm -f "$oldpostrm" fi fi exit 0 # vim: syntax=sh ts=4 sw=4 sts=4 sr noet debian/apache2-mpm.postinst.in0000664000000000000000000000256712261546711013513 0ustar #! /bin/bash # postinst script for apache2-mpm-__TYPE__ # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure) if [ -n "$2" ] && dpkg --compare-versions "$2" lt "2.4.4-4" ; then if [ -d /usr/share/doc/apache2-mpm-__TYPE__ ] ; then RET=0 rmdir /usr/share/doc/apache2-mpm-__TYPE__ > /dev/null 2>&1|| RET=$? if [ $RET = 0 ] ; then ln -s /usr/share/doc/apache2 /usr/share/doc/apache2-mpm-__TYPE__ fi fi fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 debian/libapache2-mod-proxy-html.postinst0000664000000000000000000000262112261546711015673 0ustar #! /bin/bash # postinst script for libapache2-mod-proxy-html # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure) if [ -n "$2" ] && dpkg --compare-versions "$2" lt "1:2.4.4-2" ; then if [ -d /usr/share/doc/libapache2-mod-proxy-html ] ; then RET=0 rmdir /usr/share/doc/libapache2-mod-proxy-html > /dev/null 2>&1|| RET=$? if [ $RET = 0 ] ; then ln -s /usr/share/doc/apache2-bin /usr/share/doc/libapache2-mod-proxy-html fi fi fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 debian/migrate-sites.pl0000664000000000000000000000275012261546711012313 0ustar #! /usr/bin/perl # # Rename existing sites in $SITES_AVAILABLE to make sure they have a # .conf suffix. update symlinks in $SITES_ENABLED if necessary # # Warning: This script does not work if you didn't use a2ensite/a2dissite to # manage your sites # use strict; use File::Copy; use File::Spec; use File::Basename; my $SITES_AVAILABLE = "/etc/apache2/sites-available"; my $SITES_ENABLED = "/etc/apache2/sites-enabled"; my %SITES = ( "$SITES_AVAILABLE" => [], "$SITES_ENABLED" => [] ); sub error { my $reason = shift; print STDERR "$reason\n"; exit 1; } foreach my $key (keys %SITES) { error("No such directory: $key") unless -d $key; opendir(DIR, $key) || error("$key: $!"); push $SITES{$key}, grep { m#^[^\.]# && $_ !~ m/default|default-ssl/ && $_ !~ m#\.conf$# } readdir(DIR); closedir(DIR); } foreach my $site (@{ $SITES{$SITES_AVAILABLE} }) { print("rename $site -> $site.conf\n"); my $curname = $SITES_AVAILABLE . "/" . $site; my $newname = $curname . ".conf"; my $curlink = $SITES_ENABLED . "/" . $site; my $newlink = $curlink . ".conf"; if (-e $curname) { move($curname, $newname) || error("Could not rename file $curname: $!"); if ( grep { $_ eq $site && -l $SITES_ENABLED . "/" . $_ } @{ $SITES{$SITES_ENABLED} } ) { print("re-enable site: $site as $site.conf\n"); symlink( File::Spec->abs2rel( $newname, dirname($newlink)), $newlink ) || error("Could not create link $newlink: $1"); if ( -l $curlink ) { unlink($curlink) } } } } debian/apache2.lintian-overrides0000664000000000000000000000073412262777736014102 0ustar # Log files must not be world readable because they may contain sensitive # information non-standard-dir-perm var/log/apache2/ 0750 != 0755 # The default configuration refers to this directory. Thus it should exist on # default installations. package-contains-empty-directory usr/lib/cgi-bin/ # Apache uses var/www/html/ as a new default document root # See #730372 and https://lists.debian.org/debian-devel/2012/04/msg00301.html apache2: dir-or-file-in-var-www var/www/html/ debian/clean_config_vars0000775000000000000000000000237412261546711012573 0ustar #! /usr/bin/perl use strict; my %FLAGS = { 'CFLAGS' => $ARGV[0], 'CPPFLAGS' => $ARGV[1], 'LDDFLAGS' => $ARGV[2], }; sub clean_and_deduplicate { my $arg = shift; my $return_flags = ""; my @flags = split(/\s+/, $arg); my %seen = (); my @flags = grep { ! $seen{ $_ }++ } @flags; foreach my $flag (@flags) { #print("FLAG: $flag\n"); $return_flags .= "$flag " unless $flag =~ m/PLATFORM/; } return $return_flags; } chdir("debian/tmp/usr/share/apache2/build/") || die("$1"); open(CONFIG_VARS, "<", "config_vars.mk") || die("config_vars.mk: $!"); open(TMP_CONFIG_VARS, ">", "tmp_config_vars.mk") || die("tmp_config_vars.mk: $1"); while(my $line = ) { chomp $line; unless ($line =~ m/(^|_)(LD|CPP|C)FLAGS/) { print TMP_CONFIG_VARS "$line\n"; } else { my ($flag, $value) = split(/\s*=\s*/, $line, 2); if (exists $FLAGS{$flag}) { $value .= ' ' . $FLAGS{$flag}; } my $mangled = clean_and_deduplicate($value); print "mangle: $flag: '$value' => '$mangled'\n"; printf TMP_CONFIG_VARS "%s = %s\n", $flag, $mangled; } } close(CONFIG_VARS); close(TMP_CONFIG_VARS); unlink("config_vars.mk") || die("unlink: config_vars.mk: $1"); rename("tmp_config_vars.mk", "config_vars.mk") || die("rename: tmp_config_vars.mk: $1"); debian/apache2-suexec.postinst.in0000775000000000000000000000103712261546711014210 0ustar #! /bin/sh # postinst script for apache2-suexec-__TYPE__ set -e case "$1" in configure) update-alternatives --install /usr/lib/apache2/suexec suexec /usr/lib/apache2/suexec-__TYPE__ 10 \ --slave /usr/share/man/man8/suexec.8.gz suexec.8.gz /usr/share/man/man8/suexec-__TYPE__.8.gz ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 0 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 debian/patches/0000775000000000000000000000000012317242045010617 5ustar debian/patches/add-itk-to-build-system.patch0000664000000000000000000000212712261546711016223 0ustar Add the new MPM to the build system as an alternative to the other MPMs and add itk's dependency to libcap. --- a/server/mpm/config2.m4 +++ b/server/mpm/config2.m4 @@ -1,7 +1,7 @@ AC_MSG_CHECKING(which MPM to use by default) AC_ARG_WITH(mpm, APACHE_HELP_STRING(--with-mpm=MPM,Choose the process model for Apache to use by default. - MPM={event|worker|prefork|winnt} + MPM={event|worker|prefork|winnt|itk} This will be statically linked as the only available MPM unless --enable-mpms-shared is also specified. ),[ @@ -66,6 +66,9 @@ else AC_MSG_ERROR([MPM $i is not supported on this platform.]) fi + if test "$i" = "itk" ; then + AC_CHECK_LIB(cap, cap_init) + fi done if test $mpm_build = "shared"; then --- a/modules/arch/unix/config5.m4 +++ b/modules/arch/unix/config5.m4 @@ -3,6 +3,7 @@ if ap_mpm_is_enabled "worker" \ || ap_mpm_is_enabled "event" \ + || ap_mpm_is_enabled "itk" \ || ap_mpm_is_enabled "prefork"; then unixd_mods_enable=yes else debian/patches/suexec_is_shared.patch0000664000000000000000000000115612261546711015165 0ustar #! /bin/sh /usr/share/dpatch/dpatch-run ## 032_suexec_is_shared by Adam Conrad ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: Patch to allow suEXEC as shared. @DPATCH@ --- a/os/unix/unixd.c +++ b/os/unix/unixd.c @@ -266,6 +266,10 @@ /* Check for suexec */ unixd_config.suexec_enabled = 0; + /* If mod_suexec isn't linked in, we shouldn't test for the binary */ + if (ap_find_linked_module("mod_suexec.c") == NULL) { + return; + } if ((apr_stat(&wrapper, SUEXEC_BIN, APR_FINFO_NORM, ptemp)) != APR_SUCCESS) { return; debian/patches/split-logfile.patch0000664000000000000000000000215212317242045014412 0ustar Description: fix completely broken split-logfile command Author: Holger Mauermann Bug: https://issues.apache.org/bugzilla/show_bug.cgi?id=56329 Bug-Ubuntu: https://launchpad.net/bugs/1299162 Reviewed-by: Robie Basak Last-Update: 2014-04-03 --- a/support/split-logfile.in 2014-02-13 13:11:33.000000000 +0100 +++ b/support/split-logfile.in 2014-03-28 20:27:59.600942795 +0100 @@ -29,7 +29,7 @@ use strict; use warnings; -my %is_open = (); +my %log_file = (); while (my $log_line = ) { # @@ -54,10 +54,9 @@ # If the log file for this virtual host isn't opened # yet, do it now. # - if (! $is_open{$vhost}) { - open $vhost, ">>${vhost}.log" + if (! $log_file{$vhost}) { + open $log_file{$vhost}, ">>${vhost}.log" or die ("Can't open ${vhost}.log"); - $is_open{$vhost} = 1; } # # Strip off the first token (which may be null in the @@ -65,6 +64,6 @@ # record to the current log file. # $log_line =~ s/^\S*\s+//; - printf $vhost "%s", $log_line; + print {$log_file{$vhost}} $log_line; } exit 0; debian/patches/build_suexec-custom.patch0000664000000000000000000000367512261546711015643 0ustar Description: add suexec-custom to the build system Forwarded: not-needed Author: Stefan Fritsch Last-Update: 2012-02-25 --- a/Makefile.in +++ b/Makefile.in @@ -239,14 +239,16 @@ fi install-suexec: - @if test -f $(builddir)/support/suexec; then \ + @if test -f $(builddir)/support/suexec-pristine && test -f $(builddir)/support/suexec-custom; then \ test -d $(DESTDIR)$(sbindir) || $(MKINSTALLDIRS) $(DESTDIR)$(sbindir); \ - $(INSTALL_PROGRAM) $(top_builddir)/support/suexec $(DESTDIR)$(sbindir); \ - chmod 4755 $(DESTDIR)$(sbindir)/suexec; \ + $(INSTALL_PROGRAM) $(top_builddir)/support/suexec-pristine $(DESTDIR)$(sbindir); \ + chmod 4755 $(DESTDIR)$(sbindir)/suexec-pristine; \ + $(INSTALL_PROGRAM) $(top_builddir)/support/suexec-custom $(DESTDIR)$(sbindir); \ + chmod 4755 $(DESTDIR)$(sbindir)/suexec-custom; \ fi suexec: - cd support && $(MAKE) suexec + cd support && $(MAKE) suexec-pristine suexec-custom x-local-distclean: @rm -rf autom4te.cache --- a/support/Makefile.in +++ b/support/Makefile.in @@ -1,7 +1,7 @@ DISTCLEAN_TARGETS = apxs apachectl dbmmanage log_server_status \ logresolve.pl phf_abuse_log.cgi split-logfile envvars-std -CLEAN_TARGETS = suexec +CLEAN_TARGETS = suexec-pristine suexec-custom bin_PROGRAMS = htpasswd htdigest htdbm ab logresolve httxt2dbm sbin_PROGRAMS = htcacheclean rotatelogs $(NONPORTABLE_SUPPORT) @@ -72,9 +72,13 @@ checkgid: $(checkgid_OBJECTS) $(LINK) $(checkgid_LTFLAGS) $(checkgid_OBJECTS) $(PROGRAM_LDADD) -suexec_OBJECTS = suexec.lo -suexec: $(suexec_OBJECTS) - $(LINK) $(suexec_OBJECTS) +suexec-pristine_OBJECTS = suexec.lo +suexec-pristine: $(suexec-pristine_OBJECTS) + $(LINK) $(suexec-pristine_OBJECTS) + +suexec-custom_OBJECTS = suexec-custom.lo +suexec-custom: $(suexec-custom_OBJECTS) + $(LINK) $(suexec-custom_OBJECTS) htcacheclean_OBJECTS = htcacheclean.lo htcacheclean: $(htcacheclean_OBJECTS) debian/patches/ignore-quilt-dir0000664000000000000000000000202712265007431013736 0ustar commit 60f2545f1858415d31dcf0bb625262216c7821cd Author: Stefan Fritsch Date: Sat Nov 16 23:49:04 2013 +0000 Explicitly list in which directories to look for config*.m4 files. If some distributor patches a config*.m4 file with quilt, that will place a copy of the original file in .pc/ . Doing a naive "find ." will then cause both the original and the patched m4 file to be included, causing havoc later on. PR: 55787 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1542615 13f79535-47bb-0310-9956-ffa450edef68 Index: apache2/build/config-stubs =================================================================== --- apache2.orig/build/config-stubs +++ apache2/build/config-stubs @@ -15,7 +15,7 @@ # config files without a number are sorted before those with a number. # -configfiles=`find . -name "config*.m4" | \ +configfiles=`find os server modules support -name "config*.m4" | \ sed 's#\(.*/config\)\(.*\).m4#\20 \1\2.m4#' | \ sort | \ sed 's#.* ##'` debian/patches/make_include_safe.patch0000664000000000000000000000427512261546711015273 0ustar Description: Avoid including dpkg droppings in globbed includes. Include /dir/* will ignore /dir/*.dpkg* files Forwarded: not-needed Author: Adam Conrad Last-Update: 2012-02-25 Index: apache2/server/config.c =================================================================== --- apache2.orig/server/config.c +++ apache2/server/config.c @@ -34,6 +34,7 @@ #include "apr_portable.h" #include "apr_file_io.h" #include "apr_fnmatch.h" +#include "apr_lib.h" #define APR_WANT_STDIO #define APR_WANT_STRFUNC @@ -1787,6 +1788,29 @@ return NULL; } +static int fname_valid(const char *fname) { + const unsigned char *c = fname; + unsigned char bad_dpkg[] = "*.dpkg*"; + + if (!apr_isalnum(*c)) { + return 0; + } + ++c; + + while (*c) { + if (!apr_isalnum(*c) && *c!='_' && *c!='-' && *c!='.') { + return 0; + } + ++c; + } + + if (!apr_fnmatch(bad_dpkg, fname, 0)) { + return 0; + } + + return 1; +} + static const char *process_resource_config_nofnmatch(server_rec *s, const char *fname, ap_directive_t **conftree, @@ -1829,7 +1853,8 @@ while (apr_dir_read(&dirent, APR_FINFO_DIRENT, dirp) == APR_SUCCESS) { /* strip out '.' and '..' */ if (strcmp(dirent.name, ".") - && strcmp(dirent.name, "..")) { + && strcmp(dirent.name, "..") + && fname_valid(dirent.name)) { fnew = (fnames *) apr_array_push(candidates); fnew->fname = ap_make_full_path(ptemp, path, dirent.name); } @@ -1918,7 +1943,8 @@ if (strcmp(dirent.name, ".") && strcmp(dirent.name, "..") && (apr_fnmatch(fname, dirent.name, - APR_FNM_PERIOD) == APR_SUCCESS)) { + APR_FNM_PERIOD) == APR_SUCCESS) + && fname_valid(dirent.name)) { const char *full_path = ap_make_full_path(ptemp, path, dirent.name); /* If matching internal to path, and we happen to match something * other than a directory, skip it debian/patches/series0000664000000000000000000000045412317241534012041 0ustar fhs_compliance.patch no_LD_LIBRARY_PATH.patch suexec-CVE-2007-1742.patch customize_apxs.patch build_suexec-custom.patch # This patch is applied manually #suexec-custom.patch # Patches added by Ubuntu 086_svn_cross_compiles ignore-quilt-dir CVE-2013-6438.patch CVE-2014-0098.patch split-logfile.patch debian/patches/fhs_compliance.patch0000664000000000000000000000374012262777736014641 0ustar Description: Fix up FHS file locations for apache2 droppings. Forwarded: not-needed Author: Adam Conrad Last-Update: 2012-02-25 --- a/configure +++ b/configure @@ -32725,17 +32725,17 @@ cat >>confdefs.h <<_ACEOF -#define HTTPD_ROOT "${ap_prefix}" +#define HTTPD_ROOT "/etc/apache2" _ACEOF cat >>confdefs.h <<_ACEOF -#define SERVER_CONFIG_FILE "${rel_sysconfdir}/${progname}.conf" +#define SERVER_CONFIG_FILE "${progname}.conf" _ACEOF cat >>confdefs.h <<_ACEOF -#define AP_TYPES_CONFIG_FILE "${rel_sysconfdir}/mime.types" +#define AP_TYPES_CONFIG_FILE "mime.types" _ACEOF --- a/configure.in +++ b/configure.in @@ -823,11 +823,11 @@ echo $MODLIST | $AWK -f $srcdir/build/build-modules-c.awk > modules.c APR_EXPAND_VAR(ap_prefix, $prefix) -AC_DEFINE_UNQUOTED(HTTPD_ROOT, "${ap_prefix}", +AC_DEFINE_UNQUOTED(HTTPD_ROOT, "/etc/apache2", [Root directory of the Apache install area]) -AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "${rel_sysconfdir}/${progname}.conf", +AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "${progname}.conf", [Location of the config file, relative to the Apache root directory]) -AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "${rel_sysconfdir}/mime.types", +AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "mime.types", [Location of the MIME types config file, relative to the Apache root directory]) perlbin=`$ac_aux_dir/PrintPath perl` --- a/include/ap_config_layout.h.in +++ b/include/ap_config_layout.h.in @@ -60,5 +60,6 @@ #define DEFAULT_REL_LOGFILEDIR "@rel_logfiledir@" #define DEFAULT_EXP_PROXYCACHEDIR "@exp_proxycachedir@" #define DEFAULT_REL_PROXYCACHEDIR "@rel_proxycachedir@" +#define DEFAULT_PIDLOG "/var/run/apache2.pid" #endif /* AP_CONFIG_LAYOUT_H */ --- a/include/httpd.h +++ b/include/httpd.h @@ -109,7 +109,7 @@ #define DOCUMENT_LOCATION HTTPD_ROOT "/docs" #else /* Set default for non OS/2 file system */ -#define DOCUMENT_LOCATION HTTPD_ROOT "/htdocs" +#define DOCUMENT_LOCATION "/var/www" #endif #endif /* DOCUMENT_LOCATION */ debian/patches/no_LD_LIBRARY_PATH.patch0000664000000000000000000000067412261546711014647 0ustar Description: Remove LD_LIBRARY_PATH from envvars-std Forwarded: no Author: Adam Conrad Last-Update: 2012-04-15 --- a/support/envvars-std.in +++ b/support/envvars-std.in @@ -18,11 +18,4 @@ # # This file is generated from envvars-std.in # -if test "x$@SHLIBPATH_VAR@" != "x" ; then - @SHLIBPATH_VAR@="@exp_libdir@:$@SHLIBPATH_VAR@" -else - @SHLIBPATH_VAR@="@exp_libdir@" -fi -export @SHLIBPATH_VAR@ -# @OS_SPECIFIC_VARS@ debian/patches/customize_apxs.patch0000664000000000000000000002111212261546711014717 0ustar Description: Adapt apxs to Debian specific changes - Make apxs2 use a2enmod and /etc/apache2/mods-available - Make libtool happier - Use LDFLAGS from config_vars.mk, allow to override them Forwarded: not-needed Author: Stefan Fritsch Last-Update: 2012-03-17 --- a/support/apxs.in +++ b/support/apxs.in @@ -38,7 +38,7 @@ my $CFG_TARGET = get_vars("progname"); my $CFG_SYSCONFDIR = get_vars("sysconfdir"); my $CFG_CFLAGS = join ' ', map { get_vars($_) } - qw(SHLTCFLAGS CFLAGS NOTEST_CPPFLAGS EXTRA_CPPFLAGS EXTRA_CFLAGS); + qw(SHLTCFLAGS CFLAGS CPPFLAGS NOTEST_CPPFLAGS EXTRA_CPPFLAGS EXTRA_CFLAGS); my $CFG_LDFLAGS = join ' ', map { get_vars($_) } qw(LDFLAGS NOTEST_LDFLAGS SH_LDFLAGS); my $includedir = get_vars("includedir"); @@ -276,6 +276,7 @@ $data =~ s|%TARGET%|$CFG_TARGET|sg; $data =~ s|%PREFIX%|$prefix|sg; $data =~ s|%INSTALLBUILDDIR%|$installbuilddir|sg; + $data =~ s|%DATADIR%|$datadir|sg; my ($mkf, $mods, $src) = ($data =~ m|^(.+)-=#=-\n(.+)-=#=-\n(.+)|s); @@ -428,7 +429,7 @@ $la =~ s|\.c$|.la|; my $o = $s; $o =~ s|\.c$|.o|; - push(@cmds, "$libtool $ltflags --mode=compile $CFG_CC $cflags -I$CFG_INCLUDEDIR $apr_includedir $apu_includedir $opt -c -o $lo $s && touch $slo"); + push(@cmds, "$libtool $ltflags --mode=compile --tag=disable-static $CFG_CC $cflags -I$CFG_INCLUDEDIR $apr_includedir $apu_includedir $opt -c -o $lo $s && touch $slo"); unshift(@objs, $lo); } @@ -469,7 +470,7 @@ $opt .= " -rpath $CFG_LIBEXECDIR -module -avoid-version $apr_ldflags"; } - push(@cmds, "$libtool $ltflags --mode=link $CFG_CC $ldflags -o $dso_file $opt $lo"); + push(@cmds, "$libtool $ltflags --mode=link --tag=disable-static $CFG_CC $ldflags -o $dso_file $opt $lo"); # execute the commands &execute_cmds(@cmds); @@ -503,7 +504,7 @@ if ($opt_i) { push(@cmds, "$installbuilddir/instdso.sh SH_LIBTOOL='" . "$libtool' $f $CFG_LIBEXECDIR"); - push(@cmds, "chmod 755 $CFG_LIBEXECDIR/$t"); + push(@cmds, "chmod 644 $CFG_LIBEXECDIR/$t"); } # determine module symbolname and filename @@ -539,10 +540,11 @@ $filename = "mod_${name}.c"; } my $dir = $CFG_LIBEXECDIR; - $dir =~ s|^$CFG_PREFIX/?||; + # Debian doesn't have a CFG_PREFIX, so this stuffs up: + # $dir =~ s|^$CFG_PREFIX/?||; $dir =~ s|(.)$|$1/|; $t =~ s|\.la$|.so|; - push(@lmd, sprintf("LoadModule %-18s %s", "${name}_module", "$dir$t")); + push(@lmd, [ $name, sprintf("LoadModule %-18s %s", "${name}_module", "$dir$t") ] ); } # execute the commands @@ -550,108 +552,35 @@ # activate module via LoadModule/AddModule directive if ($opt_a or $opt_A) { - if (not -f "$CFG_SYSCONFDIR/$CFG_TARGET.conf") { - error("Config file $CFG_SYSCONFDIR/$CFG_TARGET.conf not found"); + if (not -d "$CFG_SYSCONFDIR/mods-available") { + error("Config file $CFG_SYSCONFDIR/mods-available not found"); exit(1); } - open(FP, "<$CFG_SYSCONFDIR/$CFG_TARGET.conf") || die; - my $content = join('', ); - close(FP); - - if ($content !~ m|\n#?\s*LoadModule\s+|) { - error("Activation failed for custom $CFG_SYSCONFDIR/$CFG_TARGET.conf file."); - error("At least one `LoadModule' directive already has to exist."); - exit(1); - } - - my $lmd; - my $c = ''; - $c = '#' if ($opt_A); - foreach $lmd (@lmd) { - my $what = $opt_A ? "preparing" : "activating"; - my $lmd_re = $lmd; - $lmd_re =~ s/\s+/\\s+/g; - - if ($content !~ m|\n#?\s*$lmd_re|) { - # check for open , so that the new LoadModule - # directive always appears *outside* of an . - - my $before = ($content =~ m|^(.*\n)#?\s*LoadModule\s+[^\n]+\n|s)[0]; - - # the '()=' trick forces list context and the scalar - # assignment counts the number of list members (aka number - # of matches) then - my $cntopen = () = ($before =~ m|^\s*<[^/].*$|mg); - my $cntclose = () = ($before =~ m|^\s*$filename") || die; + print FP "$lmd\n"; + close(FP); + + if ($opt_a) { + my $cmd = "a2enmod $name"; + if (system($cmd) != 0) { + die "'$cmd' failed\n"; } - } else { - # replace already existing LoadModule line - $content =~ s|^(.*\n)#?\s*$lmd_re[^\n]*\n|$1$c$lmd\n|s; - } - $lmd =~ m|LoadModule\s+(.+?)_module.*|; - notice("[$what module `$1' in $CFG_SYSCONFDIR/$CFG_TARGET.conf]"); - } - if (@lmd) { - if (open(FP, ">$CFG_SYSCONFDIR/$CFG_TARGET.conf.new")) { - print FP $content; - close(FP); - system("cp $CFG_SYSCONFDIR/$CFG_TARGET.conf $CFG_SYSCONFDIR/$CFG_TARGET.conf.bak && " . - "cp $CFG_SYSCONFDIR/$CFG_TARGET.conf.new $CFG_SYSCONFDIR/$CFG_TARGET.conf && " . - "rm $CFG_SYSCONFDIR/$CFG_TARGET.conf.new"); - } else { - notice("unable to open configuration file"); } - } + + } } } @@ -671,8 +600,8 @@ ## builddir=. -top_srcdir=%PREFIX% -top_builddir=%PREFIX% +top_srcdir=%DATADIR% +top_builddir=%DATADIR% include %INSTALLBUILDDIR%/special.mk # the used tools debian/patches/086_svn_cross_compiles0000664000000000000000000000760312263002323015050 0ustar Description: Pull upstream fixes for autotools for cross-compiling Author: Adam Conrad Origin: upstream, http://svn.eu.apache.org/viewvc?view=revision&revision=1328445 Origin: upstream, http://svn.eu.apache.org/viewvc?view=revision&revision=1327907 Origin: upstream, http://svn.eu.apache.org/viewvc?view=revision&revision=1328390 Origin: upstream, http://svn.eu.apache.org/viewvc?view=revision&revision=1328714 Forwarded: not-needed diff -Naurp httpd-2.4.4.orig/acinclude.m4 httpd-2.4.4/acinclude.m4 --- httpd-2.4.4.orig/acinclude.m4 2013-01-30 10:25:31.000000000 -0600 +++ httpd-2.4.4/acinclude.m4 2013-07-02 08:28:47.666057692 -0500 @@ -53,6 +53,8 @@ AC_DEFUN(APACHE_GEN_CONFIG_VARS,[ APACHE_SUBST(CPPFLAGS) APACHE_SUBST(CFLAGS) APACHE_SUBST(CXXFLAGS) + APACHE_SUBST(CC_FOR_BUILD) + APACHE_SUBST(CFLAGS_FOR_BUILD) APACHE_SUBST(LTFLAGS) APACHE_SUBST(LDFLAGS) APACHE_SUBST(LT_LDFLAGS) @@ -685,7 +687,7 @@ int main(void) { return sizeof(void *) < sizeof(long); }], [ap_cv_void_ptr_lt_long=no], [ap_cv_void_ptr_lt_long=yes], - [ap_cv_void_ptr_lt_long=yes])]) + [ap_cv_void_ptr_lt_long="cross compile - not checked"])]) if test "$ap_cv_void_ptr_lt_long" = "yes"; then AC_MSG_ERROR([Size of "void *" is less than size of "long"]) diff -Naurp httpd-2.4.4.orig/configure httpd-2.4.4/configure --- httpd-2.4.4.orig/configure 2013-02-18 14:28:23.000000000 -0600 +++ httpd-2.4.4/configure 2013-07-02 08:28:47.682057692 -0500 @@ -660,6 +660,8 @@ HTTPD_LDFLAGS SH_LDFLAGS LT_LDFLAGS LTFLAGS +CFLAGS_FOR_BUILD +CC_FOR_BUILD CXXFLAGS CXX other_targets @@ -6029,6 +6031,12 @@ fi +if test "x${build_alias}" != "x${host_alias}"; then + if test "x${CC_FOR_BUILD}" = "x"; then + CC_FOR_BUILD=cc + fi +fi + if test "x${cache_file}" = "x/dev/null"; then # Likewise, ensure that CC and CPP are passed through to the pcre # configure script iff caching is disabled (the autoconf 2.5x default). @@ -7655,7 +7663,7 @@ if ${ap_cv_void_ptr_lt_long+:} false; th $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : - ap_cv_void_ptr_lt_long=yes + ap_cv_void_ptr_lt_long="cross compile - not checked" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -32060,6 +32068,14 @@ $as_echo "$as_me: " >&6;} + APACHE_VAR_SUBST="$APACHE_VAR_SUBST CC_FOR_BUILD" + + + + APACHE_VAR_SUBST="$APACHE_VAR_SUBST CFLAGS_FOR_BUILD" + + + APACHE_VAR_SUBST="$APACHE_VAR_SUBST LTFLAGS" diff -Naurp httpd-2.4.4.orig/configure.in httpd-2.4.4/configure.in --- httpd-2.4.4.orig/configure.in 2013-01-09 10:39:05.000000000 -0600 +++ httpd-2.4.4/configure.in 2013-07-02 08:28:47.690057692 -0500 @@ -206,6 +206,14 @@ AC_PROG_CPP dnl Try to get c99 support for variadic macros ifdef([AC_PROG_CC_C99], [AC_PROG_CC_C99]) +dnl In case of cross compilation we set CC_FOR_BUILD to cc unless +dnl we got already CC_FOR_BUILD from environment. +if test "x${build_alias}" != "x${host_alias}"; then + if test "x${CC_FOR_BUILD}" = "x"; then + CC_FOR_BUILD=cc + fi +fi + if test "x${cache_file}" = "x/dev/null"; then # Likewise, ensure that CC and CPP are passed through to the pcre # configure script iff caching is disabled (the autoconf 2.5x default). diff -Naurp httpd-2.4.4.orig/server/Makefile.in httpd-2.4.4/server/Makefile.in --- httpd-2.4.4.orig/server/Makefile.in 2013-01-28 07:13:18.000000000 -0600 +++ httpd-2.4.4/server/Makefile.in 2013-07-02 08:28:47.686057692 -0500 @@ -22,9 +22,14 @@ TARGETS = delete-exports $(LTLIBRARY_NAM include $(top_builddir)/build/rules.mk include $(top_srcdir)/build/library.mk +ifdef CC_FOR_BUILD +gen_test_char: gen_test_char.c + $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE -o $@ $< +else gen_test_char_OBJECTS = gen_test_char.lo gen_test_char: $(gen_test_char_OBJECTS) $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS) +endif test_char.h: gen_test_char ./gen_test_char > test_char.h debian/patches/CVE-2014-0098.patch0000664000000000000000000000410312312560076013237 0ustar Description: fix denial of service via truncated cookie and mod_log_config Origin: upstream, http://svn.apache.org/viewvc?view=revision&revision=1575904 Index: apache2-2.4.7/modules/loggers/mod_log_config.c =================================================================== --- apache2-2.4.7.orig/modules/loggers/mod_log_config.c 2013-11-15 12:07:52.000000000 -0500 +++ apache2-2.4.7/modules/loggers/mod_log_config.c 2014-03-19 15:26:13.407863790 -0400 @@ -543,14 +543,24 @@ while ((cookie = apr_strtok(cookies, ";", &last1))) { char *name = apr_strtok(cookie, "=", &last2); - if (name) { - char *value = name + strlen(name) + 1; - apr_collapse_spaces(name, name); + /* last2 points to the next char following an '=' delim, + or the trailing NUL char of the string */ + char *value = last2; + if (name && *name && value && *value) { + char *last = value - 2; + /* Move past leading WS */ + name += strspn(name, " \t"); + while (last >= name && apr_isspace(*last)) { + *last = '\0'; + --last; + } if (!strcasecmp(name, a)) { - char *last; - value += strspn(value, " \t"); /* Move past leading WS */ - last = value + strlen(value) - 1; + /* last1 points to the next char following the ';' delim, + or the trailing NUL char of the string */ + last = last1 - (*last1 ? 2 : 1); + /* Move past leading WS */ + value += strspn(value, " \t"); while (last >= value && apr_isspace(*last)) { *last = '\0'; --last; @@ -559,6 +569,7 @@ return ap_escape_logitem(r->pool, value); } } + /* Iterate the remaining tokens using apr_strtok(NULL, ...) */ cookies = NULL; } } debian/patches/suexec-custom.patch0000664000000000000000000001275412262777736014500 0ustar Description: the actual patch to make suexec-custom read a config file Forwarded: not-needed Author: Stefan Fritsch Last-Update: 2012-02-25 --- a/support/suexec-custom.c +++ b/support/suexec-custom.c @@ -29,6 +29,7 @@ * * */ +#define SUEXEC_CONFIG_DIR "/etc/apache2/suexec/" #include "apr.h" #include "ap_config.h" @@ -39,6 +40,7 @@ #include #include #include +#include #if APR_HAVE_UNISTD_H #include #endif @@ -197,6 +199,26 @@ return; } +static int read_line(char *buf, FILE *file) { + char *p; + p = fgets(buf, AP_MAXPATH+1, file); + if (!p) return 0; + if (*p == '\0') return 1; + + p = buf; + while (*p) + p++; + p--; + + /* remove trailing space and slash */ + while ( isspace(*p) && p >= buf ) + *p-- = '\0'; + while ( *p == '/' && p >= buf ) + *p-- = '\0'; + + return 1; +} + static void clean_env(void) { char pathbuf[512]; @@ -263,6 +285,11 @@ struct stat dir_info; /* directory info holder */ struct stat prg_info; /* program info holder */ int cwdh; /* handle to cwd */ + char *suexec_docroot = NULL; + char *suexec_userdir_suffix = NULL; + char *filename = NULL; + FILE *configfile; + /* * Start with a "clean" environment @@ -292,15 +319,10 @@ || (! strcmp(AP_HTTPD_USER, pw->pw_name))) #endif /* _OSD_POSIX */ ) { -#ifdef AP_DOC_ROOT - fprintf(stderr, " -D AP_DOC_ROOT=\"%s\"\n", AP_DOC_ROOT); -#endif + fprintf(stderr, " -D SUEXEC_CONFIG_DIR=%s\n", SUEXEC_CONFIG_DIR); #ifdef AP_GID_MIN fprintf(stderr, " -D AP_GID_MIN=%d\n", AP_GID_MIN); #endif -#ifdef AP_HTTPD_USER - fprintf(stderr, " -D AP_HTTPD_USER=\"%s\"\n", AP_HTTPD_USER); -#endif #ifdef AP_LOG_EXEC fprintf(stderr, " -D AP_LOG_EXEC=\"%s\"\n", AP_LOG_EXEC); #endif @@ -313,9 +335,6 @@ #ifdef AP_UID_MIN fprintf(stderr, " -D AP_UID_MIN=%d\n", AP_UID_MIN); #endif -#ifdef AP_USERDIR_SUFFIX - fprintf(stderr, " -D AP_USERDIR_SUFFIX=\"%s\"\n", AP_USERDIR_SUFFIX); -#endif exit(0); } /* @@ -330,23 +349,6 @@ target_gname = argv[2]; cmd = argv[3]; - /* - * Check to see if the user running this program - * is the user allowed to do so as defined in - * suexec.h. If not the allowed user, error out. - */ -#ifdef _OSD_POSIX - /* User name comparisons are case insensitive on BS2000/OSD */ - if (strcasecmp(AP_HTTPD_USER, pw->pw_name)) { - log_err("user mismatch (%s instead of %s)\n", pw->pw_name, AP_HTTPD_USER); - exit(103); - } -#else /*_OSD_POSIX*/ - if (strcmp(AP_HTTPD_USER, pw->pw_name)) { - log_err("user mismatch (%s instead of %s)\n", pw->pw_name, AP_HTTPD_USER); - exit(103); - } -#endif /*_OSD_POSIX*/ /* * Check for a leading '/' (absolute path) in the command to be executed, @@ -371,6 +373,63 @@ } /* + * Check to see if the user running this program + * is the user allowed to do so as defined in + * SUEXEC_CONFIG_DIR/username + * If not, error out. + */ + filename = malloc(AP_MAXPATH+1); + suexec_docroot = malloc(AP_MAXPATH+1); + suexec_userdir_suffix = malloc(AP_MAXPATH+1); + if (!filename || !suexec_docroot || !suexec_userdir_suffix) { + log_err("malloc failed\n"); + exit(120); + } + + strncpy(filename, SUEXEC_CONFIG_DIR, AP_MAXPATH); + strncat(filename, pw->pw_name, AP_MAXPATH); + filename[AP_MAXPATH] = '\0'; + + configfile = fopen(filename, "r"); + if (!configfile) { + log_err("User %s not allowed: Could not open config file %s\n", pw->pw_name, filename); + exit(123); + } + + if (!read_line(suexec_docroot, configfile)) { + log_err("Could not read docroot from %s\n", filename); + exit(124); + } + + if (!read_line(suexec_userdir_suffix, configfile)) { + log_err("Could not read userdir suffix from %s\n", filename); + exit(125); + } + + fclose(configfile); + + if (userdir) { + if ( !isalnum(*suexec_userdir_suffix) && suexec_userdir_suffix[0] != '.') { + log_err("userdir suffix disabled in %s\n", filename); + exit(126); + } + } + else { + if (suexec_docroot[0] != '/') { + log_err("docroot disabled in %s\n", filename); + exit(127); + } + + if (suexec_docroot[1] == '/' || + suexec_docroot[1] == '.' || + suexec_docroot[1] == '\0' ) + { + log_err("invalid docroot %s in %s\n", suexec_docroot, filename); + exit(128); + } + } + + /* * Error out if the target username is invalid. */ if (strspn(target_uname, "1234567890") != strlen(target_uname)) { @@ -511,7 +570,7 @@ if (userdir) { if (((chdir(target_homedir)) != 0) || - ((chdir(AP_USERDIR_SUFFIX)) != 0) || + ((chdir(suexec_userdir_suffix)) != 0) || ((getcwd(dwd, AP_MAXPATH)) == NULL) || ((fchdir(cwdh)) != 0)) { log_err("cannot get docroot information (%s)\n", target_homedir); @@ -519,7 +578,7 @@ } } else { - if (((chdir(AP_DOC_ROOT)) != 0) || + if (((chdir(suexec_docroot)) != 0) || ((getcwd(dwd, AP_MAXPATH)) == NULL) || ((fchdir(cwdh)) != 0)) { log_err("cannot get docroot information (%s)\n", AP_DOC_ROOT); debian/patches/CVE-2013-6438.patch0000664000000000000000000000147412312560072013246 0ustar Description: fix denial of service via mod_dav incorrect end of string calculation Origin: upstream, http://svn.apache.org/viewvc?view=revision&revision=1556816 Index: apache2-2.4.7/modules/dav/main/util.c =================================================================== --- apache2-2.4.7.orig/modules/dav/main/util.c 2013-10-18 09:36:21.000000000 -0400 +++ apache2-2.4.7/modules/dav/main/util.c 2014-03-19 15:25:39.199862874 -0400 @@ -396,8 +396,10 @@ if (strip_white) { /* trim leading whitespace */ - while (apr_isspace(*cdata)) /* assume: return false for '\0' */ + while (apr_isspace(*cdata)) { /* assume: return false for '\0' */ ++cdata; + --len; + } /* trim trailing whitespace */ while (len-- > 0 && apr_isspace(cdata[len])) debian/patches/suexec-CVE-2007-1742.patch0000664000000000000000000000360512261546711014541 0ustar Description: Fix race condition with chdir Fix /var/www* being accepted as docroot instead of /var/www/* (the same for public_html* instead of public_html/* ) Author: Stefan Fritsch Last-Update: 2012-02-25 Bug: https://issues.apache.org/bugzilla/show_bug.cgi?id=44752 --- a/support/suexec.c +++ b/support/suexec.c @@ -42,6 +42,7 @@ #if APR_HAVE_UNISTD_H #include #endif +#include #include #include @@ -261,6 +262,7 @@ struct group *gr; /* group entry holder */ struct stat dir_info; /* directory info holder */ struct stat prg_info; /* program info holder */ + int cwdh; /* handle to cwd */ /* * Start with a "clean" environment @@ -502,11 +504,16 @@ exit(111); } + if ( (cwdh = open(".", O_RDONLY)) == -1 ) { + log_err("cannot open current working directory\n"); + exit(111); + } + if (userdir) { if (((chdir(target_homedir)) != 0) || ((chdir(AP_USERDIR_SUFFIX)) != 0) || ((getcwd(dwd, AP_MAXPATH)) == NULL) || - ((chdir(cwd)) != 0)) { + ((fchdir(cwdh)) != 0)) { log_err("cannot get docroot information (%s)\n", target_homedir); exit(112); } @@ -514,12 +521,18 @@ else { if (((chdir(AP_DOC_ROOT)) != 0) || ((getcwd(dwd, AP_MAXPATH)) == NULL) || - ((chdir(cwd)) != 0)) { + ((fchdir(cwdh)) != 0)) { log_err("cannot get docroot information (%s)\n", AP_DOC_ROOT); exit(113); } } + close(cwdh); + + if (strlen(cwd) > strlen(dwd)) { + strncat(dwd, "/", AP_MAXPATH); + dwd[AP_MAXPATH-1] = '\0'; + } if ((strncmp(cwd, dwd, strlen(dwd))) != 0) { log_err("command not in docroot (%s/%s)\n", cwd, cmd); exit(114); debian/compat0000664000000000000000000000000212261546711010373 0ustar 8 debian/apache2.default0000664000000000000000000000117512261546711012052 0ustar ### htcacheclean settings ### ## run htcacheclean: yes, no, auto ## auto means run if /etc/apache2/mods-enabled/cache_disk.load exists ## default: auto HTCACHECLEAN_RUN=auto ## run mode: cron, daemon ## run in daemon mode or as daily cron job ## default: daemon HTCACHECLEAN_MODE=daemon ## cache size HTCACHECLEAN_SIZE=300M ## interval: if in daemon mode, clean cache every x minutes HTCACHECLEAN_DAEMON_INTERVAL=120 ## path to cache ## must be the same as in CacheRoot directive HTCACHECLEAN_PATH=/var/cache/apache2/mod_cache_disk ## additional options: ## -n : be nice ## -t : remove empty directories HTCACHECLEAN_OPTIONS="-n" debian/libapache2-mod-macro.postinst0000664000000000000000000000257512261546711014661 0ustar #! /bin/bash # postinst script for libapache2-mod-macro # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure) if [ -n "$2" ] && dpkg --compare-versions "$2" lt "1:2.4.6-1" ; then if [ -d /usr/share/doc/libapache2-mod-macro ] ; then RET=0 rmdir /usr/share/doc/libapache2-mod-macro > /dev/null 2>&1|| RET=$? if [ $RET = 0 ] ; then ln -s /usr/share/doc/apache2-bin /usr/share/doc/libapache2-mod-macro fi fi fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 debian/apache2-suexec-pristine.install0000664000000000000000000000005412261546711015214 0ustar /usr/sbin/suexec-pristine /usr/lib/apache2/ debian/apache2.postrm0000664000000000000000000000676612261546711011765 0ustar #!/bin/sh # postrm script for apache2 # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `remove' # * `purge' # * `upgrade' # * `failed-upgrade' # * `abort-install' # * `abort-install' # * `abort-upgrade' # * `disappear' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package OBSOLETE_CONFFILES="/etc/apache2/mods-available/authz_default.load /etc/apache2/mods-available/authn_default.load /etc/apache2/mods-available/mem_cache.load /etc/apache2/mods-available/mem_cache.conf /etc/apache2/mods-available/authn_alias.load /etc/apache2/mods-available/cern_meta.load /etc/apache2/mods-available/disk_cache.load /etc/apache2/mods-available/disk_cache.conf /etc/apache2/mods-available/ident.load /etc/apache2/mods-available/imagemap.load /etc/apache2/mods-available/version.load" MOVED_CONFFILES="/etc/bash_completion.d/apache2.2-common:/etc/bash_completion.d/apache2 /etc/apache2/sites-available/default:/etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default-ssl:/etc/apache2/sites-available/default-ssl.conf /etc/apache2/conf.d/charset:/etc/apache2/conf-available/charset.conf /etc/apache2/conf.d/localized-error-pages:/etc/apache2/conf-available/localized-error-pages.conf /etc/apache2/conf.d/other-vhosts-access-log:/etc/apache2/conf-available/other-vhosts-access-log.conf /etc/apache2/conf.d/security:/etc/apache2/conf-available/security.conf" case "$1" in purge) for CONFFILE in $OBSOLETE_CONFFILES ; do rm -f "$CONFFILE.dpkg-bak" "$CONFFILE.dpkg-remove" "$CONFFILE.dpkg-backup" done for d in var/cache/apache2 \ var/cache/apache2/mod_cache_disk \ var/log/apache2 \ var/lib/apache2 ; do [ -d $d ] && rm -rf $d done for f in /etc/apache2/sites-enabled/* \ /etc/apache2/conf-enabled/* \ /etc/apache2/mods-enabled/* ; do [ -L "$f" ] && rm -f "$f" done for d in /etc/apache2/sites-enabled/ \ /etc/apache2/mods-enabled/ \ /etc/apache2/conf-enabled/ \ /etc/apache2 \ /var/cache/apache2 \ /var/run/apache2 \ /var/lock/apache2 ; do rmdir $d 2> /dev/null || true done #XXX: index.html is intentionally(?) left back ;; abort-install|abort-upgrade) for CONFFILE in $OBSOLETE_CONFFILES ; do if [ -e "$CONFFILE.dpkg-remove" ]; then echo "Reinstalling $CONFFILE that was moved away" mv "$CONFFILE.dpkg-remove" "$CONFFILE" fi if [ -e "$CONFFILE.dpkg-backup" ]; then echo "Reinstalling $CONFFILE that was backupped" mv "$CONFFILE.dpkg-backup" "$CONFFILE" fi done for CONFFILE in $MOVED_CONFFILES ; do CONFFILE=$( echo "$CONFFILE" | cut -d: -f1 ) if [ -e "$CONFFILE.dpkg-remove" ]; then echo "Reinstalling $CONFFILE that was moved away" mv "$CONFFILE.dpkg-remove" "$CONFFILE" fi if [ -e "$CONFFILE.dpkg-backup" ]; then echo "Reinstalling $CONFFILE that was backupped" mv "$CONFFILE.dpkg-backup" "$CONFFILE" fi done # post installation cleanup if [ -e /etc/apache2/.apache2_mpm_selected ] ; then rm -f /etc/apache2/.apache2_mpm_selected fi ;; remove|upgrade|failed-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0 debian/apache2-data.install0000664000000000000000000000031612261546711012777 0ustar /usr/share/apache2/icons/ /usr/share/apache2/error/ debian/icons/*.png /usr/share/apache2/icons /usr/sbin/envvars-std /usr/share/apache2/build debian/index.html /usr/share/apache2/default-site/ debian/apache2-doc.doc-base0000664000000000000000000000057612261546711012652 0ustar Document: apache2-manual Title: Apache HTTP Server Version 2.4 Documentation Abstract: This documentation describes the configuration of the Apache Web server and the included modules. Section: Network/Communication Format: HTML Index: /usr/share/doc/apache2-doc/manual/en/index.html Files: /usr/share/doc/apache2-doc/manual/*/*.html /usr/share/doc/apache2-doc/manual/*/*/*.html debian/clean0000664000000000000000000000133712261546711010206 0ustar debian/apache2-suexec-custom.postinst debian/apache2-suexec-custom.preinst debian/apache2-suexec-custom.prerm debian/apache2-suexec-custom.links debian/apache2-suexec-custom.dirs debian/apache2-suexec-custom.lintian-overrides debian/apache2-suexec-pristine.postinst debian/apache2-suexec-pristine.preinst debian/apache2-suexec-pristine.prerm debian/apache2-suexec-pristine.links debian/apache2-suexec-pristine.dirs debian/apache2-suexec-pristine.lintian-overrides debian/apache2-mpm-event.postinst debian/apache2-mpm-itk.postinst debian/apache2-mpm-prefork.postinst debian/apache2-mpm-worker.postinst debian/a2query debian/manpages/a2query.8 debian/manpages/dh_apache2.1 debian/debhelper/dh_apache2 config.nice support/suexec-custom.c debian/apache2ctl0000775000000000000000000001440212261546711011132 0ustar #!/bin/sh # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (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.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # # Apache control script designed to allow an easy command line interface # to controlling Apache. Written by Marc Slemko, 1997/08/23 # # Heavily modified for Debian by Stefan Fritsch 2007-2010 # # The exit codes returned are: # XXX this doc is no longer correct now that the interesting # XXX functions are handled by httpd # 0 - operation completed successfully # 1 - # 2 - usage error # 3 - httpd could not be started # 4 - httpd could not be stopped # 5 - httpd could not be started during a restart # 6 - httpd could not be restarted during a restart # 7 - httpd could not be restarted during a graceful restart # 8 - configuration syntax error # # When multiple arguments are given, only the error from the _last_ # one is reported. Run "apachectl help" for usage info # ARGV="$@" # # |||||||||||||||||||| START CONFIGURATION SECTION |||||||||||||||||||| # -------------------- -------------------- # # main configuration directory if test -z "$APACHE_CONFDIR" ; then if test "${0##*apache2ctl-}" != "$0" ; then APACHE_CONFDIR="/etc/apache2-${0##*apache2ctl-}" else APACHE_CONFDIR=/etc/apache2 fi fi # the path to the environment variable file test -z "$APACHE_ENVVARS" && APACHE_ENVVARS="$APACHE_CONFDIR/envvars" # pick up any necessary environment variables if test -f $APACHE_ENVVARS; then . $APACHE_ENVVARS fi if test "$APACHE_CONFDIR" != /etc/apache2 ; then APACHE_ARGUMENTS="-d $APACHE_CONFDIR $APACHE_ARGUMENTS" fi # the following APACHE_* variables should be set in /etc/apache2/envvars # # the path to your httpd binary, including options if necessary HTTPD=${APACHE_HTTPD:-/usr/sbin/apache2} # # a command that outputs a formatted text version of the HTML at the # url given on the command line. Designed for lynx, however other # programs may work. LYNX="${APACHE_LYNX:-www-browser -dump}" # # the URL to your server's mod_status status page. If you do not # have one, then status and fullstatus will not work. STATUSURL="${APACHE_STATUSURL:-http://localhost:80/server-status}" # # Set this variable to a command that increases the maximum # number of file descriptors allowed per child process. This is # critical for configurations that use many file descriptors, # such as mass vhosting, or a multithreaded server. ULIMIT_MAX_FILES="${APACHE_ULIMIT_MAX_FILES:-ulimit -n 8192}" # -------------------- -------------------- # |||||||||||||||||||| END CONFIGURATION SECTION |||||||||||||||||||| # Set the maximum number of file descriptors allowed per child process. if [ "x$ULIMIT_MAX_FILES" != "x" ] && [ `id -u` -eq 0 ] ; then if ! $ULIMIT_MAX_FILES ; then echo Setting ulimit failed. See README.Debian for more information. >&2 fi fi ERROR=0 if [ "x$ARGV" = "x" ] || [ "x$ARGV" = "xusage" ] || [ "x$ARGV" = "xhelp" ] || [ "x$ARGV" = "x--help" ]; then echo "Usage: $0 start|stop|restart|graceful|graceful-stop|configtest|status|fullstatus|help" >&2 echo " $0 " >&2 echo " $0 -h (for help on )" >&2 exit 1 fi get_status () { if ! $LYNX $STATUSURL ; then echo "'$LYNX $STATUSURL'" failed. >&2 echo Maybe you need to install a package providing www-browser or you >&2 echo need to adjust the APACHE_LYNX variable in /etc/apache2/envvars >&2 exit 1 fi } mkdir_chown () { local OWNER="$1" local DIR="$2" local STAT="$(LC_ALL=C stat -c %F:%U $DIR 2> /dev/null || true)" if [ "$STAT" = "" ] ; then local TMPNAME=$(mktemp -d $DIR.XXXXXXXXXX) || exit 1 chmod 755 $TMPNAME || exit 1 chown $OWNER $TMPNAME || exit 1 if ! mv -T $TMPNAME $DIR 2> /dev/null; then rmdir $TMPNAME # check for race with other apachectl if [ "$(LC_ALL=C stat -c %F:%U $DIR 2>/dev/null)" != "directory:$OWNER" ] then echo Cannot create $DIR with owner $OWNER. echo Please fix manually. Aborting. exit 1 fi fi elif [ "$STAT" != "directory:$OWNER" ] ; then echo $DIR already exists but is not a directory owned by $OWNER. echo Please fix manually. Aborting. exit 1 fi } [ ! -d ${APACHE_RUN_DIR:-/var/run/apache2} ] && mkdir -p ${APACHE_RUN_DIR:-/var/run/apache2} [ ! -d ${APACHE_LOCK_DIR:-/var/lock/apache2} ] && mkdir_chown ${APACHE_RUN_USER:-www-data} ${APACHE_LOCK_DIR:-/var/lock/apache2} case $ARGV in start) # ssl_scache shouldn't be here if we're just starting up. # (this is bad if there are several apache2 instances running) rm -f ${APACHE_RUN_DIR:-/var/run/apache2}/*ssl_scache* $HTTPD ${APACHE_ARGUMENTS} -k $ARGV ERROR=$? ;; stop|graceful-stop) $HTTPD ${APACHE_ARGUMENTS} -k $ARGV ERROR=$? ;; restart|graceful) if $HTTPD ${APACHE_ARGUMENTS} -t 2> /dev/null ; then $HTTPD ${APACHE_ARGUMENTS} -k $ARGV else $HTTPD ${APACHE_ARGUMENTS} -t fi ERROR=$? ;; startssl|sslstart|start-SSL) echo The startssl option is no longer supported. echo Please edit httpd.conf to include the SSL configuration settings echo and then use "apachectl start". ERROR=2 ;; configtest) $HTTPD ${APACHE_ARGUMENTS} -t ERROR=$? ;; status) get_status | awk ' /process$/ { print; exit } { print } ' ;; fullstatus) get_status ;; *) $HTTPD ${APACHE_ARGUMENTS} $ARGV ERROR=$? esac if [ "$ERROR" != 0 ] ; then echo Action \'"$@"\' failed. echo The Apache error log may have more information. fi exit $ERROR debian/apache2.manpages0000664000000000000000000000036612261546711012222 0ustar debian/manpages/apache2ctl.8 debian/manpages/apachectl.8 debian/manpages/a2enmod.8 debian/manpages/a2dissite.8 debian/manpages/a2dismod.8 debian/manpages/a2ensite.8 debian/manpages/a2enconf.8 debian/manpages/a2disconf.8 debian/manpages/a2query.8 debian/apache2-bin.lintian-overrides0000664000000000000000000000022712261546711014627 0ustar # Modules tend to not use protectable libc functions, which causes lots of # false positives. hardening-no-fortify-functions usr/lib/apache2/modules/* debian/apache2-utils.ufw.profile0000664000000000000000000000062612263000007014005 0ustar [Apache] title=Web Server description=Apache v2 is the next generation of the omnipresent Apache web server. ports=80/tcp [Apache Secure] title=Web Server (HTTPS) description=Apache v2 is the next generation of the omnipresent Apache web server. ports=443/tcp [Apache Full] title=Web Server (HTTP,HTTPS) description=Apache v2 is the next generation of the omnipresent Apache web server. ports=80,443/tcp