heartbeat-devel-3.0.0-0.5.0daab7da36a8.hg.fc11T>D ,0@7ad66681c97fa2074ddfd2b60d8cf66f385711f0g̺iZ6?d 1 O 33 .3 3 `3 S3 3333(8W98W:&WG3H3IP3XY\3]3^ bd eflt03u3v w3x3ytCheartbeat-devel3.0.00.5.0daab7da36a8.hg.fc11Heartbeat development packageHeaders and shared libraries for writing programs for HeartbeatKm@treal-mccoy.mit.edu" GPLv2 and LGPLv2+System Environment/Daemonshttp://linux-ha.org/linuxx86_64M Cd5 87'U Z Z FEg2~c=a._QaW)+a^(QA큤A큤A큤A큤Km@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@bKm@cKm@fKm@fKm@bKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@gKm@g6af0316f8eb69b50fcbed460c86a54796cb0d58f491b5e9c845eac8d6688f158d797067e3f0b6581b5b16fd86ce3360d1bd4a84856718a3523fd8ea498c561b4e566f1a7a72a6867459f55b54b72b38af64763b8b73707d4a747a917a8f4e05f208bb7f7ed4ec18e18ac59e820cdc4b7a6abd2dbc4a87a45ca10b959facdbc884d270f943b7383f8fb8330ebed57af0707450ff40f46825dafabf574ca2c45ada8ab1ed5ea3b93958134005d9fff56db19a7e114f88bba46727e52d1a213a1bfd126061b8c7bf40756b428f6681b2982b2d71bdd65bafbe23720883db13974ba10c424b37aa1b9300ae4e48bd55ba25adc61c6aa49e2498bcccf725f71abc8f6125e946b8efbe13464a367a1755717b3e5b1b1751f09035790df89e31dca37e558cdaae4b97551500cec06e60adb542760c9c2b5017e4e09f48b97c1e1aa80bce898de04e1fd60a2dc32dd797e373e491798d1f7ef8a3da1807bbb09cd431573339da68b9cfc8482096fd6bee4655415ff24a3112297f87070414c0baac07e88de341170205d9dace6a411cc6c85ca6217c0d96473ea25602c1cd95559d79ab2af75ab795b976611cbd5f8058fd615f5e684eb041e4457370ca3631ca20ff3fee7173bf8b8bbb30cb9ebbfaf312d7dc8d4bb807abc7fd2db55eda08ebbaceed2336b17d3f471b6d83ac1499993bc9d894df9f64a1e65cef71814af0f633d3504321c213b11f7a4218901ddaedc988e5bdddc71771a6a45a659010dabe84dd7e12121e9568251297fc71fb5ca3d19c95719d09150671d6e91a9a9e62f2d1f01d45b1eb6695b8eb49b81618f4169b537aea9dfb31e24728f50916b12dcd6105e8befb8124b8b3139b0471d397eda2e22a3e4aef9c9c6aab7905a43d8daa85a0d0eb6dd9d1e847081823f2aa7a0726cd2780e8b01a38bb65983132a458b7caad50db8a2f73f743dc1a51aff23f1aacbca4b868564db52496fa3c0caba755bfd1eaf5bbcbb737e60fe9deba08ecbd00920cfcc3403ba2e534c64fdeea49d6bb87509c7528c21fb38ed398d7b4ca618b8bb80d11d66121b109c4f744da5505c3bb1de442ac2435a7b702653c4b65651b6056a5f5f0adc5457d8d72e3cd3a72d6c03ef3f05a17dce13e5c4eab92a62a71adbdc5a08f0d28bba4181b359c94fceae742fe8020de078cb5a85b2eb826447f14a6133a7c4a5bb1a7534c74fbddea678a2060ee5da2406a1180ca50759c2f622dc044e4d49cb4d8167a358aa9e91ed918fe624ddb5d5fe650be943308412c07eadd2a6f6f5aaf458e215cb04db8890d42bdca0870e5c6322c7221ec920c2da98c05ad187271425945f11b5ecc32066e26be8e5ab72056c5e360ac1c0376414fba6dbcf603b1534b63465a3badf7e9378f60d19a831c1f1b3b80504142db94b69e3f9cf4faaf7ab915f77dab58de5f5aee184ee064749254737d3d90c5928ac14b6274753f223c10bbea04020502a742b1193b525e076964d0f62f5d241100119a0a89ce565081e2f4155c19ab365bfa09ed8e6acedbb26e81827dfd0332da32ccc47e5cb94a620a5276435e3539ac40d76a1ed2090c52c2d57751546814afbab9a72685ec8414a326c03cf4bec96227fb43ad30f731c2f0e73f0b257656ccbcba9c9bd6df0af1326b845732500a13d791748fe4f1a31c3488fe16dbbb506417b904b50c618ea504d40f10b7558d9e11ac6bd9a2fed42b77fe1164aa1bb51c0877fe2604ef200656cf658666009ece7fdf7b01eece87cc6b5f6d3d92df7bdd5f60d25c436435feca37f2342250e22b62d1f152e67251408c494b43e2f4344ac83ce9038da5d2df42b86e91d432d5cb65293326d79b62f6e81962bb108ddd1eb599c78929f51b5575f282bd4568eaeec35796beeadf8b8152da50109b1363ee35eed942148c77a3da9e29801ffc7d0e1ea3799libapphb.so.2.0.0libccmclient.so.1.0.0libclm.so.1.0.0libhbclient.so.1.0.0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootheartbeat-3.0.0-0.5.0daab7da36a8.hg.fc11.src.rpmheartbeat-develheartbeat-devel(x86-64)@@@@   heartbeatlibapphb.so.2()(64bit)libccmclient.so.1()(64bit)libclm.so.1()(64bit)libhbclient.so.1()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)3.0.0-0.5.0daab7da36a8.hg.fc113.0.4-14.6.0-14.0-14.7.2JJ@JF@JF@J@Jx"Ji@JCfJCfJ4@J0II@IIq@IpvI7@I3I3H@Hb3@G­GGY5F_F_F_FEb@EUEnEl$EDD}DDD@D@DP@D*vDDD;@DFC@C @Ci@CC#@C@C2C(B@BBU B=eB{AjuAjuAL#@@@@~y@@0@(@@?t*@?I>j@>x[>P>K=@=@:@9\8d890@8t@77ߊ@7Z@77z7^W@76@75x6@Andrew Beekhof - 3.0.0-0.5.0daab7da36a8.hgTomas Mraz - 3.0.0-0.4.0daab7da36a8.hg.1Andrew Beekhof - 3.0.0-0.4.0daab7da36a8.hgAndrew Beekhof - 3.0.0-0.3.b37cbb1b036c.hgAndrew Beekhof - 3.0.0-0.2.11f858f3bc4c.hgAndrew Beekhof - 3.0.0-0.1.11f858f3bc4c.hgFedora Release Engineering - 2.1.4-12Jochen Schmitt - 2.1.4-11Jochen Schmitt 2.1.4-10 Kevin Fenzi - 2.1.4-9Kevin Fenzi - 2.1.4-8Kevin Fenzi - 2.1.4-7Kevin Fenzi - 2.1.4-6Kevin Fenzi - 2.1.4-5Kevin Fenzi - 2.1.4-4Tomas Mraz - 2.1.4-3Ignacio Vazquez-Abrams - 2.1.4-2Kevin Fenzi - 2.1.4-1Ignacio Vazquez-Abrams - 2.1.3-4Lon Hohberger - 2.1.3-3Tomas Mraz - 2.1.3-2Kevin Fenzi - 2.1.3-1Fedora Release Engineering - 2.1.2-4Release Engineering - 2.1.2-3Kevin Fenzi - 2.1.2-2Kevin Fenzi - 2.1.2-1Fedora Release Engineering - 2.0.8-4Kevin Fenzi - 2.0.8-3Joost Soeterbroek - 2.0.8-2Joost Soeterbroek - 2.0.8-1Joost Soeterbroek - 2.0.7-5Joost Soeterbroek - 2.0.7-4Joost Soeterbroek - 2.0.7-3Joost Soeterbroek - 2.0.7-2Joost Soeterbroek - 2.0.7-1Joost Soeterbroek - 2.0.6-2Joost Soeterbroek - 2.0.6-1Joost Soeterbroek - 2.0.5-2Joost Soeterbroek - 2.0.5-1Joost Soeterbroek - 2.0.4-2Joost Soeterbroek - 2.0.3-9Joost Soeterbroek - 2.0.3-8Joost Soeterbroek - 2.0.3-7Joost Soeterbroek - 2.0.3-6Joost Soeterbroek - 2.0.3-5Joost Soeterbroek - 2.0.3-4Joost Soeterbroek - 2.0.3-3Joost Soeterbroek - 2.0.3-2Joost Soeterbroek - 2.0.3-1Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson (see doc/AUTHORS file)Alan Robertson Alan Robertson Alan Robertson Alan Robertson Alan Robertson Alan Robertson Alan Robertson Alan Robertson Alan Robertson Alan Robertson Alan Robertson Alan Robertson Alan Robertson Alan Robertson - Resolve file conflict, shellfuncs is provided by resource-agents- rebuilt with new openssl- Make use of the specversion variable - Add explicit dependancy on cluster-glue-libs to prevent yum from trying to use the deprecated heartbeat-{pils|stonith} packages - Update to upstream version 0daab7da36a8 + Clean up configure. Source most variables from cluster-glue to ensure build consistency- Make use of the uname/gname variables - Use global instead of define for variables - Remove user/group creation. This is handled in cluster-glue - Add obsoletes directive for gui subpackage which is no longer supplied - Move ldirectord subpackage to resource-agents - Use the full configure macro - Update to upstream version b37cbb1b036c + LVSSyncDaemonSwap syncid + remove the remaining OCF RA which live in the agents repository + High: RA: IPv6addr: support for new nic and cidr_netmask parameters in the OCF RA + Low: Build: findif moved to agents. + Low: Build: move ldirectord to agents. + Low: Build: remove a few hb_report artifacts.- Create a libs subpackage to support multi-arch- Update to 3.0.0-beta and build against cluster-glue- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild- Revert changes of 2-1.4-11- Add separate filesystem subpackage (#501518)- Remove perl(Net::IMAP::Simple::SSL) for now as it's not in Fedora (yet).- Add perl(Net::IMAP::Simple::SSL) to ldirector subpackage - Fix MAILCMD (#502443) - Add patch to fix duplicate install of OCF drbd- Move ldirector dep to subpackage (#493625) - Add zlib-devel to BuildRequires (#497079) - Add pygtk2-libglade (#497079)- Remove symlink thats no longer needed.- Remove fedora-usermgmt - Change subpackage names to match all the other heartbeat packages out there.- Main package shouldn't require pygtk2 (#480157)- rebuild with new openssl- Rebuild for Python 2.6- Update to 2.1.4 - Drop upstreamed patch - Add patch to disable init script by default (#441286)- Rebuild for Python 2.6- Fix requires line to include PyXML (#467807)- rebuild with new gnutls- Update to 2.1.3 - Add management GUI - Drop upstreamed patches - Add patch for IPAddr (bz #434653)- Autorebuild for GCC 4.3- Rebuild for deps- Update sources- Upgrade to 2.1.2 - Update license tag for new guidelines. - Patch open function issues.- Rebuild for selinux ppc32 issue.- Add openssl-devel BuildRequires - Remove restart from postun (bz #223949) - Fix up Requires (bz #245704) - Remove duplicate libraries in subpackages (bz #245704) - Add smp_mflags - Fix typo in stonith subpackage description - Simplify clean section. - Use find_lang macro - Fix some multilib issues with ocf dir (bz #228165) - Kill rpath - Add ldconfig to postun- change condrestart -> restart (bz #223949)- upstream version 2.0.8 - fix cl_status commands fail (bz #219765)- add Requires net-snmp-libs to stonith , add BuildReqs net-snmp-devel >= 5.4- rebuild for updated net-snmp, soname change- fix preun, postun to check for upgrade (#212133)- rebuild for Fedora Extras 6- upstream version 2.0.7- added BuildReqs: ncurses-devel- upstream version 2.0.6- bump for gnutls change in devel- upstream version 2.0.5 - removed patch2 - ownership of /heartbeat/crm/cib.xml is no longer set in cts/CM_LinuxHAv2.py.in- Version 2.0.4- changed user creation - added patch2 heartbeat-2.0.3-fedora-ccmuser.patch- specifically excluded ldirectord symlink from heartbeat package - removed user and group deletion in postun - renamed subpackages ldirectord, pils and stonith to lose prefix heartbeat by using -n- fixed more rpmlint errors and warnings- fixed number of rpmlint warnings and errors (still ignores some..) - generate 'predictable' uid and gid with fedora-usermgmt to use with configure flag -with-ccmuser-id and groupadd, useradd - added Buildreq's: libtool-ltdl-devel, fedora-usermgmt-setup net-snmp-devel, bzip2-devel - removed *.so duplication in heartbeat and heartbeat-devel - changed file sections- useradd with fedora-usermgmt - added *.so file to -devel sub-package- removed all perl requires; should be picked up by rpmbuild automagically - changed system user creation hacluster part to use baseid: (http://fedoraproject.org/wiki/Packaging/UserCreation)- removed Requires: python and gnutls - changed _libdir/ocf -> _prefix/lib/ocf - reversed subpackages depend on basepackage - removed Req swig (kept BuildReq) - added Req pygtk2- fixes for various rpmlint errors and warnings - fixed setup -q - make subpackages depend on basepackage, not reverse - clean buildroot at beginning of install - replaced a number of hardcoded paths with RPM macros - Changed Group from Networking/Daemons to System Environment/Daemons - enable mgmt option- rebuilt for Fedora Extras+ Version 2.0.3 - Bug fixes and significant new features. + Management Daemon/Library and GUI client + provide a management library for manamgement daemon and CIM provider + provide a management daemon and a basic GUI management tool + CIM enablement + CIM (Common Information Model) enablement - works with sblim-sfcb, OpenWBEM, and Pegasus CIMOMs - not yet compiled into our binary RPMs because of dependencies + CRM (Cluster Resource Manager) General + All shutdowns go via the PE/TE - preserves inter-resource ordering + Support for future changes to the CIB (depreciation of cib_fragment) + Overhaul of IPC and HA channel callback logic + Many improvments to the quality and quantity (reduced) of logging + CRMd + Timerless elections - when everyone has voted we're done + Use the replace notification from the CIB to re-update our copy with our view of our peers. + Reliably detect if the LRM connection is still active. + Elections + newer versions defer to older ones in DC elections (opposite of current behavior) + this means that only once the complete cluster has been upgraded will we start acting like the new version and accept new config options + it also means newer PE's and TE's (the most complex pieces) don't need "act like the old version" options and can rely on all slaves being at least as up-to-date as they are + people can run mixed clusters as long as they want (until they want the new PE features) + new DCs only update the version number in the CIB if they have a higher value + nodes that start and have a lower version than that stored in the CIB shut themselves down (the CRM part anyway) + this prevents an admin from introducing old nodes back into an upgraded cluster. It probably doesn't fully understand the config and may not support the actions the PE/TE requires. + CIB (Common Information Base daemon) + Make sure "query only" connections cant modify the CIB + Periodically dump some stats about what the CIB has been doing. + Verify there are no memory leaks + Performance enhancements + Prevent a single CIB client from blocking everyone else + Clients Can be notified of full CIB replacements + record_config_changes option in ha.cf for those worried about the amount of logging. Defaults to "on". + suppress_cib_writes CIB option replaced with in enable_config_writes ha.cf (enable_config_writes to be removed in 2.0.4) + Never write the status section to disk + Check permissions for the on-disk CIB at startup + Dont trash unreadable on-disk CIBs + Fix for updates made against the whole CIB (not just one section) + PEngine (Policy Engine) + Many improvements to the handling of resource groups + Support "anonymous" clones + Fix stonith ordering + Order DC shutdowns after everyone else's + Support short resource names (for group and clone resources) + The ordering and colocation of grouped resources is now optional + Support probing new nodes for active resources. + All "probe" actions are controlled by the PE. + No resource may be started until the probing is complete. + Do not probe for resources we know to be active on unprobed nodes + When looking for monitor ops, only mark it optional if it was already active on the node we're interested in. + Detect changes to class/type/provider/parameters and force a restart of the resource + New record_pengine_inputs option in ha.cf for those worried about the amount of logging. Defaults to "on". + Differentiate between config and processing errors + reduces the frequency that we need to log the complete CIB + Make notify for master/slave work + New CIB option: stop_orphan_actions (boolean) If a resource is no longer defined, we can optionally stop it + New CIB option: stop_orphan_actions (boolean) If a monitor op for a given interval is no longer defined, we can optionally stop it + Add support for time and phase-of-the-moon based constraints + Improved failure handling: avoiding false positives + Always create orphaned resources - so they show up in crm_mon + Do not require sequential clone numbers starting at 0 + TEngine (transition engine) + Detect old stonith ops + CLIs (Command Line interfaces) + Create a --one-shot option for crm_mon + Switch a number of CLI tools to use the new syncronous connections + Log errors to stderr where they will be seen and therefore useful + Support migration and un-migration of resources and resource groups + Create crm_verify for checking configuration validity + Simplify the passing of XML to cibadmin + Known open bugs worth mentioning: + 1075, 1080, 1081, 1084, 1085, 1064, 1069, 756, 984 + 1050, 1082, 1037, 1079+ Version 2.0.2 - small bug fix only release + Fixed a bug in ping directive - it works again + Added a check to BasicSanityCheck to check ping and ping_group directives + fixed cl_status nodestatus to return 0 if a node has status "ping" + fixed a memory leak in the CRM's LRM interface code + fixed code which deterimines which version of the CRM becomes the DC when basic CIB schema versions differ. It now prefers the older version to be DC instead of the newer version.+ Version 2.0.1 - + Communication Layer + netstring encoding format is changed to be more efficient + add compression capability for big messages + Add man pages for hb_standby/hb_takeover + The assert triggered by 2.0.0 has been fixed + CIB can now contain XML comments and/or be in DOS format + Includes implementation of the ISO8601 date format + New CLI tools for changing cluster preferences, node attributes and node standby + Improved recovery and placement of group resources + Detection of failed nodes by the Policy Engine is fixed + New Policy Engine features http://www.linux-ha.org/ClusterResourceManager/DTD1.0/Annotated : sections 1.5.[8,9,10,12] + Constraints and instance attributes can now be active conditionally + Rules can now contain other rules + Date/Time based expressions are supported + Cloned resources can now optionally be notified before and after any of its peers are stopped or started. + The cluster can re-evaluate the configuration automatically after a defined interval of idleness + Removed a flow control message which was very annoying when operating in a mixed 1.x/2.x environment -- Known Bugs :-( -- - Bug 859 - FSA took too long to complete action - fully recovered from - Bug 882 - IPC channel not connected during shutdown - harmless - Bug 879 - Failed actions cause extra election - harmless Each of these occurs about once or twice in 5000 test iterations - This is probably > 10K failovers - rsc_location constraints cannot have rules that contain other rules (fixed in CVS after release)+ Version 2.0.0 - First stable release of the next generation of the Linux-HA project + Basic Characteristics described here: http://linux-ha.org/FactSheetv2 + Core infrastructure improvments: + Messaging (message acknowledging and flow control) + Logging (logging daemon) + Release 1.x style (2-node) clusters fully supported + Multi-node support (so far up to 16-node clusters tested) See http://linux-ha.org/GettingStartedV2 for more information + New components: + Cluster Information Base (replicated resource configuration) + Cluster Resource Manager (supporting 1->N nodes) + Modular Policy Engine (controlling resource placement) + Local Resource Manager (policy free, not cluster aware) + Stonith Daemon (stand-alone fencing subsytem) + Support for OCF and LSB resource agents + Support for composite resource types (groups, clones) + Support for a rich set of resource location and ordering constraints + Conversion tool for existing haresources + Resources monitored by request + Resource "maintenance" mode + Several failback, failure and "No Quorum" behaviours to choose from (global defaults and per action or resource) + Sample cluster state and configuration monitoring tools Known issues in 2.0.0: - Under some rare circumstances the cluster manager will time out while stabilizing a new cluster state. This appears to be otherwise harmless - the cluster is actually fine. http://www.osdl.org/developer_bugzilla/show_bug.cgi?id=770 - Under some rare circumstances, a dev assert will be triggered in unpack.c. This results in the pengine getting restarted. This is annoying, but not a disaster. http://www.osdl.org/developer_bugzilla/show_bug.cgi?id=797+ Version 1.99.5 - Near-final beta of 2.0.0 release + many bug fixes - code looks very stable at this point -- well tested at this point on 4 and 8 node clusters.+ Version 1.99.4 - Near-final beta of 2.0.0 release + many bug fixes since 1.99.1 + new external STONITH model - fully supports scripting interface + tested through 12 node clusters successfully + No serious defects found in testing + Easier-to-understand locational constraints model + Many bug fixes of many kinds + Important bug fixes to OCF IPaddr resource agent + Resources are monitored only on request + See http://wiki.linux-ha.org/ClusterResourceManager/Setup for basic ideas about getting started. + Release 1 style (2-node) clusters still fully supported + Release 2 style clusters support 1-N node clusters (where N is probably something like 8-32)+ Version 1.99.3 - Near-final beta "technology preview" of 2.0.0 release + many bug fixes since 1.99.1 + tested through 12 node clusters with reasonable success + new STONITH API+ Version 1.99.2 - Near-final beta "technology preview" of 2.0.0 release + Many many many changes. Far too many to describe here. + See http://wiki.linux-ha.org/ClusterResourceManager/Setup for certain basic ideas about getting started.+ Version 1.99.1 - *early* beta series - preparing for 2.0.0 + Andrew provided a number of fixes to the CRM and 2.0 features + Fixed a problem with retrying failed STONITH operations+ Version 1.99.0 - *early* beta series - preparing for 2.0.0 + All STABLE changes noted below have been ported to this branch + Included in this release is a beta of the next generation of Heartbeat resource manager developed by Andrew Beekhof. http://linuxha.trick.ca/NewHeartbeatDesign is a good place to learn more about this effort. Please examine crm/README, crm/test/README and crm/crm-1.0.dtd for example usage and configuration. + Also included is the L(ocal) R(esource) M(anager) developed by IBM China which is an integral part of the NewHeartbeatDesign. + Known caveats: - STONITH as a whole has seen a code cleanup and should be tested carefully. - The external STONITH plug-in has undergone major surgery and probably doesn't work yet. - the new CRM is not perfectly stable with 3 nodes yet. + PLEASE see http://osdl.org/developer_bugzilla/enter_bug.cgi?product=Linux-HA and use it to report quirks and issues you find!+ Version 1.2.3 (stable) + fixed a serious error which causes heartbeat to misbehave after about 10 months of continuous operation + Made our ARP packets more RFC compliant + Extended apcmastersnmp code to deal with new devices + fixed a bug concerning simultaneous stops of both machines causing one of them to not shut down. + added an option to suppress reporting on packet corruption + fixed it so that we don't create the FIFO by the RPM + made cl_status setgid so anyone can run it, and fixed exit codes + eliminated a serious memory leak associated with client code + packaged doc files which had been missed before + fixed many many small bugs and memory leaks detected by BEAM + added several new test cases + fixed longstanding bug in plugin unloading + fixed a shutdown hang problem + several fixes for Solaris, FreeBSD + Solaris packaging now included in base + fixed a bug related to the apache resource agent not handling quoted parameters + added use_apphbd parameter to have heartbeat register with apphbd instead of watchdog device when desired + changed apphbd to default its config file to /etc + added snmp subagent code + added hbaping communications plugin + added external STONITH plugin + ldirectord: fixed a bug where real servers that were are present in multiple virtual services will only be added to one virtual service.+ Version 1.2.2 (stable) + Fixed several format string errors in communication plugins + Fixed a bug which kept us from diagnosing errors in non-aliased interfaces + Fixed a bug in ipaddr which caused an infinite loop when auto_failback on + Updated Debian things... + Added IPv6addr resource agent + Added ibmhmc STONITH plugin + Added cl_status command + Fixed a bug regarding restarts when auto_failback is on... + Fixed a couple of bugs in sha1 authentication method for very long keys + Fixed a bug in the portblock resource agent so that it no longer blocks ports on the loopback interface + Increased the time allowed for split brain test before it declares failure + Version 1.2.1 (stable) + Netstrings can now be used for our on-the-wire data format + Perl/SWIG bindings added for some heartbeat libraries + Significant improvements to SAF data checkpointing API + Implemented unbuffered ipcsocket code for SAF APIs + Many Solaris fixes -- except for ipfail, Solaris works + Significant library restructuring + Watchdog device NOWAYOUT is now overridded if defaulted + Watchdog device now kills machine instantly after deadtime instead of after one minute + Hostnames should now be treated case-independently... + Added new client status APIs - client_status() and cstatus_callback() + Fixed bug with auto_failback and quick full restarts + We now automatically reboot when resources fail to stop correctly... + We now check the status of the configured STONITH device hourly... + STONITH operations repeat after a 5 second delay, not immediately... + Added hb_takeover command - complement to hb_standby + Added documentation on how to use evlog/TCP to enable testing to take place without losing messages due to UDP message forwarding + Several new tests from Mi, Jun - split brain, bandwidth, failure detection time. + Fix to LVM resource from Harald Milz + Fixed FreeBSD authentication problems breaking ipfail + Fixed .so loading on Debian + Fixed false complaints about resource scripts (from Jens Schmalzing) + Fixed false stop failure from LinuxSCSI (from Jens Schmalzing )+ Version 1.3.0 - beta series + Netstrings can now be used for our on-the-wire data format + Perl/SWIG bindings added for some heartbeat libraries + Significant improvements to SAF data checkpointing API + Implemented unbuffered ipcsocket code for SAF APIs + Many Solaris fixes -- except for ipfail, Solaris works + Significant library restructuring + Watchdog device NOWAYOUT is now overridded if defaulted + Watchdog device now kills machine instantly after deadtime instead of after one minute + Hostnames should now be treated case-independently... + Added new client status APIs - client_status() and cstatus_callback() + Fixed bug with auto_failback and quick full restarts + We now automatically reboot when resources fail to stop correctly... + We now check the status of the configured STONITH device hourly... + STONITH operations repeat after a 5 second delay, not immediately... + Added hb_takeover command - complement to hb_standby + Added documentation on how to use evlog/TCP to enable testing to take place without losing messages due to UDP message forwarding + Several new tests from Mi, Jun - split brain, bandwidth, failure detection time. + Fix to LVM resource from Harald Milz + Version 1.2.0 + Replaced the nice_failback option with the auto_failback option. THIS OBSOLETES THE NICE_FAILBACK OPTION. READ THE DOCS FOR HOW TO UPGRADE SMOOTHLY. + Added a new feature to hb_standby which allows you to give up any specific category of resources: local, foreign, or all. The old behavior is "all" which is the default. This allows you to put a auto_failback no cluster into an active/active configuration on demand. + ipfail now works properly with auto_failback on (active/active) + ipfail now has "hysteresis" so that it doesn't respond immediately to a network failure, but waits a little while so that the damage can be properly assessed and extraneous takeovers avoided + Added new ping node timeout directive "deadping" + Made sure heartbeat preallocated stack and heap, and printed a message if we allocate heap once we're started up... + IPMILan STONITH plugin added to CVS + Added IPaddr2 resource script + Made the APC smart UPS ups code compatible with more UPSes + Added a (preliminary?) ordered messaging facility from Yi Zhu + Changed IPaddr's method of doing ARPs in background so that certain timing windows were closed. + Added OCF (wrapper) resource script + Allow respawn programs to take arguments + Added pinggroups (where any node being up is OK) + SIGNIFICANT amount of internal rearchitecture. + Many bug fixes. + Several documentation updates.+ Version 1.1.5 + ipfail now has "hysteresis" so that it doesn't respond immediately to a network failure, but waits a little while so that the damage can be properly assessed and extraneous takeovers avoided + Several fixes to cl_poll() + More fixes to the IPC code - especially handling data reception after EOF + removed some unclean code from GSource for treating EOF conditions + Several bugs concerning hanging when shutting down early during startup + A few BasicSanityCheck bug fixes + CTS now allows a single machine to be able to monitor several clusters + Most former CTS options are now either unneeded or on the command line + Increased number of ARPs and how long they're being sent out + Fixed uncommon (authorization) memory leak + Some Solaris portability fixes. + Made init script handle standby correctly for new config files + Improved the fast failure detection test + Added some backwards compatibility for nice_failback and some default authentication directives + Corrected the 1.1.4 change log+ Version 1.1.4 + ipfail now works properly with auto_failback on (active/active) + Changed the API to use sockets (IPC library) instead of FIFOs. + Added new apiauth directives to provide authorization information formerly provided by the FIFO permissions. + Added Intel's implementation of the SAF data checkpointing API and daemon + Added a cleanup suggested by Emily Ratliff. + IPMILan STONITH plugin added to CVS + Added IPaddr2 resource script + Various cleanups due to horms. + Fixed authentication to work on 64-bit platforms(!) + Fixed the cl_poll() code to handle corner cases better + Made heartbeat close watchdog device before re-execing itself + New CTS improvements from Mi, Jun + Various minor bug fixes. . Several shutdown bugs addressed . fixed sendarp to make a pid file, so we can shut it down when we shut everything else down in case it's still running. . Lots of minor bug fixes to IPC code . Lots of minor bug fixes to ipctest program . made BasicSanityCheck more tolerant of delays . Fixed IPC code to authenticate based on ints, not int*s. . Check properly for strnlen instead of strlen... . Several signed/unsigned fixes . A few uninitialized vars now are inited . Switched to compiling lex/yacc sources the automake way . Lots of minor CTS fixes... + ldirectord bug fixes: . When new real servers are added on initialisation or when the configuration file is reread they are marked with status of -1 (uninitialised) so they will be checked and inserted into the virtual service as required . All checks use the checkport if set, otherwise the port set for the individual real server. This was the case for http and connect checks, but others had variations on this theme. . When the configuration file is reread because it changed on disk and autoreload is set, check the real servers immediately rather than waiting for checkinterval to expire . Already running message sent to stderr instead of stdout . Support alternate server in real-server specific URL . Treat the same real server with different weights as a different real server. Fixes bug reported by Philip Hayward whereby the same real-server would always have the same weight, regardless of the ldirectord.cf+ Version 1.1.3 + Bugfix for heartbeat starting resources twice concurrently if auto_failback was set to "legacy". + Bugfix for messages getting lost if messages were sent in quick succession. (Kurosawa Takahiro) + Bugfix for Filesystem resource checking for presence of filesystem support before loading the module. + BasicSanityCheck extended to cover more basic tests. + Bugfix for findif not working correctly for CIDR netmasks. + Minor bugfix for ldirectord recognizing new schedulers correctly and timeout settings are now being honoured. + Enhanced the message giving a better explanation of how to set up node names properly when current node not found in the ha.cf file + Send a message to the cluster whenever we have a node which doesn't need STONITHing - even though it's gone down. This fix needed by CCM, which is in turn needed by EVMS. + Enhanced the messages for missing ha.cf and missing haresources files explaining that sample config files are found in the documentation. + Fix for memory leak from Forrest Zhao + Added a (preliminary?) ordered messaging facility from Yi Zhu + FAQ updates + Added Xinetd resource script + Added OCF (wrapper) resource script + Allow respawn programs to take arguments + Added pinggroups (where any node being up is OK) + fixed ldirectord negotiatetimeout for HTTP + fixed a bug which caused -d flag to be ignored + failing resource scripts are now ERRORs not WARNings + now shuts down correctly when auto_failback == legacy+ Version 1.1.2 + Replaced the nice_failback option with the auto_failback option. THIS OBSOLETES THE NICE_FAILBACK OPTION. READ THE DOCS FOR HOW TO UPGRADE SMOOTHLY. + Changed IPaddr to not do ARPs in background, and shortened time between ARPs. Also made these things tunable... + changed our comm ttys to not become our controlling TTYs + Enhanced the ServeRAID script to fix a critical bug by using a new feature + Added a new DirectoryMap to CVS - tells where everything is... + significantly enhanced the BasicSanityCheck script, and the tests it calls. + added a new option to use a replacement poll function for improved real-time performance. + added the ability to have a cluster node's name be different from it's uname -n + Moved where CTS gets installed to /usr/lib/heartbeat/cts + Big improvements to the CTS README from IBM test labs in Austin. + bug fixes to the WTI NPS power switch + new client API calls: return arbitrary configuration parameters return current resource status + Added a new clplumbing function: mssleep() + added new capabilities for supporting pseudo-resources + added new messages which come out after initial takeover is done (improves CTS results) + LOTS of documentation updates. + fixed a security vulnerability + fixed a bug where heartbeat would shut down while in the middle of processing resource movement requests. + changed compilation flags to eliminate similar future security issues + went to even-more-strict gcc flags + fixed several "reload" bugs. Now reload works ;-) + fixed STONITH bug when other node never heard from. + Minor bug fixes (cleaned up corrupted message) + Two different client API bugs fixed. + changed the configure script to test which warning flags are supported by the current gcc. + enhanced the API test program to test new capabilities...+ Version 1.1.1 + Significant restructuring of the processes in heartbeat + Added a new feature to hb_standby which allows you to give up any specific category of resources: local, foreign, or all. The old behavior is "all" which is the default. This allows you to put a nice_failback cluster into an active/active configuration + Enhancements to the ServeRAID code to make it work with the new (supported) version of IPSSEND from the ServeRAID folks... + Added STONITH code for the Dell remote access controller + Fixed a major bug which kept it from taking over correctly after 246 days or so + Fixed a major bug where heartbeat didn't lock itself into memory properly + Added new ping node timeout directive "deadping" + Made sure heartbeat preallocated stack and heap, and printed a message if we allocate heap once we're started up... + Minor heartbeat API bug fixes + Minor documentation fixes + Minor fix to allow IP addresses with /32 masks... + Fixed a timing window for !nice_failback resource acquisition + Added several CCM bug fixes + Made the APC smart UPS ups code compatible with more UPSes + Fixed a bug in respawn + Enhanced internal checking for malloc errors... + Added IP alias search optimization from Sean Reifscheneider+ Version 1.0.2: + Fixed comment errors in heartbeat init script to allow it to run on RH 8.0 + Changed apphbd to use poll(2) instead of sigtimedwait(2) + Put missing files into tarball + Documentation improvements for IPaddr and other things + Fixed an error in hb_standby which kept it from working if releasing resources takes more than 10 seconds + Added a fix to allow heartbeat to run on systems without writable disk (like routers booting from CD-ROM) + Added configuration file for apphbd + Added fix from Adam Li to keep recoverymgr stop looping at high priority + Added fix to ServeRAID resource to make it work with (new) supported hardware + Added Delay resource script + Added fix to Filesystem to allow it to support NFS mounts and allow user to specify mount options + Added fix to IPaddr to make tmp directory for restoring loopback device + Added fix to ipcsocket code to deal correctly with EAGAIN when sending message body+ Version 1.0.1: + Fixed some compile errors on different platforms, and library versions + Disable ccm from running on 'ping' nodes + Put in Steve Snodgrass' fix to send_arp to make it work on non-primary interfaces.+ Version 1.0.1 beta series 0.4.9g: + Changed default deadtime, warntime, and heartbeat interval + Auto* tool updates + VIP loopback fixes for IP address takeover + Various Solaris and FreeBSD fixes + added SNMP agent + Several CCM bug fixes + two new heartbeat API calls + various documentation fixes, including documentation for ipfail + Numerous minor cleanups. + Fixed a few bugs in the IPC code. + Fixed the (IPC) bug which caused apphbd to hang the whole machine. + Added a new IPC call (waitout) + Wrote a simple IPC test program. + Clarified several log messages. + Cleaned up the ucast communications plugin + Cleaned up for new C compilers + Fixed permissions bug in IPC which caused apphbd to not be usable by all + Added a new rtprio option to the heartbeat config file + updated apphbtest program + Changed ipfail to log things at same level heartbeat does+ Version 0.5 beta series (now renamed to 1.0.1 beta series). 0.4.9f: + Added pre-start, pre-stop, post-stop and pre-stop constructs in init script + various IPC fixes + Fix to STONITH behavior: STONITH unresponsive node right after we reboot + Fixed extreme latency in IPC code + various configure.in cleanups + Fixed memory leak in IPC socket code + Added streamlined mainloop/IPC integration code + Moved more heartbeat internal communication to IPC library + Added further support for ipfail + Added supplementary groups to the respawn-ed clients + Added standby to init script actions + Lots of minor CCM fixes + Split (most) resource management code into a separate file. + Fixes to accommodate different versions of libraries + Heartbeat API client headers fixup + Added new API calls + Simplified (and fixed) handling of local status. This would sometimes cause obscure failures on startup. + Added new IPsrcaddr resource script KNOWN BUGS: + apphbd goes into an infinite loop on some platforms0.4.9e: + Changed client code to keep write file descriptor open at all times (realtime improvement) + Added a "poll replacement" function based on sigtimedwait(2), which should be faster for those cases that can use it. + Added a hb_warntime() call to the application heartbeat API. + Changed all times in the configuration file to be in milliseconds if specified with "ms" at the end. (seconds is still the default). + Fixes to serious security issue due to Nathan Wallwork + Changed read/write child processes to run as nobody. + Fixed a bug where ping packets are printed incorrectly when debugging. + Changed heartbeat code to preallocate a some heap space. + CCM daemon API restructuring + Added ipc_channel_pair() function to the IPC library. + Changed everything to use longclock_t instead of clock_t + Fixed a bug concerning the ifwalk() call on ping nodes in the API + Made apphbd run at high priority and locked into memory + Made a library for setting priority up. + Made ucast comm module at least be configurable and loadable. + Fixed a startup/shutdown timing problem. 0.4.9d: + removed an "open" call for /proc/loadavg (improve realtime behavior) + changed API code to not 1-char reads from clients + Ignored certain error conditions from API clients + fixed an obscure error message about trying to retransmit a packet which we haven't sent yet. This happens after restarts. + made the PILS libraries available in a separate package + moved the stonith headers to stonith/... when installed + improved debugging for NV failure cases... + updated AUTHORS file and simplified the changelog authorship (look in AUTHORS for the real story) + Added Ram Pai's CCM membership code + Added the application heartbeat code + Added the Kevin Dwyer's ipfail client code to the distribution + Many fixes for various tool versions and OS combinations. + Fixed a few bugs related to clients disconnecting. + Fixed some bugs in the CTS test code. + Added BasicSanityCheck script to tell if built objects look good. + Added PATH-like capabilities to PILS + Changed STONITH to use the new plugin system. + *Significantly* improved STONITH usage message (from Lorn Kay) + Fixed some bugs related to restarting. + Made exit codes more LSB-compliant. + Fixed various things so that ping nodes don't break takeovers. 0.4.9c and before: + Cluster partitioning now handled correctly (really!) + Complete rearchitecture of plugin system + Complete restructure of build system to use automake and port things to AIX, FreeBSD and solaris. + Added Lclaudio's "standby" capability to put a node into standby mode on demand. + Added code to send out gratuitous ARP requests as well as gratuitous arp replies during IP address takeover. + Suppress stonith operations for nodes which went down gracefully. + Significantly improved real-time performance + Added new unicast heartbeat type. + Added code to make serial ports flush stale data on new connections. + The Famous CLK_TCK compile time fixes (really!) + Added a document which describes the heartbeat API + Changed the code which makes FIFOs to not try and make the FIFOs for named clients, and several other minor API client changes. + Fixed a fairly rare client API bug where it would shut down the client for no apparent reason. + Added stonith plugins for: apcmaster, apcmastersnmp switches, and ssh module (for test environments only) + Integrated support for the Baytech RPC-3 switch into baytech module + Fixes to APC UPS plugin + Got rid of "control_process: NULL message" message + Got rid of the "controlfifo2msg: cannot create message" message + Added -h option to give usage message for stonith command... + Wait for successful STONITH completion, and retry if its configured. + Sped up takeover code. + Several potential timing problems eliminated. + Cleaned up the shutdown (exit) code considerably. + Detect the death of our core child processes. + Changed where usage messages go depending on exit status from usage(). + Made some more functions static. + Real-time performance improvement changes + Updated the faqntips document + Added a feature to heartbeat.h so that log messages get checked as printf-style messages on GNU C compilers + Changed several log messages to have the right parameters (discovered as a result of the change above) + Numerous FreeBSD, Solaris and OpenBSD fixes. + Added backwards compatibility kludge for udp (versus bcast) + Queued messages to API clients instead of throwing them away. + Added code to send out messages when clients join, leave. + Added support for spawning and monitoring child clients. + Cleaned up error messages. + Added support for DB2, ServeRAID and WAS, LVM, and Apache (IBMhttp too), also ICP Vortex controller. + Added locking when creating new IP aliases. + Added a "unicast" media option. + Added a new SimulStart and standby test case. + Diddled init levels around... + Added an application-level heartbeat API. + Added several new "plumbing" subsystems (IPC, longclock_t, proctrack, etc.) + Added a new "contrib" directory. + Fixed serious (but trivial) bug in the process tracking code which caused it to exit heartbeat - this occured repeatably for STONITH operations. + Write a 'v' to the watchdog device to tell it not to reboot us when we close the device. + Various ldirectord fixes due to Horms + Minor patch from Lorn Kay to deal with loopback interfaces which might have been put in by LVS direct routing + Updated AUTHORS file and moved list of authors over+ Version 0.4.9 + Split into 3 rpms - heartbeat, heartbeat-stonith heartbeat-ldirectord + Made media modules and authentication modules and stonith modules dynamically loadable. + Added Multicast media support + Added ping node/membership/link type for tiebreaking. This will be useful when implementing quorum on 2-node systems. (not yet compatible with nice_failback(?)) + Removed ppp support + Heartbeat client API support + Added STONITH API library + support for the Baytech RPC-3A power switch + support for the APCsmart UPS + support for the VACM cluster management tool + support for WTI RPS10 + support for Night/Ware RPC100S + support for "Meatware" (human intervention) module + support for "null" (testing only) module + Fixed startup timing bugs + Fixed shutdown sequence bugs: takeover occured before resources were released by other system + Fixed various logging bugs + Closed holes in protection against replay attacks + Added checks that complain if all resources aren't idle on startup. + IP address takeover fixes + Endian fixes + Removed the 8-alias limitation + Takeovers now occur faster (ARPs occur asynchronously) + Port number changes + Use our IANA port number (694) by default + Recognize our IANA port number ("ha-cluster") if it's in /etc/services + Moved several files, etc. from /var/run to /var/lib/heartbeat + Incorporated new ldirectord version + Added late heartbeat warning for late-arriving heartbeats + Added detection of and partial recovery from cluster partitions + Accept multiple arguments for resource scripts + Added Raid1 and Filesystem resource scripts + Added man pages + Added debian package support+ Version 0.4.8 + Incorporated ldirectord version 1.9 (fixes memory leak) + Made the order of resource takeover more rational: Takeover is now left-to-right, and giveup is right-to-left + Changed the default port number to our official IANA port number (694) + Regularized more messages, eliminated some redundant ones. + Print the version of heartbeat when starting. + Print exhaustive version info when starting with debug on. + Hosts now have 3 statuses {down, up, active} active means that it knows that all its links are operational, and it's safe to send cluster messages + Significant revisions to nice_failback (mainly due to lclaudio) + More SuSE-compatibility. Thanks to Friedrich Lobenstock + Tidied up logging so it can be to files, to syslog or both (Horms) + Tidied up build process (Horms) + Updated ldirectord to produce and install a man page and be compatible with the fwmark options to The Linux Virtual Server (Horms) + Added log rotation for ldirectord and heartbeat using logrotate if it is installed + Added Audible Alarm resource by Kirk Lawson and myself (Horms) + Added init script for ldirectord so it can be run independently of heartbeat (Horms) + Added sample config file for ldirectord (Horms) + An empty /etc/ha.d/conf/ is now part of the rpm distribution as this is where ldirectord's configuration belongs (Horms) + Minor startup script tweaks. Hopefully, we should be able to make core files should we crash in the future. Thanks to Holger Kiehl for diagnosing the problem! + Fixed a bug which kept the "logfile" option from ever working. + Added a TestCluster test utility. Pretty primitive so far... + Fixed the serial locking code so that it unlocks when it shuts down. + Lock heartbeat into memory, and raise our priority + Minor, but important fix from lclaudio to init uninited variable.+ Version 0.4.7 + Added the nice_failback feature. If the cluster is running when the primary starts it acts as a secondary. (Luis Claudio Goncalves) + Put in lots of code to make lost packet retransmission happen + Stopped trying to use the /proc/ha interface + Finished the error recovery in the heartbeat protocol (and got it to work) + Added test code for the heartbeat protocol + Raised the maximum length of a node name + Added Jacob Rief's ldirectord resource type + Added Stefan Salzer's fix for a 'grep' in IPaddr which wasn't specific enough and would sometimes get IPaddr confused on IP addresses that prefix-matched. + Added Lars Marowsky-Bree's suggestion to make the code almost completely robust with respect to jumping the clock backwards and forwards + Added code from Michael Moerz to keep findif from core dumping if /proc/route can't be read.+ Version 0.4.6 + Fixed timing problem in "heartbeat restart" so it's reliable now + Made start/stop status compatible with SuSE expectations + Made resource status detection compatible with SuSE start/stop expectations + Fixed a bug relating to serial and ppp-udp authentication (it never worked) + added a little more substance to the error recovery for the HB protocol. + Fixed a bug for logging from shell scripts + Added a little logging for initial resource acquisition + Added #!/bin/sh to the front of shell scripts + Fixed Makefile, so that the build root wasn't compiled into pathnames + Turned on CTSRTS, enabling for flow control for serial ports. + Fixed a bug which kept it from working in non-English environments+ Version 0.4.5 + Mijta Sarp added a new feature to authenticate heartbeat packets using a variety of strong authentication techniques + Changed resource acquisition and relinquishment to occur in heartbeat, instead of in the start/stop script. This means you don't *really* have to use the start/stop script if you don't want to. + Added -k option to gracefully shut down current heartbeat instance + Added -r option to cause currently running heartbeat to reread config files + Added -s option to report on operational status of "heartbeat" + Sped up resource acquisition on master restart. + Added validation of ipresources file at startup time. + Added code to allow the IPaddr takeover script to be given the interface to take over, instead of inferring it. This was requested by Lars Marowsky-Bree + Incorporated patch from Guenther Thomsen to implement locking for serial ports used for heartbeats + Incorporated patch from Guenther Thomsen to clean up logging. (you can now use syslog and/or file logs) + Improved FreeBSD compatibility. + Fixed a bug where the FIFO doesn't get created correctly. + Fixed a couple of uninitialized variables in heartbeat and /proc/ha code + Fixed longstanding crash bug related to getting a SIGALRM while in malloc or free. + Implemented new memory management scheme, including memory stats+ Version 0.4.4 + Fixed a stupid error in handling CIDR addresses in IPaddr. + Updated the documentation with the latest from Rudy.+ Version 0.4.3 + Changed startup scripts to create /dev/watchdog if needed + Turned off loading of /proc/ha module by default. + Incorporated bug fix from Thomas Hepper to IPaddr for PPP configurations + Put in a fix from Gregor Howey where Gregor found that I had stripped off the ::resourceid part of the string in ResourceManager resulting in some bad calls later on. + Made it compliant with the FHS (filesystem hierarchy standard) + Fixed IP address takeover so we can take over on non-eth0 interface + Fixed IP takeover code so we can specify netmasks and broadcast addrs, or default them at the user's option. + Added code to report on message buffer usage on SIGUSR[12] + Made SIGUSR1 increment debug level, and SIGUSR2 decrement it. + Incorporated Rudy's latest "Getting Started" document + Made it largely Debian-compliant. Thanks to Guenther Thomsen, Thomas Hepper, Iñaki Fernández Villanueva and others. + Made changes to work better with Red Hat 6.1, and SMP code. + Sometimes it seems that the Master Control Process dies :-(+ Version 0.4.2 + Implemented simple resource groups + Implemented application notification for groups starting/stopping + Eliminated restriction on floating IPs only being associated with eth0 + Added a uniform resource model, with IP resources being only one kind. (Thanks to Lars Marowsky-Bree for a good suggestion) + Largely rewrote the IP address takeover code, making it clearer, fit into the uniform resource model, and removing some restrictions. + Preliminary "Getting Started" document by Rudy Pawul + Improved the /proc/ha code + Fixed memory leak associated with serial ports, and problem with return of control to the "master" node. (Thanks to Holger Kiehl for reporting them, and testing fixes!)+ Version 0.4.1 + Fixed major memory leak in 0.4.0 (oops!) + Added code to eliminate duplicate packets and log lost ones + Tightened up PPP/UDP startup/shutdown code + Made PPP/UDP peacefully coexist with "normal" udp + Made logs more uniform and neater + Fixed several other minor bugs + Added very preliminary kernel code for monitoring and controlling heartbeat via /proc/ha. Very cool, but not really done yet.+ Version 0.4.0 + Changed packet format from single line positional parameter style to a collection of {name,value} pairs. A vital change for the future. + Fixed some bugs with regard to forwarding data around rings + We now modify /etc/ppp/ip-up.local, so PPP-udp works out of the box (at least for Red Hat) + Includes the first version of Volker Wiegand's Hardware Installation Guide (it's pretty good for a first version!)+ Version 0.3.2 + Added UDP/PPP bidirectional serial ring heartbeat (PPP ensures data integrity on the serial links) + fixed a stupid bug which caused shutdown to give unpredictable results + added timestamps to /var/log/ha-log messages + fixed a couple of other minor oversights.+ Version 0.3.1 + Make ChangeLog file from RPM specfile + Made ipresources only install in the DOC directory as a sample+ Version 0.3.0 + Added UDP broadcast heartbeat (courtesy of Tom Vogt) + Significantly restructured code making it easier to add heartbeat media + added new directives to config file: + udp interface-name + udpport port-number + baud serial-baud-rate + made manual daemon shutdown easier (only need to kill one) + moved the sample ha.cf file to the Doc directory+ Version 0.2.0 + Make an RPM out of it + Integrated IP address takeover gotten from Horms + Added support to tickle a watchdog timer whenever our heart beats + Integrated enough basic code to allow a 2-node demo to occur + Integrated patches from Andrew Hildebrand to allow it to run under IRIX. - Known Bugs - Only supports 2-node clusters - Only supports a single IP interface per node in the cluster - Doesn't yet include Tom Vogt's ethernet heartbeat code - No documentation - Not very useful yet :-)!#!&!'!$!%!-!(!*!+!)!,!!!!!!!!!! !!!"!7!!!1!!!!!!!!!!!!!!!!!!!!!!!!3.0.0-0.5.0daab7da36a8.hg.fc113.0.0-0.5.0daab7da36a8.hg.fc11heartbeatHBauth.hHBcomm.happhb.happhb_notify.hcompress.hha_msg.hhb_api.hhb_config.hheartbeat.hreplace_uuid.hocfoc_event.hoc_membership.hsafais.hais_amf.hais_base.hais_checkpoint.hais_event.hais_lock.hais_membership.hais_message.hlibapphb.solibccmclient.solibclm.solibhbclient.soheartbeat-3.0.0AUTHORSCOPYINGCOPYING.LGPLChangeLogDirectoryMap.txtGettingStarted.htmlGettingStarted.txtHardwareGuide.htmlHardwareGuide.txtREADMERequirements.htmlRequirements.txtapphbd.cfauthkeysfaqntips.htmlfaqntips.txtha.cfharesourcesheartbeat_api.htmlheartbeat_api.txtrsync.htmlrsync.txtstartstop/usr/include//usr/include/heartbeat//usr/include/ocf//usr/include/saf//usr/lib64//usr/share/doc//usr/share/doc/heartbeat-3.0.0/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=genericcpiogzip9x86_64-redhat-linux-gnu ASCII textHTML document textPOSIX shell script text executableUTF-8 Unicode textdirectoryexported SGML document textsymbolic link to `libapphb.so.2.0.0'symbolic link to `libccmclient.so.1.0.0'symbolic link to `libclm.so.1.0.0'symbolic link to `libhbclient.so.1.0.0'RRRR?}7 [BfI$EI\S$CRv|\ZdS5t7%kr Iɚ[n'bU @P:ໃÃCor:'^]:x}d{r_{$l9o}/N}/ꫯ~ƺz*qhz~ʼnLonjgKF4~c/ PLH4E'^\4a!nnSQon .h̼P k?N@]g = 1 c/~4}Dދc-$H8^Rᅓ(FhL2ԏ版{%:~@ٹ7,#t'a / q@gؕ8?XSw~ U{Rսh1 r"D!a0[ f3qeO]Dw514P9ԿU0_ C0}#֠y v=C8kP!ݼ45=!(M4-#4yM0 r6ޝS>;'ư7(QLFcLE>`!QqM6׻vŷP ?`*L,]q%)VlKXj{dk` ks*.NW bk~í-8) F[HĎ[vd*Ʒ^ c},֟[[;= OFa!;v{˩Jl\. &b(m9NwS?ݙt'ῡtvNF-pXP֤sv)-sNk."<=x|x/Vρm~a_f̸ٻ1Aflp( n22X\Cn M9X4Hl..I=.@ayGs-U^TÝqL;?ﷁc^۹J?{r¨5E2{VRO8H9-]Ϝyr(d>,h4tFO Y THgzfa68MX̖7AYy}7[PAyER]/yZo^XE6cՁ͡_ nƣI\3 cVs{rMM4odz(nOMYbtIpz3,hӥ7YFH%i '̟' 8~Mfye~j󷖈E[FyիɆ2:[,nQDJqQLQ`.XH"|* :H&PAyǒ_ExA|<8aAQB7-g`Wl={gjeKAua0)'_fx W`k<f/X m}"+Q .2_-À2& HEZ8<҂8I|D/nozSئr;ᑋ,aaNٲOl}efTvk³Lk~mGoȼ<&2'DNgq`kxwpy3:bZFWFN70\V77NDсyuY׸~5:* ?AI=|8ċ'%PTra02f_c{g6WzW.Ɣ'b訙MͱqгYtτvJ/0pFsةP//ri3bNZ6Xdf%s^ϓ7DM@nev0IFw?b/ 8tjsV?hMЗ`cnqGI0e)&IJ0? O4k(?f8!H&#(i?,01,Yw$ \@q?)܃CG~c.goxdɾbmOJC/P%>5hYAA:dkC e<3ya?zoH !@AC#7нzيBM~Sq㑣5BX6bY |ΏAWfi^?Az1+q|y&;JUd5>PAjcMRHAD$u%(՟ dY 00E!k~joX2R`[VG~mFM2sʻX@\obbou*>IXd oeWXK{H$xE6߯0>>zUB\+.ǖ#6Op/.f  T>g6~1{2ٙ.Nv@_r;&G or3+fJ׺ {[3NlPڟ 2vSM>M-|AmjmvaXu`&.H3h86'I+|Iؖ?Y S<]&ghEYZ䥩o [D6?$Nղ.;[ŷs1IvT}ÿGHn#49hFGQV Q+TN]9?d }{gx 1d7梿8_F%@xoo,{dŏOi.{f^G̣ceE՞˻.$NQj('/y$ʯۂvv'bRTō⑧]rz'8;}9޿{:Eý[IB5$lxg}``覲8X+ː2co]| O\K!'3C3j8Lgi N觸Pp6rA{.~m >쪲/%𯫮Mj tB@ˑ}oֈ[&(-Au[ӋV9>sY<5bCb umYwznk01?as 5C=?oo$P…w[;1Pͻ te/B;-'o}Bũu8iz3{qs>݈Ϙ r7a}-.O0{ ,BX]8g^4/I OyH[-,T'}|"=/ Ν@'^zaeau"ܟӑxDw أ1Veqd ׼)Է8*Р`qjo!H%#P? eVI SH&|9جŬ? 4~=mG R&fAb םua9Ȯ N{D=<8zŋ-FZۙZZ#Gt'g^PZ^[7h$śWt AUD_+ ;ŎF~7A)eAq⤦jhԟp3<)cĽ^gۛm L 2c)0ܨ1ue]^ݚ$޷0{m,$lj7|$or;tjUQ858h{_ ]Koji#tvj㐛lҭ{җTV'VuI {ڗ-dQ0 Ȱ k # xNlu;7u./N ;ȎvGNtu~tgXd[p T5By4F^ש0`v}C6 / V(zQMkg=5ՈD{bⳢ4dv/: z%49A &Nm4}-[OHҿg%nZ_w%_vI~qUfEU)_OU"ĝ&+[5RՄ?jSUf{;/H`W\|zb+&m]Mj8' !H\24Aj%ë`<Ƒ:3f%Pe 6k{oYw`_dV[W8%<ݛ῟o[~~}+g -s,9HIdA-!Y>=dM>yHPl\x2|^OaQq0`cqBhC}L4Br( *ee遷g^6(n"͸{17NOm}fibAze[j Dŀ2 {D'7.ƨVC|b3}'-Wzg~M4uеopL ?dcF$ NYQP7'ޟ(LozY5 ;G2z>8hB,"6F3TǀFtJ"7f0|pJe[ىdD.W4CKk@c\h:/ = ei/ْtu u9xLNn{e Kmdϊj2m s8dm  ?{.)I)E64K*@jv`=svQ&iGf28 2BtE` ,C\O,o:Wh.S`}^ {T 6y XWNqG"![X:\ `)4;t0P`) MO)X$nz nQN,#l+21ԕSvŃQC^"}6[p?\]'Wd”ȅXRNzz0$:T6[º53 $^XP%I<8f+-J? GE yof`@U7[| n, 1!#cڑY;^죬TE/=WЁ]1o4*o8Dǎ79l]b h:]TŒ~TʆфQʩ,ҲlXjfEj՚k6kllrlNŸ+ꩣHphN}f\KP&q4qʐR< &$?,Ъ<ۆ1I9el&°.ipGj&"o@Ozd93^c; {k|"NSZ1દ~bkU,70:@sԫujn\ZX2]V7^tLn8B)6h`Y̱ O,vI03⇊4UiKrsEv-jPc :Ff?-ZAb@omBBY9VN- ^ԇu OXÊJhRM<55 2裶+f…J<7nJϳ L-4A"ɓYxtٌ C#R[l'dwr M&hBl'7IҦ:ÆL_mN1eP eTB-=Ln9#Ƨ m{j`3&meh1Z<ӲuI!*My#m}4T.ulj23@mk4*A8ʳY\uF% Im嗦LAd+YU-rOÔBsހ,uJFf?+p[P$͐?eٟG}t8 { lXW,@m6,>D*O*t"dzHlaب*@qQI 'H1Ŏ AumHiZeSҷKm#tsğ ![y@Aҷ" PnV- 5ŅA6_y{cQdCF'nF@AdEt/&%aP`bK>R YBQ νO h-eHV<On.څ&1Zwa؆Tn*p@!+/=<[̏k[YzA: ؔ1 k*.~I%Ǘ8;fI@Jn-/Ln߿}tlBT蓪|%K Fyd[%P1:ML#qV=žPʼnidpC>txFP;$^M-'hPj]fR$5eO@T]bڧ '"VYːnWU8 Ȧ=Ś&[+/[RKq 퀨ђ(Ɂ2{G-w" ~ᒮ:.#@f'"x9^19m+ FCuMju4+D]k0gnG[k@2zl6f3I7- +VH}\.dYe&xyL+c]3[9?4?y1o#fz(q?]"q[Ս-\nq;)\7vrA7H7VQ̓[ge嵓OHlrLeRKsP0ǁdzN6x8}!%} rt[%0$nDm^4EyOqD0 NꪣNyճ3E)fQ,?<Ո>Z@vc'Na'ȿۜFWѓ6e -b|d SQۥMlr{X1t&NO'Mc~:y0OZNe3 SUK~81B?!sT+#2QT]^*zL^qL #CDX: C+fwKU=,<:JYr5DpPIm|Z~XK6+c\?jkMn4CVjlfX!Lk*SAپGҨ6[O[ig9Y3 SJT nс{Q %#"y(]_4F撮z}ZMvt%& ;([r]%[5Q1,>)q..l$eCq[FhY&9)Ĕ-mːC AQGBW$Q%g-M?eצ%wfλ'1߂. v%0J:VsܚqW}/ttl@ O.+qZ?Fjf'TjA4s&$7gTvz ;]3{{m¯@я!DFmC~@.D2XTҮ"c g$_z^N!ZOzMlvĶ<˨Ν8w砣; MfQ@J =?"$%wWSẎZދ!_j{W3.Bu鋚j|# :Px(N8&t3Q?&/¾@׎]V= 3KBcS5`܁ccJ;*xGhiSV -!+6۩GK!m (%N  SPqמeqQMv)oN6%cq{ةyfL`Nhw!i09!SU h$c5ĨUpGx؁sUE6gΨ5pO[gHԥG0sv(Q'ՄB#K8I؎cwM磈*n(8K.͎/{-r0Ɗ@dEY?ԟ[:9r4:Lד Q‡lCGz,yă{G%-3/HrKB(fHMA?yS7%3|`>2"sTZq^nr6v~ Æc(7r˘>9)p  _tRA:>?šPx"Nl#A& E(M*A27RnOw8z]z," !eo:fmلATW$&V5:ìoIIr7? C]G {S1Ftn1*Vhn鱥[%}sk誳Agr0uƘ߶>'۬v{-}rezWW~:4;WC8]*e?QE|GNu4Bעt9ɕFjD.)9/H[41:c"|!#?j^>N{'FD]{ˉ]vu0-r@viyl ncPt|Do n9i4¤1-JQ+R0R!oY)οP5\ hUΩ}XYcPȼ-? 3XY]_=l4 94Nۘ[ѱ۪ohCFnaEDvy^7~;sF*(~ruiku:܅1Hhvo .a%oJ9nʏ= OKT#.'yw]zt|+ zi{uPsD1z.o1 l, vyqj~x%!\i"X=ċnj-| (F(l=j a$!Sq[g9?st6e9/NGB It' Y_va:ڥ޸–`lfR%.'VϜOD/92Plf816#+!˿,g)7v8ڿ+}cg>8}֫ gt0+aP$CY7 U=AG-EV ?@> A$)\~zq0dE݀%#?*}M_hj(:zhФĉG&b_L|>#(nA?RD4¨CkF{hk{Tށ N-cIZ,nğM^02t J_04m1ShN.]_ȦWw7W[4@uݦӭ75l<molt RxLބO6T|a.*Ux.NpRs}Yǒ1|0Yz7\\$Fyg\0+/_ΉUDvL'zi|S ; ɡ& zm7t(:o0O}:ɶDtF?FM,YauaYjxvbWA=zAEsD9|1fMX~r:Nux ɭQɶa}m$C\=~:.TEhhl(A6 %R8'h8\ybk_0,)@ֽ?.-C>gpߣ6?Sk@ \7jʗt(Ul֥^a5KօA]׀[u' M9pJ G 9ɿIԐ>%ʭ`!?\6oe Mht2{xogU'avyM~ͼ8Hs]_l˧e0ƎH&@pjCI1WWH9b>J4@W#L$Ve[SnznuNΣ}_1R }ŷpɞFf-WS)4k"G^4:K.foe 6l ڍv:m77?5N~?YY^_#:?9mYa]ю;9,grgf U:,_HSYL{;Wn*l LX? /:]${xnW>F-!Fq@#{!c[DI-sj3ՑRRq<<M*W*Fs}KZOUAHc/Ў"ΝbfȚd/k[U#ĿǬ-Yvm&ރWy> mj6i_[R(?8;ps PH*/?)y7@fw.JK iwMKZ R_Bf':0)304U92#S7ތ㜠O(yM/7N"ˍ !B|/ב ,G!яLpDPt`GnHu\V##u(IbZnU8$N̂N+pA {wuAymKkEfk6ޝ 1wgl~Lmmr=Lm^fPi/o@A`sii7[CXR'*xpDNPc XUZ]G!d6>FΆ|F@lp,Ⱥr,B6F-R2\p͍*oĐm7A |q;b7/,`bg|U;Vk\^6*c3&)F`tsc'rhR :#3/UƳnSC[fDrY CYvh~;e@2=^w&8"a PW*Q! XI+8"GvPk­OߓG{M<03ʳ4@ҥǸ$ i^YrJ GFHjkd)5^6Ñ7NO1}wj,A*ьFqBbQ%\닃` >6d4IdC,DStd\>HƊ@(%bg堔O|9'8BM5UDFEGF]\ 7 ! ?+[5QLɷ@o &SR֋P^+Wuo BugxuuZГ8邱` GγR֍XP)Z^4FF]aeOKm7@dc{)˩_-xb؅FfXwsPtk6\ҀH̍"*ظHjx:=;5t>\CC=uS0[k0uv;·/!e5rIZp6:UGDfȲ1ь< Xr?T 7|;87kv@|/aO6 b(S!ZZbXƣzD4<;Z?ded8ʁzO S8@qBCOY0GEvO@h(cP T:\*iSd..?l:,H2#,(b :#ShKOo"{l//籹QTnܻ0uaI]W+H3So].ZiHAUp騂z2p*hd2_SԌAj"mr$Ua)6ݓ,OL@eJʔ4tЌ'ƾ$/.am8~SF=ܐ%85l/yŏ2hp܃!ׂF-gg]HzH1{Mt!ddS/|}4W/,sS;^=)#ރAufT6(anr~$c?/{\^"=OVOР#U2,Vͽ`ȿׁeA CNVyō6%P"bI1+ԸƓ9^@%jB_oҁvPۥ7~b .@7PoCϦ:c^i A-b!Xxiېټ#ݱޱ8wDJF1^>D=p%uMg43ry§>>l K{׌P^êG\-99¡F*z5Ɇ\Iܣʓ;vdfs"nNt)|\#?*F(+;q?rGơN 3#-a7f?C\a/D|S)Fi3HۡbPF%ܹdÿ\7yqzaᓧV)?$xѷ@7rꗕ85:FåJ6 T5BZuΓ\ R|֮k;;& \SL޲.0˹4s3}QY9 rA(-Ym6 Y""q,VUaf^HBC6`YUd+d@|KA,;AjUezC yce$XL@.lVzݮ}8}̠0dֆJXI"K.k%{L7>'>1ui֑T;,(X^đE^i8XHg \ N=/ɟ4eK4'LS])7i[= m&獑蹟G@qHc;՝; M"(+ihuάAp7N8&~BtlPhV8Kj͆{UYzhNnj[[ֽeĒ)<(ƒCAC? xo\|Qx/ ՋBȭbykiBULڏDLg^x`UѠ)2*ehV%!iO=EH j *$YS:A:h-gq~ "풚fރ(X|,4@:7<_a ^H}BIVvw"ZO0u+2!(#NJ")f"f>3*җ#sD畩]!$@l@ł#qk1j"lmL1eJX Q^ %@fW棵to7?Z ZN٢CF#l,7vwQ>4׹ t\b%*J$_-0JpIC_AwTԥh:P% :H9nMny֝IfO4Cwx>9GGBR.4^FjݩQ?:``[c [#P'ێƿ?@S Cdz]dzN-Fu ^J(O#B՚fC>e9/+Ȇ{..Wa!w2I"l]0.-vrAPtNc*YOuh@z"|o|kyW]nTcK-#mw5:S N~ۻ5hV}>XE9S`Ss9u2}1سb~5XL YR3br7&KÁݑD2W$ވ#R >dlbb+;P',P<&#*VKv( %/A;rfmKń R;U6N١ pUQ޵AyÝux'[//~ l93x - Sȃ (#~-TaoЕ9-.l2 %r4bvʀ`\oɦd?3E~>\-We8KRЕc)t`wP{O 'ЪZQ(S-cb-4?u3 GE4UP<<ե`5},HFPgak1|2@G$H]T8m7 $65aRb 5Ѐ +P <V1j0ӻ$xmhQRzUo˅õ}6iutoR1b b)~_N)_';N?i /9 :t&jon,v$Jٚ 9ۢE0%)U(KJ("1Yɮ2G.U Cs*RH7T(C9X)ercJJeL)@HuL}NN|<` BdL~E9-h4h`tXS!G3d$ jdBrӺ'iQ1 Y͊\&Zh͏e eY aF6Pz!'qvdg21; .эOϒr:uaRAR˄F3@(/W#À"KFC[28ѡ.2 wٶZd ۳N̊iXQg; W p7iDӐ1jIQnT@#\ͫEAS富BɖTj3i*r 40H.[o_NҫKıA·e[1'OGޘN$I@k rMԽSx} )@"崷H݈)^Vf<\G+'m̵ dlLjϲʙi*.#I6 nTc xâL^&0R".d)$|gÉN 㥪8,'fX\.AgN&|az bҾe3vP#1Etי˓W@YLnxg!|=lNb-;H2-ߡwFЙdz`UtH""*JQqM}cV+eW̅fZP2-xa*+~dc*udo?.bYH'%țt5$+ˮ2,Lv!>YүD{VP#t8iAI$+a 3,sJA2"02 'ȼ$!1fcE<"q( Z$%=ogp">7 2%T&ļr^c-9m*\z2%0Ƌץ>I G)}-?_V4}c6dӒa((Eygѵ7+^ϼR~Hm8Y!v \BG^  XI'f tOK)<)H,g$}jWT"~N|2o0Qʼ9uQ963& RO=K"{$cCʵ2XE(PxŌDfC!A_ZmبԚuL礼N;t0BDb1cۤV:).m&oWR4{Y}CqhIGln:wl<e+z, Ĩ^x`ړ//̦'tsOx+H19<%3;YNXBx#YwZZeOCB#'wq׹/Y&ӱ0:p8daw>癪3vO ]) Q:Vd-|&0/IY75T\D:zF̞6:t^S6QbCDNT5ْ=|< MI_d,UV<[8>7K6nٛdLJyɯ$)C)F(媮JJe;IlC'2.eŧdԧTPo ♇a.vuVŊōGD,oXG1SЍ;$XF:6 a/g^x*wp E[9Dži;.#-5qAd[~ւT95\cu97漗Zx2\F,DU*w4[Fw08فDл$D^ |)J+˟;o_<yR8wlbੇRt̷=l7ggdJ qI7g&&G d#f \| M4=STOȱL7R4v^g(\+ex;gLNg /`|W@D2@te @:DFjˢ0@CLeçaŶۺY4Ɵce[餀-N6Wm,˄,yyKz8@dzʫ?yXid8|lx1@99-MܢlHPҪ1%0dSn cNGDFk+'v]+=.o Av#L޺Z8jZ a{ځךy$O Q)z{fd[e'>1q&c#Zw4,?6Hzbu{,wBCTRo0>CE*F7< [ _|zV70@T7.XEWT -zm{/{6wlmNkuօrSwe[R@&S|vf;L XT$(#Ȝ0Eo+a϶ ApGVh+Ca S4³y2'MLJ(_I_Rvn>nrlrdˮ6iO5WЧP%칙_>4QkxiKlPP;#$8c4დl1'[*/vfI-څ![fo,( [_'kMd_n8Du1)[DYS.'Ki$KgP"M+RgK>ۯsILf(og{R͟dLG\ ~@iT~51RDy#s-֏&S{*U=zoh/Qq@ }/Hds A?F @[E=dgApݣ0-첯5kX*=ǽ2-1_orrG-Qg4z-3A4ҽp3;KeZwÖĤ4)tq><*5]w[}GA$_F1zP,tϜأ6 5X4G}kpr 2A`Zsظ<+̣VAeښY \AC1^=x.W]4/Zͷn9ze#ruP֟&~u7{W#wEv^`TL@Np螞|(4U5lN.]{]tk6U6Bch/A{@ WwjyCPڠ`&0qBô-Kg##C9lSzEH~=,±3JG٤+z<1@}f]Nl1ϻuƚ;*( 6tYSSM( 5ө]Ak*Ao ^-Ypvf%3yk[2]Q~kU6]Ëi}תuT5]EOi #^ ]_܇cgo $)qLZDv`V( @"k+T_ Kyq*VZU1&)ͫH\I hWSf^Eٮܼ}_^uMZFK>A,);"enk0jյ܂m\v%ڃ^5:voN J59da8j]RAq'p o.`^,d(^pheAqOU~rY?g&xbqOXCbp%6{6?4;i_a|6[-b?TeYecV5LexziV`ӻӐZxvskp|U… tZXܩl`׹ 9\64Cgw2fcGD[8(4ѯ^i,h9oG {gAFr mp.w8Z ˼yKܘ#{`H"ܞiku4uw0eAis8 =G(Ik|_>Ndu .&eP}@h_uRI'uNÐ\#[SC({ؚ-U9]hCdl^$@.+Ao8m!x59liCq0eL^B"ʼn W&,}]^z s@˳g#(O2K*U񓫳3@2lBBxKpSR0;~xulM Z-Ŏrb}3U$(#SAvvݢХgn>UBiqQ3wK*/N,^F?saESV}'oP!lFd>߻[b? +bGk >qPnjO?3c iq?׈Tݕa{Cg#c V׷_kҺ#UeWإv+qu (x箁΄bMɎaYXd O*YlHp 5ظ7mlLtmF̒fkr6OcP4 >f~zO ML2ܣGRgQd۔z][M*jTJ#ۘ*VEՕMIjؠ#ڮTmӴ{ժOЮ uɬCobͦ,cu}-dis+P+4]訆Y Hz!(E|C =ztuٲ^rP4H^:]S5%#?qaR Jʔ>Zv!;rWv*^Uwkc ;,REDU±MT)*e;&(ESY2|RY9 y8rU2>DRMY+7@sQ3ibBxœY*W0]L_'^St^|- hL`u$~[Bь3MS䩌XE&zs:Z97U|k3eUN !(gyi#XPT%Pdq|H7yʕ劙~ :G.B4f ]sTOasΐ5UڋuC=1nn6A1LW9TLn,Նx'u:k@N4JPDSىNaϲ+h! g94B{E3;#͈Eiuk<"rE?+Ԏ15XN,*VnGlUUWzHHH9֑$)B2}zyC@48<G/߼}w~5#e&4鞊z]}3_Z#70P9`WU=7F iFc9U肓NtwM-j5(._X.m,' #}m7]1P{4.- ,GUr8u]t5`Fl9n]rhs;=v)^ ͍u"OAӡMO}tg&RZCۏM mxҿ@r[bijY_h{j90]/ X- THf>/9*`Lc8jČ('*rR1}xC -Zs%Dڎ'YX [,o\ug(~JIťL*JyA. և*G&Y=6獖5"YQz\ _6JY@tU04/c^¸UaBiWVx+TulՍ& (x,Te ^ ܗTS ׊ rnP6Ev3ꏕHF 6Q0jN^60g,'y >ejm~*^R:h%Clıgz)U `Z0Uo!.a:k!F[.,^YGViFs nu+kg _VAS2:i˿(U۸-Xr'?MKPͲg'IwW7#k/~dLJel ?px kt`4$ SŰ;NMߊGҎu&8öj:J}~NUct Wj 쭘/e&2Tx%bN>1UcVJfe}ϴd=IV[G>{,ϕ>pV;fҍ BAc&43 #,/*? cPiS`j-sTɢlTUxMߔbM}wn#;DƬ5"APT%눢(6oMR%N "K ׼u˜Epj7~<< oޜퟟk-~E  t.~= F_J/w^6 ԺOEn!jf-c*?ฦ^a{l7k,=緻V埭,kKW Ekqqz5#C5[ # nُ(X.ǀ7f 9O\\<?-a>en/7A͋fYZ|:zk uLUZ^~mFUG+Vk esD b\N^QK|]YsOJxGLE[Pgf{NqU}12U[g˧Rg^8߯ >U2{&C;!fgv,i]SK Z ђx{sehl z\}n*j~gr|duIPǤ>j4c%zS^:9y'W{N?x #_Bڤ1( J) ΥmX wbrԶX&0%-0E27c?oĴf\0Rr%j_9[\صW3|[i>:\֟$=MokEg$@i;o/M!?oJ-=~Zժ gk߬4ǭKS|WwtBt`MSf)> ΍2̲30_[%"7Z*hA/&B _hbB xY_OYf'(2;-vk]Eu!-#R wn/q?UFVW >. rٻj^f>oZױXѽ创iM;/FeZL&Y(].bĽ}ֹaazv+;{IP z[|_bOU_ k?}O~U}]zzTCtŵ=Տ?Βu: C%֢5&w[ފk|l!VUUtk5m+dMv %'[iwu}?Vk|AOtw6iRLڤm<^pUsOe=gW\O+gssZ΃~juWi1GGvJ;.r5K fhI!#۲=;˧eI~J M]&n,K3;-` fA~.8)#9qc:-*cTγ홡%^eD)~czjNs^6w/;<$#{I], }.^MGVI(F6): M[EF)m>vÉNh)>Gb&ɋ)MiӰ#:vw}߯2_L]'׀yG/Gv2}t/-[tB9a=EۣdḌ$E"h:.̓ɿq?!lx ߾WEe %uc_\W`^k D͆=89>xGpKӔN4=I{IM˙$þIfZ7i^_tku M?5  ^,{4oRPOyBx3iV#rZnҖentɴemŠ#`3JV_XۿB:WfaRxEMTKFXU惤9%e)_&׉}1/6VdJ`l6P kc[eK+>tvYÉXI|C@"D7$/M+b ?57\0۴d4spP|_3>}.aZlB'B}>b}!ZU+9#z\3-|_S3]:6 40k)i7~&^^AN*!=ݣ-ҁx?=!ZHåtnkӢ [I5u$Dz<;p?_$L~i}9dWNٴJ dO.vHD!_&Đo.-Z.%4'| Z"j%|Χ^"GI_f_/QfUdc'D9#ԭϮ<:$أ<-JF3mg;LH=Dϒ!c-iC{ >=#7hN;y|c:x+ܲ0Lwʾ%!zE{tOHZcrYybZ9,OI'o۳x$+򁗤="& hu }%)jlA P ]iOi~`;{1nvrBqm NhsL;6AU=I%$?1ۭ{}A^]M4ɯ a,tu[؅(\pH$RDI:;_"芿i%֦1?I7`F_۫| ׫VOpWV^{xNX/pzN8ʇbϦe-'*<٤c۟L;׭tIZ%׎I;.ײiv9c_ᯋ|B |։p`woId aiq&V]m wce&H:t 2>:Mv zm k~u]'?|m]qw+q+]-ݳ`} $ѝg϶!gre˟5' R6F?<B:NI-?j9=}k-mkkcpkSh˦1SR:#]j#ZMS㊁7hĬH&& A[n5X?n`)P VD:Rx7A"?RnS7p)TL]BEϋ/񕴀g4a\s 9ԍrYT%A0i*fܚ76v1nvF ,ƒ~ 4떖02gV,yXFn ^$pk`сtrW3fZђΉ`k0N~q>.YF2pt[O-bb&9 qd 4a CխvzM!YOh++p/>d60{ 2sk;%Dh@J8AG:+M?UUs"hl61E]I*QL`#N*$9^sA"7ܧQ~0\x":LJ>Q`t kYAtW]'~E(Mq*[yT > ]rLxNZ@cQ4LF'Ch ~RR`ˣP t=p8Is 'XS\;sv7c@<02Sq {ot%@k6Ė2~ʌ/XӣZ^0! %J3C ),%L w8]%b$ªVصuK&P'4kjGhq>m$̍517 1w%Ag&81&KBwVP"a{˖QNB3xfCqЛ1L %p̒JadUZ3J-hzdkbVؤ9dK`2bC楬q2t ;1fDzM=e=\8BЅ2&O',i砯#rB,wq'ೄwLA8wA 110t9 S,m&$2gؔp÷P? CJ'[J4'3#C|t!Zgݐ\ZU%, s?C8FMm1 ѹ=~cNpi̪ݴo/^Oɛ{biڛPHtlICUW E ;|R&3m$蚩?C''//ZƩAsJkY-D{Vo]whT::4-G` KKͮiÆB;iYsed6 D(S:ys3,~ 'HG n0! ,| \'Vw2ހR7I\"e`pMJ Ѡm-E@lnZr/* 4ABPtx.$$=SLGsW$TG#:*F v'2`2M#9D3n58F)Lh V2EɊ)mUbw&y*`%BL2[Eauo,\gl2$.0%AL.~a_βsMQ2Iz΀C1K + r~f`d`uܝ݄QmrM]i`=D}L#!`c7,M v$& *AHz/.!p16 y:#]?9' x3X=Π @ "YY>U$Ze(l=Ki$Luۊy$QPJRΌbYjj9g}Rӱz DE,bv q =CpƩ<#xbW_f7^#ڞ\1)MQPI4H\^kX$ 14mXjF0؛~Ð zG#QL+25K $u \Ii`YC`UlV fpZd7!/b lbM(֒Žzk@񤦃9ͨLl!3Çy _̶UW/9؃&e!7xglT^8\r3q"`׌kj`\jd_52Fs΍GftǞ/ԀXSq4iK(HU&QWjH*(H\-1rufZ4;;] u!J2 jM WUNT F+J\0^kX6jMHHzR14alNA1 imy"Dک I8{563-T5]iZ7M, 3;kb9Y1Z8n@F]J~iM2׳Jȅ?ئ4^"jЫ̆]TE rre&vDz)%ߣה"DoK#w>z1Ĉ"0rGr9.Il?RCȔ 2Ъx$bXE.9 9} Rg?@et#)Kyzy\t͊tX2 FeSh(ՈQSC[#A!O A6Ldʟ( a0z::1 IAD5.Zi$ 6}Y. 3(ؕ#v ξj2>(g8IHU2q!d_Å_}sKJa;.I8Q9@K&҉t%~Qc n>rd)Zٲ8a{X.RO|ABy2Eh!qX(fuUIl+t[ W-'vG(?snԨ(|ʊQ)p%`{<[.4:#sDzu̫LѓnW@:Al1 z!&8#o)ɤj%@9+ I0B:Nw{0T'bspLУ%='tFu?l9Y#aR.H2ʑ#Y [F~IHbq_9I>qG8+8lݙJ\\}C#B;@/tSBx 8)|99k G*]ҦAR6ć:ݘ9=k)B*: ojnF3hq̲]F U9[T^TC,@a5'ǰNw@7]E9ȕ1`Ya.cQ*7&T W,1߃&[ _n}})0%+ od,}iji1نA7Pւ<W\9+R2N_ Jތs#GblĿr)d0 N'ڮղv?ۋ=8wQo۳}{={sgx" 1  79?;:@׿S{=~$heo~|lN0Zcdzw< q޽Oq&/ݳsCMuSsZv~bg0;63:w& ɯ!4:GH`/L] BO״^-=}4 xj &oAY T"}]:Nl xG;\;v8BsZÓs Mrky}<}݀0އ34']6m>8{پ=8p6c4 C2qHvdoizzrk(^co~>y ݅ɉpdɧ?~~A?b{ emT,_@pIQ.W3j)#b* 8(MY^rG91lZz#jP`L`t*=<(*/vT1nFẎ.#Ιd'D]NA4y,ªP5ؿ=ts|X8%J pgf*`cPR@jU`,78 y~f+;YPNٍ$ |x.b Ò+CmTҰ &J 8*%UOh|?9$Xh~(}qVurstyu4ʛ6<0^HKV1t^[%VK**Գ{Uc1w;IEcBpi$Fz srC+6a:a2zt9ĩ5D7qyDGpQr ZsI>Yź4”I0;ȡ v}I*Nzf,R5kz %J/,F`홟HB@?B"^eex6P(BC˻R.:VL2\X" &]Kj&5M2 &&9vsٲ]I{gQsC=$]3e DhjIʫ1+C Q@jLa|m{20 "a".j?怳5ܳjzg(/1=o"?lny1"T͠D9SWtz(ؠ6Q4&[k,[Nd{aXjzۢ;F^Ie;ix\.I`{pDѯK ~ĿAuh؈kb%2|;|rWB#-}UàH"H#*,ez,zѸk S In͘!\ܔ,=õQ":flY,oS$sdaT&r&aEZS5@U'HTmgD 61 ~D3|]g2mo:L-&G tZT,K[$/Kk+Kd/,K9 eisY|< %Sxnp[{}K~Xr<}9I9đ.KFFܸE&I^yƲ(Xbg%fGhJ1( [yq×)qq# "S(9dє?`d@[2ZjjR+b3 H oγ$jOt0C:k/U&+]g.Vϑr1vS!NΨZsߩHOnPaow/lVĻ@qEu=J6/(lXyA`sR-͒S[ j=Ps炢vrR# .}ʋJ*{(EhU "!W|p2,nClgCQ}Qŕh#1%(YMn  1$=Ǜ9)pQ7w#ڵ"ʎ,$%gS7¬7URv"M/GeEJlbYhҍo G \\BR|W68cXp4D܌-Xy ͼ4[!MWST|#רlCY OI5n -S#n=hά5[ :zDr lZ!ՐXݳ玎|ĺA2u #y}on cuäˉVLdc^0dQ!(2SRJ#8f]o0,pYpxKHms^ T09qAYl\n!R78/%%BInO/9oތ>nPLb0lJ}HADaMdbݨт9)uFTӑLN o>iԙ(Vs+>X8 ?\rPsGK ;޹<Ǡd=b\0kqP9Pb3HDS %,a %ւ>Uuc%~9Tn!Eu *it2ĢL*hKЇiwT Jn3O`& hm6XKOQ@WLCXw`qrE8Q2)R!Ɏƶ7@ڑY|c S?Unjd́]É́]@f9'@` &"Kjk^T{U4 RR95IwKxg_5R";OϏ,C-ģw vik=ېH:X$7s&tu2ί(֩h2=3hm]J!}׺P5^q LB_DC܉-XxhүKcb3 #j{83;r+Zڝ TUCһ]󂥳e3|a `!ֵk.Xj$ Pbja{iX,jc{VYĺW,Jj+1K\F4fm"6uk,o]oY7ˮ7?f߬(oVŸTp:fEBM[geߴqVtk='в[ *g#iy6 вFZ5:ig#i+5Ҋk#-oHK7zEUPjC-K?-sC?-iyi\;ӊ/enC0Shݼ IzNZ{" j;2Kjj[jٛjUjj;ղjjTljÃghb-Uf[:]mזo-Se^[nO2{mٻ2 {mٻ27ڲ+29.rC-J-/eܹI-zm9kĽzm{mzm\kkˬk.ejܢڲ'o/^[^[&ZHnURC0\ځR=:p]/3D&5*ͶԌ(!C̤fY9sjSF,mJf.l<27j|M޳W~J/{_f ƭҎ_/ƞ_ z~It+}Sϯg-lR/_wl?b/.0Y`+fB7mK.|K4jh ,Z+~͖4ޭҳG\J&} ~[@t?]=JbdA̜'q~e6&Ei".?6^: ۯJ"/nRgyCii6lk#?Ϛ-KȯDݠc?uqv>`(]6+?+=Tb%ȷW3=F@mz(=~:^uO]D:pq,fQtTzF z!Avn=Ǧ??=Z.iEz8-gYd` ڣ}ӧ?8ethR&NkNd[Ϟ L\o# 43<8Oۊ#+-BqæMY G\Zu񊎓Da)a@"h|X, dpe8{Jm l1xfµoȇdyGn2t)Yf႓4O+yB$Fк ςPZ1'+"h\R/Mxʰf|E2Bi]#/B:V~Y[\RũD7]J_N\3U!tmu$$4XN|p/S;Z*8 MRI6~EeFtcפ&@Zq :?5N&(4o t4z:pn< -˂I'k/Ob:ǞD%{HG餪>~xُ駏VO8(&'}ˆk"}~y؍VdQ)9$x ;4Z㒝v7rMZCJ x&!ܦ[xJ!N [N)3{27EVMƵوer͎鵏JʃC U:u2%tEN(`eO'(76GP$qmwT|ଞJVHnF=Wqɂw"gp'PUL:8HDvvp;8kڽM>5Uo\$S"xCzi 3_iam k{gѣ7?yb:rKC6psSr s"ΎuB ax,zlWkw_zˎyϤfrnpћ,r,40S1k#݌k]LJ)x0jHPY#{] Q%Ԅ i&GC:.ssbl LD?Ᾰ?b6NwjGEnÎ3ý#yn}rt&t[sm>Rx?_RPʛiS.+NFk7ɀ{#혍iX.9|I 262몵%1/#g\llZZVC+dZ1 es+K;QT /q2'rC)& )+}ٴ#;Nց9\HkB|p"K;UF qyʮ3{OܣQ84p0DS QIťlr_UXF}[IaY.9gG:UeLt􊄁 |Q}넎KkYRux#D9^3B#̀SFmZʃ^T;9NlѾV+֑Uޥ{u%Iow?I^}&F#gl%, K1{ Jn$tE!m8y@"CVFmX@O~#M&z i࣬tx%$E߇Vp(Ix|~ 㻬X°ЯXW?*i;b?u =fk?Wv[I@>`>[e#"Nı @Gғ3.sj֚L:8Wj״..N/Jܦ*QR=% bKV_$]*Si{ʅ[v$=h}Sc€z1H)].$Dz$4ήZ!JWUr灵Pm&C-iYmY?[)|+D/7$O3JB/* 2B 8UKJ"u,@[>1Ǘ|i>}Fy2a۾zҭ!0| |0D6(; M}0X^\0}.93 L4ͺ~"FuYͭEGM\.08}du^?_oSÖ$|sr$YhY*P]x>Jl?7Y_-TKd-Z]WpEXGLib."/ /hcKrhܫ%,QW-%q`}mXru^Pd ␸;T 7hwFWas?nだl >ڃp?@Skn itv#Qp_Z_IIR]2$ җz]ؔ̋M9`d^;B;/Qy9$5eܤrhp%3%{us{4հA!-f:3>܄c.P Vw嗠QQ_q$bpԟ.5j%2J`2Z;*^HwL8K;G%@d[D"c^k$Ws9vx ߡ3LyHd$bJo`1q 5V 5A\"IAp*II9i jIeE+!]r!S׫tG#ߓ pf5<=6qp 3|p=OuYO<)3.d}?1ӓU//y(ִ4ToH[nUHo`aשͬqwxXmw.aҵߚ/Z$,f0fJdOEq R.cd*bm_ڑF9jnM1615*y0 ϥ!nݦCK ̶4t(`ګY^LxY\0z#Y(;#@e#Pm* HWFҡo֠<|k*6# "\H!dxEY &1X[= ؆Ánijvb}LaDӥCbH! lhVݞ<]gƐ:Z q: lRN_>=&ЉenV=$.=-20eŵ2Wzޯ*WEX*<3,Z K~'һDW@q_Y)͂ RYlT-Y%J>Q?6ŗBQFOMLb"~!?}.ԌvA`7r0-+|W$mAǤhk*O;j/jQG0~Q[ה2&"+j/JDX|Qid6H۸NQwhݠ񲵹ʣ4Ȯ/6"]@TMmets nvvWn;XVqT2 z#t.'-Ah5j BV9GZ6{I6.xvXgӭ`.^o\nPV4?m5^O  ZŤ _%( kЂn斴[5PH.yVh(N:B7 h˶R3MҢ"yb5A 6p }l . bGmU DqG_!6M/]a).s =05ZEwcU63O=^/6m~vJ@s§@MdQUF ]sƧ8zU`y! aաx2F=āzqx_q} Ӎ@;c&Mu|GQ{(z.'@{RAt΋䆨!DPmDf2$ vwBnQfO֑lw?ttS!7Q=R0Ih#䌄ha#tq# 5\Y޿[msZÚ^!ڿHWڕW!UX͸(b-l~j:*L?=l&.]Hjv~IF:aL-G_Ѻ)3LG.G;e#^KU#o/HgX36f蕨L˴O8G@jA-zq+Hc0[aRۡ`$G[7s߱1.hp ضxE^Glf\`茳ʑߗ6ݾyH`1yN Mh[ t`[7r << P]no)6``Qj =kT@)|NP@9p~{kY?5.2lHVoÐX ~ud8#B睘 0OF)NsQd鵓IdA]R 1* Y~>MJ|Hsl3`?|sp J&Q]cxѓ%TScj va\}6Z fLUE\"ORD' hngGH: `yw^B2{ A`xGo!*L&+7D||'C%e/Tdk"Th^2Yda}nF9c 5I/_:˴m(φ [%'7%YUXX7Y14#D{ 4Ͳ#rV6~)W x]wUK1H*Ԅ"؋ A4Xsz=VX<丐hQIH:86)V/#G4lL^_1޼fD 8 f*ШZ"z7U- sq|]Ϣ 3ErԻV+y`bÁ9W,|. ~.jۄZeF_G>ilk뺍%E oLkwֱU@zAbE)?1(Oba0aߺf+zSOCa.91Ch YR74Z)ZNPNy*e#s>@ ;a]{킯4 PJi {ޝX眸,T K6]6ETGO\tE= ĬMnڑ[01)Q1dĵSb~eo΁.,o0?b_U//kЌDf=jIw@c_Aog|]V 9P wf1(PA(5:ʅ1 (dkJ7hGWތ0h@9G!}#4V! ` Aۃ7Ѯ%,h %d/s :fh&#_SsEaRa7i)Rr%Wİ34(>+M%\$/fA V-Zr0"@CԤ E !:%T9pXI־'.. Fxxq5.(y7{Q2Ǻ! ֶRCp֡VXJ _0o&X XH,e"as>ER+$X:8,%%Q[O'ܠ%>?`G\ߓkX&ɑӅbr3#ZPo|&Fڙp1WFb.M&}p2vI8~p5'DX ҟNҌ|cf_M2~@;j3Z*7K,5ܠ̦XIDwflCN _:]7L\u?q5f|bYA5l;&c`%EjJԯH&DW8WAfNnVѡ`oht^˔I6gc!CQA"4>1Gd٨: ֝zB)+4Gzjzu#KKΝeC#;EđXlώj#_1{i*O HHo F^6?7ҥiȺ+,L@v5=pӁ`Tfq_OZ\Ɛ‡e h CSVyWhK7TYѣg҅ wg[RBrߜTA,͝f.Q>8G3.;҅o"u@[8VkJ#`ŰITчl?@A%Ny8u᩷" \tF!  4wt\NkVbш$'fR|!(Ū:FwεVJ\~(8BTu,3AYP# ML$ѝ PJ5G;Wbxkddi MIMKI ,u:*iV\֠D-ʸ6Kj5@sHT!j#q␐')E ͭe扃;\ڜA/K(D&|[hU+L$чh}sCa3ռ;82r'y$M7Yu^w3 w2sN>PE%b8TMB\A8@@ơ 'q,ycET*U$z!\%ea9 oj׾oV٠56,]$qgߧDoQ+l&ڌ#|{U}9l ]gеGu$.EjO*֫˿`܋.UZ`^TmWɑ=/v:ޒڪϑ5卦҄J I^Vr3؏z9z+̨QvBX8UVKxmwXũ.N:N}t 7䐸WCF+IfȽ:۴f<Pyjg%9,Vŭ: K(XBWL~_%DQ: L2zQNjH}n2R RvlTuXǼn(pk$j@r(8WX6fJ\|‰v;&ZCPθ$I\5 V~(-#SD,Ur~pj"-Ar#8 e==, {E`ƈ[Bԭ8+Ucm dT42۹9+2qpȀ 9E( ;FPA;d$X"r.m]CAtO+Bfpp_eWHQq4b 醨$ K^?$)]jRykN1cknU5ۮf)U!S&70Tbȵf.3`0ddѩdZ)^s>"ݬ[fYa,wJ,pzr<7SCp C?3@"VNE2:t>vDupDn57~ vKG+PVx\NP BA~1aYl}bg^];F9xȭ#sLŨECR^qa R^ 4!*2+e'5\mǫEnSA\:Qӱ +=5s;Cʝd TGv3Nl9.uu֫m SYaBoRYE*fKF8.!a(K=Z8HP<$U%=3 t7ب3zޣul wWbK=Am Qg~pu݌OԞg%vgS͠_c98=OS k0l,_N~2#zD]~HGCF%Q_ aG;w(Y|}8 NHvww+r+qऀ`KRk$ܵ1=QVVRg gA6"el(2üP吩;26?Wby{Q-G{]?w{m8E~`)/wW}7S1AOfc3ڦLQUhOs)Tf'A`G8Q@@rP-Ux5x$ p%p:~qgq;Ru'>FaY@C0xKJO,{QG5 _f6 ?FU>*HkjD*A#s4t?( XM$}f: =eK`Rt_S!cAFvwffSq{x{\be"g5#IUqͱMG*2͔)nh+yf>le@ uL($]Tgil)yd>koyTthV)(|"G3 7l|o z}\ho&6l>=Oן㊾>8v!9cj +H5MįN޼:'L#&˸RD87o3/9,Grn;YPO(S1XxΟ2]=VQ7X]Y) ru`F;Mr!סU.Ƣ^v aa}+[oS;4eIw|qH !;oy֥ޚ_yGBAzMOBN僦s tBI)$~ųv4X<ϚHȨifW#hc86*P'Lj|6E+ [dnZLx0 ˕ho/Oٮ5+j݈u*n}]#ͽo5" g( Jا 0_iBydR}\%{:Ԍ$L{ &oΏodp·Ź*4!SqI.`l4l dĹ$`FM18|HwY'F$Q7ˑ̌,$FfA؉̡"XA2ES|s67!eYe44#:dj1P3YP.tfBls&.E D6V9gu;jS-Q`YO9.*?e,Ha]V#vpEaj_ZAQOJ3@lR0%)dIO̊B뜜8x%Uv 7c,5"83OۖbWFIL???A!LF9,izd74 4)x; WG^>p|%!5L? =>nM/Q]|U gAEyhcӒݍ,mB#IN`.%!?``\QYaE}@rRrBSUhT"Bj7s>!` >OG.aJ$'4IaY0$a[9nȨRmnw1ee`+Ϯä[EtP*-|.AuER2s>͊dO-}9ω5i_jg8.pOՑ1)$Usw!V(S8 LG T;%Dx˞<) 0ymO~+ګt1icT+lbqRNyJc ه._q&`Zw >~~]^7p(ܫJkwN 6d~m'iӯV4 B~wUP9w &In6T%ѕ])( j4AC4ϩ.mjb7aICCds%jِ'I-EJj!kT k؍Vt=Ac tl Ȕҹ6DVF-= k$ nq<}ի sor0N2 HJR'T3#J 534bzB@t2/` Su2h)1?)Ӟr $#~>"ycL"\le&̀N$><^QqEֽ$*:ᯢ݋/w/s KV|Y,#+o{ z skq4`M1:jBi g'N}^ yL?G@kq.% Rp[W_*X8br6O)R׃E${C 'x>`ِT VȉKd/SmȘfv#= a6M3(wjᰇ.!am̃flاAމLzC%덕(pzAAqbo ̃[UR}!02a%!{ȆjWݝX#-J5U4EE x頑 HQƶ_ABXre$+ n^Sԁ |% c 2&Fjsb w8fU<2UW.Ɉ.^]A(E4%^>`r(N<5 ?+]aH&VKfinVr]g Aql8 !IN챬7) sBJ@Ou&+)VneyEN-{R Vd/FX?Xٞ/${c&oN* &UEawp+f!Fv.s]tm@F{\aQ')" w+J"h~jOE#dGҧubϐ2뙻D]^H< D$i$ Zlwn4C3=3Zn|8a$[E4WBrƥRߋ7a$Yp%]M ِ0}Ácei(#$S/V+v߯ћc>mÈLbd^de-ŨWaEֈ!UnUa&D_AhVSը _^W m.kmm&me 4-x*ѪMD//um?M7 ڥe?nsKd__W\񯟰D\^Ρ>bb.4أ@WeeK"v2y`=7rw"-׀NNөzA\i3 ͅx@f* TJ?3 8c]Q;~@&&J"ESM+L (`55zNj0FdVO;Dw wE2cѹPN}/ @[#}X|u}\1EmmdBzl&&t|`[DTVl1P)ʪv`.L0@Z1^$lPEWa7LIֿuKsQ!g(`(/ɍi;z:Nh&*AF%ͅk!l"0G qqq_%Ӫ~U9ň\AJMGêu0Њ4l*RTT_+&tBX5gW :"1.o9!=*gו𺙚;g<+)FZ'-^k,xncqC#|dF 2Q;Jj߱I u^f,9#2CGA`Aj:/u~ urTPp>um=^hګB,JùҬã;hv<7}{Çlz8fھO6C͖<غ>n?xx_͵Wj_ F3EE L \,l=8[$p@3\EƜve>ل!,B1@M5Țixkgr qF9ȢM6Uspht] hG!ça\܉?s zO>|i{G3U=~|fYùu@'vY~R&,.bj¥ ('X'An=:ᏓO ie -BJ)M* 900"fjH+;'DtјF̬8WEƋ0hYУʒ,/2Z5Yb8EŗhK(4)) vʙ!!RSc$(eȕ\ fL\2E^|+36Įv.,x:䇾~ -t|j4?`m|J)hxOCS:7 [v> z{Styb6j?/X#yN!Yrk}ҴӻsQhQ$<##mn1 }]By7X}GlzzGlD]:_ͺ+~1:7r^fMa}o}Z9?9׾NcU6n5o^ tDjme@O Yqe#111B%@ɗPU(x|!$qvԚOAN l!̧(?Z)Wq { pG0W{ĺ{*2-P& /mqb C !`b>Œ!cR@@)`R}L(z/a ɖo ήH/RYEݹEm\t|ҳ4']_@zUΨQ%njmgũx"aaJ<*X I:r*o٨Wh ִixþ%p ^xJep8[M'-wxJ~T MhfUI2t+\ ̠)@O=}.(j<ŷZZWѣ45?FXk0 @.d%y^Btgt 3RM-ɐfFh!"#tHb&DbJIy[f'㘝ydπB)FeyO\9º,!R558)=嶬.P?F8%(6Lž$DOodBA?EP'\h{|B8\yftyzǟ_n0"±7g!YKd T. JR&]|\ z!J*FCB ,ȪaK+]YA'ƞoVk 6oW"$E>E"\ "FN%ֽ)BzûѰYI;i3/|ٮccۯ2uO4Zr?XxU飡Bb.#1r1gCDTXԧicٖ%yu^|o7qiwЖf0fj /idEBbԦt¿36ȿd׍MŹw=v>%Yd"DOLcZ~eKn.cJ9{n8đm_Bߕ[Hc,e_a혰Ou~ (G8;ȽDHFpR&pu l!2^(`ȱxSUvPGrnkw,Poo߿~m>RwA+ _x]2bBͷAbNiJV moN.NsщEv"^Fla^f -k_Agii./wڠ2KQeޥn4n`GH}c?Sy0ę`!|:tJ3B$/gB;bm>iYM!b5?hwd]j;*9>ЅNXlA@̼K§93^T8+lj.wȜg8WJadUA2G+ձ{q;2Nf,v1Å`#ٻLVQPs_Y #UTzPnpQyfD^=G\J)Z;6K㳙gSLtΘxª6D. 7,֊SӇ)[wC shXΆU{V<%{: {B9Oq#ʶжWmhPa1؎ȳTGX:?\Y?/?W75Bӆ߈,Z1F{J/;:ˁn[./zZ6j!9@j\)Of̙_·w%]nq]ǜrCӽ=_N RI"S Y":al.Vee3jXDb9ѶYo1{ Ee`=Uѕ)A z(K/E2zȟ>^~Ą% De˼CӒMw[ } &)?mUGwhWwI7w?5z$o_fz֯no/bo`3\nʬz&WmC^&7O2X+ `1Ub) ^~C“L|$<#Pi:oJUJ6$63ϏLk={h* ],riBiK6)dYqj E e,lPUsq?5y=K8 \Q-{QW[=6# yr|2R06EYR#_:F;q$PeSX3{_dcb`aX<.ha?i{$vWXRU4Hs9c!ШinlV#, pgr<2 :Ih 2ZȦ ].4FJpS r4E HU_)]1mW6U ] uvfkUvvGu תYEM2,@`,%ҹ'o%gjDծ eE'W1mrNE?3;@Ej(6#EAYrIp+gkbuiʴ{ i=fSs.@Kև/rS-~lòyqtI GO}lKqn[K4" c3\/]JChm6]\fcOҐ\`,e8u7j}" ;|GWǎ\Ԃ8+yCnьϻGoaT8fIw(9 At}{"urx !tdf Ǫm*:j5U!KGG)}h$sY|?^k@7 0%G!DxtF NaoUsQ9ߺ{=bو90+׎9GSmćϻc7وZr8_A止M1g/ h.Jxg ICѺvKOm;I:@?2=-„YT9tsrܜljxʠXzQuZɻ''(u?vS뜗dG4Hb+̖r%3C}ilEMC٣އ ⯆zDBJvH\`z❧͊')ZqwB/$5e(̱x]SW4(ɚb杞c#nMogޯt>=%Z8߈Y<\#ic)%k"ZQ,@ܘv$iߏ* s]9"9Iux&EoiqGBiB4,"Uu f^:1P.2L)O蚤YɁ^sHhE2PSj 2{8A XQh$Z} cÊFWW D$PhGKz(캍&^2d0G̛mWW8ș Iup0xI ]iN̘J"W 4hu#-~V@; 2KۘA< ]Ӫ٢ mQh=5{?othϲwV]iT^ƭ7LEʯ{,qfvd@ UaƸb$u;w.zoI@}hb4\88鈇EeRFMcEAԀn#V EdbbcNfb4W-aô؎76NIOhckqvoC6jbXrvc^#Ȓ?J*_^7[zwh64TLP*\8ų#/ E7v\ E$[D3qK.V0"bC>w#9[Z u!w+HȒe9f|Yd\ޒZ{4@%'@"Y~/m˯$KH2@C׊NlzifF X\ = f0Pʨ5KCQD&\)Ι}ӄ]53tnx0Rk>D2gH#:6Pg03lcbhTϸ}>'Yv(vwVlN*Qs1o'{ ^PYJ&Vwwv`b4R2JH%Yl39 JeRKmL@㋩]M`HEy]6dV(WtF25V}<̓+ͬ LLRNs憐j\"5B;mU4̐o~ߢ#WCNBfUuF!4 kz_iϿf+JR-|ۄt*Vgt}KJ ftbjԬǢ?4+v2kc;흷N^lx|GsXV>^P9^Y)ɲҳXl 10h.J ƕF`Ed$Qv LaY2&pSAyk`qd~Nq1Z^HYVx=ABF -5LsԚDƏ0gon:O5HKD§ :sbLmd.>v٥VuT~WdXᦙCrP0O.!h.Z{ he%br3B (\ɫ@:#<= [o^ޒcECa/^Kf6]9`91Fmz3c\1FF#°~*_t o, )5g/hs"^ xA ocSED%NGNM>Vʬ]i GO׍w1gmX/zdDs2xmxӃC:0|0Z>ҵxwozKUs#AK&HbN4sKZ6 CW͐1#,&GB zu ',Op$W%J0EhKtFNx+De=!(idR\EdfM oEgf`FllW""mĒ;I6``loCF[Ka)GIkC6azi.釢zZ T, QjA~LdhāK̂t_Ll i82 hD$RZHw!Rn{B)=P&4,#4"KQhµ{]qmFfx%3 Q:Dvp'D0wHM!ہ D'sk taƉ !n%9iqM&Z=f"CHn(45nv7 TFE;@V Q Ϡ}JjN+D}8.ٙ>.դa^oV0a@ Jz)#Rŭ< 9R 﫤|ӔDǏm$v0ͧTo c/h[}շcr`,<ߞ_SU (e͕i-Wq#q75n9a#1a;tRmX>e:˻7.^#-GЅ\N<f}Ñ03T]pAe őkѥ ZXf )e*"E f+ 9~ǖhfS2*ewF#܆6 H$*,az>R5ەWlfF\)`y\"zyssyDQ MV1ܫT1F}+/ 8/3HKE6rFy>%SdhE՛ ?QP,EF11E+heֿ( $} /Y > dDB,Ӛ&Eaz?\S\81€7D'(ؚ|<"ViFld#ր6ɓw27j[®%d.0Q7}+T8:t41C5:e 5?skJ@T !Q6H5zTN}b`}NRd}hp1 QwƲRe$2a))D$0 œ%9.Fbҧ}֨mPAQ/3B}X'IpO(N=]eKy{.!Mv$i%̦cƀ8&g#aY Ϛ@Av38$bXl[4[+P<9EV'[HYoAF-@֗_rf1XzC[ѧJ!%P`؁ԷߐF1&\!RA{lH;DEL=d9Hp0N9Jn ::/y]omۈdHmnpTZ1ݏ`s,լwSfV%k`<oCP棶!9pOĮ~DPB=d^Owd4Oem4l;fV8IUmGDԆA:}3 k ]$"~<R2xSQS]ٟ_dfKT -%J̵w=ݑ$Kd|  ]y=ZĮ"\W5 ђrNj݈s ?0р %7aEm;͖3){Fd1h%FZRz{m9/-zݱhnUs*V$䫵 +cfisgS;p 1w$6x.#}oZ%'zPKsȋj.)C/u&,n=ǩGd2%3'*-0v|Muz Hˢ)x:B.eKrR P(!CCFl+.> rX҉ >++gdFf8zL6rzpzԘ!U(ٚ3xhޓ((k ˱gE/k<;f #"hIjX:L!)b1vx/ Bqۄ{yw ) 7+~+_X[VLBB )4y2-VUڶ5O可wZ`.h ʗo:Kix#%t"<^+OcN8ꔊ@ 5VKQo1CC#f'IO%wOgZy8SEih*B4G.Zksꠒ0uNjYh lnTQ݉x2RVPl 5M,)(6]hYh Pz-lt7*War9P4̷gS|gh:GZnŒ?֊ 4Cw5o4}*MR}vZVBV+I[w_WBkdmIzKgܚxtV6}z[Ϗ3!7xoG9BLV#]FU#})LASDL̂N1aO )|"ft#''/ޞ{@^Q 8wE$iz;q{;9 >:CLb dD9dYhD/ n8J=$(ы/o$L1 Ήu&mWn}CƉٹ20l>?T(fB[sB#R<2V@$m029a7mQ=X<"Ý#j@;5_ %<1Pi OE B 2h`WöVBn`b@'x@+e(eS9z^j ŹB*yKĕvi@)%6|jK&QB2б.WA>\؏_!Sklgpcc f_K7AHv tvo?YhEE}sN׀﹆GV3Oq4]`ˀO7(}`O4,]/'4%6>MkKƅh'Jҟ7~믄F!VƷ+pį;cxHhݔJHp+ko*NfF1l|wUJ9gi/ ޘe!K5,als XJI 2[[D.xsKNj.oi:%h%hz\|"C0N-b="Af+bO,˫]ϓ_}2/,TnqM8(ŨkRoZi7UböftV+lS z@{I3I>W?⿏]~ l)ˑ6rٖD$I`}ֿ ~֠V5ɼOdBaVNi! x-޺XEV IѠ2Gb"h|ǣOݖƅ"{q<%\{:m6+k#ts!ɬ%$my}ecMj)aԉtc#t|vF 4a 0?~z) JF^鰽JVuLJJW]Mqm/- 9!Mf,qj&RWSް2Mװn|[^TQMaSMhbdWwc"C#aPiGqOwPAޅ,W@"fsɚa~0I)y<*~A v/_').ݝg;vjUPdYE$l #ѭk3 &rsA#/%+%1% kn mȫ hXIkMvSl;c$̐g#uC@,(%.P~Ā`rhz+eu6 )8FgP0ԴPIo+pWodR, <(m|G-s6du$,hEljv5p"=X~akpt{hl#sM3R]Pc%@8|I`VFW@ AvȷGek:kA>,X#o߷U>5I(_ @fF5â{a (.ƶ]OSOL[ ^O!F,$E)Iږ#%;\yA/ uWhf6,,֥dEIڂczCXSx1+; 5^;bQ/I֒-+ jK3e3)$X.߄ "ErM؄Dn-pA"^4U1a3ޜ)xDAY<Hq4SImLN3 "Ť#YCyA):!Hc2`, H \vM ܡA:KF, xVԗzBTeP &Nu{ ϱD"`b'^Q˻AG>|ar u*&Y#Jy2wY  T(eg?R9MLm.]~¤5z`^9ϧ ׅxndG>7LE3w7ӌq싢u;K'&=ƨ>/- OcEYΚ'm&ܲWk&lb A!5\Aj>ߤ> p@W",K|8;x|M|껰ՊXu7 6HS!{ypkp" [s$0y2Xg5YpQ<LznW*$S[vK0m PSqV!\VaRǬpЁspNNǫ؟ŖwNyJ:%4&*s'œpWӏ@ĴE$pkն^I7v\sXU?<' *i@={ő|֢/g[3ܟ޽?7Gb oSxC KRHѝk&J<faחP:lzq+&gh n̝=s?!C6 |ob9vO  I*w[Ḍu# tLaCfĆu9 (n=[lB%ouQXl2+)+g,6u1>Άa':pClͤVn ])p_7hIh"R0G<9Ze}slOcz˲U{&k9F!d'܁cG UPէt< 2F*6ftbm;h?X^_*\8;0~>3 鮠|t0[m˔5?4<7?y(=)6#0huu$M=bt@0S݌\ =N9;ujSWVT||77/i#_;; rcmȹ1)A1d-v{!7&(nskp}4gf cJV/9|wt\;T1X^'>?v_+. CHp3hS0'Vq7w[}p!p S3Cg)Jڠ,PطIV͵#{Bwւ և^PݛI4K h$[M6AX9̂COP|ݘIQ5|O^8~84B4,/rDXdDUyGbzM7D|GOכ=+?o{t(\X޲73Dn`Y?csJˍk]Ggq(L=a5 A%ZJv`џ3"(r^R`_;xmvcX:a!!S f0ƂKف?$gSk@XEaҵS!JݘfF#(([<T@TǔhXa q (.@n"hZY bقo [*'E}g-W pUX;O9fKi RyO/zno:g#g La++(Z@QsQ~%3 E1aA: G ,& ȯk Xvtw ̪͉8 )}{۾S8UݹC]X3f}9 +6asnI! E4[@As7 I>eс}vkk?^ 1]Vz0DfflR#۞WhXʞ$n7V]-m XO]6e:XQo ݼ,L$Ĉ2,\ +#TReEw2Sm)m7I\M 8ڙC.Lf,-ZXDQ"[U(,ƭ{E-H7Q8Zkͫ&f4%yaC/etFJ-vJkCs_&?dv+-~;ܔx_,-WMHWiI8/Zngc$sPr2d9V-Y `w ϗ0nl΍!N)0:acKNHvU1H,+ڊzj&h1jDt Oy8t!> FH!R*6#QhHA-*TD]PYN!24`sZVoGM_Oo7CN]c qCDuɐ86{DRbcjTw~8~pRA_pYZ3CfE (5.x:ޡhs3•;z}RRmXo%@ygU`lf:R͎ebrM|p}Sb$3[$_~7c {~#~iMo ďIӏ%ҳdf^踪wfU Qz &JGC!37!y{bI3v |M`?_^R,R9&~T`/n_ﯯALx}|I{'zʈOMF88-%ka OĬ:;̯ڄ"~ ZsI}Ǐ>YlGivl'uRSF 擈8@`Nm"~ 7evdgKvP'=?*eG@%z8p~Mss%'=L)(zֿLOpI"bvj_HNh GU\S,W>}}e ^ gJ]6X6}z..ҋo[VO.W}Sy0)h[CRSzolȗQt!a8]RE. %o9ϪnK])1zrzw쟷)&!(ժƝA0R䠬9 hv*w-)cGRϦT*|s֩~~y/ߋ") =|5FDX!xtP9((p{4x֩m}~q.Os(|yFk2^[]i׋ֈ-CpR65W&K8_@ssܞhSňcH6+tnIlSFG޾H!$| am9a%"%{%Οϯ`5kZՏ骾4v8D?1[Y T ݣ+;6DiH~(s9ZHY`!Y%s~xT2e%,׍:iLI$ V2ٓ|'Yo-:Q4]r81OD$*c"onʉZqO̱GM奿.MnƎRWOhq20 '#= y73uﲣ;4uJ`#Gt$)ӵ5xl$'aԐ fdl+P_`S2~(v?~iDYp_xP cb1a5ŀ+f{924ѩ>3/L0o/b? B\ӄ3#1:.ˑ؍V~䩍sHl7ν<0<Pz&jZ=%mr9.l(X1Z D-GWP5,X1qDިmZK I髡 $@" Yy{/8Ϊ6/w^|hewl׈vtsj/8>)v"`c*ϩFO*+ ;b_- Wy'лJ(R_R_e;#VW$YjJ36;!j=7"jk}V*ed^pEQ|ڐEP]t%OZ7ʍsʉP6 ^<#%.:,: hD.sVMn_nT/x48-cS 5fmBa'toQ*L͍͑OOod>ۉQuFjĵzZ^4,{*QEF%bF4ޛf:77L:ݾFqn)mB.U>qt";lTN23OɒAv0DFN({Cu &{ׯ{6|(ۭpu}ʻGnOnO ?,J$&Dq`k$QH.geXǽL]ځm5isMiXkm,ਦ.yTzEG_ eogKPo3ic c [IFP5Q15[[x:7uM"Ϋ>3d a6$.ƍ%d 2 9{pDXƚbIpϿՋLB2V-' 8â\+S3'o|؟*oj1 ЂX<~>^~]Q.hwD4ֿ ]#"s$+A7l5Q_ZtZ_Y^^t%F*C^β:ȢȰلGT;}L̟/m-P ~&leK/ ۣGh>wլ| rs=-l 8.s$VmvWsqH+1L2jʲy'n^A:OKY^~޸t¹5+ fmb-^+Wl8Kn5i)@pDw [tt=5L\'϶ş``njBԘb/C$%67Aݬ$trEOv5WBݘL_ZɥAYŻo}Qne"<@+^olvwKbӑԬe B}eBPws,U9 kmT)vyE*rS*Ė؁v QJBăLC^$ȟؗ 7y= "ΗVtzbe L*R:5/nzKxMIv"7Tu˹5l\df- łjtd,l=(2ۿ ?ythJa`n{.5OgJ/W3K܀"ۢ sp)( G'jk{G/7{m(w̵ӶIP712TJ_{ ~+D,W4JLpNva~V_r)(eZ87v)1D-*͊YB^4u˸ٽ53-eݔe"YXgsQ&T>F 2yn7n[ Ӽg=yר X kQx`(gb|F@E%Q͐ߤ, " '.>D:uRA]84tdF6hUJ|( k #!/@RM6s1p=[K/E%µS(xmÒ! ; h ג(jL>ۥfGմF_M'nV˔6a1Jv*٘A`_ȟ}E6N$+ӟI^rHB t>Kյ{A7׶*o߹\-4_b,ܭ =*du#t&rj[`tnNYg#}b\ʯ17[qu5<Kkڱ ɪtd;SY4vɃC7E`$"۪l9.5BZ4@On%Q$#zk%>->nqq4?sJAMLJa,7Sn7vH]GjaoWDW[Ƒ;8>] !.B aV9ʏrmF@MMKFKnkAl* 6yk mkxeccK&% jqAg; -N NPЩL!e"((D#4NUێx!ʦ<%$+~>o7CЋ4i\ ꭻIH@+6Ip/BNAGl򱀟,;>%Y 㫨^ fzJ3nqH-=KDV݄e+R`^Q̩ J8(Rs l}2*V]c+uK%_T] ֳƇ2V!]p}yW?f{Jo"ger2b[ȂW=74,QܔD.8/;6r`R 'mٿ6WDžk[@m%@si', m鞻gSh515& kc\1~4^_GX( {b).ݚrI^¬W m\JyY &&볒+v5<mai^GBqLK*84pqCQT4͢nw$aJ{krT/̟oHYpÝڌA!t!]#rcۛe/HөM]%m}BӤ[=*5,7W|7v7¥*LFġH !vA),̒I@~ȏXco࿍ ?h"xbw|מn(K P{A,֟6g7WGY"K^ɷwGZR\:!% aW_MA}n{پ8Єaj_}dzr-N_)yO;_hy%bGc(:a}Qȇuܶw [ݻ=&'8&fIoW}1 {sp|pjx$5Q?UVUγ?Կ4>ܶ=3,8 @D,%E';owKD~8C^a}f]!|MI4H|y|@EBHfXy2;'/;T[J3# Cyv |=Y@R1QN yAio+%"qCޡ兄ӎu[M{C*ƛWfp PXezcIjTZv.aK8;Lă^s0p$*Tx]0 R\ o moWi4EŚj*l.e'=tV]>FI%YtCH/ - Ī@ʊ7T? d!%0A1lI/a֧0O*%2wףp١ㅃb?3 &9mt%5ԑ6xQX(^ah'& hZ3̐\slS&ݫwlDg_B#ŻW^;KgYs(ʰ=ũQ[ t(Ƅ:gqH< "ժ@FwFU-N.uNM0&Jo05Y_ALx6@A^E|3 =Cx.nZjrq٤0DS<N (C$1(f9ZSJq&00CW.xb#= nkTW&d!ҽDuuQ<3VC!> hk0*>dr,d}GSqSnn dkP sԫ,֩s_/ύ6FBXÛ jP}@"0$sKtšiPetKΘ.I/5b"q6) 8ؒSیz]P5r*@i<+rf~"/5_8OtȃeS7iHu*jmM/-xdv"xݍ#51STG4۷@Bߚ =Sm4)-%~:{~nNݍO EB]Z:=jӞξ .Y0Kޙ?h$y|@Aҙg}9כ!5FF'4 ǽT*f1` 4Mu#[/P0(b <5el ~͂Y,6a$)g-C4p <-OGk{0< ۣA<#c&3Ѹ+"{<:Z0EɡxEuF o=XecE v0i'Jh`bE3U:Ѹ}=sgx/]3hNfrD!5)1.#`|Ej'I>rR9#S}cTi#TBy rt8+ }!P<mKAU>^U.e@<"bRvFnEOy^S30O dC,GJt[*+ϟ@۬6hfkЀ0y6Ϗj=P͓cͽwǭaFAͣXsz !yg>cR/v߫VS=o5-tGWc|TNJΩK3S}uvE#׻Mړ'OD4z),lٸK )a!DN> ;¹ ;w\8@m{ 1[{$O)ѧ]C؟^yk-cA滸G>4ۘnfva5U~ôpCv"Sa-؀)jz*9>Q :tNI *K6 ༮,dcfA8חϊG;An"OG(l",6GS>UZ|TѴu%p.)sX]## QխWn;FI'Uzz)+1#R:&EU$7%[=\h@FJԨvU$MHo%~psxsFCN^b)4|@,M_ 5ZgoR†&ʑht.3Ie2!1nC!2=3 c5Nkk. }?SFwp\dZӘvoeE1SIYu`>WʷD}t~EeリĐ2h26D^ml c3*Ylۻ]\6ȝc̺K\\(}rŬSlHwi[ Ry/ț렠L`T=GUUV౏;-Uܸ q8H bu"`gfL3 (ūJey0]@P^E-}/`?폲F %sJ B֙S &AEXDD ʩGq4Ƴ]ycWlEs304HenOHCM)5 +Y2b/HpcBPrC1)QH y Lp/+ @r킚XHWsK0\Cc;9LUTppUWn”3}9)f5O'A!Ү @RP=~)W{d6)hkLfHԑ@Yd?ʱ:Chxg .árIdJnki6`:,YH|bw^6jgc`'CWUlo/zY߄r f6D5pxBj QON=.Fֻ͉0 8G@'=Cnq' |iL #0򘊙0ny$ZɆR5yYS[桻0t;iEBX@yz1uѲ27uKM:M9eGڮ  F4W vV{D@N]xue Shk@GI43jh2ѱ) Ȏ=!ek8㿀$YbWG"&y~=y\Y!_r\ 5)RB>H  P;G`IBَcӳ{4iсVEt3va*ߎcfn?d;l)"RFVb\A$X Cj`d Lu ) yѸ^Z_3=`/0;Y;̺XJ:q Cw4}}<\Zi%GeHM`|/b{.Cv|m4}ΪH !RJIZtǙ}pqhUY#OkŝK $100+Fz*kׅ}mb,'xt=PK xCm̀Q;~ik1zMb٧kn|oeþt&xuA"murepm۸mj  IK%u(=mudO"JY4A XLqsO |PA8DD>2Onz+m6A+/lq},>.! A.Mu!6_b6'X}kkiIß:v?"7-񙇈KR3M6R$)J;#=ɍG¨;QtJn>J]ޒ7~>TCulq1J BÑDoAsIrHu"% $Rq.یS$>]vOEYz*ɱ f2d$LYHʑ䔙b"LUX(YEJ\+:ؐ)i(lAtQK3T,DT"A/)uZSh4|sz).sU+QJR/ܪ,Hh&IUoj.Z1{X DVM` R׭K ^ڎ0APdR'خT`*csDXD .Ӯٕh#j.sr&˹Hh꺠8ޏ9`  OȎA/3t`e@l);)I!RTꕧ~'sU3Ap -oQ#nWS=0kj''Ql6@ [Kvk ݂po5PzqIe)nI:}gY b~ 8@$!փO)g]caɈ~Xv_⺏U `2ȗuw>O#ąGYZ?]},Iچl/\' `<% w~ RoԡU5ʹV"L$DEXPr8lMNGq=.5эx szHҒR1)-0Ƥg0"3c|ɬP $Z&+X5B2a:ds'b2|QV 1 c>}D{ äȃ&6~d&6~˙D\l/>?.w]VA!IKb1EgSaUjS5#Y%;KeL'56#MB&q0=us`l-Um66^|yc:|s,V{Q4}Mɼw~T-mnOޑՏ?Xk}*[ Il(\T ʇs1WLT_ ,N_ףCG,k O԰__w߯ep^{Y㭕RV0;+ 6'-;3igl%ʗg(u: r!WWvTlNՆY)M&H e2)|8M2lvז흟VgIcjp7H(G7#Y6GyG@LK7OMp6i*GoN^2K|U&ڜ)9r=}kn[y8@ j9%203s*nY^ Qj{Y^s8 <}>.A鳌qu].@¿TF}rT&]MjNwN