librpminspect-1.8-1.el8$>rDt+-=vPcm-1>@?d  K<@O^      0  T  ]     &D h3t3 {3( 8 9  : d Gݨ H I XY\ ]D ^bMdeflt u vw x y+  0 X^Clibrpminspect1.81.el8Library providing RPM test API and functionalityThe library providing the backend test functionality and API for the rpminspect frontend program. This library can also be used by other programs wanting to incorporate RPM test functionality.a|buildhw-x86-16.iad2.fedoraproject.org Fedora ProjectFedora ProjectGPLv3+ and LGPLv2+ and ASL 2.0 and MIT and CC-BYFedora ProjectDevelopment/Toolshttps://github.com/rpminspect/rpminspectlinuxx86_64, K,^ AAA큤a{a{a{aza{a{aaabd6339ceb84160a9eeaa7681a0052ec9ed2cd693936f5a93274d2f15b6ca8d2be3a994d82e644b03a792a930f574002658412f62407f5fee083f2555c5f23118cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30f92cfa2914ca185283738aae11666324ddacfc4efd5da41bd4290007dfaf5779../../../../usr/lib64/librpminspect.so.0.5.0librpminspect.so.0.5.0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrpminspect-1.8-1.el8.src.rpmlibrpminspectlibrpminspect(x86-64)librpminspect.so.0()(64bit)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @clamav-datadesktop-file-utilsdiffstatdiffutilsgettextlibarchive.so.13()(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.11)(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.27)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.8)(64bit)libcap.so.2()(64bit)libclamav.so.9()(64bit)libclamav.so.9(CLAMAV_PUBLIC)(64bit)libcrypto.so.1.1()(64bit)libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)libcurl.so.4()(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.2.5)(64bit)libdl.so.2(GLIBC_2.3.3)(64bit)libelf.so.1()(64bit)libelf.so.1(ELFUTILS_1.0)(64bit)libelf.so.1(ELFUTILS_1.5)(64bit)libelf.so.1(ELFUTILS_1.6)(64bit)libicuio.so.60()(64bit)libicuuc.so.60()(64bit)libjson-c.so.4()(64bit)libkmod.so.2()(64bit)libkmod.so.2(LIBKMOD_5)(64bit)libmagic.so.1()(64bit)librpm.so.8()(64bit)librpmbuild.so.8()(64bit)librpmio.so.8()(64bit)libxml2.so.2()(64bit)libxml2.so.2(LIBXML2_2.4.30)(64bit)libxml2.so.2(LIBXML2_2.6.0)(64bit)libxmlrpc.so.3()(64bit)libxmlrpc_client.so.3()(64bit)libxmlrpc_util.so.4()(64bit)libyaml-0.so.2()(64bit)libz.so.1()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rtld(GNU_HASH)3.0.4-14.6.0-14.0-15.2-14.14.3aW@a@a0`@`\{@`7@`7@`U_@_@_@_@_[fDavid Cantrell - 1.8-1David Cantrell - 1.7-1David Cantrell - 1.6-1David Cantrell - 1.5-1David Cantrell - 1.4-1David Cantrell - 1.3.1-1David Cantrell - 1.3-2Fedora Release Engineering David Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.1-1- Upgrade to rpminspect-1.8- Upgrade to rpminspect-1.7- Upgrade to rpminspect-1.6- Begin work on version 1.5 - Use llabs() instead of labs() in the filesize inspection - Improve has invalid execstack flags reporting - Use long unsigned int to report size changes in patches - Fix some errors in the changedfiles inspection - Update the changedfiles test cases - Check DT_SONAME in is_elf_shared_library() - Skip debuginfo and debugsource files in abidiff - Make sure abidiff test cases add a DT_SONAME to the test lib - Report INFO level for patches findings by default - Python black fixes in test/test_abidiff.py - Update the test/test_patches.py cases for patches changes - Generate regular changelog in utils/srpm.h - Skip branches without targets in submit-koji-builds.sh - Fedora and CentOS systems in ci need diffstat - opensuse-leap CI job requires diffstat - Fix the Debian CI jobs in GitHub Actions - Fix and enable the Ubuntu extra-ci job in GitHub Actions - Use pip instead of pip3 for the Ubuntu command - Use apt-get -y install in - Enable the opensuse-tumbleweed GHA job again - Make sure the Gentoo GHA job has diffstat - Get the Arch Linux GHA job working again - Use ubuntu:latest for the ubuntu GHA image - Simplify the utils/determine-os.sh script - Update license table in README.md - Allow any number of builds specified for fetch only mode - Handle old or broken versions of libmagic in changedfiles - Update GitHub Action status badges in README.md - Fix $(OS) check in the Makefile - Fix the ubuntu GitHub Actions extra-ci job - Make sure the centos8 job has git available before cloning - Change strappend() to work as a variadic function - Use json_tokener_parse_ex() to get better error reporting - Fix reading of the javabytecode block in the config file - Catch missing/losing -fPIC correctly on .a ELF objects (#352) - Refactor elf_archive_tests() and its helper functions - Followup fix for find_no_pic, find_pic, and find_all - Install cpp-coveralls using pacman on Arch Linux - Install cpp-coveralls using pip on Arch Linux - Install cpp-coveralls in pre.sh on Arch Linux - Install required Python modules in pre.sh on Arch Linux - Do not upgrade pip on Arch Linux, go back to using pip.txt - Drop DEBUG_PRINT from source generated by pic_bits.sh - Do not run apt-get update as a second time on Debians systems - The lost PIC tests need to invoke gcc with -fno-PIC - Update the OpenSUSE Tumbleweed files, but disable it anyway - Define inspection_ignores in struct rpminspect - Clean up the config file section reading code - Add add_ignore() to init.c - Fix fetch only mode download directory - Stub out libcurl download progress callback function - Perform symbolic owner and group matching in ownership (#364) - Restrict download_progress() to systems with CURLOPT_XFERINFOFUNCTION - Read per-inspection ignore lists from the config file. - Add commented out per-inspection ignore blocks - Implement per-inspection path ignore support (#351) - Report annocheck failures correctly in librpminspect. - Note all regular expression settings use regex(7) syntax - Allow size_threshold: info in the config file (#261) - Check ignore list in files for path prefixes to ignore (#360) - Support a list of expected empty RPMs in the config file (#355) - Call mparse_reset() before mparse_readfd() - Do not crash with the -c option specifies a non-existent file - Update TODO list - Make sure brp-compress is disabled in test_manpage.py - Require/Recommend /usr/bin/annocheck - Note size_threshold can be the keyword info - Ensure ctxt->lastError.message is not NULL before strdup (#382) - Handle corrupt compressed files in changedfiles (#382) - Disable debugging output for the ignore lists in init.c - Drop debugging output in the xml inspection - Remove what working directories we can - Correctly find icons for desktop files in subpackages (#367) - Followup to the Icon= check in the desktop inspection (#367) - BuildRequires libmandoc-devel >= 1.14.5 - Manually install mandoc on centos7 for now- Start work on the 1.4 release - Trim git commit summary prefix from changelog lines - Report the program version number in the results (#309) - Handle compressed but otherwise empty man pages (#308) - Flake8 fixes for test_manpage.py - s/self.rpm/self.after_rpm/ in two test_manpage.py tests - Disable broken ELF heurisitic and size limit in libclamav - Modify dump_cfg() to write valid YAML to stdout (#306) - Migrate more code off hsearch and to uthash - Replace hsearch() with uthash in the kmod inspection - Update TEST_METADATA status in TODO and MISSING - Restrict style checks to specific directories - Replace hsearch() with uthash in the abidiff inspection - Change tsearch/twalk use to uthash - Correct misuse of entry with hentry variables (#321) - Normalize copyright boilerplates in source files - Use hentry->key over hentry->value in pathmigration - Adjust lib/meson.build for Fedora rawhide - Drop gate.yml and begin non-x86_64 arches in ci.yml - Add armv7, aarch64, and s390x to the other_arches job - Change init.c error reporting over to err/warn functions - Modify file triggers and matrix use in ci.yml - Split 32-bit osdeps out to post.sh scripts in osdeps/ - Split style.yml in to shellcheck.yml and python.yml - Rewrite extra-ci.yml to use the matrix strategy method for GHA - Move the emulated CI jobs to extra-ci.yml - s/pkg/pki/ for the centos jobs - Debian and Ubuntu fixes for CI - Python pip on Debian is called pip - Try to fix just debian:stable - Enable debian:testing in extra-ci.yml - Enable centos8 in extra-ci.yml again - Enable centos7 in extra-ci.yml again - Enable opensuse-leap and gentoo in extra-ci.yml again - Run each test script individually on emulated targets - Try a different syntax for the emulated matrix jobs - Install s390 glibc headers on s390x fedora systems - Detect 32-bit and musl presence in test_elf.py - Skip lost -fPIC tests if gcc lacks -m32 support - Add stretch and buster to the emulated targets list - Drop Debian buster from the emulated targets - Install gcc-multilib only on Debian x86_64 and s390x systems - libc-dev:i386 -> libc6-dev:i386 - Disable Debian targets in extra-ci temporarily - s/AUR/git/g in osdeps/arch/post.sh - In read_cfgfile(), keep track of block depth correctly (#329) - A few more yaml parsing fixes for block vs group - Recommend or Require libabigail >= 1.8.2 - Finish normalizing all the error reporting statements - Advertise of rpminspect-report in the contrib README. - Report libclamav version and CVD versions (#258) - Ensure first argument of warn(3) is a format string. - Enable werror=true and warning_level=3 in default_options - Update the translation template file - Get rid of invalid free() in get_product_release() - Add inspection_id() to librpminspect - Update the po/rpminspect.pot template - Improve mkannounce.sh to handle stable and devel releases- Remove duplicate elf_end() call in init_elf_data() (#303) - Update translation template- Small change to the way Koji builds are submitted - Move the master branch to version 1.3 - Drop DEBUG_PRINT in process_table() - Add doc/git.md to explain source control conventions - Change Suggests to Recommends in the spec file - Add kmidiff and politics to the inspections section of generic.yaml - Update TODO list - Use warn() for non-fatal errors in mkdirp() - Require libabigail >= 1.8 in rpminspect.spec.in - Enable multiple --headers-dir1 and --headers-dir2 args in abidiff - Swap out some more fprintf()/fflush() reporting with warn() - #include in peers.c and rmtree.c - On fedora-rawhide CI jobs, install gcc-c++ and gcc-plugin-devel - Disable fedora-rawhide GitHub Action for now - Correctly handle the -w option on rpminspect(1) (#256) - Drop the relative path handling for the -w option - Build and install rc from source on opensuse-leap - Update doc/git.md on how to track upstream - Add .github/ and osdeps/ directories to extra-ci.yml - Build and install rc from source on opensuse-tumbleweed - Adjust curl(1) command line used for rc in opensuse CI jobs - Trying to figure out why the opensuse jobs produce curl errors - Another slight change to post.sh for the opensuse-leap CI job - s/PowerTools/powertools/g in the centos8 PKG_CMD definition - The output of html2text on opensuse systems is different - Rename HEADER_MAN to HEADER_MANPAGE (#264) - Add inspection_header_to_desc() to librpminspect (#264) - Add xunit output format support (#264) - Support the new output function call syntax (#264) - Move init_elf_data() to readelf.c, move data to struct rpminspect - Update inspect_elf.c unit tests for librpminspect changes - Remove check_ipv6() from inspect_elf.c - Create the badfuncs inspection - Update po/ translation files. - Add badfuncs test cases - Forgot to commit test_badfuncs.py. - Fix flake8 and black errors with test_badfuncs.py - Skip debug packages in filesize, display changes correctly - Fix spurious execstack failure - Fix YAML config file reading for BLOCK_INSPECTIONS - Expand dump_config() to cover all config file settings - Minor spelling fixes in strfuncs.c and making code explicit - Simplify list_to_string() so it handles 1-elements lists right - Add abspath() to canonicalize path strings - In the doc inspection, only show diff(1) output for text files (#254) - Add strxmlescape() to strfuncs.c in librpminspect (#264) - Output the system-out xunit portion as CDATA (#264) - Slightly change how strxmlescape() works - Add the runpath inspection to librpminspect - Rename test/data/lto.c to test/data/mathlib.c - Handle the empty string case in abspath() - Expand dump_cfg() to show runpath settings - Fix block handling problems in the YAML config reader - Note single builds cannot be rebases in is_rebase() - Hook up the driver for the runpath inspection - Install patchelf for tests on fedora and centos - Update TODO and README.md files - Pass -D to rpminspect in the test suite - Add integration tests for the runpath inspection - Python flake8 and black fixes in test_runpath.py - Fixes for GitHub Actions on Debian and Ubuntu - Disable Rust support in pip modules, more extra-ci fixes - Update pip and setuptools on debian and ubuntu CI jobs - Make sure pip is updated on debian, centos7, and centos8 - Fixes for extra-ci on arch, centos7, centos8, and debian - Adjust docker image names for opensuse and arch - Add Gentoo Linux to the Extra CI set - extra-ci.yml typo fix for the gentoo job - Use gentoo/stage3 as the container for the gentoo CI job - Disable opensuse-tumbleweed and archlinux CI jobs - Make sure util/determine-os.sh picks up Gentoo Linux - In the runpath inspection, fail if DT_RPATH and DT_RUNPATH exist - Use pip install for PIP_CMD on gentoo - Set PIP_CMD to pip install -user for gentoo - Handle a NULL from list_to_string() in abspath() - Do not match path prefixes in the runpath inspection - Python black fixes for test_runpath.py - Stop doing an emerge --sync on the gentoo CI job - Replace emerge --sync with a manual portage sync - Use emerge-webrsync to update portage on gentoo - Add uthash and move the file matching code to it. - Typo fix in README.md - Fix some memory leaks found by valgrind - Create mkannounce.sh to help make release announcements easier - shellcheck fixes for mkannounce.sh- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- Formatting fixes in Makefile help output - Begin config file restructuring starting with rpminspect-data-generic - Support multiple configuration files. - Docs work in progress. - Only fail the annocheck inspection for RESULT_VERIFY. - Read debuginfo if available when running the 'annocheck' inspection. - Add the '%files' inspection to librpminspect - Add __attribute__((__sentinel__)) to the run_cmd() prototype - Add test suite cases for the '%files' inspection. - Added the 'types' inspection to compare MIME types between builds. - Update TODO file - Update the MISSING file - s/rpminspect.yaml/generic.yaml/ in the Makefile and README - Skip debuginfo and debugsource packages in the 'types' inspection - Add test_types.py to the test suite - Note the 'types' inspection generic.yaml - Modify add_entry() in init.c to skip duplicate entries - Start GitHub Action workflow files for rpminspect. - Install meson in ci-ubuntu.yml - Change 'nls' option in meson_options.txt to a boolean - Install gettext for ci-ubuntu - Add more build dependencies to ci-ubuntu.yml - Drop the 'method' parameter from dependency() lines in meson.build - Split xmlrpc libs to separate dependency() lines in meson.build - More xmlrpc updates for meson.build and lib/meson.build - Try to support systems with xmlrpc-c without the pkgconfig file. - Changes to build on Ubuntu, specifically the GitHub Actions system - Syntax error in ci-ubuntu.yml - Add ci-fedora.yml for GitHub Action CI on Fedora - Fix errors in ci-fedora.yml - Put all of the ci-ubuntu.yml steps in ci-ubuntu.yml - Remove install-libmandoc.sh and ubuntu-pkgs.sh helper scripts. - Install python3-setuptools in ci-ubuntu.yml - Install rpm-build in ci-fedora.yml - Install libxmlrpc-core-c3-dev in ci-ubuntu.yml - Disable ci-ubuntu.yml for now, enable code coverage in ci-fedora.yml - Remove Travis-CI files. - coverage fixes for ci-fedora.yml - Install git in ci-fedora.yml - Enable manual dispatching of the CI on Fedora tests - Remove actionspanel thing for GitHub Actions, drop Coveralls block - Comment the ci-fedora-yaml file - Fix the 'elf' inspection and test_elf.py on Ubuntu - Enable the ci-ubuntu GitHub Action again - Check all return values of getcwd() - Ignore installed Python modules with pip3 in ci-ubuntu.yml - Build 'execstack' test program with -Wl,-z,lazy - Add ci-centos8.yml to enable CI on CentOS 8 as a GitHub Action - s/centos8:latest/centos8/g - Trying 'container: centos:centos8' - Drop 'sudo' from ci-centos8.yml - Rename README to README.md - Enable GitHub Action for CI on CentOS 7 - Drop -I from the pip install line in ci-centos7.yml - Use the 'make instreqs' target for install test suite deps. - Add back 'dnf -y install 'dnf-command(builddep)'' to ci-fedora.yml - Nope, that doesn't do it. Just install make in ci-fedora.yml first - More 'make instreqs' fixes. - s/scripts/utils/g in the Makefile - s/TOPDIR/topdir/g in the Makefile - Install make in ci-centos7.yml - Move REQS and PIP lists out of the Makefile to files in osdep/ - '^$$' -> '^$' - Slightly different sourcing of the osdep/ files - Set OS using := in the Makefile - Make the reqs.txt files in osdep/ contain all deps - linux-headers -> linux-headers-$(uname -r) for Ubuntu - Remove html401-dtds from osdep/centos8/reqs.txt - Use `` instead of $() since this list goes through make(1) - Does $(shell uname -r) work in this case? - More osdep/ work and simplification. - Rename 'osdep' to 'osdeps' - meson patches for opensuse - Move mandoc installation to post.sh in osdep/ubuntu - Add GitHub Action for CI on OpenSUSE - opensuse:latest -> opensuse/leap:latest - Install tar in ci-opensuse.yml - Install gzip in ci-opensuse.yml - More fixes for ci-opensuse.yml - Small fixes to determine-os.sh - ci: Add Python linting jobs - ShellCheck fixes for the regress/ scripts - ci: Add ShellCheck to lint shell scripts - Adjust how the Makefile reports unknown operating system. - Just check $ID in determine-os.sh for opensuse - Use pip for PIP_CMD on opensuse-leap - Update the centos images before doing anything else. - Install curl in opensuse-leap - Get 'rc' from Fedora on opensuse and copy it to /usr/local - Install kernel-default-devel for opensuse CI - Move the 'uses' part of the centos CI jobs to the first step - ShellCheck fixes for the utils/ scripts. - Some flake8 fixes in test/, using yapf - Combine all of the GitHub Actions CI runs in to ci.yml - Manually install rpmfluff on CentOS 7; pip is failing here - Use rpmfluff-0.5.7 explicitly for centos7 - Use rpmfluff-0.5.6 on centos7 - OK, let's try rpmfluff-0.5 for centos7 - Last try, rpmfluff-0.5.4.1 for centos7 - Back to trying to manually install rpmfluff for centos7 - Style the Python code with Black - Add the Black formatting commit to blame revision ignore list - OK, just copy rpmfluff.py in place - Make sure to manually install rpmfluff-0.5.7.1 for centos7 - Don't assume we have a header or even a list of files (#161) - python: flake8: drop * imports - python: flake8: wrap long lines to less than 100 characters - python: flake8: drop unused imports - python: flake8: remove unused local variables - python: flake8: add PEP8 whitespace - python: flake8: mark in-line bash scripts as raw strings - python: rename several duplicate test cases - ci: merge style workflows - Adjust rpminspect.spec.in for file moves and default changes. - Return the reallybadword to the metadata tests - Adjust test_metadata.LosingVendorCompareKojiBuild to expect VERIFY - The shared libmandoc check should not look for a static libmandoc - Update the AUTHORS file - Rename ipv6_blacklist to forbidden_ipv6_functions - Rename stat-whitelist to fileinfo - Rename 'caps_whitelist' to 'caps' and drop the use of 'whitelist' - Rename abi-checking-whitelist/ to abi/ in /usr/share/rpminspect - Rename 'version-whitelist/' to 'rebaseable/' in /usr/share/rpminspect - Rename "political-whitelist/" to "politics/" in /usr/share/rpminspect - Drop unnecessary method re-definitions in base test classes - Use super() rather than explicitly calling the parent class - Call configFile() on object instance rather than using the parent class - Upload coverage report to codecov - Improve the error reporting for test result checking - Convert to AUTHORS.md file, add Makefile target to generate it. - Introduce the 'movedfiles' inspection and a lot of other fixes (#155) - AUTHORS -> AUTHORS.md in rpminspect.spec.in - Add basic tests for the filesize inspection - Multiply the file size difference before dividing - Update README.md - Update README.md (more Markdown changes) - Update POTFILES and rpminspect.pot - chmod 0755 test_filesize.py - tests: optionally check the result message - tests: add further filesize tests for shrinking files - inspect_filesize: drop extra - from the message about file shrinkage - Enable 'permissions' inspect for single build analysis. - Add 24 new test cases to cover the 'permissions' inspection. - chmod 0755 test_permissions.py - Make sure all RESULT_INFO results are set to NOT_WAIVABLE - Fix some specific problems with the 'permissions' inspection. - Pass "-r GENERIC" to rpminspect in the TestCompareKoji class - Add 12 more permissions test cases for setuid file checks - Update TODO list - Update test_symlink.py tests for new waiver_auth values - Add a fedora-rawhide job and renamed 'fedora' to fedora-stable - Update the rpminspect.pot translation template - Relicense librpminspect (lib/ and include/) as LGPL-3.0-or-later - Ignore .tox/ subdirectory - License the rpminspect-data-generic subpackage as CC-BY-4.0 - Add a copy of the Apache 2.0 license for the 5 files in librpminspect - Update the License tag in the spec file and the %license lines - Add debian-testing as a CI workflow; add missing osdeps files. - Update determine-os.sh to handle Fedora stable and rawhide - Drop the use of 'sudo' in ci.yml - sudo required for Ubuntu CI job, install make for debian-testing - See what $ID is set to in determine-os.sh - Workaround a bug in meson 0.55.0 for Fedora CI jobs - Add 'debian' catch to utils/determine-os.sh - Rename 'osdeps/debian-testing/' to 'osdeps/debian/' - Add opensuse-tumbleweed to the CI job list - Add libmagic-dev to osdeps/debian/reqs.txt - Fix memory corruption in init_rpminspect - Add comment clarifying the License tag in the spec file. - If check_results() raises AssertionError, dump the JSON output - Fix test_changelog.py test cases that are failing. - Fix UnbalancedChangeLogEditCompareKoji - Handle rpm versions with x.y.z.w version numbers in test_symlinks.py - Fix mandoc build problems in opensuse-tumbleweed CI job - Install gcovr using pip on opensuse-tumbleweed - Handle systems that lack pkg-config files for libelf and libcap - Add archlinux CI job in GitHub Actions - Forgot --noconfirm on the 'pacman -Syu' line. - Add missing DESC_MOVEDFILES block to inspection_desc() - More minor fixes to the Arch Linux CI job. - Install gcovr with pip for the Arch Linux CI job. - Support building on systems that lack - Add detection for to meson.build - Ensure an int is used for snprintf() in inspect_manpage_path() - WIP: 'abidiff' inspection - Only report permissions change if there is a mode_diff (#181) - Fix -Werror failures in inspect_abidiff.c - Add sl_run_cmd() to librpminspect. - Add get_arches() to librpminspect - WIP: abidiff inspection - Some minor edits to the README.md file - More minor updates to the README.md file - Replace get_arches() with init_arches() - Add test_addedfiles.py to the integration test suite - Expand find_one_peer() to soft match versioned ELF shared libraries - Add the beginnings of the 'abidiff' inspection code. - Report out findings in the abidiff inspection. - Update the test suite to cover rpmfluff 0.6 - libmandoc configure workaround needed on Debian too - shellcheck fixes for the scripts in utils/ - Add abi.c, the code that reads in the ABI compat level files (#144) - Be sure to close the open file before exiting init_fileinfo() - Python formatting cleanups - Add --diff to the Python format checker - Add new setting to abidiff section of the config file - Add -n/--no-rebase command line option to disable rebase detection - Store size_threshold as a long int rather than a char * - Check abidiff(1) results against the ABI compat level definitions (#144) - Add 'apt-get -y install libgcc-s1:i386' to pre.sh for Debian - Add integration test cases for the abidiff inspection (#144) - Add 'dpkg --configure -a' to pre.sh for debian - Install libterm-readline-perl-perl for debian CI - Install libabigail for Fedora and CentOS CI jobs - libgcc-s1:i386 -> lib32gcc-s1 for debian CI - Install libabigail for opensuse-leap, opensuse-tumbleweed, and arch CI - Install libabigail for debian and ubuntu CI - Install libabigail-dev for debian and ubuntu, not libabigail - Install libabigail-tools on opensuse-leap and opensuse-tumbleweed - Install libabigail-git for arch linux CI - Move free_argv_table() to runcmd.c - Install 'abigail-tools' for debian-testing and ubuntu CI - Install libabigail using the Arch User Repo on arch CI - Explain the osdeps/ subdirectory. - No, just clone libabigail from git and build it manually on arch - Add beginning of kmidiff inspection, put ABI functions in abi.c - Read list of possible kernel executable filenames from the config file. - Drop abidiff_ and kmidiff_ from extra_args; add kernel_filenames - Just call the abidiff and kmidiff extra args settings "extra_args" - Define 'kmi_ignore_pattern' in the config file. - Handle builds that lack all debuginfo packages (#186) - Do not assume peer->after_hdr exists (#187) - Store copy of original pointer in strsplit() to free at the end. - Use mmap() and strsplit() in read_file() rather than a getline() loop - Fix memory leaks in abi.c functions - open() failure in readfile() is not fatal, just return NULL - Add utils/gate.sh - Have check_abi() pass back the ABI compat level found - Update descriptions for abidiff and kmidiff inspections - Hook up the kmidiff inspection. - Use read_file() in init_fileinfo() and init_caps() - Use read_file() in validate_desktop_contents() - Use read_file() in disttag_driver() - Adjust how init_fileinfo() and init_caps() iterate over file contents - Fix 'tox -e format' style problems found. - Avoid comparing elf files that are not shared libraries - Support --kmi-whitelist in the kmidiff inspection - Trim worksubdir from paths in reported abidiff and kmidiff commands - Remove the kmi_ignore_pattern setting for the config file. - Create include/queue.h to replace the _COMPAT_QUEUE blocks everywhere - Update AUTHORS.md - Report metadata changes for rebased packages as INFO - Do not fail the specname inspection when given a non-SRPM - For passing upstream inspections, do not report a remedy string. - Do not fail the lostpayload inspections if it only gives INFO messages - Clarify unapproved license message in the license inspection - Use FOPEN_MAX for nopenfd parameter in nftw() calls - Make sure to close open file descriptors from get_elf() calls. - Include 'src' architecture in the rpminspect runs in gate.sh - Make sure kmidiff is listed in the spec file - TODO updates - Update rpminspect.pot and POTFILES for translations 1.8-1.el81.8-1.el8.build-id980e7a7bf075367196505a53720d72178f84c4calibrpminspect.so.0librpminspect.so.0.5.0librpminspectCOPYING.LIBLICENSE-2.0.txtMIT.txt/usr/lib//usr/lib/.build-id//usr/lib/.build-id/98//usr/lib64//usr/share/licenses//usr/share/licenses/librpminspect/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protectiondrpmxz2x86_64-redhat-linux-gnudirectoryELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=980e7a7bf075367196505a53720d72178f84c4ca, strippedASCII text+PRRR(R'RRRRR!RRRRR R RR R R RR)R+R*R&R#R%R$RRR RR-R,RRR"RRRRRR1https://bugz.fedoraproject.org/rpminspect/usr/bin/annocheckbashdashhtml401-dtdskshlibabigailrctcshxhtml1-dtdszsh1.8.2 utf-8bd79467bcf78cc319f8ab6c410805bfa51cc09026fbc4411ee7dbc85ce4d3078?7zXZ !#, ']"k%jjd+T2jq8dB‡u\g󩞪[VA/}(%+m$79obۡ2x#],r[, WdCq9hA:RV̞^a uU!jTX\ͿnetGs'$J~BGΚcL=T!U$Jn d*q-,S/Zm90%*3&QmWd\i,@2Hm&/y׋&IAy Rw7+[0 iG=&hGYdPw[h%;Х!ĕyW0J*&1z|4EJBWgnte [E59ȋ(`h'ئ-@oxT6gM*\.;U0{#u$Rٗ?I S )U! lr, u-*-stm;@Pr!V!򊡥MƷtjm-Y~!LmbaxcᒗϜfnڝ!݉G !h5=Ȍ-E9iiXiVhIܙӋ+?P"Tے =>) *Lm5n%6dӹbHY 08Օ 0¤KqWWX{3 rlFf}9\ֽMc׺Lk蒫8>k-2SȀLXSsBCVsNSj \m.2Q2_+ CD6hk/$Eە) Pȍ( ʏ=oG[Tx6Ē݈AVuɚ`ܗs(߮3}_=6"гu6S@ʯ/ޑTdVs #-\)'4K^1ۄf]Շta:oR @Q? %@&\;a~YWLc D #xWOHNϻѼv TL |6. A |qQ¦?ʉQخTn6@\ތ8YtE!'IYFHAB0V ٙmY 0"\!9!4%O| @Os^m2F0a!vE]BzBuʦ($ ogO\΄#]p߯O: v!$(:!]!V~”e4XГWU~i̫*(~[Dx,)_"zI"t0 j :8`s:k46OGS^ _>M6 4 JJްji@^4AC)~ ̩.wqԖOC('2A?BS&$GL0fmY9!U(Z&-+lD^V';Ծ Zq+"r:~u}Xo!_cg`Gzy6m鬊?@h A 2h'/CNa3lUtηϭO;vC-/@6=Kc5hh 3/ο{C.Bfٸ7ǯvϊ@Н*v6~g K|]mM/u)(H4E~#Xt)؍)z?1L܏.C:r!\쏪5_Wc}HԄ2lXL[/uH '%,q*ӨV\ ;+9V*ߥU_WU1^>">i6vfAI"DBV%5tbWHTn4p߃.#uY~&>>|V"{t%Z:}Š߱'d|#i!UjrS+dfThu}nZ CZmw<C;!}k6K*NR(^mlkc U\j|J\}#D&E:3J b?nO+aNoއ'G~$y+b+"-[o\Y~ `jG5}rjqӌ=jB.K: 7إ `KoW ^`wDINJ[>X6@$";US6޻j~ >-yes!'|?V}бM~_QLR䖦0#끻Ϊaa,g8-`Fh!e^fzfX7a[E_tגk<;"j;KaeB =M1ʟg}mWz8 QYy\&@Inp$G2P_aR169p**@KLekQ"Vh45ŀ>1dpL.JBF טۍ 67xAԩ nE b.75X)&z{^h_/Rİ _Ň6]F?'s i/AgJ 1H!pXfDaXK{jӚ )DU픓wcuz=}rբU0\>'4#BXY VB k-JsUK6мQjb5-˻1Yk(ڄ%A ^zmς&R,PbPB;sY)Elf΋n90‰B'6Ta,|zIR= 5[b/w5!By{̅[WCS(MAV%O[竜[4oASbTA\yOд=/f KInBR0ɻCop恥n28϶UgSɭ V"TcCkbRS)3w+p(:|r30F|1:O} sʫ<sVkDExPxח{II=qFDxG.ӣ5wo>s}'G7u-QBnQ6p|A&N} sݟܚDt*2*'h!;ۭ@SYq/^˚4LGot˯:ܧ:xbd+.\,jB*`s=5s|!UhկyXC/b9/N5xkv+DQX qE9>=fFd8.&6ߋgp_Y=] pejSa6Ox_YfBRn7,,5\$@k )Jڴf8<>)RT;l3$sC5\Y/yFYo4uO|o& SL'd҅_h#֦1ǔ\>W&9}^=i??w14$~2tYfe֝릥_i| MTi3^@AI_2L d,rcޑTiV] ༆]$+%$  !C[G+}8qjL8*kCeV^׽ݸBkM;>-CČiY ⫬6~e w#!x^ ( /uZ6@4>>V1 /.%N8K8wfs ^[\ kcdq51'@X%~'WI({"d3uɩTWؠyB> 'KhwZ= r+.Ql3qmCąM4+Œ t, OoJ {d; j%^q~hg3^j2C!D6T:>8 *H α׉9Vl=DI2C`}L?(f879YnZjz(@e776sѢ٘wp JZ5{ov;_u(^ǾwEkU#lDq{okxBize~P)Em @Nj԰CTND(2JBUcyojkAIK05ifY)A1G %Q͏IJG+^q~3קns+Z^\O;/Ua m dBI&B2HF kSH<-<:,$ňxQQ&^yk)fQ ǧ@{Ggѣkݒ<(Z=̇e&Z_PTu{`eU*ad5,w:KUN;ַ!;ƪ#[|%8O[{6HMN'C 'KEwcug,TGXk1ڑ\e X` /8&朖hNSg}G^JB X I:_8L@cEp-=C. FneAvg'5{na2۫K'qr4¡Dò'URЦYaYsڕ;DS^ɽʅ/@fx90(gODğq]7imT"d"4T>`q}t>Ǔ!hCA1;+3-N| NmKsl8 Mh &&OS塀EGSpW5CSaF+a15Nf9-I p*WBMbwr' +YZj9$m~񎑎Z,o"xj*pbO]VuXz6Gt (UAM0dhQ:\TBD:-UN>ŋ^+k{׌p1xۤگB_#etFy8mUՔ` [X8nEk]],݆쪨xT:X{a#J.OVCDY?)nD0{ h+]:Z(7t {~nFD%;51 T[S$׻$!g ]ɶҟ1DX"@TnM (pP^?[>+V "Dj4)fJ\ tn3E7(^X~vG{\8!`C~.<. y7?t*5u5C)OQT]ZvB+o1/N/k[..{Ĵ"):Vdywx; Q||?O`\>rSC^Q* >(`a4 `;UDO?W _$M_?(5t=h9%E5c^#t'XInȗIW(4Jt '^z-ek+%)1aRS/bZ1̐S_{#6Ц\ u[Fh:Ls o;FfsL\ @ŀNg̙!-ZzgHYs^?kNzE Fp4֩K,cc eБa;< ,%މjd*bۨbG)P}2gk@Wm)>N伨"Z N&y\ĚnI+ƕ5b4 eIJ1xo,Rn88R؇~W!oM+_pΔHCʌ|BYRC[{P}JM0UUb8?+A}GX^~nbl&&l-ymI0(oF&8S P6 B# $ei 㙶z0kIbEpþw=cԺAu:` &~LvI秶L2hWK%RpJN5\/EUGp?)lZ׭?ψ? N1% I{EXl[Aϰ5;B6"Ait92p{6R+Yj^],&vs,q KVn8}e-2 ˉ!20cx߸,k\ xYRѧSc3f"Q$e0I *FDZ7jqp0jfEܪT6H,˅G̼7LW].%d9Λ%/f,2+ݝn9d:n*`~*Zp}D$9`.9>T7::Sx|R$HG.vx~Cاǔy{OQ N%)Hs-aͽkҗ;ݽ76,40,Ry|gb*sDC]ͮ][we3}$ӵ<[2+EAKg.!@qv$%iZrɦ;@x|r5{cbZ}ч 8Mp1yNr`jހȝN&%([K!m1fq6.vYoqe ]JC dְW*50Gʆ:]{-Z-@wGh.?]Wܱs|| n+4ߗE8m !ߨ?  4pHwhnNj5s) T &f vbvaWjrDݖv83gOS{`Xxa?Ѿ.2lX&QS`V :)vLng-;[XbZ)2`󦒃^(E Wo,LobGUI|q8mŏYP Ǿ ~*|]_P5f8N-$KU ͘c=("i+!6DUztŨ0{xO/5 Y mֈ"yO[reBWK?0̭IMg;G4M&PN f@VȏG%kռý;E3u#%1dm82͆hk#Y 0CXwe{:|-1h/V.z)}E0qXN3+@m^S-!N2 kZqWť@o2[cbUld(!L+K`E;rjd U _m`ȡD8B;a#-/ZzgOgwYۮ9%'wi.9-7}C< S(~cR@ x ڽrsX^K(c]ǿ#|a}ihLvYʰx(Qkt~SY̏< Mm|дQXD^",JAn&UzVmM‘iZ]T$4;0YׅFLm,&q#jHlGc^d@NRVYJ. ϖN}F؄RV˘%= b3ҤjqCsCp^s7DBkXcR`J4n 0b;J^)#Xx}Odfx*_OAlMhSҶNe<8^uS%Vrpv%NX`᰸wOn)ovn_(7BXf[X[ހu-KD,m`t&i>yXӁL%VZ?hP^N..s(y 9^. "QA@Z5Wӭ1,:4a!'umy_mg N`@ZF_;w$^"3)4M -}fb[%Ӣ]Y̘42Uҽ3%'[߰/:!vu0>.nN ' 3[S:wY&|]PA44䫄QnbaJ\cr)Zc'; rLPg* H=?b+Y >T{HsٮvG - Jn"A9 1KÖY7 {?'/G( hNw5R#Ap97>Ԇ<+h2$hoBO":$߀pBB1 mθLOEkdqqޗ54 u qiiT5IVQf|sc^&LYR~%w=ojZΙ rm:@vD4߽}@-i eEtܨhZ!Z/`vq QEIw6MޢP J}?B=^7&W;\օqx\0r4Ifj@/tcX40%^E8lPC@>[c5DW'NN+< A/鎠Yo(2<兛ɂ?D<*#)ݜ#9AL0ՆE<-^FC,U+:>X-h7,a:~,h3t9K[tlb~!dyD 66z6sz4'(w`VƗЍbzYr=7QpuǰxuTVjV PDQ)C՞a%oݶy14i?v11g"q[~`F8H+֥s[ m|Rퟛ;9,d?tW"5jN+]\9^Dupy@RF|igNhKg,ɛ1Q YZu|t;}s a&U^Q[aT+Ux acJatw!2_T~Ynͥ{iZIj]b4m p4_q-;\Qa|&j,5ZVX+&X e{K!%wiA;!;sfFNP7}Ȼ*~n1шWxNV0UrTv3q-,Gsr?WqW-"IP8x'D+\4o)pM*d(`^rܷ&7EC~¿ {Ebx1b0z?MWTHTm@G m|K |wxQ_ ES㡉rŭF>O@+[;Pf.P ? LR<23T9#QЉ"4J~0Q3#nEqq\BȜ2H?BaP71J~Um{zyzb)=2JUpYy)3{Gz@h\yA6-)yC.5$ *8V0YHşA:*zqjŮ6/N&8,/%¨LE´8`Z|m2wJ T^OHHeô Ȇ;̠*:F`;NV/a<7D0ԀaV~o&$#[6&6S]zke?H($[=Qs;IE|^zFG2%!tAcf "zl?!Seߑ7Wbc"ru +ժX٫KWgK6ǹRSBBPM:WVCDJ41wxrv$a@,Ig"Ѯ t!W:@.vs'8)ɹ!qą쐠A&՘ ?/EY0 [gb֕tU/i{y?g+}RB@MY+p@m)x/i['\?GʼX.Av,eѢ#9. V8G?&ԣ']IY c˻]mNh1W5c!~ՊzgU$Clϵ= O+1xQ?rC}q]:堲L&\(''nlPgp1 kp@ eˁ<\V4P 1xlgR=;~p} Ǽ?pD玨QbTm 9 %Z!{"z17\nZZlG W)n@p~"}QrhE1':_ 6۬M)Cf6[QdI?qD&W@]Vvi{4x sCUI4;߷,IRZXq8)s'? $?^{%a芄% i0Of9 #BVOP@ܧ!푭tfCY^N C~o ix6K4X/ D= }Ւ9^""8oV=ƃ=+y\j@`aGQp 5ZPDrt׬cS乏|vŕ 3^ xv9d5ɱri \j 1R4A\-u%Lh #q U#tޫtpByl2d):R1՛ȍa 'UQ?h@[+T>1_LcR@`Y`sbPʽu(\frA 70h1@2]]DduP-DG\,!][=ڏ{SDr\깗Sjʜ(]}va0@+'6S$o9aD5cWev!#7Yc{mAfIku_ )Ilr/#y)bR֦I>y[JmZy.=R8rJ&d@J`1RyIyŦB1UmyGXM *wW[* 7NOTIfQ:_vt/+ԡQ` :SQnvj> *L `@!~F&0Dmr, c`)A5!\v&z-T.ՈHllXlKh~?3Α !G͜_q&U, 1NMc]O75X-D!j',hKlMG7zr|d_2Et,5_>M@7;L#LOB'58OW4!B XeFMSH>U2%\q@1ֺ- 7kSk:Y'ZfZ=yoǀ05 |+ NWnVTRve5y"*j5ڞk9H=Y= !+m;p*2q^ l <<9P_ľ=eѲCܹVb$^ve9cjд *e (N'uI~բGp5qgDw.l;ŷn8ಷ@ʰsGHv ^RB((lYPD_5oLL`9ˋDRs4KP*k%Oi`헽Ye"N?cY܀H|D'о"h+۲߱11,J^>u7CFEP}u*U!4]eC&HfSylxNXCoYps- \* yIU)jDliLh$,IłPI•z)"gk~_R~o05n@ ΅r;IT *`H26+{W +QUׅJU-;Y`@e`7$nK5}PM>yR8vgq=՝,=%&5P_S Co45CtL"g*7g#"gJ*ǀl$C7u^ypIjyOS{Wm2χ0A!gY| r)#{7^-JDSNb:uNXW6Pb'\%`k2Hp${­k?3q5Ry ys)lGg Fj&m%,DD'%6  x@qfSD(I9sg`B9)0ڜ zpdy,ONbJa`CIOg6dcuμ9pPԔ>ԽS^;#mX ,MGG¿d0S&ڥ(EzO$vE925QRjj8U䊣d9[9Iقn{$O>FO;412f@y3FN?ՆnqA0ԣ>GՐ*x%DoMmHзWI!D!J yg`#>R%,~=:X,'%݌'qg|Ui.Ci,zI9+AQ,~^\dl u>ۤ:9\cI6F3Y졮Q_Jh+9`LV͓ޖi.yOd(ʐ؎D.ch6cA>*>Lnd^Ѻc&ؤX)_W8o`d2oZ4!ߧF%6C8wDX|M5{CIa+fo[ "eWxY1$WbXܓ> YC$@gIC-ڸwn5R963ԳCOV(x 4 Oˡ\a|!F@l04N!݃d )jLQדsVHg^Ǧ5דhm:{H?F/bl|<0cFB  @"Ɍtuࣟp.btƟWbq1&s)mUH>$v4R!fũ鯯0 . O ־쨯8LDΎ)ΣnBV뮗$9ZVfY.ZJ$GRv@s!|M(MEB)3a"el Y_A= @<]ܥۓD9 7)?s"J-,qйVh*M0o @vCU܈);vpa׸׍GAiǼvc,QNjsS^*ltI8PՂ[L7pJT31gG&bZ(aNx/9Zqn42'ت'-}59x~Q0AE=釘X=x Dk_wD'u%wA 0\J5#UGԱJ81i De @"X#X];xPLW -/FC9]Kʒ"*mJ_YoNf٣dH*ś-6B/X}7uÐxJ*:"ThL^8DqVwlHF]~ת;(ضOx ТںvEΘrAX)D˳3WT22CPq­\.zdŏBw5W-hy>_TukAUu*sd~調~i4̫dC5廭+3_GTfRSSbbi")uN/^hk^p9` d$ ҖZUW@洓gtR7F.jAI骱L~reRt#Y8Njfؾ[0!)+E7"# 6 CX-nys8"b p_QjV DFi+t`#CW^6>Xn>Oj(z}2HS-?Y}--(`^yAv/)V+pGa<13d)mR9G j]oI3$  v*棬.ix(S Sk1reG8/ɮ} 4aJ{ wެ& 4քv:m?p/W^fw~L:y4!hYf 9_%%2LqܰZR>`9n't}.>u~SqΪO y)n+=!cqL01mQN1a!,x9Bw3%Ӱ$VdW&x-)v LW|HRyVYѠoB #Hr|ZFþx @{p^zfgdYc Sr.ؒFX}*o]M.;c\T4ӆuu/w+ݔK[I7ĺBL,=N]_ေB[1;YW6yɹ-g'X:U60kRFYt$SF}3.mzl>>Z!U"׶$fC233~1ehb}d o}6{<7Er_GCs"jC @.gPE"'K Uac{It󾙰ʇsy)vU@6'Vj3IIr4M$Z:;Vx%N0D04Ā$,?i{W죦u`jWl0*W8Ӎ}`ݠA]컇҃+-RQX.9p`ԕuDg,^U+s:p-9ۛYs ^_(Q˓" 6h=AR8254Lm;(}3;@nhL|-"vw8 ɼ` I @hxu&?Dz ;T0/;^ڕ)Ψ-xoryt.%/ەacDI_ qME.^Q$*`L@A3p;=iMQpv>.aYK0{6^"˥":4툑 @>b畆Hdܭ CLVi0v}!ǫƾO/<NwL"UVY/y8ZfdQ d ,MotLE;.:hhQ&Դwq-m4ͽs !V=UKX9~kg1QN}gY|=Lp;"Aj[xXxl4d8K̈́1a9sJ>6˸q;q)5 3}kBDޤ kHHU6t@ 6 Itp)fG'E?؃+vZyU@\[Lt% 1Cѻ?٦J,êT zf:MJ 4 Iaj2\&y}.3%L]qN6ssؗK&P `lFwgTtH6wA%Zg#`_|5k".#$C6#y*P88U5&A=^N٠ϷRJǕ%! "oB$[iD -=ܹ va1 v:MXA/n6'~LJ/evKk"*7)^SUpU.0, Nϸ0\N!v4Hi)pJ0Zpjag:qG*j͸s'\  ؈gŭeWE*)wT>P&Qӈ!AG'xS $kN$dS38`jIg& 댜y3fA./s;3* @đ B4Г#d.rM[H"O2aqUoUx SQFkYl_X몤];mro- :ֿ' 8?Q0/Bl'@;^Hiz5_BhjzF,.qM0m-7i_43T@ n.BeOC[$#[ܳЯ\K0Et^=nj¾U%[Rٱ`+tÔUIܛ0v$PŹb~ck^(tl)tB+)fp}(e8y|a]{٢LR4y`3[+ ,Fu!h(Sp׃l^oU.=f$Cwo;W2+'V! 1yR5$QK%wkHy YCpϛO$4ȞNPOO_+3y͗/`G6"coc[uUS*iȈwQ5i׽{,bO=k+Gy TI{ >.IBz҉*w@m eUjd٠73ߠ iny/sF1`ya?m$h%V_ "dMX0J62yW@ugZ~DTLzm{3+N68ZFG($HhurVМҴ_lPξQĎCRQfSn(-?ǐȴ18o/hG1{Bj%BC;a[Kį. VXŰ-w i<)4mϞj2FrCz&0.ްıny;)09]oeI䁌2)UK2-)NU)E8 MB?ht(OZ)AJw[`1'wHJ}4a`V}Mͣ\,J.$჉Y;?0N)}QW"'ZJ-Z71RU-*Ò%mMxD {_H<2%,TjkĉFnW} |97b[bO!H[[TLD2^@ԯn:q-`b瑪84yb]s0 T<<_DtJ9Nؒ*x VajnAoݴ

`Sݗi>bwm, pCzlNp5/xWQK_ 3Kpo 97S%4,NWV~|p}ׄ[ab1xepuRS|,OɢX*|=ٰgb/ɛ= y=Jmw)Bͮ C h"։'c(*Y]5g"[ޓ4ĩ3֝M]kKhp>xĮ;5c SwI,}%ú'-.:J@X{JU]H~6DQѱץ#J*>"&86+$qQE [zMO-/gKvaj[=N-lDŽ036Hvse~>dG(/tʖ#jaLgopSd?I2xb4ODIhҎxTӴ nE_' QmrͰW)yh ^հ'l'I꽥OW)cMzS:)7Sry%bs6,DTOX[|듢Wx0Wrn˲6'[ݩXfly0Y5!@X}wS7"12}kM9D'J 7U$Y} E'}3NXBvMִwZu C60sV>B$U8̾?Wπt+ GߣH尪-z!wvGo'Y;tݜOB/wZ!sڜjgg7+7V8Nsb=2U,\ș)U2J0N~+9@?N13/-rޤDMhVՁ,%Ѭ) LIp,Ѵ (z=k擐sYkU5c? FEQNzI 9NR{J*>nX)y9o^7|u/#65?~ oE!w///_ ,[< f }0n6תFe^-$@Vg@ 2Ⲟft.W5;3hD~2|#P ?&e 92e٥R>D)(-\+Ėg NJXR6Z}}al 1jNS2pa54B3k1&"# r%@xߗ7z%+q`&z9 !-#gw7MrpMP |Dztk&xˡ'jL)$Vԑ_Pt^8"6έ9 F W-xG0^2UǺѵ+I&;|OW#b?$oembr"߮\P8#;Q#zp̃P `OC {Kxdщ}0 WrQI!OFxժ>j.X4Ko 2`hzZA9*:GwHOOlE]{*`n©ǏPhrtgfW 4?#ub<;GK;:zo5é ۾2oYUW0)7E;qOb4u wxv<˲&#De҂lIXH"r/l#=$n 2d6SRS=Mt&N:lW;fh& .MF̎>jNņфuo UW#|--ؙ#aֳ?as#sg'H[\MctSZQH> j&]+YZjEN#{B\.dZosf(6qXx%;+|)]Wn!ŚW=r[~mEG8`$9/ɇϨ<5=? @ħX'&}\h[LҞJS|&Mr#t*<[ʛ{Xc+Gj0_^L1r"p7jok˯g5f _Q. +^jxwfjRR15?iCxH"Pۚ2k4tr ŋݫ2ݯ'uv䆅չ>[+w!&R9O1͑- LˢN q_9V9V&OO֣BRpEORY,Or)K<@a7Mg6m_^Y@eRkJ{ ky8,kJ,醠E7SN9smlMtDe)7S9~l&: m˩^&vacV3Ձ ]yu)/Z1v98x)/wRLFxՏKtI65tM8M@J@ӚPxqu7A_5jEidgr2dsǢ:xU~/~ZLCc=ZZ毘I7c=s )osrr^̘C55ޓyȆ`;wxxPkga0SJ'ɒTIqQe89 ڡü!`o%[z؃Zac6TPfm1GUs{H[ 6/'A1%a )HٞJȥʍD_77f߷qh%m[M\ъ*/{~)ՇYwq3m^0~/,i(Qq)arȳ Ǖ`P&X^y0BZs{MVS1f=T701E23*DMBti tUb%u:I^^] Rv$my}Ӈˊ - DxvmC=;Nzvg%bR2>{dp"R^iX`A6db-g40>c^JvL TSH2{C.x!;#ÍX+vod?W)c~E{ sK,LA%dh}_C*><y9c;#D#|l.Yi*Po*T(V?cwP&mw~/ސQr2}-{db?pbiW]_ԗfݥb&;Th73k0nu=^}5燸٣od<]y$풶n gAnnd@P-. }8xJKѓȳ(ț  h-0Dq.bLfd[{l!}V*Q-nxzi`wAGP:{ͪ_Z_¡ឃieE?t7[K\3C:憒Pp[բV2BH \3n}k ݗ[`~A#>,U>%yb<=OilF m*P%F&rޢ;u'g(b2Ct;i"LjL εzkJ'b,>Qs <\oʙON!"UwbDDDcTRji_ݹD_n(=Ho:ZBvDE2 @!͚X#2?aY2'X󐢹 M֎NEK*R۽IeVdbUT$ϗ*9?Adܨq>|+^j!'!AdBmoM8Qꠤϫ98U<c=yu16@H(S(_%Y[gVa)gWH-J\RYނyW2(!H.I;|%Vt9ƓmIV'9ȑ F\Xqƾ@* *XW 0eveѾ2ޣ8*NaqvՍM^}s^ n~?x:r]v;Q,!6.>c)ML2FE'xsʺYvTϫYdC9}OD^h$j#Wǿ(dzV=~Aj3gw=5_y%6q_w-cT%#=lojVmyDgPe;/ 4i #Eurztjt5 jhe\$1XC@Bte.Zl2>[/RPS9(Cīa@}e}70 3k,ҌW@ 2E/𖰔.+$<eR$ Uq(Bz B%ɓ)7B&G,՚]wH<,| ^*]k Ru"EBHݺ;F#oŊ!{aOמ@2♋=]==͋M ~2(ɇwc峵xp T^7afpDA@s6j;Ӹwd/\mU4CT(:1ȊqVJKtx u:̙1;YWpg C_RfC/tfb;@Z%n|M1A;V\ /XmR!lF?" `3FZohڞy”LƖdPJn/.Ű:Ŧ >ɴ*B,CWzNDa>Ó t4'lG VMDŽ$Хнwo帥pTP+#C_+DU%償 I^V /Yg=5qf|ItK?-&@ghv"9bz^MGSA|Ѝ"B;8d?GF&S>J ϲ)BћGɯM*-kY:4DN i+ėzle$<FI{RؑZ+v <5eܹU r+O@kMC8!=vWDI>=/&:^ Rnhioԩ9Cn0=K!6d!1$.mOğU o-$ڙT^&1}AZ@dl;JޯLwwpTG^SYiwQ  .EGTPҬ28p<@'gog I8t>4?.yFWҏf?n "( _Lc .ޣw?$?[X#{=!CvBR{sIIGgjÃ/1xwH/^A~  (fU )[z*GŌ WtǷq׉gV0G_zsH q.R 3?:: o#199!ugu8ɪA=W",oiWygA\ \Ly4G2M=}e?IO]OTUTRo5Lm#oWpxNv)67]M-+He׋CR jO$1(jG-sU- p cL9F|t&ۢfZ^D¾ڃN L&.-7_3-u4YM5tҞ8Χ0o !0ȯgZ'\)dciJ Pk|eEښ>Rᶜ|04 T@WSj\|''C1b iv/f{\݈( ^KY]p`Y^\OUhe?=nۥMJDqB61u토$1}}SSÜ YrQ%7-S8MoZ@Xr'#!Jz!̕ 50 M-M; $lΟ<&ėWGjg/1(h=dݙߢ;4ҧpITO!YdNpS.b'UC.Ge7WE+ SL-/E+TR@rGHS _#{͚#7p:B-b b~ mੋ-u `֪ҧ~TLُN$06ěG!֣eH83)s 5*qmsRi!1K2>6Nˤ0e^שIpL %K9$_;aY =HþCP!7"ѿݛ)氇ԖV\;=ZlLMV7z)j]6\yTim\==!Z-4)׳:w'`2gR2&[Ԟ$C0/)e/X&0`"U6*uN~0h?ׇA<5ES1c`nY3~9X=A3*}]Vvd2zUtO]|.]:?؞t"۫iA$a8;j \|XQZnࡕA[",qUz!?C+]]-?ats@Ug˾AL42\EPnNN4D5JYDp͝hyLdBT,IBHHa-!b" g-U-gf՜m= % r`8f*n')ĝ 5UK0)JwLB:G@ ?YsD5T,^T;zhjME(\ ӫ؅SަNI1@l1:Ui?s·rfaՕ`}gn8! n4C6au9R^Cٽ]jhL0YcP/\YijQgq C귈nIg}.KرRb|3TJ pxHD@ TNHVʪ7=bhCWg ')dA.2O(gE2f55 'ܗ聯%eI[[_n [kwCWT{}HDG2p}V5V XSA}BŌbC#"r'u'' ժQ9D*w%Ru_Kf|ܿI@T@o=|v>9`)usB?+Tw I/scsBR'aA <45Ȳ R{Rf,mc޿ D /dok5%;hXBz{TY/g:v_໦MnCwr-!z w܇F(@ @ȃ bБ>Kޡ|vP|0;)gm"sm3CiVOUa-/f=+d+UB}UZ7yyYm~.Q+.p^g $8+ ܈ Č0}CYvPG7k,֭ӛ4Zk,DT=^1mH+fA^aZp# QN.iqҏֈ]yL\i%}vm|5zr&ؒyH+,(}%"Nfًմ|m'"e!hyU -ԛ`L@:#GyI}n0v*TBvׅGmoJf +\RBCz)ZUDzMs%!>"W4{6;5_COVv%҅b6 g-BjlSp^fT dWi@qv)=[էgW:a7]Q{gT&Q~KH{BmOgSͼ+}n8q9ʉT6طLX.B_(5;$I"Vw|a,輖g@tNmf , 4Uɇ+[^yumzt c H 0Xӗޯ,PJ^G"omQ2P ׋gٷ2J?^ O>A^<%vKbId[HQHN.( x/IWB Jnl}FoD)oa,W05f* 'ئI#qjG`3t½Z#O!uLs:+qSGSN(n;`hgɷeFĤ]3+J,,4 @Y=L8_0)r8Cٕ{l:=iO۟^w6q&>06g,с=U/LEEӳT DY=U>i%)8 9UHau$A/ǝqD Kxy(zqo3fO: _W.?c]3匶W4B5~T 5S7J gmR''7m^>|GuwlIܾA;$B_U;}**֔ŪRDE7fh=ؖ8Ͱ$6Wc)HP,ݿ\dAοm]~`#0^&ukd'1y4,Jm&kǓdˋ*  2ڇ&yQIP)ǁ[Llh_Н(z>E~ɔZaDx4h/A$0Uμk1dDVUcQYڹ9< H]f]'[EQ[]}Nİ< "H ̵yP@MXʜ$l,nrϺCMjs7k ~~J!;:hy2P9/ ٜ zTH{>:CgZ^ˌT]}pq..'kNR^4! jHt)6VZGƜ v9hXdͪʗ&@DPBF2g$Dˢv{0:[W5=12vH_D5\ՉFYQzdt4몳sߑz(I# &|?}/]f,`G )/h(.ȘQzc;\z¼Wu=0)0O,N"GD/K"963_h/GmDSzD'#€Pi3A.h?X_MCsjSx@m&x8q :k̮X ("2*[uQr 92lOD*҄%(g&="%`Sق >2/BۡA?8 "z"h-R˨,6, Z!@l TG|?/G<-("zcݏ v6TG|"*R=u#G0n_5s* vt-%,:_"4)4ҒA&[Sqfm ш${7$z:xZB : u[Nn6jJZ^1NNvϰMWs6XpfI/ kuaaW)LgW+}.XV5mnނYH$gSup*"GS z8h܂IcM{BovdԂK?ꆲ[~<ݞ cW)ĨYd;}5V=O8M֯2;H xtZX9)Rl/z? :g+`o>I(ˊam =C*F+$b}U`J|ؼO%ϭEՍVe̽^Q8 @=_ԗO L}#8J u*o}h,9W,u]K0)$Pњ)|4-'h^f2Fҹ}ペ?ϋ^T.4$%m)<2T #9-=2MrċE%ʶ*6\L?W a"n?A"z-:]ß( ~o~0jv I)[o2=u0 g5XAzꃭϑTcqOkA#õ̖ ܗ }[HSGA\QtGz=K:VB uDeJمLT-"_\+gp2jA ^ ]spF4X#剣E`ԌlS!ܿt[ʌn]5ɱ x lnZ-4  ¯WU3f}/og@>>.ZwؒOPh{:P.ΚAVo۷02>2=*tPP0 VocO۞ڙd vyWJb#ک+ o9,d4%CnA>)*,7%Cȥȁ?lAU@Ya۠f`0!v3\L @ː5[Dƣb%v 6V %Yc9`> Y݆tTTHyHEzT;,|䬆i` U,/c, [M :p 36fE6,X7}$C> Z.Po07H,7@xibP)?IctOy8CY4:$A (YT"ܫ &_c9exa_ƆGjrUOu[d;s)_!u0__F#̥A|:Z ? {ԙ-"q6"9.0nWt wNA4VeǠ+0,o<̊>C#3n27j;Ơ\ y0쓿9j DXwL( iѺq&͢);3un d W>jyD4YQabϞ>QPձ؄-R}W-w.͍Uj "R:=n6LiLs_$˗&H tl׊~׳׽O I{@JqD<"FgD?Y41[1ƾ-qhkE[Y}gI7n^iɑ#U+QZc4-ATZ4y]KpWc TMD|ǣ%-2s6 *?B=@/hZm u$tH!D-YcWIHnѻ1^0)a_qLkAb)$፤t4̓ "ɵFˠvrIvyia/``S[EHH{AL@G&U5  v+PqҼf09N4ɪõA=Afia14ؒ%e'S) 4@_jF6aM=C1ku̴ӒkWpb/=ZVɰW/ϒĿ~c[`}+]cXe:TEZ-#8ʘTʝ@.-3KD<:M?&lDcVXfw5"2GúvCt\WdG4͔CC 1 Z 5.> 58/SÙM4Yk7iwGE.6T.šÃy^g[Fp?B6Io4# gӣ5CڏO3Uث|rё W ArKLuQz15xs<sآ+( P$Ҡ+@V;jS\3,m"`4@K}o.  }[Uۄz.j$m9ˉIQTXZ8ƧO FSм_~vd1%z5Ch8ߚ?vUb~+φ{!Ӻѫy\gyXowZ~ۈ7aɖ֎Tvf  oXgLl[&GAvlP_xDޖJ헥P}k ,6Z.?@M@KlY{-MY}Oڜt MĆc!cxI3zl /5?d FO5/x`Yf;)~$] ݜSupeQ׬D5ktkV+oQ$%J/T:[#i!!F녈b> I *A[% F#Dq!Uk+E!_2g<+QkIRrcB?ӚF_'Hs+Pae^!c`[zrSc j/版ݥu_?Ŵ/@I}.Bwُ*7-5wEp'(xۘq`FtUVϤt&< :#[] s;]j i7 gg`Fwz̢e&?!ڹ./z+7:̮UlH*?8WԄ ˄IZn Ams{(R.Sm"n/\u 脜 2UulVЋLp;&fK+ݻ.*mn;o;Is{J1 4^xTm+KF ΰ]rB85-.H}eOˈGK}Hp̥^qU9e-nFe 2pR j~7t^c:I0w pRZ+aPWQj>t̘\&fBٟkz/8 P*wm.?VqU̎ gҼ Z:@Z QӉBo.7%֢kފȦe`gG?w4^™Gj`m`f&HNL7% 5.˄+@0fPx%)kRVy7AW.̜t`|C^GƖһzЎv*9DY.SY>î*վbϘiF*|p?Nu?|5SҾ[ ~^f=j] F녮 :! D0;)bSgESf}.\%^%5_t+&H;VN2/gbQlo* 7:1] i V 3Ӹpvh;a^˜Un{!C8|@o5u?Pk6V/:&tj-8 ݖZĞWvt&g|k%\Zr92_3VE;43-k@ 2ߛDf]@!7n6hT@(@P1 ,y[)4 Wy%Eh3&_<ߎ!LAo9~҅Xq3!Z=/Tui1\h5Aq}t?U{=!L M*.~5ҟf enŴATE i֍Fg=]m@'>NM^M |\S(fmM< 6c<gƾty;4e3^+T{`վضEwܥ'5c ǸznZS( ghQD|4lo;63ϒaI+"tv d}~=+%ܚe=A*lr~zh>2A-`r!v14 ) ;K k@[ɣ-R"2$k@7p'SCY2t W6JZfjN[Xn:Wq=ɊUsm<}N|fN\w  ݓI׹>|h :9IYL^tYљTYs2>G} ͑cL{-M?hm3稜_STo]7WIXM]Ve/i5]evE,R1/)_!tByqBE7mW6AcZzca-FvȍVvYcVd "0 G`?d_;ȟ&#S7 c#ho,h(T^7 G~s7!hf\gQYĢ~L#0=4ΙAE6oщ&[>b{cy}&Լ$~%;. :p!=mdJHMߩ0 9Q!y}摕'P'cZ633ʡd!Gk}0yOym+6G*яDhnjsmNKR>5#vo|8_N##G$C?E4cNvms]^٪! @|Bs ?h䷬hY['((g(\дZ2\e\q"HPt9y;|ҜuIQ#<Txw8:krXA3*U=/I9!xDC#{ '{9irnm՟:3%Zљ6,Q@0O[$p"B!G ,y[:!,>7=QqÅ3IhyL\/>lJsIŏbk}CdDR,^>6xhN3)< R#]}\%2L$t ] q7#hWQk0ž5}ΝBy.B yY\7_͓IQ8=A_F zJNซYSew/.*]XxL 9WA iŇ(|9CUtks>UbNlW2ѳ%#L+][$0O2X_G{l3Qg?Y Oz 5%sL@s{LmXZ+QDȝv)WLUHx_'#զȁ F˜Xتv-i+OI-ܾهU5I`Hmg)c}Qѳ"EpML[w<d kFjҙh;HQnW[z|!ފuK[Cv)5ο6C+M+_XhhzUT~ TҪ&*.3ܬ,ΒQ 8^zlVnMbI:Ml5I~F2`^>ٲ:#0ʿfp&*v!\\>bɧMPJ}<qx [k"B_b+aoNzFLy2FCLh9cKҴ蔵ѹ_!AuatM?afE!`>z?9CDչ}{5YV*& Nt` 9=K)+}<Sl331`˗)}cK~d~~|._*D\cfT𖔩cl- vÏs +zP9ƥ9*іd k9m3]el\Wӎ4hD,*6:J=QVƋ+9|Sfz0TM$,{\ bP煌Xr1Vr1؃bxJ_{?MÒ$T~:Y|9JIupzYEOT&< a&!-+%elo %oa0uvp5zJՏTԝ΃ʓ(u;boY Es(<=Cx]qUj~mL%Gu<+Lۈ/: ϳZO=fN X ,Zn(9>c 1{!lJS&:b[_P*M gW+n\Fض<iD2f/ V y8lfAqow> z1nk/CAő:.;#ә7j{3ͭ.RP&LIdw+T<9ۉD8eˏiSؤ}ܐw<*6O`^aT#uK#EY uj l5iC'J{2~?lLL` \+X,MGDkf۸ʙ;jxЭT>DK 5^p~j -djǤ5yoq !C:JV΋@b3N*g.UHJK]`ouzҝoVqGHz> Gq9.ƀ9Ģn]R^n,}uv=zYu]{Z%O*"R,ܚ&4S@DuȽ#pdA!ZOGCWv/R!"$E 2 @^ؗ^t+(]GBS  - oatepP5c}h bɠu"Y}l&J/ T+ɗTբ@!Kth{{,Zr t%e]_0t+AoJ)pLJ$B58i-2DB|p :*|F3`bV  [ Yp܎l1W*%'"nT7Ny8L贰kgaiԯ+D@0 {GM{ rPrB9 Ȏ+B(dnã)%!wѦx2F[3 TpmPPKjv9~ԐS+Mx%?T/2~@s^lU-A _Awai(kU厡Ն/Qk PC]Lutq9wiR&(f# EEiq(̪QA2oke|W8F7W>'x W]89H *a6ÝC9Rz碁/J5ՒQջTKʌ{Aokf2YÝb3c*uk}Lѓpdv;ϻDF=obmNIQrR:B S`XBSSua R??챦!7A\ӻa2 CI$X3?5e(4AXmVʮhfi uVPyfbVTZ 6AD- VO҉& X.-cHj؜wdqH'=uNNs%Ei Kl= !тXLDxc TÑ@ݫnE96VS 4'`Hׅ-,$h&Ho{#~OA A8( lHڲs$BY%KQbHuu<(ޓeN&Kf:%\:P*0g(EfpJ}nsXz5%^jfNf\t0EXO\Gcf.5V'+:f!0p^z#eH݊UG$a C l+;<- [ \,mI hcEC,WߞzؚʾÊk}o5~7;DNŚt2{NC{]jﰻ8 mhDm?~6hčcp0qUKIe_:c|ĔE/|נST8#wO.ZQ6fEnNPb1oKvSW:+b}mW|mIYB[T}~ h8>sŠRcU2LҬq 7B%.L>B;RhAG8LW!]q{`ܠGh^A$gïaMbVV䫆PgkiW0 Q1u>3g"ZjAB:sKP dKW:d0lXڑ)0Qgt;kǃ3ٻ;9~aph2f/m1nC1@{9$2$7ue~!{lnA[xOFѦ;[#PG7μ֏EˎP'4o;$ ȱO\$n=`eڒVݔ/``ǤnUsqC[~}e=f{"!nM,JP29 :b 4Ă$Usxgi%VmX(c讯M֘.B8oIPz'X)9d j\Q6[}Y8? >.e^qg?fiv @XD)]9 ͙bY#tb}cB+` W_Ѩ%]~fn=? 0惢#]SM :˻-9 "_ix. #eJ TĊ@m-swRAA3fKnKZY8t\W%,ih;ɷM[!h6X&& <؊/BVpAנQI}5Y,A>~ݞs凗Y|ODluJ(#2}éwߤzjȁ YWyI=KJU~cJ~6;!\lF_.뿩{6;0֘`Q_'<+ŐG @o@ 8%%]S3e!OЙ [Vl[ʼ砛,3#ɋu/Cb"Պ ɷG>  {<1ь<;_P[7?Tsے?ţ} H[y"bˌ`0m;Ba}0't_f< ȭ`hyM[ B-ccѝBgWX-!nG]k8 fu1*}ɇ $f-d:W!$W PPksW6 Vԋh=MCE`#&C}k[7{e,(!˖zs:˃4 FozivD+˜+KO_]Qcl[<8o^rfK)js*7ץ~.=vBDctgi`91Gִ3=_LIS_!7X6ZhwEtwDyre"U# #U5¥HU_\ͫne[KzEJ5[DO]Hֳ ˭\mޅw(uIA؅rbI'$dmk#*a*r(a fM~Өq-/F_| EaD~EXhRXdS8u~EsYH}e.\~`1ҳ0Z=yW mA dbRg}CWNܟq(+/?CRӌ+7'K9z0F88-@aGutgL/dhqzX{"}VL7D"uY6+J@{߆V.4,Mݦ"eȥ/I  zV N9"5ssƷ %/SA* Vp+;%S,terVR䃴Яljk4'`.,Rѣ2I1׿72 iKW՗ahI?v#go3PNgx@ 厪mk)&}`* ˗l~U ZCOH`4R 4e.l{X҅kn9IN8t>-SyjHY^ ?t8*W]Ϲ[߾WzpXd ~̍@Uffؤx8\xIMLu%a13G "3k|頥!Du ơ6xAfE ]kHz%9n DD 1pxACb ]͟d&K*#9Gj)zt`J$14<ǴU}YDD" ye*8}c3@ʇ.-{F3ufک)짎]27k9ꚙ]MetGuRde:`0fN=~D89ېM&̾3-t DyUϩ +6n)ἔ({wPhzWăK*㸨 S4YI'EDI >#{3F:Jk::=?+yؽB)׵+lnl$/ޑoBnBWpXYXf*U?N˺g=">fSAfyGĚex S3y4]p/YA+h[̓g¿4V xYIh-@]</TKL0Ń!JGƶư w|o1qU.Ćܷ,}Q̇B 5Oz3$t%T!k+8Du>xM)U(dVq֑\Ŧ0cO&F7Ȱ[2a.r⯡æN{)-HR)&;ϯ >3E-lscS`yC2 ;77PYF| ]OQ'vp&La'dj,:qf} ECl:g߇cTӧC϶7V+'ndiC.%cw)aѬFi66%|ݐCHxT3#t`-MfgY'[G'V}Ƈft!_5͠uռ= Vy≲FNuY;K^mHD$3>xK̃I[0zI &EX2K~^(OTr㚟Dw4JSB)iO_ӭ*g٦.a.ӥ-ͽ%גyuuR6]9K}%dȋc/w9%u$>s6;c pWRc4'!C3ͭ?JxŕK;3&Z)ǧ%W qFn\խ6zH^E1 Lt`M⬂w57EDʈoƞ􅨼f,G ;u\#4hg5%+OB„l Ș&f+i@0v% Rwq`=9Wd8nuMk`I1R R69>\ 6u*TQcGᛆzmMYc-/I oi1EWԷ1:$GSG˵T c]V&-@ډ9BBDb T (b\vULZIҗ&KF^oh\`5:`E Yq*]}_B9XG`ytN 9q÷$s[="Vx$+dA^F*`G͕Z ҟs1~=v]MD_0Y%MSzi{(@1`7pP,Ytv韉xecB~ ڼ~ yOxs F|M@9)F'd&i{0Ax=oFJn0<Ƌ*~a+Z8 ;3*9\P$d/z'^!|)` GrccNU(򥃔AԲ=QJ؞f/MՑg K)Y`hAh\Gjfx إ6zXysaAك1'U|Adu8GH"MaogbS#WR 9R]vr[$!p<|[MaOK3l4,z>OylNyJe}tc|}'z%06ךoL5q y>@,grWăX(&2m'74a!L> =tm?FMQ`>֣o5>KGhn ÎKre\2ôOQ3NuV|H.JW~\f ##zSe?AtlJ4p.mA3w½G3^-Y/]?ǵ"t&TC6NHQ5~l[˚ДSy,X+ ƘҌn{//}9#/?[' 7EDe=427D۽F:C~Vi^\PH}yҖTDŲp!DiɎKpV\x35٠ޙO-Yџ`Չf~0:qs_,|gq/^wq*uIwJsȱ͋&\%dwJ=]A'd q{[[vnzhfz:տ`2\ iNNUL 䗏qx#{0CQemfǔ Gu3go1NxJ<>9#<B٘9 TWC^H4֎,HXXr?:AѦ/^xF3JqW_;W8#xٞh*h.쨾b9;!rܐ߆@I2*!uP@V:Й ~՛_Y^^8 2nm`s6sb61+Ǒ KPύߥ|nA(x& o>G'bF8:q* 8}L}x۝&9kɺ y[EhgK?x4b:@xN-'k) 8`,=ц;},׭nR MxIW&mgW/D6tfK*hY]&0X/DAiHrmmL7 ֝$,g̗ezw:3Uśj>UNpx&i~ှ ^㕬hvr!ɮN1|oPS2-GS}.=¿?Z$˲Mq)<>  |[hhK̑,PsPIXr1OsVKקm%ȅ1^ҩTzVOlR7,7t9B?]8,N5ɉyZic/CM¹'OdBa oWxaHkoN㢝R1i]K,/thޟ { B0KtUO. ]pgЏկо< GuIN8L뵱Jƽn))lsn>~|.ޮ^"xR x@悁LġEH#)aV@~vwORC#Xвx+nϟnGu% ~ܤ xe::m`XJdP.88uݤj&t)*uWC>bC3,]tǨv`{"Nho~Up/pDj߶u@vVr:jFKLtQAyLJM}M ~}^,`Lmn|Vsjv|y|mHudN)s[@,'.&G9Ze6M>:M¨W̋k61.T> E?Ti)u^s$j3;]`SMUD4 eE~}nM˨GC{]bv_S(!/CE:p^ɐI #Xvh'~O(_Qq7Z%0%U"c0.mE{_ݓuP|)CNT"px_W58cIR#Ɗn%:BȐjʕ H֝:i'}EUk33tykѓ3 ƒV1* Qr_)ɛ'#p"X22SU;rwe&~?/Co \F #ʅUn\ܸ[c]`K2,:dʮ\| 鵇|Ӛ'EKloOS[`< c"03YM޵Qe0"="I͈ -W@-!jA+IJ AdeUPNd{.g+3[X.,]tYeu75 9PgW4i{,S| *\`AJzWx2o&Ϛm`W)WL9MYf䱷3"-pw)о2{~~si4nM}]?$T3)I+iMkOKؽ0eM5rkq7A_nˌF@M?RٙPYG)FLH["ɀia=fr\A&P:_a<Ƣz{Qz}364c rWQGF٘[OG^k4hL۲)SH^Cy@;~6}׉u:P|'?3Ã(?i q*g Ow0 {KUK| V)t02 . z⟬ 2yZ%퇲|Ҭ=w٬wWKj,3QNEI 8qmk>.ow-XL~ԓ1-}7sI7kISux](Cee;Ԑ_]BrGAay`.F}*>Nȃܫ""QrraOшb "e=4NUi RGG_n :s 26  -HY> _ ?r8M'įHϛbȮ.8>H:)a.W$7R''?57 '6 M nD0]lq.4C݋2?\ǨڞO6h?[q+cmT%oSW' oB_>^ߛ|r@95GjHeC!u]0]bQk\m]8TZ)֣$l.Q_L0rPg1O$#Msba5?gxѶ!wz2@}˥1?iEсC`(c>nN!ѕSw_ x J]E?/><]lߡh3 йX8T#*m`* ? Hk)9ctvhYe52A٨% )D(vi@Lx?f#bJ=a|N^ n~5*Uf]vUffL)xn' WѬZ6%Q(vmBƶ{>]D>'8ZſNae3[/Q*tu%~Qn8n}]l1#y|Z&zYJn2ndի4~/˯F=y|D/TgG:WΆC r5[3{oU1:̎y>낋[̷`1 @nf*pmTi^Ɗkjwt1 qb`܉[K>yHER\,J&'wM,\ ={ )e(zP}RyKzJT, UA]QhxЦ_MY'*+'C#qJgZ\2bim>iHMn{ NeZ8AJfiԡP1Q[%Tiq\Y^gN3^BnׯѦZI;+Bԃy~ůGG.MCf_)/F^z.ӄ _=vnǢ~=e,ԷZldjq}S1e+N3]uPiSo#gFn.LJCj&Q4|YzrlNvA{TLm6b Me0qėh |oUpAJf-8Dϗ>x8&9EV!VRk}Cil'RTco.3\B'$yc{y& /޶Zp%|VJ*gOCn6@CXx4`x osDA}njr]E@7?4чYo3a5E^=Ia ۲ng(@5;Lsޔ׫3%;x(onO2<"#DK.z7ٝQ:\/}5Yyf6pJ|pM;J846xU8cpNKcZFC.S+ܩaFiqpފ6djd;h(9K ֎Ԩ$\x ˰aJUbsWZ.y(&W;% Ǩ8"U5.; n v; cd&T= X]MNԔf32Sj| t.%7I&:ַʙ4mBk8ȲitF䍣Mj)M ГbD-N?z3x-Tj$.ŐoS*ҥgK"$:>jRi|hv+Эz4z*e(m1+]! 3YcCqp9l=[YYJO"]Џ = i nRwV=սB"= jܢ*UÞ,lrF =#9g%{RPM |ɗ[~»ǵ%'\oҩ|'J&b_ ⺴77;%w}=<ޓkU'* -NofdW8&]\/F 1.*^“| ,CdiJT{dk2u U,~"r Yߞ1B]\@V!&!N&4EXkӥMH5ȯ ).= ̔G }? ĖЛ2kD-c䓘unJb+۽eݫouflL{yð:e2@GuNi]l̛, HSX JBΥz"FeY M})Gvэ{3Ys'fdp?Lf [B@xɠ󛀧Q̣%>_ds$b˰ l^⽶2RET8 p1nyZ67Yae ;v]LCFK e!3se T1tvvE[RMMơKSZ>;&dQމu2bFAc=4S[H4yɌBޜ֍ whRvs lB~yT;SdZ2a(ӕY#'@:O/Cʓ(Z]CCd B܎:cͥnmm?:(@; x%*lV?#'hp Y$2]. RNw) '!{7?XT>Wv MH 8|̫pB )s V"/%tI ~QJx $GjԈ9QjD|;j,*8)CRu>[6c49d%VaJĥK-!*WV&ќ  ``k-?šm&Fu$otϷNCpn{P-d@~U^\Kyӫs027YUsfX9>s+fd3Ia/S]tpG`b6S8ذ?$t{7VҾ`sojX9u/i.yu$-Ls}@L]ַT;%PE_4fY`y|G=jrN[_gmDa 1";d՟o˲#o^ T|ϗ,3Cp]p)uPyy=;*U19bDk]q-X _Į<ma&9!i6,#Bm}:eۅGA4? \$w$,eWcbȔO(y9mdPeྒnwc 7~Ո|_Gcl"_x4g("G(F!F-ݑxy?K Ӧr+:xz{zOm5~bbN:B ݄)jJVV7Kv)}O*O'iSe(RkQK$DSYck u:؅]〕J;Ul;,Dcӵ|Pv^첣!멛/"e"b6ݮg3Z8Q<K]b3~ JIuŜʚc-tO.Uû7D liȴ0-b+%M Wa2GD={b~Bѽ!8 i )vNܸA4&Žo>Jc`Kv o7X}Q"9pR`(>쫟nV(`N vSEyUײ3U3Zc`{4(6%&8 iґA*M\GJ^p~H $T,a+KSp5DG=D]bc|c=0<0۵E&•N>JȪOO-\t`h$$}Dp>BCqVQe~9A-E]TҼ-GNfU H e0,rۉ6@\^T3Өρ])_xwaWD)s ɩ+ V2+kSfV< #ftVTIthOҴI8wz%`AB 01gȓ|Kbst-Bہʂwke~j%(;IV/_,w>RHIT%9?st|Tb0up—5b}A.:K>jO֢P2O0:X=ږE, x?ҁ'u;?ӄs!LtYzeL2"' ?ST"B0R# / ,>p[AQ=ׁm`eѫ׷l $w-A5T?º]2x&_LX}FYnĹA?FKa/4%L6#zA$^rkKCn Ȱ۴M{ug+T(\cmƟ+&nclk " 'lFzq/0G`kV#!#yt*좹6`:V&ՏيǞ1$#TH|ITza6ԀxPjQ0K(ܐ+}o)ĦM==M ruo]ɲbaЮyKLPX lᱜm)HYݣY:xÒ_DZlk!rL̘g:*M%p4`CSJˋC \<|ACh,$@݅Ufk#2]=o%aU@]T``y(3 OxRw.q~^\f?pꖲ]Cp4xPUH+ O{kLUES3z4C~+<1-$BxE(ԛ[L6=>GN 8 =Oi- {&w4lyX~>J1K3=}o1$PXAz{7QCWםDeIhGi ҘGNNcMr|V+au#KF3@7 ,c#5CHяʒ,(l C?Fb_;oS1LO0)sM>tg/Y~cBܒ$C[&g4WS: Ji3V#mN)d㗺R+;9+g)K6 nD)¢7rl#l_D7PV'0w3҃p{*B MR݃i;UY.L&ڞ,h!V?vv< $hs_< @,1]jwQB4!omUǼ{t|/,l [ͷkHnnc),8TV-  CmX]jSp{2+~.]}+Q L9U/(AlM&IqRFIkA'3؍F#;+LgB?3f'ZՌܐsS?Àe,ﱛ+F1%&cfecD eYW6XhB=|a ULs՟+ MƓNJ: %>:]_\ p`3]rS(ɵKwnk`Aӎpj`[ 2>zj<56d6,f ]޼?KE;Ih"\̼g[ݕ_OU^WAR*듁}ڧ܊wb{v=ɺB}rƞ}y@Q֚i[Uw:5q8r8hu7-IImtcUPտiG8J:ȝZͣȪ#٨2wf1ޥS@R<9GFT=0t0}v=QgZkĴ؍ /UMټ*;*O 3!۞5hdci!f]n=خA*x|tKrvLNhhr_='0dX6!Mz/|n*S8 >rB঵(y+hYE P7w"\KD+4:Bn3f:J F[<݌<yrz m 2$hy15'B" k<"EpY":\;{x3(A~xѴl3 u̴]͹3RI05/ ޤt+x2Gf6Ly6q3RGX%V^TU.ݨ%N܎I?tQ뛶VJ/{-F*\_+N.A͊͂*YTLr yG Qk)m_0wzPHiU vhOelpeqP QЛKK3ațyYF$Y*n ƛe݆3-i)6)y,aT{0'KQQuޡ I\=0RZ'#ks6Еcq2_=OS?q?`>=iD"󐅊X)&\%X "`nģޢ 2 /#]ֶ6F ('TMg&.bfkvsKh&2&4}1B^Jo :cByEcF- #}֨:BU$ <;sLo} *G8✴vN\m"qWh&_0߻GDbonw W1Li$W=cۭ<5$)*rfω/˅)\HJ@4HZF鑴 ͜ɂl5-#93hd|q}f)IwF@,TzXXjvK ]UlXnz |u<i-\cϏvbXI4A&cd7O~6:EE@р\s\o=͒#kΧfѩ7NU&h̬.!Ӑa`)1 p_̽#Z ʹP:Z!;Ԑ]RCD3 asd%/: xN/4Q}moOOUI3M{`QJtH@j^YoΡa2s/;u'{=)Fv"!~U;)+:+)6 .?6ƿlkV>BA1fKf`UQ7mhVR5esQ|e"_0r X8b 1U]dA-NH$n ؈ߏh1𻂼" #W ༵!$9yJ&ws#RvٱmDq'U S. ͌.rՆ\Hh"0)̮y@:?\t =M*8yX]`%iosM.ΊV(鰐?CAßNg <60sB$%]&|c^oH_y>4Eכm u>w8ŝ$Cj^\l3ϒ28ϏV 1:QH}ELkzOW7_+wXls v4ch1z` H?.Nvl p.y'Ppp&~{:ʽ4|0J*Q,t6bT@5[Fc8(u^Mn>J s`/;bХ Pm /C dQ8ucc_̥ غ RDeM2J֑N~LyAK[Y&=qtnj>,''QԎBrށ=tқ併4Nv lXno3nHI!6.㹂)۱ _+\w$^"06<;Uz3VC\+ZhKlN͐ŷ i4`ZG2o踳8sPwg8tMMp&>V }T}&. ?fi3'١0R ]zzd\9V7[bI>,A{GP2b$+`aM(P-8$#BJ =+dž'=S7/uxe,!߼쾡?W'2EJ^FP_O^/C[ilF[[ؑ^fm.p-^^(fTBЍD+բrLG%t7C:lYqB U鱖6&l21轩]1n([{z"'0:#>l>M+ǣq8.:zSF RnwuG-r"x >~xD`WBBhd+̓biaaw`Lžq>NJyĂG=O_<^h&,dU>״%'6X>y-F?G smxL?,m.6aױ%0jb]Nƾ0t4% UhbF4ԴJ4Cd7>NbXS!֢:kĚW9=& mO&ghq!p>TiELLlaC_^g,~("Jn_0)J@BIz|2K*6e+;RZB+)J*|/5kd)2NPP%[W$}VN;tM1nh zaEw$zhܪ.u4w~;.x5CeɻB+Zt qy] V6:y安Ǚ+\T6GXQ51|kW.:Q!1'C֞~NJ|qR#GC}dH h=q;;q1p6$ö0 Hѕ|p촹#GxHs0/i]`M՝4=A9MۂR;l );u(ѴJ@z%Hة)pz6{'-Dx*p({~wL^# }Af Z1'ƚ^Bs"Y;NYSݘ9#twϷ'o8Rxp~ TE[#bosd۰rbFΧUA8"Q BD"8[C)(-S΋ Q 9#uox])K4̀-1 'Ӓ4͂p|5!>n_Zܓ)N&ü_׌TE`X@+d-E|Hf#SȊ`xa.}ʨ)[X1qC=80\-v3%ƺ4/('q cDK2̎-wXV3W`IiXkG4ek/꼬?9x&bHU$ mKc#)xg2OdiYMZv[07 H}vrcviw~їN?>'DRhq\qd/nesŜ -2h*(QRhiͭ tS;lN %UcKBq@{hymNR`K poʼ+q]!A/z$ yqN,խ)]mo-Y`"Em'uN! AOmHqVJ_k `Ceo^3l~>C3'p+􍮋fuEQ4HPޱt ̮_4ih4Xn>Хgͷc.X! ʹJU˲oú r#r,35^ g{'~&؎[3=e,Φ}Yl<͟p;DFq8W(8UsV7Z -,Qm-qS})1.;LJWfP+LgOd\;{E~W ɵy1*rE*#FjqS`SuC~CRC]z>?  _YN~PP_UL iP@^_`;)%b8ff{73&mgdT9|D:e5>Z*Zd|>M~jxR`W4J ߧ3LJ࿝Fb 2X9F,t.|FKn&rlb8W<3AG;զ'`+G(Ϝ#nVr~ݫm[CJZVtc+{͡w% meG2CwT]!QhnFؘ-wq sԾgj;9B-Wڰ9??(^!!@b5VE[ ɸ~u5)RY}8ju͝x]8c?^8Lhef! osYX#GދRs=_{9p70 MIU0<|<J`IkPJ9Vh"Axi!?# Lٓ՝~hmL`(g8}?gwFkw]|шּIbYqݧ7$a})bۃ}bnt@w>s;8*s(o|`3 GzȥF<s&h&@Й|_G[;Ď̽=U߱Jkq-3\R(clk#~X I⯮K1M9j;'&Q ^w:S& DsWN E/{ME|3Au<;9o,^/n{iS[zOץL bBbv6:I;r|6KYzsCՇ ׅ]GgLN ^Jt\L__qidie>pZ9ɂ%a5[Bā͉U70S D%}3S`l~{i?Q Gda<cX.9&hI iO=7{h?i>|d?WxHs'w['*~ .Z}(yp3FGP#A'>PT/ڴva|Ō;n^l/g)T.Sm%ϝS(C"cy8}6+XRrƎר$p: `}m7XG| %&_:1pl[yqfSe'œ_Pr%i}_di닌 Q 1)Y38JJvGPwDbhv5|_~^7'M84cC*{> T% e]# J8@]HԅƢ ˸$-MAA+Ϫ/B["AhA!m|VU8]0}u=LH?j)7b+P>bjWWI5%+ ^Bm8]p*R*Sۅ|K A,`UCEr3۝ܔM(k@3*.r5ꭅ^}G4F+DdKlxizޢS@(8J)Mr}{E/ԨQ#!'N'0ai%a6"9>U#;܎p˃e>qtj[n5vY.[/Do;/@/Fnb}pC7_Iz8ՁM6aFTpe`s6\Îߜgq0j_?t{H VD~`H"24&6·:;; \ :ь捤t2md).esxQ 9LM&d*iiA%w jOTϦ+^:ZH-E4ezsbJķk`_RM9VN2kx?\!!EyҾb!{X 덲vks62uMhD;0Sp( J F;HOy"whJx:Vq2H7`?/s/H:QJ#;6 Yi4ĕyzv,GBZ~d#>6pgC'p Hmx6r \ ,xb{HOɨl8 &Uo6HŜ` U6@9 r!*+1$:]h̫|i}'@ۣņ? a,LJuؙ`0l1vDԔlB\5f]"f.űG1u{tRu i-G&I\,$cv.ٞg)ksE&NE\9fuiq =@6qjb)]eXpɼt|t A(;?"ׂd3'; RñhyƏcv`+h(DYqƭGHu$j 5[ M]4K*P;݅XBxU&3osA nqn~tvV{0g*gp}^W ϡ+SA%8ot;ۤM  t(bJqYjQHbj^-:9tgWxIzxmWG`Oatueq>CU XMkS@Uo72ծz~ Y> !#=H/hm70 *b}LUG*V|CjLƦtaJKP7 }EE}K|}Vil#>Ր^tߗߠ*,+6V2̮,)ވjHiK8["Z4V'(i_,i|-eԃHL)hM?ц73-c* ;pXhZ&Y \%ZRfD<Yq1.Lpfk2CxLM |/+-"If7?klv|Yj dij(mUw 47JhOLcJ?iC}U6.wƺE-btq~sɸYK {nUQB+SUqmp*| .QwBr:j%! Wm.83biMܼ^K{,h/! t 1[K)}]>SƲ]HfI^#֬d,k̉|[AI4uiCCS֫,ys/ےGn/e[p!93<{sM*P`z s`5w4XHkc6m׏Ck )m%%I߉w;.]؜ql W\;(d@k{M/]YÝfkM j)Q/T oII4@AGEt'l ,pzCϣW5zU 7 `LfY#gڰ5xSƦsF,Ⲁc;lvكOGrb$*A|V%d/:g7d<.3.q!#bKD1COKЬɚBҌi5aA+Atߵa+|kvh%Ow-~(QC0/NʋwY+-o?Jf:k o(~a M?($r y5R'Sf!r锦d2LZX>U翟THGC8~o]}<";h\3N${;ب}\ u)t0p9Y)QK!5C|5Yn좨[WS~4 HiNRhfW; >VCwCV iҏ/S%KV.rLS%@XN Q}ƅ.RcLSrbZ]׆ċ k&[&HJLS"$U :Ek>1^`Y 5`+-z$ƾ0HU.3z#FO/B&}lӑ:,M(K _- x˿sBbJ,EHcSڥ3ʝ\B"5TO#AXi7lBh*=[^©RiF[zն,_X1rY*8bV>?=s&bw]> RV5܎C=+/P3rW<1xع}#ׇ*fy{qw,Cn1][j /e0Se $/a&k:_d;4HD>tZc-6ICM 5⎦RzCq2"GpeW,b\ /b%Le_Õ |&K\#㘖^  5XC^XCYih([pkK_BeG\c'eJF>G <ኙgݒ$V8qM1)L 7fem V ˙@ύ;=wkÄǿcxmFh/<fjbceEuDc$牘iB;lH5R<"_LڨoCzT*g_7T35iNLuM^m00^-m9cK3wy?z1݉Ͱ2W+b$ 1xKͩT L`>]&ЄQn]/Hl&eԼz=68t܌ \[_LCSMPD3&n,Ds/*_3 Ɋ13s:O9̛ⲅʃ##}zVr4oU0"-rTD pDk@w[r/@bvHxH(i9r* +}#Cu@wlP= Yؓ0[QH@2>a"&j¦oNTƌ'*`r@':'2>/WDkp8af rX`+f`iyLe67:b uSP(xPn緪#6KrK?qf+MJ^4Zfk/>ǰu33GtCˠvXr6M!b>'%'}LeJ S)L_R`^>k |Oa=:^'r@\~xcy!' |]SQ~ OA@FLO=fc?!qv[Ȣ2>.}(w쒤\C:88d}[[BN\v_[eP!vR'vè rDH6R~ x-j 3nލ%*)qgh|s ҵ *v%yB L| HN. 47;B3%%WCaj7V.QYE,Q Nn3.|`ǔd]'Sߧa,oSʼpօʠd}/'}CGlNN.cp`k|cϝ#elx3#@?K-5H-$}uL9 kq\5sHTs>ײdu/[뛞0o`vEAp< &I}\ W%YP#Nx1& {>0g%N]w_Ւ!%,fiЅs@k&Ra5sq2:x>Xq{?y4&(jbx5wFotgC}e[[ 9L)# - {0 VTӨ5\L ٗt0.QJQdp>ş!/~Ǔ:9 <~=|J{qv\Q#FyvNܻX%"u1cB[ӦX0;s^r 71% cA`k;_j pmU@%uHQnt0D;ATSr Gf*Km4}2\:-[3!PȜ2hj}dj^dn;9 VAv x1Lqn:\{%q*!/ mOd#k`m᝕oa8Q p7NVL'SO,D"!jg3f fȱWLHjۢBXfb9yH~s~ ;6(Es6}w2/?! <ǤS;Ȟ|e{ZnE;> a?>ey$M^~vQun]>[7OW7 @0 dAn{Љa;m>u}0ǿ / )6ҞfqlsUB_]ۡxr ^*RM"&G؂/S?I๭2bןLu^fyd&"YkDP}=喩ڿ6@c1RT6}+r0է&N_x;q@gxt8z%hqnĚ$cH cS|}J`*m&aC%Z3;'b<~P+L ʄCp}hY=w&sTQ~ Q<2npn7>-53HEd5VB\ӊ>1=^9֒?%Y$f#v-S&GX)e>ԭ !j.c]v៫ R&KŚԉUv馯JLK /C9(G&!eOͨ)Gg}L"@}$7;+rp ڀ(R_1NsT6UèV$+9 }#֚Ϲq" 8ܽHђr4qЄvn[;jD7n7dOlq&P3t#|01_aOn{,~7@haz 9) U~k -RĺQG)_Q7Ch{YL@ bg/g!Gۯ8{2VZzOl864s-Q@3D}7ls2x#CBWPq}DX|u]q۶Btջ 'tql(n }L=Xki_"o}O"Юp`PK+J[ LÆ)w]*y%O*2n3ވ>/vq1ʧ -{z7s7>C…^‘4FyW*g?x*wKwEn#FG&1R^Azj;r#3 B Na*Ɉɋc]Uu$) 'pE|@bh>԰4((8.[w(bX /"[%<-t#`SCXUlaԥ0Ncl0e+dw CEXЎԯߩP[PZb޹ճbG INXekֹ3#j00\ˇh7Wz)<=ҥ*?#HDZ|3f͙ xaB ˎGz\6v9~ ~dB@ZG}/VU?9vW6.HFͲ,4P-It\_cXdM#nh@\{vIxQr'MU`~M'n!3ܛƼ6\}wCIZvC%E#V͑@&j!)YtEo28{*Z T+Ԇ/h !V@QRf4bıN^tP+.PR1EA~|Ƶuw lKכ4#\׉SE& vVįpp{w;2q{e@Qv|]ދN9E8V:I' ]DM*y5Ʊ,4閧FŬ&z,j&5ǃrUc{.X-3dwzRO <7sㇲ:_OK`j$JʞKNQ=AB"'d~H_He;]gGnS{8Pxy3h,;d8L."u?7\qJ¦Q?W|NJz kDO}D{=Աqq\U&!QSĒe`WǾa I2bVuR;9>-/7"Xw+-. xR}wUßK.KЮ][}>cFaCpQHױYƟt.|PJVVt~+g9Bѭ͸3" +]ctoTVrܠ.kIr| PUm3-$Sx.Fp&C(w fuߝ%&-O4&&Vװ yae]0$y9.;k)0S N x{M&]IBT6xnd$قMҫUrk-iR3xKU[_J'ti-Sי- $#z4DC͛!N0B~~(MkTa΄R!6ENP!7|E8̉[7Cj|1И6JktnG;l $[=/"NReυ?86K5wrUvqs׶{}Δ>5I7:ˆ#wrBܲ0DCi!0$~ia!Og dFH ZR>m8BC k` Ѡ1`ɖJt`r-Fqmg#X;oYǍbKtWkȀ37dl: sjE5]H[3tKIƝ%K,@A3(C q]QQ͇&msZ"9j<:-Gwp=?X@~-LPs9g v yU̐/FЪ0/qvˀ^$% MvuZjzjOٰZ; -1 *N,V prה9ڛ㷥,e5ݯ&葔-KQ ҡ&|fXlWs6lkK񫯠TBJw)BmD6xcp5+!~u+d82_6Sԓ8Y,V&4w"6,9D! E㎉'3D{+GS4eI$xCK|Q (=)96no~c|.紇M |Y )ʬiQӇWU~VE1qa4DEMlEK47>ɅjK~/.{Щ_Q}14D{1{}'?1_w>إSؠH6pHe]76HD0>.dW:=jQ5[Ѵőځ3J0ߠ=\ ΜR, ٘%{iG:QMbn21Bt&9l =k4,eu)sEG-CD<se3Y6u|{\;l5eqzQI>5B܊bm,&H!~% d_LkK`{h!0\n(` ]o@qvP7q$c xՓ嶂 OJR˘OAgSKǫAJKhd 9OҷZÅEV\ ?ycM? $7 `\'0\өW4fz&p@{bO:A)ȵL }ƏYA4>ؽ>Tb)5*0 O^BՐ9z A+9-XݔЉ ި:VQJXZŀs/US1`2)aɊ@?pg˺G 8$Á=0$4QW +$e;w[aesj'?`v'#]("@~(q ֻgl/+ߍU2m*ПɖaoykWYaQaJ45VN r:atpi6ڗESOWNΈ#Ζ,֠`P*A?'9F=V gO".X7pAsai?RtwBQcشNvxf#D2,ᴢ9ϟq8MdriL[N8$t >zl~Z~}a11> =](2y隹;U+9jLg϶"OMU{ mv{We) Va[? g#A3\T)mبCIp›eIcZk+RXY3޾'wr[RHa2 OH Y/#dDڧ!8{mUڪs^ MH[ 򺻅Kqsx[!07E4DӀ2eFJHPXԹS6 6%'D|%Gikuq%ʾqXа|U+7J <\Av'31l11s* 6{V"Q NGlhm p(Ōþ1c0XkײE@}d{TMo[@%')WXi_{9lo2RWZE ѦǩN qJ" !`M4gK ~U&:<(Y X9n1s{'iOm(~%`0p.LZ|2bL1sem _ XrW%4n(l;ج v7PJ#%AQ[23컲HױxtkYKZO3[]U5֕7ppD S4z_;N &ST2N#OD W|rG5/Z'eDqŏ4Q5&XZdn;߰2 ɆppO8YFw3+b V\#Sm|ˊXQ4p sl'.|ԥZ3,#9x˾P~Xq..gds/'>7@]c=hݩfP*j^[=Fv iSk{H(ꎒAtAQ>lЎ_WTԺݘq\M.~_sthy$+yFgL8E tXIw`-Us5H}M"k?sB;(˵ī0smOe;R<Å?B ͙6X߇7kNWAUDe# bEUN?6kDßO❹'ͺQں:ۙŵ̿ے(+_^%%l_ K} Gh]z{ש،M@Ӫ/aQzd뒌췮DBյiS5s2ta~9 >:: Kn´M01lr'6 ݛ;yI)$QcY!R[Xg07m[2g,8O+jyB!{9q@o-H(Z^I˓j<,F 90,TZ⢈SHZ/Г˙hrGO08)i?y߱?[[z*<?ʻGtG}-9芯퍽U*: o թӗ{nu}ד3i9;v|PW_qg)]77K?Bgݤq `A6Mn`Uǭt"l>HlLd|io~P{3b^D0"xhz#u7ؼ.@5h.95DN1s>zlK tN VwiS `f߄yUb2m@XBL#uhUjYkŊ-\!L{7j_ jbJX' Ď[ξEKJq)JIoM h{N9yںq5.r)q DqK[ |WE}%%{D sCE1|6Wey7Q!̙.*l5 !# E8HBiJCe'/Q VXjؠ]֬*Xj!z^ f_|G $l >$=}G狮dG$<0$2-FQ}6d]v+5VOMP,~zL7x2`M?6pEAj.ט,Y"F`Q3F8Ӊ,W"2XS<,@{Z{RhE6 ?ej3^d8(*c3CKϰ?_ʆ@=$WLi%ԞsZ|%=Yu픑21Ԛ7Gp0յTAJͤS&;Q|<19/5T2I*OLZ3|Wƈcx_ Z3o6zsyTS9 ۻCNhZ:0o+0U0Fs-#o6`O t/Z>9e \hH:a@R.RM&93A{$mtEyW,"1GO~tXGΥoXsHD.2`<OX,fbj/Zpp:OyL"i> 03KY H "Yq N93߮(o7I@#}v -`ΦohNHɬ"2/<1*\(؏'" sPBqAfrLi[tlTNӊʥA6Jǀx*@pzH1Hɟvv${Pʀa=A`v }qw GqN>(vd Kek ?-'x6°"1o;3y0+O5~ǢWIh'_DTDC<$N|"P|Ekù"+| +ZZj7Cb$%޼HC̠u'>H;7# ,YS0GQ2@ž%n5azFUX6t-gb`HKۻ!$S6ܬO @z,}^ޔK%9ghT$\ft++[Oף%l"Q*qCU4IV/s^(($u$fZ+]C}]ٷbiS^󂷶# ( ?97T 5xt=Zq8::&agVk]I"Q ӬFaYS+?~1 눩ƺۯW_H&at#Q# 9]GO`]J3Ɨ30O^8[⫯2B?pGzD)kA$n-՝SUJe'>w,y 7ۍed>"^ͷ޺E 7FmkQnVyDDtvf~56-#k~]ԇ#4lPv`oC`- HYyS.}| A.v>,3JDmbfK(_eqsߺrevL,zPRFKhk1%&Y! cG2-̀qNi$URqM<bm ,(M2P."8gPLXNHs1$AkNm{>@+gC:16 ?m}Rק@kkDyH۴ *f$z< >sN-T B gV)"d$O桳윰UdK0w2`)ds'",$y8` {X]R}:?3WBgA"pftVjBd؄*OW:K)Jxg<%  Xr;3?*I̜Xp:;tTxq=h7v2ERI nY6,9 N \7}pHfd=b9*$L ڪ{ljL1mg*L<˶(whrƕYN}^Q%<$]ISe(Eɟ_LJC 4:5J= )%؄Jk^R5}X{A52_#W F-_-³[63# 32$V\tA;TK_ߐ'N<՚{QkZquMÞ.&rRO3/S#+T4\ 0 Ra.:B3p"$f^'4Cbn[6>V;a}^lnnmcM&\[_4 Jǖ֑c Džg_~9R~c;F !c]X s>poXs&U'DQi5ٟv?Iz*k@/fH7b1n\EKROR8$oY(ػksԙ@ybmО;S.or7=́;>Pg!_1EIh0޸?0 YʀQhdy-LSOd&-(VlŅ[$ycD*;9OO lBqXJy֏rc>nϤ#pAK&5>gFY~xO}B}$E}=斘@\r}>,tw=on*?\a +jX)GTMhmه(/ٻŒ;}F|F*=35+@n`lW|;_ >A> ~bx؄0nHc,Ego0~_Kh`I:'>Yo (,;whW{l2硐-YBO{CzeEwtz#d]c&yߩqj0],NvXAj˵b]E}Bc4àʋ *gx-RS;('_5hJ(a8Ssbt9P=lmRN]'J)c^Ev 'fZyWM@tLq7 U,2xH彅KaZv| ӝn/*cCN!)]8f&tjPX~=1Ɔtw#濹8uD nrptD {Y q8g; *K BwjTj_Lpg%g7^Gȳ%#{͘Mܑq}`:cWyube$!GFb=_| 6&c*;pEK8[\:/#4]%!轳LK0 "VgF)^3 4)i OJzrQ[b}D;n{+ Lu0H$?V;y/SikTDAJ4dIf=qg2 %>%2篂7HVB|*ԀɬSkRJdt73Uy]NΔ)=($խec4ӗDt bE HEQN?=;Z~740jU9C"ô>avDzB S# Ԁ[]2 9th](RKZ rk;4k-\CoT\*7_t5X৵y ǚС3l2fi ^PGELpc86Ŕ+ ^.O "3-lzްda{/?P}:n rY<}Ul@m> Ȋ;qbh=; !2AX XX(ەw5ME-]F^_5[eQ*3<*IT>LLn RWV&#Q '3)n[b*@,O'^NC6_]EBwM" aV},| n96q `lњu{~-/4=7s(1iR^xrXyzkZRY.ϿEr>fTky?JvE+>qS H:μGyMQڦ:gUoJw@Hv\3ǝtDr̯1Aǩ';Nُ7͍27,wn8dpks +spJFb7?8"uF=( ';z-45NWLMmPfZb%\B;6eLc YT-EBǓ]Mzf+oH%b7INaH,;<FH#xQ hㄇD t75ϖ a{!O,A219.@D $Ӝ-'rWUaq)[xltgֳҖQ{2F66O./@DOp5:*{O L7q1#c3 z_Q17j{9)MP8V +3WV{*l0PqsNzԈv.^`&z4z͐0h<9lTٜD@9m;zKxZ!>r83YG*I3ř > @Psp!}, }dehPngέ EfiAӟEu=}tx;Iko+m(_)I4f"5#:g@Z򔣴(|ڔ 4ǎ[ YZ