fwupd-devel-1.5.8-150300.3.5.1 >  A bp9|4'TJ\e2\>w-xiahK/`[\csD+hL G+t"IZZ>v?*7%AH3O߃ Τscts$*W֎t+L M޽A?ijr`h=f6Hx-~q? DT,$ FDsST ^d~II !|o ΜoQtSG$6:!"eLMPE-ffb73b32206c0abc29596c21538d63d43ffc6f8495462fab7fcc016061002ec0c00947aaf7e3cec00df3053770d7adf3a4815148 ؉bp9|'Z@?s_vG;wY 8r).yi 0PUp/Utۃ*1nVSka.)WIBf3 hq t?Đ>{Gk|ک;h91Ac$'CiC4ԛ)ͳutjTuZYsp<a?ad ! R! 7Wjpxq<q q q q !q "q$Lq&q((q**+0,(-8-R9.`R:4RGIqHKqIM\qXMYM\Nq]Oq^W bXcYqdYeYfYlYuZqv[w]Pqx_qy`a0a4a:a|Cfwupd-devel1.5.8150300.3.5.1Allow session software to update device firmwarefwupd is a daemon to allows session software to update device firmware on the local machine.bsheep01D+SUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-later AND LGPL-2.1-or-laterhttps://www.suse.com/Development/Languages/C and C++https://fwupd.org/linuxx86_64@ CP " nf--Kvq  *  Z |/ ` I \rAG<I`ٳ[ Q9)]9)DEc!2x*u+Moh^,0Jp1Kq +u-Vuv9?A큤A큤A큤A큤br`[^`[^br`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^bNbr`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^brbrbNbObXb[bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbObXbObXf3cbf852a17766ea52df4ee6d4c531b6b168c97eb157fa91473628bc4783263823999e85357b8b5f3d2f0953e9a2245115bbd48955eba7111fc36f230dbae45e73295a0c521b16bca98b42a29228c78f2687c8561104ec317fa17cf982ee95fbf20a17434988cc1517f54adab67c130aff925ca40d2066def02fe8584a337d716d5f1725d841854294e27f1fe8b6fd4726877cc3b6b7e98b0b376344e53697d0f6d9085cd8205680e7ba35f0e49c76a25bd36c1bf31961889f4106c6bc2f229086066e2a2ccb105be7c2ccd4ca15048ebc8e0a56252f9c52231f1844e4c5ec5908d071153617a0178e0ef5d269c87262928657a5c2271b2b3e96b2214922c383cf1537f7454f41b4a2f28d3207751da5f9c1b48f0b3c2e1ed1a6b3792833a105fd4e9aac3b87474d7b31592861636a1938945d2ff58a566840c2052533e73f0fb9de2d74b3999a8513ebb810380173fea9c145fd94d35565142d31a13f4adf2a887d56a173bdc523cfe38346ab90f60b8b3738684a8c63994b493d043bf180d4579c314ebca225e49e2f0f5c7aaf3ced394822dee5aa654b52f8c25ff62325f95ca9ec2b74d2422ee455608dbee886b63369286413b12ff8578eef790db615df2e9d38d4c8d3f6cad84feea1d97e73f80f38cac83c529133b91a639867571c483ca68c171d09d2f7c1366daccf63aba35a17073e443718be4e1b9a5a0f1cf2bfaba47c62f1dcc8e06cc8cb518fd24d41eef730d4f40b72ddfaf328be1eb70c67a76a8db1206fc8ff1e047635b7e387c47011e38793c2d9d74c859e4b23d28f3d163dbc1ca6ffa16c04f4617cfce2d34a9cd0d1d5a84252dcc1daae690cc8b4f7de2ba7b9213643c272e2bd82eb82cb048e77f601c7a8db7f4cc3860380f83f1c0ec39b218a2342688abb320eccce1d9830c3a3774cb28e3aee902d8786093c890c50d69b21a3da323403f188132b17fa9220b0ac147d7c13ef3c3787a5674d99f6d9085cd8205680e7ba35f0e49c76a25bd36c1bf31961889f4106c6bc2f229078b73e50b009f6c86dad9b514198eb7d4736b623e5dcff65b47f14070d579181e0a5b865b4d118fd3c2f172de156316ebe0b099b3df476c021aaaf0d77641dbc889b043909ddce94d1f24802b0501bb7c9c7497c8968c0318344f22946612d789e47cd14558c5e4d818fa5ecec64c964213a0d3727fa6234f037bd2794c890a486a03e399cf02cb0c84a54f84737381af119e98c2d7918b59e569b1332a0499d361072290c6ad052c9d18d0bacb71921142cbfee8c5e67892096b03e14f885ecd1877f29afe177fdbdae431db1efa6f63f02a2dfa722e9886fd75ca85e743baa41495f3f5e6d72e60dccc1f814cd24b3a93d36b801e58adda4315cddd82086ed7ab67c119ca914e730acd40124e628fdadae91b3b12120100213124cc35d3a5e38638d6576453eab38fe165b12d7fce788ed4944a15fbbfafccaf3e57003bb96c4ba9dcb41242cca5b8711e6b2bcaecb4ee2376b60d2fd2f4b2f3c241258ea2dc64be4767a1677f85edd97c500fd8e573cd8530f4739f5fdc9a3bbda97ebc10a4ba2ee43d804a261230aff29401778905379c7273ea887d30f286a3ecbcdb31d4a744c6caa020d6495e1f92b86342eacaa1e59180531fb0c8e9683d1d444a537e99a3a84faf3a9df02d517648f504037d0fb7705799efb7bae52e273900cf24dd84c221a71b80b78b75f8c8a07c9c91e8801a465aa80f8d0202b922434f3fcceba4b008a01f318d7d55add474b75a6c9289bd9f7919f7b4bb1100eaba87a77cf9051c55028d3bef196650c78f81ee881490065e0a2a3c5dd46418c575aea39cd2bfb40b21bdd7191a3c792b2b0bf51fdc9b05a0c3efa20e3d9e101d29ec34bc7e0aa7bd292179ec55a8e29199d55964b85f86710a58a953eea825103c894de1ae1155a96bd15bc7d804e4f3ff3e60bc1fcb2d1315c1ae40d5006d5329f8ba6ae3cae0b3305ecdf40446932d75d3e4ab92a61494771ae421f3ee2633ad31608814909ef6dd16f23ade68f15e65a3c20f909b983baf6882412c06ac9636cab2a9cbd5a30868c1cf804d4d219eff362a975d10088991e8bc1a01d8a2263433fac17b03fd9955686afd13263790933d6856a6eb1e580c50cdeda5b05f8a5d1581b8f7f2b529e63e34c8d5b4e4d5708d653179db9cff9985f6dca74b9ccbbcbefdc088499434d80f935a31a114ec2169f2ddaf36c216eedbf1fbfe4e91befb1071e16ac867a8112e9846ccb313bb173203a4fd4c515033b67e24b0bce32c825b836f3ab2a4b3f18946c01af41ceecd23db00c41371f6ceb94e9267fbccaaaf937a0d7e80b603a0ac201598cc6db9a74a81f272cb258be4fb0d948d7dfedcbc3b590488915536f3daf988bd6a5420e75dff698e673a94902f2f3ef142d3d91c7ebb181e8c0d6505dc3c9fd3a4c8b7dc1ed8be8afc8a207ed295ea5a8299041b2902b90ec2ade822864477cf15d30113cf9ca98ce9393f736af3c32b32b96ef9869ffb8f79287fa4c737f0e382321c59c16429edb1142d43709a7a573558cc3eaa23a9c7408e2a5aa71f77e2d1c94135b5cb24ea08da34586fde10f1c28b6ad242888fba30a61b3c2747a216272d11312f285fe828654767499567ddd08a18c2e661e2acedab7d6658df962cd674888fceef0bfc425a80716d74b3d0dfcddfa3ae6ba367789b9626dea9aca23eb322ad7924d90bb16d04458e81776fccfe7e6b88d06b836054a2328d17132e4bf95857d20b6e6bb23838c5e9ff8f3e82cc98f90241fce2c9fe23562e56723d223f6c2b24bd62494b13d76d7cfd3e5953b0ae666696a5fc11a95196146c6065072b295f80de0f5a331d972d0a81c12c0ab56e4019d966270dc7aef348335337feb501aef64a54321ab2cd9cad7c39444865fdb6e02633ecf9d5502b88dc6977478f4deb73dbf9122aeba7ef51df6dce1db6f352295f0532044a5eaf98bf431c3667bc8b57ab13227fc84e172636d9f967dfbe931fbedba0c6be291f391f38f7549988d9b26c3501a55dae56fe7df0a1820b3b1799aa2fe21934989e0e67d0552df120a013af846819361587fcf0c4c9ae729a2811e08e6d71a7a16648bc53618c91d8b481a6d06599946f85d7af28f325df17836cf3fe605edc8ef9b2e3b6d7b6b33267e9b3fcf02c1d39a606667537511bb5bc26777a5d9b66b138a7aa19b24104d206675cb9dde59d7eb01321e084672c4b1d0482b4323c6837a960db8cf0b750193daffa9a5c31d8167d7935803cbb117fe399be4fe4ef30ea8122acdb0bfac6527051ad330f95e2f469bf18ebcff00026fbef5577d5889b73adea0be60ee8cb5b60f67a8dfe7ffac1d82a09b80567090fb8246b51bdd19c99725bfac9afc1d62872a3a7cd9be35a0e3e479d5c6551a350f175bc11bc7ac8e6b99638ce178dbd1ac37563654067559d6382a7d8babfc6eb15120af63d3a439fc59fa2afc5d4b3679a94812c7b3f0252d61b1312dcc9004c40882a0f704ed6d01b9ccb49ad9da7a343643a52f83be2634b84f8ea8a69072fbf0e2516abddb8b5af682a7fd8f84678141cb6c68b0f9a2de09916b5ff97928ec1c8f39bf1cec5fcdb95eda182c604dedb5a1b3fe4bf7b7389cf36f7461d08646a631232fd7a89b985ec01d2cfec0efddae636f2c2923d6e445aedb906b3d7802b55b2c454449d3fc73cb4a46bbb006e757923eac7b47d4faf9b9323da34ca2a1e8e95a13612b557065d2d741ebfe06b8de2f1106343dcbe7f28eef78b45132aeb12d46297ba7d54dd0e9ca51f57540afb571f58adbf9adfa11285ddee01a8c4cbe23bc382bac75a28168d496d32ec674158ae741ebeceb6a6e7a003b5a47eba5fd32c334f742f59ffcf01f2b8c712a066ca9866877588d8cc3916fd34c8e515ec8617b03a8e8bfbcdfeb5ba7650d8d9ec83295561237ecb4ecf62a8bf3244db3ac660aa83f70c8ed5c94a50cb382b5821fd0d42f12264923e5b8b9cba74f7ebaeb93a4f9d8ecd3c9e82308471cf4e063f2e3a34c913423b8619ce825af273ba403adcf0b7a8d24b00f5fb6bbb0446249b605efdd36598e8a0f65ac3fab2e18438c73b91e5c564e4586aac398bcaa3e5bfe9efe5b569c1439dca55b06b338d3d0a3130ccb41634b3042e56dc65e9bde9a165c231df4052906bd26af3deba74987e3d7fdeb303355d93cac53410997dc7a3f9bd60f3ce0d8ebae7908978c8731fe9bb139ff0eb96fe775524c2d4d4f167d79041b17c5cc8ae9112478665132c31a1417fb4adbad72f861982bb78e1fd3771ebbc230a1a27559f8f662cf3229cf5b3c6ff567f2130b883b3c95ab17504880cedd2c2c208f6466053e0515c2bcebf4351e838b794050c64c498420599162f2b3b6928232dd0be7991d942b1dc0b1670eb8695e0629ad38280184be1b94602f2015707a28170151058f7171aeda501fcf0979d3b5a67eda502f1d76c81b8ed7a7cbeeda0c867a4c24dc206490ee519d4200dab0371530831b2ba10977c7a6c0fd7e6ca89e221cd416bba0828a20c195dbd73bd40420f2040eebf418098a86a3fb2ef5a9659c87d37b81ee85b69316b045a9453ac54b75948f4d26357dd018159078f36f90deeaf29ce3b9d2bd0ea6655ef1bda801887c0839ca68498a12c20f91817feb1dee5355a185271afd0a0abd188872030fc1a7e7ea726c79f4648ff57fd97c270b1ea1c3bca24c48c6a280c51a44d49201887c0839ca68498a12c20f91817feb1dee5355a185271afd0a0abd18887203312936dad905030c45e53af3485acc8213899f4c43d74e7143bce01a9d6bd959libfwupd.so.2libfwupdplugin.so.1rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootfwupd-1.5.8-150300.3.5.1.src.rpmfwupd-develfwupd-devel(x86-64)pkgconfig(fwupd)pkgconfig(fwupdplugin)@@@@ @@@ @ @ @ @@ @ @     /usr/bin/pkg-configlibfwupd2pkgconfig(fwupd)pkgconfig(gio-2.0)pkgconfig(gio-unix-2.0)pkgconfig(gmodule-2.0)pkgconfig(gobject-2.0)pkgconfig(gudev-1.0)pkgconfig(gusb)pkgconfig(jcat)pkgconfig(json-glib-1.0)pkgconfig(libarchive)pkgconfig(libcurl)pkgconfig(libgcab-1.0)pkgconfig(xmlb)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.5.82.45.82320.3.50.1.01.1.17.56.01.00.1.133.0.4-14.6.0-14.0-15.2-14.14.3aZ@`e`c`KW`6?`.V_S_м@_$_i_F@__@_O@_"@_"@_"@_@^א^א^1^@^h^)^ @]@]@]c]8H@] \\-@\@\Yz\73\\U@\ @[k@[Q@[\[h@[Xf@[GB[E@Zľ@ZlZ@Z`@Z1@Z1@Z1@Z;@Z8@Z2gYYYX @XX*X*X*X*X*X*X*X*X*Vii@Vii@Vii@Vii@Vii@Vii@Vii@Vii@Vii@Vii@UeU+U+jlee@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.cominfo@paolostivanin.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comdimstar@opensuse.orgdimstar@opensuse.orgqkzhu@suse.comdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgyfjiang@suse.comdimstar@opensuse.orgdimstar@opensuse.orgglin@suse.comglin@suse.comhpj@urpla.netstefan.bruens@rwth-aachen.debjorn.lie@gmail.comschwab@suse.debjorn.lie@gmail.comglin@suse.comglin@suse.commpluskal@suse.commaurizio.galli@gmail.comdimstar@opensuse.orgglin@suse.commail@bernhard-voelker.debjorn.lie@gmail.comglin@suse.comschwab@suse.deglin@suse.comndas@suse.denico.kruber@gmail.comjengelh@inai.denico.kruber@gmail.comtchvatal@suse.comoliver@getspam.deoliver@getspam.dedimstar@opensuse.orgmpluskal@suse.comantoine.belvire@opensuse.orgfcrozat@suse.comdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgstefan.bruens@rwth-aachen.defcrozat@suse.comstefan.bruens@rwth-aachen.dedimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgmpluskal@suse.comzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.org- Add fwupd-bsc1193921-nvme-ignore-non-PCI-NVMe-devices.patch to ignore non-PCI NVMe devices (e.g. NVMe-over-Fabrics) when probing. (bsc#1193921)- Remove valgrind from BuildRequires since it's not a hard requirement anymore. (bsc#1184248)- Update to version 1.5.8: New features: * Add a new internal flag to opt-in to GUID matching * Add D501 Baklava device support * Add fu_device_set_battery_level() * Add missing uint64 read and write helpers * Add Qubes wrapper source and create packages * Allow enabling plugins only matching a specific HwId * Prompt for unlock keypress if reset command is blocked * Remove obsolete dell-dock non-passive update flow support * Remove the Hughski public key * Show a warning when parsing invalid quirk files * Support for GATT characteristic signals/notifications * Support more than one protocol for a given device Fixes: * Align the CCGX DMC firmware to 64 byte chunks * Be more strict for custom quirk keys * Check pixart firmware compatibility with hardware before flashing * Correct a thunderbolt assertion if kernel failed FW read * Correctly erase STM32 devices when transfer size is less than sector size * Detect SREC overflow to avoid adding ~4GB of 0xFF padding * Do not show a critical error when flashing footer-less binary files * Don't allow device updates while needing activation * Fix a regression in the elantp defined IAP start address * Fix a regression where activate stopped working * Fix firmware update of pointing device on Lenovo ThinkPad Nano * Fix the HSI plugin 'Disabled' state * Fix the quirk key name for the Lenovo HDMI with power * Fix writing to the GD32VF103 bootloader * Only call elantp->detach() when writing a firmware blob * Updated StarLabs GUIDs * Wait a few ms for the Logitech hardware to settle after detach - Remove GPG-KEY-Hughski-Limited from the filelist - Drop upstreamed patch + fwupd-bsc1182057-fix-sbat-section-copy.patch- Add fwupd-bsc1182057-fix-sbat-section-copy.patch to set the proper section flags for .sbat section so that objcopy can copy it into fwupd*.efi (bsc#1182057)- Update to version 1.5.7: New features: * Add initial support for Bluez bluetooth devices * Add more supported pixart devices * Add support for the RTD21xx HDMI converter Fixes * Convert MBR types to GPT GUIDs to help find the ESP * Do not allow updating a synaptics-mst device with no customer ID * Drop unused heap pages after startup has completed * Ensure SBAT metadata is added correctly * Move the plugin build logic to the plugins themselves * Only allow verify-update for plugins that support CAN_VERIFY - Specify SBAT metadata for openSUSE/SLE (bsc#1182057) - Adjust the meson options + plugin_uefi => plugin_uefi_capsule and plugin_uefi_pk + plugin_synaptics => plugin_synaptics_mst and plugin_synaptics_rmi + Disable Intel AMT plugin in non-x86 systems- Update to 1.5.6: New features: * Add SBAT metadata to the fwupd EFI binary * Add support for GD32VF103 as found in the Longan Nano * Add support for RMI PS2 devices * Add support for the System76 Keyboard * Allow downloading firmware from IPFS * Install the UX data into a single .tar.xz file * Add a plugin to update PixArt RF devices * Add new hardware to use the elantp and rts54hid plugins * Allow specifying more than one VendorID for a device * Detect the AMD TSME encryption state for HSI-4 * Detect the AMI PK test key is not installed for HSI-1 * Add Maple Ridge Thunderbolt firmware parsing support * Add --no-remote-check to ignore checking for download remotes * Allow creating FMAP and Synaptics firmware using builder.xml Fixes: * Add support for the Starlabs LabTop L4 * Allow using an external ESP again * Ask the user to reboot when required if downgrading * Be more paranoid when parsing ASCII buffers and devices * Check if the fwupd BootXXXX entry exists on failure * Clear the pending flag if restarting the system * Do not allow flashing using flashrom if BLE is enabled * Do not allow Lenovo hardware to install multiple capsules * Do not parse the OptionROM image * Do not show Unknown [***] for every client connection * Fix dnload wBlockNum wraparound for ST devices * Fix OOM when using large ArchiveSizeMax values * Fix several crashes spotted by AddressSanitizer * Fix several places where the Goodix MOC plugin could crash * Include the PCR0 to the report metadata * Report the lockdown status from UEFI and SuperIO plugins * Show a console warning if the system clock is not set * Fix flashing a fingerprint reader that is in use * Fix several critical warnings when parsing invalid firmware * Fix updating DFU devices that use DNLOAD_BUSY * Ignore the legacy UEFI OVMF dummy GUID * Make libfwupd more thread safe to fix a crash in gnome-software * Never show unprintable chars from invalid firmware in the logs * Allow using fwupdtool as non-root for firmware commands * Do not trust the Block.HintSystem boolean for ESP filtering * Fix a memory leak when parsing Synaptics firmware * Fix a possible crash when reading the Goodix MOC USB request * Fix crashes when parsing invalid FMAP, DMC, Solokey and Synaptics images - Deprecate fwupd-bsc1179790-disable-hintsystem.patch- Add fwupd-bsc1179790-disable-hintsystem.patch to remove Block.HintSystem from ESP filtering (bsc#1179790)- Update to version 1.5.3: + Lower the CURL version required to fix build in RHEL + Do not use meson ternary operations to avoid bumping the required meson version + Added Lite Mk III + Allow setting the GMainContext when used for sync methods + Fall back to the misc device for serio devices + Actually implement rescan in FuUdevDevice + bcm57xx: Refactor CRC code to remove extra byteswap + bcm57xx: Fix CRC check + synaptics-rmi: Don't crash if calling ->to_string() before - >setup() + Fix a possible critical warning due to missing retval + Add the serio->firmare_id for UDev devices + Export the driver name from FuUdevDevice + Allow the client to send PKCS7 and GPG signatures + Force the remote kind to JCat server-side + Only parse the signature if the remote is JCat + fu-main: Fix sender_features insert with wrong size + make platform integrity plugin optional and disabled by default + Add quirk for Western Digital + Mark more user-visible strings as translatable + modem-manager: validate firmware update method combinations + modem-manager: remove unused byte counts in QMI/PDC update logic + modem-manager: make sure the correct interface number is used for QMI + modem-manager: udev monitoring only if device switches layout + modem-manager: plug udev client leak + Restrict loading component types of firmware - Enable supported_build to clarify that this package is supported (bsc#1179790) - Drop fwupd-platform-integrity.conf since upstream disables the platform integrity module by default now due to incompleteness. - Address fwupd-refresh.service in %preun, %pre, %post, and %postun and provide a rc link for it - Version "Obsoletes: dbxtool" and "Obsoletes: fwupdate"- Update to version 1.5.2: + ata: Add OUI quirk for Toshiba + libfwupd: Restore recognizing gpg and pkcs7 types still + Register the SoupSession gtype when required + Switch from libsoup to libcurl + Fix sync method when called from threads without a context + Move ABI check to Github actions + Enable github workflows + libfwupd: Add fwupd_client_download_file() + libfwupd: Add fwupd_client_get_user_agent() + Only download the remote metadata as required + Add breaks for fwupdate 12-7 (Closes: #960688) + Install modules-load configs in the correct directory + vli: Do not be clever replugging the MSP430 device + vli: Make some trivial debugging more specific to help debug an issue + make gcab optional + Fall back to FAT32 internal partitions for detecting ESP + Add a flag to indicate if packages are supported + uefi: a new option for uefi configuration to use UEFI removable path + Add a section to man page on scripting + synaptics-mst: Improve reliability by waiting 2 seconds after writing data + hailuck: Add an plugin for the Pinebook Pro laptop + Allow setting global flags for FuHidDevice + Set the SMBIOS chassis type to portable if a DT battery exists + colorhug: Don't set the version format to triplet at startup + Allow components to set the icon from the metadata + colorhug: Fix detection of version on older firmware versions + bcm57xx: Fix reading vendor/device ids from firmware. + Remove HSI update and attestation suffixes + trivial: make dbxtool executable to fix snap build + Ignore an invalid vendor-id when adding releases for display + Notify the service manager when idle-quitting - Refresh fwupd-bsc1130056-change-shim-path.patch - Changes in BuildRequires: + Replace pkgconfig(libsoup-2.4) with pkgconfig(libcurl) + Replace pkgconfig(systemd) with pkgconfig(libsystemd) - fwupd-msr.conf and fwupd-platform-integrity.conf are moved to %{_modulesloaddir}.- Obsoletes and Provides dbxtool since fwupd 1.5.0+ now embeds dbxtool in the dbxtool plugin- Amend the spec file (jsc#SLE-16818) + Only enable fish support for Tumbleweed + Only enable the MSR plugin for x86 + Only install dbxtool in the architectures with UEFI support- Update to version 1.5.1: + Use UDisks to find out if swap devices are encrypted. + Show a link to discover more information about a specific plugin failure. + updated fish completions to 1.5.0. + Remove the duplicate parent-child data in FwupdDevice and FuDevice. + Show a less scary fwupdate output for devices without info. + thunderbolt: recognize authorized value of '2' as well. + bcm57xx: Make hotplug more reliable. + Use a different Device ID for the OptionROM devices. + contrib/ci: switch TPM simulator from ibmswtpm to swtpm. + Delete unused EFI variables when deploying firmware. + Fix probe warning for the Logitech Unifying device. + Include the amount of NVRAM size in use in the LVFS failure report. + Add external interface messages.- Update to version 1.5.0: + Add a compatible re-implementation of the rhboot dbxtool. + Add async versions of the library for GUI tools. + Add commands for interacting with the ESP to fwupdtool. + Add firmware-extract subcommand to fwupdtool. + Add FwupdPlugin so we can convey enumerated system errors to the end user. + Add plugin for Goodix fingerprint sensors. + Add plugin that can update the BCM5719 network adapter. + Add plugin to update Elan Touchpads using HID. + Add support for a delayed activation flow for Thunderbolt. + Add support for ChromeOS Quiche and Gingerbread. + Add support for Hyper hardware. + Add support for the Host Security ID. + Add support for ThunderBolt retimers. + Add switch-branch command to fwupdtool and fwupdmgr. + Allow blocking specific firmware releases by checksum. + Allow contructing a firmware with multiple images. + Allow firmware to require specific features from front-end clients. + Allow updating the dbx using the LVFS, validating it is safe to apply. + Include the HSI results and attributes in the uploaded report. + Support loading DMI data from DT systems. + Support LVFS::UpdateImage for GUI clients.- Add fwupd-jscSLE-11766-close-efidir-leap-gap.patch: Set SLE and openSUSE esp os dir at runtime (jsc#SLE-11766) - Drop _multibuild and build option -Defi_os_dir="%{efidir}": with the above patch fwupd can detect esp os dir dynamically - Update the efidir related %post and %postun scripts in spec file- Update to version 1.4.5: * Add XB_QUERY_FLAG_FORCE_NODE_CACHE * Add support for a delayed activation flow for Thunderbolt * Allow firmware to require specific features from front-end clients * Allow multi-byte FuUdevDevice preads and writes * Be more defensive when remotes are missing required keys * Disable the SQLite lookaside cache * ccgx: Add more hybrid dock support * ccgx: Modify readme to remove customer info * ccgx: add new protocol for dmc dock * ccgx: remove verify flag in plugin * modem-manager: read the vendor ID directly from sysfs attribute Fixes: #2209 * thelio-io: Add the DFU instance ID as a counterpart only * thunderbolt: Add a new subclassed thunderbolt firmware update type * thunderbolt: Allow quirks to skip the authentication step * thunderbolt: drop support for force power * tpm-eventlog: fix PCR0 calculation * uefi: check for free space after cleaning up ESP * vli: Add dual-image feature for VL103 backup firmware * vli: Add the project ID shared SPI PD controllers * vli: Allow chained usb hub devices where the parent needs GPIOB reset * vli: Do not modify the class vfuncs depending on device type * vli: Do not use GUID matching for the MSP device * vli: Rename FuVliUsbhubI2cDevice to FuVliUsbhubMsp430Device * vli: Set FuQuirks on the shared SPI object * vli: Set the i2c instance IDs in probe() * vli: Use the GPIOB reset for the MiniDock VL103 * vli: Wait for the root device to be replugged when updating the MSP430- Update to version 1.4.4: * Release fwupd 1.4.4 * Fix regression when checking for downgraded metadata- Update to version 1.4.3: * Release fwupd 1.4.3 * ata: A OUI quirk for Kingston * ccgx: Fix a potential division by zero * Check the device requirements when returning from GetDetails * fu-engine: Allow --plugin-whitelist to use dashes instead of underscores * Always enforce the metadata signature has a valid timestamp * ccgx: modify install duration for dmc device * ccgx: Add support for HP DMC dock devices * dell-dock: prevent updates to occur via synaptics-mst plugin * dell-dock: Capture the dock SKU in metadata * synaptics-prometheus: Force the minor version from 0x02 to 0x01 to make sure the devices can be updated back to 0x01. * Generate a body for github releases (Fixes: #2034)- Build the package separately for openSUSE and SLE using _multibuild (jsc#SLE-11744).- Update to version 1.4.2: * vli: Add no-guid-matching for all VLI devices * vli: Remove a copy-and-paste mistake * Add two OUI quirks * ata: Add WD OUI quirk 000cca * synaptics-rmi: Essentially blacklist Dell K12A * dfu: Avoid communicating when bitManifestationTolerant is off * ata: Add OUI quirk for Western Digital * dfu: Support MATEKF722SE quirk * Fix various build issues with -Wdiscarded-qualifiers * thunderbolt/dell-dock: Delay activation for Thunderbolt updates * Switch the default of EnumerateAllDevices to false * Add OUI quirk for SanDisk * vli: Add two standard USB instance IDs for shared-PD devices * vli: Use GPIOB to reset the VL817 found in two Lenovo products * tpm-eventlog: Correct the display of final calculated PCRs * wacom-raw: fixup switching to bootloader mode- Update to version 1.4.1: * thunderbolt: Don't show safe mode errors for USB4 host controllers * ep963x: Various changes to make the plugin actually work on real hardware * Make tss2-esys conditional * ep963x: Remove some dead code spotted by Coverity * ccgx: Only update the FW2 partition of the ThinkPad USB-C Dock Gen2 * ccgx: Expand the FWImageType for future hardware * Allow specifying the device on the command line by GUID * Fix the DeviceID set by GetDetails * wacom-usb: Fix a theoretical buffer over-read to make GCC happy * vli: Only show the i2c devices on the USB3 hub * Allow devices to be updatable, but only when upgrading a proxy device * Reset the progressbar time estimate if the percentage is invalid * ccgx: Always report 100% when finished writing * Add a device quirk that forces an explicit device-id match * ccgx: Set the device name and summary from quirk files * vli: Only do the APP5 FW bug fix on affected hardware * vli: Show all the buffer when debugging with FWUPD_VLI_USBHUB_VERBOSE * fu-engine: Refresh device name and format before setting supported flag * Allow a device to set the logical or physical ID during ->setup() * ccgx: Split out a trivial helper to set the instance IDs * ccgx: Set the device name to be more useful * ccgx: Set the logical ID as the FwMode * ccgx: Split out a trivial function to set the version * ccgx: Do not reboot the device write after installing * ccgx: Do no show the flash parameters when unknown * Allow devices to match the proxy device by GUID * Do not skip attach() if the device is marked _WILL_DISAPPEAR * dell-dock: Port to using fu_device_get_proxy() * Allow adding a device 'proxy' device that can do actions on it * vli: Do not show the USB 2 recovery devices for USB 3 hubs * vli: Add metadata to identify which is the same physical device * uefi: correctly format firmware version of Dynabook (né Toshiba) X30, X40 and probably others * synaptics-cxaudio: Use the ->attach() device vfunc * synaptics-cxaudio: Wait for the device to reboot after writing firmware * logitech_hidpp: decrease verbosity of messages that hid++ ID is missing * Prefer to update the child first if the order is unspecified * Do not modify the device priority for child devices- Exclude fwupdate from the architectures without UEFI support.- Update to version 1.4.0: * Release fwupd 1.4.0 * Allow removing device flags from quirk files * Use black to format python source in a consistent manner * Define SOURCE_VERSION when building a package * Only set the parent when adopting children * Do not conditionalize attach() and detach() on IS_BOOTLOADER * Do not crash the daemon if a plugin does something dumb * wacom-usb: Add more sanity checks in case the daemon goes crazy * wacom-usb: Use a per-device cleanup function * Add some more device regression tests * wacom-usb: Add a lot of missing metadata about the devices * wacom-usb: Hide a lot of debugging behind FWUPD_WACOM_VERBOSE * Only auto-add counterpart GUIDs when required * ccgx: remove update message * ccgx: add parent guid for hybrid dock * ccgx: Use a smaller timeout for i2c read and write operations * ccgx: Retry the register read and write with a i2c reset * ccgx: Fix buffer overflow when reading out i2c status * ccgx: Retry the HID disconnect up to 5 times * ccgx: Show a better error message on failure * ccgx: Allow forcing firmware of the wrong app_type with fwupdtool * Modularize the hardware tests * Ignore indirect devices that replug during the composite firmware update * Export the device state as part of the D-Bus interface * Fix devices that use CounterpartGuid when more than one device is installed * Use the GUID as a fallback rather than the connection ID * ccgx: Fix critical warning on i2c write failure * logitech-hidpp: Do not add peripheral devices for receiver in BL mode * Install the installed-tests only if tests are enabled * Load the signature to get the aliased CDN-safe version of the metadata * vli: Only reboot the USB hub once * synaptics-cxaudio: Only use the PATCH2 address when the patch level is 2 * add STM32F745 stm dfuse quirk * dfu: Add a way to set the timeout from a quirk * Export the release urgency * Export the release creation time * Check the firmware requirements before adding SUPPORTED * data/motd/fwupd-refresh: Only order after network.target * ccgx: Do not add the HID device that will disconnect * ccgx: Use Silicon ID and Application type to set flash parameters * Add a new daemon configuration option to control EnumerateAllDevices * logitech_hidpp: set the bootloader protocol * Install meson from pip for LGTM * bash: add completion for fwupdtool reinstall * fu-tool: add reinstall command * fu-engine: export fu_engine_get_releases_for_device in header * vli: Wait for the VL103 to timeout to fix detach * ccgx: Show the UpdateMessage in the correct device mode * ccgx: Add extra instance IDs to match specific firmware * Use a static version number * thunderbolt: Rather than hardcoding to PCI slot numbers, use domain in GUID * Revert "thunderbolt: Create a unique GUID including Thunderbolt controller path" * dell-dock: Port to fu_device_retry() * nitrokey: Convert to use FuHidDevice * nitrokey: Port to fu_device_retry() * vli: Port to fu_device_retry() * Add fu_device_retry() helper functionality * ccgx: Implement writing firmware to flash * ccgx: Add i2c status check when reading or writing registers * ccgx: Add 5ms delay between read registers to avoid an i2c error * libfwupdplugin: Use fu_device_locker_close() * synaptics-mst: Use fu_device_locker_close() * Add fu_device_locker_close() * ccgx: Do not store the silicon ID in the image address * ccgx: Add device quirks for the Lenovo Hybrid Dock * ccgx: Switch HID mode to HPI mode at startup * ccgx: Clear the event queue when in startup * ccgx: Wait for hardware to settle when coming out of reset * ccgx: Do not mark the device as updatable when in boot mode * ccgx: Verify the firmware app type when preparing firmware * ccgx: Set the update message when running in backup firmware * ccgx: Read the FwAppType from the hardware * ccgx: Set the HPI version number for the current firmware * ccgx: Get the silicon ID to map the flash parameters * ccgx: Read the HPI device mode at startup * ccgx: Set up the HPI I²C config at startup * ccgx: Create devices when in HID and I2C modes * Add a new ChromeOS CI target to build without GPG and PKCS7 * Use Jcat files in firmware archives and for metadata - Removed fu-keyring-gpg which caused CVE-2020-10759 (boo#1172643) * csr: Allow truncated HID reads * vli: Only consider the high nibble when building the sub-version * csr: Parse the firmware as a DFU file * Add support for EP963x hardware * Add FuHidDevice abstraction * vli: Correctly attach VL103 after a firmware update * ccgx: Parse the metadata block in the firmware image * ccgx: Add a firmare parser for cyacd files * logitech: Correctly set the protocol * Add the optional device-id to the update --help output * Fix a difficult-to-trigger daemon hang when replugging devices * vli: Remove a dock device from the whitelist that is never going to be updated * vli: Add some trivial debugging to help track down a bug * vli: Never add USB hub devices that are not upgradable * uefi: Don't use shim for non-secure boot configurations * Start fwupd-activate.service after snapd.service * dfu: Actually reload the DFU device after upgrade has completed * dfu: Add one more m-stack device requiring a quirk * Apply version format to releases and devices at same time * Ensure that the DeviceID is set for child devices * Fix a daemon crash when removing children * Allow waiting for the parent device when replugging * Add fu_device_get_root() shared API * vli: Fix an error when detaching MSP430 * vli: Fix a critical warning when getting the USB speed * vli: Fix the error enum values for the MSP430 * Do not add blank lines when tokenizing Intel hex files * vli: Fix the version calculation for MSP430 * vli: Ignore one more error when attaching * vli: Always expect the VL103 header at 0x1003 or 0x4000 * vli: Do not fall back to the recovery write for usbhubs * vli: Only show the 2nd header if the device ID is valid * vli: Fix VL103 reboot from ROM mode to FW mode * vli: Add some better comments for writing GPIOs * Add a helper script to add a DFU header * Add 'firmware-convert' subcommand to fwupdtool * fu-engine: Make two passes of requirements checking * fu-engine: Copy the VersionFormat from the CAB if specified in `get-details` * Add a new plugin for CPU microcode * Don't build/install fwupdagent man page if agent build is not requested * Introduce a new VersionFormat for `hex` * Drop UEFI quirks we now inherit from metadata * ci: build Debian using libflashrom * When TPM PCR0 measurements fail, query if secure boot is available and enabled * fix fwupd.shutdown.in according to the movement of fwupdtool to bindir * ata: Add OUI quirk for Western Digital and Intel * improved fish shell completion * vli: Set the MSP430 version format to pair * Always return AppStream markup for remote agreements * ata: Add trivial OUI quirk for Micron * added completion script for fish shell * Do not fail loading in /etc/machine-id is not available * Use xb_builder_source_add_simple_adapter * Create FuCabinet and untangle a lot of legacy code * nvme: Do not try to handle integer version numbers * Allow server metadata to set the version format on some devices * fu-tool: Correctly append the release to devices in `get-details` * For the `get-details` command make sure to always show devices * fu-engine: Copy the version and format from donor device in get-details * fu-engine: Use unknown for version format by default on get-details * Inihbit all power management actions using logind when updating * Decouple the version format from the version itself * Add raw versions for bootloader and lowest * Allow server metadata to set the device name on some devices * Remove support for GCab less than v1.0 * fu-device-list: Check protocol before de-duping devices * Do not allow devices that have no vendor ID to be UPDATABLE * ata: Include a vendor ID for ATA hardware * ata: Switch off the verbose logging by default * Always check for PLAIN when doing vercmp() operations * Discard the reason upgrades aren't available (Fixes: #1678) * Improve the description of `fwupdtpmevlog` for man page * Move `fwupdtpmevlog` into `bindir` * uefi: Move `fwupdate` into `bindir` * Move `fwupdtool` and `fwupdagent` into `bindir` * Use the system provided flashrom on Fedora * Add a plugin vfunc to run after subclassed FuDevice creation * ci: use standalone script to generate build dependencies * Move the daemons from /usr/lib/fwupd to /usr/libexec/fwupd * Use the recently released flashrom v1.2 * Generate an additional UEFI quirk file using the stable LVFS metadata * uefi: Apply capsule update even with single valid capsule * Fix a critical warning when installing some firmware * ebitdo: Fix the endpoint address logged in the error message * uefi: Find the correct lds and crt name when specifying -Defi_ldsdir * upower: Move battery threshold declaration into a configuration file * upower: Decrease minimum battery requirement to 10% - Refresh fwupd-bsc1130056-change-shim-path.patch - Add new dependency: jcat- Update to version 1.3.9: * Release fwupd 1.3.9 * Always check for PLAIN when doing vercmp() operations * improved fish shell completion * vli: Set the MSP430 version format to pair * added completion script for fish shell * Always return AppStream markup for remote agreements * Do not fail loading in /etc/machine-id is not available * fu-engine: Fixup broken-ness from 0c0fada18fc9cb2a0efec351db67f0867bf045cd * Use xb_builder_source_add_simple_adapter * fu-tool: Correctly append the release to devices in `get-details` * For the `get-details` command make sure to always show devices * fu-engine: Copy the version and format from donor device in get-details * fu-engine: Use unknown for version format by default on get-details * Inihbit all power management actions using logind when updating * fu-device-list: Check protocol before de-duping devices * ata: Switch off the verbose logging by default * Discard the reason upgrades aren't available (Fixes: #1678) * Improve the description of `fwupdtpmevlog` for man page * Move `fwupdtpmevlog` into `bindir` * uefi: Move `fwupdate` into `bindir` * Move `fwupdtool` and `fwupdagent` into `bindir` * ci: use standalone script to generate build dependencies * Move the daemons from /usr/lib/fwupd to /usr/libexec/fwupd * Use the recently released flashrom v1.2 * uefi: Apply capsule update even with single valid capsule * Fix a critical warning when installing some firmware * ebitdo: Fix the endpoint address logged in the error message * fu-util: fix a logic error in report uploading introduced in e076d48afb74d1447936d353f12781755f13b047 * uefi: Find the correct lds and crt name when specifying -Defi_ldsdir * upower: Move battery threshold declaration into a configuration file * upower: Decrease minimum battery requirement to 10% - Update to version 1.3.8: * Release fwupd 1.3.8 * Do not use fu_common_vercmp() when the device verfmt is PLAIN * altos: Output raw buffer data when using FWUPD_ALTOS_VERBOSE * altos: Prefix an error to provide more context * altos: Add a trivial _to_string() implementation * synaptics-cxaudio: Make the verfmt match that of the existing Windows tools * synaptics-mst: Allow MST to fall back if no PCI device is marked as parent * Allow specifying a list of subsystems when setting a physical ID * synaptics-mst: Fix trivial thinko caused by the wrong dock connected * vli: Invert the logic to reboot the parent FuCliUsbhubDevice, not the child * vli: Switch around the hub tier values * uefi: Fix a build regression with Fedora 30 * logitech_hidpp: Ignore detach failures (Fixes: #1183) * logitech_hidpp: When detaching to bootloader use non-blocking IO and wait for timeout * vli: Show erase progress when doing a v2 recovery * uefi: Do not remove the 'Linux Firmware Updater' boot entry before update * uefi: Do not rewrite BootOrder in the EFI helper * vli: Add support for the PS186 device * Set up more parent devices for various Lenovo USB hubs * cxaudio: Set the update protocol to prevent a daemon warning * vli: Add support for Lenovo Modularized dock * Add an extra instance ID to disambiguate USB hubs * vli: Remove the unused tierX custom flags for each device * Revert "Correctly delete UEFI variables" * uefi: make debugging output more readable * vli: Fix a potential buffer-overflow when parsing firmware * tpm: Optimize the string parsing and fix the boolean logic * synaptics-rmi: Add a missing error enum value * synaptics-rmi: Correctly identify a checksum failure * synaptics-rmi: Fix Coverity issue that is impossible to hit in reality * solokeys: Parse old versions of the bootloader string * Add a plugin to update PD controllers by Fresco Logic * vli: Set the device progress correctly when erasing a PD device * vli: Use the correct command to get the device firmware version * vli: Correctly reset all VL100 devices * vli: Set all standalone PD devices to not do SPI auto-detection * vli: Mark standalone PD devices as updatable * vli: Set the protocol for FuVliUsbhubPdDevice types * Support the new gnuefi file locations * Cleanup ancient fwupdate-* EFI variables too (Fixes: #1739) * Detect kernel lockdown status * vli: Add the DEV instance ID to all devices * tpm-eventlog: Replay the TPM event log to get the PCRx values * tpm-eventlog: Store the eventlog hashes in binary form - Update to version 1.3.7: * Release fwupd 1.3.7 * Correctly delete UEFI variables * ci: allow working with podman w/o aliases * ci: fedora: force correct rpm package version * src: fu-engine: check version was updated by checking version * Correctly import PKCS-7 remote metadata * Add 'refresh' to fwupdtool * Add 'get-remotes' to fwupdtool * Generate a win32 setup binary * Fix display of UTF-8 characters on Windows * Move MOTD population into the daemon * fu-util: Discourage metadata refreshes more than once per day * Disable the battery percentage checks if UPower is unavailable * Allow getting the list of updates in JSON format from fwupdagent * Revert "trivial: Attempt to fix Debian CI" * fu-remote-list: emit a changed signal when modifying a remote * synaptics-mst: Skip self tests for systems with amdgpu * Allow applying all releases to get to a target version * Split up fu_engine_install() into two halves * logitech_hidpp: use the correct timeout for IO channel writes * Allow quirking devices that always require a version check * Shut down automatically when there is system memory pressure * Show the device parent if there is an interesting child * Allow the client to get the list of FwupdDevice children * Set the FwupdDevice parents in fwupdtool * Don't always get the vendor ID for udev devices using the parent * Add a runtime warning when adding a device without an vendor-id or protocol set * vli: Set more of the firmware max sizes automatically * vli: Add a SpiAutoDetect quirk for some of the PD devices * vli: Use a different protocol ID for i2c devices * vli: Add support for standalone Single PD devices * vli: Move generic SPI functionality into the FuVliDevice base class * vli: Remove the PD emulation code * vli: Use a more standard GUID for the child i²c and shared SPI devices * vli: Allow setting the device kind from a quirk * vli: Make more function names match the docs * vli: Move the SPI command quirking from FuVliUsbhubDevice down to FuVliDevice * vli: Rename FuVliUsbhubPdFirmware to FuVliPdFirmware * vli: Allow the device to specify the PD firmware header offset * vli: Add a FuVliDevice as a subclass to FuVliUsbhubDevice * vli: Define the device GType in the quirk file * vli: Move the CRC calculations out of usbhub scope * vli: Have one 'DeviceKind' for all objects * vli: Rename the `vli_usbhub` plugin to `vli` * Capitalize GNOME - package has grown a few new binaries: fwupdagent, fwupdate, fwupdtool and a tpm event debugging tool, that is packaged separately: fwupdtpmevlog- Drop docbook-utils-minimal build dependency, manpages are generated with gtk-doc.- Update to version 1.3.6: * plugins/coreboot: Add missing fu_hash dependency * trivial: synaptics-cxaudio: Add Google type C <-> 3.5mm adapter * fu-engine: don't expose bootloader version errors to users * trivial: dell-dock: drop unused quirk keyx * trivial: rename synapticsmst to synaptics-mst * trivial: actually set vendor ID for synaptics * fu-remote-list: Drop fallback path behavior * libfwupdplugin: Make sure systemd created environment variables exist * trivial: fu-remotes-list: drop usage of `FU_SELF_TEST_REMOTES_DIR` * trivial: synaptics-rmi: hardcode Vendor string * trivial: Set vendor ID for Dell WD19 to USB:0x413C (Fixes: #1653) * trivial: Document the use of vendor-id in each plugin * superio: Use the baseboard vendor as the vendor ID * uefi: Use the BIOS vendor as the vendor ID * coreboot: Use the BIOS vendor as the vendor ID * flashrom: Use the BIOS vendor as the vendor ID * dell: Hardcode a plausible vendor ID * emmc: Set the correct vendor ID prefix * fu-util-common: correct the default prompt for reboot/shutdown (Fixes: #1617) * Split out the remote loading from FuConfig * vli-usbhub: Fix the quirk for the legacy VIA 813 chip * Clarify error messages when no upgrades available * trivial: Don't handle a vendor-id requirement error that cannot happen * Only check the vendor ID if the device has one set * fu-install-task: Enforce that device protocol matches metadata * Add a new plugin that can parse the TPM event log * Allow other plugins to contribute report metadata * trivial: dell: hardcode the physical device ID for tpm to match the tpm plugin * Add a new plugin that exposes the system TPM device firmware version * Add fu_udev_device_set_flags() * trivial: Render large values of VersionRaw in a more portable way * trivial: wacom-raw: mark all Moffett SKUs as self recovery * Throw exit status 0 (instead of 2) if there is no firmware to be updated * Add a `dell-bios` version format * Add support for multiple LVFS::VersionFormat tags * Do not do semver conversion in fu_common_vercmp() * trivial: Deprecate fu_common_version_parse() * trivial: Support 'plain' in fu_common_version_from_uintXX() * Add the sysfs 'description' as the one-line device summary * trivial: Also print the parent keys when using FU_UDEV_DEVICE_DEBUG * trivial: Add fu_common_version_from_uint64() * trivial: Convert the VersionRaw value to a uint64_t for future use * Allow building on Windows with MinGW * synaptics-prometheus: Allow incremental version major and minor number * Replace 'scheduing' with 'scheduling' * Export the raw device version to the client --verbose output * trivial: Only dlopen the test plugin once * Export the device protocol to the client --verbose output * trivial: installed-tests: try to display journal for failed tests * trivial: ci: debian: enable verbose daemon logging for failure analysis * trivial: installed-tests: explicitly choose webcam device ID * trivial: debian: remove obj-* built files to fix back to back builds * trivial: ci: don't let bad symlinks cause debian build failures * trivial: debian: correct a dependency for libfwupdplugin-dev - Changes from version 1.3.5: * plugins: Fix potential use of NULL pointer in fu_dell_dock_mst_write_register * Fix shifting integer by more than 31 in fu_util_filter_device * synaptics-prometheus: Reload the device version after IOTA update * synaptics-prometheus: Reload the device version after update * trivial: wacom: remove coretronic config from Moffett scope * trivial: Fix a NULL/FALSE confusion * trivial: Add a BR for Fedora * trivial: Fix coreboot commit to fix CI * trivial: libfwupdplugin: clarify name of self test * plugins/coreboot: Improve version detection * plugins/coreboot: Get rid of FU_HWIDS_KEY_BIOS_VENDOR in coldplug * trivial: Move progressbar out of libfwupdplugin * trivial: Unexport fu_test_get_filename() * trivial: Unexport fu_test_compare_lines() * trivial: Unexport fu_test_loop_run_with_timeout() * trivial: Do not include non-introspectable functions in the GIR * trivial: Fix up a few introspection problems in FwupdPlugin * trivial: Include the Fwupd GIR in the FwupdPLugin GIR * trivial: Never add duplicate symbols to the map file * trivial: Properly namespace the defines in the exported header * Install development files for libfwupdplugin * Convert libfwupdprivate to a shared library libfwupdplugin * trivial: Allow building GCab from a subpackage * trivial: Fix under-include to define O_RDONLY * trivial: Allow compiling without * trivial: Do not use FuProgressbar in dfu-tool * synaptics-prometheus: Manually set the bootloader mode when attaching * trivial: Split out a new helper funtion * trivial: Add some optional debugging when hotplugging devices * trivial: Include the correct header for S_IRWXU * Always use the more portable 3-arg form for open() * trivial: Untangle FuHistory from FuPlugin * trivial: Allow compiling without * Revert "synaptics-rmi: Use the build ID as the version number to match the vendor tool" * Add missing documentation from the plugin interface * trivial: fu-udev-device: remove a prototype that was missed in b3d4d2ff * trivial: add missing gtk-doc fields for many files in src/ * trivial: fix compile failure without gudev * synaptics-prometheus: Mirror the _IS_BOOTLOADER from device to config * Allow setting the device flags using GObject properties * vli_usbhub: Set the composite parent at construction time * synaptics-prometheus: Set the composite parent at construction time * Allow plugins to set the parent during construction * vli-usbhub: Whitelist the PD and I²C devices * Set the protocol per-device not per-plugin * synaptics-rmi: Use the build ID as the version number to match the vendor tool * Create a REV_00 instance ID as this may be what the vendor needs to target * fu-util-common: Invert default behavior for reboot and shutdown prompts * trivial: fu-plugin-vfuncs: Add GTK documentation for all vfuncs * Make gudev a compile-time option * trivial: Set the offline trigger using an environment variable * trivial: ci: pull lintian from unstable for now. * trivial: stop including fu-hash.h as part of fu-plugin-vfuncs.h * Fix shebangs on scripts * trivial: Use prefixes for DATADIR in config.h for portability * Allow compiling GUsb as a subproject * trivial: fu-udev-device: add a to_string func for debugging * trivial: Don't assume that plugins end in .so * trivial: optionrom: remove unneeded includes * trivial: debian: ci: ignore library-not-linked-against-libc for more * trivial: remove version-format.md * trivial: Allow compiling without pwrite() * trivial: Allow compiling without * trivial: Allow compiling without realpath() * trivial: Allow compiling without HAVE_LC_MESSAGES * trivial: Allow compiling without getuid() * trivial: Allow compiling without * trivial: Allow compiling without * trivial: Allow compiling without * Ensure the _get_type() gets the same ABI version as the constructor * Use the correct unlocker when using GRWLock * trivial: plugins: only build coreboot when option set * fwupdtool: don't show a warning when calling `get-plugins` - Changes from version 1.3.4: * trivial: Don't force specific linker flash when cross building * dell: Use the more portable g_usleep() * trivial: Fix unused header includes * vli-usbhub: Make erasing less verbose and writing more obvious * vli-usbhub: Correctly print the 24-bit USB3 offset * vli-usbhub: Print the PD firmware offset and size for debugging * vli-usbhub: Open the parent device before attempting to read or write from the child * vli-usbhub: Set the install duration for the PD device * trivial: Fix a failed error prefix string * trivial: wacom-raw: Remove embedded from device name * wacom-raw: Correct HWID support * uefi: Just use a uint16_t for BootNext processing * uefi: Use a simpler entries set algorithm * vli-usbhub: Add support for writing using I2C passthru * vli-usbhub: Support updating PD devices that share the hub flash * vli-usbhub: Support the PD file format * trivial: uefi: correct a NULL pointer dereference * uefi: fall back to `ID_LIKE` when the path for `ID` doesn't exist (Fixes:# 1566) * uefi: Make generate_binary.sh more robust * Tokenize the Intel Hex file before parsing * trivial: Detect the USB version automatically * trivial: fu-util/fu-tool: explicitly block unsupported flags * Add support for matching requirements on device parents * Skip cleanup after device is done updating if `will-disappear` is set (Fixes: #1529) * efi: use a wildcard section copy for final EFI generation * modem-manager: explicitly use plain version format * modem-manager: add quirks for the Foxconn T77W968 modules * Allows confined snaps to activate fwupd via D-Bus * trivial: thunderbolt: clarify error message * Add a new property `Interactive` to the daemon * trivial: contrib/get-version.py: require git less hard * superio: Never read from port offset zero * superio: Fix regression when coldplugging superio devices * trivial: Fix Fedora CI build * trivial: Fix the autobuilt spec file with the new tarball version * Dynamically determine release version * trivial: synapticmst: allow missing `/proc/modules` * synapticsmst: filter invalid chip IDs * trivial: Provide some defines for common image names * Allow aborting early when using fu_archive_iterate() * Add fu_firmware_image_set_version() for future use * modem-manager: increase re-enumeration delay to 20000ms * modem-manager: add counterpart GUID for the DW5821e/eSIM * Add versions formats for the Microsoft Surface devices * usb: make loading vendor/product/serial strings non-fatal * trivial: Fix the protocol ID for VLI usbhub devices * trivial: wacom-raw: add more device IDs for Dell devices * trivial: contrib: don't require TSS for debian archs without EFI * fu-udev-device: Adjust bounds checking to be safer * fu-udev-device: Don't assume all devices have `device_file` * synaptics-rmi: correct an error cleaning up on probe * trivial: fu-udev-device: add some safety checks for fd * udev-device: fix offset of vendor id of hidraw devices * flashrom: switch to upstream source * trivial: fu-plugin: only show an error once "failed to open plugin" was being prefixed twice * trivial: debian: only use mingw-w64-tools in archs with UEFI plugin * fastboot: Fix a regression when updating modem firmware * trivial: conflict with old unifying plugin * Rename unifying plugin to logitech-hidpp (Fixes: #1329) * Add a new contrib script for installing a Dell BIOS from an EXE file * trivial: add-capsule-header: rename to make it easier to import * trivial: simple_client: make it easier to reuse code * trivial: firmware-packager: make it easier to reuse code * trivial: add-capsule-header: make it actually work * trivial: fix some gtkdoc sections * Bump the required gudev version * trivial: Fix a compile error with older versions of gudev * trivial: wacom: add vid/pid for panels in Moffett * trivial: post release version bump - Changes from version 1.3.3 * unifying: notify users to replug when using dfu control (Fixes: #1383) * trivial: 8bitdo: set a transient failure while waiting for user action * libfwupd: Add a new error type for user action needed * trivial: 8bitdo: show the same message for SN30pro and SN30pro+ * trivial: Fix up some typos from codespell * trivial: Ensure config.h is included in all source files * trivial: Fix up some NULL/FALSE confusion * trivial: Add all the _LAST enums that shouldn't be checked for ABI * trivial: Fix a typo that means that UEFI results were never cleared * Always report the update-error correctly for multiple updates * trivial: Fix fwupdmgr get-history if the firmware was not installed from the LVFS * trivial: Do not emit a warning if a child has no version number * Move the file descriptor lifecycle into FuUdevDevice * trivial: Fix some GtkDoc annotations * ebitdo: Modernize the plugin to use FuFirmware * nitrokey: Use fu_common_dump_raw() when debugging * thunderbolt: Create a unique GUID including Thunderbolt controller path * Use device safety flags to show prompts before installing updates * trivial: Use the new possible_plugin support for USB devices too * jabra: Move the Jabra-specific detach out into its own plugin * Ensure the device is open when doing the subclassed prepare() and cleanup() * vli-usbhub: Add support for updating V2 devices * Allow verifying the device image itself from fwupdtool * Use XMLb to query quirks * trivial: ci: disable pulling libxmlb from unstable * synaptics-prometheus: Don't add a config-subdevice in bootloader mode * dfu: Use the VID/PID to identify devices without download capability in runtime * trivial: debian: remove some unneeded lintian * trivial: debian: bump compat version * ebitdo: Add SN30Pro+ to recognized quirk list (Fixes: #1503) * dfu: Add several quirks for Realtek camera hardware * dfu: Always mark devices as UPDATABLE * uefi: use `genpeimg` to mark ASLR and DP/NX on EFI binary * trivial: solokey: correct a typo * trivial: fu-util: fix typo * uefi: rework ESP path detection and lifecycle * trivial: uefi: show more metadata in to_string method * trivial: fu-device: add new method to remove metadata * Add a plugin to update VIA USB hub hardware * trivial: Add fu_common_read_uint8_safe() * trivial: Fix two typos in fu_common_read_uint16_safe() * solokey: Allow parsing firmware with fwupdtool * Allow fwupdtool to dump details of common firmware formats * trivial: Do not do system coldplug when using FU_ENGINE_LOAD_FLAG_NO_ENUMERATE * trivial: fu-self-test: set polling self tests to slow * trivial: fu-tool: Allow `detach`/`attach` to prompt for device * Strip trailing whitespace from USB descriptors * trivial: Add fu_common_read_uint16_safe() * trivial: Add version to the FuFirmware->to_string() output * Add fu_firmware_set_version() * Add a systemd preset file for `fwupd-refresh.service` * trivial: dell: work around a memory leak caught by address sanitizer * ebitdo: if the device has the will disappear flag, don't wait for ack (Fixes: #994) * Add a new plugin for working with eMMC devices (Fixes: #1455) * fu-engine: Check multiple plugins if quirks match * trivial: don't try to enable LVFS from systemd * trivial: coreboot: fix a clang compiler error * fu-util: Add user friendly strings for all device flags * Add new device flags indicating update resilience * plugins: Add coreboot plugin * fu-plugin: Add fu_plugin_get_hwid_replace_value * trivial: Increase verbosity when actually updating devices * trivial: Allow plugins to use WAIT_FOR_REPLUG in prepare and cleanup * Add FuDevice->prepare() and FuDevice->cleanup() vfuncs for future use * dfu: Implement FuDevice->to_string() * trivial: colorhug: fix a crash that occurs when flashing sometimes * trivial: fu-util: break out of automatic reports if one is not automatic * thunderbolt: some more clarifications when using ICL * trivial: fwupd-refresh: activate motd if using systemd v243 or later * trivial: fwupd-refresh: allow exit code 2 for success * trivial: synaptics-cxaudio: Add Google Pixel buds * trivial: arch: ci: Wait some time for tpm_server to start up * Allow a custom FuFirmwareImage->write() in superclassed objects * dfu: Remove two completely unused helpers * dfu: Make DfuFirmware derive from FuFirmware * dfu: Make DfuImage derive from FuFirmwareImage * dfu: Remove private headers that do not need to exist * Fix device flag filtering * trivial: fu-engine: Don't compare device and content checksums * fu-engine: Read all releases and convert versions when comparing * Add new flags `can-verify` and `can-verify-image` * trivial: make verify and verify-update safer * trivial: test: add checksums for "stock" 1.2.2 * trivial: fu-udev-device: use parent udev device to indicate `internal` * trivial: fix TPM2 simulator tests for arch * trivial: uefi: don't add PCRs with all 0's * trivial: Fix a recent regression causing a double-free * synaptics-cxaudio: Support the ThinkPad USB-C Dock Gen2 * trivial: fu-util: add some extra checks around automatic reports * trivial: fu-tool: typo * fu-systemd: Use correct method for stopping units. * trivial: fu-udev-device: Use ID_PCI_CLASS_FROM_DATABASE if name not set * trivial: fu-plugin: quiet down debug output for optionrom plugin * 8bitdo: use will-disappear flag for sf30/sn30 controllers (Fixes: #783) * trivial: ebitdo: don't dump out firmware header unless plugin verbose * trivial: ebitdo: don't use local errors when writing firmware * Add a new device flag for indicating device won't come back * wacom-emr: Fix a regression for EMR devices * Add a generic DFU firmware object for plugins to use * dfu: Use FwupdInstallFlags rather than a DFU-specific version * dfu: Remove functionality for modifying DfuSe files * dfu: Remove functionality you can do now with fwupdtool * dfu: Remove the merge command as it's unused and broken * trivial: Add fu_firmware_parse_file() helper for future use * trivial: Remove the fuzzing details for DfuPatch * trivial: Add klass->to_string for superclassed FuFirmwareImage objects * dfu: Remove DfuPatch as no vendor actually uses this * dfu: Don't wrap provided VID-PID functions * dfu: Use the standard FuDevice custom flags functionality * dfu: Use klass_device->write_firmware() directly * dfu: Use the generic fu_plugin_usb_device_added() function * dfu: Use daemon flags to ignore devices rather than a special flag * dfu: Set the device state directly to avoid proxying signals * dfu: Use the built-in detach() and attach() vfuncs * Read firmware back from the device as a FuFirmware * dfu: Remove a pointless function * dfu: Remove support for the Metadata Store Proposal * dfu: Remove XTEA support * dfu: Remove the SREC and IHEX parsing out of the DFU plugin * ebitdo: Use klass_device->write_firmware like other plugins * trivial: Remove G_BEGIN_DECLS from all private headers * Remove FU_PLUGIN_RULE_REQUIRES_QUIRK as all the plugins now use it * Set all FuUdevDevice plugins to use FU_QUIRKS_PLUGIN * thunderbolt: recognize new 'generation' sysfs attribute * Rename and modernize the udev plugin * synaptics-rmi: Also add the product ID as a GUID without the minor version * synaptics-rmi: Correctly set the payload length rather than hardcoding it * synaptics-rmi: Write the core config correctly * synaptics-rmi: Decode BL7 status failures as actual errors * synaptics-rmi: Add some trivial debugging to help debug a write problem * trivial: uefi: Make efivarvs errors clearer (Fixes: 1330) * trivial: uefi: don't prefix efivar errors * trivial: Remove some now-unused vfuncs * altos: Modernize the plugin to simplify it * Create the custom plugin GType in common code * Reduce more boilerplate in plugins * synaptics-rmi: Check the correct register when querying bootloader mode * trivial: fu-engine: fix never reporting remotes * trivial: fu-util: don't show warnings for no reports to upload * trivial: debian: remove more conffiles from transitions (Closes: #932617) * trivial: debian/control*: Update for fwupdate transition * trivial: Fix a tiny memory leak when starting the daemon * modem-manager: Fix a tiny memory leak when starting the daemon * synaptics-rmi: Copy the behavior of rmi4utils for BL7 detach * synaptics-rmi: Simplify fu_synaptics_rmi_device_read() * synaptics-rmi: Set the version after ->setup has run * synaptics-rmi: Use the correct mask when getting the bootloader mode on BL7 * syanptics-rmi: The build_id is 3 bytes long, not 2 * synaptics-rmi: Read the config partition the same as rmi4utils * Provide a default implementation of common FuDevice actions * thunderbolt-power: avoid checking for bolt support * synaptics-rmi: Add some debugging for BL7 devices * Fix usage of incorrect type for return value * synaptics-rmi: Do as little as possible in device setup * synaptics-rmi: Speed up reading the PDT from 900ms to 30ms * fu-util: add support for a reinstall command * trivial: fu-util/fu-tool: update re-install help text to reinstall * trivial: fu-util: remove double printed message about succesful firmware update * trivial: fu-util: show no updatable devices error for update command * synaptics-rmi: Ignore the ATTN reports from the hardware when reading DATA * synaptics-rmi: Move the fuzzing instructions to the toplevel README * Fuzz the SREC and IHEX file parsers once more * Use parallel fuzzing for the SMBIOS checks too * synaptics-rmi: Fix the packing of the partition table * Add a plugin to update Synaptics RMI4 devices * trivial: Add a parallel fuzzing script * trivial: fu-util: output newline after prompt. * trivial: fix %u output in report upload * Add a --no-domain logging option * trivial: Fix compiler warning for impossible-to-hit condition * Add support for automatically uploading reports * trivial: motd: disable updating motd for now * trivial: fwupd-refresh: fix a clash with fwupd.service (Closes: #941360) * trivial: Fix Fedora CI * trivial: fu-udev-device: fix some assertions * Search up the tree for a vendor name rather than (ab)using the HID_NAME * Add some success messages when CLI tasks have completed * trivial: Put the boolean prompt on the same line as the text * Never show LicenseRef-proprietary to the end user * trivial: snap: correct install hook root directory * Export the instructions for detaching the device * uefi: detect unmounted ESP partitions (Fixes: #1405) * uefi: stop recording efibootmgr output after flash * trivial: post release version bump - Changes from version 1.3.2: * Add support for '' to disambiguate some firmware * thelio-io: Add a plugin to detach the Thelio IO board * trivial: uefi, dell: skip self tests with TPM if non-root (Fixes: #1396) * trivial: dell: quiet the TSS output * trivial: uefi: allow forcing to TPM2 via environment variable * Do not ask the user to upload a report if ReportURI is not set * Do not enumerate physical devices when running the internal self tests * trivial: libfwupd: skip tests if machine-id is empty too * Add a new plugin to update Conexant audio devices * Export the salted machine ID as a daemon property * Fall back to /var/lib/dbus/machine-id when required * trivial: add stalebot (Fixes: #1393) * trivial: dell-dock: correct another write_size error * Align the key values to the text *width* not the number of bytes * trivial: Move dbus directory location for snap too * trivial: Fix some NULL/FALSE confusion * synaptics-prometheus: Fix tiny memory leak when using FuSynapromConfig * trivial: Fix tiny memory leak when using FuSrecFirmware * snap: switch to core18 * trivial: Return the correct property when getting the host product * trivial: fu-util-common: fix description wrapping (Fixes: #1378) * fu-util/fu-tool: Map out changelogs from remotes * fu-util/fu-tool: Better display historical information * fu-history: Update device_modified in sql database during updates * unifying: Use the instance ID to check for supported devices * unifying: Ensure HID++ v2.0 peripheral devices get scanned by the plugin * trivial: Add some more defines to the srec parser * trivial: fix wget command in fu-tool.c * Allow parsing a raw SREC file * trivial: wacom: Add support for second vendor ID * uefi, dell-esrt: Show firmware version when capsule updates unavailable * Add some more debugging to the SREC and IHEX parsers * Print the instance IDs if the GUIDs are unconverted * Add fu_common_bytes_compare_raw() for future usage * Call the set_quirk_kv() vfunc for the superclassed object * uefi: make the TPM optional for runtime again (Fixes: #1362) * trivial: uefi: Make the TCTI output less verbose * Support in AppStream metadata * Include all GUIDs when uploading a report * Do not crash when starting tpm2-abrmd * trivial: Update DBus conf path for example Fedora package * Move D-Bus conf file to datadir/dbus-1/system.d * trivial: Add fu_io_channel_write_byte_array() for future use * trivial: post release version bump - Package new sub-packages typelib-1_0-FwupdPlugin-1_0 and libfwupdplugin1.- Fix file list- Update to version 1.3.1: (jsc#SLE-10751) * Allow disabling all plugins * trivial: Specify the tpm2-tss-devel version in the example spec file * Move to CI Fedora 30 * modem-manager: Fix two build warnings on Fedora 30 * synapticsmst: Add another name quirk for the ThinkPad USB-C Dock * Re-introduce GUID support to fwupdmgr and fwupdtool * uefi-recovery: Add a plugin to add a fake ESRT entry for device recovery * Add a DMI quirk for the Minnowboard Turbot * trivial: Make it easy to disable or enable libflashrom for distros * trivial: Don't use Recommends for RHEL 7 * unifying: fix timeout metadata * ci: arch: minor improvements * unifying: fix timeout * Allow disabling SSL strict mode for broken corporate proxies * trivial: Allow ignoring the daemon version check by using --force * Try to only show DMI product name once * trivial: fu-util-common: Show unknown devices as interesting devices * dell: Use TSS to query and build TPM vendor strings for GUIDs * trivial: dell: show reasons for lack of updates in `UpdateError` * fu-util-common: strip all trailing whitespace in XML description * trivial: fu-common: match all whitespace not just ' ' in `fu_common_strstrip` * fu-util: show release output in get-details again * unifying: use fu_firmware_strparse_uint16 to read be 16bit values * unifying: fix incomplete hex file parsing * fu-util/fu-tool: Print devices, remotes, releases using a tree * Add aliases for `get-upgrades` and `upgrade` * trivial: UEFI skip self tests if library fails to initialize * libfwupd: Add a new private function `fwupd_remote_set_remotes_dir` * trivial: add libtss2-dev into debian/control (Closes: #1324) * trivial: Fix up the GtkDoc Since lines for API only available in 1.3.x * trivial: Post branch version bump * thunderbolt: Add support for kernel safety checks (Fixes: #1312) * Include the kernel release as a runtime version * trivial: fu-util: Drop GUID support from get-devices * synapticsmst: Partially rewrite the plugin (Fixes #1105) * Remove replug flag after the device comes back from reboot * trivial: Fix running the tests on devices with the TPM in v1.2 mode * trivial: fu-util-common: more cleanup related to topology * trivial: fu-util: cleanup fwupdmgr get-details output * trivial: Don't use topology printing in --verbose mode * Make get-devices and get-topology aliases for one another * trivial: Adjust daemon device sorting * Make get-topology more useful by showing all information * trivial: Fix fu_common_string_append_kv() to align properly with idx > 0 * trivial: dell-dock: correct an error preventing write_size from being set * trivial: Do not warn about deprecated declarations * trivial: Update BRs for the example Fedora package * uefi: add test for TPM 2.0 PCR read function * uefi: use tpm2-tss library to read PCR values * fu-common: Use environment variables for systemd managed directories * Use more systemd directives for directories * trivial: fu-util: fix debug output for devices * Allow turning off the timestamp prefix for debugging * Add a ->udev_device_changed plugin vfunc * Add fu_device_rescan() and a FuDevice->rescan() vfunc * Remove the duplicate files in meson.build * Hash the source files when generating the daemon hash * Split up source files in the build script * uefi: add support for tpm2-tools 4.X * trivial: plugins: clarify stance on afuefi.efi * trivial: plugins/: Update README * trivial: disable gtkdoc by default * trivial: update references of hughsie/fwupd to fwupd/fwupd * Publish docs to fwupd.github.io using CircelCI * Add support to integrate into the motd (Fixes: #1270) * Simplify get-devices output to not show un-useful fields * fu-engine/fu-config: Reload metadata store when configuration changes * trivial: If no devices support updates, show messaging (Closes: #1295) * trivial: uefi: set vendor name for system firwmare from DMI data * unifying: update Solaar url * thunderbolt: Fix logic to work properly with ICL thunderbolt controller * Add fu_udev_device_get_device_file() helper * trivial: Fix regression when using fu_device_incorporate() * trivial: Fix a potential crash when using FuPlugin in the self tests * synapticsmst: Make FuSynapticsmstConnection an actual GObject * synapticsmst: Use the same style as other plugins * trivial: Add some helper functions for GByteArray * Do not use FuDevice metadata for the physical and logical IDs * Use fu_common_string_append_kv() in subclassed device * synapticsmst: Use G_DECLARE_FINAL_TYPE to simplify the object * synapticsmst: Add a SynapticsMSTBoardID for another Lenovo dock * trivial: remove unnecessary CUSTOMERID_DELL define * synapticsmst: Add a SynapticsMSTBoardID for a Lenovo dock * synapticsmst: Display the board ID in non-hex form in the error message * synapticsmst: Use a more suitable icon for the device * trivial: Remove unused variable * Never use memcpy() in a possibly unsafe way * Add a ->to_string() vfunc to FuFirmware * Use FuFirmware as a container for firmware images * Allow filtering devices when using the command line tools * Be more accepting when trying to recover a failed database migration * trivial: Add translation for X-ThunderboltController * trivial: fixup standalone installer * modem-manager: add counterpart GUID for the DW5821e * solokey: Release the interface and rebind the kernel driver on close * fu-tool: Port ability to update a single device from fwupdmgr * uefi: Actually write the new device path if different than before * Allow setting custom flags when using fwupdate * trivial: Do not show a critical warning if no firmware is specified * trivial: Fix overzealous search-replace action in user string * Verify we don't break the ABI * Fix a crash when stopping the fwupd service * Relax the certificate time checks in the self tests for the legacy certificate * trivial: add cache directory into systemd unit rw paths * Never show AppStream markup on the console * Do not segfault when trying to quit the downgrade selection * trivial: Update icons for Thunderbolt and MST devices * Add support for the SoloKey Secure * trivial: Allow a device to *clear* a firmware version * trivial: debian: For signed package fill out Built-Using (Closes: #932757) * Allow specifying GUID to check any version exists * trivial: post release version bump * Release fwupd 1.2.10 * Disable the flashrom plugin by default * trivial: thunderbolt: catch failure setting up device * dell-esrt: Improve the experience for the plugin (Closes: #1245) * fu-util: When unlocking prompt for reboot if applicable * remove those PIDs with Bluetooth interface, Wacom updater doesn't support updating from Bluetooth interface * flashrom: Only show DEBUG and DEBUG2 output if using --plugin-verbose=flashrom * flashrom: Only call flashrom_programmer_init() on whitelisted boards * flashrom: Fix no version format set * fu-util: Show devices with an UpdateError in get-devices output * trivial: uefi: use UEFI-dummy for device ID instead of just uefi * trivial: fix error handling for non UEFI case (#1220) * Add a specific error code for the low battery case * Fix Fedora docker build missing directory: dist * uefi: Determine whether running in legacy mode or not (Fixes: #1220) * trivial: ci: debian: Only turn on flashrom when running CI * trivial: Fix typos in error messages * Allow client code to construct objects from GVariant blobs * Export functionality to build an array of objects * flashrom: Use libflashrom * trivial: Fix the version script to pick up boxed types * trivial: Correctly order the map entries according to vercmp rules * trivial: Fix pylint issue in the version script * Add meson target to fix translations * Add support for 8bitdo USB Retro Receiver * Use the newer features of GRWLock rather than reinventing it * Revert "Allow SuperIO updates to be done live" * uefi: Try to find a duplicate using the loadopt name * uefi: Provide a quirk to disable the use of the UX capsule * trivial: uefi: use the path for efibootmgr that was detected * synaptics-prometheus: Fix installing CONFIG firmware updates * synaptics-prometheus: Set the install duration from a quirk * synaptics-prometheus: Don't emit critial warning when updating config firmware * synaptics-prometheus: Fix missing field in the IOTA reply struct * Create SECURITY.md * redfish: Never set NULL device name * modem-manager: Never set NULL device name * ata: Never set NULL device name * trivial: Add some parameter guards to FuDevice * trivial: snap: make polkit directories if they don't exist (Fixes: #1205) * trivial: fu-main: clarify missing PK file error * synapticsmst: fix GUID generation (Closes: #1207) * Lite Mk II flag for use-shim-unique * trivial: circleci: try to fix automatic snap deployment * Allow SuperIO updates to be done live * fu-util-common: Support empty proxy strings (Fixes: #1199) * trivial: uefi: clarify error message * trivial: Fix non-systemd build * trivial: Sync example spec file with downstream * trivial: post release version bump - Drop fwupd-bsc1143905-hash-the-source-files.patch: Applied upstream. - Add pkgconfig(tss2-esys) BuildRequires: New dependency. - Add gtk-doc BuildRequires and pass gtkdoc=true to meson, build api docs even when using source service.- Add fwupd-bsc1143905-hash-the-source-files.patch to hash the source files instead of libfwupdprivate.a to avoid the checksum change due to the random naming LTO profile sections (bsc#1143905)- Update to version 1.2.10: * Disable the flashrom plugin by default * dell-esrt: Improve the experience for the plugin (Closes: #1245) * fu-util: When unlocking prompt for reboot if applicable * remove those PIDs with Bluetooth interface, Wacom updater doesn't support updating from Bluetooth interface * flashrom: Only show DEBUG and DEBUG2 output if using - -plugin-verbose=flashrom * flashrom: Only call flashrom_programmer_init() on whitelisted boards * flashrom: Fix no version format set * fu-util: Show devices with an UpdateError in get-devices output * Add a specific error code for the low battery case * Fix Fedora docker build missing directory: dist * uefi: Determine whether running in legacy mode or not (Fixes: #1220) * Allow client code to construct objects from GVariant blobs * Export functionality to build an array of objects * flashrom: Use libflashrom * Add meson target to fix translations * Add support for 8bitdo USB Retro Receiver * Use the newer features of GRWLock rather than reinventing it * uefi: Try to find a duplicate using the loadopt name * uefi: Provide a quirk to disable the use of the UX capsule * synaptics-prometheus: Fix installing CONFIG firmware updates * synaptics-prometheus: Set the install duration from a quirk * synaptics-prometheus: Don't emit critial warning when updating config firmware * synaptics-prometheus: Fix missing field in the IOTA reply struct * Create SECURITY.md * redfish: Never set NULL device name * modem-manager: Never set NULL device name * ata: Never set NULL device name * synapticsmst: fix GUID generation (Closes: #1207) * Lite Mk II flag for use-shim-unique * fu-util-common: Support empty proxy strings (Fixes: #1199) - Add python3-setuptools to BuildRequires for generate-version-script.py- Update to version 1.2.9: * Release fwupd 1.2.9 * trivial: Add two new translatable strings for new category types * Check if the system is offline during install, rather than at startup * Prompt the user to shutdown if requried when installing by ID * Use the correct file extension for the offline updates cache * trivial: Allow using --force to use the wrong daemon version * trivial: Display the correct expected command * standalone-installer: Be smarter about existing installed fwupd * Add a plugin to update Synaptics Prometheus fingerprint readers * trivial: standalone-installer: rename uninstall argument to cleanup * fu-util: Check the daemon version is at least the client version * fu-util: Check that daemon is started by expected unit * fu-util-common: when stopping a daemon, check for snap too * Allow using --force to trigger a duplicate offline update * trivial: Allow using FuUsbDevice without a GUsbDevice * trivial: Copy the icons if unset for the device child * trivial: Copy the physical ID if unset for the device child * trivial: Ensure the parent ID is up to date if the device ID changes * trivial: Fix typo when setting the parent ID * trivial: Disable the flatpak CI build * Allow handling FORCE for devices that subclass FuDevice * uefi: Fix a libasan failure when reading a UEFI variable * trivial: Fix a memory leak found using libasan * trivial: Fix an libasan failure in the dell plugin * trivial: Fix some dead code spotted by coverity * trivial: Fix a typo spotted by coverity * trivial: Fix a missing config.h include in a new source file * Dynamically read path to use for /system-update * Display the remote warning on the console in an easy-to-read way * ata: Set version format to plain for devices obtained from udev * trivial: Only apply SmbiosManufacturer to release version for internal * trivial: Fix two bugs in the hardware self tests script * Never guess the version format from the version string * Only force a semver when the device opts-in * Export the version-format to clients * Add missing gtk-doc documentation * dfu: Add some trivial, but useful, debugging for AVR DFU devices * dfu: Correctly identify DFU firmware that starts at offset zero * dfu: Don't keep showing trivial debug output * dfu: Reset the forced version during attach and detach * ata/nvme: For devices running Dell firmware, set `VersionFormat` (Fixes: #1169) * fu-engine: Check if VersionFormat is ambiguous when adding devices * trivial: Fix fwupdate --apply * Only use class-based instance IDs for quirk matching * trivial: dell-dock: set minimum board to 6 * trivial: post release version bump- Update to version 1.2.8: * Don't upload reports when the user has configured their system in a broken way * Allow setting the daemon verbose domains at runtime * Allow fwupdmgr to modify the daemon config * Do not compare version formats when the release format is unknown * Do not fall back integers to a plain version format * Use the device version format when converting the release version * Set the VersionFormat using the metadata or the UEFI quirk - Changes from version 1.2.7: * l10n: Create Lithuanian translation file * l10n: Update LINGUAS * Updated: Add support for 8BitDo M30. * modem-manager: increase the timeout to wait for modem after uninhibited * modem-manager: implement qmi pdc active config selection as attach() * fu-engine: When removing activation flag match the correct version * Require --force to install a release with a different version format * Match the old or new version number when setting NEEDS_REBOOT * Make an error message clearer when there are no updates available * Add support for the not-child extension from Logitech * thunderbolt: Set require-ac for Thunderbolt devices (Fixes: gh#hughsie/fwupd#1142) * Fix some typos spotted using codespell * Add a component categories to express the firmware type * fu-tool: Port get-history command to fwupdtool * Recreate the history database if migration failed * Move the core built-in 'fwupd' remote over to the dell-esrt plugin * snap: Add a custom systemd unit to call activation on shutdown (Fixes: gh#hughsie/fwupd#1125) * ata: Flush cache before standby and activate * synapticsmst: blacklist plugin when using amdgpu (Fixes: gh#hughsie/fwupd#1121) * uefi: add a new option to specify the os name * Return the newest device when using fu_history_get_device_by_id() * uefi: More carefully check the output from tpm2_pcrlist * uefi: Don't overwrite CustomFlags if set from a quirk * Shut down the daemon if the on-disk binary is replaced * ata: Correct activation functionality * Fix version comparisons after reboot for some formats * fu-tool: save history from stuff installed with `fwupdtool` - Changes from version 1.2.6: * ata: send ATA standby immediate when activating firmware * offline: Be more graceful when dealing with Plymouth failures * Save the new version in the history database for offline updates * Show the DeviceID when showing the updates list * Allow forcing an offline-only update on a live system using --force * Do not schedule an update on battery power if it requires AC power * superio: Add InstallDuration default value * superio: Add support for writing new e-flash contents * superio: Fix reading the attestation checksum * superio: Add support for reading the device checksum * superio: Use the chipset ID in the device name * superio: Move the device flush before getting the register map * superio: Move all the IT89xx code to a subclassed device object * superio: Move all the IT85xx code to a subclassed device object * superio: Split and export fu_superio_device_ec_writeX() * superio: Remove the port from fu_superio_device_ec_read() * superio: Move the register read/write into the FuSuperioDevice object * superio: Check the IOBAD0 is usable during setup * superio: Use fu_device_set_firmware_size() * superio: Move some constants out to the common header * superio: Use GObject properties in FuSuperioDevice * superio: Convert FuSuperioDevice to be derivable * Update Plymouth when updating pending firmware * Ask to reboot after scheduling an offline firmware update * Do not fail when scheduling more than one update to be run offline * Allow running offline updates when in system-update.target * Fix the location of fwupdoffline in the service file * Add optional vfuncs to allow detaching and attaching verify() * superio: Add list of SPI commands for future usage * Add a verify-update command to fwupdtool * uefi: Actually upload the UPDATE_INFO entry for the UX capsule * superio: Get the chip size from the EC rather than hardcoding * uefi: Check the error code of QueryCapsuleCapabilities() correctly * Update the UEFI UX Capsule Header checksum when needed. * uefi: Copy the shimx64.efi binary for known broken firmware * Correctly get the check the new version for devices that replug * Add a simple script to add a capsule header * Ensure the PKCS-7 client certificate exists at startup * fix makecab directive options * fwpup.service: use display-manager.service instead of gdm.service * Allow signing the fwupd report with the client certificate * Add a D-Bus method to generate a signature using the self-signed client certificate * Allow signing and verifying data using a PKCS-7 self-signed client certificate * Fix a critical warning when loading a PKCS-7 certificate with no DN * Include all device checksums in the LVFS report * modem-manager: Fix a trivial build warning * superio: Fix a trivial build warning * Move out the offline update functionality to a new binary * Do not reboot when failing to start fwupd during offline updates * Do not write the schema version to the db when loading * Do not recreate XbSilo caches when running on a readonly filesystem * Add the fwupdagent binary for use in shell scripts * Allow restricting firmware updates for enterprise use * standalone-installer: new --allow-older and --allow-reinstall options * Show the upgrade and downgrade flags when getting releases for a device * Rename FwupdRelease:trust-flags to FwupdRelease:flags * fu-tool: Save device state to @LOCALSTATEDIR@/lib/fwupd/state.json on actions * modem-manager: implement support for qmi-pdc * Add a plugin to support ModemManager hardware * fu-tool: Don't let failing to find dbus prevent engine from starting * ata: Support delayed activation * dell-dock: Use activation when calling fwupdtool activate * Add a support for delayed activation * uefi: Fix the self tests when running on Fedora SilverBlue * Do not fail to start the daemon if tpm2_pcrlist hangs * po/make-images.sh: quote LOCALEDIR and PYTHON3 * meson: print stderr of python3 command instead of stdout * Revert "contrib/debian: Switch to debian unstable" * Add elogind support - Changes from version 1.2.5: * uefi: fix segfault in fwup_set_update_statuses * Show in Flathub correctly * debian: explicitly depend on shared-mime-info * superio: Implement detach() and attach() * superio: Correct the names of some constants and improve debugging support * dell-dock: Filter the last supported payloads of certain board 4 SKUs * circleci: Manage the lifecycle of the snap * Add support to run snap build in CircleCI * wacom-usb: Use the correct buffer format for the touch module * wacom-usb: Set the install duration for each device type * wacom-usb: Return with an error if there were too many retries * wacom-usb: Make updating less verbose * Convert all child instance IDs when converting the parent * uefi: Allow devices to create more complete fake UEFI devices * unifying: Fix regression when recovering from failed flash * Ensure libxmlb dir exists for LGTM.com * Add C build configuration for LGTM.com * Use G_BEGIN_DECLS correctly for internal headers * standalone-installer: Fix issue found by LGTM * Use '#pragma once' to avoid a lot of boilerplate * Force LGTM to see Python 3 * fwupd: Hide firmware-packager behind meson option` * fu-common-cab: Correct handling of CAB files w/ nested directories and older libgcab * Fix a regression in using the InstanceIDs for quirk matching * thunderbolt: Convert the instance IDs as we never open the device * udev: Manally call fu_device_setup() to convert the instance IDs * fu-tool: Correct a crash caused by calling fwupdtool update * fu-tool: Don't fail if dbus is unavailable * contrib/debian: Switch to debian unstable * wacom-usb: Record the block number when failing * wacom-usb: The touch address is big endian * wacom-usb: Accept a non-binary IHEX file for the touch update * wacom-usb: Only poll when the device status is 'busy' * wacom-usb: Only reboot the device when all composite devices have been updated * wacom-usb: Fix flashing failure with latest Intuos Pro tablet * dfu: Fill holes when reading SREC files * Add fwupd_guid_from_string() to drop dep on uuid * wacom-raw: Check the InstanceID rather than GUID * Defer the InstanceID->GUID hashing until after setup * ata: Check for USB enclosures as well * Do not use efivar just to print a mixed endian GUID * Add fu_device_add_instance_id() and prefer explicit conversion * Report the DeviceInstanceIDs to `fwupdmgr get-updates` * Export some of the GUID functionality * Allow a plugin to set _ANOTHER_WRITE_REQUIRED to run more than one plugin * nvme: Add an extra check for Dell plugins to avoid false positives * ata: Add support for detecting Dell GUIDs * Fix the self tests when using glib2 >=2.59.0 * Add support to call composite prepare and cleanup using fwupdtool * uefi: Disable -Wno-address-of-packed-member * uefi: Don't unconditionally enable Werror for the EFI binary * Disable -Wno-address-of-packed-member - Changes from version 1.2.4: * Remove the autogenerated headers in the gettext files * ata: Default to the non-activation 0xE subcommand * fastboot: Use a much longer timeout as the removal delay * fu-progressbar: be more quiet when running non-interactive * fu-tool: Show UpdateMessage if applicable for install command * dfu: Simplify the SREC parser to avoid a crash with an invalid file * wacom-raw: Use the correct error codes when the panel is not supported * wacom-usb: Add some more information to the README * fu-keyring-utils: Don't fail missing PKI directory when compiled with GPG/PKCS7 * dell: Check that the flash interface command is available * wacom-usb: Fix the plugin name to allow devices to be updated * fastboot: flash the partition after downloading the file * uefi: Add a quirk to use the legacy bootmgr description * ata: Mark all devices as needing a reboot * ata: Add a new plugin to upgrade firmware on ATA/ATAPI hardware * udev-device: Add a utility function for debugging * udev-device: Set the firmware revision automatically * udev-device: Set the serial number automatically * udev-device: Fall back to non-database model and vendor values * udev-device: Fix critical warning if the device has no parent * dell-dock: Add support for a passive flow * Add support for an `UpdateMessage` and display it in tools * fu-tool: Port the `get-updates` command over * When using `directory` remote type automatically generate metadata * libfwupd: Add support for new remote type "directory" * Ensure cabinet archives always have a container checksum * Add support for a per-release source and details URL * When generating a CAB Silo use the prefix "components" * uefi: Add a trivial debugging statement to debug a UX capsule failure * uefi: Use fwup_new0() to allocate the updates table array * nitrokey: Correct Nitrokey Storage invalid firmware version read * dell-dock: Add support for flashing Thunderbolt over I2C * wacom-raw: Add a plugin to update Wacom embedded EMR and AES panels * fu-util/fu-tool: sync up reboot and shutdown behavior * dfu: Ignore the SUB ASCII value * dfu: Fix the parser to support extended segment addresses * dfu: Support ihex files with leading comments don't show an error * uefi: Correct a boot order creation bug (Fixes: gh#hughsie/fwupd#956) * uefi: Remove all variable length arrays * uefi: Fix a logic bug in fwup_search_file() * uefi: Use _cleanup_free in one more place * uefi: Do not pass required attrs to fwup_delete_variable() * uefi: Delete the old Linux-Firmware-Updater boot entry * uefi: Use the GNU-EFI BOOL type * Check if plugin changed after the device attaches or detaches * uefi: Refactor and simplify the EFI loader * Show a console warning if loading an out-of-tree plugin * UEFI: Do the UX checksum calculation in fwupd * wacom-usb: Add two more Intuos tablets * nvme: Add the needs-shutdown quirk to Phison NVMe drives * Add _NEEDS_SHUTDOWN flag for devices * Use GCC __cleanup__ features in the EFI loader * nvme: Add flag to support manually aligning the firmware to the FWUG value * nvme: Support FGUID to get the SKU GUID * nvme: Support FWUG to get the write block size * nvme: Add trivial comment to clarify address bitshifting * uefi: Do not check the BGRT status before uploading a UX capsule * dfu: Fix flashing various Jabra devices * upower: Add support for checking battery percentage * nvme: Check the return code of the admin passthru ioctl * fu-tool: Add support for an 'update' command to fwupdtool * dell-dock: Set minimum board to board 4 * dell-dock: Workaround a manufacturing bug for board level 4 * dell-dock: Wait longer for re-enumeration on TBT SKU * superio: Support IT89xx devices * fu-main: remove incompatible locale error message * Add a new plugin checklist (Fixes: gh#hughsie/fwupd#899) - Dropped obsolete patch: fwupd-bsc1130056-change-esp-os-name.patch (upstream PR: gh#hughsie/fwupd#1119 - Fixed fwupd-bsc1130056-change-shim-path.patch so that it works with the new files - Cleaned up changelog- Stop shipping polkit rules, as we have the distro specific setup in polkit-default-privs (boo#1125428).- Add fwupd-bsc1130056-change-esp-os-name.patch to change the OS directory in ESP (bsc#1130056) - Add fwupd-bsc1130056-change-shim-path.patch to set the default shim binary for openSUSE/SLE (bsc#1130056) - Link fwupd*.efi.signed to fwupd*.efi as requested by fwupd (bsc#1129466)- fwupd.spec: fix shell syntax error in %postun section (boo#1120363).- Update to version 1.2.3: * Correctly migrate the history database - Changes from version 1.2.2: * Log an error if started with an incompatible locale * Fix building with -Wl,-z,defs * ebitdo: Fix the reported version number if the daemon locale is not C.UTF-8 * Add Dell TB18DC to the known devices list * Allow replacing the last byte in the image when using 'dfu-tool replace-data' * Check the device checksum as well as the content checksum during verify * Submit the device firmware checksum and update protocol in the submitted report * Include the device checksum and update protocol in the historydb * uefi: Add the PCR0 value as the device checksum for system firmware * Add new API to get the release protocol from the metadata * Allow plugins to define support for a 'well-known' protocol * uefi: When adding headers set the header size to 4k * uefi: Append the header on capsules without headers from Linux * flashrom: Ensure the quirks database is set on the new object * uefi: Do not add devices with invalid GUIDs * Do not allow a GUID of zero * Add shared functionality for reading and writing with O_NONBLOCK * Only run attach and detach if the device is in the wrong mode * Sanitize the version if the version format has been specified * wacom-usb: Remove the DTH generation hardware as it will not work with fwupd * thunderbolt: Remove a superfluous boundary condition when verifying update * Add a plugin to update hardware that supports fastboot * Fix a regression when doing GetReleases on unsupported hardware * dfu: Require a specific USB class and subclass for DFU mode * Correctly parse format the version numbers correctly using old metadata * amt: Fix a crash if AMT returns an empty response * Check plugins set error on failure * contrib: Add a simple python3 client * installed-tests: Adjust to actually use a remote for installed tests * Add more standard USB identifier GUIDs * wacomhid: Rename to wacom-usb * Provide a way for plugins to decompress a custom archive to ram - Changes from version 1.2.1: * Remove DaemonVersionFormat=quad * Shut down the daemon after 2h of inactivity * Create a silo index to speed up GUID queries * Fix flashing the 8bitdo SF30 * Speed up fwupd startup by loading less thunderbolt firmware * Query the XbSilo when calling fu_plugin_check_supported() * Guess the version format when it is not provided * Fix a use-after-free when using valgrind and --immediate-exit * Add per-release install duration values * Fix showing the custom remote agreements * Be more explicit setting the update state * Include the os-release information in the release metadata - Changes from version 1.2.0: * ebitdo: remove SF30/SN30 pro device ids * dell-dock: Drop delayed MST callback routine * synapticsmst: Adjust EVB board handling * synapticsmst: Remove the content checking of firmware * synapticsmst: Access Board ID through memory instead In firmware images HDCP 2.2 will be enabled by default,so access to flash region will fail.` * contrib: Adjust flatpak build for moving to flathub * dell-dock: Prefer to flash VMM5331 via I2C instead of DP aux * Use HTTPS_PROXY if set * firmware-packager: Make it clearer to use * Sort the firmware sack by component priority * flatpak: Update gnu-efi to latest version * amt: Set the full device version including the BuildNum * fwupdmgr/fwupdtool: Move monitor command to fwupdtool * fwupdmgr/fwupdtool: Move firmware builder from fwupdmgr to fwupdtool * Add version format quirks for several Lenovo machines * uefi: Set the quirks on created devices * dell_dock: Use correct offset for finding version of MST * dell-dock: Add missing unlock call for MST via dell_dock plugin * Support the Intel ME version format * Port from libappstream-glib to libxmlb * Bump requirement to meson 0.46.0 * fu-main: Catch SIGTERM while update is in progress * fu-tool: Stop any running daemon over dbus before loading engine * meson: Bump dependency to 0.44 and adjust sysconfdir handling * dell-dock: If marketing name is invalid don't fail initialization * Readme Updated: Added KDE Discover as one more graphical front-end available for fwupd. * dell-dock: Correct a situation that error wasn't propagating * Don't segfault if a plugin returns FALSE from UpdateFunc with no error set * dell-dock: Use different debug strings for each device type * dell-dock: Don't use the VLA feature in the new dock * Add a plugin for an upcoming Dell USB-C dock * contrib: Add information on how to use debugging scripts * Allow setting the version format from a quirk entry * Don't use AppStream-glib for string helpers * Don't use AppStream-glib for version helpers * Don't use AppStream-glib for the GUID helpers * fu-device: Ensure that parent ID is created before creating quirked children * Update all sub-devices for a composite update * Stop showing the current release during updates in fwupdmgr * uefi: Move the TPM unlocking functionality from the Dell to UEFI plugin * Run the Dell plugin initialization after the UEFI plugin * thunderbolt-power: Fix possible linker problem * Allow firmware files to depend on versions from other devices * fu-debug: Redirect all debugging output to stderr instead of stdout * synapticsmst: Adjust panamera ESM update routine for some reported issues * fu-engine: Optionally wait for replug before updating a device * fu-device-list: Use delayed device removal when removing the tree * thunderbolt: Use replugging from the daemon * Add support for devices to show an estimated flash time * Marked some CL options for translation * ci: Run clang static analysis for Ubuntu build rather than just clang compiler * nvme: Initialize the buffer before reading the contents * contrib: Add a standalone installer creation script * rts54hid: Add support for Realtek USB devices using vendor HID commands * fu-engine: Don't show devices pending a reboot in GetUpgrades * Add FuMutex helper to make various parts of the daemon thread-safe * rts54hub: Add support for Realtek USB devices using vendor HUB commands * uefi: Check the amount of free space on the ESP * fu-tool: Import debugging options from fu-debug like fu-main * superio: Set the physical and logical IDs - Add pkgconfig(xmlb) BuildRequires: New dependency.- Add pesign-obs-integration to BuildRequires and add fwupd*.efi to BRP_PESIGN_FILES to get it signed - Add LC_IMAGES and use efivar only if %{with efi_fw_update} + Also update the version requirement of efivar - Disable Redfish and NVME plugins if %{without efi_fw_update} since those two plugins require efivar - Remove fwup from BuildRequires since fwupdate is already merged into fwupd.- Use gnu-efi only if %{with efi_fw_update}, always use pkgconfig(efivar) - Fix file list- Amend %post and %postun to install/uninstall fwupd*.efi to the EFI system partition + Also add shim to Requires for fwupdx64.efi - Mark fwupdate as obsolete + fwupdate has been merged into fwupd since fwupd 1.1.0.- fwupd is require for thunderbolt firmware update in SLE15-SP1(fate#322681)- Update to version 1.1.2: + New Features: - Add a new device flag "ignore-validation" that will override checks - Add a new plugin to enumerate EC firmware - Add a new plugin to update NVMe hardware - Add a plugin for updating using the flashrom command line tool - Allow the device list to take care of waiting for the device replug - Allow updating just one specific device from the command line - Allow upgrades using a self-signed fwupd.efi binary - Download firmware if the user specifies a URI - Include serial number in daemon device output when trusted - Notify all plugins of device removals through a new vfunc - Use boltd force power API if available + Bugfixes: - Add an install hook for classic snap - Allow forcing installation even if no AC power is applied - Allow using --force to ignore version_lowest - Always use the same HardwareIDs as Windows - Check the device state before assuming a fake DFU runtime - Copy over parent GUIDs from other plugin donors - Detect location of python3 interpreter - Do not add udev devices after a small delay - Don't fail to run if compiled without GPG/PKCS7 - Fix a segfault in fwupdtool caused by cleanup of USB plugins - Implement the systemd recommendations for offline updates - Improve performance when reading keys from the quirk database - Remove children of devices when the parent is removed - Rewrite synapticsmst to use modern error handling - Rewrite the unifying plugin to use the new daemon-provided functionality - Show a time estimate on the progressbar after an update has started- Use noun phrase for summary. Trim request for comments from description.- Update to version 1.1.1: + New Features: - Add support for the Synaptics Panamera hardware - Add validation for Alpine and Titan Ridge - Improve the Redfish plugin to actually work with real hardware + Bugfixes: - Allow different plugins to add the same device - Allow flashing unifying devices in recovery mode - Allow running synapticsmst on non-Dell hardware - Check the ESP for sanity at at startup - Do not hold hidraw devices open forever - Don't override _FORTIFY_SOURCE when building the EFI binary - Don't show passwords in fwupdmgr - Fix a potential segfault in smbios data parsing - Fix encoding the GUID into the capsule EFI variable - Fix various bugs when reading the thunderbolt version number - Reboot synapticsmst devices at the end of flash cycle - Show status messages when the daemon is initializing - Show the correct title when updating devices - Show the reasons that plugins are not run on the CLI - Use localedir in po/make-images- Run %udev_rules_update in post as package install udev rules- Update to version 1.1.0: (FATE#326702) + New Features: - Add a initial Redfish support - Add a tool to mimic the original fwupdate CLI interface - Allow devices to assign a plugin from the quirk subsystem - Change the quirk file structure to be more efficient - Merge fwupdate functionality into fwupd - Run a plugin vfunc before and after all the composite devices are updated - Support more Wacom tablets + Bugfixes: - Add release information for locked devices - Allow building with older meson - Detect the EFI system partition location at runtime - Do not use 8bitdo bootloader commands after a successful flash - Enable accesing downloaded files in flatpak and snap - Fix a potential buffer overflow when applying a DFU patch - Fix downgrading older releases to devices - Fix flashing devices that require a manual replug - Fix several small memory leaks in various places - Fix the retrieval of Redfish version - Fix unifying failure to detach when using a slow host controller - Set the Wacom device status when erasing and writing firmware - Show errors in the CLI if unable to access directory - Use the parent device name for Wacom sub-modules - Removed enable_pkcs7_when_testing_only.patch- Update to version 1.0.8: + New Features (including version 1.0.7): - Add an plugin to update some future Wacom tablets - Add 'fwupdmgr get-topology' to show logical device tree - Add support for creating a flatpak - Add support for creating a snap - Add support for Motorola S-record files - Add the Linux Foundation public GPG keys for firmware and metadata - Show a translated warning when the server is limiting downloads - Add enable-remote and disable-remote commands to fwupdmgr - Add fu_plugin_add_compile_version() for libraries to use - Allow requiring specific versions of libraries for firmware updates - If no remotes are enabled try to enable the LVFS - Show a warning with interactive prompt when enabling a remote + Bugfixes (including version 1.0.7): - Add a firmware diagnostic tool called fwupdtool - Adjust all licensing to LGPL 2.1+ - Allow installing more than one firmware using 'fwupdmgr install' - Allow specifying hwids with OR relationships - Do not call fu_plugin_init() on blacklisted plugins - Do not require libcolorhug to build - Fix a crash in libfwupd where no device ID is set - Fix a potential DoS in libdfu by limiting holes to 1MiB - Fix a segfault that sometimes occurs during cleanup of USB plugins - Fix Hardware-ID{0,1,2,12} compatibility with Microsoft - Hide devices that aren't updatable by default in fwupdmgr - Search all UEFI GUIDs when matching hardware - Stop matching Nintendo Switch Pro in the 8bitdo plugin - Check that EFI system partition is mounted before update - Disable synapticsmst remote control on failure - Don't recoldplug thunderbolt to fix a flashing failure - Fix SQL error when running 'fwupdmgr clear-offline' - Improve the update report message - Only enumerate Dell Docks if the type is known - Only run certtool if a new enough gnutls is present - Prevent a client crash if the daemon somehow sends invalid data - Reboot after scheduling using logind not systemd - Use the right encoding for the label in make-images - Added/backported enable_pkcs7_when_testing_only.patch: + needed to disable pkcs7 test during build (can be removed for fwupd >= 1.0.9)- Update hasbang in installed files from /usr/bin/env python3 to /usr/bin/python3.- Update url - Small packaging cleanup with spec-cleaner- Update to version 1.0.6: + New Features: - Add bash completion for fwupdmgr. - Add support for newest Thunderbolt chips. - Allow all functions that take device arguments to be prompted. - Allow devices to use the runtime version when in bootloader mode. - Allow overriding ESP mount point via conf file. - Delete any old fwupdate capsules and efivars when launching fwupd. - Generate Vala bindings. + Bugfixes: - Allow ctrl-d out of the prompt for devices. - Allow to create package out of provided binary. - Correct handling of unknown Thunderbolt devices. - Correctly detect new remotes that are manually copied. - Fix a crash related to when passing device to downgrade in CLI. - Fix running the self tests when no fwupd is installed. - Fix Unifying signature writing and parsing for Texas bootloader. - Only send success and failure reports to the server. - Use a CNAME to redirect to the correct CDN for metadata. - Use a longer timeout when powering back the Thunderbolt device.- Ensure library package has a dependency on main package, otherwise it won't be usable.- Update to version 1.0.5: + New Features: - Offer to reboot when processing an offline update. - Report the efivar, libsmbios and fwupdate library versions. - Report Thunderbolt safe mode and SecureBoot status. - Show the user a URL when they report a known problem. - Support split cabinet archives as produced by Windows Update. + Bugfixes: - Be more careful deleting and modifying device history. - Clarify which devices don't have upgrades. - Ensure the Thunderbolt version is xx.yy. - Fix a daemon warning when using fwupdmgr get-results. - Fix crasher with MST flashing. - Fix DFU detach with newer releases of libusb. - Include the device VID and PID when generating the device-id. - Set the RemoteId when using GetDetails. - Stop matching 8bitdo DS4 controller VID/PID. - Use help2man for dfu-tool and drop docbook dependencies. - Use ngettext for any strings with plurals. - Use the default value if ArchiveSizeMax is unspecified.- Update to version 1.0.4: + New Features: - Add D-Bus methods to get and modify the history information. - Allow the user to share firmware update success or failure. - Ask the user to refresh metadata when it is very old. - Store firmware update success and failure to a local database. + Bugfixes: - Add a device name for locked UEFI devices. - Allow each plugin to opt-in to the recoldplug action. - Fix firmware downloading using gnome-software. - Fix UX capsule reference to the one specified in efivar. - Never add two devices to the daemon with the same ID. - Rescan supported flags when refreshing metadata. - Add pkgconfig(json-glib-1.0) BuildRequires: new dependency.- Update to version 1.0.3: + New Features: - Add a new plugin to add support for CSR "Driverless DFU". - Add initial SF30/SN30 Pro support. - Support AppStream metadata with relative URLs. + Bugfixes: - Add more metadata to the user-agent string. - Block owned Dell TPM updates. - Choose the correct component from provides matches using requirements. - Do not try to parse huge compressed archive files. - Fix a double-free bug in the Udev code. - Handle Thunderbolt "native" mode. - Use the new functionality in libgcab >= 1.0 to avoid writing temp files.- Unbreak compilation on non-x86, upstream renamed options to disable plugins.- Update to version 1.0.2: + Add a plugin for the Nitrokey Storage device + Add support for the original AVR DFU protocol + Allow different plugins to claim the same device + Allow quirks to set common USB properties + Move a common plugin functionality out to a new shared object + Optionally delay the device removal for better replugging + Set environment variables to allow easy per-plugin debugging + Use a SHA1 hash for the internal DeviceID + Add quirk for AT32UC3B1256 as used in the RubberDucky + Disable the dell plugin if libsmbios fails + Don't register for USB UDev events to later ignore them + Fix a possible buffer overflow when debugging ebitdo devices + Fix critical warning when more than one remote fails to load + Fix DFU attaching AVR32 devices like the XMEGA + Ignore useless Thunderbolt device types + Refactor ColorHug into a much more modern plugin + Release the Steelseries interface if getting the version failed + Remove autoconf-isms from the meson configure options + Show a nicer error message if the requirement fails + Sort the output of GetUpgrades correctly - Changes from version 1.0.1: + Add support for HWID requirements + Add support for programming various AVR32 and XMEGA parts using DFU + Add the various DFU quirks for the Jabra Speak devices + Allow specifying the output file type for 'dfu-tool read' + Move the database of supported devices out into runtime loaded files + Support the IHEX record type 0x05 + Use help2man to generate the man page at build time + Use the new quirk infrastructure for version numbers + Catch invalid Dell dock component requests + Correctly output Intel HEX files with > 16bit offset addresses + Do not try to verify the element write if upload is unsupported + Fix a double-unref when updating any 8Bitdo device + Fix crash when enumerating with Dell dock connected but with no UEFI + Fix uploading large firmware files over DFU + Format the BCD USB revision numbers correctly + Guess the DFU transfer size if it is not specified + Include the reset timeout as wValue to fix some DFU bootloaders + Make the error message clearer when sans fonts are missing + Support devices with truncated DFU interface data + Use the correct remote-specified username and passord when using fwupdmgr + Use the correct wDetachTimeOut when writing DFU firmware + Verify devices with legacy VIDs are actually 8Bitdo controllers - Add help2man as BuildRequires.- Fix dependencies and build options for non-x86 architectures. At least FW updates for USB are arch independent, and EFI FW updates can also be applied on Aarch64.- Update to version 1.0.0: * Add the plugin documentation to the main gtk-doc * Add a waiting-for-auth daemon state * Add fwupd_remote_get_checksum() to use in client programs * Generate the LD script from the GObject Introspection data * Prevent fwupd from mounting filesystems * uefi: Do not use system-specific infomation for PCI devices * uefi: Support uploading the firmware splash image * dell: only set coldplug delay when we know we need it * dell: only run SMI to toggle host MST GPIO on systems with host MST * dell: add functionality to blacklist HW with problems * dell: only run on intended chassis * thunderbolt-power: always run after thunderbolt plugin * Allow plugins to depend on each other * Add support for SMBIOSv3 * dell: prefer to use hwids to get DMI keys and DE table * debian: remove /etc/fwupd.conf on upgrade * unifying: Use fu_plugin_check_supported() * Add fu_plugin_check_supported() * unifying: Use a device whitelist to avoid breaking devices * Fix various printing issues with the progressbar * dell: Fix a trivial whitespace issue * Do not fail to load the daemon if cached metadata is invalid * Do not store the newest release as part of the FuDevice object * Add a method to return a list of upgrades for a specific device * Move the downgrade calculation to the daemon * Make FuDevice derive from FwupdDevice rather than FwupdResult * Add a command 'clear-offline' to fwupdmgr * Merge releases where multiple remotes provide the same firmware * Remove the UniqueID property * uefi: Do not set the release version * udev: Do not match USB devices, even with a GUID set * Use the intel-wmi-thunderbolt kernel module to force power * dell: drop thunderbolt force power code * unifying: Add hardcoded summaries for peripheral kinds * Create CODE_OF_CONDUCT.md * Ensure more devices set the device summary * Add an 'Summary' property to each device * Add a human-readable title for each remote * unifying: Disable if the kernel has no CONFIG_HIDRAW support * Move deprecated symbols to a new header * Introduce an s390x cross compile target to CI * Add ModifyRemote as an easy way to enable and disable remotes like the LVFS * Do not auto-open all USB devices at startup * dfu: Use FuDeviceLocker * unifying: Use FuDeviceLocker * colorhug: Use FuDeviceLocker * ebitdo: Use FuDeviceLocker * altos: Use FuDeviceLocker * steelseries: Use FuDeviceLocker * usb: Use FuDeviceLocker * Add FuDeviceLocker to simplify device open/close lifecycles * dfu: Remove DEVO support * dfu: Remove the now-unused symtab support * Remove the ELF support from libdfu and move the code to the altos plugin * Use -Werror when building in Travis CI * Do not install the libdfu helper library * Parse the SMBIOS DMI table directly * usb: Disable the fallback USB plugin * Test for missing language translations at build time * Fix the libdfu self test failure on s390 and ppc64- Update to version 0.9.8: * Add a command 'clear-offline' to fwupdmgr * Do not fail to load the daemon if cached metadata is invalid * Fix a crash when using fu_plugin_device_add_delay() * Fix the libdfu self test failure on s390 and ppc64 * Format the BCD USB revision numbers correctly * Never fallback to an offline update from client code * Prevent fwupd from mounting filesystems * dfu: Allow flashing when the target does not specify an alt-name * dfu: Do not try to verify the element write if upload is unsupported * dfu: Fix uploading large firmware files * dfu: Include the reset timeout as wValue to fix some hardware * dfu: Set the vendor ID to the runtime USB VID * dfu: Use 0x0101 as an alias for 0x0110 * thunderbolt: move test for mock environment (gh#hughsie/fwupd#280) * udev: Do not match USB devices, even with a GUID set * uefi: Do not set the release version * unifying: Disable if the kernel has no CONFIG_HIDRAW support- Update to version 0.9.7: + 10 months worth of bugfixing, integrating more vendor specific Firmware update paths.- Update to version 0.8.1: + Delete duplicate translations (gh#hughsie/fwupd#89). + Do not hardcode docbook2man path. + Fix fwupdmgr timeout with missing pending database. + Fix compiler warnings. + Fix a crash when enumerating devices on a Dell WLD15. + dell: don't initialize libsmbios on unsupported systems. + Do not fail to start on Dell hardware. + Adjust systemd confinement restrictions. + Do not dlclose modules when running under valgrind. + Really remove the NoNewPrivileges systemd confinement. + Release fwupd 0.8.1.- Update to version 0.8.0: + Show a different error when checking for updates while on + battery power (gh#hughsie/fwupd#68). + Clarify the test in --help and man page related to offline + (gh#hughsie/fwupd#69). + libdfu: Use a heuristic for the start address if the firmware + has no DfuSe footer. + dell: Don't return the address of a stack variable. + dell: Fix a possibly-impossible-to-hit buffer overrun. + close USB devices before error returns (gh#hughsie/fwupd#73). + Make libelf support optional. + Always make sure we're getting a C99 compiler. + Fix redeclaration of polkit autocleanup functions. + Uncomment SystemdService parameter in the dbus service file + (gh#hughsie/fwupd#74). + Make all providers and plugins share a GUsbContext. + Unexport libebitdo. + Move the plugins into plugin-specific directories. + Convert the providers to plugins to simplify code and for + future features. + Add support for Logitech Unifying devices. + Add a set of vfuncs that are run before and after a device + update. + Return the pending UEFI update when not on AC power. + Move the UPower functionality to a plugin. + Fix udev plugin loading. + fix dfu plugin loading. + Disable PrivateNetwork on systemd service. + Use more restrictive settings when running under systemd. + dell: add a new method for forcing a controller to flash mode. + Add VerifyUpdate to update the device checksums server-side. + Move the Option ROM parsing to the Udev plugin. + Move the device add delay to shared code. + Add initial skeleton for Intel Thunderbolt support. + unifying: Use the actual bootloader VID/PIDs when in firmware + mode. + Allow the metadata to match a version of fwupd and the existing + fw version. + Add fwupd_result_get_device_version_bootloader(). + Fix the appstream-glib version guards. + dell: Add coldplug methods to let other plugins turn on + TBT/GPIO. + libdfu: Don't read data from some DfuSe targets. + Add the ability to run a prepare->exec->cleanup on coldplug. + Allow plugins to request that all plugins re-coldplug. + thunderbolt: Detecting new devices and add an actual device to + the daemon. + Add support for flashing the ChaosKey. + thunderbolt: add some guards around empty arrays. + dell: Adjust the coldplug preparation and cleanup sequence. + dell: Fix possible linker problem. + Revert "thunderbolt: add some guards around empty arrays". + Add fu_plugin_set_coldplug_delay() to allow hardware to + initialize if required. + altos: Add error checking when using termios. + ebitdo: Subclass FuDevice like the altos plugin. + altos: Set the flags in the init_real so they work for the + cmdline tool. + unifying: Subclass FuDevice like the altos plugin. + Include all debug messages when run with --verbose. + dell: introduce a standalone (noinst) tool to force mode + flashes. + Introduce plugin for Synaptics MST hubs. + synapticsmst: Add cascade support. + Only register the D-Bus service when all devices have been + added. + synapticsmst: Refactor away the global state. + synapticsmst: fix cascade support in the plugin. + Updates for thunderbolt plugin. + thunderbolt: Add special handling for safe mode on Dell systems + (gh#hughsie/fwupd#84). + synapticsmst: Iterate all nodes rather than hardcoding to 3. + synapticsmst: build GUID using dock type. + Add a new function fu_dell_supported to fu-dell-common. + synapticsmst: add a test suite. + synapticsmst: Fix up some trivial whitespace issues. + Fix a refcounting issue in the udev plugin. - Add rpmlintrc untill security review is resolved- Update to version 0.7.5: + Clean up PO files + Verify devices support updating in mode they are called. + Fix an assert when unlocking the dummy ESRT device + Don't create the UEFI dummy device if the unlock will happen on + next boot + dell: Match on TB16 as well + Fix a -fstack-protector-strong crash when uploading firmware + Enable the stack protection in local builds + dell: If running in test suite, don't try to get product ID + from sysfs + libfdfu: Show a warning when getting the alt-name failed + dfu: Fix listing devices using the ST reference bootloader + Show the nicely formatted target name for DfuSe devices + libdfu: Fix two possible critical warnings for corrupt USB + descriptors + libdfu: Correctly offset addresses when one zone has multiple + sectors + libdfu: Do not do GetStatus on dfuse upload + libdfu: Fix uploading from DfuSe devices + libdfu: Use the device offset when writing DfuSe firmware + libdfu: Add DfuAction enumerated value to represent a device + action + libdfu: Use an animated progress bar when performing DFU + operations + libdfu: Do not do a zero-byte download when in DfuSe mode + libdfu: Fix verification of written DfuSe firmware + libdfu: Ensure the device is open before claiming the interface + libdfu: Ensure the mode is set correctly when faking a runtime + libdfu: Re-get the quirks when the DfuDevice gets a new + GUsbDevice + libdfu: Add quirks for HydraBus as it does not have a DFU + runtime + libdfu: Match the device booloader or runtime VID and PID when + checking firmware + Add a 'replace-data' command to dfu-tool + string + libdfu: Add dfu_sector_get_zone() to get the continuous memory + zone number + libdfu: Wait for DNBUSY to be cleared when checking the DfuSe + status + libdfu: Correctly erase DfuSe devices + Enable hardening flags on more binaries + libdfu: Correctly set the element address when uploading from + DfuSe devices - Add pkgconfig(gmodule-2.0) BuildRequires: Align with what + configure checks for. - Add pkgconfig(libsmbios_c) BuildRequires: Support dell bios. + Unfortunatly, until we have fwup packaged and enabled, this will + not work. - Add disabled pkgconfig(libtbtfwu): For future thunderbolt + support.- Update to version 0.7.4: + Add a fallback for older appstream-glib releases + Write the ELF files with the correct section type + Fix libfwupd self tests when a host-provided fwupd is not + available + Add dfu_firmware_add_symbol() + Add the Altos symbol table to the DfuFirmware + Use the symtab to set the VID/PID from Altos IHEX firmware + images + Show the human-readable version in the 'dfu-tool dump' output + Allow specifying the argument to 'dfu-tool set-release' in + major.minor format. + sections + Support writing the IHEX symbol table + call + Load the symbol table from ELF firmware + Load the Altos USB descriptor from ELF files + Add DFU_CIPHER_KIND_RSA + Fix a possible crash when uploading firmware files using libdfu- Update to version 0.7.3: + build: Fix gtk-doc build when srcdir != builddir + In get-details output, display the blob filename + Ensure the update ID is set when getting local firmware details + Use a private gnupg key store + Add support for installing against multiple devices from a CAB + file + Use the correct firmware blob when installing a composite + device update + in get-details output, display update_name rather than Unknown + Device + statements + Don't make failures critical while checking versions or locked + state + Show a more detailed error when installing firmware on the + wildcard + Add Dell TPM and TB15/WD15 support via new Dell provider. + file + Allow blacklisting devices by their GUID + header file + Add XPS 9250 to Dell TPM modeswitch blacklist + Only display flashes left in results output when it gets low. + Add a small library for talking with 0bitdo hardware + Add another compile warning and fix up any build failures + Embed fwupd version in generated libfwupd and libdfu + documentation + Update fwupdmgr manpage for new commands and arguments + build: Fix gtk-doc build when srcdir != builddir + online not offline + Get the firmware version correctly from 0Bitdo gamepads + Switch to the Amazon S3 CDN for firmware metadata + Fix writing 8Bitdo device firmware + be updated + Show the vendor flashing instructions when installing + Split out the DFU file formats to separate files + Add fwupd_result_remove_device_flag() + Add FU_DEVICE_FLAG_NEEDS_BOOTLOADER + get-updates output + Allow providers to export percentage completion + Add fwupd_client_get_status() + Handle the 8Bitdo bootloader in a better way + Show a progress notification when installing firmware + Add fwupd_result_get_unique_id() + Use the SHA1 hash of the local file data as the component + origin + Use the correct define prefix for FwupdDeviceFlags + libdfu: Fix hang when parsing corrupt IHEX files + Add a set-target-size command to dfu-tool + Support the 'DEVO' cipher kind in libdfu + Add a set-address command to dfu-util + Disable the Dell specific code by default + Conditionally enable all providers based upon what's installed + Add a summary of providers that are enabled from configure + Do not use the deprecated GNOME_COMPILE_WARNINGS + Ignore devices that do not add at least one GUID + Do not attempt to add DFU devices not in runtime mode + Save the unique ID in the pending database + libdfu: Add initial ELF reading and writing support + Add dfu_firmware_format_from_string() + Normalize the DfuFirmwareFormat enums- Update to version 0.7.2: + Allow devices to have multiple assigned GUIDs + Only return updatable devices from GetDevices() + Add fu_device_get_alternate() + Allow metainfo files to match only specific revisions of + devices + Re-read flags for a device after a provider's unlock routine is + done + Test for a locked device when trying to install firmware update + Enforce allowing providers to take away flash abilities + Support returning multiple GUIDs from GetDetails + Add a GetDetailsLocal() method to eventually replace + GetDetails() + break + libdfu: Add DfuVersion enumerated values + libdfu: Show the DFU protocol version in 'dfu-tool list' + Only claim the DFU interface when required- Update to version 0.7.1: + Fix libdfu CRC check for big endian architectures + Add dfu_image_get_element_default() + Fix libdfu CRC check for big endian architectures + Fix big endian issues when reading and writing DFU and DfuSe + files + Remove non-interactive pinentry setting from fu-keyring + Set the system's DMI product name as the DisplayName for UEFI + Re-order output of get-devices to be easier to read + Make the device display name nicer + update version + Return all update descriptions newer than the installed version + Add summary and name field for Rival SteelSeries + Fix a critical warning when restarting the daemon + Add a 'supported' flag to the FuDevice + Add fwupd_client_connect() + Add a 'monitor' debugging command for fwupdmgr + Add device-added, device-removed and device-changed signals + Match the AppStream metadata after a device has been adedd + Re-match devices when the AppStream metadata is updated + Show 'Unknow Device' in fwupdmgr when a device name is not set + Set the device description when parsing local firmware files + Add support for a new device field "Flashes Left". + src/Makefile.am: reshuffle so enableable bits are only + referenced when on + Add support for a --force flag to override provider warnings- Update to version 0.7.0: + Use g_usb_context_wait_for_replug() + Run vendor plugins as required + Add a plugin for SteelSeries hardware + Add fwupd_device_flag_to_string() + Return the device flags when getting firmware details + Show device flags in 'fwupdmgr get-devices' + Add fwupd_trust_flag_to_string() + Export FwupdUpdateState in libfwupd + Export FwupdUpdateFlags in libfwupd + Add FwupdResult to libfwupd + Add a self test framework for libfwupd + Add FwupdClient to libfwupd + Use FwupdClient from libfwupd in fwupdmgr + Use libfwupd inside the daemon + Emit a FwupdClient::changed when the daemon emits this signal + Rename some of the new libfwupd API to align with the D-Bus + names + libdfu: Fix up some NULL/FALSE confusion + libfwup: Fix up some NULL/FALSE confusion + FwupdClient + Allow other checksum kinds in FwupdResult + Allow SHA-256 hashes when verifying + Show the checksum kind in the fwupdmgr output + Add Alienware to the version quirk table + Do not use /tmp for downloaded files + Add fwupd_result_has_device_flag() + Do not return updates that require AC when on battery + Connect to UPower at startup + Test that GPG key import actually was successful (or didn't + change a key already in the keyring) + Use g_auto() in FuKeyring + Return errors of the correct type when using libfwupd + Allow overridding the location of the pending database for + test suite + Allow overriding the location of the provider offline files for + test suite + Validate that the dbus system bus is available before running + libfwupd tests + Update README.md for changes that have happened in the project + Add some basic explanation of how to use fwupd with various + frontends + Split out the libdfu-devel package + Revert "Allow overridding the location of the pending database + for test suite" + Revert "Allow overriding the location of the provider offline + files for test suite" + Allow the test suite to run in %check + Generate gtk-doc documentation for libfwupd- Update to version 0.6.3: + Require AC power before scheduling some types of firmware + update + Install the hardcoded firmware AppStream file + Correct the BCD version number for DFU 1.1 + Add an unlock method for devices + Add ESRT enable method into UEFI provider. + Only read PCI OptionROM firmware when devices are manually + unlocked + Do not use deprecated API from libappstream-glib + Ignore the DFU runtime on the DW1820A + Export the attribute and quirk values in libdfu + Show ignored DFU devices in dfu-util, but not in fwupd + Allow defining update vfuncs with no runtime support + Revert "Allow defining update vfuncs with no runtime support" + Add a simple plugin infrastructure- Update to version 0.6.2: + Add 'Created' and 'Modified' properties on managed devices + Fix get-results for UEFI provider. + Support vendor-specific UEFI version encodings + Move quirks directly into a single table and file.- Update to version 0.6.1: + Only dump the profiling data when run with --verbose + Always persist ColorHug devices after replug + Do not misdetect different ColorHug devices- Update to version 0.6.0: + Add support for updating USB devices with DFU + libdfu: Add support for DfuSe firmware + libdfu: Generate gtk-doc documentation + libdfu: Don't rely on specific hardware to be present + libdfu: Move the VID:PID checks from the tool to DfuDevice + libdfu: Use a custom error domain + Use the same device identification string format as Microsoft + libdfu: Fix crash when setting a target size + libdfu: Allow setting the alternate settings in DfuSe firmware + libdfu: Add a merge command to dfu-tool + libdfu: Allow choosing a different alt-setting when downloading + libdfu: Fix a crash when setting a NULL image name + libdfu: Correctly implement auto-boot in dfu_device_download() + libdfu: Check for extra args to dfu-tool convert + libdfu: Call the progress callback when doing detach + Ignore the DFU device detach:attach when verifying + libdfu: Require a --force flag to flash wildcard firmware + Use new API available in fwup 0.5 + libdfu: Make the element address 32 bits in size + libdfu: Support the ST-specific bitCanAccelerate + libdfu: Only do a Detach notification if we're actually doing to do it + libdfu: Use the progress bar for all uploads and downloads + libdfu: Improve the output of 'dfu-util list' + libdfu: Support download and upload to ST DfuSe devices + libdfu: Fix multi-interface devices like the Neo Freerunner + libdfu: Add a pkgconfig file + libdfu: Use signals to propagate device state + libdfu: Add a context object to handle device hotplug + libdfu: Add an example showing GObject Introspection + libdfu: Do not ref DfuDevice in DfuTarget so the auto-close + logic works + Close DFU devices as soon as possible after the transfer has completed + Emit the changed signal after doing an update + Rescan the DFU device after replug to get the new version + libdfu: Add dfu_context_get_device_by_platform_id() + libdfu: Add dfu_device_get_runtime_release() + libdfu: Add dfu_device_get_display_name() + libdfu: Fix self tests after recent API change + Split out the DFU provider as a new file + libdfu: Copy the platform ID and invalidate the GUsbDevice when removed + libdfu: Accept multiple spaces after the DfuSe sector name + libdfu: Verify the GUsbDevice is set before using it + libdfu: Remove the weak pointer when destroying the DfuTarget + libdfu: Fix dfu_device_wait_for_replug() so it can work with a DfuContext + Export the AppStream ID when returning device results + Rescan the DFU device after firmware has been updated + libdfu: Handle cancellation with ctrl+c in dfu-tool + libdfu: Add a quirk to support DFU runtime-less devices + libdfu: Add an explicit 'attach' method + libdfu: Add dfu_firmware_get_image_by_name() + libdfu: Make reading and writing to targets easier to + understand + Fix compile with --disable-shared + libdfu: Display all the files shown with 'dfu-tool dump' + libdfu: Fix a few crashers found using afl + libdfu: Fix another bug discovered by the fuzzer + libdfu: Add commands to encrypt and decrypt firmware images + libdfu: Show better device errors + libdfu: Add DfuCipher which is a property on a target and a + firmware file + libdfu: Add support for the draft 'DFU Metadata Table + Specification' + libdfu: Only enumerate the DfuContext when required + libdfu: Fix several reported crashes in the inhex32 import code + Release fwupd 0.6.0- Update to version 0.5.4: + Fix compile error against fwupdate git due to dropped + functions. + Use strerror() when printing errors from libfwupdate + Use new API available in fwup 0.5 + Release fwupd 0.5.4- Update to version 0.5.3: + Avoid seeking when reading the file magic during refresh + Do not assume that the compressed XML data will be NUL + terminated + debugging + Use the correct user agent string for fwupdmgr + Release fwupd 0.5.3- Update to version 0.5.2: + Ensure D-Bus remote errors are registered at fwupdmgr startup + Show the dotted-decimal representation of the UEFI version + number + require appstream-glib 0.5.1 + not found + When the version is from the 'FW' extension do not cache the + device + Support cabinet archives files with more than one firmware + Add the update description to the GetDetails results + Add profiling data to debug slow startup times + Fix verify-update to produce components with the correct + provide values + Clear the in-memory firmware store only after parsing a valid + XML file + Release fwupd 0.5.2- Update to version 0.5.1: + Fix the error message when no devices can be updated + offline update: Use glib api for for reading symlinks + Release fwupd 0.5.1- Update to version 0.5.0: + Do not merge the existing firmware metadata with the submitted + files + Raise the dep on GLib to support and use g_autoptr() + Do not reboot if racing with the PackageKit offline update + mechanism + Release fwupd 0.5.0- Update to version 0.1.6: + Install fwupd and fwsignd into /usr/lib/$(triplet)/fwupd + instead. + Use the new secure metadata URI + Update the offline update service to invoke right command + Don't apply firmware if something else is processing the + offline update + Remove fwsignd, we have the LVFS now + Depend on appstream-glib >= 0.5.0 + Add application metadata when getting the updates list + Simplify the version properties on devices to avoid complexity + and bugs + Release fwupd 0.1.6- Update to version 0.1.5: + Allow fwupd to be autostarted by systemd + Sign the test binary with the correct key + Do not pre-convert the update description from AppStream XML + Devices with option ROM are always internal + Prefer the GUID from the firmware than the device + Allow no arguments to 'fwupdmgr verify-update' and use sane + defaults + Add the ability to remove a vendor on the LVFS site + Fix validation of written firmware + Move the verification and metadata matching phase to the daemon + Add a simple config file to store the correct LVFS download URI + Make parsing the option ROM runtime optional + Add a Raspberry Pi firmware provider + Use the AppStream 0.9 firmware specification by default + Generate the ColorHug test files at runtime + Release fwupd 0.1.5- Update to version 0.1.4: + man/Makefile.am: Add --sgml to docbook2man invocation + Make statements about storing private keys stronger. + Provide a way for clients to add new firmware metadata to the + system cache + Fix fwupd-offline-update.service + Revert "man/Makefile.am: Add --sgml to docbook2man invocation" + Add a Udev firmware provider + Extract the version string from the ROM in PCI devices + Add a 'verify' command that verifies the cryptographic hash of + device firmware + Make the ROM parsing more robust and add self tests + Get the version number out from Intel VBIOS too + Provide a way to dump the option ROM using the command line + build: gusb is required even without colorhug + remove unused variables + Do not return NULL as a gboolean + Fix Intel VBIOS detection on Dell hardware + Do not use the subsystem information when constructing the fake + GUID + Actually parse the PCI option ROM + Accept multiple files at one time when using fwupdmgr dump-rom + verify run + Add a 'verify-update' command to fwupdmgr + Fix trivial bug when parsing firmware versions + Keep hitting the hardware until it gives us enough ROM + Make the version parsing more resilient to corrupt firmware + Fix the example .inf file to reflect reality + Fix ROM PPID searching to work for all ROMs + Move the LVFS website to the fwupd project + Add the ability to create detached signatures + Allow cab files to be saved + Add a simple signing server that operates on .cab files + Automatically download metadata using fwupdmgr if required + Don't call efibootmgr after fwupdate. + Associate the contact email address directly with the vendor + key + Use the actual LVFS GPG key + Allow running fwsignd as the non-root user + metadata + Do not merge existing LVFS metadata + Do not use the file hash when storing the LVFS submitted + firmwares + Move GetUpdates to the daemon + Change the DBus method for installing firmware to 'Install' + Allow installing an offline UEFI update without --offline + Add a 'fwupdmgr update' command to update all devices to latest + versions + 'update' command + Increase the size limit of firmware to 50Mb + Only sign files when the entire file has been copied + Fallback to offline install when calling the update argument. + Reload appstream data after refreshing. + Release fwupd 0.1.4- Update to version 0.1.3: + Coldplug the devices before acquiring the well known name + Add an UNKNOWN status so we can return meaningful enum values + Run the offline actions using systemd when required + Get the firmware version from the device descriptors + Added syntax highlighting + More markup + Support OpenHardware devices using the fwupd vendor extensions + Move boolean properties on the device to a set of flags + Release fwupd 0.1.3- Update to version 0.1.2: + More markup + Fixed typos and markup for executable + Add slovak translation + Add helper code to validate public key signatures + Decompress any firmware signatures in the .cab file + Verify firmware if a detached signature is present + Show the firmware trust status when doing GetDetails() + Only allow signed firmware to be upgraded without a password + Add some guidelines for vendors to README + Small grammar fix + Extract the .cat file alongside the firmware + Release fwupd 0.1.2- Update to version fwupd_0_1_1: + Do not crash when there are no devices to return + Add a 'get-updates' command to fwupdmgr + Add and document the offline-update lifecycle + Create runtime directories if they do not exist + Create a libfwupd shared library + Export the status as an enumerated value rather than a string + Release fwupd 0.1.1- Initial package.  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq1.5.8-150300.3.5.11.5.8-150300.3.5.11.5.81.5.8 fwupd-1fwupd.hfwupdplugin.hlibfwupdfwupd-client-sync.hfwupd-client.hfwupd-common.hfwupd-deprecated.hfwupd-device.hfwupd-enums.hfwupd-error.hfwupd-plugin.hfwupd-release.hfwupd-remote.hfwupd-security-attr.hfwupd-version.hlibfwupdpluginfu-archive.hfu-bluez-device.hfu-cabinet.hfu-chunk.hfu-common-cab.hfu-common-guid.hfu-common-version.hfu-common.hfu-deprecated.hfu-device-locker.hfu-device-metadata.hfu-device.hfu-dfu-firmware.hfu-dfuse-firmware.hfu-efi-signature-list.hfu-efi-signature.hfu-efivar.hfu-firmware-common.hfu-firmware-image.hfu-firmware.hfu-fmap-firmware.hfu-hid-device.hfu-hwids.hfu-ihex-firmware.hfu-io-channel.hfu-plugin-vfuncs.hfu-plugin.hfu-quirks.hfu-security-attrs.hfu-smbios.hfu-srec-firmware.hfu-udev-device.hfu-usb-device.hfu-volume.hlibfwupd.solibfwupdplugin.sofwupd.pcfwupdplugin.pcFwupd-2.0.girFwupdPlugin-1.0.girfwupdannotation-glossary.htmlapi-index-full.htmlfwupd-FuArchive.htmlfwupd-FuDevice.htmlfwupd-FuDeviceLocker.htmlfwupd-FuDfuFirmware.htmlfwupd-FuFirmware.htmlfwupd-FuFirmwareImage.htmlfwupd-FuPlugin.htmlfwupd-FuUdevDevice.htmlfwupd-FuUsbDevice.htmlfwupd-FwupdClient.htmlfwupd-FwupdDevice.htmlfwupd-FwupdPlugin.htmlfwupd-FwupdRelease.htmlfwupd-FwupdRemote.htmlfwupd-fu-chunk.htmlfwupd-fu-common-cab.htmlfwupd-fu-common-guid.htmlfwupd-fu-common-version.htmlfwupd-fu-common.htmlfwupd-fu-device-metadata.htmlfwupd-fu-efi-signature-list.htmlfwupd-fu-efi-signature.htmlfwupd-fu-firmware-common.htmlfwupd-fu-hwids.htmlfwupd-fu-ihex-firmware.htmlfwupd-fu-io-channel.htmlfwupd-fu-mutex.htmlfwupd-fu-plugin-vfuncs.htmlfwupd-fu-quirks.htmlfwupd-fu-smbios.htmlfwupd-fu-srec-firmware.htmlfwupd-fwupd-client-sync.htmlfwupd-fwupd-enums.htmlfwupd-fwupd-error.htmlfwupd-fwupd-version.htmlfwupd.devhelp2home.pngindex.htmlintro.htmlleft-insensitive.pngleft.pnglibfwupd.htmlplugin-reference.htmlright-insensitive.pngright.pngstyle.csstutorial.htmlup-insensitive.pngup.pngfwupd.depsfwupd.vapifwupdplugin.depsfwupdplugin.vapi/usr/include//usr/include/fwupd-1//usr/include/fwupd-1/libfwupd//usr/include/fwupd-1/libfwupdplugin//usr/lib64//usr/lib64/pkgconfig//usr/share/gir-1.0//usr/share/gtk-doc/html//usr/share/gtk-doc/html/fwupd//usr/share/vala/vapi/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:24641/SUSE_SLE-15-SP3_Update/0e9319e520ef939ad798c08e5b308527-fwupd.SUSE_SLE-15-SP3_Updatecpioxz5x86_64-suse-linux    directoryC source, ASCII textC source, UTF-8 Unicode textpkgconfig fileXML 1.0 document, ASCII textHTML document, UTF-8 Unicode textHTML document, UTF-8 Unicode text, with very long linesXML 1.0 document, UTF-8 Unicode textPNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedHTML document, ASCII textassembler source, ASCII textASCII textC++ source, ASCII textPRR R R RRRPRR R RR RRRRRRRR utf-8a8913a0c136e0dcdb4f035c48dd61826b577d181d76722e0960a5ad2f91cc323?@7zXZ !t/Q] crt:bLL Axya8GQmLpe,y@{ 2` }Ce𧭒8fv\Ȧ5m`\}F4_Q9F5H-Ox6a*Lb0bɛӤ l[HxkS-5(zM(;&㥨Рb:<,4/JrCͶ?z}1+xtʩ8TTg!L蠖 :##,jm IsPqQ3T8v:x-"`Z[96j"n1`N "M^Ek_=$K/= t)Bk/N6K P0:4d3.%bTы'+3^yk1E^@5tXTuXJv݌l(k_I!ZO7mrb F|ikp 9vS# N3&Y4s!E̮@r5}Ryjya\~G$3i:PƏԈh/W@ #q;4E 7=K]NŚtvfx >V2*JCB9&"E(>aZ!>S! !QA۩`o]||ٯ Y"/WU\\so͑YU1VVGU@x%;`·y,up7ژSȖM?O@{CF>} +mJ4܊j4B(upQ+ (rYFt%s_ r]J UG]Уٌ* ,DB s9I۝tpbQuj q TDX艅39TX$ބ 끰(jta _leD0`8|f"O4Ro%BT|1)T> P5ۃC+r>H+g|CBy:ǻ&U,ΪW;ͱJI;Uޱi}/jN_<> vd[1 ˾Z$C2}u 7s (,ۛF5I #uHrYmu)6b U#rE]BUimeMeH=rrE*Bz6ESBFP>Ô3][ya>G#BM )(y2?Owz(i1`q?m'G2Y;xQf`"%rLt]drb5@RoǹJR Rai;% gή`BiLMs,Iai=EEm`lgi~xJDCPc |I~v; T4^*! ?ovvd15CЕۆP^jF?W+Fi֙YҀ))q=g'w[gӓ~O7B/S8e+Y{/0zMAgV i1?5DιbXl[bV8J;|_+/pn+my׾6/5Zya+epiC֍Tb.lRb %OE=?U`7ILu, ENSg$I#&×jSRo+o 9l5D* 'R|lN-.dC79Ғ XP17ίi@"sQt낥r|ToÆ[](>3sA'}8BO񢹸sbrWЛ]r(*W:@Uږ8jmcRc^fQh5f!D6hikGXiiY- UIlP 4^>#[#4RWp#F/e 4:S0Wl^wf"o>[C\m?\q6k a _(k$"Wu2pN$9E++ވ!ҭ~ َ[#ܞeG;#E`YCA؟t C=~6`j2҃g(zګ<7YAz[賩eTO"rdɰjDhPv6}–tSa\ц_4ot%.-1n)P@7Ac`Ni"_[:=m٠Cv 0L.\jWrNx`&`38g4p1¯aVP<5vl-Nl8=mmH"̢7m8Kf?c4{cy965 $ ;h4\ܻ.JhZy0 &Am>뢏H}S} |Q{jJAi%$#Ҧ1䫦9a{% opG @+v="Ц5e3>hpq^_SYDʿyKl~3jt&¦%ΦqPp 0@, wCyybSȊA8U}E:Ή`J QI}J# WKh|k?bB5!_'!FxsyR_K!q<ᗓyXmRj#H.y[Yr (YYn?mߔs}t<$~B Qߠ~#7o ]%ˌ)tpA#<]$gvyzHeHM5h\Af{}dZ'HGTFչ`_szx]6`e{Z3_Gq@pK1sqU(*'LAa`]D% ?=|"z 5 ZHDaz>L:dd8BDlm5UZ;[YP_ Lx\_L{U,mJqL[~f)<*[x$nm z(BC$R0zrŭ%l+lb$>h] |9g lf%{*Rw˟՝xI M`R5{]4XK ؠvMΏDp\3ߌ?資$ wnr]l٬'uj2{31݈Z)cb$x-.`"enʆOjBYR2 U/n:q _c>++,xc@NxG+eZƝ4 Eu#4ЕX$q?UިfPT@/5dYG/HfAQ[)pC36KTR Jwz0SK P3z6-'O!X)V?W P9KoA7\Ea'Bژ -n s+Ǝ@<e#=>Nr<V"@P?b-o eQ`Q{'>}}G4'Ӕ" VwYی` Z["7KMdHNֹ̊;\az`c+ S{H" NB@n!p%p~niMjmcFfJ7ljR=դ,yS*yL bZwԂ?~rZQߤ6R4p|suz9@-GVp<z͛5^15ς{C-t(= %WEc!FXL3ng !GڹخRiP9w\c]VNѦ0SQ_8p2Ox\BD0]/ e;ZvF6JbG-<W@.\Ԥ'/ᗄ&b Q[Rgnq7 yuw~ˢH`2}G|М4M+L}|9ls2~SZꭲed1c+ P51y&gD"rH=rҖXtnvP)q6j\ |ߢt1`7<qLUݙZRX1u-h o @Z~kHϽaf6H.V'JOMve֭7l|Nn ͼxH׋t/WynME~Fs\xC rb 2fl mQLf"#8_1?OkIVjRP>,o/)@M0]p픳s3u3I?xe;Y:a " `V>@xjفb3,@ǔpyP:4SO$ /%Ϙ.Pw{ K{&>fz6R-^hu$d4Ֆ8]9ݗzޗ[S(,WRt(G&Ca\>%L2Ca`~C7٥4@QN8Aq`߶2Qx?aq`yqd$'oF!kc5Q@/NХeLM8ClKy^z&`qN&ݹ[yH0Teh;@1K`(T:b@'pz{(r~L%e1/aDJ6DR;['PWa?)_ ŀvPEJbi=ujҰwvS0 =D==m>=@Us!'UFٙHkO6&0r8year5VMXPتo|)UѕbivEA @T nW79@C5#ĊԆ_nI3^3~-Lx]'w'A>WB@eC훇񛽵umݵ_6լqw`+ !k§$ekn\Cce]Y$Y Rc ^Nboen4!݋]eA9S Vv.ɇ]c..P(Pݳ>-h,?svpvjԳwr!#xh9˳YukH08&tlM]/rI#/D<#SU V7:Xy]C#!$ h,[d-[]eCY%6l<|M)*8z\bɷ@Z!rCN (2lkdjĞ^QJDr/^+BtE Huy{爑6S qVP4-dd:3)ʴ]gnKZY/ϖXu iP9}̾}~{^7S^NsROB:cYڿ$n(l3~"dի`g^rmg֖Md BMy(Bw>\Qs( Ռ_kIF][rkEiҭk yBI֟͑zCB1^JzrX|pME͕6zH\+ r2z1=Ⱥ2G8pJȟC6n;. =&~ܟ DI!;'ȾA bVX<ʗ>pCƟB*n9 ,k2}ƌ6>g{_䱦?IYz VKO~Iy\d;@oۅ~zG'X ʇi%a=jǟΊֵC=Ph(^:fG)a.!^Xv;CliXkGrQx'iOWz^L'4D!ۭi'r5Y&tʯ;?A?)E&6c/=ˀ xH!8^0_}fΝoU;oA&@nS&p"HƱj*I(p!&$54IdN t/ԶLqѧۍf*XbuuNV{6~ԶFsQZ%T?wG2 zl~7*C&/20<{8:&(*b='ikYQ9TW%_EUEVU$B eu > >==RԨ:)u l t"8xeD".T<1NJ>=jaodug] 4xt7KѴl č~ D ]Ʋ?/ KC=B%}'sv!uf%Bu(4Y# Db!%/hqTd$NձrJ1% <tuxs\9&[u%_ƭ=**B"3+/6Hǘ*ɦeP)MdO hXmIZ'B͉TUh\I6W7$ 'ZR772YU QUFٻ\ﮄӬamI-dQ!#wJ|J]":X؇sD=X ǛxjX&ېɥ:[ϯ>iy K!ʴnxz|=WMIO·b xpiPN݁ FD2\(<@ ar,w2px(uW&b~$3+w"bRU1*P ;QۘT >d.fWi6ܟ"d"" {cP'Rgq&/=X?e'KﷺKQ:T}xv A<|Yb4_YOspb}]~3[qy_# "xʗ)^~jXƵEԮs-]pS܎>X&u Wt9_'$ڸOqF2 +6P7edi3. p6%lo6,G܁Y@P ~q,z RmѬh'䉣l`wLk(Jd쑼%~ ?hY)җjtDK0HV4{ҙ p6mq8]|sZMz5 ybf|9p 2 fJ^#jƘ&Xi6.)ˠ6H&Ke<ԜNg4\[Aq$>u:q ]O:?7]B;\|ui"N ةX{B23j1HmPHEbdS"6RAŊuUV3Em~ [+b$Tnno0R)0: 2Ǝh'rZ.% sڵ"2^-RnP0KitBXQǘKG٢ i7YPG#~ĨoF9~07'pcŲ oG\bWsUd" !4T | PJ@O6Kjߞ26"gSבoDKFgm0 EQ'So}Z`a~^SWfyq̗֔"nYf:=.v|fP߆;q#2)1NG!}7LDۺ3;SwOC1~&RtKKy|VSot&tҌCDg_n+"%O4: c=G VQn >zϻ4}DE9yd]Φt}U1^9oY"u2cca^df%MQ#{KJuk/Մ @a[sGNS%dֆd+KfA "WZ͎hџRƇ C$$yJp߇@&3Utӈ/@ج Sk9 zFV[$=2uݴ㇢%ƍs!-G|G~|NNJ:f1\ B"! #Cx]p_1FZj8H; S{>kp\|q12~ ή7tǴP>ϕ(# `)/EvP8C2O 8xK@'$q艆09(@gHo" ]Qq)~I/|F!E] 3h=Zj2u30j.ɍ{ӷ҃*@ucJ Qi(q^&ؐu"B.NC d`Fp&J)+CnFB>Wf8@0OP D~"cŤ"/%gi,_ubj7ޞ.MFSAYA>2)9݆Fv &nŧXn0o˕{S6ϖ[)ZO$zw 5 ; f-N˶_-6r}%ʆ%#Jz%L]Q0%\q!cOyp._Oۣ@g 0]WɀAַ7i|-'xϿf/\mstv?CѓR G.SIYէIYN7ҢRvq|΀c_Bg q;4 r-u _.m2BY#v]rrġw9A6xD-I\0<6}&|u8,9=t>0~Bĵb:823uɄ<0׈ry%(D!+i-M0Ufǀ\G*?"S Wݴ'VC;P[uMNC1褃ڒE"p)[_[7]h$X!|~7[4,aCK.FGJN[ wr" - 8)]H7=qUδf eG{^39ݰ%9!r1#w%WZu=C7pey N֗t,8$R[e3?o9`}4tp}e8!颛FykMSt)סPʝӘm-8N'{`U]ҧ&Af} * nzBMJZ!{D.BL.2mL8K S!R#E_n^! H8k*1=4GЪk838t`p꧸@zH')\w2'V*_, we+u! !O`7E24 nxx }Cn٦_ǸdnfJCC;1ܾZOJu?_*R/.ԚbpX)K#n}peY6(V갅FZ_0pm1 )%,}##oWQZAۿ4ȥ Ä8X'E"Rh#o2AVl?`)d4%˕XxZ GB#sa8d0\ᢜ f_Ǩlk<8@UeU&XIuSzxד.B!m^r|'UYIx._D.zY r GeNsF|6,E|{beW"Q(t(V44kbM.xwG*"ZDx .- ~ aʅwX|ϗ$}l :dk\K`Yq,)}SG.~ )[똊qZo<̴yuȏP6B# ̸wBZ=z:@g;X1qK?rFEp3UPU?n%H3JQwe#Kbh8ByԪۮFP= 3jlT&v֦/@9^t!aMtMC}0dv}2Eok@1>5 J+#v6r. }H˶4D:QM ^/ȤOH?Vli'Hy[gcP&eɃv"h@XW,PoZHn;c%톩-f36$ꉎfRَ,frb K3vtg(rV>KwdiLPE Ref/51I7O3-ɩ0 yv ڻ3`M#ȁ̷e^3_A|;gq?tF/1y0O@ȺQVE.w6? mk|6+8~J\w ܺWmi?1Wm~j/b"P1׼YXB>͝YoQ́#s8x̩+n%YOm~UT6~u'Wki;|EV}wf\u~=}fFH*ǧpS`//I[m:o~gڬVvĤƹA*3@;"2InɭG`,x߲;ԺF?J6=<s]`IO]Xo ~)\DoK<noM;DPhͧۑ i)xR޶NG%)3|zzNlr|RX U-.}ӄ_8ktmd bGrdƍG/2Qܨ0NPa[T[_5lQ^&vfqdITE܏4~N{y\4&ɛt].-5}IxPvF*\g|ˏD& 6Pe Ȯ.-ʪ{W(z9lBloc;!P4 ߴ0w_fLܾ%*1(0kPXD80Q;ӻvYՍJ5vTӞڃY{U8wi9ߒֻo媳md}$A*!eˀ"x-MoӅ?=(U3ގcb9GbY؁!kQɢ=ccҢZ<L&*J3l(cbee48YGo5`?h\*I3i$!2]GbO1-Ps&wfUAzLhN.C?#+ƸxK]KHsu8lFqը%x}| y .&OP3:oBSdemGՈd6;7(ARTJ+ө rpI}'"xI|+ԽL"$>g[ Cys]$.ouc` O"4"cJvǯ$0u #?/ՠrQIiTVrtͫG1!M IY ϠYnIKO`c&"P${(WYøIKJ6uoy|p|ʪ WU3I=Biņ k%(r47r)=?|;zi ӘI &U&5j9;&fVzJENFHT2':!ڢ\NZX0p#Nƚ~&Ѯ&)l4k-Z#})eY=.<BO ?IJa@3J!K;!͝)=AӞS3y\-4xyd7 iD5U+snpƱM ֐S4Ӿ^bz9kf+ W):C]m?ff;a]Qd_+DBP먋_)$+.7e*ۣKkm,{T}zhqмkWU'_]PB\"Y>y,``zX =e3ФE.MR>H@WsVא VWrR~D|rV>\ R0cP HAsO Y"lN93?Mh~Ƹ"ўmY.騙Y!Qc  - VVJwPh8"v.[%'QHs6,X5>8B[f̧&߶!1Xʔ!he=iVobqebF[EއCk/ PS8p'"W^nm:D6U'z T :^ȖHL{,'<=$xA&Yؓ'l\F(0e.8ؕqɂ}>0YJLtgAD\Ir^4OMZLrʝXfY{M\g^FSNu!%u8"Aptp( ,kBϰhobY"m:}n08@6,Ax(}tG$.p.=i~-Hܥ7'guJ}( Ks ss1D?o6x) DINquq/vp}|.~-h{cEMQ4 %|OVDΊCnJXƫz2rs@wTo<̵krqRiI鸐~1'+#wRytZ xjXeE:CjHk2Px=bW7?G :- hP@7b^8uuWI% NamL Rb?3ƉHJ^Ät:XZ1C=JMܧK?+MySjl)܀2ʣy"gJ.yw./>ԥ`/5rVsu)]KG sC/qcO]! ls}nsX5@-笾IOD"eKLԈxTِ :t-qAѭK֚KJO}2saPDd'cнVcޫ5Ku.x穵,2Jks"A[`OSsS@s] E=<}3x\ )_'V_3{2[cf2NhoH #6*J"`iOg(lx{.ڭfܬCqIG']WӝoX71迥)Yu0-0)eNJ*A ZٽT:}j-=Ԋ搖!]ZitoqWN.4*D$sܕT:w'Ss_+O#41PP6}ύ;j9k1NߓYU>'fȾp F( zLLR"W,le}ޢr*&V9*N(ulμGA%.ڜ79~~}M8ϣ nU㍁AC2ޘ Zr:_6؄hųH?⁷!rZgÚB/U@!Z,Sթ[E)dGSky߆ ݊0+K5Q ]+%?ОdeQS1kymQc7;&%u:_M!Uq;(+P $Zff{ݢF;mX\e%qkU#o~}QjaPsO>vTJ**NL\5o ס~ėa:eHxq+gKY-ZT1nB?3Vsu#E4㥂4}mz͡e"z>'h>%tjA"r)՞‚L~"|?Fk|ffQKHU[hUMkEw+aN$=I RG+{V7{7gq4KΖw:R .&09@>&`[D'$ E譶sPUR|QuvcNS1j&-*|NѵdfH^z;?+11NZ}'-ZqLbWdO*Nzg#nߘȱQрzӨUD8V,;vp:" \©ǩso鎛3rC\yzZBwot @{GZ\iٞ*Stb=Y1dMĬ́}Gۦ5pjtVg؋4-S1!!(JTS I} B3vMO-B!5{\)Bo/]O: pf,rtȎZ^ ?>1٘mG=dn}!wjghAX.fiMFTbٙNRB#;-Aag[1ܓ&%(]mx^QDd=88ABRmY(kЁRiЕ#֞usm8/|HScn:YUL!E$ DOPtHPkwGgopE]Qsf1O ˏ9؜ fXE9)1lmFNt@`;Iw?%_G$a:хߩ](iFx߱ZRp G;A0ICrfR7tO?m b-/Ev:Onֿ~sHfxD&b\VCU`S/ N^DR8X] [ZјH,?օ{w\RnuF=pT{y>vԨ^y|5"\1&:n{5S L!}CMT!EV7:; 4eL0jYx#^ 'v^.=&b3%x.zt!XXmg+P!^7'yNBTVgY3˼ux rv$y_B|^ .J%R,WRS܅00q9@ɫ(†ʖY nG'o!BB+~׺~G 2j:=H7DVE}y;YV}D(+owe>u+x@LW{5ҔovY}.s`}mG_l\h?0 >[^8LJ#@%o"_3Gzڮj ni5U$E"OFwhȳ_eq_өqփ50ZD?VE @. QimȞ3nӋAC m?k9ۊŢ'?v0`M"^J+ō+|.φ UZk1!#9BuGQz4 %(1iТ]+Xp*f ^#()Z /v|s@ K2,v'<IΩxa>(@ ,S1Cu?J{-2簒>mT(d$nfŲWx6&\ z.]. * cn|9)>#4f] 68%Xs`$7&68)Fl8a!EB_kމh@B.*.PBxFT}';8?|r?=*9ܔjnTͱM䖲 =6WxG\dPwdsh\@C[oή*e.4/а+Kè;c =؇QS(ĦFͲJ#j1%]Bx*]</O?0qoddKf US\ʤ}t ԄPKPfxz{^R/1ӏ8pә,P$͵k~)эkD۰;1xj ԻBD#"ń=MƞSMZd<ֿ e3[L__oKDX^^ijlz -->Gx?ػog)68NvmܩEt6NT _ڱDr+0o0HJoڄeC!S,*XIZ}]Kk. UF%dB*^'7Tc+Qt=]_2"=0Pn-](|TG2({S0=۩8JUv;/dJ7S鋒\챕 LM鞫 [Py2?(r"ѝ}1`9zLбT$cɓ>!LJWѸ Q.ck<4,yш1zGOڟtp!=!S4qXg/+ڿ΅8K :QDOަZ+l!D@l,yJ Gv@ޒk.Z"&Yᡟ+z+0FV?؂i}~K}z2ɒ旖+<c{E)Ed0Ê|L!elW9jفDAa&˜T\~qG#_isaE?aKF'.gKQkC[}}Wqdg"t`&^`M _{RvZPN{{:T8/,bdRԌYf6(+WD.M#~%YK9\f0qooM-+WjߍܻŞڪӑVNא2jhSzAGM3hǔY,yt?_ YJ<}̦&XY=)6f #H|"#oڔkf%XL?Ʒ_ȼD7B;è?&g\ aY _j{֔u< ]0ڧ[R<h BҺ~'\1ڲ,وZ{=LLtnBzHVn!,v煴F+yO pr:x1]+o*7s/ ]Zr ceAMۗ, e~[bz[,8 :mFi 7n_ST%Rk dێK%'.29'J;F澶E!3QT%vd`je~xt{SS>ݲmŦb;߼.\@D-#SnDe X=^Co |qc{F-4IIHp̟xYUaY{{ ,#ApPV6.(bh/|>/AGJ!scyz dvU_{!;sQ7QlЀ9/\vY}r{CUwET}$lQw W^s[瑠i_纤f|湕94ZA屄o 8nԜoXh ڌ 1gg Dj RaKmum˫!gZ2V' anq3:-F0`2R[>ڥC;Dcl5?)VyWԮ"DITd|9 c/1fޢBYEwy&wm7,WP5/hg^nӂ^iȟ~/Tnt5қسh)%{\½cnK{oW'3M~eO{i$%U8l o+hN!Բq9A1T^`Lߣ2>,'xG=O;!<=|%SzR;UJb PR mi\v#?8:{r."Vp b'ږ(;[hiU|uLy= *~q? tl@NvS'TH=aꩂKWn[w6s>0sZgdA.(U~B&}L4@\JY35Qn)uk]v+ʎj,& )RoY⑘V"hS uZ󶻉rd#%qevF@r\W%rGpե\h%p٘k8=}dnb{"+iCi;9#%l)1<˦L,7\o_!a~C_fi%hGmE;>ׂZ8SNrg,vzȭavvaYÇ{E:7 &:@M!n]0mlG;Ky]I{|T(]Ms敞t1eg߷lb4A ``1Y$b.o0q_9yS0R5A t˩z@jNm^m`@N8ĉ@&ӜR ѱE|v`U<38J O;y/Jlᕵ6ALQ:_Ճm[*zU]?̓) /-Z &؍>dFh7%g/!؈/sa}`i L)s]s=nmL72ѿd?@iu( fKh…(E.B[3UZ db>nEo-q(⼂OQYc_ Q#S vU C$CTz FФe dx<|PA;4T7BY? Qtx;][b :roS,͖.8)"jr]Ft J[Ad \KzZoN1^Piz I$,[I}1?&0Hopx؜JjD`+8U uC`rX5mN>#7]cs҇[B6.3hZ0J5 PfOzF˕JK 3/^}gʩ;M~PàT%U5{IZʋF"l\2xINie:se(un%صLx_  Y$uun\mPKoV,8#>f<ko7J3YaFv}%HriHtGH&:?UnDCayG`u:̔by4<h/`}BZ0AqRlХٸ}qPȴmDmwbQbB/In5~LJ-}vxB>2wQ.<qLnJ QCT;(9CWoe-*MH-M"G`! =P¥i- u~a޿P_D¯!]̵ȃwYỲÌUnk-bPvJ!^}+4pI 6;ݪj+wUPkuu/!qqWM"=*˦v#9*X1;%]$>n')NM$ȑU?HHitjß-a &<ٺ(ʽwN}`i!8V[/` ˒Xp c,#c|DT~hQ.$lKۏLp\JQ\]C0MT)Z鋶3U%i#)N=` RbEِОdΓŶxf@QQ\f>BtABCDMX8\в˹ SeV{=8htg! d88\34լ[<;ip`AqבKeVJcs/lQ&RAe4G٣~z1 K>^ or{%,@YL}`D::k0 =f T x⡕L#‡dJB\@Ҳ6${|wa26{Lr K)VwW"ngf"Jz )s=ےW~+8ߖQ~=Tx޹YL2ʯ,*<wV(fy$Zw՝m].^E9T5BlhFƱaxc{HGZ; AyKot"wuȢg>y AFjqŀ-YᢌI$z'?.p\f[:*?T&0(k՟0o'A9$Á[?K]F*HO68 > Aʻue݃d;ċk,, ]l)NK/biiMW*?D%>T5X;O$F2JѲ>U=0qUӟՓUc洛K+މu8o~XZUalLNg׮"9&ZnF֤k/tAjjlzVL߮KFPEA'oC3}s\t$ G|yNr*%LVZ仆iby*$( qɆ5TRӟyw [jZX|ewtTR2YsyS>ҵ-fAw~爡].c$z˚ً&*w87X3R\hQ|Q{Pi 5HiWŴ|; #W]PhLchy{a2EK'`5v ?]l7r<:P(1 u&ZVZz,IYfØZEyfC*|m|QU3QR0>/,{ěǶiJv`4H0)wNq4XύZ)E"488e6oX_l`` `\%K4ܸ MzI*,SG櫋R@XhW*9Ё~lNͲL_0 ,?,-;@#DhAsO9 sH)`~D0`z:۽ze0,6I #W}GGP(MeJ0-g )ҩI:{{`WֺmTրo:MvYB.Bs9/{N6ߡ; ޝpcl'[_Ccd R 1w%H us ,Baz7DSIgjqnZ> I큑f540d;-8k~ŦQ/qԃ(E1bX ^J03(U^>S}5nn_*0zj%D3Ur:/t-7l$dBW?y^YqH2-#[JW,j#ZSJ7P_b':@p$gjg67e#MeN٘cuJ+*{xiޯ"UWN6Jj\_4J#]cD'kb1ё }.4yEE;!v0]!jC菙wiiv3 hx&Ac.!]3ǦW Їx <8mhqPs}^iS,PUC'4xv#бl|$5F*r;r3Atq݆G2s1hl5#@t9 xwv,_hV4 X4sA]HMapM^ Iָؕt:Gj6#x. '-#T IS#CJۙ# [TAOW`F3 *~| TYfs.]`Z˲Hg;vox[cËA'pN 3]֤;]|H{mo:?A8@"gm2l-ڂvs̨ k*^t q,ٟaV<$9 |t! 7OwbPF*~"yQێU:ne!;D^7m4)U-܂8B'fa;n$ 6:^J199Q$:xPQe$|q7559`£orV u%Vu{ ,\MG.֋aF1DsXucUhf,uku7\'6<UT$4>^ Οņ_d{TWmPBѽ @ʠ%B30dQI1E'#ʤ5]?kn5I"4p:ꇃWx;~_Jh  9).aQϠm*R5.rW zATxڮ|ɐavDҍNrܿ*т^*BʑCݦiONԄb#bU[bP>/ݑb4M(Xq%nIج]AhMlzS:`4ſLo.EBK[qh6ۂ*=iBԅC=Ȧ>(PPmw5n_Y[K'ߚGuWs\:Zj_ߩk@9 $&Ŗ ˄^xoc @C_v$r]vyt=qn,*a#Q Y@II!B_f"P$%F.|wFpY°h3Jch92Zk,#Bɤ `o3VJ`7gEwzA++}>RpZ`/mQjaNEE@8LD ;#gWqȋyP|2Y +"[4 W~:ӽ/TȟLo <0O$~c 4`ɖI;D ZGCEefo{J\'UTn6Z٨:"r҈45ZHY8]&qf2W1rxΪI7Wosg}]s1FI*JNR^4̲ѲA8qdo͢DV`ǵoB\G8MN5S-bwW5:8z"y7rgKϙZk΅BȀؼڔ٪ut( :PF*lZ *°\Oq1w/ЭgwmΫٶ/O޷T.0άLA41>dɱvLeApEJ= CBμd(Q‡!TLQ E$nΊ\bgRTasVAm?q"ߩd"fG *':#7/-[uXE$)3KhWr"n{WcZy[thFb՞m\+M:e(+tCŘOM3p.ߣeX\/x%!Yީݥr bFw 6ЈH5NBn-Zbu5Iw 5>k\;,_td?xDŽj_5M>~rU`G'%{U O ,+|?Yov It6ء;+8+nI[iًmDAZ -GύwC&~Я9+a^BBw'@f>7xS>Ӛ[q3t.r@.ǂzȫ]c2tVR  #gsZVMNwV00#I YfU\8t,Lr|*6DjA[DS0Fe6u4m}| ek-\J#ܲr9xMK2Y6*4g<i CɘZ1l.|:TEFxUoM71ϦcYCtԖD~c1΄iwW=*eX7)17f0;oL7}sT%Pool8T!("v;$'`݄M@PyڛzN b=,ԇ2NEUX"5 >f Ma [-y<?^>a'fǶUV̵3rPgSf\Yy@,o`fw%M߯Ux.g\FyZs "<pZ$G%@)"/ɝXDQ)<9iVXvyhk0Bz-+X:v=la$xwmjZq%1PB-8[-DLʞPd#=dC%_71+:w %E7A%'4/4"^ofgxs dO7j:#sdgH `K Ic3v{sZn,?$| Jfv]`=;j|^TࢆRg/Pzq''S@M n ޷SI gXRPzGJA3v{,z#UHJ9y| ,Hw:ǻo}fc7 >lѱ8Ds&w+rXIC*%qy˔?'^7#lKmZ@~px+G) ^CMk .p~B'Y}JN^jZ' €\)f4zL睡A79WacB 9RIS./W[iH'^YDFϷ y1;{$`hD(m꼕I+IJβ'pb90|ݤ)3 gB;@c֒07E) $nu\ N]Ǖyp#7mʿ~*~TŃfխsXCo(=㉱z3 FK,^?uKa/g4OwH-[{NA$5hjkw}3'JyM1m{{Ѭ']Jѳ>ԃW/D헧GQ%cQ x|#%]_5d5 "G 6/⁀xtѲE"g}CaVԈìlGJqp8n5B~`^tP 䑪ÑlGǪ8]W%}ː; &P);o,=\F1!6~ ~`4fBGόڳ*.7o^mЎAbV,o>QVYsk(](q Zx&_s8bhS[/Xֲs}ѱ/EGmdWJ6gÂܘ9G9LKOs.5}^[T2KC/W%1 Ú۳G2`&5hFA ^Ty  &+5&.F'PI۟8_ڷӊS/:ؓA .]Sco] I}5 #vqpB,_P'D8a>WAvt3hv[*R@ad3 sx9Ĉ,۳|X/UW.ջx'ǏDJymB0Z_"*<ҥ +:g,ƞMGȴ~d5 k9#c3Х^Йã,ʾ\1uw,fL@L3m |ܢufPsId QvLor7ڼN8׀ 1yg/`̢o:t_1'Kq_.C =f;MU=Z߿1um?1 ,]I*a{0r>zsPe'bCd]Ugs' Vǰ|nQbE)TAпm!j7Lao;#>iVTxj9Հ`qoqNjq[qJF:703coi:߆O =u'|d@0ohJè^97 %ӢLI7_"޳(c[JI`+Vѱk Nv@ގ-EiV'9ZZc 0 5,YS^%œa2e|񷙏; p8lB@钖 ٹL\]r*Sobh,u+Y̖ oyחlH `.{൞Fw[9c0{}&ڻ+3yT xxL\JF\4 tX;~}q4eΕIN1Qi(ui%YyoF JSbarϗ أ2JĢAUwzHliXbLˈeYS-pln'$ C@0m9X PaҹKdߠSv?[`{5F]Ƨy^*G_iļLΘ4NׁSiļ:IW{mΛyHh6e~:[du9#-0W7ynپt o52F8y6f@BH[ϱ)Pz(GK TDϢȠ2Zs'Q\؀=3opX"40 vcw^h/vŧ,K>7@]'EFTEie #JxINXq{ܷ\\#]nc'Ohw5c+?NűU]I%\X,jG$[](D0:&C} X-}*jnқC g⏤b2ΤlbM2PwґѐD($vjŘ2( l$-FtV>t#Gm8#^ y%OҕdiȰ|v~er [+ zF6O2rIpZRCrqRt4Dp+}Y{Jtne Pn/v N \ l_[7? ^wX J Qy9)5V҂HX,h@>scFlvzˮOOZ-3P9{ɳ 0sjup\ 3y~lغA0-GCPx6@uH,z՗-?NݢZ-O%4VM\0> xE7?eڤB:5wpC(?Q.d@i,ʉ#a&v?)*8idLϴsњy!* w2ɹ].wD98oOŁQEtfE^\~zQ,pCUD+UlɁ71G.UN)-<DTa+^d  O?hisIge_?{R`>~AbN="_`%7qGk\Kq3/iJIY7{ߊb`b{ka-tYVQ- `Zppiob:oT+qAh5jl֩Lч >Y88!RuwZHG"fgBjcvl;ςNy #Q B[u$a©u"nv4Q5D&%04p}ˎ'?9ǝ9GWk;m"ɻ,yF֯S~*&]sZ3ړ1 9i\ݗqJ3𶺧]opsb^U.4]Dp;ZTnGߘQu+q \ 8y.“Pm:Df,}DqiͳˮPbұ+/ ~HO2J5IXԝ+ "xs93цxHruw-ٗB^%l|p߃@/}4P0rŹ`+bo2\[HǞ@W#u0dD;]YxQuRvAj'1g jG̷p ;8<^Ochohj9lY2*U[Z rx!9kJfS(6\G5OFK[f/]R?-*l*POWBSFED"wOҿ/\Ev]*﫩'O4@&cG EPu{Xo'Ϲu:ցZ:!k6y9hbW>f,4vˎ57gry< ZQDml߳ Z1JsYJ7 ~| ?,g$/3צ"2q0C"05i2B36]ʖ+52߿[9;.{< > *=RDE]L? p7Ҭ!ӯm Eg_-c?w1vH9lvW|,S_0.ށn/y2_S:ޝߝF3ǽ7~2^{1oiubI$Ί6r*f>ϲU"J;`1ې8gn`35?p 75$jS I0,3ݻg*UbP LϧЪz*JV5ި8CgH˄*E2=t6dv!|_ص:hoݑCviq\Lkȱ_Ċ"6V7n-mwsqgL9X:X S$msG8X冥(/>+ Bz-6?BЖ(4{8ڋ^Cr/+d]BCLa8p{R`31[R&Ұ㏹m(/D HVҾuuT\~Pb)1@w ''ldl٪1.[NԪ@CˊMᚓ8D:}{R $o ;q 7L87#?l)tŗ^|X7%sqkw s'7oe8 *R\f!B'+3@bvTZ)ygmGW &*gxh#ԀmԑAGA0Q䱛 2K bm rwx+8Cq9pGi*A#7!ya`HY:`l.c=٣ϪJx)nPQn+]Z6Vq[YXSgnœe;!g {_!_I%BUՋ[u(h<M3֠n3YW5':3 `u]gA`QJ w5h#JqBx2nߛ*ǣU9yA]S$D Z"$jƁ-(6 Ỵ,Qgc >%FUD.9Αm V:50yrQυFO˗18VOs)%(*ޒ{wx2Y*XSWUzR%Bdێcpg5RSԽi 3l#·"ta-DIkO<ߣ M.k3O}bָa[7Od 0lx6{qfv3}iY}?!Ly Os1 ڊ4Ư\'ԍ%*HǼGRGjR=Ar)yNtG#TM([1a:Ͻ/OՍΫ7(>kDjknnG-|bxhF2wӝJet+$eK+f(1i1Bݾ~6Pi_֮ XZLFL/}V[IyGz;1XL|2IO8.v#}hjn(n(1gaadz/@v77"hUsMoНy^F`_yScե&3Z3+G彺;HKUQ$1C]LzRrB3A_ժR W+Ea N%ϡ'dA <@ɽ_[)3UlxĀD^GXX)llO_:)I(wcV8$G叻Z=qe88xP}1_ޅm#Do݁HeHZ H&oMY}Y -Gz]2VePA\". b6$Hxb_e?VHr}7Sr0N~BMS2$\?;P2**;)eLlJZ'qldhg{YwlS\ yvzԱAXP=B&VYw(VF .ZNG ǘf>]鰆@'CȕI_T+ӽٞ=Ԭ"U/ה 0; !^Dx%0/U ;QJH j,αu6 ۡ`WJeަZϴPJP¯#675fkyyskŁrj{$ \UGhEJo%ԻTjPۈc8EM]A?V0uj.ڤPWk85z7C* C> ]rP8hE;[8q)=|>n iY95<|KYzm46Hx[$-6UiGKM)"]y2'T щ`OloLȕ̡vn#E$5 8Sμ*Qpx nDNCSQدtҺo k)Kcܓ {%Dhm@y mJ`<\NR!jpg.Ot3yfNi,I;R()DF\[`$jb#SC 9#JJ1,\MA(͍a~Sٍev܁L޲k}ӔT*΄i*}=:j_Շt`?g|Ȑkmc߁d/T32 E*cIWgrJׅ/H>H˴QJMMK s/5:7vA90iaBsVXxc} p{[hW.k~mߙI"_/gNh4l~I8^rxQ'xOfquO*9wJ2"V up_hS%Qif(FAs *g.a729~q>384X;>|9B=ܕUStUh3p]&K31@7/č7iBJ> B>nm 2 ;g"ma>nsGlZ;|R,젙},w!!nֻ '00dPڦA/PmjNq1XWfD"FA@VRo ^_O.r"1xe[u{_ X{ s.! H(G#b&>4̩'^IGqe5ɖU|C2!"Nnx%V@PI]ll0fEF)Z|uq JXgJw FA[`'+s(KEO_Sմ8P.Ѯy"k -w֙]0eZ u YOcm$ECGdz!|=)g!Ln4qsh_73 ];7ŞZrQH<}JvţyaWjxػ媯-537{Z.c(tZV-ax/䘚N 'x P]8Z] )훥2q~vU*x lVͥS>.5rp:Q#/E @5 @:'fgsl9{?%Va40)R&$ݣ_4>g@rZ:6{=Bm8֥8}CNFKM<œvIxH,°>B9{Y=&:ۚ\BY&2a7@c*GH{,3jK2}x-o@k9fY<D|spI@-.6,zx^7z&uy{B[_"89pz?d:@{NJW!HPb\i;AF"x*E*ꖿ[KUPb,Aw~6iVcnP KuX}xPF: /0_Ol7]"WS#RlmN>Iw!H wh"^Nw~Jݥoہ10,jG!~{1&'NMH'Ȝ|MO<=0KnxkmD xڐJﰎ%z9??^&OH40pfLWJڠESH W,c1 2l˜Grgb;FExM'\܃ RI{LաR c(oXd\РMZO t\|ہ7D2r3Lk(nZSW'vVG)O@n^ (rX3T=] u4zذ`&W6֋AdP]gl[oJQU_pcguAMʼ׋ ӗ%g=,A[2#LjZihniNLEvL2r -տVR}hС6`*|Q"ktͣԿ2@0{]AUO?!yDDp]Ҹ}=d]K UMއSB{F`?`"dh&Uӊ<6;/TƑ CK%ϨS#=e]IT9+u*֑^QLVKͮKqűx2B,+a*5b˘q4(sM-gΰwpn L)H/KJkZD<&Ȝ)3Po[ H4xdk]h2A{6 Tw{/G'u8(wzٳHڸ\ke=?. k%R|Ax[z2,"-qQhbVyϡ;bERkH\d(|h[^p`]JՐP0vnB`ؔ.uA{|9L@2؜M7^mkkU~|yF^PJ XSDjA#Um \y*ϳ]=lmB3`+7;y0\>d[!&ѱꪹA!s髠 <],T'!b(ENFkih%љ-֡"N RӀM zl&U*Wj~񴺨=gSn9Ιc*GJ_tX >lQPbUcD?vYP2׭c?+ }RIc B:*m}`xj \z$ v- .]&MSlHLTP3.ʿ6Iё ~6`9ܦ`g@,-YĺY(L Dwi+qr֞ 2px =N#Zeo+;p~;#q#@ powD"Ka V<*ɘ*8+8X@Xۨѿy,?a?6q힍 Ys,qݥl*(f#Uo_#?1h{ť+/Lty|Zt6YjxМUʃն/uN Nw~ u4Yg21%82XJ:f|P*so˥و0c8/Y߉[9+?6 Î~% ==DקI>:m3)pVnJ=7 a20 찓a1o\^6 (V@r9CcIM#Coy_qrjʣh7#))xciu𯙲r CR'[Q`@ÙlG1݉Vz}:Y"(LzU6ͣ<+ǘ7!^t(!ċs[&b}>ӱL ޠFA33thCP>FsS_3@9[$1w-16*] !\dqx*/?v)v\\w Lg4hI4wӔʫo}iZ[a?>96u7.9b؊:ayGz`` 욣`k7^E 8eH O«pmKz0QngS(&;q b8CnQn:Nw&p]]nnFX{96!-tf8N|gr Q/<^T7HuVv%Zť "nYu1Ҫ:p< gUG/rH;F{Ta{뗩- >FPɛQ˴n֚QH>uǚ-{0W&D1#8{i0ώMb߫v@[j&d3^͙ 5@؛Ļ%p Ї*'쐺6}1|tԘs1+xeI"0wrw_&@ܞ0FȢK-KmIi㉥b,:'QWc^pl׈ 5SЂT#tf\Fc kfU?2T;ج~?.Xl*튆!Zlu0r2')F]z7*N()6ΫvewU@[*S+iF"Ձ&T>ò㼼PE&zJ]"%8r?*gDO}ĬM՘C2ŠmŰG> Q9^fV*q5tI |̖eswrlK-ZZmV)ͦQlb| gj>61fӴ`Ael#.Mm>%b%x7<G͑ TӉYMt/ΧIe#`W5˥!1.LSOq}.*/>",S81 i}KhEuiwH78aNz앍9ECAQ9ߦ LC&vM GNf*RfBjR?5 ASp#{9emKJ|Km(e!(!P!v} GE;NyCT# GVq$KiCNJ~~>yA  h:6{wWqӊs:=0tUKz&aÌF4[mC ЩdT'YVFȹ}E V1cXݞ(s*n!♩reDKxJau4uY0su;W/J(- SeQgB☄qM{wķEKqLtl $ot1?鑊1и,=\jJw㴴b-KFR(V8HFU=1E5O/Kߚ a L(y-5EH"o'`*.P.r jiJt Ujjw_QC;,b#cW_6GO+.mnV`!CfRp (́b('Uɥ~Tʳ`㛑Z YD'`ztE[DP1Ԃz8HyF_%lnE@ 63ʺJվ}m3WXA9)`ώЉ̰ȋ+B•-?Ԍ52JIl5rM\uT0Z1gr@)<~?!w'@ bPiSFrb1m#A9c;ir'l$뀼V9Q)|!Gf$?çQ{z=&8Kcz/dASFaP@&G{\Eam"wօQY0‘*Lj<˽,! ֫ufoXJup D?|%4euLc㡆]`*v#C?Xem @ɎFOIm.G@U8yZ&a wokLt-? cͻq;mP.: mo{5ĕ9 @'D,)#2eV#ԼΕade=t]`_826G{XKt}4zPm_9 o],< <ˈ "r}NO[N3bhQe$V 3>\*SW?<GmU"M.<zd2#?<.bܕ`n 1o;\ӆg:.ߤ5oW0NH`"}U3|MgWkسV\6$Ѝ/R/zaa͘ǙSI,G>TX qZHh!uX9䰮RKƚ"U\0cCŠG˗K7VXr 4ξ2<lY8 Fb#e}96⊱ Dw${  ~ˤo)11qNyd[m.BIgo*k//eBcXmCkFt(vFr^E>6h~Ȍ75xƽUZM+hmd"-k~,ɉ4NR>9Ve{kuEHˣL g!rD\Pmn0|x{{IYUGZ?PϗlCnu) wv4Bs떕T ՜ݔ @o=lͶkIYj߿jX}cLX6T1Com`$ uy1Ky>(x2Rufa\(^#ki"<!d34[tb 0U#!a:P6S [<]qʝ5]8\nFu#V>\E57ZCvєbMK%տE0+ ˿q !+OZ%,`9=ŹbJu%mNI-EpK`H^Dw:R[sDnowo3CN-v,DV{QӸDty>%q 1`{3r8AJkyR +{ IDxuTTϒc, z6xm7%㉠ʍ(3)5kj\t{nuk]]3Y}-Lt6iYėt k2cBQh8 v|aob>:?bWm0JٷEA.@\~VO #_ޠ`"D+q4=RpuӃĵʢ+f\ėtz|ZT 5*k 4߱.B[%3Qխ#uUf_7";NjCNN\ |,SlUxDHo61G$qt ~Eq.U(i}pZ^[{,/&E/sda6i&r?[+̜XgSxO,x  X$J :Du1.2C:v" xtA))6Yd-1Yi"Kӝ bIL,iy8܂%9BڠhCyyn Y,Խ427ࡀ' ͑}tIJ 4; 6rYuKqb$x$}Nr$gq"EklW7dHo;0$}5YЭhXֈ|SrD(1s9boK9> >ubyy0 FIovAO(1 +,o^{9ᰐ'NIR21z$b y^ YWߔut| 2J ibikD0=[Sel\ŲPЁL&8Y(!EK&j/,xa8 sup|KHK@Hb칬$ y}vJH>X2SGqp;)Ibɽj,Mu9S0{C|["wg?7hvvɢ"rV6x ;"U$ZmZJ&Ӕ Ճڌ/9*Mlj~/P3zﶆǍ34rP>jvvL֫m򉊹yi/6\9g91w)ZIP{":ņ4)ȸ:T"-S G;2d?#{W?8EJ<ư$ Ʒb4ߨTȍړ*e!5ٰ P|%JsRp(_f%E֛bM;Ҫ'*Eżj+K38QaZ\$^ 썗C岂1KdA4LX (-̜<ž2 dǘEPO*,%W?[U$ qt X 8J=|5f2v]Xΰ#tӆd5E[z"Ɗ[k{r=_x)c}9=ͫn䠵"թ2#l[`(c\` r/Q/6BԄum?7+B1ey}FD!PdI)'_Xx*X&4;m4f /.z?4&~= KL҈[TcV %e(5<3fFFidh @+{UEU\y.Ml ,C];)̉O\tBOƃƕH49SR1=ڲ_vXRXT 3?UqSvL,϶\ZB3xwfwkiSo<4se+,n߾RUWq g hA)by=[CdL?&$[ j6G9ݴS`zEZ<0i97=xr|V\ZNc_+|Sb`i4{][IHZ-2Yw:Sq}3eN*$l `mGK:뽄̥] Ͳgtx2XNJ"鼄2Q5䘓{bX`lfoC(0gs {>ִ-dk4|s{뚤N:؃'mp]wÂP+ t&]$8[rv*S : Mi7ܴc 1gҙM`OjM:T8KSjNnyNNɾa'(Bi[#Æ)\77^ QUykj)GcIH[j[A )5#G֒{Pr`5RPN .HŶ?WXVH_ds#wdrXkpVE&T؁jk iȅJhL0$fw0J0ǔ$rZoFߴr%cK˺^waX>R*y,#Q}gڢc/%7;zG\cHcsKGA5bRGw%MIG|q갢FwɔWAbte=@>ݖ%(z˰λl /ۯ[3C O9Fv5Ԃ6gY7=ƌб . )r.o3}﮺-1@#C3'buaquN9fS3m.Mt';^=,2 wIum`@2Jb2q'iloLT=W' }^G}WbO{^'Sʂw鵀a^F|4d`0.&OS8~J=[,1(z[YkymP&6 (fHR@i5gMݹB(wG.D([J╸k S \R miA]/UFQ7 l_9ZmRsh8rTc;󏈞^YR7oi!͜0' Af hFf98L3iu+0`=4jQ)QL]yGkeW9PVuHD-yVۏLD&Ri5ᥛтUQnQcK2@k2U3JsRY{!u `1/y цӼ+f~؏K8Vtqwo CC*6m_6Kس-Px~xYiTy@ROK<fR|iz]xW{r &x!fp[Dk]qV3:OA=E{DԦ]aGŶ1Tٕ=iM>ޥ f@&>'O+Prq?P?!/3HJ肭[)zD6(ڌ[YVm*P/'\4L{zs|(ʴoXQATn,#pBe~(2k_a4wCVxA`&d\IVp&x;F7D8+Kj4 J # 9&04l#[pE֋QU"AωTviOJH mG*zxQeHHu=,ķ=oip4#}tCD#JK}U!:IK1<ݔ Z?+P? BWyWojuF e'5]Ώ EHn MTKjܟ'U•OXf%gyr#W(U"o8dE"J g߆,٥ѳ"RxɲQDe:3)Ⱦzy[amIs Q[)x;#ZϡIe Fqȓgmfl ?R¢ 'm*?B+n`GDZ3#a]f"!J;wXeZ ki͝o6Đ 0p6׫&io> TMWfC-G?Y2^tMr81ssA^(3(0qiR!x3-K@(J=snHuik "vZp֗n{f$:3!e 7}.ZF;鳁褑pʤFs(.(tRnGt6(\I <$dOl,t&K;KG-7G"ޫ yDl 4$\/ɳؑ]DzY/)|Auwh5zݪ_zBb5' EKNȢ:?u6T[&ܑhBUvڈu~Rob#5IF6D ZI,ũES+YvfA! o m4)b+"+"Zh܁RV.-S(xv>~+v(yQUȏOGfZ WNʼnTPFF>ڎ`%O $;ZUIcIPwӖmjlҶSoiy 9SthBPA%  uJPmKq~`Yҝ oS_AW4NG͟Y"TwD3Qo 1BYkE">88sػ13BJᮨ5_V~W`3~t̽{@\-';MMuDEUG!H#VUKE­WG y (EhnhyxZ#NFoNp^jkvSpP#K _EC8':(?cT,Ƌު+n$~(L:D+*Mh]פ(@y崽N&fƷ~ACGaʳGA4]?9~o3u2_뼏^|ĝsBQSA _XZu3h[ȡnj[ak{ RTuK@3T7trVD`V7PTj u+F@nGC6*Vz:k,A Fx^CҡOMr{psՀ!_b*(7QѺW7_&SH:WdEDcݛyNFB Iv/6Hnn m˦=H/cJ4M0N(v~cI:I%WuR iчѴgp?\AN6+_ZqX*j6=h1T'ʉDL}ڢ}m~a#]5ߎpy>^ GTg +\˲ O/GbhJ_GEGrے^t6[_(^,ա&rMDPKsR|[rQaå&?2XV.`j٣Ƃ`͚ӗ΍'cRio^F壳Z>K}mebe"m  _v\7lC_h#Y$9w_A.9KJԶ̍=~&("2#4|j9\ZD3\гܧz1Y,Ж! 5[kf9}Vڢ>YwҚnv$={ 0LS|֐& i9 =xIгߋe$?+E`vMEfS K/۩y09ejys>wUHҔbr#'qgn!_'`%bm^ 2z|XCb zrq?dꝯL CB"G'i5L{08+P5t$(R|qO)΄6STY{=]9"(܅TCsuQ8\eɵL>#=3Ҫ%,v6РN a}(!4 Zd.NP]IOqYuY͘EyձXevInCjU֎I(-ݸ[[,^I6Ӧ#XRi.x Gl!&(VR粂 Ϡj9Đ+kilHjyP<bɐazOQswY9( ځD +K̶~']݇۞" /\fFƚaTaXja7a{ 4]!8uq{#ﮌ}3qpMhc~otP0AJ ٟAcGnJl.}][44⅘_oԁnwⲪlifdZ1/CBF4K1 Nx\՞cF_V/u'Vl@72L~ aΛ=ZAcmyG͘U9 216.MRF8%O‚٥zSp_OIya܍Kt3 cV:CبrR^- i4(ƾ+`8FAO=8)jAWdfQ;\\z CLCɾTl9`&"2:/v=  {?jؿwbW:g $ % )etfSգY󢆢 ~D g M:{&B eYUiYpgu ; o0&ԷЗL 7]k7(uaWB>-dvJU]W|& \ukWs+S;S nǺՒ^uO˳۟FP%v(gJOAYKy^fb@O ne㞚'"͉Pb~+] EO<Z5]ͻbC)j7Y=3&G$2pYN˝x:ovg=э/]E؊"wZ3|7ZGa;d"g2 L1W@9!:ފ^Ge<$|y@1CJybio.?hxpѐ#?*WGYHDWDߟU(QӪq S~-iv4 bLz(m~y'#a(mDa9`sN= i/ \" cѯ$2m2Tw/J!`R7GVI.0@~;h.hY3P5̷%6UsqLF;N>S-t$ 4nTzӬ)bi"Q6nơfwdJҹש<:Rw4 ɑiNxl_Nj /(P*ʊӪ1U5CǭQ6ej'hv; hn: D\o` Yc,,ș%?vxȪispQ]U9} ~LA:/=Q*CCЖO!h [a wPĻWElWO_;3 N߫.(YNX~|^jmevZrpZ# 8i(vi3UW })˸J\zR}nL~gWv_#{@r 'oO~ 'ǐ*+g[J?4*CkE_>b_x^bIK.>8?anh{VӢjrS7(y~bMSS.?֤M3X0B~"&bc'c;jh/e vz߳i΀?wZB֚;EEmѶ%P/"{G~'|biOv@U@2V}C'N*_ Sȣgc(j^gv~b<  A`mc#5jFභoEL?$b?r+I*|w}+^*b" B~Xc&'8`یJ-Z2ٻMih K) MED@űmU X N6<1KvnE֢ cqG#)>Έ'ctOWt=1-rڴ0yqkGqԈ(?=!#$8Xɸ-F+t6Ì;xݮG> 鰶t{aHK8Y7#|m֬{"_66K-irk  Mi/}bcHuԼm닋1ý&&&8߷uنx5wK6̝"<,.6/.F)tU(Q䃟UWA\Wm@K ulCa{7xXE2+ݥOG'd%v#$CVPi_JWt#3fYNABaz&@KP's2ogI8>)m.iH)#0X~w:F4r$)AXڀhO9[]4]T/JD\x^V+u}HEMY~UdbYRga)\*=|-W[zrx&,fS{1ʕ%(kO"Q. `)wORs<%ϧ9⯑3)# `8`yˉ;g]ɄWAT< }ǿ;&e2e=zׇݓy b}$؀\'"#X~ tڈDV¢pψm91 sɊ-qmR\/W.]XoZ`HCkpOB#;L o6bR mKO߁Ȩ2Q:S34xDċ*XnmzL͒[lG un*iVq S-,Ѭ=Z}II CF0Sw2x8`ҚQHG_KCyi,YnDY\JR4?RRh@/޻ d k;Dagnn]W4h rykbXyzq`BGͱߢ-y.c_Wy{1xh(Y ޣ[b#oO; t 99Py]fM|"o!^X杔`viMiCou<kל<6[^ c'z?Fb/4AoB-LAfId.c+? A݋g@»Հ?bUbW%uƶ&sI:"էv Re4hd(+Ԃ 9orؐ9ljLB+OB}e=034Ҥ3[7AI%iYB={ة P41wuMFt 9a:[?/#ky&hGhSmw<+Ffsķm ݝt"K-7~j %@ic'W ~stkA*&'zu-W rg8KX5 Kor+Iz=4RzպnYy?ګ XI @ׄG`! {G?bf/;` Zϔr]ڟFV@3uygȹiJ"\,\3cA Y>NOɣpGK԰jxkT EÛ,z{J?O]Mqso뫁B? p=Q۠K=QYI!SLjnBk');L I[5s Vlng& /SAYOJ̟K{L/KVf5Ţ1>qы$={ -*" ljMBCLH]JRܕwa'q3u[x4 zȍnz?h)vi^w7%7@kK.,n5v|iVg,YHRbvFR}QJ-@9׉?d6- *tLU?ak@ul|&n._3g%}e6"]__eYyj{D.nr}IPa PE,H$S>r5gTnIvzGXwȹm^Eب׋yzyz`ǛAY1->OGut\ _aՂK}*_Z}yp1DTsnΨE?Q鴀Y u-HHCS%(G|^j^c4og41વ '@22'/x~lGzeؼn\lyPAHkm%YIm/U9+{A4܃8cEڙG>sueZvLc+zUە-9]*SbK N[BC^d5wצP*>OnXm4D=_f1hȃ:=ȿNĺ`4ݲ)- rg{#X?ӧTX`>4V+pmvnL K*T˸otEMުANꃥKqkÁ խ~גJQ8|ߒ@63MS_,SVε $"Pl,DCk7:x ^1/]|V6CVN;lL"_6Q%ǖMF/=dJ0gH#g>? \ttHȚߧs$5vdy 3yv&*uțlUz[pҤSl-o\Z f@"Tg=bicHW6;#pv MNY-#T$C9hQO<= Q'&n sA#©gكJY% !!IKsJIYNT"u'/;//s#әyENlmD[@p /[a{4 rqmg(W^k쳽/]?#zB@sd[@0`oDnr})BŷZw&mRGRm 3<֬޷˦a3 U{[SB,78mjVI<(.oiBդҴҒ"ۅU3HDk%~v0 z_NGrSjאEd9߲KcPhL|]ZQ5[Sd`e~,||gY@ 1,:q!­BBI+4Nrs՘zZx4i/l5aXIsy 'w|j1)̊[Pr4qȕ(p^rE_$~CoTR C>$P W6%tScsjj?FFm_b`#<`ĉ/CXt'S]ש1N{H%w$VpA{D@ \5uQF;l$G)Qsz-/VB~^~k4\t;W3:2V =+꾈:x?9;N DDzx@xp(Y;vW~7?ɂA)n~|e}*e=?t7v5=yuƀ{^f m{.{d՞bAJkχVpZכA[斊 AN u.B~H?FjV=cW. ĒWW xm^hf~i͐|xhWgLot& bsa507v -qrk9\ *QwHar12-j$N*b( E{ Z,Ndy/v c0Wr]:Ƙe&6`_V|ɺA~: {R-@"0V )s TgP7f~FI)_uNF dEP`j(?}̵z ?SB0*jm7a~39I͸p-լ!%g4kdg\}7Kmȋ{b9#8?B4U/T{IM%^I W$&gU/yK*Ȁ:p"0s/Qג3Ԑ'N7YdJТ'q*'5 VQ\B{V̭*|7ܼ=Sx (]1àw ,0=+|}kC%V\\Mk{"!h6UF)S$&"&Vs򬗇o_J;'qP'ޫ >&Mh8 fy /ia^ƇPro9DF6zhmr9#TǕt4 .aRBf,-G< _Oea*x>{N!€_wrO9A#@GԞd<4DYzqwMK}cG5K{[O Ƀj5va3ϻaYb {6fkGC[d9wmփzmyhSpe ~A.: Z[Y ƽgy@ O&`_6{H90bBˠӐތV\"A~PpET]Mqi"`CĴJULZčg9QKtp߮І206]75|L!Do$gGRίFҶDXU~ewP?$LW@Q$eS V/-yef?vL:DZq0D5T ʌf`.r&VJEa7&mAF+o4 H @mQ[FmNujA0>܄ GF%URF@=5Ňyfu7d[_525^G Gҝg @cV{{‚gb-=n9O+fXna~ f@r\[ ʱњGP1[? C['qr͘!'\q=z^\dqomS2ޛdN| q" j*6 S DSP&# %t9”K=a;`s 07dwZ0G}z*=NƧ|;&BOV5\A*1 ϐ+SPB='瞐4Ji6 !@KSy8ֲ`2ɧ]muG,e_jH?0J1e nqS<,>HWnٷCX&c'~1lsN;@z/!\-0Ti?_+" ZLݍyWܟ|*7ܡ;J޻mh*C0m)v1eS ɒs 1f;Rlj8,nq]GcɁD? r`VO@u_,nD nw/-9@Ő2$>pBo,% zTԨ i){[0׼oƊ6咨eNU$bvu" ƋO'hcerǀ5;cd3KW,Qx0@uVXǶX7Vgz5_ uŘw""P`rI!(X'0<>.$;椹tTWljc=ۿ*77b@9E\жn?{9?[v n۹,{9Wbr_Ŭ+ROJ(3vU5L]8x|˔^;8%ClsvdPz~ z•(CXW2m:8}8pvE['yGUi`<$+0gO`Z_Scg3"Tdh`6-a&:g@ ͉fTTjL+kh[cv%tat2˘DGc(;̩9O-EDf D\ n|><&O$"".+*- *e\AcȅQ.? qOhOn/8)$6ÎN6Fn8إa&c@=pޔy%~b<7Qr{fܻ2[2sHHi:nz5錚lmz)Ufx^c6 DhPSc3ԏBbEŘbHȯO5\I}HSq?/5J7U>,ئ|bOսNl0ԛlpd;rߢ Н9mѱPm-zŷXZD~ӏ1z^vib#%Ww WXh5:Yin[ܝx)E-<sjB283ŬG ok8 H-a*Ap?Ii%N%̟A;ELx_{b.劏oM "<*NeED =#jvm&'G]$9eyzD_HV53`1 3C x{ d#C }nqc@4 gvG@6xRSlTuYYQv}mU6]c4PHI;HI֑,[ :G?T&$-ԪpPw651T-BHo(PbPBJ;73#nvv?z!)J-`3k5"w$VE'2͙fl8i1 GI"Ҭք״ۼcf9{6u9Y=*Z wgZ 1uQ ~Lv6FâkNZ<2,V@6Ś?DF& X_XSYLHx]6/ f(F5hK^CJp]4ﵣ᳛ʫw3r5^;A J TGN,qΒ#q6ֶjEJQ!Sв䅺,pY*d:QHM-A`a $)d̉ȠA@L++&E!lyJШ_|`]wITsCa`@+`>"ע1 Mswï-Y=ʒdA*-Nl.Dt:S$% b(MTx7|W'E=iz$ 84Bבdڵ5us՝@-fԁSeg47ZADVt#uL@ 8-T#0󪸡]K NrSWL(z$<{I v]huSRtƝ P!%ж/Ӷ*8@{u=V!?FH(QJ[-tҫvtWzٹJ~8)sMuŐ~9e*5YVOMlvFv ke chQFʑLru>[F!emdZcOEX>QDP%r9&zC%l^wkȵ|jͼP{m^Yi:Ope";?@e63{aஓ[Tz5眉<tx 4JbgV}*^BY)(ucvg晲t+1N3j fg/z42ݵvKiOt }a KK ~zMVcэ`iQ$˵gOD܋<X)T֎EP^-#enDZ2 Q_G]m+u⏱PmB_ M÷"_V7*n~;+|W\Ƌh/$3=(LhKt.<^O ."&` .NC+NΩ4 ž ih S7? j熈qMfB,`^n"%F4jI1 %Oi1~awRA/eAxߒ@iu>˹l$JWYq eq&U˄6D mdw@J&$[E[uGVy"\Zk ;H;` sVSCb=\2 HM<;aD#Nkbŗ& $I<``{z0"^C)>p9Y-F#pp30jHv<6bs9u]2%t\:.(t-uFRR"`Nts2ۍPS s ϫ9\L :"$kPOJa!C4"Clp,zsA$0)d1>o!eYaoGX/&69Z_s t*@AIm@/" qRC{}XUܡaFM3~!/֗e{rHph ث>&932 W/OJ.R5d^?jDzGb]rEA{ k;zbm`<ޜzuZ(-+XN'h ePRcd'&kӕR슿:[cwC(? 5^ɒOYg3C94?H{H!&nclΊqGpX7972 4ŭ%ْ8Yn@qu(z?[lFJz4$ K (f!eߔbp\=η<2iNWuײp*%呛ꪾ^"UDanSG2Hnm& 5co m,|x8S թGMIͿodf#:DPoŴ!BC;]}}#a̅¿ʀv5`5w9vZ>XS Ij'Pu̵Ъe<(Hc7WN׳ɘFbU]]M6 bEQ\}&DGπ%?4'zE Ю:/lj /ǽIQ@`-(+6 >މE*4=˞3M b2H3?6tzwOhxVb#]=7#Dn~7dbYlS=?ڡ%@/ H$bao_~ءЃ{Gkъ<=PéwJqGd4~dog\_ƗQ5yLFoPf}t[k#h!_0cX@!xe}O]r^RaPe1ʗť}çх4u_9Z vƘ!fvFM3z<|\f,doz0sj Wua;򹑴k;~, l97P \ 1w{Z b*8ԈW g?Y}=l;TM|i$M k;.ΦҶ*I܉flfOlAN>.fy)տH-_ADwFÆybupx[%?$Ew,k'#i$7Mn:l,Ԉz#z9#oa':{k\>D;`gruuG߆ܾѲ_._ܱ#SFUgN뮱#|L`xiMvd٫1P@C7p~ifѰ⃴N0428`'C2D RℂOr=)F l\I'5ڧw;ԁJΏNWTݼԉURx I9nOU\y#ȣRL&$q2Oqv-Nͼ:ƅ(=ҏ! )g9 'gw#Z<~qu1UҽcMf3>`OYOQ@ .Lk~UE嘇1FNDK(!uYڿ7 `3*Fo:.,g8Y n:ѶUV}SIz xeK 3gj_#dB04US},[ Vʉ~2E̼ s_ӯ)6`?!bfzd)3 *@TacJ>LL?ÇܟS#FM'ap i`gmXHuC/'8M/Z8$zbiY;=hxrS{X $rIB˥^Ƹǩ.7_!EĎ%\2w =^JEP1%' >Vͻi3î'-b=R0" ˲GId63t-у'نn^#,!&vJ)9E]iFG&Z!^r\(e$ x#^q*_n_TDo -y{ øȚ ؁ԓ/i^cOέih{|7'P5!3ҹ♱b>͹ZW-_xFĶiBM3)bF+2XsInǻ7Gx(1@ ~քc^Ȏ}%(6l#e[DمhLE91{g1@s5<\?Wܳ ь?5/,Y]#J"D׍J(n FFcIMxNfT.!~gʠR<j.qn=48;A8.I%)SoE c^W~՞fF(rj #Ykf7#u&6!x+eaZFOL$xU,yl8/Ym%Th]腪Mi1VHyŷ2d` p؃k|ٍZB] ?8>*WlDq1?)^,U`OQUڝbt fwO=Sb$MK4T-6C RpizY2i@ź J"r!lfzsild匱fBn F V:g9KymJ1v(-7󈮶]jD9`Ȓ/~zܕ}&g/RG9xE$o؛ɥZ"eMpd=5 |dUq)I<+>Q!C ~YX7R؇zyk<-ߖFE^ ]sN > ?xa6\{G4 HHF1>Vn)],3:Z%SLiէ^ T@g] `LP1Rw=ު:zix*mđ4udrHz}4!cF@*&s|~(j/{aTJUd$\rÚ5 #`rDKtY: !ަ.{^E'˾6D!lMByk3s6(k;8vVa*=O=׹#*}3-zW3(;U tNP?`ȑ^޲FSSBv tàgO/aW-< m~_ bi~>8xE|ڗ&.-0HZas|K_ׯR<;w;2w5ŽD~Nn9L ^͠Y2߶Ϥ6?^S!y`o;}n^Ϩ_p' àN4O&y*Xơ߇{:\S_2bx4+ =(`RZ/QY*ۚK_4傧QR{e[%v?њ0)O.Z҈Z%4(-xaH4x4Idh0bB[@r >ɮbb(A gNpٱZgxlR)mQ6jVo uQv!W| ;] Pd#wዿBq`R#6SK ѽ`>r4 ؇(iUlE&'Nh icP'Gd?T$Mg˝]^y'p7Z*D>$6{&yEdg5"gm'z-p_m$M07zƦSL3KsBeRה8M93 xAr(Tv&:8fbk!Am 6#L~ԳW_4 (# ]g84;Ǵ7N=?IӅɕhL JNi/r,H02ف.=v%2[%YM\X6\$ $5"s&GaVϯG@'Nd3"ӃՍ:O)yՙ:[ȬK~mh`aV^#6^fSGRY;J3} mE`flDٻ2Qc0hNpdr+ C0/(%^Wd<DG59?KsPNPFrio l'p|a>=kV/ UrZ1t-=$iqJaГ*w`U8@j45"Ll+c?,e Hl]1OEQEE},đ\ EzS  YНGJ` I`UL1Gk5G^ȯ졛*?ii`=ʍ3JIUzb+jG02Ĺ_1t8YfuQM^L˃%#XvS=:ğI*:d.)n.^X{rv% 6Rct vڹrh|iYN#J'[u˚T~AiVs(al Gc 4" ٠ޱcTB"g' iώ[R.)%s0e8ēVZ,/Ֆ]ӭW>Kڗ|9\Ñ Z7GNJJq71ۭiVqLSKkz4M'L`8tA IFõwl]q:|Y%Lb[haq6evE%eӪ$Ӫ5 yH b=UռY?z@&-F~tE߄j4f ȭ?Yp B' šmoI2RCٯAJPa.6Jf.ok_,}m$2+RIv׈PRO{p|1'H/mK)67=;?xpcY>MUwO)4J;w_G ,^^65j,jYe-!8ٍ27Aٖbk"CR!aG7.$w! =mܚ5~LfjZ0ȨB肆 +ɗ?T؅eDcOT=y6_zsV 6Ra59OJ%3lX(o.< ]`є[7jnړ}|)EIhYRA _(.AKV ^@&qvIvTNtW`(>Sm;"rs=fA J$(|jUܚ N9yS-&Fs0ͭC! g|zJ )j3A*2q5e!0<]OV,}εJtcOhiB)])Xv) _L # 5ocejFJIL¥FT?I |Jܹ0oubX/ ΓWm 5Lw;ߑ7uρ[oP٘'.$72&pwF|ڼ!L xYOMfkWC9EcucWggoODKWi%9L;^_rK6okwyX,Kl,BCpׯ36)d̰ M3l~4iWB6o5Vm&j$ jGiq$$A(WX&Z,oR])pQdՀKm8A? :!=ZYŸo]r {מ•9;XZ9jt>sS}XB{'oBkws(JHr)ZSQ u%U[#"sA3~Eycf#Lo3`J7vQ?I <;x`"QSx$W TL *nwfbo>NZWs /fo=FMMMHˑ%-m Xv0 3FoMIFfym3P9>H\ ih_(6Y$TވNP'qV:p3ɱ,HYlsj(pdI8*U})(Դ3lܮq387$iυf7PR[w/$ V<ĝ'3֞]£RɍXBTY1eTς+wbչu`2n^Vi"'DLʛ@c~_ *p'{RE mׇr& yn†~֊73Pfx.U݄x+_~ORk"GV*oY~_0OX|*E-);iasOKrl|\(bިn QN7Bu[?T ~,E ZJx3 @(QX r0llL5#&Oږ^B3D$O֎)B^ZGS~'kw4}Ix} F;sȀjq4m]gs/_iz$bj?{ t*PQ*#|NaaY ?NB~Ch\b/ u{ F´‹Sm< f)e 0Ȧ0yM-ïr臯yJV\η,s%j悅6 =NSE8͚ta-N@z]/9*$OfJ6@=x[Rp.Yb걋H\U*dҸ*oXQۼ̿>ʴ|DZEve/y_`U7":CF AB5V7Ⱑ\ac\E.,+,SS%./ u0_g69.OǯtR2V2>ZwH"=#L)l#a/p$Mq@Pm'Z*u$\G]~w1g!;YR=]I^ cj"_&>sJ9aV>[x=Jy+GTT9\&$'V GumҬXS?w]GAPT8~rR`(2 lyUiG%KױWⵒN>a҆V_{8<_%kAcꠒH^^ QĀz@q+z8lƿ%YrN)M^ 98="(A|Al\+,^R˻:hվz_vp.@>85SUL+ ԗ`f>-fv;:~ pLh7ќUtT@?b3)lBa@gv&r|\[Ktrr.@v^}'( e#srx^EVعEE$Od7yX gOҽ۫RYA_=D@59f33bhw*psw!K.kEg{W8"!A`|}vN!=\[UM6( mm.8 k(5ن>ܿ mjg]E496܏{iQݨ[vqt Ld{ŜXmĶY[2Z,f-Bj>pH E6?PCO"a焚AkVUW>vw>cE_QSI+M 3ኰcf_yKL! ddDӘDwKo$8`L{"ҴOuqrp}$#MM΍s[\Yk=$T : J M$(8r(Wޜ Dn6[ibti|B5 e)CU֋u38Qg=cA;EcDsT a™FԥhCjTx`[vg id=ǦvʟNhY, U嚼Bj)˂!"_NBrk ,P ܧ/2wVKo(/˱dj>S9߬z0᪵gyb hJQyJ$gH?m*Ǧ䟠|F n}EB:jI_:<*ԡ8 b$C._d^[?┌*&v|ʯ(}R9""`0=ʵu19(zѓ[zJ?]3)F3RrsQ7.{@~1(C>A3dBEk3DO*̇B1X!).IK^|4Nd;8ۯjh7;^}q!r 4W}-0 {T0$4Or6#L=قJɃ0vҐJSXV<`Ă g40U: ;uЕ -}2VN~55+y5Nd* 0W]BLI쓹[äBAUET +ayZ{E#urЅ~=-ݑNfj5V ?c4|42[>lWN.Xzj:cc5_&i쭣78([ا)ki{ u|궁Q/<0''%K l8UN|$r?ao4UկGQp'dv etZd²DfRJ q eɉQCɨV|.m%)coOIvfm NWPY=zkhن\2"_:q$+J} OVFzL;1¡sX6hNr^`aU2N_ٛ:8=y)_=x%ؼK$+Kʈr=qOP^F{L\ qy+i*^gvp=kr΀ vբ s.j=㦟_A)CGb*0s1ɔؠ(=Eߢj?;AOs}vc̰?Mpr&9 }$3_ָS.ogeNgI8c:5y+:!ZNޯ_6V0#Z jƣHi@*ee/FޚD]c(` \"5>ޱTXNv6k٨0#'^jP&sm8Gh _n?3]O85[,S,L[alVvcU2h*3 e@Yf3#eXD`-yW.hD[3ytDmŠuF$L /ö Gn;2i u ;wAYȇ:츣鵅 M9DUÿݢ!JTO&8aϒԼe]d ꛧJQtyҏmTtS5l$k]+NG?BG K6OO@9(!%CQ鍰zXԛֳy=|o D* %âV*'qSNA\<$&|ްIY(kJP3u +(6h~99~.vFmG{\Lc!xtJ:0 WL)앾H߀U!rZlb??.ȃ} " HTRyP1Q C# b巗z )z?FGW&}6{WU PA3.*Tz֮|u2ޏ,W2SUQb0;?а$)#Ϲ5[ G?+_Jyd?L6v!9[%YMb# 4a35_=RSved=<7CDD}x.$>\Z:wm"ֵƊz1UnJ:~@p< tD&՗~ NHF'P 2|֐|CsRA:Bkna*)Vg9עB+ y tїO"GťX%=nGx_͓l{~t7׫A/S J)4फ़4 БDtDyհ[,vb*[iD"p/@X2^ߟ9e٬8mEBѱlbzs>-@G&d#m57g2Β_K>@!R&[LOLNWZc .8^M EU(Gjt'_XP8vUjćjRAU?yWHHϗ߭g " L0/(vǜ% g:gE Yt3&O@6Avk{`:~䵭)*64t:`K6: 6Żj[5RX_1ȸ"vgY/ Gt=:)ncB7Sa-2=`m[^l)EmݦJ龃 D]ȩ\&Hcoj2(Al.A8*HX-a!uE ?RX^u&0!n I əRWv!̓&Վ*q=/I6kSkS\O\_i͐?u*]k? )4AR5]򷠽?+ +p| ٔδujȍ+s ߀Г냙`OU7Btv!\`MNwoYB#drJ.H ^9E2}YV^lbsTi(Fv@'DS:^BѩMnKL4 _(o݆_O%ªyRN#BuO(%32DM3FoB 7. k(R 4 Xb#  6`='^W7d5\7QmZ[7HfQZze76(-,Ԅ/m8 p.ɝ`å+zٿЁ#Y$*|u@"{,2$ Lvv4Z)(Lq7'dzZRlk< DU(+C[`Pld7rȘ3 @ 2&t:b4twlы;>Cg)pFJWSb\1W|`1(b[#RB:HZBghsܙmِ^yM[o`"$TD\yp);O~4v㨴℔i S*jGz!IH->t?ճ5ևFE"/ {>FgÊJ; $g 6)0A9h{5Xtߍ$yX|AU/((JSiz'FBdP k8ޫإ$w)oNWKO"FM~ܪJe H@NMjT 5GBT^Vm*ОQz(dtA+yBP[GDR3\ G֣ܷz+ժ!47/%6| "d&ka0m3VWX¹)6G&s#]< vDiE'7zoFx?&59D?4@ Q1.&1|f> 6K,L&cjA#|-V-/Z"Hxΐc5$߆GZhDG[^ړGVH5䣘@zZP5cB b'nږ3 ɠs0R9/3Mb^pLuP@R0#%JWk!T^4sy\Di FRq5}TkSYoxí)[(7^_@^[]E7ƨ-G}9MɷEW_(H| ڧ-R,37*{S,V%#l̸S`-Юp!z#E7gdvm+V+F"Œ<Ga~-K%O-+o-無ƴ!Ÿ?Y3ݱğ< 1Y`AO仼syI7㽱 ʮ}U<;zk\Pc}ic.WWyosŤPiP`N<.^PŝT YkqV L:)/V3vrL~+\; 4#qaJҶ0Ȯ&!#Xѥo 2>h'vIO5kʘ&C|DX!VO_?֋N/qI56wc/s!.)Zc]$ Uɦ[jvpgK4 ;G]U\FZ84;a'1*sI #Prͩ}N31U22U!kD-/wdWY1dN&a"eKl( Q]gO;歄B;/ײbݮ)/v;a~YlogB/wZ.K*:Eh?F.4b1n$*;Ps{."RH+(rqMuEC[Y_*J ΅@UN wA{%G$j6߆'חCX4 1fgs ;Mgi#'3v&H7-ĻJ#@/f۰ذlVesa)eEz'b SmHͳTEQXsB v 7̬ڷf2 yz Hktw&3=/bI#IKnR(,) ' 4!i*sjz5%)LcN6C#'VU0w($"ȕjM*H(fPߤ皩 N^D;oJl0}ֲ~Z+9VͬAVg {Bc}dA;%SV<"WNVBH:' 8E 跟qgdzͧIJ٧ ,U;8oG>2j~.xnbvbjf\wnXC]Ɠ8+d$.?|7(2`_Fdikjͭ >]pyf?^YE+Fɐq$^xG}a v'hMY3ձ`TH qԐ.0=Qطh"^P_C˥`xTB <0 7ùl503uF iļMnL&bpBK >$8Siڐ=:dL=͢!f9#MN{UDf7UAZ^j'_zfr;ttvă C*)Zï̽"3ͥXG=ˋѨBW9doEIy^t|2KgC*ybsR ]YKF{3ny w^b1m^AduOl1vKE/IhMbSo,FD-*{XG$uOq o?[ĺ<L{25W($%xtݙ@) pGxN܏ CRv8Ubڝ[n*\'!#r˻ms">nŌ\%(T/B`zpzJN}, q q_iD`4[)SÏ\2Dto#.PrT^Y:3@H g4>:* XĈkw[\wg6tƝR E#+!2 yb,@n. Sf%WeU}+p[b0wVM vׄk_lgHÝT=:_:||sI0(XQIA&@-u YJDLI>x,ҳ*i`n0xHЇɺcZ΄HM Qd!^Nkى켖K'Ck4d+[QW_18ufTH.19U!YWa"oGԍiB-[th3<0!Jk[E$+fkt7yZ3]YEnBhE󡢶Ӓ\9y]e(ƶ?m0Hh\_f| V<ܸoYJz_Ye%L3~{ 1SǴxE% ' "NֲY䉥EQVRe/Zw9/fZ.䊡+KP`4nKsk3Js(VV͌Ata0?߱.:f#R_C 9YӣA!9.l8]Bhu74* u1d͋tF76y*@Cu嵠?ݧꍾxc"K: <|^L2 =PygBʱMu^+G^"<6iզ7Uv92eZ, n_I9o h4Myv^up;8OXIǼ~QAR$> /Xεg*P=f$F_T)i"_v*Eze2lOB玈W^y#no5 PqA$ :_Yfz:&HuK#IŰBWkKEgھtT躤#ZS$7*p&.@Kgea`c%ٵ?oF#*ʒ\rԃCn0#6wUm!8)i aE4Fh4UDtlWʢ.7{ޒ5^ [ `2H, Z]0yFw^˖"`*"2EZj@]^euʥaF(qQKW%#kګ<zg"Bz+S9/@QigiEmdŎtYʂ,1]Gmec!_{;5(n&"{/,7 p6ė䙁i}w)ak)6Tqb ySZpd- R85 * @U|Q 䒨$-jهk: =\r٠FAAS'w`+Gڤ)l{\yjK|t)) XJx]N]_toCU zfҾĤd5DίCb IPQ/(._ d>4]댢:Lovԓ%j5-U)c]ȭ$0-})LM/qH(`="R[;f nzȆ9|V?l 'vhZF4=|ŶU@2ٷ͍52*%xD/XA;|f08VD]D%`/pxzw:  `Ѻe$Hzz3IJ 9w_CyUAҞo DJ\S8lN l 7wJ4ny=[%M `EOȻ&F3?x/ay\K$%Y,Ttg *ž۴>j|?.[1dD9rN,TCPJ ~U2FCƊyǃ51gv[c=9&fi}Q["S#ܯѮ*3GatI/ͳ d]ASs CYlħ,9btV{c߭ `I'OK6U=mUF<1tAM? ^+V&ATvփlD5Ϸe{jrjxVg_Ȗ\o[۵Zl՟j.c;!³sl` 2oE.@ߵPJ_5uӉD*?:}AUe^Dl'yfEM5Y-jijOA+ڽ䂀c);O)VkDK5UyEӊwɧ }/%UNȷ0)b^3P&Iݻ`!=:caƮVq^_NiI%#  1F?rn&kh!{E2ʧ"UT9.$HrJ +,(m,DP!u}=DI3&TՏcXwto\@{RY}SDL K62K yN/" +GcbPYOap&YV@A9VI5VSmc|tvH#)& 0/0RBi'X\3R=%mW >q wKuYJ/*M<ĩ5yT+6K*mlPPS6YI'ڊLVq蹟\@XXW:PW,$$^c={Kq2br!T8+$ŋJ/r$dٽ >spWC)t H0G w|v%I($G'"2__i6M N20Oi@JwZe]*`hQS |Q(0N=@` ot!Guo8̵;8طHKinx)g=7.,E~""x;+f,Bgl:ģM`b$X\47`ʕUô{`|{b%8*! pi:i,HԸc,[z B'dKƁ=Wz$H-HQlUt i{hBgA@,tRL "4ޣT/p51@{ 2@ҥ_vLSZ\aP/)(OG4sˆ&rEmz2=UX8K< ҙͣ`$|t1Ѻ+󚿠>#4l{`A@@'ŝϚ뷻 !Bv&hrJaANвihJ[ {IтyWDiK5i#68Š]fbl2%Ȥ1?E~D\aH&Zk_nHƻ( +k~<̺,e4xJuY΅u~H`u)U[$p;pFՇIu۰§g` d^T As5lD )M(XHV' _N@U|5Gf@":3?>r)RiKs`d~<>]Gdb g\vS00(a %㋵?0/hib /a#r/d)3f.,cTǩ2Fv^aɩ,뻝)dɬ`ŰېKuzj!|ף\8bz9rq;$o/k~: ]C$0C 28'RP.;G3;㧓|*z=+o`su-*T *F- [z֏ KsLL.}^?8qK^۷ )|D%eLqLQ,T!K^AvSau΄"DG8}SYkqbAuJ50B~!/ TGm\3_w{'R;hFVp.S"lODٞ[qvf;q|OzfW©FVfW{]RʒUEiR`dI0.{"ea\N%zKÁeUQ(FkJ@TcITT#'EFP:F<^k(>9RpKln"+ll%#n~9 @~=IʑYJl6I/FؤŠDPʙ’L'7Jߘɣka&H n/7]"AJݑ5Кg@:BlB^/C&=gPdSa'sUxyt$U%!izko6(얥%g]XE\)QLVr+kJ Gm(zs]i׎D0 :E[g*GtN9'oYHB^~ NoQ3GU {瀭/B_Θ (flK;Q[󅻽Jk1kdsÿO6|gwp rpNe^K4%j-$}1Fd  )eUYUWmk[;{+_([U6'8qOo6b Sgf.UVzs1ܕmjj8w8CBp]*z1蘺Vdr_ĵQӅAAʨ蘐ߎw+ U>)EXt>"\{,:8*&7TB![n6ji-pӁkxbK^1fod G?%Cj|`0O{#uYw5yϭD6Bq's_eiED?2%#dKO}g=~Aԏ!gxhgN1p-@vBOgγ!(pCH; ~-1cZԉ<@XvSZc1dnjXu㏳K0eP!o'2&@7uB]cQgUQfeT^9ӯ 3qyC"@uPh:7mFCnYKd+f"P2LPm~uQuϨ($bc-],O^˦YsھCU&(`!u_Dpbwf@˾m^ ֔f<x3\wl u n5!yOw{LnL\)Ƅ,BL:4=KXsAA ngoؽg4UBX `&&=JF3sal㩍7۾js<:;֔͡ϊ:(td %j61F#/ߎ83>|dpq>&fCLj`Sc_J~nE>GImԛ 2ꮐ?LaJLAh:aB6bKQ4% Ǭ>:95C|_q݄nWX T7 d'ut[v3#{}rZ#  x{rʗN.?}![(e.Uz)t+(vMi>e1(Sz)f-Wt!0N9 /=QE伇?x:u&Sx)ߢi[*bAű7h4 8iqSߊ4ԉ7le3.8);~r~F«iMLJN" g&60iOD#{3+2ɠNy=𿕺P`6c것Q=K+겯@۸!x&YHq3 i59ғh7g p&Y[ZkMɳhߵ`R@}=%jM~L mϝ=#Lq]gn"l(8)x M2y-_2X;"TZ#p )Wݘ* Q S8Y-ً䁷m U qiCש"'֚cQ!n8>)cF#.ș)1\|]3j\(uKJ{|^ǂj/۠vNCJ piE;s_^l?ru[W#yi !`eXWh}鲔;*7X(nOujRKP;N:|l4rQFB.q2bĿyrDfl(y<.}TBj3WPY^4X͌J"I*{›XdB!*Jxb9v:xWo Lvɇʧ!&$fK?);IWra`VR df\;GqTDz!Vj~u^#.73`E7%ac^˙5 ݀09Qƺ}KY?L\a9Qd`}p-< rz/z=Xp%+r e5.49ZV#[~kyg/_N7\ )Q@Dϳ处iQ.V?;I eZmcmJG 9޶egJtrE}o,n4cKΰ ^j=5:}oAfjoUΞˮ شG{Wf5""VF2 w+ M  m K&0G y٪KrI4x jr?!UcBf>NKXtlhmp-d8F$q[TF{evn"ce,ĜRHc^~C1q;cοo d}y (b:#K@fKxQN.Dc5/Ȁ)N\PUfij.@bfWM8,[ej]u @@o$l#ѩX;3EfZ3ca`r>MQپWFKA*A|B_bKRt|-n 9=1܆x6؎0de[nĎNop/#W a`1O=x,է57U# Jwh{h?F jP6-2ɇy:IsYp:3.?cCBaec;JE^XLjKF bNFSгm/CWVMFS~doe`K 谡ѱa2zKUzi0ݬ *F=Cju* nU= #@ 6D ?k!F5yz䱥ćvw1/'aXG-SH})I&Zp_-9[N^6:TZq JrԴD}Ž߾$Y[;j&XV~>{q6n a(qQkҮpkS)V6b)_Wc*㕁s=k폆h± ďCW=EG^C-MS՜(hChT h]٩j߽C+,Yg܈ĩ\B&QN6zST`-}2_zƇ8w50v0(,fOKv>n+ogd?D  ^Kv$0cK<4gև A"2ʽiB-I:9CFh-g%Z<~Sj+׿2G;\Р;Cb'֛r'ÐSyBjy#*Cf<ځ(Z2њ 6* w1 +mvʋT-p()u_:!Pc#(S&L7A;R u+ ϒR7O&%<~eQ߶,3䩠^!By&Eb^sn"EN[#uP {Tיn; 6mwQN6l3?w~\8zqq샿Uh^#F wRS]Ҷ!ꘚLH{Sj`G!"4io 9D_b_l%VJlfޭ:)A=L]Ͱ](tzέ@Pl2nrϽzd])!?B,]d&yb-Ucʵot XOwC=4"@:m&-(1I(`Ȼo\Dv }U}q^()-[ QI#އ9'-Gsۥ+n4*zC?m(4Pf߬9ˤpX^s)%gxr6RW׶`|x{'W;0lC}(yIvzY8z= *Df8.O6tԼ2w!L @z fB1NV?׎g\9ī%s_ %XQ\A!`,GY/]?cλW-4u0K]fuUrhu:[ UZ\1EYXwi[ ~"}FH73nʲF]CM z({)+тA[}H$? yjg ~:z8%D?n ʢT9oVBop/Pt= %uO`wEoEfC_2iTIi9qtɤBhck\2c >إQEf=:v$G׊UM#r(M!\?V$cif[TNɬe|bʕZz))_)NG_̅'tU8 nI8 bg;jpb. +a9se7@!I~\z,1]LC=yVeǁ+$#V8cqX[nԧ@KojTap*M \AoNWJ-y_^1TE'ή"<'kٱr bJ2ʍL@Ցm"$I(1LF5|Aah^p6кW) 0鳭˥ZyYIS$Pҫ$%CIA$,`КD,- \^-%nG  g6iDX#]c")JJ5& Y̕( nh"uu ,CO";?6Gz^+`4j loRsI@{N΂u?@ $=0]:"lۖK8)E|͒Ns&r=vPƍ-C>Bb (Ƽ~(ұ@ ӷ:оq>|ytBWGH\xCOV,#jPg]e9`=67~?y3e3-O^^{hW1ɲ$@7qf؉؃ǻ,j:n Jd;6:k^'ʾ0=-zP ]uluD䉜pF⭺!"<7=sP/xRK-h&4Κ`'xÿNdуNW"FH9W6 H&z(N7gaJ(a0z\pvۜ$Fb)ޘ=ʂf155"h߆hG.=5)XuB[w7r;%CÚ7 =zs4.Pcl#mohuV*KR )`N6Sb7'1qfOFV+XCEWW֖P9›eJ➿.ZPLIaffWWC_1SY)rtB>\eTIO7A_a2GAG~X}c"c1{ &Iت=5F}:X_Y8cDvЂK"yL͏`:UnBl6*S߂:?PtKWO wCf8f@BvOX.RPIo\o(ۍ&숫OCM׶zqYdX0fTc`QV "͝<7\s*h$mzagu+M#qtX\kB"4{znKC%اΘN y%ۏYss\_˔ 0G׺Da sb ] r[D҆t#,Y0a5"CYlv{Y4-Ys'#MEiEmt D#^i ЅW񗡼|%3eA3_ +RZz׈OPL}H{z hi[@yk+SZW5-?$1}7lQc3+0&SCPν?g\YU^)J|D 4~.:8  B-:G|DviO ֒ڭ y_Ӥpml_Dchdm5]7Y[PsjjlX8 p=3ÈCoѣ 븜d&e7$ܱnE⋩тRb#7 VťhհޢxSg l}@B ɥ : V&5 #c .,s2:si& *^ $PG#=&fHR[yh}J|wWwKL5Ի7b!Fiq'`ƚN'jˡu/=ݮ r*sJ45v =p}X/o<&~ Ab;'(1ՄB(X$ ЭpB2XƻtAt(9ͪpVۑ|AAxñܬE[@O[:iԶ(M ~I-*ԅ/-uf-VQ'4=1(*K-h.~6h32Ni? [xQ XNtV+QN4E#Wю:^ׄH%iZ Z3\je].uÊ T(Dh> JY_(榴([O q4~MN' Bvnz+{? f}}Hʸ%L{n`aLl`g@++\8NR>d+Pw5v(i"njW2|v;73L=" _(EުL8z8"6&]1wEa *Zk.Knf-O S Ju324ZI+qz~Xp3QӍi3c H]4 ~O:@!OCZxWAa"<+ySj#Fn]/!IH%"2'S3;!\dyY|?DxR1&W@)GVoaf_3|7[hD 6ۡVZvƦ,g2N| z7"7kN¸!""xKâ)Z % $T=Gw> xTisZ:q9mz _NBlpe zrN%~hFiw < Z\[~M~#qLgL(zuz0+&R%i.͓8V<CLi򡟎@koT Yy;oL-;}]/!"EM;{IށץA!}A-P䳴XJjVCCiʄwtƖKL1 :A'aŢ@:ufRMܒG qIf21vÝn?lMKBɧ̭no}Z:%p :A}K+v]>P[]h(yVM덱ToVxT3a{:[[_"@{a('MV$maʛs'O_e%ird[A$][ǒX&qrО3viy]۫6rqV h;MKMERBoMvDƘO$U-1$)[T ۦF+m``_ZD|[ J:m$¼q"n-i][ZISNw&X)Y&zhpW0Cu( ?k{&H?A=-Y25=1/¿6bOV25wKcAw#\nnPDV}sC^4"{<,HI Az5c*$+ݶbIn%0~{޳e.qŷxb[@ U+q7}F1RLtvkkUݕ5XRԓ'X{CHKa8ͽuqv+`#t2Rv`(KTY$)FRwl 2As,b8 >28%|}=q)Jg&9QH`g܉B&uu ?c!t2vedqU&v;+fYA/lrAbJ  2(qRDe\?_C='AH8I$\Ho|?̽%;?Pdsiqi3ԅ؋^>Bpm\}/[у%>$N i#\]AQ08ur<`4_%u-KA0!b*< be1{@EHۻRmg*q((<H3*} fԉgmWlX\@EQfn% FM(ᇊ-}?*rjoЊ x !lA+.@f z1OV"Wʝ/ QZS#ͨR>mc-'F"= O?B9,@>٩'dO&pqbCG)iajEP$/ T D{!0'k4ʚLg7rSGIž5#^dڲyRz÷[𬀂'/֬I37 qNIpcEFzdß@i PǮ aYbKk*0Bfek]Ns:VL^;1?캻 Ө.x,h[ZLXJCM~'&p Qwkeǟ2F\۱+af%{£|WfZڼP n" H mNPvܓ@DqT$\9Nj*Wb*b…XtG/?|7Rܧ vG&l)X]ZWM_dq_GpgƷ~matˡ2 "vJWeOXVKI};SX 0-G95ߣeH37裷IrEؕOAi/rF(z؏ 4Q馂LP30o^uLgCD6,_eȂ~I w{ܙ^-$zHy9<K4|'&AX[Rى?& HFNn k 7[p6w?,E#2 M l5x@;wZ $J н2S~7f|$ b/\L7eSY2F`qzD)`a ɹU^fJ?8ㆂ L' yQ5EFEM%r+Dn.bݛ򸒷ݕ}\K̰(gC!^J) [b"TyH3$6&%fVڔ׭gRyzs1Ypڴdž^׶2R|L?|sFuR_Ǯ"'\sc 7v(#X bSYUj*^$ tx7.h&e.9U wΟp0 %)O @0$X(u[1 l `5 a//J"!1B6d^Zsi $GMv!xT{rԺ?j;c{rE7TQ(|}^ IU,Ka] #vY O;J" _SI7ijozSLfcmq:$\(Pϥf*ެ<U*2z!sւ)郻G9 huF  mİ:@\]vJ_0!f=t2b9݀Q]-RSlͨgqGpBh|́rO_lxUGrqp1έEϼ.Se){ȣYRdY7J`_2@"̝nn ޱ$|J^Saz'1='eyj Dx %L5aYJHMĻtq`~?Hb~zr0-trNwA*ruڧms,.zgIJESfcgσi7|! Eo)/A wdhfCɾ7t0Mv}?Yri4| kmڦShn@Eeސ X[2w;8b1Ly?4D]*3M#qvjXJI6 ^_ܟR#0bb7rJX1Ncק {+A:A8?Ί$^:i|Zzc$ײᑪ7 %u/˜c W.tLwVS@rR'\i۷܌?]@~]rdUSqt# Jm{g#ľ;n3}|sC93Y70v$NmS q fQxjђF& 4k<C XYuFcL⨋iol,LWc:)&N]#q`*{sNcy؍k?Qp-4/]j%?PjH^7K"H]J)m%%yT# W>[kpP[Yn=B7inY4;t7f$ _(#Ĉs F,D̬$2`m<2~Drj}u6s`YL{>7.{nQQ&5,bZTO3Ɏ鷴3~zNޖa~Z0/e h?&P cd]@mo$Vt(1g]]AHnS +GsBaI:1O2p8kfhb- X> \T OG99h5 Q5ϮtWPٌqZKS*TOVmK L|ˣ9)6SKԎժGE@ tlXҟz?&+@L#qKauEl/Ȑ6YUl̀n;zZ**dCiE6e(pOù-/uh<@ E>`Z} = >qeZUFyp=>h|WeC{- 5~heƻ'TE)1ԕz*C? {Wœ-է|,+-<-x)%MV6kN;ҟOWznk a\\3`/!oxnSGg5L,LKH4,N Gz'ow8U0 M1Oyt}DZaUiqҚOU18#e\9 ƁjNt }[L@M}t T>mBYS˘}ؔ*L9t1#ϣG#5ېMQzs;'B |WR!#29JVBߥ?I$'+\\n6M 5ZTp,6C/r7fwX8>=bm:3FIC*m}@a&y.!~ќ̳WpsuuLdъЏ1utPN?}˿ftҩ)X`΋!1vqCp̕?q^3e\ѽ{ }yN`? Z5T׵H#6 .ۄ`l~+j@9̙ N2nT=VG7r|]3r$bc<27X%D[6 USm"A+pܬ2?% SL,|d06(ѣ33r{<]hGs$Ak"?^ }>uxbbgS} K e{+D 1-%,*f`gD4 cU#P!}. KIIA[IH9-k*dLRVUUxy>T٬/=mM#ͪ6($b.ү@(ʊqٜFp UmVÛՐ?XKj[^BUQ1K`Ԁ7/Y ?YYO[Nv *UcC;GGx鋤}窹0.?"~ZvIAҒm_atvXtn![*} ly_Ң F@;fxӮa$kq-ct.kT?}mG4PCd x&|B!$BBDD  }sL铕̩&R,*Yț_a.+"qF,þZЧ1)'Vaӧ`o},\#PDfjuGʆwm&ؖ nZ+ۋmcMz1009g~He<)y Wx$B`i&@t4zi'.Pz һ3Lu.t1W4Ni #qjM)F*vgfCx<>xI14Vsr9^h^{B.*Z4h1Vڗ~~<1rxMcD6 2QSj'q-씀nB㨿f|pf㡧ђeZ8anCʹE =G` /ScH?$GYۄU9J]2&27+ktqp#yr+=pV ,ŸG?yRIur(ܩ ßE JHr24^STTr EOoA%lOhT@d1"#oV?S5̉ yiAӃ@`x.(&¬=- 'AHg}BKɱ7ܕ~X[twa=X/XU=&69#_mI{=QH'a.$ǨΆ$dP )lޕiede(tItٍ́D>؎hs6/){MˑT۴L㣿a9΢_KDBS , euJ Y <ۭ)tda f۞0(%t hˌ8,ŀfBz?هt\iKcmeلZTSQ&rj N[Ơt8Z0$ yz#lZm5EݨK">%OW5a2|zs H(iQF |9ctëRggm]3|61;ѝ~UPD :J?NʮU 0eGL>ȱ?ZvGc&J4wum U' 4*y VnԦV1%OpigG'U/_)X߳ER kIk֊K(p@yN_'|݅4l'VP0igÄ+&x:`BxȃZ\,oѡ"nBEp;LP,-{Ka=/P.ϟۋ4Bo3xp]D/ЎJ {ܠ:K#& xk)͂\]=|uPޤJ#dm7NÚLd~:\_+K& -\*VN|N:&wzuPgSv `_ugR-`7úfUڦgB0n\v6-Vqqa9VFSʦo>EPPe@}]̦%f#;Bq-9dΰJ`4E/aǣu"rLeKa4=FMz HK}R8`RtOpʎOI8M/OΌaw Fw"v]wr!<b4u"̫ S+dy;6V"4S.9;nPNJvЌ܉7{C]R)+~3t {m @XLSQr̐zvti<, E,),7 $,LX9ޮ /FԜh4I~ ڋb  1L-LǏ#/#Lib9,-ۓu ,WWK3R iѴjvPq@r%[Vvk s, + HB=D&b]Pm`$s3`$jj||.M1Op6g]41 s`~-bsϴ ^8DJ_pbe1Wu"Yms W?Dk!XG8#d09JrxS,LIⴊ??h _I%9r177)bA5x?PONU XT~&Gsr*rC|8Nءͭ>eg24u Y;?)Th ո)t} bFSAa)EC p1ȇYm-OOҲ5䂁Z4 &k_UQZ9/vQec@19Ӓ3u]dR}P#ƾс*Q36AEt>J۹xW_vm)T̥jAxs+NdkBzNͪ[dvD^M,O"wk~o& su']H%p1}hebU9&>WeE4n9|J̑IhXʲT9TxF`/XbY G&z$΃o:>b;78^"3$SK4UNBx\:kPHUsDTyeh݃ ]:yPZ ]G >-XO&s!, 2><(P̨8zH*4na#vW1o 8T]Ff\ڑJj^eIw`qZ}+bbr=_#bGqU<'ao_OaJ&n$zbg\40Ge+xˁZ 7OIIبAae; 7ar"R_p)ȮA5 ,AJ*:o(NfRD3dSWPPԗ/cz'plcTH|]-,1)MS'mhhMJ߄^LAuXdB0Yg==Jz\lB%"=PDvS.Fx;j~qiQ]&:ؿ&{Pێh;MsTO) rVc'RT:#(@> h]Ad ;phSG\,+^DuQ`_hd$:֥| Â_dxfbd"](T<Ȫ{5?/ Lx'vQXdX'}=PN:q͏%pLE tMzܠ h9hb㖉@Q4#5Pz0 ArX6iO ٞ GIӕbtnU_dSɵYMm1k553ry»k"Pp WNڅM>FIg*ZE5G3ƸŦAk_?KLLd:l:!)v!U`qXZC72EhW3,=iU,Iܖ[߀r4r%tDBw QE#4znUjEhlvo\Ȅ##let {5 UKr[ޗ:zY!ad"/&-4z@e!w>; ءHo9Ѿ>jPg86?LU-vdYģPYyp%h4̥5Y.^wajg*EWkbAH>׼F2kkHmtLjLJrd*}g‹ͬt< GNC' |>^lM*RYѪ!z]E݇k~c̅\%ݹ.rEW:a'(:%[ }t]'=Q3{zDc?J⠫[ds~C6z U-!zUl3X7NL66O>ۋvewo khMfe4ǻ'I|~5 I} Qy4C*` 4, %Î; :@(qiʁM)J]"5lDŽpR >f'ddn^(i=VLfR5pIr;%KiuAׯD'BEcv"{R?3c}} d I=mx{&}(R g5U^%͠jRsdpIi\!Z8hL YLWWȎ xɯ)GÓûV{y=\4:H2"clsC-;ㄓmU yIek vǎ_4 UmIxIW*Q0o .g +J:31$#16ߕ;Dzdj-8GByi[wx+YD8(͟0Ȇ0mbF?,mv2uEg ;\-dr3iTF@<-$|m&^goV@a0+_gsC Ew]d7yhA"lyMGz)QqHͲiI\^lMw8JB[<`ͷoG]$CbĚ#/\eÒczlPtڝVjV̱6U{KUƓ2rbH=zB\Zc'nyt!&DBtIw(=wL=vJ|4PE F;3![+z GPNVZ. '`EG0YsT Ѝl̛3ñ |_PCbƪi+0txeHe icoFHS*piYPkI_}%ں,!J~40.e2>CE* dqi?*`Sz^o VFUabݪ, '{7)~-4;$\=\3>4$h銱cUVkFȌG5E *ʬ⎊y7҈ݢ5VKq(*q1:'#0Cb|[$e,fE[ DW8Hw2eQՄRJچ٣$P-tΆ:;!Pmuk5u2?8ͤC\rd4 Z,`~d*܅7;khr9ε^yȠQ4ވ>6nK2a:j&C-7B(G'C85k.9^iW|+g*d"a>1ao[s-WL>]z6^/]sy`Z`A?r/2L[8Y2d˜)qT=^1܂:f0kaL&9bi ]!fe`hWd˴G[ 6,ܘ#dgR f#O'rVmE"[l-ߑ0 @}vQtOؕ#  zӄUrs^˄~bŎT'kIvx2֌*^b hH]hҾZM`٘N'402A z~|GlZ{<ګm:*m]hg D>4 ;Cg=#F} A ώ"GjD y-'Q π#ԽH㙮;0?n}fKn1z3;M; NX6]-="gyϔst}niE}䐶lᄴѪm_'~Ym[-쿿BxB&"Z-amG"Js}jΝxP.U#r} hՑwC.4U梛qjvuVOcތ(fvH]gZ[2 FYEHk4FjFe([l'Ux"1U]&ȸ|}V n8X灎YWăC ,,h>JX c|U+7h(Rx{~sQzCsы~[1g@a*\?Ԅ>myܝc_|-:QN7am}XEn=grRLe</m3û|ȸ'6}䪪PtW.\ DCֆ Ydžȭ<*R[]0.Cݣ|utk 7tP`ғ˭-w!yl邿 tK\eI<}Piyz 9Ԋ-J_= QWDO/^¹Qk*ᡅ!Jrmc 1.8Ծvzp rEKE4;mN%|lYSw S$!dlbW0W3ߡPM^"{&> ;JAB6Hmso|s7[129^j#&08`fD0ďƅEY:GiR$*Ad3vF# C&GUgH@{lcRnk.ҳ?R(8xjFSd/nCV98q3|qɲX P[g*+@GO#CQz?ԏ9)مY?w]͛K>ߟ{~T6w[TR+1,WxDW P\OhfF#fOZ|{Gi;_Aۥ*6!^f8MG!kX2MBf*o̤>FQ׫\R,3R*TJJ&a[wشf[)䘎Bc7A` >i' K5RTGH5tZ8adoT;zHH< 3Q4%xP.-Prd>UWBf7hn?L%LF"=J&ώz)Ɇ}㦂 8]y9! eBё+rPZKȹTKbf?ϫ252?qFb9Z/@emڮTcg'9l2BfQ#GUQMήVk$*q*Ziw/()Hj*ϺA%T<p#"vO?qhRƵ7ιe?t)JT\L`Fl>FGܦ=Kɭ|ׯ[㻛aks_+%ylPCVOP޴ ;܁ l||OS]IH&\DV%vg Wo]Gm<Mj4(( l?BTH{sᏑqN ʭ\Đ.oH#e C~q x߆W(dXy~(y+]28f26u% u>b|lGE+H&FΫ٧?K(kB N0b-ɏS4.w~~y}:YLr<"[5b/z!B]4p%ԁo-6+X2!o"K>l /qWO.OVxv݊w8t=_eF1¦VLjsҽ=H-)6f.e_CA&fAtbsDSsK2z>%~Ċ!J>P6 qbX7]m)]0Cr sN_1W,>o]]CE:3 aڙ'oZlzpqSNcorh60cM 8'+fZpgK˦:I"l#h?ޢ;a45yd)gޒ6Ct\xAr8LU*k.GWu_$jʝv+LMEw"?%TmJW.A{ y|WLcih"Y}#j78w#!kH҅tC{1_{Tm>_ܺ#' -V4zۻsM兩@-v;E8MCExV97$_"ڱj;&>+.Q!v1֭JνN+!Cz`ǁ! in.t_^b_8^q!UI.ՇE(z`x\[M~ྯB#N#.>96bQdlIAr"gu! p??J(DM"EzAՙʱoi)bM|e^ 4GMBxH;V-a룖^]:_y D%C\VC"m} %7$r] r<}Vr ?c녷?)ʕpU} ]_}Me4$$ : ;z7}y7&N݉ZtѹVp-tiϩ=u7(gRNHD[q"ͮs 0`{&;"OXP5z. .2>p`_&@ 3WVֻ?wW5*GFjYR]Ƒ1A-8*fjtiGl‘{z}2쮲?[-JL\[~Kb"Za9ZFƩs$c|ޖf 52{MWqq0<^*`e" nJ,+b띈mnwiG Jp4]P@{\v,h^^\zw@HFFukW1L Fa*v+GH+>"/@Qt՞r>g'q6WrrFֱ78 |8՝]&t7ɬķ%w1<ݜ'6M:8 yE2ԥl'1ev/>|^Ż1$cJd<>Lvdk Hi@m%\Y_ }$S9CF%ɨ C%k ,aZvv[kԘr#=&Ҋ48FX=;rk\d^+)W].Sб{*SI9W6u8JZ\zX-=ULjKΡ!KI16e!WPYVxч*`7HUglXt7 ”O: 68IOs2q|PF$7YjW0 m. Pn9I~]qHLjx[p5WbB\)S7\/GuxSj`t]~yYRx@e8$Y?&סkri:bD40K>pBg%fw"[]%LjP>{" ^c๐!Me}17$*ŽO5@a7>{L]DH8Ga8M){GzHs$/}_Jٓ`680T/1dX.<pQ\oD}%U:-Ba@UфUg,`N}3/n<[GG^H2c|HhXU.,Ŷ1u'x3 -I2-+r7fd0pN!B68ϒ({8$u$RY.ma\nXFLӆ{:`eS]T?歏| Y'qV{h,E ,#-oodQdk=KwΧHu9`,YKCu.PtG08D7I`m1"cSaf&}5:B1+L/-D`c4Z?W,0it}Wlg UUmO !@{pg <2TE; t`X+iX;XAmb+V?ϻ6$->S TIY^ ! ܡLS8//;58L1s>]Qgxi%]'E%d9dZAD-"|l ho(Fd"hytF$wcY[["L2f d.cOAm.}K]D' Ho2쏠:"][46|[Z_}uuaU?0n FR}׽G˙ & M>xI8+pY,2. 8cvf:Gm G``)'̤ws9U;`o,AAFJԼ|$/]#_OŽZ $ 2$HW= ~3ĴdUqpYhs4?ꣲꖣf1֎@d} İ'9H<Ѽ]8/\r/|Ӧ@p<)L#mcd@͋Np냸d%Fu'bj?,Es:$#վ_"{Gp= Pǵa_$w&HLsދXc'f˞$7ƯKx}5 W4 >)$K}H*EVs51epfV'7Hu%%]9JE~k1<ӌFK༁/tk'c`|M ˜® eug xpw;@o~D94\_X2~qRs M[=s R.!v"$RCJB,OG+DLF4eP':&(X;/,d5t *WAyJn4W*`r\Y<}CnbfIu5r\ wTy܌C.>vOAGOLY 8Mѣ5Bma-'Vhr$c|(}0`_Sx,-&;'c@8BAeIYQmtMn'7іxK)S/߱%a5IQjnw3^4Y£UWmҐN{,[ >CZݑR>ۈ<[Ve2s8}l&r=˳m_Di4P'JRiBJh˾NtqNJ-n_†^ѿ~fYL}޶ɮd ma+?&;e1ND.].%2nka.EX8v_N7)ȨK}ggvശrΞk=*'ik zLD!yx. (R68AmJy<>n%YVZ4- -J;7'loW-WYTn”v|o_z댜tP߸ {.L y_$$T Ǝ^Eyavc,XCiF[לha&ъ!M;kՏpԪWS 3WmNF d!}gw^e#EiOb% Jcdޡ%KȄB9 f<'1o*zLpW.熜Yo/?rluDPIew,S&RAHԳ p>X^:h YUcPbV `]w;gмCKR:I>y;1PA|VvJ]FBж;Sy G_~&Pw=Ie&m6U_}K.t>lG El}KyS,{ 7%5j3l\sS!6b1qMU~&f0G:_8! ?jIAULcCiM̢-j\jGR>ќuӝ" Dd?GࠉP/ذR!}ݤBb4.n_p:CG+Eml{O @g8kht16q'ot>zeY`ԷXm>E]b5!sl{ipMTLEcD~+]& 6}I_T !RZQrnw-$,Ec>_6;>8f<|;. $kvcÍߛx>ІG̩{ɑ0?54?OkȬ]c,t;{sb71V®1k_o5Ogng-v .\FsȌ ?ǜuQTVBM3QL di'cs)v =L}iq"x>W(dWQ+N3g^(?{®'x+5 'y( 7|,ZΉ,ͫ 4\N0.ܵd+YPe|.dߡJЮܘ 0ֿiE}ݻeͺ+S,A9,;hQSRQUߩox\"_%8PqS)Dcj~i koJTZ6ѯSb`iKdpFIUl,QV>Y:> ["~b- 2d^źEzlPd2HNЧho&-~$4W6r15EIPá40[>TK/>>\8hu4zrUyD)]);5-;@7c4X\ݑ%R  XASO313YE #$`a_imSRN<6DRb!džV咮 ^Fm [sH?3m?>;`'(#Fn62wA\֏ʺ_zN5' n)`ʛǙ ~G:sw9if:&xǷKJҳ"[S w?dP| 4hRZNM󼯅Jf΅n<=,aPZPJF鐚yvC'tʄRX&+4]ۚQcRO V@3!y8{N6/p)OR7H9(i]SԳ݃0V$D{6j=TxcjcbQ'")b?U },3\y>7[lGp r\ХOϡ#WevQEϧςW3`|"%Q!ʅOlݞͷĮ[.UDV 8tQ1P' U_?P.yiZPG՟,ÎL]lʂr@G+$5qpXo+_^^"D~cudr)bFt0>)RBrhu/+t.N7ͯí;cӦ=`yu(Ο2sZ P }X`L7KyJS!YA4ZnD/RеA`?l%,gRBprE Zs~h3؇h9')ݷ5L52%ljsjG q@Ԉ紱c_1(wqWOPНY_Fk3huwګT*|ss~Ysg]68s\u], uȉ@Hr s((1t6UJz~nTfCe<~#diD',C2(j5}O3HH0APMqM@= e>:f̜;uqUѯP{ߋڡ&k\m ma7Wl 3o\~HF8aR~BVDOץ+JIP\pO#<z۵kσҒ~@ ʹPZMp{bvH"ZFn$lz|FD!/W-Wu\Aq͡62yQU(i ]C?yT o_auf` 6q:\u(t\ ͐Ǯ^p6 X D Aui -'MtY'w#a[DJG\Վe>zo0ӵL)(s0;͝V9E{ L]c??.CL~5F k#b)!<7t$UpbE:żP=!XQc/x+ o6&-~~z %K!F/mTvSu.Ŗes+ɨzwr.MшP^Jw9/7IYzw@Wj"b'swCކBXf{b'7EE}=]::'غ~b,k̑%֏]`,0nYBBAw0*Ԏr7"茆%{7D%4A!_j7^/T9%'YGΠ_G U5-_ex[kؙ΍M\gڛ7hxxɉɌKʞJhq;G~B7QƦ#DS~?]ff21c|)t*;IWc'lzNO BkvO#e:?0&K7,C?,g UθJiH@pF?Vn6(FbCR!#Wf@IW@_Jz5P|Nk=ML{ $1?MBqky$T 25ÎMN$]撓h^Q2s^:&ODbH_ ;ZC6ezkHw1{2jj%gnpv[W>2z(bQ$h)6v1âp=_aN1b#8:A8_V`Xx^he)E=e 81vY*;DmKy v cn}xp*kb ^wYղ7s!YYL eΌKs[A&p<VC'2rͣ׆ejidx0QH/D&"ⅪMմ;2sPˆ?7?N d4j uw5쨩?2 Ҁ*uBB5rVӐ9qv[NLށR+3i;ֵzGDKif& D ne 4s6!K5w~y;E~i ubM!hHdw!IhxlEQT,b (Xȕq1+m*PE|k9L2ܟ?F2fbRv?Hw)=SOQQԂz%/в <^fH٦nj Nqa'X8   N]d~yzCSuu/$ߨqƻ4 tHJ484ydS'P|o#z*#ZG`8lI)%M5iL"0lbK%: Z AD3LELjfo:;0U2f $5w\ybr7k@{:{%s,82 uVGKR7>Bw Ϯ<]|ɣ>D3h/`gqwOG.ttP Y:N^hB$X8v_Q H? P偟ʶD޷ϸ$XQC FmsA 5s v@0( +Kn^SsXIRA|m=cC[k\P%\z7(;T0*?Q*}ꂟb]%TE$ L-m?ݳ@-)کQi>qELiߓo))", t.-xa(4G˟&VM,Lj|sv+6a !gM L[nKb@Lxtcba!-Sd=+)) 7v!ݥ- ޞU3eUBpX+M_Y`ʘ,AjMq\6LL\`[6ƒ8BH]K|IYF*\O^j!Н3LW/١uWD})K(-s}LooƁb' ci(zzֺKIOm+3_|`\RIs""sx^yVR f7j#QkA 芖0Ѽ` pn 3WJ0h_v3R6 ([ݍFxb5\}h3`o{J$D;6s%kxp*NȂ7F/ZKK~\n!YP:gΚ;u1m"~\_3.e~*ejŦQDARs 䛝.Pn7 qj~a~.<`p ks \k]|X)%~Yzq!Xzq O8J7ZӘ M`wo6cÎ$" ˧BB#2~1:b|H@\+,Hv\ٞSY -iz|,Bxdv>l׻Icؿ]lPjmxmET&*X MQIя8M N]OSCQ`Z~'AFl FDa[`*fVcD&9/*F~[qzޯ{P2_B%z9lk݆x-"hH )y-VvH+ӄ[=4E.1 0??,APa@Wq_u-" dd֤qV E4xp4t)k'߰ĪgU2G){İ5\o8C,7\爍l5{}aD[?-ƀ^gnOƾ.)*&N5 ml&:A:x^ cme%7coMA _9`[vC pz|Bn_'e/c}M q >?:ůG7>Ơz23)\Oa߱m Ӓ{: ~9xs#ҌG&]^٤qc傘Y!dj}]Ixb魡tRMe~Vz rPWqߊm?$ۿT)9]FmAEVA1avXju3}4MO4hW!SS} B!!'4XכabBbd  z[b#c}1._E<玥Jv&$a=b{%I~֖4kKJ@ (yIo}ČcT*~s .'0uD!$̉l>bN9,nX5+2t;NQEtK ޠIfJ(v)VX %k6ndSĜNѢՓNJ<#noă3lUʬpEJirɴqKjξK1f7"VsR !(HW6A>j!JbRA=Da,`^9I?q;>=-X';~lɐ~yl40rai#>R8B7uB$LZfm[k<2{$b}%SY*En/2qbۇdu>zd{YXT2?M< pAJ+L`B04d <FEO Ӌ`T(l SD3rwê-By=HnZ ,--JU'1mCQĶ9PsqOn P۔v0~:e&MDuB;̉dV*PKJk3vm]I_Y-h#Rk\'!Di$GTih)'i'WnnV[͂8uQڛ>P#>1cxPFo٭ ,7'cYyHbUIػI!IsZ͑8yFY7c 1_0\f85'oNbNzvEuLK.;IwɦxkRK`qJxw//yX[+7=IH<2U^]/nP"B9Sc?~5ih(>عAUa8lģjVPR* F7:A<8eM>,MEeg7LP+"2NÒ`NP6}錬6V˪ޗbit1^ kn~A*i]4kz q&=b__ *gjqJ5i}C2w]E&^Fdfhp<^ ZQ/UJ5=\zKK~jT,+k0,(C #WD{eZVe3PJl Q[zʿf˓mJ(PCɘ #_FLob҆LÓ##'Y ay]r??*-d a*фo(3E wSP)肏 qYiRhf튖3YTrT Nb M\BYyD"k͟,x|nĂs U0 hB9J*Q1}RS oJ5y\&sDOh!Εs%b89{fm+nڙiHBGrj]6`'۩Gfi^:^'Akkk9+?v^1$Gsux8/ʍ )XyOfR@4JKnsg(o 檔J] VxY>ЌIb퐁kv]֞`GӌH2[vlXjN /0ra*m>N4spK#jB>Z %ύכCtyzpDnɴH3XzJ:pܼ}^P_Ӏlf"u$|N;3( \#c?pxO[ 7O[~= X[[Q ²qu%J EAdt'6D:`Y`CK1k104A'0Fs. /-K>0E?zqnUw\.X煋8?zN=4GƲ0-6X-+)PZ?*XNv"ϔts>H i&Oݰ.>!ӧW;>jaXUk ((Ωv*Lm,-$ezr-tNo4ůl Ե&|{)"e}O*rh[3[oPvѕV IdύpgExȉ^U'0D 6ؐ8 j@q(ɱ|˜h=pÒ7lg=du$1-#79#f3a;L[`!<g+mh؟\/JXka4{Bt zK4$0臷քl^NOeS|c⠽HI2tg4Fl?IA>$( Tdy8Dc|V[4BwB,%}*z|zYyЧ]RxFVB=W/ΠOV\'JfF܋/ :!Q #r2|8|r<:QsP$- rkr58r"bÞ!B*pPN5x$O,9ov ll_r$X`6}axN  sse\L>ŨEՇ!x',+V׶]hS&CaKk/0ԚPm` ZJr +浫oBtݛ Mf{Y' R ʎPGx 12(ZD)Gnoڵj0C6TLzAiΙJiHOas{സzp8O&=4Iɥ8:뀋197z:C9QdCj OQj3dϣ3YJ"o<RPG$̧"THKMl|M~@tr,kK@yn$x!1#+T([#Vp\&G&F`4l ԨBUEnVS- vv0"J3$W~CX%)U.(*c}ԔNh!&Eŧ'H3fL|mXN .DQEԵih^z*!_v[&Ѻb+bwv:Aƈ^)`+6*a;"m6'.\x]©nx%şb(-kc`ߌ912Rt6ޕ_߄jR}XK >;5?ai'NҀerm1]3t! LD\9K[3%4L%YϤh$c>|-5ue>)e~n/mM~6]A;Uvo2:cݭ[| /@a*7:8d!H v,R'ەQh`R)թWJ]Qk^p3Sj]W_响N`/Rb>v9 ^5wM4:G #UXE"˨_)ܖ;i?TfH{cY#Ok,VYBUX+75' bLE`^y%,D -f  L5-GUaB-**07 8R՘,hbijG&3@:&3"@zn6ZD ōEf~{*ʭ/y7_E0"iy&8fSȩMUsdOoȂR|U\7GJ<(vFY ,O5O{QԣL^CQ-z C}@6#BLܕ/ɂr<`=S$SE_K!iCX7﵀fdb>xXx4#qh les8/Paj R! Svðdb9; MpTMsDf-Ǚr`tphݰE5 5 ̛w1gMH!8`G\L8?qU"|/R>J$I[a g5>ɫ n~OVG5,ӱj@H`5 uĭfaܵ$ 46utRXKߴm^ՍVCϛ@EtWsCw~uKn^#^ ,yK/u'yk:ٌm@6n,/ [3w+zsdsħv**G#i hLyoסf.KҽFt/|m<$TCIޗ%R3o'#\;]jZPqK&H~![3b{U ~Ey/ At v{)G9!DC-h1y¡ͣlVjJ$b}hҩלBEAnT}=Ԡ\񭤚\yd "bz_c>(7`p{(!Qŵ9YY%j!yN[5^y,2K&,d׼'aq[8-Ks碇ҝEHx Uw&w[AGȟHUM: w2^攒-ٺE Cҵ%'!+Z. 3GQwtSk&%zəs&T~<$~[V-+@JI-*0 LpR@NA77:|. k=?ŀAp6qn./$.$_ C)k5̃)5;[<k*1mfd͠t輏 W)] W'u猽%Mn&]6.B%DUrG՛`Nie,p협L㱯tEV%cu}1Ecu1zegSڭ'@7 7j~|6rMĊPSxIt&܁q}arcw6y7g @ Ԃ_]uR-Ĉ0(=N;#{v&@z۸T梁"Hqެp8scPx?\zԨY cfi7oa\gv?7)A29K-X*n>[UǀA?JvN\^"h`D~<"@-{pI?|6Y\2ɬsR䞔YD0J/8:fopHc%m!0ꧡ n=,-pL_~F e+o$R" GUc;QpIu9)Vyjd+CYXAM"2$۴갤((6R2N' >/}a[?)'o3R}d谾e]I ~O~ IҹASG*b6|ˍ8m4䁥8`9In[]E0+)Q6]á^ $/b_1n 3It!U%^GG bŕ^a,^ca+5eܼo&n=0:Qݍۺ԰3y–bJ`eV\M躭<:8BqN\bK1lȭTlS_XU(G>#)D@m/o9)ī~0d!}`ۣrL&e-}` ^?pys6?S),tk'@AA*j8&D5C)6hS{j?2e145,̶RWd;UŚaA ̰skمyM? P[pd׬WmfoȰ2^!  lUUTjHI!(_<Dh:lb*`gծ!Ě↦lM*j0\V6P_xmW F gy˓::o#пx$Pܸ9 s[[K?Ywp_4cڼc ?2u>uqtkiͦnً^esN[&o DM#D`s@o3Cߛ9^ZqLV♈#w,A類ZI#q5ҷnԙU4Ԯ̧ wGUIndvS|{0?$w\!b 2c(| H^fx8-G+؆>*F47',MďIt4xƳq}/hR_.[%"JF_`Tt<ի7%j_2\ޜZ;{DfXۖRȇ/˄TBf]Ob0Z)G>xkW pipΝx k mn`.HȓH.I {/"Vh }n6}RZWpwZ52#$<_G[) !Ȫj#`w:+HGD1_ xi,'LATlHȴ҆q:2f`sШ//#NͣWlnm Wu"mMM |t 8hx0n6"tM+nbbڤ6ZO]X~Ze~Eʝ.矟_[A86nhJj4jMo`3Ry•H5t3l"FE1+_d&^En1͝ <.ЕvmͿwSd Ҿ&m@/Tm";!qw=yIw ^9xF*W0,vj.qÊ>j%Emɰ:i ڡv(>7C8 w+[8&i/id|4Pqww~yQg:(AiG[pC1Rgk;G+ޕDDPGo|̤4SʸVSO "Tq*CDc/VtG$~2 ;GjGyA[Q> quaYGD8  xBSTڃȦM 7vby3t/w1@N4 Jn VMo4 6TĹu: Ç.#:_B* [&"1ƅ"o17k@IH|fJHne$Pxj+I.s"J1Y ^c_ ?ң2i4oec@77%7F+yjʀ!mE W\M^X@w.#xBkp``$9KyR `g҉: 7/! Ev-?AHKy뜾"躣cS}s5mf٣29OEѣ}ӤV/dƎUgZr4TTÚ91m`=}#SqX{Bӻ^k%ܜ5%A1ZѢ tz*wO u3R)d0  ʫq1 8skUGEPaLA8}G(R +?GZ_8b`}uSZҬhu˅eT|/ۖ)zGJr ߸f?i9:ݯ-5_<䷫%R$4Tvn~Yq& 螣x!xGo#v4׺y t ?kjVyߚنڇ§xm~o4jce/'`z،1Gv0ϛJ$sL{Y>X=Azܷ-/ϬCg3"PdLx8>>'oȪW>sބL\Mr۫.mG!< vqO2"QY/ozu [D18@6UyB <-mAs~>V## ۙɦT4xfGC0BY TiAa+>؛ r&g{ůc{}X7E>q (L&SVtц5_Hrͅ)qJh*@i'@GH-eXp]lrg:LCEoe+{ch8-Y"IO[X2$HM zpyGbs@@D 1QH44ChGv .4[ғGhUѧ>p:{Í4=% ,.]xEe$oI6bzd'(a*X_py_50QehH=^v_]膜n L*ԾF^Გ J-`{7Qo|Jw}z“guW HHF'-4vm1֬Rg;E}Բ oT} l!fB$"I)4 p9& 4&aeēHam+g *G%o9q 2sNm_7i\Iky˭xw(E&~KU|m (` طci'"ٳxYFg1 ,2^ Ӆ3nBöɡ). 8AUiKVlY19]a޻wk =?bZ #c6O'ܩ Vօ6xWgM@z(YmRA=R fg֏wzx%-lQZjUdFyBL4}gF,SŒ,H+ƣ $n7!q/i| V/IOz$A 9VB>FHY{O:ϡ_R8[gCRub;JsëJ{ވI yNA\y?)Տ%9o;FǪ`1*<ܗ̽t=p,[ǭa!uӔ0~^wkJ SE ov [فcvB5O`v3 [V!H(m=|Fs\!L? 86)j\EI΢DZͧ HTWXW"}n4}BnQxub x" $-cX+W S2*55N3v4׼h;bX\9'.4$wls~*|zy hB} xhzzL4["H @p~ȴh%bNbe4oh圊8r-QIpm//ubn_H挪ğpHqo9®ES* beZԃ]f7G*q{IMlf rcYCfࢬKp07=nsB` hW^Vj!Ĥs:5^;;˄\_H nJz6V[cS}%ˉ=g x"c!L <cO1VɲR vTwGGS5&57FKGA+ot~a1 7;`$ttH 0,2 uz#O{ ?\@nKDwZM {1gA|-06 'L2W./e8}ȁPC5Z rAO9,0:%BAOaa<}z3X5:gݦWcO#2`2,M. o_U(XL 3l? 91# oP}OJw3fI[[`YV.0iG%SԜ1ԅ4ؼ!Y_*|}!Q9-|ˆ+DPD')ܲۓlqtA_4GR:A]#%uᵟFeFX8o/R_6Ϩ!{R `&'t{Gq\> „zȾmn)L]UГÁ2FJB "# HO !V#,;ZW+kMG_̸ql\X5~C⏕{*e|h5`ꈰf8b-ًi[~`l(u#1RH~%yrK{dLEXA9=MP`eiFU砏A%`뻯$ׅTlYѤћ8OQҋy`jWoȐj٫4goƙ6t0qz*{)W? 2Yz3d߀!g;w8?W| aLkyL]f2@ w"-ZܮFΚyu))^#7ܗr@Wdv9=13nPAT*yW_ >H, /-#9˗]Ê-%3qbRdl%a@p^/a7"[I[p!_@`Ьe-ARiڍaΆP!1KmޯD = sdE*&g9#}Q"qS@Ǹ!0^1r 'SX,:HUO_C#{NRarz,wE5t'{7QTi7hEVMJ3ήi`QS%-%>YIp&Pe;?zUBX#m@av@LWa-¹|v3%z{?TZNUG/5@¼Fy3'SA +/ڌXhD Ew%[Fք¸SD) 4f)X!V\J*s|_vDDe"k+ (coInk <;'i+O#l;sø67ςP'<|F-`F5*(Ok]{-IO^ `Nv9YTels,2qfhL6y :55\\:` :va?q4愮?̈yoPT) 63v,V;2/\Q 0Qaj&p >DwXH 94 LYW 9'-Id? 뻓}U^\,k?Cp(¡OH<E NU5ҼP: _mYC_CMK`] h <^40§^{ ܢd3^'YAzX~cJX]U7TՔ.lk,6չ]Hzw_GŏSLm1}Z{] K:/!h(F_qDpF-S 쇖F0Fil 'K@=ǩ\!ӡb6m0-6vאxbvfri"|Oh_j w@.@aX)oB? Z%ںs!@zU[@P3pVgXS-D") BUFሰ}Ukn ؜J7Bk _Pf؋N3HB77;On"[,~ ep# ZUeOOcwRaFfͰ0%)a6b{ƲKB2U|rgyr"t< ^>HRV==V]ǭL_ymkE]lW/4B(nKY 6Vsd?2%XtǞv֔9| i5šOs˺@B?C*KArhAWKV n L]- 8,O~P*\@I*,I&xM5Xy@úXP Dh.AE `l_֌[SUUyL_V7B:|ÿ&&uQќ/P}ʍ喧3&?с($L}-&+$6o'#VAH-tV^6j8X#S6=ܜ[gz=1Ai0o|ȀKE &)"lʙqɰC)0O%rg^ݚ/X)^0+iTҫ <[C1;ij4U:$Y+5KE(mv6q|o׸1 $o"9DKD!dL]!1ceWOwV F'.Щrϟ>niݓJd4 Z/g" zvrY83q?]SDp&BY Z>^j 3e+Q![HcúT89Ysrd}S4Kh3ijYR+5p+xSbFxwmoCM#KFNt<R onwr'J!aG>)(x8pL}9IZ׮w+IR aΤƃ\ڬn*9~:ZbXO|yyG!\<-WW+ ]OW(oa_ $>+zऄJ"SuˉGJM2̓V +ԁW(aIkHѐLԪ(CG(1'fyWymnh`:$r'B ,!9eZEu'sG*T.$a.ϫ I|/tZil5kN)#vE5|C5t+-Q{tڈpo%PYT P\J(ʍ@>B~|ju '( ߏJ)r*at Xv*@CnJ:v'H02MWIEX^A̕{>S*G] w24Y/qio,&7 Y~5tkl@ &1 Sd1eQm=bFN^&|n`6Zp[W~/4:o0GJG֖g2/Q*@X 3'S4p z.4N@+2./) :v9PBI Wtphf ]z^HQ}1B/bwH g n5m,cͺ7' /&A0e b^9Rv,H>*e&#B7}\;Cj=瓃3;9:'C~(4fCJGB Ly!^ӃHQLNcey,J#ywpIFy57ЭaU->ܴI5iY3oJ_xcucM ΌHK뒄0H*[S:jc_fg0i떁Lc Ğ'`쑡Bc'/XcϨQ@-LnuvWijvn;vdp8Z4[tҡ*[_yneQv: #ϳXJ yv g_L}cw/EdaTxhKѻƇBfpgah`bnrAʹ췋,MDFZ Rڼ́–5ދ-.w–bm^¯v_'Xt'3+ QTQ?r҆@0C{7Z+)b*F,S:ȌtE}ߤp(Itg{PGZ^|kPE$u)Pݟ|w23j–`eB cDa:BGwDG!Y7}5g:E"kq$6/*YXx0hF?L9 dly8͟1p8L>oi38I"wޤDžHZ%K%@aa`#,,q_L;" L뾤p h\.>Fou{;<Tn1-22˲NZ5Aԧ7(Xp?xi͐%^ag`W~js-+T˽2m"-{cuxV+jB*!|(qt"ƌ>A+ ѿ3-wܔlO:Wto/W94訦_tB]uNd0J%`ŕ+1}1x zZzrϠo'czr^' 2 iN )p $ lx1ySN? ~=ob=+=/^a_C)݈ ʕvHS=o^rk3:&dSaQu&i3ԇPq2YPH6A\i'eUhƷ;O pipw]m0Y8)!(H h)'<s\F;}OUP+y-^遠mxݗS:,x+ȔD#0w>5qqV;\9uN%Ck < >u%ۗ>/2k֣Gur͔ &Bwswe$[Fa>c8 ;#~\ C* ˏSa5q_LD[Q5~H׵[BP؇lL 7>A,ڤaHԁ _yIHgF h7jx+\0I WѶB3'@1j B5Q.]۬KLT-E_?Fpj%>9TZGh.݌n㕁}ry(8ה+&Hhl}Dһt1+{Ķ⮉ci=Ŀn'(lEƱV%^Bvo0b(8,u*QtxiJc'Z6.ܖ6Ǘ҄4~g+H|97,oL&SQRwmpZpͰe ;)*BėWJ8[IƼ߻sY 4:YL!/:+v.E]SC1IǞȪ 0E|:hh\z1jB66ɘXˀ'p$>fl f1&F>Gm2b?#H@ lM=]i1-%էo8:5 /ꭄEYDoQ%hRiZY+5JޯO%ײbV8(Q'.Fd48D v`bE5 *} ѕ佐9UN~b 0'd$Ƨ!mHBHHy%a[@-Oi JeQ7sιPտܵ-k  'nNrv*fOK4A5{Lqd_H1wI۸7ZQyM2U?HUc9.&_(4C\/'S>%鯽'丣sb0T›p (Ժ()Ѳ$Sٛ5^hb|vZ\=KH f IU`WL(#[7yϦʡ6)al>6t]recEsjM.e!疎kREul,]t2OIpB܅=E ?Iov~1AіnE*dv l mGR{!"΀t6 l͑ր&o)^RR;*|3wmEy4E¿c1  3!,1{ϣ(`f}EwJxG)zdLcL[xg/1&r_hIX%1ĎĀLm,-%V@u)CrW߱ {͆dV/}T7j2kGI֎5oHygz|SZrw L@.9SrJs0`1ZE@[$cI! 6ok+OGӣl%$KuT-5 ZQ< 2A^6`GH ư[4ojY[iR: UzIh?<fכ!2Oes'jo^ _\?򓾱o#a6? 4|ʑjH QJJ_"wl#7,9UO 57#Ûe*,(xnP͟0f0{Jn#փN^oaf[K{s|=5OSp.<%e]][j4ĭeXc$aʉWu|,,ϐTڼpv_p)RrqYĀa %ŝ4XQmu蕜Nc:b q cLRõJ4.UjU+i( Lx/\*8k*ZKaIt]xHE'g30o|cReQ(g/GV7g>a˦+xR@iSd1G3pʳ0 P$uB:{= '7"?y_ijpGj!c/6R9k*g'QwLV3_)($ozk,)U19fc /vJb3$$jlXO'YKH+/zJzk |+7 rM)Xe̦6pNMY꛴ {[җbl 9~p:QI*:loy>.ʗ ۏ⮋ݹBF_9! {OHud{uS蒎;s7kJZ,VE)r\IÄ㎓Pͷu^'p,D; xr.4A.b¬0I0D#ZskzTU ||R*U^NgQ"F8nszzs8%"]D1 \NSern^0 s>G_j0ϧ/~L֩heO^5,!4*(K35Qj&,`9@ԴA$n]q[<~&PW? ,FseU B?ӝb)'CD/3Sh}=Q|8,VimǁN;XTUP,*@l-G<+?6}o$XV+0t\7:N6os Եi7 7PJ4dlAd;ݼ+?5uh::AYsH<=@?YDljeh&~ <.cV_?=Ɨ 6*&+FRMon2]H$U"g,K(uf3OO^9U2oUN3tC14p+N_N4i΢&x7kpt]oYT^;S^w ĖDg #M=p}\ cn[1ܝq_w7#"AAB)BG }Tղē(hz|$%O @KI deP^v3#%n& EQߙQ "Г0zcS}sU9Ul%K;aF9'z9JA%3xOD^[~~e--?GsBxueƌGe =]/ \Iz4; sPd: [˧ϝݼ\M^elθebC5VsSd yujׯ^˄꠼,abኇHv%3^ z1R=ک'2[2آKT,b3DGmSiF#cTs>tmX|Avh1b_ea7h?!qǪY,lҨ]9ۅs-_,xԯi2nx>p62@MH:%/8_Cߝ?]hUGԈN6u9MYEZve*,5%օ&ɘx,WZI79*-r\Ӝ2>߅!s`8΄Z1ˢmЭhƗUG%'vT"@{z.Fk~M@lcΠ4@"?2|?7kpiR*88DKY&fLiD t_o_2^55 &$|~ddӑZ/\̓3 :F?asWIdvdy?: HΝp ޻W3)~BEL-2mR9 hO3&(̮*@Ny:S7m M^'8THH/ZKQ/\0}t1T`TGf'8g_ L㡶Jd_o]^ėŵcYD;eb?Hq47f.G(CJSvT/ۈ3T},|+zœd(ëksڂ}+Ƙ@f ш Ls tTss$u̻oQM^x &,l8r7\-d 8/9qJoΌu;3$0qMTmjJX[Rye r|wpxvlhwL*$:нl@Asʠ9\NV vg)=TQ*%D 3šO_ܐ U#~z&~%Kx'ޟV@^Tx*VnNj$8dj1HaNd"n5g/u$&n`fsP_`O0˘Do]fLBF뺥y/.r|iinMf]Xa\bݴ=`BH!cPG2zh=zP| Uy7 bdLBb6\XIf?b+)03> s*j;3W`A^|K'^_wa`ﳆ>+6otS ++Vt}eFlmOAϴ!REozZ.%{OL w.dF`3Ba;|Do,VRcS%L8c^KC+'ЀKscWn.Nm|^ⰰ* \Q700^y0tL=_lFUK6[3].Y(9Gh Xv,y_Ȗ- 3>Hx(NU : q `J!B!NE&z&Hԕ4VG,8:jr%f)SOꯈnO[@0u9 QС!,U h'#z3㚌_ǁ4-2$Θξ6/#0!"-J.Ϸ=m*~.ǞfBLSwt@KCp#qNh5l$70^s~mZ\nƲ,.IHʳ yĖ"&a#dt ~B]`_{U1%s Fl8 xQW](>Z!s*r x~DpN1!W[47O+3AQ3IiW'ۄo }c5wy}kpwH_MTI5T1jTتs\[Gp7{~eD셺7Z()KA'Lj## #}H8Wc@[W^SE_k2rcq9><\_{]N=\m l-axXwUL.)9id/hym)}Vf ưT(Oe'A7t/Od$3:aQKGJZ܃^zO2t /Mԉu7MƚlZt0M vj 8:x/D!XUfiP*3PrH{Zue&#ţMaS)`a}WZȶ&Jb{3,OcŏWP#K^dv S1}{YsB,/ .O)1$(DF*BXP6Ew/C i0‹IB1Ɋexf & \պ-6dkf&4-#>'ac7LhIUMԇ'#x$ &yaWH3NDöpŽґ3tG\zPEsV)U<(a簓5GY,y)KlXܫj,s &^E{D@趒i7 g"1ې䙪YJҊR:Fڵaf3RH}Bʕ9eSc&t_W/2ߜɞZAzrQ.trdO1Z5E%$ߘH7ePøa=+_ǹ2GL>8Eya/Pbİ0Cx:Sn59s~R!Em\dypVVK@ׁ v9-ƿdvn&ZM[BedвDg waGSUTW3N;Oa]SҤ/`24,d*lBc Ȝe醙s&`fi)iqoqE"q|~'; tX Cɟtn8L2֖6<)$]m#yl=0 ݸ>]߹{ʬ鏠 STpdO@ 5* (AuoөAt sihtON/w"t #'x#S 2wa6_D/t p!Z2sB%yK( =k,*v0pbUyQ:Qc/ 1MN2 J*0)땷Z$T~~ 9hEx" B1_v<>D(14OJ; LD"*o)fXT@?al)J]_ w!P+*(=˺6[.Hzk9^F7ؐ -Mi=#Ξ0 |J:* R>[X$.!TpF;j5A ?)CWأBdf$2igT~8{:uu״"P_rgb "]Gb s m{/g4ib8 TvmRȱ<Ν+y ` iuO渤!\ 96}lx>=2|@ݙ*a :jЭn^ɜ$l@,n p_"@2\lt]M;ʁ—̲Yu8C?9zf?%W <P1' ,磣oY =ibl.z%|,sȾ띐/dZGnP[M<\p޻5 F.*ty@JpQoNb#3! qPr-YBxd#K[Oە oqmI6qdSIm*QT J(F)?l-Vp.g_(JNp;=0]lw90$\Z}a<;='',Mf^ly^L2q-u2qݳ0 ɯ+ڋQ"bp%j+ ՚A9׽|!So[ כ\V)_2"* vL fXmX+E*vR'ZE=ˉV1 ?9>Y9sSTbRr+^պ,.vkӴ 3l1Q*b/&Xfє|`zhP S} `#cTؒB-o9YR4TDo:5_1-O&|1#"mc|{J) >FyMZ 45@f;Z0L8>X\ACRJӴ1­ZFȗii3ooI_a3\]~zB*f /T3Qw2`=AQsa~МQU&RN~UfE+vC"#›9{q7Y=?A(Zfod*~ICo7 _ <džBz-MH8#V%%{XjM| 0=S|?\[;ęw6o<;ULy^倳 *[VeA&±df0DkrW%ܮ-W= y8wQ f p;5>!A+;۴NB ",nf f5rvs/V-->2)q8b* X`?Ec͐)l'wI~6~tfD % ^6 %<8Ӻ_2CbE4SMe@MKiuLB+ qM^6AҗtR̩݄>:F&lř?8byMYK/~H@Z(V˂I!haQtyH~HhcKq7H羅ǖQ2 #2>wKpA؅QAJ&/Yv@5Bbk\d%In>Ylo#&dρ)mz[AҸqN``8 X ({3 t-e "?Z/Rh MZ Mhrb`At[4V ,"^a w؀Dp [h?5ЬO`) 8ôP3KQRo@?75**9ᣞW..QxOH$ў=Rd <-tAӄIO5aWo}F\/)VП u(衷p^kɠ}ܵ쭠vMZʪ^̿[Y-t (ö;I.ħ,&zPDqJ Wy26+́b\A "D ` cir';9xڧ]BB/١6z®2"{_c>?B/9);.~W9*l6&:Q!In_ݥT!ZnneSts9n⢝.u0;m?Tů4L1G彮-sw=P^ ,Bk|%f7]b6J |ܿT'&tj5cԦG5S8/o_?lz^Ʃ7tad|b5W WSjv^GV%RsϜE+DķeO] '>zصsV\jS;BMOq0)"xE-".q{Ȉ{n009\rZBFi9@*:OƖȓL~q-;w=QG)xTJy- 0_D!%  8Vfx9<c >;77DXy#po~dVl|J͹R;[ѦUrobR/N+&7RKb]+@öI=&mDC&֐d)wh%Vl->]<)FŻT7xѠ - E1AvíCOe$ ){\An>+q@@]3Zy_Rb)h<[SfoJ˥6I+hS;!N KfAk#P4$Æ_8i̓#HrӒg9D;9r&u|]D^.hE\Ǭ!Dp(<\?\H}j{ Jz O]3VzIyct3'#@ѣ˗*4×~ EFtB*ʜ#}r.L^0e3]-/|U-ߞ ƾߨiKKo`Y'A/vׄ<(4~d~1ba5TڽȑϜa'd9'w!L~>#@H_S( 3ZtgIoTVkb _{U‘9{^xnHaBPRɔ^Qfn2W}B8kS O4X9u#L3{\-_πuqzrmC{3`HQ@fcI#QP.*{vnuOY[J}+ğ+Т$Ύ8ݓF/{+kc݄d}iKDuq 5tc]P^L%$Nm+?k.qTۏ7'U ZeR '@Zm´5.<n!n~6w,jFIk4HI7HqC|8 ?yRvrpʧ, ꑳfP!kh,g$䝜=}7/0(e|r9OeƏA$H#D}(~QK&\luؿ1lf',j[SF8n[5 1v$_J v2k+͔Y1oD 5/;"qҤ^T|kbsAE.bS pD楿g5!tK#{U+淈uշ#?ʡ%]9\6n2XgsXÁ=SXKߘ[Ean l<'yo{7#  ZWkPNʦɭM #v XF=1_">h f Y FR-3-\\:&OR aWvGWBgPqGi|Fq)cmjpl]f~fV@Ҋ.wԾcs\ʮ rr7r>C&Poxϓ~ /9F(!Ѽ+,H#d&[NTnAPFb18^$禟Ik‹]oqfs߮e"4ۢWPL ل+3MحWAoQq=9bbZ2jUs Tf~MγUDS.MSv:9bU ߐC8JIZ9wj$*IdZ `>'<_*a3p1lbE@ HDlDZgy2ӏ{hs G{A rt-𦕼^83F3'F|kyNnX?'Met)-#j Ex3SiqJk~Ȟ%<)SG=ddOI)8 IheM)r厪2[\ h)XcM(͈6ΪT?Pw:)kxݘTPWlUҕֳ,prJcn  cbKbZEKi|/zQOI_HMQ&%fJB?{QcFW#$bȸDk^lf0rV(vM̗*7nЏ} Nn{HA hM#w * CCIT bjsb;[ΉK4cu B@,! BLpИaht-s12*𕸖pqP Q42;:(9jOCގ (|&'G"_qX韟\q}w!ڳ%bP:Pۜ@o!ȡmr\Fj,M;kMܦ@.zV!pMi lc5W a*xHoYGZ9y|TeuS4DzQu{ϒ6P w[bYё'uT qˢ t>N7a_N7ҁ$,Jn9Fͦd%kmvA\rɋ'r|{2t)^"3]/-Զ[Bo* G3x)^_uNlmZ2)0O1nEp_&]Jb0YOeqa+B>gqD݂G{Ǟ%:fF')k$XWH)cڝ⥙DO*6vV 0$::`= h"xxa&'?QZᤦ 4L&o8a+X2@h]2^Qu33m!~Ot9cʰBUX/}9KN)480mu <5;5[ڭ𫦷 A<\~SMZJaGUos X\91,{hC`\Q\%}?+2پ!d-G |)R[Tyuc:m]F4F͑ vʦ: *>{9BVTQo^7iM'/Iz%%h .&:1)Z+)?R92ǸÝt~#߲_U&^wR/*@7\҆G˾f,`88/w+ O8 7 APHޑYUǵRg`*$:׌ew7?;)7FLc筤!\nC?܁4y/ 23LpRVdQ2a60Vl_ciB _:Dl*3i?)gAopϹPE<./ ~8QN7^M Ur""H0em)%b !0o011|y^(@K1EbIU?- o,ÖSB2kط7ˊ:c xp$LFf8CW ?&m1k\tӓ Bԭ\<ü,#54dlvEKKi[iD\twȮFM7mݝZF-b)o"io>erª@1ILjC޴E{:*%= @fe|x7pVQ@x޴+ uAR"*׾wav#"FtEab}ʆWR5_!ux R]'YG^"4 Z~jT?ZVBC't և:J6߃/Ti htB-Чx@~Ekɻxⶤٳ7 \.r{C1KCvA2*h"/c]j:Y6CN#vtpcab+b`I/ wє21SXvi4ʮCiL\G[$<* #fZHTZk@ʦ"P{R ٕX=adӣB4ﯱ\p] d+so@@غՌN OBl~}_pu@C"Idx=}LPƞT?ϤT))]dвQ)h1#/8Kp@եYN'qb!@ú8"WE*~Ӧek~c5Tن>|Ue)cD(R) 7)2&j9-NL)p5cqښW#.>K%GώStxɚ=5L5X7D[[hlNrl4c='f]},Oj2.r%Kg?N$Ƶ) 2uLK≍r6[WXchjy[d',?OI~cbNʸ9T5 .M_r?M\J֖oh]DrWKJ@lN-e3ńɱp93@L*E8x eX>Xkn;2uyjP(=g S*,WZ"Rt XF*#@.wp/A|\/[-b^$;ʶW,.M&CZ'ZS]9WLIQ*-\B16S)6]&ݨ34[9JHm2^?sL)g{aȦ S{3<>pwj ـû|]W ][I'vA"!_)w!># 0݅%-v\g$F؞<Qُ9ohP(O2 b/أ<:"th^\"#vXJ{cn֙aT]7,\py)踍Li7Nj'q(QdEX'9!3vNY?t0zg))+t^1, ݳOFz+EQ^&}gK%dilbN4`=U€"ae`MA'_# ~ZpF:L* 4yM|>;N# ;mE-IW>TT-,fwT]^97S[ ީӶO @T4o*E‚@ U3`R>VALnj?g"7T}BC~y*(U/V]'.@0 5etzBtJQ"j;qr&&*H9g`prײb(wFǂu2f1E!D *5U6Wy ˶-y*2Di9rm iāZn!\ŸZ]5:KU(\{)$̦ZHXaH[Q.)?D0Q,m@-zvӘ,Atػ>ץc J%#/Y$Q,䌤>fNlnHSKTrwU;Mx\شnx*?}k0Lu%Й{Bέjs+O{J~gl)xM]A/>zм}ITr2N^,lVP\6+ͷWo{ң?p:ҡ){\}z<ױd{!su-"T9xA )f%/ʷ H 4e/.-WX=ag7S;vת:bUj8x~sŖzxӱ3B3UW%HMHua3@f֩awgig񒗦t6u]7 v>lNwc85%WG@ iYp+Jdg$[QhoMb9]s`\Q.Z=yqӓEo9.w0`&7}p,Gؤl{X\A:昈@=K߫s (@?| 1e+JmX>Za7k96O;06J`8R p@]H?xbκL@3?B̪IUa_eQ:bdٛrFV>+&.aN WCCvwts#M%),ؠhE1w@ g[a{ tIC.7DJ{kH~LD[ҹ1o`gG~AG4]@v)-8("0,yeI~Jzb1}p-V ݵvT9(d9pE ~T4仙t{{( np}!Flsn*/P%[=mZ0vb2I%wG~J(bRq6 `W4Aغ膰wﯷbO&&꾨8M<(.Pvʃ~ JX(WI/uLVJ?Fkx&4 ~Ĵ <携vFK~gζZ.҇'~nlp_JiG,+Z\-37B~b \ǚsƒXm}UK4bh܋m [TZnY;&,'x5^_+ֺ v_MڨJ;{J w W8AxDB*bRFй#'Ǐ gOΎCM=F/+}a{zȩDBb 4>v2w<,9|cf4#^3t) &WUyI;G|kH0<6$+Pw#})ޑ UtK/[rêč5bNh-}T?7tϔ WG,@w籠wX6eKU u@'; C"2O./Qٹ" Wi[ly#>1~Ab/Z(u>ҍ~($[]R+̖M$yoeG`QE1e!@38n2Ƣ?rᛪ!(SUsݜE rS::bUg-te"5^T%7aaE1A|yp7?X3|0Az@T$cF~"M"m}3>ʳ hI#PL!ȕ.l&hSƍcO25sM2ǖ?b_GD{G.`yS \ 5 f9" ۠jIX 3ʳg `(Xвʦ)OBVt>Ʋ}1b'\FxRGͬB<{hhǍ>)g7\XwxyLLzT` Jg}֡!mr|U~Q Sww,{[~\s1m}"!ᔙ`D$Wh–!A8l "zph!VO zdVAq5Nk̢S \"DX v@ʡf͑:]}'b3Κf}g+~شEvGQ oWf<1Bg62glZY6L:鋛pY"*4L&ՌѤ(FkLX-NHnii~m"ěQ?,LMM>3`5:G:Љa:'2+ 2 =?1:;PuܔF L);p#RF\b{(`I9LZqĖWm9)B)bMtWT:°٭ JŝF* P -ݓOyYyv,CHtBf\9h?BƇX(-Aqf%, SٸOk,pٿ0?# Z߅ %3GV0{zfKS#Xo_buhgo6/%|*\Qߡ@Fߖ4{CWV؁8mS AfWחٶ&x|w+* ^!Ŀ5%a8(e&Wi l_%%i׉R3H=~MbAv [!v}O+B}1s+O7틑P*/e8}X^=U: s,+Ο[QdbT<ش-zJza,o93SY*mZO G<(g428z `<&!q\oI"#-!Pn~Xej֖'5Mq!P6_5DCɰ+?՝SԕR(cW)T-cS̘JR,#ԣ 'E'AP<".rjB+S8`W1k_CGpvnmKq\ZZ={HX]&B[^S@o%*uy6޳Wd e&VIċ." aQ8L| zz K jsAiKO~4qF+,7cd>?3jLd\ %9ISFE책/ ghWkh j6jjB[c_7˭|%fצm{In}aM}X4jo2oyvEczZxҐPt(pu` ;Nг[}NS ډ'cH#XqWP*d鄸:wW L#K 6 T0!TF>!"5t;ɞ%47X3ChPotۼIUD^9ò8F|Q;d>2J~0[""_6]I=l.==<σh<;x@ZD(PO[Z5`\`ٶ?|aQB R+QI(4(&hDEEn'DftbN@@j7$MT<JiɹdjL2qZ[d i%J M˪/tV%f,wo\ xLe w/ר*c dF8Ђ0v@l TyE8(z6Y9y^$ 9478!]?R82}>'4xvl^E44喚gھR3ݦ` 5}Ai 7pI1y=1-e%_EMͯ4| D-?AcbD SYB¼nb+|K I1 H{e=cUu:$p-9j~\.ftdD7%aJ\` +#՜7C} `ggW I} i51i`p'V{ '"D,:AaBBXտ)d aRQt&j/Z=6jgfqw$ah1x7 (fpr *W7]frJOv4:9>UӦf` mwow͋Hb!!1<Ό P+`S(lu"ZfC낐DȔOVF}7G\K@NCMdà{)K>ַf-}ϟL'dQKJ63H9.-> NC1f/dcin)I5{c yAl ^| LFiNF jUh2:Y _b /dA6N d!\ 핂Sb ~E %89߼H0Ms2N.{nu +}|E0IKV^JSrA6 ^}Ik&Auh~9nTEk-ѣeE wtʞ؋ul4"5<=pK =gx5Ǒ,[Dk+?B0 Y92 4Oz`XJ-iz`ѪN$*clD3~-f٬=xpWM( PʪtH2 7& ؒ ٟ^`ͩy _1$!A8=ud{F(Ґ>{H Nux0£oִ#I5Eiq39%0=Ϥ|PZ?1k -;6To➙>{R"Ɯ:jU1jvG~Fb_5y)MZA7k۱] g6TIAB V6WYWfҜ*eC}ՂO,0 rz~gWj99K-j+hWLR-9g&ăteNaHk#v`c5k钓'p9[ P'O ,;͙0v~N,igQm dRҦe?RHz) Hz/smΉJHQ D$8he{v>Z5Aʗ޳{G~/ Z2J Jp.l@oivfSFmFa^DQ?rBnvIc: Ea4Ǹy?3iWrs1%Q"I;OP;NStȴ^AW\3rIShu"woJ'Xt[|;$ͅVƫ]72#4teT,?aΤH\t-}Ag)^j<*g1m#mgR8"HW-_ _zK@ gΎzab ` ,jty0H0|C G15 :nFC B̅ >j&~191M|V -Va 5@l6 3j&Cn!^炋k!@X.il:T7+!S7zV6PrCrl:p,>$&@vy}g85ogSyӹK(i֕XEO"|u+{~؃{]BZZF-M8=mvɎ_1Uߐ2I~!$mԬ ! 1]*5s¡m-MjO?^7p3ekb\+b%2,^/*NU#hSJGN[a+zillIvpAfw#Vj,[rA!in#Tx#6@8 ے}?.^6 .E/dӝ_2VKRP%$d}f j_%nn)G #o|;vӹuݙ]tC6sɂ;F|E($evvx08?*sIL*68[m4%.4$l>DfQ oƣV svW{w݅Z)ۖmWk K]&kBY b*C@LE[,gwvA 9#i 3>ҘCQ̓nb-UKuN47+& xu0S.rH$ۤ Q=ק0q+h*fȒpRquqU+{KBw*ia58`aXG[}6HbQ71K=\#k.Xr=KuI^ ;$]y#eAea} i2\ZHHM%![@ےb[$V" چ֓C&E!wrX~ibn)>w5^ TVeOͽ5}'ww֡S65>d?L[j?7)m<[$h)j'9z5o~ޟ(O&OVe#w"| y =EHT4"0k- b *K;?7؜KdۈpVf{<<$[XI2gv>(f4]Liglt>d$quTy |}>~?~ɧbQ\~%[iٌa3Pdܓ) @'fPyՂG]kB-2&h&~n8`pcR[F\=%lAs8u+V3.b,p:: *fzkB4nWoFOsקfxk1l f;* GbZ'O+ p3rFˆSg !j'~y}IYV lnknG3/x-fg ϝ467o-nds{,nTScKCTKu#oiBt]9jғpnpWzv3ן@߱wJ::~e,hCђ5i F6KA=q%6^@KA%Z=8.-4?}%ښ EfD砧d!#O:Lu# 3;>oI KoʅC]b2wQ$,<8ƴ$Dzi#ͨ2RDD J^਴~޶oSB 3Zb'L]3H @Z=U._ 5NSJ6san,fjbkXng(.Pf/ ^뇉XG#L8X|'RуQqf)7d8tƤ+4[xkHe[*øQA>PX"ici|lj J0GE٬PcU-+?#W%=ʹ9,L/a%3W$1e8E!SIC,ra>;Ut?/zQ$xf3"Yb7G2ii~^Y;,sN-oU.(m<&|#9W.Z̓1JU(  k}p4_JX^45NHPɶ~C=`h 51W̙f&>ތxҢ\Ӛfu͓n1^j9بZgg sbTH^nfSZ=;68=V*g q?ֆ9c›\Sv:Qiu0åa!agk> EF˺HXP7)MJ<r|^ksZ4|~7o1'[E5$*s*-P]ftE isɵOBɅe2 "У7ǔ," ͖XDqMnӓjyU ՑAYofdQ<8?̀ʺdUC/jXՁif?oظK&;+R?N*ڲˈq7EE*ߍp`غKl,L{X׽n8ibhf>Vp:yot :$ tʪNpl~C_ɑ;+B wN [u'j~a鄇'4wQlYN7[m?fW94?ujL[(t*]peF/SK[d7\|G۳z cSgqQFÔ ~+ srj.:Ja{9LJ(}rLE)\])KQ,8h6) fu\kURg*'pА/DG#!t%fU ɩv$(/Ĵ;.HQ祲A4@5La#&M+z__nV-,ĄnA )XCrC[eJ& *fT>/Cqm$ k\r LjM a=}G jX 9źxB~O3kbr9ͥo0*Ń1FQ)/}>:txV>?G.&QFD":*Ίj_w,D^V LӱX  ch3H-ؼŘCy+yeؽFUM|9XG|ǹinq< @fvq%/7cYIɠȢF /0A>[b݀fdkA1 E̡Q |#\5T!|ꊢVbcI!C5xL*"n5:?X[H]|ʩ["-z>7t 6;( q]9 hܬT`r|k԰sy Mփ/Cww\WSp>2 Λy3e gS2Jʵa5֬OҐA9Rj)GcGCTghSH=G!f|mGj=GۃXc/Ӓ/|zH ~Zs;(Slb4@ c"wƩV _'kRn@MFm> rŜ̷۩h0|Sh}BJ&5T`{$Yn5(6lqB< L]|NpP)[u-Xuvɒ*K˭*:g@bFنy30X9f5rc3A%c讦ߟYy nm RӼccH.rhR.R:ČEDn]`덇I}EIOk`Fa 8/†`O댰,Dh&.#<2 2*=nm =h'@+ mGi鉺vOt7>,i!p^fe1&.AOWs#=|,4[^"ӁVq|?Ah`)ȶxdf}.v 6ȠUͩ P`}*/z5TXƫfKV\*>L}7eՂ6™es,B,j- Mk/aZxN\FSs%ɱa7| 9И,elNpb Flu h!AhBr. `U! dvU3O*% 5|h~9Îf$W.1g.2q%&E$,jἤP7rGr+T}.}lڏ˴$x1aHѐCj9 ez#./-=>pw(4RMW~44+}pl5MP43a݅m2 KNUillX߾T&0T0zA6G_$CQgw%pt沢moh*l!|M+AЁeN}Ek4#Di[ZGtx+N=1$j]YEu6Z %P4S[i%s" sc-7s a_^e OhDdo>1h%$\AsΩu cä !d6%'BΌ "e4f܊Q ²,i:6T|v׸ 5{m32P,bo3~P4Lnfիh+SR:|'#Q9v'qfqJ7f%MIuDsщx[pxUs^6we\lЋ!vؗe<*X#1ATQ[ 7&<+ lzCU^f/c醅=8X:S6SAt,9mUIQ~= -PGߞ!d#5XŇ9:v?#a~nI$j7Q|:5fRDݴ>$Is|N> WvĽjĭ4ɱ{\>A *Tʊb{t.DQׁ}uRcE S>/(܇Cj'EqեA2卑ՓvVxT=dkYvA]*\ř 6|%GtĊܡ\νuW鷩ҳ}(n-/zVYǹbb1<^fA{9kլbYxT"A&ŋrAĢc/=Xy4/!1=o:[9W<49)W NQ6KTc.jp&,]%-BC~\ˠ O!sc( AQZNnĥE\~Rr{|o/}&q`iڠ(ZS`oE=C20dز̫L Q5VH:ϙ|Ǭأm]/.0;_ƘU44|oFE@S\[{ <.qg}F 'Y TʿգCA/)],@5")i hVGHfZq@og4>~O 䳦bw˘LTs3I9zJuڐ>G5U|B%iZpL[3rv{$E#DtJr a 舄"+h >$AaՏu`&ZpTVzT K0ClVt- 74PA {dOcWxB .ń YXE+./^L5o zJ^o~ra[RڀJt{!rږllʁ*S3 t[[yJm?k}AA|!`q ۫z!f%>ϊfODXM"ϻ#98\?G$ɳ(X 1H jȑtD a .Sjt5)Kz>ϼwq ut2Oα srBQ%9Y2bղhl|`rM|ܳ,"B_]GlW_'8O"8!Û }uj" эthW!:t!QnmG:058~80e}Gy6(u/ح:~H1g\] \l!c@EFw .39r5SQ!-@DYHM=5u,DŽ/qB4/MxR2L`DH 6XRŵ4@,4coJxtJ(9cѩx] ;n@{7i K",ڸr#2D#B Q4qb͓-+ﮢJ$uz%m쾿lӓ&9z,(@}ṃz)Ö:jw\#9\և} l:O&]&uaRz &؁mT 03RK_'PC'Gڍ`|bl-ژ_,U{_ ΞgYXH5XR-'㱚s,D:<鳹)|-5:,Xfl=`<ކkG/yIX!glFA(tO<`k%qʄ=@:wEb{vCJ|&p=J̘725c<[bז~C,15GS/kX.ěyQ4@v a[R@9*+;U3Ƚ+2[Q;t}Xg|Z1-gZ r6ECt5=TPײj5 l;B08z!~W6 ۅMZ2"KI.q?~\!懛L߯gZljh) 01f!^E-; <@Jﺥ5L"VʈFv;Ag7ЫLzNj|%^-p=ף{ԙ)_aIU} *]C2(0{(]惁BqY%ҡƞu8]]-r/N=ո10d]5F졩0wMD\Iz:x wfCՀq%.I').ky'DSH4t# 1U/uB&Qh^<ѹWR{)_U!XJg'>7X #W/wsgY^wXNj"4C2iˀk[tafEe>l;>G̿sz?DDDA<N!lz=}:,ѷh3X8J#Dy.OV%_[kq-h~`7R5lI-xsV7Cu3ۃ5#gUPb /_e`Bv!"#w|mcnJn.xcR1bU# ޣ?L@&ͱoFwA_iD+WI4MQ1|iNz36 {u!jg!NPje;\HX94|4'0sfy^2V&{OwƊ~ě]q99&9w4S >*\5Ug> ~9üm}/4f10>&j6ey 4e}k(Uȥ! Rybz )Qu8vp:GܦX9d?e })\;%`f!F0x.ʕ;ćd?T%=T4Ń`Z##zOsWۘqvvH;chbŌ5<)`SG|U pF;J&܏d5Bpjߕ`F 9^)9Xq˘15گaP|rICkGw!B@T<,džel`q^%_-x> #YE>R"1gaoa6k*!`+NfQw; OXwb^;c D7ژFD\!v,F _GqE BvB>x7+gx0AkWKߏQfXHbcTH}Bf؉>&)t,ENU)lӣҍ7n/V}g1]$[N )Lu J +?g)^*YFzͱ'H]r@|J\oq,ӆTH,"k$wX4F>4\oI=SGDVݿ@eF_޵/Sr|wdf{Jy#Ö՘aPq!0֝c -(22K@O%>3*j"̀J8,)W㼵OS6eV~JM ʾ0fFy7b)<x(ᤶb/ŘjL%ұ:ArQ )E-guh!)l0|.EIX@(w~=1[x@u4D4v7;7 fZ."Mk1Q.P̛jbր?q_Q ๟H^ ȆL:^ݢX ߇#KY-;ힿX yݭfF]}UEv_Yv k<|xĐ#Aeڽw ~,eR3%ٟӨ$yŕK.Wh#R/O6c%L̿% Pɡ\7ZΜrZm[a[~qt#ј|YzM"B|,I~7!~9G>z0j% 49Nrɪz_n vY) [xfw5Hz.ӎb[iclJ%BdP;C١㿍* x/e_ZkyƂ; hC%%8ĿqqoYs|H/(4~tsi>7+zi\_pc$=`@v@"Қw~<ڢa*;<=nߊ_'.MZBA>biD($1FLr 4?ID}D %zi[VMFrd0!;(w]`5VI \Nq"$ڐ {WPw!nD'I-\v+iЋfTlt.)EB.6Zrn4XmF'3M ē][?Di1mfm_(8-ZYDz͘} a@ⴴ2U>4+o5{^ahg7e+ m̱;3=f{7PKC)7( 6oV8|wF"' >d]?QG:;ά|&e[G0]Bܙ#\vJnZd\彰{nA[~z7_ ,r;M֡zI\ :X`*6 Ǭg)\GU s4O&3h ]}!#^>oiE2IAj۳)SB8ߣ qav eB)NlU.KsrHw-ooJD(GMC8EAZ( 6 ə0*B>: 2ݼ2țUuȕiubUW; 1maՀYz':9mZQ6RR9$7-6A-6iˋ0*ZI8eNt3 ă$;ޘJG.g$.EғwƹaGIS^3*x%w2MU5WTz*m@f׫@|3`gU.& <=O Tnx$MCWʾ dgl1MhbvIe(u8*l'rԀt`ReMNlg!8Ѓvk!?9ϘtrOķNF f[lce>ءI02 S^ ~ tEf]Wm]`QǨ;lJa坎@'r0ذ5\-<.ڷE%b iï;IMKwmEfP:4)ĞjhkY@Pg9z *3ܺ nm/ߏJlzd XDh&)8znC"_pxÝʛjz-{.k:_L.pp4Ջ˅{YBAevt)7DRك Q>ƈKl@ :pcz*'M^+N}0.. T5et vԱX^)L*u\{̐\ 8L֖Nshq~p.9)6WӂIO.kփc߹G| Ɇ8<2PbFMWmG=;9C0QRԯ`p_|uŸZ$<72!b ڀ2K\qvm Kbظǖ7'4\_&9V>Mz}n^ 2+0*>=LvѾ3(MH(cFLBHVcl`mQO\hcEpRh4|XjЈÍܶ:'o#S-ozE62m/ꀟQwR ,&^~kfd p_ᨹt"$8ДpxtbԜr9L:Hj'àq.ե.BPdI8ٰuXnO;S)J+PK?.g6ncukWi )d}`5A~渡8C b U2$av`1Fη,CEdIi.= %o$1];1]2;6肺BHTn6'/պgж2Y~Xz*XB8@z=۸\?;jki辮u.bqΐ%{]\>5&a :8 2k ε< 1+(cy;fӆOJ껗y2p֌$qI"W%6 I;8ih1բv|gbӁȫγ_yྸqTh R;&NLFs+|41$UNz?Z@qJ)Ob;Bq1749:ܣe3H!0;E}r~:dUk['-۳q@rN)(sѰxMFP44j15biMkX\=ۋ7fPߵl޳iK}P̗gbO0ď﫥$ZŏM/_x=apo\ih#(@#D> P~)V`ϕqZλJ(v}l>~cvx#"8:fTt})3yS1M>,7*v_ zU kG @4#<Ȇ %s&A`m/2:ˎR!c6QX>]۸ Ő,V _m`=@3x֬Z1ujNpcj@eՙt{AN,`~rQpsHLBJ tƸY;r&Ҝ]!1`z9e=6 ª-5lão׭ح߻/:Zs>rny~C~?X)?0|{?$EH HDs!?ժ#r p|"L17*g?CW'1̄fh[wO3̲dcBEYˁ>t({ ڿ@ARO1Pd݉. k_G#{1ȳG[@m_<ċ+nl )w~\z<-I? ֪`'}rsk 8/տtx(4U &?sh|עdni<:ESdd+\5FD!1F9ukxq~0q 8~"/ca?Ϯ7KgZjK:Fr:~ay%uFsJ#ZU5hLI JQO^GXvdѢ qd.,pJ$*O$|xU r8$f#(F-~X6*R?#\HύzYa.K7ZeNVH= x٨lj8u4&Jn 5%!u0Y.hjuBuauuzKFhZ9@"*Gʴ2{^)ia͸]$حpocK&f'#9k9Ւxyl9j!G`u_rҖ2侮d.ޢ4!%e&㞽 @u{5CBPe#jퟅcR]4UFFO@OFg8-wk5TqƔQqW!HAE%$)=t2BS,D–2K*,e>h:o?Da4w$ϩ [IoΧXKL V-jD톋aoⷐhPie- U@2Ƴ Za嫀NTTJ英_E2RV_7Uv VwvVN)8]sLDFD 5^` У=@XQ +T"j6z-(-J\A,A8Z7녵͠p;96`DnPOKʻ.ɪ\(Odž=K:b3Nu5M6$הbFLNcV>wڗ|jfض> B (0-~#53ܿ&fr0fhg֐RmAFyϼ}L+PYxDx :< Єw ҕ}"Dl5paŌd.SU۪xIuıeH| E/cmMV.[>%فfE + %5Ce1N.*ԉ`?\88kNq8saVsmznPnd)>TwY (j4nCƒ{MxC˲t/fϻ ?YQ3r36HaqɄ Ѯ!د>[j2zEIo*hT1D";'JOe+"UQkH$-F~dYd4ȶ7"ˋk&߃HD=h(I ٨t!t~ 4 TL5j'EhNETP){SCyF=)2Ղ,u&'Fc KrW?Q{ް>3/,՝AKœ]q4ھv.(ۢLc*2ݵ]64`l$h{Yi-z(,d~Z~}δO% Eѯ>AV߶ u|E.^2H f|1C~UpCqZNR !x<9]% FpT۫:uaLHR&[I4wQ69{ WM`Gr;S)EavKϮv(:fmǕ,k(&9'GV+&P 2Sa E31)R[}》j {f_o!FߜA+s8K K-7{>H[ܾB@D-5^H+gD,tAHm,Q٧ ( a*nVU<vIY؉e;Y*U-ko봆~wlc{xJ{̪^ n1_ܴ6cJ]( kV)HȬ9e >z:B:hP9cEK'5QqBfVo-W(q *$75Qw4;PW"qm#{qp{Ո#j{sԱZF"8E3 G?9Q%ؙP_UڵxEUz)8l"ptJ\rB[SS°_ >%d|(jx0ݪ&'.n:2-z? ҿ 3Kh!dpeZtH,g401_</T4{'I=/{>w%!wBUvψP#o_[=U)ܳnh& 2vZqvrbKHY(U3>"gV88-vkP$;6y#0c`?O_º'P2ѡE@\$ *}?'^(CQ"bBV /nhtvtQvyHX^C֡0qR*ש'吋'7Wc`wE{`Ϋ 9<* q͋l RZRfy.kvWr7CE>~9t?` `>EZ WZ9coeMZ|:g+ۣؤ"f9]㜘C϶m\{kFF&?WcsZ9y54O^h/z!6R91}}.E,$ɳC)؟)38mF$XY|+ԫʼn}㸠vE3?.E|F'?ސ[2hQhrp־K|w]Rճ=s9,=WRIMLRe{!^e,ⲝev*gYۙ˧Uj)rƖA5=l^?Y蝻e:eR6ۋ E#+iε]0`q!ɗ$Ul)f^6CϫUgGQr٭n x'ZB- P7o7"*ɗ#@4"&xtlD2*<c01zDB8+PL2NuF|B|@u^)+nzU]@bZpE^@.%ķ[#h /FYE?oϺ3J* -ddLy:RPEiaPr/souȗhfƒ!e C_Xvc=k0 hېQD*x8S7(SuP{Ě'I7,mmv4 s.Ӌ4ݞ%Ė!i6`Vꦹ|gRGnKeĀq/Xy@p]+eX/j"&wՂBEr٪gT432[o͘0Qy8 Bxߝ>iKCʃms?q M488N4&Цƃ:ET_ܘB՗`8@JJ Tt1g-P5GVli2Qu(j?J_> PO´J@jlX_d|,!ߞ3zAG)+Ym@}Lz-">a+FW~h요KRyLĔx"{rIZpF>Nf}cbĒ=ji0cznyhU ѹ&K Ѣp[ݺ;{:7V\N 06 68hQЄ?PPr 6jc0, <5EК|eUnt1wxSV'EXVe#tCvڏū?tT;:F~&Cw7\; p/ĵ$/ʞa:jc`yL9:Sxjar#۝CGz(PIlbCթA_݄>a#?d~ƍ>_ E<~ _teUVfK FPqT%$gb\ArP dw/:-mO4WUg+͂B̺8uLVO[Q:0wۨ6=->'N! -̎oz-*pա۳ۖӵX:9Ǖ|K(Ϣ*F:/.[$nͺHC odu~1ʄ D]/ FvƟN4ט~Y.Su׾ls׺M@%ȋV«cOTŴ(F^=gXY5Gcx׿:Ǝ~K9Cآ[ڒ"²}ڬ]De" ^*ĠAۼXXHB4^&;ɂpBDx89eѼE;~2]ށ=l7d Z2ڳ?;X="cle7KLFKeuk(`t5Y*i< , G IWɡ ._})-DɛTSnYVgRQoNMvg pol#qZHDЏL^,V)P>K6M0,z99C+4t!ʬ4PpVtC\6 Ǔᓽgk(o$>{;]}%$BDխ zI]㦽HArz}O0mSd_怖fކO*%@ܸ Lg_x؛0ɧ.{0c2MS"@{46ϟ,O@+ SZ֝)! S2uvW׌ Ȏk:fbgH@g59Mv1`gS"nc#'2)#f)FPƁٝmI4 u`S;iQ;X9bs+̼*9w$HyE/Kuq|ȳn"nx &/ %d*0-w;~5 о)}wQך- 8}=u~KrNVdE[aP(cS8xδB1_0!'[~wߙB}n a[,Bџ$Y徔Dr TUvڦwVq90'b`{XtD+S?2\JTߊe;D:n@7 WI[Y˓u$&( ~HC'?``w988"]f*egaa^usp+?Țf:dA-`58bChdm@k>w25F0WđfGA߸nXdjnQT O|cc/5hk~4ϽFֵZw;Dk~rt1z[_γΒ go?ZIc6*TA Z ZMy}1XE?SO_*l vm'4U?¾Ebڋפ`v kʠ 3";^v3B׫G-6{尀Ѻ.{si?MתKgU 24EQG&EfW_<^[mIn?\>V9P6]AͷOpF=P 3aqzry ox2VA("8.뒉Y v9rx:i](3QmB71vm2-*˪ڹ.sC"Y[o~iUvҫ3y 6NR>dt3ہݠQѓ15oLb{g*ڕwQ]垍J8(֢'J_NOtE%YG{]blK,zI*RW6,7x+{0&(6XARy&"4z"ٍI~jLO"ɜCwcW<ڌdžz *p %tL{W`jl,«ٽBT]c$QcBBaٱϭ"U7nRt`GPЪTF`FK"o!?( ,j 1'r(e,+?[.6Ͷ,9LJF[iF޻\lh5c IhB,/…~h2ZdXg53aYusҳHIF]ÏSzIiNQS֦f}bR @%u D2jA*CߊZpbTڪo9CCI1>MqH]}82(ﳭCcWat: YZ