cobbler-web-2.8.5-0.1.el7>t  DH`p]nZj/5,dڳ6҃r0ŤŊxB-yК)U/sv?E/ڇrE"tƓ4Bj 3wJHsm!0,k&A<4Llg9&TyրC'[6zt2NCG;N_\8ee6g^l>iq2n =NGݮ#~+ 2g<9dPP{e 8Suok7;=t1m"mɁe4J98FG-Cء]kݎÉM PR/Jc3b6d1095cd35d255319ff555cae0a077d97f79d}G]nZj/5,dn`+/? ŦQhA"IYFQuwTM}Cm;{@`יA\.YdQz&O66+ەfEFWڎbMK܎_&ͽ %Rw~xdJ+WIHSL`B-҈ 檙ѳ~PqngEKfMR5ЉM50!>͙}dv'z͔aȓJ Y`u\i`S_ \xzi#8d|{ @pNjc+g5xfkd=d0 |a;͇ڂp^ZM:o nKE4}ۼ'U͑!8EQ]O.1r1H)3;)N֙^|Ou63:v?aQeƲKIg}1xɸ!iE7ݘX9;\ST4;{?kd  6  &,3P^^ ^ @^ ^ V^ ^,^ ^#6#T^$$ % % (&.8&8J9'`J:5J>GGP^H^I@^XY\^]<^^bde"f%l't@^u^v0wP^x^@DCcobbler-web2.8.50.1.el7Web interface for CobblerWeb interface for Cobbler that allows visiting http://server/cobbler_web to configure the install server.]i(buildhw-06.phx2.fedoraproject.orgv`Fedora ProjectFedora ProjectGPLv2+Fedora ProjectUnspecifiedhttp://cobbler.github.io/linuxnoarch# Change the SECRET_KEY option in the Django settings.py file # required for security reasons, should be unique on all systems RAND_SECRET=$(openssl rand -base64 40 | sed 's/\//\\\//g') sed -i -e "s/SECRET_KEY = ''/SECRET_KEY = \'$RAND_SECRET\'/" /usr/share/cobbler/web/settings.pyyy=+U(!aL u& m@bD-;; W SS   eFDZ[[ZP]]]]]yrO jw\ v JbA큤A큤A큤A큤A큤A큤AA큤A큤]i']i(]i"]i(]i(]i"]i(]i"]i(]i(]i']i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i(]i"]i(]i(]i"]i(]i(]i"]i(]i(]i"]i(]i(]i"]i(]i(]i"]i(]i(]i"]i(]i(]i(]i"]i"]i(T]]i']i']i"]i"]i']i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"]i"3ce8290e7408f87552d2fd6d53345d18f39736d96df9f6b0e93b92e2dfda97dee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e60c2428edebc89f0641b4d67568324570ccafad16fe35165854bc1923fa8831e60c2428edebc89f0641b4d67568324570ccafad16fe35165854bc1923fa8831d97ed6d29c6e3b5969a8585f327f551e785b293654cf8ead600aef6bbb7c9ec1e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c9b7c6c938b15dfbd7ca0749c2e18a2e0598bb7298e3211077ea7db194379a29c9b7c6c938b15dfbd7ca0749c2e18a2e0598bb7298e3211077ea7db194379a29532c9246b8462437aa1d8f9917c36ba04b7f01eb0c03abb2abfab94bc4620aa6865d4dd909fca8e6a0e27aaa2b81e292da76c5b470c97db5c6c86d23a101396cee7be8184c6cb57f368daa14b396018ca951d3a040cb9ec1c67c101e2842c9c4064f857151ea8b527ee6a660266b04a1c4a85a1581556645cf5b3593b0c759ae13f952f10186ccf831011a1b3a1ba93f39230f86fd736289ca860256bb35752979b5cf3a81097fc276aeb80b265390d2f5b95b732393973ed23f5918783f202644aad6a5de5b554673f68b519a5f92ffe3345dddbc74f5742879fbb17afb79dbd677201e2917a52d178dca56372651c09d75dec64597dbf8ef096299b8ed01eab7bf523816237169d593af50d4b273957ea6775db80d8b836a3ef14714050a94e70cb931596bb8246102ce57cf465c798ebc1c08c20f15ae71eb3fa48a68877dd8d3801ab5b35f4760adef25859588e606e5d499db4245a2de784edbe28f8606a1563f3f0a30473bf392744c6b8a99456e305933cb5de46202dd25f0452499824cb57e0e36c18e4d76ce8415d5b91001f42db5cbb0256c956854f8d58bafbc8ba6cba745c5289417cc2d87d7ca645e2be9d32a593355d5c2185bbf85179e1b511b0ffed2bbfda63250add41802c21c8cbda2774409ae979e15cd720c32f1ec63638e6dc608d157105f2a43b044b656f7ceef07202a788db8d501ef67585eb5ad22ab1d3b65191de44420a37e40ddd872c109ab16979b983d7446d50d2087e9c99bf47312af9c4b5bdf9f1f0e03cd59a4a1b47da6a9feb04e026b266e668a5526a1f06f152dcfc7dee700a189b6034adf3cdc4a1f4fa37edcfad8c13e21ce0eb671dbb59314921b93c4d2b1a40a758f0fc4aaf0c52fc37e957efa643fea464448fa03e911b938a1c71a548ab0c0bb3c5eaa37a758c39127cde2a908b344ec0c220262fbcbda31645348b51a2a8fbde654f2cee8026afacaf247eadb45a093d31429f8ee5fcc2850439469aeffc6ff00528baeb6736eea9e81a061c340cff88579e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85585978fb8a55d20a3c4d600d88c2ec13a165a7f32eebd1d81c654a82ad58b6ff585978fb8a55d20a3c4d600d88c2ec13a165a7f32eebd1d81c654a82ad58b6ff595cd15936a95fa7d8b6bb0beb70f79d808e9a0340945f4b232879ee74dd5c5bfd23fba12c4f00b92259f753613520849b769664620250f097e6fe2107648d862d23fba12c4f00b92259f753613520849b769664620250f097e6fe2107648d862752490ed74d272417043595ece60e2a910f111664708346a749f7ff0e66c4125af48e00b7919c2496b54af14f93f8117ab5294007605588a88c0342b981cf82eaf48e00b7919c2496b54af14f93f8117ab5294007605588a88c0342b981cf82ef3a1a2dddaaa686bd228d8c01cfa70dbe93e1eebd15b54cd86da15e1a5a36e84bb806be5becbf666fa31074b4001a7637f8d484833ac0b4c091b47f78b848c9abb806be5becbf666fa31074b4001a7637f8d484833ac0b4c091b47f78b848c9af34cd34f7123968d4fabb711a60b4924c450c2465b8bf5f3c90444344da486961c730a1502223fb47901dbad5846395ebcf1082727127781af81facb912d30761c730a1502223fb47901dbad5846395ebcf1082727127781af81facb912d3076f66b92c216e0db46bc22f2b0bd5b111202516970c7d620568c5316da1146929e6396331c069da2642102a7d7473d7c7ee4c3eaadfb2f1a058aeb42a4b2a77e1e6396331c069da2642102a7d7473d7c7ee4c3eaadfb2f1a058aeb42a4b2a77e1e12c9b36bba9af1bc5325bb0ec106790660abf3ed8d040cba221db8baeda5e81bb47238baca489c8dcaaf1633d859391c8705104462d34c1edc5c3545af8d5b24b47238baca489c8dcaaf1633d859391c8705104462d34c1edc5c3545af8d5b244000870720cc99a1824ec4daee2d13ba2f46197c6fa07c16e98c78a86fc2d87746c4cc8ccbe802fcb12b01dc34fd500fc18c08aff1794538bf7b899e55e1de927619c753cac95d4740220223bde48a032606fcaccde5e546f9bc444c81ab356d0d0bab871d3b8cf3b708dc46de869b6b974c403e37fcaabfb4d5a3d58cc56681fa98a191e7e856aa6b60f03c8cd1936232aa538eaac646cfae62479485913794e8243ce01dc13e9fc21981561be42e72991fb5bbda53904fb894724ad9481d0e46f329e5aad33d9f4e1ed212ec91dde7f6b3ca33e9087254a7dbf97bcba8cb39d7f82a512e3b63a7db553d8542b70ebd6b21e9a77db7f98e69f1202a36ac207736c41dc9d240ca817362e75464a630bbf0d7b3c24fdac8724cc11c55a2c2e774cea6e451599820da3248cd797489f4f78a162fc681ba940b6da7f612b121f4cb346110f72aea6c6b6449028c9526daebf0bff50d7d80eec7b6a72e7d46c4f3643d8d77646116c0197d47d7694dbc9e24f270ec3c2ade8d36d0e8732b3005f41d927ffb7b1331deb7de8dd9feb4b3a93769a049997e6062410de94ae50d47af9adbfc5e18673fa0fe6ee9085ae363e0991fa0f03182c681a0a04100daba739dfe8a74ac601a22867116d49c3f849ccf1cdb96b969afaf2dffbb27335d09ac8261a90a4c47af1d6f0855140b08982607d73f982555a768eb1cc09d1f01d4d0c7e938e54076411c72851f763b2e5a773ccb29fa99bb0cf375881d0fe04518d8f9538f5fbef709909b4772a35d635e5012c34fb40f5a99b9684f4a0476c7e0e9db9efc45ffe1acd458068315515090c1df9ec631c19447c874c3faad5096614cc27ed7ede8daff9a8777c6dba7e19df3c3425f0437a18581a08cdd4c5d9955d7d3cee4bf411611a715a5752d6e80345cd5fa56731a8ff96e54e5212024337a1c69848f0a19ee8c606b35a10904951e0a27da1896eafe33c6e88cb7bcbe455f05a24a72679cfc257f225be801732356d3e9b3c7301c95c5a0517374a54ced547a21221f622f9c1358c3ea6df4470b6903e8562abe6959c1814acfb8365142c012efc08c876ab727df0a15ac79277ab1b0c1806f5ae5013e904ba3654a3dd236dde451b09b3d3d3e3c83601dc9a1d2aa656f7e06f0f42076ac55f3a22604ad58e3322e96fcf40495960ac25f6ed05785aeaa30af6a39890c1de3d97f80e8309bd7174f2f109cfba8a31608954ce5633b5cacbcb65e77f5b83c42c8f7e61812473c775d9870e2ceff832da28019959af77ca659897b72ab93465ee9616b079a273c52c0a56e41a1213314b5ec7647004229ed8fb414b0416924ddb6ad067b05a724910cd290687aaab3af03ad20dbb42ccb59e3740fabee2a8a180d4805a5f33fc6e718a0a7d8dc8804177fb5d11f47e15a7789699bf74838f32a0e46beb6d878fa6e54b44a550878c654e341d85f15af3043e276d8db7e24874cd281af55a63ae20f32rootapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacherootrootrootrootrootapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacherootapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacherootrootrootrootrootrootapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapachecobbler-2.8.5-0.1.el7.src.rpmcobbler-webconfig(cobbler-web)     /bin/shDjangocobblerconfig(cobbler-web)mod_sslmod_wsgiopensslpython2-djangorpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.62.8.5-0.1.el73.0.4-14.6.0-14.0.4-14.0-15.2-14.11.3]c]8H@\R@[@[@[[[=@[@[ @[ @Z_@Z Z}@Zz@ZyY@YJ_Y>@Y%uXX@X6@XAXX@W@WhW@W@W-@W-@VVHVVV @UUL@U?v@U>$T@TCS@SS@S@S @Si@SS8@SVYSU@SU@QQV@Qu&@Q\PqPvPvOONT@NFNFL@KKK@K@Ky7@Ks@K y@JNicolas Chauvet - 2.8.5-0.1Fedora Release Engineering - 2.8.4-7Fedora Release Engineering - 2.8.4-6Orion Poplawski - 2.8.4-5Orion Poplawski - 2.8.4-4Orion Poplawski - 2.8.4-3Orion Poplawski - 2.8.4-2Orion Poplawski - 2.8.4-1Orion Poplawski - 2.8.3-3Nicolas Chauvet - 2.8.3-2Nicolas Chauvet - 2.8.3-1Orion Poplawski - 2.8.2-6Orion Poplawski - 2.8.2-5Igor Gnatenko - 2.8.2-4Fedora Release Engineering - 2.8.2-3Iryna Shcherbina - 2.8.2-2Orion Poplawski - 2.8.2-1Orion Poplawski - 2.8.1-3Orion Poplawski - 2.8.1-2Orion Poplawski - 2.8.1-1Orion Poplawski - 2.8.0-6Fedora Release Engineering - 2.8.0-5Orion Poplawski - 2.8.0-4Orion Poplawski - 2.8.0-3Orion Poplawski - 2.8.0-2Orion Poplawski - 2.8.0-1Orion Poplawski - 2.6.11-11.gitf78af86Orion Poplawski - 2.6.11-10.gitf78af86Orion Poplawski - 2.6.11-9.gitf78af86Orion Poplawski - 2.6.11-8.git5680bf8Orion Poplawski - 2.6.11-6.git95749a6Orion Poplawski - 2.6.11-5.git13b035fFedora Release Engineering - 2.6.11-4Orion Poplawski - 2.6.11-3Orion Poplawski - 2.6.11-2Orion Poplawski - 2.6.11-1Orion Poplawski - 2.6.10-1Orion Poplawski - 2.6.9-1Orion Poplawski - 2.6.8-1Orion Poplawski - 2.6.7-3Orion Poplawski - 2.6.7-2Orion Poplawski - 2.6.7-1Orion Poplawski - 2.6.6-1Orion Poplawski - 2.6.5-1Orion Poplawski - 2.6.4-2Orion Poplawski - 2.6.4-1Orion Poplawski - 2.6.3-1Orion Poplawski - 2.6.2-1Fedora Release Engineering - 2.6.1-2Orion Poplawski - 2.6.1-1Orion Poplawski - 2.6.0-2Orion Poplawski - 2.6.0-1Orion Poplawski - 2.4.3-1James Cammarata 2.4.0-1James Cammarata 2.4.0-beta6James Cammarata 2.4.0-beta5James Cammarata 2.4.0-beta4James Cammarata 2.4.0-beta3James Cammarata 2.4.0-beta2James Cammarata 2.4.0-beta1James Cammarata 2.2.3-2James Cammarata 2.2.3-1Scott Henson 2.2.2-1Scott Henson 2.2.1-1Scott Henson 2.2.0-1Scott Henson - 2.1.0-1Scott Henson - 2.0.4-1Devan Goodwin 2.0.3.2-1Scott Henson - 2.0.3.1-3Scott Henson - 2.0.3.1-2Scott Henson - 2.0.3.1-1Scott Henson - 2.0.3-1John Eckersberg - 2.0.2-1Michael DeHaan - 2.0.0-1- Update to 2.8.5 - pre-release- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild- Fix empty man pages (BZ 1653415)- Revert bind_manage_ipmi feature that is broken on 2.8- Use pathfix.py to fix python shebangs- Make koan require python2-ethtool (BZ 1638933)- Update to 2.8.4 (Fixes BZ 1613292, 1643860, 1614433, CVE-2018-1000226, CVE-2018-10931)- koan requires urlgrabber- Restore mergeability with epel7- Update to 2.8.3 - security bugfix- Really fix django requires for Fedora 28+- Fix django requires for Fedora 28+- Escape macros in %changelog- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild- Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)- Update to 2.8.2- Suppress logrotate output- Fix module loading- Update to 2.8.1- Add patch to fix handling of multiple bridge interfaces- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild- Fix named patch- Restart named-chroot service if used- Fix logrotate script for systemd (bug #1414617)- Update to 2.8.0 - Restructure spec file- Add patches to fix TEMPLATE_DIRS and use OrderedDict- Force IPv4 connections to cobblerd from web proxy- Suppress "virt-install --os-variant list" error messages- Fix handling unknown os variants with osinfo-query- Fix typo in koan/app.py- Update to current git snapshot (bug #1276896)- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild- Require dnf-plugins-core- Require dnf-core-plugins instead of yum-utils for repoquery on Fedora 23+- Update to 2.6.11 - Make cobbler arch specific to allow for arch specific requires- Update to 2.6.10- Update to 2.6.9- Update to 2.6.8 - Backport upstream patch to fix centos version detection (bug #1201879)- Add patch to fix virt-install support for F21+/EL7 (bug #1188424)- Create and own directories in tftp_dir- Update to 2.6.7- Update to 2.6.6- Update to 2.6.5- Require Django >= 1.4- Update to 2.6.4- Update to 2.6.3- Update to 2.6.2 - Spec cleanup- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild- Update to 2.6.1 - Drop koan patch applied upstream- Only require syslinux on x86- Update to 2.6.0- Update to 2.4.3 - Add patch to fix bug #1047350 - Add requires python-simplejson and virt-install for EL5 (bug #852422) - Use updated systemd macros (bug #850061) - Require python-ctypes on EL5 (bug #838884)- Release 2.4.0-1 (jimi@sngx.net)- New BETA release - 2.4.0 beta6- A few bugfixes and rebuilding the RPM because of a goof (jimi@sngx.net)- 2.4.0-beta4 release- New release 2.4.0-beta3- Modified spec version/release to be 2.4.0-beta2 (jimi@sngx.net) - fixing up a bad commit merge (jimi@sngx.net)- Beta Release 1 of 2.4.0 - BUGFIX - Issue #329 - Systems no longer allow an add with an image for a parent (jimi@sngx.net) - BUGFIX - Issue #327 - revert 5afcff7 and fix in a more sane way (jimi@sngx.net) - Removed some duplicates created by reapplying a patch (jimi@sngx.net) - BUGFIX - Issue #267 - old python-virtinst does not support --boot (jimi@sngx.net) - Revise install_post_puppet.py to use newer puppet syntax (stephen@esstec.co.uk) - Get rid of deprecated Puppet syntax so that cobbler works with Puppet 3.0 (stephen@esstec.co.uk) - Added ubuntu to dist check for named.conf location (daniel.givens@rackspace.com) - Expanded automatic determination of tftpboot path, isc dhcp and bind service names and config files based on distro. (daniel@givenstx.com) - Make the service name for DHCP and DNS restarts configurable for better portable between distros. (daniel.givens@rackspace.com) - Serial based on formatted date and revision number (alevy@mobitv.com) - Correct undefined variable name (jbd@jbdenis.net) - fix merge Issue #252 BUGFIX and #262 (daikame@gmail.com) - Add check for valid driver_type before executing qemu-img (jimi@sngx.net) - fix mistake remove import. (daikame@gmail.com) - move exec method to utils.py, and catch unexpected exception. (daikame@gmail.com) - not check driver type on create method. (daikame@gmail.com) - BUGFIX - Issue #305 - Incorrect Kickstart file when gPXE enabled (jimi@sngx.net) - BUGFIX - Issue #304 - Cobbler does not store values correctly for ksmeta Objects were getting flattened improperly, so it was losing escapes/quoting for values with spaces (jimi@sngx.net) - add vmdk and raw file create support. (daikame@gmail.com) - BUGFIX - Issue #267 - old python-virtinst does not support --boot (jimi@sngx.net) - Modified spec version/release to be 2.4.0-beta-1 (jimi@sngx.net) - Initial commit for mysql backend support (jimi@sngx.net) - BUGFIX - Issue #277 - move webroot to /srv/www for debian/ubuntu (jimi@sngx.net) - FEATURE - adding 'zonetype' variable for DNS zone rendering (jimi@sngx.net) - BUGFIX - Issue #278 - cobbler import fails for ubuntu images due to rsync args (jimi@sngx.net) - BUGFIX - Issue #285 - update cobbler man page for incorrect options (jimi@sngx.net) - BUGFIX - Issue #241 - adding distro with blank name via XMLRPC should not work (jimi@sngx.net) - BUGFIX - Issue #272 - allow anamon to log entries when building systems based on profiles (no corresponding system record) (jimi@sngx.net) - BUGFIX - Issue #252 - fuzzy match on lvs name returns a false match preventing LV creation (jimi@sngx.net) - BUGFIX - Issue #287 - patch to allow templar to work without a config, which was breaking the tftpd.py script (jimi@sngx.net) - add qcow2 driver type (daikame@gmail.com) - fix koan qemu-machine-type param test. (daikame@gmail.com) - Only cosmetic cleanup - removed commands that were commented out, added spaces for more clear code (flaks@bnl.gov) - Modified sample.seed to make use kickstart_start and kickstart_done snippets for debian. As a result the following cobbler features work for debian: - prevent net boot looping - cobbler status reflects debian installations - preseed file is downloaded a nd saved on the installed system as /var/log/cobbler.seed Also made download_config_files_deb snippet, make use of late_command New post_run_deb snippet allows to execute post installation script. (flaks@bnl.gov) - Some changes for testing (jimi@sngx.net) - Minor fix for urlparse on older pythons (>2.5) (jimi@sngx.net) - FEATURE - Issue #253 - Use PEERDNS=no for DHCP interfaces when name servers are specified (jimi@sngx.net) - install-tree for debian/ubuntu modified to take tree= from meta data. http, ftp and nfs remote tree locations supported (flaks@bnl.gov) - add support of custom logical volume name (daikame@gmail.com) - Partial revert of 87acfc8b, and a minor change to bring the koan extra-args inline with the PXE args (jimi@sngx.net) - New default preseed, and a few minor changes to make ubuntu auto install work better (jimi@sngx.net) - Add support for qemu machine type to emulate (option --qemu-machine-type). (isaoshimizu@gmail.com) - Modern x86 kernels have 2048 char limit and this is needed to support configurations with kickstart+NIC kernel params. Otherwise koan refuses to accept the param list. (oliver@cpan.org) - Allow koan's -S option to work for SuSE breed. Also remove -S for breed=None, as I assume "Red Hat" is not a sane assumption for all Distros without a breed. (oliver@cpan.org) - Only add a udev net rule for an interface if the MAC is set. This fixes behaviour whereby a dummy udev rule at eth0 forces the first NIC to get eth1 post-install. (oliver@cpan.org) - Make the domainname setting be the full eth0 DNS Name, minus the first dotted part (and not the FQDN). (oliver@cpan.org) - BUGFIX - Issue #252 - fuzzy match on lvs name returns a false match preventing LV creation (jimi@sngx.net) - Added back in the filesystem loader. (oliver@cpan.org) - BUGFIX - Issue #247 - Reposync does not work from the web interface (jimi@sngx.net) - BUGFIX - Issue #246 - CentOS 5.x install fence_tools to /sbin/ (jimi@sngx.net) - Fix post_report trigger typo (jimi@sngx.net) - Some fixes for koan running with an old virt-install (jimi@sngx.net) - Define pxe_menu_items variable when creating PXE files for systems (jthiltges2@unl.edu) - Refactor PXE and GRUB menu item creation into a separate function (jthiltges2@unl.edu) - django 1.4 and later have deprecated the old TEMPLATE_LOADERS and replaced them with a new app_directories.Loader (oliver@cpan.org) - Add support for UEFI boot to the subnet, but not for defined systems yet. (erinn.looneytriggs@gmail.com) - Fix redhat import whitelist for Fedora 17 (jimi@sngx.net) - Fix unittest on the case of haven't virt-install libs. (daikame@gmail.com) - os_version for debian should be similar to ubunty for virt-install to work changed tree in app.py so that I can use debian mirror different from cobbler server (flaks@bnl.gov) - fedora 17 changed the output of ifconfig command. This will make IFNAME set in snippets again (flaks@bnl.gov) - remove edit for now (flaks@bnl.gov) - Fixed snippets for bonded_bridge_slave and a few other fixes for koan/web GUI (jimi@sngx.net) - Initial support for bonded_bridge_slave type. TODO: modifying snippets to actually make it work... (jimi@sngx.net) - The webui_sessions directory belongs only to cobbler-web (chutzimir@gmail.com) - RPM: put cobbler*.conf files only in /etc/httpd/conf.d (cristian.ciupitu@yahoo.com) - better fix for pull request #228 (jorgen.maas@gmail.com) - make rpms failed because the misc/ directory containing the augeas lense could not be found. this simple diff fixes that. (jorgen.maas@gmail.com) - Ubuntu actually requires auto=true in kopts See http://serverfault.com/a/144290/39018 (ekirpichov@gmail.com) - Whitespace cleanup for the new openvz stuff (jimi@sngx.net) - Remove dead code (useless imports) (cristian.ciupitu@yahoo.com) - BUGFIX extra-args option problems (daikame@gmail.com) - FIX koan virt-install tests. (daikame@gmail.com) - added debian support to prevent net boot looping (flaks@bnl.gov) - README.openvz: - added (nvrhood@gmail.com) - scripts/ovz-install: - added support for "services" kickstart option - corrected repos and installation source processing (nvrhood@gmail.com) - cobbler.spec, setup.py: - added scripts/ovz-install (nvrhood@gmail.com) - koan/openvzcreate.py, scripts/ovz-install: - changes in copyright notice (nvrhood@gmail.com) - koan/app.py: - bug in koan: size of freespace on VG expressed as float with comma, but need fload with point (nvrhood@gmail.com) - koan/app.py: - added type "openvz" (nvrhood@gmail.com) - cobbler/collection.py: - openvz containers doesn't need to boot from PXE, so we prevent PXE-menu creation for such profiles. (nvrhood@gmail.com) - cobbler/item_profile.py, cobbler/utils.py: - added "openvz" virtualization type (nvrhood@gmail.com) - cobbler/item_system.py: - added openvz for virt_type (nvrhood@gmail.com) - [BUGFIX] template errors can hit an exception path that references an undefined variable (jimi@sngx.net) - If the call to int() fails, inum has no value, thus the reference to inum in the except clause causes an UnboundLocalError when it tries to reference inum. (joshua@azariah.com) - Add new ubuntu (alpha) version to codes.py (jorgen.maas@gmail.com) - Not all remove current ifcfg- post_install_network_config (me@n0ts.org) - Update systemctl script to resolve some issues (jimi@sngx.net) - More spec fixes (jimi@sngx.net) - Removing replicate_use_default_rsync_options setting and setting replicate_rsync_options to existing rsync default. Issue #58 (john@julienfamily.com) - Commit for RFE: Expose rsync options during replication. Issue #58 (john@julienfamily.com) - Yet more HTML/CSS fixes, cleaning up some overly large inputs caused by other CSS changes (jimi@sngx.net) - More HTML/CSS improvements for new weblayout (jimi@sngx.net) - CSS improvements for the tabbed layout (jimi@sngx.net) - Fix for settings edit using the new tab format (jimi@sngx.net) - Added a cancel button to replace the reset button (jimi@sngx.net) - Fix saving of multiselect fields (jimi@sngx.net) - Modification to generic_edit template to use tabs for categories plus some miscellaneous cleanup (jimi@sngx.net) - Adding an example line for redhat imports to the whitelist file (jimi@sngx.net) - Another minor fix for suse imports - fixing up name when using --available-as (already done in other import modules) - allowing multiple arch imports (also already done in other imports) (jimi@sngx.net) - Some fixups for suse using --available-as (jimi@sngx.net) - Fix for import when using --available-as - currently rsyncs full remote tree, changing that to only import files in a white list - some modifications to import modules to clean some things up and make available-as work better - fix in utils.py for path_tail, which was not working right and appending the full path (jimi@sngx.net) - Run the same sed command on the default distributed config file to ensure consistent indentation (jimi@sngx.net) - Add setting to enable/disable dynamic settings changes Adding cobblersettings.aug to distributed files, since we need a copy that doesn't insert tabs Added a "cobbler check" that checks if dynamic settings is enabled and prints a sed command to cleanup the settings file spacing/indents (jimi@sngx.net) - Change cli command "settings" to "setting" to match other commands (which are not plurarlized) (jimi@sngx.net) - Removing commented-out try/except block in config.py, didn't mean to commit this (jimi@sngx.net) - Fixed/improved CLI reporting for settings (jimi@sngx.net) - Added support for validating setting type when saving Also fixed up the augeas stuff to save lists and hashes correctly (jimi@sngx.net) - Fix for incorrect redirect when login times out when looking at a setting edit (jimi@sngx.net) - Dynamic settings edit support for the web GUI (jimi@sngx.net) - Added ability to write settings file via augeas (jimi@sngx.net) - Initial support for modifying settings live Changed settings do not survive a reboot and revert to what's in /etc/cobbler/settings TODO: * report --name show a single setting * validate settings based on type (string, list, bool, etc.) * web support for editing * persisting settings after change (jimi@sngx.net) - Branch for 2.4.0, updated spec and setup.py (jimi@sngx.net)- [BUGFIX] re-enable writing of DHCP entries for non-pxeboot-enabled systems unless they're static (jimi@sngx.net)- [BUGFIX] add dns to kernel commandline when using static interface (frido@enu.zolder.org) - [BUGFIX] issue #196 - repo environment variables bleed into other repos during sync process This patch has reposync cleanup/restore any environment variables that were changed during the process (jimi@sngx.net) - BUGFIX quick dirty fix to work around an issue where cobbler would not log in ldap usernames which contain uppercase characters. at line 60 instead of "if user in data", "if user.lower() in data" is used. It would appear the parser puts the usernames in data[] in lowercase, and the comparison fails because "user" does hold capitalizations. (matthiasvandegaer@hotmail.com) - [BUGFIX] simplify SELinux check reporting * Remove calls to semanage, policy prevents apps from running that directly (and speeds up check immensely) * Point users at a wiki page which will contain details on ensuring cobbler works with SELinux properly (jimi@sngx.net) - [BUGFIX] issue #117 - incorrect permissions on files in /var/lib/cobbler (j-nomura@ce.jp.nec.com) - [BUGFIX] issue #183 - update objects mgmt classes field when a mgmt class is renamed (jimi@sngx.net) - [BUGFIX] adding some untracked directories and the new augeas lense to the setup.py and cobbler.spec files (jimi@sngx.net) - [FEATURE] Added ability to disable grubby --copy-default behavior for distros that may have problems with it (jimi@sngx.net) - [SECURITY] Major changes to power commands: * Fence options are now based on /usr/sbin/fence_* - so basically anything the fence agents package provides. * Templates will now be sourced from /etc/cobbler/power/fence_.template. These templates are optional, and are only required if you want to do extra options for a given command. - All options for the fence agent command are sent over STDIN. * Support for ipmitool is gone, use fence_ipmilan instead (which uses ipmitool under the hood anyway). This may apply to other power types if they were provided by a fence_ command. * Modified labels for the power options to be more descriptive. (jimi@sngx.net) - [BUGFIX] issue #136 - don't allow invalid characters in names when copying objects (jimi@sngx.net) - [BUGFIX] issue #168 - change input_string_or_list to use shlex for split This function was using a regular string split, which did not allow quoted or escaped strings to be preserved. (jimi@sngx.net) - [BUGFIX] Correct method to process the template file. This Fixes the previous issue and process the template. (charlesrg@gmail.com) - [BUGFIX] issue #170 - koan now checks length of drivers list before indexing (daniel@defreez.com) - [BUGFIX] Issue #153 - distro delete doesn't remove link from /var/www/cobbler/links Link was being created incorrectly during the import (jimi@sngx.net) - [FEATURE] snippets: save/restore boot-device on ppc64 on fedora17 (nacc@us.ibm.com) - [BUGFIX] Fixed typo in pre_anamon (brandor5@gmail.com) - [BUGFIX] Added use of $http_port to server URL in pre_anamon and post_anamon (brandor5@gmail.com) - [BUGFIX] Fixed dnsmasq issue regarding missing dhcp-host entries (cobbler@basjes.nl) - [BUGFIX] in buildiso for RedHat based systems. The interface->ip resolution was broken when ksdevice=bootif (default) (jorgen.maas@gmail.com) - [BUGFIX] rename failed for distros that did not live under ks_mirror (jimi@sngx.net) - [BUGFIX] Partial revert of commit 3c81dd3081 - incorrectly removed the 'extends' template directive, breaking rendering in django (jimi@sngx.net) - [BUGFIX] Reverting commit 1d6c53a97, which was breaking spacewalk Changed the web interface stuff to use the existing extended_version() remote call (jimi@sngx.net) - [BUGFIX] Minor fix for serializer_pretty_json change, setting indent to 0 was still causing more formatted JSON to be output (jimi@sngx.net) - [SECURITY] Adding PrivateTmp=yes to the cobblerd.service file for systemd (jimi@sngx.net) - [FEATURE] add a config option to enable pretty JSON output (disabled by default) (aronparsons@gmail.com) - [BUGFIX] issue #107 - creating xendomains link for autoboot fails Changing an exception to a printed warning, there's no need to completely bomb out on the process for this (jimi@sngx.net) - [BUGFIX] issue #28 - Cobbler drops errors on the floor during a replicate Added additional logging to add_ functions to report an error if the add_item call returns False (jimi@sngx.net) - [BUGFIX] add requirement for python-simplejson to koan's package (jimi@sngx.net) - [BUGFIX] action_sync: fix sync_dhcp remote calls (nacc@us.ibm.com) - [BUGFIX] Add support for KVM paravirt (justin@thespies.org) - [BUGFIX] Makefile updates for debian/ubuntu systems (jimi@sngx.net) - [BUGFIX] fix infinite netboot cycle with ppc64 systems (nacc@us.ibm.com) - [BUGFIX] Don't allow Templar classes to be created without a valid config There are a LOT of places in the templar.py code that use self.settings without checking to make sure a valid config was passed in. This could cause random stack dumps when templating, so it's better to force a config to be passed in. Thankfully, there were only two pieces of code that actually did this, one of which was the tftpd management module which was fixed elsewhere. (jimi@sngx.net) - [BUGFIX] instance of Templar() was being created without a config passed in This caused a stack dump when the manage_in_tftpd module tried to access the config settings (jimi@sngx.net) - [BUGFIX] Fix for issue #17 - Make cobbler import be more squeaky when it doesn't import anything (jimi@sngx.net) - [FEATURE] autoyast_sample: save and restore boot device order (nacc@us.ibm.com) - [BUGFIX] Fix for issue #105 - buildiso fails Added a new option for buildiso: --mkisofs-opts, which allows specifying extra options to mkisofs TODO: add input box to web interface for this option (jimi@sngx.net) - [BUGFIX] incorrect lower-casing of kickstart paths - regression from issue - [FEATURE] Automatically detect and support bind chroot (orion@cora.nwra.com) - [FEATURE] Add yumopts to kickstart repos (orion@cora.nwra.com) - [BUGFIX] Fix issue with cobbler system reboot (nacc@us.ibm.com) - [BUGFIX] fix stack trace in write_pxe_file if distro==None (smoser@brickies.net) - [BUGFIX] Changed findkeys function to be consisten with keep_ssh_host_keys snippet (flaks@bnl.gov) - [BUGFIX] Fix for issue #15 - cobbler image command does not recognize --image-type=memdisk (jimi@sngx.net) - [BUGFIX] Issue #13 - reposync with --tries > 1 always repeats, even on success The success flag was being set when the reposync ran, but didn't break out of the retry loop - easy fix (jimi@sngx.net) - [BUGFIX] Fix for issue #42 - kickstart not found error when path has leading space (jimi@sngx.net) - [BUGFIX] Fix for issue #26 - Web Interface: Profile Edit * Added jquery UI stuff * Added javascript to generic_edit template to make all selects in the class "edit" resizeable (jimi@sngx.net) - [BUGFIX] Fix for issue #53 - cobbler system add without --profile exits 0, but does nothing (jimi@sngx.net) - [BUGFIX] Issue #73 - Broken symlinks on distro rename from web_gui (jimi@sngx.net) - regular OS version maintenance (jorgen.maas@gmail.com) - [BUGFIX] let koan not overwrite existing initrd+kernel (ug@suse.de) - [FEATURE] koan: * Port imagecreate to virt-install (crobinso@redhat.com) * Port qcreate to virt-install (crobinso@redhat.com) * Port xen creation to virt-install (crobinso@redhat.com) - [FEATURE] new snippet allows for certificate-based RHN registration (jim.nachlin@gawker.com) - [FEATURE] Have autoyast by default behave more like RHEL, regarding networking etc. (chorn@fluxcoil.net) - [BUGFIX] sles patches (chorn@fluxcoil.net) - [BUGFIX] Simple fix for issue where memtest entries were not getting created after installing memtest86+ and doing a cobbler sync (rharriso@redhat.com) - [BUGFIX] REMOTE_ADDR was not being set in the arguments in calls to CobblerSvc instance causing ip address not to show up in install.log. (jweber@cofront.net) - [BUGFIX] add missing import of shutil (aparsons@redhat.com) - [BUGFIX] add a sample kickstart file for ESXi (aparsons@redhat.com) - [BUGFIX] the ESXi installer allows two nameservers to be defined (aparsons@redhat.com) - [BUGFIX] close file descriptors on backgrounded processes to avoid hanging %pre (aparsons@redhat.com) - [BUGFIX] rsync copies the repositories with --delete hence deleting everyhting local that isn't on the source server. The createrepo then creates (following the default settings) a cache directory ... which is deleted by the next rsync run. Putting the cache directory in the rsync exclude list avoids this deletion and speeds up running reposync dramatically. (niels@basjes.nl) - [BUGFIX] Properly blame SELinux for httpd_can_network_connect type errors on initial setup. (michael.dehaan@gmail.com) - fix install=... kernel parameter when importing a SUSE distro (ug@suse.de) - [BUGFIX] Force Django to use the system's TIME_ZONE by default. (jorgen.maas@gmail.com) - [FEATURE] Separated check for permissions from file existence check. (aaron.peschel@gmail.com) - [BUGFIX] If the xendomain symlink already exists, a clearer error will be produced. (aaron.peschel@gmail.com) - [FEATURE] Adding support for ESXi5, and fixing a few minor things (like not having a default kickstart for esxi4) Todos: * The esxi*-ks.cfg files are empty, and need proper kickstart templates * Import bug testing and general kickstart testing (jimi@sngx.net) - [FEATURE] Adding basic support for gPXE (jimi@sngx.net) - [FEATURE] Add arm as a valid architecture. (chuck.short@canonical.com) - [SECURITY] Changes PYTHON_EGG_CACHE to a safer path owned just by the webserver. (chuck.short@canonical.com) - [BUGFIX] koan: do not include ks_meta args when obtaining tree When obtaining the tree for Ubuntu machines, ensure that ks_meta args are not passed as part of the tree if they exist. (chuck.short@canonical.com) - [FEATURE] koan: Use grub2 for --replace-self instead of grubby The koan option '--replace-self' uses grubby, which relies on grub1, to replace a local installation by installing the new kernel/initrd into grub menu entries. Ubuntu/Debian no longer uses it grub1. This patch adds the ability to use grub2 to add the kernel/initrd downloaded to a menuentry. On reboot, it will boot from the install kernel reinstalling the system. Fixes (LP: #766229) (chuck.short@canonical.com) - [BUGFIX] Fix reposync missing env variable for debmirror Fixes missing HOME env variable for debmirror by hardcoding the environment variable to /var/lib/cobbler (chuck.short@canonical.com) - [BUGFIX] Fix creation of repo mirror when importing iso. Fixes the creation of a disabled repo mirror when importing ISO's such as the mini.iso that does not contain any mirror/packages. Additionally, really enables 'apt' as possible repository. (chuck.short@canonical.com) - [BUGFIX] adding default_template_type to settings.py, caused some issues with templar when the setting was not specified in the /etc/cobbler/settings (jimi@sngx.net) - [BUGFIX] fix for following issue: can't save networking options of a system in cobbler web interface. (#8) (jimi@sngx.net) - [BUGFIX] Add a new setting to force CLI commands to use the localhost for xmlrpc (chjohnst@gmail.com) - [BUGFIX] Don't blow up on broken links under /var/www/cobbler/links (jeffschroeder@computer.org) - [SECURITY] Making https the default for the cobbler web GUI. Also modifying the cobbler- web RPM build to require mod_ssl and mod_wsgi (missing wsgi was an oversight, just correcting it now) (jimi@sngx.net) - [FEATURE] Adding authn_pam. This also creates a new setting - authn_pam_service, which allows the user to configure which PAM service they want to use for cobblerd. The default is the 'login' service (jimi@sngx.net) - [SECURITY] Change in cobbler.spec to modify permissions on webui sessions directory to prevent non-privileged user acccess to the session keys (jimi@sngx.net) - [SECURITY] Enabling CSRF protection for the web interface (jimi@sngx.net) - [SECURITY] Convert all yaml loads to safe_loads for security/safety reasons. https://bugs.launchpad.net/ubuntu/+source/cobbler/+bug/858883 (jimi@sngx.net) - [FEATURE] Added the setting 'default_template_type' to the settings file, and created logic to use that in Templar().render(). Also added an option to the same function to pass the template type in as an argument. (jimi@sngx.net) - [FEATURE] Initial commit for adding support for other template languages, namely jinja2 in this case (jimi@sngx.net)- Changelog update (shenson@redhat.com) - Fixed indentation on closing tr tag (gregswift@gmail.com) - Added leader column to the non-generic tables so that all tables have the same layout. It leaves room for a checkbox and multiple selects i nthese other tables as well. (gregswift@gmail.com) - Added action class to the event log link to bring it inline with other table functions (gregswift@gmail.com) - buildiso bugfix: overriding dns nameservers via the dns kopt now works. reported by Simon Woolsgrove (jorgen.maas@gmail.com) - Fix for pxegen, where an image without a distro could cause a stack dump on cobbler sync (jimi@sngx.net) - Added initial support for specifying the on-disk format of virtual disks, currently supported for QEMU only when using koan (jimi@sngx.net) - Add fedora16, rawhide, opensuse 11.2, 11.3, 11.4 and 12.1 to codes.py This should also fix ticket #611 (jorgen.maas@gmail.com) - Use VALID_OS_VERSIONS from codes.py in the redhat importer. (jorgen.maas@gmail.com) - Cleanup: use utils.subprocess_call in services.py (jorgen.maas@gmail.com) - Cleanup: use utils.subprocess_call in remote.py. (jorgen.maas@gmail.com) - Cleanup: use utils.subprocess_call in scm_track.py. Also document that 'hg' is a valid option in the settings file. (jorgen.maas@gmail.com) - Dont import the sub_process module when it's not needed. (jorgen.maas@gmail.com) - Fixes to import_tree() to actually copy files to a safe place when --available-as is specified. Also some cleanup to the debian/ubuntu import module for when --available-as is specified. (jimi@sngx.net) - Modification to import processes so that rsync:// works as a path. These changes should also correct the incorrect linking issue where the link created in webdir/links/ pointed at a directory in ks_mirror without the arch specified, resulting in a broken link if --arch was specified on the command line Also removed the .old import modules for debian/ubuntu, which were replaced with the unified manage_import_debian_ubuntu.py (jimi@sngx.net) - cleanup: use codes.VALID_OS_VERSIONS in the freebsd importer (jorgen.maas@gmail.com) - cleanup: use codes.VALID_OS_VERSIONS in the debian/ubuntu importer (jorgen.maas@gmail.com) - Bugfix: add the /var/www/cobbler/pub directory to setup.py. Calling buildiso from cobbler-web now works as expected. (jorgen.maas@gmail.com) - BUGFIX: patch koan (xencreate) to correct the same issue that was broken for vmware regarding qemu_net_type (jimi@sngx.net) - BUGFIX: fixed issue with saving objects in the webgui failing when it was the first of that object type saved. (jimi@sngx.net) - Minor fix to the remote version to use the nicer extended version available (jimi@sngx.net) - Fix a bug in buildiso when duplicate kopt keys are used. Reported and tested by Simon Woolsgrove (jorgen.maas@gmail.com) - Fix for koan, where vmwcreate.py was not updated to accept the network type, causing failures. (jimi@sngx.net) - Added a %post section for the cobbler-web package, which replaces the SECRET_KEY field in the Django settings.py with a random string (jimi@sngx.net) - BUGFIX: added sign_puppet_certs_automatically to settings.py. The fact that this was missing was causing failures in the the pre/post puppet install modules. (jimi@sngx.net) - set the auto-boot option for a virtual machine (ug@suse.de) - Correction for koan using the incorrect default port for connecting to cobblerd (jimi@sngx.net) - config/settings: add "manage_tftpd: 1" (default setting) (cristian.ciupitu@yahoo.com)- Import changes for systemd from the fedora spec file (shenson@redhat.com)- Remove the version (shenson@redhat.com) - New upstream 2.2.0 release (shenson@redhat.com) - Add networking snippet for SuSE systems. (jorgen.maas@gmail.com) - Add a /etc/hosts snippet for SuSE systems. (jorgen.maas@gmail.com) - Add a proxy snippet for SuSE systems. (jorgen.maas@gmail.com) - Buildiso: make use of the proxy field (SuSE, Debian/Ubuntu). (jorgen.maas@gmail.com) - Rename buildiso.header to buildiso.template for consistency. Also restore the local LABEL in the template. (jorgen.maas@gmail.com) - Bugfix: uppercase macaddresses used in buildiso netdevice= keyword cause the autoyast installer to not setup the network and thus fail. (jorgen.maas@gmail.com) - Buildiso: minor cleanup diff. (jorgen.maas@gmail.com) - Buildiso: behaviour changed after feedback from the community. (jorgen.maas@gmail.com) - Build standalone ISO from the webinterface. (jorgen.maas@gmail.com) - Fix standalone ISO building for SuSE, Debian and Ubuntu. (jorgen.maas@gmail.com) - add proxy field to field_info.py (jorgen.maas@gmail.com) - Remove FreeBSD from the unix breed as it has it's own now. Also, add freebsd7 as it is supported until feb 2013. Minor version numbers don't make sense, also removed. (jorgen.maas@gmail.com) - Add a proxy field to profile and system objects. This is useful for environments where systems are not allowed to make direct connections to the cobbler/repo servers. (jorgen.maas@gmail.com) - Introduce a "status" field to system objects. Useful in environments where DTAP is required, the possible values for this field are: development, testing, acceptance, production (jorgen.maas@gmail.com) - Buildiso: only process profiles for selected systems. (jorgen.maas@gmail.com) - Buildiso: add batch action to build an iso for selected profiles. (jorgen.maas@gmail.com) - Buildiso: use management interface feature. (jorgen.maas@gmail.com) - Buildiso: get rid of some code duplication (ISO header). (jorgen.maas@gmail.com) - Buildiso: add interface to macaddr resolution. (jorgen.maas@gmail.com) - Buildiso: add Debian and Ubuntu support. (jorgen.maas@gmail.com) - Buildiso: select systems from the webinterface. (jorgen.maas@gmail.com) - Fix an exception when buildiso is called from the webinterface. (jorgen.maas@gmail.com) - fix power_virsh template to check dom status before executing command. (bpeck@redhat.com) - if hostname is not resolvable do not fail and use that hostname (msuchy@redhat.com) - Removed action_import module and references to it in code to prevent future confusion. (jimi@sngx.net) - Fixing redirects after a failed token validation. You should now be redirected back to the page you were viewing after having to log back in due to a forced login. (jimi@sngx.net) - Use port to access cobbler (peter.vreman@acision.com) - Stripping "g" from vgs output case-insensitive runs faster (mmello@redhat.com) - Adding ability to create new sub-directories when saving snippets. Addresses trac #634 - save new snippet fails on non existing subdir (jimi@sngx.net) - Fix traceback when executing "cobbler system reboot" with no system name specified Trac ticket #578 - missing check for name option with system reboot (jimi@sngx.net) - bind zone template writing (jcallaway@squarespace.com) - Removing the duplicate lines from importing re module (mmello@redhat.com) - Merge remote-tracking branch 'jimi1283/bridge-interface' (shenson@redhat.com) - Modification to allow DEPRECATED options to be added as options to optparse so they work as aliases (jimi@sngx.net) - Re-adding the ability to generate a random mac from the webui. Trac #543 (Generate random mac missing from 2.x webui) (jimi@sngx.net) - Merge remote-tracking branch 'jsabo/fbsdreplication' (shenson@redhat.com) - Tim Verhoeven (Tue. 08:35) (Cobbler attachment) Subject: [PATCH] Add support to koan to select type of network device to emulate To: cobbler development list Date: Tue, 2 Aug 2011 14:35:21 +0200 (shenson@redhat.com) - Hello, (shenson@redhat.com) - scm_track: Add --all to git add options to handle deletions (tmz@pobox.com) - Moved HEADER heredoc from action_buildiso.py to /etc/cobbler/iso/buildiso.header (gbailey@terremark.com) - Enable replication for FreeBSD (jsabo@verisign.com) - Merge branch 'master' into bridge-interface (jimi@sngx.net) - Remove json settings from local_get_cobbler_xmlrpc_url() (jsabo@verisign.com) - 1) Moving --subnet field to --netmask 2) Created DEPRECATED_FIELDS structure in field_info.py to deal with moves like this * also applies to the bonding->interface_type move for bridged interface support (jimi@sngx.net) - Merge remote-tracking branch 'jimi1283/bridge-interface' (shenson@redhat.com) - Fixing up some serializer module stuff: * detecting module load errors when trying to deserialize collections * added a what() function to all the serializer modules for ID purposes * error detection for mongo stuff, including pymongo import problems as well as connection issues (jimi@sngx.net) - Cleanup of bonding stuff in all files, including webui and koan. Additional cleanup in the network config scripts, and re-added the modprobe.conf renaming code to the post install network config. (jimi@sngx.net) - Initial rework to allow bridge/bridge slave interfaces Added static route configuration to pre_install_network_config Major cleanup/reworking of post_install_network_config script (jimi@sngx.net) - Fix for bad commit of some json settings test (jimi@sngx.net) - Merge remote-tracking branch 'jsabo/fbsdimport' (shenson@redhat.com) - Adding initial support for FreeBSD media importing (jsabo@verisign.com) - Setting TIME_ZONE to None in web/settings.py causes a 500 error on a RHEL5 system with python 2.4 and django 1.1. Commenting out the config line has the same effect as setting it to None, and prevents the 500. (jimi@sngx.net) - Fixes for importing RHEL6: * path_tail() was previously moved to utils, a couple places in the import modules still used self.path_tail instead of utils.path_tail, causing a stack dump * Fixed an issue in utils.path_tail(), which was using self. still from when it was a member of the import class * When mirror name was set on import and using --available-as, it was appending a lot of junk instead of just using the specified mirror name (jimi@sngx.net) - Merge branch 'master' of git://git.fedorahosted.org/cobbler (jimi@sngx.net) - Fix a quick error (shenson@redhat.com) - Set the tftpboot dir for rhel6 hosts (jsabo@verisign.com) - Fixed a typo (jorgen.maas@gmail.com) - Added an extra field in the system/interface item. The field is called "management" and should be used to identify the management interface, this could be useful information for multihomed systems. (jorgen.maas@gmail.com) - In the event log view the data/time field got wrapped which is very annoying. Fast fix for now, i'm pretty sure there are better ways to do this. (jorgen.maas@gmail.com) - Event log soring on date reverted, let's sort on id instead. Reverse over events in the template. Convert gmtime in the template to localtime. (jorgen.maas@gmail.com) - Sort the event log by date/time (jorgen.maas@gmail.com) - Remove some unsupported OS versions from codes.py (jorgen.maas@gmail.com) - Some changes in the generate_netboot_iso function/code: - Users had to supply all system names on the commandline which they wanted to include in the ISO boot menu. This patch changes that behaviour; all systems are included by default now. You can still provide an override with the --systems parameter, thus making this feature more consistent with what one might expect from reading the help. - While at it I tried to make the code more readable and removed some unneeded iterations. - Prevent some unneeded kernel/initrd copies. - You can now override ip/netmask/gateway/dns parameters with corresponding kernel_options. - Fixed a bug for SuSE systems where ksdevice should be netdevice. - If no ksdevice/netdevice (or equivalent) has been supplied via kernel_options try to guess the proper interface to use, but don't just use one if we can't be sure about it (e.g. for multihomed systems). (jorgen.maas@gmail.com) - Add SLES 11 to codes.py (jorgen.maas@gmail.com) - Add support for Fedora15 to codes.py (jorgen.maas@gmail.com) - Django uses the timezone information from web/settings.py Changing the hardcoded value to None forces Django to use the systems timezone instead of this hardcoded value (jorgen.maas@gmail.com) - Fix cobbler replication for non-RHEL hosts. The slicing used in the link_distro function didn't work for all distros. (jsabo@verisign.com) - Fix vmware esx importing. It was setting the links dir to the dir the iso was mounted on import (jsabo@verisign.com) - Merge remote-tracking branch 'jsabo/webuifun' (shenson@redhat.com) - Fix bug with esxi replication. It wasn't rsyncing the distro over if the parentdir already existed. (jsabo@verisign.com) - Merge branch 'master' of git://git.fedorahosted.org/cobbler (jimi@sngx.net) - Initial commit for mongodb backend support and adding support for settings as json (jimi@sngx.net) - Web UI patches from Greg Swift applied (jsabo@verisign.com) - whitespace fix (dkilpatrick@verisign.com) - Fix to fix to py_tftp change to sync in bootloaders (dkilpatrick@verisign.com) - Fixing a bug reported by Jonathan Sabo. (dkilpatrick@verisign.com) - Merge branch 'master' of git://git.fedorahosted.org/cobbler (dkilpatrick@verisign.com) - Revert "Jonathan Sabo (June 09) (Cobbler)" (shenson@redhat.com) - Unmount and deactivate all software raid devices after searching for ssh keys (jonathan.underwood@gmail.com) - Merge remote-tracking branch 'ugansert/master' (shenson@redhat.com) - Jonathan Sabo (June 09) (Cobbler) Subject: [PATCH] Fix issue with importing distro's on new cobbler box To: cobbler development list Date: Thu, 9 Jun 2011 16:17:20 -0400 (shenson@redhat.com) - missing manage_rsync option from config/settings (jsabo@criminal.org) - Remove left-over debugging log message (dkilpatrick@verisign.com) - SUSE requires the correct arch to find kernel+initrd on the inst-source (ug@suse.de) - added autoyast=... parameter to the ISO building code when breed=suse (ug@suse.de) - calculate meta data in the XML file without cheetah variables now (ug@suse.de) - render the cheetah template before passing the XML to the python XML parser (ug@suse.de) - made the pathes flexible to avoid problem on other distros than fedora/redhat (ug@suse.de) - bugfix (ug@suse.de) - Merge patch from stable (cristian.ciupitu@yahoo.com) - utils: initialize main_logger only when needed (cristian.ciupitu@yahoo.com) - During refactor, failed to move templater initialization into write_boot_files_distro. (dkilpatrick@verisign.com) - Fixed a couple of simple typos. Made the boot_files support work (added template support for the key, defined the img_path attribute for that expansion) (dkilpatrick@verisign.com) - Fixes to get to the "minimally tested" level. Fixed two syntax errors in tftpd.py, and fixed refences to api and os.path in manage_in_tftpd.py (dkilpatrick@verisign.com) - Rebasing commit, continued. (kilpatds@oppositelock.org) - Change the vmware stuff to use 'boot_files' as the space to set files that need to be available to a tftp-booting process (dkilpatrick@verisign.com) - Added 'boot_files' field for 'files that need to be put into tftpboot' (dkilpatrick@verisign.com) - Merge conflict. (kilpatds@oppositelock.org) - Add in a default for puppet_auto_setup, thanks to Camille Meulien for finding it. (shenson@redhat.com) - Add a directory remap feature to fetchable_files processing. /foo/*=/bar/ Client requests for "/foo/baz" will be turned into requests for /bar/baz. Target paths are evaluated against the root filesystem, not tftpboot. Template expansion is done on "bar/baz", so that would typically more usefully be something like /boot/*=$distro_path/boot (dkilpatrick@verisign.com) - Removed trailing whitespace causing git warnings (dkilpatrick@verisign.com) - Fix a bug where tftpd.py would throw if a client requested '/'. (dkilpatrick@verisign.com) - Allow slop in the config, not just the client. modules: don't hardcode /tftpboot (dkilpatrick@verisign.com) - Moved footer to actually float at the bottom of the page or visible section, whichever is further down. Unfortunately leaves a slightly larger margin pad on there. Will have to see if it can be made cleaner (gregswift@gmail.com) - Removed right padding on delete checkboxes (gregswift@gmail.com) - Adjusted all the self closing tags to end eith a " />" instead of not having a space separating them (gregswift@gmail.com) - Added "add" button to the filter bit (gregswift@gmail.com) - Removed "Enabled" label on checkboxes, this can be added via css as part of the theme if people want it using :after { content: " Enabled" } Padded the context-tip off the checkboxes so that it lines up with most of the other context tips instead of being burring in the middle of the form (gregswift@gmail.com) - Added bottom margin on text area so that it isn't as tight next to other form fields (gregswift@gmail.com) - Added id tags to the forms for ks templates and snippets Set some margins for those two forms, they were a bit scrunched because they didn't have a sectionbody fieldset and legend Removed inline formatting of input sizes on those two pages Set the textareas in those two pages via css (gregswift@gmail.com) - Made the tooltips get hiddent except for on hover, with a small image displayed in their place (gregswift@gmail.com) - Added a top margin to the submit/reset buttons... looks cleaner having some space. (gregswift@gmail.com) - Changed generic edit form to the following: - Made blocks into fieldsets again, converting the h2 to a legend. I didn't mean to change this the first time through. - Pulled up a level, removing the wrapping div, making each fieldset contain an order list, instead of each line being an ordered list, which was silly of me. - Since it went up a level, un-indented all of the internal html tags 2 spaces - changed the place holder for the network widgets to spans so that they displayed cleanly (Don't like the spans either, but its for the javascript) In the stylesheet just changed the div.sectionbody to ol.sectionbody (gregswift@gmail.com) - Fixed closing ul->div on multiselect section. Must have missed it a few commits ago. (gregswift@gmail.com) - IE uses input styling such as borders even on checkboxes... was not intended, so has been cleared for checkboxes (gregswift@gmail.com) - This is a change to the multiselect buttons view, i didn't mean to commit the style sheet along with the spelling check fixes, but since I did might as well do the whole thing and then erevert it later if people dislike it (gregswift@gmail.com) - Fixed another postition mispelling (gregswift@gmail.com) - fixed typo postition should be position (gregswift@gmail.com) - Returned the multiselect section to being div's, since its actually not a set of list items, it is a single list item. Re-arranged the multiselect so that the buttons are centered between the two sections Removed all of the line breaks form that section Made the select box headings actually labels moved the order of multiselect after sectionbody definition due to inheritence (gregswift@gmail.com) - Restored select boxes to "default" styling since they are not as cleanly css- able Made visibly selected action from Batch Actions bold, mainly so by default Batch Action is bold. Moved text-area and multi-select sizing into stylesheet. re-alphabetized some of the tag styles Made the default login's text inputs centered, since everything else on that page is (gregswift@gmail.com) - Added missing bracket from two commits ago in the stylesheet. (gregswift@gmail.com) - Re-added the tool tips for when they exist in the edit forms and set a style on them. Removed an extraneous line break from textareas in edit form (gregswift@gmail.com) - Fixed javascript where I had used teh wrong quotes, thus breaking the network interface widgets (gregswift@gmail.com) - Added label and span to cleanup block (gregswift@gmail.com) - Added version across all of the template loads so that the footer is populated with it (gregswift@gmail.com) - all css: - set overall default font size of 1em - added missing tags to the cleanup css block - fixed button layout -- list line buttons are smaller font to keep lines smaller -- set action input button's size - set indentation and bolding of items in batch action - redid the list formatting -- removed zebra stripes, they share the standard background now -- hover is now the background color of the old darker zebra stripe -- selected lines now background of the older light zebra stripe - added webkit border radius (gregswift@gmail.com) - generic_lists.tmpl - Removed force space on the checklists generic_lists.tmpl - Added javascript to allow for selected row highlighting (gregswift@gmail.com) - Removed inline formatting from import.tmpl Made the context tips spans (gregswift@gmail.com) - Made both filter-adder elements exist in the same li element (gregswift@gmail.com) - Added default formatting for ordered lists Added formatting for the new multiselect unordered list Changed old div definitions for the multiselect to li Added label formatting for inside sectionbody to line up all the forms. (gregswift@gmail.com) - Adjusted multiselect section to be an unordered list instead of a div (gregswift@gmail.com) - Moved the close list tag inside the for loop, otherwise we generate lots of nasty nested lists (gregswift@gmail.com) - Changed edit templates to use ol instead of ul, because it apparently helps out those using screen readers, and we should be making things accessible, yes? (gregswift@gmail.com) - Re-structured the edit templates to be unordered lists. Standardized the tooltip/contextual data as context-tip class Redid the delete setup so that its Delete->Really? Instead of Delete:Yes->Really? Same number of check boxes. Setup the delete bit so that Delete and Really are labels for the checkboxes and there isn't extraneous html input tags (gregswift@gmail.com) - Added top margin on the filter adder (gregswift@gmail.com) - Adjusted single action item buttons to be in the same list element, as it makes alignment cleaner, and more sense from a grouping standpoint Set submenubar default height to 26px Set submenubar's alignment to be as clean as I've been able to get so far. (gregswift@gmail.com) - Set background color back to original (gregswift@gmail.com) - Adjusted all buttons to hover invert from blue to-blackish, the inverse of the normal links (which go blackish to blue) but left the text color the same. i'm not sure its as pretty, but dfinately more readable. Plus the color change scheme is more consistant. Also made table buttons smaller than other buttons (gregswift@gmail.com) - Fixed width on paginate select boxes to auto, instead of over 200px (gregswift@gmail.com) - Removed margin around hr tag, waste of space, and looks closer to original now (gregswift@gmail.com) - Removed extraneous body div by putting user div inside container. (gregswift@gmail.com) - Adjuested style sheet to improve standardization of form fields, such as buttons, text input widths, and fontsizes in buttons vs drop downs. (gregswift@gmail.com) - Some menu re-alignment on both menubar and submenubar (gregswift@gmail.com) - Got the container and the user display into a cleaner size alignment to display on the screen. less chance of horiz scroll (gregswift@gmail.com) - Fix to get login form a bit better placed without duplicate work (gregswift@gmail.com) - pan.action not needed... .action takes care of it (gregswift@gmail.com) - Removed padding on login screen (gregswift@gmail.com) - Redid action and button classes to make them look like buttons.. still needs work. Resized pointer classes to make things a bit more level on that row (gregswift@gmail.com) - New cleanup at the top negates the need for this table entry (gregswift@gmail.com) - Removed the body height to 99%. Was doing this for sticky footer, but current path says its not needed (gregswift@gmail.com) - Added some windows and mac default fonts Made the body relative, supposed to help with the layout Set text color to slightly off black.. was told there is some odd optical reasoning behind this (gregswift@gmail.com) - Made class settings for the table rows a touch more specific in the css (gregswift@gmail.com) - Added "normalization" to clean up cross browser differences at top of style.css (gregswift@gmail.com) - Added button class to all buttons, submit, and resets (gregswift@gmail.com) - Fixed sectionheader to not be styled as actions... they are h2! (gregswift@gmail.com) - Fixed container reference from class to id (gregswift@gmail.com) - Added missing action class on the "Create new" links in generic_list.tmpl (gregswift@gmail.com) - Revert part of 344969648c1ce1e753af because RHEL5's django doesn't support that (gregswift@gmail.com) - removed underline on remaing links (gregswift@gmail.com) - Fixed the way the logo was placed on the page and removed the excess background setting. (gregswift@gmail.com) - Some cleanup to the style sheet along - removed fieldset since no more exist (not sure about this in long run.... we'll see) - cleaned up default style for ul cause it was causing override issues - got menubar and submenu bar mostly settled (gregswift@gmail.com) - Fixed submenu bar ul to be identified by id not class (gregswift@gmail.com) - Rebuilt primary css stylesheet - not complete yet (gregswift@gmail.com) - Removed logout from cobbler meft hand menu (gregswift@gmail.com) - Next step in redoing layout: - added current logged in user and logout button to a div element at top of page - fixed content div from class to id - added footer (version entry doesn't work for some reason) - links to cobbler website (gregswift@gmail.com) - in generic_list.tmpl - set the edit link to class 'action' - merged the creation of the edit action 'View kickstart' for system and profile (gregswift@gmail.com) - Replaced tool tip as div+em with a span classed as tooltip. tooltip class just adds italic. (gregswift@gmail.com) - Fixed table header alignment to left (gregswift@gmail.com) - Take the logo out of the html, making it a css element, but retain the location and basic feel of the placement. (gregswift@gmail.com) - Step one of redoing the action list, pagination and filters. - split pagination and filters to two tmpl files - pagination can be called on its own (so it can live in top and bottom theoretically) - filter will eventually include pagination so its on the bottom - new submenubar includes pagination - new submenubar does age specific actiosn as links instead of drop downs cause there is usually 1, rarely 2, never more. (gregswift@gmail.com) - Removed pagination from left hand column (gregswift@gmail.com) - Removed an erroneous double quote from master.tmpl (gregswift@gmail.com) - Went a bit overboard and re-adjusted whitespace in all the templates. Trying to do the code in deep blocks across templates can be a bit tedious and difficult to maintain. While the output is not perfect, at least the templates are more readable. (gregswift@gmail.com) - Removed remaining vestige of action menu shading feature (gregswift@gmail.com) - Removed header shade references completely from the lists and the code from master.tmpl (gregswift@gmail.com) - Wrapped setting.tmpl error with the error class (gregswift@gmail.com) - Changed h3 to h2 inside pages Made task_created's h4 into a h1 and standarized with the other pages (gregswift@gmail.com) - Standardized header with a hr tag before the form tags (gregswift@gmail.com) - Added base width on the multiple select boxes, primarily for when they are empty (gregswift@gmail.com) - Removed fieldset wrappers and replaced legends with h1 and h2 depending on depth (gregswift@gmail.com) - Adjusted logic for the legent to only change one word, instead of the full string (gregswift@gmail.com) - Removed empty cell from table in generic_edit.tmpl (gregswift@gmail.com) - Revert 8fed301e61f28f8eaf08e430869b5e5df6d02df0 because it was to many different changes (gregswift@gmail.com) - Removed empty cell from table in generic_edit.tmpl (gregswift@gmail.com) - Moved some cobbler admin and help menus to a separate menu in the menubar (gregswift@gmail.com) - Added HTML5 autofocus attribute to login.tmpl. Unsupported browsers just ignores this. (gregswift@gmail.com) - Re-built login.tmpl: - logo isn't a link anymore back to the same page - logo is centered with the login form - fieldset has been removed - set a css class for the body of the login page, unused for now. And the css: - removed the black border from css - centered the login button as well (gregswift@gmail.com) - Made the links and span.actions hover with the same color as used for the section headings (gregswift@gmail.com) - Removed as much in-HTML placed formatting as possible and implemented them in css. The main bit remaining is the ul.li floats in paginate.tmpl (gregswift@gmail.com) - Cleaned up single tag closing for several of the checkboxes (gregswift@gmail.com) - removed a trailing forward slash that was creating an orphaned close span tag (gregswift@gmail.com) - Relabeled cells in thead row from td tags to th (gregswift@gmail.com) - Added tr wrapper inside thead of tables for markup validation (gregswift@gmail.com) - Use :// as separator for virsh URIs (atodorov@otb.bg) - Create more condensed s390 parm files (thardeck@suse.de) - Add possibility to interrupt zPXE and to enter CMS (thardeck@suse.de) - Cleanup the way that we download content - Fixes a bug where we were only downloading grub-x86_64.efi (shenson@redhat.com) - Port this config over as well (shenson@redhat.com) - Only clear logs that exist. (bpeck@redhat.com) - Pull in new configs from the obsoletes directory. (shenson@redhat.com) - Removed extraneous close row tag from events.tmpl (gregswift@gmail.com) - Fixed spelling of receive in enoaccess.tmpl (gregswift@gmail.com) - Added missing close tags on a few menu unordered list items in master.tmpl (gregswift@gmail.com) - Added missing "for" correlation tag for labels in generic_edit.tmpl (gregswift@gmail.com) - Removed extraneous close divs from generic_edit.tmpl (gregswift@gmail.com) - Removing old and unused template files (gregswift@gmail.com) - Add support for Ubuntu distros. (andreserl@ubuntu.com) - Koan install tree path for Ubuntu/Debian distros. (andreserl@ubuntu.com) - Fixing hardlink bin path. (andreserl@ubuntu.com) - Do not fail when yum python module is not present. (andreserl@ubuntu.com) - Add Ubuntu/Debian support to koan utils for later use. (andreserl@ubuntu.com) - typo in autoyast xml parsing (ug@suse.de) - Minor change to validate a token before checking on a user. (jimi@sngx.net) - get install tree from install=... parameter for SUSE (ug@suse.de) - handle autoyast XML files (ug@suse.de) - fixed support for SUSE in build-iso process. Fixed a typo (ug@suse.de) - added SUSE breed to import-webui (ug@suse.de) - Merge remote-tracking branch 'lanky/master' (shenson@redhat.com) - Merge remote-tracking branch 'jimi1283/master' (shenson@redhat.com) - added support for suse-distro import (ug@suse.de) - Fix a sub_process Popen call that did not set close_fds to true. This causes issues with sync where dhcpd keeps the XMLRPC port open and prevents cobblerd from restarting (jimi@sngx.net) - Cleanup of unneccsary widgets in distro/profile. These needed to be removed as part of the multiselect change. (jimi@sngx.net) - Yet another change to multiselect editing. Multiselects are now presented as side-by-side add/delete boxes, where values can be moved back and forth and only appear in one of the two boxes. (jimi@sngx.net) - Fix for django traceback when logging into the web interface with a bad username and/or password (jimi@sngx.net) - Fix for snippet/kickstart editing via the web interface, where a 'tainted file path' error was thrown (jimi@sngx.net) - added the single missed $idata.get() item (stuart@sjsears.com) - updated post_install_network_config to use $idata.get(key, "") instead of $idata[key]. This stops rendering issues with the snippet when some keys are missing (for example after an upgrade from 2.0.X to 2.1.0, where a large number of new keys appear to have been added.) and prevents us from having to go through all system records and add default values for them. (stuart@sjsears.com) - Take account of puppet_auto_setup in install_post_puppet.py (jonathan.underwood@gmail.com) - Take account of puppet_auto_setup in install_pre_puppet.py (jonathan.underwood@gmail.com) - Add puppet snippets to sample.ks (jonathan.underwood@gmail.com) - Add puppet_auto_setup to settings file (jonathan.underwood@gmail.com) - Add snippets/puppet_register_if_enabled (jonathan.underwood@gmail.com) - Add snippets/puppet_install_if_enabled (jonathan.underwood@gmail.com) - Add configuration of puppet pre/post modules to settings file (jonathan.underwood@gmail.com) - Add install_post_puppet.py module (jonathan.underwood@gmail.com) - Add install_pre_puppet.py module (jonathan.underwood@gmail.com) - Apply a fix for importing red hat distros, thanks jsabo (shenson@redhat.com) - Changes to action/batch actions at top of generic list pages * move logic into views, where it belongs * simplify template code * change actions/batch actions into drop down select lists * added/modified javascript to deal with above changes (jimi@sngx.net) - Minor fixes to cobbler.conf, since the AliasMatch was conflicting with the WSGI script alias (jimi@sngx.net) - Initial commit for form-based login and authentication (jimi@sngx.net) - Convert webui to use WSGI instead of mod_python (jimi@sngx.net) - Save field data in the django user session so the webui doesn't save things unnecessarily (jimi@sngx.net) - Make use of --format in git and use the short hash. Thanks Todd Zullinger (shenson@redhat.com) - We need git. Thanks to Luc de Louw (shenson@redhat.com) - Start of the change log supplied by Michael MacDonald (shenson@redhat.com) - Fix typo in cobbler man page entry for profile (jonathan.underwood@gmail.com) - Fix cobbler man page entry for parent profile option (jonathan.underwood@gmail.com) - Set SELinux context of host ssh keys correctly after reinstallation (jonathan.underwood@gmail.com) - Fixing bug with img_path. It was being used prior to being set if you have images. (jonathan.sabo@gmail.com) - Add firstboot install trigger mode (jonathan.sabo@gmail.com) - Fix old style shell triggers by checking for None prior to adding args to arg list and fix indentation (jonathan.sabo@gmail.com) - Bugfix: restore --no-fail functionality to CLI reposync (icomfort@stanford.edu) - Add the ability to replicate the new object types (mgmtclass,file,package). (jonathan.sabo@gmail.com) - Add VMware ESX and ESXi replication. (jonathan.sabo@gmail.com) - Add batch delete option for profiles and mgmtclasses (jonathan.sabo@gmail.com) - Spelling fail (shenson@redhat.com) - Remove deploy as a valid direct action (shenson@redhat.com) - Trac Ticket #509: A fix that does not break everything else. (https://fedorahosted.org/cobbler/ticket/509) (andrew@eiknet.com) - Only chown the file if it does not already exist (shenson@redhat.com) - Modification to cobbler web interface, added a drop-down select box for management classes and some new javascript to add/remove items from the multi-select (jimi@sngx.net) - Check if the cachedir exists before we run find on it. (shenson@redhat.com) - Fix trac#574 memtest (shenson@redhat.com) - Add network config snippets for esx and esxi network configuration $SNIPPET('network_config_esxi') renders to: (jonathan.sabo@gmail.com) - Trac Ticket #510: Modified 'cobbler buildiso' to use /var/cache/cobbler/buildiso by default. Added a /etc/cobbler/settings value of 'buildisodir' to make it setable by the end user. --tempdir will still overwrite either setting on the command line. (andrew@eiknet.com) - Add img_path to the metadata[] so that it's rendered out in the esxi pxe templates. Add os_version checks for esxi in kickstart_done so that it uses wget or curl depending on what's known to be available. (jonathan.sabo@gmail.com) - Added --sync-all option to cobbler replicate which forces all systems, distros, profiles, repos and images to be synced without specifying each. (rrr67599@rtpuw027.corpnet2.com) - Added manage_rsync option which defaults to 0. This will make cobbler not overwrite a local rsyncd.conf unless enabled. (rrr67599@rtpuw027.corpnet2.com) - Added semicolon master template's placement of the arrow in the page heading (gregswift@gmail.com) - Quick fix from jsabo (shenson@redhat.com) - added hover line highlighting to table displays (gregswift@gmail.com) - Modification to generic_edit template so that the name field is not a text box when editing. (jimi@sngx.net) - Minor fixes for mgmt classes webui changes. - Bug when adding a new obj, since obj is None it was causing a django stack dump - Minor tweaks to javascript (jimi@sngx.net) - Fixed error in which the json files for mgmtclasses was not being deleted when a mgmtclass was removed, meaning they showed back up the next time cobblerd was restarted (jimi@sngx.net) - Fixed syntax error in clogger.py that was preventing cobblerd from starting (jimi@sngx.net) - Supports an additional initrd from kernel_options. (bpeck@redhat.com) - Remove a bogus self (shenson@redhat.com) - Re-enable debmirror. (chuck.short@canonical.com) - Extending the current Wake-on-Lan support for wider distro compatibility. Thanks to Dustin Kirkland. (chuck.short@canonical.com) - Dont hardcode /etc/rc.d/init.d redhatism. (chuck.short@canonical.com) - Newer (pxe|sys)linux's localboot value produces unreliable results when using documented options, -1 seems to provide the best supported value (chuck.short@canonical.com) - Detect the webroot to be used based on the distro. (chuck.short@canonical.com) - If the logfile path doesn't exist, don't attempt to create the log file. Mainly needed when cobbler is required to run inside the build env (cobbler4j). Thanks to Dave Walker (chuck.short@canonical.com) - Implement system power status API method and CLI command (crosa@redhat.com) - Update setup files to use proper apache configuration path (konrad.scherer@windriver.com) - Debian has www-data user for web server file access instead of apache. (konrad.scherer@windriver.com) - Update init script to work under debian. (konrad.scherer@windriver.com) - Use lsb_release module to detect debian distributions. Debian release is returned as a string because it could be sid which will never have a version number. (konrad.scherer@windriver.com) - Fix check for apache installation (konrad.scherer@windriver.com) - Handle Cheetah version with more than 3 parts (konrad.scherer@windriver.com) - Allow dlcontent to use proxy environment variables (shenson@redhat.com) - Copy memtest to $bootloc/images/. Fixes BZ#663307 (shenson@redhat.com) - Merge remote branch 'jimi1283/master' (shenson@redhat.com) - Turn the cheetah version numbers into integers while testing them so we don't always return true (shenson@redhat.com) - Kill some whitespace (shenson@redhat.com) - Fix for bug #587 - Un-escaped '$' in snippet silently fails to render (jimi@sngx.net) - Fix for bug #587 - Un-escaped '$' in snippet silently fails to render (jimi@sngx.net) - Merge branch 'master' of git://git.fedorahosted.org/cobbler (jimi@sngx.net) - Don't use link caching in places it isn't needed (shenson@redhat.com) - Better logging on subprocess calls (shenson@redhat.com) - Fix for trac #541 - cobbler sync deletes /var/www/cobbler/pub (jimi@sngx.net) - Merged work in the import-modules branch with the debian/ubuntu modules created by Chuck Short (jimi@sngx.net) - Merge branch 'cshort' into import-modules (jimi@sngx.net) - Finished up debian/ubuntu support for imports Tweaked redhat/vmware import modules logging output Added rsync function to utils to get it out of each module - still need to fix the redhat/vmware modules to actually use this (jimi@sngx.net) - Initial commit for the Debian import module. * tested against Debian squeeze. (chuck.short@canonical.com) - Initial commit for the Ubuntu import module. * tested against Natty which imported successfully. (chuck.short@canonical.com) - tftp-hpa users for both Ubuntu Debian use /var/lib/tftpboot. (chuck.short@canonical.com) - Disable the checks that are not really valid for Ubuntu or Debian. (chuck.short@canonical.com) - Add myself to the authors file. (chuck.short@canonical.com) - Updates for debian/ubuntu support in import modules (jimi@sngx.net) - Fix a problem with cheetah >= 2.4.2 where the snippets were causing errors, particularly on F14 due to its use of cheetah 2.4.3. (shenson@redhat.com) - Initial commit of the Ubuntu import module (jimi@sngx.net) - Merge remote branch 'jimi1283/import-modules' (shenson@redhat.com) - Merge remote branch 'jimi1283/master' (shenson@redhat.com) - Extended ESX/ESXi support * Fixed release detection for both ESX and ESXi * Added support to kickstart_finder() so that the fetchable_files list gets filled out when the distro is ESXi (jimi@sngx.net) - Fixed distro_adder() in manage_import_vmware so ESXi gets imported properly (jimi@sngx.net) - Initial commit for the VMWare import module * tested against esx4 update 1, which imported successfully (jimi@sngx.net) - Minor style changes for web css * darken background slightly so the logo doesn't look washed out * make text input boxes wider (jimi@sngx.net) - Fix for the generic_edit function for the web page. The choices field for management classes was not being set for distros/profiles - only systems, causing a django stack dump (jimi@sngx.net) - modify keep_ssh_host_keys snippet to use old keys during OS installation (flaks@bnl.gov) - Merge remote branch 'jimi1283/master' (shenson@redhat.com) - Added replicate to list of DIRECT_ACTIONS, so it shows up in the --help output (jimi@sngx.net) - Merge branch 'master' into import-modules (jimi@sngx.net) - Merge branch 'master' of git://git.fedorahosted.org/cobbler (jimi@sngx.net) - Some fixes to the manage_import_redhat module * stop using mirror_name for path stuff - using self.path instead * fixed rsync command to use self.path too, this should really be made a global somewhere else though (jimi@sngx.net) - Add synopsis entries to man page to enable whatis command (kirkland@ubuntu.com) - Add "ubuntu" as detected distribution. (clint@ubuntu.com) - Fix for redhat import module. Setting the kickstart file with a default value was causing some issues later on with the kickstart_finder() function, which assumes all new profiles don't have a kickstart file yet (jimi@sngx.net) - Fix for non x86 arches, bug and fix by David Robinson (shenson@redhat.com) - Don't die when we find deltas, just don't use them (shenson@redhat.com) - Merge remote branch 'khightower/khightower/enhanced-configuration-management' (shenson@redhat.com) - By: Bill Peck exclude initrd.addrsize as well. This affects s390 builds (shenson@redhat.com) - Fix an issue where an item was getting handed to remove_item instead of the name of the item. This would cause an exception further down in the stack when .lower() was called on the object (by the call to get_item). (shenson@redhat.com) - Add a check to make sure system is in obj_types before removing it. Also remove an old FIXME that this previously fixed (shenson@redhat.com) - Fix regression in 2.0.8 that dumped into pxe cfg files (shenson@redhat.com) - Initial commit of import module for redhat (jimi@sngx.net) - Merge branch 'master' of git://git.fedorahosted.org/cobbler (jimi@sngx.net) - Added new modules for copying a distros's fetchable files to the /tftpboot/images directory - add_post_distro_tftp_copy_fetchable_files.py copies on an add/edit - sync_post_tftp_copy_fetchable_files.py copies the files for ALL distros on a full sync (jimi@sngx.net) - Removed trailing '---' from each of the PXE templates for ESXi, which causes PXE issues (jimi@sngx.net) - Make stripping of "G" from vgs output case-insensitive (heffer@fedoraproject.org) - Replace rhpl with ethtool (heffer@fedoraproject.org) - Add --force-path option to force overwrite of virt-path location (pryor@bnl.gov) - item_[profile|system] - update parents after editing (mlevedahl@gmail.com) - collection.py - rename rather than delete mirror dirs (mlevedahl@gmail.com) - Wil Cooley (shenson@redhat.com) - Merge remote branch 'kilpatds/io' (shenson@redhat.com) - Add additional qemu_driver_type parameter to start_install function (Konrad.Scherer@windriver.com) - Add valid debian names for releases (Konrad.Scherer@windriver.com) - Add debian preseed support to koan (Konrad.Scherer@windriver.com) - Add support for EFI grub booting. (dgoodwin@rm-rf.ca) - Turn the 'daemonize I/O' code back on. cobbler sync seems to still work (dkilpatrick@verisign.com) - Fix some spacing in the init script (dkilpatrick@verisign.com) - Added a copy-default attribute to koan, to control the params passed to grubby (paji@redhat.com) - Turn on the cache by default Enable a negative cache, with a shorter timeout. Use the cache for normal lookups, not much ip-after-failed. (dkilpatrick@verisign.com) - no passing full error message. Der (dkilpatrick@verisign.com) - Pull the default block size into the template, since that can need to be changed. Make tftpd.py understand -B for compatibility. Default to a smaller mtu, for vmware compatibility. (dkilpatrick@verisign.com) - in.tftpd needs to be run as root. Whoops (dkilpatrick@verisign.com) - Handle exceptions in the idle-timer handling. This could cause tftpd.py to never exit (dkilpatrick@verisign.com) - Do a better job of handling things when a logger doesn't exist. And don't try and find out what the FD is for logging purposes when I know that might throw and I won't catch it. (dkilpatrick@verisign.com) - Scott Henson pointed out that my earlier changes stopped a sync from also copying kernel/initrd files into the web directry. Split out the targets from the copy, and make sure that sync still copies to webdir, and then also fixed where I wasn't copying those files in the synclite case. (dkilpatrick@verisign.com) - Put back code that I removed incorrectly. (sync DHCP, DNS) (dkilpatrick@verisign.com) - Support installing FreeBSD without an IP address set in the host record. (dkilpatrick@verisign.com) - Fixed some bugs in the special-case handling code, where I was not properly handling kernel requests, because I'd merged some code that looked alike, but couldn't actually be merged. (dkilpatrick@verisign.com) - fixing koan to use cobblers version of os_release which works with RHEL 6 (jsherril@redhat.com) - Adding preliminary support for importing ESXi for PXE booting (jimi@sngx.net) - Fix cobbler check tftp typo. (dgoodwin@rm-rf.ca) - buildiso now builds iso's that include the http_port setting (in /etc/cobbler/settings) in the kickstart file url (maarten.dirkse@filterworks.com) - Add check detection for missing ksvalidator (dean.wilson@gmail.com) - Use shlex.split() to properly handle a quoted install URL (e.g. url --url="http://example.org") (jlaska@redhat.com) - Update codes.py to accept 'fedora14' as a valid --os-version (jlaska@redhat.com) - No more self (shenson@redhat.com) - Don't die if a single repo fails to sync. (shenson@redhat.com) - Refactor: depluralize madhatter branch (kelsey.hightower@gmail.com) - Updating setup.py and spec file. (kelsey.hightower@gmail.com) - New unit tests: Mgmtclasses (kelsey.hightower@gmail.com) - Updating cobbler/koan man pages with info on using the new configuration management capabilities (kelsey.hightower@gmail.com) - Cobbler web integration for new configuration management capabilities (kelsey.hightower@gmail.com) - Koan configuration management enhancements (kelsey.hightower@gmail.com) - Cobbler configuration management enhancements (kelsey.hightower@gmail.com) - New cobbler objects: mgmtclasses, packages, and files. (kelsey.hightower@gmail.com) - Merge remote branch 'jsabo/kickstart_done' (shenson@redhat.com) - Move kickstart_done and kickstart_start out of kickgen.py and into their own snippets. This also adds support for VMware ESX triggers and magic urls by checking for the "vmware" breed and then using curl when that's all thats available vs wget. VMware's installer makes wget available during the %pre section but only curl is around following install at %post time. Yay! I've also updated the sample kickstarts to use $SNIPPET('kickstart_done') and $SNIPPET('kickstart_start') (jonathan.sabo@gmail.com) - No more getting confused between otype and obj_type (shenson@redhat.com) - The clean_link_cache method was calling subprocess_call without a logger (shenson@redhat.com) - Scott Henson pointed out that my earlier changes stopped a sync from also copying kernel/initrd files into the web directry. Split out the targets from the copy, and make sure that sync still copies to webdir, and then also fixed where I wasn't copying those files in the synclite case. (dkilpatrick@verisign.com) - revert bad templates path (dkilpatrick@verisign.com) - Put back code that I removed incorrectly. (sync DHCP, DNS) (dkilpatrick@verisign.com) - Support installing FreeBSD without an IP address set in the host record. (dkilpatrick@verisign.com) - Fixed some bugs in the special-case handling code, where I was not properly handling kernel requests, because I'd merged some code that looked alike, but couldn't actually be merged. (dkilpatrick@verisign.com) - Two more fixes to bugs introduced by pytftpd patch set: * The generated configs did not have initrd set propertly * Some extra debugging log lines made it into remote.py (dkilpatrick@verisign.com) - Fix Trac#530 by properly handling a logger being none. Additionally, make subprocess_call and subprocess_get use common bits to reduce duplication. (shenson@redhat.com) - Fix a cobbler_web authentication leak issue. There are times when the token that cobbelr_web had did not match the user logged in. This patch ensures that the token always matches the user that is logged in. (shenson@redhat.com) - No more getting confused between otype and obj_type (shenson@redhat.com) - The clean_link_cache method was calling subprocess_call without a logger (shenson@redhat.com) - Merge remote branch 'kilpatds/master' (shenson@redhat.com) - Scott Henson pointed out that my earlier changes stopped a sync from also copying kernel/initrd files into the web directry. Split out the targets from the copy, and make sure that sync still copies to webdir, and then also fixed where I wasn't copying those files in the synclite case. (dkilpatrick@verisign.com) - revert bad templates path (dkilpatrick@verisign.com) - Put back code that I removed incorrectly. (sync DHCP, DNS) (dkilpatrick@verisign.com) - Support installing FreeBSD without an IP address set in the host record. (dkilpatrick@verisign.com) - Fixed some bugs in the special-case handling code, where I was not properly handling kernel requests, because I'd merged some code that looked alike, but couldn't actually be merged. (dkilpatrick@verisign.com) - Two more fixes to bugs introduced by pytftpd patch set: * The generated configs did not have initrd set propertly * Some extra debugging log lines made it into remote.py (dkilpatrick@verisign.com) - fast sync. A new way of copying files around using a link cache. It creates a link cache per device and uses it as an intermediary so that files that are the same are not copied multiple times. Should greatly speed up sync times. (shenson@redhat.com) - A few small fixes and a new feature for the Python tftp server * Support environments where the MAC address is know, but the IP address is not (private networks). I do this by waiting for pxelinux.0 to request a file with the mac address added to the filename, and then look up the host by MAC. * Fix my MAC lookup logic. I didn't know to look for the ARP type (01-, at least for ethernet) added by pxelinux.0 * Fix up some log lines to make more sense * Fix a bug where I didn't get handle an empty fetchable_files properly, and didn't fall back to checking for profile matches. (dkilpatrick@verisign.com) - Two fixed to bad changes in my prior patch set. Sorry about that. * Bad path in cobbler/action_sync.py. No "templates" * Bad generation of the default boot menu. The first initrd from a profile was getting into the metadata cache and hanging around, thus becoming the initrd for all labels. (dkilpatrick@verisign.com) - A smart tftp server, and a module to manage it (dkilpatr@dkilpatr.verisign.com) - Export the generated pxelinux.cfg file via the materialized system information RPC method. This enables the python tftpd server below to serve that file up without any sync being required. (dkilpatr@dkilpatr.verisign.com) - Move management of /tftpboot into modules. This is a setup step for a later python tftpd server that will eliminate the need for much of this work. (dkilpatr@dkilpatr.verisign.com) - Fetchable Files attribute: Provides a new attribute similar in spirit to mgmt_files, but with somewhat reversed meaning. (dkilpatr@dkilpatr.verisign.com) - fix log rotation to actually work (bpeck@redhat.com) - find_kernel and find_initrd already do the right checks for file_is_remote and return None if things are wrong. (bpeck@redhat.com) - Trac #588 Add mercurial support for scm tracking (kelsey.hightower@gmail.com) - Add a breed for scientific linux (shenson@redhat.com) - "mgmt_parameters" for item_profile has the wrong default setting when creating a sub_profile. I'm assuming that <> would be correct for a sub_profile as well. (bpeck@redhat.com) - The new setup.py placed webui_content in the wrong spot... (akesling@redhat.com) - Merge commit 'a81ca9a4c18f17f5f8d645abf03c0e525cd234e1' (jeckersb@redhat.com) - Added back in old-style version tracking... because api.py needs it. (akesling@redhat.com) - Wrap the cobbler-web description (shenson@redhat.com) - Create the tftpboot directory during install (shenson@redhat.com) - Add in /var/lib/cobbler/loaders (shenson@redhat.com) - Create the images directory so that selinux will be happy (shenson@redhat.com) - Dont install some things in the webroot and put the services script down (shenson@redhat.com) - Fix some issues with clean installs of cobbler post build cleanup (shenson@redhat.com) - rhel5 doesn't build egg-info by default. (bpeck@redhat.com) - Some systems don't reboot properly at the end of install. s390 being one of them. This post module will call power reboot if postreboot is in ks_meta for that system. (bpeck@redhat.com) - Changes to allow s390 to work. s390 has a hard limit on the number of chars it can recieve. (bpeck@redhat.com) - show netboot status via koan. This is really handy if you have a system which fails to pxe boot you can create a service in rc.local which checks the status of netboot and calls --replace-self for example. (bpeck@redhat.com) - When adding in distros/profiles from disk don't bomb out if missing kernel or ramdisk. just don't add it. (bpeck@redhat.com) - add X log to anamon tracking as well. (bpeck@redhat.com) - Added new remote method clear_logs. Clearing console and anamon logs in %pre is too late if the install never happens. (bpeck@redhat.com) - fixes /var/www/cobbler/svc/services.py to canonicalize the uri before parsing it. This fixes a regression with mod_wsgi enabled and trying to provision a rhel3 machine. (bpeck@redhat.com) - anaconda umounts /proc on us while were still running. Deal with it. (bpeck@redhat.com) - fix escape (bpeck@redhat.com) - dont lowercase power type (bpeck@redhat.com) - Bump to 2.1.0 (shenson@redhat.com) - Properly detect unknown distributions (shenson@redhat.com) - cobblerd service: Required-Start: network -> $network (cristian.ciupitu@yahoo.com) - cobblerd service: add Default-Stop to LSB header (cristian.ciupitu@yahoo.com) - No more . on the end (shenson@redhat.com) - Do not delete settings and modules.conf (shenson@redhat.com) - Remove manpage generation from the make file (shenson@redhat.com) - Update the author and author email (shenson@redhat.com) - Proper ownership on some files (shenson@redhat.com) - More rpm cleanups (shenson@redhat.com) - Don't have the #! because rpm complains (shenson@redhat.com) - No more selinux here, we should not be calling chcon, things will end up with the proper context in a well configured selinux environment (shenson@redhat.com) - No more chowning the log file. (shenson@redhat.com) - A new spec file to go with the new setup.py (shenson@redhat.com) - Forgot to add aux to MANIFEST.in (akesling@redhat.com) - Fixed naming scheme for web UI to make it more uniform, what was Puppet Parameters is now Management Parameters. (akesling@redhat.com) - Removed unnecessary cruft. (akesling@redhat.com) - Reconfigured setup.py to now place config files and web ui content in the right places. The paths are configurable like they were in the previous setup.py, but everything is much cleaner. (akesling@redhat.com) - Removed unnecessary templating functionality from configuration generation (and setup.py) (akesling@redhat.com) - Added more useful files to setup.py and MANIFEST.in as well as extra functionality which setup.py should contain. (akesling@redhat.com) - Massive overhaul of setup.py . Moved things around a little to clean up building/packaging/distributing. The new setup.py is still incomplete. (akesling@redhat.com) - RPM specific changes to setup.cfg. (akesling@redhat.com) - Currently working through making setup.py functional for generating rpms dynamically. setup.py is just cobbler-web at the moment... and it appears to work. The next things to do are test the current RPM and add in functionality for reducing repetitive setup.py configuration lines. (akesling@redhat.com) - Changed list-view edit link from a javascript onclick event to an actual link... so that you can now just open it in a new tab. (akesling@redhat.com) - Added tip for random MAC Address functionality to System MAC Address field. (akesling@redhat.com) - Added "Puppet Parameters" attribute to Profile and System items. The new input field is a textarea which takes proper a YAML formatted dictionary. This data is used for the Puppet External Nodes api call (found in services.py). (akesling@croissant.usersys.redhat.com) - Resume apitesting assuming against local Cobbler server. (dgoodwin@rm-rf.ca) - Replace rogue tab with whitespace. (dgoodwin@rm-rf.ca) - Open all log files in append mode. Tasks should not be special. This simplifies the handling of logging for selinux. (shenson@redhat.com) - Add rendered dir to cobbler.spec. (dgoodwin@rm-rf.ca) - Re-add mod_python dep only for cobbler-web. (dgoodwin@rm-rf.ca) - initializing variable that is not always initialized but is always accessed (jsherril@redhat.com) - Merge remote branch 'pvreman/master' (shenson@redhat.com) - add logging of triggers (peter.vreman@acision.com) - add logging of triggers (peter.vreman@acision.com) - cobbler-ext-nodes needs also to use http_port (peter.vreman@acision.com) - Adding VMware ESX specific boot options (jonathan.sabo@gmail.com) - Merge stable into master (shenson@redhat.com) - Fix cobbler_web authentication in a way that doesn't break previously working stuff (shenson@redhat.com) - Allow qemu disk type to be specified. Contributed by Galia Lisovskaya (shenson@redhat.com) - Merge remote branch 'jsabo/esx' (shenson@redhat.com) - Fix a bug where we were not looking for the syslinux provided menu.c32 before going after the getloaders one (shenson@redhat.com) - Fix cobbler_web authentication in a way that doesn't break previously working stuff (shenson@redhat.com) - More preparation for the release (shenson@redhat.com) - Update spec file for release (shenson@redhat.com) - Update changelog for release (shenson@redhat.com) - Bugfix: fetch extra metadata from upstream repositories more safely (icomfort@stanford.edu) - Bugfix: allow the creation of subprofiles again (icomfort@stanford.edu) - Don't warn needlessly when repo rpm_list is empty (icomfort@stanford.edu) - Bugfix: run createrepo on partial yum mirrors (icomfort@stanford.edu) - Change default mode for new directories from 0777 to 0755 (icomfort@stanford.edu) - Fix replication when prune is specified and no systems are specified. This prevents us from killing systems on a slave that keeps its own systems. To get the old behavior, just specify a systems list that won't match anything. (shenson@redhat.com) - Always authorize the CLI (shenson@redhat.com) - Bugfix: fetch extra metadata from upstream repositories more safely (icomfort@stanford.edu) - Bugfix: allow the creation of subprofiles again (icomfort@stanford.edu) - Don't warn needlessly when repo rpm_list is empty (icomfort@stanford.edu) - Bugfix: run createrepo on partial yum mirrors (icomfort@stanford.edu) - Change default mode for new directories from 0777 to 0755 (icomfort@stanford.edu) - Fix replication when prune is specified and no systems are specified. This prevents us from killing systems on a slave that keeps its own systems. To get the old behavior, just specify a systems list that won't match anything. (shenson@redhat.com) - Always authorize the CLI (shenson@redhat.com) - Merge branch 'wsgi' (dgoodwin@rm-rf.ca) - Adding VMware ESX 4 update 1 support (jonathan.sabo@gmail.com) - remove references to apt support from the man page (jeckersb@redhat.com) - wsgi: Service cleanup. (dgoodwin@rm-rf.ca) - wsgi: Revert to old error handling. (dgoodwin@rm-rf.ca) - wsgi: Switch Cobbler packaging/config from mod_python to mod_wsgi. (dgoodwin @rm-rf.ca) - wsgi: Return 404 when hitting svc URLs for missing objects. (dgoodwin@rm- rf.ca) - Merge branch 'master' into wsgi (dgoodwin@rm-rf.ca) - wsgi: First cut of port to mod_wsgi. (dgoodwin@rm-rf.ca)- Bump upstream release- Bug fix release, see Changelog for details- Tagging for new build tools.- Bump release because I forgot cobbler-web- Remove requires on mkinitrd as it is not used- Upstream Brown Paper Bag Release (see CHANGELOG)- Upstream changes (see CHANGELOG)- Upstream changes (see CHANGELOG)- First release with unified spec files/bin/sh  !"#$%%'((*++-..0113446779:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^2.8.5-0.1.el72.8.5-0.1.el7 cobbler_web.confweb__init__.py__init__.pyc__init__.pyocobbler.wsgicobbler_web__init__.py__init__.pyc__init__.pyotemplatesblank.tmplcheck.tmplempty.tmplenoaccess.tmplerror_page.tmpleventlog.tmplevents.tmplfilter.tmplgeneric_edit.tmplgeneric_list.tmplimport.tmplindex.tmpliplist.tmplitem.tmplksfile_edit.tmplksfile_list.tmpllogin.tmplmaster.tmplpaginate.tmplsettings.tmplsnippet_edit.tmplsnippet_list.tmpltask_created.tmpltemplatetags__init__.py__init__.pyc__init__.pyosite.pysite.pycsite.pyourls.pyurls.pycurls.pyoviews.pyviews.pycviews.pyomanage.pymanage.pycmanage.pyosettings.pysettings.pycsettings.pyourls.pyurls.pycurls.pyocobbler-web-2.8.5AUTHORSREADME.mdcobbler-web-2.8.5COPYINGwebui_sessionscobbler_webui_contentcobbler.jsfavicon.pngimagesui-bg_flat_0_aaaaaa_40x100.pngui-bg_flat_75_ffffff_40x100.pngui-bg_glass_55_fbf9ee_1x400.pngui-bg_glass_65_ffffff_1x400.pngui-bg_glass_75_dadada_1x400.pngui-bg_glass_75_e6e6e6_1x400.pngui-bg_glass_95_fef1ec_1x400.pngui-bg_highlight-soft_75_cccccc_1x100.pngui-icons_222222_256x240.pngui-icons_2e83ff_256x240.pngui-icons_454545_256x240.pngui-icons_888888_256x240.pngui-icons_cd0a0a_256x240.pngindex.htmljquery-ui.cssjquery-ui.min.jsjquery.min.jsjsGrowl.cssjsGrowl.jsjsGrowl_jquery.jsjsgrowl_close.pngjsgrowl_corners.pngjsgrowl_corners_hover.pngjsgrowl_middle_hover.pngjsgrowl_side_hover.pnglogo-cobbler.pngstyle.csstooltip.png/etc/httpd/conf.d//usr/share/cobbler//usr/share/cobbler/web//usr/share/cobbler/web/cobbler_web//usr/share/cobbler/web/cobbler_web/templates//usr/share/cobbler/web/cobbler_web/templatetags//usr/share/doc//usr/share/doc/cobbler-web-2.8.5//usr/share/licenses//usr/share/licenses/cobbler-web-2.8.5//var/lib/cobbler//var/www//var/www/cobbler_webui_content//var/www/cobbler_webui_content/images/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=genericcpioxz2x86_64-redhat-linux-gnu    ASCII textdirectoryemptypython 2.7 byte-compiledHTML document, ASCII textHTML document, UTF-8 Unicode textHTML document, ASCII text, with very long linesPython script, ASCII text executableUTF-8 Unicode textASCII text, with very long linesPNG image data, 32 x 32, 8-bit/color RGBA, non-interlacedHTML document, UTF-8 Unicode text, with very long linesassembler source, ASCII text, with very long linesUTF-8 Unicode text, with very long linesPNG image data, 22 x 22, 8-bit/color RGBA, non-interlacedPNG image data, 30 x 30, 8-bit/color RGBA, non-interlacedPNG image data, 1 x 30, 8-bit colormap, non-interlacedPNG image data, 30 x 1, 8-bit colormap, non-interlacedPNG image data, 214 x 77, 8-bit/color RGBA, non-interlacedPNG image data, 18 x 18, 8-bit/color RGBA, non-interlacedhttps://bugz.fedoraproject.org/cobbler?P7zXZ !#,f] b2u Q{K^ك H}s$ TBڹ"Kk#L+>xfjjh[ZW7o8Dsp<~&aevP+SYInVS#ɖR*.tk#&Zʚ\]8j9[BmEzcmSOcCdQhCYVUڠopͺ BQ.㭢&6{?=0*!`RruUcJĒOH4<c;V3`b }fI"7)G\HsT.4Zs t|ѪpgT]u^6;6k};q30ja^a?jQފ[K"e_أ jc?tc1wB2՜PK_4en>INEZz^~򨏛Ȁ%h{OePX$q7:Z'꧀Ыᏽ2qwS$$۟$pEnTAnaQqkfU^Fr ܗZSZȮVZ}A)ݷCZO Yڍwi=+m/r}^D>QOb9eK.BWJMD`0]:B%DUfG( 'n>z c} NۊLW`v*Ǣ1~3;4ڛ[S0Y:L(:­]<&w>&ۊ!KUMQ_񎚒[ov! ¦C}l} ;rgdS75y9 Z'^(G w5V.߮\(o~ZAomHK%H޷L>P21.$ZP Hkg}Cy+e[#PCrw %iLfP[ve\_MsQο6GE\&,tjF`[VvF*GZ'%*}eGZG(,ǻ8Y.Ѷ6[h0g˶AƜ!p9?8q~6#(OyVcɉj/bs x'c?,eBf>iNV[&h6,9n!w܊kUd0pQ @meNDWk85k׌,(orRbMEмvskmPჿADQVS1cƢ /'Ay Yy^p"w˫^ٰv~dD@)aF*6bf%t4)ax2b]/lзc(\X.w` {%u؇m}RyQfrũDnv4#p v)7XIT7mO}i:(mh̅:'mEqJaO3Dpbǭ?NQHtbIL^v#0ԣ%t{^pqT2s0_IRd2|JE:z]+s< (}FWU;'&D&B:LOjTp\(#PW@3","`o Q}8RU6M AfJ@;5št \I5GzC?k1ڝAo ¶rׯG\iD<~ _S =zj[@2Xgyhax`"$^WkEsqZ<&ZU!P[j^hR]hʛv #1tL!WN4`I~k9vώ΍R}GOV90+KE]"CM3iIvAƱHSEltg^ã,~4 Ak'9 2ê@~R ~'Q {Adup:ܕKA)J} WyZÁҠW6.-~{ hM<7Hh,[8UOJL$hg?AY^guVlE]݌k1i2We:esKOgEGnM@G\.!N^e߬BTYe:NC0hl_BS&I쭰B|*M'= f 3XΒ<@"E;'% .|8: ћ$KV1 .EAHW;^ˢܵrD,"~9,x:M@)'^{#0q zO*/9YiRD6)">)'[uTKYpZȮmQR5ZXe#r;E`@ڬL<Ѱncm#et؄9] c_>ͧtJݣ x0z˖#cOct=Џ|k PZJ[Jҋ!%Ż,M>cv&:)^5_ zNcdEAr'܀!NQW &X%\sP R_߲_nڰ!8I?(f@ aYtƔwƋ ÿaVI$vpg>|۱Yve,\*#VuRI|>Ш5 w9ܓIG|E=\rh}}G˅*2 ʗ4M}%r&=, p<6HoC? e G|2IsZe. ddZiVˆ!IW2zgBrO vf6@o^4?Hܺ62Usf<'{ ?"F( pfU~8͐ϥ'OwyvQ2&ӸPEJ&u79*՜qCPEAn $ n28),휼"_#c@<P 8uu^Шy1kď).nէ1diZ%2jK84H.t}wMt)kT\TW{3fZ| эW87m Ę6TЖ%I>3Oٯwk $Ev#!`a|⠹9xŁ 'Uupw nóVd)))DN^__3T5+!ݕ M*RPg3E vζ^X> b/D}>M$/NSz//N $ڜw,[gWGSK'|+/{p9Kw.E lS MY($r4P6R/o"˜~,H-z Px=wM'U1==-?)Rs:[<6'ZnrROPGd4#Gc#nfU^u}[֖x|s+O,:]Ra?>p[S.*;d x#\0AJ`gRqבv@Np (نeLFCYFjx/A@qx[us<;Ժq6,%`o^S%O')-rG^F3JݕO*w"/'jl9蒒O//f?{NʱߓI:/r]3NI{-k{~$S탪TM+#;IH rƶLo ϡ/(h<| ΍Q \bJL>'մn*$bүڭmKV9J:?ƑE A7opK LW03tt}B@n9qٗע#5{ꢼHw7,!#YDk(: ]|\`u"N?pSn]$jI<(0ИK6? [q|}WTú>ɽӇX?3jsDT\Gz`T3^;HCbh~{/ [bH,;Ml;l~_!Cc\7Ի^,TgShf4i9ļOjf5xڊ[ qi<7 Nu@1K(Ihh(ՒG:[WB-ja!f#_jY(WBQHfEoGOBT8et|`Δ}6mGkpFb:7BUs\Su221 ^yrt󘳁 !1`P&Vu< Lx39|dfI+ଝ qJVl^z#"  rNNEk-5bH"PQj" pڰl^ܛR0C&&Q`sa{)y Jd';iϹ1ػIQ'h %\Ҙr &5^:Ι3h lf2U,׀ႪOg9{PH'cTUQiI2vo6io;{N{܏b:P{Bc ɨf&|-[r*h/*Z?%a ^1J^X 'ۄII˥beYFz?N2|"n(2 >4|.6P6DŽ` X}sbk"Jmir?]-""hY#$x]B` Z._|L4i_K#PRQ`0C|#t@7@nG@O ػF.3ګW5 X f}]Z8",8x:ؤ5imy9ː[<.xw4glsPmW2}1[x9<0i׬M(=/v) 01?^{C dٙgu LYE<|[Q¥>m9L**  !)qW!_RTHsF'5"dDLzLFHT8Hez"8xZqzMsIaC]Xϋ'<4OM}Ws5f@k*ƒi3LۏXj? YWaբ&w0* N]!6֝N=T]YRPqi>>:o;c]1 CQyl!F4Um`shjdsܤ]CժEODsInj_p!ϖnJ3e+|Ѐ] -:"xPnP^e4ƗyH2:,<ˆwwg jOݨsBrcZqB; hW*^[:t=›'z5k$0?hM7 8:'\Eؖ ūz' UÿoVMC{FB3'U^C╜˶ @tjl -T4apIL`Byh;o\ދM),LT.ۓ 99gi agX5aAՔ0$?XζL)ȉMj?4MnICPҭ{z{NxČ]S3惔yhCV*S,5]sk8 V@?!}9ˬH!nq06CdbR 88RVYٴaX@%9e!3I靿(E+[YLx g]-h MS/Ad x*ۦ3ma-#q>/Jltˊdvd!uXA9=e;S_%sem v_wzֳMV* @})^ @kˤ2^h.^᫁~۾6Sٸ_b 򃉄w''UdSڽE K'%5yϹ"1y*/:ER=,oݭs|.@j͆]^ի*;پP]V3AJ”0ᔛ{!dz*)8!S"{7y-YqId-E=/MO8y _;r8U<]5-#`-<+ҽ}VGʇHi26r0-3hY3WVޢBkXY9m,A:&.kg0]]#Uע2R i(? _X^%C- GX1*%\.FW*$)F}wT A'N,sEw,Q-Eg50/_CQ(,&e5ZژXR4PFE цhdGvYD$2SSog 9M+)k'곱`(3d>vNfRp6*yΚ'CE(r|:m9w FR5ʄx{ڕ`Y Yq id6M} c;$U0 pyu ܽiX2.nARtj#n2jJMجˢ1D["(iN~ ya6mD=D¹Tb й|p\2M'$pnbrXYR}ʸH|1+e@sC.vg+sHh!WƌM41mAddB:񃼭8mۀw. tņ~Z[ yJE%OОl+°ѻ*=Ϛ[ٕ%n?ɕH_=I-X3bxxH|Sxd{4LVUHz傢c+@.;޵Ǚ!링M0qڒ\Bx+ hڨMX];<`,D!jf'ߍbV'"Dmlr]ͷmc^FaT-W FG?a/f~0ʽp` 2^_O3D+mY[PR\;w*ĻP AJ48G~a`ڛu9^ Y\[_e = A1[w1/p?' ρ2[{0WwVb3EuAmdn$|0@ϓ"rŒD> fU;#b1WIQK>ł$w_RRJA\x!2(^?=7" TsyDWT{HqQ9 Dq%s&Z,`7į*L.ȯ4E7 jE'JޥGU*,+g>xeqolZK.q.q0AQw=MY;1vvsOv4p8vwSȗ8s". 8oE HAga@Nw64GO Ru{*87fVS|@b}:ݬ9@T1ר&KU$P:`RFMTKmyq*Qg9"Z^v nE^ryi`m=oVOm[%իAy+ [A"G"mAI\.̺eAW,O_& r}a9~'©PƛiBFNtkbK7LYt+`bFjKuI 8-]zil4wgmBL=sWY9?n7L!YQ WRd]VJ5 j۟2@i@k8A ނ{-h-rb~! 6x595oTݓo?E/BJ%'+4wqOqG1ooQ#* |F t9dsɶ\*{2GNhj z1[@?-!>u4TPFItղMI&Hv0Jiy+svvQ\N=DKȓCCULjB[n(ЈlE$ӆCOg#_galSL7цx[IReK;Rd ,i~:A?^a};(`yU[Ly!FНRax$Io(wd+oY =塶ŝD>Z>' נ>$R˚5g^_i4<:.p ],ꢦ)q#+$X[$t:;1Ý2*,HӖlXgiQ{k#''{DU~]=jP8{ScJ7.R`S`Ncc{$; ڬH)T=~ya2IDl5jga u#MgHi%\̿iTn3HX_L>8uB"&CLJT @~ -K૑yEƻ>}ɡS%֑,'ÝfԸ?,级h:B|Uo9pY\5tupyֻ^s=Al]/6:82&kWCA)t6ϋ J-ά'=}O\%ouD4vSWUJ_Y]wɥ^k}[h)I Tըq\p=@:%%; c]XBAm>Xؔϭ}^g4y{ޥt5JR\mxNz}7I䫯v+f`Od3ghi7a\Ұ2bJL9dA,SBB(^:A_,GH21}l͂Z/Ykpf]] T:]\aɲBFa&4 fُ>Gh$  vGxgɎt=A7B+3] r߸*?`::r$20s8oB"* E02 O #G^3لqA)ir{Ƴ!NǶk?pJ9esacz[f01ȝN%4:&2dz/ t.œd&ͿJWArz?Wԃ- W18Z34U(e~7[LQL] } u627qfDZAudV$Z/Ax_|2il9xװKGpr=A>daU̡N ȝ]4a/CZ?"bn?n+>?, %fQKxnaOp$ _,L':)C:5OXQn>rw:mJ6X80Bx̫<\ML^ݧ :E76U!60cGin2zC5;k~O߁)qxkli&r9aΚȾ fÕ\[KG8=Rk5'Rc/j8]8͎C+q~  dZBΚ+!2_ȭs J]یQ*6a701㸢XV[ !ul!&HKgnƒ:#?㾅eDe6.}7DhE@Ed<\eCHھ tj0*>OPfZRPӘZ,4Mwޜuʹ(,@= 5kaAѐyC\GZT;fzZ )FЕ73pŎpն1Ub›s]Id=+zȫ5⑀>\ιS)iOoΥ= 1Fl)œw"~2W bmy+)-U_!Z0P[/؄d=ó%Z_1 [|@?bnyg]5@5s*F,. q.A>uIa(i}Y.D`i/||iWЂ9(R`_95`{WCFjnS):xAfL}R;/^;hԥ/}ʤWN1ryxa0o;yb2?y$|Io;d)H; QVg"@lwbq[dOJkVk9@*~Q+f"9\X 4> tnuܟS%`'~MW9J 1&|̀_\3j <:2ƏƉ=a ѵ Կk߇sA[Hl#aD moɭ[,o72z~8g^'~JFInc$uwEzX-7We(tv*(YP~u#i>DҪΙKG".qwaD>P4BT}?(f(nƆZnEOT1]̡owz:^F29<0v "OVo(7#ELByB:<=磱YW[SU "8) K(-{N4Nf9Ɵ)aE tiF3!ܠ\@zo~osJz)> lH ^o!cc@NkޡOT0hQc q?70sY-3Nd4/㪦*Knox3h^E[#΋BA41&]%'+]ff' a& %@Kwp/Do}J>4Dvnf/Ԧnu0!%tJ1802R (H "AwȿS7V ^-!O$ZsHJr_*7ѧ(k!ŏxNP b҉Ej|J} 90TDN•RM+e{ߨ[tl?7tr vI;u];Y^\!>!h՗M4n;r =:z'g 7h3~lqD:NS8Cq&vhg4Gk*]ӀD(>vy0mcϛ[LgKռ&-xhT^Rؐ 8D2N8JC8NӮ)b_zRgDAu1A>Dpfk6U3-}P?9jNV!eIcEdkY">u"u;pG+K6 ֿdg :(yRuz! g 1Ӊ;PK%*)&#*`gpM+ziU2ug!-֎3D-STRxGHUc5SP3@<^MlOzl? }Ι֌ȄKe*ߦ_a6&Lx7\̌W'՞Tn]ҏCjƒz?"ʎHV *I j!:Xݗ+^cOq6E!}5DF\y= n0w/c:WFաjb0i73fTjvEX}"1~>_Y |8U%.`:J.<qĠR>3JB* P#R2IzNBrd]Q=AW`dzd奾@9+"Sg8UW)3E~'Tys?;D<3zlUƔr.QPVv˯v9Fs8WͰa&I~80w3J4 !M>A Ă_R~v}6=83_ ߷ՠg|i@h ߨUvu=3ȃ5Rc㋬)CUwxxWgN 3/j:I>щ𝫕9qř~d?sp9#Kn4!"WgBgK|<Ō1\̪l?rЧa,`#ib:=݋X~l ,#taxI_ܠwva|R~~waжӦB'ڟFH̽}Nc~Hz![Hpy?!^餞uBz OKj-&N&yq;ŬS pHãZ},rkʘm:2O[xqF$r]RM; 8\.}э:]9?f0#Tȝ%kӑX̓FҲ2J8 5x] \)`<ުJEM>mcvxskp:@&P0ݤ4-zl_᧱ Ue3y]-BIJ[;?tIiΏ,qz} )B`8ȺhQekebdӶYǕIcS@ IPiPg/]2 A"B) s5 w0_DĦfL9\, 7s!J~݃ZJwYut  #AL`g)I0vd-)C[=5B4<>3ϲ Eϥjo77^Jkj]Hn1x,&ԛ(A Ҍ=d5ʶzmv*:'%O2EE,I?ZD#|':b.(nĹ&,St~~T`I:,4@צ(-Ŕ8aHliԒ#ܴ!(m_ /Nʤ g277IUˇ)BeVS /cI6ǗF75싪Z|OX.RV8 Ҍ&;GjQ#to2]œUHnB;=i|8tb Du iY2 ߒ:gNC#[)s^3%wķ`.(A`ڒ ]٬N)8܁{qK߬j5VWMw4@NJzQxu7x"ux͸ۭ+5+%d(ghWk]|<8ȋuFR&;Q EGex \ʴ ִm#]nL7 u]T$1_]>,9L*%I@ :K½7F]6W0U>$憣pǖ# ɂ"{%v֩ʶX1pc*y2+˷7_>utDos+_QH_Gۅ$Ŷmx;V,Oߠ2lw3we@m8@u=Oj4!$WHǒ%r.gjr^/w_JԉːkӦeaNw-J< H$hͦ~sfJ٠%ni ,}}qoA]{rLI)n"u bn2WV(5P=*%nN6ߖ-71jE|6yM tAİ,M#j!SNCa! +;Q^[s1ߗ\%+I|ō@ nE!B<;kjˮyk})_QȽO'PSs@W/`7FGuB,rEV{ږ1x`ZL)b닱~|0=x$ZTņ7m$n FcD(svZϕI&)Im`8ҹ\lᵑ Ҷ:M'@QWD[Ƅ(9s1C*4LtStw6t^{Z]֋umk[{[)}ڛR= Mb`aRb\4ՅxJױKC`?<$p_ =2$ڥ9übS{{F ^:q@d+y ťkf4fZI kX (y/fR =^K13x#\*uߞhbOdN!AG?-f? p~A\c"X`"hʪNv jwDžb J90̤n J}/_Mv` (=kiQ0TNu2x|nC3 Xν$p/ L ~b.E<ل*3~A6 7/GZ:"s@y6]^NQ2V&h#.>:{kyKww&s:@:HN_Г:{>S%OfLً*g74dq=lf:c,H%!-|lr:Z$it5ZNBR3^7կg[; C9}D1έ 4bUiVyhX5@VQidXpxwq{^Б*`4\K7%A78e vsEպ0g=>aj/`ZzٵEнy&?-tӢ_8av;T՟ WzxɁwS4S?RǒSQd dm u.0tꨂE2óZUl2Tk(:k@4 nGB CMvdxl\7Tɱo@+\6ˉtpŭ6,39rmop2&  N &JG 95-y@V. .!moR1  Ef%1ڲmsP®|\~;i֪S{?.vPp]"@N*l4FlB^$!v;[$1W7Cv CN c!0gPgrEU}~ϬYedR\R!i" ZJu>tlt.\o<(vh_#!!! ᬜ]u-#HB wiC0ﻤW[0yF,3JdRݑabGixA`cB" /~C+u#}'nY ds9 [MKuђغʂ [٨Hw+ָ9m} F: ˾b9˛qpX$׻_v[{ )Fu6y|D*%C1S[7r},F"?z}^7/&xSAl?Amh?>ND *arMJ5 RE#b4FM=F#iT`8`'f§vDi R=G UΐbO~"ITwXWMjv$e ngKݟ:XWǡ1+ :kD$)%s a*Ý' Ϩ9$a=,C*T/X 67 7ug}NpI⇳ `%]z~sF;□os4,2ڐ]zj0ݍ`8{&{ ` \,}7V{@d6jVp{JףF}p6Ldd}7`h4F+q2zIw+lF,Sv:oɩ}"F&V1kxn#~}T]\'-4)CGQӁnƃy ,:ńBdQVw/^ ^spM}3)Bߞ+94pMK՗ 3NϺ†@[T,%o\pzs?NJ,E[t~C'%N,0b[WQ Wp~Զ?l:Fw6SAAmK@3 }L?9(krs ɻmRz _٥wϊbsR~-j gJYm*J]LX~MFq^*O= N]z8D~LM$#7Vk;`(zF{mEbZH%nrfynTJ#"@Q\ c-z:XDC*齢M>d6<{%w:?ԷUQSw%(VXy;)p>V\EhHv^by)讇L2 3sAvU8gWMLD nvWLHĕAbh6ڄ rFJ`r7TNFŧ\M[OYφ)yoh뭜Л(_~cndtVʎh$%jqGr7;Yc+EШWoR/5O:9rQk*Y= EImUh>Ƭ~p#,y/>lĉە+_ĐxqK/6cu|?s%= ?u|HjW=H`U{Ak yhgVI 1w(U) ,]ᆫ'?,#+me^0JAu%=NHtYUU@ZBw:as?>Z˰~4Ӊ7@B/.0+.ίJ/Yō]wF;88&EyL {']2vt8n 9~8!yKyjaCeBMڛTj~=#{ Լ6X =yx*}"W/*)kt}_.X+@磮-}Vw{2 tL*FÞݓ#> Z?EHJa1Nۅ.$*ʾDIPb?G`6tW“e/\gO$ Y<co(r4VK*Vc9\Vh :x4bç.E|X%I@Uac<}#}:gI yM1Vܠ{Oq1EMdZa}Dgfjd zJugP[bwK|%oqN>Ŭ=e,]_eoC{bv?M  48f ݩ0[G)c0P"U-M1 Zix--K@\ l6uq WJKt-0آǑ@G `B08L #5ɠ}ylƽwDK^H{˫ ?][[4ڮfmL =_̆@-Fquk +&)ގ:ipf@ 6mĈ~A;V4R?َ%UX$%î28r>b) ;52C.w.<3quAfP ]POΑs6r0Njƻ'sKyΗC醄BTE8%!)Hvʢv z]~JF%0"€InQ LfT-耉:aJN1͢s.lNpA=+@6ߴ #2 MJT 9(J/vPOY괕U@`nD 7sb[xsu8al)0XKDfT[#wTgXe*=cP݂~ au)5 yE2hi8Kd?uϱTy;Nd"Q;UU  )ˈmIX2A(s`r4}038:ȃ8 Ӽ{g2+r'MPꊞYs*ɢR^nwB*H<+rw,Io+Yhm :[S4 Jj2PU [3mɨ ; }ꨱRv{D}փHb{22ujz&'3A D\:&^C(3 N0vk t%^㊦>B:<1'Lc ^#+FhK/?z_5 ^C]uv'gr\@.u؇ܶ; '\6G;{Ttˠd}pGXEYӆ& 7hRHꍱD\HX/()+TF/Y7DDiyޛylb/Ý$>oyP_4Y {Aqߗ4şpMICeeIFm-({k, Pvχ?ա ¾>}+ӛ&poD e}Aӏ}OCcZ94zT7Gp)狩+H:7DLYvAZH߬B2 f+(K淩OY(w:jEfq!B7#xsb~7%, CxVK&XI0-v70da~t20թ PƊXJR B2>37fbiNʚd!d8TuƏοrsTKN]Ҫ}*XΌ)NNHƟeZ-gc5^AZxj Ұg%_51R=_WGBr+>Ӝ'X2Ztc4b*$Ď.p4 .EA>-Ilol u$PqIJpyb (_G $v=U.$(&窞=;wwn\,"uǵY @ 4$n+dž19&̽@fLka}p)ոM/5CBwٚ^?vo1 O d\EDhQҦތ7P?f3q&_Rzé3"g4`N&LDd!ʟlPl& N:f^^H>~lˌ&@w]-Dϳ(VAFנSY@j*G^С|B{"rE޽$D 32#Y*%flMM}Y4[g2PRML>oKلC`V&p 4.xU{2/D) Mtk=,Ȩwm}^sX =|뼳Ȳ?-'9z28˂:\rK|CcI9hqmYQ.?b-^_]NH67ChV`אi %s=Hӧ-11}xh.Pe[k|Pe>aANؐ"~PybF0h\Qcw=yWfߣPe[:3L [Cוvw/Xqpk/O4~0I6ZS .ӫ(_Y""g}J-ɢlGW c5LK53w vtEjx/A#R"pRdqiGE;sQRO΋'EYuZpnh3Kj'|7X +فG?ι5Aq1Z? j{ Kݣn 6މ`1fŇ J#ODnv HknjvU]q`Bp=Qx(/|QQHRlׅUZv 9 NY}e+H,EY/8{}!QPY&^ylg36v2ݹdq5Z5m6QIt+bC7>>9dJ܋cjsf-cZbfP]>)ijS4|-kl,z*L|ڵtr/ Yh#q.u~ΎQ|+(z3 O*qwνT0 ̽S('!QJ9»j1 xҕu5VO0}oT-ro.{ eUICO9[Eam`kEtiVm+m-SE7wzܤO(r;M`z㦒x42\$ F Uv)jtdvmc B м?S)4ݪɛ ]r'k#q#WNZ =Sy3W/@ L|/T[$4&̕ZarTIfZť{Z25z7xh*F""3: ?C,k|gYx8:xjb6tpOaNU ,8.i$*pVas} } Ix:Wa=ͯ7.8kcjRZvh-B;HG3y[aL~93uEhׂHEb b'q11 vf7X~3 s}?⛝U,kO )GN 6㥊Z90@k/R9gcln;#sLmP zSGzY( ʖ¬~s|-jy8cWЯLdcn)Lp`PlWn*pfltJk]{gZ2skS>k?8er<4wzm $k@9\r-z3DUEֵΔ`n.4yk}v#Q- (~QQ"M/$sN (`0:߆w깇OL')P^%.Hu?D;*Hz2HKd&~0eO& ΓjGmm429ݨd>e8fyqxMeq2z8>ob6y9cs{+IV582r~G)vteJ:C9-|5O?E1`Id IJ*>/SrAgyWϯ=`n[vO:PhLPWU9sZ6I{X/%hQLIDZ;YrtJ؋,Fz׵S>EBF!"1ܮdfsA;I8KʆP;2q26xnq.-mLJC^kTh VO}& 7##&Hfcuaբj*``LF6E,2q5uD(yx}˼2? XU|َvJ9<;&02{q>E{3]68u f1kmBZ>Ѧ:+?FVX~\,HPhM.7߅ _aG&,]b ég@dH8ZRSC*u=:QmA69Ҁ1\%Eg"7A/페U/56 !v a ;c,G>6:@PtH|flUYXsT^s\W.6'tVT[n^j, =]ԲMd\Ŷ:S7NQtA@DrEK.c4\2NE$0]ZԜEkfeکsVtՠy~)κs.m>_}oz)6F W/|MY lIr&{t'A03*[$WK4;HħHV~Hpv]YL }4sggVoOԖެd^`0Ax~6LT&9Y =EԐ_3-{`ŞPIT`={3_įLuolpiPn8Tb8RŌYF<]KWfN%חe p7 tU5FgףfXP nV GDD6VP3 oNZHqLL7ZZ^G7[!Ӈr']z෣ j0!Рy7mvs}2Q&Yoܸ&e@n<$s,dWw'~n_H/\.o|cg57>z),>G8BnɬA\<GxFۧ BkGΗ M=k'5dҍםAcID"2\Fj 0QxJ3.?@,{ k!`HxuIP-7|Zp?8pu)l5* 3X=DMcFdNObؙ9lּm)ek7ugyÉ:{=I *xX$thǬc'R¨&3d#,~;l=5iVD?ؓY|K)9[.d;F쨶 `0Q^ƠQ!Btt"Q8G8W?ҚH1!j\i*8՚ҠedN-o[BmjuT,]^휴$ o*$u2K^هmE /%))jߴr엘"/},#Z0 F1rYF^1d1jis?$R{zl_\8],.'FQ(NԂy+?=K1iPk>Zmd\IN?`S $J5U<-};Y`!Oc}QQ=t{ C?dS Ceئ<+BG^*O=$] GNjHBqJb&ʞ0N:BZoq2@y3.iꈐ-nkS~g~CPs:5otYbqYQ8Șk}LI0& FI7T1 GLu] Z!%nm7n-qzB`ՑDߦpfIvTOYRc:sj,ep^`¨0$Ʌ08׵H0qy}A4 ~+(Wxm~x:42UCY18lZ9:D8IfF !'C(fS{g3kXׇgtpa8A ٕgyҠIKcrbMp^KOQ5j;dFu~c crN}j!d/{мw<F?~We9Xdtq!夒y:bd0clHON P |!Z0ٻJ#'%.mfSgL|`cO$Se}7`uƨPu˥ [Iޱ ˂~Nf!\5lqezLYahD RSL6g@LQ;W#C/ej%EMaA#݄ 7wU6Ys׻84DM͋&S.ƞJo0rUAMgz0#8/ǁWQ3ڗZ9>L^cGv M/\HОtp)j.*P 4맀վ"z~kmPWX O ov5haTTI}GI/5M~ScwFlq,t]i.-D z״ \LjD#RLyLpkJ 8o! 7]8՟-( avq;^.jd!V!·$<7ǡœZ7Z(IQ6ڈph1RY?O:S^l>h[y/UBrw1dǨˡUYYC2m8*55^^9u*Y4@Y@|PYN Bt(:#"(0j(c!N`5ZOv5"lPE;U{Hq`LCUJbв͋ LGTo0$›׳zskm'hz{_sEI yV/wHAth7~s>WV03B Qg/\f7wmZd"s*w9,*Nd"(,wy 1a~:VL8)J)ON;E}KΤgse#4dp`٩m=6`~w CTd_PB";ILN5!ɰc>txH::*?Ҝf񿑫;5ުYR(ѻOKCx$5d|-WU̴i94rjXC I#jH=-:"#'_dza)MLR,!}|Th ttX4olgT רl{$&Q3u/nУwH]"Eۈ#87E*L6Ma{7EmQu cc(IѣՄvdV^9'prF]/^EpAeMbNr@bGn߈]MX7-US+oY-U8jPUe(1EHDCY n~,xc`i 1_?TbΝv'bj G?$_W&eKOJLM%:q˷ՅRb!`r' IT%~nlb,(ԌSZ&~|[o,W[تc PÊ”Z:ksGE 2d0 6GH~Љ<o2I~d 2mW,IW t5;ɈFηй:lL*!bEJc~N^@俈\tuPv#&<½{Q  C<̊2#T?G,J8 -(T`眪Zu?>ƷphJLG gxG3`?t-Zn{ %uϘӘwX|ȼz Rx#HPYDaO5vkR?>MΦd灧 LP .vS/X u%cN){;͢Lyxmr w.&|TS6*|kդ]:EAdJʺ(s8:yWI uT )O.Ymwj W`E޼Vs'Fx=^O}L mlON7Y)hRE0Zh&zW>gK[V"ʄܔ`1%#¾`(sj2?#9ڝ$fD1^( h@>qτIQvnA?^tvIꚒT%(+t(iC]vx֮2$B{Vbg`JCLRD#W&@x ,>5u˧ppEoP鉪C`y!i0Vǵ0NtMU1 rþ0-7vtgLZ) x@phGve Z~~Sd 882A>j`0qԅDņzbi3⽁eJCxe8E"],NOο꓾e\{xi*Y3,Ļ%Oe `8^t[&UVul4Ųu|2\ eyi>E Z> Y] -/Lm czBU7'ϱl4#)%'b 6Ϧ7۪jk]66 Eg%2kWX*w+ e(qZqfY/+ #u#o$̀?NVښS*LLQx-T]"8V]x( \/l#t}@.Hk\Ww@h&u-aT Դ$x]mÆ h猟uu/%k\m+|x|S#~Ց;n6m+EsO,Rl9YDu#m,n-oJVX-G8v|W9*vZ pb{S9$LU!p/xi$h́-K < `8c̆<@0d='ٚ{ յ/4C2}=etv2^,>Pj--}w { ߲uh  D' bΠA \獸:r<1Q n:L|UKN嶖w־dZ3INI.^o1bJx^aH'mf5 r vBf7yQ &mR&s Djގ/ҁ0k~RFw0npX<`}kb >.AbL*]l_,f-Rl^3~%P1;<?{Hذa5%\@^+RXRA+$f=ْF(N[@M4z$!3AO,.teaH Kf)H”SS8+&zK}"t! C}>3I ],'юjp3pj4 "-a9~ :m.X&LN))fqy@5Izfg\ơD dO/&xbn|zNqM2sa< hѲ¼xcqh[pےFl 2361ӉJc.&t/ht*6;: }yvU77N;$t xY OfM7G"LCQᣒw&K>vbkBOdS7' kٱf{8#'q$_~?%Nj7~Yjc@;4qVLq`tY-!AD Xna񠇸R/_.3맍~'1ݗ5*EeS35 B.i*\w?=|an9>$1_ybQb.AĬ6rdcCޗ 6 ؁ӶF`+Ճޣ>?o}0(CZ4>+PAo6:YӚwjho!E=ınH*dž0*vrNmoHs}umM~k11*%v8 tWЄ)2I[}0s-;6Gm7}!]>a);4 wm::3$թZ &m3e Fd3/r7ĂL1D j,O8j!ߛЩXxrjI V Τ ^yJՌ]#9 !jxDx-+ 'ڙCulvO!K[)uYօKd ,SI U8/؄,Pז`>-ma-қ4#](зL7#,~|3/2?5?'$ hږ5 !Q_߁8XhUy'0Zqe&zR'-ƽ8<+vw ɗ`q2G=^zAF$\,NzB)CuRQīco7jde*J757PzW1 ,@s)ETjoNdRiNf_$n! t|<ԚB++b-4ȸ~fC/NUI*܁|Kx]>Ci͙=9\ۈ~#X5C# "Wjɾ (yJ G=FQ8 u|x+ N BC]C`bOOBi?dU%OJ)-sh9%vmДؤ21c)^wT%aDy4K  Ajev ׿ uH$&ݙ^Zniz7m2D"&Ff ,A5Sso(di{#b7)R !ld+kZhT9NWs^ĕjbjai  ^j|sn3nL >H>nD&D m4kx't,dK *Tʺ~NC}|Vѿu(z1,` I`3>e&d=Boa!;~WeCk)$}:6M:.wm;w{=`lˍ@rnYU0ehbÄvCL <\$`}b+Vx@=kHx1gғ6wZ{& 9 [#]@[w󘈀RTe<6FR-,%(ybu`J*O 1ZHޯlҌY5}+LeC<&!Y=]fO'TAUh֘yLյvo-;U U3RCb)?RyVjr/tݶ/Q/bߞnn Fz;aBʎJ#Þ-5 k ?FqQjؓC5 d'h p8:>ŖɚQ73ѨixA3ސ#[ 4^1-z _/6:M>d<;lB)aVJ,( d* tnP—_z~Fx{ ۥ蝉( ɪNĭX87C;ʱ4cm)fQ1p2[ 7g;N[۽gi19&:- 7d#G^q 0z"2y@K{jљ[ G)7?}kiPDrKʏ?W KH\ XpaNRVu|jZKC45pʍu DD2 Y(vCͧ\B=:gb3bIbe(vugz_5LhL>\R7)/%9.eܳPR[sMKa'3Y X' (:'\V<GB.emq4BM)ar30ɻ J _W*pcrT9P(ū³edeYw/KH"BgwbWp5p@hb RU|\zFyF._(5DX@wSE@|g!KuYPpuOqocoS4xW~xfq5"ßT J&@46GmR2Nwd=\ܛQ7ofƣ/uBSp֡[g#QyQP},H#{ |GVxG裵4>Wqt75pUY1+( 3ɤ-Z웃HߖWw}㠘g@/7ζ-e%N %o/J 4&LU|*7( G}63)n0ټ%%ɥqk1er~&j?"6b:08%`m_ YM]aϙZ]p .0K"Vz!S}gkI9@4_\:kȑBxݯl-/W٨D/9>}#P=9~ #rx3jUx\8LPD/) T5밈B/e1͠`aN aCrgo;9WcZVŸ@gbهĴXQXo|:j ңe]lJ_u5`<73+(+fd`'pepd_?\HdЪ uJ&m=aTT3q%?3 {>27?v"GUv 7:z)K|$e A Z6q*'k}sSg^H*rXla襅Ⱦ!=\"G%KXc-4WV׏ڃ3.bjlLtM'܂V9b߹`qSw mЖ&V6WNAqxeD#ox\M;x u k_ -JAve)1 W>0~)Orj. *rl:#_P^V6;n7H5ieaE/W2Œc َgU?D~lk[2a#rȊm!=?1{p1G3$^[K\D##QNu+Y(^S&Kf5!UMH}Nvag9x9Rݴ֖68\V_^BAݘsCQy"g4} ڸ}fzt2Km ̌Xjn[=L)#3ga}( / BB!LE[&+k#.].7!"r=Av :2 UCL;@ۦ4E"6;;!4?-6qzX,u ]riR~~ t{6oKPX'ӌ !'k1\3m;ͷ#-;_2Ȑ%9#fXo [/ #gP6XSt17,Q$<=[S Y7E:&<ӆn\L^ ~q upEboH>#/d(-tӺɖ%o 7.M2gxahq~?|Y!=!{}u.Ɓm6͵,?@Вh6t!g?q ɂ484AGZ6},(8E cXhc@,L#U'P?>|Xj=( ϐcok_ ,g&Peec^*@J܀i{KT&RYn5Fùk3!Q8`q-m:8_/p} /]+M<7Q\1byN.v攋P! ^T 3W܋]e 5G& Vfa#;'֕@FF ?8+锔E5f%j\>"tLBCr~P`w/TX 'GʁZz,̭0Q#d[O,BK_U虔w3͞UiMx xRK.EΖW%Ƌ OU43#2kzChbi\']izzֻ/~ 5˻{W0w~D[B& oL _И $cϿpoM$;򗓸[՗hgDTȹ?_+aG!ݗYGDCvʈ@-/vvȍNtl=s;́G- M3}D'SאK" 4a16͉$x1 yA;蚇iX>}!䩥pRxD85%S:|2=R{4Nc3wJYM 6fN 9.UHrz^6;2n]Zky <Ȗ>%DUBrs2a`uPܥ@rMV\̃V6E) = 3t-h; j* ̚1D櫎i:z[ a5~}F8I0d Ya-G%_7ؖs(EU 3WRVXbP7cz%uWYx],0qbܰTz7u>e{ҁZO)tLAAgE}8\Xy,&mMOD[>ccOr4 OoQ1Hs]ؗ9Tk gV(zƟH$ʴ1bA0>︜=Iw=D#Ƈ5%ү>&R2ZXlNo"(fy{P4iJ{ņs$ pC)W}7i;usԝeخKJ$s  X 3 TR@N)[F.g%ܿSH azx*Qvĵd) O#Y sq)1^muMՊLPlNʾsc{vUx9MLn_7ܞ>Jc3J-)X?()dQ: HBQgK0̗pi9JϹţ  o![j 2Lп7o~HH W{SB2i09ë+B`|sYU$M!TEU}uo 7@%L`dGA(־`9;d=$9$y;ۯE |İ =ݣt邜u;tt0 3b]Om/C[8URc}VS絻"5NBPQsOvß%-"$}&;ΊO^#)F_VDBG>?[_ V8Wa_@sO%˖0>P9vņςX\U0xoj{/wY&8*k_9T Rij >qoًn0P{m{⯎i7r"HAi!pxlhHv}ofGX2+(J9,Jt?L# t˧pS%k$#p3_TjG%}_q3MޥmTs/fr@T7}?whxZSVQfG"!?#c2 -pNy3"jM%EG]DjQ\e,i{+@'NK#ݎ.~Kt*2 wuœ7߬uaIk'(6f@YA3<Ȗ@]ӯ:(AzXb+է_9yvyoAKoU| ۫ID?CWls> 8 : JŨIwMlo!8ES ݙKްI8,ݳ-dc&xθ#2d\y) Q[hd:?_|2[7!?! 3ba] *\t8֐+$LaE# l+[0DF79w;,V\idF Kh4T+w/ { MIttta2.l B2k0}M, 65EIQe;R\*. & ER$rո?U-p\\-+ʔ;:LQ/.aZms㭿A!_<~fUxS2 ̑1 `*6â̹m ~RvuB=ڿLkA7-(@sΘ2g$Ⱦ2c&t33Dx!\(d V_oP ۭ,-]q;QWݟl-zw>Qd7%[yj}fj.Q5!V&:BhZx87I J }\>| 9HZJ2@<4(o&NFbtugįjXΝ › LbJ͙{8̆<}ު`keʟ5SҩB_ۇuxfXKNDƓI^PHaBGSOyl[.]m{4LFsC&KeCEMڮ缌шn&-4m: ak\c ]biD?ڲ [Mz^!Ț>L:F z9PD*}+w~h/-U2޺cxZGO\iv={粶_Sn'̫opeMS=IՄ0`loq!~Xiu1cZI,x}SF֌k@EZAm7յ; 2+Ddu0ۏB]i]9 ,<`꣈>xkb?D3^Y7+tFM]PɁ 9>aX^ffՆq]JDG|f?yiQȴ䧃](ܓi7Ez5 ^ţQNF'7eeM.ztu32&5@ڮq6aȴ۶wnTl=ī=AU!tvUY:Sg CťX(add,!̿lě1rY >سm [x۔.gq>笧hiV^J}OTCZd Yq?F> d1쉁t.T,2n6Jb8bLw!SW"J1e]$t04cp!:^ H MW.&Z:CɸSף{:W Snz'7 LrlS#rV pnBG eef" .z68KFִmGWC1&C=_o_a!/"RI(rv@H~"L2vy?8]Ħw|*XU0֊>' յz/ʴJv!.~Z$\LDQIUSk2;Tn1̥{x^"r29]Ji7&3a[*g&:nrक़M$j#UI:!vEVOFL 4WuXVycd,dCz+&Ing&toGx oczqHU_ טp hd9ކzRԓ1"E^'nthfx"X@#*;&N(ގ|xN;2}ҾY&U,(#WA; ()ftƁ2mIn~J$P2.eqb肺bݏ,f\ȋ;J5VM1hB(NV"#UCt Ί2V&\U3QV`ʙ++lh3强=AVqd<}[CYGMzU*~t8'778 3V'Ⱥ lz6nrzb ]wmO}O?OWU H/Y m&)viPg0,ٹӱ/EW3WqPӐ]Ju ˺.l2=rջ fEY6OG$r`=SU_B2T&?$}M 1w*XaRcq*_/8iR"{Sk2>|]B ⛵PoNaRL[);*ߤw;ʞRiSIŬ3ʠQ{],mEEKi;_-WjCU}ʻ!<izMC/aijX1T_7G; "@{/]E곬>5VX"x2![װʷeH55>x199=-@2cifivυ+cG})Jv#k9 'BDIRtV%..VlV"N+yѥSS!~Niw.XEb#Gc\k˩5=Xm)8("am!Ƹ0f9fF2se@fרvD2ZHBltR=9wo EO<=Js޿L!YBaT#o[ w_Ds +hd:&ڧQD# ;=ܾ>{*E/5b^{ʅ+*.V{pI v֥}&Y.yAĮS?ܫ*뮣ZCjc`aRaa  ԡgUr+ECipi aG'=$Xʍ^kaߥ%~hʀ kJ/Z+Qw ÂKK;֠tNσR9RxbISt]6gOH]Yul1U%OkR5<I=溩ɢQ?pu@?mm}oV;:nꄧlX/u;^iS4!mYվDCUeg3 4nN K2fhWYVvvPO-2>V^8O.xLSmFN(tM)W9#=m_#QVaq@ώ`R+o7w$.|1MFuI Kb{24ϡ;J!RLejCe~6os:C`H)sGY.ųnVn<ӭu/=bv< TakĆ4 󯇊ؐEzt.bLм0?[k4i КWM^dzqTBϗ]`PkQ4ԋ&݊ۤ1})버g)OsH1 [`̊|]oC7$<~@ ,p< q(HAQ 3"C.LB#/*#1tM#rEDKւFuw FȿK\mi[ X KfPyJm`9c+EQ=퓙$x ((B~431CozZDf%ǖ k+һʈ-.tDd>-~hكZrCnޅd+T%=ߟ$@o=!oCjq*|acCl5F@f͊ļK(, ѡ'G'(Ƚ.AdZM<K(Ć w+z2S77 0|C7*BG>eQ8 ޸@hUGnr;':ޖ7e&8RF䯈5Ԫ6y9j߂?<ݎu~-:OŵvRpiWtAkuiD^UtcpCjN](phþCqr( @Z8"}o=[2:0$>y@.  w@%uTk;6k_I l!^ϝMvQ=`;&s n&L.KaatտHLx1C-k&K-̛|S]Ӝ;aRJӱe=wϕ/^eDmU@h?+AF{Gn7UCue(%u?ZU9h0cie=]~Ne0M{ )?c\e =&r-Vh:ERKVp $f%{O9jK_m m=a٩ٳ?ЖMz([SSV.yk8 $= I瓨Zͼz闗iO?LɄO|wLr8w`'#R;m?j6YY#Ӷ0~ W,CC9lÈr1 |Nr]3pw/Pͭ] ;_#<>(*x:s!ߒBZM֕&vQ)ɱǪt:C!n δ8+@wM8*ʷ*ӯ/g,ыِ}I$/]E&x[.Kb8݂d\nQ1sIdx|UY[ i;G="Ex"iώ(`͹ (!][%W֬nj+G|+/Wsj7wWJA#|s&&p4#? DOG6= ڢ qIgKLg++ԑ~M߸5N)H"0W搲o%q*'-# )<@dYl|p!*]ۿcK2R|q=-R=ƍ}y>eJ8 ]|۩{~^=f+8% z1JpG%P)/Zf ]fr^?c6C7Y q2Up zLiڣe<ֶbf[H0'GKdw ؝״%6FzFf+qF8TȎ9Ee.t[́KO-)uM)MqV%+,J)\zAN,,. .!]фwcEOgG0.W3x?`DO*I78S;2g(8҄wi\ fv5Q/_IL7۷܀SR[]m?H\(lAPΆSuoqseGow~?F =pJEM(:i@d(kۛɹFKyaxkǿ"_r֨ϑV}VͦĻpDj Տ lp4ٖis)(N&c+5Ў.AƓNn rr y9擋 F|%S+g?k"ҷWXCh`?K0E1Sۓ>Q59oPfvQkY6|N[)Y5_8-|0~ųMnu`cE69݅/&E2J!uD!(-p4dW)V@ԐH&n׊{R,QǗiGc׽4pkխ_|TRU Sm_7hdErF ^ۏNyGm?s%}CG. *lpwD̥*V?m gXc,q|x A$:ɡq{yXqT|0/1TM,Y !f-z8*w\1l*񃆍7aE@og67Pgn {] @CƳWx|ڹl:en&\b+{G~sSi K rj !;"ĭXBf$.-%*ҎX|2,G;D !!]gRvTm !9DC [|$M+h-Ҧ8sQ!aIݳU)gʫgu;ny]G`}dx\jMcx^D!dq+a_gaFj7 d,m\NJns]~ T]cO}$Pq3ʮw'(-_WlN&gY~ 4KuP;WG"2ic2ʥ#W׸< kiv;1c7)fg5nJ#l;3A3LZF=`!nwJZl3X{SQhċ2 k旃-RD وKC]UUUn>MyZ8pR:}5?pgi$Ԩj K=懳UOAíʯߠDG#Z#QT/>! i rQ},YއfI]KϹ᷅(Т&~E4jTauaB:c*1cj7RyqԹScI7EIQikDlʽ$QIO24*#ܟNuHr3ϷOKj|dWc A*VCG!0Y*Yf~3K` 3Mw]wjnnq;AP^;rg@'\M>> p}/%]x {(W#8v#R @C/29=Zgm1Xn"EMR$)E^>WT}#aß 8+#-GOBܘI ~:O_1~8Nzɍӽ /UkOc|DK֣ 5RRIbOmT 2$֜sUi6m椁 8 W }Yy2?!ښ/E=s+F9c wHeTw _su_ ^eE/V`\sNKR{kd8˺4+NAx%/б Z<{@.ES`!)8<1YyF]_z&}sքȩΌ!m{刕iP%qƏ LBO>s OyP kX}L@Ez9+Y$N.,> t=}_^>nzs,j2 Qd2!!bM `)Fwo^zXVj/05_XϪs.ǘzaywb_QvO,k33ۇp8zJ!" ڨ-Ʊd@/v=Jm+/4:op>"+ 8j\'@.lUePo 4[CfNLJHu2P0Ս;*9k4;c[FOܝҔMne5l!`#%>N!oͱZIGO9UdaO$>R%p'^ht߮˂߾K~0و@Jr"0OߡLkg>"aMw C[E˖&Zv ƹYL9$4]Jq@q3*Mi^5@]|V6mm^E=@c4/o%1 '- S4EduEO.1{5V'ՑP{F06 XJ|L4dYLâL"9i84ƜR /y ˄u)x%gk6) 6Yf@HLBh}|4U|g q+%i VL,)%+vL5|QL@q Ua٦6Hm,fR0L4 ٖv0$5-SNP&Bz8OM9^S"ɟPFl.9ÀEqTc8#PYŴa2^%lho'V!ѹsO嬪Hmmh49D7[d&nLzz(٬M+2Tt'[t66ir"=BZs',o'4Lkrp* `)0;kkE*!:")l ?FӔ2:|)/8:ʼD4BSRMY^Q,` ȧT#@~ք }U8\D͌\D^Ƥ|YbCuR))&>*>ٳ#]jO`D81g$i*x}ciDèUGZD|/p0|M/> gGݝEfENsپpUhdtsG^h*=x@%,PyCIj6oH#{>N-QwS:0( ٬,`֤VK*Z cȉhSS\{W Ht~_גiNfPm8a 1g{+s>+/x_XPIZ}4k}.?"R%-{@#+"6597' ;2EF+9ϭ !ml_889#  Uϴx~?]#ux(vf=-ŷ$6O2t إPQ IA4+g*cuUw!u2ljs<vB!DeJÎH4JǶGzU@DN>n//BS5 DIvr\vGiO6ya4}Zg{_"^-ƷB2lK}KHָ4Si\i61"}R\ ?w{"BSjm==f}80kyhC󃚰5†f% )gK^Q(bhA{$L1 X!:M8@H U\/%8֓l oWusKiDjoO+ePjUjO߃M~_H5VCC 'i*+Y<]T ptAqZ-M# dZejw#YiF魵a@?xfk&Wwm4o&}"Ubmx `Ԍ)-z{ٳӬ2MRj]Ikc)A]!Xj8 ֋:v  \>^+O 6h/Cq*UMfI6t;.zFB6DSphiNpSDf>%^ruoW 9Xibȷ5Et?f/ie -ЈA4k0V])A7.- crb HԔ[-Խ`m#YC%uhg؞|(\O>`uZe |[ =.%%l~2W]<:Pe}N.ΰ3i)ُSKuU, p1VBiC$XMāiz =r\-)Z/dK\n+D<_Uz_h{vg&0`;a0sW2m݌D#EB -8 1gB|L,P~&ɠ,W|AL |A_Q,{{s29zJ3L}P2;*X`GKb,)2 ,%t/yo)ݩi6=AUg 8`E70LQӨ+@e3R0To,'bwpxrmꢅ@ʈ XtV٢[K(Y#opw}vu *|^7KB o8[t'X8a{EyihIGԙX@f] n= e")Ln_o`^(J|3a(P )AgS\k]U:C ,N{K۠|ljI\D)?=M]B(떶2DO?nErcΏ-ؒ.LMu E}`+i 1f'd*( ã%D0#uFVۆ>8*90RufjP1*T52!i90K ip_q`i IO$ '^Ow[m}kzme%qgl,׏^B_-pr L7F42~8NRz`9^uCPsgSj崟h$pkWY+2/ 0@XK>YZ,X7G4]kVG\r#DdN==ԥdQGKƞ |UD=yuUґyKZ%!L5+>NPRNa_WG2m֔(]=gы(K<%0 ԡq5dSr:³L^ J_0e-MhVĊз7f8c \Z6&!$:sݐZUՔbH9wTQpyg6޳/R(f⨸/5jPHt?(S~dyAKgB_rl3+ċƟryl 'Ex[p4¾]H,%iߨLMR1, Q2k a(=C?őlJɬ( kg7-tUfr3[u斶aǒ#RáټD2"TZ_]S}Z?ߏ`C0>iެE۪,R<U,T'h.B9ϵ4<$5q3=8b> /Tԙ$f3hIλZwzJgx d{EMhuK3C\X"K_| \sݼ~CM917>WmOi| Np.Z\&nrTv\Rc?Pl&O>M>┅~ H6 {BB dUY9Vk  r1Gy%Ժ$-̊SSרr. >r㡅eBW _/wg-z{R9W!MKG0^&m n$hV -ڄ/ptAh@tIO(%yn)]9O>UUJS =z{K4Yߎo|ͤ<7д}]I)qZ2E6(>[UѐaÔ &0Nv5P+.{"`_EpuAĥc:s40.5샙mLXUe8fcFb+\(f"](qM^Gs..k{0DT!!JU"1cdz%B[qZU,ױpuu+#IeJ yGNHoNmc&y6K$ 8g_rj 3 P Yf8u⟅1L%ݸiRIua"opޠ+wҚ&lb'`VʾY-Ux6sr@ 5 >[痵ռO kONsʴzВ.m C~(dA("xJ)mFyMČ+*Qtrv3`|\yTslAuGiip:KO⸳m/KF#LH0{9Φ7%/Ep[MG[BCÀ_YJ >O44A\<̞WVZףjB[Omh.C# ͖GDH}&2bb葼`x ĤsqoZU@4&zXi 'pZLiݕ&d}P[w|[dW!bQfheNp*S;Yx–|,Lg69.)EbpM^[0vF%㦉MU)Gة#KrYe@E1!|x~[%=#IHK9;X/8 -'Cd_VK0>D9l)A4PCwRAqt)Xڑ,/>(_:LR33lXC|~^UTC0d.|my±x3ާ>w\+f9[Ry|?/ol/8[_I$7PMOݑ'8Kz.7䈠K 0QOb{.DR2K{lM]zw<~ZQ ld$8(~MۣK]F7* pj hCp_: q/aD6l^]33}:/?_9Ej'WNK67j~tTuIݡWSPoj?fV7=ռ| aM406}+~> AMFr(/ ={A^[0gØ:[;BWV]3$oP BϏTT,sYȵ*3ꆦjs g1 aȘw< EyNx1߸Dni1T!&+*z{ҺY_Qژ~P%=&^cMľϛ![fe&O'91:uqbb[ЂޣrcP+rKgitaŲeTs1#'1a}$cH2#ňL"Sz{;/("pR&s@  ^{׃U}NFx€a0o^:l&cG'{L!TnF k4ҙLU-gB^]%gzZ`U)2}WsҺ-TW/h& PF"zwCzM?)ryܡU #؛ՅPS:T4h&!k#5+C[sΥ7`'ɝԜFpUi7V6 Ag'@2ݹVYQ{.Bo-lE5$lJp@) ?cǙ%W` -JAD4$PgMy7L uZJ2^ ۗ  o@>欍sfM{a,b\ pgN_L>Kqb4\T;T܏Z4[̧{̳HE&_I;*9Ĵ SD5HJYBnwuQ2j,S(6F pb}O󎫞,ihe:Fg# ?4DnÓ8B)vׁ$s-~\ywJ^ljܪ;j2rA!dIb)VjOZsx_`#BWdI^JOj9l~DYLxِ֣DnT(l^.v.n.s `+UF`~Yn$/QՔPNJXbeJ9L30_{% w7K@a"AL]@ VpkE5z,Ѩ`oߵ5V ́:*"a=Nrnk00e<dG}Pj];mB2?0՛>7Q  -i*Vs!ܾN|j^+tPс9/!PFC-*C$α@}v!ɦk4X4nl2S1]R*e4O?7el>[g(WB}k5D#0DPD ޒ< 7C6U @$ҁ_IDS&A#@%sU~+0CzHHzT舎z81Jdgϐ25֏D!3} {[9'qynnS4%v w(߱hU;cA^!s㬁e{^L:bG~sĚpPMf~Rzd"x>2\ OԝtK4q[.(jHgGɈ~ Kr1(+Ȇ.OK ߦv\BL,f,T+xp8DCLɓ=NIP0t+Nz/x Q YQ{J$d!̘^"WGvYtLiy2)VEJ[*ux.+0#޲jg;69!T!zбF.(yE?:ov8[B'Qtܲ>8x>{`\=0I5*hXΧWL a&ZKͥG5"Sb]dzAOS;PG e=dI{ 4cmqhB;-V'eZcSʐ3;?ᑒଟnO-~N"!A(-s(Bddt Pβa@=@ܖ5|pP&4NhR}R^q dX.*tO[XMZ.$[0;vN>֮i(fuoױ^ A4aֻTm\L#~jW?&ЦXցUR>E3=XY2/bI ZZi{ZZKq 3qUR%mJ|Z8B1ԣH ev-#q}g:O8$[P%w@ PqԲW.@\{ql-I$.5<%%!#b u^[> 5ru=y+wfJ%(+DTN^8SW>LkTJr7I-(2Q@?@(9N=/7=9>]h[8-C6ҞFۚ+hql0H&[1{,2D91q'B$3r)VP;C` RIW1 iw0 MG dVy 2k|pe=SwNS錅c^tkN8'Zem]70Ϭ+ Jk*kzUD\V3EpLYh|*2Wy6NOwTd\N[@)i_MkY{HĀ2%]}WY̾|L1lLcNqFؓ1StYir}*nj39y x7ӊtN|g L=SvIo)sa^>H޹?\=@Z xWvm $<"(rIDfE=jbMY)q*=gwÝH}' CI~Y_zaАzQ4߃?/X.(`QN㼔^Nd/'E7TFf$*1d猦v-c,ۣXmkP$Wa^շI@Y͠g=2ys-sJ3ꭨ뢝Po F3UOYF߇p| Pf%%6AK.kX ,o}hSAzCog;*U?m~$vQ0\@w$L~?wt (5U(7c'$n]=ȧֻfw'ů1ﵢoVĢ44Sܡ`RH$ ͏J<¹=;`i &#cOo#AqINyn¥D(; dL$ \nem`7fbUj'Ia|C@H 410V|?P?\!Ծ =leMnC坊O*E˽Yq|4"lVh>Aym 찫l@D{Q=.0W^&aW[z8ɢeK묁X7rW0ɸq#|Am17F F4Rn2KGcbmA1lS)vŎ+4_VIQN+p^ sDB[^#LqA.tߢ@ҺU}^6 |f- z-U:n@|u!qɴq ~3. }ykoֆZp_4 :݆E ^iE0Ϙ(SkҿzJ iwlF]R),I\S#Q9ji餾 oTFgq[[__sӰCw{Y:A{ֿ&,<Ӂi8b0] qZ%k xl{$@kyej-qV|i 6$x%m̮Yk2}0pSE<>G]ΏNq0&wjN,oHc# =S'TEۈdu~幎21aPRrzE6QC-sZ1 LF-/?%`=FqSL4UH[%H=WDV"+_QQV+J5taƑR КZc1) j g h$&1ޥU7{R4Cd^7c[^$/a:B'C|#4UDP}3^pZVѡ49WwNDk׽GpWlDyp2-Z :< 5``e 2`>48leț/ ] 6\GnX-BƯ^hLyHձA%lk3y sec\a@(>.W!{!g9勆-A`#vG73$gj%Ik/%g˞K|h񵅬jԣC7ms6͊ub氼 !Z%HFH^˖9q_Å&猫ϾҒPH/H3&Ri. \T :J`*Ȇc4HzubzL)5($ k@V"`<{>Kc5p}dAK3kv.z0n".YUxc7m*wlԤTX2TE}dFpu>|ZrK#\.?9w@Pr>oc[-FfI%v넭Eh炙yX`*ߣ,, Ijf$(+Ualwn{}|];;!cpqxtjT`$8]D5]9;!T@w~J O.mE3 GGۗIko6hv)3ױVbqK[iYt"%Xp, =x >l8Q K817QvA["xb^"!V0Ux`61,Чȏ@( \(U]$fÛjg9+\¥@ay:^9bjk˞.3BU$[{ CFK2'ϙ.HKiv,qAv3Vq͖ YQ́ތՍ|r t Ca:ҹC,n md0Ze)? w ƉIX}dɢWI6^P.8G%,!R1khBzΨǣ8vg}]ꕾdrZ^C(ܘK~k_D B/yZלq׳,QCTQ i5>hY 6KwOt; q@t# /w$޻%%K7IaҐgSPKjf>kcniZlj4nm>MրO v$Wèa^dOghS e-7ڊ;_OC#rut VT/pP|.~"q}s6Y'y=D brMZB0<!RS0.ZoP [x!AxZ,G$ AJrb櫘5goSBM&hɹV@%o@\WKp7`1ivްYF' }F8wK\a<]"ЋwC%+Xg[I~g7g'~]»)6hgS m G3K9sꁻwԯ37kv?/2#,EK%F_zX)*xL&ZUt` Ǧ#Ho{)@X:ñh;<'lGo_/1U7߃dLM.賀uþveBv0:\G׃Fkm.TU~3W7jNRhfEb(qI>VVYƆgm};0 Ӏh9VN^_ӹ6B!`>6dJq5)gV2PJۦ # ?k,]cpP+2י|L5Qf)2P J̸  _#K},U?b[5HR]U+ _9].\TwiHy_YTyZA3n'Ԗk|{=2=\x`$'=ME)N\0N?NH|^10yP ^;#g,Ԣ̤NZ/+YE;CD8x9my@]5+G19π-p;g)JqX]x_V]+G;*:t0[Fk<^lx9 y *%|=*U[~[kgc/'/(/u+њ(Uo3䫘9}k ةl,ƎNMGG 86bX(:EclĈrfad((V=a(v_zT9vFtߘ\u4 ٓ RUӝ02Ywkb@FG}?u8W^_~ 1PI\"XmdXoO45sU3~Dvrn b)i[yA~e rLG,\jL~Ibpl 4djT7e4701Rp.M.ZCx;|Ȍ'p/lbv]A5?ZQOg~pD#'/tfr:ɓ񯯸lՑS8G S C{'?Qk$XXXlzgXMs(LսB@t~'4mL1}F)IZwgdԐa"N7,|=4w`U Lk8hW᷐Vs h ؓt9Qז+TئqFڰQ5+!Q $''+/_Ժ3⮜24{&) cfrdԞԲ)?1ZӍpY;e.rZsHQ JOri'5>#2hȒqBق4I;pj-j]FylK4ĂK %MI!}޹0Mt|޿" oQf` K%:C5Ꝿul.Ku]f#ޣ@6+\㫞##Wn7 {w2@*Z.kLs l/zrYYh㾂k-jAX &%u♇.r3M-@my}b*+m0M@S #Dԁot'Ut-|YWMVuШQGcӽi5)_K0Eip!]k3y?!.Mm_4\~!mD=@-t1WH6|bU1Za˫voWiA{^Y|D+Ā(Z?i%vkB(xVΜ g}mc#EuYo` ")aԗcEz^dCOfe2Ǹ8:l 5J`}֯-xhuuw XpZaWHA9sc1#|p$䲲r61Cjaj) `nB7Edxf (!|#Ӛ\p!90WCyYFwΒk:lm5H6mq¸11pE-%| OUq U'X QVW$^ NշFxIxyyL:EVh8>^}T>caꚠxqZ1ީl% 9:vԢfqc/$r^cD9TTr 7 X. BM,:( 5=pI|pc1(?+`L:\jt#]g6 Q5@Oda_M$bϨ?A&eKă/AhG%K)nH;";> ՕoQ N?]3W(/VÃlb ~tj~RȼӹYsܜ0S,x5W~n 0sH(]"Vz9}ptK;`&[ټ!QYvu]y|4$L}GA\DYeS8fQ+gIѨ2ش[YH̱QrӾ.C'N0נא:A7XrRBhШ` CcWײ\Յ~V($\a轮}[w+{yi]Rgh'3"@4Co_M\&6]3<#[qd41`^'zKNc>@BP֐ٿRx|\4ƿCr@"T\礏1.Q /6EW\TTK2m8UȦ*.az6׳aв”-LT҉=9>'NW l8 3=g::vHаWy"pN WLnX^ٷMN{4&$6]0h0FT>MУbs# e֚!8ϙzpJ^ ܳ:[M-]l.}x5-#'GN7: O$1L#2.ܬ{L'78y,͕`Ub@ *\Q&k=T-b4uP3̪}cCx 5("r')58/?" Xd_QKDFN}MVqS ،D;*`DZI2PRs7W@jZNC=L?:b]ݮ]Ki< Cr[ԀvOm u͏GnGN>v"C&f -,2stIzܥvX i0/B6&zHqK0=0ZL!zcd) k&צaecM$2>;F5K'DTN>Vi]DO]$vug@2m[ZFJ+.u6] 0A5[lu_fzӳ82Xo.Fqt;@@m ndu?R$UE%=Orw`ޢH24{"oUPOHnG+8f!!óBuT .鋭r֊;N`5N-H=ۍ`j5* <}Wv++&"8؆aS*z8?]O1"\ATឬ9"_O]P=jN^ O zz[$a3,,K2;tYFp- Z$c+{X)frqC&I=!Q:pQ2иAA@ EOFA { '#s, [U¯XJK^'B\={G9br^R]ms( "?-DWEQ/~PDAMaQ[x&ɬ1y |JhR⪆ѕ)y`]IA{~vRC0Vt$M9\Hmq]|gZ!AA-B)yp1H<(8_sѓ'璮|c^x⤨7Z=?&TF0"/>̈"z ő_&_rĢ6S6c^^8!fʗ U ٴ!WN5^6P.T)\rU0vϡw`dV`y1 @ L5@xCR=nrj74mRc>^:@+GLZGW/:\lqɧ[^jn.#t>PxCcs~smL/xh/GG(Y\_,4ñ0P9dxZ`'w6(?n^M4=MpŠ5ؐMfHjAe?b9nfuE84\[dD8"s+Hfڏ¢v*n<=9TJ)"! qI#cBrlwwm D]_T.5x%>eVpMz[=i "MܨpL&b?K^w>QٹX60B3BvgZK=th:W%jP;( KmpM>'/4A|vfW6ytv P[╠L,دJ,rңOc*ڨJb0ꔒکysOFGCĚn SE&+s1xnmk[ KɮƓˇn p, 3!J0=y8L-~Zȍ*;%,q?fW_Mwo;e#RQ/uXϷe{n$AY읅W ) }14pvN{vABx;x{qL1Ol{N  #U K9: Q, 龴&VQ'^]LT0+C bL DGa;2pף =%iP[Q$M|2Tqõ\UL/D k[qndG{2jB!ǭć0>m8)xmIS50x:oBK,#c??XG.0͌$,J埬9kP۝ܣ%An(͂҄CTnQ;/~ 4 vVy57csЭJb:ǵn. ޻&UJ~Hut!heL˯n>K6"0!4d:-X@D<[Լ$JߩIIm]kxt^yngf8wzܫSˈL >TfSsd -$/Oΐ74t+駝9ehGw_6H$ڐbv q;hkz\I<빴^y֒q XDWk)OWQL#ΣT~{9wyrt^$&:hxCYբj>XۡԎ'p7SY=Q+!+Se<Ƚv>"dk 'ekB:}OrYU5'c; cL> !>2e%P qgmٻQnvJEJRBwVrF9۶k]F"H %0cQVoAjgf݂FJ#c,z+@f)\h@ycSY7X__'6 㫂̀[ v-0Yr~՜sQZl䪎ETbBȾE{] ~Q\* ҈|:BMLrKosLQ5t[*z]Ue ]&'b=:sp[qCmu2P-f}JFj^Yon'R%qX_n+;^kb pN4ΜJZT_%8Š^bX9)6qRXQqP"7_ K+t[o+,q8]L)*#l}(2$dA"dU؇^oc2D?aX _:&T^  zgƔ`{@^JaGuNx]x=#/\'nb{:Ako2 j.17kAJ \pCփ#6v3hv2" Q(7N3c_ JE?xs.|lMb6wM[0Y0"ف5()QC(q\Ѽ(]Eu=Aj>/_7]=нILْоwVVަK@-1EVq !SأirXEi*~0; g\߳v4j`gNx@{m j*"G+KFy}jx ?,g 8*QoE1JjESIo~놃L\/X,=!Զa5QCߐecbo ?goH(V<߉%:U7 4 &+q#ovk}jnnPEf2ɱ3$w=dD _&z$ ]z&k7_BN Q6}jb2AH{9P9Am8}u=@ =LO^h4 j>FZPȳBh"\YЇrc3GsbqnαpLj6R}l&dYp(e3Y瘝U[\(;sn!HךaoE=sFZr2FȝՌiC%>oUwhaxB'$RT0hs#N~XiNN%pΟW$YKЁo%_tM+&jB' H"GtBm ۽[-3t-:tEvC L8uC_.d~Edޤe*2{^<)zbf?K{q<=FԾ]5Qʻi??Z!~|@*Ks(JlG/` WyU˹^uBgHʞm &-éz&`OQ}xo{PUURE| lBZ LERڃEҖ3r3p^1&͊o16^|wY&\E Ŗ~)o/ a?1)FX1Rx"M/#*id:i—$`mB[U!1H];I7mgf2253g A-|EkBlu ;We+ /#0 (F9GEHX杌ҏմdYƥƾ&\uy<OJEpM8en ֘f?¯{ԪOU'E6#;Ǡvrzp>J{ `Xv*@ǥ@/bx">}=Hba7F'F\n \'|2>T`v H̶{pmx4Urm<^SPY|RCV% ot)faQ&lqy$v7}+jg/{(g1+1)F@SEP+9#,MpF)BZg[FB;p3y{VNgoڹTK]4pϻiy%z`Tؒ,Q6KůX%*hQ{E,*FY2!~O̦Iެ@#O䬽K膈a,QJxCerLޯ碪Qk)ÔJV.t\OMemV{XU۝RF.bxroG_S pj};ԏ\96N $4 нgSֲ[ U_˧l{㭔N;h#^c>KSRq)X\}@̫+z2\fn2=%ᤝ{3GٺGƴ?,}'D!!,*~fW~oV~` s: HρH[ΐ1t%N僣w)K}xN&/;et(z7F^ =ZA{TSKn B:麬oOzO_%NG (*-Wr1ŁC5!Ymx6s|@t׫bij-Ei@ #a sTYH~;x aG!Fc d%t ydr}p]?TįF$b_EXw2owք⡟rnO=t<*&[y1M9|}qD2{_+|Fi(9706֓cCۂfK[Z܋r4MBpMAzXvr}\] ~۟̈́Kòh!#!VK.hDpIy:rnŅ3:$Mt۴A'f>hU~x3qM)oED!NRҷ(m=~ٔo~$#Ơd-p){$E(pի]r`|WIVČ_fZM\^+q0V!?CVIcQ jEȃ 3r{ żۿ^Xjh&՞?P^7̍%9JaC危=z h"(yι$i;GI,iP ڠBĎawQ@tR@@sD6]vLLqy"YaG=#)Z;&~XPY0!ӏHttDVɱfZ|_` mf C =[CGTrK:* V҄||f首Y^;aj) o?|SnZ=ˀk: b^;OׯŬ5pGVDD/-0۶߄!z=h 3e`/=]~Ov:&@. ݡ_ftLee ҥ?sؘûZɜNofP؄XyKɧ8V' S\!Sb S3p7N} p;O\P,㑐(BUAD 2Li%VIrCNW5DG_yTAk\Eumf[cH;RzR߭Xv_oycXrc7a'U6}:硑/: OwɝģFoυM$#V]dY4J bʴi K:ӕTrtkcn^/*rhAI#(@9)T)H cv~bb:~!CI @r9BO.:0d`ZYB׌VHIOw$E{;4+ Bm}7 =VKmʑ:ωOT BsJZ׽e't${.e< *:S ho^9pC|0M_'^xsV::Ԯ<(:F7gCEVa/ ;ECK3;ZiUU}{]qp*;ܶ NSzmZn'1PV{ijrcZ/g A?,),CG-<L^b=HQX}/*zAaY3?rr/c2Ǫ/ώ!6|⺶\ZVq<{Dm.PDm8ᆨ 09v-j̄O\TpÏJQ_-11d)Xoq4{5G&kO |Ŕ&,ACMd2 Hc1h_sd3,,]hQ7yyML~Tg%T2>q짟 -MlyYAz]Y Þ(eڀ8B4H%|ra ;eb.gd@vHpYq}ߢiٹc, ײ Ksn%pj”['^開71MG k{HoN/R{ŋxaV,0- \ aU]u50G ~O0![=# q/ SjpJJrA:FC^7$;-D"WhKR`s oНh|NB!k6L-rsCu)>99x<0Y8I6@NmЗNƝ pq&KE j1v;~Vf@'LDY-"Tc|jJ@0$4$+$$?qcvL3kXbŪ5ώLq]5-&))mi6] 1|um_[e οGx+Za.1"=ps W&e۝Bkz9I!7j%QiaP)DGBm'I98%o:{'އ6iVB|kgO|aqkVR-,z ezXǥBDz&,h  -dMdo/xtF!%l;h|ZPsfC$N: {|kvP]_{"`I-vp탼hE Z(Yx%esN3(HU4?(hYmM]+g}(g{@>`[Q#cT:VJ3=eGN$k,C֝^RolbjϙyU{1E׉SI 3#8yY6JNV:H!eby HB!Q7j[ʍd$8( D:IunLEC\YMA(hffJzVggf0[$DK(E$r=}OW]SO42Bw ' xThœT/k'6)ȋ?ueGWF6"nV6*T1،_۽OAAjhYݞW+YF:vm#%A::GD>[(>ǟxfљ|$!\X̸wD T&;&YKUvҢ/044&BLرL!1 n_ h6ٚ(}HfH_pa d{y177 OkzCf#I|k0d97,7xkc)M)|%uHUeԝct>V 2؋f^Kyc~͞Ǝسi~J%5..E~Nw4g)(Th|ڷ%m[.a'k ;5;WRbh.{jw2;ELȷ"B\<Σ+b4Vᚷdh)~ZQ=DP̛W`DpTOg_`4kr4 fa44,w54ث%/bB:x8 3/@I<=B{N6o]>JxGg=#LyESY߆WBu3p#?`h489Fbe-$= P p(U߿NQVN8@qF7@lL態`vi9YyFȑȧM}RaPpTWkr2 FFvG OE,4Ƙ ȱGԅ>I"Haw4o?S]B-D{ J}h9cd1g:qX[(T򍪼~jp3\ϢdR99(+[*c@J-Խ/Rg&.)|3ݦ /dUY+j\1t:!ݔgۯ!J7!pPQ5ؑ5P"Z3;-H=,(+qU ZqVݗIO"4xKE?{|N$@@H\YBgzr8 N_Ҩ;x6e Q݁(ږqA@ _|MRԋmehƸrF7^5 b%I*DТCV/*N,3RY{|5)_#'}%Wa>)x)ũy.gwҬaUĈA1o6ɍra51SG^;_ȴdzd3ک>lJ{>)'*URq;#[g'>[$߉"ȹekSay)A4T(cOq<fS _PBwALT)8g>ћŰ\< -F Ix"lLiOX&µH$@·,?`L|:3MXPP.)qXb&'Cg F=W;>3dld5wQ"IMt丏k$klL<Zv^;fE2PnhVR3,>J{tK*oSF P+c4+b+KHe M;B9 P$l2fƇNl--Eo6z|=)(]72J%wXٞ ׹~(*6=# Z 50Ѕloόp3x4(Jt q *(>nW'sl􂼭6,Az,ዟC87WL[J6-eu%q ;_FEUel:qKI#DizJM8)i;#jCŔ42@>T4r=ha B<j:EȀ; Zltư[,`:̺$[C:-ڪw ZTEr_EDf:%JeCO 5/~s1DZT>9'ũC6ax! [J OF-ݶoVH.JFN*QhcS#j(?iFfOhH=2* ݓp8>Ux&m3mג\`&d8K5UyǓQ*e1Q3xU&9ƩvnP {4̜1ogJS+v6!ģf<sRHV!i;!Ƹ5K+ry1hB4pl5&ȈagԕY5'F/~u@'УRk{qi3^G"m.ԟa.3<yǓ<aVf-#I u8]u KZזjv|^MK5xu!UNAZcբk^DV$Ѝ|TETIxٍЖydT?$R(A^s45Cr}MpuUP6'|rT-Nƿ{K% 䴑}e6L<:rZzO_%L"5 #.yaћАt4#$8"VR"hn"vጞ1O|h'EοG aJ~ݪGltjbΘkwvr?X{0Kk%sͪus'D/0Ay>Uc`Y#7j@euݓ}W^5?Pq)mLkH҈9i򞃘+ hMG7;:܆p]5U/_]sϒ+¡4b栗]dڿ#>_Du"^uS j.[B_(ɬjjNP7/|<ж¾跥"fw(UQȭ['!gLGq|9>LrY@ jELSp|SQN/ha:CwvꇨїrBK$ׯ;}Qh/5B*g bGg&b$kLJHUFms5)W>{ZҰ'G7QꀁS_ҭ +YAD ?+ޠ!j [P:nÃ;M5 qV{Wr\)k:n=;Ta@K"2nTVpo} %WAR:p%rDK%~1d3x U$s@Ii{}R3e/q#OL:Y^Z:-2ʦr-%3a\ᶗ si;OYҡJjK-&sѫ]M}c7QrQ%8bKR~kmhzWlNxٮ^&ga]I(f{-uB!>h]M\MZQU+t' xXQm߷|nITvv |`PC)mr|ql&QmÓ5A"NP>7&wn ǀ~N k I_Y<5}>K6bE&3\@-^؄A5uׯP2?z:D"(Cڧ[\,#'\^V{`0Yau'Ǧ0_0 faWX{6_!Po'JLt"`r<0d]qwLy ~L-~)~9e ;Wm&73h2Y:1Qv,8tJ xB/*c~tq6Ckd>#|iB@9:'6)wW#U ʸb!>mEzĹ,K$C>Ro0)2'3ހ N+Mff\247<հUyG40"=ʪj(#5Z+7͟q Mน!CRLCq@X~:ܥ DdQQCOn`tH?8gȕb+X('ў|^|z'Cgŀ@&:We\*?fJXb@7|kxPJ+oUe]ռ${? (E% Z"0dv 9+B{ޮk!r1B'K߀ɞju^Dg鎞Z!; tG+ƯDU<ы9n3&vzJ k8P|y$fΦR/ H+bo{%7ؼ:pSYA;,H]]]nQrd^gߎRUw?Um㮴NW{Vjӗpc8/hj8W;Ū-h23!KO0N]'K_rVIž&hDP}ݎ_mR햷h@<:=g#!\~o)I98KnE?#?(渟_qwkLFJWL3hNRPN[|3K*ArGc;.ڄxhZSmvJ{SıH]{Q>M(i01 mί"?I]nTk,|zrSvyTZv-DcBMg8[&}uVΧO|Xp;hOF:/[121:)hN鞦PMK%xRՁ;6B%뎀ź1S薵N4穑o"Ta_b kx(Ju\F{ G?[rdYlВgz!uv6)β+|U06/,mGGO吲Ӏɱ:OVK4)kӠ "NV$Y^+8d*yo X(2Tc:zX^^ABVp΁ Y }5vej*O^pXOMiQbgQЏzFw}dB,.3ñv>7Ǡ7RᴔhrE*ϭIؼ\.02BS}A#r0( 5&/Ɍ,iNǫӠxE*}[0LG7k¡|z!~XFw&^0}+LvZx;kcPih ?M և8ݖ̤EY Γw㙞BIo6aYGLB,.)ڵ%brқX4(B+8M$aP;L4{U֌aҔ'VGzcKVԬVu0ʗ N\@w+=2no1x(T  3RL@A\jSs`cV7N0?LLjޫ"Ĺ8kKYq=cH~@dEn{SȆ/eÏyfe]7LqqqpXUމ؊ Q:a=f/5:HC?%r H9W:ԡ(WPvIUVu@Ur1^)Mߋ{IwudLTVM5vۗ XJ39 wT 0.t#l@yMdB_.Թ&(hN,5),hgfdB٥ 4f'ƀA`NZVzLP2tF!v w $JrI~om}6c*ivB[/RX(|(ƅ=\gW +=>3fͳowLul⃮D0!Xě u5.xOڃMM9{x 5\@>!îʑ 4 B:I6{@s fwԘjYYß._LtrF3w_2)G~1p'ג-L~H3 A@ט["+"c?ĨcWgõG/lH8dPp=E}X g^<*t)Bu{E^D=|2xn0mٞ`'~3OqnIVÁ✯.̀pJ,mPB24"J 2Z̔J|$=Nc.2[ʬe`s@4]lXFoϴ-f:x4YSgg?i럶5&# b /DI{ J`%NB~>3Kmvcy|Ң{qmS{EB!T:=uHF wr4ug)؊;Øfl6$g̕j7D0:<<+rzwz]0˄G\&t՞|6MJAGq5fp5ͥL?SJ>EYͳigR6d限;8}.WE$WGAF69FP?[O1 nuLsgn@E\9OlVUF~?A?p' lWKT9\{tnS^1j-^dy)J[Z Ոڇe*}`ʒO9c[' UpY%f]^!`\W̪-T@%GRdV |(Xn 'P[<_U GhyR!vnJW_=w O4_`[u7t= HstPkM"ʼ6a-ۨyMGVL Q۲۹ѓ(x3>rȓ3s*DYKy5㊄|jgJh {"*dt?[|lXzG(;9|Ə WI/$hF4yfn$^*fsdd'1u7پpGhV=aoOBx[h0{ޗ?hjY"aX9 PyKmظO?ieHXd^W/8cĜromjp2紊 Gt?E hBd $U!UTHJ m %CwL`F!*$Poٔ~ѯu$^'GDRJA㊢"-ғT6Zk~6X VC U!).hَJtFźoC3aF+Fm۪5,f p"C=mƣjbdG<,(5Oj+1{nr`}X|Q&-`~@HUP1$ 7<\ ;rVc>0ngTX+gl͖&3!-iAb obQMJL }6`Z绚QS=2ȹYr!ۜgBA3yĸ&@zn*a *`'?s(y'u oIo3=e?iDpT`F 0a4ʟ1Qm8r]Zw\8R>  ˝^}:IWEknl.%Yg@UI #T곎E#o3wR*;ћN*Q8 wtg[NԻ(v#L޿fٖyvn  %?$f|3%Nɠ ˵6 &:Hۧ k4OH!HjxkMvcU<%-NP&P#Y\J Kd{ǫ- tc f^ST|5=ˈ YUέrK53=A?XE5t-Ze@×_b$ӒԊ0jWJ2$ZFMOg/R?qL(O-g4GysL(9;T.r0uFz>zh͆IeO;D 8*3DO0ep̜.QCVGDe)a] ;.ҕ9`Ek=8/m}77fdQYcu9+*ֵZ!6jˆoAeo¼mw,* /YoZ*+`3h̆w[ l ~[ +ZY{=zE#p.L׫@=:9zk}V_xbn/M{h:9_/{D_jpQºVwC/ZswD+s7M[|"mYDK}Zd1'?cB|X}`^W#h;<5d`YPg1'y tV%aJWj!:G5/{Huܾƻ:4 M?*diΖO;N$ܽm|}g͞sfHSjtGN _c>WSx^-fhծdj/Ly:|On+ޕHoZD&hM_th|H5cb%쾫Q Œ#udlJ}Mklu@9yv8ҾED14R`HͩWӯ-1S[3DFpbFʰt}fͯQ8Y5wT+wf >ưKkeXX ҤdeuQPN>tqne7kWTB, hOAkF3#l UۨrG`X] Z--iV_-G9 3Y[PԌw&rS6Z4- ' {O /gqI__/Y/l1=2Qǃg-&$;et=` ٤Fx lH jHQ!ze4 گS/O]ui2ٓ+Oy%`j&FpB/ڧgxˤnx`"?%? x&8D"4cB۹2R{;Ɖ[u KPFWfY>O; ՑIC.8DdsXs3 !ndEqDzĐBlap/-kX6<7E>g+" 3Ɲ: -0C E4*f=e~Sΰ9\^p8o3uKÉϏz[vwPīj6tf_x s&F n!%A5%|j>\7?RDi@q}~׷c O8yAz9 ]:p@\S2Tl S04c>0 zbZlOXu G"~4?{orL^:#:pb  pF<о8㶢ٓ [CyxxĪ1I3tPlΉ'Ù>Ra 1 RNy?FV2kg_X_‹:kq b4O=>-/` a`A^ϚsGkUE)p3-nӁI(~p9a.+0IGMՂ.:td > !N=|r uEc#t޷No1(k1TJK~gi&\(ފqc`׶r3c5b2W\S{9rx2SQZIIkIϾʝzܣe3 D !D D0fX;om mT}1_mo?f"P0񝮚f$D[A(:MiƢ^ X f@YkIf6g+<vVtA|(NaEƛOa<PmD`0UNh7;8h1tHK`a޷|V(|w۞TYc}BS1Gȍ((դ8>ן*Lۓbp5@c<(. ZO^Wv%ћFn?>h SS :b;Nƞ/ҾIZQk5 GIr";PgT^jiCo&JU'5۰m>dV4#&4E[xqNf5mO:aWebj MLB,L7Ӷ+AiǬ=MXi+013R ./]#Ҥq&1Dgo}ƓZJv0p;1PP  x"OL/?3BV^lk>L˷T$ܶk GGd҇JssrLg?!C"hKÌ5~@/Fkt2kd̑ed$ey3 @9XrhJj$ROr:!אNK9l*>^ )@mD`R#ᡨhV@RJa+rf/4dC!AGF%%C4>/'Yy|@>IK,/Y E*\3l$nl̔BXt: Y`>()'){]QkOr}L^VWaz4q_=47FȚ]c˻LS[Me.ֿ x|H?,/HpÏq'6;# } %+8m%j>sepf J3aytKo )5 5h[#[>X̶.9p>eJv+f/IfU"ߓ42)832 [~*g]5ɬ5@;Զ#`M?<:0 .鍮 z/3# !Bҧ ӎ\tsGjբH KO_J_K r6h42UP˕ja3Tsw|F'eOʁ~ m0&! [xA ǭ!&kx)+⯈ `nA:;5.G[ vyNշm?#G tιtlLSB"u}5#]k6\)d@9Sh)4C&`'գ46? /^-`& gFZ[(]"᳎GvĄI?$8 //RDkˍ| li(h )C}k<YlJCsj*O؆ ]\`vo`u3Ō&s/~U]RPT,z2f1c߁ BVoB>6v{fovS =Gh1Hm 19ZDSowZWW5K4\b4 жb|K} C|H)(ZTyZN*<%Cn࿲4ɦ{3d=dkc3xr@+|2S+80DJ Kc爍[4HbxZU6?y,2m)TVG;RGJ*_vԗO) 07o{-zn10%gja<t˽8{ɢW61ۿL4GY.'yv3lמQ88ozY %pg6]x}N3/H熰Fn*]] `JH f! ̈́2#T\gX~"a΍V\fsM}%zzkW:2h͉9ԯ4 z)2RDKAI7DxYw6bj%{iV!BbRV_ŋL>qeG 0X0$T=!׍ɧ9AAݫ H,A/!-߆L5(᪍W?A;:? GaKEפY%/gu[iOzXh&JF=rPm%RC&k/5[AEU44l@DeBF0َ=N!4~pSmmmoJ&T;/8\oM9 GlHe$}7Sq1~ҥx@Hv~9\Ҿ~0buBA W"@)f tT8n2ᚕUXUu\l/4t-&{U%[+XlUh'%&A㗪!xB t;͋bh+qQgwvL/c0Z[zeGƤUs#C>\M(FUj7&D H[7GQs@fL!@]ZwTg#SrƼ_Amr=D&rC {mG;<sqZ靣f]U7">ey M5GmK;l'tѷ^-.RqNZYޣB_KxQmqtfU~=歺`Hub6!$ jBs ,} .W-{ϢC*Sr<)cxyse-y6-6vH 6B{LQxQ C0{iA6`^e9 M/BCC+nLrrVzu n~0K=M,:aM? ^D:Tbje  pt80yP{N]Or}BM Ia-__tOP }|3[ F/aw>F*`0 QBݮ43,*+p+{'0w4h@Ð>SOb)?)?QK#o^ۓat M^w 0T™1+me~Iخs(kYg O5J:2`fי-nE[ݠU9'S%F 6`hNVPѢKOgt#Tzh{P`S?&r]$| gn'@Ma"Oʣr՚7Ks~VDSVKHtJּc"!Ttjkiu-;ͭ ]?đ`#ebFʫ+A+c/7gلQ؆irylV[![ n5-J[E9ӰSsA3QdcAܫ3@#.i wp@uoǗ1O g;'jz,!K9,R20Opmİ Ƒ'[I u)b3M%(CflC@TI[hg2nٹB֣ f4*?nrT޽G^8a،Η_<߭bXSWPb!x9lW(+; AI@; < Yq@j &\4F1$fahN0~slrihlgFkZ n*ъ?1VqbنԢһ97&o1 w9d=LY()%p']R:[J]^auXr@|:Î%;!4Ç] JOUp :ߓu))XzceU+lH8`vzq[G[J-?9$nqc5_iƎ\ -vNPVJ0F4Ȋ ݌&UN-o{19L5PgkM8;65Wʔ-:(,C%ҙ0B1B80  bg$A58:dX¥R.:>Ox77O3a'xs! ?6A(Lak5ȒSƟg-qs &-?7hʾl]l"UCΎج͟WRzOj3x8{TIUíalK4OB{,1ԈN@*ngJj .t_W'7};gx* 1KQ+O8ijll #^IuTgpɀ-AU!bhA \R>~%L o1%Y5Fx:,0TZ!Ҩ5]?BUHgfƐZ妔vjLVH#9Yt`spwzV>~BgB2VJ&C*yQc3<0oU:T$xEJ6 MDr'ШGZjH/pu[lGݠI[/zWagix(s] a*|S-%H@4@A*Sv<Ԓq|7S4WrAu}~S Q'5"gz%O .xߊ!Nߦ(e'PΠb*ob"}hjJ po45D74z2 wľE:|>4=]ޅZ&;0u=zaH_]#xTR+ u]Pn4 ~rZ. om $\t03"65\q=ט#Y\:HJ:cV^Y v%&#b &dݻRJA%e(Ο42F/&nBŨlJmE͐yvY_ X˭\^\On,\SJͲے~W㴆VpVR;2]deq3fnkl,6Q{'Pw_,fPk($#jލ^?.x' r`| 78ۓ؇J䊨ch_@u{&tevLR4(LWcB ۟G$W]ӻ|_}Oxy|ܱęZ9[ٽ'۶;iXzm/ztdP,,$ <dž9 'F([05-T]<.. o?dEV;&P;t۰#sMsMߡ<-WTJb*_3[[JhG}6,Ǵ9dHUH 9}ie˵mhj![ [ qv hX YpY  Eu=AJU_mЬb*RBHOi}j:Zj SE&k28HVR&j{oo]I/Qe$ @y4fmN6r׳qw8GqW?p5B.|iw\OoU|.Ќ_i~[&9ύ TÀSG&w k*}8a2):}dz @%V! bÛXQA轛eX6T-MMZpQ{)rȣb1~2m'*sƖJlAvN?ǁXCQͪYLlnlqS02A$MKhɢDr"WEv(Xe}.#!;6:_5p6WTKKKMy1ٿ !,p%eusL>#W~lK ϊd7~Nޜ,5zu.}'uq:jm" h1! VuRC7551d+A?]re z ^ԤV}YoD;#?;hԉҾ|ԥ<똭CW'ùz@)l #,-[ik=>{ M2VW65Yr]bFޅK Q6BEhIm?f#Deh8p:δV^ϩ'd>k6Ξ!9̩1|\ӰQoq\w G5rzB؆eV´p-(F(+_iRaZ`> z+}3B-MjM&!n<ѽtõȮ+gcFOTVfY4Ѧu`; yan QPp/w-/5Tzߖ{̳#5{IGG> dT#⤙ :|Hɲ2 =.٬kLj#vBuWyrhuH{E|_8Zf%xL&'YQUÖsgF۽u_NFDyv?3\b&iF.c2g5%kϝi`R^F2S%Y[)ZlF85ƃ| E|pXkt8g[W,c\Az-)o+X)Oj"~UKg9"_DIdi2^1GZq^hhSqzѱV y>;<oVzS.@MBc.'R7oB{3Kyp BSR`]Ԭv'͓=;KJt?mpF*8+?C(G 60KFq=<,'qD sd3RC;Z kMJDP('*! \S œ^oDBD-_02RT#ٟ!ޟtQ!cdhkh]IV5/H͏|SZ_}b /xE /BӀ#0rj#[yOwe#d+F';U}*tۏ3Bp^]R/O,(IB:Θ%Y.Yo-tƒ6b!OK.1ۻm(˛E^*pbU*Kj]uKyY1DiFqpbh#\OI 4jEd) XhZ^#UX}+c-5u6ka1D?E.*KZ 6X 蒑]HfOdv[*\(Le^?`5vGO9!7$1 8Dj8ɂBdbąG,ɔ5u={u3'/ p̥0H1j1h|`>$9ըKTّ;.Sk4̹JJWYʰ Z*_(}^cA30a)7jŒC%n!QA3sl-; _'k}쪔ހ𮜉H6lxmH,Lg}ݍ0/Dj=PQy_6 ˜ ?;4oldޘL)3+jꡌ`RD[ gY5i#4Eń1q zJ<.t(-V3MX"/mOOB[HɡPrz@Zo UO( YO+)&Rֳ熣QHlQ/8{t%Q=(^ȹpl[L\ȡچs T)rd3cZpt|7MK\_v"F]qxNzWНaƝrO &k"ϘRN*"ox7#8K_t9rGFh X1Qk/ K' x%y+O˓? ۡ͠2w="C B4ÔMˢ*6Ēj!ԅZP/@-y1ۀ{/W1̑ԙdP5oA0bEC$x\cK"\Oԯ8-!e )c"Kba7Vx ݞ=okcK : YWXn$ou4S#h.&EނT vSv()Őel܁#Ud{h'|'KbԴF1]%[GӄpVmL!O%vvs c jL|LXA$;}qFȉJ0z|` |(eVxya7e T|JVQ!CDZKxroBRniknZOJħFŷ@,-'-vx䉯`nG13:%,ejfY›2ຊkq\C8֜E_u#?{e^}V+OSan^^ZB8tJўVh}iapԒ]ghPQEЉ ɶCJL\#^{21` 48roM]MxQb <^=4s*vnB fI$nچ\8=l,=Vc]7_ÀlK֓+n_+t@^hapáwoPl"q!B/GOİ,_40x2`/;Ā] wH.$؄4 6Ƣ!x7 {X]v;yQf'v V`~jbD2)h]oa}m Po8+,8C0;N2 m&"@)d-/W9]O\G c!1iV"y\Uk-8m&G;BD;7ιStX B9W#y SO7EUd\x]&89fv2]H=e12U]Yu!U9SR$)Q{JFy9s &``GfvoNqI2Eϴ!_pa"$WȮ%ek{o*pwhtȋ}dw:wgy7B+S DJhZDCv`5)[\!uV!c^(-6_qyҼ|^|P6J쟐[<%tFAae;!:Iŧ"smz5XW$?ǟ=00*~5SNhݢriŅLiP}#DEdl " tJYXl7x]k?9~.C`fuuzQ f!Y8~ˍ=]<= "6h= ٽ&,{h.nceE}eIrtpkŧf2c01%RꆈBJBƶx~I=5bm ~@j+g9v_\sn *;s n3 'tREIS&Mjdu!x%/2_Qj)L.f(R5xo\c4|ButYKuT폮01=/t,&T%X6YmP[U^7U_ W[ &T .C:R2po .] GD ^u5ޜO3jRlj2⊾G{gܔUb R\aZ*8=Q̽){_(#'v!RpVR1\7ir=7 w <`itG$,و#q^MVueϐPH"leճ=U53wOJ??\\&cAo~j|4Wȗ-$]p\fd]J0c<(tV;źd6B0tƅbTd㳹mI: ǧ񸣸g0)sAg`<_U?4 EQC5 pAxh-CHOimq Cs}{sǤF7:\WTS`F Bn[0" L[5f/뤬z-179?riF"nbB2w(\l<ǞΌ-dY;uRシq4⥋hspI؆z`y3vPO(1 V7aPH GX~Gq= k"͜ ;hgD1lұXC޸KaT;vƟ4Ђr׾# fZ ->pb@B{eM@j[wˆa/Bgqo瀱}>7 č{}`*b\jws2[u u(X1l?X &m"(b mƱ9+Un:A&rB摹(oTw\i:2o>i^ (zYxDB2Lg}7Ӆ`PQ9\ێqcaUFό$-yZlu8r'?HO~aϜFBgV[Gde^`BCQN/@Q V+9ȆFgBQiZ?xf2VT [4#/>i~`g:gcQwaܼ?:%m]x;c Ӆ0\ xj#uj8g $ W7iƿ(ۋHWZ #f1,cЅcqVđ>:򩇱ў2,β3U,Ř'K"+ (% kz6F@!}fq ayT*pwܐ Ig{'59{ƴρ)iK.{ZS72@'bBo8:`Zk;ᔅaY։&Nk6F l$9d*]=%G)Dhv`_ W vߜ-u|5n*!VڟG:^194̖5z;f] wh?Burl=hrd>8I (V+AEPЈ7qKuVƾ --@n _~*5WcV5HiM75t$]3ha3*q#MI\B#f 9p^(ooYX, jhEd>#Ȧmw SYqǞA^ό![ u@Ud",J;s.XӒ肩ɱ [^%Kz'5+u &Y'\\7Z| 3S~HtpQؔeXQ2P_]z?4<e_?jl%U7dzL$a{to{=x,0){1AL:j2eљN^l9^T;d,-T?gp"Bec=Ѕxa՝e[>ASfMZ0y. ՠ@S# sOs#N2!DUz+h?|]gFKKj$lN)*RSMgi1)sݨgB{*`?]p$D?"jcyTc>lcHﴘHr].8ɐ~=uUC23 M"6&%;a&b1w?h\:>qR `XU:]\)yZ]ae[D~QZbnAL;C%h'2K/8./ƚ.~kWAȔ E!dǯ0YtB[4*w^O.F\1ǒ+5ٌmG?'[ki06 83r 9`AٞĵV)/C+ `,Cu%X耴uvzn#aL? ,z9V峳RP ̼>*H9XeQg|h}f!I: 5'4ô6?ǑPq|/-%{˹ h/mm+7}x Q|jg=!,Lx}^;[YԴeS_0Wp6[ķbK1лi24rQzQ0>&#buO+PNUE߂r '~Az5*!XmY/xM :#P XVXɋ'H/YanX>ǬF^κgfГv 調ױsoTF[NΖvn $_q.3u᱂0w|;OJw2V,)~=w_ay|/n h}RM<ap" j!;jZ ߱뉬o9vs0rAYUbU5k&j0UJ#.)&ԾUM"q MP7u1˳ a/2 qъ)hB)% Vl%|HƼO4qaؗwM4Tñ1\)}Z6e_VC9.{`g|yb{/k⾶dzمQk 2G(eoK/,M&h 1!k +ׯS6lh_`'C=b>)m \ZbFNmG:*t^&=BM?Y1^֕[ݓتpު )9<,׸u!vޔ/EO"!V!F01GE] Z0 `%`(Ł?:4߂ީٌq9݁^sW>f& H3aŊv# 螜(DӫaD1ajZ8Ωhȼ,2NNceLpƒjA]>qp_R(Y]?FѶ$?֧lqhpy3/LF\%z7xVd:*Qւ [oHܱWbtmрtɖ5;Ϙ>G)Ng]ө%"I:r7& G~Lu:]!xsC侠W/ȴ<#ԝGHŘˈj;=e@躀E:fzK'19]WV soR"*V!`0.˾:kB+DsH^u(|>Okfa:g ? 8)OѻbEGvp"Xchb(J >; !6J<|Y[˻ '6đY6pZ`%Ri%}q&7ߚ2;k3gS.9`$1tca"qmڑעX] ?(\9h[F@=ٴƱJa8Wb`߽xKzd&,tRp\=q:oQR:;p]'p B,"|5;m`䓧PUA r^MuC"NuS}㓜a9a#1KM T50&jZ7'%:̀I$ZZAvLH̜[rƚ8]%+`\$_B mP(@>-0 2 ُ mi)DSJ7NG3Υ[ }rv/?AL?u+C:Ipuq&euP4u؄Y2Ndkx.M_,O-Wx Co!wi ۂ,otk 9 [ʓ0Wβ`ϓKk!:5$\6XWٶ5Nq|ExD _!>Uj)=&> KX4ށ-+Eyiz(ڬ4Sgl:IPs+$;GFdY @n9LAP<i[J|YT5ym/MS|`N4TyV Rrcj}33XŽ}I6^"3.Grt'!Rԍwwgwuc6Q6O$kQaMw$xL7"BN;a79{|7ֈ^#b&**p!@wRQdpl&,rc-IPz^ɛ*591C_ Onj;;)5XOkoUdBMAtu'h42#li} 0-qYϧN'".rP !.@9_b_;TQ8BS rw ~\!Cx-m7A!^6p:fF,5l7a{vC%wO~,9wqx5XJ:';$cMYk,"3T퇼AڊnH7ai4lZQۥԡj0^@n=kǙr~\O9VY]'ВqOИz; 1ÿ/i֧ZЈ1q cԇ ,;teE炜T@^9эg?0& }st'١ 0%?I U{!fS|+)Jۀ~N+˺N"1{tIп؃!OVˈ Tbx^7 Ői4#~g n"-f(pׅ56~::ެMZm1 Zh;)RZHYpvU( OyOcnTUTvǮM|oة -t=DL,ELJ`Nę2v6kj}s+t㐚xVϠ^93G1ɰEu`f=;rod+jP_"9TJ(e|,3o>W}{e.i['ưW.Ĵ Rl iqYWoЃnt?oZ$L{7hrU'zc))cy読 I=~o6"~v" \Zmhxx|: o_aAZ7^!I@.2QCYƑ ~ óWJ’߹~ "r%B} -/0M8En"V2]ȫBuOM̈QA@H%`P8z n=X]sNtKt!ۅ\XkexC%B|ި lOG;1CiZJZ o=QjύIBrqFlCČ~0~ڈL694!E\ [x'S~Qߓ`fmHrٟ1ͩ}+59 O:Ylͩ0!k@W_Mуgdt~RHF 6bZz>jYʮ|۱̄Ww0ZϝAEPkRIE/hFnKE% Ыz o>~;-#RcyܷJ$+ˇeJo ,&D\KM]jeM?"C5?L([M:T*1Py=˜͉>?{,*)J3XoJmsX3W_j# 9ɣRp ySCWg5)8vr 5!ʎ":jjcQ81a.hI_x~;LgQ ˳7x.v;:d Ń%ј( rGÕ?|qARD },Ja%gt$Rڻ6=XX{>:LsþАٷޡHHHn<(ZMv ڲx=2i0]X\WQ} h_N^@w3z?Jb|r)nW$YGshD!92v ;, #6Y ac%GYިnPN`[Gb f<[~~Nfs}zd6`~tk_s؂J~8`p!0>(MDPw)]r:Cẓ>$a?m-^)#7hit 'C N";N[ܨuY3e] ÓHf c)/L$љ"+/oђBDѾ;@(|*_Ovݫb1d78޽ ury@gIX#F VtTt|N !ˎ26 }xoVQBDČ箧* X o?)YO'ˬ4K ty ,5:Ygʅ.Oԃw䔿D a+SdSO.kOvϤ~\1ZhIoڛ{ WDwnhNKTJձ~&4[DuоGVzY̞1Q+ꈁ'dgNxplFEOMDYGuiWmЯGLQ@fKQA+#%|*bAo}]l F.hB,e#Q'xI٠~TWao>Wꦷv YF&س^rcC)62&jlCCTn.]E$%{I7bùf8`!Œ%ƆuraHEa[q@4VΌ[^+ݮ*`jo@=DV_XMmQRo4q7_sC ȴC``\xdwޣj4EvkPB3.wvJFQ7M+,!uݩ+P:]F( uXqe}4Ro lݎRGٌhbF f$4~:md:s&H&ZѪ2rJ]Pɗ ySN4 \{ӿ`ùLGwsʎy9=ݵ'g3MHWaC9WxR'½CK[@=KjDx2B\\sOk܀8}юhe m33ht@FW/CgŒ@c$h؋u> GK"!-/*^h*-CTdkRODw>Z.ƻJMPKȀ|ցLJuP@yS37\C!Sw~04c&xΡhх"ɍޯt^NS5#-ǹȨ v<.E3-G2 ^gnެx* 8 }%$^?՛_f / Z+d72_WLY Ƅh e0ЫZzNKX5<F[3Ic(e+n%p92̪Nι  C׶lɻ*U0sovƠF?Ձ!6FOn5 - ofۀ"W:zpطk@iH;P0 ='VίJ\Ao0@2}( |Q?-`ir+:nV]1Wγ'y`I_75ig9TSĥq?.[E=.;A}={YVz?~va?MOؽ$,k}%5z@ɝcnO8HZ|N:*HO!AO>E݅д'ܳRq$ $Aa >K-Xu0*HI,V=ʄ.ւy5C~BPM8`?'H)<-2}C^T2 vGrfLnnb)!uU5$^cgy_ PLs3NRBTijڒbKDYv XUN]J )lxu-@<+ٚ{mc;pRܳI9ʼn㹖c3AD&j3|lX(Ѽ 1;4 ZvL=i讫fjT1rb,i6݄^vyw|K*=RJʾѧ7/ ,Y> ]Z0Bg[ŕ x.~˼Dl"yxej زǑ,v:Kԫi|+sb舶SU\TBN}J 87YK'|ּ2Ξ jJ""sĆPͯ>` OoMi;VX#FmvyGuY@"<êXtrًtQ_ ۺ|k~ VB-aj o*v13J\G\a7^:hT>R7m2 *o/A4}OP8I&wyb%!rd5ƪ FGAI,ݽ6;9_p̏=#,b3_hIG$ H5֭@uمKIx!Nä?#c27 OC+BZgJGH#'3RkpFF%|l$bM@vOke%\H ƒz1;j*s71 mpfOBNΥEo J>,AdGqoywүw-&1<#щ|*@=͊9%زיOx_ ˠ: ,Qў==1g^R $LnYQynTS3" 5[8zѲlW1V;]h_ȅ'YrPEF9kk -z䉧܊/lXP Q)/Ď,o{Pt/Hv$VOvUJL݉BO3< |GuƗ[sc7g tbpgJg؄|B?W YDۓ"Oni(@$)DYJ#&jƞSi{O*|o kK/P3l7UH]d-;N_*zŀ6w2*" A9w㨟wMMyMta]Wú7T&!ȥˮ )zC 9t=w,~GFbwnmU'} T@y-*fx`P ?J#?~g\H}A ,@ŸA/^8"ٛXN+Ee1VQjTM5A`RP`=#3vL^㥿94i#L%?$4&V܅Z}@oؐ`45292-f&Z%D|L#l}eb6k9yC@tSly26{oW-ҿU2P_8 J\ɏ3ohљST1Dg/w6oh4볣qdz1U)ܺҧ#j\,N1#angS'giE Cݔ_CVLdHv̂P1y>4X+d#33#w++=XUm0ԠlNM^xP\0A#tڕg" S!H_8 ĦU$4v]*!.fǛnDކ`r6^k]{㾧H! Cqks\mWw/P)UFVڈY J "ֽ`A×XE؛UZahMDhL0zӥ9}:^hzYnJlj~Jnj)@͞Ѐɀȉo2d6+W#pzN <# ݖwHH+?p-DW[,x#uKvkܘA9`>UeZ#=AWW|Tmkg!lNhͽŬ-]BbٗڗHaO8K5>ջRB{y7 R3D}Ǎjrr`(*/lݢv6X:fF^gBRyY4~ZrSu9c4ʬ*Mƀڅy;}tb{-ɏ.l_k !"_:@`v[-vZş~J~UE AH ti¼NB#싱JY[ ,:%BKtZuXa'Zwe܀qh4`'9>1%A)1:r炵$n-ȽeDd|%0Ar>OYp(=05(-M;$0 CV^5D+߀YrpYV-ꄲ}Sab.4s.9AQBĦCٌWɊ x4Go 㝹 K)B-"hAY $bWs8d <^UBN_Lc ENW3;m&{ 6rFbn-H E]R,J2a0d  䟱l}GTw+Q8ÂAZF:N@;ح)[XR2/O -bFp.1C@)o,>'!g] c>N36Ϣ ]#aii^dI HSZ}]0 ʙ}@C뭺bjamwvDl"4l,|h,E0J ,zhvE%{^Ħ 5~>f2B; Icߴj^4` 싑RR^KH*gY6;9vub} ]jDBʦaYH yyxi6xMRa鹝 Nn<" SpNN{=w9Ms=(`:dBwOpx\ޯE@ulŅI蝼-` 3nzWfJA.V@lT0G}7Pςt*z`)lIj zpp dyj[}jSh pdDZ}:lgt%J-ItntPM[U]~Ef2/{s-pjr4B:YpCWvwdւlź209&VR$PO晤xpfJ%ղtХ*cNHU ްGkdKx+*o2Q_,ZXl=Yw! l*D>Ax)!>jaZ0 El 7YUOHˣkKLuqWwOVc < ghcB'eb;1Hd7 !e0>FsxNM]cyor-%W`?F;ߟG:)D: Zte l xLND;zcw"[yzԀzRNjg}w7D0.9/nA%Vbd+ԏEnC/ BO`s?;/:9MAW_,d4܅ ]URg/ 4%'!6`u/l+3ܔE (<|~‡/cd&zChޥ;H4 ۿN:o{|A(6yARF >wئk9@k|U?4 @Ŭ {_ _PyA Few_%5%/Ttڗ%%kCۢITNQ,DY B]v'>ёTf\`푛sׯw~7x)D+{:z.CaPV; | ^y҅^ 0!wB͛!Oߒ'3[2S>GhYV@ʹHV`ŷs4xg-vf Gv4T?dr'@4j5`oݕ+kعLjC+-J܈TMO5\~B-̰/m")j;C_'6ĆqN2%B' 2NviU䒋v5 7HY  yVV<1\k/a2KJIZ?ebWͭ½P@mT:i~F?#ཏQ~֠lڵfnSH2VÇD4Z:\XB9s`\Fܚgy9IgV1|:lS1!HYp^l8'?rN{K !(uoT?˶xX[QG|TwhNSxyOv[XWs.t@Ӏ?ɍ"4(BylkpE%o؜5]Be9]W&QcQ) ߳YkI IZz_{ B8M~5k.jiuQywH[hmW+ut)&DHwtg<'#c@Ư[曖^8+6Bۉ.,[&7FSq[F ́ &/)Gz:sC ;&(~͛:WpԊcL$"UgQ#c Ô(_"( bfsK2Ez8砽G*:v60y\^Rqj- UM0gpd\,@4{%Y2K 4,[pj~¸tgN 'L1c] IU+uԑx4myQ?wk Bfȝ!}Jd:2WW8(KP| ctOUCI;={ p*g+T(9IDhXv*;]ɐ&t zǃ$U6\8uRS۽Ţp!NEP&kWCue%yBD>:Hjl}SI&! kg;]j Mӄ瓳VGd)h6zTŎ-u <\f[Yn@3$Co[mx\yqV?NsTeNLf0M(:W>hYxL5uklJR^S x2иOq.u )K cJpD?hHSM&?d 퀶gvrf\k6!ߚH*QGqkvqg@%(%d?8ӱ$/I̞-GAMX=ڂ9j3< s<S԰!+K-ɬR:l$7VK#5EJ؅\oC\o.'"_+ը!zЕ(Qd6$ yԨy~o\zk`$x>1.x/'A(,^4lZx9TrU7lwZKj**-* ''Ϧ2{B]'6m-}S|QõN_{;JZа~ ?ZVu&c9d%ܐr)!XMjHdY+F~A-ndˍ4k>.ckDY }!2 ` $}DK|BÙKD%XYt}01O^φk Y<V;+<l| Rm?@S-Si$lC\d`D)|'x~{x μ2%}FBaݚU M17*V<9<6M"og ]h4niv}9a&Ihaz4xdOL̼Iԑh+XkXh |‹޿yLyEE~令$awvH5ٓvsYOue} UNͫyp`%-H|ᵎ8@aN/@X̷ X%N{Qg|dRkfةin.H5R:k{0_<|YÐm!#s_=qGCUx8ڮ;w"i ]ԟh반j]dEuX \N/|{4ѹ7,R|k}E㳾4ײ_8ؠ|U #t^ȚzgT2:K!#i;BJiCh_ D")!z,?,s3}ݨ+4 Z ѽM!zיL$Uze7b' ?mW:L8ZɚLPT UʪCSZ6}i1DKW ή(=4cM{k~W ,Q}6t/>\S_LTށ+CʎTyvZY&{S4($`PAfv;5`*鸡~Ɩk/:]NIōY *zR5F4 -~LT<3 =qYhi:7#]2w^=El E׵ַaȸKeM1 Į:8ƪب}j[&E|{+aq x)%py3D뇒)셎-_B:I"{ʞ"Lק78Jk4m6:v(O'A"ĺQ'`W%&~X~zO?7nH%u!_DdpIl r+(_]m*r߫}4 pKPj=ϵw$K"S֔g"G VҢ$ip.sLAkGMzaV6AAKeZ+^ 0-SGhh7?GßB 0I|rj5TK/dV)3(GWqN9ʜJZNsߎx_$Zri>z#;w)$*;Oi0< ce`}B '5$TTA~|FǃD#zQe tJG p#U&4 CDOG0u]'fE9n'6~]Dž'7)ފA`yYQ36p;Φk뱑%ܺ/%GsA.|+m9R+F6?ՑR^d[UZRui_gܯ]R,/@PĤ0GU_DN8u }5, ;PYpN>Ie퉈8%j24*6>E@yO*-Lhb0X}A kJ%m%zU. NJ>S' (W.ýiԐ(M`{]1S4?Jr|8e::9\S8#8VO84WpbAnR^Cy|c:ED ,x#ׇ~+U~~S[V ibړcY>M[l2NrλjČ)o^2=tA Z$\K4yᨛsi9ؿ=!|!w''lf*kpKN\_Pi0Ax_H|E,*JC؛BeAɏBԻ{T-1됃s؃AtjKe{841II!CI=^s4b:',Pj k߮z-10o F35JҍwlSvEi8PhKŋN:8sDL1fdفk# UARMװ\<}(B \'+zRt^!{n5ur"f #םWʇߧv%fD@$V9 / BtO=XԽLKD/Z`0iFBWI=<Ш'T;zПQTIʂN98&v[M^D<'Plrha@⤗;ދ+@D=8WSشG ށ]͕Tr/WrY PVSު$v1tX(ƭO d5.Mm{Ξ10ũAon_=QHr3c=悊@Kj㤚:ƅJBq(5 ;Vv;M(dS|-KRẍ1_Y,)q Ze.h(U OlBw!w@ #媆R*-tcjWtaEIJoW`@i8& #ꤵG2/aqYaRü="0ΏUoX^ƝI^d?_m WGwU NrY/7EDe.V$f&tl|MU!8mCƥkF p9,4= c'J~撉k Ǔsm{YXnk:hR.5)[xw.\a{=\hБ) gq(]|v<~:mv`0?A乊.(1t#1a4?Xl:vK7q72"bE+1un 5M]W1j6ډ#.(aCimAR5 s_q.YR%Avm/F1SҐN.Sqv\*i#>[WM=0q̀Ff6D^\iUhyc$Ye]Ix35C5GAPkmUxh@|{OhȠG2ca*-ǰ>#A|qY-@t|ݛ|_ӂnE9Nd@k,鴴*2Li;C;KHҲbDen'M6FxV& o{SgAݻֻWf af.!ᛜl)jwQ8ɰ- <<*o._ѥ,tWRajH- hcfVi8{Z v2Ω>\8la:Z!Pcj;bWe2E#A1.KG䕆K498?gVU:$V7tZ}f BNV Ɵm$Hs(ÐPŋub9q|:D,Oj Pz QalʶvRc&>_e#cw>o;& 4ijs*E9 '9=ZP V a RťAƇC-~Ɛr) Kc8|4R; VI0Z4aecTJɽDByX]JIJt'zn؞*hZ~rqҎ@ˏC"gXk TLjr'6f[|& `;6qU2h+5::pٵuD /SX8_:PRf1urlD;W;$#夷777]w %E}[( ]e2"T޲!X 6b}70;Ϻ~RsA>kx'0_&gr)ynTiNm/2Bm.R 0k/ЪO6.~bڛ|Nlć|gMI x}?1iaRslQ ?V^ѐیzZI־Nd=u1,_rxEB)@ۡ1#աcpZ9'Hl=~&;>X;iZW=c f/x\qEm Ǧ )Ȉnm\f*7vhOO1 Tyg:~=q&4;욯h(Nq2PZ/ɆL8!XIr33G*,Lߢ`;O--3툋",>Hs4y3k-N5ݼ+u F Z-粱X4͆lMloz7M2սU ԧ1;1/Y8~Zi !&K̠3'ݣZ\TyvFWHlcgaK 9Fˤr,um$:&|^ٞ^U ~18!#eOGp|Ȟ8_FUf ~o*EN?o#ieY5氙L2-EwUgP} ڥЫDn]#A/ׯr/loi,uV;5@.g YFEh|XW덗` d^dyF̭9Y#y !!CjH|ưg|{R[slp4єWчU[ձʝ] ;/f)b$cA9KdN4U6~G9 u"^;7 Y 3(J{(Iu9p2lv\%BɶJ BM,TڐF]`F?Ț"73iv֧fF1d 2|5H ;*V'Z#,Mz?Z] Mk΄X`D&ezA2i|!lj*oEyDKN,H~1htUznm(XGW3 # hd ]m$]w吻Pwf;jNrYxBGYTE:-KLK#jb@{$@#^ߢ*`##q9Gغ 5V.㓵Jj>oO "cDұ`K12BeBLn%pl9}T@ s>QPACۖd3yYE=`߲RpiĬ̈́;b@]18)>:^`>„Gʊ2Sf Q @Yr2hZ.nߚ Z3JbN= @< 31j>iCA.o5ue|F\-p?zGa-r=v鐣4":Z]sGJjtTa ˳RrCl8=obazq"{b[F9F'~ي)$_Ӳq02,&M'3S=h~ 3jx Ofp5mFX![.?p ^ ]ws܇\eϱUKx_X9<5IJ$,ZѣW}_B3@Atځ&rx[T&H檅?#gI!NI֨95I$`w=oZLŤbe1MXNŃq $afxe if^C><UǥYhdRRMrBٽm4+_gsjs[> gmEr2fKEw]f= ,d3UT*ٍzy[p9K>6'tA)l2oϲݒ#W| 2d1}l"G;MYim&kgaV?{9NIv[^6]cS!;3Ң ='/ +bOv,EgV4B 3eT;] 5_zhIS} +93v6>G"ح\e3>G1.tqb(a>ߝ⢒ˀ/6 }ă;ktjhѡ!%~l@Ce"RNbIg/uo/rgSwJ˖_:,*V]cUt6gyFIYr L|UQUTFoX@ٍ~U%v>Qu(.9,2g~ = -J#UuXbq'6R-]4ci&cL}bpuÿD!ٸ'4O : n؂\bOg%+k@bDw?-GH7Ў~|C6Vs}^vZşB4@6p{gb|95KU &TXzn+_i{8Lphn݂h#8C_H :|K.4l$5," aiĞuS^Fgr#S\~%-gk1yxjt ݉fjπcA/{y/+ T)rLJ-KԵȨyNƩ&J-RTY< >l)b‘$NX_'rsR7[A J?&kV‚#Rkt}c(p:j"JUhCI'DN>HaJv+7e2#vP792 ٗMBjX^>YӁ:bܹQ1;WM~=طYGlcKwwԟһ7ƃYP%m@LpqBspSvm|p5)T)2@̭@=3lZ@n{l.vDRziʷ>7a llASĤV)Gǝ_[N>VW9h0Ӂt2 ˵TP,/L?ea ?bk|QVd#_TS8 Q1+UW3 +3D2P❽TGfZZ)2ȑ[pYpΐa'iU}fI m<QOfm[k;f w㯖/J~Kf$(,\uͻ XjZq*T}λ'\4[x|OdgF.CI"4޳6lMwsIUߤK1\oaq:Fe.P{!yY:m}iQ<#$߽FS[ ڢ~fY4dUs\>یuӤ>guy<1ULtkε64ϙO mu#2e]Ne fչ/*V2e笄HT\nJw"8Bķ8)Weկj#558#)EOW `5iȤKT+Pjfrr&knz%]Hx~C;8g) )Z0`- T#yraUgGDo'UNa)a,yosxzzZ ȹ_ UyϮ(2Nz(p~_KJ2ʽo'3q@ȦVٗw+:EroGrBNqʻy Yx4ΩYa"x)/]4#|$8پem)eJ{I09B+wVֆ<4.1Nk=rjs<[ZZY 4Gl5f ٛebmtb3üC }e"D˅7z*q- u)ñ~ߨ"ֿLhSۯfM3%2œMp@jso=#v?m*MpE2iYh3е,2 * )iH3>6l߫TSOʗ+N¬kcLγ*'9&TC) Ud|h? ? E L=#q;82Xc=X&(3܎cUGEko}lKN ɲ6J/Yr vp_[[@MAH"iTL#_U'H/ܲ5Cݬa'sbµ.,NoEU@"Vo+BDjl7wN\2ӊ$& h ~Td?SC>|㦇Y3Jf&p?xoB/wk+I~-',n b{y,zM?iԙ ɤ9(D )؄v %|*C7+xP1-mή/QGXp<s[QA?辇ECX٢pDZ# $`Di2Uwu!!i0☭Gr ;"ThM~?u.]@03 Ի|aGKpFY1{"tב?j:ẈjS">B4mm` qDeyqP[$PKrK88]wK/,}w5'X ~9Ϭ^gZN{vg XVD^.BƧ^p=4,V+GB*ԑt.:_jG|Ϥ!%Z;SSEhНy Pv{A-bНk1IKxT =bz؅ΎAOY$)ڶ6uy" Ԥ\5:B| )r+~n|,mw#9`5ϟ Xi?TzmCPf2]gz͜OMLJ$ۃG_{Dc4əc! eR;mEj7oA|DO1?ͬ09Y<;^+m7$yE3hjtѩDȬ wFfZ{IBcD( ٧0kqq<蘅 ղxG7<&4wsbc;+5Y˛xCFbڲ#!&0nLs˒q eE[ [ 1-\;oޭ8ϐp5th *j=2TX@.6i@l_g7:c4籁S(xsLs )0MnQN2םxPPfҮ8Z+toe3w2F-!2\_7;d oL:}2re 356 [ӀMEq,%H5gI\B#ih֚m<"}ϧkSi,GXזT7eJNYK;Z,[U{6u QFTR~[T[r/ N27X_e-MLL6h/8ڲ sȷC~;1j^;WK[܌a]M1Hx)bbE8ݔhx#5Y\%bZ f=LxNPybUc%+cݛ%JSlmV5}$m{<-:\C\.k~˶F,( 6TQX2]+:\Vގ)8Q3y'z.Vxi J7Ew{J.{ڼZ@ عE! n#quwX`>Tl@$8Zv>|ÛFrgR͏59 VEn7&TK%$mR"Krюk,ku^Xꌾ*Kf#8`2r9y5洋~ y( uLNxܲ߅ ن2L,Ѽic-25bƩ"#ѤCʄ&nh nk]MqnNIKu~*^E2t?Ǻ7t y]6Ԥ1ǐ. [F./ ~b"QO")"vlR'R &ѵ ^Cr[Eݘ+cӀ]@vRO-)$k&@jl&Mzp^d?7dc6}55Uڜ:n&tJ:(6:]"?ڝYɇ-!{^7@j&ķ"L-YxTKf3ogoSL9D]͂ݧ*i`s&qdR aB>/ yLϞfC'{EEө}V6 |PU6Z2` "˜-l%}h~D]=`},~[cYU`/84o> QghCo4됲!4-yZDª& -xp1J]A }O;4{5PLmK+7hQ¼#vh5p0=::] {5]]qEUMuSS.Qo67aI0]Ha? lG`3Ȃ2DŽ#> %[Z / -77!'e( OX<7cYH/fq?'O4]I)i Dno>\&^ 8+Y𷇻juOu8raqxhNjݞi$ ;K$k,~u3]BZaz؎@X.'X0] #8f&LYnߍKXj>Sc4蚇vU >rԡ3jJ40StYD٘,}lo:Yod$ʖ_}q>G=?t*' >&I<8 7Lj'7E`g4Yg-<cN{8S_7chG,""_X`v+fxq o1w4F@59I?j,PJ,~o>ݢvoSX޼Jv&nWl߆AZ5Բk5/4lv r4 dX#A, }'X˰!38Gp-%> {W({xpj.>!S l !ɧ DIRc4?@"kE&.dUqP])/W{-~Fəy?Vv, FBB61`:ԨϦ, &˵+2@洩/NaAŦjaF[>AP`#BwMqMP|k85{e*83W]i['R(#(W#\M$&f*sn0ܞ$e x9] ţ _X$tuR2hkޣ%s'љp@3%wæTWxOjX9,hvij#uZ'ޚe+P>DCbnv oJt>gb:.s0JyExp1H87qm GH1IUBkrV mJžu1a0I|8^daGʎh &Pv+,1c&*sx4*0H*u}ˡf; xiܶ7qqd?"U7[]OWYĆK꼝cVz7u{K@*:y 4Nt)`/R4e.uڸ߂GA’>3m m>)\\"#xs-!4K+$m%fC֡!HvD2I~62nO&mίY4,}0#mh*'HRuͺF%aw@9SsBnꈛzi|@*Z nABwCv_sk(o }sϼ%Vj*(5̀'1s08M A[zP$`ԏLTkm'ݢ`+r0e fr'~'P[/e@ŗT>ӃA .6EA#W9?_0ce7Z!F@I}8!x[_#7I -X$R%BڈZd;`rj-œ\ i^,w/Q :XtX!$^雁YC}Ѐb<v6-W? 僭t 7OWeB@2p2K3_lMZ\E ^E#A/2'| 9͞eݥm?/JS ţ5'Rzצ^EPcdX=dϨoZ׮*aR?xJTdqHz UP{|6 M[d; giS:CTqHtoM&?qI23JayX:pCbm9}#di߱yHIqNH `jGrCkޙ`a.zCݔ5TOK&ߧT`bpY,$E$L󑟒<8L ᒊGffE眭F*$ķ){g(GŢF_呺S$Ƚ7~jpe9D( Oسwӧ]Ady:6bS (mP'4Md:+JfNo4=lfd1m/ϙDda̝a7^GʸdΖnX mu~Of5 |v0!5gю)Cnm|Y/3#U Оm3䱾2֧Һ[[_̾zms7)R4W#[5o)}*5ؐ)v) =by%L1uI.J9o..S*9!+E^br!LelNG}!ug:D>pb80r7*᯳rY Q qmi\[V/t6>vY ݹ[A~\--hpTR1dc Qωrpq}hkwC7WC &#L.mvGV=*MMƅPv;B^2U]yɁ1[Pf kUIe>Sc\6`է8"d$M2CMsU˭K[ v2 UG,ѷo 5?  tF5 fW=-r0{(S$(1"u-4c]l(hEދɼ燈}7^r j:8Sr$oo2g Ŕ)\IR5qmh y>V7\ XnLTu{̢dMboݤw9h>P8ut u2yY7IHnhEg.M*ss Q Ò^<.H7WG?"~)3} !2-Ji`;w$Jh`sa>_MƕĂnYQ) >jݯ瓊OdVKY+ՉVnD`t Ä1߶i#Ulj{ʇ=҉6 N nefmKSEi a_5RR? HnPCOʯH1}$ ٓ|kjzJxpUS_Z7櫶SSKSB?nXWzjHm3wx>3K$@wtYylӛou Ew2.NyHEA A/5{5m }(8ӥE-2@\ʞOkhBEHV2TH SYT2;uX")uv&U30Kl5gt)>To&љ11/85D~Tb9 ~/[~f+}>[ 4# lɇ!?+ݟs4͐]!l. a6wCTB89v]2#@ [e 6Cv$z8݋nU_5Y `_x+FJL&,BP"}c OΖw eah*Hm9ߨ,mאcm; 1% ;Frdҙ\3ݜckK[!-@5o%!" rh:&?;>z!T $&]y7 K 0Wй5=k+6H_}C>: (1Fk:#!hRFX ލr`UgKc:1Isɳl8Dlйx?[s┄X[[ 8 3`ό1dD ? zR8OUx#: yMdFr*.ǘR"wݵkA*:9了s5 5"_B?B=xra6>aG[z(=PTz)yP/w1A h#Qs#eU0GTҿ OI9HVUN^=YLΉ9bon wŴC#("6WlRӐ\D4lʠQO~ޗNja,'NVe'n8OʼpSc)kD I7~s1|* hluWCK!<7McLnܭ2~+$:}=5KbẢ}ljP10Uנ:6%T~Vr}-6Rʙz GV& +P#kh)&%FOpd5Gpk:stDp}-q~܅V8I$`eB=pb1.QXPgYJEc02}P^2w[dKDc:в7:xifMͪ^IM "UIe`TU>`Q=Շ 9v~ƒ ;Ęҫt,-er,?x\   QrG[%;3[ќ|N*ts u@V=rEиOS˶ɮ oEeݦ0I-f q[ӒWh<^/Nyx? \Bj[y~û`~kM!>zSx~bڣg+у iׁ+Y* >݇~tEsUAHG~.ŕ|:WTEMo=DxD>Ql3JEtaNUӑTOVg4ʝ!QfB͢u;i[A#a\q=F!i?/LB{8V=&G K T&T8eQn|vwi%1+.nl2Z[މ-Yiu f}0Zx6w}X}4X%1zq'\l2[tR3%-PKYIzƯ\/nPy_L (s-3%&Rµ. R,/Y `Mun7Bk'>^/'4WƺJ;}+NҪ<0!"ivOՠ|x_7Y/r{#[$/9 ޭN s(EՑWQ!"L~.ߓrFԘG]>;+ˣPt,hS|ChwL#_'7NݵanWxTWU7-]AD,Ѽax; })yM͢O6w%#@4$8aiKPك+iz1/ƇuE8|gEdc~}KxM |'L{KřJ惫g:$)A:-m iO~ ;hBp܂~%;A*I68e%q Z>kȍEx2C\N;ǮH+Ƣ}"ȔXET0Z[X)%͕F*lcjHdnúyS󏻳y ^㛄]NSYv:9J;>Rnէxp D1ll }Hbu^z˽&1-9}> >O{mެ)|?d0*? tod)@~C~_X/SqC/~ 3P:7O\NH^h|juep 7T`᛬ @~\029P%:OGjz3j{/ɡ8Z*@ƚiV'W)vz= @Sټ#{`d~K0/- g&WJܽ-+.7|n6sO0ShJ//4T`3(+r6v_)@BRa*cbY[e{'턈t6s M_/ʘL!,a fuٗYvl+6αf vH^"J)qYU;Ljd"9#Qn60=:) M)1D79Qx-h@['4d7B2L9EP&E(7`1P ;I*獮P6'L,AUsIѯx4`ƞi>R}OJVx]NF<E&`;{>u&"|CD!M^ץ[!Pe9gav%rgp{nQQ|24Lڭ/GOK}Hb2͊<fĪІp&, A 0L vp}}4MX4c0WږԼ#vU ȲOGτAβ\*R 'Nl FIl1u&٨Wk?a q v<>T<1{i@ 2<( %4A{O`h^=/Vz [ECX٠Vٳ (v _s-, !L68Z;35ItcEޮP<\[_J*O%H&rSn 0t̼/=P`-xd噅_ nHԀ&[!Sl7jSz նΚcb 39",oib-/v!{~ "anC;`Ӣl\꫄]ՖyFW4g= N-.d5c#vP+.3= XJ뤄"& fi͜a$S-Ot6tR)9ֆ"an~ؔŘ7:zc(В{ˈgN66m ^r YZ